Github messages for voidlinux
 help / color / mirror / Atom feed
* [PR PATCH] New package: cloud-utils-0.33
@ 2022-07-10  8:43 akhiljalagam
  2022-07-10 23:47 ` [PR REVIEW] " classabbyamp
                   ` (12 more replies)
  0 siblings, 13 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-10  8:43 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1226 bytes --]

There is a new pull request by akhiljalagam against master on the void-packages repository

https://github.com/akhiljalagam/void-packages master
https://github.com/void-linux/void-packages/pull/37968

New package: cloud-utils-0.33
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37968.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-37968.patch --]
[-- Type: text/x-diff, Size: 991 bytes --]

From 356078eb6705b47b08c98b7097bf760504cea6fd Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sun, 10 Jul 2022 14:10:00 +0530
Subject: [PATCH] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..1875a60ab80f
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,12 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+build_style=gnu-makefile
+short_desc="Set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
@ 2022-07-10 23:47 ` classabbyamp
  2022-07-11  3:53 ` akhilops
                   ` (11 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: classabbyamp @ 2022-07-10 23:47 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 168 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917463480

Comment:
why only x86_64?

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
  2022-07-10 23:47 ` [PR REVIEW] " classabbyamp
@ 2022-07-11  3:53 ` akhilops
  2022-07-11  3:54 ` akhilops
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: akhilops @ 2022-07-11  3:53 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 220 bytes --]

New review comment by akhilops on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917522247

Comment:
i did not test for other arch.just verified its functionality on x86_64.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
  2022-07-10 23:47 ` [PR REVIEW] " classabbyamp
  2022-07-11  3:53 ` akhilops
@ 2022-07-11  3:54 ` akhilops
  2022-07-11  3:54 ` akhilops
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: akhilops @ 2022-07-11  3:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 238 bytes --]

New review comment by akhilops on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917522447

Comment:
> Should specify its dependencies.
> We do not have cdrkit packaged.
I will check these.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (2 preceding siblings ...)
  2022-07-11  3:54 ` akhilops
@ 2022-07-11  3:54 ` akhilops
  2022-07-11  3:57 ` akhilops
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: akhilops @ 2022-07-11  3:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 240 bytes --]

New review comment by akhilops on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917522447

Comment:
> Should specify its dependencies.
> We do not have cdrkit packaged.

I will check these.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (3 preceding siblings ...)
  2022-07-11  3:54 ` akhilops
@ 2022-07-11  3:57 ` akhilops
  2022-07-11  4:01 ` classabbyamp
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: akhilops @ 2022-07-11  3:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 310 bytes --]

New review comment by akhilops on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917523306

Comment:
https://github.com/archlinux/svntogit-community/blob/packages/cloud-utils/trunk/PKGBUILD  
this doesn't have any dependencies. They are a bunch of shell scripts.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (4 preceding siblings ...)
  2022-07-11  3:57 ` akhilops
@ 2022-07-11  4:01 ` classabbyamp
  2022-07-11  4:02 ` classabbyamp
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: classabbyamp @ 2022-07-11  4:01 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 271 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917524530

Comment:
> They are a bunch of shell scripts.

not exactly: https://github.com/canonical/cloud-utils/blob/main/bin/ec2metadata

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (5 preceding siblings ...)
  2022-07-11  4:01 ` classabbyamp
@ 2022-07-11  4:02 ` classabbyamp
  2022-07-11  4:03 ` classabbyamp
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: classabbyamp @ 2022-07-11  4:02 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 350 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917524530

Comment:
> They are a bunch of shell scripts.

not exactly: 
https://github.com/canonical/cloud-utils/blob/main/bin/ec2metadata
https://github.com/canonical/cloud-utils/blob/main/bin/write-mime-multipart

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR REVIEW] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (6 preceding siblings ...)
  2022-07-11  4:02 ` classabbyamp
@ 2022-07-11  4:03 ` classabbyamp
  2022-07-13 13:27 ` [PR PATCH] [Updated] " akhiljalagam
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: classabbyamp @ 2022-07-11  4:03 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 297 bytes --]

New review comment by classabbyamp on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#discussion_r917525067

Comment:
> this doesn't have any dependencies

yes it does: https://github.com/archlinux/svntogit-community/blob/packages/cloud-utils/trunk/PKGBUILD#L33

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR PATCH] [Updated] New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (7 preceding siblings ...)
  2022-07-11  4:03 ` classabbyamp
@ 2022-07-13 13:27 ` akhiljalagam
  2022-07-13 18:11 ` meator
                   ` (3 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-13 13:27 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]

There is an updated pull request by akhiljalagam against master on the void-packages repository

https://github.com/akhiljalagam/void-packages master
https://github.com/void-linux/void-packages/pull/37968

New package: cloud-utils-0.33
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37968.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-37968.patch --]
[-- Type: text/x-diff, Size: 1595132 bytes --]

From 356078eb6705b47b08c98b7097bf760504cea6fd Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sun, 10 Jul 2022 14:10:00 +0530
Subject: [PATCH 01/85] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..1875a60ab80f
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,12 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+build_style=gnu-makefile
+short_desc="Set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From 89186e40192b62cb40842bc5e54d90fda10bed88 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 9 Jul 2022 17:14:44 +0200
Subject: [PATCH 02/85] New package: electron19-19.0.8

---
 ...Update-skylab-tests-cros-img-version.patch |   92 +
 ...ew-tests-Refresh-skew-tests-for-M104.patch |  404 ++
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  751 ++++
 ...-extension-controlled-pref-observers.patch |   43 +
 ...crementing-VERSION-to-102.0.5005.126.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  110 +
 ...crementing-VERSION-to-102.0.5005.127.patch |   28 +
 ...crementing-VERSION-to-102.0.5005.128.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |   73 +
 ...ce-that-thin-testers-have-TEST-execu.patch |   54 +
 ...crementing-VERSION-to-102.0.5005.129.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |   83 +
 ...-M102-infra-Fix-future-lint-warnings.patch |  108 +
 ...ptr-T-and-T-are-treated-identically-.patch |  357 ++
 ...crementing-VERSION-to-102.0.5005.130.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  889 ++++
 ...BluetoothTest.ConstructDefaultAdapte.patch |   44 +
 ...crementing-VERSION-to-102.0.5005.131.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  308 ++
 ...crementing-VERSION-to-102.0.5005.132.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  212 +
 ...crementing-VERSION-to-102.0.5005.133.patch |   28 +
 ...crementing-VERSION-to-102.0.5005.134.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |   41 +
 ...crementing-VERSION-to-102.0.5005.135.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  262 ++
 ...crementing-VERSION-to-102.0.5005.136.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  256 ++
 ...add-free_space-dimension-to-Chromium.patch |  842 ++++
 ...-configs-for-android_cronet-src-side.patch |  197 +
 ...ew-Fix-missing-destinations-in-dialo.patch |   77 +
 ...crementing-VERSION-to-102.0.5005.137.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  807 ++++
 ...crementing-VERSION-to-102.0.5005.138.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  578 +++
 ...he-root-vpython-spec-files-to-orches.patch |   57 +
 ...crementing-VERSION-to-102.0.5005.139.patch |   28 +
 ...crementing-VERSION-to-102.0.5005.140.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  101 +
 ...crementing-VERSION-to-102.0.5005.141.patch |   28 +
 ...crementing-VERSION-to-102.0.5005.142.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |   46 +
 ...crementing-VERSION-to-102.0.5005.143.patch |   28 +
 ...k_static_initializers.py-for-python3.patch |   57 +
 ...45-sheriff-Disable-QuarantineMacTest.patch |   81 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  274 ++
 ...ics_python_tests-to-python3-for-M102.patch |  106 +
 ...-M102-Let-GPU-Intel-Macs-target-12.4.patch | 1714 ++++++++
 ...crementing-VERSION-to-102.0.5005.144.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  348 ++
 ...crementing-VERSION-to-102.0.5005.145.patch |   28 +
 ...ionTest.SelfUpdateFromOldReal-in-M10.patch |   33 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch | 2077 +++++++++
 ...crementing-VERSION-to-102.0.5005.146.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  106 +
 ...crementing-VERSION-to-102.0.5005.147.patch |   28 +
 ...XTBs-based-on-.GRDs-from-branch-5005.patch |  420 ++
 ...crementing-VERSION-to-102.0.5005.148.patch |   28 +
 .../musl-patches/chromium-musl-hacks.patch    |   34 +
 .../musl-patches/chromium-musl-libc++.patch   |   55 +
 .../musl-patches/chromium-musl-sandbox.patch  |   92 +
 .../chromium-musl-tid-caching.patch           |   81 +
 .../musl-patches/chromium-no-mallinfo.patch   |   95 +
 .../chromium-quiche-arena-size.patch          |   11 +
 .../chromium-xxx-ppc64le-support.patch        |  188 +
 ...omium-102-fenced_frame_utils-include.patch |   25 +
 .../chromium-102-regex_pattern-array.patch    |   14 +
 .../patches/chromium-93-ffmpeg-4.4.patch      |   36 +
 .../patches/chromium-browser-size_t.patch     |   10 +
 .../chromium-cursed^Uscoped_file.patch        |   18 +
 ...fix-missing-TEMP_FAILURE_RETRY-macro.patch |   21 +
 ...ium-fix-missing-cstdint-include-musl.patch |   10 +
 ...um-fix-musl-missing-unistd_h-include.patch |   10 +
 .../patches/chromium-fix-narrowing-cast.patch |   53 +
 .../chromium-fix-nasm-musl-config.patch       |   12 +
 ...mium-fix-perfetto-GetThreadName-musl.patch |   22 +
 .../patches/chromium-fix-resolver-musl.patch  |   66 +
 .../chromium-fix-stack-utils-with-musl.patch  |   20 +
 ...ium-fix-swiftshader-llvm-musl-config.patch |   26 +
 .../chromium-fix-unbundled-libxmnl.patch      |   10 +
 .../files/patches/chromium-libc_malloc.patch  |   34 +
 .../files/patches/chromium-musl-stat.patch    |   12 +
 ...-v8-monotonic-pthread-cont_timedwait.patch |   24 +
 .../files/patches/chromium-no-execinfo.patch  |   75 +
 .../patches/chromium-no-getcontext.patch      |   27 +
 .../patches/chromium-no-opaque-pointers.patch |   17 +
 .../chromium-remove-sys-cdefs-includes.patch  |   39 +
 .../chromium-revert-drop-of-system-java.patch |   15 +
 ...chromium-roll-src-third_party-ffmpeg.patch |  333 ++
 ...ium-roll-src-third_party-ffmpeg.patch.args |    1 +
 .../patches/chromium-sandbox-membarrier.patch |   10 +
 .../chromium-sandbox-sched_getparam.patch     |   20 +
 .../files/patches/chromium-sndio.patch        |  877 ++++
 .../patches/chromium-system-nodejs.patch      |   16 +
 .../patches/chromium-system-nodejs.patch:q    |    0
 ...undle-ffmpeg-av_stream_get_first_dts.patch |   12 +
 .../chromium-use-ffile-compilation-dir.patch  |   66 +
 ...omium-use-ffile-compilation-dir.patch.args |    1 +
 .../files/patches/chromium-webrtc-r0.patch    |   33 +
 .../patches/chromium-webrtc-size_t.patch      |   10 +
 .../chromium-xxx-ppc64le-4k-pages.patch       |   56 +
 .../patches/chromium-xxx-ppc64le-libvpx.patch |   72 +
 ...omium-xxx-ppc64le-sandbox-linux-stat.patch |   31 +
 .../chromium-xxx-ppc64le-support.patch        | 3698 +++++++++++++++++
 .../chromium-xxx-ppc64le-swiftshader.patch    |   18 +
 ...a-script-to-list-patch-targets.patch.patch |   42 +
 .../patches/electron-Build-fixes.patch.patch  |   33 +
 ...lectron-exclude-content-test-patches.patch |   10 +
 .../patches/electron-no-need-for-husky.patch  |   17 +
 .../electron-std-vector-non-const.patch       |  109 +
 .../sndio-files/audio_manager_openbsd.cc      |  148 +
 .../files/sndio-files/audio_manager_openbsd.h |   65 +
 .../files/sndio-files/sndio_input.cc          |  200 +
 .../files/sndio-files/sndio_input.h           |   91 +
 .../files/sndio-files/sndio_output.cc         |  183 +
 .../files/sndio-files/sndio_output.h          |   86 +
 ...a_audio_linux_audio_manager_linux.cc.patch |   43 +
 ...src_3rdparty_chromium_media_BUILD.gn.patch |   12 +
 ...dparty_chromium_media_audio_BUILD.gn.patch |   23 +
 ...ty_chromium_media_media__options.gni.patch |   12 +
 srcpkgs/electron19/template                   |  409 ++
 srcpkgs/electron19/update                     |    2 +
 122 files changed, 20543 insertions(+)
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0001-skylab_tests-Update-skylab-tests-cros-img-version.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0002-lacros-skew-tests-Refresh-skew-tests-for-M104.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0003-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0004-M-102-lacros-fix-extension-controlled-pref-observers.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0005-Incrementing-VERSION-to-102.0.5005.126.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0006-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0007-Incrementing-VERSION-to-102.0.5005.127.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0008-Incrementing-VERSION-to-102.0.5005.128.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0009-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0010-M102-infra-Enforce-that-thin-testers-have-TEST-execu.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0011-Incrementing-VERSION-to-102.0.5005.129.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0012-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0013-M102-infra-Fix-future-lint-warnings.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0014-M102-Ensure-raw_ptr-T-and-T-are-treated-identically-.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0015-Incrementing-VERSION-to-102.0.5005.130.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0016-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0017-Sheriff-Disable-BluetoothTest.ConstructDefaultAdapte.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0018-Incrementing-VERSION-to-102.0.5005.131.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0019-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0020-Incrementing-VERSION-to-102.0.5005.132.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0021-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0022-Incrementing-VERSION-to-102.0.5005.133.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0023-Incrementing-VERSION-to-102.0.5005.134.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0024-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0025-Incrementing-VERSION-to-102.0.5005.135.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0026-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0027-Incrementing-VERSION-to-102.0.5005.136.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0028-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0029-M102-infra-add-free_space-dimension-to-Chromium.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0030-infra-Migrate-configs-for-android_cronet-src-side.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0031-M102-Print-Preview-Fix-missing-destinations-in-dialo.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0032-Incrementing-VERSION-to-102.0.5005.137.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0033-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0034-Incrementing-VERSION-to-102.0.5005.138.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0035-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0036-5005-infra-Add-the-root-vpython-spec-files-to-orches.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0037-Incrementing-VERSION-to-102.0.5005.139.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0038-Incrementing-VERSION-to-102.0.5005.140.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0039-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0040-Incrementing-VERSION-to-102.0.5005.141.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0041-Incrementing-VERSION-to-102.0.5005.142.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0042-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0043-Incrementing-VERSION-to-102.0.5005.143.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0044-testing-fix-check_static_initializers.py-for-python3.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0045-sheriff-Disable-QuarantineMacTest.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0046-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0047-migrate-metrics_python_tests-to-python3-for-M102.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0048-M102-Let-GPU-Intel-Macs-target-12.4.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0049-Incrementing-VERSION-to-102.0.5005.144.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0050-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0051-Incrementing-VERSION-to-102.0.5005.145.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0052-Disable-IntegrationTest.SelfUpdateFromOldReal-in-M10.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0053-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0054-Incrementing-VERSION-to-102.0.5005.146.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0055-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0056-Incrementing-VERSION-to-102.0.5005.147.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0057-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
 create mode 100644 srcpkgs/electron19/files/chromium-upstream-patches/0058-Incrementing-VERSION-to-102.0.5005.148.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-musl-hacks.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-musl-libc++.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-musl-sandbox.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-musl-tid-caching.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-no-mallinfo.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-quiche-arena-size.patch
 create mode 100644 srcpkgs/electron19/files/musl-patches/chromium-xxx-ppc64le-support.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-102-fenced_frame_utils-include.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-102-regex_pattern-array.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-93-ffmpeg-4.4.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-browser-size_t.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-cursed^Uscoped_file.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-missing-cstdint-include-musl.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-musl-missing-unistd_h-include.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-narrowing-cast.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-nasm-musl-config.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-perfetto-GetThreadName-musl.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-resolver-musl.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-stack-utils-with-musl.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-swiftshader-llvm-musl-config.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-fix-unbundled-libxmnl.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-libc_malloc.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-musl-stat.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-musl-v8-monotonic-pthread-cont_timedwait.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-no-execinfo.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-no-getcontext.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-no-opaque-pointers.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-remove-sys-cdefs-includes.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-revert-drop-of-system-java.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch.args
 create mode 100644 srcpkgs/electron19/files/patches/chromium-sandbox-membarrier.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-sandbox-sched_getparam.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-sndio.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-system-nodejs.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-system-nodejs.patch:q
 create mode 100644 srcpkgs/electron19/files/patches/chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch.args
 create mode 100644 srcpkgs/electron19/files/patches/chromium-webrtc-r0.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-webrtc-size_t.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-4k-pages.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-libvpx.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-sandbox-linux-stat.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-support.patch
 create mode 100644 srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-swiftshader.patch
 create mode 100644 srcpkgs/electron19/files/patches/electron-Add-a-script-to-list-patch-targets.patch.patch
 create mode 100644 srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
 create mode 100644 srcpkgs/electron19/files/patches/electron-exclude-content-test-patches.patch
 create mode 100644 srcpkgs/electron19/files/patches/electron-no-need-for-husky.patch
 create mode 100644 srcpkgs/electron19/files/patches/electron-std-vector-non-const.patch
 create mode 100644 srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.cc
 create mode 100644 srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.h
 create mode 100644 srcpkgs/electron19/files/sndio-files/sndio_input.cc
 create mode 100644 srcpkgs/electron19/files/sndio-files/sndio_input.h
 create mode 100644 srcpkgs/electron19/files/sndio-files/sndio_output.cc
 create mode 100644 srcpkgs/electron19/files/sndio-files/sndio_output.h
 create mode 100644 srcpkgs/electron19/files/sndio-patches/media_audio_linux_audio_manager_linux.cc.patch
 create mode 100644 srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_BUILD.gn.patch
 create mode 100644 srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_audio_BUILD.gn.patch
 create mode 100644 srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_media__options.gni.patch
 create mode 100644 srcpkgs/electron19/template
 create mode 100644 srcpkgs/electron19/update

diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0001-skylab_tests-Update-skylab-tests-cros-img-version.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0001-skylab_tests-Update-skylab-tests-cros-img-version.patch
new file mode 100644
index 000000000000..7bdf18731ab7
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0001-skylab_tests-Update-skylab-tests-cros-img-version.patch
@@ -0,0 +1,92 @@
+From af94ae30d03668f0f4c93852d8e2d1f88ed04c62 Mon Sep 17 00:00:00 2001
+From: Skylab tests cros image roller
+ <skylab-test-cros-roller@chops-service-accounts.iam.gserviceaccount.com>
+Date: Fri, 10 Jun 2022 00:38:54 +0000
+Subject: [PATCH 01/59] [skylab_tests] Update skylab tests cros img version
+
+This CL will update cros image version for skylab tests. CROS_BOARD_LKGM
+is updated according to chromeos/CHROMEOS_LKGM; CROS_BOARD_DEV,
+CROS_BOARD_BETA and CROS_BOARD_STABLE are updated according to Omaha.
+
+If this CL caused regressions, please revert and pause the autoroller at
+https://luci-scheduler.appspot.com/jobs/chrome/lacros-skylab-tests-cros-img-roller
+Also please file a bug to OS>LaCrOS>Partner, and CC svenzheng@chromium.org,
+yjt@google.com.
+
+
+R=rubber-stamper@appspot.gserviceaccount.com
+
+Requires-Testing: True
+Change-Id: I5b29e1b2b6de832dc51758037519f76f3f8f7ebd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3698986
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: skylab-test-cros-roller@chops-service-accounts.iam.gserviceaccount.com <skylab-test-cros-roller@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1160}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ testing/buildbot/variants.pyl | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
+index d6a822d49671..389bb3539547 100644
+--- a/testing/buildbot/variants.pyl
++++ b/testing/buildbot/variants.pyl
+@@ -919,8 +919,8 @@
+   'CROS_ATLAS_RELEASE_BETA': {
+     'skylab': {
+       'cros_board': 'atlas',
+-      'cros_chrome_version': '103.0.5060.33',
+-      'cros_img': 'atlas-release/R103-14816.41.0',
++      'cros_chrome_version': '103.0.5060.37',
++      'cros_img': 'atlas-release/R103-14816.49.0',
+     },
+     'enabled': False,
+     'identifier': 'ATLAS_RELEASE_BETA',
+@@ -955,8 +955,8 @@
+   'CROS_EVE_RELEASE_BETA': {
+     'skylab': {
+       'cros_board': 'eve',
+-      'cros_chrome_version': '103.0.5060.33',
+-      'cros_img': 'eve-release/R103-14816.41.0',
++      'cros_chrome_version': '103.0.5060.37',
++      'cros_img': 'eve-release/R103-14816.49.0',
+     },
+     'enabled': False,
+     'identifier': 'EVE_RELEASE_BETA',
+@@ -1000,8 +1000,8 @@
+   'CROS_HANA_RELEASE_BETA': {
+     'skylab': {
+       'cros_board': 'hana',
+-      'cros_chrome_version': '103.0.5060.33',
+-      'cros_img': 'hana-release/R103-14816.41.0',
++      'cros_chrome_version': '103.0.5060.37',
++      'cros_img': 'hana-release/R103-14816.49.0',
+     },
+     'enabled': False,
+     'identifier': 'HANA_RELEASE_LKGM',
+@@ -1036,8 +1036,8 @@
+   'CROS_JACUZZI_RELEASE_BETA': {
+     'skylab': {
+       'cros_board': 'jacuzzi',
+-      'cros_chrome_version': '103.0.5060.33',
+-      'cros_img': 'jacuzzi-release/R103-14816.41.0',
++      'cros_chrome_version': '103.0.5060.37',
++      'cros_img': 'jacuzzi-release/R103-14816.49.0',
+     },
+     'enabled': False,
+     'identifier': 'JACUZZI_RELEASE_BETA',
+@@ -1081,8 +1081,8 @@
+   'CROS_OCTOPUS_RELEASE_BETA': {
+     'skylab': {
+       'cros_board': 'octopus',
+-      'cros_chrome_version': '103.0.5060.33',
+-      'cros_img': 'octopus-release/R103-14816.41.0',
++      'cros_chrome_version': '103.0.5060.37',
++      'cros_img': 'octopus-release/R103-14816.49.0',
+     },
+     'enabled': False,
+     'identifier': 'OCTOPUS_RELEASE_BETA',
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0002-lacros-skew-tests-Refresh-skew-tests-for-M104.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0002-lacros-skew-tests-Refresh-skew-tests-for-M104.patch
new file mode 100644
index 000000000000..81e09d8d6a6f
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0002-lacros-skew-tests-Refresh-skew-tests-for-M104.patch
@@ -0,0 +1,404 @@
+From 30137148967bd1f918af493ad0fe82384924ccdf Mon Sep 17 00:00:00 2001
+From: chrome-weblayer-builder
+ <chrome-weblayer-builder@chops-service-accounts.iam.gserviceaccount.com>
+Date: Fri, 10 Jun 2022 01:23:33 +0000
+Subject: [PATCH 02/59] [lacros skew tests] Refresh skew tests for M104
+
+This CL updates the ash version ['104.0.5111.0'] for Lacros version skew testing.
+If this CL caused regressions, please revert and stop the autoroller
+at https://luci-scheduler.appspot.com/jobs/chrome/lacros-version-skew-roller
+Also please file a bug to OS>LaCrOS>Partner, and CC svenzheng@chromium.org,
+yjt@google.com.
+
+R=rubber-stamper@appspot.gserviceaccount.com
+
+Bug: None
+Change-Id: I95e56d3c445e495ed1d9a36441249615db9af009
+Requires-Testing: True
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3696160
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: chrome-weblayer-builder <chrome-weblayer-builder@chops-service-accounts.iam.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1161}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ testing/buildbot/chromium.chromiumos.json | 20 +++---
+ testing/buildbot/chromium.fyi.json        | 80 +++++++++++------------
+ testing/buildbot/variants.pyl             |  8 +--
+ 3 files changed, 54 insertions(+), 54 deletions(-)
+
+diff --git a/testing/buildbot/chromium.chromiumos.json b/testing/buildbot/chromium.chromiumos.json
+index 82941bc7cd72..4ce3bb7c9e91 100644
+--- a/testing/buildbot/chromium.chromiumos.json
++++ b/testing/buildbot/chromium.chromiumos.json
+@@ -6018,21 +6018,21 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "isolate_profile_data": true,
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -6044,7 +6044,7 @@
+         },
+         "test": "lacros_chrome_browsertests",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -6161,21 +6161,21 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "isolate_profile_data": true,
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -6187,7 +6187,7 @@
+         },
+         "test": "lacros_chrome_browsertests_run_in_series",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+diff --git a/testing/buildbot/chromium.fyi.json b/testing/buildbot/chromium.fyi.json
+index 3d4f3c3b2c9f..f3e2e4997888 100644
+--- a/testing/buildbot/chromium.fyi.json
++++ b/testing/buildbot/chromium.fyi.json
+@@ -87176,28 +87176,28 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "isolate_profile_data": true,
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+         },
+         "test": "lacros_chrome_browsertests",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -87294,28 +87294,28 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "isolate_profile_data": true,
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+         },
+         "test": "lacros_chrome_browsertests_run_in_series",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -88682,20 +88682,20 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -88708,7 +88708,7 @@
+         },
+         "test": "lacros_chrome_browsertests",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -88825,20 +88825,20 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -88851,7 +88851,7 @@
+         },
+         "test": "lacros_chrome_browsertests_run_in_series",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -90381,20 +90381,20 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -90407,7 +90407,7 @@
+         },
+         "test": "lacros_chrome_browsertests",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -90524,20 +90524,20 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "dimension_sets": [
+@@ -90550,7 +90550,7 @@
+         },
+         "test": "lacros_chrome_browsertests_run_in_series",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -91286,27 +91286,27 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+         },
+         "test": "lacros_chrome_browsertests",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       },
+       {
+         "args": [
+@@ -91382,27 +91382,27 @@
+       },
+       {
+         "args": [
+-          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome"
++          "--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome"
+         ],
+         "merge": {
+           "args": [],
+           "script": "//testing/merge_scripts/standard_gtest_merge.py"
+         },
+-        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5109.0",
++        "name": "lacros_chrome_browsertests_run_in_series Lacros version skew testing ash 104.0.5111.0",
+         "swarming": {
+           "can_use_on_swarming_builders": true,
+           "cipd_packages": [
+             {
+               "cipd_package": "chromium/testing/linux-ash-chromium/x86_64/ash.zip",
+-              "location": "lacros_version_skew_tests_v104.0.5109.0",
+-              "revision": "version:104.0.5109.0"
++              "location": "lacros_version_skew_tests_v104.0.5111.0",
++              "revision": "version:104.0.5111.0"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+         },
+         "test": "lacros_chrome_browsertests_run_in_series",
+         "test_id_prefix": "ninja://chrome/test:lacros_chrome_browsertests_run_in_series/",
+-        "variant_id": "Lacros version skew testing ash 104.0.5109.0"
++        "variant_id": "Lacros version skew testing ash 104.0.5111.0"
+       }
+     ]
+   },
+diff --git a/testing/buildbot/variants.pyl b/testing/buildbot/variants.pyl
+index 389bb3539547..4f39dbcf07ba 100644
+--- a/testing/buildbot/variants.pyl
++++ b/testing/buildbot/variants.pyl
+@@ -28,15 +28,15 @@
+   },
+   'LACROS_VERSION_SKEW_CANARY': {
+     'args': [
+-      '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5109.0/test_ash_chrome',
++      '--ash-chrome-path-override=../../lacros_version_skew_tests_v104.0.5111.0/test_ash_chrome',
+     ],
+-    'identifier': 'Lacros version skew testing ash 104.0.5109.0',
++    'identifier': 'Lacros version skew testing ash 104.0.5111.0',
+     'swarming': {
+       'cipd_packages': [
+         {
+           'cipd_package': 'chromium/testing/linux-ash-chromium/x86_64/ash.zip',
+-          'location': 'lacros_version_skew_tests_v104.0.5109.0',
+-          'revision': 'version:104.0.5109.0',
++          'location': 'lacros_version_skew_tests_v104.0.5111.0',
++          'revision': 'version:104.0.5111.0',
+         },
+       ],
+     },
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0003-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0003-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..a6c156042ca7
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0003-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,751 @@
+From 3bc634919d42b33ab0b8749d0be44ae8df94eeef Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Fri, 10 Jun 2022 15:01:44 +0000
+Subject: [PATCH 03/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I203671558bf72ece1dc32d28027ad7e9f9c62341
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3700111
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1162}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_fa.xtb                | 10 ++---
+ ash/strings/ash_strings_ky.xtb                |  4 +-
+ .../app/resources/generated_resources_ar.xtb  | 16 ++++----
+ .../app/resources/generated_resources_ca.xtb  |  2 +-
+ .../app/resources/generated_resources_fa.xtb  | 38 +++++++++----------
+ .../app/resources/generated_resources_hr.xtb  |  4 +-
+ .../app/resources/generated_resources_iw.xtb  | 14 +++----
+ .../app/resources/generated_resources_ko.xtb  |  2 +-
+ .../app/resources/generated_resources_mr.xtb  |  2 +-
+ .../app/resources/generated_resources_sl.xtb  |  4 +-
+ .../app/resources/generated_resources_th.xtb  |  2 +-
+ .../app/resources/generated_resources_uk.xtb  |  2 +-
+ .../app/resources/generated_resources_ur.xtb  |  2 +-
+ chromeos/strings/chromeos_strings_ca.xtb      |  2 +-
+ chromeos/strings/chromeos_strings_id.xtb      |  2 +-
+ .../resources/policy_templates_pt-BR.xtb      |  2 +-
+ components/strings/components_strings_eu.xtb  |  2 +-
+ components/strings/components_strings_fa.xtb  |  6 +--
+ components/strings/components_strings_te.xtb  |  2 +-
+ .../blink_accessibility_strings_fa.xtb        |  2 +-
+ .../strings/translations/blink_strings_fa.xtb |  4 +-
+ .../translations/ui_chromeos_strings_af.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_ca.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_ne.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_uk.xtb   |  2 +-
+ .../ui_chromeos_strings_zh-TW.xtb             |  2 +-
+ 26 files changed, 67 insertions(+), 67 deletions(-)
+
+diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
+index 1ae6274c4fae..297fa02a8dcc 100644
+--- a/ash/strings/ash_strings_fa.xtb
++++ b/ash/strings/ash_strings_fa.xtb
+@@ -329,7 +329,7 @@
+ <translation id="2977598380246111477">عدد بعدی</translation>
+ <translation id="2981684127883932071">نمایش پیشنهادها</translation>
+ <translation id="2992327365391326550">دکمه میکروفون دستگاه خاموش است.</translation>
+-<translation id="2995447421581609334">نمایش دستگاه‌های ارسال محتوا.</translation>
++<translation id="2995447421581609334">نمایش دستگاه‌های پخش محتوا.</translation>
+ <translation id="2996462380875591307">‏«ذره‌بین متصل» فعال شد. برای خاموش کردن آن، Ctrl+Search+D را دوباره فشار دهید.</translation>
+ <translation id="3000461861112256445">صدای مونو</translation>
+ <translation id="3009178788565917040">خروجی</translation>
+@@ -570,7 +570,7 @@
+ <translation id="4338109981321384717">ذره‌بین</translation>
+ <translation id="4351433414020964307">دستیار درحال بار کردن است...</translation>
+ <translation id="4356930093361201197">حالت تضاد بالا</translation>
+-<translation id="4371348193907997655">تنظیمات ارسال محتوا</translation>
++<translation id="4371348193907997655">تنظیمات پخش محتوا</translation>
+ <translation id="4378479437904450384"><ph name="WIRELESS_PROVIDER" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" /> درصد</translation>
+ <translation id="4378551569595875038">در حال اتصال..</translation>
+ <translation id="4379531060876907730">این‌ها ابزارهای قلم شما هستند</translation>
+@@ -616,7 +616,7 @@
+ <translation id="4578196883126898996">میکروفون شما خاموش است، دکمه میکروفون دستگاهتان را روشن کنید.</translation>
+ <translation id="4578906031062871102">منوی تنظیمات باز شد</translation>
+ <translation id="4581047786858252841">میکروفون روشن است</translation>
+-<translation id="4585337515783392668">توقف ارسال محتوا به گیرنده ناشناس</translation>
++<translation id="4585337515783392668">توقف پخش محتوا به گیرنده ناشناس</translation>
+ <translation id="4586483766170476230">توقف دوربین خودگرفت</translation>
+ <translation id="4587299710837179226">میکروفون خاموش است</translation>
+ <translation id="4596144739579517758">زمینه تیره خاموش است</translation>
+@@ -911,7 +911,7 @@
+ <translation id="65320610082834431">اموجی‌ها</translation>
+ <translation id="6537924328260219877">قدرت سیگنال <ph name="SIGNAL_STRENGTH" />، باتری تلفن <ph name="BATTERY_STATUS" /></translation>
+ <translation id="6539852571005954999">بارگیری <ph name="FILENAME" /> درحال اسکن</translation>
+-<translation id="6542521951477560771">ارسال محتوا به <ph name="RECEIVER_NAME" /></translation>
++<translation id="6542521951477560771">پخش محتوا به <ph name="RECEIVER_NAME" /></translation>
+ <translation id="655633303491376835"><ph name="APP_NAME" />
+ نصب جدید</translation>
+ <translation id="6559976592393364813">سؤال از سرپرست</translation>
+@@ -1344,7 +1344,7 @@
+ <translation id="9178475906033259337">نمایش ۱ نتیجه برای <ph name="QUERY" /></translation>
+ <translation id="9179259655489829027">این ویژگی امکان می‌دهد بدون نیاز به گذرواژه، به هر کاربری که به سیستم واردشده به‌سرعت دسترسی داشته باشید. تنها برای حساب‌های مورد اعتمادتان از این ویژگی استفاده کنید.</translation>
+ <translation id="9183456764293710005">ذره‌بین تمام‌صفحه</translation>
+-<translation id="9193626018745640770">درحال ارسال محتوا به گیرنده ناشناس</translation>
++<translation id="9193626018745640770">درحال پخش محتوا به گیرنده ناشناس</translation>
+ <translation id="9194617393863864469">ورود به سیستم حسابی دیگر...</translation>
+ <translation id="9198992156681343238">وضوح <ph name="DISPLAY_NAME" /> به <ph name="RESOLUTION" /> تغییر کرد. برای حفظ تغییرات، روی تأیید کلیک کنید. تنظیمات قبلی <ph name="TIMEOUT_SECONDS" /> دیگر بازیابی خواهد شد.</translation>
+ <translation id="9201044636667689546">‏<ph name="NAME" /> را به این Chromebook متصل کنید</translation>
+diff --git a/ash/strings/ash_strings_ky.xtb b/ash/strings/ash_strings_ky.xtb
+index f64658ebacfe..3816b25eca33 100644
+--- a/ash/strings/ash_strings_ky.xtb
++++ b/ash/strings/ash_strings_ky.xtb
+@@ -85,7 +85,7 @@
+ <translation id="1341651618736211726">Кошумча</translation>
+ <translation id="1346748346194534595">Оң</translation>
+ <translation id="1351937230027495976">Менюну жыйыштыруу</translation>
+-<translation id="1364382257761975320">Chromebook'тун кулпусун ачуу үчүн манжаңыздын изин колдонуңуз</translation>
++<translation id="1364382257761975320">Chromebook'тун кулпусун манжаңыздын изи менен ачыңыз</translation>
+ <translation id="1364618750746929654">Транскрипция түзүлгөн жок</translation>
+ <translation id="1372545819342940910">Иш тактаны кийинкиге сактоо</translation>
+ <translation id="1383597849754832576">Кеп файлдары жүктөлүп алынган жок. Кийинчерээк кайталаңыз.</translation>
+@@ -240,7 +240,7 @@
+ <translation id="2369165858548251131">Кытайча "Салам"</translation>
+ <translation id="2390318262976603432">Тил жөндөөлөрү</translation>
+ <translation id="240006516586367791">Медианы башкаруу элементтери</translation>
+-<translation id="2402411679569069051">Chromebook'тун кулпусун ачуу үчүн манжаңыздын изин колдонуңуз же телефонуңуздун кулпусун ачыңыз</translation>
++<translation id="2402411679569069051">Chromebook'тун кулпусун манжаңыздын изи менен ачыңыз же телефонуңуздун кулпусун ачыңыз</translation>
+ <translation id="2405664212338326887">Туташкан жок</translation>
+ <translation id="2408955596600435184">PIN кодуңузду киргизиңиз</translation>
+ <translation id="2412593942846481727">Жаңы версия бар</translation>
+diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
+index 0f3b8a2fce9d..62cc88d48a2e 100644
+--- a/chrome/app/resources/generated_resources_ar.xtb
++++ b/chrome/app/resources/generated_resources_ar.xtb
+@@ -1131,7 +1131,7 @@
+ <translation id="2082187087049518845">إضافة علامة التبويب إلى مجموعة جديدة</translation>
+ <translation id="2082510809738716738">اختيار لون المظهر</translation>
+ <translation id="208586643495776849">يُرجى إعادة المحاولة</translation>
+-<translation id="208634871997892083">‏الشبكة الافتراضية الخاصة (VPN) قيد التشغيل دائمًا</translation>
++<translation id="208634871997892083">‏شبكة افتراضية خاصة (VPN) قيد التشغيل دائمًا</translation>
+ <translation id="2087822576218954668">الطباعة: <ph name="PRINT_NAME" /></translation>
+ <translation id="2088092308059522196">لن يُتاح التسجيل إلا بعد تثبيت نظام التشغيل <ph name="DEVICE_OS" />.</translation>
+ <translation id="208928984520943006">للوصول إلى الشاشة الرئيسية في أي وقت، مرّر سريعًا بإصبعك من أسفل الشاشة إلى أعلاها.</translation>
+@@ -1169,7 +1169,7 @@
+ <translation id="2105809836724866556">تم إخفاء <ph name="MODULE_TITLE" />.</translation>
+ <translation id="2108349519800154983">{COUNT,plural, =1{رقم هاتف واحد}zero{# رقم هاتف}two{رقما هاتف}few{# أرقام هاتف}many{# رقم هاتف}other{# رقم هاتف}}</translation>
+ <translation id="211144231511833662">محو الأنواع</translation>
+-<translation id="2111670510994270194">إضافة علامة تبويب جديدة يمينًا</translation>
++<translation id="2111670510994270194">إضافة علامة تبويب جديدة على اليمين</translation>
+ <translation id="2112554630428445878">مرحبًا، <ph name="USERNAME" /></translation>
+ <translation id="21133533946938348">تثبيت علامة التبويب</translation>
+ <translation id="2113479184312716848">فتح &amp;ملف...</translation>
+@@ -1545,7 +1545,7 @@
+ <translation id="244231003699905658">العنوان غير صالح يُرجى التحقّق من العنوان وإعادة المحاولة.</translation>
+ <translation id="2442916515643169563">ظل النص</translation>
+ <translation id="2443487764245141020">قد تحتاج المواقع الإلكترونية أيضًا إلى التعرُّف على جهازك باستخدام أحد المعرّفات.</translation>
+-<translation id="244475495405467108">إغلاق علامات التبويب على اليمين</translation>
++<translation id="244475495405467108">إغلاق علامات التبويب على اليسار</translation>
+ <translation id="2445081178310039857">دليل الجذر للإضافة مطلوب.</translation>
+ <translation id="2445484935443597917">إنشاء ملف شخصي جديد</translation>
+ <translation id="244641233057214044">ذو صلة بعملية البحث</translation>
+@@ -2301,7 +2301,7 @@
+ <translation id="3164329792803560526">مشاركة علامة التبويب هذه مع <ph name="APP_NAME" /></translation>
+ <translation id="3165390001037658081">قد يحظر بعض مشغلي شبكات الجوّال هذه الميزة.</translation>
+ <translation id="3170072451822350649">يمكنك أيضًا تخطي تسجيل الدخول و<ph name="LINK_START" />التصفح كضيف<ph name="LINK_END" />.</translation>
+-<translation id="31774765611822736">إضافة علامة تبويب جديدة على اليمين</translation>
++<translation id="31774765611822736">إضافة علامة تبويب جديدة على اليسار</translation>
+ <translation id="3177909033752230686">لغة الصفحة:</translation>
+ <translation id="3179982752812949580">خط النص</translation>
+ <translation id="3181954750937456830">التصفُّح الآمن (يحميك ويحمي جهازك من المواقع الإلكترونية الضارة)</translation>
+@@ -3164,7 +3164,7 @@
+ <translation id="4021279097213088397">–</translation>
+ <translation id="402184264550408568">‏بروتوكول (TCP)</translation>
+ <translation id="4021909830315618592">نسخ تفاصيل الإصدار</translation>
+-<translation id="4021941025609472374">إغلاق علامات التبويب على اليمين</translation>
++<translation id="4021941025609472374">إغلاق علامات التبويب على اليسار</translation>
+ <translation id="4022426551683927403">إ&amp;ضافة إلى القاموس</translation>
+ <translation id="4023146161712577481">جارٍ تحديد تكوين الجهاز.</translation>
+ <translation id="4025039777635956441">كتم صوت الموقع الإلكتروني المحدد</translation>
+@@ -3868,7 +3868,7 @@
+ <translation id="4742970037960872810">إزالة التمييز</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />التعرّف على كيفية تحديث التطبيقات<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{إعادة صوت موقع إلكتروني واحد}zero{إعادة صوت المواقع الإلكترونية}two{إعادة صوت موقعيِّ الويب}few{إعادة صوت المواقع الإلكترونية}many{إعادة صوت المواقع الإلكترونية}other{إعادة صوت المواقع الإلكترونية}}</translation>
+-<translation id="474609389162964566">‏الوصول إلى "مساعد Google" من خلال قول الكلمة المفتاح Ok Google</translation>
++<translation id="474609389162964566">‏الوصول إلى "مساعد Google" من خلال قول Ok Google</translation>
+ <translation id="4746351372139058112">الرسائل</translation>
+ <translation id="4748783296226936791">‏تتّصل المواقع الإلكترونية عادةً بأجهزة HID لتتيح الميزات التي تستخدم لوحات المفاتيح غير العادية ووحدات التحكّم في الألعاب وغيرها من الأجهزة.</translation>
+ <translation id="4750185073185658673">‏عليك الانتقال إلى هاتفك لمراجعة بعض الأذونات الإضافية. تأكَّد من تفعيل البلوتوث وWi-Fi على هاتفك.</translation>
+@@ -4972,7 +4972,7 @@
+ <translation id="5870155679953074650">الأخطاء الجسيمة</translation>
+ <translation id="5875534259258494936">تم إنهاء مشاركة الشاشة</translation>
+ <translation id="5876576639916258720">يتم الآن التنفيذ...</translation>
+-<translation id="5876851302954717356">إضافة علامة تبويب جديدة يمينًا</translation>
++<translation id="5876851302954717356">إضافة علامة تبويب جديدة على اليمين</translation>
+ <translation id="5877064549588274448">تم تغيير القناة. يمكنك إعادة تشغيل الجهاز لتدخل التغييرات حيز التنفيذ.</translation>
+ <translation id="5877584842898320529">الطابعة المُختارة غير متاحة أو لم يتم تثبيتها بشكلٍ صحيح. <ph name="BR" /> يُرجى التحقُّق من الطابعة أو تجربة اختيار طابعة أخرى.</translation>
+ <translation id="5882919346125742463">الشبكات المعروفة</translation>
+@@ -6717,7 +6717,7 @@
+ <translation id="7622966771025050155">التبديل إلى علامة التبويب التي يتم تسجيلها</translation>
+ <translation id="7624337243375417909">‏مفتاح caps lock متوقف</translation>
+ <translation id="7625568159987162309">عرض الأذونات والبيانات المُخزَّنة على المواقع</translation>
+-<translation id="7625823789272218216">إضافة علامة تبويب جديدة على اليمين</translation>
++<translation id="7625823789272218216">إضافة علامة تبويب جديدة على اليسار</translation>
+ <translation id="7626032353295482388">‏مرحبًا بك في Chrome‏</translation>
+ <translation id="7628201176665550262">معدّل إعادة التحميل</translation>
+ <translation id="7629827748548208700">علامة التبويب: <ph name="TAB_NAME" /></translation>
+diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
+index 34e962d18fe8..cc790fea63b6 100644
+--- a/chrome/app/resources/generated_resources_ca.xtb
++++ b/chrome/app/resources/generated_resources_ca.xtb
+@@ -7084,7 +7084,7 @@ Prem un interruptor o una tecla assignats per suprimir una assignació.</transla
+ <translation id="7961015016161918242">Mai</translation>
+ <translation id="7963001036288347286">Acceleració del ratolí tàctil</translation>
+ <translation id="7963608432878156675">Altres dispositius poden veure aquest nom per a les connexions Bluetooth i a la xarxa</translation>
+-<translation id="7963826112438303517">L'Assistent utilitza aquestes gravacions i les sol·licituds de veu per crear i actualitzar el teu model de veu, que només es desa als dispositius en què has activat Voice Match. Consulta l'activitat de veu o torna a entrenar el model a Configuració de l'Assistent.</translation>
++<translation id="7963826112438303517">L'Assistent utilitza aquestes gravacions i les sol·licituds de veu per crear i actualitzar el teu model de veu, que només es desa als dispositius en què has activat Voice Match. Consulta l'activitat de veu o torna a entrenar el model a la configuració de l'Assistent.</translation>
+ <translation id="7966241909927244760">C&amp;opia l'adreça de la imatge</translation>
+ <translation id="7966571622054096916">{COUNT,plural, =1{1 element a la llista d'adreces d'interès}other{{COUNT} elements a la llista d'adreces d'interès}}</translation>
+ <translation id="7968072247663421402">Opcions de proveïdors</translation>
+diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
+index 3efc0d74cd22..05d479b3f7ee 100644
+--- a/chrome/app/resources/generated_resources_fa.xtb
++++ b/chrome/app/resources/generated_resources_fa.xtb
+@@ -79,7 +79,7 @@
+     <ph name="BEGIN_PARAGRAPH4" />اگر تنظیم «فعالیت وب و برنامه» تکمیلی برای «حساب Google» فرزندتان روشن باشد، ممکن است داده‌های فرزندتان در «حساب Google» او ذخیره شود. در families.google.com، درباره این تنظیمات و نحوه تغییر آن‌ها بیشتر بدانید.<ph name="END_PARAGRAPH4" />
+     <ph name="BEGIN_PARAGRAPH4" />اگر مالک دستگاه «ارسال داده‌های استفاده و عیب‌یابی» را روشن کند، ممکن است گزارش‌های خرابی نیز برای Google بارگذاری شود.<ph name="END_PARAGRAPH3" /></translation>
+ <translation id="1076176485976385390">پیمایش کردن صفحه‌ها با نشانگر نوشتار</translation>
+-<translation id="1076382954055048850">نمایش جلسه‌های دیگر ارسال محتوا</translation>
++<translation id="1076382954055048850">نمایش جلسه‌های دیگر پخش محتوا</translation>
+ <translation id="1076698951459398590">فعال کردن زمینه</translation>
+ <translation id="1076766328672150609">فرزندتان می‌تواند برای باز کردن قفل دستگاه از پین استفاده کند.</translation>
+ <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
+@@ -176,7 +176,7 @@
+ <translation id="1163931534039071049">&amp;نمای منبع قاب</translation>
+ <translation id="1164891049599601209">در سایت فریب‌دهنده وارد شده است</translation>
+ <translation id="1165039591588034296">خطا</translation>
+-<translation id="1166212789817575481">بستن برگه‌ها به چپ</translation>
++<translation id="1166212789817575481">بستن برگه‌های سمت راست</translation>
+ <translation id="1166583374608765787">مرور به‌روزرسانی نام</translation>
+ <translation id="1166596238782048887"><ph name="TAB_TITLE" /> به میزکار <ph name="DESK_TITLE" /> تعلق دارد</translation>
+ <translation id="1168020859489941584">باز کردن با <ph name="TIME_REMAINING" />...</translation>
+@@ -1175,7 +1175,7 @@
+ <translation id="2105809836724866556"><ph name="MODULE_TITLE" /> پنهان شده است</translation>
+ <translation id="2108349519800154983">{COUNT,plural, =1{شماره تلفن}one{# شماره تلفن}other{# شماره تلفن}}</translation>
+ <translation id="211144231511833662">پاک کردن نوع</translation>
+-<translation id="2111670510994270194">برگه جدید در راست</translation>
++<translation id="2111670510994270194">برگه جدید در سمت راست</translation>
+ <translation id="2112554630428445878">خوش آمدید، <ph name="USERNAME" /></translation>
+ <translation id="21133533946938348">کوچک کردن برگه</translation>
+ <translation id="2113479184312716848">باز کردن &amp;فایل...</translation>
+@@ -1337,7 +1337,7 @@
+ <translation id="2263189956353037928">خروج از سیستم و ورود دوباره به آن</translation>
+ <translation id="2263371730707937087">نرخ بازآوری صفحه</translation>
+ <translation id="2263679799334060788">‏بازخورد شما به ما کمک می‌کند Google Cast را بهبود ببخشیم و بابت ارائه آن از شما سپاس‌گزاریم.
+-    برای دریافت راهنمایی درباره عیب‌یابی مشکلات ارسال محتوا، لطفاً به
++    برای دریافت راهنمایی درباره عیب‌یابی مشکلات پخش محتوا، لطفاً به
+     <ph name="BEGIN_LINK" />
+     مرکز راهنمایی<ph name="END_LINK" /> مراجعه کنید.</translation>
+ <translation id="22665427234727190">وقتی سایتی می‌خواهد به دستگاه‌های مجهز به بلوتوث دسترسی پیدا کند سؤال شود (توصیه می‌شود)</translation>
+@@ -2196,7 +2196,7 @@
+ <translation id="3046910703532196514">صفحهٔ وب، کامل</translation>
+ <translation id="304747341537320566">موتورهای گفتار</translation>
+ <translation id="3048336643003835855">‏دستگاه‌های HID از فروشنده <ph name="VENDOR_ID" /></translation>
+-<translation id="3048917188684939573">گزارش‌های ارسال محتوا و دستگاه‌ها</translation>
++<translation id="3048917188684939573">گزارش‌های پخش محتوا و دستگاه‌ها</translation>
+ <translation id="3051250416341590778">اندازه نمایش</translation>
+ <translation id="3053013834507634016">کاربرد کلید گواهی</translation>
+ <translation id="3053273573829329829">فعال کردن پین کاربر</translation>
+@@ -2309,7 +2309,7 @@
+ <translation id="3164329792803560526">درحال هم‌رسانی این برگه با <ph name="APP_NAME" /></translation>
+ <translation id="3165390001037658081">برخی شرکت‌های مخابراتی ممکن است این قابلیت را مسدود کنند.</translation>
+ <translation id="3170072451822350649">همچنین می‌توانید از ورود به سیستم صرف‌نظر کرده، <ph name="LINK_START" />به عنوان مهمان مرور کنید<ph name="LINK_END" />.</translation>
+-<translation id="31774765611822736">برگه جدید در چپ</translation>
++<translation id="31774765611822736">برگه جدید در سمت چپ</translation>
+ <translation id="3177909033752230686">زبان صفحه:</translation>
+ <translation id="3179982752812949580">قلم نوشتار</translation>
+ <translation id="3181954750937456830">مرور ایمن (از شما و دستگاهتان درمقابل سایت‌های خطرناک محافظت می‌کند)</translation>
+@@ -2503,7 +2503,7 @@
+ <translation id="3393582007140394275">محتوای صفحه ارسال نشد.</translation>
+ <translation id="3394850431319394743">سایت‌هایی که مجاز هستند از شناسه‌ها برای پخش محتوای محافظت‌شده استفاده کنند</translation>
+ <translation id="3396744558790608201">‏برای جستجوی هر بخشی از سایت و دریافت اطلاعات بیشتر درباره محتوای بصری که هنگام مرور و خرید در وب می‌بینید، کلیک راست کنید و «جستجوی تصاویر با «لنز Google»» را انتخاب کنید.</translation>
+-<translation id="3396800784455899911">‏با کلیک کردن روی دکمه «پذیرفتن و ادامه»، با پردازش مربوط به این سرویس‌های Google که در بالا توضیح داده شد موافقت می‌کنید.</translation>
++<translation id="3396800784455899911">‏با کلیک کردن روی دکمه «پذیرفتن و ادامه دادن»، با پردازش مربوط به این سرویس‌های Google که در بالا توضیح داده شد موافقت می‌کنید.</translation>
+ <translation id="339722927132407568">ثابت می‌ماند</translation>
+ <translation id="3399432415385675819">اعلان‌ها غیرفعال خواهند شد</translation>
+ <translation id="3400390787768057815"><ph name="WIDTH" /> × <ph name="HEIGHT" /> (<ph name="REFRESH_RATE" /> هرتز) - درهم‌بافته</translation>
+@@ -3480,7 +3480,7 @@
+ <translation id="4348766275249686434">جمع‌آوری خطاها</translation>
+ <translation id="4349828822184870497">مفید</translation>
+ <translation id="4350230709416545141">دسترسی <ph name="HOST" /> به مکان شما همیشه مسدود شود</translation>
+-<translation id="4350782034419308508">Hey Google</translation>
++<translation id="4350782034419308508">Ok Google</translation>
+ <translation id="4351770750390404505">‏<ph name="BEGIN_PARAGRAPH1" />برای ارائه بهترین تجربه، <ph name="DEVICE_OS" /> داده‌های سخت‌افزار مربوط دستگاه‌ها را جمع‌آوری می‌کند و آن‌ها را با Google هم‌رسانی می‌کند تا مشخص شود چه به‌روزرسانی‌هایی باید ارائه شود. درصورت تمایل، می‌توانید به Google اجازه دهید از این داده‌ها برای اهداف دیگری مانند پشتیبانی و بهبود بخشیدن به سرویس و تجربه <ph name="DEVICE_OS" /> استفاده کند.<ph name="END_PARAGRAPH1" />
+     <ph name="BEGIN_PARAGRAPH2" />می‌توانید در این دستگاه به سیستم وارد شوید و به بخش CHROMEOSFLEX_HARDWARE_INFO در chrome://system بروید تا این موارد را ببینید: داده‌های ارسال‌شده به Google برای فیلتر کردن به‌روزرسانی‌ها و همچنین هر نمونه دیگری از انتخاب هم‌رسانی داده با Google.<ph name="END_PARAGRAPH2" />
+     <ph name="BEGIN_PARAGRAPH3" />برای دریافت جزئیات بیشتر درباره داده‌هایی که <ph name="DEVICE_OS" /> ممکن است با Google هم‌رسانی کند و نحوه استفاده از این داده‌ها، از g.co/flex/HWDataCollection بازدید کنید.<ph name="END_PARAGRAPH3" /></translation>
+@@ -3494,7 +3494,7 @@
+ <translation id="4361142739114356624">کلید خصوصی برای این گواهی کارخواه موجود نیست یا نامعتبر است</translation>
+ <translation id="4361745360460842907">باز کردن به‌عنوان برگه</translation>
+ <translation id="4362675504017386626"><ph name="ACCOUNT_EMAIL" /> حساب پیش‌فرض در <ph name="DEVICE_TYPE" /> شما است</translation>
+-<translation id="4363771538994847871">هیچ مقصدی برای ارسال محتوا پیدا نشد. نیاز به راهنمایی دارید؟</translation>
++<translation id="4363771538994847871">هیچ مقصدی برای پخش محتوا پیدا نشد. نیاز به راهنمایی دارید؟</translation>
+ <translation id="4364327530094270451">خربزه</translation>
+ <translation id="4364567974334641491"><ph name="APP_NAME" /> در حال اشتراک‌گذاری یک پنجره است.</translation>
+ <translation id="4364830672918311045">نمایش اعلان‌ها</translation>
+@@ -3529,7 +3529,7 @@
+ <translation id="4400367121200150367">سایت‌هایی که هرگز گذرواژه را ذخیره نمی‌کنند در اینجا نشان داده نخواهند شد</translation>
+ <translation id="4400632832271803360">برای تغییر عملکرد کلیدهای ردیف بالا، کلید «راه‌انداز» را نگه‌دارید</translation>
+ <translation id="4400963414856942668">برای نشانک‌گذاری یک برگه، می‌توانید روی ستاره کلیک کنید</translation>
+-<translation id="4401912261345737180">برای ارسال محتوا، بااستفاده از کد متصل شوید</translation>
++<translation id="4401912261345737180">برای پخش محتوا، بااستفاده از کد متصل شوید</translation>
+ <translation id="4402755511846832236">از اینکه سایت‌ها بدانند چه زمانی به‌صورت فعال از این دستگاه استفاده می‌کنید جلوگیری می‌شود</translation>
+ <translation id="4403266582403435904">‏هرزمان خواستید به‌آسانی داده‌هایتان را بازیابی کنید یا دستگاه‌هایتان را عوض کنید. داده‌های پشتیبان در Google بارگذاری می‌شوند و با گذرواژه «حساب Google» فرزندتان رمزگذاری می‌شوند.</translation>
+ <translation id="4403775189117163360">پوشه دیگری را انتخاب کنید</translation>
+@@ -4671,7 +4671,7 @@
+ <translation id="5554403733534868102">پس از این، نیازی نیست برای به‌روزرسانی‌ها صبر کنید</translation>
+ <translation id="5554489410841842733">این نماد وقتی قابل رؤیت است که برنامهٔ افزودنی بتواند برای صفحه فعلی کار کند.</translation>
+ <translation id="5554720593229208774">ارائه دهنده مجوز ایمیل</translation>
+-<translation id="5555363196923735206">چرخش دوربین</translation>
++<translation id="5555363196923735206">چرخاندن دوربین</translation>
+ <translation id="5555525474779371165">انتخاب ویژگی حفاظتی «مرور ایمن»</translation>
+ <translation id="5556459405103347317">تازه‌سازی</translation>
+ <translation id="5558125320634132440">این سایت مسدود شده است زیرا احتمالاً حاوی محتوای بزرگ‌سالان است</translation>
+@@ -4983,7 +4983,7 @@
+ <translation id="5870155679953074650">خطاهای سخت‌افزاری</translation>
+ <translation id="5875534259258494936">هم‌رسانی صفحه به‌پایان رسید</translation>
+ <translation id="5876576639916258720">درحال اجرا…</translation>
+-<translation id="5876851302954717356">برگه جدید در راست</translation>
++<translation id="5876851302954717356">برگه جدید در سمت راست</translation>
+ <translation id="5877064549588274448">کانال تغییر کرد. برای اعمال تغییرات دستگاه خود را مجدداً راه‌اندازی کنید.</translation>
+ <translation id="5877584842898320529">چاپگر انتخابی موجود نیست یا به‌درستی نصب نشده است. <ph name="BR" /> چاپگر خود را بررسی کنید یا چاپگر دیگری را انتخاب کنید.</translation>
+ <translation id="5882919346125742463">شبکه‌های شناخته‌شده</translation>
+@@ -5155,7 +5155,7 @@
+     <ph name="BEGIN_PARAGRAPH4" />اگر تنظیم «فعالیت وب و برنامه» تکمیلی برای «حساب Google» فرزندتان روشن باشد، ممکن است داده‌های فرزندتان در این حساب ذخیره شود. در families.google.com، درباره این تنظیمات و نحوه تغییر آن‌ها بیشتر بدانید.<ph name="END_PARAGRAPH4" /></translation>
+ <translation id="6051811090255711417">سازمان شما این فایل را به‌دلیل عدم رعایت خط‌مشی امنیتی مسدود کرد</translation>
+ <translation id="6052284303005792909">•</translation>
+-<translation id="6052488962264772833">برای شروع ارسال محتوا، کد دسترسی را تایپ کنید</translation>
++<translation id="6052488962264772833">برای شروع پخش محتوا، کد دسترسی را تایپ کنید</translation>
+ <translation id="6052976518993719690">‏اعتبار گواهی SSL</translation>
+ <translation id="6053401458108962351">&amp;حذف داده‌های مرور...</translation>
+ <translation id="6054284857788651331">گروه برگه اخیراً بسته‌شده</translation>
+@@ -5799,7 +5799,7 @@
+ <translation id="6683087162435654533">بازیابی همه برگه‌ها</translation>
+ <translation id="6684827949542560880">درحال بارگیری آخرین به‌روزرسانی</translation>
+ <translation id="668599234725812620">‏باز کردن Google Play</translation>
+-<translation id="6686490380836145850">بستن برگه‌ها به چپ</translation>
++<translation id="6686490380836145850">بستن برگه‌های سمت راست</translation>
+ <translation id="6686665106869989887">برگه به راست منتقل شد</translation>
+ <translation id="6686817083349815241">ذخیره گذرواژه‌تان</translation>
+ <translation id="6687079240787935001">پنهان کردن <ph name="MODULE_TITLE" /></translation>
+@@ -6459,7 +6459,7 @@
+ <translation id="7362387053578559123">سایت‌ها می‌توانند برای اتصال به دستگاه‌های بلوتوث درخواست دهند</translation>
+ <translation id="7363349185727752629">راهنمای گزینه‌های حریم‌خصوصی</translation>
+ <translation id="7364591875953874521">دسترسی درخواست شده</translation>
+-<translation id="7364745943115323529">ارسال محتوا…</translation>
++<translation id="7364745943115323529">پخش محتوا…</translation>
+ <translation id="7364796246159120393">انتخاب فایل</translation>
+ <translation id="7365076891350562061">اندازه نمایشگر</translation>
+ <translation id="7366316827772164604">درحال اسکن کردن برای یافتن دستگاه‌های اطراف…</translation>
+@@ -6512,7 +6512,7 @@
+ <translation id="7409735910987429903">سایت‌ها شاید برای نمایش آگهی از بالاپر استفاده کنند، یا بااستفاده از هدایت‌ها شما را به وب‌سایت‌هایی هدایت کنند که شاید نخواهید بازدید کنید</translation>
+ <translation id="7409854300652085600">نشانک‌ها وارد شد.</translation>
+ <translation id="7410344089573941623">بپرسید که آیا <ph name="HOST" /> می‌خواهد به دوربین و میکرفون شما دسترسی داشته باشد</translation>
+-<translation id="7410852728357935715">ارسال محتوا به دستگاه</translation>
++<translation id="7410852728357935715">پخش محتوا به دستگاه</translation>
+ <translation id="741204030948306876">بله، موافقم</translation>
+ <translation id="7412226954991670867">‏حافظه GPU</translation>
+ <translation id="7414464185801331860">۱۸ برابر</translation>
+@@ -6727,7 +6727,7 @@
+ <translation id="7622966771025050155">رفتن به برگه ضبط‌شده</translation>
+ <translation id="7624337243375417909">‏caps lock غیرفعال</translation>
+ <translation id="7625568159987162309">مشاهده مجوزها و داده‌های ذخیره‌شده در همه سایت‌ها</translation>
+-<translation id="7625823789272218216">برگه جدید در چپ</translation>
++<translation id="7625823789272218216">برگه جدید در سمت چپ</translation>
+ <translation id="7626032353295482388">‏به Chrome خوش آمدید</translation>
+ <translation id="7628201176665550262">نرخ بازآوری</translation>
+ <translation id="7629827748548208700">برگه: <ph name="TAB_NAME" /></translation>
+@@ -8015,7 +8015,7 @@
+ <translation id="8872506776304248286">باز کردن در برنامه</translation>
+ <translation id="8872777911145321141">وقتی سایتی می‌خواهد از دستگاه‌ها و داده‌های واقعیت مجازی استفاده کند سؤال شود (توصیه می‌شود)</translation>
+ <translation id="8874184842967597500">متصل نیست</translation>
+-<translation id="8874341931345877644">ارسال محتوا به دستگاه:</translation>
++<translation id="8874341931345877644">پخش محتوا به دستگاه:</translation>
+ <translation id="8875520811099717934">‏ارتقا دادن Linux</translation>
+ <translation id="8875736897340638404">انتخاب وضعیت نمایان بودن</translation>
+ <translation id="8876307312329369159">این تنظیم در جلسه نمایشی قابل‌تغییر نیست.</translation>
+@@ -8391,7 +8391,7 @@
+ <translation id="957960681186851048">این سایت تلاش کرده است چند فایل را به‌طور خودکار بارگیری کند</translation>
+ <translation id="960987915827980018">حدود ۱ ساعت باقی مانده است</translation>
+ <translation id="962802172452141067">درخت پوشه نشانک</translation>
+-<translation id="964286338916298286">‏سرپرست IT شما Chrome Goodies را برای دستگاهتان غیرفعال کرده است.</translation>
++<translation id="964286338916298286">‏سرپرست فناوری اطلاعات شما Chrome Goodies را برای دستگاهتان غیرفعال کرده است.</translation>
+ <translation id="964439421054175458">{NUM_APLLICATIONS,plural, =1{برنامه}one{برنامه}other{برنامه}}</translation>
+ <translation id="964790508619473209">تنظیم صفحه‌نمایش</translation>
+ <translation id="965211523698323809">ارسال و دریافت پیامک از <ph name="DEVICE_TYPE" /> شما. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
+diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
+index b11e723c46f7..36c265474811 100644
+--- a/chrome/app/resources/generated_resources_hr.xtb
++++ b/chrome/app/resources/generated_resources_hr.xtb
+@@ -3869,7 +3869,7 @@ i Ctrl + Alt + Smanjivanje svjetline da biste smanjili prikaz.</translation>
+ <translation id="4742970037960872810">Ukloni isticanje</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Saznajte kako ažurirati aplikacije<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{Uključi zvuk na web-lokaciji}one{Uključi zvuk na web-lokacijama}few{Uključi zvuk na web-lokacijama}other{Uključi zvuk na web-lokacijama}}</translation>
+-<translation id="474609389162964566">Pristupajte Asistentu tako što ćete reći "Hey Google"</translation>
++<translation id="474609389162964566">Pristupite Asistentu tako da kažete Ok Google</translation>
+ <translation id="4746351372139058112">Poruke</translation>
+ <translation id="4748783296226936791">Web-lokacije se obično povezuju s HID uređajima radi značajki koje koriste neuobičajene tipkovnice, upravljače za igre i druge uređaje</translation>
+ <translation id="4750185073185658673">Pregled daljnjih nekoliko dopuštenja nastavite na telefonu. Provjerite jesu li na telefonu uključeni Bluetooth i Wi-Fi.</translation>
+@@ -6491,7 +6491,7 @@ Toj radnji možete dodijeliti više prekidača.</translation>
+ <translation id="7404065585741198296">Telefonom povezanim USB kabelom</translation>
+ <translation id="7405938989981604410">{NUM_HOURS,plural, =1{Sigurnosna provjera izvršena je prije sat vremena}one{Sigurnosna provjera izvršena je prije {NUM_HOURS} sata}few{Sigurnosna provjera izvršena je prije {NUM_HOURS} sata}other{Sigurnosna provjera izvršena je prije {NUM_HOURS} sati}}</translation>
+ <translation id="740624631517654988">Skočni prozor blokiran</translation>
+-<translation id="7407430846095439694">Uvezi i uveži</translation>
++<translation id="7407430846095439694">Uvezi i poveži</translation>
+ <translation id="7407504355934009739">Većina korisnika blokira obavijesti s te web-lokacije</translation>
+ <translation id="740810853557944681">Dodajte poslužitelj za ispis</translation>
+ <translation id="7409549334477097887">Posebno velik</translation>
+diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
+index 3fa3578d6d0f..68a5ad9bb773 100644
+--- a/chrome/app/resources/generated_resources_iw.xtb
++++ b/chrome/app/resources/generated_resources_iw.xtb
+@@ -176,7 +176,7 @@
+ <translation id="1163931534039071049">&amp;הצגת מקור המסגרת</translation>
+ <translation id="1164891049599601209">הוזנה באתר מטעה</translation>
+ <translation id="1165039591588034296">שגיאה</translation>
+-<translation id="1166212789817575481">סגירת הכרטיסיות משמאל</translation>
++<translation id="1166212789817575481">סגירת הכרטיסיות מימין</translation>
+ <translation id="1166583374608765787">בדיקת עדכון השם</translation>
+ <translation id="1166596238782048887">הכרטיסייה <ph name="TAB_TITLE" /> שייכת לשולחן העבודה הווירטואלי <ph name="DESK_TITLE" /></translation>
+ <translation id="1168020859489941584">הפתיחה תתבצע בעוד <ph name="TIME_REMAINING" />...</translation>
+@@ -1177,7 +1177,7 @@
+ <translation id="2105809836724866556">ההסתרה של <ph name="MODULE_TITLE" /> בוצעה</translation>
+ <translation id="2108349519800154983">{COUNT,plural, =1{מספר טלפון}two{# מספרי טלפון}many{# מספרי טלפון}other{# מספרי טלפון}}</translation>
+ <translation id="211144231511833662">ניקוי הסוגים</translation>
+-<translation id="2111670510994270194">כרטיסייה חדשה מצד שמאל</translation>
++<translation id="2111670510994270194">כרטיסייה חדשה מצד ימין</translation>
+ <translation id="2112554630428445878">שלום, <ph name="USERNAME" /></translation>
+ <translation id="21133533946938348">הצמדת כרטיסייה</translation>
+ <translation id="2113479184312716848">פתיחת &amp;קובץ...</translation>
+@@ -1556,7 +1556,7 @@
+ <translation id="244231003699905658">כתובת לא חוקית. יש לבדוק את הכתובת ולנסות שוב.</translation>
+ <translation id="2442916515643169563">צללית טקסט</translation>
+ <translation id="2443487764245141020">ייתכן שגם באתרים יהיה צורך לזהות את המכשיר שלך באמצעות מזהה</translation>
+-<translation id="244475495405467108">סגירת הכרטיסיות מימין</translation>
++<translation id="244475495405467108">סגירת הכרטיסיות משמאל</translation>
+ <translation id="2445081178310039857">ספריית הבסיס של ההרחבה נחוצה.</translation>
+ <translation id="2445484935443597917">יצירת פרופיל חדש</translation>
+ <translation id="244641233057214044">קשור לחיפוש שלך</translation>
+@@ -3177,7 +3177,7 @@
+ <translation id="4021279097213088397">‏–</translation>
+ <translation id="402184264550408568">(TCP)</translation>
+ <translation id="4021909830315618592">‏העתקת פרטי build</translation>
+-<translation id="4021941025609472374">סגירת הכרטיסיות מימין</translation>
++<translation id="4021941025609472374">סגירת הכרטיסיות משמאל</translation>
+ <translation id="4022426551683927403">&amp;הוספה למילון</translation>
+ <translation id="4023146161712577481">קביעת התצורה של המכשיר.</translation>
+ <translation id="4025039777635956441">השתקת האתרים שנבחרו</translation>
+@@ -4986,7 +4986,7 @@
+ <translation id="5870155679953074650">שגיאות חמורות</translation>
+ <translation id="5875534259258494936">שיתוף המסך הסתיים</translation>
+ <translation id="5876576639916258720">התכונה פעילה…</translation>
+-<translation id="5876851302954717356">כרטיסייה חדשה מצד שמאל</translation>
++<translation id="5876851302954717356">כרטיסייה חדשה מצד ימין</translation>
+ <translation id="5877064549588274448">הערוץ שונה. יש להפעיל מחדש את המכשיר להחלת השינויים.</translation>
+ <translation id="5877584842898320529">המדפסת שבחרת אינה זמינה או שאינה מותקנת כראוי. <ph name="BR" /> יש לבדוק את המדפסת או לנסות לבחור מדפסת אחרת.</translation>
+ <translation id="5882919346125742463">רשתות מוכרות</translation>
+@@ -5802,7 +5802,7 @@
+ <translation id="6683087162435654533">ש&amp;חזור כל הכרטיסיות</translation>
+ <translation id="6684827949542560880">המערכת מורידה את העדכון האחרון</translation>
+ <translation id="668599234725812620">‏פתיחת Google Play</translation>
+-<translation id="6686490380836145850">סגירת הכרטיסיות משמאל</translation>
++<translation id="6686490380836145850">סגירת הכרטיסיות מימין</translation>
+ <translation id="6686665106869989887">הכרטיסייה הועברה שמאלה</translation>
+ <translation id="6686817083349815241">שמירת הסיסמה שלך</translation>
+ <translation id="6687079240787935001">הסתרה של <ph name="MODULE_TITLE" /></translation>
+@@ -6730,7 +6730,7 @@
+ <translation id="7622966771025050155">לכרטיסייה המוקלטת</translation>
+ <translation id="7624337243375417909">‏caps lock מושבת</translation>
+ <translation id="7625568159987162309">הצגת הרשאות ונתונים המאוחסנים באתרים שונים</translation>
+-<translation id="7625823789272218216">כרטיסייה חדשה מצד ימין</translation>
++<translation id="7625823789272218216">כרטיסייה חדשה מצד שמאל</translation>
+ <translation id="7626032353295482388">‏ברוך בואך אל Chrome</translation>
+ <translation id="7628201176665550262">קצב רענון</translation>
+ <translation id="7629827748548208700">כרטיסייה: <ph name="TAB_NAME" /></translation>
+diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
+index c7af8a98f874..6e986a095589 100644
+--- a/chrome/app/resources/generated_resources_ko.xtb
++++ b/chrome/app/resources/generated_resources_ko.xtb
+@@ -6053,7 +6053,7 @@ https://support.google.com/chromebook/?p=tpm</translation>
+ <translation id="6923633482430812883">공유를 마운트하는 중 오류가 발생했습니다. 연결하려는 파일 서버가 SMBv2 이상을 지원하는지 확인하세요.</translation>
+ <translation id="6925127338315966709">브라우저에 관리되는 프로필을 추가하려고 합니다. 관리자가 프로필을 제어하고 프로필 데이터에 액세스할 수 있습니다. 북마크, 방문 기록, 비밀번호 및 기타 설정이 계정에 동기화되고 이를 관리자가 관리할 수 있습니다.</translation>
+ <translation id="6929126689972602640">학교 계정에서는 자녀 보호 기능이 지원되지 않습니다. 집에서 학교 과제를 위해 Google 클래스룸 및 다른 웹사이트에 액세스할 수 있는 학교 계정을 추가하려면 먼저 자녀의 개인 계정으로 로그인하세요. 설정에서 학교 계정을 나중에 추가할 수 있습니다.</translation>
+-<translation id="6929760895658557216">Ok Google</translation>
++<translation id="6929760895658557216">Hey Google</translation>
+ <translation id="6930036377490597025">외장 보안 키 또는 내장 센서</translation>
+ <translation id="6930161297841867798">{NUM_EXTENSIONS,plural, =1{확장 프로그램 1개 거부됨}other{확장 프로그램 #개 거부됨}}</translation>
+ <translation id="6931690462168617033">클릭 강도</translation>
+diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
+index 6878a20fa76b..765298e60f1b 100644
+--- a/chrome/app/resources/generated_resources_mr.xtb
++++ b/chrome/app/resources/generated_resources_mr.xtb
+@@ -3480,7 +3480,7 @@
+ <translation id="4348766275249686434">एरर संकलित करा</translation>
+ <translation id="4349828822184870497">उपयुक्त</translation>
+ <translation id="4350230709416545141">तुमचे स्थान अ‍ॅक्सेस करण्यापासून <ph name="HOST" /> ला नेहमी ब्लॉक करा</translation>
+-<translation id="4350782034419308508">Hey Google</translation>
++<translation id="4350782034419308508">Ok Google</translation>
+ <translation id="4351770750390404505"><ph name="BEGIN_PARAGRAPH1" />सर्वोत्तम अनुभव पुरवण्यासाठी, <ph name="DEVICE_OS" /> हे डिव्हाइसबद्दल हार्डवेअर डेटा गोळा करते आणि कोणती अपडेट डिलिव्हर केली पाहिजे हे निर्धारित करण्यासाठी तो Google सोबत शेअर करते. याव्यतिरिक्त, तुम्ही <ph name="DEVICE_OS" /> मधील अनुभव आणि सेवा यांच्याशी संबंधित सपोर्ट आणि सुधारणा यांसारख्या अतिरिक्त उद्देशांसाठी Google ला हा डेटा वापरण्याची अनुमती देऊ शकता.<ph name="END_PARAGRAPH1" />
+     <ph name="BEGIN_PARAGRAPH2" />फिल्टर करण्याचे पर्याय अपडेट करण्यासाठी Google ला पाठवलेला डेटा तसेच असे कोणतेही प्रसंग ज्यात तुम्ही Google सोबत डेटा शेअर करण्याचे निवडले होते हे पाहण्याकरिता तुम्ही या डिव्हाइसवर लॉग इन करू शकता आणि chrome://system मधील CHROMEOSFLEX_HARDWARE_INFO विभागाला भेट देऊ शकता.<ph name="END_PARAGRAPH2" />
+     <ph name="BEGIN_PARAGRAPH3" /><ph name="DEVICE_OS" /> हे Google सोबत कदाचित शेअर करेल असा डेटा आणि तो कसा वापरला जातो याविषयीच्या अधिक तपशिलांसाठी g.co/flex/HWDataCollection ला भेट द्या.<ph name="END_PARAGRAPH3" /></translation>
+diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
+index f033654a6177..025f3dee2671 100644
+--- a/chrome/app/resources/generated_resources_sl.xtb
++++ b/chrome/app/resources/generated_resources_sl.xtb
+@@ -3486,7 +3486,7 @@ Domena <ph name="DOMAIN" /> zahteva, da je pametna kartica vstavljena.</translat
+ <translation id="4348766275249686434">Zbiranje napak</translation>
+ <translation id="4349828822184870497">Uporabno</translation>
+ <translation id="4350230709416545141">Gostitelju <ph name="HOST" /> vedno prepreči dostop do lokacije</translation>
+-<translation id="4350782034419308508">Hey Google</translation>
++<translation id="4350782034419308508">OK Google</translation>
+ <translation id="4351770750390404505"><ph name="BEGIN_PARAGRAPH1" />Zaradi omogočanja najboljše izkušnje operacijski sistem <ph name="DEVICE_OS" /> zbira podatke o strojni opremi naprav in jih deli z Googlom zaradi določanja, katere posodobitve naj vam zagotovi. Izbirno lahko dovolite Googlu, da te podatke uporablja za dodatne namene, kot so podpora in izboljšanje izkušnje sistema <ph name="DEVICE_OS" /> ter njegovih storitev.<ph name="END_PARAGRAPH1" />
+     <ph name="BEGIN_PARAGRAPH2" />Prijavite se lahko v to napravo in obiščete razdelek CHROMEOSFLEX_HARDWARE_INFO na chrome://system, kjer si ogledate podatke, poslane Googlu zaradi filtriranja posodobitev, in druge primere, v katerih ste izbrali deljenje podatkov z Googlom.<ph name="END_PARAGRAPH2" />
+     <ph name="BEGIN_PARAGRAPH3" />Če želite več podrobnosti o podatkih, ki jih <ph name="DEVICE_OS" /> morda deli z Googlom in kako se ti uporabljajo, obiščite g.co/flex/HWDataCollection.<ph name="END_PARAGRAPH3" /></translation>
+@@ -6818,7 +6818,7 @@ Domena <ph name="DOMAIN" /> zahteva, da je pametna kartica vstavljena.</translat
+ <translation id="7690853182226561458">Dodaj &amp;mapo...</translation>
+ <translation id="7691073721729883399">Funkcije »cryptohome« za aplikacijo za kiosk ni bilo mogoče vpeti.</translation>
+ <translation id="7691077781194517083">Tega varnostnega ključa ni mogoče ponastaviti. Napaka <ph name="ERROR_CODE" />.</translation>
+-<translation id="7691163173018300413">»Hey Google«</translation>
++<translation id="7691163173018300413">»OK Google«</translation>
+ <translation id="7691698019618282776">Nadgradnja Crostinija</translation>
+ <translation id="7694246789328885917">Orodje označevalnika</translation>
+ <translation id="7696063401938172191">V telefonu »<ph name="PHONE_NAME" />«:</translation>
+diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
+index a0ba01a3bed6..5122e2a35fcc 100644
+--- a/chrome/app/resources/generated_resources_th.xtb
++++ b/chrome/app/resources/generated_resources_th.xtb
+@@ -1128,7 +1128,7 @@
+ <translation id="2082187087049518845">จัดกลุ่มแท็บ</translation>
+ <translation id="2082510809738716738">เลือกสีธีม</translation>
+ <translation id="208586643495776849">โปรดลองอีกครั้ง</translation>
+-<translation id="208634871997892083">VPN แบบเปิดตลอดเวลา</translation>
++<translation id="208634871997892083">การเชื่อมต่อ VPN ตลอดเวลา</translation>
+ <translation id="2087822576218954668">พิมพ์: <ph name="PRINT_NAME" /></translation>
+ <translation id="2088092308059522196">รองรับการลงทะเบียนหลังจากที่คุณติดตั้ง <ph name="DEVICE_OS" /> แล้วเท่านั้น</translation>
+ <translation id="208928984520943006">เลื่อนขึ้นจากด้านล่างเพื่อไปยังหน้าจอหลักได้ทุกเมื่อ</translation>
+diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
+index a43c7436accf..192af20891bc 100644
+--- a/chrome/app/resources/generated_resources_uk.xtb
++++ b/chrome/app/resources/generated_resources_uk.xtb
+@@ -1077,7 +1077,7 @@
+ <translation id="2016473077102413275">Функції, яким потрібні зображення, не працюватимуть</translation>
+ <translation id="2016574333161572915">Тепер можете налаштувати обладнання для Google Meet</translation>
+ <translation id="2017334798163366053">Вимкнути збір даних про ефективність</translation>
+-<translation id="2018352199541442911">На жаль, зараз пристрій зовнішньої пам’яті не підтримується.</translation>
++<translation id="2018352199541442911">На жаль, ваш зовнішній носій наразі не підтримується.</translation>
+ <translation id="2018615379714355980">ПК підключено до дротової мережі, а Chromecast – до Wi-Fi</translation>
+ <translation id="2019718679933488176">&amp;Відкрити аудіо в новій вкладці</translation>
+ <translation id="2020183425253392403">Показати налаштування мережевої адреси</translation>
+diff --git a/chrome/app/resources/generated_resources_ur.xtb b/chrome/app/resources/generated_resources_ur.xtb
+index af977346c790..1a10baaec419 100644
+--- a/chrome/app/resources/generated_resources_ur.xtb
++++ b/chrome/app/resources/generated_resources_ur.xtb
+@@ -174,7 +174,7 @@
+ <translation id="1163931534039071049">&amp;فریم کا ماخذ دیکھیں</translation>
+ <translation id="1164891049599601209">فریب والی سائٹ پر درج کیا گیا</translation>
+ <translation id="1165039591588034296">خرابی</translation>
+-<translation id="1166212789817575481">دائیں جانب ٹیبز بند کریں</translation>
++<translation id="1166212789817575481">دائیں جانب والے ٹیبز بند کریں</translation>
+ <translation id="1166583374608765787">نام میں ہوئی اپ ڈیٹ کا جائزہ لیں</translation>
+ <translation id="1166596238782048887"><ph name="TAB_TITLE" /> <ph name="DESK_TITLE" /> ڈیسک سے تعلق رکھتی ہے</translation>
+ <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> میں کھولا جا رہا ہے…</translation>
+diff --git a/chromeos/strings/chromeos_strings_ca.xtb b/chromeos/strings/chromeos_strings_ca.xtb
+index 7133df744585..ef0650d31ccc 100644
+--- a/chromeos/strings/chromeos_strings_ca.xtb
++++ b/chromeos/strings/chromeos_strings_ca.xtb
+@@ -490,7 +490,7 @@ Toca el micròfon per demanar-me qualsevol cosa.</translation>
+ <translation id="6388847657025262518">L'alimentador de documents de l'escàner està encallat. Comprova l'alimentador i torna-ho a provar.</translation>
+ <translation id="6410257289063177456">Fitxers d'imatge </translation>
+ <translation id="641081527798843608">Coincidència d'assumpte</translation>
+-<translation id="6423239382391657905">VPN oberta</translation>
++<translation id="6423239382391657905">OpenVPN</translation>
+ <translation id="6439505561246192797">Feble (<ph name="SIGNAL_STRENGTH" />)</translation>
+ <translation id="6447630859861661624">Ves a la configuració del compte</translation>
+ <translation id="6456394469623773452">Bona</translation>
+diff --git a/chromeos/strings/chromeos_strings_id.xtb b/chromeos/strings/chromeos_strings_id.xtb
+index 00017fd849ed..b0040b2a4895 100644
+--- a/chromeos/strings/chromeos_strings_id.xtb
++++ b/chromeos/strings/chromeos_strings_id.xtb
+@@ -681,7 +681,7 @@ Ketuk mikrofon untuk bertanya apa saja.</translation>
+ <translation id="8655295600908251630">Saluran</translation>
+ <translation id="8660881923941176839">pound</translation>
+ <translation id="8662671328352114214">Bergabung dengan jaringan <ph name="TYPE" /></translation>
+-<translation id="8675354002693747642">Kunci yang dibagikan sebelumnya</translation>
++<translation id="8675354002693747642">Pre-shared key</translation>
+ <translation id="8677859815076891398">Tidak ada album. Buat album di <ph name="LINK_BEGIN" />Google Foto<ph name="LINK_END" />.</translation>
+ <translation id="8709616837707653427"><ph name="DESC_TEXT" /> Gunakan tombol Panah kiri atau kanan untuk mengelola fitur ini.</translation>
+ <translation id="8712637175834984815">Mengerti</translation>
+diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
+index 3103c084819c..854417e118b1 100644
+--- a/components/policy/resources/policy_templates_pt-BR.xtb
++++ b/components/policy/resources/policy_templates_pt-BR.xtb
+@@ -4060,7 +4060,7 @@ Se esta política for definida como "Falsa", o <ph name="PRODUCT_NAME" /> não u
+ 
+       Se ela for definida como falsa, o <ph name="PRODUCT_NAME" /> não poderá mostrar informações do produto como conteúdo em guia cheia.
+ 
+-      Esta política controla a apresentação das informações promocionais em uma guia inteira. Isso inclui conteúdo como as páginas de boas-vindas que ajudam os usuários a fazer login em <ph name="PRODUCT_NAME" />, definir <ph name="PRODUCT_NAME" /> como navegador padrão ou descobrir os recursos do produto.</translation>
++      Esta política controla a apresentação das informações promocionais em uma guia inteira. Isso inclui conteúdo como as páginas de recepção que ajudam os usuários a fazer login em <ph name="PRODUCT_NAME" />, definir <ph name="PRODUCT_NAME" /> como navegador padrão ou descobrir os recursos do produto.</translation>
+ <translation id="544654037134815017">Esta política controla a visibilidade de cards na página Nova guia. Os cards exibem pontos de entrada para inicializar jornadas de usuário comuns com base no comportamento de navegação do usuário.
+ 
+       Se a política for definida como "Ativada", a página Nova guia exibirá os cards caso haja conteúdo disponível.
+diff --git a/components/strings/components_strings_eu.xtb b/components/strings/components_strings_eu.xtb
+index b3273f52b458..69f099c37cea 100644
+--- a/components/strings/components_strings_eu.xtb
++++ b/components/strings/components_strings_eu.xtb
+@@ -712,7 +712,7 @@ Bestela, pribatutasun-ezarpenek blokeatu egingo dute baimen hori. Baimen honekin
+ <translation id="2903493209154104877">Helbideak</translation>
+ <translation id="290376772003165898">Ez al da <ph name="LANGUAGE" /> orriko hizkuntza?</translation>
+ <translation id="2909946352844186028">Aldaketa bat hauteman da sarean.</translation>
+-<translation id="2911973620368911614">Laneko kontabilitateaz arduratzen den erabiltzailearen IDa</translation>
++<translation id="2911973620368911614">Laneko kontabilitateaz arduratzen den erabiltzaile IDa</translation>
+ <translation id="2914160345369867329">Eskuarki, <ph name="SITE" /> webguneak enkriptatzea erabiltzen du informazioa babesteko. Chrome <ph name="SITE" /> webgunera konektatzen saiatu denean, webguneak kredentzial desegokiak eta ezohikoak bidali ditu. Erasotzaile bat <ph name="SITE" /> webgunearen plantak egiten ari delako gerta daiteke hori, edo wifi-sarean saioa hasteko pantailak konexioa eten duelako. Zure informazioa seguru dago, datuak trukatu aurretik eten baitu Chrome-k konexioa.</translation>
+ <translation id="2915068235268646559">Hutsegitearen ordua: <ph name="CRASH_TIME" /></translation>
+ <translation id="2915496182262110498">Margotzea</translation>
+diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
+index 3277824004b3..e9d671b9971b 100644
+--- a/components/strings/components_strings_fa.xtb
++++ b/components/strings/components_strings_fa.xtb
+@@ -2062,7 +2062,7 @@
+ <translation id="6689249931105087298">نسبی با فشرده‌سازی نقطه سیاه</translation>
+ <translation id="6689271823431384964">‏چون به سیستم وارد شده‌اید، Chrome پیشنهاد می‌کند کارت‌ها را در حساب Google ذخیره کنید. در تنظیمات می‌توانید این رفتار را تغییر دهید. نام دارنده کارت از حساب شما گرفته شده است.</translation>
+ <translation id="6694681292321232194">‏<ph name="FIND_MY_PHONE_FOCUSED_FRIENDLY_MATCH_TEXT" />، برای پیدا کردن دستگاهتان در «حساب Google»، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
+-<translation id="6696588630955820014">دکمه «هم‌رسانی این برگه»؛ برای هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، ارسال محتوا، و موارد دیگر، کلید «ورود» را فشار دهید</translation>
++<translation id="6696588630955820014">دکمه «هم‌رسانی این برگه»؛ برای هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، پخش محتوا، و موارد دیگر، کلید «ورود» را فشار دهید</translation>
+ <translation id="6698381487523150993">ایجاد شده:</translation>
+ <translation id="6702919718839027939">ارائه کردن</translation>
+ <translation id="6709133671862442373">اخبار</translation>
+@@ -2312,7 +2312,7 @@
+ <translation id="7392089738299859607">به‌روزرسانی نشانی</translation>
+ <translation id="7399802613464275309">بررسی ایمنی</translation>
+ <translation id="7400418766976504921">نشانی وب</translation>
+-<translation id="7403392780200267761">هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، ارسال محتوا، و موارد دیگر</translation>
++<translation id="7403392780200267761">هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، پخش محتوا، و موارد دیگر</translation>
+ <translation id="7403591733719184120">دستگاه <ph name="DEVICE_NAME" /> تحت مدیریت است</translation>
+ <translation id="7407424307057130981">‏&lt;p&gt;اگر در رایانه Windows نرم‌افزار Superfish داشته باشید، این خطا را می‌بینید.&lt;/p&gt;
+     &lt;p&gt;برای غیرفعال کردن موقت این نرم‌افزار و دسترسی به وب، این مراحل را دنبال کنید. لازم است امتیازهای سرپرست را داشته باشید.&lt;/p&gt;
+@@ -2883,7 +2883,7 @@
+ <translation id="9020200922353704812">نشانی صورت‌حساب کارت لازم است</translation>
+ <translation id="9020542370529661692">این صفحه به <ph name="TARGET_LANGUAGE" /> ترجمه شده است</translation>
+ <translation id="9020742383383852663">A8</translation>
+-<translation id="9021429684248523859"><ph name="SHARE_THIS_PAGE_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، ارسال محتوا، و موارد دیگر، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
++<translation id="9021429684248523859"><ph name="SHARE_THIS_PAGE_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای هم‌رسانی این برگه ازطریق هم‌رسانی پیوند، ایجاد رمزینه پاسخ‌سریع، پخش محتوا، و موارد دیگر، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
+ <translation id="9025348182339809926">(نامعتبر)</translation>
+ <translation id="9030265603405983977">تک‌رنگ</translation>
+ <translation id="9035022520814077154">خطای امنیتی</translation>
+diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
+index c9abd68b6f99..a7175812f17b 100644
+--- a/components/strings/components_strings_te.xtb
++++ b/components/strings/components_strings_te.xtb
+@@ -613,7 +613,7 @@
+ <translation id="257674075312929031">గ్రూప్‌గా చేయి</translation>
+ <translation id="2576880857912732701">'సెక్యూరిటీ సెట్టింగ్‌లను మేనేజ్ చేయండి' బటన్, Chrome సెట్టింగ్‌లలో మీ సురక్షిత బ్రౌజింగ్‌ను, అలాగే మరిన్నింటిని మేనేజ్ చేయడానికి 'Enter'ను నొక్కండి</translation>
+ <translation id="2586657967955657006">క్లిప్‌బోర్డ్</translation>
+-<translation id="2587730715158995865">ప్రచురణకర్త <ph name="ARTICLE_PUBLISHER" />. దీన్ని మరియు మరో <ph name="OTHER_ARTICLE_COUNT" /> ఇతర కథనాలను చదవండి.</translation>
++<translation id="2587730715158995865">పబ్లిషర్‌ <ph name="ARTICLE_PUBLISHER" />. దీన్ని మరియు మరో <ph name="OTHER_ARTICLE_COUNT" /> ఇతర కథనాలను చదవండి.</translation>
+ <translation id="2587841377698384444">డైరెక్టరీ API ID:</translation>
+ <translation id="2594318783181750337">వేగవంతమైన వెబ్ వీక్షణ:</translation>
+ <translation id="2595719060046994702">ఈ పరికరం మరియు ఖాతా రెండూ కూడా కంపెనీ లేదా ఇతర సంస్థ నిర్వహణలో లేవు.</translation>
+diff --git a/third_party/blink/public/strings/translations/blink_accessibility_strings_fa.xtb b/third_party/blink/public/strings/translations/blink_accessibility_strings_fa.xtb
+index 1a0b12ff66e8..298e9c74a670 100644
+--- a/third_party/blink/public/strings/translations/blink_accessibility_strings_fa.xtb
++++ b/third_party/blink/public/strings/translations/blink_accessibility_strings_fa.xtb
+@@ -33,7 +33,7 @@
+ <translation id="3904695548697879411">‏نماد «Twitter»</translation>
+ <translation id="405782047075994056">نماد «جهت‌نمای چپ»، می‌تواند به‌معنای «برگشتن» باشد</translation>
+ <translation id="4302299849305494927">نماد «بلندگو»، می‌تواند به‌معنای «میزان صدا» باشد</translation>
+-<translation id="4363712632243441817">نماد «ارسال محتوا»، می‌تواند به‌معنای ارسال محتوای ویدیویی به صفحه‌نمایش ازراه‌دور باشد</translation>
++<translation id="4363712632243441817">نماد «پخش محتوا»، می‌تواند به‌معنای ارسال محتوای ویدیویی به صفحه‌نمایش ازراه‌دور باشد</translation>
+ <translation id="4384249794467006333">این تصویر برچسب ندارد. برای دریافت شرح تصویر، منوی «گزینه‌های بیشتر» را در بالا سمت چپ باز کنید.</translation>
+ <translation id="4436211924730548766">نماد «پیکان سمت چپ»</translation>
+ <translation id="4444765639179266822">ظاهراً <ph name="OCR_TEXT" /> را نشان می‌دهد</translation>
+diff --git a/third_party/blink/public/strings/translations/blink_strings_fa.xtb b/third_party/blink/public/strings/translations/blink_strings_fa.xtb
+index 2c7dd213e6b1..668501099274 100644
+--- a/third_party/blink/public/strings/translations/blink_strings_fa.xtb
++++ b/third_party/blink/public/strings/translations/blink_strings_fa.xtb
+@@ -102,7 +102,7 @@
+ <translation id="5787939484346677755">گسترده شد، گزینه‌های تکمیل خودکار دردسترس است.</translation>
+ <translation id="5860033963881614850">خاموش</translation>
+ <translation id="588258955323874662">تمام صفحه</translation>
+-<translation id="5888666972993069672">درحال ارسال محتوا به <ph name="DEVICE_FRIENDLY_NAME" /></translation>
++<translation id="5888666972993069672">درحال پخش محتوا به <ph name="DEVICE_FRIENDLY_NAME" /></translation>
+ <translation id="5916664084637901428">روشن</translation>
+ <translation id="5939518447894949180">بازنشانی</translation>
+ <translation id="5966707198760109579">هفته</translation>
+@@ -168,7 +168,7 @@
+ <translation id="8637593834423658414">۱٫۷۵</translation>
+ <translation id="8668988909814782445">شکست خط</translation>
+ <translation id="8750798805984357768">لطفاً یکی از این گزینه‌ها را انتخاب کنید.</translation>
+-<translation id="8845239796550121995">درحال ارسال محتوا به تلویزیون</translation>
++<translation id="8845239796550121995">درحال پخش محتوا به تلویزیون</translation>
+ <translation id="8875657656876809964">خطا در بازپخش ویدئو</translation>
+ <translation id="8889402386540077796">رنگ‌مایه</translation>
+ <translation id="8901569739625249689"><ph name="QUANTITY" /> کیلوبایت</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_af.xtb b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
+index 0458265f9530..97a675ca5b4d 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_af.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_af.xtb
+@@ -121,7 +121,7 @@
+ <translation id="1995337122023280937">Gaan na lêerligging toe</translation>
+ <translation id="2001796770603320721">Bestuur in Drive</translation>
+ <translation id="2009067268969781306">Alle data wat op 'n skyf geberg is, sal uitgevee word wanneer dit geformateer word. Hierdie handeling kan nie ontdoen word nie.</translation>
+-<translation id="2025955442973426285">Tigrinya</translation>
++<translation id="2025955442973426285">Tigrinja</translation>
+ <translation id="2028997212275086731">RAR-argief</translation>
+ <translation id="2036414735548252477">Saamgeperste LZMA-teerargief</translation>
+ <translation id="2037845485764049925">Russies</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+index 1208d85315aa..1c6ab25c8ede 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_ca.xtb
+@@ -908,7 +908,7 @@
+ <translation id="8609695766746872526">Islandès</translation>
+ <translation id="863903787380594467">El PIN no és correcte. Et queden <ph name="RETRIES" /> intents.</translation>
+ <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Port</translation>
+-<translation id="8656768832129462377">No els comprovis</translation>
++<translation id="8656768832129462377">No comprovis</translation>
+ <translation id="8688591111840995413">Contrasenya incorrecta</translation>
+ <translation id="8698464937041809063">Dibuix de Google</translation>
+ <translation id="8712637175834984815">Entesos</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+index fe499ab6dcd0..07e94eed7c1f 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_ne.xtb
+@@ -478,7 +478,7 @@
+ <translation id="5081517858322016911"><ph name="TOTAL_FILE_SIZE" /> फाइलहरू मेटाइने छन्</translation>
+ <translation id="508423945471810158"><ph name="FOLDER_NAME" /> मा <ph name="NUMBER_OF_ITEMS" /> वटा वस्तु सारिँदै छन्</translation>
+ <translation id="509429900233858213">त्रुटि भयो।</translation>
+-<translation id="5098629044894065541">हिब्रु</translation>
++<translation id="5098629044894065541">हिब्रू</translation>
+ <translation id="5109254780565519649">कुनै त्रुटि भयो। केही वस्तुहरू रिस्टोर नभएका हुन सक्छन्।</translation>
+ <translation id="5110329002213341433">अङ्ग्रेजी (क्यानाडा)</translation>
+ <translation id="5123433949759960244">बास्केटबल</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+index ae2e1f090652..42fbe4472af3 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_uk.xtb
+@@ -359,7 +359,7 @@
+ <translation id="4159731583141908892">Файл "<ph name="FILE_NAME" />" переміщено.</translation>
+ <translation id="4186579485882418952">Увімкнути режим офлайн</translation>
+ <translation id="4193154014135846272">Документ Google</translation>
+-<translation id="4197674956721858839">Вибір файлів для архівування</translation>
++<translation id="4197674956721858839">Додати в архів .zip</translation>
+ <translation id="4202378258276439759">Іспанська (Латинська Америка)</translation>
+ <translation id="4202977638116331303">Грузинська</translation>
+ <translation id="421017592316736757">Щоб отримати доступ до цього файлу, потрібно перебувати в режимі онлайн.</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+index bebd64d8f9ea..cfb57e3d9928 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_zh-TW.xtb
+@@ -385,7 +385,7 @@
+ <translation id="4380245540200674032">第 <ph name="NETWORK_INDEX" /> 個網路 (共 <ph name="NETWORK_COUNT" /> 個),<ph name="NETWORK_NAME" />,<ph name="NETWORK_PROVIDER_NAME" />,<ph name="CONNECTION_STATUS" />,訊號強度 <ph name="SIGNAL_STRENGTH" />%,由系統管理員管理,詳細資料</translation>
+ <translation id="4387004326333427325">遠端已拒絕驗證憑證</translation>
+ <translation id="4394214039309501350">外部連結</translation>
+-<translation id="4401287888955153199">擷取全部</translation>
++<translation id="4401287888955153199">解壓縮全部</translation>
+ <translation id="4410695710508688828">擷取作業失敗:<ph name="ERROR_MESSAGE" /></translation>
+ <translation id="4418686080762064601">為檔案建立捷徑</translation>
+ <translation id="4425149324548788773">我的雲端硬碟</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0004-M-102-lacros-fix-extension-controlled-pref-observers.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0004-M-102-lacros-fix-extension-controlled-pref-observers.patch
new file mode 100644
index 000000000000..85cb17020c3d
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0004-M-102-lacros-fix-extension-controlled-pref-observers.patch
@@ -0,0 +1,43 @@
+From 8416ba6a9b0e6d607655580b55c684cde6a435ee Mon Sep 17 00:00:00 2001
+From: Ian Helmke <helmke@google.com>
+Date: Fri, 10 Jun 2022 16:36:43 +0000
+Subject: [PATCH 04/59] M-102: lacros - fix extension controlled pref observers
+
+Currently creating an observer for an extension controlled pref causes
+ash to crash. This is a prerequisite to the full implementation of
+extension-controlled pref observers in lacros.
+
+(cherry picked from commit c3fe354aeee8432539fe42ddb4b3ac3e71736cd4)
+
+Bug: 1218145, 1334985
+Change-Id: Iad18872f3614a4125c5623226a69c9848554512b
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3690828
+Reviewed-by: Erik Chen <erikchen@chromium.org>
+Commit-Queue: Ian Helmke <helmke@google.com>
+Cr-Original-Commit-Position: refs/heads/main@{#1011757}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3695789
+Commit-Queue: Erik Chen <erikchen@chromium.org>
+Reviewed-by: Hidehiko Abe <hidehiko@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1163}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/browser/ash/crosapi/prefs_ash.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/browser/ash/crosapi/prefs_ash.cc b/chrome/browser/ash/crosapi/prefs_ash.cc
+index 5ddec3bda554..a9ade8d99ac1 100644
+--- a/chrome/browser/ash/crosapi/prefs_ash.cc
++++ b/chrome/browser/ash/crosapi/prefs_ash.cc
+@@ -302,7 +302,8 @@ absl::optional<PrefsAsh::State> PrefsAsh::GetState(mojom::PrefPath path) {
+         return absl::nullopt;
+       }
+       std::string pref_name = GetExtensionPrefNameForPref(path);
+-      return State{profile_prefs_registrar_->prefs(), nullptr, true, pref_name};
++      return State{profile_prefs_registrar_->prefs(),
++                   profile_prefs_registrar_.get(), true, pref_name};
+     }
+     default:
+       LOG(WARNING) << "Unknown pref path: " << path;
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0005-Incrementing-VERSION-to-102.0.5005.126.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0005-Incrementing-VERSION-to-102.0.5005.126.patch
new file mode 100644
index 000000000000..ecf389f14d38
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0005-Incrementing-VERSION-to-102.0.5005.126.patch
@@ -0,0 +1,28 @@
+From c1183bc113b0e24cb2d66b924b246b00e975b671 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sat, 11 Jun 2022 01:00:49 +0000
+Subject: [PATCH 05/59] Incrementing VERSION to 102.0.5005.126
+
+Change-Id: Id7f380472d528daafaed371354a37a49d998c7b0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3700892
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1164}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 6c2850a7ebf2..4db5628c5de0 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=125
++PATCH=126
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0006-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0006-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..3b6287e3eb72
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0006-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,110 @@
+From 072cee8911fc04072b9867585ad49ced2c922851 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Sat, 11 Jun 2022 14:19:04 +0000
+Subject: [PATCH 06/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Ib9c403509905557d2e7ffc90cbb19af7166d1e0b
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3701213
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1165}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_nl.xtb     | 10 +++++-----
+ chrome/app/resources/google_chrome_strings_tr.xtb   |  2 +-
+ ios/chrome/app/strings/resources/ios_strings_bs.xtb |  2 +-
+ ui/chromeos/translations/ui_chromeos_strings_hr.xtb |  2 +-
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
+index b457647f2406..b3c649849179 100644
+--- a/chrome/app/resources/generated_resources_nl.xtb
++++ b/chrome/app/resources/generated_resources_nl.xtb
+@@ -347,7 +347,7 @@
+ <translation id="134589511016534552">Mediatabbladen worden ook getoond in het gedeelte Geopende tabbladen</translation>
+ <translation id="1346630054604077329">Bevestigen en opnieuw opstarten</translation>
+ <translation id="1346748346194534595">Rechts</translation>
+-<translation id="1347256498747320987">Updates en apps installeren. Als je doorgaat, ga je ermee akkoord dat je apparaat ook automatisch updates en apps van Google, je provider en de fabrikant kan downloaden en installeren. Hiervoor worden mogelijk mobiele data gebruikt. Sommige van deze apps kunnen in-app-aankopen aanbieden. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
++<translation id="1347256498747320987">Updates en apps installeren. Als je doorgaat, ga je ermee akkoord dat je apparaat ook automatisch updates en apps van Google, je provider en de fabrikant kan downloaden en installeren. Hiervoor worden mogelijk mobiele data gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden. <ph name="BEGIN_LINK1" />Meer informatie<ph name="END_LINK1" /></translation>
+ <translation id="1347512539447549782">Linux-opslag</translation>
+ <translation id="1347975661240122359">De update wordt gestart wanneer de batterij voor <ph name="BATTERY_LEVEL" />% vol is.</translation>
+ <translation id="1353275871123211385">Als je opties voor ouderlijk toezicht, zoals app-goedkeuring en schermtijdlimieten, wilt gebruiken, moet je kind een Google-account hebben dat wordt beheerd door een ouder. Je kunt later een schoolaccount toevoegen voor tools zoals Google Classroom.</translation>
+@@ -853,7 +853,7 @@ Rechten die je al hebt gegeven aan apps, kunnen van toepassing zijn op dit accou
+ <translation id="1807246157184219062">Licht</translation>
+ <translation id="1809483812148634490">Apps die je hebt gedownload via Google Play worden van deze Chromebook verwijderd.
+     <ph name="LINE_BREAKS1" />
+-    De content die je hebt gekocht, zoals films, tv-programma's, muziek, boeken of andere in-app-aankopen, worden mogelijk ook verwijderd.
++    De content die je hebt gekocht, zoals films, tv-programma's, muziek, boeken of andere in-app aankopen, worden mogelijk ook verwijderd.
+     <ph name="LINE_BREAKS2" />
+     Dit is niet van invloed op apps of content op andere apparaten.</translation>
+ <translation id="1809734401532861917">Mijn bookmarks, geschiedenis, wachtwoorden en andere instellingen toevoegen aan <ph name="USER_EMAIL_ADDRESS" /></translation>
+@@ -4516,7 +4516,7 @@ Je kunt meerdere schakelaars toewijzen aan deze actie.</translation>
+ <translation id="5425863515030416387">Gemakkelijk inloggen bij apparaten</translation>
+ <translation id="5427278936122846523">Altijd vertalen</translation>
+ <translation id="5427459444770871191">Rechtsom &amp;draaien</translation>
+-<translation id="542750953150239272">Als je doorgaat, ga je ermee akkoord dat dit apparaat ook automatisch updates of apps van Google, je provider of de fabrikant van je apparaat kan downloaden en installeren, en dat hiervoor mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app-aankopen aanbieden.</translation>
++<translation id="542750953150239272">Als je doorgaat, ga je ermee akkoord dat dit apparaat ook automatisch updates of apps van Google, je provider of de fabrikant van je apparaat kan downloaden en installeren, en dat hiervoor mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden.</translation>
+ <translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (Update is beschikbaar)</translation>
+ <translation id="5429373054983029602">Zoeken op je scherm met <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
+ <translation id="542948651837270806">Er moet een update voor de Trusted Platform Module-firmware worden geïnstalleerd. Zie <ph name="TPM_FIRMWARE_UPDATE_LINK" /></translation>
+@@ -4562,7 +4562,7 @@ Je kunt meerdere schakelaars toewijzen aan deze actie.</translation>
+ <translation id="5471768120198416576">Hallo. Ik ben je stem voor tekst-naar-spraak.</translation>
+ <translation id="5472627187093107397">Wachtwoorden voor deze site opslaan</translation>
+ <translation id="5473075389972733037">IBM</translation>
+-<translation id="5473099001878321374">Als je verdergaat, ga je ermee akkoord dat dit apparaat ook automatische updates en apps van Google, de provider van je kind en de fabrikant van dit apparaat kan downloaden en installeren, waarbij mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app-aankopen aanbieden.</translation>
++<translation id="5473099001878321374">Als je verdergaat, ga je ermee akkoord dat dit apparaat ook automatische updates en apps van Google, de provider van je kind en de fabrikant van dit apparaat kan downloaden en installeren, waarbij mogelijk mobiele data worden gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden.</translation>
+ <translation id="5473156705047072749">{NUM_CHARACTERS,plural, =1{De pincode moet ten minste 1 teken bevatten}other{De pincode moet ten minste # tekens bevatten}}</translation>
+ <translation id="5474859849784484111"><ph name="MANAGER" /> vereist dat je nu verbinding maakt met wifi en een update downloadt. Je kunt de update ook downloaden via een verbinding met datalimiet (er kunnen kosten van toepassing zijn).</translation>
+ <translation id="5481273127572794904">Geen toestemming om automatisch meerdere bestanden te downloaden</translation>
+@@ -4930,7 +4930,7 @@ Je kunt meerdere schakelaars toewijzen aan deze actie.</translation>
+ <translation id="5843706793424741864">Fahrenheit</translation>
+ <translation id="5844574845205796324">Nieuwe content voorstellen om te bekijken</translation>
+ <translation id="5846200638699387931">Syntaxisfout in relatie: <ph name="ERROR_LINE" /></translation>
+-<translation id="5846807460505171493">Installeer updates en apps. Als je doorgaat, ga je ermee akkoord dat je apparaat ook automatisch updates en apps van Google, je provider en de fabrikant kan downloaden en installeren. Hiervoor worden mogelijk mobiele data gebruikt. Sommige van deze apps kunnen in-app-aankopen aanbieden.</translation>
++<translation id="5846807460505171493">Installeer updates en apps. Als je doorgaat, ga je ermee akkoord dat je apparaat ook automatisch updates en apps van Google, je provider en de fabrikant kan downloaden en installeren. Hiervoor worden mogelijk mobiele data gebruikt. Sommige van deze apps kunnen in-app aankopen aanbieden.</translation>
+ <translation id="5849212445710944278">Al toegevoegd</translation>
+ <translation id="5851868085455377790">Uitgever</translation>
+ <translation id="5852112051279473187">Oeps! Er is iets misgegaan bij de aanmelding van dit apparaat. Probeer het opnieuw of neem contact op met een medewerker van het supportteam.</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
+index 045e90543fd8..c635cf85eec7 100644
+--- a/chrome/app/resources/google_chrome_strings_tr.xtb
++++ b/chrome/app/resources/google_chrome_strings_tr.xtb
+@@ -9,7 +9,7 @@
+ <translation id="110877069173485804">Bu sizin Chrome'unuz</translation>
+ <translation id="1125124144982679672">Chrome'u kim kullanıyor?</translation>
+ <translation id="1142745911746664600">Chrome güncellenemiyor</translation>
+-<translation id="1152920704813762236">&amp;ChromeOS hakkında</translation>
++<translation id="1152920704813762236">ChromeOS hakkında</translation>
+ <translation id="1154147086299354128">&amp;Chrome'da aç</translation>
+ <translation id="1178374936842835197">Bu sayfada bulunmayan bir ayar varsa <ph name="LINK_BEGIN" />ChromeOS Flex ayarlarınıza
+         <ph name="LINK_END" /> bakın</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_bs.xtb b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+index 783065579808..77d80f45e1c9 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_bs.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_bs.xtb
+@@ -504,7 +504,7 @@ Da biste promijenili tu postavku, <ph name="BEGIN_LINK" />poništite sinkronizac
+ <translation id="5360976571138293719">Više postavki koje se odnose na privatnost, sigurnost i prikupljanje podataka možete pronaći u <ph name="BEGIN_LINK" />Googleovim uslugama<ph name="END_LINK" />.</translation>
+ <translation id="5386314158584363703">Web lokacije koje pratite ćete pronaći ovdje</translation>
+ <translation id="5388358297987318779">Otvori sliku</translation>
+-<translation id="5407969256130905701">Odbaci izmjene</translation>
++<translation id="5407969256130905701">Odbaci promjene</translation>
+ <translation id="5416022985862681400">Posljednjih 7 dana</translation>
+ <translation id="543338862236136125">Uredite lozinku</translation>
+ <translation id="5433691172869980887">Kopirano je korisničko ime</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
+index acfe5612f35e..703533a8b033 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_hr.xtb
+@@ -312,7 +312,7 @@
+ <translation id="3685122418104378273">Sinkronizacija Google diska onemogućena je prema zadanim postavkama kada se upotrebljavaju mobilni podaci.</translation>
+ <translation id="3689865792480713551">Otkažite <ph name="ACTIVITY_DESCRIPTION" />.</translation>
+ <translation id="3690128548376345212">Mreža <ph name="NETWORK_INDEX" /> od <ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, nije aktivirana, <ph name="CONNECTION_STATUS" />, jačina signala <ph name="SIGNAL_STRENGTH" />%, pojedinosti</translation>
+-<translation id="3691184985318546178">sinhaleški</translation>
++<translation id="3691184985318546178">singalski</translation>
+ <translation id="3726463242007121105">Nije moguće otvoriti ovaj uređaj jer nije podržan njegov datotečni sustav.</translation>
+ <translation id="3727148787322499904">Promjena te postavke utjecat će na sve dijeljene mreže</translation>
+ <translation id="3737576078404241332">Ukloni s bočne trake</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0007-Incrementing-VERSION-to-102.0.5005.127.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0007-Incrementing-VERSION-to-102.0.5005.127.patch
new file mode 100644
index 000000000000..fc1bf71a96a3
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0007-Incrementing-VERSION-to-102.0.5005.127.patch
@@ -0,0 +1,28 @@
+From f50593a7b3b30b172cd11bf2b1696b9897f68fe2 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sun, 12 Jun 2022 01:00:41 +0000
+Subject: [PATCH 07/59] Incrementing VERSION to 102.0.5005.127
+
+Change-Id: Icd5ee669cd0a2a6305e3be9f6129a0e900db4de4
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3701673
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1166}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 4db5628c5de0..f8c59ccd1144 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=126
++PATCH=127
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0008-Incrementing-VERSION-to-102.0.5005.128.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0008-Incrementing-VERSION-to-102.0.5005.128.patch
new file mode 100644
index 000000000000..9dc7df184c56
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0008-Incrementing-VERSION-to-102.0.5005.128.patch
@@ -0,0 +1,28 @@
+From 4fcbdecc1f7334a52b90f6a9bf8f8c9b6cf6bc51 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Mon, 13 Jun 2022 01:00:40 +0000
+Subject: [PATCH 08/59] Incrementing VERSION to 102.0.5005.128
+
+Change-Id: I22d833006358ea4bd8ef7dc3c9d58d5c308eedfd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3697583
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1167}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index f8c59ccd1144..88774f2ace3f 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=127
++PATCH=128
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0009-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0009-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..7b7406b7da2e
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0009-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,73 @@
+From cfe6727d5e34b66c6db9889c4bb6f732795d3558 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Mon, 13 Jun 2022 14:27:20 +0000
+Subject: [PATCH 09/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Idb67aeab99bc0544b5f908b1e82d2e62155f6a18
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3702757
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1168}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_da.xtb           | 2 +-
+ .../strings/translations/android_chrome_strings_eu.xtb    | 8 ++++----
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
+index a60a0ae6c617..5e3aaa5db75a 100644
+--- a/chrome/app/resources/generated_resources_da.xtb
++++ b/chrome/app/resources/generated_resources_da.xtb
+@@ -3387,7 +3387,7 @@ Vil du starte <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation>
+ <translation id="424963718355121712">Apps, der styrer et website, kan kun downloades fra det pågældende website</translation>
+ <translation id="4250229828105606438">Screenshot</translation>
+ <translation id="4250680216510889253">Nej</translation>
+-<translation id="4251377547188244181">Tilmelding af terminal- og signeringsenhed</translation>
++<translation id="4251377547188244181">Tilmelding af enhed til terminal- og signeringstilstand</translation>
+ <translation id="4252035718262427477">Webside, enkelt fil (Web Bundle)</translation>
+ <translation id="4252899949534773101">Bluetooth er deaktiveret</translation>
+ <translation id="4252996741873942488"><ph name="WINDOW_TITLE" /> – faneindholdet deles</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+index 64845ecef4a1..86cf1fdbe9fb 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+@@ -162,7 +162,7 @@ Arakatze-historia ezabatzen duzunean (osorik nahiz webgune zehatz bat), neurketa
+ <translation id="189358972401248634">Beste hizkuntzak</translation>
+ <translation id="1894023287452300670">Egin prezioaren jarraipena hemen</translation>
+ <translation id="1900260903084164610">Aurrera egiten baduzu, onartu egingo dituzu <ph name="BEGIN_TOS_LINK" />Zerbitzu-baldintzak<ph name="END_TOS_LINK" />.</translation>
+-<translation id="1910950723001426294">Partekatzeko aukeren zerrenda itxita dago.</translation>
++<translation id="1910950723001426294">Partekatze-aukeren zerrenda itxita dago.</translation>
+ <translation id="1918175104945982129">Ahozko bilaketa egite aldera Laguntzailea zerbitzuari baimena emateko erabiltzaile-interfazea altuera erdian irekita dago</translation>
+ <translation id="1919130412786645364">Baimendu Chrome-n saioa hastea</translation>
+ <translation id="1922362554271624559">Iradokitako hizkuntzak</translation>
+@@ -237,7 +237,7 @@ Sakatu bilatu nahi duzun hitza. Bilaketa mugatzeko, eduki testua sakatuta eta ha
+ <translation id="2278052315791335171">Pasahitza ezabatzen baduzu ere, ez da ezabatuko <ph name="SITE" /> webguneko kontua</translation>
+ <translation id="2279146068164892489"><ph name="APPNAME" /> aplikazioa ireki nahi duzu?</translation>
+ <translation id="2286841657746966508">Fakturazio-helbidea</translation>
+-<translation id="228704530595896923">Partekatzeko aukeren zerrenda.</translation>
++<translation id="228704530595896923">Partekatze-aukeren zerrenda.</translation>
+ <translation id="230115972905494466">Ez da aurkitu gailu bateragarririk</translation>
+ <translation id="230155349749732438">Ezarpen hau erabiltzeko, <ph name="BEGIN_LINK" />Hobetu bilaketak eta arakatze-jarduerak<ph name="END_LINK" /> eginbideak aktibatuta egon behar du</translation>
+ <translation id="2318045970523081853">Sakatu hau dei bat egiteko</translation>
+@@ -567,7 +567,7 @@ Eduki sakatuta bilatu nahi duzun hitza. Bilaketa mugatzeko, hautatu hitz gehiago
+ <translation id="4135200667068010335">Fitxa partekatzeko hautatutako gailuen zerrenda itxita dago.</translation>
+ <translation id="4137746084635924146">Gailuak une honetan darabilen hizkuntza</translation>
+ <translation id="4141536112466364990">Ikasi Chrome erabiltzen</translation>
+-<translation id="4162867837470729563">Ireki da partekatzeko aukeren zerrenda altuera osoan.</translation>
++<translation id="4162867837470729563">Partekatze-aukeren zerrenda altuera osoan irekita dago.</translation>
+ <translation id="4165986682804962316">Webgunearen ezarpenak</translation>
+ <translation id="4170011742729630528">Zerbitzua ez dago erabilgarri. Saiatu berriro geroago.</translation>
+ <translation id="4181841719683918333">Hizkuntzak</translation>
+@@ -986,7 +986,7 @@ Fidagarritasun-tokenek sareko pribatutasuna hobetzen dute eta ezin dira erabili
+ <translation id="6459045781120991510">Inkestak</translation>
+ <translation id="6461962085415701688">Ezin da ireki fitxategia</translation>
+ <translation id="6464977750820128603">Chrome-n irekitako webguneak ikus ditzakezu, eta haiek erabiltzeko tenporizadoreak ezarri.\n\nGoogle-k informazioa jasotzen du tenporizadoreak ezarri dizkiezun webguneei buruz eta haietan zenbat denbora eman duzun kalkulatzen du. Ongizate digitala programa hobetzeko erabiltzen da informazio hori.</translation>
+-<translation id="6473086018775716761">Partekatzeko aukeren zerrenda altuera erdian irekita dago.</translation>
++<translation id="6473086018775716761">Partekatze-aukeren zerrenda altuera erdian irekita dago.</translation>
+ <translation id="6475951671322991020">Deskargatu bideoa</translation>
+ <translation id="6477928892249167417">Webgune hauek garrantzitsuak dira zuretzat:</translation>
+ <translation id="6482749332252372425">Ezin izan da deskargatu <ph name="FILE_NAME" />, memoria beteta dagoelako.</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0010-M102-infra-Enforce-that-thin-testers-have-TEST-execu.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0010-M102-infra-Enforce-that-thin-testers-have-TEST-execu.patch
new file mode 100644
index 000000000000..579052e37e32
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0010-M102-infra-Enforce-that-thin-testers-have-TEST-execu.patch
@@ -0,0 +1,54 @@
+From f397daf7cd26e3ecc105dd9af34e65e38fce6457 Mon Sep 17 00:00:00 2001
+From: Garrett Beaty <gbeaty@chromium.org>
+Date: Mon, 13 Jun 2022 18:46:56 +0000
+Subject: [PATCH 10/59] [M102][infra] Enforce that thin testers have TEST
+ execution mode.
+
+Currently, the thin_tester function simply passes through the builder
+spec via kwargs. If a builder spec is set with the COMPILE_AND_TEST
+execution mode (the default), it gets passed through and the builder
+config will be generated incorrectly. This change adds a check for the
+execution mode to ensure that that it is correctly set.
+
+(cherry picked from commit 85e12dbbf8c46b63d3a558b3bc822ee63892904f)
+
+Change-Id: Id772dad71e3b79df104b6c7e44c063e2f0d14efc
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703060
+Reviewed-by: Ben Pastene <bpastene@chromium.org>
+Commit-Queue: Ben Pastene <bpastene@chromium.org>
+Auto-Submit: Garrett Beaty <gbeaty@google.com>
+Cr-Original-Commit-Position: refs/heads/main@{#1013571}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703484
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1169}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ infra/config/lib/ci.star | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/infra/config/lib/ci.star b/infra/config/lib/ci.star
+index 557b741b2342..edc064ddc5be 100644
+--- a/infra/config/lib/ci.star
++++ b/infra/config/lib/ci.star
+@@ -15,6 +15,7 @@ to set the default value. Can also be accessed through `ci.defaults`.
+ 
+ load("./args.star", "args")
+ load("./branches.star", "branches")
++load("./builder_config.star", "builder_config")
+ load("./builders.star", "builders", "os", "os_category")
+ load("//project.star", "settings")
+ 
+@@ -261,6 +262,9 @@ def thin_tester(
+     Returns:
+       The `luci.builder` keyset.
+     """
++    builder_spec = kwargs.get("builder_spec")
++    if builder_spec and builder_spec.execution_mode != builder_config.execution_mode.TEST:
++        fail("thin testers with builder specs must have TEST execution mode")
+     cores = defaults.get_value("thin_tester_cores", cores)
+     kwargs.setdefault("goma_backend", None)
+     kwargs.setdefault("reclient_instance", None)
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0011-Incrementing-VERSION-to-102.0.5005.129.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0011-Incrementing-VERSION-to-102.0.5005.129.patch
new file mode 100644
index 000000000000..808898432cbd
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0011-Incrementing-VERSION-to-102.0.5005.129.patch
@@ -0,0 +1,28 @@
+From 147b50af1e8a10424912455e819d8e3427003cc4 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Tue, 14 Jun 2022 01:00:40 +0000
+Subject: [PATCH 11/59] Incrementing VERSION to 102.0.5005.129
+
+Change-Id: Iefa095c3eb454cb07caf23bc988ffa80eb320cf0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703321
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1170}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 88774f2ace3f..a538c4b46baf 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=128
++PATCH=129
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0012-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0012-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..f232b33ff2a8
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0012-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,83 @@
+From ab2aa6886c4333de42bcceaf226bde6d195b0944 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Tue, 14 Jun 2022 14:24:26 +0000
+Subject: [PATCH 12/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I1811d9f375854b01cab83c7d08ad3f6f1f50aeb8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3702974
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1171}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_nl.xtb               | 4 ++--
+ chrome/app/resources/google_chrome_strings_zh-CN.xtb          | 2 +-
+ .../strings/translations/android_chrome_strings_nl.xtb        | 2 +-
+ ios/chrome/app/strings/resources/ios_strings_nl.xtb           | 2 +-
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
+index b3c649849179..51d184860f6b 100644
+--- a/chrome/app/resources/generated_resources_nl.xtb
++++ b/chrome/app/resources/generated_resources_nl.xtb
+@@ -2885,7 +2885,7 @@ Foutcode: <ph name="ERROR_CODE" />.</translation>
+ <translation id="3772046291955677288">Ik heb de <ph name="BEGIN_LINK1" />Servicevoorwaarden van Google<ph name="END_LINK1" /> en de <ph name="BEGIN_LINK2" />Aanvullende servicevoorwaarden van Chrome en Chrome OS<ph name="END_LINK2" /> gelezen en ga ermee akkoord.</translation>
+ <translation id="3774166835015494435">Recente foto's en meldingen</translation>
+ <translation id="3775432569830822555">SSL-servercertificaat</translation>
+-<translation id="3775705724665058594">Verzenden naar je apparaten</translation>
++<translation id="3775705724665058594">Naar je apparaten sturen</translation>
+ <translation id="3776508619697147021">Sites kunnen vragen of ze automatisch meerdere bestanden mogen downloaden</translation>
+ <translation id="3776796446459804932">Deze extensie schendt het beleid voor de Chrome Web Store.</translation>
+ <translation id="3777483481409781352">Kan mobiel apparaat niet activeren</translation>
+@@ -7375,7 +7375,7 @@ Bewaar je sleutelbestand op een veilige plaats. Je hebt het bestand nodig om nie
+ <translation id="8248381369318572865">Toegang krijgen tot je microfoon en je spraak analyseren</translation>
+ <translation id="8248887045858762645">Chrome-tip</translation>
+ <translation id="8249048954461686687">OEM-map</translation>
+-<translation id="8249615410597138718">Verzenden naar je apparaten</translation>
++<translation id="8249615410597138718">Naar je apparaten sturen</translation>
+ <translation id="8249672078237421304">Aanbieden om pagina's te vertalen die in een voor jou onbekende taal zijn</translation>
+ <translation id="8250210000648910632">Geen opslagruimte</translation>
+ <translation id="8251441930213048644">Nu vernieuwen</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+index 504051df27f8..c0b508274377 100644
+--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
++++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+@@ -9,7 +9,7 @@
+ <translation id="110877069173485804">这是您的专属Chrome</translation>
+ <translation id="1125124144982679672">谁在使用 Chrome?</translation>
+ <translation id="1142745911746664600">无法更新 Chrome</translation>
+-<translation id="1152920704813762236">关于 Chrome 操作系统</translation>
++<translation id="1152920704813762236">关于 ChromeOS</translation>
+ <translation id="1154147086299354128">在 Chrome 中打开(&amp;O)</translation>
+ <translation id="1178374936842835197">如果此页面中未显示某项设置,请在 <ph name="LINK_BEGIN" />ChromeOS Flex 设置<ph name="LINK_END" />中查找</translation>
+ <translation id="1182414570724401860">Chrome 建议您不要下载或打开此文件</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+index c252a3f5d69f..fd4290716186 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_nl.xtb
+@@ -510,7 +510,7 @@ Tik op een woord en houd dit vast om te zoeken. Selecteer meer of minder woorden
+ <translation id="3771290962915251154">Deze instelling staat uit omdat ouderlijk toezicht is aangezet</translation>
+ <translation id="3771694256347217732">Servicevoorwaarden van Google</translation>
+ <translation id="3773856050682458546">Basisgegevens en informatie over de websites die je bezoekt en de apps die je gebruikt</translation>
+-<translation id="3775705724665058594">Verzenden naar je apparaten</translation>
++<translation id="3775705724665058594">Naar je apparaten sturen</translation>
+ <translation id="3778956594442850293">Toegevoegd aan startscherm</translation>
+ <translation id="3791957072666773229">{TAB_COUNT,plural, =1{1 tabblad}other{# tabbladen}}</translation>
+ <translation id="3803784507854318295">Autoplay beheren</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+index 3d33d1b441cc..be8132d576fe 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+@@ -352,7 +352,7 @@ Volg de onderstaande stappen:</translation>
+ <translation id="3995521777587992544">Voortgangsbalk voor laden van pagina, <ph name="EMAIL" /> geladen.</translation>
+ <translation id="4002066346123236978">Titel</translation>
+ <translation id="4004204301268239848">Wachtwoorden worden in je Google-account opgeslagen, zodat je deze op elk apparaat kunt gebruiken.</translation>
+-<translation id="4006921758705478413">Verzenden naar je apparaten</translation>
++<translation id="4006921758705478413">Naar je apparaten sturen</translation>
+ <translation id="4018310736049373830">Activiteit beheren</translation>
+ <translation id="4038354071007134711">Geen app op dit apparaat kan het bestand openen.</translation>
+ <translation id="4042870976416480368">Zoeken op pagina</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0013-M102-infra-Fix-future-lint-warnings.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0013-M102-infra-Fix-future-lint-warnings.patch
new file mode 100644
index 000000000000..dedafeeae2c0
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0013-M102-infra-Fix-future-lint-warnings.patch
@@ -0,0 +1,108 @@
+From 1cb6163bd0fe1a956aad2beee9351dbd2b0f0d28 Mon Sep 17 00:00:00 2001
+From: Garrett Beaty <gbeaty@chromium.org>
+Date: Tue, 14 Jun 2022 18:57:44 +0000
+Subject: [PATCH 13/59] [M102][infra] Fix future lint warnings.
+
+The upcoming version of lucicfg has updated buildifier library
+that has more lint checks (in particular stricter 'unused-variable'
+and 'return-value' checks). To avoid breaking validation of
+Chromium configs, this CL fixes them in advance.
+
+(cherry picked from commit bbf8109aaa463dcd34a1196bd170999fed50a1a3)
+
+Change-Id: I0eb2406b30c93cbf9efba188887884ace520aa0c
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703880
+Auto-Submit: Garrett Beaty <gbeaty@google.com>
+Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
+Commit-Queue: Garrett Beaty <gbeaty@google.com>
+Cr-Original-Commit-Position: refs/heads/main@{#1014084}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3705899
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1172}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ infra/config/lib/args.star        |  2 ++
+ infra/config/lib/consoles.star    | 11 ++++-------
+ infra/config/outages/outages.star |  2 +-
+ 3 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/infra/config/lib/args.star b/infra/config/lib/args.star
+index 2f3bbb42a57f..a5947a9485c2 100644
+--- a/infra/config/lib/args.star
++++ b/infra/config/lib/args.star
+@@ -96,6 +96,8 @@ def defaults(extends = None, **vars):
+                 return listify(value)
+             return listify(default, value)
+ 
++        fail("unknown merge value: {}".format(merge))
++
+     def get_value_from_kwargs(name, kwargs, merge = None):
+         return get_value(name, kwargs.get(name, DEFAULT), merge = merge)
+ 
+diff --git a/infra/config/lib/consoles.star b/infra/config/lib/consoles.star
+index 3eed963fa62d..d07a73baf77d 100644
+--- a/infra/config/lib/consoles.star
++++ b/infra/config/lib/consoles.star
+@@ -40,7 +40,7 @@ defaults = args.defaults(
+ _CONSOLE_VIEW_ORDERING = nodes.create_unscoped_node_type("console_view_ordering")
+ _OVERVIEW_CONSOLE_ORDERING = nodes.create_unscoped_node_type("overview_console_ordering")
+ 
+-def _console_view_ordering_impl(ctx, *, console_name, ordering):
++def _console_view_ordering_impl(_ctx, *, console_name, ordering):
+     key = _CONSOLE_VIEW_ORDERING.add(console_name, props = {
+         "ordering": ordering,
+     })
+@@ -49,7 +49,7 @@ def _console_view_ordering_impl(ctx, *, console_name, ordering):
+ 
+ _console_view_ordering = lucicfg.rule(impl = _console_view_ordering_impl)
+ 
+-def _overview_console_view_ordering_impl(ctx, *, console_name, top_level_ordering):
++def _overview_console_view_ordering_impl(_ctx, *, console_name, top_level_ordering):
+     key = _OVERVIEW_CONSOLE_ORDERING.add(console_name, props = {
+         "top_level_ordering": top_level_ordering,
+     })
+@@ -266,7 +266,7 @@ def console_view(*, name, branch_selector = branches.MAIN, ordering = None, **kw
+         ordering = ordering or {},
+     )
+ 
+-def overview_console_view(*, name, top_level_ordering, branch_selector = branches.MAIN, **kwargs):
++def overview_console_view(*, name, top_level_ordering, **kwargs):
+     """Create an overview console view.
+ 
+     An overview console view is a console view that contains a subset of
+@@ -285,9 +285,6 @@ def overview_console_view(*, name, top_level_ordering, branch_selector = branche
+         name does not appear in the list will be sorted lexicographically
+         by the console name and appear after entries whose console does
+         appear in the list.
+-      branch_selector - A branch selector value controlling whether the
+-        console view definition is executed. See branches.star for
+-        more information.
+       kwargs - Additional keyword arguments to forward on to
+         `luci.console_view`. The header and repo arguments support
+          module-level defaults.
+@@ -351,7 +348,7 @@ def _get_list_view_key_fn(console_name):
+         return None
+     return lambda b: b.name
+ 
+-def _sorted_list_view_impl(ctx, *, console_name):
++def _sorted_list_view_impl(_ctx, *, console_name):
+     key = _sorted_list_view_graph_key(console_name)
+     graph.add_node(key)
+     graph.add_edge(keys.project(), key)
+diff --git a/infra/config/outages/outages.star b/infra/config/outages/outages.star
+index 16736121c21e..6ada1be72649 100644
+--- a/infra/config/outages/outages.star
++++ b/infra/config/outages/outages.star
+@@ -33,7 +33,7 @@ def _disable_cq_experiments(ctx):
+         for b in c.verifiers.tryjob.builders:
+             if not b.experiment_percentage:
+                 continue
+-            project, bucket, builder = b.name.split("/", 2)
++            project, bucket, _ = b.name.split("/", 2)
+             if project == "chromium" and bucket == "try":
+                 b.includable_only = True
+                 b.experiment_percentage = 0
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0014-M102-Ensure-raw_ptr-T-and-T-are-treated-identically-.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0014-M102-Ensure-raw_ptr-T-and-T-are-treated-identically-.patch
new file mode 100644
index 000000000000..8e7aa1db365e
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0014-M102-Ensure-raw_ptr-T-and-T-are-treated-identically-.patch
@@ -0,0 +1,357 @@
+From f427936d32dbe1e9c27c0bcf54eff6818bddb906 Mon Sep 17 00:00:00 2001
+From: Daniel Cheng <dcheng@chromium.org>
+Date: Tue, 14 Jun 2022 19:11:17 +0000
+Subject: [PATCH 14/59] [M102] Ensure raw_ptr<T> and T* are treated identically
+ in //base callback.
+
+There are safety checks associated with raw pointers (e.g. ensuring
+receiver pointers are not raw pointers). Make sure these checks are
+applied whether the input type is T* or raw_ptr<T>.
+
+- Implement base::IsPointer<T> and base::RemovePointer<T>, which are
+  similar to std::is_pointer<T> and std::remove_pointer<T>, except they
+  also consider raw_ptr<T> a raw pointer type.
+- Fix failures from the strengthened asserts: WebAppInstallFinalizer
+  does not need a callback at all, while the privacy sandbox dialog
+  tests can safely use base::Unretained().
+- Add test cases to cover this in the //base callback nocompile test
+  suite.
+- Fix the existing nocompile tests, which did not escape `||` and
+  inadvertently matched any error text.
+
+(cherry picked from commit 00c072a2c7f24921af3bbf8441abb34ecb0551a6)
+
+Bug: 1335458
+Change-Id: I470e3d5bc35ed52bf125136db738a868ef90b7e7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3700700
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Daniel Cheng <dcheng@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1013266}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703779
+Cr-Commit-Position: refs/branch-heads/5005@{#1173}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ base/bind_internal.h                          | 17 +++++-----
+ base/bind_unittest.cc                         | 28 +++++++++++++++++
+ base/bind_unittest.nc                         | 31 +++++++++++++++++--
+ base/memory/raw_ptr.h                         | 31 +++++++++++++++++++
+ .../raw_scoped_refptr_mismatch_checker.h      |  5 +--
+ ...privacy_sandbox_dialog_handler_unittest.cc | 26 +++++++++-------
+ .../web_app_install_finalizer.cc              | 15 ++++-----
+ 7 files changed, 121 insertions(+), 32 deletions(-)
+
+diff --git a/base/bind_internal.h b/base/bind_internal.h
+index 60607efadb30..1b06e54b65a4 100644
+--- a/base/bind_internal.h
++++ b/base/bind_internal.h
+@@ -859,8 +859,8 @@ bool QueryCancellationTraits(const BindStateBase* base,
+ template <typename Functor, typename Receiver, typename... Unused>
+ std::enable_if_t<
+     !(MakeFunctorTraits<Functor>::is_method &&
+-      std::is_pointer_v<std::decay_t<Receiver>> &&
+-      IsRefCountedType<std::remove_pointer_t<std::decay_t<Receiver>>>::value)>
++      IsPointerV<std::decay_t<Receiver>> &&
++      IsRefCountedType<RemovePointerT<std::decay_t<Receiver>>>::value)>
+ BanUnconstructedRefCountedReceiver(const Receiver& receiver, Unused&&...) {}
+ 
+ template <typename Functor>
+@@ -870,8 +870,8 @@ void BanUnconstructedRefCountedReceiver() {}
+ template <typename Functor, typename Receiver, typename... Unused>
+ std::enable_if_t<
+     MakeFunctorTraits<Functor>::is_method &&
+-    std::is_pointer_v<std::decay_t<Receiver>> &&
+-    IsRefCountedType<std::remove_pointer_t<std::decay_t<Receiver>>>::value>
++    IsPointerV<std::decay_t<Receiver>> &&
++    IsRefCountedType<RemovePointerT<std::decay_t<Receiver>>>::value>
+ BanUnconstructedRefCountedReceiver(const Receiver& receiver, Unused&&...) {
+   DCHECK(receiver);
+ 
+@@ -1006,19 +1006,20 @@ struct MakeBindStateTypeImpl<true, Functor, Receiver, BoundArgs...> {
+   static_assert(!std::is_array_v<std::remove_reference_t<Receiver>>,
+                 "First bound argument to a method cannot be an array.");
+   static_assert(
+-      !std::is_pointer_v<DecayedReceiver> ||
+-          IsRefCountedType<std::remove_pointer_t<DecayedReceiver>>::value,
++      !IsPointerV<DecayedReceiver> ||
++          IsRefCountedType<RemovePointerT<DecayedReceiver>>::value,
+       "Receivers may not be raw pointers. If using a raw pointer here is safe"
+       " and has no lifetime concerns, use base::Unretained() and document why"
+       " it's safe.");
++
+   static_assert(!HasRefCountedTypeAsRawPtr<std::decay_t<BoundArgs>...>::value,
+                 "A parameter is a refcounted type and needs scoped_refptr.");
+ 
+  public:
+   using Type = BindState<
+       std::decay_t<Functor>,
+-      std::conditional_t<std::is_pointer_v<DecayedReceiver>,
+-                         scoped_refptr<std::remove_pointer_t<DecayedReceiver>>,
++      std::conditional_t<IsPointerV<DecayedReceiver>,
++                         scoped_refptr<RemovePointerT<DecayedReceiver>>,
+                          DecayedReceiver>,
+       MakeStorageType<BoundArgs>...>;
+ };
+diff --git a/base/bind_unittest.cc b/base/bind_unittest.cc
+index a5f681fe53b9..6844b6796d9f 100644
+--- a/base/bind_unittest.cc
++++ b/base/bind_unittest.cc
+@@ -1169,6 +1169,28 @@ TYPED_TEST(BindVariantsTest, UniquePtrReceiver) {
+   TypeParam::Bind(&NoRef::VoidMethod0, std::move(no_ref)).Run();
+ }
+ 
++TYPED_TEST(BindVariantsTest, ImplicitRefPtrReceiver) {
++  StrictMock<HasRef> has_ref;
++  EXPECT_CALL(has_ref, AddRef()).Times(1);
++  EXPECT_CALL(has_ref, Release()).Times(1);
++  EXPECT_CALL(has_ref, HasAtLeastOneRef()).WillRepeatedly(Return(true));
++
++  HasRef* ptr = &has_ref;
++  auto ptr_cb = TypeParam::Bind(&HasRef::HasAtLeastOneRef, ptr);
++  EXPECT_EQ(1, std::move(ptr_cb).Run());
++}
++
++TYPED_TEST(BindVariantsTest, RawPtrReceiver) {
++  StrictMock<HasRef> has_ref;
++  EXPECT_CALL(has_ref, AddRef()).Times(1);
++  EXPECT_CALL(has_ref, Release()).Times(1);
++  EXPECT_CALL(has_ref, HasAtLeastOneRef()).WillRepeatedly(Return(true));
++
++  raw_ptr<HasRef> rawptr(&has_ref);
++  auto rawptr_cb = TypeParam::Bind(&HasRef::HasAtLeastOneRef, rawptr);
++  EXPECT_EQ(1, std::move(rawptr_cb).Run());
++}
++
+ // Tests for Passed() wrapper support:
+ //   - Passed() can be constructed from a pointer to scoper.
+ //   - Passed() can be constructed from a scoper rvalue.
+@@ -1751,6 +1773,12 @@ TEST(BindDeathTest, BanFirstOwnerOfRefCountedType) {
+     EXPECT_CALL(has_ref, HasAtLeastOneRef()).WillOnce(Return(false));
+     base::BindOnce(&HasRef::VoidMethod0, &has_ref);
+   });
++
++  EXPECT_DCHECK_DEATH({
++    raw_ptr<HasRef> rawptr(&has_ref);
++    EXPECT_CALL(has_ref, HasAtLeastOneRef()).WillOnce(Return(false));
++    base::BindOnce(&HasRef::VoidMethod0, rawptr);
++  });
+ }
+ 
+ }  // namespace
+diff --git a/base/bind_unittest.nc b/base/bind_unittest.nc
+index 20b0e0ba2cee..29807298ca3c 100644
+--- a/base/bind_unittest.nc
++++ b/base/bind_unittest.nc
+@@ -93,7 +93,7 @@ void WontCompile() {
+   method_to_const_cb.Run();
+ }
+ 
+-#elif defined(NCTEST_METHOD_BIND_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!std::is_pointer_v<base::NoRef *> || IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained() and document why it's safe.\""]
++#elif defined(NCTEST_METHOD_BIND_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!IsPointerV<base::NoRef \*> \|\| IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained\(\) and document why it's safe.\""]
+ 
+ 
+ // Method bound to non-refcounted object.
+@@ -106,7 +106,7 @@ void WontCompile() {
+   no_ref_cb.Run();
+ }
+ 
+-#elif defined(NCTEST_CONST_METHOD_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!std::is_pointer_v<base::NoRef *> || IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained() and document why it's safe.\""]
++#elif defined(NCTEST_CONST_METHOD_BIND_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!IsPointerV<base::NoRef \*> \|\| IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained\(\) and document why it's safe.\""]
+ 
+ // Const Method bound to non-refcounted object.
+ //
+@@ -118,6 +118,33 @@ void WontCompile() {
+   no_ref_const_cb.Run();
+ }
+ 
++#elif defined(NCTEST_METHOD_BIND_RAW_PTR_RECEIVER_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!IsPointerV<base::raw_ptr<base::NoRef, [^>]+>> \|\| IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained\(\) and document why it's safe.\""]
++
++
++// Method bound to non-refcounted object.
++//
++// We require refcounts unless you have Unretained().
++void WontCompile() {
++  NoRef no_ref;
++  raw_ptr<NoRef> rawptr(&no_ref);
++  RepeatingCallback<void()> no_ref_cb =
++      BindRepeating(&NoRef::VoidMethod0, rawptr);
++  no_ref_cb.Run();
++}
++
++#elif defined(NCTEST_CONST_METHOD_BIND_RAW_PTR_RECEIVER_NEEDS_REFCOUNTED_OBJECT)  // [r"fatal error: static_assert failed due to requirement '!IsPointerV<base::raw_ptr<base::NoRef, [^>]+>> \|\| IsRefCountedType<base::NoRef, void>::value' \"Receivers may not be raw pointers. If using a raw pointer here is safe and has no lifetime concerns, use base::Unretained\(\) and document why it's safe.\""]
++
++// Const Method bound to non-refcounted object.
++//
++// We require refcounts unless you have Unretained().
++void WontCompile() {
++  NoRef no_ref;
++  raw_ptr<NoRef> rawptr(&no_ref);
++  RepeatingCallback<void()> no_ref_const_cb =
++      BindRepeating(&NoRef::VoidConstMethod0, rawptr);
++  no_ref_const_cb.Run();
++}
++
+ #elif defined(NCTEST_CONST_POINTER)  // [r"static_assert failed.+?BindArgument<0>::ForwardedAs<.+?>::ToParamWithType<.+?>::kCanBeForwardedToBoundFunctor.+?Type mismatch between bound argument and bound functor's parameter\."]
+ // Const argument used with non-const pointer parameter of same type.
+ //
+diff --git a/base/memory/raw_ptr.h b/base/memory/raw_ptr.h
+index 4d978e979863..639713cd6199 100644
+--- a/base/memory/raw_ptr.h
++++ b/base/memory/raw_ptr.h
+@@ -1051,6 +1051,37 @@ ALWAYS_INLINE bool operator>=(const raw_ptr<U, I>& lhs,
+   return lhs.GetForComparison() >= rhs.GetForComparison();
+ }
+ 
++// Template helpers for working with T* or raw_ptr<T>.
++template <typename T>
++struct IsPointer : std::false_type {};
++
++template <typename T>
++struct IsPointer<T*> : std::true_type {};
++
++template <typename T, typename I>
++struct IsPointer<raw_ptr<T, I>> : std::true_type {};
++
++template <typename T>
++inline constexpr bool IsPointerV = IsPointer<T>::value;
++
++template <typename T>
++struct RemovePointer {
++  using type = T;
++};
++
++template <typename T>
++struct RemovePointer<T*> {
++  using type = T;
++};
++
++template <typename T, typename I>
++struct RemovePointer<raw_ptr<T, I>> {
++  using type = T;
++};
++
++template <typename T>
++using RemovePointerT = typename RemovePointer<T>::type;
++
+ }  // namespace base
+ 
+ using base::raw_ptr;
+diff --git a/base/memory/raw_scoped_refptr_mismatch_checker.h b/base/memory/raw_scoped_refptr_mismatch_checker.h
+index 9e50458ec98b..7afae066fa3e 100644
+--- a/base/memory/raw_scoped_refptr_mismatch_checker.h
++++ b/base/memory/raw_scoped_refptr_mismatch_checker.h
+@@ -7,6 +7,7 @@
+ 
+ #include <type_traits>
+ 
++#include "base/memory/raw_ptr.h"
+ #include "base/template_util.h"
+ 
+ // It is dangerous to post a task with a T* argument where T is a subtype of
+@@ -35,8 +36,8 @@ struct IsRefCountedType<T,
+ // pointer type and are convertible to a RefCounted(Base|ThreadSafeBase) type.
+ template <typename T>
+ struct NeedsScopedRefptrButGetsRawPtr
+-    : conjunction<std::is_pointer<T>,
+-                  IsRefCountedType<std::remove_pointer_t<T>>> {
++    : conjunction<base::IsPointer<T>,
++                  IsRefCountedType<base::RemovePointerT<T>>> {
+   static_assert(!std::is_reference<T>::value,
+                 "NeedsScopedRefptrButGetsRawPtr requires non-reference type.");
+ };
+diff --git a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_handler_unittest.cc b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_handler_unittest.cc
+index d812d82a08c3..ee22b02bdbed 100644
+--- a/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_handler_unittest.cc
++++ b/chrome/browser/ui/webui/privacy_sandbox/privacy_sandbox_dialog_handler_unittest.cc
+@@ -93,9 +93,7 @@ class PrivacySandboxDialogHandlerTest : public testing::Test {
+   content::TestWebUI* web_ui() { return web_ui_.get(); }
+   PrivacySandboxDialogHandler* handler() { return handler_.get(); }
+   TestingProfile* profile() { return &profile_; }
+-  raw_ptr<MockPrivacySandboxDialogView> dialog_mock() {
+-    return dialog_mock_.get();
+-  }
++  MockPrivacySandboxDialogView* dialog_mock() { return dialog_mock_.get(); }
+   MockPrivacySandboxService* mock_privacy_sandbox_service() {
+     return mock_privacy_sandbox_service_;
+   }
+@@ -120,15 +118,18 @@ class PrivacySandboxConsentDialogHandlerTest
+     : public PrivacySandboxDialogHandlerTest {
+  protected:
+   std::unique_ptr<PrivacySandboxDialogHandler> CreateHandler() override {
++    // base::Unretained is safe because the created handler does not outlive the
++    // mock.
+     return std::make_unique<PrivacySandboxDialogHandler>(
+-        base::BindOnce(&MockPrivacySandboxDialogView::Close, dialog_mock()),
++        base::BindOnce(&MockPrivacySandboxDialogView::Close,
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(&MockPrivacySandboxDialogView::ResizeNativeView,
+-                       dialog_mock()),
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(&MockPrivacySandboxDialogView::ShowNativeView,
+-                       dialog_mock()),
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(
+             &MockPrivacySandboxDialogView::OpenPrivacySandboxSettings,
+-            dialog_mock()),
++            base::Unretained(dialog_mock())),
+         PrivacySandboxService::DialogType::kConsent);
+   }
+ };
+@@ -247,15 +248,18 @@ class PrivacySandboxNoticeDialogHandlerTest
+     : public PrivacySandboxDialogHandlerTest {
+  protected:
+   std::unique_ptr<PrivacySandboxDialogHandler> CreateHandler() override {
++    // base::Unretained is safe because the created handler does not outlive the
++    // mock.
+     return std::make_unique<PrivacySandboxDialogHandler>(
+-        base::BindOnce(&MockPrivacySandboxDialogView::Close, dialog_mock()),
++        base::BindOnce(&MockPrivacySandboxDialogView::Close,
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(&MockPrivacySandboxDialogView::ResizeNativeView,
+-                       dialog_mock()),
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(&MockPrivacySandboxDialogView::ShowNativeView,
+-                       dialog_mock()),
++                       base::Unretained(dialog_mock())),
+         base::BindOnce(
+             &MockPrivacySandboxDialogView::OpenPrivacySandboxSettings,
+-            dialog_mock()),
++            base::Unretained(dialog_mock())),
+         PrivacySandboxService::DialogType::kNotice);
+   }
+ };
+diff --git a/chrome/browser/web_applications/web_app_install_finalizer.cc b/chrome/browser/web_applications/web_app_install_finalizer.cc
+index 2b85d7645980..cf57d375d0d3 100644
+--- a/chrome/browser/web_applications/web_app_install_finalizer.cc
++++ b/chrome/browser/web_applications/web_app_install_finalizer.cc
+@@ -505,10 +505,6 @@ void WebAppInstallFinalizer::SetWebAppManifestFieldsAndWriteData(
+       web_app_info.shortcuts_menu_icon_bitmaps;
+   IconsMap other_icon_bitmaps = web_app_info.other_icon_bitmaps;
+ 
+-  auto write_icons_callback = base::BindOnce(
+-      &WebAppIconManager::WriteData, icon_manager_, app_id,
+-      std::move(icon_bitmaps), std::move(shortcuts_menu_icon_bitmaps),
+-      std::move(other_icon_bitmaps));
+   auto write_translations_callback = base::BindOnce(
+       &WebAppInstallFinalizer::WriteTranslations,
+       weak_ptr_factory_.GetWeakPtr(), app_id, std::move(web_app_info));
+@@ -516,11 +512,12 @@ void WebAppInstallFinalizer::SetWebAppManifestFieldsAndWriteData(
+       base::BindOnce(&WebAppInstallFinalizer::CommitToSyncBridge,
+                      weak_ptr_factory_.GetWeakPtr(), std::move(web_app));
+ 
+-  std::move(write_icons_callback)
+-      .Run(base::BindOnce(
+-          std::move(write_translations_callback),
+-          base::BindOnce(std::move(commit_to_sync_bridge_callback),
+-                         std::move(commit_callback))));
++  icon_manager_->WriteData(
++      app_id, std::move(icon_bitmaps), std::move(shortcuts_menu_icon_bitmaps),
++      std::move(other_icon_bitmaps),
++      base::BindOnce(std::move(write_translations_callback),
++                     base::BindOnce(std::move(commit_to_sync_bridge_callback),
++                                    std::move(commit_callback))));
+ }
+ 
+ void WebAppInstallFinalizer::WriteTranslations(
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0015-Incrementing-VERSION-to-102.0.5005.130.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0015-Incrementing-VERSION-to-102.0.5005.130.patch
new file mode 100644
index 000000000000..be1c25bad6ea
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0015-Incrementing-VERSION-to-102.0.5005.130.patch
@@ -0,0 +1,28 @@
+From 9821e4a21a7d69f0c0cb97718e879a2f3c89f46a Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Wed, 15 Jun 2022 01:00:25 +0000
+Subject: [PATCH 15/59] Incrementing VERSION to 102.0.5005.130
+
+Change-Id: I68fc3b8c4b0963091997a833f8d2a0b82110db5d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3702546
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1174}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index a538c4b46baf..2a835d053cb4 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=129
++PATCH=130
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0016-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0016-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..7b7ce87219c2
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0016-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,889 @@
+From 1a4d97d59d24ed5583007288ea30138e7be680fa Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Wed, 15 Jun 2022 14:56:42 +0000
+Subject: [PATCH 16/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Ic65df5e8ca6d69e7f009fee9037f2579681704ec
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3707693
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1175}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../app/resources/generated_resources_bs.xtb  |   2 +-
+ .../resources/generated_resources_en-GB.xtb   | 132 +++++++++---------
+ .../resources/generated_resources_es-419.xtb  |   4 +-
+ .../app/resources/generated_resources_gl.xtb  |   2 +-
+ .../android_chrome_strings_eu.xtb             |   2 +-
+ .../strings/components_strings_en-GB.xtb      |  32 ++---
+ .../resources/ios_chromium_strings_en-GB.xtb  |   2 +-
+ .../ios_google_chrome_strings_en-GB.xtb       |   2 +-
+ .../strings/resources/ios_strings_en-GB.xtb   |  10 +-
+ 9 files changed, 94 insertions(+), 94 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
+index c07a6e47b0b6..7234e04492b8 100644
+--- a/chrome/app/resources/generated_resources_bs.xtb
++++ b/chrome/app/resources/generated_resources_bs.xtb
+@@ -7607,7 +7607,7 @@ Fajl ključa: <ph name="KEY_FILE" />
+ <translation id="846374874681391779">Traka preuzetih fajlova</translation>
+ <translation id="8463955938112983119">Dodatak <ph name="PLUGIN_NAME" /> je onemogućen.</translation>
+ <translation id="8464132254133862871">Ovaj korisnički račun ne ispunjava uslove za ovu uslugu.</translation>
+-<translation id="8464735509712879725">Za prostorije sa slabim svjetlom. Također optimizirano za vijek trajanja baterije.</translation>
++<translation id="8464735509712879725">Za prostorije sa slabim svjetlom. Također optimizirano prema vijeku trajanja baterije.</translation>
+ <translation id="8465252176946159372">Nije važeće</translation>
+ <translation id="8465444703385715657">Za pokretanje dodatka <ph name="PLUGIN_NAME" /> je potrebno vaše odobrenje</translation>
+ <translation id="8466417995783206254">Ova kartica reproducira videozapis u načinu rada slike u slici.</translation>
+diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
+index ebdba205fed4..750571d685d8 100644
+--- a/chrome/app/resources/generated_resources_en-GB.xtb
++++ b/chrome/app/resources/generated_resources_en-GB.xtb
+@@ -51,7 +51,7 @@
+ <translation id="1049795001945932310">&amp;Language settings</translation>
+ <translation id="1050693411695664090">Poor</translation>
+ <translation id="1054048317165655285">Complete setup on your phone</translation>
+-<translation id="1054153489933238809">Open original image in new tab</translation>
++<translation id="1054153489933238809">Open Original &amp;Image in New Tab</translation>
+ <translation id="1055274863771110134">{NUM_WEEKS,plural, =1{Update <ph name="DEVICE_TYPE" /> within 1 week}other{Update <ph name="DEVICE_TYPE" /> within {NUM_WEEKS} weeks}}</translation>
+ <translation id="1056898198331236512">Warning</translation>
+ <translation id="1058262162121953039">PUK</translation>
+@@ -85,7 +85,7 @@
+ <translation id="1076818208934827215">Microsoft Internet Explorer</translation>
+ <translation id="1076882167394279216">Couldn’t download spell check dictionary for <ph name="LANGUAGE" />. Try again.</translation>
+ <translation id="1079766198702302550">Always block camera access</translation>
+-<translation id="1081956462909987459">{NUM_TABS,plural, =1{<ph name="GROUP_TITLE" /> – 1 tab}other{<ph name="GROUP_TITLE" /> – # tabs}}</translation>
++<translation id="1081956462909987459">{NUM_TABS,plural, =1{<ph name="GROUP_TITLE" /> – 1 Tab}other{<ph name="GROUP_TITLE" /> – # Tabs}}</translation>
+ <translation id="1082214733466244292">Your administrator has blocked some functionality for this device</translation>
+ <translation id="1082398631555931481"><ph name="THIRD_PARTY_TOOL_NAME" /> wants to restore your Chrome settings to their original defaults. This will reset your homepage, new tab page and search engine, disable your extensions and unpin all tabs. It will also clear other temporary and cached data, such as cookies, content and site data.</translation>
+ <translation id="1084096383128641877">Removing this password will not delete your account on <ph name="DOMAIN" />. Change your password or delete your account on <ph name="DOMAIN_LINK" /> to keep it safe from others.</translation>
+@@ -95,7 +95,7 @@
+ <translation id="1087965115100412394">Don't allow sites to connect to MIDI devices</translation>
+ <translation id="1088654056000736875">Chrome is removing harmful software from your computer…</translation>
+ <translation id="1088659085457112967">Enter Reader Mode</translation>
+-<translation id="1090126737595388931">No background apps running</translation>
++<translation id="1090126737595388931">No Background Apps Running</translation>
+ <translation id="1090541560108055381">Before pairing, make sure that this code is the same on both devices</translation>
+ <translation id="1091767800771861448">Press ESCAPE to skip (Non-official builds only).</translation>
+ <translation id="1093457606523402488">Visible Networks:</translation>
+@@ -176,7 +176,7 @@
+ <translation id="1163931534039071049">&amp;View frame source</translation>
+ <translation id="1164891049599601209">Entered on deceptive site</translation>
+ <translation id="1165039591588034296">Error</translation>
+-<translation id="1166212789817575481">Close tabs to the right</translation>
++<translation id="1166212789817575481">Close Tabs to the Right</translation>
+ <translation id="1166583374608765787">Review name update</translation>
+ <translation id="1166596238782048887"><ph name="TAB_TITLE" /> belongs to desk <ph name="DESK_TITLE" /></translation>
+ <translation id="1168020859489941584">Opening in <ph name="TIME_REMAINING" />...</translation>
+@@ -388,7 +388,7 @@
+ <translation id="1388253969141979417">Allowed to use your microphone</translation>
+ <translation id="1388728792929436380"><ph name="DEVICE_TYPE" /> will restart when updates are complete.</translation>
+ <translation id="139013308650923562">Allowed to use fonts installed on your device</translation>
+-<translation id="1390548061267426325">Open as a standard tab</translation>
++<translation id="1390548061267426325">Open as a Standard Tab</translation>
+ <translation id="1390907927270446471"><ph name="PROFILE_USERNAME" /> is not authorised to print to <ph name="PRINTER_NAME" />. Please contact your administrator.</translation>
+ <translation id="1393283411312835250">Sun and clouds</translation>
+ <translation id="1395730723686586365">Updater started</translation>
+@@ -481,7 +481,7 @@ Permissions that you've already given to apps may apply to this account. You can
+ <translation id="1465827627707997754">Pizza slice</translation>
+ <translation id="1467432559032391204">Left</translation>
+ <translation id="1468571364034902819">Can't use this profile</translation>
+-<translation id="1470084204649225129">{NUM_TABS,plural, =1{Add tab to new group}other{Add tabs to new group}}</translation>
++<translation id="1470084204649225129">{NUM_TABS,plural, =1{Add Tab to New Group}other{Add Tabs to New Group}}</translation>
+ <translation id="1470350905258700113">Use this device</translation>
+ <translation id="1470946456740188591">To turn caret browsing on or off, use the shortcut Ctrl+Search+7</translation>
+ <translation id="1472675084647422956">Show more</translation>
+@@ -534,7 +534,7 @@ Permissions that you've already given to apps may apply to this account. You can
+ <translation id="1523279371236772909">Viewed in the past month</translation>
+ <translation id="1523978563989812243">Text-to-speech engines</translation>
+ <translation id="1524430321211440688">Keyboard</translation>
+-<translation id="1524563461097350801">No, thanks</translation>
++<translation id="1524563461097350801">No, Thanks</translation>
+ <translation id="1525740877599838384">Use only Wi-Fi to determine location</translation>
+ <translation id="152629053603783244">Restart Linux</translation>
+ <translation id="1526335046150927198">Enable touchpad scroll acceleration</translation>
+@@ -602,7 +602,7 @@ Permissions that you've already given to apps may apply to this account. You can
+ <translation id="1587275751631642843">&amp;JavaScript console</translation>
+ <translation id="1587907146729660231">Touch the power button with your finger</translation>
+ <translation id="1588438908519853928">Normal</translation>
+-<translation id="1588870296199743671">Open link with...</translation>
++<translation id="1588870296199743671">Open Link With...</translation>
+ <translation id="1588919647604819635">Right-click card</translation>
+ <translation id="1589055389569595240">Show spelling and grammar</translation>
+ <translation id="1591679663873027990">Give Parallels Desktop permission to access USB devices. Parallels Desktop won't remember a USB device after it's removed.</translation>
+@@ -720,7 +720,7 @@ Permissions that you've already given to apps may apply to this account. You can
+ <translation id="1680849702532889074">An error occurred during installation of your Linux application.</translation>
+ <translation id="16815041330799488">Do not allow sites to see text and images copied to the clipboard</translation>
+ <translation id="1682548588986054654">New Incognito Window</translation>
+-<translation id="1682867089915960590">Turn on caret browsing?</translation>
++<translation id="1682867089915960590">Turn on Caret Browsing?</translation>
+ <translation id="1684279041537802716">Accent colour</translation>
+ <translation id="168511795252678620">Recent photos and messaging apps</translation>
+ <translation id="1686550358074589746">Enable glide typing</translation>
+@@ -889,7 +889,7 @@ Permissions that you've already given to apps may apply to this account. You can
+ <translation id="1826516787628120939">Checking</translation>
+ <translation id="1827738518074806965">Art gallery</translation>
+ <translation id="1828378091493947763">This plug-in is not supported on this device</translation>
+-<translation id="1828879788654007962">{COUNT,plural, =0{&amp;Open all}=1{&amp;Open bookmark}other{&amp;Open all ({COUNT})}}</translation>
++<translation id="1828879788654007962">{COUNT,plural, =0{&amp;Open All}=1{&amp;Open Bookmark}other{&amp;Open All ({COUNT})}}</translation>
+ <translation id="1828901632669367785">Print Using System Dialogue...</translation>
+ <translation id="1829129547161959350">Penguin</translation>
+ <translation id="1829192082282182671">Zoom &amp;Out</translation>
+@@ -1251,7 +1251,7 @@ You can manage this account’s settings by installing the Family Link app on yo
+ <translation id="2169062631698640254">Sign in anyway</translation>
+ <translation id="2173302385160625112">Check your Internet connection</translation>
+ <translation id="2173801458090845390">Add requisition ID to this device</translation>
+-<translation id="2175384018164129879">&amp;Manage search engines and Site Search</translation>
++<translation id="2175384018164129879">&amp;Manage Search Engines and Site Search</translation>
+ <translation id="2175607476662778685">Quick launch bar</translation>
+ <translation id="217576141146192373">Unable to add printer. Please check your printer's configuration and try again.</translation>
+ <translation id="2175927920773552910">QR code</translation>
+@@ -1462,7 +1462,7 @@ You can manage this account’s settings by installing the Family Link app on yo
+ <translation id="2340239562261172947"><ph name="FILE_NAME" /> can't be downloaded securely</translation>
+ <translation id="2342180549977909852">Your child can use a number (PIN) instead of a password to unlock this device. To set a PIN later, go to Settings.</translation>
+ <translation id="2342740338116612727">Bookmarks added</translation>
+-<translation id="2343747224442182863">Focus this tab</translation>
++<translation id="2343747224442182863">Focus This Tab</translation>
+ <translation id="2344032937402519675">Couldn’t connect with the server. Check your network connection and try again. If you're still having trouble, try restarting your Chromebook.</translation>
+ <translation id="2345723121311404059">1 page to <ph name="PRINTER_NAME" /></translation>
+ <translation id="23463457491630512">For example, if you visit a site to buy shoes for a marathon, the site might define your interest as running marathons. Later, if you visit a different site to register for a race, that site can show you an ad for running shoes based on your interests.</translation>
+@@ -1759,7 +1759,7 @@ You can manage this account’s settings by installing the Family Link app on yo
+ <translation id="2635094637295383009">Twitter</translation>
+ <translation id="2635276683026132559">Signing</translation>
+ <translation id="2636625531157955190">Chrome cannot access the image.</translation>
+-<translation id="2637313651144986786">Search tabs…</translation>
++<translation id="2637313651144986786">Search Tabs…</translation>
+ <translation id="2637400434494156704">Incorrect PIN. You have one attempt remaining.</translation>
+ <translation id="2638286699381354126">Update...</translation>
+ <translation id="2638662041295312666">Sign-in image</translation>
+@@ -2005,7 +2005,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="2864601841139725659">Set your profile picture</translation>
+ <translation id="2865919525181940183">Screenshot of programs that are currently on the screen</translation>
+ <translation id="286674810810214575">Checking power sources…</translation>
+-<translation id="2867768963760577682">Open as pinned tab</translation>
++<translation id="2867768963760577682">Open as Pinned Tab</translation>
+ <translation id="2868746137289129307">This extension is outdated and disabled by enterprise policy. It might become enabled automatically when a newer version is available.</translation>
+ <translation id="2870560284913253234">Site</translation>
+ <translation id="2870909136778269686">Updating...</translation>
+@@ -2023,7 +2023,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="2878782256107578644">Scan in progress. Open now?</translation>
+ <translation id="2878889940310164513">Add mobile…</translation>
+ <translation id="288042212351694283">Access your Universal 2nd Factor devices</translation>
+-<translation id="2881076733170862447">When you click the extension</translation>
++<translation id="2881076733170862447">When You Click the Extension</translation>
+ <translation id="2882943222317434580"><ph name="IDS_SHORT_PRODUCT_NAME" /> will restart and reset momentarily</translation>
+ <translation id="2885378588091291677">Task Manager</translation>
+ <translation id="2885729872133513017">A problem occurred when decoding server response.</translation>
+@@ -2284,7 +2284,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3139925690611372679">Default yellow avatar</translation>
+ <translation id="3141318088920353606">Listening...</translation>
+ <translation id="3141917231319778873">The given request is not supported to: "<ph name="DEVICE_NAME" />".</translation>
+-<translation id="3142562627629111859">New group</translation>
++<translation id="3142562627629111859">New Group</translation>
+ <translation id="3143515551205905069">Cancel sync</translation>
+ <translation id="3143754809889689516">Play from the beginning</translation>
+ <translation id="3144647712221361880">Open link as</translation>
+@@ -2313,7 +2313,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3165390001037658081">Some operators might block this feature.</translation>
+ <translation id="3170072451822350649">You may also skip signing in and <ph name="LINK_START" />browse as Guest<ph name="LINK_END" />.</translation>
+ <translation id="31774765611822736">New tab to the left</translation>
+-<translation id="3177909033752230686">Page language:</translation>
++<translation id="3177909033752230686">Page Language:</translation>
+ <translation id="3179982752812949580">Text font</translation>
+ <translation id="3181954750937456830">Safe Browsing (protects you and your device from dangerous sites)</translation>
+ <translation id="3182749001423093222">Spell check</translation>
+@@ -2811,7 +2811,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3688507211863392146">Write to files and folders that you open in the application</translation>
+ <translation id="3688526734140524629">Change channel</translation>
+ <translation id="3688578402379768763">Up-to-date</translation>
+-<translation id="3688794912214798596">Change languages…</translation>
++<translation id="3688794912214798596">Change Languages…</translation>
+ <translation id="3690369331356918524">Warns you if passwords are exposed in a data breach</translation>
+ <translation id="3691231116639905343">Keyboard apps</translation>
+ <translation id="369135240373237088">Sign in again with a school account</translation>
+@@ -2836,7 +2836,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3708684582558000260">Don't allow closed sites to finish sending or receiving data</translation>
+ <translation id="3709244229496787112">The browser was shut down before the download completed.</translation>
+ <translation id="371174301504454251">To protect your privacy, we auto-delete sites from the list that are older than four weeks. A site that you visit again might appear on the list again. Or you can remove a site if you don’t want that site to ever define interests for you.</translation>
+-<translation id="3711931198657368127">Paste and go to <ph name="URL" /></translation>
++<translation id="3711931198657368127">Paste and Go to <ph name="URL" /></translation>
+ <translation id="3711945201266135623">Found <ph name="NUM_PRINTERS" /> printers from the print server</translation>
+ <translation id="3712050472459130149">Account update required</translation>
+ <translation id="3712897371525859903">Save page &amp;as...</translation>
+@@ -2994,14 +2994,14 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3854967233147778866">Offer to translate websites in other languages</translation>
+ <translation id="3854976556788175030">Output tray is full</translation>
+ <translation id="3855441664322950881">Pack extension</translation>
+-<translation id="3855676282923585394">Import bookmarks and settings...</translation>
++<translation id="3855676282923585394">Import Bookmarks and Settings...</translation>
+ <translation id="3856096718352044181">Please verify that this is a valid provider or try again later</translation>
+ <translation id="3856800405688283469">Select Time Zone</translation>
+ <translation id="3857807444929313943">Lift, then touch again</translation>
+ <translation id="3858860766373142691">Name</translation>
+ <translation id="3861638017150647085">Username '<ph name="USERNAME" />' is not available</translation>
+ <translation id="3861977424605124250">Show on startup</translation>
+-<translation id="386239283124269513">&amp;Restore group</translation>
++<translation id="386239283124269513">&amp;Restore Group</translation>
+ <translation id="3865414814144988605">Resolution</translation>
+ <translation id="3866249974567520381">Description</translation>
+ <translation id="3867134342671430205">Drag or use arrow keys to move a display</translation>
+@@ -3038,7 +3038,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3894123633473837029">Include recent Assistant history via Sherlog. This may include your identity, location and debug info. <ph name="BEGIN_LINK" />Learn more<ph name="END_LINK" /></translation>
+ <translation id="3894427358181296146">Add folder</translation>
+ <translation id="3894770151966614831">Move to Google Account?</translation>
+-<translation id="3895076768659607631">&amp;Manage search engines…</translation>
++<translation id="3895076768659607631">&amp;Manage Search Engines…</translation>
+ <translation id="3895090224522145010">Kerberos username</translation>
+ <translation id="389521680295183045">Sites can ask to know when you're actively using your device</translation>
+ <translation id="3897298432557662720">{COUNT,plural, =1{an image}other{# images}}</translation>
+@@ -3052,7 +3052,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="3905761538810670789">Repair app</translation>
+ <translation id="3908393983276948098"><ph name="PLUGIN_NAME" /> is out of date</translation>
+ <translation id="3908501907586732282">Enable extension</translation>
+-<translation id="3909701002594999354">Show all controls</translation>
++<translation id="3909701002594999354">Show All &amp;Controls</translation>
+ <translation id="3909791450649380159">Cu&amp;t</translation>
+ <translation id="39103738135459590">Activation code</translation>
+ <translation id="3911824782900911339">New Tab page</translation>
+@@ -3392,7 +3392,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4252996741873942488"><ph name="WINDOW_TITLE" /> – Tab content shared</translation>
+ <translation id="4253168017788158739">Note</translation>
+ <translation id="4253183225471855471">No network found. Please insert your SIM and reboot your device before trying again.</translation>
+-<translation id="4254813446494774748">Translation language:</translation>
++<translation id="4254813446494774748">Translation Language:</translation>
+ <translation id="425573743389990240">Battery Discharge Rate in Watts (Negative value means battery is charging)</translation>
+ <translation id="4256316378292851214">Sa&amp;ve Video As...</translation>
+ <translation id="4258348331913189841">File System</translation>
+@@ -3460,7 +3460,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4316850752623536204">Developer Website</translation>
+ <translation id="4317820549299924617">Verification was not successful</translation>
+ <translation id="4320177379694898372">No internet connection</translation>
+-<translation id="4322394346347055525">Close other tabs</translation>
++<translation id="4322394346347055525">Close Other Tabs</translation>
+ <translation id="4324577459193912240">File incomplete</translation>
+ <translation id="4325237902968425115">Uninstalling <ph name="LINUX_APP_NAME" />…</translation>
+ <translation id="4330191372652740264">Ice water</translation>
+@@ -3686,7 +3686,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4546308221697447294">Browse fast with Google Chrome</translation>
+ <translation id="4546345569117159016">Right button</translation>
+ <translation id="4546692474302123343">Google Assistant voice input</translation>
+-<translation id="4547659257713117923">No tabs from other devices</translation>
++<translation id="4547659257713117923">No Tabs From Other Devices</translation>
+ <translation id="4547672827276975204">Set automatically</translation>
+ <translation id="4549791035683739768">Your security key has no fingerprints stored</translation>
+ <translation id="4550926046134589611">Some supported links will still open in <ph name="APP_NAME" />.</translation>
+@@ -3738,7 +3738,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4596295440756783523">You have certificates on file that identify these servers</translation>
+ <translation id="4598556348158889687">Storage management</translation>
+ <translation id="4598776695426288251">Wi-Fi available via multiple devices</translation>
+-<translation id="4601426376352205922">Mark as unread</translation>
++<translation id="4601426376352205922">Mark as Unread</translation>
+ <translation id="4602466770786743961">Always allow <ph name="HOST" /> to access your camera and microphone</translation>
+ <translation id="4606551464649945562">Do not allow sites to create a 3D map of your surroundings or track camera position</translation>
+ <translation id="4608500690299898628">&amp;Find...</translation>
+@@ -3815,7 +3815,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4667027203988048332">What data is used:</translation>
+ <translation id="46733273239502219">Offline data in installed apps will also be cleared</translation>
+ <translation id="4673442866648850031">Open stylus tools when the stylus is removed</translation>
+-<translation id="4675065861091108046">You previously chose to allow all extensions on <ph name="ORIGIN" /></translation>
++<translation id="4675065861091108046">You Previously Chose To Allow All Extensions On <ph name="ORIGIN" /></translation>
+ <translation id="4675828034887792601">Create shortcuts for searching sites and manage your search engine</translation>
+ <translation id="4676595058027112862">Phone Hub, learn more</translation>
+ <translation id="4677772697204437347">GPU memory</translation>
+@@ -4013,7 +4013,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4880827082731008257">Search history</translation>
+ <translation id="4881685975363383806">Don't remind me next time</translation>
+ <translation id="4881695831933465202">Open</translation>
+-<translation id="488211015466188466">Follow site</translation>
++<translation id="488211015466188466">Follow Site</translation>
+ <translation id="4882312758060467256">Has access to this site</translation>
+ <translation id="4882919381756638075">Sites usually use your microphone for communication features like video chatting</translation>
+ <translation id="4883436287898674711">All <ph name="WEBSITE_1" /> sites</translation>
+@@ -4064,7 +4064,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="4927753642311223124">Nothing to see here, move along.</translation>
+ <translation id="4929386379796360314">Print destinations</translation>
+ <translation id="4930447554870711875">Developers</translation>
+-<translation id="4930714375720679147">Turn on</translation>
++<translation id="4930714375720679147">Turn On</translation>
+ <translation id="4932733599132424254">Date</translation>
+ <translation id="4933484234309072027">embedded on <ph name="URL" /></translation>
+ <translation id="4936042273057045735">Notification syncing is not supported for phones in a work profile</translation>
+@@ -4171,7 +4171,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="5051836348807686060">Spellcheck isn’t supported for the languages that you have selected</translation>
+ <translation id="5052499409147950210">Edit site</translation>
+ <translation id="505347685865235222">Unnamed group – <ph name="GROUP_CONTENT_STRING" /></translation>
+-<translation id="5053962746715621840">Search image with Google Lens</translation>
++<translation id="5053962746715621840">Search Image with Google Lens</translation>
+ <translation id="5054374119096692193">See all card options in <ph name="BEGIN_LINK" />Customise Chrome<ph name="END_LINK" /></translation>
+ <translation id="5056950756634735043">Connecting to the container</translation>
+ <translation id="5057110919553308744">When you click the extension</translation>
+@@ -4511,7 +4511,7 @@ and Ctrl+Alt+Brightness down to zoom out.</translation>
+ <translation id="5397794290049113714">You</translation>
+ <translation id="5398497406011404839">Hidden bookmarks</translation>
+ <translation id="5398572795982417028">Out of bounds page reference, limit is <ph name="MAXIMUM_PAGE" /></translation>
+-<translation id="5401426944298678474">Unfollow site</translation>
++<translation id="5401426944298678474">Unfollow Site</translation>
+ <translation id="5402815541704507626">Download update using mobile data</translation>
+ <translation id="540296380408672091">Always block cookies on <ph name="HOST" /></translation>
+ <translation id="5404740137318486384">Press a switch or keyboard key to assign it to '<ph name="ACTION" />'.
+@@ -4534,7 +4534,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="5425042808445046667">Continue downloading</translation>
+ <translation id="5425863515030416387">Sign in easily across devices</translation>
+ <translation id="5427278936122846523">Always Translate</translation>
+-<translation id="5427459444770871191">Rotate &amp;clockwise</translation>
++<translation id="5427459444770871191">Rotate &amp;Clockwise</translation>
+ <translation id="542750953150239272">By continuing, you agree that this device may also automatically download and install updates and apps from Google, your operator and your device's manufacturer, possibly using mobile data. Some of these apps may offer in-app purchases.</translation>
+ <translation id="5428850089342283580"><ph name="ACCNAME_APP" /> (Update is available)</translation>
+ <translation id="5429373054983029602">Search your screen with <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
+@@ -4592,7 +4592,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="5485102783864353244">Add app</translation>
+ <translation id="5485754497697573575">Restore All Tabs</translation>
+ <translation id="5486261815000869482">Confirm password</translation>
+-<translation id="5486561344817861625">Simulate browser restart</translation>
++<translation id="5486561344817861625">Simulate Browser Restart</translation>
+ <translation id="5487460042548760727">Rename profile to <ph name="PROFILE_NAME" /></translation>
+ <translation id="5487521232677179737">Clear data</translation>
+ <translation id="5488093641312826914">'<ph name="COPIED_ITEM_NAME" />' copied</translation>
+@@ -4999,7 +4999,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="5891688036610113830">Preferred Wi-Fi networks</translation>
+ <translation id="5895138241574237353">Restart</translation>
+ <translation id="5895335062901455404">Your saved preferences and activity will be ready on any Chrome OS Flex device when you sign in with your Google Account. You can choose what to sync in Settings.</translation>
+-<translation id="5896436821193322561">Don't allow</translation>
++<translation id="5896436821193322561">Don't Allow</translation>
+ <translation id="5900302528761731119">Google Profile photo</translation>
+ <translation id="590036993063074298">Mirroring quality details</translation>
+ <translation id="5901069264981746702">Your fingerprint data is stored securely and never leaves your <ph name="DEVICE_TYPE" />. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
+@@ -5009,7 +5009,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="5904614460720589786">Couldn't set up <ph name="APP_NAME" /> because of a configuration problem. Please contact your administrator. Error code: <ph name="ERROR_CODE" />.</translation>
+ <translation id="5906655207909574370">Nearly up to date! Restart your device to finish updating.</translation>
+ <translation id="5906732635754427568">Data associated with this app will be removed from this device.</translation>
+-<translation id="5908474332780919512">Start app when you sign in</translation>
++<translation id="5908474332780919512">Start App When You Sign In</translation>
+ <translation id="5908695239556627796">Mouse scroll speed</translation>
+ <translation id="5909379458939060601">Delete this profile and browsing data?</translation>
+ <translation id="5910363049092958439">Sa&amp;ve Image As...</translation>
+@@ -5304,7 +5304,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="6198102561359457428">Sign out then sign in again...</translation>
+ <translation id="6198252989419008588">Change PIN</translation>
+ <translation id="6200047250927636406">Discard file</translation>
+-<translation id="6200151268994853226">Manage extension</translation>
++<translation id="6200151268994853226">Manage Extension</translation>
+ <translation id="6201608810045805374">Remove this account?</translation>
+ <translation id="6202304368170870640">You can use your PIN to sign in to or unlock your device.</translation>
+ <translation id="6206311232642889873">Cop&amp;y Image</translation>
+@@ -5316,7 +5316,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="6209838773933913227">Component updating</translation>
+ <translation id="6209908325007204267">Your device includes a Chrome Enterprise Upgrade, but your username is not associated with an enterprise account. Please create an enterprise account by visiting g.co/ChromeEnterpriseAccount on a secondary device.</translation>
+ <translation id="6210282067670792090">In the address bar, use this keyboard shortcut with shortcuts for search engines and site search</translation>
+-<translation id="621172521139737651">{COUNT,plural, =0{Open all in &amp;new tab group}=1{Open in &amp;new tab group}other{Open all ({COUNT}) in &amp;new tab group}}</translation>
++<translation id="621172521139737651">{COUNT,plural, =0{Open All in &amp;New Tab Group}=1{Open in &amp;New Tab Group}other{Open All ({COUNT}) in &amp;New Tab Group}}</translation>
+ <translation id="6212039847102026977">Show advanced network properties</translation>
+ <translation id="6212168817037875041">Turn off display</translation>
+ <translation id="6212752530110374741">Email Link</translation>
+@@ -5506,7 +5506,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="6387674443318562538">Split vertical</translation>
+ <translation id="6388429472088318283">Search languages</translation>
+ <translation id="6388577073199278153">Can't access your mobile account</translation>
+-<translation id="6390020764191254941">Move tab to new window</translation>
++<translation id="6390020764191254941">Move Tab to New Window</translation>
+ <translation id="6393156038355142111">Suggest strong password</translation>
+ <translation id="6393550101331051049">Allowed to show insecure content</translation>
+ <translation id="6395423953133416962">Send <ph name="BEGIN_LINK1" />system information<ph name="END_LINK1" /> and <ph name="BEGIN_LINK2" />metrics<ph name="END_LINK2" /></translation>
+@@ -5799,7 +5799,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="6680442031740878064">Available: <ph name="AVAILABLE_SPACE" /></translation>
+ <translation id="6680650203439190394">Rate</translation>
+ <translation id="6681668084120808868">Take photo</translation>
+-<translation id="6683087162435654533">Restore all tabs</translation>
++<translation id="6683087162435654533">R&amp;estore All Tabs</translation>
+ <translation id="6684827949542560880">Downloading the latest update</translation>
+ <translation id="668599234725812620">Open Google Play</translation>
+ <translation id="6686490380836145850">Close tabs to the right</translation>
+@@ -5938,7 +5938,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="6812841287760418429">Keep changes</translation>
+ <translation id="6813907279658683733">Entire screen</translation>
+ <translation id="6817174620439930047">Ask when a site wants to use system exclusive messages to access MIDI devices (recommended)</translation>
+-<translation id="6818198425579322765">Page language to translate</translation>
++<translation id="6818198425579322765">Page Language to Translate</translation>
+ <translation id="6818802132960437751">Built-in virus protection</translation>
+ <translation id="6823174134746916417">Touchpad tap-to-click</translation>
+ <translation id="6824564591481349393">Copy &amp;Email Address</translation>
+@@ -6164,7 +6164,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7025082428878635038">Introducing a new way to navigate with gestures</translation>
+ <translation id="7025190659207909717">Mobile data service management</translation>
+ <translation id="7025895441903756761">Security and privacy</translation>
+-<translation id="7027258625819743915">{COUNT,plural, =0{Open all in &amp;incognito window}=1{Open in &amp;incognito window}other{Open all ({COUNT}) in &amp;incognito window}}</translation>
++<translation id="7027258625819743915">{COUNT,plural, =0{Open All in &amp;Incognito Window}=1{Open in &amp;Incognito Window}other{Open All ({COUNT}) in &amp;Incognito Window}}</translation>
+ <translation id="7029307918966275733">Crostini is not installed. Please install Crostini to view credits.</translation>
+ <translation id="7029809446516969842">Passwords</translation>
+ <translation id="7030304022046916278">Sends URLs to Safe Browsing to check them</translation>
+@@ -6208,7 +6208,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7067396782363924830">Ambient colours</translation>
+ <translation id="7067725467529581407">Never show this again.</translation>
+ <translation id="7069811530847688087"><ph name="WEBSITE" /> may require a newer or different kind of security key</translation>
+-<translation id="7070484045139057854">This can read and change site data</translation>
++<translation id="7070484045139057854">This Can Read and Change Site Data</translation>
+ <translation id="7072010813301522126">Shortcut name</translation>
+ <translation id="7075513071073410194">PKCS #1 MD5 With RSA Encryption</translation>
+ <translation id="7075625805486468288">Manage HTTPS/SSL certificates and settings</translation>
+@@ -6246,7 +6246,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7115361495406486998">No reachable contacts</translation>
+ <translation id="7117228822971127758">Please try again later</translation>
+ <translation id="7117247127439884114">Sign in Again...</translation>
+-<translation id="711840821796638741">Show managed bookmarks</translation>
++<translation id="711840821796638741">Show Managed Bookmarks</translation>
+ <translation id="711902386174337313">Read the list of your signed-in devices</translation>
+ <translation id="711985611146095797">This page allows you to manage your signed-in Google Accounts. <ph name="LINK_BEGIN" />Learn more<ph name="LINK_END" /></translation>
+ <translation id="7120762240626567834">Chrome Browser and Android traffic will be blocked unless a VPN is connected</translation>
+@@ -6287,7 +6287,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7168109975831002660">Minimum font size</translation>
+ <translation id="7169122689956315694">Turn on notification when devices are nearby</translation>
+ <translation id="7170236477717446850">Profile picture</translation>
+-<translation id="7171000599584840888">Add profile…</translation>
++<translation id="7171000599584840888">Add Profile…</translation>
+ <translation id="7171259390164035663">Don't enrol</translation>
+ <translation id="7172470549472604877">{NUM_TABS,plural, =1{Add tab to new group}other{Add tabs to new group}}</translation>
+ <translation id="7173114856073700355">Open settings</translation>
+@@ -6337,11 +6337,11 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7225179976675429563">Network type missing</translation>
+ <translation id="7227458944009118910">Apps listed below can handle protocol links as well. Other apps will ask for permission.</translation>
+ <translation id="7228523857728654909">Screen lock and sign-in</translation>
+-<translation id="7230222852462421043">&amp;Restore window</translation>
++<translation id="7230222852462421043">&amp;Restore Window</translation>
+ <translation id="7230787553283372882">Customise your text size</translation>
+ <translation id="7231260028442989757">View, dismiss and reply to your phone’s notifications</translation>
+ <translation id="7232750842195536390">Renaming failed</translation>
+-<translation id="723343421145275488">Search images with <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
++<translation id="723343421145275488">Search Images with <ph name="VISUAL_SEARCH_PROVIDER" /></translation>
+ <translation id="7234010996000898150">Cancelling Linux restore</translation>
+ <translation id="7235716375204803342">Fetching activities...</translation>
+ <translation id="7235737137505019098">Your security key does not have enough space for any more accounts.</translation>
+@@ -6576,7 +6576,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7470424110735398630">Allowed to see your clipboard</translation>
+ <translation id="747114903913869239">Error: Unable to decode extension</translation>
+ <translation id="7471520329163184433">Slower</translation>
+-<translation id="7473891865547856676">No, thanks</translation>
++<translation id="7473891865547856676">No, Thanks</translation>
+ <translation id="747459581954555080">Restore all</translation>
+ <translation id="747507174130726364">{NUM_DAYS,plural, =1{Immediate return required}other{Return <ph name="DEVICE_TYPE" /> within {NUM_DAYS} days}}</translation>
+ <translation id="7475671414023905704">Netscape Lost Password URL</translation>
+@@ -6632,7 +6632,7 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7526658513669652747">{NUM_DOWNLOADS,plural, =1{1 more}other{{NUM_DOWNLOADS} more}}</translation>
+ <translation id="7526989658317409655">Placeholder</translation>
+ <translation id="7527758104894292229">Update it in your Google Account, <ph name="ACCOUNT" /></translation>
+-<translation id="7528224636098571080">Don’t open</translation>
++<translation id="7528224636098571080">Don’t Open</translation>
+ <translation id="7529411698175791732">Check your Internet connection. If the problem continues, try signing out and signing in again.</translation>
+ <translation id="7529876053219658589">{0,plural, =1{Close guest}other{Close guest}}</translation>
+ <translation id="7530016656428373557">Discharge Rate in Watts</translation>
+@@ -6742,8 +6742,8 @@ You can assign multiple switches to this action.</translation>
+ <translation id="7633724038415831385">This is the only time that you’ll wait for an update. On Chromebooks, software updates happen in the background.</translation>
+ <translation id="7634280112532283638">Spam and fraud reduction</translation>
+ <translation id="7634566076839829401">Something went wrong. Please try again.</translation>
+-<translation id="7635048370253485243">Pinned by your administrator</translation>
+-<translation id="7636919061354591437">Install on this device</translation>
++<translation id="7635048370253485243">Pinned by your Administrator</translation>
++<translation id="7636919061354591437">Install on this Device</translation>
+ <translation id="7637593984496473097">Not enough disk space</translation>
+ <translation id="7639914187072011620">Failed to fetch the SAML redirect URL from the server</translation>
+ <translation id="764017888128728"><ph name="PASSWORD_MANAGER_BRAND" /> automatically signs you in to eligible sites with passwords that you saved.</translation>
+@@ -7098,12 +7098,12 @@ Press an assigned switch or key to remove assignment.</translation>
+ <translation id="7957074856830851026">See device information, such as its serial number or asset ID</translation>
+ <translation id="7957615753207896812">Open keyboard device settings</translation>
+ <translation id="7959074893852789871">The file contained multiple certificates, some of which were not imported:</translation>
+-<translation id="7959665254555683862">New incognito tab</translation>
++<translation id="7959665254555683862">New Incognito &amp;Tab</translation>
+ <translation id="7961015016161918242">Never</translation>
+ <translation id="7963001036288347286">Touchpad acceleration</translation>
+ <translation id="7963608432878156675">This name is visible to other devices for Bluetooth and network connections</translation>
+ <translation id="7963826112438303517">Your Assistant uses these recordings and your spoken requests to create and update your voice model, which is only stored on devices where you've turned on Voice Match. View or retrain voice activity in Assistant Settings.</translation>
+-<translation id="7966241909927244760">C&amp;opy image address</translation>
++<translation id="7966241909927244760">C&amp;opy Image Address</translation>
+ <translation id="7966571622054096916">{COUNT,plural, =1{1 item in bookmark list}other{{COUNT} items in bookmark list}}</translation>
+ <translation id="7968072247663421402">Provider options</translation>
+ <translation id="7968742106503422125">Read and modify data that you copy and paste</translation>
+@@ -7319,12 +7319,12 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="816095449251911490"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" />, <ph name="TIME_REMAINING" /></translation>
+ <translation id="81610453212785426">With <ph name="BEGIN_LINK" />Privacy Sandbox<ph name="END_LINK" />, Chrome is developing new technologies to safeguard you from cross-site tracking while preserving the open web.</translation>
+ <translation id="8161293209665121583">Reader mode for web pages</translation>
+-<translation id="8162984717805647492">{NUM_TABS,plural, =1{Move tab to new window}other{Move tabs to new window}}</translation>
++<translation id="8162984717805647492">{NUM_TABS,plural, =1{Move Tab to New Window}other{Move Tabs to New Window}}</translation>
+ <translation id="8165997195302308593">Crostini port forwarding</translation>
+ <translation id="816704878106051517">{COUNT,plural, =1{a phone number}other{# phone numbers}}</translation>
+ <translation id="8168071266284693455">Your bookmarks, passwords, history and more are synced on all your devices</translation>
+ <translation id="8168435359814927499">Content</translation>
+-<translation id="8169165065843881617">{NUM_TABS,plural, =1{Add tab to reading list}other{Add tabs to reading list}}</translation>
++<translation id="8169165065843881617">{NUM_TABS,plural, =1{Add Tab to Reading List}other{Add Tabs to Reading List}}</translation>
+ <translation id="8171334254070436367">Hide all cards</translation>
+ <translation id="8174047975335711832">Device information</translation>
+ <translation id="8174876712881364124">Back up to Google Drive. Easily restore data or switch device at any time. This backup includes app data. Backups are uploaded to Google and encrypted using your child's Google Account password. <ph name="BEGIN_LINK1" />Learn More<ph name="END_LINK1" /></translation>
+@@ -7401,7 +7401,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8248381369318572865">Access your microphone and analyse your speech</translation>
+ <translation id="8248887045858762645">Chrome tip</translation>
+ <translation id="8249048954461686687">OEM folder</translation>
+-<translation id="8249615410597138718">Send to your devices</translation>
++<translation id="8249615410597138718">Send to Your Devices</translation>
+ <translation id="8249672078237421304">Offer to translate pages that aren't in a language you read</translation>
+ <translation id="8250210000648910632">Out of storage space</translation>
+ <translation id="8251441930213048644">Refresh now</translation>
+@@ -7415,7 +7415,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8260864402787962391">Mouse</translation>
+ <translation id="8261378640211443080">This extension is not listed in the <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> and may have been added without your knowledge.</translation>
+ <translation id="8261506727792406068">Delete</translation>
+-<translation id="8263336784344783289">Name this group</translation>
++<translation id="8263336784344783289">Name This Group</translation>
+ <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> has disabled your mouse cursor.</translation>
+ <translation id="8264024885325823677">This setting is managed by your administrator.</translation>
+ <translation id="8264718194193514834">"<ph name="EXTENSION_NAME" />" triggered full screen.</translation>
+@@ -7569,7 +7569,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8425213833346101688">Change</translation>
+ <translation id="8425492902634685834">Pin to task bar</translation>
+ <translation id="8425768983279799676">You can use your PIN to unlock your device.</translation>
+-<translation id="8426111352542548860">Save group</translation>
++<translation id="8426111352542548860">Save Group</translation>
+ <translation id="8426713856918551002">Enabling</translation>
+ <translation id="8427213022735114808">Dictation sends your voice to Google to allow voice typing in any text field.</translation>
+ <translation id="8427292751741042100">embedded on any host</translation>
+@@ -7664,13 +7664,13 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8531701051932785007">Enhanced Safe Browsing is off</translation>
+ <translation id="8534656636775144800">Oops!  Something went wrong when trying to join the domain. Please try again.</translation>
+ <translation id="8535005006684281994">Netscape Certificate Renewal URL</translation>
+-<translation id="8536713137312218707">Quick commands</translation>
++<translation id="8536713137312218707">Quick Commands</translation>
+ <translation id="8536956381488731905">Sound on key-press</translation>
+ <translation id="8539727552378197395">No (HttpOnly)</translation>
+ <translation id="8539766201049804895">Upgrade</translation>
+ <translation id="8540136935098276800">Enter a correctly formatted URL</translation>
+ <translation id="8540503336857689453">Using a hidden network isn't recommended for security reasons.</translation>
+-<translation id="854071720451629801">Mark as read</translation>
++<translation id="854071720451629801">Mark as Read</translation>
+ <translation id="8540942859441851323">Roaming required by provider</translation>
+ <translation id="8541462173655894684">Did not find any printers from the print server</translation>
+ <translation id="8541838361296720865">Press a switch or keyboard key to assign it to '<ph name="ACTION" />'</translation>
+@@ -7689,7 +7689,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8557022314818157177">Keep touching your security key until your fingerprint is captured</translation>
+ <translation id="8557180006508471423">Turn on 'Google Chrome' in Location Services on your Mac</translation>
+ <translation id="8557856025359704738">Next download is at <ph name="NEXT_DATE_DOWNLOAD" />.</translation>
+-<translation id="8560327176991673955">{COUNT,plural, =0{Open all in &amp;new window}=1{Open in &amp;new window}other{Open all ({COUNT}) in &amp;new window}}</translation>
++<translation id="8560327176991673955">{COUNT,plural, =0{Open All in &amp;New Window}=1{Open in &amp;New Window}other{Open All ({COUNT}) in &amp;New Window}}</translation>
+ <translation id="8561206103590473338">Elephant</translation>
+ <translation id="8561565784790166472">Proceed with caution</translation>
+ <translation id="8561853412914299728"><ph name="TAB_TITLE" /> <ph name="EMOJI_PLAYING" /></translation>
+@@ -7752,7 +7752,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8630338733867813168">Sleep while charging</translation>
+ <translation id="8631032106121706562">Petals</translation>
+ <translation id="863109444997383731">Sites will be blocked from asking to show you notifications. If a site requests notifications, a blocked indicator will appear in the address bar.</translation>
+-<translation id="8632104508818855045">You previously chose not to allow any extensions on <ph name="ORIGIN" /></translation>
++<translation id="8632104508818855045">You Previously Chose Not To Allow Any Extensions On <ph name="ORIGIN" /></translation>
+ <translation id="8633025649649592204">Recent activity</translation>
+ <translation id="8634348081024879304">You will no longer be able to use your virtual card with Google Pay. <ph name="BEGIN_LINK" />Learn about virtual cards<ph name="END_LINK" /></translation>
+ <translation id="8635628933471165173">Reloading...</translation>
+@@ -7925,7 +7925,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8784626084144195648">Binned Average</translation>
+ <translation id="8785622406424941542">Stylus</translation>
+ <translation id="8786824282808281903">When your child sees this icon, a fingerprint can be used for identification or to approve purchases.</translation>
+-<translation id="8787575090331305835">{NUM_TABS,plural, =1{Unnamed group – 1 tab}other{Unnamed group – # tabs}}</translation>
++<translation id="8787575090331305835">{NUM_TABS,plural, =1{Unnamed Group – 1 Tab}other{Unnamed Group – # Tabs}}</translation>
+ <translation id="8791534160414513928">Send a ‘Do Not Track’ request with your browsing traffic</translation>
+ <translation id="879413103056696865">While the hotspot is on, your <ph name="PHONE_NAME" /> will:</translation>
+ <translation id="8795916974678578410">New Window</translation>
+@@ -7935,7 +7935,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="8803526663383843427">When on</translation>
+ <translation id="8803953437405899238">Open a new tab with one click</translation>
+ <translation id="8804419452060773146">Opens in</translation>
+-<translation id="8804999695258552249">{NUM_TABS,plural, =1{Move tab to another window}other{Move tabs to another window}}</translation>
++<translation id="8804999695258552249">{NUM_TABS,plural, =1{Move Tab to Another Window}other{Move Tabs to Another Window}}</translation>
+ <translation id="8805140816472474147">Confirm sync settings to start sync.</translation>
+ <translation id="8806680466228877631"><ph name="SHORTCUT" /> can reopen accidentally closed tabs</translation>
+ <translation id="8807632654848257479">Stable</translation>
+@@ -8311,7 +8311,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+       <ph name="LIST_ITEM" />Running Chrome Connectivity Diagnostics
+     <ph name="END_LIST" /></translation>
+ <translation id="916607977885256133">Picture in Picture</translation>
+-<translation id="9167063903968449027">Show reading list</translation>
++<translation id="9167063903968449027">Show Reading List</translation>
+ <translation id="9167450455589251456">The profile is not supported</translation>
+ <translation id="9168436347345867845">Do it later</translation>
+ <translation id="9169496697824289689">View keyboard shortcuts</translation>
+@@ -8410,7 +8410,7 @@ Keep your key file in a safe place. You will need it to create new versions of y
+ <translation id="971774202801778802">Bookmark URL</translation>
+ <translation id="972996901592717370">Touch the power button with your finger. Your data is stored securely and never leaves your <ph name="DEVICE_TYPE" />.</translation>
+ <translation id="973473557718930265">Quit</translation>
+-<translation id="975893173032473675">Language to translate into</translation>
++<translation id="975893173032473675">Language to Translate into</translation>
+ <translation id="976499800099896273">Autocorrect undo dialogue is shown for <ph name="TYPED_WORD" /> corrected to <ph name="CORRECTED_WORD" />.  Press up arrow to access, escape to ignore.</translation>
+ <translation id="978146274692397928">Initial punctuation width is Full</translation>
+ <translation id="97905529126098460">This window will close after cancellation is complete.</translation>
+diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
+index 2b3ebf97bd67..feff984e5988 100644
+--- a/chrome/app/resources/generated_resources_es-419.xtb
++++ b/chrome/app/resources/generated_resources_es-419.xtb
+@@ -2860,7 +2860,7 @@ y Ctrl + Alt + Disminuir brillo para alejar.</translation>
+ <translation id="3755411799582650620">El <ph name="PHONE_NAME" /> ahora también puede desbloquear este dispositivo <ph name="DEVICE_TYPE" />.</translation>
+ <translation id="375636864092143889">El sitio está usando el micrófono</translation>
+ <translation id="3756485814916578707">Transmitiendo pantalla</translation>
+-<translation id="3756578970075173856">Establece un PIN</translation>
++<translation id="3756578970075173856">Establecer un PIN</translation>
+ <translation id="3756795331760037744">Permite que Asistente de Google utilice información de la pantalla de <ph name="SUPERVISED_USER_NAME" /> para que le sea útil</translation>
+ <translation id="3757733214359997190">No se encontraron sitios</translation>
+ <translation id="375841316537350618">Descargando secuencia de comandos proxy...</translation>
+@@ -3863,7 +3863,7 @@ y Ctrl + Alt + Disminuir brillo para alejar.</translation>
+ <translation id="4742970037960872810">Quitar el texto destacado</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Obtener información sobre cómo actualizar las aplicaciones<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{Activar el sonido del sitio}other{Activar el sonido de los sitios}}</translation>
+-<translation id="474609389162964566">Accede a tu Asistente mediante "Hey Google"</translation>
++<translation id="474609389162964566">Accede a tu Asistente con "Hey Google"</translation>
+ <translation id="4746351372139058112">Mensajes</translation>
+ <translation id="4748783296226936791">Por lo general, los sitios se conectan a dispositivos HID para usarlos en funciones que utilizan teclados poco habituales, controles de juegos y otros dispositivos.</translation>
+ <translation id="4750185073185658673">Revisa algunos permisos en tu teléfono. Asegúrate de que las conexiones Bluetooth y Wi-Fi del teléfono estén activadas.</translation>
+diff --git a/chrome/app/resources/generated_resources_gl.xtb b/chrome/app/resources/generated_resources_gl.xtb
+index cb6696652d43..5bdf99d81713 100644
+--- a/chrome/app/resources/generated_resources_gl.xtb
++++ b/chrome/app/resources/generated_resources_gl.xtb
+@@ -1875,7 +1875,7 @@ Se máis tarde decides que prefires que o teu fillo ou filla non utilice Voice M
+ <translation id="2757338480560142065">Asegúrate de que o contrasinal que gardas coincida co contrasinal de <ph name="WEBSITE" /></translation>
+ <translation id="2762441749940182211">Bloqueouse a cámara</translation>
+ <translation id="2764786626780673772">Detalles da VPN</translation>
+-<translation id="2765100602267695013">Contacta co teu provedor de telefonía móbil</translation>
++<translation id="2765100602267695013">Contacta co teu operador móbil</translation>
+ <translation id="2765217105034171413">Pequeno</translation>
+ <translation id="2766006623206032690">Pe&amp;gar e ir</translation>
+ <translation id="2766161002040448006">Preguntar a teu pai ou túa nai</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+index 86cf1fdbe9fb..f67d74e790b1 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_eu.xtb
+@@ -332,7 +332,7 @@ Eduki sakatuta bilatu nahi duzun hitza. Bilaketa mugatzeko, hautatu hitz gehiago
+ <translation id="2806840421670364300">FLoC</translation>
+ <translation id="281504910091592009">Ikusi eta kudeatu <ph name="BEGIN_LINK" />Google-ko kontuan<ph name="END_LINK" /> gordetako pasahitzak</translation>
+ <translation id="2818669890320396765">Laster-markak gailu guztietan izateko, hasi saioa eta aktibatu sinkronizazioa</translation>
+-<translation id="2827278682606527653">Jarioko txartelaren menua irekita dago eta altuera erdia hartzen du</translation>
++<translation id="2827278682606527653">Jarioko txartelaren menua altuera erdian irekita dago</translation>
+ <translation id="2830783625999891985">Ezkutatu dira arbeleko edukiak</translation>
+ <translation id="2838367486340230368">Pribatutasun-gidaren azalpena altuera erdian irekita dago</translation>
+ <translation id="2839327205551510876">Utzi diozu <ph name="SITE_NAME" /> webguneari jarraitzeari</translation>
+diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
+index 6586ebd3063e..b2067efb301b 100644
+--- a/components/strings/components_strings_en-GB.xtb
++++ b/components/strings/components_strings_en-GB.xtb
+@@ -45,7 +45,7 @@
+ <translation id="1081061862829655580">Tray 19</translation>
+ <translation id="1086953900555227778">Index-5x8</translation>
+ <translation id="1088860948719068836">Add Name on Card</translation>
+-<translation id="1089439967362294234">Change password</translation>
++<translation id="1089439967362294234">Change Password</translation>
+ <translation id="1096545575934602868">This field should not have more than <ph name="MAX_ITEMS_LIMIT" /> entries. All further entries will be discarded.</translation>
+ <translation id="1100782917270858593">Resume your journey button, press Enter to resume your journey and see relevant activity in your Chrome history</translation>
+ <translation id="1101672080107056897">Error action</translation>
+@@ -77,7 +77,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="1177802847690410663">Web browsers</translation>
+ <translation id="1178581264944972037">Pause</translation>
+ <translation id="1181037720776840403">Remove</translation>
+-<translation id="1186201132766001848">Check passwords</translation>
++<translation id="1186201132766001848">Check Passwords</translation>
+ <translation id="1195558154361252544">Notifications are automatically blocked for all sites except ones that you allow</translation>
+ <translation id="1197088940767939838">Orange</translation>
+ <translation id="1201402288615127009">Next</translation>
+@@ -138,7 +138,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="1323433172918577554">Show More</translation>
+ <translation id="132390688737681464">Save and fill addresses</translation>
+ <translation id="1330449323196174374">Left gate fold</translation>
+-<translation id="1333745675627230582">Play Chrome Dino game</translation>
++<translation id="1333745675627230582">Play Chrome Dino Game</translation>
+ <translation id="1333989956347591814">Your activity <ph name="BEGIN_EMPHASIS" />might still be visible<ph name="END_EMPHASIS" /> to:
+         <ph name="BEGIN_LIST" />
+           <ph name="LIST_ITEM" />Websites that you visit
+@@ -452,7 +452,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="2126374524350484896">PDF producer:</translation>
+ <translation id="2130448033692577677">The templates that you've specified may not be applied due to the DnsOverHttpsMode policy not being set.</translation>
+ <translation id="2135799067377889518">Men's clothing</translation>
+-<translation id="213826338245044447">Mobile bookmarks</translation>
++<translation id="213826338245044447">Mobile Bookmarks</translation>
+ <translation id="214556005048008348">Cancel payment</translation>
+ <translation id="2148613324460538318">Add Card</translation>
+ <translation id="2149968176347646218">Connection is not secure</translation>
+@@ -574,7 +574,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="2495083838625180221">JSON Parser</translation>
+ <translation id="2498091847651709837">Scan new card</translation>
+ <translation id="2501278716633472235">Go back</translation>
+-<translation id="2505268675989099013">Protect account</translation>
++<translation id="2505268675989099013">Protect Account</translation>
+ <translation id="2509167091171468975">Food and grocery retailers</translation>
+ <translation id="2512101340618156538">Not allowed (default)</translation>
+ <translation id="2512413427717747692">Set Chrome as default browser button, press Enter to set Chrome as the system's default browser in iOS settings</translation>
+@@ -744,7 +744,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="2972581237482394796">&amp;Redo</translation>
+ <translation id="2977665033722899841"><ph name="ROW_NAME" />, currently selected. <ph name="ROW_CONTENT" /></translation>
+ <translation id="2978824962390592855">Opera</translation>
+-<translation id="2983666748527428214">Open incognito tab</translation>
++<translation id="2983666748527428214">Open Incognito Tab</translation>
+ <translation id="2985306909656435243">If enabled, Chromium will store a copy of your card on this device for faster form filling.</translation>
+ <translation id="2985398929374701810">Enter a valid address</translation>
+ <translation id="2986368408720340940">This pickup method isn’t available. Try a different method.</translation>
+@@ -1388,7 +1388,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="4757993714154412917">You just entered your password on a deceptive site. To secure your accounts, Chromium recommends checking your saved passwords.</translation>
+ <translation id="4758311279753947758">Add contact info</translation>
+ <translation id="4761104368405085019">Use your microphone</translation>
+-<translation id="4761869838909035636">Run Chrome safety check</translation>
++<translation id="4761869838909035636">Run Chrome Safety Check</translation>
+ <translation id="4764776831041365478">The web page at <ph name="URL" /> might be temporarily down or it may have moved permanently to a new web address.</translation>
+ <translation id="4766713847338118463">Dual staple bottom</translation>
+ <translation id="4771973620359291008">An unknown error has occurred.</translation>
+@@ -1515,7 +1515,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="5097099694988056070">Device statistics such as CPU/RAM usage</translation>
+ <translation id="5097501891273180634">A2</translation>
+ <translation id="5108881358339761672">Site is not secure</translation>
+-<translation id="5109892411553231226">Manage payment methods</translation>
++<translation id="5109892411553231226">Manage Payment Methods</translation>
+ <translation id="5112422516732747637">A5</translation>
+ <translation id="5114288597538800140">Tray 18</translation>
+ <translation id="5114987907971894280">virtual reality</translation>
+@@ -1613,7 +1613,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="5332219387342487447">Delivery method</translation>
+ <translation id="5333022057423422993">Chrome found the password that you just used in a data breach. To secure your accounts, we recommend checking your saved passwords.</translation>
+ <translation id="5334013548165032829">Detailed system logs</translation>
+-<translation id="5334145288572353250">Save address?</translation>
++<translation id="5334145288572353250">Save Address?</translation>
+ <translation id="5335920952954443287">Beating heart</translation>
+ <translation id="5340250774223869109">Application is blocked</translation>
+ <translation id="534295439873310000">NFC devices</translation>
+@@ -1764,7 +1764,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="5789643057113097023">.</translation>
+ <translation id="5803412860119678065">Do you want to fill in your <ph name="CARD_DETAIL" />?</translation>
+ <translation id="5804241973901381774">Permissions</translation>
+-<translation id="5808435672482059465">View your Chrome history</translation>
++<translation id="5808435672482059465">View Your Chrome History</translation>
+ <translation id="5808542072418270309">Simulation games</translation>
+ <translation id="5810442152076338065">Your connection to <ph name="DOMAIN" /> is encrypted using an obsolete cipher suite.</translation>
+ <translation id="5812947184178430888">When security events are flagged by Chrome, relevant data about the events is sent to your administrator. This can include URLs of pages that you visit in Chrome, file names or metadata, and the username that you use to sign in to web-based applications, your device and Chrome.</translation>
+@@ -1904,7 +1904,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="6232271601416750929">Clean beauty</translation>
+ <translation id="6233160458685643793">Grinning</translation>
+ <translation id="6234122620015464377">Trim after each document</translation>
+-<translation id="6236290670123303279">Manage settings</translation>
++<translation id="6236290670123303279">Manage Settings</translation>
+ <translation id="6240447795304464094">Google Pay logo</translation>
+ <translation id="6241121617266208201">Hide suggestions</translation>
+ <translation id="624499991300733384">Print compositor service</translation>
+@@ -2081,7 +2081,7 @@ This will otherwise be blocked by your privacy settings. This will allow the con
+ <translation id="6753269504797312559">Policy Value</translation>
+ <translation id="6755241357817244406">chrome://flags</translation>
+ <translation id="6757797048963528358">Your device went to sleep.</translation>
+-<translation id="6767985426384634228">Update address?</translation>
++<translation id="6767985426384634228">Update Address?</translation>
+ <translation id="6768213884286397650">Hagaki (Postcard)</translation>
+ <translation id="6775759552199460396">JIS B2</translation>
+ <translation id="6784045420901191374">Commercial lending</translation>
+@@ -2308,7 +2308,7 @@ Additional details:
+ <translation id="7386364858855961704">Not applicable</translation>
+ <translation id="7388594495505979117">{0,plural, =1{Your device will restart in 1 minute}other{Your device will restart in # minutes}}</translation>
+ <translation id="7390545607259442187">Confirm Card</translation>
+-<translation id="7392089738299859607">Update address</translation>
++<translation id="7392089738299859607">Update Address</translation>
+ <translation id="7399802613464275309">Safety check</translation>
+ <translation id="7400418766976504921">URL</translation>
+ <translation id="7403392780200267761">Share this tab by sharing the link, creating a QR code, casting and more</translation>
+@@ -2342,7 +2342,7 @@ Additional details:
+ <translation id="7460618730930299168">The screening is different from what you selected. Continue?</translation>
+ <translation id="7463075493919226237">Australian football</translation>
+ <translation id="7469935732330206581">Form is not secure</translation>
+-<translation id="7473891865547856676">No, thanks</translation>
++<translation id="7473891865547856676">No, Thanks</translation>
+ <translation id="7481312909269577407">Forward</translation>
+ <translation id="7485870689360869515">No data found.</translation>
+ <translation id="7485948220959728508">Who’s behind this information?</translation>
+@@ -2499,7 +2499,7 @@ Additional details:
+ <translation id="7871445724586827387">Change your Google Account password</translation>
+ <translation id="7877007680666472091">protected content IDs</translation>
+ <translation id="7878562273885520351">Your password may be compromised</translation>
+-<translation id="7880146494886811634">Save address</translation>
++<translation id="7880146494886811634">Save Address</translation>
+ <translation id="7882421473871500483">Brown</translation>
+ <translation id="7882995332186050355">Cargo trucks and trailers</translation>
+ <translation id="7887683347370398519">Check your CVC and try again</translation>
+@@ -2634,7 +2634,7 @@ Additional details:
+ <translation id="8252991034201168845">Manage accessibility settings button, Enter to personalise your accessibility tools in Chrome OS settings</translation>
+ <translation id="8253091569723639551">Billing address required</translation>
+ <translation id="8257387598443225809">This app is designed for mobile</translation>
+-<translation id="825929999321470778">Show all saved passwords</translation>
++<translation id="825929999321470778">Show All Saved Passwords</translation>
+ <translation id="8261506727792406068">Delete</translation>
+ <translation id="8262952874573525464">Edge stitch bottom</translation>
+ <translation id="8265992338205884890">Visible data</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
+index 55816e9537b4..b989b6b970ac 100644
+--- a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
++++ b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
+@@ -69,7 +69,7 @@
+ <translation id="5777187867430702742">Chromium page</translation>
+ <translation id="5862307444128926510">Welcome to Chromium</translation>
+ <translation id="5945387852661427312">You are signing in with an account managed by <ph name="DOMAIN" /> and giving its administrator control over your Chromium data. Your data will become permanently tied to this account. Signing out of Chromium will delete your data from this device, but it will remain stored in your Google Account.</translation>
+-<translation id="5983312940147103417">Make Chromium better</translation>
++<translation id="5983312940147103417">Make Chromium Better</translation>
+ <translation id="602807004951640891">By using Chromium, you agree to the <ph name="BEGIN_LINK_TOS" />Terms of Service<ph name="END_LINK_TOS" />.</translation>
+ <translation id="6119647025869519954">To make Chromium your default:
+ 1. Open settings
+diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
+index 8bf1d9a78d85..8e1ad94d00ea 100644
+--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
++++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
+@@ -59,7 +59,7 @@
+ <translation id="4819268619367838612">To help improve the app, Chrome sends usage and crash data to Google. <ph name="BEGIN_LINK" />Manage<ph name="END_LINK" /></translation>
+ <translation id="484033449593719797">Not supported on Chrome beta</translation>
+ <translation id="5030102366287574140">Chrome can help keep you safe from data breaches, unsafe websites and more.</translation>
+-<translation id="5108659628347594808">Make Chrome better</translation>
++<translation id="5108659628347594808">Make Chrome Better</translation>
+ <translation id="5119391094379141756">Select Chrome</translation>
+ <translation id="5162467219239570114">Chrome is out of date. If no update is available in the <ph name="BEGIN_LINK" />app store<ph name="END_LINK" />, it's possible that your device doesn't support new versions of Chrome anymore.</translation>
+ <translation id="5389212809648216794">Google Chrome can't use your camera because it's in use by another application</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+index 8edfa8b82175..44dcc47c5133 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+@@ -74,7 +74,7 @@ Your search engine is <ph name="DSE_NAME" />. See their instructions for deletin
+ <translation id="1509960214886564027">Features on many sites may break</translation>
+ <translation id="152234381334907219">Never saved</translation>
+ <translation id="1523341279170789507">Allow All Cookies</translation>
+-<translation id="1524563461097350801">No, thanks</translation>
++<translation id="1524563461097350801">No, Thanks</translation>
+ <translation id="1535268707340844072">Your current setting may cause some sites to break. To manage cookies for all sites, see <ph name="BEGIN_LINK" />Cookie settings<ph name="END_LINK" />.</translation>
+ <translation id="1540800554400757039">Address 1</translation>
+ <translation id="1545749641540134597">Scan QR Code</translation>
+@@ -185,7 +185,7 @@ Sites can't use cookies to see your browsing activity across different sites, fo
+ <translation id="2600682495497606169">Clear site cookies</translation>
+ <translation id="2625189173221582860">Password copied</translation>
+ <translation id="2626236249646841566">Check your connection and try signing in again.</translation>
+-<translation id="2637313651144986786">Search tabs…</translation>
++<translation id="2637313651144986786">Search Tabs…</translation>
+ <translation id="2647269890314209800">Cookies in Use</translation>
+ <translation id="2648803196158606475">Delete Read</translation>
+ <translation id="2653659639078652383">Submit</translation>
+@@ -243,7 +243,7 @@ Sites can't use cookies to see your browsing activity across different sites, fo
+ <translation id="298306318844797842">Add Payment Method...</translation>
+ <translation id="2989805286512600854">Open in New Tab</translation>
+ <translation id="3037605927509011580">Aw, Snap!</translation>
+-<translation id="3039722182465315531">Don't sign in</translation>
++<translation id="3039722182465315531">Don't Sign In</translation>
+ <translation id="3076846064362030967">You won't be signed out of your Google Account. <ph name="BEGIN_LINK" />Other forms of activity<ph name="END_LINK" /> may be saved in your Google Account when you’re signed in. You can delete them at any time.
+ 
+ 
+@@ -459,7 +459,7 @@ To change this setting, <ph name="BEGIN_LINK" />reset sync<ph name="END_LINK" />
+ <translation id="4901778704868714008">Save...</translation>
+ <translation id="4904877109095351937">Mark Read</translation>
+ <translation id="4908869848243824489">Discover by Google</translation>
+-<translation id="4930714375720679147">Turn on</translation>
++<translation id="4930714375720679147">Turn On</translation>
+ <translation id="4941089862236492464">Sorry, there was a problem sharing your item.</translation>
+ <translation id="4944543191714094452">Find in page…</translation>
+ <translation id="4945756290001680296">Access password settings</translation>
+@@ -769,7 +769,7 @@ While in Incognito, sites can't use cookies to see your browsing activity across
+ <translation id="7464701184726199289">This clears synced data from all devices. Saved site settings will not be deleted and may reflect your browsing habits. <ph name="BEGIN_LINK" />Find out more<ph name="END_LINK" /></translation>
+ <translation id="746684838091935575">3. Select Chrome</translation>
+ <translation id="7472734401283673885">Company Name</translation>
+-<translation id="7473891865547856676">No, thanks</translation>
++<translation id="7473891865547856676">No, Thanks</translation>
+ <translation id="7481312909269577407">Forward</translation>
+ <translation id="750493650310597496">0 selected</translation>
+ <translation id="7508728395076009983">To lock your incognito tabs, set up touch ID, face ID or a passcode.</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0017-Sheriff-Disable-BluetoothTest.ConstructDefaultAdapte.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0017-Sheriff-Disable-BluetoothTest.ConstructDefaultAdapte.patch
new file mode 100644
index 000000000000..22615a1df22d
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0017-Sheriff-Disable-BluetoothTest.ConstructDefaultAdapte.patch
@@ -0,0 +1,44 @@
+From fb5cfd58e6ffe97dacf99f64b30d6ede4387a82e Mon Sep 17 00:00:00 2001
+From: Ioana Pandele <ioanap@chromium.org>
+Date: Wed, 15 Jun 2022 21:35:52 +0000
+Subject: [PATCH 17/59] [Sheriff] Disable BluetoothTest.ConstructDefaultAdapter
+ on Mac
+
+(cherry picked from commit 6ab5afb8214f18b886e3b190045ee8a90c3ca5f7)
+
+Bug: 1334462
+Change-Id: I95f9678936fa652c75949a48cfc53e788fc4b4a2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3695178
+Auto-Submit: Ioana Pandele <ioanap@chromium.org>
+Owners-Override: Ioana Pandele <ioanap@chromium.org>
+Commit-Queue: Lan Wei <lanwei@chromium.org>
+Reviewed-by: Lan Wei <lanwei@chromium.org>
+Owners-Override: Lan Wei <lanwei@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1011954}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3708698
+Commit-Queue: Phillis Tang <phillis@chromium.org>
+Owners-Override: Phillis Tang <phillis@chromium.org>
+Auto-Submit: Steven Holte <holte@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1176}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ device/bluetooth/bluetooth_adapter_unittest.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/device/bluetooth/bluetooth_adapter_unittest.cc b/device/bluetooth/bluetooth_adapter_unittest.cc
+index cfd96a78408b..8719f0f732b2 100644
+--- a/device/bluetooth/bluetooth_adapter_unittest.cc
++++ b/device/bluetooth/bluetooth_adapter_unittest.cc
+@@ -708,7 +708,8 @@ TEST_F(BluetoothAdapterTest, StartDiscoverySessionError_Destroy) {
+ }
+ 
+ // TODO(scheib): Enable BluetoothTest fixture tests on all platforms.
+-#if BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_MAC)
++// Flaky on Mac. See crbug.com/1334462
++#if BUILDFLAG(IS_ANDROID)
+ #define MAYBE_ConstructDefaultAdapter ConstructDefaultAdapter
+ #else
+ #define MAYBE_ConstructDefaultAdapter DISABLED_ConstructDefaultAdapter
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0018-Incrementing-VERSION-to-102.0.5005.131.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0018-Incrementing-VERSION-to-102.0.5005.131.patch
new file mode 100644
index 000000000000..e2d7244dcbdb
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0018-Incrementing-VERSION-to-102.0.5005.131.patch
@@ -0,0 +1,28 @@
+From c93990fa0fcea605d74b8badf15176b64efb36ce Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Thu, 16 Jun 2022 01:00:42 +0000
+Subject: [PATCH 18/59] Incrementing VERSION to 102.0.5005.131
+
+Change-Id: Ic40d8b3a54cd65afec40dedd309f3e8010ffb8ae
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3706784
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1177}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 2a835d053cb4..31f19120d007 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=130
++PATCH=131
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0019-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0019-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..6860f55a1d55
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0019-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,308 @@
+From f7a75a646b7a1ac6bbc83456f7b1d8c0b742a85d Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Thu, 16 Jun 2022 14:44:26 +0000
+Subject: [PATCH 19/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I81cea9f1e1f44dfe52a89cef4fc26f06f0254a19
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3707982
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1178}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../android_chrome_tab_ui_strings_te.xtb      |  6 +++---
+ .../app/resources/generated_resources_te.xtb  | 14 ++++++-------
+ .../app/resources/generated_resources_vi.xtb  |  2 +-
+ .../strings/accessibility_strings_te.xtb      |  4 ++--
+ .../android_chrome_strings_te.xtb             |  2 +-
+ chromeos/strings/chromeos_strings_te.xtb      |  2 +-
+ components/strings/components_strings_fa.xtb  | 20 +++++++++----------
+ components/strings/components_strings_te.xtb  |  2 +-
+ .../strings/resources/ios_strings_zh-TW.xtb   |  2 +-
+ ui/strings/translations/ax_strings_te.xtb     |  2 +-
+ 10 files changed, 28 insertions(+), 28 deletions(-)
+
+diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb
+index aa972690a329..08d399accf4e 100644
+--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb
++++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_te.xtb
+@@ -19,7 +19,7 @@
+ <translation id="2539705006853443997">{TABS_COUNT,plural, =1{<ph name="TABS_COUNT_ONE" /> ట్యాబ్‌ను కుదించండి.}other{<ph name="TABS_COUNT_MANY" /> ట్యాబ్‌లతో ట్యాబ్ గ్రూప్‌ను కుదించండి.}}</translation>
+ <translation id="2569352796411618312">సూచన: మీ <ph name="NUMBER_OF_TABS" /> ట్యాబ్‌లను ఇటీవల ఉపయోగించలేదు. వాటిని మూసివేయాలా?</translation>
+ <translation id="257674075312929031">గ్రూప్‌గా చేయి</translation>
+-<translation id="2613747923081026172">సమూహాన్ని క్రియేట్ చేయండి</translation>
++<translation id="2613747923081026172">గ్రూప్‌ను క్రియేట్ చేయండి</translation>
+ <translation id="2662028055331606429"><ph name="CURRENT_RATING" />/<ph name="RATING_BASELINE" /> రేటింగ్</translation>
+ <translation id="266935134738038806">సైట్‌కు వెళ్లండి</translation>
+ <translation id="2671423594960767771">గ్రూప్‌ను షేర్ చేయండి</translation>
+@@ -92,7 +92,7 @@
+ <translation id="8749939518995770034">మూసివేయబడిన ట్యాబ్‌ స్ట్రిప్</translation>
+ <translation id="8820741577754260431">మీ ట్యాబ్‌లలో ధర తగ్గింపు వివరాలను చూడండి</translation>
+ <translation id="9090098097337832354">ఈ స్టోర్ గురించిన సమాచారాన్ని చూపించే స్క్రీన్ మూసివేయబడింది</translation>
+-<translation id="9150694013019234766">స్క్రీన్ దిగువ భాగం దగ్గరలో ఉండే మీ ట్యాబ్ సమూహంలో కోరుకునే ట్యాబ్‌లకు మారండి</translation>
+-<translation id="9169594135889675189">సమూహానికి కొత్త ట్యాబ్‌ను జోడించు</translation>
++<translation id="9150694013019234766">స్క్రీన్ దిగువ భాగం దగ్గరలో ఉండే మీ ట్యాబ్ గ్రూప్‌లో కోరుకునే ట్యాబ్‌లకు మారండి</translation>
++<translation id="9169594135889675189">గ్రూప్‌నకు కొత్త ట్యాబ్‌ను జోడించు</translation>
+ <translation id="959682366969460160">అన్నింటిని క్రమ పద్దతిలో అమర్చండి</translation>
+ </translationbundle>
+\ No newline at end of file
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index a92ab6ddabb0..20010cb9bef6 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -829,7 +829,7 @@
+ <translation id="1779468444204342338">కనిష్ఠం</translation>
+ <translation id="1779652936965200207">దయచేసి "<ph name="DEVICE_NAME" />"లో ఈ పాస్‌కీని నమోదు చేయండి:</translation>
+ <translation id="177989070088644880">యాప్ (<ph name="ANDROID_PACKAGE_NAME" />)</translation>
+-<translation id="1780152987505130652">సమూహాన్ని మూసివేయి</translation>
++<translation id="1780152987505130652">గ్రూప్‌ను మూసివేయి</translation>
+ <translation id="1780273119488802839">బుక్‌మార్క్‌లను దిగుమతి చేస్తోంది...</translation>
+ <translation id="178092663238929451">మీ చుట్టూ ఉన్న వ్యక్తులతో ఫైళ్లను అందుకోవడానికి, ఇంకా పంపడానికి 'సమీప షేరింగ్'ను సెటప్ చేయండి</translation>
+ <translation id="1781291988450150470">ప్రస్తుత పిన్‌</translation>
+@@ -2035,7 +2035,7 @@
+ <translation id="2893013536106749396">మీరు ముఖ్యం అనుకునే విషయాల గురించి మీకు తెలియజేసే కార్డ్‌లను ఎంచుకోండి</translation>
+ <translation id="2893168226686371498">ఆటోమేటిక్ బ్రౌజర్</translation>
+ <translation id="2893180576842394309">శోధన, ఇతర Google సేవలను వ్యక్తిగతీకరించడానికి Google మీ చరిత్రను ఉపయోగించే అవకాశం ఉంటుంది</translation>
+-<translation id="2894757982205307093">సమూహంలో కొత్త ట్యాబ్</translation>
++<translation id="2894757982205307093">గ్రూప్‌లో కొత్త ట్యాబ్</translation>
+ <translation id="289695669188700754">కీ ID: <ph name="KEY_ID" /></translation>
+ <translation id="2897713966423243833">మీరు మీ అన్ని అజ్ఞాత విండోలను మూసివేసినప్పుడు, ఈ అనుకూల సెట్టింగ్ తీసివేయబడుతుంది</translation>
+ <translation id="2897878306272793870">మీరు <ph name="TAB_COUNT" /> ట్యాబ్‌లను తెరవాలనుకుంటున్నారా?</translation>
+@@ -2102,7 +2102,7 @@
+ <translation id="2949289451367477459">స్థానాన్ని ఉపయోగించండి. స్థాన అనుమతిని కలిగిన యాప్‌లు మరియు సేవలు ఈ పరికర స్థానాన్ని ఉపయోగించడానికి అనుమతించండి. Google కాలానుగుణంగా స్థాన డేటాని సేకరించవచ్చు మరియు స్థాన ఖచ్చితత్వం మరియు స్థానం-ఆధారిత సేవలను మెరుగుపరచడం కోసం ఈ డేటాని అనామకంగా ఉపయోగించవచ్చు. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
+ <translation id="2950666755714083615">నన్ను సైన్ అప్ చేయనివ్వు</translation>
+ <translation id="2953019166882260872">మీ ఫోన్‌ను కేబుల్‌తో కనెక్ట్ చేయండి</translation>
+-<translation id="2956070239128776395">విభాగం సమూహంలో ఉంది: <ph name="ERROR_LINE" /></translation>
++<translation id="2956070239128776395">విభాగం గ్రూప్‌లో ఉంది: <ph name="ERROR_LINE" /></translation>
+ <translation id="2958721676848865875">ప్యాక్ ఎక్స్‌టెన్షన్‌ హెచ్చరిక</translation>
+ <translation id="2959127025785722291">ఏదో తప్పు జరిగింది. స్కానింగ్ పూర్తి కాలేకపోయింది. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
+ <translation id="2959842337402130152">నిల్వ స్థలం లేని కారణంగా పునరుద్ధరించడం సాధ్యపడలేదు. పరికరంలో <ph name="SPACE_REQUIRED" /> స్థలం ఖాళీ చేసి, ఆపై మళ్లీ ప్రయత్నించండి.</translation>
+@@ -3999,7 +3999,7 @@
+ <translation id="4871322859485617074">పిన్‌లో చెల్లని అక్షరాలు ఉన్నాయి</translation>
+ <translation id="4871370605780490696">బుక్‌మార్క్‌ను జోడించండి</translation>
+ <translation id="4871568871368204250">సింక్‌ని ఆఫ్ చేయి</translation>
+-<translation id="4871719318659334896">సమూహాన్ని మూసివేయి</translation>
++<translation id="4871719318659334896">గ్రూప్‌ను మూసివేయి</translation>
+ <translation id="4873312501243535625">మీడియా ఫైల్ చెక్కర్</translation>
+ <translation id="4876273079589074638">క్రాష్ ఎందుకు జరిగిందన్నది తెలుసుకోవడానికి, పరిష్కరించడానికి మా ఇంజినీర్‌లకు సహాయం చేయండి. మీకు సాధ్యమైతే విషయాన్ని క్రమ పద్ధతిలో దశల వారీగా పేర్కొనండి. వివరణ ఏదీ మరీ చిన్నగా ఉండకూడదు!</translation>
+ <translation id="4876895919560854374">స్క్రీన్‌ను లాక్ చేయండి మరియు అన్‌లాక్ చేయండి</translation>
+@@ -7410,7 +7410,7 @@
+ <translation id="8260864402787962391">మౌస్</translation>
+ <translation id="8261378640211443080">ఈ ఎక్స్‌టెన్షన్‌ <ph name="IDS_EXTENSION_WEB_STORE_TITLE" />లో లిస్ట్‌ చేయబడలేదు మరియు మీకు తెలియకుండానే జోడించబడి ఉండవచ్చు.</translation>
+ <translation id="8261506727792406068">తొలగించు</translation>
+-<translation id="8263336784344783289">ఈ సమూహానికి పేరు పెట్టండి</translation>
++<translation id="8263336784344783289">ఈ గ్రూప్‌నకు పేరు పెట్టండి</translation>
+ <translation id="8263744495942430914"><ph name="FULLSCREEN_ORIGIN" /> మీ మౌస్ కర్సర్‌ను నిలిపివేసింది.</translation>
+ <translation id="8264024885325823677">ఈ సెట్టింగ్ మీ నిర్వాహకుడి ద్వారా నిర్వహించబడుతుంది.</translation>
+ <translation id="8264718194193514834"><ph name="EXTENSION_NAME" /> ఫుల్-స్క్రీన్‌ను ప్రారంభించింది.</translation>
+@@ -7913,7 +7913,7 @@
+ <translation id="8779944680596936487">సైట్‌లు తమ సొంత సైట్‌లో మీ బ్రౌజింగ్ యాక్టివిటీని చూడటానికి మాత్రమే కుక్కీలను ఉపయోగించగలవు</translation>
+ <translation id="8780123805589053431">Google నుండి చిత్ర వివరణలను పొందండి</translation>
+ <translation id="8780443667474968681">వాయిస్ శోధన ఆపివేయబడింది.</translation>
+-<translation id="8781834595282316166">సమూహంలో కొత్త ట్యాబ్</translation>
++<translation id="8781834595282316166">గ్రూప్‌లో కొత్త ట్యాబ్</translation>
+ <translation id="8782565991310229362">కియోస్క్ యాప్ అమలు రద్దు చేయబడింది.</translation>
+ <translation id="8783526165720272136">మెసేజింగ్ యాప్‌లు</translation>
+ <translation id="8783834180813871000">బ్లూటూత్ పెయిరింగ్ కోడ్‌ను టైప్ చేసి, ఆపై Return లేదా Enter నొక్కండి.</translation>
+@@ -8363,7 +8363,7 @@
+ <translation id="933427034780221291">{NUM_FILES,plural, =1{భద్రతా తనిఖీ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్‌ను అప్‌లోడ్ చేయగలరు.}other{ఈ ఫైల్స్‌లో కొన్ని, భద్రతా తనిఖీ చేయడానికి వీల్లేనంత పెద్దగా ఉన్నాయి. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్‌ను అప్‌లోడ్ చేయగలరు.}}</translation>
+ <translation id="93343527085570547">చట్టపరమైన కారణాలతో కంటెంట్ మార్పులను అభ్యర్ధించడానికి <ph name="BEGIN_LINK1" />చట్టపరమైన అంశాల సహాయ పేజీ<ph name="END_LINK1" />కు వెళ్లండి. కొంత ఖాతా మరియు సిస్టమ్ సమాచారం Googleకి పంపబడవచ్చు. సాంకేతిక సమస్యల పరిష్కారానికి మరియు మా సేవలను మెరుగుపరచడానికి మీరు మాకు ఇచ్చిన సమాచారాన్ని మా <ph name="BEGIN_LINK2" />గోప్యతా విధానం<ph name="END_LINK2" /> మరియు <ph name="BEGIN_LINK3" />సేవా నిబంధనలు<ph name="END_LINK3" />కు లోబడి మేము ఉపయోగిస్తాము.</translation>
+ <translation id="93393615658292258">పాస్‌వర్డ్ మాత్రమే</translation>
+-<translation id="934244546219308557">ఈ సమూహానికి పేరు పెట్టండి</translation>
++<translation id="934244546219308557">ఈ గ్రూప్‌నకు పేరు పెట్టండి</translation>
+ <translation id="934503638756687833">అవసరమైతే ఇక్కడ లిస్ట్‌ చేయబడని అంశాలను కూడా తీసివేయవచ్చు. Chrome గోప్యత విధాన డాక్యుమెంట్‌లో &lt;a href="<ph name="URL" />"&gt;అవాంఛిత సాఫ్ట్‌వేర్ రక్షణ&lt;/a&gt; గురించి మరింత తెలుసుకోండి.</translation>
+ <translation id="93480724622239549">బగ్ లేదా ఎర్రర్</translation>
+ <translation id="935854577147268200">Smart Lock ఫోన్ మారింది. Smart Lockను అప్‌డేట్ చేయడానికి మీ పాస్‌వర్డ్‌ను నమోదు చేయండి. తదుపరిసారి, మీ ఫోన్ మీ <ph name="DEVICE_TYPE" />‌ను అన్‌లాక్ చేస్తుంది. మీరు సెట్టింగ్‌లలో Smart Lockను ఆఫ్ చేయవచ్చు</translation>
+diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
+index c840b5de3ccf..7bf91bfe95da 100644
+--- a/chrome/app/resources/generated_resources_vi.xtb
++++ b/chrome/app/resources/generated_resources_vi.xtb
+@@ -5837,7 +5837,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này.</translation>
+ <translation id="671619610707606484">Thao tác này sẽ xóa <ph name="TOTAL_USAGE" /> dữ liệu lưu trữ trong các trang web</translation>
+ <translation id="6716798148881908873">Đã mất kết nối mạng. Hãy kiểm tra kết nối mạng của bạn hoặc thử một mạng Wi-Fi khác.</translation>
+ <translation id="671928215901716392">Khóa màn hình</translation>
+-<translation id="6721744718589119342">Có thể chúng tôi sẽ gửi email cho bạn khi có thông tin khác hoặc nội dung cập nhật</translation>
++<translation id="6721744718589119342">Chúng tôi có thể gửi email cho bạn để hỏi thêm thông tin hoặc để cập nhật thông tin cho bạn</translation>
+ <translation id="6721972322305477112">&amp;Tệp</translation>
+ <translation id="672208878794563299">Trang web này sẽ hỏi lại vào lần tới.</translation>
+ <translation id="6723661294526996303">Nhập dấu trang và các mục cài đặt...</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+index ec08aaeefe97..ff870ab0ced5 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+@@ -215,7 +215,7 @@ Chrome బ్రౌజర్ మెనూను తెరవడానికి,
+ <translation id="2438712309510062123">సూచించండి</translation>
+ <translation id="2450814015951372393">చెక్‌ బాక్స్</translation>
+ <translation id="2461822463642141190">ప్రస్తుత</translation>
+-<translation id="2462626033734746142">రేడియో బటన్ సమూహం</translation>
++<translation id="2462626033734746142">రేడియో బటన్ గ్రూప్‌</translation>
+ <translation id="2467741090055146971">ఎంపిక చేసిన దానిని రద్దు చేయండి</translation>
+ <translation id="2471138580042810658">శీర్షిక 6</translation>
+ <translation id="248982282205370495">{COUNT,plural, =1{నక్షత్రం గుర్తు}other{# నక్షత్రం గుర్తులు}}</translation>
+@@ -290,7 +290,7 @@ Chrome బ్రౌజర్ మెనూను తెరవడానికి,
+ <translation id="2937799153569150791">తర్వాత స్థాయి 3 శీర్షిక లేదు</translation>
+ <translation id="2942710183375260152">ముదురు మేఘ వర్ణపు నీలం రంగు</translation>
+ <translation id="2943596527105977722">ముదురు బంగారు కడ్డీ రంగు</translation>
+-<translation id="2964026537669811554">శీర్షిక సమూహం</translation>
++<translation id="2964026537669811554">శీర్షిక గ్రూప్‌</translation>
+ <translation id="2968634799764242930">సముద్రపు ఆకుపచ్చ రంగు</translation>
+ <translation id="296951647852255825">{COUNT,plural, =1{ట్యాబ్}other{# ట్యాబ్‌లు}}</translation>
+ <translation id="2972205263822847197">సాధన చిట్కా</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+index 061ad6df72d7..657f92070e7e 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+@@ -14,7 +14,7 @@
+ <translation id="107147699690128016">మీరు ఫైల్ ఎక్స్‌టెన్షన్‌ను మార్చితే, ఫైల్ వేరే అప్లికేషన్‌లో తెరవబడవచ్చు. అది మీ పరికరానికి హానికరంగా పరిణమించే అవకాశం ఉంటుంది.</translation>
+ <translation id="1089606299949659462">రివ్యూ పూర్తయింది!</translation>
+ <translation id="1095761715416917775">మీ సింక్ డేటాను మీరు ఎల్లప్పుడూ యాక్సెస్ చేయగలరని నిర్ధారించుకోండి</translation>
+-<translation id="1100066534610197918">సమూహంలో కొత్త ట్యాబ్‌లో తెరువు</translation>
++<translation id="1100066534610197918">గ్రూప్‌లో కొత్త ట్యాబ్‌లో తెరువు</translation>
+ <translation id="1103142993930332957">Chromeను మెరుగుపరచుకోవడంలో సహాయపడతారా?</translation>
+ <translation id="1105960400813249514">స్క్రీన్ క్యాప్చర్</translation>
+ <translation id="1108938384783527433">హిస్టరీ సింక్</translation>
+diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
+index 55063e9f7f4f..590de1511a1c 100644
+--- a/chromeos/strings/chromeos_strings_te.xtb
++++ b/chromeos/strings/chromeos_strings_te.xtb
+@@ -362,7 +362,7 @@
+ <translation id="5019310272469539976">మీ స్క్రీన్ ఇన్‌యాక్టివ్‌గా ఉన్నప్పుడు, ఫోటోలు, సమయం, వాతావరణం, మీడియా సమాచారాన్ని చూపిస్తుంది.</translation>
+ <translation id="5039804452771397117">అనుమతించు</translation>
+ <translation id="5049856988445523908">SIM లాక్ చేయబడింది (<ph name="LOCK_TYPE" />)</translation>
+-<translation id="5050042263972837708">సమూహం పేరు</translation>
++<translation id="5050042263972837708">గ్రూప్‌ పేరు</translation>
+ <translation id="5051044138948155788">ఈ పేజీ మాత్రమే ఉంది. ఇది మిమ్మల్ని స్కానింగ్ ప్రారంభ స్క్రీన్‌కు తీసుకువెళ్తుంది.</translation>
+ <translation id="5088172560898466307">సర్వర్ హోస్ట్ పేరు</translation>
+ <translation id="5089810972385038852">రాష్ట్రం</translation>
+diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
+index e9d671b9971b..6e5c5880f302 100644
+--- a/components/strings/components_strings_fa.xtb
++++ b/components/strings/components_strings_fa.xtb
+@@ -147,7 +147,7 @@
+         <ph name="END_LIST" /></translation>
+ <translation id="1337692097987160377">هم‌رسانی این برگه</translation>
+ <translation id="1339601241726513588">دامنه ثبت‌نام:</translation>
+-<translation id="1340482604681802745">نشانی تحویل گرفتن کالا</translation>
++<translation id="1340482604681802745">نشانی تحویل گرفتن</translation>
+ <translation id="1346748346194534595">راست</translation>
+ <translation id="1348198688976932919">سایت پیش‌رو حاوی برنامه‌های خطرناک است</translation>
+ <translation id="1348779747280417563">تأیید نام</translation>
+@@ -207,7 +207,7 @@
+ <translation id="1476595624592550506">گذرواژه‌تان را تغییر دهید</translation>
+ <translation id="1482879811280872320">دوچرخه‌سواری</translation>
+ <translation id="1483493594462132177">ارسال</translation>
+-<translation id="1484290072879560759">انتخاب نشانی تحویل کالا</translation>
++<translation id="1484290072879560759">انتخاب نشانی ارسال کالا</translation>
+ <translation id="1492194039220927094">اعمال خط‌مشی‌ها:</translation>
+ <translation id="149293076951187737">‏وقتی همه برگه‌های ناشناس Chrome را ببندید، فعالیتتان در این برگه‌ها از دستگاهتان پاک می‌شود:
+           <ph name="BEGIN_LIST" />
+@@ -236,7 +236,7 @@
+ <translation id="153384715582417236">درحال‌حاضر مورد دیگری وجود ندارد</translation>
+ <translation id="1536390784834419204">ترجمه صفحه</translation>
+ <translation id="1539840569003678498">گزارش ارسال شد:</translation>
+-<translation id="154408704832528245">انتخاب نشانی ارسال</translation>
++<translation id="154408704832528245">انتخاب نشانی تحویل کالا</translation>
+ <translation id="1549470594296187301">برای استفاده از این قابلیت، جاوا اسکریپت باید فعال باشد.</translation>
+ <translation id="155039086686388498">Engineering-D</translation>
+ <translation id="1551884710160394169">نرم‌افزار رایگان و اشتراکی</translation>
+@@ -674,7 +674,7 @@
+ <translation id="2728127805433021124">گواهی سرور با استفاده از یک الگوریتم امضای ضعیف امضا شده است.</translation>
+ <translation id="2730326759066348565"><ph name="BEGIN_LINK" />در حال اجرای عیب‌یابی اتصال<ph name="END_LINK" /></translation>
+ <translation id="2730600605555029057">موسیقی کلاسیک</translation>
+-<translation id="2738330467931008676">انتخاب نشانی تحویل گرفتن</translation>
++<translation id="2738330467931008676">انتخاب نشانی تحویل کالا</translation>
+ <translation id="2740531572673183784">تأیید</translation>
+ <translation id="2742511345840685325">تنیس روی میز</translation>
+ <translation id="2742870351467570537">حذف موارد انتخابی</translation>
+@@ -894,10 +894,10 @@
+ <translation id="3381668585148405088">به تأیید رساندن خرید</translation>
+ <translation id="3383566085871012386">ترتیب اولویت کنونی</translation>
+ <translation id="3387261909427947069">روش‌های پرداخت</translation>
+-<translation id="3391030046425686457">نشانی ارسال</translation>
++<translation id="3391030046425686457">نشانی تحویل کالا</translation>
+ <translation id="3391482648489541560">ویرایش فایل</translation>
+ <translation id="3395827396354264108">روش تحویل گرفتن</translation>
+-<translation id="3399952811970034796">نشانی ارسال</translation>
++<translation id="3399952811970034796">نشانی تحویل کالا</translation>
+ <translation id="3402261774528610252">اتصال استفاده‌شده برای بار کردن این سایت از «امنیت لایه انتقال» نسخه ۱.۰ یا ۱.۱ استفاده می‌کرد که منسوخ شده است و در آینده غیرفعال خواهد شد. بعد از غیرفعال شدن، کاربران نمی‌توانند این سایت را بار کنند. سرور باید «امنیت لایه انتقال» نسخه ۱.۲ یا بالاتر را فعال کند.</translation>
+ <translation id="3405664148539009465">سفارشی کردن قلم‌ها</translation>
+ <translation id="3409896703495473338">مدیریت تنظیمات امنیتی</translation>
+@@ -1566,7 +1566,7 @@
+ <translation id="5222812217790122047">ایمیل ضروری است</translation>
+ <translation id="5228404122310299359">لوازم مهمانی و تعطیلات</translation>
+ <translation id="5229588705416009823">بازی چندنفره گسترده</translation>
+-<translation id="5230733896359313003">نشانی تحویل کالا</translation>
++<translation id="5230733896359313003">نشانی ارسال کالا</translation>
+ <translation id="5230815978613972521">B8</translation>
+ <translation id="5233045608889518621">12x19</translation>
+ <translation id="5234764350956374838">رد کردن</translation>
+@@ -1727,7 +1727,7 @@
+ <translation id="568292603005599551">‏موقعیت X تصویر</translation>
+ <translation id="5684277895745049190">فهرست</translation>
+ <translation id="5684874026226664614">متأسفیم. این صفحه ترجمه نشد.</translation>
+-<translation id="5685654322157854305">افزودن نشانی تحویل کالا</translation>
++<translation id="5685654322157854305">افزودن نشانی ارسال کالا</translation>
+ <translation id="5689199277474810259">‏صادر کردن به JSON</translation>
+ <translation id="5689516760719285838">مکان</translation>
+ <translation id="569000877158168851">‏مقدار DnsOverHttpsTemplates مرتبط نیست و استفاده نخواهد شد، مگراینکه خط‌مشی DnsOverHttpsMode روی <ph name="SECURE_DNS_MODE_AUTOMATIC" /> یا<ph name="SECURE_DNS_MODE_SECURE" /> تنظیم شده باشد.</translation>
+@@ -2860,7 +2860,7 @@
+ <translation id="8963213021028234748"><ph name="MARKUP_1" />پیشنهادات:<ph name="MARKUP_2" />مطمئن شوید اتصال داده دارید<ph name="MARKUP_3" />بعداً این صفحه وب را تازه‌سازی کنید<ph name="MARKUP_4" />آدرسی را که وارد کرده‌اید، بررسی کنید<ph name="MARKUP_5" /></translation>
+ <translation id="8968766641738584599">ذخیره کارت</translation>
+ <translation id="8971063699422889582">گواهی سرور منقضی شده است.</translation>
+-<translation id="8975012916872825179">شامل اطلاعاتی مانند شماره تلفن، نشانی ایمیل و نشانی تحویل کالا می‌شود</translation>
++<translation id="8975012916872825179">شامل اطلاعاتی مانند شماره تلفن، نشانی ایمیل، و نشانی تحویل کالا می‌شود</translation>
+ <translation id="8975263830901772334">نام فایل‌هایی که چاپ می‌کنید</translation>
+ <translation id="8978053250194585037">‏Google Safe Browsing اخیراً در <ph name="SITE" />، <ph name="BEGIN_LINK" />رمزگیری شناسایی کرده است<ph name="END_LINK" />. سایت‌های رمزگیری وانمود می‌کنند وب‌سایت‌های دیگری هستند تا شما را فریب دهند.</translation>
+ <translation id="8983369100812962543">اکنون می‌توانید برنامه را تغییر اندازه دهید</translation>
+@@ -2977,7 +2977,7 @@
+ <translation id="962484866189421427">این محتوا ممکن است برنامه‌های فریب‌دهنده‌ای نصب کند که وانمود می‌کنند برنامه دیگری هستند یا اینکه داده‌هایی برای ردیابی شما جمع‌آوری می‌کنند. <ph name="BEGIN_LINK" />درهرصورت نشان داده شود<ph name="END_LINK" /></translation>
+ <translation id="96680173638229310">خودرو و وسیله نقلیه</translation>
+ <translation id="969892804517981540">ساخت رسمی</translation>
+-<translation id="973773823069644502">افزودن نشانی ارسال</translation>
++<translation id="973773823069644502">افزودن نشانی تحویل کالا</translation>
+ <translation id="975560348586398090">{COUNT,plural, =0{هیچ‌کدام}=1{۱ مورد}one{# مورد}other{# مورد}}</translation>
+ <translation id="977502174772294970">مراسم ازدواج</translation>
+ <translation id="981121421437150478">آفلاین</translation>
+diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
+index a7175812f17b..4c6638f9b39e 100644
+--- a/components/strings/components_strings_te.xtb
++++ b/components/strings/components_strings_te.xtb
+@@ -939,7 +939,7 @@
+     <ph name="PAGE_TITLE" /></translation>
+ <translation id="350069200438440499">ఫైల్ పేరు:</translation>
+ <translation id="3507936815618196901">మీ పరిసరాల 3D మ్యాప్‌ను రూపొందించడం, అలాగే కెమెరా పొజిషన్‌ను ట్రాక్ చేయడం</translation>
+-<translation id="3512163584740124171">ఈ విధానం విస్మరించబడుతుంది, ఎందుకంటే ఒకే విధాన సమూహం నుండి మరొక విధానం అధిక ప్రాధాన్యతను కలిగి ఉంది.</translation>
++<translation id="3512163584740124171">ఈ విధానం విస్మరించబడుతుంది, ఎందుకంటే ఒకే విధాన గ్రూప్‌ నుండి మరొక విధానం అధిక ప్రాధాన్యతను కలిగి ఉంది.</translation>
+ <translation id="35172538073169599">'అడ్రస్‌లను మేనేజ్ చేయి' బటన్, Chrome సెట్టింగ్‌లలో అడ్రస్‌లను జోడించడానికి, మేనేజ్ చేయడానికి 'Enter'ను నొక్కండి</translation>
+ <translation id="3518941727116570328">అనేక వస్తువులను హ్యాండిల్ చేయడం</translation>
+ <translation id="3528171143076753409">సర్వర్ ప్రమాణపత్రం విశ్వసనీయమైనది కాదు.</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+index e0509bfd580b..6b5724474994 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+@@ -810,7 +810,7 @@
+ <translation id="7884694604461143138">在歷史記錄中搜尋 (找到 <ph name="COUNT" /> 項結果)</translation>
+ <translation id="7887198238286927132">為保護個人隱私,Chrome 不會自動填入這個欄位。</translation>
+ <translation id="7911190106180361398">貴機構不允許你同步處理任何內容。</translation>
+-<translation id="7920949005883349320">隱私權與安全性</translation>
++<translation id="7920949005883349320">隱私權和安全性</translation>
+ <translation id="7930998711684428189">可在密碼因資料侵害事件遭到外洩時顯示警告訊息。</translation>
+ <translation id="7938254975914653459">FaceTime</translation>
+ <translation id="7939128259257418052">匯出密碼...</translation>
+diff --git a/ui/strings/translations/ax_strings_te.xtb b/ui/strings/translations/ax_strings_te.xtb
+index 47c420b52d37..7437716cbb08 100644
+--- a/ui/strings/translations/ax_strings_te.xtb
++++ b/ui/strings/translations/ax_strings_te.xtb
+@@ -30,7 +30,7 @@
+ <translation id="2723001399770238859">ఆడియో</translation>
+ <translation id="2759744352195237655">పాప్ అప్ బటన్</translation>
+ <translation id="2844350028562914727">వివరాలు</translation>
+-<translation id="2896972712917208084">రేడియో సమూహం</translation>
++<translation id="2896972712917208084">రేడియో గ్రూప్‌</translation>
+ <translation id="2931838996092594335">క్లిక్ చేయి</translation>
+ <translation id="2940813599313844715">ఆబ్జెక్ట్</translation>
+ <translation id="3040011195152428237">లింక్</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0020-Incrementing-VERSION-to-102.0.5005.132.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0020-Incrementing-VERSION-to-102.0.5005.132.patch
new file mode 100644
index 000000000000..cd8cb86a7339
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0020-Incrementing-VERSION-to-102.0.5005.132.patch
@@ -0,0 +1,28 @@
+From e880c117e7d30009b1af32aa904a97a53a024580 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Fri, 17 Jun 2022 01:00:31 +0000
+Subject: [PATCH 20/59] Incrementing VERSION to 102.0.5005.132
+
+Change-Id: I305193c6abec7d1b6ad767f428e8ce1b232eef29
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3707777
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1179}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 31f19120d007..5fded03cba08 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=131
++PATCH=132
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0021-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0021-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..ed16f2a16e90
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0021-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,212 @@
+From cbe831f390de4ea05fcc3ec65a0716a7fe0a8883 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Fri, 17 Jun 2022 18:09:59 +0000
+Subject: [PATCH 21/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Ia1e4b034fbf40ae02d641e01ec1393a58b68a20a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3710835
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1180}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_bs.xtb           | 8 ++++----
+ chrome/app/resources/generated_resources_te.xtb           | 4 ++--
+ chrome/app/resources/generated_resources_vi.xtb           | 2 +-
+ chrome/app/resources/google_chrome_strings_gl.xtb         | 2 +-
+ chrome/app/resources/google_chrome_strings_vi.xtb         | 4 ++--
+ components/strings/components_strings_da.xtb              | 2 +-
+ .../strings/resources/ios_share_extension_strings_hi.xtb  | 2 +-
+ .../resources/ios_widget_kit_extension_strings_te.xtb     | 2 +-
+ remoting/resources/remoting_strings_te.xtb                | 2 +-
+ ui/chromeos/translations/ui_chromeos_strings_fi.xtb       | 4 ++--
+ 10 files changed, 16 insertions(+), 16 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_bs.xtb b/chrome/app/resources/generated_resources_bs.xtb
+index 7234e04492b8..fe27694bd420 100644
+--- a/chrome/app/resources/generated_resources_bs.xtb
++++ b/chrome/app/resources/generated_resources_bs.xtb
+@@ -517,7 +517,7 @@ Odobrenja koja ste već dali aplikacijama se mogu primjenjivati na ovaj račun.
+ <translation id="1506061864768559482">Pretraživač</translation>
+ <translation id="1507170440449692343">Ovoj stranici je blokiran pristup vašoj kameri.</translation>
+ <translation id="1507246803636407672">&amp;Odbaci</translation>
+-<translation id="1507884455975553832">Prenosite aplikacije za slanje poruka</translation>
++<translation id="1507884455975553832">Prenosite aplikacije za razmjenu poruka</translation>
+ <translation id="1509163368529404530">&amp;Vrati grupu</translation>
+ <translation id="1509281256533087115">Pristupiti bilo kojem uređaju <ph name="DEVICE_NAME_AND_VENDOR" /> putem USB-a</translation>
+ <translation id="1510238584712386396">Pokretač</translation>
+@@ -724,7 +724,7 @@ da li    proksi server funkcionira. Ako smatrate da ne trebate koristiti
+ <translation id="1682548588986054654">&amp;Novi anoniman prozor</translation>
+ <translation id="1682867089915960590">Uključiti navigaciju kursorom?</translation>
+ <translation id="1684279041537802716">Boja za isticanje</translation>
+-<translation id="168511795252678620">Nedavne fotografije i aplikacije za slanje poruka</translation>
++<translation id="168511795252678620">Nedavne fotografije i aplikacije za razmjenu poruka</translation>
+ <translation id="1686550358074589746">Omogući pisanje klizanjem prstom</translation>
+ <translation id="168715261339224929">Da biste imali svoje oznake na svim svojim uređajima, uključite sinhronizaciju.</translation>
+ <translation id="1688867105868176567">Obrisati podatke web lokacije?</translation>
+@@ -6276,7 +6276,7 @@ Domena <ph name="DOMAIN" /> zahtijeva da pametna kartica ostane umetnuta.</trans
+ <translation id="7152478047064750137">Za ovu ekstenziju nisu potrebna posebna odobrenja</translation>
+ <translation id="7154130902455071009">Promijenite početnu stranicu na: <ph name="START_PAGE" /></translation>
+ <translation id="7155171745945906037">Postojeća fotografija sa kamere ili fajl</translation>
+-<translation id="7155352398126583949">Obavještenja i aplikacije za slanje poruka</translation>
++<translation id="7155352398126583949">Obavještenja i aplikacije za razmjenu poruka</translation>
+ <translation id="7163202347044721291">Potvrđivanje koda za aktivaciju...</translation>
+ <translation id="716640248772308851">Ekstenzija "<ph name="EXTENSION" />" može čitati fajlove za slike, videozapise i zvuk u označenim lokacijama.</translation>
+ <translation id="7167486101654761064">&amp;Uvijek otvori ovu vrstu datoteka</translation>
+@@ -7585,7 +7585,7 @@ Fajl ključa: <ph name="KEY_FILE" />
+ <translation id="8439506636278576865">Ponudi prijevod stranica na ovom jeziku</translation>
+ <translation id="8440630305826533614">Linux aplikacije</translation>
+ <translation id="8443795068008423036">Provjerite je li uređaj ažuriran i pokušajte ponovo</translation>
+-<translation id="8445046761938045900">Nedavne fotografije, obavještenja i aplikacije za slanje poruka</translation>
++<translation id="8445046761938045900">Nedavne fotografije, obavještenja i aplikacije za razmjenu poruka</translation>
+ <translation id="8446884382197647889">Saznajte više</translation>
+ <translation id="8447409163267621480">Uključite Ctrl ili Alt</translation>
+ <translation id="844850004779619592">Nisu pronađene komande</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index 20010cb9bef6..8e1f07c5d7d1 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -5950,7 +5950,7 @@
+ <translation id="6828182567531805778">మీ డేటాను సింక్ చేయడానికి మీ రహస్య పదబంధాన్ని నమోదు చేయండి</translation>
+ <translation id="682871081149631693">QuickFix</translation>
+ <translation id="6828860976882136098">వినియోగదారులందరి కోసం ఆటోమేటిక్ అప్‌డేట్‌లను సెటప్ చేయడం విఫలమైంది (ప్రీఫ్లయిట్ అమలు ఎర్రర్: <ph name="ERROR_NUMBER" />)</translation>
+-<translation id="682971198310367122">Google గోప్యతా విధానం</translation>
++<translation id="682971198310367122">Google గోప్యతా పాలసీ</translation>
+ <translation id="6831043979455480757">అనువదించు</translation>
+ <translation id="6833479554815567477">గ్రూప్ నుండి ట్యాబ్ తొలగించబడింది <ph name="GROUP_NAME" /> - <ph name="GROUP_CONTENTS" /></translation>
+ <translation id="683373380308365518">స్మార్ట్ మరియు సురక్షిత బ్రౌజర్‌కు మారండి</translation>
+@@ -8361,7 +8361,7 @@
+ <translation id="932327136139879170">హోమ్</translation>
+ <translation id="932508678520956232">ముద్రించడాన్ని ప్రారంభించడం సాధ్యం కాలేదు.</translation>
+ <translation id="933427034780221291">{NUM_FILES,plural, =1{భద్రతా తనిఖీ చేయడానికి వీల్లేనంతగా ఈ ఫైల్ చాలా పెద్దగా ఉంది. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్‌ను అప్‌లోడ్ చేయగలరు.}other{ఈ ఫైల్స్‌లో కొన్ని, భద్రతా తనిఖీ చేయడానికి వీల్లేనంత పెద్దగా ఉన్నాయి. మీరు గరిష్ఠంగా 50 MB వరకు ఉండే ఫైల్స్‌ను అప్‌లోడ్ చేయగలరు.}}</translation>
+-<translation id="93343527085570547">చట్టపరమైన కారణాలతో కంటెంట్ మార్పులను అభ్యర్ధించడానికి <ph name="BEGIN_LINK1" />చట్టపరమైన అంశాల సహాయ పేజీ<ph name="END_LINK1" />కు వెళ్లండి. కొంత ఖాతా మరియు సిస్టమ్ సమాచారం Googleకి పంపబడవచ్చు. సాంకేతిక సమస్యల పరిష్కారానికి మరియు మా సేవలను మెరుగుపరచడానికి మీరు మాకు ఇచ్చిన సమాచారాన్ని మా <ph name="BEGIN_LINK2" />గోప్యతా విధానం<ph name="END_LINK2" /> మరియు <ph name="BEGIN_LINK3" />సేవా నిబంధనలు<ph name="END_LINK3" />కు లోబడి మేము ఉపయోగిస్తాము.</translation>
++<translation id="93343527085570547">చట్టపరమైన కారణాలతో కంటెంట్ మార్పులను అభ్యర్ధించడానికి <ph name="BEGIN_LINK1" />చట్టపరమైన అంశాల సహాయ పేజీ<ph name="END_LINK1" />కు వెళ్లండి. కొంత ఖాతా మరియు సిస్టమ్ సమాచారం Googleకి పంపబడవచ్చు. సాంకేతిక సమస్యల పరిష్కారానికి మరియు మా సేవలను మెరుగుపరచడానికి మీరు మాకు ఇచ్చిన సమాచారాన్ని మా <ph name="BEGIN_LINK2" />గోప్యతా పాలసీ<ph name="END_LINK2" /> మరియు <ph name="BEGIN_LINK3" />సేవా నిబంధనలు<ph name="END_LINK3" />కు లోబడి మేము ఉపయోగిస్తాము.</translation>
+ <translation id="93393615658292258">పాస్‌వర్డ్ మాత్రమే</translation>
+ <translation id="934244546219308557">ఈ గ్రూప్‌నకు పేరు పెట్టండి</translation>
+ <translation id="934503638756687833">అవసరమైతే ఇక్కడ లిస్ట్‌ చేయబడని అంశాలను కూడా తీసివేయవచ్చు. Chrome గోప్యత విధాన డాక్యుమెంట్‌లో &lt;a href="<ph name="URL" />"&gt;అవాంఛిత సాఫ్ట్‌వేర్ రక్షణ&lt;/a&gt; గురించి మరింత తెలుసుకోండి.</translation>
+diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
+index 7bf91bfe95da..fa4aee89f515 100644
+--- a/chrome/app/resources/generated_resources_vi.xtb
++++ b/chrome/app/resources/generated_resources_vi.xtb
+@@ -6840,7 +6840,7 @@ Bạn có thể gán nhiều công tắc cho thao tác này.</translation>
+ <translation id="7716781361494605745">URL chính sách của tổ chức phát hành chứng chỉ Netscape</translation>
+ <translation id="7717014941119698257">Đang tải xuống: <ph name="STATUS" /></translation>
+ <translation id="771721654176725387">Thao tác này sẽ xóa vĩnh viễn dữ liệu duyệt web của bạn khỏi thiết bị này. Để khôi phục dữ liệu, hãy bật tùy chọn đồng bộ hóa cho địa chỉ email</translation>
+-<translation id="7717845620320228976">Kiểm tra bản cập nhật</translation>
++<translation id="7717845620320228976">Kiểm tra để tìm bản cập nhật</translation>
+ <translation id="7719367874908701697">Thu phóng trang</translation>
+ <translation id="7719588063158526969">Tên thiết bị quá dài</translation>
+ <translation id="7720216670798402294">Đọc thông tin thiết bị và dữ liệu thiết bị ChromeOS.</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_gl.xtb b/chrome/app/resources/google_chrome_strings_gl.xtb
+index 692445beff89..c6a9a7939c31 100644
+--- a/chrome/app/resources/google_chrome_strings_gl.xtb
++++ b/chrome/app/resources/google_chrome_strings_gl.xtb
+@@ -22,7 +22,7 @@
+ <translation id="137466361146087520">Google Chrome Beta</translation>
+ <translation id="1399397803214730675">Este ordenador ten instalada unha versión máis recente de Google Chrome. Se o software non funciona, desinstala Google Chrome e téntao de novo.</translation>
+ <translation id="139993653570221430">Se cambias de idea, podes modificar a configuración de Chrome en calquera momento. Con todo, as probas inscríbense na experiencia actual de publicación de anuncios, polo que non verás cambios de inmediato.</translation>
+-<translation id="1434626383986940139">Aplicacións de valores controlados de Chrome</translation>
++<translation id="1434626383986940139">Aplicacións de Chrome Canary</translation>
+ <translation id="1507198376417198979">Personaliza o teu novo perfil de Chrome</translation>
+ <translation id="1516530951338665275">Google Chrome precisa acceso mediante Bluetooth para continuar coa vinculación. <ph name="IDS_BLUETOOTH_DEVICE_CHOOSER_AUTHORIZE_BLUETOOTH_LINK" /></translation>
+ <translation id="1547295885616600893">Chrome OS é posible grazas a <ph name="BEGIN_LINK_CROS_OSS" />software de código aberto<ph name="END_LINK_CROS_OSS" /> adicional.</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
+index 2fcf6338de07..5b286f0d9831 100644
+--- a/chrome/app/resources/google_chrome_strings_vi.xtb
++++ b/chrome/app/resources/google_chrome_strings_vi.xtb
+@@ -9,7 +9,7 @@
+ <translation id="110877069173485804">Đây là Chrome của bạn</translation>
+ <translation id="1125124144982679672">Ai đang sử dụng Chrome?</translation>
+ <translation id="1142745911746664600">Không thể cập nhật Chrome</translation>
+-<translation id="1152920704813762236">Giới thiệu về Chrome OS</translation>
++<translation id="1152920704813762236">Giới thiệu về ChromeOS</translation>
+ <translation id="1154147086299354128">&amp;Mở trong Chrome</translation>
+ <translation id="1178374936842835197">Nếu bạn không thấy một chế độ cài đặt nào đó trên trang này, hãy xem phần <ph name="LINK_BEGIN" />Cài đặt ChromeOS Flex<ph name="LINK_END" /></translation>
+ <translation id="1182414570724401860">Chrome khuyên bạn không nên mở hoặc tải tệp này xuống</translation>
+@@ -141,7 +141,7 @@
+ <translation id="3744202345691150878">Nhận trợ giúp về ChromeOS</translation>
+ <translation id="3780814664026482060">Chrome - <ph name="PAGE_TITLE" /></translation>
+ <translation id="3785324443014631273">ChromeOS Flex không đồng bộ hoá được dữ liệu của bạn do xảy ra lỗi khi đăng nhập.</translation>
+-<translation id="3795971588916395511">Google ChromeOS</translation>
++<translation id="3795971588916395511">Google Chrome OS</translation>
+ <translation id="3835168907083856002">Thao tác này sẽ tạo một hồ sơ mới trên Chrome cho <ph name="USER_EMAIL_ADDRESS" /></translation>
+ <translation id="386202838227397562">Vui lòng đóng tất cả cửa sổ của Google Chrome và thử lại.</translation>
+ <translation id="3865754807470779944">Bạn đã cài đặt Chrome phiên bản <ph name="PRODUCT_VERSION" /></translation>
+diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
+index ba52e56898db..9756551c5981 100644
+--- a/components/strings/components_strings_da.xtb
++++ b/components/strings/components_strings_da.xtb
+@@ -2064,7 +2064,7 @@ Ellers vil det blive blokeret af dine privatlivsindstillinger. Det giver det ind
+ <translation id="6694681292321232194"><ph name="FIND_MY_PHONE_FOCUSED_FRIENDLY_MATCH_TEXT" /> – tryk på Tab-tasten og derefter Enter for at finde din enhed på Google-kontoen</translation>
+ <translation id="6696588630955820014">Knappen "Del denne fane" – tryk på Enter for at dele denne fane ved at dele linket, oprette en QR-kode, caste m.m.</translation>
+ <translation id="6698381487523150993">Oprettet:</translation>
+-<translation id="6702919718839027939">Nutid</translation>
++<translation id="6702919718839027939">Præsenter</translation>
+ <translation id="6709133671862442373">Nyheder</translation>
+ <translation id="6709888928011386878">Musikinstrumenter</translation>
+ <translation id="6710213216561001401">Forrige</translation>
+diff --git a/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_hi.xtb b/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_hi.xtb
+index afcb2bc08a1a..d6928a5f14e1 100644
+--- a/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_hi.xtb
++++ b/ios/chrome/share_extension/strings/resources/ios_share_extension_strings_hi.xtb
+@@ -3,7 +3,7 @@
+ <translationbundle lang="hi">
+ <translation id="1613742542373525524">APPLICATION_NAME यह लिंक संसाधित नहीं कर सकता.</translation>
+ <translation id="4655616150233109325">Chrome में खोलें</translation>
+-<translation id="601731541915429022">पठन सूची में जोड़ें</translation>
++<translation id="601731541915429022">रीडिंग लिस्ट में जोड़ें</translation>
+ <translation id="6930009216791986919">बुकमार्क में जोड़ें</translation>
+ <translation id="6965382102122355670">ठीक है</translation>
+ <translation id="8258999165172757081">जोड़ा गया</translation>
+diff --git a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_te.xtb b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_te.xtb
+index ab3f5b7da36e..ec5e2ffc324a 100644
+--- a/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_te.xtb
++++ b/ios/chrome/widget_kit_extension/strings/resources/ios_widget_kit_extension_strings_te.xtb
+@@ -11,7 +11,7 @@
+ <translation id="529497070985873480">Chrome డినో</translation>
+ <translation id="5683557219437283801">వాయిస్ సెర్చ్</translation>
+ <translation id="6179961764474023795">త్వరిత చర్యలు</translation>
+-<translation id="6855322554930231468">సెర్చ్</translation>
++<translation id="6855322554930231468">Search</translation>
+ <translation id="7048549665319929185">సెర్చ్ చేయండి లేదా
+ URLను టైప్ చేయండి</translation>
+ <translation id="7317302007099170473">QR కోడ్‌ను స్కాన్ చేయండి</translation>
+diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb
+index a0b9bb7529fd..e7a20200384d 100644
+--- a/remoting/resources/remoting_strings_te.xtb
++++ b/remoting/resources/remoting_strings_te.xtb
+@@ -183,7 +183,7 @@
+ <translation id="858006550102277544">కామెంట్ చేయండి</translation>
+ <translation id="8743328882720071828">మీరు మీ కంప్యూటర్‌ను చూడటానికి, నియంత్రించడానికి <ph name="CLIENT_USERNAME" />ను అనుమతించదలిచారా?</translation>
+ <translation id="8747048596626351634">సెషన్ క్రాష్ అయింది లేదా ప్రారంభించడంలో విఫలమైంది. రిమోట్ కంప్యూటర్‍‌లో ~/.chrome-remote-desktop-session ఉన్నట్లయితే, ఇది ముందుభాగంలో దీర్ఘకాలం అమలయ్యే డెస్క్‌టాప్ ఎన్విరాన్మెంట్ లేదా విండో మేనేజర్ వంటి ప్రక్రియలను ప్రారంభిస్తుందని నిర్ధారించుకోండి.</translation>
+-<translation id="8804164990146287819">గోప్యతా విధానం</translation>
++<translation id="8804164990146287819">గోప్యతా పాలసీ</translation>
+ <translation id="8906511416443321782">ఆడియోను క్యాప్చర్ చేసి, Chrome రిమోట్ డెస్క్‌టాప్ క్లయింట్‌లో స్ట్రీమ్ చేయడానికి మైక్రోఫోన్ యాక్సెస్ అవసరం.</translation>
+ <translation id="9111855907838866522">మీరు మీ రిమోట్ పరికరానికి కనెక్ట్ అయ్యారు. మెనూను తెరవడానికి, దయచేసి నాలుగు వేళ్లతో స్క్రీన్‌పై నొక్కండి.</translation>
+ <translation id="9126115402994542723">మరోసారి ఈ పరికరం నుండి ఈ హోస్ట్‌కు కనెక్ట్ చేస్తున్నప్పుడు PINను అడగవద్దు.</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
+index 6254446547d3..364331d04f8d 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_fi.xtb
+@@ -347,7 +347,7 @@
+ <translation id="3958548648197196644">Kiivi</translation>
+ <translation id="3966388904776714213">Äänisoitin</translation>
+ <translation id="3971140002794351170">Lataa mobiiliprofiili, verkko <ph name="NETWORK_INDEX" />/<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
+-<translation id="3973925058222872294">englanti (Iso-Britannia)</translation>
++<translation id="3973925058222872294">englanti (Yhdistynyt kuningaskunta)</translation>
+ <translation id="3975895378829046965">foneettinen bangla</translation>
+ <translation id="4002066346123236978">Nimi</translation>
+ <translation id="4017788180641807848">englanti (Yhdysvallat), Workman-näppäimistö</translation>
+@@ -838,7 +838,7 @@
+ <translation id="8087576439476816834">Lataa, <ph name="PROFILE_NAME" /></translation>
+ <translation id="8106045200081704138">Jaettu minulle</translation>
+ <translation id="8116072619078571545">Jäävesi</translation>
+-<translation id="8128733386027980860">englanti (Iso-Britannia), Dvorak-näppäimistö</translation>
++<translation id="8128733386027980860">englanti (Yhdistynyt kuningaskunta), Dvorak-näppäimistö</translation>
+ <translation id="8137331602592933310"><ph name="FILENAME" /> on jaettu sinulle. Et voi poistaa sitä, koska et ole tiedoston omistaja.</translation>
+ <translation id="813913629614996137">Käynnistetään…</translation>
+ <translation id="8151638057146502721">Määritä</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0022-Incrementing-VERSION-to-102.0.5005.133.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0022-Incrementing-VERSION-to-102.0.5005.133.patch
new file mode 100644
index 000000000000..743d8d570034
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0022-Incrementing-VERSION-to-102.0.5005.133.patch
@@ -0,0 +1,28 @@
+From e669776aaff0500402deff6cc913bd9da8c625f9 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sat, 18 Jun 2022 01:00:34 +0000
+Subject: [PATCH 22/59] Incrementing VERSION to 102.0.5005.133
+
+Change-Id: Ie8378adafa00bb27c17be361f3d0874d0e14781a
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3708486
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1181}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 5fded03cba08..a5342e3d2eec 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=132
++PATCH=133
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0023-Incrementing-VERSION-to-102.0.5005.134.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0023-Incrementing-VERSION-to-102.0.5005.134.patch
new file mode 100644
index 000000000000..944c9f181d7b
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0023-Incrementing-VERSION-to-102.0.5005.134.patch
@@ -0,0 +1,28 @@
+From ed5754b4c3d57efb6431210105b09243c39873a5 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sun, 19 Jun 2022 01:00:33 +0000
+Subject: [PATCH 23/59] Incrementing VERSION to 102.0.5005.134
+
+Change-Id: I084efc295ca7a75c3a03e7095b0740e89d55018f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3708489
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1182}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index a5342e3d2eec..fbc5358205d1 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=133
++PATCH=134
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0024-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0024-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..e982a6a92086
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0024-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,41 @@
+From 2f6ab4ecaef3d22e0f7c821d6b17991c7cf45ab8 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Sun, 19 Jun 2022 14:31:30 +0000
+Subject: [PATCH 24/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I7ae4bba78ca7e8c92621ed59d5f577e62d2c3e8f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3710701
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1183}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ components/strings/components_strings_ky.xtb | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/components/strings/components_strings_ky.xtb b/components/strings/components_strings_ky.xtb
+index a82d704e80b6..7f2feae5c2fe 100644
+--- a/components/strings/components_strings_ky.xtb
++++ b/components/strings/components_strings_ky.xtb
+@@ -1245,7 +1245,7 @@
+ <translation id="4349365535725594680">Купуя мазмун бөлүшүлбөй жатат</translation>
+ <translation id="4350629523305688469">Көп функционалдуу түпкүч</translation>
+ <translation id="4351060348582610152"><ph name="ORIGIN" /> сайты жакын жердеги Bluetooth түзмөктөрүн скандаганы жатат. Төмөнкү түзмөктөр табылды:</translation>
+-<translation id="4351175281479794167">Текшерүү кодун киргизиңиз</translation>
++<translation id="4351175281479794167">Ырастоо кодун киргизиңиз</translation>
+ <translation id="4356973930735388585">Бул сайттагы бүлдүргүчтөр түзмөгүңүздөгү маалыматыңызды (мисалы, сүрөттөр, сырсөздөр, билдирүүлөр жана насыя карталары) уурдап же жок кыла турган коркунучтуу программаларды орнотууга аракет кылышы мүмкүн.</translation>
+ <translation id="4358059973562876591">Сиз көрсөткөн үлгүлөрдү колдонууга болбойт, анткени DnsOverHttpsMode саясатында ката кетти.</translation>
+ <translation id="4358461427845829800">Төлөм ыкмаларын башкаруу...</translation>
+@@ -2778,7 +2778,7 @@
+ <translation id="8718314106902482036">Төлөм аягына чыккан жок</translation>
+ <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, издөө сунушу</translation>
+ <translation id="8719528812645237045">Муштум менен өйдө жакка эки жолу уруу</translation>
+-<translation id="8723535127346307411">Текшерүү кодун киргизиңиз</translation>
++<translation id="8723535127346307411">Ырастоо кодун киргизиңиз</translation>
+ <translation id="8725066075913043281">Кайра аракет кылып көрүү</translation>
+ <translation id="8726549941689275341">Барактын өлчөмү:</translation>
+ <translation id="8730621377337864115">Бүттү</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0025-Incrementing-VERSION-to-102.0.5005.135.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0025-Incrementing-VERSION-to-102.0.5005.135.patch
new file mode 100644
index 000000000000..62c6532d7471
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0025-Incrementing-VERSION-to-102.0.5005.135.patch
@@ -0,0 +1,28 @@
+From 57fb37eeee77178901e6c5b2377234785f586dbf Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Mon, 20 Jun 2022 01:00:49 +0000
+Subject: [PATCH 25/59] Incrementing VERSION to 102.0.5005.135
+
+Change-Id: Ifd8eb9c59904953d7b533ff4fd6d9a17789ca5dd
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3707948
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1184}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index fbc5358205d1..308402a8004d 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=134
++PATCH=135
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0026-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0026-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..5179df84300a
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0026-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,262 @@
+From b0cf7f5fab707c0208ad880dfdbee932dac4b335 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Mon, 20 Jun 2022 14:24:51 +0000
+Subject: [PATCH 26/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I41d7abb1adc3a2eaa1066f814b8899076a14f1ea
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3714549
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1185}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../strings/shortcut_viewer_strings_no.xtb             |  2 +-
+ chrome/app/resources/chromium_strings_no.xtb           |  2 +-
+ chrome/app/resources/generated_resources_it.xtb        |  2 +-
+ chrome/app/resources/generated_resources_iw.xtb        |  4 ++--
+ chrome/app/resources/generated_resources_no.xtb        | 10 +++++-----
+ chrome/app/resources/google_chrome_strings_no.xtb      |  2 +-
+ .../accessibility/strings/accessibility_strings_fa.xtb |  2 +-
+ .../strings/translations/android_chrome_strings_no.xtb |  4 ++--
+ components/strings/components_strings_no.xtb           | 10 +++++-----
+ ios/chrome/app/strings/resources/ios_strings_no.xtb    |  2 +-
+ ui/strings/translations/ui_strings_fa.xtb              |  2 +-
+ 11 files changed, 21 insertions(+), 21 deletions(-)
+
+diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_no.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_no.xtb
+index 60814b0c8b29..bee3a3cdbcf7 100644
+--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_no.xtb
++++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_no.xtb
+@@ -191,7 +191,7 @@
+ <translation id="7730490981846175479"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" /> og så <ph name="SPACE" /> eller <ph name="ENTER" /></translation>
+ <translation id="7787242579016742662">Åpne en fil i nettleseren</translation>
+ <translation id="7952165122793773711">Gå til fane 1–8</translation>
+-<translation id="8026334261755873520">Slett nettleserdata</translation>
++<translation id="8026334261755873520">Slett nettlesingsdata</translation>
+ <translation id="8130528849632411619">Gå til begynnelsen av dokumentet</translation>
+ <translation id="8147954207400281792"><ph name="CTRL" /><ph name="SEPARATOR" /><ph name="K" /> eller <ph name="E" /></translation>
+ <translation id="8234414138295101081">Rotér skjermen 90 grader</translation>
+diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
+index 54159b6cb38b..2c87eb737f7d 100644
+--- a/chrome/app/resources/chromium_strings_no.xtb
++++ b/chrome/app/resources/chromium_strings_no.xtb
+@@ -328,7 +328,7 @@ Chromium kan ikke gjenopprette innstillingen dine.</translation>
+ <translation id="9089354809943900324">Chromium er utdatert</translation>
+ <translation id="9093206154853821181">{0,plural, =1{Chromium startes på nytt om en time}other{Chromium startes på nytt om # timer}}</translation>
+ <translation id="91086099826398415">Åpne linken i en ny &amp;fane i Chromium</translation>
+-<translation id="911206726377975832">Vil du slette all nettleserdata også?</translation>
++<translation id="911206726377975832">Vil du slette all nettlesingsdata også?</translation>
+ <translation id="9144490074902256427">Underveis i prøveprosjektene kan du se og fjerne interesseemnene som nettsteder bruker for å vise deg annonser. Chromium anslår interessene dine basert på den nylige nettleserloggen din.</translation>
+ <translation id="9158494823179993217">Systemadministratoren din har konfigurert Chromium til å åpne en annen nettleser når du går til <ph name="TARGET_URL_HOSTNAME" />.</translation>
+ <translation id="9185526690718004400">Start på nytt for å oppdatere &amp;Chromium</translation>
+diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
+index 91b21778fa2a..9303b12179b5 100644
+--- a/chrome/app/resources/generated_resources_it.xtb
++++ b/chrome/app/resources/generated_resources_it.xtb
+@@ -4491,7 +4491,7 @@ e Ctrl + Alt + Riduzione luminosità per diminuire lo zoom.</translation>
+ <translation id="5392192690789334093">Possono inviare notifiche</translation>
+ <translation id="5393761864111565424">{COUNT,plural, =1{Link}other{# link}}</translation>
+ <translation id="5396325212236512832">Accedi automaticamente ai siti e alle app usando le credenziali memorizzate. Se la funzionalità è disattivata, ti verrà chiesta una conferma ogni volta che vuoi accedere a un sito o a un'app.</translation>
+-<translation id="5397378439569041789">Registra dispositivi kiosk o insegna</translation>
++<translation id="5397378439569041789">Registra dispositivi kiosk o segnaletica</translation>
+ <translation id="5397794290049113714">Tu</translation>
+ <translation id="5398497406011404839">Preferiti nascosti</translation>
+ <translation id="5398572795982417028">Riferimento pagina oltre i limiti. Il limite è <ph name="MAXIMUM_PAGE" /></translation>
+diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
+index 68a5ad9bb773..5a57465d9121 100644
+--- a/chrome/app/resources/generated_resources_iw.xtb
++++ b/chrome/app/resources/generated_resources_iw.xtb
+@@ -1058,7 +1058,7 @@
+ <translation id="1994173015038366702">כתובת אתר</translation>
+ <translation id="1995916364271252349">בדף הזה אפשר לשלוט על המידע שאתרים יכולים להשתמש בו ולהציג אותו (מיקום, מצלמה, חלונות קופצים ועוד)</translation>
+ <translation id="1997616988432401742">האישורים שלך</translation>
+-<translation id="1999115740519098545">בעת ההפעלה</translation>
++<translation id="1999115740519098545">כשפותחים את הדפדפן</translation>
+ <translation id="2000419248597011803">‏שליחה של חלק מקובצי ה-Cookie והחיפושים משורת כתובת האתר ומתיבת החיפוש אל מנוע החיפוש שהוגדר כברירת מחדל</translation>
+ <translation id="2002109485265116295">זמן אמת</translation>
+ <translation id="2003130567827682533">‏כדי להפעיל נתונים של '<ph name="NAME" />', יש להתחבר תחילה לרשת Wi-Fi</translation>
+@@ -2312,7 +2312,7 @@
+ <translation id="3164329792803560526">המערכת משתפת את הכרטיסייה הזו עם <ph name="APP_NAME" /></translation>
+ <translation id="3165390001037658081">ייתכן שספקים מסוימים חוסמים את התכונה הזו.</translation>
+ <translation id="3170072451822350649">ניתן גם לדלג על הכניסה ו<ph name="LINK_START" />לגלוש כאורח<ph name="LINK_END" />.</translation>
+-<translation id="31774765611822736">כרטיסייה חדשה מצד ימין</translation>
++<translation id="31774765611822736">כרטיסייה חדשה מצד שמאל</translation>
+ <translation id="3177909033752230686">שפת הדף:</translation>
+ <translation id="3179982752812949580">גופן הטקסט</translation>
+ <translation id="3181954750937456830">גלישה בטוחה (מגנה עליך ועל המכשיר מפני אתרים מסוכנים)</translation>
+diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
+index 0d10527fa225..5315653a9912 100644
+--- a/chrome/app/resources/generated_resources_no.xtb
++++ b/chrome/app/resources/generated_resources_no.xtb
+@@ -187,7 +187,7 @@
+ <translation id="1173894706177603556">Gi nytt navn</translation>
+ <translation id="1174073918202301297">Snarveien er lagt til</translation>
+ <translation id="1174366174291287894">Tilkoblingen din er alltid sikker så lenge Chrome ikke forteller deg noe annet</translation>
+-<translation id="117445914942805388">For å slette nettleserdata på alle synkroniserte enheter og Google-kontoen din <ph name="BEGIN_LINK" />går du til innstillingene for synkronisering<ph name="END_LINK" />.</translation>
++<translation id="117445914942805388">For å slette nettlesingsdata på alle synkroniserte enheter og Google-kontoen din <ph name="BEGIN_LINK" />går du til innstillingene for synkronisering<ph name="END_LINK" />.</translation>
+ <translation id="1175364870820465910">&amp;Skriv ut...</translation>
+ <translation id="1176471985365269981">Nettsteder som ikke har lov til å redigere filer eller mapper på enheten</translation>
+ <translation id="1177863135347784049">Tilpasset</translation>
+@@ -200,7 +200,7 @@
+ <translation id="1187722533808055681">Inaktive oppvåkninger</translation>
+ <translation id="1188807932851744811">Loggen er ikke lastet opp.</translation>
+ <translation id="11901918071949011">{NUM_FILES,plural, =1{Tilgang til en fil som er lagret på datamaskinen din}other{Tilgang til # filer som er lagret på datamaskinen din}}</translation>
+-<translation id="119092896208640858">For å slette nettleserdata på kun denne enheten, men beholde dataene på Google-kontoen, må du <ph name="BEGIN_LINK" />logge ut<ph name="END_LINK" />.</translation>
++<translation id="119092896208640858">For å slette nettlesingsdata på kun denne enheten, men beholde dataene på Google-kontoen, må du <ph name="BEGIN_LINK" />logge ut<ph name="END_LINK" />.</translation>
+ <translation id="1192706927100816598">{0,plural, =1{Du blir logget av automatisk om # sekund.
+ <ph name="DOMAIN" /> krever at smartkortet blir stående i.}other{Du blir logget av automatisk om # sekunder.
+ <ph name="DOMAIN" /> krever at smartkortet blir stående i.}}</translation>
+@@ -1599,7 +1599,7 @@ Du kan administrere innstillingene for denne kontoen ved å installere Family Li
+ <translation id="2480868415629598489">endre data du kopierer og limer inn</translation>
+ <translation id="2482878487686419369">Varsler</translation>
+ <translation id="2482895651873876648">Fanen er flyttet til gruppen <ph name="GROUP_NAME" /> – <ph name="GROUP_CONTENTS" /></translation>
+-<translation id="2484959914739448251">For å slette nettleserdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />skrive inn passordfrasen din<ph name="END_LINK" />.</translation>
++<translation id="2484959914739448251">For å slette nettlesingsdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />skrive inn passordfrasen din<ph name="END_LINK" />.</translation>
+ <translation id="2485394160472549611">Toppvalg for deg</translation>
+ <translation id="2485422356828889247">Avinstaller</translation>
+ <translation id="2485681265915754872">Vilkår for bruk av Google Play</translation>
+@@ -4101,7 +4101,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation>
+ <translation id="4977942889532008999">Bekreft tilgangen</translation>
+ <translation id="4980805016576257426">Denne utvidelsen inneholder skadelig programvare.</translation>
+-<translation id="4981449534399733132">For å slette nettleserdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />logge på<ph name="END_LINK" />.</translation>
++<translation id="4981449534399733132">For å slette nettlesingsdata på alle synkroniserte enheter og Google-kontoen din må du <ph name="BEGIN_LINK" />logge på<ph name="END_LINK" />.</translation>
+ <translation id="4982236238228587209">Enhetsprogramvare</translation>
+ <translation id="4985248278475639481">Om personlig tilpasning av annonser</translation>
+ <translation id="4986728572522335985">Dette fører til at alle dataene på sikkerhetsnøkkelen, inkludert PIN-koden, blir slettet</translation>
+@@ -7152,7 +7152,7 @@ Oppbevar nøkkelfilen på et trygt sted. Du får bruk for den når du skal oppre
+ <translation id="8023133589013344428">Administrer språk i ChromeOS Flex-innstillingene</translation>
+ <translation id="8023801379949507775">Oppdater utvidelser nå</translation>
+ <translation id="8025151549289123443">Låseskjerm og pålogging</translation>
+-<translation id="8026334261755873520">Slett nettleserdata</translation>
++<translation id="8026334261755873520">Slett nettlesingsdata</translation>
+ <translation id="8028060951694135607">Microsoft nøkkelgjenoppretting</translation>
+ <translation id="8028803902702117856">Laster ned <ph name="SIZE" />, <ph name="FILE_NAME" /></translation>
+ <translation id="8028993641010258682">Størrelse</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
+index c061b599aa86..ae7f2483a61f 100644
+--- a/chrome/app/resources/google_chrome_strings_no.xtb
++++ b/chrome/app/resources/google_chrome_strings_no.xtb
+@@ -362,7 +362,7 @@ Tillatelser du allerede har gitt nettsteder og apper, kan gjelde for denne konto
+ <translation id="8999208279178790196">{0,plural, =0{En Chrome-oppdatering er tilgjengelig}=1{En Chrome-oppdatering er tilgjengelig}other{En Chrome-oppdatering har vært tilgjengelig i # dager}}</translation>
+ <translation id="9053892488859122171">ChromeOS Flex-system</translation>
+ <translation id="9067395829937117663">Google Chrome krever Windows 7 eller nyere.</translation>
+-<translation id="911206726377975832">Vil du slette all nettleserdata også?</translation>
++<translation id="911206726377975832">Vil du slette all nettlesingsdata også?</translation>
+ <translation id="9138603949443464873">For å bruke endringene dine må du starte Chrome på nytt</translation>
+ <translation id="9195993889682885387">Chrome kan anslå interessene dine basert på nettleserloggen din fra de siste ukene. Denne informasjonen blir værende på enheten din.</translation>
+ <translation id="919706545465235479">Oppdater Chrome for å starte synkroniseringen</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
+index 8b75a0e734f4..38e6ff918c4b 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
+@@ -10,7 +10,7 @@
+ <translation id="1025074108959230262">حالت چسبان غیرفعال شد</translation>
+ <translation id="1031961866430398710">سپس</translation>
+ <translation id="1038643060055067718">خطوط:</translation>
+-<translation id="1038795173450935438">برای جلو رفتن بین موارد موجود در صفحه، «جستجو» + پیکان راست یا برای پرش به عقب «جستجو» + پیکان چپ را فشار دهید. برای رفتن به خط بعدی، «جستجو» + پیکان پایین را فشار دهید. برای رفتن به خط قبلی، از «جستجو» + پیکان بالا استفاده کنید. اگر به موردی رسیدید که می‌خواهید روی آن کلیک کنید، روی «جستجو» + فاصله فشار دهید.</translation>
++<translation id="1038795173450935438">برای جلو رفتن بین موارد موجود در صفحه، «جستجو» + کلید «راست‌بر» یا برای پرش به عقب «جستجو» + کلید «چپ‌بر» را فشار دهید. برای رفتن به خط بعدی، «جستجو» + کلید «پایین‌بر» را فشار دهید. برای رفتن به خط قبلی، از «جستجو» + کلید «بالابر» استفاده کنید. اگر به موردی رسیدید که می‌خواهید روی آن کلیک کنید، روی «جستجو» + کلید «فاصله» فشار دهید.</translation>
+ <translation id="106222400312645156">rwhdr</translation>
+ <translation id="1065552602950927991">ورودی نامعتبر</translation>
+ <translation id="1066085461259044485">سبز جنگلی</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+index afb4e74aa488..418884acaf3f 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_no.xtb
+@@ -1203,7 +1203,7 @@ Tillitstokener gir bedre personvern på nettet og kan ikke brukes til å finne u
+ <translation id="7630202231528827509">Leverandørens nettadresse</translation>
+ <translation id="7634280112532283638">Reduksjon i nettsøppel og svindel</translation>
+ <translation id="7638584964844754484">Feil passordfrase</translation>
+-<translation id="7641339528570811325">Slett nettleserdata</translation>
++<translation id="7641339528570811325">Slett nettlesingsdata</translation>
+ <translation id="7646772052135772216">Passordsynkronisering fungerer ikke</translation>
+ <translation id="7655900163790317559">Slår på Bluetooth …</translation>
+ <translation id="7658239707568436148">Avbryt</translation>
+@@ -1274,7 +1274,7 @@ Tillitstokener gir bedre personvern på nettet og kan ikke brukes til å finne u
+ <translation id="8006818846907410687">Blokkér mens du er inkognito</translation>
+ <translation id="8013372441983637696">Fjern også Chrome-dataene dine fra denne enheten</translation>
+ <translation id="8015452622527143194">Tilbakestill alt på siden til standardstørrelsen</translation>
+-<translation id="8026334261755873520">Slett nettleserdata</translation>
++<translation id="8026334261755873520">Slett nettlesingsdata</translation>
+ <translation id="8027863900915310177">Velg hvor du vil laste ned til</translation>
+ <translation id="8032569120109842252">Følger</translation>
+ <translation id="8035133914807600019">Ny mappe</translation>
+diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
+index 8786400bdfc9..c45f1e99d37e 100644
+--- a/components/strings/components_strings_no.xtb
++++ b/components/strings/components_strings_no.xtb
+@@ -347,7 +347,7 @@ I motsatt fall blir dette blokkert av personverninnstillingene. Dette gjør at i
+ <translation id="1807246157184219062">Lys</translation>
+ <translation id="1807528111851433570">Startark</translation>
+ <translation id="1812527064848182527">liggende</translation>
+-<translation id="1813414402673211292">Slett nettleserdata</translation>
++<translation id="1813414402673211292">Slett nettlesingsdata</translation>
+ <translation id="182139138257690338">automatiske nedlastinger</translation>
+ <translation id="1821930232296380041">Ugyldig forespørsel eller forespørselsparametere</translation>
+ <translation id="1822540298136254167">Nettsteder du besøker, og hvor mye tid du bruker på dem</translation>
+@@ -973,7 +973,7 @@ I motsatt fall blir dette blokkert av personverninnstillingene. Dette gjør at i
+ <translation id="361438452008624280">Listeoppføringen «<ph name="LANGUAGE_ID" />»: Språket er ukjent eller støttes ikke.</translation>
+ <translation id="3614934205542186002"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å kjøre en sikkerhetssjekk i Chrome-innstillingene</translation>
+ <translation id="3615877443314183785">Angi en gyldig utløpsdato</translation>
+-<translation id="36224234498066874">Slett nettleserdata</translation>
++<translation id="36224234498066874">Slett alle nettlesingsdata</translation>
+ <translation id="362276910939193118">Vis fullstendig logg</translation>
+ <translation id="3630155396527302611">Hvis programmet allerede har fått tillatelse til å bruke nettverket, kan du prøve
+       å fjerne det fra listen og så legge det til på nytt.</translation>
+@@ -1637,7 +1637,7 @@ I motsatt fall blir dette blokkert av personverninnstillingene. Dette gjør at i
+ <translation id="540969355065856584">Denne tjeneren kunne ikke bevise at den er <ph name="DOMAIN" />. Sikkerhetssertifikatet til tjeneren er ikke gyldig for øyeblikket. Dette kan være forårsaket av en feilkonfigurasjon eller en angriper som lytter på tilkoblingen din.</translation>
+ <translation id="5412236728747081950">Dette nettstedet mottar interessene dine fra Chrome for å kunne vise deg mer relevante annonser</translation>
+ <translation id="541416427766103491">Hylle 4</translation>
+-<translation id="5421136146218899937">Slett nettleserdata</translation>
++<translation id="5421136146218899937">Slett nettlesingsdata</translation>
+ <translation id="5426179911063097041"><ph name="SITE" /> vil sende deg varsler</translation>
+ <translation id="5428105026674456456">Spansk</translation>
+ <translation id="5430298929874300616">Fjern bokmerke</translation>
+@@ -1674,7 +1674,7 @@ I motsatt fall blir dette blokkert av personverninnstillingene. Dette gjør at i
+ <translation id="5528532273234423708">Smarthus</translation>
+ <translation id="55293785478302737">Kantstifting</translation>
+ <translation id="553484882784876924">Prc6 (konvolutt)</translation>
+-<translation id="5535133333442455806">Knappen «Slett nettleserdata» – trykk på Enter for å tømme nettleserloggen, slette informasjonskapsler, tømme bufferen med mer i Chrome-innstillingene</translation>
++<translation id="5535133333442455806">Knappen «Slett nettlesingsdata» – trykk på Enter for å tømme nettleserloggen, slette informasjonskapsler, tømme bufferen med mer i Chrome-innstillingene</translation>
+ <translation id="5536214594743852365">Vis «<ph name="SECTION" />»-delen</translation>
+ <translation id="5539243836947087108">Flåte</translation>
+ <translation id="5540224163453853">Den forespurte artikkelen ble ikke funnet.</translation>
+@@ -2549,7 +2549,7 @@ I motsatt fall blir dette blokkert av personverninnstillingene. Dette gjør at i
+ <translation id="8009225694047762179">Administrer passord</translation>
+ <translation id="8012116502927253373">{NUM_CARDS,plural, =1{Dette kortet og den tilknyttede faktureringsadressen lagres. Du kan bruke det når du er logget på <ph name="USER_EMAIL" />.}other{Disse kortene og de tilknyttede faktureringsadressene lagres. Du kan bruke dem når du er logget på <ph name="USER_EMAIL" />.}}</translation>
+ <translation id="8025119109950072390">Angripere på dette nettstedet prøver kanskje å lure deg til å gjøre farlige ting som å installere programvare eller avsløre personopplysningene dine (for eksempel passord, telefonnumre eller kredittkortinformasjon).</translation>
+-<translation id="8026334261755873520">Slett nettleserdata</translation>
++<translation id="8026334261755873520">Slett nettlesingsdata</translation>
+ <translation id="8027077570865220386">Skuff 15</translation>
+ <translation id="8028698320761417183"><ph name="CREATE_GOOGLE_FORM_FOCUSED_FRIENDLY_MATCH_TEXT" /> – trykk på Tab og deretter på Enter for å opprette et nytt skjema i Google Skjemaer raskt</translation>
+ <translation id="8028960012888758725">Beskjær etter jobben</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
+index a3c0edf9089f..aab590e9581f 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
+@@ -106,7 +106,7 @@ Søkemotoren din er <ph name="DSE_NAME" />. Se eventuelt instruksjonene deres om
+ <translation id="1753905327828125965">Mest besøkt</translation>
+ <translation id="1803264062614276815">Kortinnehaverens navn</translation>
+ <translation id="1809939268435598390">Slett mappen</translation>
+-<translation id="1813414402673211292">Slett nettleserdata</translation>
++<translation id="1813414402673211292">Slett nettlesingsdata</translation>
+ <translation id="1815941218935345331">Sikkerhetskode</translation>
+ <translation id="1820259098641718022">Lagt til i leselisten</translation>
+ <translation id="1832848789136765277">For å sikre at du alltid har tilgang til de synkroniserte dataene dine, må du bekrefte at det er deg</translation>
+diff --git a/ui/strings/translations/ui_strings_fa.xtb b/ui/strings/translations/ui_strings_fa.xtb
+index cd0ff067ffc5..e0075ad5bd34 100644
+--- a/ui/strings/translations/ui_strings_fa.xtb
++++ b/ui/strings/translations/ui_strings_fa.xtb
+@@ -73,7 +73,7 @@
+ <translation id="3126026824346185272">Ctrl</translation>
+ <translation id="3157931365184549694">بازیابی</translation>
+ <translation id="3183922693828471536">پیمایش به اینجا</translation>
+-<translation id="3234408098842461169">پیکان پایین</translation>
++<translation id="3234408098842461169">کلید پایین‌بر</translation>
+ <translation id="3291688615589870984">{DAYS,plural, =1{۱ روز}one{# روز}other{# روز}}</translation>
+ <translation id="3295886253693811851">برقراری تماس از</translation>
+ <translation id="3306688585798492231">نمایشگر داخلی</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0027-Incrementing-VERSION-to-102.0.5005.136.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0027-Incrementing-VERSION-to-102.0.5005.136.patch
new file mode 100644
index 000000000000..401ade5d8b85
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0027-Incrementing-VERSION-to-102.0.5005.136.patch
@@ -0,0 +1,28 @@
+From 6c7428424278ac118e85629322ec5a95e2599c55 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Tue, 21 Jun 2022 01:00:33 +0000
+Subject: [PATCH 27/59] Incrementing VERSION to 102.0.5005.136
+
+Change-Id: Ie4d1e8587dfee142a28feeca12d5bec472864d23
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3715930
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1186}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 308402a8004d..ef7c482c8d42 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=135
++PATCH=136
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0028-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0028-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..73625cba63a9
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0028-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,256 @@
+From 3b1594ca494c25b4239ab6267e6bfa9b0e70e5ae Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Tue, 21 Jun 2022 14:41:48 +0000
+Subject: [PATCH 28/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I69c09a61449fcfa7f00f44ffd4ea1be8977654e7
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3715113
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1187}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_es-419.xtb                           | 2 +-
+ ash/strings/ash_strings_nl.xtb                               | 4 ++--
+ .../camera_app_ui/resources/strings/camera_strings_eu.xtb    | 4 ++--
+ chrome/app/resources/generated_resources_ar.xtb              | 4 ++--
+ chrome/app/resources/generated_resources_es-419.xtb          | 4 ++--
+ chrome/app/resources/generated_resources_it.xtb              | 2 +-
+ chrome/app/resources/generated_resources_vi.xtb              | 2 +-
+ chrome/app/resources/google_chrome_strings_ar.xtb            | 2 +-
+ .../strings/translations/android_chrome_strings_ar.xtb       | 5 +++--
+ .../strings/translations/android_chrome_strings_es-419.xtb   | 2 +-
+ .../strings/translations/android_chrome_strings_vi.xtb       | 2 +-
+ components/strings/components_strings_ar.xtb                 | 3 ++-
+ components/strings/components_strings_vi.xtb                 | 4 ++--
+ 13 files changed, 21 insertions(+), 19 deletions(-)
+
+diff --git a/ash/strings/ash_strings_es-419.xtb b/ash/strings/ash_strings_es-419.xtb
+index 6d3ed2bac68e..450b9ac09bea 100644
+--- a/ash/strings/ash_strings_es-419.xtb
++++ b/ash/strings/ash_strings_es-419.xtb
+@@ -98,7 +98,7 @@ Estas son algunas de las cosas que puedes probar para comenzar.</translation>
+ <translation id="1420408895951708260">Activar o desactivar la Luz nocturna. <ph name="STATE_TEXT" /></translation>
+ <translation id="1420732223884894666">Ve las fotos y el contenido multimedia recientes del teléfono en tu <ph name="DEVICE_TYPE" /></translation>
+ <translation id="1426410128494586442">Sí</translation>
+-<translation id="1438357537418863713">Se configuró la transmisión de app. Una vez que comiences, aparecerán aquí las apps iniciadas recientemente.</translation>
++<translation id="1438357537418863713">Se configuró la transmisión de app. Una vez que comiences, aparecerán aquí las apps utilizadas recientemente.</translation>
+ <translation id="1455242230282523554">Mostrar la configuración de idioma</translation>
+ <translation id="1460620680449458626">El volumen está silenciado.</translation>
+ <translation id="1467432559032391204">Izquierda</translation>
+diff --git a/ash/strings/ash_strings_nl.xtb b/ash/strings/ash_strings_nl.xtb
+index c87186593fdb..182e3161c8f4 100644
+--- a/ash/strings/ash_strings_nl.xtb
++++ b/ash/strings/ash_strings_nl.xtb
+@@ -95,7 +95,7 @@ Hier zijn wat voorbeelden van wat je kunt proberen om aan de slag te gaan.</tran
+ <translation id="1420408895951708260">Nachtverlichting aan- of uitzetten. <ph name="STATE_TEXT" /></translation>
+ <translation id="1420732223884894666">Recente foto's en media van je telefoon bekijken op je <ph name="DEVICE_TYPE" /></translation>
+ <translation id="1426410128494586442">Ja</translation>
+-<translation id="1438357537418863713">App-streaming is nu ingesteld. Als je aan de slag gaat, zie je hier recent gelanceerde apps.</translation>
++<translation id="1438357537418863713">App-streaming is nu ingesteld. Als je aan de slag gaat, zie je hier recent gebruikte apps.</translation>
+ <translation id="1455242230282523554">Taalinstellingen bekijken</translation>
+ <translation id="1460620680449458626">Volume staat uit.</translation>
+ <translation id="1467432559032391204">Links</translation>
+@@ -1328,7 +1328,7 @@ Nieuwe installatie</translation>
+ <translation id="9084606467167974638">Positie van menu wijzigen</translation>
+ <translation id="9089416786594320554">Invoermethoden</translation>
+ <translation id="9091626656156419976">Scherm <ph name="DISPLAY_NAME" /> is verwijderd</translation>
+-<translation id="9098969848082897657">Geluid van telefoon uitzetten</translation>
++<translation id="9098969848082897657">Telefoon dempen</translation>
+ <translation id="9099154003160514616">Lacros-update beschikbaar</translation>
+ <translation id="9100887602489003640">Profiel toevoegen. Wacht een paar minuten.</translation>
+ <translation id="9105450214093926548">Een tweede gebruiker inloggen wordt niet ondersteund als de Lacros-browser actief is. Gebruik in plaats daarvan een tweede browserprofiel in Lacros of sluit Lacros en probeer het opnieuw.</translation>
+diff --git a/ash/webui/camera_app_ui/resources/strings/camera_strings_eu.xtb b/ash/webui/camera_app_ui/resources/strings/camera_strings_eu.xtb
+index 974898761fe5..b6c3fd8ed3b8 100644
+--- a/ash/webui/camera_app_ui/resources/strings/camera_strings_eu.xtb
++++ b/ash/webui/camera_app_ui/resources/strings/camera_strings_eu.xtb
+@@ -46,7 +46,7 @@
+         Memoria atzitzeko baimena duten aplikazioek atzi ditzakete argazkiak eta bideoak.</translation>
+ <translation id="3067436040345934772">Mugitu eskuinera</translation>
+ <translation id="3081586908890909590">Aldatu bideoak grabatzeko modura</translation>
+-<translation id="313467653172006084">30 f/s</translation>
++<translation id="313467653172006084">30 fps</translation>
+ <translation id="3183731565330012717">Sareta mota</translation>
+ <translation id="3227137524299004712">Mikrofonoa</translation>
+ <translation id="3240426699337459095">Esteka kopiatu da</translation>
+@@ -123,7 +123,7 @@ Irudi edo bideoaren kalitateari buruzko iritzia eman nahi baduzu, erantsi argazk
+ <translation id="761421184377987513">Behera eta ezkerrera mugitzen ari da</translation>
+ <translation id="7649070708921625228">Laguntza</translation>
+ <translation id="7658239707568436148">Utzi</translation>
+-<translation id="7670511624014457267">60 f/s</translation>
++<translation id="7670511624014457267">60 fps</translation>
+ <translation id="7671804233658741790">Dokumentuaren beheko eskuinaldeko ertza</translation>
+ <translation id="7726641833034062494">Grabatu bideo normal bat</translation>
+ <translation id="7748344063862150053">Dokumentuaren goiko eskuinaldeko ertza</translation>
+diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
+index 62cc88d48a2e..4eec1516e8e1 100644
+--- a/chrome/app/resources/generated_resources_ar.xtb
++++ b/chrome/app/resources/generated_resources_ar.xtb
+@@ -2835,7 +2835,7 @@
+ <translation id="3714195043138862580">وُضِعَ هذا الجهاز التجريبي في الحالة "غير متوفِّر".</translation>
+ <translation id="3719826155360621982">الصفحة الرئيسية</translation>
+ <translation id="372062398998492895">‏إعدادات طابعات CUPS</translation>
+-<translation id="3721119614952978349">‏علاقتك مع Google</translation>
++<translation id="3721119614952978349">‏أنت وGoogle</translation>
+ <translation id="3722108462506185496">حدث خطأ أثناء بدء تشغيل خدمة الآلة الافتراضية. يُرجى إعادة المحاولة.</translation>
+ <translation id="3727144509609414201">‏شبكات Wi-Fi المتاحة</translation>
+ <translation id="3727187387656390258">فحص النوافذ المنبثقة</translation>
+@@ -4157,7 +4157,7 @@
+ <translation id="5051836348807686060">لا تتوفر ميزة التدقيق الإملائي للغات التي اخترتها.</translation>
+ <translation id="5052499409147950210">تعديل موقع إلكتروني</translation>
+ <translation id="505347685865235222">مجموعة لم تتم تسميتها - <ph name="GROUP_CONTENT_STRING" /></translation>
+-<translation id="5053962746715621840">‏ابحث في الصور عبر "عدسة Google"</translation>
++<translation id="5053962746715621840">‏البحث باستخدام الصورة بواسطة "عدسة Google"</translation>
+ <translation id="5054374119096692193">‏الاطّلاع على كل خيارات البطاقة في القسم <ph name="BEGIN_LINK" />تخصيص Chrome<ph name="END_LINK" /></translation>
+ <translation id="5056950756634735043">جارٍ الاتصال بالحاوية</translation>
+ <translation id="5057110919553308744">عند النقر على "الإضافة"</translation>
+diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
+index feff984e5988..dd4a406234dd 100644
+--- a/chrome/app/resources/generated_resources_es-419.xtb
++++ b/chrome/app/resources/generated_resources_es-419.xtb
+@@ -3860,7 +3860,7 @@ y Ctrl + Alt + Disminuir brillo para alejar.</translation>
+ <translation id="473936925429402449">Seleccionado, contenido adicional: <ph name="CURRENT_ELEMENT" /> de <ph name="TOTAL_ELEMENTS" /></translation>
+ <translation id="4739639199548674512">Tickets</translation>
+ <translation id="4742334355511750246">No puede mostrar imágenes</translation>
+-<translation id="4742970037960872810">Quitar el texto destacado</translation>
++<translation id="4742970037960872810">Dejar de destacar</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Obtener información sobre cómo actualizar las aplicaciones<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{Activar el sonido del sitio}other{Activar el sonido de los sitios}}</translation>
+ <translation id="474609389162964566">Accede a tu Asistente con "Hey Google"</translation>
+@@ -6134,7 +6134,7 @@ Puedes asignar varios interruptores a esta acción.</translation>
+ <translation id="7009709314043432820"><ph name="APP_NAME" /> está utilizando la cámara</translation>
+ <translation id="701080569351381435">Ver código fuente</translation>
+ <translation id="7014174261166285193">Error de instalación</translation>
+-<translation id="7014480873681694324">Quitar el texto destacado</translation>
++<translation id="7014480873681694324">Dejar de destacar</translation>
+ <translation id="7017004637493394352">Di "OK Google" otra vez.</translation>
+ <translation id="7017219178341817193">Agregar nueva página</translation>
+ <translation id="7017354871202642555">No es posible configurar el modo después de que se ha configurado la ventana.</translation>
+diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
+index 9303b12179b5..f02f15ad7396 100644
+--- a/chrome/app/resources/generated_resources_it.xtb
++++ b/chrome/app/resources/generated_resources_it.xtb
+@@ -5569,7 +5569,7 @@ Puoi assegnare più sensori a questa azione.</translation>
+ <translation id="6466258437571594570">I siti non possono interromperti quando chiedono di poter inviare notifiche</translation>
+ <translation id="6466988389784393586">&amp;Apri tutti i Preferiti</translation>
+ <translation id="6467304607960172345">Ottimizza video a schermo intero</translation>
+-<translation id="6467377768028664108"><ph name="DEVICE_TYPE" /> potrà poi:</translation>
++<translation id="6467377768028664108">Su <ph name="DEVICE_TYPE" />:</translation>
+ <translation id="6468485451923838994">Caratteri</translation>
+ <translation id="6468773105221177474"><ph name="FILE_COUNT" /> file</translation>
+ <translation id="6469557521904094793">Attiva rete mobile</translation>
+diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
+index fa4aee89f515..20f391850ad6 100644
+--- a/chrome/app/resources/generated_resources_vi.xtb
++++ b/chrome/app/resources/generated_resources_vi.xtb
+@@ -7618,7 +7618,7 @@ Giữ tệp khóa của bạn ở nơi an toàn. Bạn sẽ cần tệp khóa đ
+ <translation id="8471525937465764768">Các trang web thường kết nối với thiết bị USB để áp dụng những tính năng như in tài liệu hoặc lưu vào thiết bị lưu trữ</translation>
+ <translation id="8471959340398751476">Tính năng nhận chiết khấu đang tắt. Bạn có thể bật tính năng này trong trình đơn tùy chỉnh</translation>
+ <translation id="8472623782143987204">được hỗ trợ bằng phần cứng</translation>
+-<translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation>
++<translation id="8473863474539038330">Địa chỉ và các lựa chọn khác</translation>
+ <translation id="8475313423285172237">Một chương trình khác trên máy tính của bạn đã thêm một tiện ích có thể thay đổi cách Chrome hoạt động.</translation>
+ <translation id="8477241577829954800">Đã thay thế</translation>
+ <translation id="8477384620836102176">&amp;Chung</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
+index 334de19ffada..88a11e1504fe 100644
+--- a/chrome/app/resources/google_chrome_strings_ar.xtb
++++ b/chrome/app/resources/google_chrome_strings_ar.xtb
+@@ -9,7 +9,7 @@
+ <translation id="110877069173485804">‏هذا Chrome الخاص بك</translation>
+ <translation id="1125124144982679672">‏مَن يستخدم متصفِّح Chrome؟</translation>
+ <translation id="1142745911746664600">‏تعذّرت إعادة التحميل Chrome</translation>
+-<translation id="1152920704813762236">‏لمحة عن نظام التشغيل Chrome</translation>
++<translation id="1152920704813762236">‏لمحة عن ChromeOS</translation>
+ <translation id="1154147086299354128">‏&amp;فتح في Chrome</translation>
+ <translation id="1178374936842835197">‏في حال عدم عرض أحد الإعدادات على هذه الصفحة، انتقِل إلى <ph name="LINK_BEGIN" />
+         إعدادات نظام التشغيل ChromeOS Flex<ph name="LINK_END" /></translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+index f1e93ecf3279..d6c7f88702f7 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ar.xtb
+@@ -285,7 +285,8 @@
+ <translation id="2534155362429831547">تم حذف <ph name="NUMBER_OF_ITEMS" /> من العناصر</translation>
+ <translation id="2534582914273493287">‏يتم إرسال عناوين URL التي تزورها إلى Google</translation>
+ <translation id="2536728043171574184">عرض نسخة بلا اتصال من هذه الصفحة</translation>
+-<translation id="2546283357679194313">ملفات تعريف الارتباط وبيانات المواقع</translation>
++<translation id="2546283357679194313">ملفات تعريف الارتباط وبيانات المواقع الإلكترونية
++</translation>
+ <translation id="2549516196460093976">‏يمكنك استخدام هذا الجهاز اللوحي لتسجيل الدخول إلى حساب Google على جهاز الكمبيوتر الذي يعرض رمز الاستجابة السريعة هذا.</translation>
+ <translation id="2558569818338050235">يؤثر سجلّ تصفّحك في الإعلانات التي تظهر لك.</translation>
+ <translation id="2561519700418191927">معاينات الفيديوهات</translation>
+@@ -499,7 +500,7 @@
+ <translation id="371230970611282515">توقّع الأحداث الخطيرة قبل حدوثها والتحذير منها</translation>
+ <translation id="3714981814255182093">فتح شريط البحث</translation>
+ <translation id="3716182511346448902">‏تستهلك هذه الصفحة مساحة كبيرة من الذاكرة، لذلك أوقفها Chrome مؤقتًا.</translation>
+-<translation id="3721119614952978349">‏علاقتك مع Google</translation>
++<translation id="3721119614952978349">‏أنت وGoogle</translation>
+ <translation id="3737319253362202215">إعدادات الترجمة</translation>
+ <translation id="3737402728074743863">عليك ضبط قفل الشاشة لاستخدام هذا الجهاز كمفتاح أمان.</translation>
+ <translation id="3738139272394829648">المس للبحث</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+index 09044681e203..e3a1afabb6c2 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_es-419.xtb
+@@ -667,7 +667,7 @@ Es posible que tu cuenta de Google tenga otros formularios de historial de naveg
+ <translation id="4736934858538408121">Tarjeta virtual</translation>
+ <translation id="4738836084190194332">Última sincronización: <ph name="WHEN" /></translation>
+ <translation id="4741753828624614066">Recibirás mejores sugerencias en la barra de direcciones.</translation>
+-<translation id="4742970037960872810">Quitar el texto destacado</translation>
++<translation id="4742970037960872810">Dejar de destacar</translation>
+ <translation id="4749960740855309258">Abrir una pestaña nueva</translation>
+ <translation id="4758061975920522644">Compartir solo la imagen</translation>
+ <translation id="4759238208242260848">Descargas</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+index 6a066d11e660..21185014952d 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_vi.xtb
+@@ -1361,7 +1361,7 @@ Mã thông báo tin cậy giúp cải thiện quyền riêng tư trên web và
+ <translation id="8453310803815879010">Bắt đầu Trò chơi Khủng long</translation>
+ <translation id="8461694314515752532">Mã hóa dữ liệu đã đồng bộ hóa bằng cụm mật khẩu đồng bộ hóa của riêng bạn</translation>
+ <translation id="8466613982764129868">Hãy đảm bảo <ph name="TARGET_DEVICE_NAME" /> có kết nối Internet</translation>
+-<translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation>
++<translation id="8473863474539038330">Địa chỉ và các lựa chọn khác</translation>
+ <translation id="8481921391193215807">Khi bạn bật Hộp cát về quyền riêng tư, các trang web có thể dùng kỹ thuật bảo vệ quyền riêng tư theo mô tả ở đây để cung cấp nội dung và dịch vụ của mình. Các kỹ thuật này gồm có những biện pháp thay thế cho hoạt động theo dõi trên nhiều trang web. Theo thời gian, chúng tôi có thể bổ sung nhiều chế độ dùng thử khác.
+ 
+ <ph name="BEGIN_LIST_ITEM1" />Các nhà quảng cáo và nhà xuất bản có thể dùng kỹ thuật FLoC.<ph name="END_LIST_ITEM1" />
+diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
+index 9f063901bfe7..1fe4b2bf4b35 100644
+--- a/components/strings/components_strings_ar.xtb
++++ b/components/strings/components_strings_ar.xtb
+@@ -595,7 +595,8 @@
+ <translation id="2544546346215446551">المشرف أعاد تشغيل الجهاز</translation>
+ <translation id="2544644783021658368">مستند واحد</translation>
+ <translation id="254524874071906077">‏تعيين Chrome كمتصفح تلقائي</translation>
+-<translation id="2546283357679194313">ملفات تعريف الارتباط وبيانات المواقع</translation>
++<translation id="2546283357679194313">ملفات تعريف الارتباط وبيانات المواقع الإلكترونية
++</translation>
+ <translation id="2547466893236767989">تصميم وتطوير مواقع إلكترونية</translation>
+ <translation id="254947805923345898">قيمة السياسة غير صحيحة.</translation>
+ <translation id="255002559098805027">أرسل <ph name="HOST_NAME" /> استجابة غير صالحة.</translation>
+diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
+index 737992fdba54..efc072d84b36 100644
+--- a/components/strings/components_strings_vi.xtb
++++ b/components/strings/components_strings_vi.xtb
+@@ -1658,7 +1658,7 @@ Nếu bạn từ chối, chế độ cài đặt quyền riêng tư của bạn
+ <translation id="54817484435770891">Thêm địa chỉ hợp lệ</translation>
+ <translation id="5485973315555778056">Thiết bị trên đám mây</translation>
+ <translation id="5487426985799386720">Thực phẩm và đồ uống</translation>
+-<translation id="5490432419156082418">Địa chỉ và các tùy chọn khác</translation>
++<translation id="5490432419156082418">Địa chỉ và các lựa chọn khác</translation>
+ <translation id="5492298309214877701">Trang web trên mạng nội bộ của công ty, tổ chức hoặc trường học này có URL tương tự như trang web bên ngoài.
+     <ph name="LINE_BREAK" />
+     Hãy thử liên hệ với quản trị viên hệ thống của bạn.</translation>
+@@ -2708,7 +2708,7 @@ Thông tin chi tiết bổ sung:
+ <translation id="8457125768502047971">Vô thời hạn</translation>
+ <translation id="8461694314515752532">Mã hóa dữ liệu đã đồng bộ hóa bằng cụm mật khẩu đồng bộ hóa của riêng bạn</translation>
+ <translation id="8466379296835108687">{COUNT,plural, =1{1 thẻ tín dụng}other{# thẻ tín dụng}}</translation>
+-<translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation>
++<translation id="8473863474539038330">Địa chỉ và các lựa chọn khác</translation>
+ <translation id="8474910779563686872">Hiển thị thông tin chi tiết của nhà phát triển</translation>
+ <translation id="8479754468255770962">Dập ghim dưới cùng bên trái</translation>
+ <translation id="8483780878231876732">Để sử dụng thẻ từ Tài khoản Google, hãy đăng nhập vào Chrome</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0029-M102-infra-add-free_space-dimension-to-Chromium.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0029-M102-infra-add-free_space-dimension-to-Chromium.patch
new file mode 100644
index 000000000000..5dcbfc8c4e8c
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0029-M102-infra-add-free_space-dimension-to-Chromium.patch
@@ -0,0 +1,842 @@
+From 2b4864af666871315c7eb8e7a5bf2c59968f62d0 Mon Sep 17 00:00:00 2001
+From: Keybo Qian <keybo@google.com>
+Date: Tue, 21 Jun 2022 16:43:59 +0000
+Subject: [PATCH 29/59] [M102][infra] add "free_space" dimension to Chromium
+ builderless CI builders.
+
+This dimension is currently only used by these builders, and is
+"standard" by default.
+
+(cherry picked from commit 2dfe967762507d2d6757b8e776e4efaea27d46ed)
+
+Bug: 1311317
+Change-Id: Id73fb6b2d4af9e072bf3f8b85498191ce5a00718
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3703737
+Reviewed-by: Garrett Beaty <gbeaty@google.com>
+Commit-Queue: Keybo Qian <keybo@google.com>
+Cr-Original-Commit-Position: refs/heads/main@{#1015340}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3714800
+Cr-Commit-Position: refs/branch-heads/5005@{#1188}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../config/generated/luci/cr-buildbucket.cfg  | 82 +++++++++++++++++++
+ infra/config/lib/builders.star                | 22 +++++
+ infra/config/subprojects/chromium/ci.star     |  3 +-
+ .../subprojects/flakiness/flakiness.star      |  3 +-
+ infra/config/subprojects/goma/goma.star       |  3 +-
+ .../config/subprojects/reclient/reclient.star |  3 +-
+ 6 files changed, 112 insertions(+), 4 deletions(-)
+
+diff --git a/infra/config/generated/luci/cr-buildbucket.cfg b/infra/config/generated/luci/cr-buildbucket.cfg
+index e784735e10fc..3e6522e93ca2 100644
+--- a/infra/config/generated/luci/cr-buildbucket.cfg
++++ b/infra/config/generated/luci/cr-buildbucket.cfg
+@@ -28,6 +28,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -110,6 +111,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -192,6 +194,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -274,6 +277,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -356,6 +360,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -438,6 +443,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -520,6 +526,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -602,6 +609,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -684,6 +692,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -766,6 +775,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -848,6 +858,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -930,6 +941,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -1012,6 +1024,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1094,6 +1107,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1176,6 +1190,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1257,6 +1272,7 @@ buckets {
+       swarming_host: "chromium-swarm.appspot.com"
+       dimensions: "builderless:1"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Mac"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       exe {
+@@ -1338,6 +1354,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1420,6 +1437,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1502,6 +1520,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Windows"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1584,6 +1603,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1666,6 +1686,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1748,6 +1769,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Windows"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1830,6 +1852,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1912,6 +1935,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -1994,6 +2018,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2076,6 +2101,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2158,6 +2184,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -2239,6 +2266,7 @@ buckets {
+       swarming_host: "chromium-swarm.appspot.com"
+       dimensions: "builderless:1"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Mac"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       exe {
+@@ -2320,6 +2348,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Windows"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -2402,6 +2431,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:1"
+@@ -2484,6 +2514,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2566,6 +2597,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2648,6 +2680,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2730,6 +2763,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2812,6 +2846,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -2894,6 +2929,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -2976,6 +3012,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3058,6 +3095,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3140,6 +3178,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3232,6 +3271,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3314,6 +3354,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3556,6 +3597,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -3638,6 +3680,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -3720,6 +3763,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3802,6 +3846,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3884,6 +3929,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -3966,6 +4012,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4048,6 +4095,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4130,6 +4178,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4212,6 +4261,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4294,6 +4344,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4376,6 +4427,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4458,6 +4510,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4540,6 +4593,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -4622,6 +4676,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Windows-10"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5028,6 +5083,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:2"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.gpu.ci"
+       dimensions: "ssd:0"
+@@ -5110,6 +5166,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Windows-10"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5192,6 +5249,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5274,6 +5332,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5356,6 +5415,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5438,6 +5498,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5520,6 +5581,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5602,6 +5664,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5765,6 +5828,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5847,6 +5911,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -5929,6 +5994,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6011,6 +6077,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6093,6 +6160,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6175,6 +6243,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6257,6 +6326,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6339,6 +6409,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6421,6 +6492,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6584,6 +6656,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -6918,6 +6991,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7000,6 +7074,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7082,6 +7157,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7164,6 +7240,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7246,6 +7323,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7328,6 +7406,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7410,6 +7489,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7492,6 +7572,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+@@ -7815,6 +7896,7 @@ buckets {
+       dimensions: "builderless:1"
+       dimensions: "cores:8"
+       dimensions: "cpu:x86-64"
++      dimensions: "free_space:standard"
+       dimensions: "os:Ubuntu-18.04"
+       dimensions: "pool:luci.chromium.ci"
+       dimensions: "ssd:0"
+diff --git a/infra/config/lib/builders.star b/infra/config/lib/builders.star
+index d52370a10a90..226ed51648ba 100644
+--- a/infra/config/lib/builders.star
++++ b/infra/config/lib/builders.star
+@@ -171,6 +171,15 @@ xcode = struct(
+     x13wk = xcode_enum("13a1030dwk"),
+ )
+ 
++# Free disk space in a machine reserved for build tasks.
++# The values in this enum will be used to populate bot dimension "free_space",
++# and each bot will allocate a corresponding amount of free disk space based on
++# the value of the dimension through "bot_config.py".
++free_space = struct(
++    standard = "standard",
++    high = "high",
++)
++
+ ################################################################################
+ # Implementation details                                                       #
+ ################################################################################
+@@ -297,6 +306,7 @@ defaults = args.defaults(
+     auto_builder_dimension = args.COMPUTE,
+     builder_group = None,
+     builderless = args.COMPUTE,
++    free_space = None,
+     cores = None,
+     cpu = None,
+     fully_qualified_builder_dimension = False,
+@@ -345,6 +355,7 @@ def builder(
+         triggered_by = args.DEFAULT,
+         os = args.DEFAULT,
+         builderless = args.DEFAULT,
++        free_space = args.DEFAULT,
+         builder_cache_name = None,
+         override_builder_dimension = None,
+         auto_builder_dimension = args.DEFAULT,
+@@ -425,6 +436,10 @@ def builder(
+         builderless: a boolean indicating whether the builder runs on
+             builderless machines. If True, emits a 'builderless:1' dimension. By
+             default, considered True iff `os` refers to a linux OS.
++        free_space: an enum that indicates the amount of free disk space reserved
++            in a machine for incoming build tasks. This value is used to create
++            a "free_space" dimension, and this dimension is appended to only
++            builderless builders.
+         override_builder_dimension: a string to assign to the "builder"
+             dimension. Ignores any other "builder" and "builderless" dimensions
+             that would have been assigned.
+@@ -600,6 +615,12 @@ def builder(
+         if builderless:
+             dimensions["builderless"] = "1"
+ 
++            free_space = defaults.get_value("free_space", free_space)
++            if free_space:
++                dimensions["free_space"] = free_space
++        elif free_space and free_space != args.DEFAULT:
++            fail("\'free_space\' dimension can only be specified for builderless builders")
++
+         auto_builder_dimension = defaults.get_value(
+             "auto_builder_dimension",
+             auto_builder_dimension,
+@@ -808,4 +829,5 @@ builders = struct(
+     os = os,
+     sheriff_rotations = sheriff_rotations,
+     xcode = xcode,
++    free_space = free_space,
+ )
+diff --git a/infra/config/subprojects/chromium/ci.star b/infra/config/subprojects/chromium/ci.star
+index e11b770d24e7..d19117eff5f4 100644
+--- a/infra/config/subprojects/chromium/ci.star
++++ b/infra/config/subprojects/chromium/ci.star
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+ 
+ load("//lib/branches.star", "branches")
+-load("//lib/builders.star", "cpu")
++load("//lib/builders.star", "builders", "cpu")
+ load("//lib/ci.star", "ci")
+ load("//lib/consoles.star", "consoles")
+ load("//project.star", "settings")
+@@ -14,6 +14,7 @@ ci.defaults.set(
+     build_numbers = True,
+     cpu = cpu.X86_64,
+     triggered_by = ["chromium-gitiles-trigger"],
++    free_space = builders.free_space.standard,
+ )
+ 
+ luci.bucket(
+diff --git a/infra/config/subprojects/flakiness/flakiness.star b/infra/config/subprojects/flakiness/flakiness.star
+index ee158bc947d3..c2b4fe86cb00 100644
+--- a/infra/config/subprojects/flakiness/flakiness.star
++++ b/infra/config/subprojects/flakiness/flakiness.star
+@@ -2,7 +2,7 @@
+ # Use of this source code is governed by a BSD-style license that can be
+ # found in the LICENSE file.
+ 
+-load("//lib/builders.star", "os")
++load("//lib/builders.star", "builders", "os")
+ load("//lib/ci.star", "ci")
+ load("//lib/consoles.star", "consoles")
+ 
+@@ -15,6 +15,7 @@ ci.defaults.set(
+     # TODO(jeffyoon): replace with smaller scoped service account, and update
+     # below for bucket ACL
+     service_account = "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com",
++    free_space = builders.free_space.standard,
+ )
+ 
+ luci.bucket(
+diff --git a/infra/config/subprojects/goma/goma.star b/infra/config/subprojects/goma/goma.star
+index be425023964f..54a585a691a4 100644
+--- a/infra/config/subprojects/goma/goma.star
++++ b/infra/config/subprojects/goma/goma.star
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+ 
+ load("//lib/builder_config.star", "builder_config")
+-load("//lib/builders.star", "builder", "cpu", "defaults", "goma", "os", "xcode")
++load("//lib/builders.star", "builder", "builders", "cpu", "defaults", "goma", "os", "xcode")
+ load("//lib/structs.star", "structs")
+ 
+ luci.bucket(
+@@ -32,6 +32,7 @@ defaults.executable.set("recipe:chromium")
+ defaults.execution_timeout.set(3 * time.hour)
+ defaults.os.set(os.LINUX_DEFAULT)
+ defaults.pool.set("luci.chromium.ci")
++defaults.free_space.set(builders.free_space.standard)
+ defaults.service_account.set(
+     "goma-release-testing@chops-service-accounts.iam.gserviceaccount.com",
+ )
+diff --git a/infra/config/subprojects/reclient/reclient.star b/infra/config/subprojects/reclient/reclient.star
+index ad898d6cb6cd..fb789ff4b504 100644
+--- a/infra/config/subprojects/reclient/reclient.star
++++ b/infra/config/subprojects/reclient/reclient.star
+@@ -3,7 +3,7 @@
+ # found in the LICENSE file.
+ 
+ load("//lib/builder_config.star", "builder_config")
+-load("//lib/builders.star", "cpu", "os")
++load("//lib/builders.star", "builders", "cpu", "os")
+ load("//lib/ci.star", "ci")
+ load("//lib/consoles.star", "consoles")
+ load("//lib/structs.star", "structs")
+@@ -41,6 +41,7 @@ ci.defaults.set(
+         "chromium-ci-builder@chops-service-accounts.iam.gserviceaccount.com"
+     ),
+     triggered_by = ["chromium-gitiles-trigger"],
++    free_space = builders.free_space.standard,
+ )
+ 
+ consoles.console_view(
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0030-infra-Migrate-configs-for-android_cronet-src-side.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0030-infra-Migrate-configs-for-android_cronet-src-side.patch
new file mode 100644
index 000000000000..be69947ac358
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0030-infra-Migrate-configs-for-android_cronet-src-side.patch
@@ -0,0 +1,197 @@
+From 5e676bfdc8c9329ee5f749098383586c7ad87bde Mon Sep 17 00:00:00 2001
+From: Gregory Guterman <guterman@google.com>
+Date: Wed, 22 Jun 2022 00:21:37 +0000
+Subject: [PATCH 30/59] [infra] Migrate configs for android_cronet src-side.
+
+(cherry picked from commit cd384a5c8ef5736f97ae34982f8d3e38a1a64e8f)
+
+Bug: 1317104
+Change-Id: I17c2d9d869ea57125d92d4278a820a6ff87b05ff
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3656312
+Commit-Queue: Garrett Beaty <gbeaty@google.com>
+Auto-Submit: Gregory Guterman <guterman@google.com>
+Reviewed-by: Garrett Beaty <gbeaty@google.com>
+Cr-Original-Commit-Position: refs/heads/main@{#1011734}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3717523
+Cr-Commit-Position: refs/branch-heads/5005@{#1189}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../ci/android-cronet-arm-rel/properties.json | 53 +++++++++++++++++++
+ .../try/android_cronet/properties.json        | 48 +++++++++++++++++
+ .../chromium/ci/chromium.android.star         | 23 ++++++++
+ .../try/tryserver.chromium.android.star       |  6 +++
+ 4 files changed, 130 insertions(+)
+
+diff --git a/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json b/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
+index d68921bae929..4c1bee9eeb18 100644
+--- a/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
++++ b/infra/config/generated/builders/ci/android-cronet-arm-rel/properties.json
+@@ -1,4 +1,57 @@
+ {
++  "$build/chromium_tests_builder_config": {
++    "builder_config": {
++      "builder_db": {
++        "entries": [
++          {
++            "builder_id": {
++              "bucket": "ci",
++              "builder": "android-cronet-arm-rel",
++              "project": "chromium"
++            },
++            "builder_spec": {
++              "build_gs_bucket": "chromium-android-archive",
++              "builder_group": "chromium.android",
++              "execution_mode": "COMPILE_AND_TEST",
++              "legacy_android_config": {
++                "config": "main_builder"
++              },
++              "legacy_chromium_config": {
++                "apply_configs": [
++                  "cronet_builder",
++                  "mb"
++                ],
++                "build_config": "Release",
++                "config": "android",
++                "target_bits": 32,
++                "target_platform": "android"
++              },
++              "legacy_gclient_config": {
++                "apply_configs": [
++                  "android",
++                  "enable_reclient"
++                ],
++                "config": "chromium"
++              }
++            }
++          }
++        ]
++      },
++      "builder_ids": [
++        {
++          "bucket": "ci",
++          "builder": "android-cronet-arm-rel",
++          "project": "chromium"
++        }
++      ],
++      "mirroring_builder_group_and_names": [
++        {
++          "builder": "android_cronet",
++          "group": "tryserver.chromium.android"
++        }
++      ]
++    }
++  },
+   "$build/reclient": {
+     "instance": "rbe-chromium-trusted",
+     "jobs": 500,
+diff --git a/infra/config/generated/builders/try/android_cronet/properties.json b/infra/config/generated/builders/try/android_cronet/properties.json
+index d90599ce7370..160fc425c26a 100644
+--- a/infra/config/generated/builders/try/android_cronet/properties.json
++++ b/infra/config/generated/builders/try/android_cronet/properties.json
+@@ -1,4 +1,52 @@
+ {
++  "$build/chromium_tests_builder_config": {
++    "builder_config": {
++      "builder_db": {
++        "entries": [
++          {
++            "builder_id": {
++              "bucket": "ci",
++              "builder": "android-cronet-arm-rel",
++              "project": "chromium"
++            },
++            "builder_spec": {
++              "build_gs_bucket": "chromium-android-archive",
++              "builder_group": "chromium.android",
++              "execution_mode": "COMPILE_AND_TEST",
++              "legacy_android_config": {
++                "config": "main_builder"
++              },
++              "legacy_chromium_config": {
++                "apply_configs": [
++                  "cronet_builder",
++                  "mb"
++                ],
++                "build_config": "Release",
++                "config": "android",
++                "target_bits": 32,
++                "target_platform": "android"
++              },
++              "legacy_gclient_config": {
++                "apply_configs": [
++                  "android",
++                  "enable_reclient"
++                ],
++                "config": "chromium"
++              }
++            }
++          }
++        ]
++      },
++      "builder_ids": [
++        {
++          "bucket": "ci",
++          "builder": "android-cronet-arm-rel",
++          "project": "chromium"
++        }
++      ],
++      "is_compile_only": true
++    }
++  },
+   "$build/goma": {
+     "enable_ats": true,
+     "rpc_extra_params": "?prod",
+diff --git a/infra/config/subprojects/chromium/ci/chromium.android.star b/infra/config/subprojects/chromium/ci/chromium.android.star
+index a2e046777d7a..8905963349cd 100644
+--- a/infra/config/subprojects/chromium/ci/chromium.android.star
++++ b/infra/config/subprojects/chromium/ci/chromium.android.star
+@@ -632,6 +632,29 @@ ci.builder(
+ 
+ ci.builder(
+     name = "android-cronet-arm-rel",
++    builder_spec = builder_config.builder_spec(
++        gclient_config = builder_config.gclient_config(
++            config = "chromium",
++            apply_configs = [
++                "android",
++                "enable_reclient",
++            ],
++        ),
++        chromium_config = builder_config.chromium_config(
++            config = "android",
++            apply_configs = [
++                "cronet_builder",
++                "mb",
++            ],
++            build_config = builder_config.build_config.RELEASE,
++            target_bits = 32,
++            target_platform = builder_config.target_platform.ANDROID,
++        ),
++        android_config = builder_config.android_config(
++            config = "main_builder",
++        ),
++        build_gs_bucket = "chromium-android-archive",
++    ),
+     branch_selector = branches.STANDARD_MILESTONE,
+     console_view_entry = consoles.console_view_entry(
+         category = "cronet|arm",
+diff --git a/infra/config/subprojects/chromium/try/tryserver.chromium.android.star b/infra/config/subprojects/chromium/try/tryserver.chromium.android.star
+index 94cd15630829..994a280cb969 100644
+--- a/infra/config/subprojects/chromium/try/tryserver.chromium.android.star
++++ b/infra/config/subprojects/chromium/try/tryserver.chromium.android.star
+@@ -555,6 +555,12 @@ try_.builder(
+ 
+ try_.builder(
+     name = "android_cronet",
++    mirrors = [
++        "ci/android-cronet-arm-rel",
++    ],
++    try_settings = builder_config.try_settings(
++        is_compile_only = True,
++    ),
+     branch_selector = branches.STANDARD_MILESTONE,
+     builderless = not settings.is_main,
+     main_list_view = "try",
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0031-M102-Print-Preview-Fix-missing-destinations-in-dialo.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0031-M102-Print-Preview-Fix-missing-destinations-in-dialo.patch
new file mode 100644
index 000000000000..e89cbe5a6d1a
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0031-M102-Print-Preview-Fix-missing-destinations-in-dialo.patch
@@ -0,0 +1,77 @@
+From b81edbf02a6ab821e51ba5128b3984fc2e8653c2 Mon Sep 17 00:00:00 2001
+From: Rebekah Potter <rbpotter@chromium.org>
+Date: Wed, 22 Jun 2022 00:39:37 +0000
+Subject: [PATCH 31/59] [M102] Print Preview: Fix missing destinations in
+ dialog
+
+Print Preview's dialog fails to display destinations in cases where all
+printers have already been loaded into the backing destination store
+before the dialog is opened. This can happen if users have all printer
+types represented in their recent printers + system default printer, as
+such printers are pre-loaded at startup to populate the dropdown. Note
+the system default printer is a local/native printer.
+
+This bug previously did not manifest because users did not have an
+extension, privet, and cloud printer all in their recent destinations.
+However, with the removal of privet and cloud printer types, this bug
+could be triggered by simply having a recent extension printer + having
+a system default native printer.
+
+(cherry picked from commit 76e2dc10bc759469dcaea1604a582fd2c6bd55fa)
+
+Bug: 1330678
+Change-Id: Ia0684b908690cca6691c9d44ad94296dadfb9536
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3696838
+Reviewed-by: Lei Zhang <thestig@chromium.org>
+Commit-Queue: Rebekah Potter <rbpotter@chromium.org>
+Reviewed-by: Demetrios Papadopoulos <dpapad@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1012174}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3698743
+Cr-Commit-Position: refs/branch-heads/5005@{#1190}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../resources/print_preview/ui/destination_dialog.ts       | 7 ++++++-
+ .../resources/print_preview/ui/destination_dialog_cros.ts  | 7 ++++++-
+ 2 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/browser/resources/print_preview/ui/destination_dialog.ts b/chrome/browser/resources/print_preview/ui/destination_dialog.ts
+index 64ededd87966..2b8ad610c167 100644
+--- a/chrome/browser/resources/print_preview/ui/destination_dialog.ts
++++ b/chrome/browser/resources/print_preview/ui/destination_dialog.ts
+@@ -174,8 +174,13 @@ export class PrintPreviewDestinationDialogElement extends
+       this.metrics_ = MetricsContext.destinationSearch();
+     }
+     this.$.dialog.showModal();
+-    this.loadingDestinations_ = this.destinationStore === undefined ||
++    const loading = this.destinationStore === undefined ||
+         this.destinationStore.isPrintDestinationSearchInProgress;
++    if (!loading) {
++      // All destinations have already loaded.
++      this.updateDestinations_();
++    }
++    this.loadingDestinations_ = loading;
+     this.metrics_.record(DestinationSearchBucket.DESTINATION_SHOWN);
+   }
+ 
+diff --git a/chrome/browser/resources/print_preview/ui/destination_dialog_cros.ts b/chrome/browser/resources/print_preview/ui/destination_dialog_cros.ts
+index a164805bde4a..4c7b53daafc0 100644
+--- a/chrome/browser/resources/print_preview/ui/destination_dialog_cros.ts
++++ b/chrome/browser/resources/print_preview/ui/destination_dialog_cros.ts
+@@ -293,8 +293,13 @@ export class PrintPreviewDestinationDialogCrosElement extends
+       this.metrics_ = MetricsContext.destinationSearch();
+     }
+     this.$.dialog.showModal();
+-    this.loadingDestinations_ = this.destinationStore === undefined ||
++    const loading = this.destinationStore === undefined ||
+         this.destinationStore.isPrintDestinationSearchInProgress;
++    if (!loading) {
++      // All destinations have already loaded.
++      this.updateDestinations_();
++    }
++    this.loadingDestinations_ = loading;
+     this.metrics_.record(DestinationSearchBucket.DESTINATION_SHOWN);
+   }
+ 
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0032-Incrementing-VERSION-to-102.0.5005.137.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0032-Incrementing-VERSION-to-102.0.5005.137.patch
new file mode 100644
index 000000000000..56054aa33e82
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0032-Incrementing-VERSION-to-102.0.5005.137.patch
@@ -0,0 +1,28 @@
+From d40c1c345c6c905254498a9622b8cd89297dd0f2 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Wed, 22 Jun 2022 01:00:40 +0000
+Subject: [PATCH 32/59] Incrementing VERSION to 102.0.5005.137
+
+Change-Id: I6f8a3d5bee97dabe89b4660a3b1593418851091f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3715133
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1191}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index ef7c482c8d42..96ae4bfab48f 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=136
++PATCH=137
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0033-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0033-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..69e64d7a7bfb
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0033-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,807 @@
+From 1bca1691d091c6cf48d290bdb6abdf1549a228c2 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Wed, 22 Jun 2022 14:27:36 +0000
+Subject: [PATCH 33/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I05ee4132f9aa5149e40cfae97d5aad0f20fe33e4
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3715647
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1192}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_fa.xtb                |   2 +-
+ ash/strings/ash_strings_uk.xtb                |   2 +-
+ .../android_webapk_strings_uk.xtb             |   2 +-
+ .../app/resources/generated_resources_eu.xtb  |   2 +-
+ .../app/resources/generated_resources_hu.xtb  |   2 +-
+ .../app/resources/generated_resources_te.xtb  |   4 +-
+ .../app/resources/generated_resources_zu.xtb  |   4 +-
+ .../android_chrome_strings_ml.xtb             |   2 +-
+ .../android_chrome_strings_uk.xtb             |   2 +-
+ chromeos/strings/chromeos_strings_ml.xtb      |   2 +-
+ chromeos/strings/chromeos_strings_te.xtb      |   4 +-
+ .../translations/browser_ui_strings_uk.xtb    |   2 +-
+ components/strings/components_strings_uk.xtb  |   2 +-
+ components/strings/components_strings_zu.xtb  |   8 +-
+ .../translations/ui_chromeos_strings_zu.xtb   | 152 +++++++++---------
+ 15 files changed, 96 insertions(+), 96 deletions(-)
+
+diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
+index 297fa02a8dcc..c36debe1ef20 100644
+--- a/ash/strings/ash_strings_fa.xtb
++++ b/ash/strings/ash_strings_fa.xtb
+@@ -374,7 +374,7 @@
+ <translation id="3217205077783620295">دکمه میزان صدا فعال است، با تغییر وضعیت صامت می‌شود.</translation>
+ <translation id="3226991577105957773">+<ph name="COUNT" /> مورد دیگر</translation>
+ <translation id="3227137524299004712">میکروفن</translation>
+-<translation id="324366796737464147">کاهش صدای محیط</translation>
++<translation id="324366796737464147">حذف نوفه زمینه</translation>
+ <translation id="3249513730522716925">پنجره <ph name="WINDOW_TITLE" /> از میز <ph name="ACTIVE_DESK" /> به میز <ph name="TARGET_DESK" /> منتقل شد</translation>
+ <translation id="3252573918265662711">راه‌اندازی</translation>
+ <translation id="3255483164551725916">‏What can you do?‎ (چه کاری می‌توانی انجام دهی؟)</translation>
+diff --git a/ash/strings/ash_strings_uk.xtb b/ash/strings/ash_strings_uk.xtb
+index f6bbbbe31669..9762292db963 100644
+--- a/ash/strings/ash_strings_uk.xtb
++++ b/ash/strings/ash_strings_uk.xtb
+@@ -179,7 +179,7 @@
+ <translation id="1978498689038657292">Ввести текст</translation>
+ <translation id="1989113344093894667">Не вдається записати контент</translation>
+ <translation id="1990046457226896323">Файли живих субтитрів завантажено</translation>
+-<translation id="1993072747612765854">Докладніше про останнє оновлення додатка <ph name="SYSTEM_APP_NAME" /></translation>
++<translation id="1993072747612765854">Докладніше про останнє оновлення <ph name="SYSTEM_APP_NAME" /></translation>
+ <translation id="1998100899771863792">Поточний робочий стіл</translation>
+ <translation id="2001444736072756133">Шукайте <ph name="CATEGORY" />, файли, додатки тощо.</translation>
+ <translation id="2016340657076538683">Введіть повідомлення</translation>
+diff --git a/chrome/android/webapk/strings/translations/android_webapk_strings_uk.xtb b/chrome/android/webapk/strings/translations/android_webapk_strings_uk.xtb
+index 49c8e02806af..f8d0f3f47a65 100644
+--- a/chrome/android/webapk/strings/translations/android_webapk_strings_uk.xtb
++++ b/chrome/android/webapk/strings/translations/android_webapk_strings_uk.xtb
+@@ -5,7 +5,7 @@
+ <translation id="1700971771753530690">Щоб запустити <ph name="APP_NAME" />, потрібен такий додаток:</translation>
+ <translation id="2697679025356221813">Щоб запустити <ph name="APP_NAME" />, потрібен веб-переглядач</translation>
+ <translation id="3858759029325727987">Виберіть веб-переглядач, який підтримує цей додаток:</translation>
+-<translation id="4165986682804962316">Налаштування сайту</translation>
++<translation id="4165986682804962316">Налаштування сайтів</translation>
+ <translation id="6377677440246641805"><ph name="BROWSER_NAME" />\nНе підтримується</translation>
+ <translation id="7671141431838911305">INSTALL</translation>
+ <translation id="8252328707312954493">ЗАКРИТИ</translation>
+diff --git a/chrome/app/resources/generated_resources_eu.xtb b/chrome/app/resources/generated_resources_eu.xtb
+index 3bb13d525fef..51abc041b8fc 100644
+--- a/chrome/app/resources/generated_resources_eu.xtb
++++ b/chrome/app/resources/generated_resources_eu.xtb
+@@ -7099,7 +7099,7 @@ Esleipen bat kentzeko, berriz, sakatu esleipen bat daukan erabilerraztasun-eteng
+ <translation id="7974936243149753750">Bilatu gainetik</translation>
+ <translation id="7975504106303186033">Chrome Education-eko gailu hau G Suite for Education-eko kontu batekin erregistratu behar duzu. Beste kontu bat erregistratzeko, joan g.co/workspace/edusignup helbidera.</translation>
+ <translation id="7978412674231730200">Gako pribatua</translation>
+-<translation id="7978450511781612192">Zure Google-ko kontuen saioa amaituko da. Aurrerantzean, ez dira sinkronizatuko laster-markak, historia, pasahitzak eta beste.</translation>
++<translation id="7978450511781612192">Zure Google-ko kontuetako saioa amaituko da. Aurrerantzean, ez dira sinkronizatuko laster-markak, historia, pasahitzak eta beste.</translation>
+ <translation id="7980084013673500153">Erreproduzigai IDa: <ph name="ASSET_ID" /></translation>
+ <translation id="7981313251711023384">Aurrekargatu orriak azkarrago arakatzeko eta bilatzeko</translation>
+ <translation id="798145602633458219">Erantsi <ph name="SUGGESTION_NAME" /> iradokizuna bilaketa-koadroan</translation>
+diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
+index e47d89c523d0..b68b291d5234 100644
+--- a/chrome/app/resources/generated_resources_hu.xtb
++++ b/chrome/app/resources/generated_resources_hu.xtb
+@@ -3850,7 +3850,7 @@ Elindítja a következőt: <ph name="CONTROL_PANEL_APPLET_NAME" />?</translation
+ <translation id="4701335814944566468">Tegnap tekintette meg</translation>
+ <translation id="4701540735981103145">A rendszergazda letiltotta a bejelentkezést</translation>
+ <translation id="4707337002099455863">Mindig, minden webhelyen</translation>
+-<translation id="4708794300267213770">Lezárási képernyő megjelenítése, az alvó módból történő felébresztéskor</translation>
++<translation id="4708794300267213770">Lezárási képernyő megjelenítése az alvó módból történő felébresztéskor</translation>
+ <translation id="4708849949179781599">Kilépés a <ph name="PRODUCT_NAME" />-ból</translation>
+ <translation id="4711638718396952945">A beállítások visszaállítása</translation>
+ <translation id="47158868804223727">Kattintson a csoport nevére a kibontásához vagy összecsukásához</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index 8e1f07c5d7d1..8af2cc506d63 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -3305,7 +3305,7 @@
+ <translation id="4144468798716165316">క్విక్ కమాండ్స్</translation>
+ <translation id="4146026355784316281">ఎల్లప్పుడూ సిస్టమ్ వ్యూయర్‌తో తెరువు</translation>
+ <translation id="4146785383423576110">రీసెట్ చేసి హానికరమైన వాటిని తీసివేయండి</translation>
+-<translation id="4147897805161313378">Google ఫోటోలు</translation>
++<translation id="4147897805161313378">Google Photos</translation>
+ <translation id="4147911968024186208">దయచేసి మళ్లీ ప్రయత్నించండి. మీకు ఈ ఎర్రర్ మళ్లీ కనిపిస్తే, దయచేసి మీ మద్దతు ప్రతినిధిని సంప్రదించండి.</translation>
+ <translation id="4150201353443180367">డిస్‌ప్లే</translation>
+ <translation id="4150569944729499860">స్క్రీన్ కాంటెక్ట్స్</translation>
+@@ -5615,7 +5615,7 @@
+ <translation id="6499143127267478107">ప్రాక్సీ స్క్రిప్ట్‌లో హోస్ట్‌ను పరిష్కరిస్తోంది...</translation>
+ <translation id="6499764981457476645">సమీపంలో పరికరాలు ఏవీ కనుగొనబడలేదు</translation>
+ <translation id="6501957628055559556">అన్ని కంటైనర్లు</translation>
+-<translation id="650266656685499220">ఆల్బమ్‌లను క్రియేట్ చేయడానికి, 'Google ఫోటోలు'కు వెళ్లండి</translation>
++<translation id="650266656685499220">ఆల్బమ్‌లను క్రియేట్ చేయడానికి, 'Google Photos'కు వెళ్లండి</translation>
+ <translation id="6503077044568424649">ఎక్కువగా సందర్శించేవి</translation>
+ <translation id="650457560773015827">ఎడమవైపు బటన్</translation>
+ <translation id="6504601948739128893">మీ పరికరంలో ఇన్‌స్టాల్ చేయబడిన ఫాంట్‌లను ఉపయోగించడానికి సైట్‌లకు అనుమతి లేదు</translation>
+diff --git a/chrome/app/resources/generated_resources_zu.xtb b/chrome/app/resources/generated_resources_zu.xtb
+index b56ac630b7ab..65e9fa24ccf3 100644
+--- a/chrome/app/resources/generated_resources_zu.xtb
++++ b/chrome/app/resources/generated_resources_zu.xtb
+@@ -3700,7 +3700,7 @@ I-<ph name="DOMAIN" /> idinga ukuba ugcine ikhadi lakho elimsathi lifakiwe.</tra
+ <translation id="4559617833001311418">Leli sayithi lifinyelela kuzinzwa zakho zokunyakaza noma zokukhanya.</translation>
+ <translation id="4561893854334016293">Azikho izimvume ezishintshwe kamuva</translation>
+ <translation id="4562155214028662640">Engeza izigxivizo zeminwe</translation>
+-<translation id="4563210852471260509">Ulimi lokufaka lasekuqaleni isi-Chinese</translation>
++<translation id="4563210852471260509">Ulimi lokufaka lasekuqaleni Chinese</translation>
+ <translation id="4563880231729913339">Umunwe 3</translation>
+ <translation id="4564245002465020751">Qedela ukusetha efonini yakho</translation>
+ <translation id="4565377596337484307">Fihla iphasiwedi</translation>
+@@ -7564,7 +7564,7 @@ Gcina ifayela lakho elingukhiye endaweni evikelekile. Uzolidinga ukuze udale izi
+ <translation id="8418445294933751433">Bonisa njengethebhu</translation>
+ <translation id="8419098111404128271">Imiphumela yosesho ye-'<ph name="SEARCH_TEXT" />'</translation>
+ <translation id="8420308167132684745">Hlela okufakwa kusichazamazwi</translation>
+-<translation id="8421361468937925547">Okushuthwe Bukhoma (I-English kuphela)</translation>
++<translation id="8421361468937925547">Okushuthwe Bukhoma (English kuphela)</translation>
+ <translation id="8422787418163030046">Ithreyi alikho</translation>
+ <translation id="8424250197845498070">Ivinjwe Ukuvikela Okuthuthukile</translation>
+ <translation id="8425213833346101688">Guqula</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+index 3a8d37507b34..5ae3d51061a1 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_ml.xtb
+@@ -904,7 +904,7 @@
+ സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് ട്രയലുകൾ ഇപ്പോഴും സജീവ വികസന ഘട്ടത്തിലാണ്, തിരഞ്ഞെടുത്ത പ്രദേശങ്ങളിൽ അത് ലഭ്യമാണ്. ഇപ്പോഴത്തേക്ക്, മൂന്നാം കക്ഷി കുക്കികൾ പോലുള്ള നിലവിലെ വെബ് സാങ്കേതിക വിദ്യകൾ ഉപയോഗിക്കുന്നത് തുടരുന്നതിനൊപ്പം സൈറ്റുകൾക്ക് സ്വകാര്യതാ സാൻഡ്‌ബോക്‌സ് പരീക്ഷിക്കാവുന്നതാണ്.</translation>
+ <translation id="6039379616847168523">അടുത്ത ടാബിലേക്ക് പോകുക</translation>
+ <translation id="6040143037577758943">അടയ്ക്കുക</translation>
+-<translation id="604124094241169006">സ്വപ്രേരിതം</translation>
++<translation id="604124094241169006">സ്വയമേവ</translation>
+ <translation id="6042308850641462728">കൂടുതൽ</translation>
+ <translation id="604996488070107836">ഒരു അജ്ഞാതമായ പിശക് കാരണം <ph name="FILE_NAME" /> ഡൗൺലോഡ് ചെയ്യാനായില്ല.</translation>
+ <translation id="605721222689873409">YY</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+index 0c3702ce921c..29714f8bb56e 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_uk.xtb
+@@ -568,7 +568,7 @@
+ <translation id="4137746084635924146">Поточна мова пристрою</translation>
+ <translation id="4141536112466364990">Ознайомтеся з Chrome</translation>
+ <translation id="4162867837470729563">Список параметрів спільного доступу відкрито на всю висоту.</translation>
+-<translation id="4165986682804962316">Налаштування сайту</translation>
++<translation id="4165986682804962316">Налаштування сайтів</translation>
+ <translation id="4170011742729630528">Служба не доступна. Повторіть спробу пізніше.</translation>
+ <translation id="4181841719683918333">Мови</translation>
+ <translation id="4195643157523330669">Відкрити в новій вкладці</translation>
+diff --git a/chromeos/strings/chromeos_strings_ml.xtb b/chromeos/strings/chromeos_strings_ml.xtb
+index 8c796fdfd303..f91c5b11ebb5 100644
+--- a/chromeos/strings/chromeos_strings_ml.xtb
++++ b/chromeos/strings/chromeos_strings_ml.xtb
+@@ -449,7 +449,7 @@
+ <translation id="6037291330010597344">സ്‌കാനറിന്റെ ഡോക്യുമെന്റ് ഫീഡർ ശൂന്യമാണ്. ഡോക്യുമെന്റുകൾ ചേർത്ത് വീണ്ടും ശ്രമിക്കുക.</translation>
+ <translation id="6040143037577758943">അടയ്ക്കുക</translation>
+ <translation id="6040852767465482106">അജ്ഞാത ഐഡന്‍റിറ്റി</translation>
+-<translation id="604124094241169006">സ്വപ്രേരിതം</translation>
++<translation id="604124094241169006">സ്വയമേവ</translation>
+ <translation id="6048107060512778456">പ്രിന്റ് ചെയ്യാനായില്ല - പേപ്പർ ജാമായിരിക്കുന്നു</translation>
+ <translation id="6050189528197190982">ഗ്രേസ്‌കെയിൽ</translation>
+ <translation id="6058625436358447366">പൂർത്തിയാക്കാൻ നിങ്ങളുടെ പഴയ പാസ്‌വേഡും പുതിയ പാസ്‌വേഡും നൽകുക</translation>
+diff --git a/chromeos/strings/chromeos_strings_te.xtb b/chromeos/strings/chromeos_strings_te.xtb
+index 590de1511a1c..49ee3f34cf34 100644
+--- a/chromeos/strings/chromeos_strings_te.xtb
++++ b/chromeos/strings/chromeos_strings_te.xtb
+@@ -263,7 +263,7 @@
+ <translation id="4131410914670010031">నలుపు మరియు తెలుపు</translation>
+ <translation id="4140251671072434548">RMA సర్వర్‌ను అన్‌లాక్ చేయండి</translation>
+ <translation id="4145784616224233563">HTTP ఫైర్‌వాల్</translation>
+-<translation id="4147897805161313378">Google ఫోటోలు</translation>
++<translation id="4147897805161313378">Google Photos</translation>
+ <translation id="4155551848414053977">స్కానర్ ఆన్ చేయబడి ఉందని, అలాగే నెట్‌వర్క్ లేదా ప్రత్యక్ష కనెక్షన్ ద్వారా అందుబాటులో ఉందని నిర్ధారించుకోండి</translation>
+ <translation id="4170180284036919717">ఫోటో తీయండి</translation>
+ <translation id="4170700058716978431">విఫలమైంది</translation>
+@@ -498,7 +498,7 @@
+ <translation id="6480327114083866287"><ph name="MANAGER" /> ద్వారా మేనేజ్ చేయబడుతోంది</translation>
+ <translation id="649050271426829538">ఆగిపోయింది - కాగితం జామ్ అయింది</translation>
+ <translation id="6500818810472529210">Google Searchలో ఫలితాన్ని చూడండి</translation>
+-<translation id="650266656685499220">ఆల్బమ్‌లను క్రియేట్ చేయడానికి, 'Google ఫోటోలు'కు వెళ్లండి</translation>
++<translation id="650266656685499220">ఆల్బమ్‌లను క్రియేట్ చేయడానికి, 'Google Photos'కు వెళ్లండి</translation>
+ <translation id="6516990319416533844">బ్యాటరీ ఛార్జ్ అయ్యే రేట్‌ను పరీక్షించడానికి, కొంత వ్యవధి పాటు మీ బ్యాటరీని తగ్గనివ్వండి</translation>
+ <translation id="6517239166834772319">అన్వేషణ</translation>
+ <translation id="6527081081771465939">తెలియని WiFi భద్రతా ప్రోటోకాల్</translation>
+diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
+index 9686c58a9344..602bf901bd4c 100644
+--- a/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
++++ b/components/browser_ui/strings/android/translations/browser_ui_strings_uk.xtb
+@@ -126,7 +126,7 @@
+ <translation id="4008040567710660924">Дозволити файли cookie для конкретного сайту.</translation>
+ <translation id="4046123991198612571">Наступна композиція</translation>
+ <translation id="4149994727733219643">Спрощений перегляд веб-сторінок</translation>
+-<translation id="4165986682804962316">Налаштування сайту</translation>
++<translation id="4165986682804962316">Налаштування сайтів</translation>
+ <translation id="4194328954146351878">Запитувати, перш ніж дозволяти сайтам переглядати й змінювати інформацію на пристроях NFC (рекомендовано)</translation>
+ <translation id="4200726100658658164">Відкрити налаштування доступу до моїх геоданих</translation>
+ <translation id="4226663524361240545">Коли надходитимуть сповіщення, пристрій може вібрувати</translation>
+diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
+index a619ef148117..7b7f783cf635 100644
+--- a/components/strings/components_strings_uk.xtb
++++ b/components/strings/components_strings_uk.xtb
+@@ -1155,7 +1155,7 @@
+ <translation id="4152318981910038897">{COUNT,plural, =1{Сторінка 1}one{Сторінка {COUNT}}few{Сторінка {COUNT}}many{Сторінка {COUNT}}other{Сторінка {COUNT}}}</translation>
+ <translation id="4154664944169082762">Відбитки</translation>
+ <translation id="4159784952369912983">Пурпуровий</translation>
+-<translation id="4165986682804962316">Налаштування сайту</translation>
++<translation id="4165986682804962316">Налаштування сайтів</translation>
+ <translation id="4171400957073367226">Недійсний підпис для підтвердження</translation>
+ <translation id="4171489848299289778"><ph name="RESULT_MODIFIED_DATE" /> – <ph name="RESULT_OWNER" />, <ph name="RESULT_PRODUCT_SOURCE" /></translation>
+ <translation id="4172051516777682613">Завжди показувати</translation>
+diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
+index f540914060f7..81baebec6ab4 100644
+--- a/components/strings/components_strings_zu.xtb
++++ b/components/strings/components_strings_zu.xtb
+@@ -837,7 +837,7 @@ Lokhu uma kungenjalo kuzovinjelwa izilungiselelo zakho zobumfihlo. Lokhu kuzovum
+ <translation id="3249151924975132674">Izimali mboleko zabafundi kanye nezimali zasekolishi</translation>
+ <translation id="3249845759089040423">I-Groovy</translation>
+ <translation id="3250640885957938546">Ukukhangisa nokumaketha</translation>
+-<translation id="3252266817569339921">Isi-French</translation>
++<translation id="3252266817569339921">French</translation>
+ <translation id="3256863843508922226">Ukuyeka emsebenzini nepenshini</translation>
+ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, cindezela u-Tab bese u-Enter ukuze udale umcimbi omusha ngokushesha ku-Google Calendar</translation>
+ <translation id="3261488570342242926">Funda mayelana namakhadi we-virtual</translation>
+@@ -1636,7 +1636,7 @@ Lokhu uma kungenjalo kuzovinjelwa izilungiselelo zakho zobumfihlo. Lokhu kuzovum
+ <translation id="541416427766103491">Isitaki esingu-4</translation>
+ <translation id="5421136146218899937">Sula idatha yokudlulisa amehlo...</translation>
+ <translation id="5426179911063097041">I-<ph name="SITE" /> ifuna ukukuthumelela izaziso</translation>
+-<translation id="5428105026674456456">Isi-Spanish</translation>
++<translation id="5428105026674456456">Spanish</translation>
+ <translation id="5430298929874300616">Susa ibhukhimakhi</translation>
+ <translation id="5439770059721715174">Iphutha lokuqinisekisa i-schema ku-"<ph name="ERROR_PATH" />": <ph name="ERROR" /></translation>
+ <translation id="5443468954631487277">I-oda elingemuva libheke phezulu</translation>
+@@ -2655,7 +2655,7 @@ Imininingwane engeziwe:
+ <translation id="8294431847097064396">Umthombo</translation>
+ <translation id="8296205692406981542">Izifunda zamaphakhi nezingadi</translation>
+ <translation id="8298115750975731693">I-Wi-Fi oyisebenzisayo (<ph name="WIFI_NAME" />) ingakudinga ukuthi uvakashele ku-<ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
+-<translation id="8299269255470343364">Isi-Japanese</translation>
++<translation id="8299269255470343364">Japanese</translation>
+ <translation id="8303854710873047864">Isigaba se-"<ph name="SECTION" />" esibonisiwe</translation>
+ <translation id="830498451218851433">Goqa ngohafu</translation>
+ <translation id="8307358339886459768">Isithombe esincane</translation>
+@@ -2752,7 +2752,7 @@ Imininingwane engeziwe:
+ <translation id="8625384913736129811">Londoloza leli khadi kule divayisi</translation>
+ <translation id="865032292777205197">izinzwa zokunyakaza</translation>
+ <translation id="8663226718884576429">Isifinyezo se-oda, <ph name="TOTAL_LABEL" />, Imininingwane eminingi</translation>
+-<translation id="8666678546361132282">I-English</translation>
++<translation id="8666678546361132282">English</translation>
+ <translation id="8669306706049782872">Sebenzisa ulwazi olumayelana nezikrini zakho ukuze uvule futhi ubeke amawindi</translation>
+ <translation id="867224526087042813">Isiginesha</translation>
+ <translation id="8672264262457010862">Amabhizinisi nomkhakha</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+index 1f1ddb2eb0b1..474eda5c24ca 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+@@ -10,8 +10,8 @@
+ <translation id="1119069657431255176">Ingobo yomlando yotiyela wokuminyanisa i-Bzip2</translation>
+ <translation id="1119447706177454957">Iphutha langaphakathi</translation>
+ <translation id="1120073797882051782">I-Hangul Romaja</translation>
+-<translation id="112387589102719461">I-English (US) enekhibhodi yomhleli we-Dvorak</translation>
+-<translation id="1134697384939541955">I-English (US) enekhibhodi enwetshiwe</translation>
++<translation id="112387589102719461">English (US) enekhibhodi yomhleli we-Dvorak</translation>
++<translation id="1134697384939541955">English (US) enekhibhodi enwetshiwe</translation>
+ <translation id="1148097584170732637"><ph name="FILE_COUNT" /> itholakele.
+     <ph name="LINE_BREAK1" />
+     Asikho isikhala esanele esitholakalayo kusitoreji sendawo. U-<ph name="FILE_SIZE" /> ngaphezulu uyadingeka.
+@@ -51,7 +51,7 @@
+ <translation id="1383876407941801731">Sesha</translation>
+ <translation id="1395262318152388157">Funa isilayida</translation>
+ <translation id="1399511500114202393">Asikho isitifiketi somsebenzisi</translation>
+-<translation id="1404323374378969387">Isi-Norwegian</translation>
++<translation id="1404323374378969387">Norwegian</translation>
+ <translation id="1433628812591023318">Ukuze udedele amafayela ku-Parallels Desktop, ifayela kufanele lihanjiswe kumafayela e-Windows.</translation>
+ <translation id="1435838927755162558">Yabelana ngefolda ne-Parallels Desktop</translation>
+ <translation id="1439919885608649279">Umuntu onezimbali</translation>
+@@ -60,7 +60,7 @@
+ <translation id="1482884275703521657">Isi-Finnish</translation>
+ <translation id="148466539719134488">I-Swiss</translation>
+ <translation id="1497522201463361063">Ayikwazi ukuqamba kabusha i-"<ph name="FILE_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
+-<translation id="1499943022354839699">I-English (US) enekhibhodi ye-Dvorak</translation>
++<translation id="1499943022354839699">English (US) enekhibhodi ye-Dvorak</translation>
+ <translation id="1515909359182093592"><ph name="INPUT_LABEL" /> - Umsingathi</translation>
+ <translation id="1521655867290435174">Amashidi we-Google</translation>
+ <translation id="1538729222189715449">Ivula amafayela e-Linux...</translation>
+@@ -74,7 +74,7 @@
+ <translation id="1620510694547887537">Ikhamela</translation>
+ <translation id="162175252992296058">Isi-Portuguese nge-US International keyboard</translation>
+ <translation id="1629521517399325891">Isitifiketi somsebenzisi asitholakali ukufakazela ubuqiniso inethiwekhi.</translation>
+-<translation id="1641780993263690097">Isi-Chinese Pinyin</translation>
++<translation id="1641780993263690097">Chinese Pinyin</translation>
+ <translation id="1646019627374511909">Yenza amafayela angu-<ph name="NUMBER_OF_ITEMS" /> atholakale ngokungaxhunyiwe kwi-inthanethi</translation>
+ <translation id="164969095109328410">Idivivayisi ye-Chrome</translation>
+ <translation id="1661867754829461514">Iphinikhodi ayikho</translation>
+@@ -88,7 +88,7 @@
+ <translation id="1722687688096767818">Ingeza Iphrofayela...</translation>
+ <translation id="1726100011689679555">Amagama wamasevisi</translation>
+ <translation id="1729953886957086472">Isi-German (Germany)</translation>
+-<translation id="1730235522912993863">Isi-Chinese Cangjie</translation>
++<translation id="1730235522912993863">Chinese Cangjie</translation>
+ <translation id="1731889557567069540">izinto ezingu-<ph name="NUMBER_OF_ITEMS" /> zikopishiwe.</translation>
+ <translation id="174173592514158117">Bonisa onke amafolda e-Google Play</translation>
+ <translation id="1742316578210444689">Ukugugulwa kwamaletha kwesi-Hebrew</translation>
+@@ -121,7 +121,7 @@
+ <translation id="1995337122023280937">Iya endaweni yefayela</translation>
+ <translation id="2001796770603320721">Phatha kuDrayivu</translation>
+ <translation id="2009067268969781306">Ukufometha idrayivu kuzosula yonke idatha elondolozwe kuyo. Lesi senzo asikwazi ukuhlehliswa.</translation>
+-<translation id="2025955442973426285">Isi-Tigrinya</translation>
++<translation id="2025955442973426285">Tigrinya</translation>
+ <translation id="2028997212275086731">Ingobo yomlando ye-RAR</translation>
+ <translation id="2036414735548252477">Ingobo yomlando yotiyela eminyanisiwe ye-LZMA</translation>
+ <translation id="2037845485764049925">Isi-Russian</translation>
+@@ -143,7 +143,7 @@
+ <translation id="2184934335987813305">Isi-Portuguese nge-US International PC keyboard</translation>
+ <translation id="2198315389084035571">isi-Sipmlified Chinese</translation>
+ <translation id="2208158072373999562">Ingobo yomlando yeziphu</translation>
+-<translation id="22085916256174561">Isi-Korean</translation>
++<translation id="22085916256174561">Korean</translation>
+ <translation id="2208919847696382164">Faka nge-Linux</translation>
+ <translation id="2225536596944493418">Ingabe ufuna ukususa izinto ze-<ph name="NUMBER_OF_ITEMS" />?</translation>
+ <translation id="2230062665678605299">Ayikwazi ukudala ifolda le-"<ph name="FOLDER_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
+@@ -158,7 +158,7 @@
+ <translation id="2305020378527873881"><ph name="VOLUME_NAME" /> ikhishiwe.</translation>
+ <translation id="2307462900900812319">Lungiselela inethiwekhi</translation>
+ <translation id="2325650632570794183">Uhlobo lwefayela alusekelwe. Sicela uvakashele isitolo sewebhu se-Chrome ukuze uthole uhlelo lokusebenza olungavula lolu hlobo lwefayela.</translation>
+-<translation id="2326539130272988168">Isi-Bulgaria</translation>
++<translation id="2326539130272988168">Bulgarian</translation>
+ <translation id="2352947182261340447">Asikho isikhala esanele kusitoreji sendawo.</translation>
+ <translation id="23721837607121582">Landa iphroayela yeselula, Inethiwekhi engu-<ph name="NETWORK_INDEX" /> kwezingu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" /></translation>
+ <translation id="2377319039870049694">Shintshela ekubukeni kohlu</translation>
+@@ -203,7 +203,7 @@
+ <translation id="2676946222714718093">Idlala ku</translation>
+ <translation id="2718540689505416944">Faka uhlelo lokusebenza nge-Linux</translation>
+ <translation id="2719020180254996569">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, imininingwane</translation>
+-<translation id="2724954091494693138">Isi-Turkish esinekhibhodi ye-F</translation>
++<translation id="2724954091494693138">Turkish esinekhibhodi ye-F</translation>
+ <translation id="2732839045120506979">I-Vietnamese VNI</translation>
+ <translation id="2735623501230989521">Nikeza i-Parallels Desktop imvume yokufinyelela amafayela kufolda ye-<ph name="FOLDER_NAME" /></translation>
+ <translation id="2771816809568414714">Ushizi</translation>
+@@ -220,22 +220,22 @@
+ <translation id="2888807692577297075">Azikho izinto ezifana ne-&lt;b&gt;"<ph name="SEARCH_STRING" />"&lt;/b&gt;</translation>
+ <translation id="2894654529758326923">Ulwazi</translation>
+ <translation id="2902734494705624966">Inwetshwelwe i-US</translation>
+-<translation id="290843123675549676">Isi-Marathi</translation>
++<translation id="290843123675549676">Marathi</translation>
+ <translation id="2923240520113693977">Isi-Estonian</translation>
+-<translation id="2938685643439809023">Isi-Mongolian</translation>
++<translation id="2938685643439809023">Mongolian</translation>
+ <translation id="2943503720238418293">Sebenzisa igama elifushane</translation>
+ <translation id="2949781154072577687">Ifometha i-<ph name="DRIVE_NAME" />...</translation>
+ <translation id="2951236788251446349">I-Jellyfish</translation>
+ <translation id="2984337792991268709">Namhlanje ngo-<ph name="TODAY_DAYTIME" /></translation>
+ <translation id="2994320653639462337">Ibuyisela izinto ezingu-<ph name="COUNT" />...</translation>
+ <translation id="2994669386200004489">Ayikwazanga ukwenza isipele i-<ph name="FILE_NAME" /></translation>
+-<translation id="299638574917407533">Isi-French (Canada)</translation>
++<translation id="299638574917407533">French (Canada)</translation>
+ <translation id="3003189754374775221">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, Xhuma</translation>
+ <translation id="3003633581067744647">Shintshela ekubukeni kwesithonjana</translation>
+ <translation id="3016566519832145558">Isexwayiso: Lamafayela awesikhashana futhi angase asuswe ngokuzenzekelayo ukukhulula isikhala sediski.</translation>
+ <translation id="3029114385395636667">Nika amandla i-Google Amadokhumenti angaxhumekile ku-inthanethi ukwenza Amadokhumenti, AmaSpredishithi namaSlayidi kutholakale ngokungaxhunyiwe kwi-inthanethi.</translation>
+ <translation id="303198083543495566">Ukuma komhlaba</translation>
+-<translation id="3047197340186497470">Isi-Chinese Dayi</translation>
++<translation id="3047197340186497470">Chinese Dayi</translation>
+ <translation id="3057861065630527966">Yenza isipele izithombe zakho namavidiyo</translation>
+ <translation id="3067790092342515856">Amafayela e-Windows</translation>
+ <translation id="3078461028045006476">Yabelana nge-<ph name="EXTENSION_NAME" /></translation>
+@@ -254,13 +254,13 @@
+ <translation id="3205852408225871810">Isi-Portuguese (Brazil)</translation>
+ <translation id="3224239078034945833">Izilimi eziningi ze-Canadian</translation>
+ <translation id="3236289833370040187">Ubunikazi buzodluliselwa ku-<ph name="DESTINATION_DOMAIN" />.</translation>
+-<translation id="3241720467332021590">Isi-Irish</translation>
++<translation id="3241720467332021590">Irish</translation>
+ <translation id="3245321423178950146">Umculi ongaziwa</translation>
+ <translation id="3248185426436836442">Ilindile</translation>
+-<translation id="3252266817569339921">Isi-French</translation>
++<translation id="3252266817569339921">French</translation>
+ <translation id="3253225298092156258">Ayitholakali</translation>
+ <translation id="3254434849914415189">Khetha uhlelo lokusebenza oluzenzakalelayo lwamafayela we-<ph name="FILE_TYPE" />:</translation>
+-<translation id="3255159654094949700">Isi-Arabic</translation>
++<translation id="3255159654094949700">Arabic</translation>
+ <translation id="3264582393905923483">Okuqukethwe</translation>
+ <translation id="3272909651715601089">Ayikwazanga ukuvula i-"<ph name="PATH" />"</translation>
+ <translation id="3280431534455935878">Iyalungiselela</translation>
+@@ -268,15 +268,15 @@
+ <translation id="3290356915286466215">Okungaphephanga</translation>
+ <translation id="3291218047831493686">Xhuma kule nethiwekhi ukuze ushintshe amasethingi wokukhiya i-SIM</translation>
+ <translation id="3295357220137379386">Idivayisi imatasa</translation>
+-<translation id="3296763833017966289">Isi-Georgian</translation>
+-<translation id="3307875152560779385">Isi-Ukrain</translation>
++<translation id="3296763833017966289">Georgian</translation>
++<translation id="3307875152560779385">Ukrainian</translation>
+ <translation id="3326821416087822643">Izipha i-<ph name="FILE_NAME" />...</translation>
+ <translation id="3335337277364016868">Unyaka okurekhodwe ngawo</translation>
+ <translation id="3353984535370177728">Khetha ifolda okumele uyilayishe</translation>
+ <translation id="3356580349448036450">Qedile</translation>
+ <translation id="3358452157379365236">Isiginci</translation>
+ <translation id="3368922792935385530">Ixhunyiwe</translation>
+-<translation id="3382143449143186018">Isi-Nepali ngekhibhodi ye-InScript</translation>
++<translation id="3382143449143186018">Nepali ngekhibhodi ye-InScript</translation>
+ <translation id="338691029516748599">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, xhuma</translation>
+ <translation id="3408072735282270043">Yenza kusebenze, i-<ph name="NETWORK_NAME" /></translation>
+ <translation id="3408236822532681288">Isi-German (Germany) esinekhibhodi ye-Neo 2</translation>
+@@ -288,7 +288,7 @@
+ <translation id="3468522857997926824"><ph name="FILE_COUNT" /> izithombe zenziwe isipele ku-<ph name="BEGIN_LINK" />Google Drayivu<ph name="END_LINK" /></translation>
+ <translation id="3475447146579922140">Isipredishithi se-Google</translation>
+ <translation id="3479552764303398839">Hhayi manje</translation>
+-<translation id="3486821258960016770">Isi-Mongolian</translation>
++<translation id="3486821258960016770">Mongolian</translation>
+ <translation id="3495304270784461826"><ph name="COUNT" /> amaphutha.</translation>
+ <translation id="3509680540198371098">Inethiwkehi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, imininingwane</translation>
+ <translation id="3522708245912499433">Isi-Portuguese</translation>
+@@ -296,9 +296,9 @@
+ <translation id="3527085408025491307">Ifolda</translation>
+ <translation id="3549797760399244642">Hamba ku-drive.google.com...</translation>
+ <translation id="3553048479571901246">Ukuze uvule amafayela nge-<ph name="APP_NAME" />, kukopishe kuqala kufolda lamafayela we-Windows.</translation>
+-<translation id="3556731189587832921">I-English (US) enekhibhodi yamazwe ngamazwe ye-PC</translation>
++<translation id="3556731189587832921">English (US) enekhibhodi yamazwe ngamazwe ye-PC</translation>
+ <translation id="3567221313191587603">Khetha ifayela, bese uguqula ukuvula i-<ph name="OFFLINE_CHECKBOX_NAME" /> yokufinyelela ungaxhunyiwe ku-inthanethi</translation>
+-<translation id="357479282490346887">Isi-Lithuanian</translation>
++<translation id="357479282490346887">Lithuanian</translation>
+ <translation id="3587482841069643663">Konke</translation>
+ <translation id="3592251141500063301">Ayikwazanga ukwenza i-<ph name="FILE_NAME" /> itholakale ngokungaxhunyiwe kwi-inthanethi</translation>
+ <translation id="3601151620448429694"><ph name="NETWORK_NAME" /> · <ph name="CARRIER_NAME" /></translation>
+@@ -337,7 +337,7 @@
+ <translation id="3858860766373142691">Igama</translation>
+ <translation id="386548886866354912">Pakisha nge-<ph name="EXTENSION_NAME" /></translation>
+ <translation id="3866249974567520381">Incazelo</translation>
+-<translation id="3899991606604168269">Isi-French (Canada) esinekhibhodi Yezilimi eziningi</translation>
++<translation id="3899991606604168269">French (Canada) esinekhibhodi Yezilimi eziningi</translation>
+ <translation id="3901991538546252627">Ixhumeka ku-<ph name="NAME" /></translation>
+ <translation id="3906232975181435906">Ifaka iphrofayela leselula, Inethiwekhi engu-<ph name="NETWORK_INDEX" /> kwangu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" /></translation>
+ <translation id="3924145049010392604">I-Meta</translation>
+@@ -347,21 +347,21 @@
+ <translation id="3958548648197196644">I-Kiwi</translation>
+ <translation id="3966388904776714213">Isidlali somsindo</translation>
+ <translation id="3971140002794351170">Landa iphrofayela yeselula, Inethiwekhi engu-<ph name="NETWORK_INDEX" /> kwezingu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
+-<translation id="3973925058222872294">I-English (UK)</translation>
++<translation id="3973925058222872294">English (UK)</translation>
+ <translation id="3975895378829046965">I-Bangla Phonetic</translation>
+ <translation id="4002066346123236978">Isihloko</translation>
+-<translation id="4017788180641807848">I-English (US) enekhibhodi ye-Workman</translation>
++<translation id="4017788180641807848">English (US) enekhibhodi ye-Workman</translation>
+ <translation id="4040753847560036377">I-PUK engalungile</translation>
+ <translation id="4057991113334098539">Yenza kusebenze...</translation>
+-<translation id="4092890906744441904">Isi-Irish</translation>
++<translation id="4092890906744441904">Irish</translation>
+ <translation id="4124935795427217608">I-Unicorn</translation>
+ <translation id="4158739975813877944">Vula uhlu lwadlalayo</translation>
+ <translation id="4159731583141908892">kuhanjiswe okungu-<ph name="FILE_NAME" />.</translation>
+ <translation id="4186579485882418952">Nika Amandla Ungaxhumekile Ku-inthanethi</translation>
+ <translation id="4193154014135846272">I-Google dokhumenti</translation>
+ <translation id="4197674956721858839">Ukukhethwa kweziphu</translation>
+-<translation id="4202378258276439759">Isi-Spanish (Latin America)</translation>
+-<translation id="4202977638116331303">Isi-Georgian</translation>
++<translation id="4202378258276439759">Spanish (Latin America)</translation>
++<translation id="4202977638116331303">Georgian</translation>
+ <translation id="421017592316736757">Kumele ube ku-inthanethi ukuze ufinyelele kule fayela.</translation>
+ <translation id="4212740939091998969">Ifolda enegama "<ph name="FOLDER_NAME" />" isivele ikhona. Sicela ukhethe igama elihlukile.</translation>
+ <translation id="4215448920900139318">Yenza isipele <ph name="FILE_COUNT" /></translation>
+@@ -373,7 +373,7 @@
+ <translation id="4302605047395093221">Noma ubani osebenzisa le divayisi kuzodingeka afake Iphinikhodi ukuze axhumeke kule nethiwekhi yeselula</translation>
+ <translation id="4309915981827077375">Ulwazi oluvamile</translation>
+ <translation id="432252891123397018">Isi-Romanian esinekhibhodi Evamile</translation>
+-<translation id="4325128273762811722">Isi-Slovenian</translation>
++<translation id="4325128273762811722">Slovenian</translation>
+ <translation id="4326142238881453352">Ingcweti yezitshalo</translation>
+ <translation id="4326192123064055915">Ikhofi</translation>
+ <translation id="4336032328163998280">Ukusebenza kwekhophi kuhlulekile. <ph name="ERROR_MESSAGE" /></translation>
+@@ -397,7 +397,7 @@
+ <translation id="4477002475007461989">Isi-Romanian</translation>
+ <translation id="4477219268485577442">Ifonethikhi yesi-Bulgarian</translation>
+ <translation id="4508265954913339219">Ukwenza kusebenze kuhlulekile</translation>
+-<translation id="4509667233588080747">I-English (US) enekhibhodi yamazwe ngamazwe ye-Workman</translation>
++<translation id="4509667233588080747">English (US) enekhibhodi yamazwe ngamazwe ye-Workman</translation>
+ <translation id="4522570452068850558">Imininingwane</translation>
+ <translation id="4527800702232535228">Le folda yabiwa Nedeskithophu ye-Parallels</translation>
+ <translation id="4552678318981539154">Thenga isitoreji esiningi</translation>
+@@ -421,17 +421,17 @@
+ <translation id="4690246192099372265">Isi-Swedish</translation>
+ <translation id="4693155481716051732">I-Sushi</translation>
+ <translation id="4694604912444486114">Inkawu</translation>
+-<translation id="469612310041132144">Isi-Chinese Esisheshayo</translation>
++<translation id="469612310041132144">Chinese Esisheshayo</translation>
+ <translation id="4697043402264950621">Uhlu lwefayela luhlungwe nge-<ph name="COLUMN_NAME" /> nge-oda elikhuphukayo.</translation>
+ <translation id="4706042980341760088">Isi-Tamil esinekhibhodi ye-Typewriter</translation>
+-<translation id="4711094779914110278">Isi-Turkish</translation>
++<translation id="4711094779914110278">Turkish</translation>
+ <translation id="4712283082407695269">Ivula i-"<ph name="PATH" />"</translation>
+ <translation id="4720185134442950733">Inethiwekhi yedatha yeselula</translation>
+ <translation id="4724850507808590449"><ph name="FILE_COUNT" /> izithombe ezenziwe isipele</translation>
+ <translation id="4725511304875193254">I-Corgi</translation>
+ <translation id="4732760563705710320">Uxolo, le vidiyo ayisekelwe yidivayisi yakho yokusakaza.</translation>
+ <translation id="4737050008115666127">Ukufika</translation>
+-<translation id="4747271164117300400">Isi-Macedonian</translation>
++<translation id="4747271164117300400"> Macedonian</translation>
+ <translation id="4759238208242260848">Ukulanda</translation>
+ <translation id="4779041693283480986">Isi-Portuguese (Portugal)</translation>
+ <translation id="4779136857077979611">I-Onigiri</translation>
+@@ -461,7 +461,7 @@
+ <translation id="4969785127455456148">Albhamu</translation>
+ <translation id="4973523518332075481">Sebenzisa igama elinezinhlamvu ezingu-<ph name="MAX_LENGTH" /> noma ngaphansi</translation>
+ <translation id="4973970068702235170">Ukuzipha kwehlulekile, iphutha elingalindelekile livelile: <ph name="ERROR_MESSAGE" /></translation>
+-<translation id="4984616446166309645">Isi-Japanese</translation>
++<translation id="4984616446166309645">Japanese</translation>
+ <translation id="4988205478593450158">Ingabe uqinisekile ukuthi ufuna ukususa i-"<ph name="FILE_NAME" />"?</translation>
+ <translation id="498902553138568924">Uvemvame obomvu</translation>
+ <translation id="4992066212339426712">Susa ukuthula</translation>
+@@ -471,7 +471,7 @@
+ <translation id="5024856940085636730">Umsebenzi uthatha isikhathi eside kunokulindelekile. Ingabe ufuna ukuwukhansela?</translation>
+ <translation id="5036159836254554629">Phatha ukwabelana ne-Parallels Desktop</translation>
+ <translation id="5038625366300922036">Bona okuningi...</translation>
+-<translation id="5044852990838351217">Isi-Armenian</translation>
++<translation id="5044852990838351217">Armenian</translation>
+ <translation id="5045550434625856497">Iphasiwedi engalungile</translation>
+ <translation id="5059127710849015030">Ukuguqulwa kwamaletha esi-Nepali</translation>
+ <translation id="5068919226082848014">I-Pizza</translation>
+@@ -480,7 +480,7 @@
+ <translation id="509429900233858213">Kuvele iphutha.</translation>
+ <translation id="5098629044894065541">Isi-Hebrew</translation>
+ <translation id="5109254780565519649">Kuvele iphutha. Ezinye zezinto kungenzeka azibuyiselwanga.</translation>
+-<translation id="5110329002213341433">I-English (Canada)</translation>
++<translation id="5110329002213341433">English (Canada)</translation>
+ <translation id="5123433949759960244">I-Basketball</translation>
+ <translation id="5129662217315786329">Isi-Polish</translation>
+ <translation id="5144820558584035333">Isethi ye-Hangul 3 (390)</translation>
+@@ -524,16 +524,16 @@
+ <translation id="5411472733320185105">Ungasebenzisi izilungiselelo zommeleli zalaba basingathi nezizinda:</translation>
+ <translation id="541890217011173530">Isi-Sorani Kurdish esinekhibhodi esekelwe ku-English</translation>
+ <translation id="5422221874247253874">Iphoyinti lokufinyelela</translation>
+-<translation id="5428105026674456456">Isi-Spanish</translation>
++<translation id="5428105026674456456">Spanish</translation>
+ <translation id="5438282218546237410">Ayikho imiphumela ye-<ph name="SEARCH_TERM" />.</translation>
+ <translation id="5449551289610225147">Iphasiwedi engavumelekile</translation>
+ <translation id="5463231940765244860">Faka</translation>
+ <translation id="5469868506864199649">Isi-Italian</translation>
+ <translation id="5473333559083690127">Phinda ufake iphinikhodi entsha</translation>
+-<translation id="5489067830765222292">Isi-Latvian</translation>
++<translation id="5489067830765222292">Latvian</translation>
+ <translation id="5489965683297092283">Isihlungi esithi <ph name="FILTER_NAME" /> sivaliwe.</translation>
+ <translation id="5494920125229734069">Khetha konke</translation>
+-<translation id="5500122897333236901">Isi-Icelandic</translation>
++<translation id="5500122897333236901">Icelandic</translation>
+ <translation id="5508696409934741614">Amachashazi</translation>
+ <translation id="5522908512596376669">Uhlu lwefayela lushintshele kuhlu lokubuka.</translation>
+ <translation id="5524517123096967210">Ifayela alikwazanga ukufundwa.</translation>
+@@ -564,11 +564,11 @@
+ <translation id="5776325638577448643">Susa futhi ufomethe</translation>
+ <translation id="57838592816432529">Thulisa</translation>
+ <translation id="5788127256798019331">Amafayela e-Google Play</translation>
+-<translation id="5790193330357274855">Isi-Kazakh</translation>
++<translation id="5790193330357274855">Kazakh</translation>
+ <translation id="5804245609861364054">Ukuguqulwa kwamaletha kwesi-Kannada</translation>
+ <translation id="5814126672212206791">Uhlobo lokuxhumeka</translation>
+-<translation id="5817397429773072584">Isi-Chinese Sosiko</translation>
+-<translation id="5818003990515275822">Isi-Korean</translation>
++<translation id="5817397429773072584">Chinese Sosiko</translation>
++<translation id="5818003990515275822">Korean</translation>
+ <translation id="5819442873484330149">Isethi ye-Hangul 3 (Kokugcina)</translation>
+ <translation id="5832976493438355584">Ikhiyiwe</translation>
+ <translation id="5833610766403489739">Leli fayela selilibele kwenye indawo. Sicela uhlole ukulungiselelwa kwendawo yakho yokulanda uphinde uzame futhi.</translation>
+@@ -594,21 +594,21 @@
+ <translation id="6040143037577758943">Vala</translation>
+ <translation id="6055907707645252013">Inethiwekhi ye-<ph name="NETWORK_TYPE" /> ayixhunyiwe</translation>
+ <translation id="6074825444536523002">Ifomu le-Google</translation>
+-<translation id="6079871810119356840">Isi-Hungarian esinekhibhodi ye-Qwerty</translation>
++<translation id="6079871810119356840">Hungarian esinekhibhodi ye-Qwerty</translation>
+ <translation id="6082256976217156453">Ingobo yomlando eminyanisiwe ye-LZMA</translation>
+ <translation id="6096979789310008754">Umbhalo wosesho usuliwe, kuboniswa wonke amafaela namafolda.</translation>
+ <translation id="610101264611565198">Ihambisa i-<ph name="FILE_NAME" /> ku-<ph name="FOLDER_NAME" /></translation>
+ <translation id="61118516107968648">Umbhalo we-CSV</translation>
+ <translation id="6129953537138746214">Isikhala</translation>
+ <translation id="6133173853026656527">Ihambisa i-<ph name="FILE_NAME" />...</translation>
+-<translation id="613750717151263950">Isi-Japanese esinekhibhodi yase-US</translation>
++<translation id="613750717151263950">Japanese esinekhibhodi yase-US</translation>
+ <translation id="6138894911715675297"><ph name="NETWORK_TYPE" />, ayikho inethiwekhi</translation>
+ <translation id="6146563240635539929">Amavidiyo</translation>
+ <translation id="6150853954427645995">Ukuze ulondoloze leli fayela ukuthi ulisebenzise ngokungaxhunyiwe, buyela emuva ku-inthanethi, chofoza ngakwesokudla ifayela, bese ukhethe inketho ye-<ph name="OFFLINE_CHECKBOX_NAME" />.</translation>
+ <translation id="6164412158936057769">Izimvemvane</translation>
+ <translation id="6165508094623778733">Funda kabanzi</translation>
+ <translation id="6170470584681422115">Isemishi</translation>
+-<translation id="6187719147498869044">Isi-Hungarian</translation>
++<translation id="6187719147498869044">Hungarian</translation>
+ <translation id="6189412234224385711">Vula nge-<ph name="EXTENSION_NAME" /></translation>
+ <translation id="6198252989419008588">Guqula iphinikhodi</translation>
+ <translation id="6199801702437275229">Ilindele ulwazi lesikhala...</translation>
+@@ -620,7 +620,7 @@
+ <translation id="6241349547798190358">Isi-Dutch (Belgium)</translation>
+ <translation id="6248400709929739064">Nika amandla imibhalo engezansi</translation>
+ <translation id="6267547857941397424">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, Ibhethri lefoni <ph name="BATTERY_STATUS" />%, xhuma</translation>
+-<translation id="6269630227984243955">Isi-Malay</translation>
++<translation id="6269630227984243955">Malay</translation>
+ <translation id="6287852322318138013">Khetha uhlelo lokusebenza ukuze livule leli fayela</translation>
+ <translation id="6296410173147755564">I-PUK engavumelekile</translation>
+ <translation id="6312403991423642364">Iphutha elingaziwa lenethiwekhi</translation>
+@@ -642,7 +642,7 @@
+ <translation id="6485131920355264772">Yehlulekile ukuthola ulwazi lesikhala</translation>
+ <translation id="6495925982925244349">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, imininingwane</translation>
+ <translation id="6499681088828539489">Ungavumeli abammeleli kumanethiwekhi abiwe</translation>
+-<translation id="6509122719576673235">Isi-Norwegian</translation>
++<translation id="6509122719576673235">Norwegian</translation>
+ <translation id="6528513914570774834">Vumela abanye abasebenzisi bale divayisi ukuthi basebenzise le nethiwekhi</translation>
+ <translation id="653019979737152879">Ivumelanisa i-<ph name="FILE_NAME" />...</translation>
+ <translation id="6549689063733911810">Okwakamuva</translation>
+@@ -675,7 +675,7 @@
+ <translation id="6827236167376090743">Le vidiyo izoqhubeka idlale kuze izinkomo zibuye ekhaya.</translation>
+ <translation id="6847101934483209767">Isusiwe i-<ph name="ENTRY_NAME" /> kusuka okhethweni.</translation>
+ <translation id="6856459657722366306">Inethiwkehi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, imininingwane</translation>
+-<translation id="6861394552169064235">Isi-Persian</translation>
++<translation id="6861394552169064235">Persian</translation>
+ <translation id="6862635236584086457">Wonke amafayela alondolozwe kule folda enziwa isipele ngokuzenzakalelayo ku-inthanethi</translation>
+ <translation id="6864328437977279120">Isi-Sanskrit</translation>
+ <translation id="6874758081814639712">Umuntu owenza i-tai chi</translation>
+@@ -708,14 +708,14 @@
+ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> amafolda akhethiwe</translation>
+ <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation>
+ <translation id="7014174261166285193">Ukufakwa kuhlulekile.</translation>
+-<translation id="7031639531908619281">Isi-Turkish</translation>
++<translation id="7031639531908619281">Turkish</translation>
+ <translation id="7037472120706603960">Isi-Tamil (Ukuguqulwa kwamaletha)</translation>
+ <translation id="7040138676081995583">Vula nge...</translation>
+ <translation id="7048024426273850086">Inethiwekhi ye-<ph name="NETWORK_INDEX" /> kwangu-<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, <ph name="PROVIDER_NAME" />, Amandla Esignali <ph name="SIGNAL_STRENGTH" />%, Ibhethri Lefoni <ph name="BATTERY_STATUS" />%, Xhuma</translation>
+ <translation id="7075931588889865715">Isi-Thai esinekhibhodi ye-TIS 820-2531</translation>
+ <translation id="708278670402572152">Nqamula ukuze unike amandla ukuskena</translation>
+ <translation id="7086590977277044826">Isi-Tamil esinekhibhodi ye-InScript</translation>
+-<translation id="7103992300314999525">Isi-Macedonian</translation>
++<translation id="7103992300314999525"> Macedonian</translation>
+ <translation id="7106346894903675391">Thenga isitoreji esiningi...</translation>
+ <translation id="7126604456862387217">'&lt;b&gt;<ph name="SEARCH_STRING" />&lt;/b&gt;' - &lt;em&gt;iDrayivu yokusesha&lt;/em&gt;</translation>
+ <translation id="7135561821015524160">I-Kannada Phonetic</translation>
+@@ -754,7 +754,7 @@
+ <translation id="7495372004724182530">I-Malayalam Phonetic</translation>
+ <translation id="7505167922889582512">Bonisa amafayela afihliwe</translation>
+ <translation id="7514365320538308">Landa</translation>
+-<translation id="751507702149411736">Isi-Belarusian</translation>
++<translation id="751507702149411736">Belarusian</translation>
+ <translation id="7532029025027028521">Ukuguqulwa kwamaletha esi-Persian</translation>
+ <translation id="7544830582642184299">Nikeza i-Linux imvume yezinhlelo zokusebenza ukufinyelela amafayela ku-Google Drayivu yakho. Izinguquko zizovumelanisa kwamanye amadivayisi akho.</translation>
+ <translation id="7544853251252956727">Shova</translation>
+@@ -774,17 +774,17 @@
+ <translation id="7654209398114106148">Ihambisa izinto ezingu-<ph name="NUMBER_OF_ITEMS" />...</translation>
+ <translation id="7655441028674523381">Finyelela kalula kokuthi Izithombe ze-Google</translation>
+ <translation id="7658239707568436148">Khansela</translation>
+-<translation id="7663224033570512922">Isi-Hindi</translation>
++<translation id="7663224033570512922">Hindi</translation>
+ <translation id="7693909743393669729">Ukufometha idrayivu kuzosula yonke idatha egcinwe kuyo kuphinde kususe zonke izingxenye ezikhona, okufaka zonke izingxenye okungenzeka zingabonakali. Lesi senzo asikwazi ukuhlehliswa.</translation>
+ <translation id="7695430100978772476">Ayikwazanga ukufometha i-<ph name="DRIVE_NAME" /></translation>
+-<translation id="770015031906360009">Isi-Greek</translation>
++<translation id="770015031906360009">Greek</translation>
+ <translation id="7705251383879779343">kukopishwe okungu-<ph name="FILE_NAME" />.</translation>
+ <translation id="7711920809702896782">Ulwazi lwesithombe</translation>
+ <translation id="7724603315864178912">Sika</translation>
+ <translation id="7730494089396812859">Bonisa imininingwane yesipele samafu</translation>
+ <translation id="7732111077498238432">Inethiwekhi ilawulwa inqubomgomo</translation>
+ <translation id="7748626145866214022">Izinketho eziningi ezitholakala kubha yesenzo. Cindezela ku-Alt + A ukuze ugxilise ibha yesenzo.</translation>
+-<translation id="7760449188139285140">Isi-Chinese Wubi</translation>
++<translation id="7760449188139285140">Chinese Wubi</translation>
+ <translation id="7765158879357617694">Hambisa</translation>
+ <translation id="7774365994322694683">Inyoni</translation>
+ <translation id="7788080748068240085">Ukuze ulondoloze i-"<ph name="FILE_NAME" />" ngokungaxhunyiwe ku-inthanethi kuzomele ukhulule ngokungeziwe okungu-<ph name="TOTAL_FILE_SIZE" /> kwesikhala:<ph name="MARKUP_1" />
+@@ -819,10 +819,10 @@
+ <translation id="7943385054491506837">I-US Colemak</translation>
+ <translation id="7948417415021769876">ingobo yomlando ye-7z</translation>
+ <translation id="7953739707111622108">Idivayisi ayikwazi ukuvulwa ngoba isistimu yefayela ayiboniwe.</translation>
+-<translation id="7969525169268594403">Isi-Slovenian</translation>
+-<translation id="7972920761225148017">Isi-French (Switzerland)</translation>
++<translation id="7969525169268594403">Slovenian</translation>
++<translation id="7972920761225148017">French (Switzerland)</translation>
+ <translation id="7973962044839454485">Ukuqinisekisa kwe-PPP kuhlulekile ngenxa yegama lomsebenzisi elingalungile noma iphasiwedi</translation>
+-<translation id="7980421588063892270">I-English (US) enekhibhodi ye-Colemak</translation>
++<translation id="7980421588063892270">English (US) enekhibhodi ye-Colemak</translation>
+ <translation id="79907182588096956">Leli fayela lenzelwe i-PC esebenzisa isofthiwe ye-Windows. Lokhu akuhambelani nedivayisi yakho esebenzisa i-Chrome OS. <ph name="BEGIN_LINK_HELP" />Funda kabanzi<ph name="END_LINK_HELP" /> ngokuvula amafayela ku-Chrome OS.</translation>
+ <translation id="8000066093800657092">Ayikho inethiwekhi</translation>
+ <translation id="8008366997883261463">I-Jack Russell Terrier</translation>
+@@ -837,13 +837,13 @@
+ <translation id="8087576439476816834">Dawuniloda, <ph name="PROFILE_NAME" /></translation>
+ <translation id="8106045200081704138">Kwabiwe nami</translation>
+ <translation id="8116072619078571545">Amanzi e-ice</translation>
+-<translation id="8128733386027980860">I-English (UK enekhibhodi ye-Dvorak</translation>
++<translation id="8128733386027980860">English (UK enekhibhodi ye-Dvorak</translation>
+ <translation id="8137331602592933310">I-"<ph name="FILENAME" />" yabiwe nawe. Awukwazi ukuyisusa ngoba akuyona eyakho.</translation>
+ <translation id="813913629614996137">Iyaqalisa...</translation>
+ <translation id="8151638057146502721">Lungiselela</translation>
+ <translation id="8154842056504218462">Ukhethe konke okungenayo.</translation>
+ <translation id="8157684860301034423">Yehlulekile ukubuyisa ulwazi lohlelo lokusebenza.</translation>
+-<translation id="8175731104491895765">Isi-French (Belgium)</translation>
++<translation id="8175731104491895765">French (Belgium)</translation>
+ <translation id="8179976553408161302">Faka</translation>
+ <translation id="8193175696669055101">Imodeli yedivayisi</translation>
+ <translation id="8208580316430297579">Umsebenzi wobuciko</translation>
+@@ -856,7 +856,7 @@
+ <translation id="8280151743281770066">Ifonethikhi yesi-Armenian</translation>
+ <translation id="8294431847097064396">Umthombo</translation>
+ <translation id="8297012244086013755">Isethi ye-Hangul 3 (Akekho u-Shift)</translation>
+-<translation id="8299269255470343364">Isi-Japanese</translation>
++<translation id="8299269255470343364">Japanese</translation>
+ <translation id="8300849813060516376">I-OTASP ihlulekile</translation>
+ <translation id="8308481408797647857">Ingobo yomlando yotiyela eminyanisiwe ye-XZ</translation>
+ <translation id="8312871300878166382">Namathisela kufolda</translation>
+@@ -866,7 +866,7 @@
+ <translation id="8336153091935557858">Izolo ngo-<ph name="YESTERDAY_DAYTIME" /></translation>
+ <translation id="8342318071240498787">Ifayela noma uhla lwemibhalo olunegama elifanayo seluvele likhona</translation>
+ <translation id="8372369524088641025">Ukhiye omubi we-WEP</translation>
+-<translation id="8372852072747894550">Isi-Greek</translation>
++<translation id="8372852072747894550">Greek</translation>
+ <translation id="8386903983509584791">Ukuskena kuphelile</translation>
+ <translation id="8387733224523483503">I-<ph name="FILE_NAME" /> ithukululiwe.</translation>
+ <translation id="8395901698320285466">Ubukhulu</translation>
+@@ -889,29 +889,29 @@
+ <translation id="8499098729323186194">Ikhipha izinto ezingu-<ph name="NUMBER_OF_ITEMS" />...</translation>
+ <translation id="8521441079177373948">I-UK</translation>
+ <translation id="8525306231823319788">Isikrini esigcwele</translation>
+-<translation id="853494022971700746">Isi-French (France)</translation>
++<translation id="853494022971700746">French (France)</translation>
+ <translation id="8540608333167683902">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, imininingwane</translation>
+-<translation id="8545476925160229291">I-English(US)</translation>
++<translation id="8545476925160229291">English(US)</translation>
+ <translation id="854655314928502177">I-URL yokutholakala kommeleli ozenzakalelayo wewebhu</translation>
+ <translation id="8549186985808798022">Isi-Italian</translation>
+-<translation id="8551494947769799688">Isi-Latvian</translation>
++<translation id="8551494947769799688">Latvian</translation>
+ <translation id="8560515948038859357">Isi-Cantonese</translation>
+ <translation id="8561206103590473338">Indlovu</translation>
+ <translation id="8566466896628108558">Inethiwekhi engu-<ph name="NETWORK_INDEX" /> kwezingu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, Amandla Wesinglai<ph name="SIGNAL_STRENGTH" />%, Kuvinjelwe Umphathi wakho, Imininingwane</translation>
+ <translation id="8569764466147087991">Khetha ifayela okumele ulivule</translation>
+-<translation id="8577897833047451336">Isi-Croatia</translation>
+-<translation id="8578308463707544055">Isi-Indonesia</translation>
++<translation id="8577897833047451336">Croatian</translation>
++<translation id="8578308463707544055">Indonesian</translation>
+ <translation id="8579285237314169903">Ivumelanisa izinto ezingu-<ph name="NUMBER_OF_FILES" />...</translation>
+ <translation id="8600173386174225982">Uhlu lwefayela lushintshele ekubukeni kwesithonjana.</translation>
+ <translation id="8601932370724196034">Ifayela lesithombe se-Crostini</translation>
+-<translation id="8609695766746872526">Isi-Icelandic</translation>
++<translation id="8609695766746872526">Icelandic</translation>
+ <translation id="863903787380594467">Iphinikhodi engalungile. Unemizamo engu-<ph name="RETRIES" /> esele.</translation>
+ <translation id="8639391553632924850"><ph name="INPUT_LABEL" /> - Imbobo</translation>
+ <translation id="8656768832129462377">Ungahloli</translation>
+ <translation id="8688591111840995413">Iphasiwedi embi</translation>
+ <translation id="8698464937041809063">Ukudweba kwe-Google</translation>
+ <translation id="8712637175834984815">Ngiyitholile</translation>
+-<translation id="8713112442029511308">Isi-Maltese</translation>
++<translation id="8713112442029511308">Maltese</translation>
+ <translation id="8714406895390098252">Ibhayisikili</translation>
+ <translation id="8719721339511222681">Okukhethiwe <ph name="ENTRY_NAME" />.</translation>
+ <translation id="872537912056138402">Isi-Croatian</translation>
+@@ -923,19 +923,19 @@
+ <translation id="8802459921616481935">Hambisa Kudoti</translation>
+ <translation id="8808686172382650546">Ikati</translation>
+ <translation id="8810671769985673465">Ukuzipha kwehlulekile, into ikhona: "<ph name="FILE_NAME" />"</translation>
+-<translation id="8813284582615685103">Isi-Spanish (I-Spain)</translation>
++<translation id="8813284582615685103">Spanish (I-Spain)</translation>
+ <translation id="8834164572807951958">Amalungu e-'<ph name="DESTINATION_NAME" />' azothola ukufinyelela kwikhophi yalezi zinto.</translation>
+-<translation id="8857149712089373752">Isi-Nepali ngekhibhodi ye-Phonetic</translation>
++<translation id="8857149712089373752">Nepali ngekhibhodi ye-Phonetic</translation>
+ <translation id="8860454412039442620">Isipredishithi se-Excel</translation>
+ <translation id="8866284467018526531">Ukuguqulwa kwamaletha we-Arabic</translation>
+ <translation id="8874184842967597500">Ayixhunyiwe</translation>
+-<translation id="8900820606136623064">Isi-Hungarian</translation>
++<translation id="8900820606136623064">Hungarian</translation>
+ <translation id="8903931173357132290">Thola iziqu</translation>
+ <translation id="8912078710089354287">Inja enyakazisa umsila</translation>
+ <translation id="8919081441417203123">Isi-Danish</translation>
+ <translation id="8965697826696209160">Asikho isikhala esanele.</translation>
+ <translation id="8970501467542182729">Leli fayela lidizayinelwe ikhompuyutha esebenzisa isofthiwe ye-Macintosh. Lokhu akuhambelani nedivayisi yakho esebenzisa i-Chrome OS. <ph name="BEGIN_LINK_HELP" />Funda kabanzi<ph name="END_LINK_HELP" /> ngokuvula amafayela ku-Chrome OS.</translation>
+-<translation id="8997962250644902079">Isi-Chinese (Traditional) Pinyin</translation>
++<translation id="8997962250644902079">Chinese (Traditional) Pinyin</translation>
+ <translation id="9003940392834790328">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, imininingwane</translation>
+ <translation id="9017798300203431059">Ifonethiki yesi-Russian</translation>
+ <translation id="9034924485347205037">Amafayela e-Linux</translation>
+@@ -959,10 +959,10 @@
+ <translation id="9153934054460603056">Londoloza ubunikazi nephasiwedi</translation>
+ <translation id="9171921933192916600">Othanda izincwadi</translation>
+ <translation id="9172592259078059678">Ukuguqulwa kwamaletha kwesi-Gujarati</translation>
+-<translation id="9173120999827300720">I-English (US enekhibhodi yamazwe ngamazwe</translation>
++<translation id="9173120999827300720">English (US enekhibhodi yamazwe ngamazwe</translation>
+ <translation id="9174050671906956834">Izinto ezikudoti zisuswa ingunaphakade ngemva kwezinsuku ezingama-30.</translation>
+ <translation id="9183302530794969518">Google Amadokhumenti</translation>
+-<translation id="9189836632794948435">Isi-Kazakh</translation>
++<translation id="9189836632794948435">Kazakh</translation>
+ <translation id="9200427192836333033">Izinto ezingu-<ph name="NUMBER_OF_ITEMS" /> zithukululiwe.</translation>
+ <translation id="9213073329713032541">Ukufaka kuqaliswe ngempumelelo.</translation>
+ <translation id="9219103736887031265">Izithombe</translation>
+@@ -973,7 +973,7 @@
+ <translation id="945522503751344254">Thumela impendulo</translation>
+ <translation id="947144732524271678">Ibanga elikhethiwe lokungenayo kwe-<ph name="ENTRY_COUNT" /> kusuka ku-<ph name="FROM_ENTRY_NAME" /> kuya ku-<ph name="TO_ENTRY_NAME" />.</translation>
+ <translation id="961973045258256291">Ingobo yomlando eminyanisiwe ye-Gzip</translation>
+-<translation id="965477715979482472">I-English (South Africa)</translation>
++<translation id="965477715979482472">English (South Africa)</translation>
+ <translation id="981121421437150478">Ayixhunyiwe ku-inthanethi</translation>
+ <translation id="988685240266037636">Ifayela elinegama "<ph name="FILE_NAME" />" selivele likhona. Ingabe ufuna ukuyimiselela?</translation>
+ <translation id="992401651319295351">Unemizamo engu-<ph name="RETRIES" /> esele. Ngeke ukwazi ukusebenzisa le nethiwekhi kuze kube yilapho usetha Iphinikhodi entsha.</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0034-Incrementing-VERSION-to-102.0.5005.138.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0034-Incrementing-VERSION-to-102.0.5005.138.patch
new file mode 100644
index 000000000000..a56920f1f86c
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0034-Incrementing-VERSION-to-102.0.5005.138.patch
@@ -0,0 +1,28 @@
+From 54eda0b04d06a18c37d0fe5acd9c7e59a9309ecf Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Thu, 23 Jun 2022 01:00:32 +0000
+Subject: [PATCH 34/59] Incrementing VERSION to 102.0.5005.138
+
+Change-Id: I72b187b9006fa47fafdd1239751c65d268601487
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3719359
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1193}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 96ae4bfab48f..a63b8dbbec13 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=137
++PATCH=138
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0035-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0035-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..2b1eb8b7e58d
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0035-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,578 @@
+From 72690f8bebac28c822f300c57111518f5e0711b0 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Thu, 23 Jun 2022 14:24:18 +0000
+Subject: [PATCH 35/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I1a319a29c31a8d9cdc82ef3481cbaf7422832818
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3721556
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1194}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_hi.xtb                |  2 +-
+ .../app/resources/generated_resources_fi.xtb  | 30 ++++----
+ .../app/resources/generated_resources_km.xtb  |  2 +-
+ .../app/resources/generated_resources_ml.xtb  |  8 +--
+ components/strings/components_strings_zu.xtb  |  4 +-
+ .../translations/ui_chromeos_strings_hy.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_ml.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_zu.xtb   | 70 +++++++++----------
+ ui/strings/translations/ui_strings_ml.xtb     |  2 +-
+ 9 files changed, 61 insertions(+), 61 deletions(-)
+
+diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
+index 3dc696f3a7ea..291935cd90a5 100644
+--- a/ash/strings/ash_strings_hi.xtb
++++ b/ash/strings/ash_strings_hi.xtb
+@@ -68,7 +68,7 @@
+ <translation id="1272079795634619415">रोकें</translation>
+ <translation id="1275285675049378717"><ph name="POWER_SOURCE" /> चार्ज कर रहा है</translation>
+ <translation id="1279938420744323401"><ph name="DISPLAY_NAME" /> (<ph name="ANNOTATION" />)</translation>
+-<translation id="1285992161347843613">फ़ोन का पता लगाने की सुविधा</translation>
++<translation id="1285992161347843613">फ़ोन का पता लगाएं</translation>
+ <translation id="1289185460362160437"><ph name="COME_BACK_DAY_OF_WEEK" /> को <ph name="COME_BACK_TIME" /> बजे फिर से देखें.</translation>
+ <translation id="1290331692326790741">कमज़ोर सिग्नल</translation>
+ <translation id="1290982764014248209"><ph name="DRAGGED_APP" /> को फ़ोल्डर <ph name="FOLDER_NAME" /> पर ले जाएं.</translation>
+diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
+index 27cbdce92d1e..512a1c28b236 100644
+--- a/chrome/app/resources/generated_resources_fi.xtb
++++ b/chrome/app/resources/generated_resources_fi.xtb
+@@ -340,7 +340,7 @@
+ <translation id="1338631221631423366">Laiteparia muodostetaan…</translation>
+ <translation id="1338802252451106843"><ph name="ORIGIN" /> haluaa avata tämän sovelluksen.</translation>
+ <translation id="1338950911836659113">Poistetaan…</translation>
+-<translation id="1339009753652684748">Käytä Assistantia sanomalla "Ok Google". Jos haluat säästää virtaa, valitse Käytössä (suositus). Assistant vastaa vain, jos laite on kytketty virtalähteeseen tai laturiin.</translation>
++<translation id="1339009753652684748">Käytä Assistantia sanomalla "Hey Google". Jos haluat säästää virtaa, valitse Käytössä (suositus). Assistant vastaa vain, jos laite on kytketty virtalähteeseen tai laturiin.</translation>
+ <translation id="13392265090583506">A11y</translation>
+ <translation id="1340527397989195812">Varmuuskopioi mediatiedostot laitteelta Tiedostot-sovelluksen avulla.</translation>
+ <translation id="1341988552785875222"><ph name="APP_NAME" /> asetti nykyisen taustakuvan. Saatat joutua poistamaan sovelluksen <ph name="APP_NAME" /> ennen kuin voit valita uuden taustakuvan.</translation>
+@@ -1408,7 +1408,7 @@ Voit ylläpitää tilin asetuksia asentamalla laitteellesi Family Link ‑sovell
+ <translation id="23030561267973084"><ph name="EXTENSION_NAME" /> on pyytänyt lisäoikeuksia.</translation>
+ <translation id="23055578400314116">Valitse käyttäjänimi</translation>
+ <translation id="2307462900900812319">Määritä verkko</translation>
+-<translation id="2307553512430195144">Jos hyväksyt tämän, Google Assistant odottaa lepotilassa, kunnes se kuulee sanat "Ok Google" ja tunnistaa Voice Matchilla puhujaksi käyttäjän <ph name="SUPERVISED_USER_NAME" />.
++<translation id="2307553512430195144">Jos hyväksyt tämän, Google Assistant odottaa lepotilassa, kunnes se kuulee sanat "Hey Google" ja tunnistaa Voice Matchilla puhujaksi käyttäjän <ph name="SUPERVISED_USER_NAME" />.
+     <ph name="BR" />
+     Voice Matchin avulla Google Assistant voi tunnistaa käyttäjän (<ph name="SUPERVISED_USER_NAME" />) äänen laitteellasi (<ph name="DEVICE_TYPE" />) ja erottaa hänet muista.
+     <ph name="BR" />
+@@ -2363,7 +2363,7 @@ ja loitonna painamalla Ctrl + Alt + kirkkauden vähennys.</translation>
+ <translation id="3244294424315804309">Jatka äänen mykistystä</translation>
+ <translation id="324849028894344899"><ph name="WINDOW_TITLE" /> – verkkovirhe</translation>
+ <translation id="3248902735035392926">Turvallisuudella on väliä. Käytä nyt hetki <ph name="BEGIN_LINK" />laajennusten tarkistamiseen<ph name="END_LINK" />.</translation>
+-<translation id="3251714896659475029">Salli, että <ph name="SUPERVISED_USER_NAME" /> voi käyttää Google Assistantia sanomalla "Ok Google"</translation>
++<translation id="3251714896659475029">Salli, että <ph name="SUPERVISED_USER_NAME" /> voi käyttää Google Assistantia sanomalla "Hey Google"</translation>
+ <translation id="3251759466064201842">&lt;Ei osa varmennetta&gt;</translation>
+ <translation id="325238099842880997">Määritä digitaaliset pelisäännöt, joiden avulla lapsesi voi pelata, tutkia ja oppia sekä tehdä koulutehtäviä kotona.</translation>
+ <translation id="3253448572569133955">Tuntematon tili</translation>
+@@ -3878,7 +3878,7 @@ ja loitonna painamalla Ctrl + Alt + kirkkauden vähennys.</translation>
+ <translation id="4742970037960872810">Poista korostus</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Katso, miten sovelluksia päivitetään<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{Poista sivuston mykistys}other{Poista sivustojen mykistys}}</translation>
+-<translation id="474609389162964566">Käytä Assistantia sanomalla "Ok Google"</translation>
++<translation id="474609389162964566">Käytä Assistantia sanomalla "Hey Google"</translation>
+ <translation id="4746351372139058112">Viestit</translation>
+ <translation id="4748783296226936791">Sivustot yhdistävät yleensä HID-laitteisiin esim. käyttääkseen epätavallisia näppäimistöjä, peliohjaimia tai muita laitteita</translation>
+ <translation id="4750185073185658673">Voit tarkistaa muutamia muita lupia puhelimellasi. Varmista, että puhelimen Bluetooth ja Wi-Fi ovat päällä.</translation>
+@@ -3970,7 +3970,7 @@ ja loitonna painamalla Ctrl + Alt + kirkkauden vähennys.</translation>
+ <translation id="4844633725025837809">Salasanat kannattaa salata turvallisuussyistä laitteella ennen niiden tallentamista Googlen Salasanojen ylläpitoon</translation>
+ <translation id="4846680374085650406">Noudatat järjestelmänvalvojan tätä asetusta koskevaa suositusta.</translation>
+ <translation id="4847902821209177679"><ph name="TOPIC_SOURCE" /> <ph name="TOPIC_SOURCE_DESC" /> valittu, valitse albumeita (<ph name="TOPIC_SOURCE" />) painamalla Enter</translation>
+-<translation id="4848191975108266266">Google Assistantin Ok Google</translation>
++<translation id="4848191975108266266">Google Assistantin Hey Google</translation>
+ <translation id="4849286518551984791">Asetettu yleisaika (Coordinated Universal Time, UTC/GMT)</translation>
+ <translation id="4849517651082200438">Älä asenna</translation>
+ <translation id="485053257961878904">Ilmoitusten synkronointia ei voitu ottaa käyttöön</translation>
+@@ -5167,7 +5167,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="6059276912018042191">Viimeaikaiset Chrome-välilehdet</translation>
+ <translation id="6059652578941944813">Varmennehierarkia</translation>
+ <translation id="6063284707309177505">Luo QR-koodi</translation>
+-<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />Huom.<ph name="END_BOLD" /> Käyttäjän (<ph name="SUPERVISED_USER_NAME" />) henkilökohtaisiin tuloksiin voi olla mahdollista päästä käsiksi myös, jos hänen ääntään on nauhoitettu tai jonkun toisen ääni muistuttaa hänen ääntään. Jos haluat säästää virtaa, muuta käyttäjän <ph name="SUPERVISED_USER_NAME" /> Assistantin asetuksia niin, että "Ok Google" on käytössä vain, kun laite on kytketty virtalähteeseen.</translation>
++<translation id="6063847492705284550"><ph name="BEGIN_BOLD" />Huom.<ph name="END_BOLD" /> Käyttäjän (<ph name="SUPERVISED_USER_NAME" />) henkilökohtaisiin tuloksiin voi olla mahdollista päästä käsiksi myös, jos hänen ääntään on nauhoitettu tai jonkun toisen ääni muistuttaa hänen ääntään. Jos haluat säästää virtaa, muuta käyttäjän <ph name="SUPERVISED_USER_NAME" /> Assistantin asetuksia niin, että "Hey Google" on käytössä vain, kun laite on kytketty virtalähteeseen.</translation>
+ <translation id="6064217302520318294">Näytön lukitus</translation>
+ <translation id="6065289257230303064">Varmenteen kohdehakemiston attribuutit</translation>
+ <translation id="6066794465984119824">Tiivistettyä kuvaa ei ole määritetty</translation>
+@@ -5701,7 +5701,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="6583328141350416497">Jatka latausta</translation>
+ <translation id="6584878029876017575">Microsoftin elinikäinen allekirjoitus</translation>
+ <translation id="6586099239452884121">Vierailijakäyttö</translation>
+-<translation id="6586213706115310390">Käytä Assistantia sanomalla "Ok Google".</translation>
++<translation id="6586213706115310390">Käytä Assistantia sanomalla "Hey Google".</translation>
+ <translation id="6586451623538375658">Vaihda hiiren ykköspainiketta</translation>
+ <translation id="6587958707401001932">Valitse oletusasetus</translation>
+ <translation id="6588043302623806746">Käytä suojattua DNS:ää</translation>
+@@ -5918,7 +5918,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="6808166974213191158">ChromeOS Flex ‑järjestelmän näköistiedoston kirjoittaja</translation>
+ <translation id="6808193438228982088">Kettu</translation>
+ <translation id="6809470175540814047">Avaa incognito-ikkunassa</translation>
+-<translation id="6809656734323672573">Jos hyväksyt tämän, Google Assistant odottaa lepotilassa, kunnes se kuulee sanat "Ok Google" ja tunnistaa Voice Matchilla puhujaksi sinut.
++<translation id="6809656734323672573">Jos hyväksyt tämän, Google Assistant odottaa lepotilassa, kunnes se kuulee sanat "Hey Google" ja tunnistaa Voice Matchilla puhujaksi sinut.
+     <ph name="BR" />
+     Voice Matchin avulla Assistant osaa tunnistaa sinut ja erottaa sinut muista. Assistant luo tallenteista yksilöllisen äänimallin, joka tallennetaan vain laitteellesi. Äänimalli voidaan lähettää tilapäisesti Googlelle jotta äänesi voidaan tunnistaa paremmin.
+     <ph name="BR" />
+@@ -5964,7 +5964,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="6842749380892715807">XML-sivustoluettelot ladattiin viimeksi <ph name="LAST_DATE_DOWNLOAD" />.</translation>
+ <translation id="6842868554183332230">Sivustot havaitsevat yleensä, kun käytät laitetta aktiivisesti ja määrittävät sen perusteella saatavuutesi chat-sovelluksissa</translation>
+ <translation id="6843264316370513305">Verkon virheenkorjaus</translation>
+-<translation id="6843423766595476978">Ok Google on valmiina</translation>
++<translation id="6843423766595476978">Hey Google on valmiina</translation>
+ <translation id="6845038076637626672">Avaa suuressa koossa</translation>
+ <translation id="6846178040388691741"><ph name="EXTENSION_NAME" /> haluaa tulostaa tiedoston <ph name="FILE_NAME" /> tulostimella <ph name="PRINTER_NAME" />.</translation>
+ <translation id="6847125920277401289">Vapauta tilaa jatkaaksesi</translation>
+@@ -6150,7 +6150,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="701080569351381435">Näytä lähdekoodi</translation>
+ <translation id="7014174261166285193">Asennus epäonnistui.</translation>
+ <translation id="7014480873681694324">Poista korostus</translation>
+-<translation id="7017004637493394352">Sano ”Ok Google” uudelleen</translation>
++<translation id="7017004637493394352">Sano ”Hey Google” uudelleen</translation>
+ <translation id="7017219178341817193">Lisää uusi sivu</translation>
+ <translation id="7017354871202642555">Tilaa ei voi asettaa ikkunan asettamisen jälkeen.</translation>
+ <translation id="7018275672629230621">Lukea ja muokata selaushistoriaasi</translation>
+@@ -6402,7 +6402,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="7298195798382681320">Suositus</translation>
+ <translation id="7299337219131431707">Ota vierailijaselaus käyttöön</translation>
+ <translation id="7299515639584427954">Vaihdetaanko tuetut linkit avaava oletussovellus?</translation>
+-<translation id="7301470816294041580">Voit kysyä "Ok Google, what song is this?" tai "Ok Google, what's on my screen?"</translation>
++<translation id="7301470816294041580">Voit kysyä "Hey Google, what song is this?" tai "Hey Google, what's on my screen?"</translation>
+ <translation id="730289542559375723">{NUM_APPLICATIONS,plural, =1{Tämä sovellus saattaa estää Chromea toimimasta oikein}other{Nämä sovellukset saattavat estää Chromea toimimasta oikein}}</translation>
+ <translation id="7303281435234579599">Hups, jotain meni vikaan esittelytilan määrityksessä.</translation>
+ <translation id="7303900363563182677">Tämä sivu ei saa nähdä leikepöydälle kopioitua tekstiä tai kuvia.</translation>
+@@ -6621,7 +6621,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="7515998400212163428">Android</translation>
+ <translation id="7516981202574715431"><ph name="APP_NAME" /> on keskeytetty</translation>
+ <translation id="7520766081042531487">Incognito-portaali: <ph name="SUBFRAME_SITE" /></translation>
+-<translation id="7522255036471229694">Sano ”Ok Google”.</translation>
++<translation id="7522255036471229694">Sano ”Hey Google”.</translation>
+ <translation id="7523585675576642403">Nimeä profiili uudelleen</translation>
+ <translation id="7525067979554623046">Luo</translation>
+ <translation id="7525625923260515951">Kuuntele valittu teksti</translation>
+@@ -6809,7 +6809,7 @@ Julkinen eksponentti (<ph name="PUBLIC_EXPONENT_NUM_BITS" /> bittiä):
+ <translation id="7690853182226561458">Lisää kansio...</translation>
+ <translation id="7691073721729883399">Kioskisovelluksen cryptohomea ei voitu ottaa käyttöön.</translation>
+ <translation id="7691077781194517083">Tätä suojausavainta ei voi nollata. Virhe: <ph name="ERROR_CODE" /></translation>
+-<translation id="7691163173018300413">"Ok Google"</translation>
++<translation id="7691163173018300413">"Hey Google"</translation>
+ <translation id="7691698019618282776">Crostini-päivitys</translation>
+ <translation id="7694246789328885917">Korostustyökalu</translation>
+ <translation id="7696063401938172191"><ph name="PHONE_NAME" />:</translation>
+@@ -6980,7 +6980,7 @@ Poista määritys painamalla määritettyä kytkintä tai näppäintä.</transla
+ <translation id="7850717413915978159"><ph name="BEGIN_PARAGRAPH1" />Antamalla ChromeOS-laitteiden lähettää raportteja automaattisesti voit auttaa meitä korjaamaan ja kehittämään ChromeOS:n ominaisuuksia. Raportteihin voi sisältyä esimerkiksi tietoja ChromeOS:n kaatumisista, käytetyistä ominaisuuksista ja tyypillisestä muistin käytöstä sekä Android-sovellusten diagnostiikka- ja käyttödataa. Kootusta datasta on hyötyä myös Googlen sovelluksille ja kumppaneille, esim. Android-kehittäjille.<ph name="END_PARAGRAPH1" />
+     <ph name="BEGIN_PARAGRAPH2" />Voit sallia tai estää raporttien lähettämisen milloin tahansa ChromeOS-laitteen asetuksissa. Jos olet verkkotunnuksen järjestelmänvalvoja, voit muuttaa asetusta hallintakonsolissa.<ph name="END_PARAGRAPH2" />
+     <ph name="BEGIN_PARAGRAPH3" />Jos Verkko‑ ja sovellustoiminta ‑asetus on päällä Google-tililläsi, Android-dataa voidaan tallentaa tilillesi. Voit nähdä dataa, poistaa sitä ja muuttaa tiliasetuksia osoitteessa account.google.com.<ph name="END_PARAGRAPH3" /></translation>
+-<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Huom.<ph name="END_BOLD" /> Samanlaisella äänellä tai äänitteellä saattaa päästä henkilökohtaisiin tuloksiisi tai Assistantiisi. Jos haluat säästää virtaa, muuta Assistantin asetuksia niin, että "Ok Google" on käytössä vain, kun laite on kytkettynä virtalähteeseen.</translation>
++<translation id="7851021205959621355"><ph name="BEGIN_BOLD" />Huom.<ph name="END_BOLD" /> Samanlaisella äänellä tai äänitteellä saattaa päästä henkilökohtaisiin tuloksiisi tai Assistantiisi. Jos haluat säästää virtaa, muuta Assistantin asetuksia niin, että "Hey Google" on käytössä vain, kun laite on kytkettynä virtalähteeseen.</translation>
+ <translation id="7851457902707056880">Kirjautuminen on sallittu vain omistajatilillä. Käynnistä tietokone uudelleen ja kirjaudu omistajatilillä. Tietokone käynnistetään uudelleen 30 sekunnin kuluttua.</translation>
+ <translation id="7851716364080026749">Estä kameran ja mikrofonin käyttö aina</translation>
+ <translation id="7851720427268294554">IPP-jäsentäjä</translation>
+@@ -8371,7 +8371,7 @@ Tallenna avaintiedosto suojattuun sijaintiin. Tarvitset sitä, jos haluat luoda
+ <translation id="936646668635477464">Kamera ja mikrofoni</translation>
+ <translation id="936801553271523408">Järjestelmän diagnostiikkatiedot</translation>
+ <translation id="93766956588638423">Korjaa laajennus</translation>
+-<translation id="938568644810664664">Kokeile kysyä "Ok Google, what song is this?" tai "Ok Google, what's on my screen?"</translation>
++<translation id="938568644810664664">Kokeile kysyä "Hey Google, what song is this?" tai "Hey Google, what's on my screen?"</translation>
+ <translation id="938623846785894166">Epätavallinen tiedosto</translation>
+ <translation id="939401694733344652">Näitä tilejä ei käytetä Android-sovellusten kanssa tällä hetkellä. Jos valitset Android-sovelluksen kanssa käytettävän tilin, sitä voidaan käyttää myös muilla Android-sovelluksilla. Voit muokata Android-sovelluksen pääsyä valitsemalla <ph name="LINK_BEGIN" />Asetukset &gt; Tilit<ph name="LINK_END" />.</translation>
+ <translation id="939598580284253335">Anna tunnuslause</translation>
+diff --git a/chrome/app/resources/generated_resources_km.xtb b/chrome/app/resources/generated_resources_km.xtb
+index 29b9a409b0fc..822d3a841ecb 100644
+--- a/chrome/app/resources/generated_resources_km.xtb
++++ b/chrome/app/resources/generated_resources_km.xtb
+@@ -5000,7 +5000,7 @@
+ <translation id="5891688036610113830">បណ្ដាញ Wi-Fi ជា​អាទិភាព</translation>
+ <translation id="5895138241574237353">ចាប់ផ្តើមឡើងវិញ</translation>
+ <translation id="5895335062901455404">សកម្មភាព និង​ចំណូលចិត្ត​ដែលអ្នក​បានរក្សាទុក​នឹងអាចប្រើបាន​នៅលើរាល់​ឧបករណ៍ ChromeOS Flex នៅពេលអ្នក​ចូល​ដោយប្រើ​គណនី Google របស់អ្នក។ អ្នកអាចជ្រើសរើស​អ្វីដែលត្រូវធ្វើសមកាលកម្ម​នៅក្នុងការកំណត់។</translation>
+-<translation id="5896436821193322561">កុំអនុញ្ញាត</translation>
++<translation id="5896436821193322561">មិនអនុញ្ញាត</translation>
+ <translation id="5900302528761731119">រូបថត Google ទម្រង់</translation>
+ <translation id="590036993063074298">ព័ត៌មានលម្អិតអំពីគុណភាពនៃការបញ្ចាំង</translation>
+ <translation id="5901069264981746702">ទិន្នន័យស្នាមម្រាមដៃ​របស់អ្នកត្រូវបាន​រក្សាទុកយ៉ាង​មានសុវត្ថិភាព និងមិនចេញពី <ph name="DEVICE_TYPE" /> របស់អ្នកឡើយ។ <ph name="LINK_BEGIN" />ស្វែងយល់បន្ថែម<ph name="LINK_END" /></translation>
+diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
+index 75308f5d91c0..e699d814127b 100644
+--- a/chrome/app/resources/generated_resources_ml.xtb
++++ b/chrome/app/resources/generated_resources_ml.xtb
+@@ -254,7 +254,7 @@
+ <translation id="124116460088058876">കൂടുതൽ ഭാഷകൾ</translation>
+ <translation id="1241753985463165747">നിർദ്ദേശിക്കപ്പെടുമ്പോൾ നിലവിലെ വെബ്‌സൈറ്റിലെ നിങ്ങളുടെ ഡാറ്റ മുഴുവൻ വായിച്ച് അതിൽ മാറ്റം വരുത്തുക</translation>
+ <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" />, നിങ്ങളുടെ ക്രമീകരണം റീസെറ്റ് ചെയ്യാൻ താൽപ്പര്യപ്പെടുന്നു.</translation>
+-<translation id="1243314992276662751">അപ്‌ലോഡുചെയ്യുക</translation>
++<translation id="1243314992276662751">അപ്‌ലോഡ് ചെയ്യുക</translation>
+ <translation id="1243436884219965846">പാസ്‌വേഡുകൾ അവലോകനം ചെയ്യൂ</translation>
+ <translation id="1244265436519979884">Linux പുനഃസ്ഥാപിക്കൽ നിലവിൽ പുരോഗതിയിലാണ്</translation>
+ <translation id="1244303850296295656">വിപുലീകരണ പിശക്</translation>
+@@ -2663,7 +2663,7 @@
+ <translation id="3554493885489666172">നിങ്ങളുടെ ഉപകരണം മാനേജ് ചെയ്യുന്നത് <ph name="PROFILE_NAME" /> ആണ്. ഈ ഉപകരണത്തിലെ ഏത് പ്രൊഫൈലിലുള്ള ഡാറ്റയും അഡ്‌മിൻമാർക്ക് ആക്‌സസ് ചെയ്യാം.</translation>
+ <translation id="3555812735919707620">വിപുലീകരണം നീക്കംചെയ്യുക</translation>
+ <translation id="3556000484321257665">നിങ്ങളുടെ തിരയൽ യന്ത്രം <ph name="URL" /> എന്നതിലേക്ക് മാറ്റി.</translation>
+-<translation id="3556433843310711081">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്കുചെയ്യാൻ മാനേജർക്ക് കഴിയും</translation>
++<translation id="3556433843310711081">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്ക് ചെയ്യാൻ മാനേജർക്ക് കഴിയും</translation>
+ <translation id="3557101512409028104">Family Link ഉപയോഗിച്ച് വെബ്സൈറ്റ് നിയന്ത്രണങ്ങളും സ്ക്രീൻ സമയ പരിധികളും സജ്ജീകരിക്കുക</translation>
+ <translation id="3559262020195162408">ഉപകരണത്തിൽ നയം ഇൻസ്‌റ്റാൾ ചെയ്യാനായില്ല.</translation>
+ <translation id="3559533181353831840">ഏകദേശം <ph name="TIME_LEFT" /> ശേഷിക്കുന്നു</translation>
+@@ -4827,7 +4827,7 @@
+ <translation id="5728450728039149624">Smart Lock സ്ക്രീൻ ലോക്ക് ഓപ്ഷനുകൾ</translation>
+ <translation id="5729712731028706266">&amp;കാണുക</translation>
+ <translation id="5731247495086897348">ഒട്ടിക്കു&amp;കയും പോകുകയും ചെയ്യുക</translation>
+-<translation id="5732392974455271431">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്കുചെയ്യാൻ രക്ഷിതാക്കൾക്ക് കഴിയും</translation>
++<translation id="5732392974455271431">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്ക് ചെയ്യാൻ രക്ഷിതാക്കൾക്ക് കഴിയും</translation>
+ <translation id="5734362860645681824">കമ്മ്യൂണിക്കേഷനുകൾ</translation>
+ <translation id="5734697361979786483">ഫയൽ പങ്കിടൽ ചേർക്കുക</translation>
+ <translation id="5736796278325406685">ശരിയായ ഉപയോക്തൃനാമം നൽകുക</translation>
+@@ -6861,7 +6861,7 @@
+ <translation id="7753735457098489144">സ്‌റ്റോറേജ് സ്‌പെയ്‌സ് ഇല്ലാത്തതിനാൽ ഇൻസ്‌റ്റാൾ ചെയ്യാനായില്ല. ഇടം സൃഷ്‌ടിക്കാൻ, ഉപകരണ സ്റ്റോറേജിൽ നിന്ന് ഫയലുകൾ ഇല്ലാതാക്കുക.</translation>
+ <translation id="7754347746598978109">JavaScript ഉപയോഗിക്കാൻ അനുവദിക്കുന്നില്ല</translation>
+ <translation id="7754704193130578113">ഡൗൺലോഡ് ചെയ്യുന്നതിനു മുമ്പ് ഓരോ ഫയലും എവിടെ സംരക്ഷിക്കണമെന്ന് ചോദിക്കുക</translation>
+-<translation id="7755287808199759310">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്കുചെയ്യാൻ രക്ഷിതാവിന് കഴിയും</translation>
++<translation id="7755287808199759310">നിങ്ങൾക്ക് വേണ്ടി ഇത് അൺബ്ലോക്ക് ചെയ്യാൻ രക്ഷിതാവിന് കഴിയും</translation>
+ <translation id="7757592200364144203">ഉപകരണത്തിന്റെ പേര് മാറ്റുക</translation>
+ <translation id="7757739382819740102">സമീപത്തുള്ള കോൺടാക്റ്റുകൾക്ക് നിങ്ങളുമായി പങ്കിടാം. അനുമതി ആവശ്യമാണ്.</translation>
+ <translation id="7757787379047923882"><ph name="DEVICE_NAME" /> ഉപകരണത്തിൽ നിന്ന് പങ്കിട്ട ടെക്‌സ്റ്റ്</translation>
+diff --git a/components/strings/components_strings_zu.xtb b/components/strings/components_strings_zu.xtb
+index 81baebec6ab4..7070d0c76b70 100644
+--- a/components/strings/components_strings_zu.xtb
++++ b/components/strings/components_strings_zu.xtb
+@@ -1417,7 +1417,7 @@ Lokhu uma kungenjalo kuzovinjelwa izilungiselelo zakho zobumfihlo. Lokhu kuzovum
+ <translation id="484671803914931257">Thola isaphulelo ku-<ph name="MERCHANT_NAME" /> nokwengeziwe</translation>
+ <translation id="4850886885716139402">Buka</translation>
+ <translation id="4852429274334674023">Amasistimu okusebenza</translation>
+-<translation id="485316830061041779">Isi-German</translation>
++<translation id="485316830061041779">German</translation>
+ <translation id="4853901935952445031">Le syithi ngeke ikwazi ukusebenzisa i-U2F API ngemuva kuka-Febhuwari 2022. Uma ungumnikazi wesayithi, kufanele uyishintshe ukuze usebenzise i-API Yokufakazela Ubuqiniso ye-API.</translation>
+ <translation id="4854362297993841467">Le ndlela yokulethwa ayitholakali. Zama indlela ehlukile.</translation>
+ <translation id="4854853140771946034">Dala inothi elisha ngokushesha ku-Google Keep</translation>
+@@ -1646,7 +1646,7 @@ Lokhu uma kungenjalo kuzovinjelwa izilungiselelo zakho zobumfihlo. Lokhu kuzovum
+ <translation id="5457113250005438886">Ayivumelekile</translation>
+ <translation id="5458150163479425638">{CONTACT,plural, =0{<ph name="CONTACT_PREVIEW" />}=1{<ph name="CONTACT_PREVIEW" /> nongu-<ph name="NUMBER_OF_ADDITIONAL_CONTACTS" /> ngaphezulu}one{<ph name="CONTACT_PREVIEW" /> nongu-<ph name="NUMBER_OF_ADDITIONAL_CONTACTS" /> ngaphezulu}other{<ph name="CONTACT_PREVIEW" /> nongu-<ph name="NUMBER_OF_ADDITIONAL_CONTACTS" /> ngaphezulu}}</translation>
+ <translation id="5463625433003343978">Ithola amadivayisi...</translation>
+-<translation id="5469868506864199649">Isi-Italian</translation>
++<translation id="5469868506864199649">Italian</translation>
+ <translation id="5470230812924696184">Ubunjiniyela bamabhuloho</translation>
+ <translation id="5470861586879999274">&amp;Yenza futhi ukuhlela</translation>
+ <translation id="5471337644440862957">Awama-movie wehlaya</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
+index 9265335e765c..80b91e20064a 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_hy.xtb
+@@ -121,7 +121,7 @@
+ <translation id="1995337122023280937">Անցնել ֆայլի տեղադրություն</translation>
+ <translation id="2001796770603320721">Կառավարել Drive-ում</translation>
+ <translation id="2009067268969781306">Ֆորմատավորման արդյունքում կրիչի վրա պահված բոլոր տվյալները կջնջվեն: Այս գործողությունը հնարավոր չէ հետարկել:</translation>
+-<translation id="2025955442973426285">տիգրինյա</translation>
++<translation id="2025955442973426285">թիգրինյա</translation>
+ <translation id="2028997212275086731">RAR արխիվ</translation>
+ <translation id="2036414735548252477">LZMA սեղմված tar-արխիվ</translation>
+ <translation id="2037845485764049925">ռուսերեն</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+index 16f4b63d0683..089a3df8bdc9 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+@@ -32,7 +32,7 @@
+ <translation id="1209796539517632982">യാന്ത്രിക നാമ സെർവറുകൾ</translation>
+ <translation id="1210831758834677569">ലാവോ</translation>
+ <translation id="1223825810409523901">Chrome വിപുലീകരണം</translation>
+-<translation id="1243314992276662751">അപ്‌ലോഡുചെയ്യുക</translation>
++<translation id="1243314992276662751">അപ്‌ലോഡ് ചെയ്യുക</translation>
+ <translation id="1249250836236328755">വിഭാഗം</translation>
+ <translation id="1254593899333212300">നേരിട്ടുള്ള ഇന്‍റര്‍നെറ്റ് കണക്ഷന്‍</translation>
+ <translation id="1272293450992660632">പിൻ മൂല്യങ്ങൾ പൊരുത്തപ്പെടുന്നില്ല.</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+index 474eda5c24ca..0f262a4231f8 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_zu.xtb
+@@ -57,7 +57,7 @@
+ <translation id="1439919885608649279">Umuntu onezimbali</translation>
+ <translation id="1471718551822868769">Isi-Slovak</translation>
+ <translation id="1474339897586437869">I-"<ph name="FILENAME" />" ayizange ilayishwe. Asikho isikhala esanele esikhululekile ku-Google Drayivu yakho.</translation>
+-<translation id="1482884275703521657">Isi-Finnish</translation>
++<translation id="1482884275703521657">Finnish</translation>
+ <translation id="148466539719134488">I-Swiss</translation>
+ <translation id="1497522201463361063">Ayikwazi ukuqamba kabusha i-"<ph name="FILE_NAME" />". <ph name="ERROR_MESSAGE" /></translation>
+ <translation id="1499943022354839699">English (US) enekhibhodi ye-Dvorak</translation>
+@@ -72,7 +72,7 @@
+ <translation id="158849752021629804">Idinga inethiwekhi yasekhaya</translation>
+ <translation id="1589128298353575783"><ph name="NUMBER_OF_PB" /> PB</translation>
+ <translation id="1620510694547887537">Ikhamela</translation>
+-<translation id="162175252992296058">Isi-Portuguese nge-US International keyboard</translation>
++<translation id="162175252992296058">Portuguese nge-US International keyboard</translation>
+ <translation id="1629521517399325891">Isitifiketi somsebenzisi asitholakali ukufakazela ubuqiniso inethiwekhi.</translation>
+ <translation id="1641780993263690097">Chinese Pinyin</translation>
+ <translation id="1646019627374511909">Yenza amafayela angu-<ph name="NUMBER_OF_ITEMS" /> atholakale ngokungaxhunyiwe kwi-inthanethi</translation>
+@@ -87,12 +87,12 @@
+ <translation id="1722487484194605434">Izipha izinto ezingu-<ph name="NUMBER_OF_ITEMS" />...</translation>
+ <translation id="1722687688096767818">Ingeza Iphrofayela...</translation>
+ <translation id="1726100011689679555">Amagama wamasevisi</translation>
+-<translation id="1729953886957086472">Isi-German (Germany)</translation>
++<translation id="1729953886957086472">German (Germany)</translation>
+ <translation id="1730235522912993863">Chinese Cangjie</translation>
+ <translation id="1731889557567069540">izinto ezingu-<ph name="NUMBER_OF_ITEMS" /> zikopishiwe.</translation>
+ <translation id="174173592514158117">Bonisa onke amafolda e-Google Play</translation>
+ <translation id="1742316578210444689">Ukugugulwa kwamaletha kwesi-Hebrew</translation>
+-<translation id="1747761757048858544">Isi-Dutch (I-Netherlands)</translation>
++<translation id="1747761757048858544">Dutch (I-Netherlands)</translation>
+ <translation id="174937106936716857">Inani lokubalwa kwefayela</translation>
+ <translation id="1773212559869067373">Isitifiketi sokuqinisekisa sinqatshelwe endaweni</translation>
+ <translation id="1775381402323441512">Ulwazi lwevidiyo</translation>
+@@ -114,7 +114,7 @@
+ <translation id="1924372192547904021">Kufomethwe i-<ph name="DRIVE_NAME" /></translation>
+ <translation id="1931134289871235022">Isi-Slovak</translation>
+ <translation id="1933345018156373194">Ukuhambisa kuhlulekile, iphutha elingalindelekile: <ph name="ERROR_MESSAGE" /></translation>
+-<translation id="1936717151811561466">Isi-Finnish</translation>
++<translation id="1936717151811561466">Finnish</translation>
+ <translation id="1942765061641586207">Ukulungiswa kwesithombe</translation>
+ <translation id="1972984168337863910">Nweba amaphaneli wempendulo yamafayela</translation>
+ <translation id="1984456723671657197">Lolu hlobo lwefayela alusekelwa. <ph name="BEGIN_LINK_HELP" />Funda kabanzi<ph name="END_LINK_HELP" /> ngokuvula amafayela ku-Chrome OS.</translation>
+@@ -140,7 +140,7 @@
+ <translation id="2142680004883808240">Isi-Russian esinekhibhodi ye-Phonetic YaZHert</translation>
+ <translation id="2143778271340628265">Ukulungiselelwa okwenziwa ngesandla kommeleli</translation>
+ <translation id="2163152940313951844">Inhlamvu engavumelekile: <ph name="CHARACTER_NAME" /></translation>
+-<translation id="2184934335987813305">Isi-Portuguese nge-US International PC keyboard</translation>
++<translation id="2184934335987813305">Portuguese nge-US International PC keyboard</translation>
+ <translation id="2198315389084035571">isi-Sipmlified Chinese</translation>
+ <translation id="2208158072373999562">Ingobo yomlando yeziphu</translation>
+ <translation id="22085916256174561">Korean</translation>
+@@ -177,7 +177,7 @@
+ <translation id="2467267713099745100"><ph name="NETWORK_TYPE" /> inethiwekhi, valiwe</translation>
+ <translation id="2468402215065996499">I-Tamagotchi</translation>
+ <translation id="2470939964922472929">Iphinikhodi engalungile ifakwe izikhathi eziningi kakhulu. Ukusetha Iphinikhodi entsha, faka ukhiye we-Personal Unblocking Key (PUK) onamadijithi ayi-8 onikezwe inkampani yakho yenethiwekhi.</translation>
+-<translation id="2500392669976258912">Isi-Gujarati Phonetic</translation>
++<translation id="2500392669976258912">Gujarati Phonetic</translation>
+ <translation id="2515586267016047495">I-Alt</translation>
+ <translation id="2517472476991765520">Skena</translation>
+ <translation id="2534155362429831547"><ph name="NUMBER_OF_ITEMS" /> izinto ezisusiwe</translation>
+@@ -215,7 +215,7 @@
+ <translation id="2843806747483486897">Shintsha okuzenzakalelayo...</translation>
+ <translation id="2850124913210091882">Yenza isipele</translation>
+ <translation id="2873951654529031587">Udoti</translation>
+-<translation id="288024221176729610">Isi-Czech</translation>
++<translation id="288024221176729610">Czech</translation>
+ <translation id="2887525882758501333">Idokhumenti ye-PDF</translation>
+ <translation id="2888807692577297075">Azikho izinto ezifana ne-&lt;b&gt;"<ph name="SEARCH_STRING" />"&lt;/b&gt;</translation>
+ <translation id="2894654529758326923">Ulwazi</translation>
+@@ -251,7 +251,7 @@
+ <translation id="3188257591659621405">Amafayela ami</translation>
+ <translation id="3197563288998582412">I-UK Dvorak</translation>
+ <translation id="3202131003361292969">Indlela</translation>
+-<translation id="3205852408225871810">Isi-Portuguese (Brazil)</translation>
++<translation id="3205852408225871810">Portuguese (Brazil)</translation>
+ <translation id="3224239078034945833">Izilimi eziningi ze-Canadian</translation>
+ <translation id="3236289833370040187">Ubunikazi buzodluliselwa ku-<ph name="DESTINATION_DOMAIN" />.</translation>
+ <translation id="3241720467332021590">Irish</translation>
+@@ -279,7 +279,7 @@
+ <translation id="3382143449143186018">Nepali ngekhibhodi ye-InScript</translation>
+ <translation id="338691029516748599">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, kuphethwe umlawuli wakho, xhuma</translation>
+ <translation id="3408072735282270043">Yenza kusebenze, i-<ph name="NETWORK_NAME" /></translation>
+-<translation id="3408236822532681288">Isi-German (Germany) esinekhibhodi ye-Neo 2</translation>
++<translation id="3408236822532681288">German (Germany) esinekhibhodi ye-Neo 2</translation>
+ <translation id="3414856743105198592">Ukufometha imidiya engasuswa kuzosula yonke idatha. Ingabe ufisa ukuqhubeka?</translation>
+ <translation id="3437801641691368414">Isikhathi okudalwe ngaso</translation>
+ <translation id="343907260260897561">Ikhamera esheshayo</translation>
+@@ -291,7 +291,7 @@
+ <translation id="3486821258960016770">Mongolian</translation>
+ <translation id="3495304270784461826"><ph name="COUNT" /> amaphutha.</translation>
+ <translation id="3509680540198371098">Inethiwkehi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, imininingwane</translation>
+-<translation id="3522708245912499433">Isi-Portuguese</translation>
++<translation id="3522708245912499433">Portuguese</translation>
+ <translation id="3524311639100184459">Isexwayiso: Lamafayela awesikhashana futhi angase asuswe ngokuzenzekelayo ukukhulula isikhala sediski.  <ph name="BEGIN_LINK" />Funda kabanzi<ph name="END_LINK" /></translation>
+ <translation id="3527085408025491307">Ifolda</translation>
+ <translation id="3549797760399244642">Hamba ku-drive.google.com...</translation>
+@@ -333,7 +333,7 @@
+ <translation id="3830674330436234648">Akukho ukudlala okutholakalayo</translation>
+ <translation id="383652340667548381">Isi-Serbian</translation>
+ <translation id="385051799172605136">Emuva</translation>
+-<translation id="3855472144336161447">Isi-German Neo 2</translation>
++<translation id="3855472144336161447">German Neo 2</translation>
+ <translation id="3858860766373142691">Igama</translation>
+ <translation id="386548886866354912">Pakisha nge-<ph name="EXTENSION_NAME" /></translation>
+ <translation id="3866249974567520381">Incazelo</translation>
+@@ -412,13 +412,13 @@
+ <translation id="4603392156942865207">Ikopisha i-<ph name="FILE_NAME" /> ku-<ph name="FOLDER_NAME" /></translation>
+ <translation id="4631887759990505102">Umculi</translation>
+ <translation id="4642769377300286600">Ifaka iphrofayela leselula, Inethiwekhi engu-<ph name="NETWORK_INDEX" /> kwangu-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="NETWORK_PROVIDER_NAME" /></translation>
+-<translation id="4646813851450205600">Isi-Czech esinekhibhodi ye-Qwerty</translation>
++<translation id="4646813851450205600">Czech esinekhibhodi ye-Qwerty</translation>
+ <translation id="4656293982926141856">Le khompyutha</translation>
+ <translation id="4656777537938206294">Yenza amafayela atholakala ngokungaxhunyiwe kwi-inthanethi</translation>
+ <translation id="4658782175094886150">Umuntu okwisthwathwa</translation>
+ <translation id="4669606053856530811">Amalungu e-'<ph name="SOURCE_NAME" />' azolahlekelwa ukufinyelela ngaphandle kokuthi lezi zinto zabiwe nabo.</translation>
+ <translation id="467809019005607715">Google Amaslayidi</translation>
+-<translation id="4690246192099372265">Isi-Swedish</translation>
++<translation id="4690246192099372265">Swedish</translation>
+ <translation id="4693155481716051732">I-Sushi</translation>
+ <translation id="4694604912444486114">Inkawu</translation>
+ <translation id="469612310041132144">Chinese Esisheshayo</translation>
+@@ -433,7 +433,7 @@
+ <translation id="4737050008115666127">Ukufika</translation>
+ <translation id="4747271164117300400"> Macedonian</translation>
+ <translation id="4759238208242260848">Ukulanda</translation>
+-<translation id="4779041693283480986">Isi-Portuguese (Portugal)</translation>
++<translation id="4779041693283480986">Portuguese (Portugal)</translation>
+ <translation id="4779136857077979611">I-Onigiri</translation>
+ <translation id="4784330909746505604">Iphrezentheshini ye-PowerPoint</translation>
+ <translation id="4788401404269709922"><ph name="NUMBER_OF_KB" /> KB</translation>
+@@ -445,7 +445,7 @@
+ <translation id="4839847978919684242"><ph name="SELCTED_FILES_COUNT" /> izinto ezikhethiwe</translation>
+ <translation id="4843566743023903107">Ama-Chromebase</translation>
+ <translation id="4850886885716139402">Buka</translation>
+-<translation id="485316830061041779">Isi-German</translation>
++<translation id="485316830061041779">German</translation>
+ <translation id="4867079195717347957">Chofoza ukuze uhlunge ikholomu ngendlela eyehlayo.</translation>
+ <translation id="4873265419374180291"><ph name="NUMBER_OF_BYTES" /> bytes</translation>
+ <translation id="4880214202172289027">Isilayida sevolumu</translation>
+@@ -478,11 +478,11 @@
+ <translation id="5081517858322016911"><ph name="TOTAL_FILE_SIZE" /> wamafayela uzosulwa</translation>
+ <translation id="508423945471810158">Ihambisa izinto ezi-<ph name="NUMBER_OF_ITEMS" /> ku-<ph name="FOLDER_NAME" /></translation>
+ <translation id="509429900233858213">Kuvele iphutha.</translation>
+-<translation id="5098629044894065541">Isi-Hebrew</translation>
++<translation id="5098629044894065541">Hebrew</translation>
+ <translation id="5109254780565519649">Kuvele iphutha. Ezinye zezinto kungenzeka azibuyiselwanga.</translation>
+ <translation id="5110329002213341433">English (Canada)</translation>
+ <translation id="5123433949759960244">I-Basketball</translation>
+-<translation id="5129662217315786329">Isi-Polish</translation>
++<translation id="5129662217315786329">Polish</translation>
+ <translation id="5144820558584035333">Isethi ye-Hangul 3 (390)</translation>
+ <translation id="5145331109270917438">Idethi elungiswe ngayo</translation>
+ <translation id="515594325917491223">I-Chess</translation>
+@@ -528,7 +528,7 @@
+ <translation id="5438282218546237410">Ayikho imiphumela ye-<ph name="SEARCH_TERM" />.</translation>
+ <translation id="5449551289610225147">Iphasiwedi engavumelekile</translation>
+ <translation id="5463231940765244860">Faka</translation>
+-<translation id="5469868506864199649">Isi-Italian</translation>
++<translation id="5469868506864199649">Italian</translation>
+ <translation id="5473333559083690127">Phinda ufake iphinikhodi entsha</translation>
+ <translation id="5489067830765222292">Latvian</translation>
+ <translation id="5489965683297092283">Isihlungi esithi <ph name="FILTER_NAME" /> sivaliwe.</translation>
+@@ -554,11 +554,11 @@
+ <translation id="5691596662111998220">Iphutha, i-<ph name="FILE_NAME" /> ayisekho.</translation>
+ <translation id="5698411045597658393">I-<ph name="NETWORK_NAME" />, Vula</translation>
+ <translation id="5700087501958648444">Ulwazi lomsindo</translation>
+-<translation id="5724172041621205163">Isi-Thai esinekhibhodi ye-Pattachote</translation>
++<translation id="5724172041621205163">Thai esinekhibhodi ye-Pattachote</translation>
+ <translation id="5731409020711461763">1 isithombe esisha</translation>
+ <translation id="5752453871435543420">Isipele samafu we-Chrome OS</translation>
+ <translation id="5756666464756035725">I-Hungarian QWERTY</translation>
+-<translation id="5763377084591234761">Isi-German (Switzerland)</translation>
++<translation id="5763377084591234761">German (Switzerland)</translation>
+ <translation id="5769519078756170258">Umsingathi noma isizinda esizokhishwa</translation>
+ <translation id="5775750595919327203">Isi-Urdu</translation>
+ <translation id="5776325638577448643">Susa futhi ufomethe</translation>
+@@ -581,7 +581,7 @@
+ <translation id="5911887972742538906">Kuvele iphutha phakathi nokufakwa kohlelo lwakho lokusebenza lwe-Linux.</translation>
+ <translation id="5912396950572065471">Ifomethi</translation>
+ <translation id="5913638992615760742">Ukusebenza kwekhophi kuhlulekile, iphutha elingalindelekile: <ph name="ERROR_MESSAGE" /></translation>
+-<translation id="5926082595146149752">Isi-Dutch (Netherlands) nge-US International PC keyboard</translation>
++<translation id="5926082595146149752">Dutch (Netherlands) nge-US International PC keyboard</translation>
+ <translation id="5932901536148835538">I-Chromebit</translation>
+ <translation id="5955954492236143329"><ph name="NUMBER_OF_ITEMS" /> izinto</translation>
+ <translation id="5957366693331451795">Ama-Chromebox</translation>
+@@ -614,10 +614,10 @@
+ <translation id="6199801702437275229">Ilindele ulwazi lesikhala...</translation>
+ <translation id="6205710420833115353">Eminye imisebenzi ithatha isikhathi eside kunokulindelekile. Ingabe ufuna ukuyikhansela?</translation>
+ <translation id="6220423280121890987">Isi-Phunjabi</translation>
+-<translation id="6224240818060029162">Isi-Danish</translation>
++<translation id="6224240818060029162">Danish</translation>
+ <translation id="6224253798271602650">Ifomethi <ph name="DRIVE_NAME" /></translation>
+ <translation id="6227235786875481728">Leli fayela alikwazanga ukudlalwa.</translation>
+-<translation id="6241349547798190358">Isi-Dutch (Belgium)</translation>
++<translation id="6241349547798190358">Dutch (Belgium)</translation>
+ <translation id="6248400709929739064">Nika amandla imibhalo engezansi</translation>
+ <translation id="6267547857941397424">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, Ibhethri lefoni <ph name="BATTERY_STATUS" />%, xhuma</translation>
+ <translation id="6269630227984243955">Malay</translation>
+@@ -703,7 +703,7 @@
+ <translation id="6976795442547527108">Ibhubezi</translation>
+ <translation id="6978611942794658017">Leli fayela lidizayinelwe i-PC esebenzisa isofthiwe ye-Windows. Lokhu akuhambisani nedivayisi yakho esebenzisa i-Chrome OS. Sicela useshe Isitolo Sewebhu se-Chrome ukuze uthole uhlelo lokusebenza lokungena esikhundleni olufanele.</translation>
+ <translation id="6979158407327259162">I-Google Drayivu</translation>
+-<translation id="6989942356279143254">Isi-Swedish</translation>
++<translation id="6989942356279143254">Swedish</translation>
+ <translation id="6990081529015358884">Usuphelelwe yisikhala</translation>
+ <translation id="6998711733709403587"><ph name="SELCTED_FOLDERS_COUNT" /> amafolda akhethiwe</translation>
+ <translation id="7012943028104619157"><ph name="ROOT_TITLE" /> (<ph name="ROOT_SUMMARY" />)</translation>
+@@ -712,7 +712,7 @@
+ <translation id="7037472120706603960">Isi-Tamil (Ukuguqulwa kwamaletha)</translation>
+ <translation id="7040138676081995583">Vula nge...</translation>
+ <translation id="7048024426273850086">Inethiwekhi ye-<ph name="NETWORK_INDEX" /> kwangu-<ph name="NETWORK_COUNT" />, <ph name="PHONE_NAME" />, <ph name="PROVIDER_NAME" />, Amandla Esignali <ph name="SIGNAL_STRENGTH" />%, Ibhethri Lefoni <ph name="BATTERY_STATUS" />%, Xhuma</translation>
+-<translation id="7075931588889865715">Isi-Thai esinekhibhodi ye-TIS 820-2531</translation>
++<translation id="7075931588889865715">Thai esinekhibhodi ye-TIS 820-2531</translation>
+ <translation id="708278670402572152">Nqamula ukuze unike amandla ukuskena</translation>
+ <translation id="7086590977277044826">Isi-Tamil esinekhibhodi ye-InScript</translation>
+ <translation id="7103992300314999525"> Macedonian</translation>
+@@ -736,13 +736,13 @@
+ <translation id="7294063083760278948">Ukuguqulwa kwamaletha ngesi-Telugu</translation>
+ <translation id="7295662345261934369">Yabelana nabanye</translation>
+ <translation id="7297443947353982503">Igama lomsebenzisi/iphasiwedi ayilungile noma i-EAP-auth yehlulekile</translation>
+-<translation id="7309413087278791451">Isi-German (Belgium)</translation>
++<translation id="7309413087278791451">German (Belgium)</translation>
+ <translation id="7339898014177206373">Iwindi elisha</translation>
+ <translation id="7343393116438664539">Isi-Vietnamese Telex</translation>
+ <translation id="7359359531237882347">Ukukopisha izinto ezingu-<ph name="NUMBER_OF_ITEMS" />...</translation>
+ <translation id="7375951387215729722">Uhlu lwefayela luhlungwe nge-<ph name="COLUMN_NAME" /> nge-oda eyehlayo.</translation>
+ <translation id="7402503521691663770">Amadivayisi we-ChromeOS Flex</translation>
+-<translation id="7408870451288633753">Isi-Czech</translation>
++<translation id="7408870451288633753">Czech</translation>
+ <translation id="7417453074306512035">Ikhibhodi ye-Ethiopic</translation>
+ <translation id="7417705661718309329">Imephu ye-Google</translation>
+ <translation id="7460898608667578234">Isi-Ukrainian</translation>
+@@ -760,7 +760,7 @@
+ <translation id="7544853251252956727">Shova</translation>
+ <translation id="7547009467130558110">Iteki</translation>
+ <translation id="7547780573915868306">isi-Lithuanian</translation>
+-<translation id="7547811415869834682">Isi-Dutch</translation>
++<translation id="7547811415869834682">Dutch</translation>
+ <translation id="7551643184018910560">Phina kushelufu</translation>
+ <translation id="7553492409867692754">Nika izinhlelo zokusebenza ze-Linux imvume yokufinyelela amafayela kufolda ye-<ph name="FOLDER_NAME" /></translation>
+ <translation id="7575645593344061397">Ibuyisela i-"<ph name="FILENAME" />"...</translation>
+@@ -794,8 +794,8 @@
+ <translation id="7799329977874311193">Idokhumenti ye-HTML</translation>
+ <translation id="7801354353640549019">Ama-Chromebook</translation>
+ <translation id="7805768142964895445">Isimo</translation>
+-<translation id="7806708061868529807">Isi-Hebrew</translation>
+-<translation id="78104721049218340">Isi-Thai esinekhibhodi ye-Kedmanee</translation>
++<translation id="7806708061868529807">Hebrew</translation>
++<translation id="78104721049218340">Thai esinekhibhodi ye-Kedmanee</translation>
+ <translation id="7821462174190887129"><ph name="FILE_COUNT" /> itholakele.
+     <ph name="LINE_BREAK1" />
+     Isikhala sakho se-Google Drayivu asisikhulu ngokwanele. U-<ph name="FILE_SIZE" /> ngaphezulu uyadingeka.
+@@ -808,8 +808,8 @@
+ <translation id="7847617962681804761">Iphinikhodi iyadingeka ukuze usebenzise idatha yeselula</translation>
+ <translation id="7853966320808728790">I-French BÉPO</translation>
+ <translation id="7857117644404132472">Engeza okuhlukile</translation>
+-<translation id="7868774406711971383">Isi-Polish</translation>
+-<translation id="7874321682039004450">Isi-Filipino</translation>
++<translation id="7868774406711971383">Polish</translation>
++<translation id="7874321682039004450">Filipino</translation>
+ <translation id="7881969471599061635">Khubaza imibhalo engezansi</translation>
+ <translation id="78946041517601018">Amadrayivu abiwayo</translation>
+ <translation id="7908793776359722643">Ukufometha ingxenye kuzosula yonke idatha egcinwe kuyo. Lesi senzo asikwazi ukuhlehliswa.</translation>
+@@ -893,7 +893,7 @@
+ <translation id="8540608333167683902">Inethiwekhi <ph name="NETWORK_INDEX" /> ye-<ph name="NETWORK_COUNT" />, <ph name="NETWORK_NAME" />, <ph name="CONNECTION_STATUS" />, amandla esignali <ph name="SIGNAL_STRENGTH" />%, imininingwane</translation>
+ <translation id="8545476925160229291">English(US)</translation>
+ <translation id="854655314928502177">I-URL yokutholakala kommeleli ozenzakalelayo wewebhu</translation>
+-<translation id="8549186985808798022">Isi-Italian</translation>
++<translation id="8549186985808798022">Italian</translation>
+ <translation id="8551494947769799688">Latvian</translation>
+ <translation id="8560515948038859357">Isi-Cantonese</translation>
+ <translation id="8561206103590473338">Indlovu</translation>
+@@ -932,7 +932,7 @@
+ <translation id="8900820606136623064">Hungarian</translation>
+ <translation id="8903931173357132290">Thola iziqu</translation>
+ <translation id="8912078710089354287">Inja enyakazisa umsila</translation>
+-<translation id="8919081441417203123">Isi-Danish</translation>
++<translation id="8919081441417203123">Danish</translation>
+ <translation id="8965697826696209160">Asikho isikhala esanele.</translation>
+ <translation id="8970501467542182729">Leli fayela lidizayinelwe ikhompuyutha esebenzisa isofthiwe ye-Macintosh. Lokhu akuhambelani nedivayisi yakho esebenzisa i-Chrome OS. <ph name="BEGIN_LINK_HELP" />Funda kabanzi<ph name="END_LINK_HELP" /> ngokuvula amafayela ku-Chrome OS.</translation>
+ <translation id="8997962250644902079">Chinese (Traditional) Pinyin</translation>
+diff --git a/ui/strings/translations/ui_strings_ml.xtb b/ui/strings/translations/ui_strings_ml.xtb
+index 57b083b88175..1d6805b8907c 100644
+--- a/ui/strings/translations/ui_strings_ml.xtb
++++ b/ui/strings/translations/ui_strings_ml.xtb
+@@ -6,7 +6,7 @@
+ <translation id="1127811143501539442">{DAYS,plural, =1{ഒരു ദിവസം മുമ്പ്}other{# ദിവസം മുമ്പ്}}</translation>
+ <translation id="1156623771253174079">{SECONDS,plural, =1{ഒരു മിനിറ്റിന് മുമ്പ്}other{# മിനിറ്റ് മുമ്പ്}}</translation>
+ <translation id="1169783199079129864">{MINUTES,plural, =1{ 1 മീറ്റര്‍}other{# മീറ്റർ}}</translation>
+-<translation id="1243314992276662751">അപ്‌ലോഡുചെയ്യുക</translation>
++<translation id="1243314992276662751">അപ്‌ലോഡ് ചെയ്യുക</translation>
+ <translation id="1266864766717917324"><ph name="CONTENT_TYPE" /> പങ്കിടാനായില്ല</translation>
+ <translation id="1269641567813814718">Win</translation>
+ <translation id="1291104554099683393">ചെറിയ ഭാഗങ്ങളായി ടെക്‌സ്‌റ്റ് പങ്കിടാൻ ശ്രമിക്കൂ.</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0036-5005-infra-Add-the-root-vpython-spec-files-to-orches.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0036-5005-infra-Add-the-root-vpython-spec-files-to-orches.patch
new file mode 100644
index 000000000000..b676ade10a0a
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0036-5005-infra-Add-the-root-vpython-spec-files-to-orches.patch
@@ -0,0 +1,57 @@
+From ccc523864d7c822d2fbc5ffa5ffb92441d8d03c0 Mon Sep 17 00:00:00 2001
+From: Ben Pastene <bpastene@chromium.org>
+Date: Thu, 23 Jun 2022 18:23:48 +0000
+Subject: [PATCH 36/59] 5005: infra: Add the root vpython spec files to
+ orchestrator runtime deps
+
+Some merge scripts import six. When preventing tools/build's venv from
+propagating into their execution, they fail with import errors, eg:
+https://logs.chromium.org/logs/chromium/led/infra-try-recipes-tester_chops-service-accounts.iam.gserviceaccount.com/87eaf62ee4e951d34e812ec2f066e106325201c793155d01c8e6ab39ffb58a0e/+/u/angle_unittests__with_patch__on_Ubuntu-18.04/Merge_script_log
+
+This is because the orchestrator doesn't have chromium's root vpython
+spec files, and so have no way of importing six. So this throws the root
+specs into the bundle that the orchestrator fetches since it's very
+possible that merge/collect scripts will pop-up in the future that need
+other non-standard libs present in the root spec files.
+
+(cherry picked from commit c263d8d4c6e6639e328b8b818e1ba038b2159807)
+
+Bug: 1326517
+Change-Id: I8c42fcfcc29c977b7c31fc58f03256b30f844a01
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3718050
+Reviewed-by: Stephanie Kim <kimstephanie@google.com>
+Reviewed-by: Garrett Beaty <gbeaty@google.com>
+Commit-Queue: Ben Pastene <bpastene@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1016890}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3721582
+Cr-Commit-Position: refs/branch-heads/5005@{#1195}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ infra/orchestrator/BUILD.gn | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/infra/orchestrator/BUILD.gn b/infra/orchestrator/BUILD.gn
+index 624de2e75eb3..b2488e07b978 100644
+--- a/infra/orchestrator/BUILD.gn
++++ b/infra/orchestrator/BUILD.gn
+@@ -18,8 +18,15 @@ group("orchestrator_all") {
+     ":standard_isolated_script_merge_py",
+   ]
+ 
+-  # Test specs the Orchestrator needs to trigger swarming tests
+-  data = [ "//testing/buildbot/*.json" ]
++  data = [
++    # Various merge/collect scripts will likely need a venv specified in
++    # the root vpython spec files.
++    "//.vpython",
++    "//.vpython3",
++
++    # Test specs the Orchestrator needs to trigger swarming tests
++    "//testing/buildbot/*.json",
++  ]
+ 
+   # coverage tool for the Orchestrator to merge and output coverage data
+   if (use_clang_coverage) {
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0037-Incrementing-VERSION-to-102.0.5005.139.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0037-Incrementing-VERSION-to-102.0.5005.139.patch
new file mode 100644
index 000000000000..e25413ff5018
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0037-Incrementing-VERSION-to-102.0.5005.139.patch
@@ -0,0 +1,28 @@
+From 035949396fb58fe3d690f6e6f2bd2ac020554faf Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Fri, 24 Jun 2022 01:00:37 +0000
+Subject: [PATCH 37/59] Incrementing VERSION to 102.0.5005.139
+
+Change-Id: I328ea7e8c903db76166895af4cb90a578f2a0592
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3722416
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1196}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index a63b8dbbec13..68428cc298bc 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=138
++PATCH=139
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0038-Incrementing-VERSION-to-102.0.5005.140.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0038-Incrementing-VERSION-to-102.0.5005.140.patch
new file mode 100644
index 000000000000..04bec07f91ee
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0038-Incrementing-VERSION-to-102.0.5005.140.patch
@@ -0,0 +1,28 @@
+From e11498cece444b8f37363fd08322e87429d79e1c Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sat, 25 Jun 2022 01:00:30 +0000
+Subject: [PATCH 38/59] Incrementing VERSION to 102.0.5005.140
+
+Change-Id: Ie76b68333f90b75b8ddcb541e3b0015b169e4a86
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3724132
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1197}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 68428cc298bc..4bf645c073de 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=139
++PATCH=140
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0039-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0039-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..2c7116966845
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0039-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,101 @@
+From b1ffae104b7ed5ba78885ad1be9607ffc450fe2e Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Sat, 25 Jun 2022 14:46:50 +0000
+Subject: [PATCH 39/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I671e7b0066f2e8e7694516ecb1c1f19352e3c857
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3722269
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1198}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_pt-PT.xtb                           | 2 +-
+ chrome/app/resources/generated_resources_te.xtb             | 4 ++--
+ .../strings/translations/android_chrome_strings_te.xtb      | 6 +++---
+ components/strings/components_strings_bs.xtb                | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/ash/strings/ash_strings_pt-PT.xtb b/ash/strings/ash_strings_pt-PT.xtb
+index c47907a293be..0475f638819c 100644
+--- a/ash/strings/ash_strings_pt-PT.xtb
++++ b/ash/strings/ash_strings_pt-PT.xtb
+@@ -684,7 +684,7 @@ Eis alguns exemplos do que pode experimentar para começar.</translation>
+         <ph name="NOTIFICATION_2" />,
+         <ph name="NUM_OTHER_NOTIFICATION" /></translation>
+ <translation id="5003993274120026347">Frase seguinte</translation>
+-<translation id="5030687792513154421">O tempo terminou</translation>
++<translation id="5030687792513154421">Acabou o tempo</translation>
+ <translation id="5033299697334913360">Clique em qualquer local para capturar o ecrã inteiro.</translation>
+ <translation id="5035236842988137213">O dispositivo <ph name="DEVICE_NAME" /> estabeleceu ligação a um novo telemóvel.</translation>
+ <translation id="5035389544768382859">Confirme a configuração do ecrã</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index 8af2cc506d63..65684cdb50e1 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -38,7 +38,7 @@
+ <translation id="1039337018183941703">ఫైల్ చెల్లదు లేదా పాడైంది</translation>
+ <translation id="1041175011127912238">ఈ పేజీ ప్రతిస్పందించడం లేదు</translation>
+ <translation id="1041263367839475438">అందుబాటులో ఉన్న పరికరాలు</translation>
+-<translation id="1042174272890264476">మీ కంప్యూటర్‌‍లో కూడా <ph name="SHORT_PRODUCT_NAME" /> యొక్క అంతర్గత RLZ లైబ్రరీ ఉంటుంది. RLZ సెర్చ్‌లను మరియు నిర్దిష్ట ప్రమోషనల్ ప్రచారం ద్వారా ఉపయోగించబడిన <ph name="SHORT_PRODUCT_NAME" /> వినియోగాన్ని లెక్కించడానికి, ప్రత్యేకం కానటువంటి, వ్యక్తిగతంగా గుర్తించలేని ట్యాగ్‌ను సమర్పిస్తుంది. ఈ లేబుళ్లు కొన్నిసార్లు <ph name="PRODUCT_NAME" />లోని Google శోధన ప్రశ్నలలో కనిపిస్తాయి.</translation>
++<translation id="1042174272890264476">మీ కంప్యూటర్‌‍లో కూడా <ph name="SHORT_PRODUCT_NAME" /> యొక్క అంతర్గత RLZ లైబ్రరీ ఉంటుంది. RLZ సెర్చ్‌లను మరియు నిర్దిష్ట ప్రమోషనల్ ప్రచారం ద్వారా ఉపయోగించబడిన <ph name="SHORT_PRODUCT_NAME" /> వినియోగాన్ని లెక్కించడానికి, ప్రత్యేకం కానటువంటి, వ్యక్తిగతంగా గుర్తించలేని ట్యాగ్‌ను సమర్పిస్తుంది. ఈ లేబుళ్లు కొన్నిసార్లు <ph name="PRODUCT_NAME" />లోని Google Search ప్రశ్నలలో కనిపిస్తాయి.</translation>
+ <translation id="1043505821207197890">ఏదో తప్పు జరిగింది. Linux పాక్షికంగా మాత్రమే అప్‌గ్రేడ్ అయి ఉండవచ్చు. మరింత సమాచారం కోసం లాగ్స్‌ను రివ్యూ చేయండి. Files &gt; నా ఫైల్స్ &gt; <ph name="LOG_FILE" /> అనే సెట్టింగ్‌లో లాగ్స్ సేవ్ చేయబడ్డాయి</translation>
+ <translation id="1043818413152647937">అలాగే, ఈ యాప్‌ల నుండి డేటాను క్లియర్ చేయాలా?</translation>
+ <translation id="1043824690776631483">ఈ సైట్‌కు వెళ్లడానికి మీకు అనుమతి అవసరం. ఇందులో అనుచితమైన కంటెంట్ ఉండవచ్చు.</translation>
+@@ -6307,7 +6307,7 @@
+ <translation id="7193051357671784796">మీ సంస్థ ద్వారా ఈ యాప్ జోడించబడింది. యాప్‌ను పునఃప్రారంభించడం ద్వారా దీని ఇన్‌స్టాలేషన్‌ను పూర్తి చేయండి.</translation>
+ <translation id="7193374945610105795"><ph name="ORIGIN" /> కోసం పాస్‌వర్డ్‌లు సేవ్ చేయబడలేదు</translation>
+ <translation id="7196913789568937443">Google Driveకు బ్యాకప్ చేయండి. ఏ సమయంలో అయినా సులభంగా మీ డేటాని పునరుద్ధరించండి లేదా పరికరాన్ని మార్చండి. ఈ బ్యాకప్‌లో యాప్ డేటా ఉంటుంది. బ్యాకప్‌లు Googleకి అప్‌లోడ్ చేయబడతాయి మరియు మీ Google ఖాతా పాస్‌వర్డ్‌ని ఉపయోగించి ఎన్‌క్రిప్ట్ చేయబడతాయి. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
+-<translation id="7197190419934240522">మీరు బ్రౌజ్ చేసే ప్రతిసారి Google శోధన మరియు Google స్మార్ట్‌లను పొందండి</translation>
++<translation id="7197190419934240522">మీరు బ్రౌజ్ చేసే ప్రతిసారి Google Search మరియు Google స్మార్ట్‌లను పొందండి</translation>
+ <translation id="719791532916917144">కీబోర్డ్ షార్ట్‌కట్</translation>
+ <translation id="7198503619164954386">మీరు ఎంటర్ప్రైజ్-ఎన్‌రోల్ చేసిన పరికరంలో ఉండాలి</translation>
+ <translation id="7199158086730159431">సహా&amp;యం పొందండి</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+index 657f92070e7e..8b0bd7668111 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+@@ -201,7 +201,7 @@
+ <translation id="2096012225669085171">అన్ని పరికరాలలో సింక్ చేయండి మరియు వ్యక్తిగతీకరించండి</translation>
+ <translation id="2100273922101894616">ఆటోమేటిక్ సైన్-ఇన్</translation>
+ <translation id="2100314319871056947">వచనాన్ని చిన్న భాగాలుగా చేసి షేర్ చేయడానికి ప్రయత్నించండి</translation>
+-<translation id="2109711654079915747">పేజీ వదిలిపెట్టకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి తాకండి' అనే ఫీచర్ ద్వారా, ఏదైనా ఒక పదాన్ని, దానికి సంబంధించిన సందర్భాన్ని Google శోధనకు పంపవచ్చు. దీని వల్ల, ఆ పదానికి సంబంధించిన నిర్వచనాలు, ఫోటోలు, శోధన ఫలితాలు, ఇతర వివరాలు పొందవచ్చు.
++<translation id="2109711654079915747">పేజీ వదిలిపెట్టకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి తాకండి' అనే ఫీచర్ ద్వారా, ఏదైనా ఒక పదాన్ని, దానికి సంబంధించిన సందర్భాన్ని Google Searchకు పంపవచ్చు. దీని వల్ల, ఆ పదానికి సంబంధించిన నిర్వచనాలు, ఫోటోలు, శోధన ఫలితాలు, ఇతర వివరాలు పొందవచ్చు.
+ 
+ ఏదైనా పదంపై ట్యాప్ చేసి, దానిని వెతకండి. మీ శోధనను మెరుగుపరచడానికి, మరిన్ని ఎక్కువ లేదా తక్కువ పదాలను ఎంచుకునేందుకు తాకి &amp; అలాగే నొక్కి ఉంచండి. మీ శోధనను ఎడిట్ చేయడానికి, ప్యానెల్‌ను తెరిచి, చిహ్నంపై ట్యాప్ చేయడం ద్వారా కొత్త ట్యాబ్‌లో తెరిచి, శోధన పెట్టెలో మీ మార్పులు చేయండి.</translation>
+ <translation id="2111511281910874386">పేజీకి వెళ్లండి</translation>
+@@ -260,7 +260,7 @@
+ <translation id="2433507940547922241">కనిపించే తీరు</translation>
+ <translation id="2435457462613246316">పాస్‌వర్డ్‌ను చూపించు</translation>
+ <translation id="2450083983707403292">మీరు <ph name="FILE_NAME" /> డౌన్‌లోడ్‌ని మళ్లీ ప్రారంభించాలనుకుంటున్నారా?</translation>
+-<translation id="2450907520913474542">పేజీ వదిలిపెట్టకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి తాకండి' అనే ఫీచర్ ద్వారా, ఏదైనా ఒక పదాన్ని, దానికి సంబంధించిన సందర్భాన్ని Google శోధనకు పంపవచ్చు. దీని వల్ల, ఆ పదానికి సంబంధించిన నిర్వచనాలు, ఫోటోలు, శోధన ఫలితాలు, ఇతర వివరాలు పొందవచ్చు.
++<translation id="2450907520913474542">పేజీ వదిలిపెట్టకుండానే వెబ్‌సైట్‌లలోని అంశాల గురించి తెలుసుకోండి. 'వెతకడానికి తాకండి' అనే ఫీచర్ ద్వారా, ఏదైనా ఒక పదాన్ని, దానికి సంబంధించిన సందర్భాన్ని Google Searchకు పంపవచ్చు. దీని వల్ల, ఆ పదానికి సంబంధించిన నిర్వచనాలు, ఫోటోలు, శోధన ఫలితాలు, ఇతర వివరాలు పొందవచ్చు.
+ 
+ ఏదైనా పదంపై తాకి &amp; అలాగే నొక్కి ఉంచడం ద్వారా, దానిని వెతకండి. మీ శోధనను మెరుగుపరచడానికి, మరిన్ని లేదా తక్కువ పదాలను ఎంచుకోండి. మీ శోధనను ఎడిట్ చేయడానికి, ప్యానెల్‌ను తెరిచి, చిహ్నంపై ట్యాప్ చేయడం ద్వారా కొత్త ట్యాబ్‌లో తెరిచి, శోధన పెట్టెలో మీ మార్పులు చేయండి.</translation>
+ <translation id="2453860139492968684">ముగించు</translation>
+@@ -1305,7 +1305,7 @@
+ <translation id="8127542551745560481">హోమ్ పేజీని ఎడిట్ చేయండి</translation>
+ <translation id="8130309322784422030">మీ స్టోర్ చేయబడిన సైన్ ఇన్ సమాచారం గడువు ముగిసి ఉండవచ్చు</translation>
+ <translation id="813082847718468539">సైట్ సమాచారాన్ని చూడండి</translation>
+-<translation id="8137558756159375272">'వెతకడానికి తాకండి' ఫీచర్, ఎంచుకున్న పదాన్ని మరియు ప్రస్తుత పేజీని సంబంధిత సందర్భంగా Google శోధనకు పంపుతుంది. మీరు <ph name="BEGIN_LINK" />సెట్టింగ్‌లు<ph name="END_LINK" />లో దీనిని ఆఫ్ చేయవచ్చు.</translation>
++<translation id="8137558756159375272">'వెతకడానికి తాకండి' ఫీచర్, ఎంచుకున్న పదాన్ని మరియు ప్రస్తుత పేజీని సంబంధిత సందర్భంగా Google Searchకు పంపుతుంది. మీరు <ph name="BEGIN_LINK" />సెట్టింగ్‌లు<ph name="END_LINK" />లో దీనిని ఆఫ్ చేయవచ్చు.</translation>
+ <translation id="8153351135626613369">సపోర్ట్ చేసే వెబ్‌సైట్‌లలో మీకు సాయం చేయగలదు అని తనకు తానుగా గుర్తించినప్పుడు Assistant మీకు కనిపిస్తుంది</translation>
+ <translation id="8156139159503939589">మీరు ఏ భాషలను చదవగలరు?</translation>
+ <translation id="8168435359814927499">కంటెంట్</translation>
+diff --git a/components/strings/components_strings_bs.xtb b/components/strings/components_strings_bs.xtb
+index 58f9812b7b3a..9faa55d99f8f 100644
+--- a/components/strings/components_strings_bs.xtb
++++ b/components/strings/components_strings_bs.xtb
+@@ -769,7 +769,7 @@ To će u suprotnom biti blokirano prema vašim postavkama privatnosti. Ovo će o
+ <translation id="3029752078111257850">Vijesti iz svijeta</translation>
+ <translation id="3037605927509011580">Oh, ne!</translation>
+ <translation id="3041612393474885105">Informacije o potvrdi</translation>
+-<translation id="305162504811187366">Historija Chrome udaljenog računara, uključujući vremenske oznake, host računare i ID-jeve sesija klijenta</translation>
++<translation id="305162504811187366">Historija Chrome udaljenog računara, uključujući vremenske oznake, host računare i ID-ove sesija klijenta</translation>
+ <translation id="3060227939791841287">C9 (omotnica)</translation>
+ <translation id="3061707000357573562">Usluga za zakrpe</translation>
+ <translation id="306573536155379004">Igra je počela.</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0040-Incrementing-VERSION-to-102.0.5005.141.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0040-Incrementing-VERSION-to-102.0.5005.141.patch
new file mode 100644
index 000000000000..7d2f3f8ca71f
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0040-Incrementing-VERSION-to-102.0.5005.141.patch
@@ -0,0 +1,28 @@
+From 2a66348c7b114c77befec67d09f7c51bc90481b0 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sun, 26 Jun 2022 01:00:46 +0000
+Subject: [PATCH 40/59] Incrementing VERSION to 102.0.5005.141
+
+Change-Id: I1a2244a2a320c1da6d8a7b015ba0e0e8db376acc
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3723310
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1199}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 4bf645c073de..dcc62d12b2fe 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=140
++PATCH=141
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0041-Incrementing-VERSION-to-102.0.5005.142.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0041-Incrementing-VERSION-to-102.0.5005.142.patch
new file mode 100644
index 000000000000..777243798c5c
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0041-Incrementing-VERSION-to-102.0.5005.142.patch
@@ -0,0 +1,28 @@
+From c449c4553089b1e88bb24d31684952641135f667 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Mon, 27 Jun 2022 01:00:35 +0000
+Subject: [PATCH 41/59] Incrementing VERSION to 102.0.5005.142
+
+Change-Id: Ic20be63d5fcc729e4839732ad7f4ca10244ca906
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3721306
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1200}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index dcc62d12b2fe..a69a3990b617 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=141
++PATCH=142
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0042-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0042-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..7e9a3b997ef7
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0042-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,46 @@
+From cfe07affad708cf7e70decd86bb3cca64e9fca86 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Mon, 27 Jun 2022 14:21:01 +0000
+Subject: [PATCH 42/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I17782c02f17621fa514cfb29abee2836213415b2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3726410
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1201}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_ne.xtb                 | 2 +-
+ chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_ne.xtb b/chrome/app/resources/generated_resources_ne.xtb
+index 3b97345b7229..7f5558886721 100644
+--- a/chrome/app/resources/generated_resources_ne.xtb
++++ b/chrome/app/resources/generated_resources_ne.xtb
+@@ -6698,7 +6698,7 @@
+ <translation id="7614260613810441905">कुनै साइटले तपाईंको डिभाइसका फाइल वा फोल्डरहरू सम्पादन गर्न खोज्दा सोध्नुहोस् (सिफारिस गरिएको)</translation>
+ <translation id="761530003705945209">Google ड्राइभमा ब्याकअप गर्नुहोस् जुनसुकै बेला सजिलैसँग आफ्नो डेटा पुनर्स्थापना गर्नुहोस् वा यन्त्र बदल्नुहोस्। तपाईंको ब्याकअपमा एपको डेटा समावेश हुन्छ। तपाईंका ब्याकअपहरू Google मा अपलोड गरी तपाईंको Google खाताको पासवर्ड प्रयोग गरेर इन्क्रिप्ट गरिन्छन्।</translation>
+ <translation id="7615365294369022248">खाता थप्ने क्रममा कुनै त्रुटि भयो</translation>
+-<translation id="7616214729753637086">यन्त्र दर्ता गर्दै...</translation>
++<translation id="7616214729753637086">डिभाइस दर्ता गरिँदै छ...</translation>
+ <translation id="7617263010641145920">Play Store अन गर्नुहोस्</translation>
+ <translation id="7617366389578322136">"<ph name="DEVICE_NAME" />" मा जडान गरिँदै</translation>
+ <translation id="7617648809369507487">आवाज नआउने म्यासेजिङ प्रयोग गर्नुहोस्</translation>
+diff --git a/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb b/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
+index 0cf012125d68..fc7eb723b99f 100644
+--- a/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
++++ b/chrome/credential_provider/gaiacp/strings/gaia_resources_my.xtb
+@@ -7,7 +7,7 @@
+ <translation id="2515346402363002066">သတ်မှတ်ပေးထားသည့်အချိန် ကုန်သွားပါပြီ။ သင့်အလုပ်သုံးအကောင့်နှင့် လက်မှတ်ထိုးဝင်ပါ။</translation>
+ <translation id="2549902055700841962">သင့်အလုပ်သုံး အကောင့်သို့ လက်မှတ်ထိုးဝင်၍ မရပါ။ သင့်စီမံခန့်ခွဲသူထံ ဆက်သွယ်ပါ။</translation>
+ <translation id="2566603360883977759">ဤအီးမေးလ်ဖြင့် လက်မှတ်ထိုးဝင်ခွင့်မပြုပါ။ အလုပ် (သို့) ကျောင်းအတွက် သင်အသုံးပြုသောအကောင့်ကို ပြန်စမ်းကြည့်ပါ။ လက်မှတ်ထိုးဝင်၍မရသေးပါက သင်၏စီမံခန့်ခွဲသူထံ ဆက်သွယ်ပါ။</translation>
+-<translation id="2844349213149998955">ဤစက်ပေါ်တွင် ကိုယ်ရေးကိုယ်တာအကောင့်နှင့် လက်မှတ်ထိုးဝင်ခြင်းကို ခွင့်မပြုပါ။ အလုပ်သုံး အကောင့်နှင့် လက်မှတ်ထိုးဝင်ပါ။</translation>
++<translation id="2844349213149998955">ဤစက်ပေါ်တွင် ကိုယ်ပိုင်အကောင့်ဖြင့် လက်မှတ်ထိုးဝင်ခြင်းကို ခွင့်မပြုပါ။ အလုပ်သုံး အကောင့်ဖြင့် ဝင်ပါ။</translation>
+ <translation id="3217145568844727893">သင့်လက်ရှိ Windows စကားဝှက် မထည့်ဘဲ ရှေ့ဆက်ပါက ဤစက်ပေါ်ရှိဒေတာများ အပြီးဆုံးရှုံးသွားနိုင်သည်။</translation>
+ <translation id="3306357053520292004">ဤကွန်ပျူတာပေါ်ရှိ အသုံးပြုသူတစ်ဦးကို ဤအကောင့်သုံး၍ ထည့်ထားပြီး ဖြစ်ပါသည်။ အခြားအကောင့်တစ်ခုဖြင့် လက်မှတ်ထိုးဝင်ရောက်ပါ။</translation>
+ <translation id="3355053591933237049">သင့်စက်ကို အင်တာနက်ချိတ်ဆက်ထားခြင်း ရှိမရှိ စစ်ဆေးပြီး ထပ်စမ်းကြည့်ပါ</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0043-Incrementing-VERSION-to-102.0.5005.143.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0043-Incrementing-VERSION-to-102.0.5005.143.patch
new file mode 100644
index 000000000000..1d107689582c
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0043-Incrementing-VERSION-to-102.0.5005.143.patch
@@ -0,0 +1,28 @@
+From 48449d6d4fe931000cc37681a3f797169e74c5d9 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Tue, 28 Jun 2022 01:00:24 +0000
+Subject: [PATCH 43/59] Incrementing VERSION to 102.0.5005.143
+
+Change-Id: I0045565f8b8db576541a4a3630cf6ff7db5415a5
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3731448
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1202}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index a69a3990b617..915e8754e191 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=142
++PATCH=143
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0044-testing-fix-check_static_initializers.py-for-python3.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0044-testing-fix-check_static_initializers.py-for-python3.patch
new file mode 100644
index 000000000000..bd6c8ff8965b
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0044-testing-fix-check_static_initializers.py-for-python3.patch
@@ -0,0 +1,57 @@
+From 7d8cce15d329617b717e4b48fc15054f6c8a2bc2 Mon Sep 17 00:00:00 2001
+From: Takuto Ikuta <tikuta@chromium.org>
+Date: Tue, 28 Jun 2022 02:29:02 +0000
+Subject: [PATCH 44/59] testing: fix check_static_initializers.py for python3
+ for M102
+
+(cherry picked from commit dce7a1bfd410fbeb4e17fc6562c150f5dd81310e)
+
+Bug: 1333950
+Change-Id: I876378a3ccdbb795c64172555766c027d8259f99
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3689103
+Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
+Reviewed-by: Ben Pastene <bpastene@chromium.org>
+Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
+Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1011772}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3713705
+Cr-Commit-Position: refs/branch-heads/5005@{#1203}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ testing/scripts/check_static_initializers.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/testing/scripts/check_static_initializers.py b/testing/scripts/check_static_initializers.py
+index 3afd112883b5..d5351e749254 100755
+--- a/testing/scripts/check_static_initializers.py
++++ b/testing/scripts/check_static_initializers.py
+@@ -64,7 +64,7 @@ COVERAGE_BUILD_FALLBACK_EXPECTED_MAC_SI_COUNT = 4
+ 
+ 
+ def run_process(command):
+-  p = subprocess.Popen(command, stdout=subprocess.PIPE)
++  p = subprocess.Popen(command, stdout=subprocess.PIPE, universal_newlines=True)
+   stdout = p.communicate()[0]
+   if p.returncode != 0:
+     raise Exception(
+@@ -205,7 +205,7 @@ def main_run(args):
+   if sys.platform.startswith('darwin'):
+     rc = main_mac(src_dir,
+       allow_coverage_initializer = '--allow-coverage-initializer' in args.args)
+-  elif sys.platform == 'linux2':
++  elif sys.platform.startswith('linux'):
+     is_chromeos = 'buildername' in args.properties and \
+         'chromeos' in args.properties['buildername']
+     rc = main_linux(src_dir, is_chromeos)
+@@ -222,7 +222,7 @@ def main_run(args):
+ def main_compile_targets(args):
+   if sys.platform.startswith('darwin'):
+     compile_targets = ['chrome']
+-  elif sys.platform == 'linux2':
++  elif sys.platform.startswith('linux'):
+     compile_targets = ['chrome', 'nacl_helper', 'nacl_helper_bootstrap']
+   else:
+     compile_targets = []
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0045-sheriff-Disable-QuarantineMacTest.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0045-sheriff-Disable-QuarantineMacTest.patch
new file mode 100644
index 000000000000..e6a25e72274b
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0045-sheriff-Disable-QuarantineMacTest.patch
@@ -0,0 +1,81 @@
+From ffa3ed225452998f8de5cdde235f3ba0a6400d83 Mon Sep 17 00:00:00 2001
+From: Yuki Shiino <yukishiino@chromium.org>
+Date: Tue, 28 Jun 2022 05:11:12 +0000
+Subject: [PATCH 45/59] sheriff: Disable QuarantineMacTest.*
+
+(cherry picked from commit b9fd9cf1ba3fb180e4c94dc98016066f4f876fa5)
+
+Bug: 1334495
+Change-Id: I300191c2cdf9303e71e680846e0b6568fe0cd6c0
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3692655
+Owners-Override: Yuki Shiino <yukishiino@chromium.org>
+Commit-Queue: Yuki Shiino <yukishiino@chromium.org>
+Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1011837}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3708693
+Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
+Owners-Override: Takuto Ikuta <tikuta@chromium.org>
+Auto-Submit: Steven Holte <holte@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1204}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../quarantine/quarantine_mac_unittest.mm         | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/components/services/quarantine/quarantine_mac_unittest.mm b/components/services/quarantine/quarantine_mac_unittest.mm
+index c7358a3ddfff..36572f572f6a 100644
+--- a/components/services/quarantine/quarantine_mac_unittest.mm
++++ b/components/services/quarantine/quarantine_mac_unittest.mm
+@@ -68,7 +68,8 @@ class QuarantineMacTest : public testing::Test {
+   base::scoped_nsobject<NSURL> file_url_;
+ };
+ 
+-TEST_F(QuarantineMacTest, CheckMetadataSetCorrectly) {
++// TODO(crbug.com/1334495): Enable this test.
++TEST_F(QuarantineMacTest, DISABLED_CheckMetadataSetCorrectly) {
+   QuarantineFile(
+       test_file_, source_url_, referrer_url_, "",
+       base::BindOnce(&CheckQuarantineResult, QuarantineFileResult::OK));
+@@ -76,7 +77,8 @@ TEST_F(QuarantineMacTest, CheckMetadataSetCorrectly) {
+   EXPECT_TRUE(IsFileQuarantined(test_file_, source_url_, referrer_url_));
+ }
+ 
+-TEST_F(QuarantineMacTest, SetMetadataMultipleTimes) {
++// TODO(crbug.com/1334495): Enable this test.
++TEST_F(QuarantineMacTest, DISABLED_SetMetadataMultipleTimes) {
+   GURL dummy_url("http://www.dummy.example.com");
+   QuarantineFile(
+       test_file_, source_url_, referrer_url_, "",
+@@ -97,7 +99,8 @@ TEST_F(QuarantineMacTest, IsFileQuarantined_NoAnnotationsOnFile) {
+   EXPECT_FALSE(IsFileQuarantined(test_file_, GURL(), GURL()));
+ }
+ 
+-TEST_F(QuarantineMacTest, IsFileQuarantined_SourceUrlOnly) {
++// TODO(crbug.com/1334495): Enable this test.
++TEST_F(QuarantineMacTest, DISABLED_IsFileQuarantined_SourceUrlOnly) {
+   QuarantineFile(
+       test_file_, source_url_, GURL(), std::string(),
+       base::BindOnce(&CheckQuarantineResult, QuarantineFileResult::OK));
+@@ -108,7 +111,8 @@ TEST_F(QuarantineMacTest, IsFileQuarantined_SourceUrlOnly) {
+   EXPECT_FALSE(IsFileQuarantined(test_file_, referrer_url_, GURL()));
+ }
+ 
+-TEST_F(QuarantineMacTest, IsFileQuarantined_FullMetadata) {
++// TODO(crbug.com/1334495): Enable this test.
++TEST_F(QuarantineMacTest, DISABLED_IsFileQuarantined_FullMetadata) {
+   QuarantineFile(
+       test_file_, source_url_, referrer_url_, std::string(),
+       base::BindOnce(&CheckQuarantineResult, QuarantineFileResult::OK));
+@@ -121,7 +125,8 @@ TEST_F(QuarantineMacTest, IsFileQuarantined_FullMetadata) {
+   EXPECT_FALSE(IsFileQuarantined(test_file_, referrer_url_, referrer_url_));
+ }
+ 
+-TEST_F(QuarantineMacTest, IsFileQuarantined_Sanitize) {
++// TODO(crbug.com/1334495): Enable this test.
++TEST_F(QuarantineMacTest, DISABLED_IsFileQuarantined_Sanitize) {
+   GURL host_url{"https://user:pass@example.com/foo/bar?x#y"};
+   GURL host_url_clean{"https://example.com/foo/bar?x#y"};
+   GURL referrer_url{"https://user:pass@example.com/foo/index?x#y"};
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0046-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0046-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..d2d23b799766
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0046-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,274 @@
+From 363e0eca3560faf7d01c41c81fa622c840b705fb Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Tue, 28 Jun 2022 14:37:25 +0000
+Subject: [PATCH 46/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Ib7225417cd733aad7e0379456f5c1d83215d5b19
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3731031
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1205}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_de.xtb                 |  2 +-
+ .../app/resources/generated_resources_mr.xtb   |  2 +-
+ .../resources/generated_resources_pt-PT.xtb    | 18 +++++++++---------
+ .../app/resources/generated_resources_te.xtb   |  2 +-
+ .../strings/accessibility_strings_pt-PT.xtb    | 18 +++++++++---------
+ .../policy/resources/policy_templates_de.xtb   |  2 +-
+ components/strings/components_strings_mr.xtb   |  2 +-
+ components/strings/components_strings_te.xtb   |  2 +-
+ 8 files changed, 24 insertions(+), 24 deletions(-)
+
+diff --git a/ash/strings/ash_strings_de.xtb b/ash/strings/ash_strings_de.xtb
+index 3298a08b2472..ecd143d7e28a 100644
+--- a/ash/strings/ash_strings_de.xtb
++++ b/ash/strings/ash_strings_de.xtb
+@@ -1207,7 +1207,7 @@ Neuinstallation</translation>
+ <translation id="8351131234907093545">Notiz erstellen</translation>
+ <translation id="8364673525741149932">Shelf Party ein-/ausschalten. <ph name="STATE_TEXT" /></translation>
+ <translation id="8371779926711439835">Weiter um einen Buchstaben</translation>
+-<translation id="8371991222807690464">Die Leistung von Peripheriegeräten kann im Gastmodus eingeschränkt sein</translation>
++<translation id="8371991222807690464">Die Leistung des Peripheriegeräts kann im Gastmodus eingeschränkt sein</translation>
+ <translation id="8375916635258623388"><ph name="DEVICE_NAME" /> und dein Smartphone werden automatisch miteinander verbunden</translation>
+ <translation id="8380784334203145311">Gute Nacht,</translation>
+ <translation id="8382715499079447151">Spionageschutz</translation>
+diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
+index 765298e60f1b..0d2076903033 100644
+--- a/chrome/app/resources/generated_resources_mr.xtb
++++ b/chrome/app/resources/generated_resources_mr.xtb
+@@ -2719,7 +2719,7 @@
+ <translation id="360180734785106144">नवीन वैशिष्ट्ये उपलब्ध होताच क्षणी ते ऑफर करते</translation>
+ <translation id="3602290021589620013">पूर्वावलोकन</translation>
+ <translation id="3602870520245633055">प्रिंट आणि स्कॅन करा</translation>
+-<translation id="3603622770190368340">नेटवर्क सर्टिफिकेट प्राप्त करा</translation>
++<translation id="3603622770190368340">नेटवर्क सर्टिफिकेट मिळवा</translation>
+ <translation id="3604713164406837697">वॉलपेपर बदला</translation>
+ <translation id="3605780360466892872">बटनडाउन</translation>
+ <translation id="3608576286259426129">वापरकर्ता इमेज पूर्वावलोकन</translation>
+diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
+index b2d1427a5ddc..b5c662e463fc 100644
+--- a/chrome/app/resources/generated_resources_pt-PT.xtb
++++ b/chrome/app/resources/generated_resources_pt-PT.xtb
+@@ -13,7 +13,7 @@
+ <translation id="1009476156254802388">Localização do <ph name="WEB_DRIVE" /></translation>
+ <translation id="1010498023906173788">Este separador está associado a uma porta de série.</translation>
+ <translation id="1010833424573920260">{NUM_PAGES,plural, =1{Página sem resposta}other{Páginas sem resposta}}</translation>
+-<translation id="1011355516189274711">Volume da síntese de voz</translation>
++<translation id="1011355516189274711">Volume da conversão de texto em voz</translation>
+ <translation id="1012794136286421601">Os seus ficheiros de Docs, Folhas, Slides e Desenhos estão a ser sincronizados. Abra a app Google Drive para aceder aos ficheiros online ou offline.</translation>
+ <translation id="1012876632442809908">Dispositivo USB-C (porta frontal)</translation>
+ <translation id="1015041505466489552">TrackPoint</translation>
+@@ -435,7 +435,7 @@
+ <translation id="1426410128494586442">Sim</translation>
+ <translation id="142655739075382478">A app <ph name="APP_NAME" /> está bloqueada</translation>
+ <translation id="1426870617281699524">Clique em Tentar novamente e aceite o pedido no computador.</translation>
+-<translation id="1427179946227469514">Tom da síntese de voz</translation>
++<translation id="1427179946227469514">Tom da conversão de texto em voz</translation>
+ <translation id="1427269577154060167">País</translation>
+ <translation id="142758023928848008">Ativar as teclas aderentes (para executar atalhos de teclado escrevendo-os sequencialmente)</translation>
+ <translation id="142765311413773645">A licença da app <ph name="APP_NAME" /> expirou</translation>
+@@ -529,7 +529,7 @@ As autorizações que já concedeu às apps podem aplicar-se a esta conta. Pode
+ <translation id="1521774566618522728">Ativo hoje</translation>
+ <translation id="152234381334907219">Nunca guardado</translation>
+ <translation id="1523279371236772909">Visto no mês passado</translation>
+-<translation id="1523978563989812243">Motores da síntese de voz</translation>
++<translation id="1523978563989812243">Motores da conversão de texto em voz</translation>
+ <translation id="1524430321211440688">Teclado</translation>
+ <translation id="1524563461097350801">Não, Obrigado</translation>
+ <translation id="1525740877599838384">Utilizar apenas Wi-Fi para determinar a localização</translation>
+@@ -810,7 +810,7 @@ As autorizações que já concedeu às apps podem aplicar-se a esta conta. Pode
+ <translation id="1768278914020124551">Ups! Ocorreu um problema ao contactar o servidor de início de sessão. Verifique a sua ligação de rede e o nome do domínio, e tente novamente.</translation>
+ <translation id="1769104665586091481">Abrir Link Numa Nova &amp;Janela</translation>
+ <translation id="177053719077591686">Faça uma cópia de segurança das apps Android para o Google Drive.</translation>
+-<translation id="177336675152937177">Dados de aplicações alojadas</translation>
++<translation id="177336675152937177">Dados de apps alojadas</translation>
+ <translation id="1775706469381199282">Não permitir que os sites utilizem JavaScript</translation>
+ <translation id="1776712937009046120">Adicionar utilizador</translation>
+ <translation id="1776883657531386793"><ph name="OID" />: <ph name="INFO" /></translation>
+@@ -2788,7 +2788,7 @@ Pretende pará-lo?</translation>
+ <translation id="3678156199662914018">Extensão: <ph name="EXTENSION_NAME" /></translation>
+ <translation id="3678188444105291936">As páginas visualizadas nesta janela não serão apresentadas no histórico do navegador nem no histórico de pesquisas e não deixarão outros vestígios, como cookies, no computador depois de terminar sessão. Os ficheiros transferidos e os marcadores criados não serão preservados.</translation>
+ <translation id="368019053277764111">Abra a pesquisa no painel lateral</translation>
+-<translation id="3680683624079082902">Voz da síntese de voz</translation>
++<translation id="3680683624079082902">Voz da conversão de texto em voz</translation>
+ <translation id="3681311097828166361">Obrigado pelo seu feedback. Neste modo, está offline, pelo que o seu relatório será enviado mais tarde.</translation>
+ <translation id="3682824389861648626">Limite de movimentos</translation>
+ <translation id="3683524264665795342">Pedido de Partilha de Ecrã de <ph name="APP_NAME" /></translation>
+@@ -4563,7 +4563,7 @@ Pode atribuir vários interruptores a esta ação.</translation>
+ <translation id="5468173180030470402">À procura de partilhas de ficheiros…</translation>
+ <translation id="5469852975082458401">Pode navegar pelas páginas com um cursor de texto. Prima F7 para desativar esta opção.</translation>
+ <translation id="5470735824776589490">É necessário reiniciar antes de ser possível repor o dispositivo com o Powerwash. <ph name="LINK_BEGIN" />Saber mais<ph name="LINK_END" /></translation>
+-<translation id="5471768120198416576">Olá! Sou a sua voz para a síntese de voz.</translation>
++<translation id="5471768120198416576">Olá! Sou a sua voz para a conversão de texto em voz.</translation>
+ <translation id="5472627187093107397">Guardar palavras-passe para este site</translation>
+ <translation id="5473075389972733037">IBM</translation>
+ <translation id="5473099001878321374">Ao continuar, aceita que este dispositivo também pode transferir e instalar automaticamente atualizações e apps da Google, do operador da criança e do fabricante deste dispositivo, possivelmente através de dados móveis. Algumas destas apps podem oferecer compras na app.</translation>
+@@ -5526,7 +5526,7 @@ Certifique-se de que não revela informações confidenciais.</translation>
+ <translation id="6419524191360800346">Está disponível uma atualização para a versão Debian 11 (Bullseye).</translation>
+ <translation id="6419546358665792306">Carregar expandida</translation>
+ <translation id="642469772702851743">Este dispositivo (SN: <ph name="SERIAL_NUMBER" />) foi bloqueado pelo proprietário.</translation>
+-<translation id="6425556984042222041">Taxa da síntese de voz</translation>
++<translation id="6425556984042222041">Taxa da conversão de texto em voz</translation>
+ <translation id="6426200009596957090">Abrir as definições do ChromeVox</translation>
+ <translation id="642729974267661262">Sem autorização para reproduzir som</translation>
+ <translation id="6429384232893414837">Atualizar erro</translation>
+@@ -5740,7 +5740,7 @@ Certifique-se de que não revela informações confidenciais.</translation>
+ <translation id="6635362468090274700">Ninguém conseguirá partilhar consigo enquanto não se tornar visível.<ph name="BR" /><ph name="BR" />Para se tornar temporariamente visível, abra a área de estado e, em seguida, ative a Visibilidade na proximidade.</translation>
+ <translation id="6635674640674343739">Não é possível estabelecer ligação à rede. Verifique a ligação de rede e tente novamente.</translation>
+ <translation id="6635944431854494329">O proprietário pode controlar esta funcionalidade em Definições &gt; Avançadas &gt; Enviar automaticamente dados de diagnóstico e de utilização para a Google.</translation>
+-<translation id="6635956300022133031">Selecionar e personalizar as vozes para a síntese de voz.</translation>
++<translation id="6635956300022133031">Selecionar e personalizar as vozes para a conversão de texto em voz.</translation>
+ <translation id="6636623428211296678">Explore mais definições abaixo ou conclua agora</translation>
+ <translation id="6639554308659482635">Memória SQLite</translation>
+ <translation id="6640268266988685324">Separador aberto</translation>
+@@ -6374,7 +6374,7 @@ Certifique-se de que não revela informações confidenciais.</translation>
+ <translation id="727441411541283857"><ph name="PERCENTAGE" />% – <ph name="TIME" /> até ficar completa</translation>
+ <translation id="727952162645687754">Erro de transferência</translation>
+ <translation id="7280041992884344566">Ocorreu um erro enquanto o Chrome procurava software prejudicial.</translation>
+-<translation id="7280649757394340890">Definições de voz para a síntese de voz</translation>
++<translation id="7280649757394340890">Definições de voz para a conversão de texto em voz</translation>
+ <translation id="7280877790564589615">Autorização solicitada</translation>
+ <translation id="7282547042039404307">Suave</translation>
+ <translation id="7282992757463864530">Barra de informações</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index 65684cdb50e1..a810b57ffadf 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -5636,7 +5636,7 @@
+         <ph name="EVENT_NAME" /></translation>
+ <translation id="6519689855001245063">అర్హతను చెక్ చేస్తోంది</translation>
+ <translation id="6520087076882753524">మీరు Google పాస్‌వర్డ్ మేనేజర్‌లో సేవ్ చేసిన పాస్‌వర్డ్‌లను చూడవచ్చు, మేనేజ్ చేయవచ్చు</translation>
+-<translation id="6520876759015997832"><ph name="LIST_SIZE" /> శోధన ఫలితం <ph name="LIST_POSITION" />: <ph name="SEARCH_RESULT_TEXT" />. విభాగానికి నావిగేట్ చేయడానికి ఎంటర్ నొక్కండి.</translation>
++<translation id="6520876759015997832"><ph name="LIST_SIZE" /> సెర్చ్ ఫలితం <ph name="LIST_POSITION" />: <ph name="SEARCH_RESULT_TEXT" />. విభాగానికి నావిగేట్ చేయడానికి ఎంటర్ నొక్కండి.</translation>
+ <translation id="6521214596282732365">సైట్‌లు సాధారణంగా మీ ఫాంట్‌లను ఉపయోగించుకుంటాయి, తద్వారా ఆన్‌లైన్ డిజైన్, గ్రాఫిక్స్ టూల్స్‌తో మీరు అధిక క్వాలిటీ గల కంటెంట్‌ను క్రియేట్ చేయవచ్చు</translation>
+ <translation id="6523303810310758032">మీరు బ్రౌజింగ్ హిస్టరీ — మొత్తాన్ని లేదా ఒక నిర్దిష్ట సైట్‌కు సంబంధించిన బ్రౌజింగ్ హిస్టరీని తొలగించినప్పుడు — అనుబంధించి ఉన్న అంచనా సమాచారాన్ని కూడా మీరు తొలగిస్తారు. <ph name="BEGIN_LINK" />మీ బ్రౌజింగ్ హిస్టరీని<ph name="END_LINK" /> చూడండి</translation>
+ <translation id="6524735478670290456">మేము ఈ డేటాను ఎలా ఉపయోగిస్తాము:</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
+index 5173e0310f25..75f1605d0d03 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_pt-PT.xtb
+@@ -51,7 +51,7 @@
+ <translation id="1246424317317450637">Negrito</translation>
+ <translation id="1251750620252348585">Título de nível 6 seguinte</translation>
+ <translation id="1268366246392928616">Não existe nenhuma expressão matemática anterior.</translation>
+-<translation id="1273314450961659276">Definições da síntese de voz</translation>
++<translation id="1273314450961659276">Definições da conversão de texto em voz</translation>
+ <translation id="1275718070701477396">Linha selecionada</translation>
+ <translation id="1284576163386164372">Pode sempre ver tutoriais ao abrir os menus com um toque de quatro dedos. Em seguida, ative o tutorial na secção "ChromeVox".</translation>
+ <translation id="1291286136605998134">Botão ativar/desativar</translation>
+@@ -198,7 +198,7 @@
+ <translation id="2329324941084714723">Painel de separadores</translation>
+ <translation id="2347456970887948350">Um link</translation>
+ <translation id="2365384324219615024">Também pode premir Enter para ativar itens. Por exemplo, pode utilizar a tecla Enter para enviar texto num formulário. Para continuar, prima Enter.</translation>
+-<translation id="2381733276052567791">Ativar ou desativar a síntese de voz</translation>
++<translation id="2381733276052567791">Ativar ou desativar a conversão de texto em voz</translation>
+ <translation id="2390264819538553347">Para avançar, prima Enter. Para retroceder, prima a tecla de retrocesso.</translation>
+ <translation id="2398579267367951220">Escreva para pesquisar a página. Prima Enter para avançar para o resultado, as setas para cima ou para baixo para procurar resultados, continue a escrever para alterar a sua pesquisa ou prima Escape para cancelar.</translation>
+ <translation id="240709722712693803">Azul-violeta</translation>
+@@ -219,7 +219,7 @@
+ <translation id="2471138580042810658">Título 6</translation>
+ <translation id="248982282205370495">{COUNT,plural, =1{asterisco}other{# asteriscos}}</translation>
+ <translation id="2490721194269245365">Castanho rosado</translation>
+-<translation id="249330843868392562">Abrir definições da síntese de voz</translation>
++<translation id="249330843868392562">Abrir definições da conversão de texto em voz</translation>
+ <translation id="2497706219848005458">Amarelo-esverdeado</translation>
+ <translation id="2523609930580546572">Tutorial do ChromeVox</translation>
+ <translation id="2525706221823668172">Atalhos de teclado do Chromebook</translation>
+@@ -656,7 +656,7 @@
+ <translation id="5452267669091857717">Não existe nenhum cabeçalho de nível 1 seguinte.</translation>
+ <translation id="5455441614648621694">Complementar</translation>
+ <translation id="5462510922370980473">Lista de páginas</translation>
+-<translation id="5471768120198416576">Olá! Sou a sua voz para a síntese de voz.</translation>
++<translation id="5471768120198416576">Olá! Sou a sua voz para a conversão de texto em voz.</translation>
+ <translation id="5495517933067991341">Teclas essenciais: Shift</translation>
+ <translation id="549602578321198708">Palavra</translation>
+ <translation id="5513242761114685513">Menu de contexto</translation>
+@@ -705,7 +705,7 @@
+ <translation id="5748623122140342504">Título de nível 5 anterior</translation>
+ <translation id="5760594853119905566">Apêndice</translation>
+ <translation id="5761219715606611783">Muito bem! Aprendeu as noções básicas acerca do toque do ChromeVox. Pode voltar a assistir ao tutorial ou sair do mesmo com os botões abaixo.</translation>
+-<translation id="5776001898637896684">Extensão de síntese de voz Google Enhanced Network</translation>
++<translation id="5776001898637896684">Extensão de conversão de texto em voz Google Enhanced Network</translation>
+ <translation id="5805940204952508776">Tocar com dois dedos</translation>
+ <translation id="5819072574982403430">Item de árvore</translation>
+ <translation id="5822819874379903994">Azul-turquesa escuro</translation>
+@@ -723,7 +723,7 @@
+ <translation id="5876817486144482042">Diminuir volume de voz</translation>
+ <translation id="5878206664863390311">Prima a tecla de pesquisa + seta para a direita ou tecla de pesquisa + seta para a esquerda para procurar tópicos</translation>
+ <translation id="5878908838135392163">Azul-pólvora</translation>
+-<translation id="588108970619830498">Reponha as definições da síntese de voz para os valores predefinidos.</translation>
++<translation id="588108970619830498">Reponha as definições da conversão de texto em voz para os valores predefinidos.</translation>
+ <translation id="5891934789323004067">Tabela</translation>
+ <translation id="5899860758576822363">Reproduzir num volume mais baixo quando o ChromeVox estiver a falar</translation>
+ <translation id="5901630391730855834">Amarelo</translation>
+@@ -902,7 +902,7 @@
+ <translation id="7244947685630430863">Não existe nenhum gráfico anterior.</translation>
+ <translation id="7248671827512403053">Aplicação</translation>
+ <translation id="725969808843520477">Botão de opção seguinte</translation>
+-<translation id="7261612856573623172">Voz da síntese de voz do sistema</translation>
++<translation id="7261612856573623172">Voz da conversão de texto em voz do sistema</translation>
+ <translation id="7269119382257320590">Sem pontuação</translation>
+ <translation id="7271278495464744706">Ativar descrições detalhadas</translation>
+ <translation id="7273174640290488576">Em branco</translation>
+@@ -960,7 +960,7 @@
+ <translation id="7668307052366682650">{COUNT,plural, =1{hora}other{horas}}</translation>
+ <translation id="7674576868851035240">Link seguinte</translation>
+ <translation id="7674768236845044097">mark</translation>
+-<translation id="7676847077928500578">Repor definições da síntese de voz</translation>
++<translation id="7676847077928500578">Repor definições da conversão de texto em voz</translation>
+ <translation id="7684431668231950609">Editar texto, entrada de URL</translation>
+ <translation id="7685589220304187312">tlbar</translation>
+ <translation id="7693840228159394336">Botão de opção anterior</translation>
+@@ -1057,7 +1057,7 @@
+ <translation id="831207808878314375">Definição</translation>
+ <translation id="8313653172105209786">dir</translation>
+ <translation id="8316881042119029234">Renda antiga</translation>
+-<translation id="8324974933005349667">Personalizar as definições da síntese de voz</translation>
++<translation id="8324974933005349667">Personalizar as definições da conversão de texto em voz</translation>
+ <translation id="8326783648485765113">Verde-relva</translation>
+ <translation id="8345569862449483843">{COUNT,plural, =1{libra}other{# sinais de libra}}</translation>
+ <translation id="8378855320830505539">Região</translation>
+diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
+index feae20418efb..e3cdc43623fa 100644
+--- a/components/policy/resources/policy_templates_de.xtb
++++ b/components/policy/resources/policy_templates_de.xtb
+@@ -6255,7 +6255,7 @@ werden abgelehnt.</translation>
+           Bei Ursprüngen, die durch die hier angegebenen Muster nicht abgedeckt sind, kommt entweder der globale Standardwert der Richtlinie „<ph name="INSECURE_PRIVATE_NETWORK_REQUESTS_ALLOWED_POLICY_NAME" />“, sofern konfiguriert, oder die persönliche Konfiguration des Nutzers zum Einsatz.
+ 
+           Weitere Informationen zu gültigen URL-Mustern findest du unter https://cloud.google.com/docs/chrome-enterprise/policies/url-patterns.</translation>
+-<translation id="7906983682927840536">Keepalive-Dauer beim Herunterfahren abrufen</translation>
++<translation id="7906983682927840536">Fetch-Keepalive-Dauer beim Herunterfahren</translation>
+ <translation id="7908384265697653397">Zeitraum in Tagen, nach dem der Nutzer abgemeldet wird, wenn die Version von <ph name="PRODUCT_OS_NAME" /> niedriger ist als der angegebene <ph name="CHROMEOS_VERSION_PROPERTY_NAME" />-Wert.</translation>
+ <translation id="7912255076272890813">Zulässige App- bzw. Erweiterungstypen konfigurieren</translation>
+ <translation id="791267408364877739">Sicherheitswarnungen anzeigen, wenn potenziell schädliche Befehlszeilen-Flags verwendet werden</translation>
+diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
+index 4d28b6c9f60b..b41b739d4c8c 100644
+--- a/components/strings/components_strings_mr.xtb
++++ b/components/strings/components_strings_mr.xtb
+@@ -918,7 +918,7 @@
+ <translation id="3443726618221119081">Juuro-Ku-Kai</translation>
+ <translation id="3447661539832366887">या डिव्हाइसच्या मालकाने डायनासोर गेम बंद केला आहे.</translation>
+ <translation id="3447884698081792621">सर्टिफिकेट दाखवा (<ph name="ISSUER" /> ने जारी केलेले)</translation>
+-<translation id="3452404311384756672">मध्यंतर प्राप्त करा:</translation>
++<translation id="3452404311384756672">मध्यंतर मिळवा:</translation>
+ <translation id="3453962258458347894">किती वेळा पुन्हा प्रयत्न केले</translation>
+ <translation id="3454555520521576458">आकार बदलण्यायोग्य</translation>
+ <translation id="3456231139987291353">Number-11 (Envelope)</translation>
+diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
+index 4c6638f9b39e..27f1afd0deae 100644
+--- a/components/strings/components_strings_te.xtb
++++ b/components/strings/components_strings_te.xtb
+@@ -2298,7 +2298,7 @@
+ <translation id="7365596969960773405"><ph name="MANAGE_ADDRESSES_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chrome సెట్టింగ్‌లలో అడ్రస్‌లను జోడించడానికి, మేనేజ్ చేయడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
+ <translation id="7365849542400970216">మీ పరికరాన్ని ఎలా ఉపయోగించాలో తెలుసుకోవాలనుకుంటున్నారా?</translation>
+ <translation id="7366362069757178916">పేమెంట్ హ్యాండ్లర్‌లు</translation>
+-<translation id="7372973238305370288">శోధన ఫలితం</translation>
++<translation id="7372973238305370288">సెర్చ్ ఫలితం</translation>
+ <translation id="7374461526650987610">ప్రోటోకాల్ నిర్వాహకులు</translation>
+ <translation id="7374733840632556089">మీ పరికరంలో మీరు లేదా మరొకరు ఇన్‌స్టాల్ చేసిన సర్టిఫికేట్ కారణంగా ఈ సమస్య తలెత్తుతుంది. నెట్‌వర్క్‌లను పర్యవేక్షించడానికి మరియు అడ్డగించడానికి సర్టిఫికెట్ ఉపయోగించబడుతుంది, ఇది Chrome ద్వారా విశ్వసించబడదు. పర్యవేక్షణ కోసం కొన్ని చట్టబద్ధమైన కేసులు ఉన్నప్పటికీ, పాఠశాల లేదా కంపెనీ నెట్‌వర్క్‌లో మాదిరిగా, మీరు దీన్ని ఆపలేక పోయినప్పటికీ, ఇది జరుగుతున్నట్లు మీకు తెలుసని Chrome నిర్ధారించుకోవాలనుకుంటుంది. వెబ్‌ను యాక్సెస్ చేసే ఏదైనా బ్రౌజర్ లేదా యాప్‌లో పర్యవేక్షణ జరగవచ్చు.</translation>
+ <translation id="7375818412732305729">ఫైల్‌ను జోడించినప్పుడు</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0047-migrate-metrics_python_tests-to-python3-for-M102.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0047-migrate-metrics_python_tests-to-python3-for-M102.patch
new file mode 100644
index 000000000000..abe8d1225025
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0047-migrate-metrics_python_tests-to-python3-for-M102.patch
@@ -0,0 +1,106 @@
+From 394e7eb51ff0cdd3c240e8d10d9fb08adfbe60c9 Mon Sep 17 00:00:00 2001
+From: Takuto Ikuta <tikuta@chromium.org>
+Date: Tue, 28 Jun 2022 17:22:43 +0000
+Subject: [PATCH 47/59] migrate metrics_python_tests to python3 for M102
+
+This cherry pick includes additional fix for L235 in common.py.
+
+(cherry picked from commit a1b9cfb94303fcbaae90a5def1991d3724b0bdb4)
+
+Bug: 1287214
+Change-Id: I68b680617d2e7aa3ccc23375e2eaaa113779d7c5
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3689318
+Reviewed-by: Robert Kaplow <rkaplow@chromium.org>
+Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
+Reviewed-by: Brian Sheedy <bsheedy@chromium.org>
+Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1011049}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3711081
+Cr-Commit-Position: refs/branch-heads/5005@{#1206}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ testing/scripts/common.py                | 6 +++---
+ testing/scripts/metrics_python_tests.py  | 4 ++--
+ tools/variations/fieldtrial_to_struct.py | 2 +-
+ tools/variations/fieldtrial_util.py      | 2 +-
+ 4 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/testing/scripts/common.py b/testing/scripts/common.py
+index 4965f8f58ba0..995fb9688e83 100644
+--- a/testing/scripts/common.py
++++ b/testing/scripts/common.py
+@@ -208,7 +208,7 @@ def parse_common_test_results(json_results, test_separator='/'):
+   def convert_trie_to_flat_paths(trie, prefix=None):
+     # Also see blinkpy.web_tests.layout_package.json_results_generator
+     result = {}
+-    for name, data in trie.iteritems():
++    for name, data in trie.items():
+       if prefix:
+         name = prefix + test_separator + name
+       if len(data) and not 'actual' in data and not 'expected' in data:
+@@ -232,7 +232,7 @@ def parse_common_test_results(json_results, test_separator='/'):
+   passing_statuses = ('PASS', 'SLOW', 'NEEDSREBASELINE')
+ 
+   for test, result in convert_trie_to_flat_paths(
+-      json_results['tests']).iteritems():
++      json_results['tests']).items():
+     key = 'unexpected_' if result.get('is_unexpected') else ''
+     data = result['actual']
+     actual_results = data.split()
+@@ -291,7 +291,7 @@ def get_gtest_summary_passes(output):
+   mapping = {}
+ 
+   for cur_iteration_data in output.get('per_iteration_data', []):
+-    for test_fullname, results in cur_iteration_data.iteritems():
++    for test_fullname, results in cur_iteration_data.items():
+       # Results is a list with one entry per test try. Last one is the final
+       # result.
+       last_result = results[-1]
+diff --git a/testing/scripts/metrics_python_tests.py b/testing/scripts/metrics_python_tests.py
+index 70770f41b56e..41db12a37b12 100755
+--- a/testing/scripts/metrics_python_tests.py
++++ b/testing/scripts/metrics_python_tests.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env vpython3
+ # 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.
+@@ -15,7 +15,7 @@ import common
+ 
+ def main_run(args):
+   with common.temporary_file() as tempfile_path:
+-    rc = common.run_command(['vpython',
++    rc = common.run_command(['vpython3',
+         os.path.join(common.SRC_DIR, 'testing', 'test_env.py'),
+         os.path.join(common.SRC_DIR, 'tools', 'metrics',
+                      'metrics_python_tests.py'),
+diff --git a/tools/variations/fieldtrial_to_struct.py b/tools/variations/fieldtrial_to_struct.py
+index 9ecf38974795..3c90ff9fea5a 100755
+--- a/tools/variations/fieldtrial_to_struct.py
++++ b/tools/variations/fieldtrial_to_struct.py
+@@ -76,7 +76,7 @@ def _LoadFieldTrialConfig(filename, platforms, invert):
+ def _ConvertOverrideUIStrings(override_ui_strings):
+   """Converts override_ui_strings to formatted dicts."""
+   overrides = []
+-  for ui_string, override in override_ui_strings.iteritems():
++  for ui_string, override in override_ui_strings.items():
+     overrides.append({
+         'name_hash': generate_ui_string_overrider.HashName(ui_string),
+         'value': override
+diff --git a/tools/variations/fieldtrial_util.py b/tools/variations/fieldtrial_util.py
+index ac0b9f54292f..284bcb5899c8 100644
+--- a/tools/variations/fieldtrial_util.py
++++ b/tools/variations/fieldtrial_util.py
+@@ -31,7 +31,7 @@ def _FindDuplicates(entries):
+       duplicates.add(entry)
+     else:
+       seen.add(entry)
+-  return duplicates
++  return sorted(duplicates)
+ 
+ def _CheckForDuplicateFeatures(enable_features, disable_features):
+   enable_features = [f.split('<')[0] for f in enable_features]
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0048-M102-Let-GPU-Intel-Macs-target-12.4.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0048-M102-Let-GPU-Intel-Macs-target-12.4.patch
new file mode 100644
index 000000000000..90b5485dc625
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0048-M102-Let-GPU-Intel-Macs-target-12.4.patch
@@ -0,0 +1,1714 @@
+From 3c1756adad63e6cb926755a8e1f9bce6c1c7cf1b Mon Sep 17 00:00:00 2001
+From: Brian Sheedy <bsheedy@chromium.org>
+Date: Tue, 28 Jun 2022 23:34:56 +0000
+Subject: [PATCH 48/59] [M102] Let GPU Intel Macs target 12.4
+
+Adds Mac 12.4 as a valid OS dimension for the stable Intel Mac Mini
+mixin, as the experimental bot seems pretty happy with the OS upgrade.
+
+(cherry picked from commit 474c9f01cb4aa3dd5f192b7e9d9478c3cd0f0403)
+
+Bug: 1334335
+Change-Id: I7640208673c90a87202eee73aafd0f42764fbfb4
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3716986
+Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
+Reviewed-by: Yuly Novikov <ynovikov@chromium.org>
+Commit-Queue: Yuly Novikov <ynovikov@chromium.org>
+Cr-Original-Commit-Position: refs/heads/main@{#1017135}
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3733168
+Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1207}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ testing/buildbot/chromium.angle.json         |  22 +--
+ testing/buildbot/chromium.dawn.json          |  48 ++---
+ testing/buildbot/chromium.gpu.fyi.json       | 182 +++++++++----------
+ testing/buildbot/chromium.gpu.json           |  56 +++---
+ testing/buildbot/chromium.swangle.json       |   2 +-
+ testing/buildbot/client.v8.fyi.json          |  18 +-
+ testing/buildbot/mixins.pyl                  |   2 +-
+ testing/buildbot/tryserver.chromium.mac.json |  36 ++--
+ 8 files changed, 183 insertions(+), 183 deletions(-)
+
+diff --git a/testing/buildbot/chromium.angle.json b/testing/buildbot/chromium.angle.json
+index 0130290604aa..f4883ec8b7a4 100644
+--- a/testing/buildbot/chromium.angle.json
++++ b/testing/buildbot/chromium.angle.json
+@@ -302,7 +302,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "named_caches": [
+@@ -362,7 +362,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "named_caches": [
+@@ -1792,7 +1792,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -1817,7 +1817,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1859,7 +1859,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1897,7 +1897,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1936,7 +1936,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1974,7 +1974,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2012,7 +2012,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2050,7 +2050,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2087,7 +2087,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/chromium.dawn.json b/testing/buildbot/chromium.dawn.json
+index a128043e8aea..f1584918902f 100644
+--- a/testing/buildbot/chromium.dawn.json
++++ b/testing/buildbot/chromium.dawn.json
+@@ -1783,7 +1783,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1810,7 +1810,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1837,7 +1837,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1864,7 +1864,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1889,7 +1889,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1912,7 +1912,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1943,7 +1943,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1967,7 +1967,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2005,7 +2005,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -2043,7 +2043,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -2078,7 +2078,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2116,7 +2116,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2972,7 +2972,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -2999,7 +2999,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3026,7 +3026,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3053,7 +3053,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3078,7 +3078,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3101,7 +3101,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3132,7 +3132,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3156,7 +3156,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -3194,7 +3194,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3232,7 +3232,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -3267,7 +3267,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -3305,7 +3305,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/chromium.gpu.fyi.json b/testing/buildbot/chromium.gpu.fyi.json
+index 6c004533a068..3c22537f9264 100644
+--- a/testing/buildbot/chromium.gpu.fyi.json
++++ b/testing/buildbot/chromium.gpu.fyi.json
+@@ -11285,7 +11285,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11314,7 +11314,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11341,7 +11341,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -11368,7 +11368,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11392,7 +11392,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11416,7 +11416,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11437,7 +11437,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11462,7 +11462,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -11500,7 +11500,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11536,7 +11536,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11572,7 +11572,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11608,7 +11608,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11648,7 +11648,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11693,7 +11693,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11738,7 +11738,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11774,7 +11774,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11810,7 +11810,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11855,7 +11855,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11900,7 +11900,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11937,7 +11937,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -11974,7 +11974,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12010,7 +12010,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12048,7 +12048,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12087,7 +12087,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12125,7 +12125,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12163,7 +12163,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12200,7 +12200,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12229,7 +12229,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12257,7 +12257,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -12284,7 +12284,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12308,7 +12308,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12332,7 +12332,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12353,7 +12353,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12378,7 +12378,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -12416,7 +12416,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12452,7 +12452,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12488,7 +12488,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12528,7 +12528,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12573,7 +12573,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12618,7 +12618,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12655,7 +12655,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12691,7 +12691,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -12728,7 +12728,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -13919,7 +13919,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -13948,7 +13948,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -13975,7 +13975,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -14002,7 +14002,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14026,7 +14026,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14050,7 +14050,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14071,7 +14071,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14096,7 +14096,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14134,7 +14134,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14170,7 +14170,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14206,7 +14206,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14242,7 +14242,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14282,7 +14282,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14327,7 +14327,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14372,7 +14372,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14408,7 +14408,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14444,7 +14444,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14489,7 +14489,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14534,7 +14534,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14561,7 +14561,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -14597,7 +14597,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14634,7 +14634,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14670,7 +14670,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14708,7 +14708,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14747,7 +14747,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14786,7 +14786,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14824,7 +14824,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14862,7 +14862,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14900,7 +14900,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -14937,7 +14937,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21528,7 +21528,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -21549,7 +21549,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -21574,7 +21574,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -21612,7 +21612,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21648,7 +21648,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21684,7 +21684,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21724,7 +21724,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21769,7 +21769,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21805,7 +21805,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21841,7 +21841,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21886,7 +21886,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21923,7 +21923,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21959,7 +21959,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -21991,7 +21991,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -22029,7 +22029,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -22067,7 +22067,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -22105,7 +22105,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -22143,7 +22143,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/chromium.gpu.json b/testing/buildbot/chromium.gpu.json
+index 8269243328ac..3dac7b6281e0 100644
+--- a/testing/buildbot/chromium.gpu.json
++++ b/testing/buildbot/chromium.gpu.json
+@@ -1318,7 +1318,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1346,7 +1346,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -1373,7 +1373,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1397,7 +1397,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1435,7 +1435,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1471,7 +1471,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1507,7 +1507,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1547,7 +1547,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1592,7 +1592,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1637,7 +1637,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1674,7 +1674,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1710,7 +1710,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1747,7 +1747,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1776,7 +1776,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1805,7 +1805,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1832,7 +1832,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com",
+@@ -1859,7 +1859,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1883,7 +1883,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -1921,7 +1921,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1957,7 +1957,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1993,7 +1993,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2033,7 +2033,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2078,7 +2078,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2123,7 +2123,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2150,7 +2150,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -2186,7 +2186,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2222,7 +2222,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -2259,7 +2259,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/chromium.swangle.json b/testing/buildbot/chromium.swangle.json
+index 3e2f5b239a50..bb05a454c4a6 100644
+--- a/testing/buildbot/chromium.swangle.json
++++ b/testing/buildbot/chromium.swangle.json
+@@ -1350,7 +1350,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/client.v8.fyi.json b/testing/buildbot/client.v8.fyi.json
+index 5947391b0e32..fcd84b91c8c1 100644
+--- a/testing/buildbot/client.v8.fyi.json
++++ b/testing/buildbot/client.v8.fyi.json
+@@ -1110,7 +1110,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1145,7 +1145,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1180,7 +1180,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1224,7 +1224,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1268,7 +1268,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1304,7 +1304,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1339,7 +1339,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1376,7 +1376,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1413,7 +1413,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+diff --git a/testing/buildbot/mixins.pyl b/testing/buildbot/mixins.pyl
+index 26a150814f00..e628d94166d1 100644
+--- a/testing/buildbot/mixins.pyl
++++ b/testing/buildbot/mixins.pyl
+@@ -834,7 +834,7 @@
+       'dimensions': {
+         'cpu': 'x86-64',
+         'gpu': '8086:3e9b',
+-        'os': 'Mac-11.5.2',
++        'os': 'Mac-11.5.2|Mac-12.4',
+         'display_attached': '1',
+       },
+     },
+diff --git a/testing/buildbot/tryserver.chromium.mac.json b/testing/buildbot/tryserver.chromium.mac.json
+index 35722d269397..f4d9e7bdf54d 100644
+--- a/testing/buildbot/tryserver.chromium.mac.json
++++ b/testing/buildbot/tryserver.chromium.mac.json
+@@ -73,7 +73,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -146,7 +146,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -228,7 +228,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "service_account": "chromium-tester@chops-service-accounts.iam.gserviceaccount.com"
+@@ -304,7 +304,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -378,7 +378,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -452,7 +452,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -576,7 +576,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -668,7 +668,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -780,7 +780,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -854,7 +854,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -946,7 +946,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1022,7 +1022,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1134,7 +1134,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1234,7 +1234,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1313,7 +1313,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1391,7 +1391,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1469,7 +1469,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+@@ -1546,7 +1546,7 @@
+               "cpu": "x86-64",
+               "display_attached": "1",
+               "gpu": "8086:3e9b",
+-              "os": "Mac-11.5.2"
++              "os": "Mac-11.5.2|Mac-12.4"
+             }
+           ],
+           "idempotent": false,
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0049-Incrementing-VERSION-to-102.0.5005.144.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0049-Incrementing-VERSION-to-102.0.5005.144.patch
new file mode 100644
index 000000000000..172984f63848
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0049-Incrementing-VERSION-to-102.0.5005.144.patch
@@ -0,0 +1,28 @@
+From 19d4541ceec6c61cd3bd08fd278e581405e4670a Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Wed, 29 Jun 2022 01:00:35 +0000
+Subject: [PATCH 49/59] Incrementing VERSION to 102.0.5005.144
+
+Change-Id: I4ddfb72f2b40983b5e57923433184f7466bbc0b8
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3732614
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1208}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 915e8754e191..ea7e63ff5099 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=143
++PATCH=144
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0050-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0050-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..ddc031a1c7f1
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0050-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,348 @@
+From b3d9ead9f7dc9567fab1461dbb888cf924ee9062 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Wed, 29 Jun 2022 14:28:46 +0000
+Subject: [PATCH 50/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I9b6be6fee2205db4a5aa0fc442bee884fa3a1ff2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3735342
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1209}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/chromium_strings_te.xtb     |  6 +++---
+ chrome/app/resources/generated_resources_hi.xtb  |  2 +-
+ chrome/app/resources/generated_resources_hy.xtb  |  2 +-
+ chrome/app/resources/generated_resources_te.xtb  | 16 ++++++++--------
+ .../app/resources/google_chrome_strings_te.xtb   |  6 +++---
+ .../strings/accessibility_strings_hy.xtb         |  2 +-
+ .../strings/accessibility_strings_te.xtb         |  4 ++--
+ .../translations/android_chrome_strings_hy.xtb   |  2 +-
+ .../translations/android_chrome_strings_te.xtb   |  2 +-
+ components/strings/components_strings_hy.xtb     |  4 ++--
+ components/strings/components_strings_te.xtb     | 12 ++++++------
+ .../translations/ui_chromeos_strings_te.xtb      |  2 +-
+ 12 files changed, 30 insertions(+), 30 deletions(-)
+
+diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
+index 60311af40a97..6cd93063385f 100644
+--- a/chrome/app/resources/chromium_strings_te.xtb
++++ b/chrome/app/resources/chromium_strings_te.xtb
+@@ -105,7 +105,7 @@
+ <translation id="3830894615770080216">ChromiumOS సిస్టమ్</translation>
+ <translation id="3848258323044014972"><ph name="PAGE_TITLE" /> - Chromium</translation>
+ <translation id="386822487697155367">ChromiumOSతో సహాయాన్ని పొందండి</translation>
+-<translation id="388648406173476553">Chromiumను అనుకూలీకరించండి మరియు నియంత్రించండి. మీరు గమనించాల్సిన విషయం ఒకటి ఉంది - వివరాల కోసం క్లిక్ చేయండి.</translation>
++<translation id="388648406173476553">Chromiumను అనుకూలంగా మార్చండి మరియు నియంత్రించండి. మీరు గమనించాల్సిన విషయం ఒకటి ఉంది - వివరాల కోసం క్లిక్ చేయండి.</translation>
+ <translation id="3889543394854987837">Chromiumను తెరిచి, బ్రౌజింగ్‌ను ప్రారంభించడానికి మీ పేరును క్లిక్ చేయండి.</translation>
+ <translation id="390528597099634151"><ph name="EXISTING_USER" /> ఇప్పటికే ఈ Chromium ప్రొఫైల్‌కు సైన్ ఇన్ చేశారు. మీరు బ్రౌజ్ చేసిన వాటిని విడిగా ఉంచడానికి, Chromium మీ కోసం మీ సొంత ప్రొఫైల్‌ను క్రియేట్ చేయగలదు.</translation>
+ <translation id="3945058413678539331">పాస్‌వర్డ్‌లను కాపీ చేయడానికి Chromium ప్రయత్నిస్తోంది. దీన్ని అనుమతించడానికి మీ Windows పాస్‌వర్డ్‌ను టైప్ చేయండి.</translation>
+@@ -124,7 +124,7 @@
+ <translation id="439358628917130594">మీరు ఈ పరికరాన్ని ఉపయోగించడానికి ముందు సర్వీస్ నియమాలను చదివి, అంగీకరించాలని <ph name="MANAGER" /> కోరుతోంది. ఈ నియమాలు ChromiumOS నియమాలను విస్తరింపజేయవు, సవరించవు లేదా పరిమితం చేయవు.</translation>
+ <translation id="4407044323746248786">ఏదేమైనా Chromium నుండి నిష్క్రమించాలా?</translation>
+ <translation id="4415566066719264597">బ్యాక్‌గ్రౌండ్‌లో అమలయ్యేందుకు Chromiumని అనుమతించండి</translation>
+-<translation id="4423735387467980091">Chromiumను అనుకూలీకరించండి మరియు నియంత్రించండి</translation>
++<translation id="4423735387467980091">Chromiumను అనుకూలంగా మార్చండి మరియు నియంత్రించండి</translation>
+ <translation id="4427306783828095590">ఫిషింగ్, అలాగే మాల్‌వేర్‌ను బ్లాక్ చేయడానికి మెరుగుపరచిన రక్షణ మరింత చేయగలదు</translation>
+ <translation id="4440114195512068100">మీ పరికరం అప్‌డేట్ అయ్యి ఉందో లేదో చూడటానికి, <ph name="LINK_BEGIN" />ChromiumOS సెట్టింగ్‌లు<ph name="LINK_END" /> ఆప్షన్‌కు వెళ్లండి</translation>
+ <translation id="452711251841752011">Chromiumకు స్వాగతం; కొత్త బ్రౌజర్ విండో తెరవబడింది</translation>
+@@ -181,7 +181,7 @@
+ <translation id="6072279588547424923">Chromiumకు <ph name="EXTENSION_NAME" /> జోడించబడింది</translation>
+ <translation id="608006075545470555">ఈ బ్రౌజర్‌కు వర్క్ ప్రొఫైల్‌ను జోడించండి</translation>
+ <translation id="608189560609172163">సైన్ ఇన్ చేయడంలో ఎర్రర్ కారణంగా Chromium మీ డేటాను సింక్ చేయలేకపోయింది.</translation>
+-<translation id="6096348254544841612">Chromiumను అనుకూలీకరించండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
++<translation id="6096348254544841612">Chromiumను అనుకూలంగా మార్చండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
+ <translation id="6120345080069858279">Chromium ఈ పాస్‌వర్డ్‌ను మీ Google ఖాతాలో సేవ్ చేస్తుంది. మీరు దీనిని గుర్తుంచుకోవాల్సిన అవసరం లేదు.</translation>
+ <translation id="6129621093834146363"><ph name="FILE_NAME" /> హానికరం, కావున Chromium దాన్ని బ్లాక్ చేసింది.</translation>
+ <translation id="6134968993075716475">సురక్షిత బ్రౌజింగ్ ఆఫ్ చేయబడింది. దాన్ని ఆన్ చేయమని Chromium సిఫార్సు చేస్తోంది.</translation>
+diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
+index 2f6119a1b1d2..cf6ff3a75c3c 100644
+--- a/chrome/app/resources/generated_resources_hi.xtb
++++ b/chrome/app/resources/generated_resources_hi.xtb
+@@ -7282,7 +7282,7 @@
+ <translation id="8133676275609324831">खोजकर्ता में &amp;दिखाएं</translation>
+ <translation id="8135557862853121765"><ph name="NUM_KILOBYTES" />k</translation>
+ <translation id="8136269678443988272">आपने जो पिन डाले हैं, वे बेमेल हैं</translation>
+-<translation id="8137559199583651773">एक्सटेंशन प्रबंधित करें</translation>
++<translation id="8137559199583651773">एक्सटेंशन मैनेज करें</translation>
+ <translation id="8138082791834443598">वैकल्पिक — इस डिवाइस के साथ जोड़ी जाने वाली नई जानकारी डालें या मौजूदा जानकारी को अपडेट करें.</translation>
+ <translation id="8138217203226449454">क्या आपका मतलब खोज की सुविधा देने वाली कंपनी बदलने से था?</translation>
+ <translation id="8138997515734480534"><ph name="VM_NAME" /> की स्थिति</translation>
+diff --git a/chrome/app/resources/generated_resources_hy.xtb b/chrome/app/resources/generated_resources_hy.xtb
+index 29de27efcc0b..12042eeafec4 100644
+--- a/chrome/app/resources/generated_resources_hy.xtb
++++ b/chrome/app/resources/generated_resources_hy.xtb
+@@ -2509,7 +2509,7 @@
+ <translation id="3409785640040772790">Քարտեզներ</translation>
+ <translation id="3412265149091626468">Jump to Selection</translation>
+ <translation id="3413122095806433232">Հավաստագրման կենտրոնի թողարկողներ՝ <ph name="LOCATION" /></translation>
+-<translation id="3414952576877147120">Չափը՝</translation>
++<translation id="3414952576877147120">Չափսը՝</translation>
+ <translation id="3414966631182382431">Ձեր <ph name="BEGIN_LINK" />դիտարկիչը կառավարվում է<ph name="END_LINK" /> <ph name="MANAGER" />-ի կողմից</translation>
+ <translation id="341589277604221596">Կենդանի ենթագրեր – <ph name="LANGUAGE" /></translation>
+ <translation id="3416468988018290825">Միշտ ցույց տալ ամբողջական URL-ները</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index a810b57ffadf..ccce07a85680 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -1384,7 +1384,7 @@
+ <translation id="2299941608784654630">debugd ద్వారా సేకరించబడిన అన్ని లాగ్ ఫైళ్లను వేరుగా ఆర్కైవ్ లాగా చేర్చండి.</translation>
+ <translation id="2300214399009193026">PCIe</translation>
+ <translation id="2300332192655962933">సైట్‌లో ఫైల్ అందుబాటులో లేదు</translation>
+-<translation id="2300383962156589922"><ph name="APP_NAME" />ను అనుకూలీకరించండి మరియు నియంత్రించండి</translation>
++<translation id="2300383962156589922"><ph name="APP_NAME" />ను అనుకూలంగా మార్చండి మరియు నియంత్రించండి</translation>
+ <translation id="2301382460326681002">ఎక్స్‌టెన్ష‌న్‌ మూలం డైరెక్టరీ చెల్లదు.</translation>
+ <translation id="2301402091755573488">షేర్ చేసిన ట్యాబ్</translation>
+ <translation id="2302342861452486996"><ph name="BEGIN_H3" />డీబగ్గింగ్ ఫీచర్‌లు<ph name="END_H3" />
+@@ -1513,7 +1513,7 @@
+ <translation id="2390782873446084770">Wi-Fi సింక్</translation>
+ <translation id="2391419135980381625">ప్రామాణిక ఫాంట్</translation>
+ <translation id="2392163307141705938"><ph name="IDS_SHORT_PRODUCT_NAME" /> కోసం మీ తల్లి/తండ్రి సెట్ చేసిన సమయ పరిమితిని మీరు చేరుకున్నారు.</translation>
+-<translation id="2392369802118427583">సక్రియం చేయి</translation>
++<translation id="2392369802118427583">యాక్టివేట్ చేయండి</translation>
+ <translation id="2393136602862631930">మీ Chromebookలో <ph name="APP_NAME" />ను సెటప్ చేయండి</translation>
+ <translation id="2393313392064891208">Google ChromeOS Flex నియమాల కంటెంట్‌లు</translation>
+ <translation id="2395616325548404795">మీ <ph name="DEVICE_TYPE" /> ఎంటర్‌ప్రైజ్ నిర్వహణ కోసం విజయవంతంగా నమోదు చేయబడింది, కానీ దాని లక్షణ మరియు స్థాన సమాచారాన్ని పంపడంలో విఫలమైంది. దయచేసి ఈ పరికరం కోసం ఈ సమాచారాన్ని మీ నిర్వాహక కన్సోల్ నుండి మాన్యువల్‌గా నమోదు చేయండి.</translation>
+@@ -2091,7 +2091,7 @@
+ <translation id="2941696810925320401">మీ స్క్రీన్‌లలో అదనపు డాక్యుమెంట్‌లను లేదా ఫుల్ స్క్రీన్ కంటెంట్‌ను చూపడానికి సైట్‌లు సాధారణంగా విండోలను తెరిచి, ఉంచుతాయి</translation>
+ <translation id="2942279350258725020">Android Messages</translation>
+ <translation id="2942560570858569904">వేచి ఉంది...</translation>
+-<translation id="2942581856830209953">ఈ పేజీని అనుకూలీకరించండి</translation>
++<translation id="2942581856830209953">ఈ పేజీని అనుకూలంగా మార్చండి</translation>
+ <translation id="2944060181911631861">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. సమస్య విశ్లేషణ, పరికరం, యాప్ వినియోగ డేటాను Googleకి ఆటోమేటిక్‌గా పంపడం ద్వారా మీ Android అనుభవాన్ని మెరుగుపరచడంలో సహాయపడండి. ఇది సిస్టమ్, యాప్ స్థిరత్వానికి, అలాగే ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. మీ అదనపు వెబ్ &amp; యాప్ యాక్టివిటీ సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా మీ Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK1" />మరింత తెలుసుకోండి<ph name="END_LINK1" /></translation>
+ <translation id="2946054015403765210">ఫైల్స్‌కు వెళ్లండి</translation>
+ <translation id="2946119680249604491">కనెక్షన్‌ని జోడించండి</translation>
+@@ -5753,7 +5753,7 @@
+ <translation id="6635362468090274700">మీరు మీ సమీప షేరింగ్ విజిబిలిటీ సెట్టింగ్‌ను 'కనిపించు'కు సెట్ చేసేంత వరకు మీతో ఎవరూ షేర్ చేయలేరు.<ph name="BR" /><ph name="BR" />మీ సెట్టింగ్‌ను తాత్కాలికంగా 'కనిపించు'గా ఉంచడానికి స్టేటస్ ప్రాంతాన్ని తెరిచి, ఆపై సమీప విజిబిలిటీని ఆన్ చేయండి.</translation>
+ <translation id="6635674640674343739">నెట్‌వర్క్ కనెక్షన్‌ను ఏర్పాటు చేయడం సాధ్యపడలేదు. మీ నెట్‌వర్క్ కనెక్షన్‌ను చెక్ చేసి, మళ్లీ ట్రై చేయండి.</translation>
+ <translation id="6635944431854494329">యజమాని ఈ ఫీచర్‌ను, సెట్టింగ్‌లు &gt; అధునాతనం &gt; సమస్య విశ్లేషణ, వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకు పంపు ఎంపిక ద్వారా నియంత్రించవచ్చు.</translation>
+-<translation id="6635956300022133031">వచనం-నుండి-ప్రసంగం వాయిస్‌లను ఎంచుకోండి మరియు అనుకూలీకరించండి</translation>
++<translation id="6635956300022133031">వచనం-నుండి-ప్రసంగం వాయిస్‌లను ఎంచుకోండి మరియు అనుకూలంగా మార్చండి</translation>
+ <translation id="6636623428211296678">కింద మరిన్ని సెట్టింగ్‌లను అన్వేషించండి లేదా ఇప్పుడే పూర్తి చేయండి</translation>
+ <translation id="6639554308659482635">SQLite మెమరీ</translation>
+ <translation id="6640268266988685324">తెరిచి ఉన్న ట్యాబ్</translation>
+@@ -6337,7 +6337,7 @@
+ <translation id="7227458944009118910">కింద లిస్ట్ చేయబడిన యాప్‌లు ప్రోటోకాల్ లింక్‌లను కూడా హ్యాండిల్ చేయగలవు. ఇతర యాప్‌లు అనుమతి కోసం అడుగుతాయి.</translation>
+ <translation id="7228523857728654909">స్క్రీన్ లాక్ మరియు సైన్ ఇన్</translation>
+ <translation id="7230222852462421043">&amp;విండోను రీస్టోర్ చేయండి</translation>
+-<translation id="7230787553283372882">మీ వచన పరిమాణాన్ని అనుకూలీకరించండి</translation>
++<translation id="7230787553283372882">మీ వచన పరిమాణాన్ని అనుకూలంగా మార్చండి</translation>
+ <translation id="7231260028442989757">మీ ఫోన్ నోటిఫికేషన్‌లను చూడండి, విస్మరించండి, వాటికి రిప్లయి చేయండి</translation>
+ <translation id="7232750842195536390">పేరు మార్చడం విఫలమైంది</translation>
+ <translation id="723343421145275488"><ph name="VISUAL_SEARCH_PROVIDER" />‌ ఇమేజ్ సెర్చ్</translation>
+@@ -7424,7 +7424,7 @@
+     <ph name="BEGIN_PARAGRAPH4" />అదనంగా మీ చిన్నారి కోసం వెబ్ &amp; యాప్ యాక్టివిటీ సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో నిల్వ చేయబడవచ్చు. ఈ సెట్టింగ్‌ల గురించి, వీటిని సర్దుబాటు చేయడం గురించి families.google.comలో మరింత తెలుసుకోండి.<ph name="END_PARAGRAPH4" /></translation>
+ <translation id="826905130698769948">చెల్లని క్లయింట్ సర్టిఫికెట్</translation>
+ <translation id="827097179112817503">హోమ్ బటన్‌ను చూపు</translation>
+-<translation id="8271268254812352141">మీరు టెక్స్ట్‌ను కుడి క్లిక్ చేసినప్పుడు లేదా తాకి, నొక్కి ఉంచినప్పుడు నిర్వచనాలు, అనువాదాలు, లేదా యూనిట్ మార్పిడులను పొందండి. <ph name="LINK_BEGIN" />వెబ్‌సైట్ భాషల<ph name="LINK_END" />లో అనువాద భాషలను అనుకూలీకరించండి.</translation>
++<translation id="8271268254812352141">మీరు టెక్స్ట్‌ను కుడి క్లిక్ చేసినప్పుడు లేదా తాకి, నొక్కి ఉంచినప్పుడు నిర్వచనాలు, అనువాదాలు, లేదా యూనిట్ మార్పిడులను పొందండి. <ph name="LINK_BEGIN" />వెబ్‌సైట్ భాషల<ph name="LINK_END" />లో అనువాద భాషలను అనుకూలంగా మార్చండి.</translation>
+ <translation id="8271379370373330993">తల్లిదండ్రులారా, తర్వాత కొన్ని దశలు మీ కోసం. ఖాతాను సెటప్ చేసిన తర్వాత మీరు <ph name="DEVICE_TYPE" />ను చిన్నారికి తిరిగి ఇవ్వవచ్చు.</translation>
+ <translation id="8272194309885535896">చిత్రాన్ని డౌన్‌లోడ్ చేయి</translation>
+ <translation id="8272443605911821513">"మరిన్ని సాధనాలు" మెనూలోని ఎక్స్‌టెన్షన్‌లను క్లిక్ చేయడం ద్వారా మీ ఎక్స్‌టెన్షన్‌లను నిర్వహించండి.</translation>
+@@ -7672,7 +7672,7 @@
+ <translation id="8543556556237226809">ప్రశ్నలు ఏమైనా ఉన్నాయా? మీ ప్రొఫైల్‌ను పర్యవేక్షించే వ్యక్తిని సంప్రదించండి.</translation>
+ <translation id="8546186510985480118">పరికరంలో తక్కువ స్థలం ఉంది</translation>
+ <translation id="8546306075665861288">చిత్రం కాష్</translation>
+-<translation id="8546930481464505581">టచ్ బార్‌ని అనుకూలీకరించండి</translation>
++<translation id="8546930481464505581">టచ్ బార్‌ని అనుకూలంగా మార్చండి</translation>
+ <translation id="8547013269961688403">ఫుల్-స్క్రీన్‌ మాగ్నిఫయర్‌ను ప్రారంభించండి</translation>
+ <translation id="85486688517848470">ఎగువ-అడ్డు వరుసలోని కీల ప్రవర్తనను మార్చడానికి శోధన కీని నొక్కి ఉంచండి</translation>
+ <translation id="8549316893834449916">మీ Chromebookకు సైన్ ఇన్ చేయడానికి మీరు మీ Google ఖాతాను ఉపయోగిస్తారు – Gmail, Drive, YouTube మరిన్నింటి కోసం మీరు ఉపయోగించే అదే ఖాతా.</translation>
+@@ -8106,7 +8106,7 @@
+ <translation id="89720367119469899">ఎస్కేప్</translation>
+ <translation id="8972513834460200407">దయచేసి Google సర్వర్‌ల నుండి డౌన్‌లోడ్‌లను ఫైర్‌వాల్ బ్లాక్ చేయడం లేదని నిర్ధారించుకోవడానికి మీ నెట్‌వర్క్ నిర్వాహకుడిని సంప్రదించండి.</translation>
+ <translation id="8973557916016709913">జూమ్ స్థాయిని తీసివేయి</translation>
+-<translation id="8973596347849323817">మీరు మీ అవసరాలకు అనుగుణంగా ఈ పరికరాన్ని అనుకూలీకరించవచ్చు. ఈ యాక్సెస్ చేయగల ఫీచర్లను సెట్టింగ్స్‌లో తర్వాత మార్చవచ్చు.</translation>
++<translation id="8973596347849323817">మీరు మీ అవసరాలకు అనుగుణంగా ఈ పరికరాన్ని అనుకూలంగా మార్చవచ్చు. ఈ యాక్సెస్ చేయగల ఫీచర్లను సెట్టింగ్స్‌లో తర్వాత మార్చవచ్చు.</translation>
+ <translation id="897414447285476047">కనెక్షన్ సమస్య కారణంగా గమ్యస్థాన ఫైల్ సంపూర్ణంగా లేదు.</translation>
+ <translation id="897525204902889653">క్వారెంటైన్ సేవ</translation>
+ <translation id="8975396729541388937">మీరు అందుకునే ఇమెయిల్‌లలోని లింక్‌ను క్లిక్ చేయడం ద్వారా ఎప్పుడైనా సబ్‌స్క్రిప్షన్‌ను తీసివేయవచ్చు.</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
+index 04519bc7b312..6945de13ae9e 100644
+--- a/chrome/app/resources/google_chrome_strings_te.xtb
++++ b/chrome/app/resources/google_chrome_strings_te.xtb
+@@ -2,7 +2,7 @@
+ <!DOCTYPE translationbundle>
+ <translationbundle lang="te">
+ <translation id="1001534784610492198">ఇన్‌స్టాలర్ ఆర్కైవ్ పాడైంది లేదా చెల్లదు. దయచేసి Google Chromeను మ‌ళ్లీ డౌన్‌లోడ్ చేయండి.</translation>
+-<translation id="102763973188675173">Google Chromeను అనుకూలీకరించండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
++<translation id="102763973188675173">Google Chromeను అనుకూలంగా మార్చండి మరియు నియంత్రించండి. అప్‌డేట్ అందుబాటులో ఉంది.</translation>
+ <translation id="1051826050538111504">మీ కంప్యూటర్‌లో మీ భద్రతకు హాని కలిగించే సాఫ్ట్‌వేర్‌ ఉంది. మీ బ్రౌజర్‌ని మళ్లీ సాధారణంగా పని చేసేలా చేయడానికి Chrome దానిని తీసివేసి, మీ సెట్టింగ్‌లను పునరుద్ధరించి, ఎక్స్‌టెన్షన్‌లను నిలిపివేయగలదు.</translation>
+ <translation id="1065672644894730302">మీ ప్రాధాన్యతలు చదవబడలేవు. కొన్ని లక్షణాలు అందుబాటులో ఉండకపోవచ్చు మరియు ప్రాధాన్యతలకు మార్పులు సేవ్ చేయబడకపోవచ్చు.</translation>
+ <translation id="1088300314857992706"><ph name="USER_EMAIL_ADDRESS" /> మునుపు Chromeని ఉపయోగించింది</translation>
+@@ -148,7 +148,7 @@
+ <translation id="3889417619312448367">Google Chromeను అన్‌ఇన్‌స్టాల్ చేయండి</translation>
+ <translation id="4035053306113201399">అప్‌డేట్‌ను వర్తింపచేయడానికి ChromeOSను రీస్టార్ట్ చేయాలి.</translation>
+ <translation id="4050175100176540509">ముఖ్యమైన భద్రతా మెరుగుదలలు మరియు కొత్త ఫీచర్‌లు తాజా వెర్షన్‌లో అందుబాటులో ఉన్నాయి.</translation>
+-<translation id="4053720452172726777">Google Chromeను అనుకూలీకరించండి మరియు నియంత్రించండి</translation>
++<translation id="4053720452172726777">Google Chromeను అనుకూలంగా మార్చండి మరియు నియంత్రించండి</translation>
+ <translation id="4106587138345390261">Chrome మీ సమాచారాన్ని తక్కువగా ఉపయోగిస్తూ అదే బ్రౌజింగ్ అనుభవాన్ని అందించడానికి సైట్‌లను అనుమతించే కొత్త ఫీచర్‌ల కోసం అన్వేషిస్తోంది</translation>
+ <translation id="4110895483821904099">మీ కొత్త Chrome ప్రొఫైల్‍ని సెట్ అప్ చేయండి</translation>
+ <translation id="4147555960264124640">మీరు నిర్వహించబడే ఖాతాతో సైన్ ఇన్ చేస్తున్నారు. దీని నిర్వాహకునికి మీ Google Chrome ప్రొఫైల్‌పై నియంత్రణను అందిస్తున్నారు. మీ యాప్‌లు, బుక్‌మార్క్‌లు, చరిత్ర, పాస్‌వర్డ్‌లు, ఇతర సెట్టింగ్‌ల వంటి మీ Chrome డేటా శాశ్వతంగా <ph name="USER_NAME" />కు అనుబంధించబడుతుంది. మీరు Google ఖాతాల డ్యాష్‌బోర్డ్ ద్వారా ఈ డేటాను తొలగించవచ్చు. కానీ ఈ డేటాను మరో ఖాతాతో అనుబంధించలేరు. <ph name="LEARN_MORE" /></translation>
+@@ -213,7 +213,7 @@
+ <translation id="5566025111015594046">Google Chrome (mDNS-In)</translation>
+ <translation id="565744775970812598"><ph name="FILE_NAME" /> హానికరం కావచ్చు, కావున Chrome దాన్ని బ్లాక్ చేసింది.</translation>
+ <translation id="5678190148303298925">{COUNT,plural, =0{ఈ అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromeను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు}=1{ఈ అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromeను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు. మీ అజ్ఞాత విండో మళ్లీ తెరవబడదు.}other{ఈ అప్‌డేట్‌ను వర్తింపజేయడం కోసం మీరు Chromeను పునఃప్రారంభించాలని మీ నిర్వాహకుడు కోరుతున్నారు. మీ # అజ్ఞాత విండోలు మళ్లీ తెరవబడవు.}}</translation>
+-<translation id="5686916850681061684">Google Chromeను అనుకూలీకరించండి, నియంత్రించండి. మీరు గమనించాల్సిన విషయం ఒకటి ఉంది - వివరాల కోసం క్లిక్ చేయండి.</translation>
++<translation id="5686916850681061684">Google Chromeను అనుకూలంగా మార్చండి, నియంత్రించండి. మీరు గమనించాల్సిన విషయం ఒకటి ఉంది - వివరాల కోసం క్లిక్ చేయండి.</translation>
+ <translation id="5690427481109656848">Google LLC</translation>
+ <translation id="5715063361988620182">{SECONDS,plural, =1{Google Chrome 1 సెకనులో పునఃప్రారంభమవుతుంది}other{Google Chrome # సెకన్లలో పునఃప్రారంభమవుతుంది}}</translation>
+ <translation id="5727531838415286053">Chrome ర్యాండమ్‌గా మిమ్మల్ని యాక్టివ్‌గా ఉన్న ఒక ట్రయల్‌లో ఉంచినట్లయితే, మీ బ్రౌజింగ్ హిస్టరీ మీరు చూసే యాడ్‌లను, దిగువున అంచనా వేసిన ఆసక్తులపై ప్రభావం చూపుతుంది. మీ గోప్యతను రక్షించడానికి, Chrome ప్రతి నెలా దశల వారీగా మీ ఆసక్తులను తొలగిస్తుంది. ఆసక్తులు మీరు తీసివేస్తే మినహా, రిఫ్రెష్ అవుతూనే ఉంటాయి.</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb
+index 04475afeca6a..e9c14d42d529 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_hy.xtb
+@@ -145,7 +145,7 @@
+ <translation id="1903683160884433981">Միջին գարնանային կանաչ</translation>
+ <translation id="1905379170753160525">Ցույց տալ վերնագրերի ցանկը</translation>
+ <translation id="1913761808037590218">#ed</translation>
+-<translation id="1914424852593176649">Չափը՝ <ph name="FONT_SIZE" /></translation>
++<translation id="1914424852593176649">Չափսը՝ <ph name="FONT_SIZE" /></translation>
+ <translation id="1914635379910604678">համադրություն՝ <ph name="DOT" /></translation>
+ <translation id="1923956950274750765">Միջին խոլորձագույն</translation>
+ <translation id="1928932365747995741">Նախորդ խմբագրելի տեքստային դաշտ չկա</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+index ff870ab0ced5..0e0e58bdf2ef 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_te.xtb
+@@ -299,7 +299,7 @@ Chrome బ్రౌజర్ మెనూను తెరవడానికి,
+ <translation id="2988364959384217951">సూచన: మీరు ఈ ట్యుటోరియల్‌ను నిష్క్రమించాలనుకుంటే కుడి నుండి ఎడమ వైపునకు రెండు వేళ్లతో స్వైప్ చేయండి.</translation>
+ <translation id="2998131015536248178">మునుపటి అక్షరం</translation>
+ <translation id="2999559350546931576">స్వర స్థాయి తగ్గించండి</translation>
+-<translation id="3009352964623081324">Search + O, తర్వాత S. వాయిస్‌లను ఇన్‌స్టాల్, మేనేజ్ చేయడానికి, అనుకూలీకరించడానికి ఉపయోగించండి.</translation>
++<translation id="3009352964623081324">Search + O, తర్వాత S. వాయిస్‌లను ఇన్‌స్టాల్, మేనేజ్ చేయడానికి, అనుకూలంగా మార్చడానికి ఉపయోగించండి.</translation>
+ <translation id="3014130421870723208">@ed 8dot</translation>
+ <translation id="3030432017085518523">మెనూ అంశం రేడియో బటన్</translation>
+ <translation id="3037392361165431467">{COUNT,plural, =1{సంగ్రాహక గుర్తు}other{# సంగ్రాహక గుర్తులు}}</translation>
+@@ -652,7 +652,7 @@ Chrome బ్రౌజర్ మెనూను తెరవడానికి,
+ <translation id="5420259671171615858">మెనూలలో వెతకండి</translation>
+ <translation id="5435274640623994081">ఇయర్‌కాన్ లాగింగ్‌ను ప్రారంభించు</translation>
+ <translation id="5436105723448703439">{COUNT,plural, =1{న్యూన గుర్తు}other{# న్యూన గుర్తులు}}</translation>
+-<translation id="5444587279251314700">(సక్రియంగా ఉంది)</translation>
++<translation id="5444587279251314700">(యాక్టివ్‌గా ఉంది)</translation>
+ <translation id="5451268436205074266">చుక్కలు <ph name="DOT" /></translation>
+ <translation id="5452267669091857717">తర్వాత స్థాయి 1 శీర్షిక లేదు</translation>
+ <translation id="5455441614648621694">బహుమానపూర్వకం</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
+index 6663afcb91f4..49deb5d99c82 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_hy.xtb
+@@ -450,7 +450,7 @@
+ <translation id="3391512812407811893">Privacy Sandbox-ի փորձնական տարբերակներ</translation>
+ <translation id="3398320232533725830">Բացել էջանիշների կառավարիչը</translation>
+ <translation id="3407392651057365886">Նախաբեռնվում են ավելի շատ էջեր։ Նախաբեռնումը կարող է կատարվել Google-ի սերվերների կողմից այլ կայքերի հարցումով։</translation>
+-<translation id="3414952576877147120">Չափը՝</translation>
++<translation id="3414952576877147120">Չափսը՝</translation>
+ <translation id="3421726884497337397">Ընտրեք, թե երբ պետք է կողմնակի քուքիները արգելափակվեն</translation>
+ <translation id="3428747202529429621">Ապահովում է ձեր անվտանգությունը Chrome-ում և Google հավելվածներում, երբ մտել եք ձեր հաշիվ</translation>
+ <translation id="3429160811076349561">Փորձնական գործառույթներն անջատված են</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+index 8b0bd7668111..67bd8de6300c 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_te.xtb
+@@ -636,7 +636,7 @@
+ <translation id="4558311620361989323">వెబ్‌పేజీ షార్ట్‌క‌ట్‌లు</translation>
+ <translation id="4561730552726921821">రిజిస్ట్రేషన్ విజయవంతమైంది</translation>
+ <translation id="4561979708150884304">కనెక్షన్ లేదు</translation>
+-<translation id="4562008740775511591">Chrome తగిన ఆటోమేటిక్ సెట్టింగ్‌లను అందిస్తుంది, కానీ మీరు మీ బ్రౌజింగ్ అలవాట్లకు తగినట్లుగా మీరు దీన్ని అనుకూలీకరించవచ్చు</translation>
++<translation id="4562008740775511591">Chrome తగిన ఆటోమేటిక్ సెట్టింగ్‌లను అందిస్తుంది, కానీ మీరు మీ బ్రౌజింగ్ అలవాట్లకు తగినట్లుగా మీరు దీన్ని అనుకూలంగా మార్చవచ్చు</translation>
+ <translation id="4565377596337484307">పాస్‌వర్డ్‌ను దాచిపెట్టు</translation>
+ <translation id="4572422548854449519">నిర్వాహిత ఖాతాకు సైన్ ఇన్ చేయండి</translation>
+ <translation id="4576892426230499203">మరొక వెరిఫికేషన్ ఆప్షన్‌ను ట్రై చేయండి</translation>
+diff --git a/components/strings/components_strings_hy.xtb b/components/strings/components_strings_hy.xtb
+index 5047d682da0c..a3210464e997 100644
+--- a/components/strings/components_strings_hy.xtb
++++ b/components/strings/components_strings_hy.xtb
+@@ -901,7 +901,7 @@
+ <translation id="3402261774528610252">Կապը, որի միջոցով բեռնվել է այս կայքը, օգտագործում է TLS-ի 1.0 կամ 1.1 տարբերակները, որոնք հնացած են և չեն աջակցվի ապագայում։ Անջատվելուց հետո այցելուները այլևս չեն կարողանա դիտել այս կայքը։ Սերվերը պետք է ակտիվացնի TLS-ի 1.2 կամ ավելի բարձր տարբերակ։</translation>
+ <translation id="3405664148539009465">Հարմարեցնել տառատեսակները</translation>
+ <translation id="3409896703495473338">Կառավարել անվտանգության կարգավորումները</translation>
+-<translation id="3414952576877147120">Չափը՝</translation>
++<translation id="3414952576877147120">Չափսը՝</translation>
+ <translation id="3417660076059365994">Ձեր վերբեռնած կամ կցած ֆայլերը ուղարկվում են Google Cloud կամ գործընկեր կազմակերպություններին՝ վերլուծության նպատակով։ Օրինակ, դրանցում կարող է ստուգվել խիստ անձնական տվյալների կամ վնասագրերի առկայությունը։</translation>
+ <translation id="3422248202833853650">Փակեք մյուս ծրագրերը՝ տարածք ազատելու համար:</translation>
+ <translation id="3422472998109090673"><ph name="HOST_NAME" />-ը ներկայումս անհասանելի է:</translation>
+@@ -1460,7 +1460,7 @@
+ <translation id="4955242332710481440">A5-Extra</translation>
+ <translation id="4958444002117714549">Ընդարձակել ցանկը</translation>
+ <translation id="4964505745997821360">Առողջության ապահովագրություն</translation>
+-<translation id="4968522289500246572">Այս հավելվածը նախատեսված է բջջային սարքերի համար։ Չափը փոխելուց հետո հավելվածը կարող է սխալներով աշխատել։</translation>
++<translation id="4968522289500246572">Այս հավելվածը նախատեսված է բջջային սարքերի համար։ Չափսը փոխելուց հետո հավելվածը կարող է սխալներով աշխատել։</translation>
+ <translation id="4969341057194253438">Ջնջել տեսագրությունը
+ </translation>
+ <translation id="4973922308112707173">Երկու անցք վերևում</translation>
+diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
+index 27f1afd0deae..b6930dce3e96 100644
+--- a/components/strings/components_strings_te.xtb
++++ b/components/strings/components_strings_te.xtb
+@@ -834,7 +834,7 @@
+ <translation id="3229041911291329567">మీ పరికరం, బ్రౌజర్‌ల వెర్షన్ సమాచారం</translation>
+ <translation id="323107829343500871"><ph name="CREDIT_CARD" /> కార్డ్ CVCని నమోదు చేయండి</translation>
+ <translation id="3234666976984236645">ఈ సైట్‌లో ఎప్పుడూ ముఖ్యమైన కంటెంట్‌ను గుర్తించు</translation>
+-<translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, మీ బ్రౌజర్ రూపాన్ని అనుకూలీకరించడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
++<translation id="3240683217920639535"><ph name="MANAGE_CHROME_THEMES_FOCUSED_FRIENDLY_MATCH_TEXT" />, మీ బ్రౌజర్ రూపాన్ని అనుకూలంగా మార్చడానికి 'Tab'ను నొక్కి, ఆపై 'Enter'ను నొక్కండి</translation>
+ <translation id="3240791268468473923">సురక్షితమైన పేమెంట్ ఆధారానికి సంబంధించిన మ్యాచ్ అయ్యే ఆధారాల షీట్ ఏదీ తెరవబడలేదు</translation>
+ <translation id="324180406144491771">“<ph name="HOST_NAME" />” లింక్‌లు బ్లాక్ చేయబడ్డాయి</translation>
+ <translation id="3248611290851046188">మీకు యాడ్‌లను చూపడానికి ఇతర సైట్‌లు ఉపయోగించగల ఆసక్తులను ఈ సైట్ నిర్వచిస్తుంది. మీకు మరింత సందర్భోచితమైన యాడ్‌లను చూపడానికి ఈ సైట్ మీ ఆసక్తులను Chrome నుండి కూడా పొందుతుంది.</translation>
+@@ -1132,7 +1132,7 @@
+ <translation id="4089152113577680600">ట్రే 14</translation>
+ <translation id="4098354747657067197">ముందున్న సైట్ మోసపూరితమైనది</translation>
+ <translation id="4099048595830172239">గోప్యమైన కంటెంట్ కనిపిస్తునప్పుడు, మీ స్క్రీన్‌ను <ph name="APPLICATION_TITLE" />తో షేర్ చేయడాన్ని అడ్మినిస్ట్రేటర్ పాలసీ సిఫార్సు చేయదు:</translation>
+-<translation id="4099391883283080991"><ph name="CUSTOMIZE_CHROME_FONTS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలీకరించడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
++<translation id="4099391883283080991"><ph name="CUSTOMIZE_CHROME_FONTS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలంగా మార్చడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
+ <translation id="4101413244023615925">టెక్స్ట్, గ్రాఫిక్స్</translation>
+ <translation id="410148943680000050">డెస్క్‌టాప్ పబ్లిషింగ్</translation>
+ <translation id="4103249731201008433">పరికరం క్రమ సంఖ్య చెల్లదు</translation>
+@@ -1621,7 +1621,7 @@
+ <translation id="5340250774223869109">యాప్ బ్లాక్ చేయబడింది</translation>
+ <translation id="534295439873310000">NFC పరికరాలు</translation>
+ <translation id="5344579389779391559">ఈ పేజీ మీకు డబ్బు ఛార్జీ చేయడానికి ప్రయత్నించవచ్చు</translation>
+-<translation id="5347645913823149105">'Chromeలో ఫాంట్‌లను అనుకూలీకరించండి' బటన్, Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలీకరించడానికి Enterను నొక్కండి</translation>
++<translation id="5347645913823149105">'Chromeలో ఫాంట్‌లను అనుకూలంగా మార్చండి' బటన్, Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలంగా మార్చడానికి Enterను నొక్కండి</translation>
+ <translation id="5355557959165512791"><ph name="SITE" /> యొక్క ప్రమాణపత్రం రద్దు చేయబడినందున మీరు ప్రస్తుతం దీన్ని సందర్శించలేరు. నెట్‌వర్క్ లోపాలు మరియు దాడులు సాధారణంగా తాత్కాలికమే, కనుక ఈ పేజీ తర్వాత పని చేయవచ్చు.</translation>
+ <translation id="5356837363448394805">ఎర్రబారిన ముఖం</translation>
+ <translation id="5357848622083956825">విజువల్ ఆర్ట్ &amp; డిజైన్</translation>
+@@ -2464,7 +2464,7 @@
+ <translation id="7740996059027112821">ప్రామాణికం</translation>
+ <translation id="77424286611022110">ఈ సైట్ అనుచితమైన లేదా తప్పుదారి పట్టించే యాడ్‌లను చూపుతుంది. <ph name="LEARN_MORE_LINK_TEXT" /></translation>
+ <translation id="774634243536837715">హానికరమైన కంటెంట్ బ్లాక్ చేయబడింది.</translation>
+-<translation id="7751971323486164747">Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలీకరించండి</translation>
++<translation id="7751971323486164747">Chromeలో ఫాంట్ సైజ్‌లను, టైప్‌ఫేస్‌లను అనుకూలంగా మార్చండి</translation>
+ <translation id="7752995774971033316">నిర్వహించడం లేదు</translation>
+ <translation id="7755624218968747854">ప్రైమరీ రోల్</translation>
+ <translation id="7757555340166475417">డాయ్-పా-కాయ్</translation>
+@@ -2595,7 +2595,7 @@
+ <translation id="8116925261070264013">మ్యూట్ చేసినవి</translation>
+ <translation id="8118489163946903409">పేమెంట్ ఆప్షన్‌</translation>
+ <translation id="8123046743443732598">డెస్క్‌టాప్ కంప్యూటర్‌లు</translation>
+-<translation id="8124639700796374294">'Chromeను అనుకూలీకరించండి' బటన్, మీ బ్రౌజర్ రూపాన్ని అనుకూలీకరించడానికి 'Enter'ను నొక్కండి</translation>
++<translation id="8124639700796374294">'Chromeను అనుకూలంగా మార్చండి' బటన్, మీ బ్రౌజర్ రూపాన్ని అనుకూలంగా మార్చడానికి 'Enter'ను నొక్కండి</translation>
+ <translation id="8126056688005753476">అడ్వెంచర్ ట్రావెల్</translation>
+ <translation id="8127301229239896662">మీ కంప్యూటర్ లేదా నెట్‌వర్క్‌లో "<ph name="SOFTWARE_NAME" />" సరిగ్గా ఇన్‌స్టాల్ కాలేదు. ఈ సమస్యను పరిష్కరించమని మీ IT నిర్వాహకులను కోరండి.</translation>
+ <translation id="8131740175452115882">నిర్ధారించు</translation>
+@@ -2834,7 +2834,7 @@
+ <translation id="8870413625673593573">ఇటీవల మూసివేసినవి</translation>
+ <translation id="8870494189203302833">ఒకే క్రమంలో ఉన్న ఫేస్ డౌన్</translation>
+ <translation id="8870700989640064057">గోప్యమైన ఫైల్‌ను ప్రింట్ చేయాలా?</translation>
+-<translation id="8871553383647848643">మీ బ్రౌజర్ రూపాన్ని అనుకూలీకరించండి</translation>
++<translation id="8871553383647848643">మీ బ్రౌజర్ రూపాన్ని అనుకూలంగా మార్చండి</translation>
+ <translation id="8874824191258364635">చెల్లుబాటు అయ్యే కార్డ్ నంబర్‌ను నమోదు చేయండి</translation>
+ <translation id="8876033571432926051">సరదా గేమ్‌లు</translation>
+ <translation id="8877780815363510165">చేపలు పట్టడం</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+index 99a921b42aa5..7093b4618657 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+@@ -166,7 +166,7 @@
+ <translation id="2378075407703503998"><ph name="SELCTED_FILE_COUNT" /> ఫైళ్లు ఎంచుకోబడ్డాయి</translation>
+ <translation id="2387458720915042159">ప్రాక్సీ కనెక్షన్ రకం</translation>
+ <translation id="2389832672041313158">బర్మీస్/మయన్మార్</translation>
+-<translation id="2392369802118427583">సక్రియం చేయి</translation>
++<translation id="2392369802118427583">యాక్టివేట్ చేయండి</translation>
+ <translation id="240770291734945588"><ph name="SPACE_AVAILABLE" /> అందుబాటులో ఉంది</translation>
+ <translation id="2425665904502185219">మొత్తం ఫైల్ పరిమాణం</translation>
+ <translation id="2428749644083375155"><ph name="NUMBER_OF_ITEMS" /> ఐటెమ్‌లను <ph name="FOLDER_NAME" />కు కాపీ చేస్తోంది</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0051-Incrementing-VERSION-to-102.0.5005.145.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0051-Incrementing-VERSION-to-102.0.5005.145.patch
new file mode 100644
index 000000000000..29afc7820bd3
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0051-Incrementing-VERSION-to-102.0.5005.145.patch
@@ -0,0 +1,28 @@
+From fb7ed04a21de2cc9d55e005130acc00b4bf5b238 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Thu, 30 Jun 2022 01:00:51 +0000
+Subject: [PATCH 51/59] Incrementing VERSION to 102.0.5005.145
+
+Change-Id: Idbdf4eb7c9ccb83bb8bd1f61c0fa42af164014fa
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3736004
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1210}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index ea7e63ff5099..48b95fdd910e 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=144
++PATCH=145
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0052-Disable-IntegrationTest.SelfUpdateFromOldReal-in-M10.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0052-Disable-IntegrationTest.SelfUpdateFromOldReal-in-M10.patch
new file mode 100644
index 000000000000..34d444d94f46
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0052-Disable-IntegrationTest.SelfUpdateFromOldReal-in-M10.patch
@@ -0,0 +1,33 @@
+From 4d069862995f5b414fa3a06c4fd2b71e16defc26 Mon Sep 17 00:00:00 2001
+From: Sorin Jianu <sorin@chromium.org>
+Date: Thu, 30 Jun 2022 03:34:17 +0000
+Subject: [PATCH 52/59] Disable IntegrationTest.SelfUpdateFromOldReal in M102.
+
+Bug: 1340482
+Change-Id: I1dc7d99a84880867c3afca5281edd80f0d41d4ed
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3732396
+Reviewed-by: Joshua Pawlicki <waffles@chromium.org>
+Commit-Queue: Sorin Jianu <sorin@chromium.org>
+Cr-Commit-Position: refs/branch-heads/5005@{#1211}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/updater/test/integration_tests.cc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/chrome/updater/test/integration_tests.cc b/chrome/updater/test/integration_tests.cc
+index d2d02dd04e7b..ca176f6016cc 100644
+--- a/chrome/updater/test/integration_tests.cc
++++ b/chrome/updater/test/integration_tests.cc
+@@ -620,7 +620,8 @@ TEST_F(IntegrationTest, UnregisterUnownedApp) {
+ #if BUILDFLAG(CHROMIUM_BRANDING) || BUILDFLAG(GOOGLE_CHROME_BRANDING)
+ // TODO(crbug.com/1268555): Even on Windows, component builds do not work.
+ #if !defined(COMPONENT_BUILD)
+-TEST_F(IntegrationTest, SelfUpdateFromOldReal) {
++// TODO(crbug.com/1340482) - disable the test on branches because it is flaky.
++TEST_F(IntegrationTest, DISABLED_SelfUpdateFromOldReal) {
+   ScopedServer test_server(test_commands_);
+ 
+   // TODO(crbug.com/1308856): Current versions of the updater do not send an
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0053-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0053-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..3cfd0144570e
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0053-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,2077 @@
+From 36caed1408759cc70fa9e4f7e5d37aeb8108b196 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Thu, 30 Jun 2022 16:07:48 +0000
+Subject: [PATCH 53/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Ibbba0c0cd79a592cbcc0496e573df65845ce07ee
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3736826
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1212}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ .../strings/shortcut_viewer_strings_fa.xtb    |  2 +-
+ .../strings/shortcut_viewer_strings_kk.xtb    | 16 ++--
+ ash/strings/ash_strings_fa.xtb                | 12 +--
+ ash/strings/ash_strings_kk.xtb                |  8 +-
+ ash/strings/ash_strings_no.xtb                | 10 +--
+ .../android_keyboard_accessory_strings_kk.xtb |  2 +-
+ .../android_chrome_vr_strings_kk.xtb          |  2 +-
+ chrome/app/resources/chromium_strings_fa.xtb  | 14 +--
+ .../app/resources/generated_resources_fa.xtb  | 56 ++++++------
+ .../app/resources/generated_resources_kk.xtb  | 88 +++++++++----------
+ .../app/resources/generated_resources_no.xtb  | 14 +--
+ .../resources/google_chrome_strings_fa.xtb    | 14 +--
+ .../strings/accessibility_strings_fa.xtb      |  2 +-
+ .../strings/accessibility_strings_kk.xtb      |  6 +-
+ .../android_chrome_strings_fa.xtb             | 50 +++++------
+ .../android_chrome_strings_kk.xtb             | 28 +++---
+ chromeos/strings/chromeos_strings_fa.xtb      |  2 +-
+ .../translations/browser_ui_strings_kk.xtb    |  6 +-
+ .../omnibox_pedal_synonyms_fa.xtb             |  2 +-
+ .../omnibox_pedal_synonyms_te.xtb             |  6 +-
+ components/strings/components_strings_fa.xtb  | 20 ++---
+ components/strings/components_strings_kk.xtb  | 52 +++++------
+ .../resources/ios_chromium_strings_fa.xtb     |  4 +-
+ .../ios_google_chrome_strings_fa.xtb          |  4 +-
+ .../app/strings/resources/ios_strings_fa.xtb  |  8 +-
+ .../app/strings/resources/ios_strings_kk.xtb  |  6 +-
+ .../accessibility_extensions_strings_kk.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_kk.xtb   |  4 +-
+ ui/strings/translations/ax_strings_kk.xtb     |  4 +-
+ 29 files changed, 222 insertions(+), 222 deletions(-)
+
+diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_fa.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_fa.xtb
+index 800ab0ead629..6242e190c953 100644
+--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_fa.xtb
++++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_fa.xtb
+@@ -136,7 +136,7 @@
+ <translation id="5757474750054631686">کم کردن نور صفحه‌کلید (فقط برای صفحه‌کلیدهایی که نور پس‌زمینه دارند)</translation>
+ <translation id="587531134027443617">حذف کلمه قبلی</translation>
+ <translation id="5899919361772749550">نمایش یا پنهان کردن کنسول «ابزارهای برنامه‌نویس»</translation>
+-<translation id="5919628958418675842">صفحه حریم‌خصوصی را روشن یا خاموش کنید</translation>
++<translation id="5919628958418675842">صفحه حریم خصوصی را روشن یا خاموش کنید</translation>
+ <translation id="5921745308587794300">چرخاندن پنجره</translation>
+ <translation id="5926306472221400972">گرفتن نماگرفت از تمام صفحه</translation>
+ <translation id="6022924867608035986">پاک کردن نوشتار چارگوش جستجو</translation>
+diff --git a/ash/shortcut_viewer/strings/shortcut_viewer_strings_kk.xtb b/ash/shortcut_viewer/strings/shortcut_viewer_strings_kk.xtb
+index 8615099014f1..fa613c5620f8 100644
+--- a/ash/shortcut_viewer/strings/shortcut_viewer_strings_kk.xtb
++++ b/ash/shortcut_viewer/strings/shortcut_viewer_strings_kk.xtb
+@@ -65,11 +65,11 @@
+ <translation id="2914313326123580426">Әзірлеуші құралдары панелін көрсету немесе жасыру</translation>
+ <translation id="292495055542441795">Толық экранды қосу/өшіру</translation>
+ <translation id="3020183492814296499">Перне тіркесімдері</translation>
+-<translation id="3084301071537457911">Сөредегі келесі элементті бөлектеу</translation>
+-<translation id="309173601632226815">Сөредегі іске қосу түймесін бөлектеу</translation>
++<translation id="3084301071537457911">Сөредегі келесі элементті ерекшелеу</translation>
++<translation id="309173601632226815">Сөредегі іске қосу түймесін ерекшелеу</translation>
+ <translation id="3126026824346185272">Ctrl</translation>
+ <translation id="3140353188828248647">Мекенжай жолағына өту</translation>
+-<translation id="3256109297135787951">Сөредегі элементтің бөлектенуін өшіру</translation>
++<translation id="3256109297135787951">Сөредегі элементтің ерекшеленуін өшіру</translation>
+ <translation id="3288816184963444640">Ағымдағы терезені жабу</translation>
+ <translation id="3350805006883559974">Белсенді терезені жоғары жылжыту</translation>
+ <translation id="3407560819924487926">Тапсырма менеджерін ашу</translation>
+@@ -86,7 +86,7 @@
+ <translation id="3720939646656082033">Сілтемені жаңа қойындыда ашу және жаңа қойындыға ауысу</translation>
+ <translation id="3725795051337497754">Ағымдағы қойындыны жабу</translation>
+ <translation id="3751033133896282964">Соңғы әрекетті қайтару</translation>
+-<translation id="3792178297143798024">Сөредегі бөлектелген элементті ашу</translation>
++<translation id="3792178297143798024">Сөредегі ерекшеленген элементті ашу</translation>
+ <translation id="379295446891231126"><ph name="CTRL" /><ph name="SEPARATOR" /> 1-ден 8-ге дейін</translation>
+ <translation id="3837047332182291558">Пернетақта жарықтығын арттыру (тек артқы жарығы бар пернетақталар үшін)</translation>
+ <translation id="3949671998904569433">үтір</translation>
+@@ -99,7 +99,7 @@
+ <translation id="4092538597492297615">Таңдалған мазмұнды буферге көшіру</translation>
+ <translation id="4101772068965291327">Негізгі бетті ашу</translation>
+ <translation id="4123108089450197101">Сілтемені бетбелгі ретінде сақтау</translation>
+-<translation id="4141203561740478845">Мекенжай жолағы бар жолды бөлектеу</translation>
++<translation id="4141203561740478845">Мекенжай жолағы бар жолды ерекшелеу</translation>
+ <translation id="4148761611071495477"><ph name="CTRL" /><ph name="SEPARATOR" /><ph name="G" /> немесе <ph name="ENTER" /></translation>
+ <translation id="4240486403425279990">Шолу режимі</translation>
+ <translation id="4382340674111381977">Алдыңғы бетке өту</translation>
+@@ -153,14 +153,14 @@
+ <translation id="6359811074279051077"><ph name="MODIFIER" /><ph name="SEPARATOR" /><ph name="KEY" /></translation>
+ <translation id="6395172954772765143">Жолдың соңына енгізілетін мәтінді таңдау</translation>
+ <translation id="6425378783626925378">Сөредегі 1-8 арасындағы белгішелерді басу</translation>
+-<translation id="6435207348963613811">Сөредегі алдыңғы элементті бөлектеу</translation>
++<translation id="6435207348963613811">Сөредегі алдыңғы элементті ерекшелеу</translation>
+ <translation id="6445033640292336367">Қойындыны бастапқы орнына қайтару</translation>
+ <translation id="6474744297082284761">Кішірейту (қондырылған НЕМЕСЕ толық экран ұлғайтқышы қосылған кезде)</translation>
+ <translation id="649811797655257835">Файлды таңдап, <ph name="SPACE" /> пернесін басыңыз</translation>
+ <translation id="6515089016094047210">Calendar виджетін ашу немесе жабу.</translation>
+ <translation id="6551886416582667425">Экранның бір бөлігінің скриншотын/жазбасын жасау</translation>
+ <translation id="6556040137485212400">Ең ұзақ уақыт бойы пайдаланылмаған терезені ашу</translation>
+-<translation id="666343722268997814">Бөлектелген элемент үшін контекстік мәзірді ашу</translation>
++<translation id="666343722268997814">Ерекшеленген элемент үшін контекстік мәзірді ашу</translation>
+ <translation id="6671538777808758331">Іздеу нәтижелерінің келесі сәйкестігіне өту</translation>
+ <translation id="6681606577947445973"><ph name="REFRESH" /> немесе <ph name="CTRL" /><ph name="SEPARATOR" /><ph name="R" /></translation>
+ <translation id="6690765639083431875">Терезені сол жаққа бекіту</translation>
+@@ -175,7 +175,7 @@
+ <translation id="7020813747703216897">Сәйкес нәтижелер табылмады</translation>
+ <translation id="7025325401470358758">Келесі тақта</translation>
+ <translation id="7076878155205969899">Дыбысын өшіру</translation>
+-<translation id="7077383985738259936">Бетбелгілер жолағын (көрсетіліп тұрса) ерекшелеу немесе бөлектеу</translation>
++<translation id="7077383985738259936">Бетбелгілер жолағын (көрсетіліп тұрса) ерекшелеу немесе ерекшелеу</translation>
+ <translation id="7237562915163138771">Мекенжай жолағына веб-мекенжайды енгізіп, <ph name="ALT" /><ph name="SEPARATOR" /><ph name="ENTER" /> пернелерін басыңыз.</translation>
+ <translation id="7254764037241667478">Құрылғыны ұйқы (уақытша тоқтату) режиміне қою</translation>
+ <translation id="7422707470576323858">Келесі енгізу әдісіне ауыстырады</translation>
+diff --git a/ash/strings/ash_strings_fa.xtb b/ash/strings/ash_strings_fa.xtb
+index c36debe1ef20..8bf45f97a06d 100644
+--- a/ash/strings/ash_strings_fa.xtb
++++ b/ash/strings/ash_strings_fa.xtb
+@@ -454,7 +454,7 @@
+ <translation id="3630697955794050612">خاموش</translation>
+ <translation id="3631369015426612114">مجاز کردن اعلان‌های منابع زیر</translation>
+ <translation id="3633097874324966332">برای مرتبط کردن دستگاهتان، تنظیمات «بلوتوث» را باز کنید</translation>
+-<translation id="3638400994746983214">روشن/خاموش کردن صفحه حریم‌خصوصی. <ph name="STATE_TEXT" />.</translation>
++<translation id="3638400994746983214">روشن/خاموش کردن صفحه حریم خصوصی. <ph name="STATE_TEXT" />.</translation>
+ <translation id="3649505501900178324">به‌روزرسانی عقب‌افتاده</translation>
+ <translation id="366222428570480733"><ph name="USER_EMAIL_ADDRESS" /> کاربر مدیریت‌شده</translation>
+ <translation id="3680908746918359504">پاک کردن همه قلم‌های نشان‌گذاری</translation>
+@@ -636,7 +636,7 @@
+ <translation id="4667099493359681081">درحال بارگیری <ph name="FILENAME" /></translation>
+ <translation id="4690510401873698237">قفسه در پایین است</translation>
+ <translation id="4696813013609194136">باز کردن قفل دستگاه با کد والدین</translation>
+-<translation id="4702647871202761252">صفحه حریم‌خصوصی خاموش است</translation>
++<translation id="4702647871202761252">صفحه حریم خصوصی خاموش است</translation>
+ <translation id="4717575069099566988">‏کابل USB-C شما از USB4 پشتیبانی نمی‌کند. ممکن است عملکرد دستگاه محدود شود.</translation>
+ <translation id="4730374152663651037">مکرراً استفاده‌شده</translation>
+ <translation id="4731797938093519117">دسترسی ولی</translation>
+@@ -699,7 +699,7 @@
+ <translation id="5117590920725113268">نمایش ماه بعدی</translation>
+ <translation id="5136175204352732067">صفحه‌کلید دیگری متصل شد</translation>
+ <translation id="5147567197700016471">قفل باز شد</translation>
+-<translation id="5150070631291639005">تنظیمات حریم‌خصوصی</translation>
++<translation id="5150070631291639005">تنظیمات حریم خصوصی</translation>
+ <translation id="5155897006997040331">سرعت خواندن</translation>
+ <translation id="5166007464919321363">ذخیره میزکار به‌عنوان الگو</translation>
+ <translation id="5168181903108465623">دستگاه‌های فرستادن موجود هستند</translation>
+@@ -792,7 +792,7 @@
+ <translation id="576341972084747908">بارگیری <ph name="FILENAME" /> خطرناک</translation>
+ <translation id="5763928712329149804">«گروه قفسه‌ها» خاموش است.</translation>
+ <translation id="576453121877257266">«نور شب» روشن است.</translation>
+-<translation id="5769373120130404283">صفحه حریم‌خصوصی</translation>
++<translation id="5769373120130404283">صفحه حریم خصوصی</translation>
+ <translation id="5777841717266010279">هم‌رسانی صفحه‌نمایش متوقف شود؟</translation>
+ <translation id="5779721926447984944">فایل‌های پین‌شده</translation>
+ <translation id="5788127256798019331">‏فایل‌های Play</translation>
+@@ -925,7 +925,7 @@
+ <translation id="6593850935013518327"><ph name="PRIMARY_TEXT" />، <ph name="SECONDARY_TEXT" /></translation>
+ <translation id="661203523074512333"><ph name="SECURITY_STATUS" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" />، تحت‌مدیریت سرپرست</translation>
+ <translation id="6612802754306526077">حالت ضبط صفحه‌نمایش انتخاب شد</translation>
+-<translation id="6614169507485700968">صفحه حریم‌خصوصی روشن است</translation>
++<translation id="6614169507485700968">صفحه حریم خصوصی روشن است</translation>
+ <translation id="6625718907317144388">اعلان‌های <ph name="APP_1_TITLE" />، <ph name="APP_2_TITLE" />، و اعلان‌های دیگر پنهان شده است، زیرا «محافظت دربرابر مشاهده» روشن است</translation>
+ <translation id="6627638273713273709">Search+Shift+K</translation>
+ <translation id="6629480180092995136"><ph name="APP_NAME" /> می‌خواهد از میکروفون استفاده کند</translation>
+@@ -1134,7 +1134,7 @@
+ <translation id="7872786842639831132">خاموش</translation>
+ <translation id="7875575368831396199">ظاهراً بلوتوث در <ph name="DEVICE_TYPE" /> شما خاموش است. لطفاً برای استفاده از «مرکز کنترل تلفن»، بلوتوث را روشن کنید.</translation>
+ <translation id="7877557217297072640">{0,plural, =0{اکنون دستگاه را به نسخه قبلی تغییر دهید}=1{تا یک ثانیه دیگر دستگاه را به نسخه قبلی تغییر دهید}one{تا # ثانیه دیگر دستگاه را به نسخه قبلی تغییر دهید}other{تا # ثانیه دیگر دستگاه را به نسخه قبلی تغییر دهید}}</translation>
+-<translation id="7886169021410746335">تنظیمات حریم‌خصوصی را تنظیم کند</translation>
++<translation id="7886169021410746335">تنظیمات حریم خصوصی را تنظیم کند</translation>
+ <translation id="7886277072580235377">وقتی از سیستم خارج شوید، جلسه اینترنت پاک خواهد شد. <ph name="LEARN_MORE" /></translation>
+ <translation id="788781083998633524">‏Send an email (ایمیل ارسال کن)</translation>
+ <translation id="7893503627044934815">نمی‌خواهم این فایل نشان داده شود</translation>
+diff --git a/ash/strings/ash_strings_kk.xtb b/ash/strings/ash_strings_kk.xtb
+index 1910e347eb4c..910ae20a3deb 100644
+--- a/ash/strings/ash_strings_kk.xtb
++++ b/ash/strings/ash_strings_kk.xtb
+@@ -259,7 +259,7 @@
+ <translation id="2501920221385095727">Жабысқақ пернелер</translation>
+ <translation id="2509468283778169019">CAPS LOCK қосулы</translation>
+ <translation id="2542089167727451762">Профиль суретіңізді түртіңіз.</translation>
+-<translation id="255671100581129685">Google Assistant әркімге қолжетімді сеанста жұмыс істемейді.</translation>
++<translation id="255671100581129685">Google Assistant баршаға ашық сеанста жұмыс істемейді.</translation>
+ <translation id="256712445991462162">бекітілген ұлғайтқыш</translation>
+ <translation id="2570734079541893434">Параметрлерді басқару</translation>
+ <translation id="2573588302192866788"><ph name="NAME" /> құрылғысы қосылмады</translation>
+@@ -416,7 +416,7 @@
+ <translation id="3485319357743610354"><ph name="SECURITY_STATUS" />, <ph name="CONNECTION_STATUS" />, сигнал күші: <ph name="SIGNAL_STRENGTH" /></translation>
+ <translation id="348799646910989694">Сөре автоматты түрде жасырылған.</translation>
+ <translation id="3509391053705095206">Телефон табылмады. Онда Bluetooth қосылып тұрғанына көз жеткізіңіз.</translation>
+-<translation id="3510164367642747937">Тінтуір курсорын бөлектеу</translation>
++<translation id="3510164367642747937">Тінтуір курсорын ерекшелеу</translation>
+ <translation id="3513798432020909783"><ph name="MANAGER_EMAIL" /> басқаратын аккаунт</translation>
+ <translation id="3518604429872942239">Күй жолағы, уақыты: <ph name="TIME" />,
+         <ph name="BATTERY" />
+@@ -653,7 +653,7 @@
+ <translation id="4804818685124855865">Ажырату</translation>
+ <translation id="4814539958450445987">Аккаунтқа кіру экраны</translation>
+ <translation id="4831034276697007977">Автоматты түрде басу функциясын шынымен де өшіргіңіз келе ме?</translation>
+-<translation id="4849058404725798627">Нысанды пернетақта фокусымен бөлектеу</translation>
++<translation id="4849058404725798627">Нысанды пернетақта фокусымен ерекшелеу</translation>
+ <translation id="485592688953820832">Ештеңе істемеу (кідірту)</translation>
+ <translation id="485634149294284819">Пернетақта мәзіріне кіру</translation>
+ <translation id="4860284199500934869"><ph name="FILENAME" /> файлын жүктеп алу үшін желі байланысын тексеріңіз.</translation>
+@@ -709,7 +709,7 @@
+ <translation id="5198715732953550718"><ph name="MOVED_APP_NAME" /> және <ph name="IN_PLACE_APP" /> қолданбалары қосылып, бір қалта жасалды.</translation>
+ <translation id="5206028654245650022"><ph name="APP_NAME" />, <ph name="NOTIFICATION_TITLE" />: <ph name="MESSAGE" />, <ph name="PHONE_NAME" /></translation>
+ <translation id="5206057955438543357">{NUM_NOTIFICATIONS,plural, =1{Тағы 1 хабарландыру}other{Тағы # хабарландыру}}</translation>
+-<translation id="5207949376430453814">Мәтін курсорын бөлектеу</translation>
++<translation id="5207949376430453814">Мәтін курсорын ерекшелеу</translation>
+ <translation id="5208059991603368177">Қосулы</translation>
+ <translation id="5222676887888702881">Шығу</translation>
+ <translation id="5234764350956374838">Жабу</translation>
+diff --git a/ash/strings/ash_strings_no.xtb b/ash/strings/ash_strings_no.xtb
+index 2043ade3b7f1..44f96ce78dac 100644
+--- a/ash/strings/ash_strings_no.xtb
++++ b/ash/strings/ash_strings_no.xtb
+@@ -138,7 +138,7 @@ Her er noen ting du kan prøve til å begynne med.</translation>
+ <translation id="1715293566947629045">Deaktiverer profil. Vent i noen minutter.</translation>
+ <translation id="1715874602234207">F</translation>
+ <translation id="1719094688023114093">Direkteteksting er på.</translation>
+-<translation id="1720011244392820496">Slå på Wi-Fi-synkronisering</translation>
++<translation id="1720011244392820496">Slå på wifi-synkronisering</translation>
+ <translation id="1736898441010944794">«<ph name="NAME" />» er synlig for Bluetooth-enheter.</translation>
+ <translation id="1743570585616704562">Ikke gjenkjent</translation>
+ <translation id="1746730358044914197">Inndatametoder konfigureres av administratoren din.</translation>
+@@ -287,7 +287,7 @@ Her er noen ting du kan prøve til å begynne med.</translation>
+ <translation id="2706462751667573066">Opp</translation>
+ <translation id="2713444072780614174">Hvit</translation>
+ <translation id="2718395828230677721">Nattlys</translation>
+-<translation id="2726420622004325180">Telefonen må ha mobildata for å kunne tilby en Wi-Fi-sone</translation>
++<translation id="2726420622004325180">Telefonen må ha mobildata for å kunne tilby en wifi-sone</translation>
+ <translation id="2727175239389218057">Svar</translation>
+ <translation id="2727977024730340865">Tilkoblet laveffektslader. Batteriladingen kan være upålitelig.</translation>
+ <translation id="2749082172777216925"><ph name="APP_NAME_INFO" /> – <ph name="PRICE" /></translation>
+@@ -433,7 +433,7 @@ Her er noen ting du kan prøve til å begynne med.</translation>
+ <translation id="3552189655002856821">Wi-Fi er slått av</translation>
+ <translation id="3554637740840164787">Festet <ph name="ITEM_TITLE" /></translation>
+ <translation id="3560866052109807830">Markørtegneverktøy</translation>
+-<translation id="3563775809269155755">Slå på Wi-Fi-sone</translation>
++<translation id="3563775809269155755">Slå på wifi-sone</translation>
+ <translation id="3566240529365775567">Åpnet nå nettopp</translation>
+ <translation id="3571734092741541777">Konfigurer</translation>
+ <translation id="3573179567135747900">Endre tilbake til <ph name="FROM_LOCALE" /> (krever omstart)</translation>
+@@ -505,7 +505,7 @@ Her er noen ting du kan prøve til å begynne med.</translation>
+ <translation id="3943857333388298514">Lim inn</translation>
+ <translation id="394485226368336402">Lydinnstillinger</translation>
+ <translation id="3945319193631853098">Trykk for å fullføre konfigureringen</translation>
+-<translation id="3945867833895287237">Kobler til Wi-Fi-sone …</translation>
++<translation id="3945867833895287237">Kobler til wifi-sone …</translation>
+ <translation id="3950820424414687140">Logg på</translation>
+ <translation id="3962859241508114581">Forrige spor</translation>
+ <translation id="3969043077941541451">Av</translation>
+@@ -936,7 +936,7 @@ Nylig installert</translation>
+ <translation id="6650933572246256093">Bluetooth-enheten «<ph name="DEVICE_NAME" />» ber om tillatelse til å koble til. Skriv inn denne tilgangskoden på den aktuelle enheten: <ph name="PASSKEY" /></translation>
+ <translation id="6657585470893396449">Passord</translation>
+ <translation id="6665545700722362599">gi nettsteder, apper og utvidelser tillatelse til å bruke posisjonstjenester, enhetens mikrofon, kamera eller andre funksjoner</translation>
+-<translation id="6667908387435388584">Koble til telefonens Wi-Fi-sone, demp og finn enheten, og se nylige Chrome-faner som er åpne på telefonen</translation>
++<translation id="6667908387435388584">Koble til telefonens wifi-sone, demp og finn enheten, og se nylige Chrome-faner som er åpne på telefonen</translation>
+ <translation id="6670153871843998651">Skrivebord 3</translation>
+ <translation id="6671495933530132209">Kopiér bildet</translation>
+ <translation id="6671661918848783005">Kan ikke låse opp Chromebooken</translation>
+diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kk.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kk.xtb
+index 6e6d7bd72575..cc739eab0ed4 100644
+--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kk.xtb
++++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kk.xtb
+@@ -26,5 +26,5 @@
+ <translation id="8037472847879765671">Төлеу әдістерін көрсету</translation>
+ <translation id="8507520749471379845">Қолжетімді құпия сөздер</translation>
+ <translation id="8705308553596171387">Құпия сөз жоқ</translation>
+-<translation id="8849262850971482943">Қауіпсіздікті арттыру үшін виртуалды картаны пайдаланыңыз.</translation>
++<translation id="8849262850971482943">Қауіпсіздікті арттыру үшін виртуалдық картаны пайдаланыңыз.</translation>
+ </translationbundle>
+\ No newline at end of file
+diff --git a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_kk.xtb b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_kk.xtb
+index 3daf91e995ee..a62f505a62b0 100644
+--- a/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_kk.xtb
++++ b/chrome/android/features/vr/java/strings/translations/android_chrome_vr_strings_kk.xtb
+@@ -7,5 +7,5 @@
+ <translation id="4088809042407767679">Google VR Services жаңартылсын ба?</translation>
+ <translation id="4648883053543509795">Google VR Services орнатылсын ба?</translation>
+ <translation id="473775607612524610">Жаңарту</translation>
+-<translation id="5010116926836661047">Виртуалды шындық мазмұнын көру</translation>
++<translation id="5010116926836661047">Виртуалдық шындық мазмұнын көру</translation>
+ </translationbundle>
+\ No newline at end of file
+diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
+index bf78789ead31..763b7244df8f 100644
+--- a/chrome/app/resources/chromium_strings_fa.xtb
++++ b/chrome/app/resources/chromium_strings_fa.xtb
+@@ -15,7 +15,7 @@
+ <translation id="1553461853655228091">‏Chromium برای ایجاد نقشه سه‌بعدی محیط شما باید اجازه دسترسی به دوربین داشته باشد</translation>
+ <translation id="1602421994560205104">‏Chromium این فایل را مسدود کرد زیرا برای بررسی امنیتی بسیار بزرگ است. با فایل‌هایی که حداکثر ۵۰ مگابایت باشد دوباره امتحان کنید</translation>
+ <translation id="1607715478322902680">{COUNT,plural, =0{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید}=1{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. پنجره ناشناس بازگشایی نمی‌شود.}one{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. # پنجره ناشناس بازگشایی نمی‌شود.}other{‏سرپرست سیستم لازم می‌داند برای اعمال به‌روزرسانی، Chromium را راه‌اندازی مجدد کنید. # پنجره ناشناس بازگشایی نمی‌شود.}}</translation>
+-<translation id="1625909126243026060">‏مرور کنترل‌های اصلی امنیت و حریم‌خصوصی در Chromium</translation>
++<translation id="1625909126243026060">‏مرور کنترل‌های اصلی امنیت و حریم خصوصی در Chromium</translation>
+ <translation id="1632539827495546968">‏اگر می‌خواهید فقط یک‌بار از این حساب استفاده کنید، می‌توانید از <ph name="GUEST_LINK_BEGIN" />حالت مهمان<ph name="GUEST_LINK_END" /> در مرورگر Chromium استفاده کنید. اگر می‌خواهید برای شخص دیگری حساب اضافه کنید، به <ph name="DEVICE_TYPE" /> خود <ph name="LINK_BEGIN" />شخص جدیدی اضافه کنید<ph name="LINK_END" />.
+ 
+ اجازه‌هایی که قبلاً به وب‌سایت‌ها و برنامه‌ها داده‌اید ممکن است در این حساب اعمال شود. می‌توانید «حساب‌های Google» خود را در بخش <ph name="SETTINGS_LINK_BEGIN" />تنظیمات<ph name="SETTINGS_LINK_END" /> مدیریت کنید.</translation>
+@@ -68,7 +68,7 @@
+ <translation id="3032706164202344641">‏Chromium نمی‌تواند گذرواژه‌هایتان را بررسی کند. بعداً دوباره امتحان کنید.</translation>
+ <translation id="3032787606318309379">‏افزودن به Chromium…</translation>
+ <translation id="3068515742935458733">‏با ارسال گزارش‌های خرابی و <ph name="UMA_LINK" /> به Google، به بهبود Google کمک کنید</translation>
+-<translation id="3101560983689755071">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chromium علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="3101560983689755071">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chromium علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="3103660991484857065">‏نصب‌کننده در خارج کردن بایگانی از حالت فشرده ناموفق بود. لطفاً دوباره Chromium را بارگیری کنید.</translation>
+ <translation id="3130323860337406239">‏Chromium درحال استفاده از میکروفون شما است.</translation>
+ <translation id="3155163173539279776">‏اجرای مجدد Chromium</translation>
+@@ -91,7 +91,7 @@
+ <translation id="3474745554856756813">‏این کار <ph name="ITEMS_COUNT" /> مورد را از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> به سیستم Chromium وارد شوید.</translation>
+ <translation id="3497319089134299931">‏با <ph name="SHORTCUT" /> می‌توانید بین نمایه‌های Chromium جابه‌جا شوید</translation>
+ <translation id="3509308970982693815">‏لطفاً همه پنجره‌های Chromium را ببندید و دوباره سعی کنید.</translation>
+-<translation id="3533435340678213462">‏برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chromium مدنظر قرار دهد حذف کنید.</translation>
++<translation id="3533435340678213462">‏برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chromium مدنظر قرار دهد حذف کنید.</translation>
+ <translation id="3567254597502212821">‏سابقه مرور شما، سابقه سایت‌هایی که بااستفاده از Chromium در این دستگاه از آن‌ها بازدید کرده‌اید.</translation>
+ <translation id="3575459661164320785">‏نرم‌افزار مضری در رایانه‌تان وجود دارد. Chromium می‌تواند آن را بردارد، تنظیمات را بازیابی کند و افزونه‌ها را غیرفعال کند تا عملکرد مرورگرتان دوباره عادی شود.</translation>
+ <translation id="3639635944603682591">‏داده‌های محصول مرور این کاربر از این دستگاه حذف می‌شود. برای بازیابی داده‌ها، با نام <ph name="USER_EMAIL" /> به سیستم Chromium وارد شوید.</translation>
+@@ -154,7 +154,7 @@
+ <translation id="5224391634244552924">‏گذرواژه ذخیره‌شده‌ای وجود ندارد. Chromium زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که آن‌ها را ذخیره کرده باشید.</translation>
+ <translation id="5252179775517634216">‏<ph name="EXISTING_USER" /> قبلاً به سیستم این نمایه Chromium وارد شده است. با این کار، نمایه Chromium جدیدی برای <ph name="USER_EMAIL_ADDRESS" /> ایجاد خواهد شد</translation>
+ <translation id="5277894862589591112">‏برای اعمال تغییراتتان، Chromium را راه‌اندازی مجدد کنید</translation>
+-<translation id="5296845517486664001">‏اگر نسخه آزمایشی روشن باشد و Chromium به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chromium علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
++<translation id="5296845517486664001">‏اگر نسخه آزمایشی روشن باشد و Chromium به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chromium علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
+ <translation id="5358375970380395591">‏شما با حساب مدیریت‌شده وارد سیستم می‌شوید و به سرپرست آن اجازه کنترل بر نمایه Chromium خود را می‌دهید. داده‌های Chromium شما شامل برنامه‌ها، نشانک‌ها، سابقه، گذرواژه‌ها و سایر تنظیمات برای همیشه به <ph name="USER_NAME" /> مرتبط خواهد شد. می‌توانید این داده‌ها را از طریق داشبورد حساب‌های Google حذف کنید اما نمی‌توانید این داده‌ها را به حساب دیگری مرتبط سازید. <ph name="LEARN_MORE" /></translation>
+ <translation id="5386450000063123300">‏درحال به‌روزرسانی Chromium (<ph name="PROGRESS_PERCENT" />)</translation>
+ <translation id="538767207339317086">‏مجاز کردن ورود به سیستم Chromium</translation>
+@@ -162,7 +162,7 @@
+ <translation id="5427571867875391349">‏تنظیم Chromium به عنوان مرورگر پیش‌فرضتان</translation>
+ <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
+ <translation id="5480860683791598150">‏Chromium برای هم‌رسانی مکانتان با این سایت باید به مکان شما دسترسی داشته باشد</translation>
+-<translation id="5487574057737591516">‏برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. و اگر Chromium به‌اشتباه علاقه‌ای را اضافه کند یا شما نخواهید آگهی‌های مشخصی را ببینید، می‌توانید آن علاقه را بردارید.</translation>
++<translation id="5487574057737591516">‏برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. و اگر Chromium به‌اشتباه علاقه‌ای را اضافه کند یا شما نخواهید آگهی‌های مشخصی را ببینید، می‌توانید آن علاقه را بردارید.</translation>
+ <translation id="549669000822060376">‏وقتی Chromium جدیدترین به‌روزرسانی‌های سیستم را نصب می‌کند، لطفاً صبر کنید.</translation>
+ <translation id="5496810170689441661">‏Chromium می‌خواهد گذرواژه‌ها را ویرایش کند. برای اینکه اجازه دهید این کار انجام شود، گذرواژه Windows خود را تایپ کنید.</translation>
+ <translation id="5527463683072221100">‏باز کردن فایل‌های PDF در Chromium</translation>
+@@ -174,7 +174,7 @@
+ <translation id="5883558403894052917">‏Chromium متوجه شده است که این موارد حاوی بدافزار هستند:</translation>
+ <translation id="5895138241574237353">راه‌اندازی مجدد</translation>
+ <translation id="5903106910045431592"><ph name="PAGE_TITLE" /> - ورود به سیستم شبکه</translation>
+-<translation id="5972142260211327093">‏اگر Chromium به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chromium علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="5972142260211327093">‏اگر Chromium به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chromium علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="5987687638152509985">‏به‌روزرسانی Chromium برای شروع همگام‌سازی</translation>
+ <translation id="5988505247484123880">‏امری عادی است که سایت‌هایی که بازدید می‌کنید برای شخصی کردن تجربه‌تان، علایق شما را به‌خاطر آورند. به‌علاوه، سایت‌ها می‌توانند بااستفاده از Chromium اطلاعاتی درباره علایقتان ذخیره کنند.</translation>
+ <translation id="6055895534982063517">‏نسخه جدیدی از Chromium وجود دارد که سریع‌تر از همیشه است.</translation>
+@@ -277,7 +277,7 @@ Chromium قادر به بازیابی تنظیمات شما نیست.</translati
+ <translation id="7790626492778995050"><ph name="PAGE_TITLE" /> - Chromium Canary</translation>
+ <translation id="7828947555739565424">‏درحال‌حاضر یک نمایه Chromium با این حساب در این دستگاه وجود دارد</translation>
+ <translation id="7867198900892795913">‏Chromium به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید و رفع اشکال‌های امنیتی را ندارید.</translation>
+-<translation id="7877292582355102282">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chromium مدنظر قرار دهد حذف کنید.</translation>
++<translation id="7877292582355102282">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chromium مدنظر قرار دهد حذف کنید.</translation>
+ <translation id="7937630085815544518">‏شما بعنوان <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم Chromium شده‌اید. لطفاً برای ورود به سیستم مجدد از همان حساب استفاده کنید.</translation>
+ <translation id="7975919845073681630">‏این نصب ثانویه Chromium است و نمی‌تواند مرورگر پیش‌فرضتان شود.</translation>
+ <translation id="7982481011030453202">‏اگر تنظیمی در این صفحه نشان داده نمی‌شود، در <ph name="LINK_BEGIN" />
+diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
+index 05d479b3f7ee..262eccfeac75 100644
+--- a/chrome/app/resources/generated_resources_fa.xtb
++++ b/chrome/app/resources/generated_resources_fa.xtb
+@@ -777,11 +777,11 @@
+ <translation id="1734212868489994726">آبی روشن</translation>
+ <translation id="1734230530703461088">افزونه‌ها در محدوده زمانی تعیین‌شده بار نشدند. لطفاً با سرپرست تماس بگیرید.</translation>
+ <translation id="1734824808160898225"><ph name="PRODUCT_NAME" /> ممکن است نتواند خود را به‌روز نگه دارد</translation>
+-<translation id="173522743738009831">درباره «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="173522743738009831">درباره «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="173628468822554835">متوجه شدم. به‌طور پیش‌فرض، سایت‌های جدیدی را که بازدید کرده‌اید برایتان اعلان نمی‌فرستند.</translation>
+ <translation id="1736419249208073774">کاوش</translation>
+ <translation id="1737968601308870607">اشکال پرونده</translation>
+-<translation id="1739684185846730053">دوره آزمایشی «جعبه ایمنی حریم‌خصوصی» هنوز در مرحله توسعه فعال است و در مناطق منتخب دردسترس است. درحال‌حاضر، ممکن است سایت‌ها همچنان که از فناوری‌های کوکی‌های شخص ثالث استفاده می‌کنند، «جعبه ایمنی حریم‌خصوصی» را نیز امتحان کنند.</translation>
++<translation id="1739684185846730053">دوره آزمایشی «جعبه ایمنی حریم خصوصی» هنوز در مرحله توسعه فعال است و در مناطق منتخب دردسترس است. درحال‌حاضر، ممکن است سایت‌ها همچنان که از فناوری‌های کوکی‌های شخص ثالث استفاده می‌کنند، «جعبه ایمنی حریم خصوصی» را نیز امتحان کنند.</translation>
+ <translation id="1741190788710022490">شارژ تطبیقی</translation>
+ <translation id="174123615272205933">سفارشی</translation>
+ <translation id="1741314857973421784">ادامه</translation>
+@@ -1313,7 +1313,7 @@
+ <translation id="2232876851878324699">این فایل دارای یک مجوز است، که وارد نشده است:</translation>
+ <translation id="2233502537820838181">&amp;اطلاعات بیشتر</translation>
+ <translation id="223356358902285214">فعالیت برنامه و وب</translation>
+-<translation id="2234827758954819389">راهنمای حریم‌خصوصی</translation>
++<translation id="2234827758954819389">راهنمای حریم خصوصی</translation>
+ <translation id="2234876718134438132">‏همگام‌سازی و سرویس‌های Google</translation>
+ <translation id="2235344399760031203">کوکی‌های شخص ثالث مسدود شده‌اند</translation>
+ <translation id="2238379619048995541">داده‌های حالت فرکانس</translation>
+@@ -1369,7 +1369,7 @@
+ <translation id="2290615375132886363">دکمه‌های پیمایش رایانه لوحی</translation>
+ <translation id="229182044471402145">هیچ مورد منطبقی پیدا نشد</translation>
+ <translation id="2292848386125228270">‏لطفاً <ph name="PRODUCT_NAME" /> را به‌عنوان یک کاربر معمولی راه‌اندازی کنید. اگر می‌خواهید آن را به‌عنوان ریشه برای طراحی اجرا کنید، با پرچم no-sandbox آن را دوباره اجرا کنید.</translation>
+-<translation id="2294081976975808113">حریم‌خصوصی صفحه‌نمایش</translation>
++<translation id="2294081976975808113">حریم خصوصی صفحه‌نمایش</translation>
+ <translation id="2294358108254308676">آیا می‌خواهید <ph name="PRODUCT_NAME" /> را نصب کنید؟</translation>
+ <translation id="229477815107578534">مرور تنظیمات</translation>
+ <translation id="2295864384543949385"><ph name="NUM_RESULTS" /> نتیجه</translation>
+@@ -2498,7 +2498,7 @@
+ <translation id="3388094447051599208">سینی خروجی تقریباً پر است</translation>
+ <translation id="3388788256054548012">این فایل رمزگذاری شده است. از مالک بخواهید آن را رمزگشایی کند.</translation>
+ <translation id="3390013585654699824">جزئیات برنامه</translation>
+-<translation id="3391512812407811893">دوره‌های آزمایشی «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="3391512812407811893">دوره‌های آزمایشی «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="3393554941209044235">‏تجزیه‌وتحلیل اسناد Chrome</translation>
+ <translation id="3393582007140394275">محتوای صفحه ارسال نشد.</translation>
+ <translation id="3394850431319394743">سایت‌هایی که مجاز هستند از شناسه‌ها برای پخش محتوای محافظت‌شده استفاده کنند</translation>
+@@ -2832,7 +2832,7 @@
+ <translation id="3707163604290651814">درحال‌حاضر به‌عنوان <ph name="NAME" /> به سیستم وارد شده‌اید</translation>
+ <translation id="3708684582558000260">به سایت‌های بسته‌شده اجازه داده نشود ارسال و دریافت داده را تکمیل کنند</translation>
+ <translation id="3709244229496787112">مرور قبل از اتمام بارگیری بسته شد.</translation>
+-<translation id="371174301504454251">برای محافظت از حریم‌خصوصی شما، سایت‌های موجود در فهرست را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. سایت‌هایی که مجدداً از آن‌ها بازدید می‌کنید ممکن است دوباره در فهرست نمایش داده شود. یا اگر نمی‌خواهید سایت خاصی هرگز به علایق شما پی ببرد می‌توانید آن سایت را از فهرست بردارید.</translation>
++<translation id="371174301504454251">برای محافظت از حریم خصوصی شما، سایت‌های موجود در فهرست را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. سایت‌هایی که مجدداً از آن‌ها بازدید می‌کنید ممکن است دوباره در فهرست نمایش داده شود. یا اگر نمی‌خواهید سایت خاصی هرگز به علایق شما پی ببرد می‌توانید آن سایت را از فهرست بردارید.</translation>
+ <translation id="3711931198657368127">جای‌گذاری و رفتن به <ph name="URL" /></translation>
+ <translation id="3711945201266135623"><ph name="NUM_PRINTERS" /> چاپگر از سرور چاپ پیدا شد</translation>
+ <translation id="3712050472459130149">حساب باید به‌روزرسانی شود</translation>
+@@ -2884,7 +2884,7 @@
+ <translation id="3760460896538743390">بازرسی صفحه &amp;پس‌زمینه</translation>
+ <translation id="37613671848467444">باز کردن در پنجره &amp;ناشناس</translation>
+ <translation id="3761556954875533505">به سایت اجازه می‌دهید فایل‌ها را ویرایش کند؟</translation>
+-<translation id="3763549179847864476">دکمه برگشت «راهنمای حریم‌خصوصی»</translation>
++<translation id="3763549179847864476">دکمه برگشت «راهنمای حریم خصوصی»</translation>
+ <translation id="3764314093345384080">اطلاعات دقیق ساخت</translation>
+ <translation id="3764583730281406327">{NUM_DEVICES,plural, =1{‏ارتباط با یک دستگاه USB}one{‏ارتباط با # دستگاه USB}other{‏ارتباط با # دستگاه USB}}</translation>
+ <translation id="3764753550716962406">‏آیا به Google اجازه می‌دهید از سبد خریدتان برای پیدا کردن تخفیف‌های دردسترس استفاده کند؟</translation>
+@@ -2900,7 +2900,7 @@
+ <translation id="3775432569830822555">‏گواهی سرور SSL</translation>
+ <translation id="3775705724665058594">ارسال به دستگاه‌هایتان</translation>
+ <translation id="3776508619697147021">سایت‌ها می‌توانند بارگیری خودکار چند فایل را درخواست کنند</translation>
+-<translation id="3776796446459804932">‏این افزونه حریم‌خصوصی «نت‌بازار Chrome» را نقض می‌کند.</translation>
++<translation id="3776796446459804932">‏این افزونه حریم خصوصی «نت‌بازار Chrome» را نقض می‌کند.</translation>
+ <translation id="3777483481409781352">دستگاه تلفن همراه فعال نشد</translation>
+ <translation id="3777806571986431400">برنامه افزودنی فعال شد</translation>
+ <translation id="3778152852029592020">بارگیری لغو شد.</translation>
+@@ -3828,7 +3828,7 @@
+ <translation id="4683629100208651599">تبدیل به حروف کوچک</translation>
+ <translation id="4683947955326903992"><ph name="PERCENTAGE" />% (پیش‌فرض)</translation>
+ <translation id="4684427112815847243">همگام‌سازی همه</translation>
+-<translation id="4684471265911890182"><ph name="APP_NAME" /> می‌خواهد به دوربین دسترسی داشته باشد. برای مجاز کردن دسترسی، کلید «حریم‌خصوصی دوربین» را خاموش کنید.</translation>
++<translation id="4684471265911890182"><ph name="APP_NAME" /> می‌خواهد به دوربین دسترسی داشته باشد. برای مجاز کردن دسترسی، کلید «حریم خصوصی دوربین» را خاموش کنید.</translation>
+ <translation id="4687613760714619596">دستگاه نامشخص (<ph name="DEVICE_ID" />)</translation>
+ <translation id="4688036121858134881">شناسه گزارش محلی: <ph name="WEBRTC_EVENT_LOG_LOCAL_ID" />.</translation>
+ <translation id="4688176403504673761"><ph name="MANAGER" /> درحال برگرداندن این دستگاه را به نسخه قبلی است (<ph name="PROGRESS_PERCENT" />)</translation>
+@@ -4263,7 +4263,7 @@
+ <translation id="514575469079499857">‏از نشانی IP برای تعیین مکان (پیش‌فرض) استفاده شود</translation>
+ <translation id="5147103632304200977">‏وقتی سایتی می‌خواهد به دستگاه‌های HID دسترسی پیدا کند سؤال شود (توصیه می‌شود)</translation>
+ <translation id="5148277445782867161">‏«خدمات مکان Google» از منابعی مانند Wi-Fi، شبکه‌های تلفن همراه، و حسگرها برای کمک به تخمین مکان دستگاهتان استفاده می‌کند.</translation>
+-<translation id="5150070631291639005">تنظیمات حریم‌خصوصی</translation>
++<translation id="5150070631291639005">تنظیمات حریم خصوصی</translation>
+ <translation id="5150254825601720210">‏نام سرور SSL گواهی Netscape</translation>
+ <translation id="5151354047782775295">فضای دیسک را آزاد کنید، در غیر این صورت ممکن است داده‌های انتخابی به‌صورت خودکار حذف شوند</translation>
+ <translation id="5153234146675181447">فراموش کردن تلفن</translation>
+@@ -4411,7 +4411,7 @@
+ <translation id="5294097441441645251">باید با نویسه حروف کوچک یا زیرخط شروع شود</translation>
+ <translation id="5294618183559481278">‏<ph name="DEVICE_TYPE" /> از حسگر داخلی برای شناسایی افراد مقابل دستگاه استفاده می‌کند. همه داده‌ها بلافاصله در دستگاهتان پردازش و سپس حذف می‌شود. داده‌های حسگر هرگز به Google ارسال نمی‌شود. <ph name="LINK_BEGIN" />بیشتر بدانید<ph name="LINK_END" /></translation>
+ <translation id="5297082477358294722">گذرواژه ذخیره شد. گذرواژه‌های ذخیره‌شده‌تان را در <ph name="SAVED_PASSWORDS_STORE" /> مشاهده و مدیریت کنید.</translation>
+-<translation id="5297946558563358707">وقتی فرد دیگری به صفحه‌نمایشتان نگاه کند، نماد چشم «حریم‌خصوصی» در پایین سمت چپ صفحه‌نمایش نشان داده می‌شود</translation>
++<translation id="5297946558563358707">وقتی فرد دیگری به صفحه‌نمایشتان نگاه کند، نماد چشم «حریم خصوصی» در پایین سمت چپ صفحه‌نمایش نشان داده می‌شود</translation>
+ <translation id="5298219193514155779">ایحاد زمینه توسط</translation>
+ <translation id="5299109548848736476">ردیابی نشود</translation>
+ <translation id="5299558715747014286">مشاهده و مدیریت گروه‌های برگه</translation>
+@@ -5307,7 +5307,7 @@
+ <translation id="6206311232642889873">&amp;کپی تصویر</translation>
+ <translation id="6207200176136643843">بازنشانی به سطح بزرگ‌نمایی پیش‌فرض</translation>
+ <translation id="6207937957461833379">کشور/منطقه</translation>
+-<translation id="6208382900683142153">کدهای اطمینان حریم‌خصوصی را در وب بهبود می‌بخشد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
++<translation id="6208382900683142153">کدهای اطمینان حریم خصوصی را در وب بهبود می‌بخشد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
+ <translation id="6208521041562685716">داده تلفن همراه درحال فعال شدن است</translation>
+ <translation id="6208725777148613371">در <ph name="WEB_DRIVE" /> ذخیره نشد - <ph name="INTERRUPT_REASON" /></translation>
+ <translation id="6209838773933913227">درحال به‌روزرسانی مؤلفه</translation>
+@@ -5559,7 +5559,7 @@
+ <translation id="6445450263907939268">اگر این تغییرات مدنظر شما نبود، می‌توانید تنظیمات قبلی‌تان را بازیابی کنید.</translation>
+ <translation id="6446213738085045933">ایجاد میان‌بر دسک تاپ</translation>
+ <translation id="6447842834002726250">کوکی‌ها</translation>
+-<translation id="6450876761651513209">تغییر تنظیمات مربوط به حریم‌خصوصی شما</translation>
++<translation id="6450876761651513209">تغییر تنظیمات مربوط به حریم خصوصی شما</translation>
+ <translation id="6451344358166983408">سایت یا صفحه</translation>
+ <translation id="6451591602925140504">{NUM_PAGES,plural, =0{<ph name="PAGE_TITLE" />}=1{<ph name="PAGE_TITLE" /> و ۱ برگه دیگر}one{<ph name="PAGE_TITLE" /> و # برگه دیگر}other{<ph name="PAGE_TITLE" /> و # برگه دیگر}}</translation>
+ <translation id="6451689256222386810">اگر عبارت عبورتان را فراموش کرده‌اید یا می‌خواهید این تنظیم را تغییر دهید، <ph name="BEGIN_LINK" />همگام‌سازی را بازنشانی کنید<ph name="END_LINK" />.</translation>
+@@ -5952,7 +5952,7 @@
+ <translation id="6831043979455480757">ترجمه</translation>
+ <translation id="6833479554815567477">برگه از گروه <ph name="GROUP_NAME" /> برداشته شد - <ph name="GROUP_CONTENTS" /></translation>
+ <translation id="683373380308365518">به مرورگری هوشمند و ایمن جابه‌جا شوید</translation>
+-<translation id="6833996806551876956">دوره آزمایشی «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="6833996806551876956">دوره آزمایشی «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="6834652994408928492">«حالت تاریک» هنگام غروب آفتاب به‌طور خودکار روشن خواهد شد</translation>
+ <translation id="6835762382653651563">برای به‌روزرسانی <ph name="DEVICE_TYPE" />، لطفاً به اینترنت وصل شوید.</translation>
+ <translation id="6839225236531462745">خطای حذف مجوز</translation>
+@@ -6160,7 +6160,7 @@
+ <translation id="7022562585984256452">صفحه اصلی شما تنظیم شد.</translation>
+ <translation id="7025082428878635038">معرفی روشی جدید برای پیمایش با اشاره‌ها</translation>
+ <translation id="7025190659207909717">مدیریت خدمات داده‌های تلفن همراه</translation>
+-<translation id="7025895441903756761">امنیت و حریم‌خصوصی</translation>
++<translation id="7025895441903756761">امنیت و حریم خصوصی</translation>
+ <translation id="7027258625819743915">{COUNT,plural, =0{باز کردن همه در پنجره ناشناس}=1{باز کردن در پنجره ناشناس}one{باز کردن همه ({COUNT}) در پنجره ناشناس}other{باز کردن همه ({COUNT}) در پنجره ناشناس}}</translation>
+ <translation id="7029307918966275733">‏Crostini نصب نشده است. لطفاً برای مشاهده اعتبارها، Crostini را نصب کنید.</translation>
+ <translation id="7029809446516969842">گذرواژه‌ها</translation>
+@@ -6253,7 +6253,7 @@
+ <translation id="7123030151043029868">اجازه دارد چند فایل را به‌طور خودکار بارگیری کند</translation>
+ <translation id="7123302939607518173">اگر فکر می‌کنید آگهی‌های مربوط به این مورد برایتان مفید خواهد بود، علاقه یا سایت را اضافه کنید.</translation>
+ <translation id="7124013154139278147">اختصاص دادن کلید به کنش «قبلی»</translation>
+-<translation id="7125029162161377569">با دوره‌های آزمایشی «جعبه ایمنی حریم‌خصوصی»، سایت‌ها می‌توانند تجربه مرور یکسانی را بااستفاده از اطلاعات شخصی کمتر ارائه دهند. به‌عبارت‌دیگر، حریم‌خصوصی‌تان بهبود می‌یابد و ردیابی بین‌سایتی کاهش پیدا می‌کند. هروقت دوره‌های آزمایشی جدیدی برای آزمایش کردن آماده شد، آن‌ها را اضافه می‌کنیم.</translation>
++<translation id="7125029162161377569">با دوره‌های آزمایشی «جعبه ایمنی حریم خصوصی»، سایت‌ها می‌توانند تجربه مرور یکسانی را بااستفاده از اطلاعات شخصی کمتر ارائه دهند. به‌عبارت‌دیگر، حریم خصوصی‌تان بهبود می‌یابد و ردیابی بین‌سایتی کاهش پیدا می‌کند. هروقت دوره‌های آزمایشی جدیدی برای آزمایش کردن آماده شد، آن‌ها را اضافه می‌کنیم.</translation>
+ <translation id="7125148293026877011">‏حذف Crostini</translation>
+ <translation id="7127980134843952133">سابقه بارگیری</translation>
+ <translation id="7128151990937044829">وقتی اعلان‌ها مسدود شده‌اند، نشانگری در نوار نشانی نشان داده شود</translation>
+@@ -6457,7 +6457,7 @@
+ <translation id="7360233684753165754"><ph name="PAGE_NUMBER" /> صفحه در <ph name="PRINTER_NAME" /></translation>
+ <translation id="7361297102842600584">برای اجرای <ph name="PLUGIN_NAME" /> کلیک راست کنید</translation>
+ <translation id="7362387053578559123">سایت‌ها می‌توانند برای اتصال به دستگاه‌های بلوتوث درخواست دهند</translation>
+-<translation id="7363349185727752629">راهنمای گزینه‌های حریم‌خصوصی</translation>
++<translation id="7363349185727752629">راهنمای گزینه‌های حریم خصوصی</translation>
+ <translation id="7364591875953874521">دسترسی درخواست شده</translation>
+ <translation id="7364745943115323529">پخش محتوا…</translation>
+ <translation id="7364796246159120393">انتخاب فایل</translation>
+@@ -6614,7 +6614,7 @@
+ <translation id="7509097596023256288">درحال راه‌اندازی مدیریت</translation>
+ <translation id="7509246181739783082">هویتتان را به‌تأیید برسانید</translation>
+ <translation id="7509539379068593709">حذف نصب برنامه</translation>
+-<translation id="7511415964832680006">وقتی روشن باشد، سایت‌ها می‌توانند برای ارائه محتوا و سرویس‌هایشان از تکنیک‌های حفظ حریم‌خصوصی نشان داده‌شده در اینجا استفاده کنند. این تکنیک‌ها شامل روش‌های جایگزین برای ردیابی بین‌سایتی می‌شود. ممکن است در گذر زمان، دوره‌های آزمایشی بیشتری اضافه شود.</translation>
++<translation id="7511415964832680006">وقتی روشن باشد، سایت‌ها می‌توانند برای ارائه محتوا و سرویس‌هایشان از تکنیک‌های حفظ حریم خصوصی نشان داده‌شده در اینجا استفاده کنند. این تکنیک‌ها شامل روش‌های جایگزین برای ردیابی بین‌سایتی می‌شود. ممکن است در گذر زمان، دوره‌های آزمایشی بیشتری اضافه شود.</translation>
+ <translation id="7514239104543605883">کپی در دستگاه</translation>
+ <translation id="7514365320538308">بارگیری</translation>
+ <translation id="7514417110442087199">افزودن تخصیص</translation>
+@@ -6769,7 +6769,7 @@
+ <translation id="7658239707568436148">لغو</translation>
+ <translation id="7659154729610375585">درهرصورت از «حالت ناشناس» خارج می‌شوید؟</translation>
+ <translation id="7659297516559011665">فقط گذرواژه‌های ذخیره‌شده در این دستگاه</translation>
+-<translation id="7659336857671800422">مشاهده «راهنمای حریم‌خصوصی»</translation>
++<translation id="7659336857671800422">مشاهده «راهنمای حریم خصوصی»</translation>
+ <translation id="7659584679870740384">مجاز به استفاده از این دستگاه نیستید. لطفاً برای دریافت اجازه ورود به سیستم با سرپرست تماس بگیرید.</translation>
+ <translation id="7660146600670077843">روی یکی از برگه‌ها کلیک راست کنید و «افزودن برگه به گروه جدید» را انتخاب کنید</translation>
+ <translation id="7661259717474717992">اجازه به سایت‌ها برای ذخیره کردن و خواندن داده‌های کوکی</translation>
+@@ -7018,7 +7018,7 @@
+ <translation id="788453346724465748">درحال بار کردن اطلاعات حساب…</translation>
+ <translation id="7886279613512920452">{COUNT,plural, =1{یک مورد}one{# مورد}other{# مورد}}</translation>
+ <translation id="7886605625338676841">سیم‌کارت داخلی</translation>
+-<translation id="7887174313503389866">در گشت با راهنمای مربوط به کنترل‌های اصلی امنیت و حریم‌خصوصی شرکت کنید. برای گزینه‌های بیشتر، به‌طور جداگانه به هر تنظیم بروید.</translation>
++<translation id="7887174313503389866">در گشت با راهنمای مربوط به کنترل‌های اصلی امنیت و حریم خصوصی شرکت کنید. برای گزینه‌های بیشتر، به‌طور جداگانه به هر تنظیم بروید.</translation>
+ <translation id="7887334752153342268">کپی‌برداری</translation>
+ <translation id="7887864092952184874">موشواره بلوتوث مرتبط شد</translation>
+ <translation id="7889371445710865055">تغییر زبان تایپ صوتی</translation>
+@@ -7313,7 +7313,7 @@
+ <translation id="816055135686411707">خطا در تنظیم اعتماد مجوز</translation>
+ <translation id="8160775796528709999">با فعال کردن «زیرنویس ناشنوایان زنده» در تنظیمات، برای صدا و ویدیو زیرنویس ناشنوایان دریافت کنید</translation>
+ <translation id="816095449251911490"><ph name="SPEED" /> - <ph name="RECEIVED_AMOUNT" />، <ph name="TIME_REMAINING" /></translation>
+-<translation id="81610453212785426">‏Chrome بااستفاده از <ph name="BEGIN_LINK" />جعبه ایمنی حریم‌خصوصی<ph name="END_LINK" /> درحال توسعه فناوری‌های جدیدی است که ضمن حفظ وبِ باز، از شما در برابر ردیابی بین‌سایتی محافظت می‌کند.</translation>
++<translation id="81610453212785426">‏Chrome بااستفاده از <ph name="BEGIN_LINK" />جعبه ایمنی حریم خصوصی<ph name="END_LINK" /> درحال توسعه فناوری‌های جدیدی است که ضمن حفظ وبِ باز، از شما در برابر ردیابی بین‌سایتی محافظت می‌کند.</translation>
+ <translation id="8161293209665121583">«حالت خواننده» برای صفحه‌های وب</translation>
+ <translation id="8162984717805647492">{NUM_TABS,plural, =1{انتقال دادن برگه به پنجره جدید}one{انتقال دادن برگه‌ها به پنجره جدید}other{انتقال دادن برگه‌ها به پنجره جدید}}</translation>
+ <translation id="8165997195302308593">‏بازارسال درگاه Crostini</translation>
+@@ -7343,7 +7343,7 @@
+ <translation id="8188389033983459049">تنظیمات دستگاه را بررسی کنید و برای ادامه، آن را روشن کنید</translation>
+ <translation id="8188742492803591566">‏برای ارسال محتوای صفحه، کد دسترسی نمایش داده‌شده در Chromecast یا تلویزیون را وارد کنید.</translation>
+ <translation id="8189306097519446565">حساب‌های مدرسه</translation>
+-<translation id="8189750580333936930">جعبه ایمنی حریم‌خصوصی</translation>
++<translation id="8189750580333936930">جعبه ایمنی حریم خصوصی</translation>
+ <translation id="8191230140820435481">مدیریت برنامه‌ها، افزونه‌ها و طرح‌های زمینه</translation>
+ <translation id="8192944472786724289"><ph name="APP_NAME" /> می‌خواهد محتوای صفحه‌نمایشتان را هم‌رسانی کند</translation>
+ <translation id="8193953846147532858"><ph name="BEGIN_LINK" />دستگاه‌های شما<ph name="END_LINK" /> · <ph name="EMAIL" /></translation>
+@@ -7596,7 +7596,7 @@
+ <translation id="8457451314607652708">وارد کردن نشانک‌ها</translation>
+ <translation id="8458341576712814616">میان‌بر</translation>
+ <translation id="8458627787104127436">باز کردن همه (<ph name="URL_COUNT" /> مورد) در پنجره جدید</translation>
+-<translation id="8460448946170646641">مرور کنترل‌های اصلی امنیت و حریم‌خصوصی</translation>
++<translation id="8460448946170646641">مرور کنترل‌های اصلی امنیت و حریم خصوصی</translation>
+ <translation id="8460490661223303637">‏برای صرفه‌جویی در حافظه، Chrome برخی محتوا را پاک کرد</translation>
+ <translation id="8460932807646981183">مدیریت موتورهای جستجو و جستجوی سایت</translation>
+ <translation id="84613761564611563">واسط کاربر پیکربندی شبکه درخواست شد، لطفاً صبر کنید…</translation>
+@@ -7623,7 +7623,7 @@
+ <translation id="8480869669560681089">دستگاه نامشخص از <ph name="VENDOR_NAME" /></translation>
+ <translation id="8481187309597259238">‏تأیید مجوز USB</translation>
+ <translation id="8481980314595922412">ویژگی‌های آزمایشی روشن است</translation>
+-<translation id="848666842773560761">برنامه‌ای می‌خواهد به دوربین دسترسی داشته باشد. برای مجاز کردن دسترسی، کلید «حریم‌خصوصی دوربین» را خاموش کنید.</translation>
++<translation id="848666842773560761">برنامه‌ای می‌خواهد به دوربین دسترسی داشته باشد. برای مجاز کردن دسترسی، کلید «حریم خصوصی دوربین» را خاموش کنید.</translation>
+ <translation id="8487678622945914333">بزرگ‌نمایی</translation>
+ <translation id="8489156414266187072">پیشنهادهای شخصی فقط در حساب شما نمایش داده می‌شوند</translation>
+ <translation id="8490896350101740396">برنامه‌های کیوسک زیر «<ph name="UPDATED_APPS" />» به‌روز شده‌اند. لطفاً برای تکمیل فرآیند به‌روزرسانی دستگاه را مجدداً راه‌اندازی کنید.</translation>
+@@ -7861,7 +7861,7 @@
+ <translation id="8731851055419582926">گذرواژه‌های بررسی‌شده</translation>
+ <translation id="8732030010853991079">با کلیک کردن روی این نماد از این برنامه افزودنی استفاده کنید.</translation>
+ <translation id="8732212173949624846">خواندن و تغییر سابقه مرورتان در همه دستگاه‌های وارد به سیستم خودتان</translation>
+-<translation id="8732844209475700754">تنظیمات بیشتر مرتبط با حریم‌خصوصی، امنیت و جمع‌آوری داده‌ها</translation>
++<translation id="8732844209475700754">تنظیمات بیشتر مرتبط با حریم خصوصی، امنیت و جمع‌آوری داده‌ها</translation>
+ <translation id="8734073480934656039">فعال کردن این تنظیم به برنامه‌های کیوسک اجازه می‌دهد تا به صورت خودکار در شروع به کار راه‌اندازی شوند.</translation>
+ <translation id="8734674662128056360">مسدود کردن کوکی‌های شخص ثالث</translation>
+ <translation id="873545264931343897">وفتی به‌روزرسانی <ph name="PLUGIN_NAME" /> تمام شد، برای فعال کردن آن، صفحه را تازه‌سازی کنید</translation>
+@@ -8025,7 +8025,7 @@
+ <translation id="8880054210564666174">فهرست مخاطبین بارگیری نشد. لطفاً اتصال شبکه‌تان را بررسی کنید یا <ph name="LINK_BEGIN" />دوباره امتحان کنید<ph name="LINK_END" />.</translation>
+ <translation id="8881020143150461183">لطفاً دوباره امتحان کنید. برای پشتیبانی فنی، با <ph name="CARRIER_NAME" /> تماس بگیرید.</translation>
+ <translation id="8883273463630735858">فعال کردن شتاب‌دهنده صفحه لمسی</translation>
+-<translation id="8884023684057697730"><ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم‌خصوصی شما، سایت‌های موجود در فهرست را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. سایت‌هایی که مجدداً از آن‌ها بازدید می‌کنید ممکن است دوباره در فهرست نمایش داده شود. یا اگر نمی‌خواهید سایت خاصی هرگز به علایق شما پی ببرد می‌توانید آن سایت را از فهرست بردارید.</translation>
++<translation id="8884023684057697730"><ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم خصوصی شما، سایت‌های موجود در فهرست را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. سایت‌هایی که مجدداً از آن‌ها بازدید می‌کنید ممکن است دوباره در فهرست نمایش داده شود. یا اگر نمی‌خواهید سایت خاصی هرگز به علایق شما پی ببرد می‌توانید آن سایت را از فهرست بردارید.</translation>
+ <translation id="8884570509232205463">اکنون دستگاهتان ساعت <ph name="UNLOCK_TIME" /> قفل می‌شود.</translation>
+ <translation id="8888253246822647887">وقتی ارتقا به پایان برسد، برنامه‌تان باز خواهد شد. ارتقا ممکن است چند دقیقه طول بکشد.</translation>
+ <translation id="8888432776533519951">رنگ:</translation>
+@@ -8183,7 +8183,7 @@
+ <translation id="9040661932550800571">گذرواژه <ph name="ORIGIN" /> به‌روزرسانی شود؟</translation>
+ <translation id="9041692268811217999">دسترسی به فایل‌های محلی موجود در دستگاهتان، توسط سرپرست شما غیرفعال شده است</translation>
+ <translation id="904224458472510106">این عملیات را نمی‌توان واگرد کرد</translation>
+-<translation id="9042893549633094279">حریم‌خصوصی و امنیت</translation>
++<translation id="9042893549633094279">حریم خصوصی و امنیت</translation>
+ <translation id="904451693890288097">لطفاً گذرکلید "<ph name="DEVICE_NAME" />" را وارد کنید:</translation>
+ <translation id="9044646465488564462">اتصال به شبکه انجام نشد: <ph name="DETAILS" /></translation>
+ <translation id="9045160989383249058">فهرست خواندن به پانل کناری جدید منتقل شده است. آن را در اینجا امتحان کنید.</translation>
+@@ -8334,7 +8334,7 @@
+ <translation id="919679265671373777">رسانه و عکس‌های جدید تلفنتان را مشاهده کنید. برنامه‌های پیام‌رسانی تلفن را جاری‌سازی کنید.</translation>
+ <translation id="919686179725692564">درباره پشتیبان‌گیری از برنامه‌ها بیشتر بدانید</translation>
+ <translation id="9198090666959937775">‏استفاده از تلفن Android به‌عنوان کلید امنیتی</translation>
+-<translation id="9199503643457729322">برای خارج شدن از «راهنمای حریم‌خصوصی»، کلیک کنید.</translation>
++<translation id="9199503643457729322">برای خارج شدن از «راهنمای حریم خصوصی»، کلیک کنید.</translation>
+ <translation id="9200339982498053969"><ph name="ORIGIN" /> خواهد توانست فایل‌های <ph name="FOLDERNAME" /> را ویرایش کند</translation>
+ <translation id="920045321358709304">جستجوی <ph name="SEARCH_ENGINE" /></translation>
+ <translation id="9201023452444595544">هرنوع داده آفلاینی حذف خواهد شد</translation>
+diff --git a/chrome/app/resources/generated_resources_kk.xtb b/chrome/app/resources/generated_resources_kk.xtb
+index 5ed778820855..b2704d9f371f 100644
+--- a/chrome/app/resources/generated_resources_kk.xtb
++++ b/chrome/app/resources/generated_resources_kk.xtb
+@@ -179,7 +179,7 @@
+ <translation id="1166596238782048887">"<ph name="TAB_TITLE" />" қойындысы "<ph name="DESK_TITLE" />" үстеліне тиесілі.</translation>
+ <translation id="1168020859489941584"><ph name="TIME_REMAINING" /> ішінде ашылады…</translation>
+ <translation id="1169435433292653700"><ph name="FILE_NAME" /> файлында құпия немесе қауіпті деректер болуы мүмкін. Әкімші хабары: "<ph name="CUSTOM_MESSAGE" />".</translation>
+-<translation id="1171135284592304528">Нысан өзгерген кезде оны пернетақта арқылы бөлектеу</translation>
++<translation id="1171135284592304528">Нысан өзгерген кезде оны пернетақта арқылы ерекшелеу</translation>
+ <translation id="1171515578268894665"><ph name="ORIGIN" /> веб-сайты HID құрылғысына жалғанғысы келеді.</translation>
+ <translation id="1172750555846831341">Екі бетіне басып шығару (күнтізбе)</translation>
+ <translation id="1173894706177603556">Атын өзгерту</translation>
+@@ -732,9 +732,9 @@
+ <translation id="1697150536837697295">Өнер</translation>
+ <translation id="1697686431566694143">Файлды өңдеу</translation>
+ <translation id="1700079447639026019">Cookie файлдарын пайдалана алмайтын сайттар</translation>
+-<translation id="1700201317341192482">Виртуалды картаны жою</translation>
++<translation id="1700201317341192482">Виртуалдық картаны жою</translation>
+ <translation id="1703331064825191675">Құпия сөздеріңіз жайлы уайымдамаңыз</translation>
+-<translation id="1703666494654169921">Сайттардың виртуалды шындық құрылғыларын немесе деректерді пайдалануына рұқсат бермеу</translation>
++<translation id="1703666494654169921">Сайттардың виртуалдық шындық құрылғыларын немесе деректерді пайдалануына рұқсат бермеу</translation>
+ <translation id="1704097193565924901">Бас әріпке өзгерту</translation>
+ <translation id="1704230497453185209">Сайттардың дыбысты шығаруына рұқсат бермеу</translation>
+ <translation id="1704970325597567340">Қауіпсіздік шарасы <ph name="DATE" /> күні қолданылды.</translation>
+@@ -1010,7 +1010,7 @@
+ <translation id="1962233722219655970">Бұл бет компьютеріңізде жұмыс істемейтін Native Client қолданбасын пайдаланады.</translation>
+ <translation id="1963227389609234879">Барлығын жою</translation>
+ <translation id="1963976881984600709">Стандартты қорғау</translation>
+-<translation id="196425401113508486">Жылжытқан кезде, көрсеткіні бөлектеу</translation>
++<translation id="196425401113508486">Жылжытқан кезде, көрсеткіні ерекшелеу</translation>
+ <translation id="1965624977906726414">Арнайы рұқсаттары жоқ.</translation>
+ <translation id="1969654639948595766">WebRTC мәтіндік журналы (<ph name="WEBRTC_TEXT_LOG_COUNT" />)</translation>
+ <translation id="1970368523891847084">Бейне режимі қосылды</translation>
+@@ -1091,7 +1091,7 @@
+ <translation id="204622017488417136">Құрылғыңыз бұрын орнатылған Chrome нұсқасына қайтарылады. Барлық пайдаланушы аккаунттары мен жергілікті деректер жойылады. Бұл әрекетті кері қайтару мүмкін емес.</translation>
+ <translation id="2046702855113914483">Рамен</translation>
+ <translation id="2046770133657639077">Құрылғының EID нөмірін көрсету</translation>
+-<translation id="204706822916043810">Виртуалды құрылғы тексерілуде</translation>
++<translation id="204706822916043810">Виртуалдық құрылғы тексерілуде</translation>
+ <translation id="2048182445208425546">Желілік трафигіңізге кіру</translation>
+ <translation id="2048554637254265991">Контейнер басқарушысын іске қосу қатесі. Қайталап көріңіз.</translation>
+ <translation id="2048653237708779538">Әрекет қолжетімді емес</translation>
+@@ -1222,7 +1222,7 @@
+ <translation id="2157474325782140681">Қосымша функцияларды пайдалану үшін осы Chromebook құрылғысымен жұмыс істеуге арналған қондыру станциясын пайдаланыңыз.</translation>
+ <translation id="215753907730220065">Толық экраннан шығу</translation>
+ <translation id="2157875535253991059">Бұл бет енді толық экранға ауысты.</translation>
+-<translation id="2158475082070321257">Бөлектелген мәтіннің сілтемесін көшіру</translation>
++<translation id="2158475082070321257">Ерекшеленген мәтіннің сілтемесін көшіру</translation>
+ <translation id="2159488579268505102">USB-C</translation>
+ <translation id="216169395504480358">Wi-Fi желісін қосу…</translation>
+ <translation id="2162155940152307086">Синхрондау, сіз параметрлерден шыққан кезде, басталады.</translation>
+@@ -1231,7 +1231,7 @@
+ <translation id="2163937499206714165">Қараңғы режимді қосу</translation>
+ <translation id="2164131635608782358"><ph name="FIRST_SWITCH" />, <ph name="SECOND_SWITCH" />, <ph name="THIRD_SWITCH" /> және тағы 1 ауыстырғыш</translation>
+ <translation id="2165102982098084499">Бұл құрылғыларды QR кодын сканерлеу арқылы байланыстырдыңыз.</translation>
+-<translation id="2165177462441582039">Әр элемент қанша уақыт бөлектеліп тұруы керектігін таңдаңыз</translation>
++<translation id="2165177462441582039">Әр элемент қанша уақыт ерекшеленіп тұруы керектігін таңдаңыз</translation>
+ <translation id="2166369534954157698">аәбвгғдеёжзийкқлмнңоөпрстуұүфхһцчшщъыіьэюя</translation>
+ <translation id="2169062631698640254">Бәрібір кіру</translation>
+ <translation id="2173302385160625112">Интернет байланысын тексеріңіз</translation>
+@@ -1417,7 +1417,7 @@
+ <translation id="2322622365472107569">Аяқталу уақыты: <ph name="TIME" /></translation>
+ <translation id="2323018538045954000">Сақталған Wi-Fi желілері</translation>
+ <translation id="2325444234681128157">Құпия сөзді есте сақтау</translation>
+-<translation id="2325760149602186433">Виртуалды картаны өшіру</translation>
++<translation id="2325760149602186433">Виртуалдық картаны өшіру</translation>
+ <translation id="2326188115274135041">Құлыпты автоматты түрде ашу функциясын қосу үшін PIN кодын растаңыз.</translation>
+ <translation id="2326931316514688470">Қолданбаны &amp;қайта жүктеу</translation>
+ <translation id="2327492829706409234">Қолданбаны қосу</translation>
+@@ -1569,7 +1569,7 @@
+ <translation id="2468205691404969808">Бұл беттерді ашпасаңыз да, cookie файлдарын пайдаланып, параметрлерді сақтап қалады</translation>
+ <translation id="2468402215065996499">Тамагочи</translation>
+ <translation id="2468845464436879514">{NUM_TABS,plural, =1{<ph name="GROUP_TITLE" /> – 1 қойынды}other{<ph name="GROUP_TITLE" /> – # қойынды}}</translation>
+-<translation id="2469141124738294431">Виртуалды машина күйі</translation>
++<translation id="2469141124738294431">Виртуалдық машина күйі</translation>
+ <translation id="2469259292033957819">Ешқандай принтер сақталмаған.</translation>
+ <translation id="2469375675106140201">Емлені тексеруді реттеу</translation>
+ <translation id="247051149076336810">Ортақ каталогтің URL мекенжайы</translation>
+@@ -1653,7 +1653,7 @@
+ <translation id="253557089021624350">Кеңейтімдер қолданатын процестер саны</translation>
+ <translation id="2535799430745250929">Ешқандай ұялы байланыс желісі жоқ.</translation>
+ <translation id="2537395079978992874"><ph name="ORIGIN" /> мына файлдар мен қалталарды көреді және өңдей алады.</translation>
+-<translation id="2537927931785713436">Виртуалды құрылғы кескіні тексерілуде</translation>
++<translation id="2537927931785713436">Виртуалдық құрылғы кескіні тексерілуде</translation>
+ <translation id="2538084450874617176">Бұл <ph name="DEVICE_TYPE" /> құрылғысын кім пайдаланады?</translation>
+ <translation id="2538361623464451692">Синхрондау өшірілген</translation>
+ <translation id="2540449034743108469">"Бастау" түймесін басып, кеңейтім әрекеттерін тыңдаңыз.</translation>
+@@ -2043,7 +2043,7 @@
+ <translation id="2913331724188855103">Сайттарға cookie деректерін сақтауға және оқуға рұқсат беру (ұсынылған)</translation>
+ <translation id="2915102088417824677">Әрекеттер журналын көру</translation>
+ <translation id="2915873080513663243">Автоматты түрде сканерлеу</translation>
+-<translation id="2916073183900451334">Веб-бетте "Қойынды" түймесін басқанда, сілтемелер мен нысан өрістері бөлектеледі</translation>
++<translation id="2916073183900451334">Веб-бетте "Қойынды" түймесін басқанда, сілтемелер мен нысан өрістері ерекшеленеді</translation>
+ <translation id="2916745397441987255">Кеңейтімдерден іздеу</translation>
+ <translation id="2918484639460781603">Параметрлерге өту</translation>
+ <translation id="2918484644467055090">Бұл құрылғыны аккаунтыңыз кіретін ұйымға тіркеу мүмкін емес, себебі құрылғы басқа ұйым арқылы басқару үшін белгіленген.</translation>
+@@ -2377,7 +2377,7 @@
+ <translation id="3275778913554317645">Терезе ретінде ашу</translation>
+ <translation id="3278001907972365362">Google аккаунттарыңызды тексеріңіз</translation>
+ <translation id="3279092821516760512">Таңдалған контактілер маңайда болған кезде, сізбен бөлісе алады. Сіз қабылдамайынша, тасымалдау басталмайды.</translation>
+-<translation id="3279230909244266691">Бұл процесс бірнеше минутқа созылуы мүмкін. Виртуалды құрылғы іске қосылуда.</translation>
++<translation id="3279230909244266691">Бұл процесс бірнеше минутқа созылуы мүмкін. Виртуалдық құрылғы іске қосылуда.</translation>
+ <translation id="3280237271814976245">Басқаша &amp;сақтау…</translation>
+ <translation id="3280243678470289153">Chrome браузерінде қалу</translation>
+ <translation id="3281892622610078515">Кепілдік берілетін файлдар мен бағдарламалар:</translation>
+@@ -2451,7 +2451,7 @@
+ <translation id="3349933790966648062">Пайдаланылатын жад көлемі</translation>
+ <translation id="3354972872297836698"><ph name="DEVICE_NAME" /> құрылғысымен жұптау мүмкін болмады; әрекетті қайталау үшін құрылғыны таңдаңыз.</translation>
+ <translation id="3355936511340229503">Байланыс қатесі</translation>
+-<translation id="3356469410714175391">(виртуалды карта қосулы)</translation>
++<translation id="3356469410714175391">(виртуалдық карта қосулы)</translation>
+ <translation id="3356580349448036450">Аяқталған</translation>
+ <translation id="3359256513598016054">Сертификат саясатының шектеулері</translation>
+ <translation id="3360297538363969800">Басып шығару әрекеті сәтсіз аяқталды. Принтерді тексеріп, әрекетті қайталаңыз.</translation>
+@@ -2499,7 +2499,7 @@
+ <translation id="3404249063913988450">Скринсейверді қосу</translation>
+ <translation id="3405664148539009465">Қаріптерді реттеу</translation>
+ <translation id="3405763860805964263">...</translation>
+-<translation id="3406290648907941085">Виртуалды шындық құрылғыларын мен деректерін пайдалануға рұқсаты барлар</translation>
++<translation id="3406290648907941085">Виртуалдық шындық құрылғыларын мен деректерін пайдалануға рұқсаты барлар</translation>
+ <translation id="3406396172897554194">Тілді немесе енгізу әдісін көрсетіңіз</translation>
+ <translation id="3406605057700382950">Бетбелгілер жолағын &amp;көрсету</translation>
+ <translation id="3409785640040772790">Maps</translation>
+@@ -2561,7 +2561,7 @@
+ <translation id="3454213325559396544">Бұл – <ph name="DEVICE_TYPE" /> құрылғысына арналған бағдарламалық құрал мен қауіпсіздік жүйесінің жаңа нұсқасы. Бұдан кейін де жаңа нұсқаларын алғыңыз келсе, жаңа үлгіге өтіңіз.</translation>
+ <translation id="3455436146814891176">Синхрондауды шифрлау құпия сөзі</translation>
+ <translation id="345693547134384690">&amp;Кескінді жаңа қойындыда ашу</translation>
+-<translation id="3458451003193188688">Желідегі қатеге байланысты виртуалды құрылғы орнатылмады. Әрекетті қайталаңыз немесе әкімшіге хабарласыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation>
++<translation id="3458451003193188688">Желідегі қатеге байланысты виртуалдық құрылғы орнатылмады. Әрекетті қайталаңыз немесе әкімшіге хабарласыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation>
+ <translation id="3458794975359644386">Бөлісуден бас тартылмады</translation>
+ <translation id="3459509316159669723">Басып шығару</translation>
+ <translation id="3459697287128633276">Аккаунтыңыз Google Play Store дүкеніне кіре алуы үшін идентификатор провайдері арқылы аутентификациялаңыз.</translation>
+@@ -2596,7 +2596,7 @@
+ <translation id="3487007233252413104">анонимді функция</translation>
+ <translation id="3490695139702884919">Жүктеп алынуда… <ph name="PERCENT" />%</translation>
+ <translation id="3491669675709357988">Балаңыздың аккаунты Family Link ата-ана бақылауы үшін реттелмеген. Реттеуді аяқтағаннан кейін, ата-ана бақылауын қоса аласыз. Ата-ана бақылауы туралы ақпаратты Explore қолданбасынан таба аласыз.</translation>
+-<translation id="3491678231052507920">VR сеанстарына кіре алуыңыз үшін, сайттар әдетте виртуалды шындық құрылғыларын және деректерді қолданады.</translation>
++<translation id="3491678231052507920">VR сеанстарына кіре алуыңыз үшін, сайттар әдетте виртуалдық шындық құрылғыларын және деректерді қолданады.</translation>
+ <translation id="3493486281776271508">Интернет байланысы керек.</translation>
+ <translation id="3493881266323043047">Жарамдылық</translation>
+ <translation id="3494769164076977169">Сайт бірінші файлдан кейін файлдарды автоматты түрде жүктеуге әрекет еткенде сұрау (ұсынылған)</translation>
+@@ -2827,7 +2827,7 @@
+ <translation id="3719826155360621982">Негізгі бет</translation>
+ <translation id="372062398998492895">CUPS</translation>
+ <translation id="3721119614952978349">Сіз және Google</translation>
+-<translation id="3722108462506185496">Виртуалды құрылғы қызметін іске қосу кезінде қате шықты. Кейінірек қайталап көріңіз.</translation>
++<translation id="3722108462506185496">Виртуалдық құрылғы қызметін іске қосу кезінде қате шықты. Кейінірек қайталап көріңіз.</translation>
+ <translation id="3727144509609414201">Қолжетімді WiFi желілері</translation>
+ <translation id="3727187387656390258">Қалқымалы терезені тексеру</translation>
+ <translation id="372722114124766626">Бір рет қана</translation>
+@@ -3129,7 +3129,7 @@
+ <translation id="3984135167056005094">Электрондық мекенжайды қамтымау</translation>
+ <translation id="3984159763196946143">Демо режимі іске қосылмады</translation>
+ <translation id="3984431586879874039">Бұл сайтқа қауіпсіздік кілтін көруге рұқсат етілсін бе?</translation>
+-<translation id="398477389655464998">Бөлектелген мәтіннің сілтемесін көшіру</translation>
++<translation id="398477389655464998">Ерекшеленген мәтіннің сілтемесін көшіру</translation>
+ <translation id="3984862166739904574">Жылдам жауаптар ұсынған анықтама</translation>
+ <translation id="3986164906089840270"><ph name="BEGIN_PARAGRAPH1" />ChromeOS құрылғыларына автоматты түрде жасалған есептерді жіберуге рұқсат берсеңіз, бізге ChromeOS жүйесіндегі ақауларды жоюға және оны жетілдіруге қатысты басымдықтарды анықтауға көмектесесіз. Мұндай есептерде ChromeOS бұзылған кезде қолданыста болған функциялар және әдетте пайдаланылатын жад көлемі сияқты ақпарат қамтылуы мүмкін.<ph name="END_PARAGRAPH1" />
+     <ph name="BEGIN_PARAGRAPH2" />Chrome құрылғыңыздың параметрлері арқылы кез келген уақытта мұндай есептерді жіберуге рұқсат бере және тыйым сала аласыз. Егер домен әкімшісі болсаңыз, бұл параметрді әкімші консолі арқылы өзгерте аласыз.<ph name="END_PARAGRAPH2" />
+@@ -3313,7 +3313,7 @@
+ <translation id="4181841719683918333">Тілдер</translation>
+ <translation id="4184803915913850597">HID құрылғысы (<ph name="VENDOR_ID" />:<ph name="PRODUCT_ID" />)</translation>
+ <translation id="4187424053537113647"><ph name="APP_NAME" /> орнатылуда...</translation>
+-<translation id="4190828427319282529">Пернетақта фокусын бөлектеу</translation>
++<translation id="4190828427319282529">Пернетақта фокусын ерекшелеу</translation>
+ <translation id="4193836101014293726">Бұл профильді жою мүмкін емес</translation>
+ <translation id="419427585139779713">Бірден буынмен енгізу</translation>
+ <translation id="4194570336751258953">Tap-to-click мүмкіндігін қосу</translation>
+@@ -3574,7 +3574,7 @@
+ <translation id="4460014764210899310">Топты тарату</translation>
+ <translation id="4462159676511157176">Реттелетін атау серверлері</translation>
+ <translation id="4465236939126352372"><ph name="APP_NAME" /> қолданбасы үшін шектелген уақыт: <ph name="TIME" /></translation>
+-<translation id="4466068638972170851">Дауыстап оқылатын мазмұнды бөлектеп, "Іздеу + S" пернелерін басыңыз. Іздеу пернесін басып тұрыңыз немесе күй науасының жанындағы "Select-to-Speak" белгішесін түртіп, таңдау жасаңыз.</translation>
++<translation id="4466068638972170851">Дауыстап оқылатын мазмұнды ерекшелеп, "Іздеу + S" пернелерін басыңыз. Іздеу пернесін басып тұрыңыз немесе күй науасының жанындағы "Select-to-Speak" белгішесін түртіп, таңдау жасаңыз.</translation>
+ <translation id="4466839823729730432">Естеліктеріңізді осы жерден қараңыз</translation>
+ <translation id="4469324811108161144">Ескертпелерде <ph name="CHARACTER_LIMIT" /> таңбаға дейін болуы мүмкін.</translation>
+ <translation id="4469762931504673593"><ph name="ORIGIN" /> <ph name="FOLDERNAME" /> қалтасындағы файлдарды өңдей алады.</translation>
+@@ -3859,7 +3859,7 @@
+ <translation id="473936925429402449">Таңдалды, <ph name="CURRENT_ELEMENT" />/<ph name="TOTAL_ELEMENTS" />-картадағы қосымша мазмұн</translation>
+ <translation id="4739639199548674512">Билеттер</translation>
+ <translation id="4742334355511750246">Суреттерді көрсетуге рұқсаты жоқтар</translation>
+-<translation id="4742970037960872810">Бөлектемеу</translation>
++<translation id="4742970037960872810">Ерекшелемеу</translation>
+ <translation id="4743260470722568160"><ph name="BEGIN_LINK" />Қолданбаларды жаңарту әдісі туралы ақпарат алу<ph name="END_LINK" /></translation>
+ <translation id="4744981231093950366">{NUM_TABS,plural, =1{Сайттың дыбысын қосу}other{Сайттардың дыбысын қосу}}</translation>
+ <translation id="474609389162964566">Assistant қолданбасына "Ok Google" деу арқылы кіру</translation>
+@@ -3948,7 +3948,7 @@
+ <translation id="4838907349371614303">Құпия сөз жаңартылды</translation>
+ <translation id="4839303808932127586">Бейнені басқаша сақ&amp;тау…</translation>
+ <translation id="4840096453115567876">Бәрібір инкогнито режимінен шығасыз ба?</translation>
+-<translation id="4841741146571978176">Талап етілетін виртуалды машина жоқ. Жалғастыру үшін "<ph name="VM_TYPE" />" виртуалды машинасын орнатып көріңіз.</translation>
++<translation id="4841741146571978176">Талап етілетін виртуалдық машина жоқ. Жалғастыру үшін "<ph name="VM_TYPE" />" виртуалдық машинасын орнатып көріңіз.</translation>
+ <translation id="4842976633412754305">Бұл бет аутентификацияланбаған дереккөздерден сценарийлерді жүктеуге әрекет етуде.</translation>
+ <translation id="4844333629810439236">Басқа пернетақталар</translation>
+ <translation id="4844633725025837809">Қосымша қауіпсіздік үшін Google Құпия сөз менеджеріне сақтамас бұрын құрылғыдағы құпия сөздерді шифрлауға болады.</translation>
+@@ -4084,7 +4084,7 @@
+ <translation id="4971735654804503942">Қауіпті веб-сайттардан, жүктеп алынған файлдардан және кеңейтімдерден жылдам әрі белсенді қорғау. Құпия сөздің қолды болғанын хабарлайды. Браузерді пайдалану деректерінің Google-ға жіберілуін талап етеді.</translation>
+ <translation id="4972129977812092092">Принтер ақпаратын өзгерту</translation>
+ <translation id="4972164225939028131">Құпия сөз дұрыс емес</translation>
+-<translation id="4972737347717125191">Сайттар виртуалды шындық құрылғыларын және деректерді пайдалануға рұқсат сұрай алады.</translation>
++<translation id="4972737347717125191">Сайттар виртуалдық шындық құрылғыларын және деректерді пайдалануға рұқсат сұрай алады.</translation>
+ <translation id="4973325300212422370">{NUM_TABS,plural, =1{Сайттың дыбысын өшіру}other{Сайттардың дыбысын өшіру}}</translation>
+ <translation id="497403230787583386">Қауіпсіздік тексерісі жүргізілді. Құжатыңыз басып шығарылады.</translation>
+ <translation id="4977882548591990850"><ph name="CHARACTER_COUNT" />/<ph name="CHARACTER_LIMIT" /></translation>
+@@ -4103,7 +4103,7 @@
+ <translation id="4992458225095111526">Powerwash растау</translation>
+ <translation id="4992473555164495036">Әкімшіңіз қолжетімді енгізу әдістерінің санын шектеді.</translation>
+ <translation id="4994754230098574403">Реттелуде</translation>
+-<translation id="4996851818599058005">{NUM_VMS,plural, =0{"<ph name="VM_TYPE" />" виртуалды машиналары табылмады.}=1{1 "<ph name="VM_TYPE" />" виртуалды машинасы табылды: <ph name="VM_NAME_LIST" />.}other{{NUM_VMS} "<ph name="VM_TYPE" />" виртуалды машинасы табылды: <ph name="VM_NAME_LIST" />.}}</translation>
++<translation id="4996851818599058005">{NUM_VMS,plural, =0{"<ph name="VM_TYPE" />" виртуалдық машиналары табылмады.}=1{1 "<ph name="VM_TYPE" />" виртуалдық машинасы табылды: <ph name="VM_NAME_LIST" />.}other{{NUM_VMS} "<ph name="VM_TYPE" />" виртуалдық машинасы табылды: <ph name="VM_NAME_LIST" />.}}</translation>
+ <translation id="4997086284911172121">Интернет байланысы жоқ.</translation>
+ <translation id="4998430619171209993">Қосулы</translation>
+ <translation id="4999804342505941663">Мазаламау режимін қосу</translation>
+@@ -4131,7 +4131,7 @@
+ <translation id="5027550639139316293">Электрондық пошта сертификаты</translation>
+ <translation id="5027562294707732951">Кеңейтім қосу</translation>
+ <translation id="5029568752722684782">Көшірмені өшіру</translation>
+-<translation id="5029873138381728058">Виртуалды машиналар тексерілмеді.</translation>
++<translation id="5029873138381728058">Виртуалдық машиналар тексерілмеді.</translation>
+ <translation id="503155457707535043">Қолданбалар жүктеп алынуда</translation>
+ <translation id="5032430150487044192">QR кодын жасау мүмкін емес.</translation>
+ <translation id="5033137252639132982">Қозғалыс датчиктерін пайдалануға рұқсаты жоқтар</translation>
+@@ -4305,7 +4305,7 @@
+ <translation id="5206215183583316675">"<ph name="CERTIFICATE_NAME" />" сертификатын жою керек пе?</translation>
+ <translation id="520621735928254154">Сертификатты импорттау қатесі</translation>
+ <translation id="5206787458656075734">{COUNT,plural, =1{Ұрланған құпия сөз өзгертілді. Тағы # құпия сөзіңіз ұрланған. Chrome осы құпия сөзді қазір тексеруге кеңес береді.}other{Ұрланған құпия сөз өзгертілді. Тағы # құпия сөзіңіз ұрланған. Chrome осы құпия сөздерді қазір тексеруге кеңес береді.}}</translation>
+-<translation id="5207949376430453814">Мәтін курсорын бөлектеу</translation>
++<translation id="5207949376430453814">Мәтін курсорын ерекшелеу</translation>
+ <translation id="520840839826327499"><ph name="SERVICE_NAME" /> жарамды ChromeOS құрылғысын пайдаланып жатқаныңызды тексергісі келеді.</translation>
+ <translation id="5208548918290612795"><ph name="WEB_DRIVE" /> аутентификация токенін сақтау</translation>
+ <translation id="520902706163766447">Ағымдағы сәтте ашық қойындылар бойынша іздеу үшін Chrome пайдаланушы интерфейсінің жоғарғы бөлігіндегі қалқымалы анықтаманы қосады.</translation>
+@@ -4628,7 +4628,7 @@
+ <translation id="5526745900034778153">Синхрондауды жалғастыру үшін аккаунтқа қайта кіріңіз</translation>
+ <translation id="5527463195266282916">Кеңейтімнің ескі нұсқасын орнатуға әрекет жасалды.</translation>
+ <translation id="5527474464531963247">Басқа желіні таңдауыңызға да болады.</translation>
+-<translation id="5528295196101251711">Виртуалды машина атауы</translation>
++<translation id="5528295196101251711">Виртуалдық машина атауы</translation>
+ <translation id="5532223876348815659">Ғаламдық</translation>
+ <translation id="5533001281916885985"><ph name="SITE_NAME" /> үшін қажетті әрекеттер:</translation>
+ <translation id="5534304873398226603">Фотосурет не бейне жойылсын ба?</translation>
+@@ -4889,7 +4889,7 @@
+ <translation id="5798079537501238810">Сайттар төлем өңдегіштерін орната алады.</translation>
+ <translation id="579915268381781820">Қауіпсіздік кілтіңіз өшірілді.</translation>
+ <translation id="5799478978078236781"><ph name="DEVICE_TYPE" /> құрылғысына қатысты кеңестерді, ұсыныстарды және жаңалықтарды алыңыз және пікірлер қалдырыңыз.</translation>
+-<translation id="5799508265798272974">Linux виртуалды машинасы: <ph name="LINUX_VM_NAME" /></translation>
++<translation id="5799508265798272974">Linux виртуалдық машинасы: <ph name="LINUX_VM_NAME" /></translation>
+ <translation id="5800020978570554460">Мақсатты файл соңғы жүктеуден кейін қысқартылды немесе жойылды.</translation>
+ <translation id="5800351251499368110">Бүйірлік панельде іздеу бетін жабыңыз. Бүйірлік панельде іздеу беті ашық.</translation>
+ <translation id="5801568494490449797">Параметрлер</translation>
+@@ -5021,7 +5021,7 @@
+ <translation id="5935158534896975820">Сертификатқа қол қою сұрауы дайындалуда (сервер жауабы күтілуде)</translation>
+ <translation id="5935656526031444304">"Қауіпсіз шолу" функциясын басқару</translation>
+ <translation id="5938002010494270685">Қауіпсіздік бойынша жаңартылған нұсқа бар</translation>
+-<translation id="5938153366081463283">Виртуалды карта қосыңыз.</translation>
++<translation id="5938153366081463283">Виртуалдық карта қосыңыз.</translation>
+ <translation id="5939518447894949180">Қалпына келтіру</translation>
+ <translation id="5939719276406088041">Таңбаша жасау мүмкін емес.</translation>
+ <translation id="594048410531370124">Перне анықталмады. <ph name="RESPONSE" /> үшін кез келген пернені басыңыз.</translation>
+@@ -5861,7 +5861,7 @@
+ <translation id="6776729248872343918">Fast Pair функциясын қосу</translation>
+ <translation id="6777817260680419853">Бағыттауға тыйым салынған</translation>
+ <translation id="6778737459546443941">Ата-анаңыз әлі мақұлдаған жоқ</translation>
+-<translation id="6779092717724412415">Осылай бөлектеу үшін мәтінді таңдап, тінтуірдің оң жақ түймесін басыңыз.</translation>
++<translation id="6779092717724412415">Осылай ерекшелеу үшін мәтінді таңдап, тінтуірдің оң жақ түймесін басыңыз.</translation>
+ <translation id="6779447100905857289">себеттеріңіз</translation>
+ <translation id="677965093459947883">Тым кішкентай</translation>
+ <translation id="6781005693196527806">&amp;Іздеу жүйелерін басқару...</translation>
+@@ -5879,8 +5879,8 @@
+ <translation id="6790428901817661496">Ойнату</translation>
+ <translation id="6790497603648687708"><ph name="EXTENSION_NAME" /> қашықтан қосылды</translation>
+ <translation id="6790820461102226165">Адам қосу…</translation>
+-<translation id="6793604637258913070">Шыққанда не жылжығанда, курсорды бөлектеу</translation>
+-<translation id="6795371939514004514">Автосканерлеу функциясы экрандағы элементтер арасында автоматты түрде жылжуға мүмкіндік береді. Элемент бөлектелген кезде, оны іске қосу үшін "Таңдау" пернесін басыңыз.</translation>
++<translation id="6793604637258913070">Шыққанда не жылжығанда, курсорды ерекшелеу</translation>
++<translation id="6795371939514004514">Автосканерлеу функциясы экрандағы элементтер арасында автоматты түрде жылжуға мүмкіндік береді. Элемент ерекшеленген кезде, оны іске қосу үшін "Таңдау" пернесін басыңыз.</translation>
+ <translation id="6795884519221689054">Панда</translation>
+ <translation id="6797493596609571643">Бір нәрсе дұрыс емес.</translation>
+ <translation id="6798420440063423019">PIN коды бірнеше рет қате енгізілгендіктен, қауіпсіздік кілті құлыпталды. Қауіпсіздік кілтін бастапқы күйге қайтаруыңыз қажет.</translation>
+@@ -5892,7 +5892,7 @@
+ <translation id="6801129617625983991">Жалпы параметрлер</translation>
+ <translation id="6801435275744557998">Сенсорлық экранды калибрлеу</translation>
+ <translation id="6802031077390104172"><ph name="USAGE" /> (<ph name="OID" />)</translation>
+-<translation id="680488281839478944">"<ph name="DEFAULT_VM_NAME" />" виртуалды машинасы бар.</translation>
++<translation id="680488281839478944">"<ph name="DEFAULT_VM_NAME" />" виртуалдық машинасы бар.</translation>
+ <translation id="6805647936811177813"><ph name="HOST_NAME" /> хостынан клиент сертификатын импорттау үшін <ph name="TOKEN_NAME" /> таңбалауышына кіріңіз.</translation>
+ <translation id="680572642341004180"><ph name="SHORT_PRODUCT_OS_NAME" /> жүйесінде RLZ бақылауын қосу.</translation>
+ <translation id="6808039367995747522">Жалғастыру үшін қауіпсіздік кілтін салып, іске қосу түймесін түртіңіз.</translation>
+@@ -5958,7 +5958,7 @@
+ <translation id="6853388645642883916">Жаңарту құралы ұйқы режимінде</translation>
+ <translation id="68541483639528434">Басқа қойындыларды жабу</translation>
+ <translation id="6855892664589459354">Crostini қолданбалары мен файлдарының сақтық көшірмесін жасау және оларды қалпына келтіру</translation>
+-<translation id="6856348640027512653">Виртуалды шындық құрылғыларын немесе деректерді пайдалануға рұқсаты жоқтар</translation>
++<translation id="6856348640027512653">Виртуалдық шындық құрылғыларын немесе деректерді пайдалануға рұқсаты жоқтар</translation>
+ <translation id="6856623341093082836">Сенсорлық экран дәлдігін орнату және реттеу</translation>
+ <translation id="6856850379840757744">Іске қосылса, барлық хабарландыру үнсіз болады.</translation>
+ <translation id="6857145580237920905">Powerwash функциясын пайдаланбас бұрын, eSIM профильдерін өшіріңіз</translation>
+@@ -6078,7 +6078,7 @@
+ <translation id="6973611239564315524">Debian 10 (Buster) нұсқасы қолжетімді</translation>
+ <translation id="69739764870135975">Егер Google әдепкі іздеу жүйесі болса, сізге тиімді, контекске сай ұсыныстар беріледі.</translation>
+ <translation id="6974609594866392343">Офлайн демо режимі</translation>
+-<translation id="697508444536771064">Linux виртуалды құрылғысын өшіру</translation>
++<translation id="697508444536771064">Linux виртуалдық құрылғысын өшіру</translation>
+ <translation id="6978121630131642226">Іздеу жүйелері</translation>
+ <translation id="6979044105893951891">Басқарылатын қонақ сеанстарын іске қосу және олардан шығу</translation>
+ <translation id="6979158407327259162">Google Drive</translation>
+@@ -6130,7 +6130,7 @@
+ <translation id="7009709314043432820"><ph name="APP_NAME" /> камераңызды пайдалануда.</translation>
+ <translation id="701080569351381435">Дереккөзді көру</translation>
+ <translation id="7014174261166285193">Орнату сәтсіз аяқталды.</translation>
+-<translation id="7014480873681694324">Бөлектемеу</translation>
++<translation id="7014480873681694324">Ерекшелемеу</translation>
+ <translation id="7017004637493394352">Қайтадан "Ok Google" деп айтыңыз</translation>
+ <translation id="7017219178341817193">Жаңа бет қосу</translation>
+ <translation id="7017354871202642555">Терезе орнатылғаннан кейін режимді орнату мүмкін емес.</translation>
+@@ -6355,7 +6355,7 @@
+ <translation id="7260186537988033909">Құрылғыны киоск режимінде немесе цифрлық тақтада тіркеу аяқталды</translation>
+ <translation id="7262004276116528033">Бұл кіру қызметі <ph name="SAML_DOMAIN" /> доменінде орналасқан</translation>
+ <translation id="7264695323040866038">Қолдау көрсетілетін сілтемелер әрдайым <ph name="APP" /> қолданбасында ашылсын ба?</translation>
+-<translation id="7267044199012331848">Виртуалды құрылғы орнатылмады. Әрекетті қайталаңыз немесе әкімшіге хабарласыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation>
++<translation id="7267044199012331848">Виртуалдық құрылғы орнатылмады. Әрекетті қайталаңыз немесе әкімшіге хабарласыңыз. Қате коды: <ph name="ERROR_CODE" />.</translation>
+ <translation id="7267875682732693301">Саусақ ізінің басқа бөліктерін енгізу үшін саусағыңызды көтеріп тұрыңыз.</translation>
+ <translation id="7268127947535186412">Бұл параметрді құрылғы иесі басқарады.</translation>
+ <translation id="7269736181983384521">Nearby Share дерек трафигі</translation>
+@@ -6451,7 +6451,7 @@
+ <translation id="7371490947952970241">Құрылғыдағы негізгі геодерек параметрін өшіру арқылы орналасқан жердің анықталуын өшіруге болады. Сонымен қатар Wi‑Fi мен мобильдік желілердің және сенсорлардың орынды анықтау үшін қолданылуын геодерек параметрлерінен өшіре аласыз.</translation>
+ <translation id="7371917887111892735">қойындылар бекітілген қойынды еніне дейін кішірейеді</translation>
+ <translation id="7374376573160927383">USB құрылғыларын басқару</translation>
+-<translation id="7376553024552204454">Тінтуір курсорын қозғалыс барысында бөлектеу</translation>
++<translation id="7376553024552204454">Тінтуір курсорын қозғалыс барысында ерекшелеу</translation>
+ <translation id="737728204345822099">Осы сайтқа кіргеніңіз туралы жазба қауіпсіздік кілтінде сақталуы мүмкін.</translation>
+ <translation id="7377451353532943397">Датчиктерді пайдалануға тыйым салуды тоқтатпау</translation>
+ <translation id="7377481913241237033">Код арқылы қосылу</translation>
+@@ -6777,7 +6777,7 @@
+ <translation id="7679171213002716280">Басқарылатын <ph name="PRINTER_COUNT" /> принтер бар.</translation>
+ <translation id="7680416688940118410">Сенсорлық экранды калибрлеу</translation>
+ <translation id="7681095912841365527">Сайт Bluetooth функциясын пайдалана алады</translation>
+-<translation id="7681597159868843240">Сайттар әдетте виртуалды шындық немесе фитнес-трекер сияқты функциялар үшін құрылғының қозғалыс датчиктерін пайдаланады.</translation>
++<translation id="7681597159868843240">Сайттар әдетте виртуалдық шындық немесе фитнес-трекер сияқты функциялар үшін құрылғының қозғалыс датчиктерін пайдаланады.</translation>
+ <translation id="7683373461016844951">Жалғастыру үшін "Жарайды" түймесін түртіп, <ph name="DOMAIN" /> электрондық пошта мекенжайыңыздың жаңа профилін жасау үшін "Адамды қосу" түймесін түртіңіз.</translation>
+ <translation id="7684212569183643648">Әкімшіңіз орнатқан</translation>
+ <translation id="7684559058815332124">Адаптивті портал арқылы кіру бетіне өту</translation>
+@@ -6792,7 +6792,7 @@
+ <translation id="7691077781194517083">Қауіпсіздік кілтін бастапқы күйіне қайтару мүмкін емес. Қате: <ph name="ERROR_CODE" />.</translation>
+ <translation id="7691163173018300413">"Ok Google"</translation>
+ <translation id="7691698019618282776">Crostini жүйесін жаңарту</translation>
+-<translation id="7694246789328885917">Бөлектеу құралы</translation>
++<translation id="7694246789328885917">Ерекшелеу құралы</translation>
+ <translation id="7696063401938172191">"<ph name="PHONE_NAME" />" телефонында:</translation>
+ <translation id="769824636077131955">Бұл құжат қауіпсіздік тексерісін жүргізу үшін тым үлкен. 50 МБ-қа дейінгі құжаттарды басып шығаруға болады.</translation>
+ <translation id="7698507637739331665">Кейбір элемент бөгелді</translation>
+@@ -7016,7 +7016,7 @@
+ <translation id="7903742244674067440">Файлда осы сертификат беруші орталықтарды анықтайтын сертификаттарыңыз бар</translation>
+ <translation id="7903925330883316394">Утилита: <ph name="UTILITY_TYPE" /></translation>
+ <translation id="7904526211178107182">Linux порттарын желідегі басқа құрылғыларға қолжетімді етіңіз.</translation>
+-<translation id="7907837847548254634">Ерекшеленген нысанды жақсырақ көрінетіндей бөлектеу</translation>
++<translation id="7907837847548254634">Ерекшеленген нысанды жақсырақ көрінетіндей ерекшелеу</translation>
+ <translation id="7908378463497120834">Кешіріңіз, сыртқы жад құрылғыңыздағы кемінде бір бөлімді орнату мүмкін емес.</translation>
+ <translation id="7909324225945368569">Профиліңіздің атын өзгертіңіз.</translation>
+ <translation id="7909969815743704077">Инкогнито режимінде жүктелген</translation>
+@@ -7729,7 +7729,7 @@
+ <translation id="863109444997383731">Сайттардың сізге хабарландырулар көрсету туралы сұрауына тыйым салынады. Сайт хабарландырулар жіберуге рұқсат сұраса, мекенжай жолағында тыйым салынғаны туралы индикатор пайда болады.</translation>
+ <translation id="8632104508818855045">Бұған дейін <ph name="ORIGIN" /> сайтында ешқандай кеңейтімге рұқсат бермеуді таңдағансыз.</translation>
+ <translation id="8633025649649592204">Соңғы іс-әрекеттер</translation>
+-<translation id="8634348081024879304">Бұдан былай виртуалды картаны Google Pay қызметінде пайдалана алмайтын боласыз. <ph name="BEGIN_LINK" />Виртуалды карта туралы толығырақ<ph name="END_LINK" /></translation>
++<translation id="8634348081024879304">Бұдан былай виртуалдық картаны Google Pay қызметінде пайдалана алмайтын боласыз. <ph name="BEGIN_LINK" />Виртуалдық карта туралы толығырақ<ph name="END_LINK" /></translation>
+ <translation id="8635628933471165173">Қайта жүктелуде…</translation>
+ <translation id="8636284842992792762">Кеңейтімдер дайындалуда…</translation>
+ <translation id="8636500887554457830">Сайттардың қалқымалы терезелерді жіберуіне немесе бағытты ауыстыру тәсілдерін пайдалануына рұқсат бермеу</translation>
+@@ -7991,7 +7991,7 @@
+ <translation id="8871974300055371298">Мазмұн параметрлері</translation>
+ <translation id="8872155268274985541">Жарамсыз киоск қолданбасының сыртқы жаңарту манифест файлы табылды. Киоск қолданбасын жаңарту сәтсіз аяқталды. USB картасын алып тастаңыз.</translation>
+ <translation id="8872506776304248286">Қолданбадан ашу</translation>
+-<translation id="8872777911145321141">Cайтқа виртуалды шындық құрылғыларыңызды немесе деректерді пайдалануға рұқсат беру алдында сұрау (ұсынылады)</translation>
++<translation id="8872777911145321141">Cайтқа виртуалдық шындық құрылғыларыңызды немесе деректерді пайдалануға рұқсат беру алдында сұрау (ұсынылады)</translation>
+ <translation id="8874184842967597500">Қосылмаған</translation>
+ <translation id="8874341931345877644">Келесі құрылғыға трансляциялау:</translation>
+ <translation id="8875520811099717934">Linux жүйесін жаңарту</translation>
+@@ -8139,7 +8139,7 @@
+ <translation id="9024158959543687197">Ортақ файлды орнату кезінде қате шықты. Ортақ қалтаның URL сілтемесін тексеріп, қайта орнатып көріңіз.</translation>
+ <translation id="9024692527554990034">Белгілі бір сайтта жылдам іздеу немесе басқа іздеу жүйесіне өту үшін мекенжай жолағында таңбашалар пайдалана аласыз.</translation>
+ <translation id="9026731007018893674">жүктеу</translation>
+-<translation id="9026852570893462412">Бұл процесс бірнеше минутқа созылуы мүмкін. Виртуалды құрылғы жүктелуде.</translation>
++<translation id="9026852570893462412">Бұл процесс бірнеше минутқа созылуы мүмкін. Виртуалдық құрылғы жүктелуде.</translation>
+ <translation id="9027459031423301635">Сілтемені жаңа &amp;қойындыда ашу</translation>
+ <translation id="9029667986262585240">Аккаунтыңызда Күшейтілген Safe Browsing функциясын өшірдіңіз.</translation>
+ <translation id="9030515284705930323">Ұйымыңыз аккаунт үшін Google Play Store қызметін қоспаған. Қосымша ақпарат алу үшін әкімшіге хабарласыңыз.</translation>
+diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
+index 5315653a9912..c1b465958fc2 100644
+--- a/chrome/app/resources/generated_resources_no.xtb
++++ b/chrome/app/resources/generated_resources_no.xtb
+@@ -1505,7 +1505,7 @@ Du kan administrere innstillingene for denne kontoen ved å installere Family Li
+ <translation id="2387602571959163792"><ph name="DESK_NAME" /> (gjeldende)</translation>
+ <translation id="2389775852302560582">IP</translation>
+ <translation id="2390347491606624519">Kan ikke koble til proxy-tjeneren – logg på på nytt</translation>
+-<translation id="2390782873446084770">Wi-Fi-synkronisering</translation>
++<translation id="2390782873446084770">Wifi-synkronisering</translation>
+ <translation id="2391419135980381625">Standardskrift</translation>
+ <translation id="2392163307141705938">Du har nådd tidsgrensen som forelderen din har angitt for <ph name="IDS_SHORT_PRODUCT_NAME" />.</translation>
+ <translation id="2392369802118427583">Aktiver</translation>
+@@ -3023,7 +3023,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="3888053818972567950"><ph name="WEB_DRIVE" />-tilkobling</translation>
+ <translation id="3888550877729210209">Tar notater med <ph name="LOCK_SCREEN_APP_NAME" /></translation>
+ <translation id="3888586133700543064">Denne informasjonen gir oss bedre forståelse av Assistent-problemet. Den lagres i opptil 90 dager, og bare relevante tekniske team og tilbakemeldingsteam får tilgang.</translation>
+-<translation id="3890064827463908288">Slå på Chrome-synkronisering for å bruke Wi-Fi-synkronisering</translation>
++<translation id="3890064827463908288">Slå på Chrome-synkronisering for å bruke wifi-synkronisering</translation>
+ <translation id="389313931326656921">Tilordne bryter for «Neste»</translation>
+ <translation id="3893295674388762059">For å slette data, lukk alle inkognitovinduer</translation>
+ <translation id="3893536212201235195">lese og endre innstillingene for tilgjengelighet</translation>
+@@ -3150,7 +3150,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="3987993985790029246">Kopiér link</translation>
+ <translation id="3988996860813292272">Velg tidssone</translation>
+ <translation id="399179161741278232">Importert</translation>
+-<translation id="3993887353483242788">Synkroniser <ph name="DEVICE_TYPE" />, slik at preferansene dine er klare på alle enheter når du logger på med Google-kontoen din. Preferanser betyr blant annet apper, innstillinger, Wi-Fi-passord, språk, bakgrunnsbilde og hurtigtaster.</translation>
++<translation id="3993887353483242788">Synkroniser <ph name="DEVICE_TYPE" />, slik at preferansene dine er klare på alle enheter når du logger på med Google-kontoen din. Preferanser betyr blant annet apper, innstillinger, wifi-passord, språk, bakgrunnsbilde og hurtigtaster.</translation>
+ <translation id="3994318741694670028">Dessverre er datamaskinen konfigurert med en feilformatert maskinvare-ID. Dette forhindrer ChromeOS Flex fra å ta i bruk de siste sikkerhetsoppdateringene, og datamaskinen <ph name="BEGIN_BOLD" />kan være sårbar for skadelige angrep<ph name="END_BOLD" />.</translation>
+ <translation id="3994374631886003300">Lås opp telefonen, og hold den nærmere for å låse opp <ph name="DEVICE_TYPE" />-enheten.</translation>
+ <translation id="3994878504415702912">&amp;Zoom</translation>
+@@ -4435,7 +4435,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="5327248766486351172">Navn</translation>
+ <translation id="5327570636534774768">Denne enheten er merket for administrering av et annet domene. Fjern tilgangen og ressursene fra det domenet før du konfigurerer demomodus.</translation>
+ <translation id="5327912693242073631">Funksjoner som krever varsler, kommer ikke til å virke</translation>
+-<translation id="532943162177641444">Trykk på varselet på <ph name="PHONE_NAME" />-enheten din for å konfigurere en mobil Wi-Fi-sone denne enheten kan bruke.</translation>
++<translation id="532943162177641444">Trykk på varselet på <ph name="PHONE_NAME" />-enheten din for å konfigurere en mobil wifi-sone denne enheten kan bruke.</translation>
+ <translation id="5329858601952122676">&amp;Slett</translation>
+ <translation id="5331069282670671859">Du har ingen sertifikater i denne kategorien</translation>
+ <translation id="5331425616433531170">«<ph name="CHROME_EXTENSION_NAME" />» vil koble til</translation>
+@@ -4717,7 +4717,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="5605623530403479164">Andre søkemotorer</translation>
+ <translation id="5605758115928394442">Vi har sendt et varsel til telefonen din for å bekrefte at det er deg.</translation>
+ <translation id="5606849116180480101">{NUM_EXTENSIONS,plural, =1{Denne utvidelsen er blokkert}other{Disse utvidelsene er blokkert}}</translation>
+-<translation id="560834977503641186">Wi-Fi-synkronisering – finn ut mer</translation>
++<translation id="560834977503641186">Wifi-synkronisering – finn ut mer</translation>
+ <translation id="5608580678041221894">Trykk på de følgende tastene for å justere eller flytte beskjæringsområdet</translation>
+ <translation id="5609231933459083978">Appen ser ut til å være ugyldig.</translation>
+ <translation id="5610038042047936818">Bytt til kameramodus</translation>
+@@ -5083,7 +5083,7 @@ og Ctrl + Alt + lysstyrke ned for å zoome ut.</translation>
+ <translation id="5978277834170881274">&amp;Bruk grunnleggende stavekontroll</translation>
+ <translation id="5979084224081478209">Kontrollér passordene</translation>
+ <translation id="5979156418378918004">{NUM_EXTENSIONS,plural, =1{Du har slått på igjen én potensielt skadelig utvidelse}other{Du har slått på igjen {NUM_EXTENSIONS} potensielt skadelige utvidelser}}</translation>
+-<translation id="5979353814339191480">Dette alternativet gjelder for Chromebook-enheter med dataabonnement- eller mobilnettverksdongler, eller ved bruk av delt internett fra en flyttbar Wi-Fi-sone</translation>
++<translation id="5979353814339191480">Dette alternativet gjelder for Chromebook-enheter med dataabonnement- eller mobilnettverksdongler, eller ved bruk av delt internett fra en flyttbar wifi-sone</translation>
+ <translation id="5979421442488174909">Overset&amp;t til <ph name="LANGUAGE" /></translation>
+ <translation id="5979469435153841984">For å sette sider som bokmerker, klikk på stjernen i adressefeltet</translation>
+ <translation id="5981362776161841923">For å tillate en utvidelse, endre standardinnstillingen nedenfor.</translation>
+@@ -8426,6 +8426,6 @@ Jeg tror ikke det er nødvendig å blokkere dette nettstedet.</translation>
+ <translation id="995782501881226248">YouTube</translation>
+ <translation id="996250603853062861">Etablerer sikker tilkobling ...</translation>
+ <translation id="996803490569799917">Se minner av favorittpersonene dine med mer</translation>
+-<translation id="99731366405731005">Slå på <ph name="LINK1_BEGIN" />Chrome-synkronisering<ph name="LINK1_END" /> for å bruke Wi-Fi-synkronisering. <ph name="LINK2_BEGIN" />Finn ut mer<ph name="LINK2_END" /></translation>
++<translation id="99731366405731005">Slå på <ph name="LINK1_BEGIN" />Chrome-synkronisering<ph name="LINK1_END" /> for å bruke wifi-synkronisering. <ph name="LINK2_BEGIN" />Finn ut mer<ph name="LINK2_END" /></translation>
+ <translation id="998747458861718449">I&amp;nspiser</translation>
+ </translationbundle>
+\ No newline at end of file
+diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
+index 50bc1c9057b9..ae485f912045 100644
+--- a/chrome/app/resources/google_chrome_strings_fa.xtb
++++ b/chrome/app/resources/google_chrome_strings_fa.xtb
+@@ -32,7 +32,7 @@
+ <translation id="1587325591171447154">‏<ph name="FILE_NAME" /> خطرناک است، بنابراین Chrome آن را مسدود کرده ست.</translation>
+ <translation id="1597911401261118146">‏برای بررسی اینکه از گذرواژه‌هایتان دربرابر نقض داده یا دیگر مشکلات امنیتی محافظت می‌شود، <ph name="BEGIN_LINK" />به سیستم Chrome وارد شوید<ph name="END_LINK" />.</translation>
+ <translation id="1619887657840448962">‏برای ایمن‌تر کردن Chrome، افزونه زیر را که در <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> فهرست نشده است و ممکن است بدون اطلاع شما اضافه شده باشد، غیرفعال کردیم.</translation>
+-<translation id="1627304841979541023">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
++<translation id="1627304841979541023">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
+ <translation id="1628000112320670027">‏دریافت کمک برای Chrome</translation>
+ <translation id="1662146548738125461">‏درباره ChromeOS Flex</translation>
+ <translation id="1674870198290878346">‏باز کردن پیوند در پنجره &amp;ناشناس Chrome</translation>
+@@ -58,7 +58,7 @@
+ <translation id="2120620239521071941">‏این کار <ph name="ITEMS_COUNT" /> مورد را از این دستگاه حذف می‌کند. برای بازیابی داده‌هایتان در فرصتی دیگر، با <ph name="USER_EMAIL" /> وارد سیستم Chrome شوید.</translation>
+ <translation id="2121284319307530122">‏راه‌اندازی مجدد برای به‌روزرسانی Chrome</translation>
+ <translation id="2123055963409958220">‏با گزارش <ph name="BEGIN_LINK" />تنظیمات کنونی<ph name="END_LINK" />، به بهتر شدن Chrome کمک کنید</translation>
+-<translation id="2131230230468101642">‏برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
++<translation id="2131230230468101642">‏برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
+ <translation id="2139300032719313227">‏بازراه‌اندازی ChromeOS</translation>
+ <translation id="2151406531797534936">‏لطفاً اکنون Chrome را بازراه‌اندازی کنید</translation>
+ <translation id="2258103955319320201">‏برای دسترسی به چیزهایتان در مرورگر Chrome در همه دستگاه‌هایتان، به سیستم وارد شوید، سپس همگام‌سازی را روشن کنید</translation>
+@@ -183,7 +183,7 @@
+ <translation id="4771048833395599659">‏این فایل ممکن است خطرناک باشد، بنابراین Chrome آن را مسدود کرده است.</translation>
+ <translation id="479167709087336770">‏از همان غلط‌یاب املا استفاده می‌کند که در جستجوی Google استفاده می‌شود. نوشتاری که در مرورگر تایپ کرده‌اید برای Google ارسال می‌شود. هروقت بخواهید می‌توانید این رفتار را در تنظیمات تغییر دهید.</translation>
+ <translation id="4842397268809523050">‏ChromeOS Flex نتوانست داده‌هایتان را همگام‌سازی کند زیرا همگام‌سازی برای دامنه شما دردسترس نیست.</translation>
+-<translation id="4873783916118289636">‏مرور کنترل‌های اصلی امنیت و حریم‌خصوصی در Chrome</translation>
++<translation id="4873783916118289636">‏مرور کنترل‌های اصلی امنیت و حریم خصوصی در Chrome</translation>
+ <translation id="4891791193823137474">‏اجازه به Google Chrome برای اجرا در پس‌زمینه</translation>
+ <translation id="4895437082222824641">‏باز کردن پیوند در &amp;برگه جدید Chrome</translation>
+ <translation id="4953650215774548573">‏تنظیم Google Chrome به عنوان مرورگر پیش‌فرضتان</translation>
+@@ -208,7 +208,7 @@
+ <translation id="5394833366792865639">‏هم‌رسانی برگه Chrome</translation>
+ <translation id="5412485296464121825">‏سایت‌ها می‌توانند بااستفاده از Chrome اطلاعاتی درباره علایقتان ذخیره کنند. برای مثال، اگر برای خرید کفش مخصوص ماراتون از سایتی بازدید کنید، ممکن است آن سایت علاقه شما را به‌صورت دونده ماراتون مشخص کند. بعداً، اگر برای ثبت‌نام در مسابقه‌ای به سایتی دیگر مراجعه کردید، آن سایت می‌تواند براساس علایقتان آگهی‌ای برای کفش مخصوص دویدن به شما نشان دهد.</translation>
+ <translation id="5430073640787465221">‏فایل اولویت‌های شما خراب یا نامعتبر است. Google Chrome نمی‌تواند تنظیمات شما را بازیابی کند.</translation>
+-<translation id="5524761631371622910">‏اگر نسخه آزمایشی روشن باشد و Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
++<translation id="5524761631371622910">‏اگر نسخه آزمایشی روشن باشد و Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
+ <translation id="556024056938947818">‏Google Chrome می‌خواهد گذرواژه‌ها را نمایش دهد.</translation>
+ <translation id="5566025111015594046">‏Google Chrome (ورودی mDNS)</translation>
+ <translation id="565744775970812598">‏<ph name="FILE_NAME" /> ممکن است خطرناک باشد، بنابراین Chrome آن را مسدود کرده است.</translation>
+@@ -216,7 +216,7 @@
+ <translation id="5686916850681061684">‏Google Chrome ‫را سفارشی و کنترل کنید. چیزی نیاز به رسیدگی دارد، برای اطلاعات بیشتر کلیک کنید.</translation>
+ <translation id="5690427481109656848">Google LLC</translation>
+ <translation id="5715063361988620182">{SECONDS,plural, =1{‏Google Chrome بعد از ۱ ثانیه بازراه‌اندازی می‌شود}one{‏Google Chrome بعد از # ثانیه بازراه‌اندازی می‌شود}other{‏Google Chrome بعد از # ثانیه بازراه‌اندازی می‌شود}}</translation>
+-<translation id="5727531838415286053">‏اگر Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="5727531838415286053">‏اگر Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="5736850870166430177">‏اگر سایتی تلاش کند گذرواژه شما را به‌سرقت ببرد، یا وقتی فایل مخربی بارگیری می‌کنید، Chrome ممکن است نشانی‌های وب را نیز به‌همراه بخش‌های کوچکی از محتوای صفحه، به «مرور ایمن» ارسال کند</translation>
+ <translation id="5756509061973259733">‏درحال‌حاضر یک نمایه Chrome با این حساب در این دستگاه وجود دارد</translation>
+ <translation id="5763280521700030406">‏Chrome این فایل را مسدود کرد زیرا برای بررسی امنیتی بسیار بزرگ است. با فایل‌هایی که حداکثر ۵۰ مگابایت باشد دوباره امتحان کنید</translation>
+@@ -351,7 +351,7 @@
+ <translation id="8712767363896337380">‏تقریباً به‌روزرسانی شده است! برای تکمیل به‌روزرسانی، Chrome را راه‌اندازی مجدد کنید.</translation>
+ <translation id="873133009373065397">‏Google Chrome نمی‌تواند مرورگر پیش‌فرض را تعیین یا تنظیم کند</translation>
+ <translation id="8823341990149967727">‏نسخه Chrome قدیمی است</translation>
+-<translation id="8825634023950448068">‏برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. و اگر Chrome به‌اشتباه علاقه‌ای را اضافه کند یا شما نخواهید آگهی‌های مشخصی را ببینید، می‌توانید آن علاقه را بردارید.</translation>
++<translation id="8825634023950448068">‏برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشند به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. و اگر Chrome به‌اشتباه علاقه‌ای را اضافه کند یا شما نخواهید آگهی‌های مشخصی را ببینید، می‌توانید آن علاقه را بردارید.</translation>
+ <translation id="8834965163890861871">‏Google Chrome می‌خواهد گذرواژه‌ها را ویرایش کند. برای اینکه اجازه دهید این کار انجام شود، گذرواژه Windows خود را تایپ کنید.</translation>
+ <translation id="884296878221830158">‏این برنامه همچنین صفحه‌ای را که هنگام راه‌اندازی Chrome یا کلیک کردن روی دکمه صفحه اصلی نشان داده می‌شود، کنترل می‌کند.</translation>
+ <translation id="8862326446509486874">شما حقوق لازم برای نصب در سطح سیستم را ندارید. دوباره به‌عنوان سرپرست نصب‌کننده را اجرا کنید.</translation>
+@@ -359,7 +359,7 @@
+ <translation id="8922193594870374009">‏برای ارسال شماره از <ph name="ORIGIN" /> به تلفن Android خود، در هر دو دستگاه به سیستم Chrome وارد شوید.</translation>
+ <translation id="8983720963221508955">‏«مرور ایمن پیشرفته» را در حسابتان روشن کرده‌اید. اکنون آن را برای Chrome دریافت کنید.</translation>
+ <translation id="8986207147630327271">با این کار، نمایه کاری را به این مرورگر اضافه می‌کنید و فقط کنترل نمایه کاری را دراختیار سرپرست قرار می‌دهید.</translation>
+-<translation id="8989968390305463310">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="8989968390305463310">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="8999208279178790196">{0,plural, =0{‏به‌روزرسانی Chrome دردسترس است}=1{‏به‌روزرسانی Chrome دردسترس است}one{‏به‌روزرسانی Chrome از # روز پیش دردسترس است}other{‏به‌روزرسانی Chrome از # روز پیش دردسترس است}}</translation>
+ <translation id="9053892488859122171">‏سیستم ChromeOS Flex</translation>
+ <translation id="9067395829937117663">‏Google Chrome به Windows 7 یا بالاتر نیاز دارد.</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
+index 38e6ff918c4b..4ae0e4e09b3f 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_fa.xtb
+@@ -314,7 +314,7 @@
+ <translation id="3082249673510793544">پیمایش به‌عقب</translation>
+ <translation id="3084806535845658316">فاقد بازگویی تایپ</translation>
+ <translation id="3086746722712840547">نت</translation>
+-<translation id="308736057934395497">این کار با خاموش کردن صفحه‌نمایش و پنهان کردن آن از دید دیگران، حریم‌خصوصی را بهبود می‌بخشد. همیشه می‌توانید با فشار دادن کلید «جستجو + افزایش روشنایی» صفحه‌نمایش را دوباره روشن کنید.</translation>
++<translation id="308736057934395497">این کار با خاموش کردن صفحه‌نمایش و پنهان کردن آن از دید دیگران، حریم خصوصی را بهبود می‌بخشد. همیشه می‌توانید با فشار دادن کلید «جستجو + افزایش روشنایی» صفحه‌نمایش را دوباره روشن کنید.</translation>
+ <translation id="3090227230165225418">اعلام اعلان‌های بارگیری</translation>
+ <translation id="3090532668523289635">grp</translation>
+ <translation id="3093176084511590672">نشانگر مکانی بعدی</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
+index 4cbab644fad3..c49dc28de22f 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_kk.xtb
+@@ -150,7 +150,7 @@
+ <translation id="1923956950274750765">Орташа күлгін</translation>
+ <translation id="1928932365747995741">Алдыңғы өзгертілетін мəтін өрісі жоқ.</translation>
+ <translation id="1964135212174907577">Келесі нысан</translation>
+-<translation id="1966649499058910679">Айтылған әр сөзді бөлектеу</translation>
++<translation id="1966649499058910679">Айтылған әр сөзді ерекшелеу</translation>
+ <translation id="1973886230221301399">ChromeVox</translation>
+ <translation id="1988733631391393183">ChromeVox мәзірлерінде Брайль пәрмендерін көрсету</translation>
+ <translation id="2007545860310005685">{COUNT,plural, =1{сол жақ тік жақша}other{# сол жақ тік жақша}}</translation>
+@@ -984,11 +984,11 @@
+ <translation id="7842115774595115751">Навигацияның басқару элементтерін іске қосу</translation>
+ <translation id="7846634333498149051">Пернетақта</translation>
+ <translation id="7851816175263618915">Кейбір тыныс белгілері</translation>
+-<translation id="7871691770940645922">Виртуалды Браиль дисплейі</translation>
++<translation id="7871691770940645922">Виртуалдық Браиль дисплейі</translation>
+ <translation id="7882421473871500483">Қоңыр</translation>
+ <translation id="78826985582142166">sldr</translation>
+ <translation id="7913106023953875143">Келесі 2-деңгей тақырыбы жоқ.</translation>
+-<translation id="7914870167134465181">Бөлектеу</translation>
++<translation id="7914870167134465181">Ерекшелеу</translation>
+ <translation id="7927711904086083099">Таңдалмаған</translation>
+ <translation id="7935627501098484003">Уақытты бақылау</translation>
+ <translation id="7939428177581522200">таңдауға қосылды</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+index 3b4e03ca8817..a666d06b8b35 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_fa.xtb
+@@ -28,7 +28,7 @@
+ <translation id="1142732900304639782">ترجمه این سایت‌ها پیشنهاد نشود</translation>
+ <translation id="1145536944570833626">حذف داده‌های موجود.</translation>
+ <translation id="1146678959555564648">‏VR را وارد کنید</translation>
+-<translation id="114825011539563458">مهم‌ترین کنترل‌های امنیتی و حریم‌خصوصی در یک‌جا گردآوری شده‌اند</translation>
++<translation id="114825011539563458">مهم‌ترین کنترل‌های امنیتی و حریم خصوصی در یک‌جا گردآوری شده‌اند</translation>
+ <translation id="1149401351239820326">ماه انقضا</translation>
+ <translation id="1150263420752757504">‏<ph name="APP_NAME" /> در Chrome باز می‌شود. درصورت ادامه دادن، با <ph name="BEGIN_LINK1" />شرایط خدمات Google<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />شرایط خدمات تکمیلی Google Chrome و ChromeOS<ph name="END_LINK2" /> موافقت می‌کنید.</translation>
+ <translation id="1154704303112745282">صفحه <ph name="VIOLATED_URL" /> به‌صورت آفلاین دردسترس نیست</translation>
+@@ -121,8 +121,8 @@
+ 
+ براساس تعاملتان با سایت‌ها، مثلاً ورود به سیستم مداوم در حسابی خاص، این سایت‌ها می‌توانند کد اطمینان به مرورگرتان صادر کنند. بعداً، اگر سایت‌های دیگری که از آن‌ها بازدید می‌کنید کد اطمینان معتبری را جستجو و پیدا کنند، احتمال اینکه با شما مثل یک انسان (و نه ربات) برخورد کنند بیشتر است.
+ 
+-کدهای اطمینان حریم‌خصوصی را در وب افزایش می‌دهد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
+-<translation id="1627304841979541023">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم‌خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
++کدهای اطمینان حریم خصوصی را در وب افزایش می‌دهد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
++<translation id="1627304841979541023">‏<ph name="BEGIN_BOLD" />چگونه می‌توانید داده‌هایتان را مدیریت کنید:<ph name="END_BOLD" /> برای محافظت از حریم خصوصی شما، علایقی را که قدیمی‌تر از ۴ هفته باشد به‌طور خودکار حذف می‌کنیم. وقتی به مرور کردن ادامه می‌دهید، ممکن است علاقه‌ای مجدداً به فهرست اضافه شود. یا می‌توانید علایقی را که نمی‌خواهید Chrome مدنظر قرار دهد حذف کنید.</translation>
+ <translation id="1628019612362412531">{NUM_SELECTED,plural, =1{حذف ۱ مورد انتخاب‌شده}one{حذف # مورد انتخاب‌شده}other{حذف # مورد انتخاب‌شده}}</translation>
+ <translation id="1633659023549081553">‏محتوای جدید را در صفحه اصلی Chrome کاوش کنید</translation>
+ <translation id="1641113438599504367">مرور ایمن</translation>
+@@ -140,7 +140,7 @@
+ <translation id="1718835860248848330">ساعت قبل</translation>
+ <translation id="1724977129262658800">برای ویرایش گذرواژه‌تان، قفل صفحه را باز کنید</translation>
+ <translation id="1726477445370128854">‏وقتی Chrome صفحاتی را که فکر می‌کند ممکن است بازدید کنید پیش‌بارگیری می‌کند، می‌توانید سریع‌تر مرور و جستجو کنید.</translation>
+-<translation id="173522743738009831">درباره «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="173522743738009831">درباره «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="1736419249208073774">کاوش</translation>
+ <translation id="1749561566933687563">همگام‌سازی نشانک‌ها</translation>
+ <translation id="17513872634828108">بازکردن برگه‌ها</translation>
+@@ -275,7 +275,7 @@
+ <translation id="2497852260688568942">سرپرستتان همگام‌سازی را غیرفعال کرده است</translation>
+ <translation id="250020030759455918">‏وضعیت ورود به سیستم <ph name="SITE_NAME" />، داده‌های محصول مرور، و داده‌های سایت را در Chrome خواهید دید</translation>
+ <translation id="2512164632052122970">زبان‌های محتوا</translation>
+-<translation id="2513403576141822879">‏برای تنظیمات بیشتر مرتبط با حریم‌خصوصی، امنیت و جمع‌آوری داده‌ها، <ph name="BEGIN_LINK" />همگام‌سازی و سرویس‌های Google<ph name="END_LINK" /> را ببینید</translation>
++<translation id="2513403576141822879">‏برای تنظیمات بیشتر مرتبط با حریم خصوصی، امنیت و جمع‌آوری داده‌ها، <ph name="BEGIN_LINK" />همگام‌سازی و سرویس‌های Google<ph name="END_LINK" /> را ببینید</translation>
+ <translation id="2517472476991765520">اسکن</translation>
+ <translation id="2523184218357549926">‏نشانی وب صفحه‌هایی را که بازدید می‌کنید برای Google ارسال می‌کند</translation>
+ <translation id="2527209463677295330">با لحاظ کردن بخش بیشتری از نوشتار صفحه، ممکن است نتایج بهتری دریافت کنید</translation>
+@@ -304,7 +304,7 @@
+ <translation id="2645657967708199252">اتصال <ph name="CONNECTION_TYPE" /> ممکن است سرعت بارگیری شما را کاهش دهد</translation>
+ <translation id="2647434099613338025">افزودن زبان</translation>
+ <translation id="2649068648233607930">مرورگرتان توسط <ph name="DOMAIN" /> مدیریت می‌شود</translation>
+-<translation id="2650348088770008516">شرح «راهنمای حریم‌خصوصی» بسته شده است</translation>
++<translation id="2650348088770008516">شرح «راهنمای حریم خصوصی» بسته شده است</translation>
+ <translation id="2650751991977523696">فایل دوباره بارگیری شود؟</translation>
+ <translation id="2651091186440431324">{FILE_COUNT,plural, =1{# فایل صوتی}one{# فایل صوتی}other{# فایل صوتی}}</translation>
+ <translation id="265156376773362237">پیش‌بارگیری استاندارد</translation>
+@@ -322,7 +322,7 @@
+ <translation id="2760989362628427051">روشن شدن زمینه تیره وقتی زمینه تیره دستگاه یا «بهینه‌سازی باتری» روشن است</translation>
+ <translation id="2762000892062317888">هم‌اکنون</translation>
+ <translation id="276969039800130567">با <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم شد.</translation>
+-<translation id="2776236159752647997">‏برای تنظیمات بیشتر مرتبط با حریم‌خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
++<translation id="2776236159752647997">‏برای تنظیمات بیشتر مرتبط با حریم خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
+ <translation id="2777555524387840389"><ph name="SECONDS" /> ثانیه باقی‌مانده است</translation>
+ <translation id="2779651927720337254">انجام نشد</translation>
+ <translation id="2781151931089541271">۱ ثانیه باقی‌مانده است</translation>
+@@ -334,7 +334,7 @@
+ <translation id="2818669890320396765">برای اینکه نشانک‌هایتان را در همه دستگاه‌ها داشته باشید، به سیستم وارد شوید و همگام‌سازی را روشن کنید</translation>
+ <translation id="2827278682606527653">منوی کارت فید تا نیمه باز شد</translation>
+ <translation id="2830783625999891985">محتوای بریده‌دان پنهان شد</translation>
+-<translation id="2838367486340230368">شرح «راهنمای حریم‌خصوصی» به‌صورت نیمه باز شده است</translation>
++<translation id="2838367486340230368">شرح «راهنمای حریم خصوصی» به‌صورت نیمه باز شده است</translation>
+ <translation id="2839327205551510876">دنبال کردن <ph name="SITE_NAME" /> لغو شد</translation>
+ <translation id="2840810876587895427">{TAB_COUNT,plural, =1{<ph name="TAB_COUNT_ONE" /> برگه ناشناس بسته خواهد شد}one{<ph name="TAB_COUNT_MANY" /> برگه ناشناس بسته خواهد شد}other{<ph name="TAB_COUNT_MANY" /> برگه ناشناس بسته خواهد شد}}</translation>
+ <translation id="2841216154655874070">{NUM_DAYS,plural, =1{آخرین بررسی: ۱ روز قبل}one{آخرین بررسی: # روز قبل}other{آخرین بررسی: # روز قبل}}</translation>
+@@ -376,7 +376,7 @@
+ <translation id="2997081575621687554">‏وقتی یک سایت Google برای پیش‌بارگیری خصوصی پیوندها در صفحه‌اش درخواست می‌کند، Chrome صفحات را بدون کوکی‌ها ازطریق سرورهای Google رمزگذاری و پیش‌بارگیری می‌کند. با این کار هویتتان از سایت پیش‌بارگیری‌شده پنهان می‌شود.</translation>
+ <translation id="3003733539450769656">پیش‌از اینکه رویدادهای خطرناک اتفاق بیفتد درباره آن‌ها به شما هشدار می‌دهد</translation>
+ <translation id="3006881078666935414">هیچ داده مصرفی وجود ندارد</translation>
+-<translation id="301080557829842765">راهنمای حریم‌خصوصی</translation>
++<translation id="301080557829842765">راهنمای حریم خصوصی</translation>
+ <translation id="3016635187733453316">مطمئن شوید این دستگاه به اینترنت متصل باشد</translation>
+ <translation id="3026955690410463085">لحاظ کردن پیوند</translation>
+ <translation id="3029276696788198026">گزینه پیش‌بارگیری وجود ندارد</translation>
+@@ -447,7 +447,7 @@
+ <translation id="3384347053049321195">اشتراک‌گذاری تصویر</translation>
+ <translation id="3387650086002190359">به‌دلیل خطاهای سیستم فایل، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation>
+ <translation id="3389286852084373014">نوشتار خیلی بزرگ است</translation>
+-<translation id="3391512812407811893">دوره‌های آزمایشی «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="3391512812407811893">دوره‌های آزمایشی «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="3398320232533725830">باز کردن مدیر نشانک‌ها</translation>
+ <translation id="3407392651057365886">‏صفحات بیشتری پیش‌بارگیری می‌شوند. اگر درخواست ازطرف سایت‌های دیگر انجام شود، ممکن است صفحات ازطریق سرورهای Google پیش‌بارگیری شوند.</translation>
+ <translation id="3414952576877147120">اندازه:</translation>
+@@ -806,7 +806,7 @@
+ <translation id="5514904542973294328">توسط سرپرست این دستگاه غیرفعال شده است</translation>
+ <translation id="5515439363601853141">برای مشاهده گذرواژه‌تان، قفل صفحه را باز کنید</translation>
+ <translation id="5517095782334947753">نشانک، سابقه، گذرواژه و تنظیمات دیگری از <ph name="FROM_ACCOUNT" /> دارید.</translation>
+-<translation id="5524761631371622910">‏اگر نسخه آزمایشی روشن باشد و Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
++<translation id="5524761631371622910">‏اگر نسخه آزمایشی روشن باشد و Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند.</translation>
+ <translation id="5524843473235508879">هدایت کردن مسدود شد.</translation>
+ <translation id="5548606607480005320">بررسی ایمنی</translation>
+ <translation id="5555525474779371165">انتخاب ویژگی حفاظتی «مرور ایمن»</translation>
+@@ -838,7 +838,7 @@
+ <translation id="570347048394355941">رفتن به برگه</translation>
+ <translation id="572328651809341494">برگه‌های اخیر</translation>
+ <translation id="5726692708398506830">بزرگ‌تر کردن همه‌چیز در صفحه</translation>
+-<translation id="5727531838415286053">‏اگر Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="5727531838415286053">‏اگر Chrome به‌طور تصادفی نسخه آزمایشی را برایتان فعال کرده باشد، سابقه مرورتان بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="5748802427693696783">به برگه‌های استاندارد تغییر یافت</translation>
+ <translation id="5749068826913805084">‏Chrome برای بارگیری فایل‌ها باید به حافظه دسترسی داشته باشد.</translation>
+ <translation id="5749237766298580851">خاموش <ph name="SEPARATOR" /> توصیه نمی‌شود</translation>
+@@ -899,9 +899,9 @@
+ <translation id="6002122790816966947">دستگاه‌های شما</translation>
+ <translation id="6005538289190791541">گذرواژه پیشنهادی</translation>
+ <translation id="6032091552407840792">این دوره آزمایشی فقط در <ph name="BEGIN_LINK" />برخی مناطق<ph name="END_LINK" /> فعال است.</translation>
+-<translation id="6033245666633565791">‏Chrome بااستفاده از <ph name="BEGIN_LINK" />جعبه ایمنی حریم‌خصوصی<ph name="END_LINK" /> درحال توسعه فناوری‌های جدیدی است که ضمن حفظ وبِ باز، از شما در برابر ردیابی بین‌سایتی محافظت می‌کند.
++<translation id="6033245666633565791">‏Chrome بااستفاده از <ph name="BEGIN_LINK" />جعبه ایمنی حریم خصوصی<ph name="END_LINK" /> درحال توسعه فناوری‌های جدیدی است که ضمن حفظ وبِ باز، از شما در برابر ردیابی بین‌سایتی محافظت می‌کند.
+ 
+-دوره آزمایشی «جعبه ایمنی حریم‌خصوصی» هنوز در مرحله توسعه فعال است و در مناطق منتخب دردسترس است. درحال‌حاضر، ممکن است سایت‌ها همچنان که از فناوری‌های کوکی‌های شخص ثالث استفاده می‌کنند، «جعبه ایمنی حریم‌خصوصی» را نیز امتحان کنند.</translation>
++دوره آزمایشی «جعبه ایمنی حریم خصوصی» هنوز در مرحله توسعه فعال است و در مناطق منتخب دردسترس است. درحال‌حاضر، ممکن است سایت‌ها همچنان که از فناوری‌های کوکی‌های شخص ثالث استفاده می‌کنند، «جعبه ایمنی حریم خصوصی» را نیز امتحان کنند.</translation>
+ <translation id="6039379616847168523">رفتن به برگه بعدی</translation>
+ <translation id="6040143037577758943">بستن</translation>
+ <translation id="604124094241169006">خودکار</translation>
+@@ -909,10 +909,10 @@
+ <translation id="604996488070107836">به‌دلیل خطایی ناشناس، بارگیری <ph name="FILE_NAME" /> انجام نشد.</translation>
+ <translation id="605721222689873409">سال</translation>
+ <translation id="6059830886158432458">داستان‌ها و فعالیت خود را اینجا کنترل کنید</translation>
+-<translation id="6069177176307973611">مرور تنظیمات حریم‌خصوصی و امنیت</translation>
++<translation id="6069177176307973611">مرور تنظیمات حریم خصوصی و امنیت</translation>
+ <translation id="6070730414166672373">‏درحال تماس با بانک\u2026</translation>
+ <translation id="6085886413119427067">تعیین چگونگی اتصال به وب‌سایت‌ها ازطریق اتصالی ایمن</translation>
+-<translation id="6091413777268123602">با دوره‌های آزمایشی «جعبه ایمنی حریم‌خصوصی»، سایت‌ها می‌توانند تجربه مرور یکسانی را با مصرف داده‌های شخصی کمتر ارائه دهند. یعنی حریم‌خصوصی شما افزایش و ردیابی بین‌سایتی کاهش پیدا می‌کند. هروقت دوره‌های آزمایشی جدیدی برای آزمایش کردن آماده شد، آن‌ها را اضافه می‌کنیم.</translation>
++<translation id="6091413777268123602">با دوره‌های آزمایشی «جعبه ایمنی حریم خصوصی»، سایت‌ها می‌توانند تجربه مرور یکسانی را با مصرف داده‌های شخصی کمتر ارائه دهند. یعنی حریم خصوصی شما افزایش و ردیابی بین‌سایتی کاهش پیدا می‌کند. هروقت دوره‌های آزمایشی جدیدی برای آزمایش کردن آماده شد، آن‌ها را اضافه می‌کنیم.</translation>
+ <translation id="60923314841986378"><ph name="HOURS" /> ساعت باقی‌مانده است</translation>
+ <translation id="6095578583683628124">‏اگر موتور جستجوی پیش‌فرضتان هم Google باشد، پیشنهادهای بهتر و مرتبط‌تری درباره موضوع خواهید دید</translation>
+ <translation id="6108923351542677676">تنظیم در حال انجام است...</translation>
+@@ -964,7 +964,7 @@
+ 
+ براساس تعاملتان با یک سایت (مثلاً مرتباً وارد شدن به سیستم حسابی خاص)، این سایت می‌تواند کد اطمینان برای مرورگرتان صادر کنند. بعداً، اگر سایت‌های دیگری که از آن‌ها بازدید می‌کنید کد اطمینان معتبری را جستجو و پیدا کند، احتمال اینکه با شما مثل یک انسان (و نه ربات) برخورد کند بیشتر است.
+ 
+-کدهای اطمینان حریم‌خصوصی را در وب بهبود می‌بخشد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
++کدهای اطمینان حریم خصوصی را در وب بهبود می‌بخشد و نمی‌توان از آن‌ها برای پی بردن به هویت شما استفاده کرد.</translation>
+ <translation id="6395288395575013217">پیوند</translation>
+ <translation id="6397616442223433927">دوباره آنلاین شدید</translation>
+ <translation id="6402652558933147609"><ph name="ERROR_CODE" /> در <ph name="VIOLATED_URL" /></translation>
+@@ -1022,7 +1022,7 @@
+ <translation id="6627583120233659107">ویرایش پوشه</translation>
+ <translation id="6633067410344541938">باز کردن قفل «حالت ناشناس»</translation>
+ <translation id="6636623428211296678">در بخش زیر تنظیمات بیشتری را کاوش کنید یا همین‌حالا کارتان را به‌پایان برسانید</translation>
+-<translation id="663674369910034433">‏برای تنظیمات بیشتر مرتبط با حریم‌خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK1" />همگام‌سازی<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />سرویس‌های Google<ph name="END_LINK2" /> را ببینید.</translation>
++<translation id="663674369910034433">‏برای تنظیمات بیشتر مرتبط با حریم خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK1" />همگام‌سازی<ph name="END_LINK1" /> و <ph name="BEGIN_LINK2" />سرویس‌های Google<ph name="END_LINK2" /> را ببینید.</translation>
+ <translation id="6637100877383020115">‏برای کمک به بهبود برنامه، Chrome داده‌های استفاده و ازکارافتادگی را به Google ارسال می‌کند. <ph name="BEGIN_UMA_LINK" />مدیریت<ph name="END_UMA_LINK" /></translation>
+ <translation id="6640207029842583248">همیشه مسدود شود</translation>
+ <translation id="6641780377503683465">برداشتن <ph name="INTEREST" /></translation>
+@@ -1063,7 +1063,7 @@
+ <translation id="6820686453637990663">CVC</translation>
+ <translation id="6824899148643461612"><ph name="TAB_TITLE" />، برگه، انتخاب‌شده</translation>
+ <translation id="6828070228333235514">توقف پیگیری قیمت</translation>
+-<translation id="6833996806551876956">دوره آزمایشی «جعبه ایمنی حریم‌خصوصی»</translation>
++<translation id="6833996806551876956">دوره آزمایشی «جعبه ایمنی حریم خصوصی»</translation>
+ <translation id="6846298663435243399">درحال بارگیری…</translation>
+ <translation id="6850409657436465440">بارگیری هنوز درحال انجام است</translation>
+ <translation id="6850830437481525139"><ph name="TAB_COUNT" /> برگه بسته شد</translation>
+@@ -1125,7 +1125,7 @@
+ <translation id="7187993566681480880">‏وقتی به سیستم وارد شده باشید، امنیت شما را در Chrome حفظ می‌کند و ممکن است برای بهبود امنیت شما در برنامه‌های دیگر Google استفاده شود.</translation>
+ <translation id="718926126787620637">فهرست پوشه‌های نشانک به‌صورت کامل باز شد</translation>
+ <translation id="7191430249889272776">برگه در پس‌زمینه باز شد.</translation>
+-<translation id="7196215469483532480">شرح «راهنمای حریم‌خصوصی» به‌صورت کامل باز شده است</translation>
++<translation id="7196215469483532480">شرح «راهنمای حریم خصوصی» به‌صورت کامل باز شده است</translation>
+ <translation id="7208109991155904980">واکنش جابه‌جا شد</translation>
+ <translation id="7222235798733126207">هم‌رسانی محدود میان سایت‌ها</translation>
+ <translation id="7227218174981371415">{FILE_COUNT,plural, =1{۱ بارگیری در انتظار}one{# بارگیری در انتظار}other{# بارگیری در انتظار}}</translation>
+@@ -1310,7 +1310,7 @@
+ <translation id="8156139159503939589">به چه زبانی مطالعه می‌کنید؟</translation>
+ <translation id="8168435359814927499">محتوا</translation>
+ <translation id="8186512483418048923"><ph name="FILES" /> فایل باقی مانده است</translation>
+-<translation id="8189750580333936930">جعبه ایمنی حریم‌خصوصی</translation>
++<translation id="8189750580333936930">جعبه ایمنی حریم خصوصی</translation>
+ <translation id="8190358571722158785">۱ روز باقی‌مانده است</translation>
+ <translation id="8193953846147532858"><ph name="BEGIN_LINK" />دستگاه‌های شما<ph name="END_LINK" /> · <ph name="EMAIL" /></translation>
+ <translation id="8200772114523450471">ازسرگیری</translation>
+@@ -1362,7 +1362,7 @@
+ <translation id="8461694314515752532">رمزگذاری داده‌های همگام‌سازی‌شده با گذرعبارت همگام‌سازی خودتان</translation>
+ <translation id="8466613982764129868">مطمئن شوید <ph name="TARGET_DEVICE_NAME" /> به اینترنت متصل باشد</translation>
+ <translation id="8473863474539038330">نشانی‌ها و سایر موارد</translation>
+-<translation id="8481921391193215807">‏وقتی روشن باشد، سایت‌ها می‌توانند برای ارائه محتوا و سرویس‌هایشان از تکنیک‌های حفظ حریم‌خصوصی نشان داده‌شده در اینجا استفاده کنند. این تکنیک‌ها شامل روش‌های جایگزین برای ردیابی بین‌سایتی می‌شود. ممکن است در گذر زمان، دوره‌های آزمایشی بیشتری اضافه شود.
++<translation id="8481921391193215807">‏وقتی روشن باشد، سایت‌ها می‌توانند برای ارائه محتوا و سرویس‌هایشان از تکنیک‌های حفظ حریم خصوصی نشان داده‌شده در اینجا استفاده کنند. این تکنیک‌ها شامل روش‌های جایگزین برای ردیابی بین‌سایتی می‌شود. ممکن است در گذر زمان، دوره‌های آزمایشی بیشتری اضافه شود.
+ 
+ <ph name="BEGIN_LIST_ITEM1" />تبلیغ‌کنندگان و ناشران می‌توانند از FLoC استفاده کنند.<ph name="END_LIST_ITEM1" />
+ 
+@@ -1371,7 +1371,7 @@
+ <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
+ <translation id="8489271220582375723">باز کردن صفحه سابقه</translation>
+ <translation id="8493948351860045254">آزاد کردن فضا</translation>
+-<translation id="8497480609928300907">شرح «راهنمای حریم‌خصوصی»</translation>
++<translation id="8497480609928300907">شرح «راهنمای حریم خصوصی»</translation>
+ <translation id="8497726226069778601">هنوز… چیزی برای دیدن وجود ندارد</translation>
+ <translation id="8503559462189395349">‏گذرواژه‌های Chrome</translation>
+ <translation id="8503813439785031346">نام کاربری</translation>
+@@ -1466,14 +1466,14 @@
+ <translation id="8972098258593396643">در پوشه پیش‌فرض بارگیری شود؟</translation>
+ <translation id="8987641763863173640">مدیریت تنظیمات پیش‌دید ویدیو</translation>
+ <translation id="898854820045159673">واکنش اضافه شد</translation>
+-<translation id="8989968390305463310">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم‌خصوصی شما، Chrome علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
++<translation id="8989968390305463310">‏سابقه مرور شما بر آگهی‌هایی که می‌بینید و علایقتان که در زیر برآورد شده است تأثیر می‌گذارد. برای محافظت از حریم خصوصی شما، Chrome علایقتان را هر ماه به‌طور خودکار و چرخشی حذف می‌کند. ممکن است علایق بازآوری شود، مگر اینکه آن‌ها را بردارید.</translation>
+ <translation id="8993760627012879038">باز کردن برگه جدیدی در حالت ناشناس</translation>
+ <translation id="8996847606757455498">انتخاب ارائه‌دهنده دیگر</translation>
+ <translation id="8998729206196772491">‏هم‌اکنون درحال ورود به سیستم با یک حساب مدیریت‌شده توسط <ph name="MANAGED_DOMAIN" /> و ارائه کنترل داده‌های Chrome خودتان به سرپرست این حساب هستید. داده‌هایتان به‌طور دائم به این حساب مرتبط می‌شوند. با خروج از Chrome، داده‌هایتان از این دستگاه حذف می‌شوند اما همچنان در حساب Google شما باقی می‌ماند.</translation>
+ <translation id="9022774213089566801">اغلب از آن‌ها بازدید شده است</translation>
+ <translation id="9028914725102941583">برای هم‌رسانی بین دستگاه‌ها، «همگام‌سازی» را روشن کنید</translation>
+ <translation id="9041669420854607037">{FILE_COUNT,plural, =1{# ویدیو}one{# ویدیو}other{# ویدیو}}</translation>
+-<translation id="9042893549633094279">حریم‌خصوصی و امنیت</translation>
++<translation id="9042893549633094279">حریم خصوصی و امنیت</translation>
+ <translation id="9050666287014529139">گذرعبارت</translation>
+ <translation id="9063523880881406963">خاموش کردن درخواست سایت رایانه‌ای</translation>
+ <translation id="9065203028668620118">ویرایش</translation>
+diff --git a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+index b4cc67822180..af6d8c46b8b8 100644
+--- a/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
++++ b/chrome/browser/ui/android/strings/translations/android_chrome_strings_kk.xtb
+@@ -18,7 +18,7 @@
+ <translation id="1103142993930332957">Chrome браузерін жақсартуға көмектесесіз бе?</translation>
+ <translation id="1105960400813249514">Экранды жазып алу</translation>
+ <translation id="1108938384783527433">Тарихты синхрондау</translation>
+-<translation id="1110914759170138831">Бөлектеу қысқартылды.</translation>
++<translation id="1110914759170138831">Ерекшелеу қысқартылды.</translation>
+ <translation id="1111673857033749125">Басқа құрылғыларда сақталған бетбелгілер осы жерде шығады.</translation>
+ <translation id="1113597929977215864">Қарапайым көріністі көрсету</translation>
+ <translation id="1118561384561215815">Интернетте тапсырмалар орындауда көмек алыңыз</translation>
+@@ -74,7 +74,7 @@
+ 
+ Барлық немесе белгілі бір сайттағы браузерді қолдану тарихын жойған кезде, оған қатысты өлшем ақпараты да жойылады. <ph name="BEGIN_LINK" />Браузерді қолдану тарихын<ph name="END_LINK" /> қараңыз.</translation>
+ <translation id="1332501820983677155">Google Chrome функциясының пернелер тіркесімі</translation>
+-<translation id="1344653310988386453">Бөлектелген мәтінге сілтеме қосыңыз.</translation>
++<translation id="1344653310988386453">Ерекшеленген мәтінге сілтеме қосыңыз.</translation>
+ <translation id="1347468774581902829">Әрекетті басқару</translation>
+ <translation id="1360432990279830238">Шығып, синхрондауды өшіру керек пе?</translation>
+ <translation id="1373696734384179344">Таңдалған мазмұнды жүктеу үшін жад жеткіліксіз.</translation>
+@@ -221,7 +221,7 @@
+ <translation id="2172688499998841696">Кескін сипаттамалары өшірулі.</translation>
+ <translation id="2172905120685242547">Терезені жабу керек пе?</translation>
+ <translation id="2175927920773552910">QR коды</translation>
+-<translation id="2176767904800337188">Виртуалды карта қолданыстағы картаны алаяқтықтан қорғауға көмектеседі. <ph name="BEGIN_LINK1" />Виртуалды карталар туралы толығырақ ақпарат алыңыз.<ph name="END_LINK1" /></translation>
++<translation id="2176767904800337188">Виртуалдық карта қолданыстағы картаны алаяқтықтан қорғауға көмектеседі. <ph name="BEGIN_LINK1" />Виртуалдық карталар туралы толығырақ ақпарат алыңыз.<ph name="END_LINK1" /></translation>
+ <translation id="218608176142494674">Бөлісу</translation>
+ <translation id="2189903024544168260">Қызығушылық өшірілді.</translation>
+ <translation id="2194856509914051091">Ескеретін жайттар</translation>
+@@ -475,7 +475,7 @@
+ <translation id="3549657413697417275">Тарихтан іздеу</translation>
+ <translation id="3557336313807607643">Контактілерге енгізу</translation>
+ <translation id="3563767357928833671">Буфердегі мазмұн көрсетіледі</translation>
+-<translation id="3566923219790363270">Chrome виртуалды шындықты әлі дайындап жатыр. Chrome браузерін кейінірек қайта қосыңыз.</translation>
++<translation id="3566923219790363270">Chrome виртуалдық шындықты әлі дайындап жатыр. Chrome браузерін кейінірек қайта қосыңыз.</translation>
+ <translation id="3568688522516854065">Қойындыларды барлық құрылғылардан пайдалану үшін аккаунтқа кіріп, синхрондау функциясын қосыңыз</translation>
+ <translation id="357465026686164600">Телефонды қауіпсіздік кілті ретінде пайдалану</translation>
+ <translation id="3577473026931028326">Бірдеңе дұрыс болмады. Қайталап көріңіз.</translation>
+@@ -603,11 +603,11 @@
+ <translation id="4402611456429872546"><ph name="LANG" /> – жүктеп алынуда…</translation>
+ <translation id="4404568932422911380">Бетбелгілер жоқ</translation>
+ <translation id="4405224443901389797">Мына қалтаға жылжыту…</translation>
+-<translation id="4405636711880428279">Виртуалды картаны жою керек пе?</translation>
++<translation id="4405636711880428279">Виртуалдық картаны жою керек пе?</translation>
+ <translation id="4409271659088619928">Іздеу жүйесі — <ph name="DSE" />. Қажет болса, ондағы іздеу тарихын жою туралы нұсқауларды қараңыз.</translation>
+ <translation id="4415276339145661267">Google аккаунтын басқару</translation>
+ <translation id="4425140285732600465">Баға бақылануда. Қандай да бір сайтта баға төмендесе, сізге хабарланады.</translation>
+-<translation id="442518031075347249">Бұдан былай виртуалды картаны Google Pay қызметінде пайдалана алмайтын боласыз. <ph name="BEGIN_LINK1" />Виртуалды карталар туралы толығырақ ақпарат алыңыз.<ph name="END_LINK1" /></translation>
++<translation id="442518031075347249">Бұдан былай виртуалдық картаны Google Pay қызметінде пайдалана алмайтын боласыз. <ph name="BEGIN_LINK1" />Виртуалдық карталар туралы толығырақ ақпарат алыңыз.<ph name="END_LINK1" /></translation>
+ <translation id="4428065317363009941">Жарнаманы жекелендіру</translation>
+ <translation id="4450672886426705087">Google-дан алынған іздеу нәтижелері.</translation>
+ <translation id="4452411734226507615"><ph name="TAB_TITLE" /> қойындысын жабу</translation>
+@@ -664,10 +664,10 @@ Google аккаунтының шолу тарихы басқа Google қызме
+ <translation id="4720982865791209136">Chrome браузерін жақсартуға көмектесіңіз. <ph name="BEGIN_LINK" />Сауалнамаға қатысыңыз<ph name="END_LINK" /></translation>
+ <translation id="47217992755561375">Жиі пайдаланатын сайттарды көру</translation>
+ <translation id="4732120983431207637">Stack Unwinder</translation>
+-<translation id="4736934858538408121">Виртуалды карта</translation>
++<translation id="4736934858538408121">Виртуалдық карта</translation>
+ <translation id="4738836084190194332">Соңғы синхрондалған уақыты: <ph name="WHEN" /></translation>
+ <translation id="4741753828624614066">Мекенжай жолағында жақсартылған ұсыныстар аласыз.</translation>
+-<translation id="4742970037960872810">Бөлектемеу</translation>
++<translation id="4742970037960872810">Ерекшелемеу</translation>
+ <translation id="4749960740855309258">Жаңа қойынды ашу</translation>
+ <translation id="4758061975920522644">Тек кескін бөлісу</translation>
+ <translation id="4759238208242260848">Жүктеп алынғандар</translation>
+@@ -713,7 +713,7 @@ Google аккаунтының шолу тарихы басқа Google қызме
+ <translation id="49268022542405662">Құпия сөздеріңіз мәтіндік файл түрінде экспортталады және жүктеп алынады. Олар тиісті қалтаға өту мүмкіндігімен барлық пайдаланушыларға және қолданбаларға көрінеді.</translation>
+ <translation id="4932247056774066048">Сіз <ph name="DOMAIN_NAME" /> басқаратын аккаунттан шығып бара жатқандықтан, Chrome браузеріңіздегі деректер осы құрылғыдан жойылады. Ол Google аккаунтыңызда сақталады.</translation>
+ <translation id="4941179133499732445">Дауыспен іздеу үшін микрофон белгішесін түртіңіз.</translation>
+-<translation id="4943703118917034429">Виртуалды шындық</translation>
++<translation id="4943703118917034429">Виртуалдық шындық</translation>
+ <translation id="4943872375798546930">Нәтижесіз</translation>
+ <translation id="4950924971025849764">Бір Google аккаунтына кіргенде басқа құрылғылар бұл телефонды қауіпсіздік кілті ретінде пайдалана алады.</translation>
+ <translation id="4957722034734105353">Толығырақ…</translation>
+@@ -949,7 +949,7 @@ Privacy Sandbox сынақ нұсқалары әлі де әзірленіп ж
+ <translation id="6312687380483398334">Веб-қолданбалар (дыбыссыз)</translation>
+ <translation id="6316139424528454185">Android: қолдау көрсетілмейді</translation>
+ <translation id="6324916366299863871">Таңбашаны өзгерту</translation>
+-<translation id="6324977638108296054">Бөлектелген мәтіннің сілтемесі жасалмады.</translation>
++<translation id="6324977638108296054">Ерекшеленген мәтіннің сілтемесі жасалмады.</translation>
+ <translation id="6324997754869598316">(<ph name="ERROR_CODE" /> қатесі)</translation>
+ <translation id="6333140779060797560"><ph name="APPLICATION" /> арқылы бөлісу</translation>
+ <translation id="6337234675334993532">Шифрлау</translation>
+@@ -1197,7 +1197,7 @@ Privacy Sandbox сынақ нұсқалары әлі де әзірленіп ж
+ <translation id="7596558890252710462">Операциялық жүйе</translation>
+ <translation id="7605594153474022051">Синхрондау жұмыс істемейді</translation>
+ <translation id="7612619742409846846">Google жүйесіне келесі пайдаланушы атымен кірген:</translation>
+-<translation id="7616551326690708776">Бөлектеу үшін үлгіні таңдаңыз.</translation>
++<translation id="7616551326690708776">Ерекшелеу үшін үлгіні таңдаңыз.</translation>
+ <translation id="7619072057915878432">Желідегі ақаулықтар себебінен <ph name="FILE_NAME" /> жүктелмеді.</translation>
+ <translation id="7626032353295482388">Chrome жүйесіне қош келдіңіз</translation>
+ <translation id="7630202231528827509">Провайдердің URL мекенжайы</translation>
+@@ -1257,7 +1257,7 @@ Privacy Sandbox сынақ нұсқалары әлі де әзірленіп ж
+ <translation id="7926975587469166629">Картаның қысқа аты</translation>
+ <translation id="7929962904089429003">Мәзірді ашу</translation>
+ <translation id="7930998711684428189">Құпия сөздер қолды болған жағдайда, сізге бұл туралы хабарлайды.</translation>
+-<translation id="7939485076072265087">Бөлектелген мәтін үшін стильденген карта жасау</translation>
++<translation id="7939485076072265087">Ерекшеленген мәтін үшін стильденген карта жасау</translation>
+ <translation id="7942131818088350342"><ph name="PRODUCT_NAME" /> ескірген.</translation>
+ <translation id="7944772052836377867">Sync жеке басыңызды растау керек</translation>
+ <translation id="7947953824732555851">Қабылдау және кіру</translation>
+@@ -1422,9 +1422,9 @@ Privacy Sandbox сынақ нұсқалары әлі де әзірленіп ж
+ <translation id="8712637175834984815">Түсінікті</translation>
+ <translation id="8725066075913043281">Әрекетті қайталау</translation>
+ <translation id="8730621377337864115">Дайын</translation>
+-<translation id="8746155870861185046">Бөлектелген мәтінді бөлісу</translation>
++<translation id="8746155870861185046">Ерекшеленген мәтінді бөлісу</translation>
+ <translation id="8748850008226585750">Мазмұны жасырылған</translation>
+-<translation id="8766529642647037772">Осыған ұқсас бөлектелген сілтеме жасалсын ба?</translation>
++<translation id="8766529642647037772">Осыған ұқсас ерекшеленген сілтеме жасалсын ба?</translation>
+ <translation id="8773160212632396039">Сұрау өңделуде</translation>
+ <translation id="8788265440806329501">Навигация тарихы жабық.</translation>
+ <translation id="8788968922598763114">Соңғы жабылған қойындыны қайта ашу</translation>
+diff --git a/chromeos/strings/chromeos_strings_fa.xtb b/chromeos/strings/chromeos_strings_fa.xtb
+index 6a2438d2865b..515426fba692 100644
+--- a/chromeos/strings/chromeos_strings_fa.xtb
++++ b/chromeos/strings/chromeos_strings_fa.xtb
+@@ -224,7 +224,7 @@
+ <translation id="360565022852130722">‏شبکه Wi-Fi با پروتکل ضعیف WEP 802.1x ایمن شده است</translation>
+ <translation id="3606583719724308068">‏تأخیر بالا در وب‌سایت‌های HTTPS</translation>
+ <translation id="3621202678540785336">ورودی</translation>
+-<translation id="3632579075709132555">پنهان/ نمایان کردن صفحه حریم‌خصوصی</translation>
++<translation id="3632579075709132555">پنهان/ نمایان کردن صفحه حریم خصوصی</translation>
+ <translation id="3689839747745352263">آزمایش <ph name="TEST_NAME" /></translation>
+ <translation id="370665806235115550">در حال بارکردن…</translation>
+ <translation id="3708186454126126312">قبلاً متصل‌شده</translation>
+diff --git a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
+index 01fd59ae8849..329503647ddd 100644
+--- a/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
++++ b/components/browser_ui/strings/android/translations/browser_ui_strings_kk.xtb
+@@ -145,11 +145,11 @@
+ <translation id="4534723447064627427"><ph name="APP_NAME" /> браузері микрофонды пайдалануы үшін, <ph name="BEGIN_LINK" />Android параметрлерінде<ph name="END_LINK" /> оны да қосыңыз.</translation>
+ <translation id="4570913071927164677">Мәліметтер</translation>
+ <translation id="4645575059429386691">Ата-ана басқарады</translation>
+-<translation id="4670064810192446073">Виртуалды шындық</translation>
++<translation id="4670064810192446073">Виртуалдық шындық</translation>
+ <translation id="4751476147751820511">Қозғалыс не жарық датчиктері</translation>
+ <translation id="4836046166855586901">Сайт сіз құрылғыңызды қашан белсенді пайдаланатыныңыз туралы білгісі келгенде, рұқсат сұралады.</translation>
+ <translation id="4883854917563148705">Басқарылатын параметрлер бастапқы күйге қайтарылмайды.</translation>
+-<translation id="4887024562049524730">Cайттарға виртуалды шындық құрылғыңызды немесе деректерді пайдалануға рұқсат беру алдында сұрау (ұсынылады)</translation>
++<translation id="4887024562049524730">Cайттарға виртуалдық шындық құрылғыңызды немесе деректерді пайдалануға рұқсат беру алдында сұрау (ұсынылады)</translation>
+ <translation id="4962975101802056554">Құрылғыға арналған барлық рұқсаттардың күші жойылсын.</translation>
+ <translation id="497421865427891073">Алға өту</translation>
+ <translation id="4976702386844183910">Cоңғы кіру: <ph name="DATE" /></translation>
+@@ -223,7 +223,7 @@
+ <translation id="6320088164292336938">Діріл</translation>
+ <translation id="6388207532828177975">Тазарту және қалпына келтіру</translation>
+ <translation id="6398765197997659313">Толық экраннан шығу</translation>
+-<translation id="6439114592976064011">Сайттардың виртуалды шындық құрылғыңызды және деректеріңізді пайдалануына тыйым салу</translation>
++<translation id="6439114592976064011">Сайттардың виртуалдық шындық құрылғыңызды және деректеріңізді пайдалануына тыйым салу</translation>
+ <translation id="6447842834002726250">Cookie файлдары</translation>
+ <translation id="6527303717912515753">Бөлісу</translation>
+ <translation id="6545864417968258051">Bluetooth құрылғыларын іздеу</translation>
+diff --git a/components/omnibox/resources/translations/omnibox_pedal_synonyms_fa.xtb b/components/omnibox/resources/translations/omnibox_pedal_synonyms_fa.xtb
+index 7e44e04af172..f664a6ede22a 100644
+--- a/components/omnibox/resources/translations/omnibox_pedal_synonyms_fa.xtb
++++ b/components/omnibox/resources/translations/omnibox_pedal_synonyms_fa.xtb
+@@ -45,7 +45,7 @@
+ <translation id="7700496593710078083">دیدن سابقه Chrome، مشاهده سابقه مرور</translation>
+ <translation id="7739523284295786564">مدیریت بارگیری‌های Chrome، مشاهده بارگیری‌ها</translation>
+ <translation id="7988861522114961979">نظرسنجی، فرم‌ها، فرم، آزمون</translation>
+-<translation id="7992725801741093524">تغییر تنظیمات حریم‌خصوصی Google، مدیریت حریم‌خصوصی Google</translation>
++<translation id="7992725801741093524">تغییر تنظیمات حریم خصوصی Google، مدیریت حریم خصوصی Google</translation>
+ <translation id="8020024640114692614">پیوندها همیشه در chrome باز شود، همیشه از chrome استفاده شود، chrome پیش‌فرض شود، مرورگر پیش‌فرض، حذف safari، چگونه chrome را مرورگر پیش‌فرض کنم، مرورگر اصلی، پیش‌فرض کردن chrome، قرار دادن chrome به‌عنوان مرورگر پیش‌فرض، چطور chrome مرورگر پیش‌فرضم باشد، باز کردن پیوندها در chrome، انتخاب chrome به‌عنوان مرورگر پیش‌فرض، مرورگر اول، پاک کردن safari، جستجو در chrome، تنظیم chrome به‌عنوان پیش‌فرض، تنظیم chrome به‌عنوان مرورگر پیش‌فرض، مرورگر استاندارد، باز شدن پیوندها در chrome، پیش‌فرض شدن chrome، می‌خواهم chrome مرورگر پیش‌فرض باشد، chrome پیش‌فرض</translation>
+ <translation id="8319253638505741466">بستن پنجره ناشناس، خروج از حالت ناشناس</translation>
+ <translation id="8483249620579465383">نهایت استفاده، درک کردن، کاوش، آشنایی، بازدید، دیدن</translation>
+diff --git a/components/omnibox/resources/translations/omnibox_pedal_synonyms_te.xtb b/components/omnibox/resources/translations/omnibox_pedal_synonyms_te.xtb
+index 3185300fce4b..fb375e060e92 100644
+--- a/components/omnibox/resources/translations/omnibox_pedal_synonyms_te.xtb
++++ b/components/omnibox/resources/translations/omnibox_pedal_synonyms_te.xtb
+@@ -7,7 +7,7 @@
+ <translation id="1824980356476543253">మీటింగ్, ఆహ్వానించండి, ఈవెంట్</translation>
+ <translation id="1891988516537124499">కంట్రోల్ చేయండి, మేనేజ్ చేయండి, సర్దుబాటు చేయండి, తొలగించండి, మార్చండి, స్టోర్ చేయండి, ఎడిట్ చేయండి, జోడించండి</translation>
+ <translation id="1912698329644085067">chrome సెట్టింగ్‌లను మార్చండి, సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
+-<translation id="2003251155164817216">Chrome రూపాన్ని అనుకూలీకరించండి, Chrome రూపాలను మేనేజ్ చేయండి</translation>
++<translation id="2003251155164817216">Chrome రూపాన్ని అనుకూలంగా మార్చండి, Chrome రూపాలను మేనేజ్ చేయండి</translation>
+ <translation id="206230951215631020">వర్క్ స్పేస్, బ్రౌజర్, g suite, google, chrome, keep</translation>
+ <translation id="2408395371488465534">google chrome, బ్రౌజింగ్, బ్రౌజర్, chrome, google, బ్రౌజ్ చేయండి, మార్చండి, మేనేజ్ చేయండి</translation>
+ <translation id="2872605192111199355">సింక్ సెట్టింగ్‌లు, సింక్</translation>
+@@ -18,7 +18,7 @@
+ <translation id="331746689497206697">వర్క్ స్పేస్, browser, g suite, google, chrome</translation>
+ <translation id="3325899408702304400">కంట్రోల్ చేయండి, మేనేజ్ చేయండి, సర్దుబాటు చేయండి, పరిష్కరించండి</translation>
+ <translation id="340152034555856560">google ఖాతా</translation>
+-<translation id="3489247412199563299">Chrome యాక్సెసిబిలిటీని అనుకూలీకరించండి, యాక్సెసిబిలిటీ సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
++<translation id="3489247412199563299">Chrome యాక్సెసిబిలిటీని అనుకూలంగా మార్చండి, యాక్సెసిబిలిటీ సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
+ <translation id="356556104436575005">కొత్త chrome ఫీచర్‌లు, chrome చిట్కాల కేంద్రం, chrome ఫీచర్‌లు, chrome చిట్కాలు</translation>
+ <translation id="3608306948000872696">google chrome, బ్రౌజర్, chrome, google</translation>
+ <translation id="3673793929882893073">వర్క్ స్పేస్, క్యాలెండర్, బ్రౌజర్, g suite, google, chrome, కాల్</translation>
+@@ -41,7 +41,7 @@
+ <translation id="6887215158683958234">స్ప్రెడ్‌షీట్, sheets, షీట్, ట్రిక్స్</translation>
+ <translation id="6911239335785679799">బ్రౌజర్, chrome, google</translation>
+ <translation id="7650615490969055359">google ఖాతా పాస్‌వర్డ్, gmail ఖాతా పాస్‌వర్డ్, google పాస్‌వర్డ్, gmail పాస్‌వర్డ్</translation>
+-<translation id="7660956169713698963">chromeos యాక్సెసిబిలిటీని అనుకూలీకరించండి, యాక్సెసిబిలిటీ సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
++<translation id="7660956169713698963">chromeos యాక్సెసిబిలిటీని అనుకూలంగా మార్చండి, యాక్సెసిబిలిటీ సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
+ <translation id="7700496593710078083">Chrome హిస్టరీని చూడండి, బ్రౌజింగ్ హిస్టరీని చూడండి</translation>
+ <translation id="7739523284295786564">Chrome డౌన్‌లోడ్‌లను మేనేజ్ చేయండి, డౌన్‌లోడ్‌లను చూడండి</translation>
+ <translation id="7988861522114961979">సర్వే, ఫారమ్‌లు, ఫారమ్, క్విజ్</translation>
+diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
+index 6e5c5880f302..e7cb75762bb5 100644
+--- a/components/strings/components_strings_fa.xtb
++++ b/components/strings/components_strings_fa.xtb
+@@ -71,7 +71,7 @@
+ <translation id="1165852471352757509">مستند تلویزیونی و غیرتخیلی</translation>
+ <translation id="1174723505405632867">می‌خواهید به <ph name="EMBEDDED_URL" /> اجازه دهید از کوکی‌ها و داده‌های سایت در <ph name="TOP_LEVEL_URL" /> استفاده کند؟
+ 
+-اگر اجازه ندهید، تنظیمات حریم‌خصوصی مانع از این دسترسی می‌شود. این اجازه کمک می‌کند محتوایی که با آن تعامل داشته‌اید درست کار کند، اما می‌تواند به <ph name="EMBEDDED_URL" /> هم اجازه دهد فعالیت شما را ردیابی کند.</translation>
++اگر اجازه ندهید، تنظیمات حریم خصوصی مانع از این دسترسی می‌شود. این اجازه کمک می‌کند محتوایی که با آن تعامل داشته‌اید درست کار کند، اما می‌تواند به <ph name="EMBEDDED_URL" /> هم اجازه دهد فعالیت شما را ردیابی کند.</translation>
+ <translation id="1175364870820465910">&amp;چاپ...</translation>
+ <translation id="1175875016430184367">سه منگنه در راست</translation>
+ <translation id="1177802847690410663">مرورگر وب</translation>
+@@ -177,7 +177,7 @@
+ <translation id="1407135791313364759">باز کردن همه</translation>
+ <translation id="1408787208417187241">سه منگنه در بالا</translation>
+ <translation id="1413407968866574823">بازی‌های اکشن و سکویی</translation>
+-<translation id="1413809658975081374">خطای حریم‌خصوصی</translation>
++<translation id="1413809658975081374">خطای حریم خصوصی</translation>
+ <translation id="1414134146594747368">پیش‌دبستانی</translation>
+ <translation id="1422930527989633628">می‌تواند برای پیدا کردن دستگاه‌های بلوتوث اطراف درخواست دهد</translation>
+ <translation id="1426410128494586442">بله</translation>
+@@ -338,7 +338,7 @@
+ <translation id="1778646502362731194">JIS B0</translation>
+ <translation id="1787142507584202372">برگه‌های بازتان در اینجا نشان داده می‌شوند</translation>
+ <translation id="1791429645902722292">Google Smart Lock</translation>
+-<translation id="1791820510173628507">‏<ph name="MANAGE_GOOGLE_ACCOUNT_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای مدیریت اطلاعات، حریم‌خصوصی، و امنیت در «حساب Google»، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
++<translation id="1791820510173628507">‏<ph name="MANAGE_GOOGLE_ACCOUNT_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای مدیریت اطلاعات، حریم خصوصی، و امنیت در «حساب Google»، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
+ <translation id="1798447301915465742">‏<ph name="MULTIPLE_ACTIONS_FOCUSED_FRIENDLY_MATCH_TEXT" />، چند کنش دردسترس است، برای جابه‌جایی بین آن‌ها، کلید Tab را فشار دهید</translation>
+ <translation id="1800473098294731951">B9</translation>
+ <translation id="1803020234906945288">تغذیه سالم</translation>
+@@ -551,7 +551,7 @@
+ <translation id="2413155254802890957">قدیمی</translation>
+ <translation id="2413528052993050574">این سرور نتوانست اثبات کند که این <ph name="DOMAIN" /> است؛ ممکن است گواهی امنیتی آن باطل شده باشد. ممکن است علت این موضوع پیکربندی اشتباه باشد یا مهاجمی اتصال شما را قطع کرده است.</translation>
+ <translation id="2414886740292270097">تاریک</translation>
+-<translation id="2430968933669123598">‏مدیریت «حساب Google»؛ برای مدیریت اطلاعات، حریم‌خصوصی، و امنیت در «حساب Google»، کلید «ورود» را فشار دهید</translation>
++<translation id="2430968933669123598">‏مدیریت «حساب Google»؛ برای مدیریت اطلاعات، حریم خصوصی، و امنیت در «حساب Google»، کلید «ورود» را فشار دهید</translation>
+ <translation id="2436186046335138073">به <ph name="HANDLER_HOSTNAME" /> امکان داده شود همه پیوندهای <ph name="PROTOCOL" /> را باز کند؟</translation>
+ <translation id="2438874542388153331">چهار سوراخ در راست</translation>
+ <translation id="2448295565072560657">لوازم جانبی متصل به این دستگاه در مدت ورود به سیستم</translation>
+@@ -1110,7 +1110,7 @@
+ <translation id="4010758435855888356">دسترسی به فضای ذخیره‌سازی مجاز شود؟</translation>
+ <translation id="4014128326099193693">{COUNT,plural, =1{‏سند PDF {COUNT} صفحه دارد}one{‏سند PDF {COUNT} صفحه دارد}other{‏سند PDF {COUNT} صفحه دارد}}</translation>
+ <translation id="4023431997072828269">از آنجایی‌که این فرم درحال ارسال ازطریق اتصال ناامنی است، دیگران می‌توانند اطلاعات شما را ببینند.</translation>
+-<translation id="4025913568718019429">‏دکمه «مدیریت تنظیمات حریم‌خصوصی Google»؛ برای رفتن به تنظیمات حریم‌خصوصی «حساب Google»، کلید «ورود» را فشار دهید</translation>
++<translation id="4025913568718019429">‏دکمه «مدیریت تنظیمات حریم خصوصی Google»؛ برای رفتن به تنظیمات حریم خصوصی «حساب Google»، کلید «ورود» را فشار دهید</translation>
+ <translation id="4030383055268325496">&amp;واگرد افزودن</translation>
+ <translation id="4040350669425716613">دانشکده و دانشگاه</translation>
+ <translation id="4056223980640387499">سپیا</translation>
+@@ -1489,7 +1489,7 @@
+ <translation id="5035135400558156732">باغبانی</translation>
+ <translation id="5039762155821394373">اندازه قلم</translation>
+ <translation id="5039804452771397117">اجازه دادن</translation>
+-<translation id="5040262127954254034">حریم‌خصوصی</translation>
++<translation id="5040262127954254034">حریم خصوصی</translation>
+ <translation id="5043480802608081735">پیوندی که کپی کرده‌اید</translation>
+ <translation id="5044545992476246592">‏گذرواژه‌ای که اکنون استفاده کردید در سرقت اطلاعات شبکه پیدا شده است. «دستیار Google» می‌تواند گذرواژه‌تان را به‌طور خودکار تغییر دهد.</translation>
+ <translation id="5045550434625856497">گذرواژه نادرست</translation>
+@@ -1826,7 +1826,7 @@
+ <translation id="598637245381783098">برنامه پرداخت باز نشد</translation>
+ <translation id="5989320800837274978">‏سرور پروکسی ثابت و URL اسکریپت pac. تعیین نشده‌اند.</translation>
+ <translation id="5992691462791905444">‏تاخوردگی Z شکل مهندسی</translation>
+-<translation id="5995727681868049093">‏مدیریت اطلاعات، حریم‌خصوصی، و امنیت در «حساب Google»</translation>
++<translation id="5995727681868049093">‏مدیریت اطلاعات، حریم خصوصی، و امنیت در «حساب Google»</translation>
+ <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> نتیجه برای «<ph name="SEARCH_TEXT" />»</translation>
+ <translation id="6006484371116297560">کلاسيک</translation>
+ <translation id="6008122969617370890">‏ترتیب N تا ۱</translation>
+@@ -2144,7 +2144,7 @@
+ <translation id="695140971690006676">بازنشانی همه</translation>
+ <translation id="6954049078461159956">هاكی</translation>
+ <translation id="6957887021205513506">به نظر می‌رسد که گواهی سرور جعلی باشد.</translation>
+-<translation id="6958564499836457428">‏مدیریت تنظیمات حریم‌خصوصی Google در «حساب Google»</translation>
++<translation id="6958564499836457428">‏مدیریت تنظیمات حریم خصوصی Google در «حساب Google»</translation>
+ <translation id="695864015080711809">شغل و تحصیلات</translation>
+ <translation id="6961733224437895943">بیمه مسکن</translation>
+ <translation id="6961844873822989059">می‌تواند برای استفاده از قلم‌های نصب‌شده در دستگاه درخواست دهد</translation>
+@@ -2178,7 +2178,7 @@
+ <translation id="7029809446516969842">گذرواژه‌ها</translation>
+ <translation id="7030436163253143341">گواهی معتبر نیست</translation>
+ <translation id="7031646650991750659">‏برنامه‌های Google Play که نصب کرده‌اید</translation>
+-<translation id="7038063300915481831">‏<ph name="MANAGE_GOOGLE_PRIVACY_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای مدیریت تنظیمات حریم‌خصوصی «حساب Google» خود، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
++<translation id="7038063300915481831">‏<ph name="MANAGE_GOOGLE_PRIVACY_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای مدیریت تنظیمات حریم خصوصی «حساب Google» خود، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
+ <translation id="7050187094878475250">تلاش کردید به دامنه <ph name="DOMAIN" /> بروید اما گواهینامه‌ای که سرور ارائه کرد، دارای یک تاریخ اعتبار بسیار طولانی است و مورداعتماد نیست.</translation>
+ <translation id="705310974202322020">{NUM_CARDS,plural, =1{درحال‌حاضر این کارت ذخیره نمی‌شود}one{درحال‌حاضر این کارت‌ها ذخیره نمی‌شوند}other{درحال‌حاضر این کارت‌ها ذخیره نمی‌شوند}}</translation>
+ <translation id="7053983685419859001">مسدود کردن</translation>
+@@ -2268,7 +2268,7 @@
+ <translation id="7298195798382681320">توصیه می‌شود</translation>
+ <translation id="7300012071106347854">آبی پررنگ</translation>
+ <translation id="7304030187361489308">بالا</translation>
+-<translation id="7304562222803846232">‏مدیریت تنظیمات حریم‌خصوصی «حساب Google»</translation>
++<translation id="7304562222803846232">‏مدیریت تنظیمات حریم خصوصی «حساب Google»</translation>
+ <translation id="7305756307268530424">شروع آهسته‌تر</translation>
+ <translation id="7308436126008021607">همگام‌سازی پس‌زمینه</translation>
+ <translation id="7310392214323165548">دستگاه به‌زودی بازراه‌اندازی خواهد شد</translation>
+diff --git a/components/strings/components_strings_kk.xtb b/components/strings/components_strings_kk.xtb
+index 7802f1b9b36d..533aed732187 100644
+--- a/components/strings/components_strings_kk.xtb
++++ b/components/strings/components_strings_kk.xtb
+@@ -425,7 +425,7 @@
+ <translation id="2053553514270667976">Пошта индексі</translation>
+ <translation id="2064691555167957331">{COUNT,plural, =1{1 ұсыныс}other{# ұсыныс}}</translation>
+ <translation id="2068528718802935086">Нәрестелер мен сәбилер</translation>
+-<translation id="2071156619270205202">Бұл нөмір виртуалды карта нөмірі үшін жарамсыз.</translation>
++<translation id="2071156619270205202">Бұл нөмір виртуалдық карта нөмірі үшін жарамсыз.</translation>
+ <translation id="2071692954027939183">Сіз әдетте хабарландыруларға рұқсат бермейтін болғандықтан, олар автоматты түрде бөгелді.</translation>
+ <translation id="2072275792380684364">Сән және стиль</translation>
+ <translation id="2079545284768500474">Қайтару</translation>
+@@ -701,7 +701,7 @@
+ <translation id="2854764410992194509">Интернет провайдерлері</translation>
+ <translation id="2856444702002559011"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> сайтындағы шабуылдаушылар ақпаратыңызды (мысалы, құпия сөздер, хабарлар немесе несиелік карталар) ұрлауға әрекет етуі мүмкін.<ph name="BEGIN_LEARN_MORE_LINK" />Толығырақ<ph name="END_LEARN_MORE_LINK" /></translation>
+ <translation id="2859806420264540918">Бұл сайтта мазалайтын немесе жалған ақпаратты жарнамалар көрсетіледі.</translation>
+-<translation id="286512204874376891">Виртуалды карта қолданыстағы картаны алаяқтықтан қорғауға көмектеседі. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL" /></translation>
++<translation id="286512204874376891">Виртуалдық карта қолданыстағы картаны алаяқтықтан қорғауға көмектеседі. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_ENROLLMENT_LEARN_MORE_LINK_LABEL" /></translation>
+ <translation id="287596039013813457">Ақ ниетті</translation>
+ <translation id="28761159517501904">Фильмдер</translation>
+ <translation id="2876489322757410363">Сыртқы қолданба арқылы төлеу үшін инкогнито режимінен шығасыз. Жалғастыру керек пе?</translation>
+@@ -841,7 +841,7 @@
+ <translation id="3252266817569339921">француз</translation>
+ <translation id="3256863843508922226">Зейнетке шығу және зейнетақы</translation>
+ <translation id="3259648571731540213"><ph name="CREATE_GOOGLE_CALENDAR_EVENT_FOCUSED_FRIENDLY_MATCH_TEXT" />, Google Calendar-да жылдам жаңа іс-шара жасау үшін Tab, содан кейін Enter пернесін басыңыз.</translation>
+-<translation id="3261488570342242926">Виртуалды карта туралы толығырақ</translation>
++<translation id="3261488570342242926">Виртуалдық карта туралы толығырақ</translation>
+ <translation id="3264837738038045344">Chrome параметрлерін басқару түймесі, Chrome параметрлеріне өту үшін Enter пернесін басыңыз.</translation>
+ <translation id="3266793032086590337">Мән (қарама-қайшы)</translation>
+ <translation id="3268451620468152448">Ашық қойындылар</translation>
+@@ -864,7 +864,7 @@
+ <translation id="3320021301628644560">Төлем мекенжайын қосу</translation>
+ <translation id="3324983252691184275">Қызыл күрең</translation>
+ <translation id="3329013043687509092">Қанықтық</translation>
+-<translation id="3333762389743153920">Виртуалды карта үшін жарамсыз</translation>
++<translation id="3333762389743153920">Виртуалдық карта үшін жарамсыз</translation>
+ <translation id="3338095232262050444">Қауіпсіз</translation>
+ <translation id="3339440062908617027">Жүгіру және жүру</translation>
+ <translation id="3339446062576134663">Бұлт (Ash)</translation>
+@@ -875,7 +875,7 @@
+ <translation id="3360103848165129075">Төлем өңдегіш парағы</translation>
+ <translation id="3360313521703038580">Экология және қоршаған орта</translation>
+ <translation id="3362968246557010467">Бұл саясат ескі <ph name="OLD_POLICY" /> саясатынан автоматты түрде көшірілді. Орнына осы саясатты пайдаланғаныңыз жөн.</translation>
+-<translation id="3364869320075768271">Сайт (<ph name="URL" />) виртуалды шындық құрылғысын және деректерді пайдалануға рұқсат сұрайды.</translation>
++<translation id="3364869320075768271">Сайт (<ph name="URL" />) виртуалдық шындық құрылғысын және деректерді пайдалануға рұқсат сұрайды.</translation>
+ <translation id="3366477098757335611">Карталарды көру</translation>
+ <translation id="3369192424181595722">Сағат қатесі</translation>
+ <translation id="3369459162151165748">Автобөлшектер мен керек-жарақтар</translation>
+@@ -922,7 +922,7 @@
+ <translation id="3454555520521576458">Өлшемін өзгертуге болады</translation>
+ <translation id="3456231139987291353">Number-11 (Envelope)</translation>
+ <translation id="3461266716147554923"><ph name="URL" /> беті буферге көшірілген мәтін мен кескіндерді көргісі келеді</translation>
+-<translation id="3461824795358126837">Бөлектеу құралы</translation>
++<translation id="3461824795358126837">Ерекшелеу құралы</translation>
+ <translation id="3462200631372590220">Кеңейтілген мәліметті жасыру</translation>
+ <translation id="346601286295919445">Химия</translation>
+ <translation id="3467763166455606212">Карта иесінің аты қажет</translation>
+@@ -967,7 +967,7 @@
+ <translation id="3603507503523709">Қолданбаны әкімші бөгеген</translation>
+ <translation id="3608932978122581043">Беру бағыты</translation>
+ <translation id="3611317423880285981">Үйге арналған тауарлар</translation>
+-<translation id="3611395257124510155"><ph name="CARD_IDENTIFIER" /> виртуалды картасы</translation>
++<translation id="3611395257124510155"><ph name="CARD_IDENTIFIER" /> виртуалдық картасы</translation>
+ <translation id="3614103345592970299">Өлшемі: 2</translation>
+ <translation id="361438452008624280">"<ph name="LANGUAGE_ID" />" тізім жазбасы: тіл белгісіз немесе оған қолдау көрсетілмейді.</translation>
+ <translation id="3614934205542186002"><ph name="RUN_CHROME_SAFETY_CHECK_FOCUSED_FRIENDLY_MATCH_TEXT" />. Chrome параметрлерінен қауіпсіздік тексерісін іске қосу үшін Tab, сосын Enter пернесін басыңыз.</translation>
+@@ -1174,7 +1174,7 @@
+     <ph name="SITE" /> сайты үшін сұрауыңызды орындай алмайды. Сайттың қауіпсіздік параметрлері мен
+     басқа сипаттарын конфигурациялау үшін сайт операторлары түпнұсқа саясаттарын қолдануы мүмкін.</translation>
+ <translation id="4210602799576081649">Растау кодының мерзімі өткен, жаңа код сұраңыз.</translation>
+-<translation id="421066178035138955">Виртуалды шындық құрылғыларын және деректерді пайдалану</translation>
++<translation id="421066178035138955">Виртуалдық шындық құрылғыларын және деректерді пайдалану</translation>
+ <translation id="4213305257324635756">Анимациялық фильмдер</translation>
+ <translation id="4213500579045346575">Бодибилдинг</translation>
+ <translation id="4214357935346142455">кіру экраны профилі</translation>
+@@ -1206,7 +1206,7 @@
+ <translation id="4250680216510889253">Жоқ</translation>
+ <translation id="4253168017788158739">Ескертпе</translation>
+ <translation id="425582637250725228">Енгізілген өзгертулер сақталмауы мүмкін.</translation>
+-<translation id="425869179292622354">Қауіпсіздік виртуалды картамен күшейтілсін бе?</translation>
++<translation id="425869179292622354">Қауіпсіздік виртуалдық картамен күшейтілсін бе?</translation>
+ <translation id="4258748452823770588">Қолтаңба жарамсыз</translation>
+ <translation id="4261046003697461417">Қорғалған құжаттарға аннотация қосу мүмкін емес.</translation>
+ <translation id="4265872034478892965">Әкімші рұқсат берген</translation>
+@@ -1348,13 +1348,13 @@
+ <translation id="4660567771874403130">Қуат және коммуналдық кәсіпорындар</translation>
+ <translation id="4666114623408286498">Фармацевтика және биотехнология</translation>
+ <translation id="4668929960204016307">,</translation>
+-<translation id="4670064810192446073">Виртуалды шындық</translation>
++<translation id="4670064810192446073">Виртуалдық шындық</translation>
+ <translation id="4673460618347856347">Динозавр ойыны, ойнау</translation>
+ <translation id="467662567472608290">Бұл сервер өзінің <ph name="DOMAIN" /> екенін дәлелдей алмады; оның қауіпсіздік сертификатында қателер бар. Бұл дұрыс конфигурацияланбағаннан немесе зиянды бағдарламаның байланысқа кедергі келтіргенінен болуы мүмкін.</translation>
+ <translation id="4677585247300749148"><ph name="URL" /> арнайы мүмкіндіктер оқиғаларына жауап бергісі келеді</translation>
+ <translation id="467809019005607715">Google Slides</translation>
+ <translation id="4682496302933121474">Бет аударылсын ба?</translation>
+-<translation id="468314109939257734">Виртуалды карта нөмірін көру</translation>
++<translation id="468314109939257734">Виртуалдық карта нөмірін көру</translation>
+ <translation id="4691835149146451662">Architecture-A (Envelope)</translation>
+ <translation id="4692623383562244444">Іздеу жүйелері</translation>
+ <translation id="4701488924964507374"><ph name="SENTENCE1" /> <ph name="SENTENCE2" /></translation>
+@@ -1374,7 +1374,7 @@
+ <translation id="4733082559415072992"><ph name="URL" /> құрылғыңыздың орналасқан жер деректерін пайдаланғысы келеді</translation>
+ <translation id="4736491186715342415">Моторлы көліктер</translation>
+ <translation id="4736825316280949806">Chromium браузерін қайта іске қосу</translation>
+-<translation id="4736934858538408121">Виртуалды карта</translation>
++<translation id="4736934858538408121">Виртуалдық карта</translation>
+ <translation id="473775607612524610">Жаңарту</translation>
+ <translation id="4738601419177586157">Ұсынылатын сұрау: <ph name="TEXT" /></translation>
+ <translation id="4742407542027196863">Құпия сөздерді басқару...</translation>
+@@ -1518,7 +1518,7 @@
+ <translation id="5109892411553231226">Төлеу әдістерін басқару</translation>
+ <translation id="5112422516732747637">A5</translation>
+ <translation id="5114288597538800140">18-науа</translation>
+-<translation id="5114987907971894280">виртуалды шындық</translation>
++<translation id="5114987907971894280">виртуалдық шындық</translation>
+ <translation id="5115216390227830982">European-Edp</translation>
+ <translation id="5115232566827194440">Шектелген басқарылатын қонақ сеансын қайта анықтау</translation>
+ <translation id="5115563688576182185">(64 биттік)</translation>
+@@ -1531,7 +1531,7 @@
+ <translation id="5127934926273826089">Гүлдер</translation>
+ <translation id="5135404736266831032">Мекенжайларды басқару...</translation>
+ <translation id="5136841603454277753">Дұрыс код енгізіңіз.</translation>
+-<translation id="5138014172396933048">Қазір виртуалды карта қолжетімсіз. Банкіңізге хабарласыңыз.</translation>
++<translation id="5138014172396933048">Қазір виртуалдық карта қолжетімсіз. Банкіңізге хабарласыңыз.</translation>
+ <translation id="5138227688689900538">Жию</translation>
+ <translation id="5145883236150621069">Қате коды саясат жауабында көрсетіледі</translation>
+ <translation id="5146995429444047494"><ph name="ORIGIN" /> сайты үшін хабарландырулар бөгелді</translation>
+@@ -1746,13 +1746,13 @@
+ <translation id="5743638595296120378">Көлік сатып алу</translation>
+ <translation id="5743898850056428078">Мотоцикл жарысы</translation>
+ <translation id="5745733273847572235">Орналасқан жеріңізді сұрай алады</translation>
+-<translation id="5745980000221562234">{NUM_CARDS,plural, =1{Осы карта үшін виртуалды нөмірді пайдаланыңыз}other{Картаны таңдаңыз}}</translation>
++<translation id="5745980000221562234">{NUM_CARDS,plural, =1{Осы карта үшін виртуалдық нөмірді пайдаланыңыз}other{Картаны таңдаңыз}}</translation>
+ <translation id="5752552348183096912">Антиперспиранттар, дезодоранттар және денеге арналған спрейлер</translation>
+ <translation id="5754400531489347219">Үй жануарлары мен аңдар</translation>
+ <translation id="5759751709240058861">Камераны пайдалану және жылжыту</translation>
+ <translation id="5763042198335101085">Дұрыс электрондық пошта мекенжайын енгізіңіз</translation>
+ <translation id="5765072501007116331">Жеткізу әдістері мен талаптарын көру үшін мекенжайды таңдаңыз</translation>
+-<translation id="57689295674415555">Виртуалды карта нөмірі толтырылмаған ба?</translation>
++<translation id="57689295674415555">Виртуалдық карта нөмірі толтырылмаған ба?</translation>
+ <translation id="5776313857861697733">Басымдық</translation>
+ <translation id="5781136890105823427">Эксперимент қосылды.</translation>
+ <translation id="578305955206182703">Қою сары</translation>
+@@ -1806,7 +1806,7 @@
+ <translation id="5928444777041341328">Үй және бақша</translation>
+ <translation id="5932224571077948991">Сайтта мазалайтын не жалған ақпаратты жарнамалар көрсетіледі</translation>
+ <translation id="5937560539988385583">Бет аударылды.</translation>
+-<translation id="5938153366081463283">Виртуалды карта қосыңыз.</translation>
++<translation id="5938153366081463283">Виртуалдық карта қосыңыз.</translation>
+ <translation id="5938793338444039872">Troy</translation>
+ <translation id="5946937721014915347"><ph name="SITE_NAME" /> ашылуда…</translation>
+ <translation id="5951495562196540101">Тұтынушының аккаунтымен тіркеу мүмкін емес (лицензия пакеті бар).</translation>
+@@ -1821,7 +1821,7 @@
+ <translation id="5979084224081478209">Құпия сөздерді тексеру</translation>
+ <translation id="5980920751713728343">Index-3x5</translation>
+ <translation id="5984570616552610254">Камераның ылғалдылығы</translation>
+-<translation id="5984712050237025014">Кеңейтілген және виртуалды шындық</translation>
++<translation id="5984712050237025014">Кеңейтілген және виртуалдық шындық</translation>
+ <translation id="598637245381783098">Төлем қолданбасы ашылмайды</translation>
+ <translation id="5989320800837274978">Бекітілген прокси серверлері де, .pac сценарий URL мекенжайы да көрсетілмеген.</translation>
+ <translation id="5992691462791905444">Z тәрізді етіп жиі бүктеу</translation>
+@@ -2057,7 +2057,7 @@
+ <translation id="6687335167692595844">Қаріп өлшемі сұралды</translation>
+ <translation id="6687696737818665306">Актерлік шеберлік және театр</translation>
+ <translation id="6688743156324860098">Жаңарту…</translation>
+-<translation id="6688775486821967877">Қазір виртуалды карта қолжетімсіз. Кейінірек қайталап көріңіз.</translation>
++<translation id="6688775486821967877">Қазір виртуалдық карта қолжетімсіз. Кейінірек қайталап көріңіз.</translation>
+ <translation id="6689249931105087298">Қара нүктені сығуға қатысты</translation>
+ <translation id="6689271823431384964">Сіз аккаунтқа кіргендіктен, Chrome браузері карталарыңызды Google аккаунтына сақтауды ұсынып отыр. Мұны "Параметрлер" бөлімінен өзгертуіңізге болады. Карта иесінің аты-жөнін аккаунтыңыздан алынады.</translation>
+ <translation id="6694681292321232194"><ph name="FIND_MY_PHONE_FOCUSED_FRIENDLY_MATCH_TEXT" />. Google аккаунтында құрылғыңызды табу үшін Tab, сосын Enter пернесін басыңыз.</translation>
+@@ -2105,7 +2105,7 @@
+ <translation id="6831043979455480757">Аудару</translation>
+ <translation id="6833752742582340615">Қауіпсіз әрі жылдамырақ төлеу үшін карта мен төлем туралы ақпаратты Google аккаунтына сақтаңыз</translation>
+ <translation id="6839929833149231406">Аудан</translation>
+-<translation id="6846340164947227603">Виртуалды карта нөмірін пайдалану...</translation>
++<translation id="6846340164947227603">Виртуалдық карта нөмірін пайдалану...</translation>
+ <translation id="6852204201400771460">Қолданба қайта жүктелсін бе?</translation>
+ <translation id="686485648936420384">Тұтыну ресурстары</translation>
+ <translation id="6865412394715372076">Бұл картаны дәл қазір растау мүмкін емес</translation>
+@@ -2119,7 +2119,7 @@
+ <translation id="6888584790432772780">Chrome бұл режимде беттің оқылуын жеңілдетті. Chrome браузерінде бастапқы бет қорғалмаған байланыс арқылы алынды.</translation>
+ <translation id="6890443033788248019">Локацияны пайдалануға рұқсат берілсін бе?</translation>
+ <translation id="6891596781022320156">Саясат деңгейіне қолдау көрсетілмеген.</translation>
+-<translation id="6895143722905299846">Виртуалды нөмір:</translation>
++<translation id="6895143722905299846">Виртуалдық нөмір:</translation>
+ <translation id="6895330447102777224">Картаңыз расталды</translation>
+ <translation id="6897140037006041989">Пайдаланушы агенті</translation>
+ <translation id="6898699227549475383">Ұйым (O)</translation>
+@@ -2278,7 +2278,7 @@
+ <translation id="7334320624316649418">&amp;Қайта ретке келтіруді қайталау</translation>
+ <translation id="7335157162773372339">Камераңызды қолдануға рұқсат сұрай алады</translation>
+ <translation id="7337248890521463931">Жолдарды көбірек көрсету</translation>
+-<translation id="7337418456231055214">Виртуалды карта нөмірі толтырылмаған ба? Көшірілетін карта мәліметтерін басыңыз. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_MANUAL_FALLBACK_BUBBLE_LEARN_MORE_LINK_LABEL" /></translation>
++<translation id="7337418456231055214">Виртуалдық карта нөмірі толтырылмаған ба? Көшірілетін карта мәліметтерін басыңыз. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_MANUAL_FALLBACK_BUBBLE_LEARN_MORE_LINK_LABEL" /></translation>
+ <translation id="7337706099755338005">Сіздің платформаңызда қолжетімді емес.</translation>
+ <translation id="733923710415886693">Сервер сертификаты Сертификат айқындығы саясатымен ашылмады.</translation>
+ <translation id="7341357280245177602">Жүрілген көліктер</translation>
+@@ -2535,7 +2535,7 @@
+ <translation id="7977894662897852582">Edp</translation>
+ <translation id="7981129096182302364">Биге арналған және электрондық музыка</translation>
+ <translation id="7981260203882740562">Келесімен байланыстырылды:</translation>
+-<translation id="798134797138789862">Виртуалды шындық құрылғыларын және деректерді пайдалануға рұқсат сұрай алады.</translation>
++<translation id="798134797138789862">Виртуалдық шындық құрылғыларын және деректерді пайдалануға рұқсат сұрай алады.</translation>
+ <translation id="7983008347525536475">Кроссоверлер</translation>
+ <translation id="7984945080620862648">Қазір <ph name="SITE" /> сайтына кіру мүмкін емес, себебі веб-сайт Chrome өңдей алмайтын шифрланған есептік деректерді жіберді. Желі қателері мен шабуылдары әдетте уақытша болғандықтан, бұл бет кейінірек жұмыс істеуі мүмкін.</translation>
+ <translation id="7986319120639858961"><ph name="CARD_TITLE" /> <ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
+@@ -2666,7 +2666,7 @@
+ <translation id="831997045666694187">Кеш</translation>
+ <translation id="8321476692217554900">хабарландырулар</translation>
+ <translation id="8332188693563227489"><ph name="HOST_NAME" /> сайтына кіруге тыйым салынған</translation>
+-<translation id="833262891116910667">Бөлектеу</translation>
++<translation id="833262891116910667">Ерекшелеу</translation>
+ <translation id="8339163506404995330"><ph name="LANGUAGE" /> тіліндегі беттер аударылмайды</translation>
+ <translation id="8340095855084055290"><ph name="EXPIRATION_MONTH" />/<ph name="EXPIRATION_YEAR" /></translation>
+ <translation id="834457929814110454">Қауіп-қатерлерді түсінсеңіз, зиянды бағдарламалар жойылмай жатып, <ph name="BEGIN_LINK" />осы сайтқа кіруіңізге<ph name="END_LINK" /> болады.</translation>
+@@ -2740,7 +2740,7 @@
+ <translation id="8564985650692024650">Chromium басқа сайттарда пайдаланылған <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> құпия сөзін қайта орнатуды ұсынады.</translation>
+ <translation id="8574899947864779331">Карталарыңызды жылдам растау үшін Touch ID пайдаланыңыз.</translation>
+ <translation id="8576310925653847813">Үй кинотеатры жүйелері</translation>
+-<translation id="8577348305244205642">Виртуалды карта қолжетімсіз</translation>
++<translation id="8577348305244205642">Виртуалдық карта қолжетімсіз</translation>
+ <translation id="858637041960032120">Телефон нөмірін қосу</translation>
+ <translation id="8589998999637048520">Ең жақсы сапа</translation>
+ <translation id="8600271352425265729">Тек осы жолы</translation>
+@@ -2817,7 +2817,7 @@
+ <translation id="883848425547221593">Басқа бетбелгілер</translation>
+ <translation id="884264119367021077">Жөнелту мекенжайы</translation>
+ <translation id="884923133447025588">Қайтарып алу механизмі табылмады.</translation>
+-<translation id="8849262850971482943">Қауіпсіздікті арттыру үшін виртуалды картаны пайдаланыңыз.</translation>
++<translation id="8849262850971482943">Қауіпсіздікті арттыру үшін виртуалдық картаны пайдаланыңыз.</translation>
+ <translation id="8852567725116633427">Микроавтомобильдер және екі есікті шағын автомобильдер</translation>
+ <translation id="885306012106043620">Теннис</translation>
+ <translation id="8855742650226305367">Би</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
+index b5b5bbea4bd2..f35c4654216a 100644
+--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
++++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
+@@ -46,7 +46,7 @@
+ <translation id="3567399274263440288">‏برای اینکه بیشترین بهره را از Chromium ببرید، با «حساب Google» به سیستم Chromium وارد شوید.</translation>
+ <translation id="3639997914391704523">‏Chromium زمانی می‌تواند گذرواژه‌هایتان را بررسی کند که با «حساب Google» خود به سیستم وارد شوید.</translation>
+ <translation id="3650632991272923014">‏<ph name="USER_EMAIL1" /> از Chromium استفاده می‌کرده است و نشانک‌ها، گذرواژه‌ها، و تنظیمات دیگری در این دستگاه ذخیره کرده است.</translation>
+-<translation id="3805899903892079518">‏Chromium به عکس‌ها یا ویدیوهای شما دسترسی ندارد. با رفتن به تنظیمات iOS &gt; حریم‌خصوصی &gt; عکس‌ها دسترسی را فعال کنید.</translation>
++<translation id="3805899903892079518">‏Chromium به عکس‌ها یا ویدیوهای شما دسترسی ندارد. با رفتن به تنظیمات iOS &gt; حریم خصوصی &gt; عکس‌ها دسترسی را فعال کنید.</translation>
+ <translation id="4043291146360695975">گذرواژه‌ها فقط در «مدیر گذرواژه» در این دستگاه ذخیره می‌شوند.</translation>
+ <translation id="4099085513035183040">‏در «Chromium بتا» پشتیبانی نمی‌شود</translation>
+ <translation id="4555020257205549924">‏وقتی این قابلیت روشن است، Chromium ترجمه صفحات نوشته‌شده به سایر زبان‌ها را با استفاده از ترجمه Google پیشنهاد می‌دهد. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
+@@ -99,7 +99,7 @@
+ <translation id="7395825497086981028">گذرواژه‌تان در «مدیر گذرواژه» برای <ph name="EMAIL" /> ذخیره خواهد شد.</translation>
+ <translation id="7400689562045506105">‏استفاده از Chromium در همه‌جا</translation>
+ <translation id="766897673682622022">‏گذرواژه‌تان به‌دلیل نقض داده لو رفته است. Chromium توصیه می‌کند همین‌حالا گذرواژه را تغییر دهید.</translation>
+-<translation id="7674213385180944843">‏Settings (تنظیمات) &gt; Privacy (حریم‌خصوصی) &gt; Camera (دوربین) &gt; Chromium را باز کنید و دوربین را روشن کنید.</translation>
++<translation id="7674213385180944843">‏Settings (تنظیمات) &gt; Privacy (حریم خصوصی) &gt; Camera (دوربین) &gt; Chromium را باز کنید و دوربین را روشن کنید.</translation>
+ <translation id="7746854981345936341">‏نکته Chromium. بعضی از دکمه‌ها مثل Back (برگشت)، Forward (به جلو) و Search (جستجو) اکنون در پایین صفحه هستند.</translation>
+ <translation id="7763454117143368771">‏از Chromium به‌عنوان مرورگر پیش‌فرض استفاده کنید تا دربرابر سایت‌های خطرناک از شما محافظت شود و امنیت گذرواژه‌هایتان حفظ شود</translation>
+ <translation id="786327964234957808">‏هم‌اکنون درحال تغییر حساب‌های همگام‌سازی از <ph name="USER_EMAIL1" /> به <ph name="USER_EMAIL2" /> هستید. داده‌های موجود Chromium شما توسط <ph name="DOMAIN" /> مدیریت می‌شوند. با این کار، داده‌هایتان از این دستگاه حذف می‌شود اما همچنان در <ph name="USER_EMAIL1" /> باقی می‌ماند.</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
+index 94c7e6b36fb2..f1a9c4e962d2 100644
+--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
++++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
+@@ -46,7 +46,7 @@
+ <translation id="384394811301901750">‏Google Chrome اکنون نمی‌تواند از دوربین استفاده کند</translation>
+ <translation id="3980220367029651214">‏هم‌اکنون حساب‌های همگام‌سازی را از <ph name="USER_EMAIL1" /> به <ph name="USER_EMAIL2" /> تغییر می‌دهید. داده‌های موجود Chrome شما توسط <ph name="DOMAIN" /> مدیریت می‌شود. با این کار، داده‌هایتان از این دستگاه حذف می‌شود اما همچنان در <ph name="USER_EMAIL1" /> باقی می‌ماند.</translation>
+ <translation id="3984746313391923992">‏سازمانتان از شما می‌خواهد خارج از سیستم Chrome باقی بمانید.</translation>
+-<translation id="3988789688219830639">‏Google Chrome به عکس‌ها یا ویدیوهای شما دسترسی ندارد. با رفتن به تنظیمات iOS &gt; حریم‌خصوصی &gt; عکس‌ها دسترسی را فعال کنید.</translation>
++<translation id="3988789688219830639">‏Google Chrome به عکس‌ها یا ویدیوهای شما دسترسی ندارد. با رفتن به تنظیمات iOS &gt; حریم خصوصی &gt; عکس‌ها دسترسی را فعال کنید.</translation>
+ <translation id="4099578267706723511">‏‫با ارسال آمار کاربرد و گزارش‌های خرابی به Google، به بهتر شدن Chrome کمک کنید.</translation>
+ <translation id="417201473131094001">‏در Chrome Canary پشتیبانی نمی‌شود</translation>
+ <translation id="4214277427269650960">‏به سیستم این سایت و Chrome وارد شوید. می‌توانید بعداً همگام‌سازی را روشن کنید.</translation>
+@@ -64,7 +64,7 @@
+ <translation id="5162467219239570114">‏نسخه Chrome قدیمی است. اگر به‌روزرسانی‌ای در <ph name="BEGIN_LINK" />فروشگاه برنامه<ph name="END_LINK" /> دردسترس نیست، احتمالاً دستگاهتان نسخه‌های جدید Chrome را دیگر پشتیبانی نمی‌کند.</translation>
+ <translation id="5389212809648216794">‏Google Chrome نمی‌تواند از دوربین استفاده کند زیرا برنامه دیگری از آن استفاده می‌کند</translation>
+ <translation id="5460571915754665838">‏۴. Chrome را انتخاب کنید</translation>
+-<translation id="5639704535586432836">‏Settings (تنظیمات) &gt; Privacy (حریم‌خصوصی) &gt; Camera (دوربین) &gt; Google Chrome را باز کنید و دوربین را روشن کنید.</translation>
++<translation id="5639704535586432836">‏Settings (تنظیمات) &gt; Privacy (حریم خصوصی) &gt; Camera (دوربین) &gt; Google Chrome را باز کنید و دوربین را روشن کنید.</translation>
+ <translation id="5642200033778930880">‏Google Chrome نمی‌تواند از دوربین درحالت «نمای تقسیم‌شده» استفاده کند</translation>
+ <translation id="5690427481109656848">Google LLC</translation>
+ <translation id="571296537125272375">‏آفلاین هستید، Chrome نمی‌تواند به‌روزرسانی‌ها را بررسی کند.</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+index bbc039d98ae2..fcf439987a59 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+@@ -501,7 +501,7 @@
+ <translation id="5300589172476337783">نمایش</translation>
+ <translation id="5317780077021120954">ذخیره</translation>
+ <translation id="5339316356165661760">روشن کردن همگام‌سازی</translation>
+-<translation id="5360976571138293719">‏برای تنظیمات بیشتر مرتبط با حریم‌خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
++<translation id="5360976571138293719">‏برای تنظیمات بیشتر مرتبط با حریم خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
+ <translation id="5386314158584363703">سایت‌هایی را که دنبال کرده‌اید اینجا خواهید دید</translation>
+ <translation id="5388358297987318779">بازکردن تصویر</translation>
+ <translation id="5407969256130905701">صرف‌نظر کردن از تغییرات</translation>
+@@ -534,7 +534,7 @@ Handoff باید در بخش عمومی تنظیمات نیز فعال شود و
+ <translation id="5701270923492462699">دسترسی به دوربین مجاز است</translation>
+ <translation id="5704908597376970822">ورود به سیستم ممکن نیست.</translation>
+ <translation id="5706552126692816153">آخرین فعالیت: ۱ روز قبل</translation>
+-<translation id="5711039611392265845">‏برای تنظیمات بیشتری که با حریم‌خصوصی، امنیت و جمع‌آوری داده مرتبط هستند، <ph name="BEGIN_LINK" />همگام‌سازی و سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
++<translation id="5711039611392265845">‏برای تنظیمات بیشتری که با حریم خصوصی، امنیت و جمع‌آوری داده مرتبط هستند، <ph name="BEGIN_LINK" />همگام‌سازی و سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
+ <translation id="5724941645893276623">برای مرور خصوصی وب، برگه جدیدی اضافه کنید</translation>
+ <translation id="5728700505257787410">متأسفیم، مشکلی در ورود به حساب شما وجود داشت.</translation>
+ <translation id="5731784586962650619">گذرواژه‌ها در برنامه‌های دیگر</translation>
+@@ -644,7 +644,7 @@ Handoff باید در بخش عمومی تنظیمات نیز فعال شود و
+ <translation id="6445981559479772097">پیام ارسال شد.</translation>
+ <translation id="6447842834002726250">کوکی‌ها</translation>
+ <translation id="6453018583485750254">بررسی هرگز انجام نشده است.</translation>
+-<translation id="6459307836338400162">‏برای تنظیمات بیشتر مربوط به حریم‌خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />همگام‌سازی<ph name="END_LINK" /> و <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
++<translation id="6459307836338400162">‏برای تنظیمات بیشتر مربوط به حریم خصوصی، امنیت، و جمع‌آوری داده، <ph name="BEGIN_LINK" />همگام‌سازی<ph name="END_LINK" /> و <ph name="BEGIN_LINK" />سرویس‌های Google<ph name="END_LINK" /> را ببینید.</translation>
+ <translation id="6464071786529933911">در برگه ناشناس جدید</translation>
+ <translation id="6464397691496239022">سایت‌ها می‌توانند از کوکی‌ها برای بهبود تجربه مرورتان استفاده کنند، مثلاً برای اینکه شما را درحالت واردشده به سیستم نگه دارند یا موارد موجود در سبد خریدتان را به‌خاطر بسپارند.
+ 
+@@ -810,7 +810,7 @@ Handoff باید در بخش عمومی تنظیمات نیز فعال شود و
+ <translation id="7884694604461143138">سابقه جستجو (<ph name="COUNT" /> مورد پیدا شد)</translation>
+ <translation id="7887198238286927132">‏برای محافظت از حریم‌خصوصی‌تان، Chrome از ویژگی تکمیل خودکار برای این فیلد استفاده نخواهد کرد.</translation>
+ <translation id="7911190106180361398">سازمانتان به شما اجازه نمی‌دهد همه چیز را همگام‌سازی کنید.</translation>
+-<translation id="7920949005883349320">حریم‌خصوصی و امنیت</translation>
++<translation id="7920949005883349320">حریم خصوصی و امنیت</translation>
+ <translation id="7930998711684428189">اگر گذرواژه‌ها به‌دلیل نقض داده لو رفته باشد، به شما هشدار می‌دهد.</translation>
+ <translation id="7938254975914653459">FaceTime</translation>
+ <translation id="7939128259257418052">صادر کردن گذرواژه‌ها…</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_kk.xtb b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+index ca5e3576f7da..ac82256d6e3e 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_kk.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_kk.xtb
+@@ -151,7 +151,7 @@
+ <translation id="2268044343513325586">Нақтылау</translation>
+ <translation id="2271351792809375263">Chrome-да сақталған құпия сөздерді құрылғыңыздағы басқа қолданбаларда пайдаланыңыз.</translation>
+ <translation id="2273327106802955778">"Тағы" мәзірі</translation>
+-<translation id="2286505070150039482">Бөлектелген мәтін</translation>
++<translation id="2286505070150039482">Ерекшеленген мәтін</translation>
+ <translation id="2299218006564889602">Құрылғыдағы құпия сөздер Google Құпия сөздер реттегішіне сақтамас бұрын шифрланады.</translation>
+ <translation id="2302742851632557585">Құпия сөзді веб-сайтта өзгерту</translation>
+ <translation id="2316709634732130529">Ұсынылған құпия сөзді қолдану</translation>
+@@ -445,7 +445,7 @@
+ <translation id="481968316161811770">Cookie файлдары, сайт деректері</translation>
+ <translation id="4824497107140370669">{count,plural, =0{{domain}}=1{{domain} және тағы 1}other{{domain} және тағы {count}}}</translation>
+ <translation id="4826218269716039351">Үшінші тарапты бөгеу</translation>
+-<translation id="4826726074642088322">Бөлектелген мәтінді бөлісу</translation>
++<translation id="4826726074642088322">Ерекшеленген мәтінді бөлісу</translation>
+ <translation id="48274138579728272">Оқылды деп белгілеу</translation>
+ <translation id="4833686396768033263">Соңғы қойындылар қолжетімді емес</translation>
+ <translation id="4833786495304741580">Қолданыс статистикасын және жаңылыс туралы есептерді Google-ға автоматты түрде жібереді.</translation>
+@@ -567,7 +567,7 @@ Handoff функциясы параметрлердің жалпы бөлімі
+ <translation id="5948291296578561264">Бұл суреттерді жинаққа сақтауға мүмкіндік береді.</translation>
+ <translation id="5955891643922670672">Офлайн нұсқаны көру</translation>
+ <translation id="5957613098218939406">Қосымша опциялар</translation>
+-<translation id="5963939892571022323">Бөлектелген мәтіннің сілтемесін жасау мүмкін емес.</translation>
++<translation id="5963939892571022323">Ерекшеленген мәтіннің сілтемесін жасау мүмкін емес.</translation>
+ <translation id="5965679971710331625">Жүйеге кірдіңіз</translation>
+ <translation id="5979837087407522202">Құпия сөздерді іздеу</translation>
+ <translation id="5982717868370722439">Бар деректерді <ph name="USER_EMAIL" /> электрондық поштасына енгізіңіз.</translation>
+diff --git a/ui/accessibility/extensions/strings/accessibility_extensions_strings_kk.xtb b/ui/accessibility/extensions/strings/accessibility_extensions_strings_kk.xtb
+index 95b31fe8b7fa..251bd32b3d84 100644
+--- a/ui/accessibility/extensions/strings/accessibility_extensions_strings_kk.xtb
++++ b/ui/accessibility/extensions/strings/accessibility_extensions_strings_kk.xtb
+@@ -27,7 +27,7 @@
+ <translation id="3812541808639806898">Image Alt Text Viewer</translation>
+ <translation id="381767806621926835">Ұзын сипаттамасын көру үшін "longdesc" немесе "aria-describedat" төлсипаты бар кез келген нәрседе оң жақ түймені басыңыз.</translation>
+ <translation id="4023902424053835668">Көрсеткі пернелерімен веб-беттер мәтінін шолу.</translation>
+-<translation id="4388820049312272371">Курсор орнын жылдам жарқыл арқылы бөлектеу.</translation>
++<translation id="4388820049312272371">Курсор орнын жылдам жарқыл арқылы ерекшелеу.</translation>
+ <translation id="4394049700291259645">Өшіру</translation>
+ <translation id="4769065380738716500">Кескіндер олардың "Alt" мәтіндеріне ауыстырылған.</translation>
+ <translation id="4896660567607030658">Әсерлерсіз, курсорды ғана көрсету.</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+index c3396d18770b..bafb0d93069f 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_kk.xtb
+@@ -548,9 +548,9 @@
+ <translation id="5649768706273821470">Тыңдау</translation>
+ <translation id="5669691691057771421">Жаңа PIN кодын енгізіңіз</translation>
+ <translation id="5678784840044122290">Linux қолданбасы терминалда қолжетімді болады және Launcher қолданбасында белгіше көрсетіледі.</translation>
+-<translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Мұрағаттан немесе виртуалды дискіден ажырату мүмкін емес<ph name="END_BOLD" />
++<translation id="5686799162999241776"><ph name="BEGIN_BOLD" />Мұрағаттан немесе виртуалдық дискіден ажырату мүмкін емес<ph name="END_BOLD" />
+    <ph name="LINE_BREAKS" />
+-   Мұрағаттағы немесе виртуалды дискідегі барлық файлдарды жауып, әрекетті қайталаңыз.</translation>
++   Мұрағаттағы немесе виртуалдық дискідегі барлық файлдарды жауып, әрекетті қайталаңыз.</translation>
+ <translation id="5691596662111998220"><ph name="FILE_NAME" /> деген файл енді жоқ.</translation>
+ <translation id="5698411045597658393"><ph name="NETWORK_NAME" />, Құлыпты ашу</translation>
+ <translation id="5700087501958648444">Аудиофайл ақпараты</translation>
+diff --git a/ui/strings/translations/ax_strings_kk.xtb b/ui/strings/translations/ax_strings_kk.xtb
+index fab2d7740041..2768a0d81a0f 100644
+--- a/ui/strings/translations/ax_strings_kk.xtb
++++ b/ui/strings/translations/ax_strings_kk.xtb
+@@ -75,7 +75,7 @@
+ <translation id="546643433018805598">төменгі индекс</translation>
+ <translation id="5476505524087279545">құсбелгіні алу</translation>
+ <translation id="5516424706154626233">күн таңдағышы</translation>
+-<translation id="5608153257855394627">бөлектеу</translation>
++<translation id="5608153257855394627">ерекшелеу</translation>
+ <translation id="561939826962581046">time</translation>
+ <translation id="5631759159893697722">аннотация</translation>
+ <translation id="5643186887447432888">түйме</translation>
+@@ -109,7 +109,7 @@
+ <translation id="7139483182332611405">алғысөз</translation>
+ <translation id="7198226213493847604">мәзірді ашатын қалқымалы түйме</translation>
+ <translation id="7214187073215825913">мазмұн туралы ақпарат</translation>
+-<translation id="7238347055216017155">бөлектеу</translation>
++<translation id="7238347055216017155">ерекшелеу</translation>
+ <translation id="727747134524199931">баған тақырыбы</translation>
+ <translation id="7353453495576941748">алғыс сөз</translation>
+ <translation id="7405738980073107433">түсіндірмелер</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0054-Incrementing-VERSION-to-102.0.5005.146.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0054-Incrementing-VERSION-to-102.0.5005.146.patch
new file mode 100644
index 000000000000..af60b5376895
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0054-Incrementing-VERSION-to-102.0.5005.146.patch
@@ -0,0 +1,28 @@
+From f200497260f693b91282be927a5f66454153e1ee Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Fri, 1 Jul 2022 01:00:32 +0000
+Subject: [PATCH 54/59] Incrementing VERSION to 102.0.5005.146
+
+Change-Id: I2d9fd202320097c93f848856867637a3c12c036d
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3739526
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1213}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 48b95fdd910e..77a1b84df510 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=145
++PATCH=146
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0055-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0055-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..fdce2b459243
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0055-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,106 @@
+From a27b8ff1869802e8d34afae11ff52e0271077db4 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Fri, 1 Jul 2022 14:09:34 +0000
+Subject: [PATCH 55/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: I57bfdaabcbb5987d43fa117e818a0e9669877525
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3738937
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1214}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/app/resources/generated_resources_es-419.xtb | 2 +-
+ chrome/app/resources/generated_resources_fa.xtb     | 4 ++--
+ components/strings/components_strings_fa.xtb        | 4 ++--
+ remoting/resources/remoting_strings_fa.xtb          | 2 +-
+ ui/chromeos/translations/ui_chromeos_strings_fa.xtb | 2 +-
+ 5 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
+index dd4a406234dd..ee73f2dda753 100644
+--- a/chrome/app/resources/generated_resources_es-419.xtb
++++ b/chrome/app/resources/generated_resources_es-419.xtb
+@@ -8321,7 +8321,7 @@ Mantén el archivo de clave en un lugar seguro. Debes crear las nuevas versiones
+ <translation id="9199503643457729322">Haz clic para salir de la Guía de privacidad.</translation>
+ <translation id="9200339982498053969"><ph name="ORIGIN" /> podrá editar los archivos de la carpeta <ph name="FOLDERNAME" /></translation>
+ <translation id="920045321358709304">Buscar en <ph name="SEARCH_ENGINE" /></translation>
+-<translation id="9201023452444595544">Se borrarán los datos sin conexión</translation>
++<translation id="9201023452444595544">Se borrarán los datos sin conexión.</translation>
+ <translation id="9201117361710210082">Visto anteriormente</translation>
+ <translation id="9201220332032049474">Opciones de bloqueo de pantalla</translation>
+ <translation id="9201842707396338580">Se produjo un error. Comunícate con el administrador o el propietario de tu dispositivo. Código de error: <ph name="ERROR_CODE" />.</translation>
+diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
+index 262eccfeac75..79d3b99cca6e 100644
+--- a/chrome/app/resources/generated_resources_fa.xtb
++++ b/chrome/app/resources/generated_resources_fa.xtb
+@@ -9,7 +9,7 @@
+ <translation id="1005333234656240382">‏اشکال‌زدایی ADB (پل اشکال‌زدایی Android) فعال شود؟</translation>
+ <translation id="1006873397406093306">این افزونه می‌تواند داده‌هایتان را در سایت‌ها بخواند و تغییر دهد. می‌توانید سایت‌هایی را که این افزونه به آن‌ها دسترسی دارد کنترل کنید.</translation>
+ <translation id="1008186147501209563">صادرکردن نشانک‌ها</translation>
+-<translation id="1008557486741366299">اکنون نه</translation>
++<translation id="1008557486741366299">حالا نه</translation>
+ <translation id="1009476156254802388">مکان <ph name="WEB_DRIVE" /></translation>
+ <translation id="1010498023906173788">این برگه به درگاه سریال متصل است.</translation>
+ <translation id="1010833424573920260">{NUM_PAGES,plural, =1{صفحه غیرپاسخگو}one{صفحه‌های غیرپاسخگو}other{صفحه‌های غیرپاسخگو}}</translation>
+@@ -2601,7 +2601,7 @@
+ <translation id="3476303763173086583">‏داده‌های استفاده و عیب‌یابی را ارسال کنید. با ارسال خودکار داده‌های عیب‌یابی و داده‌های استفاده از دستگاه و برنامه به Google به بهبود تجربه Android خود کمک کنید. این داده‌ها برای شناسایی فرزندتان استفاده نخواهند شد و به بهبود پایداری سیستم و برنامه و موارد دیگر کمک خواهد کرد. بعضی داده‌های انبوهشی نیز به برنامه‌ها و شرکای Google (مانند برنامه‌نویس‌های Android) کمک می‌کند. این <ph name="BEGIN_LINK1" />تنظیم<ph name="END_LINK1" /> توسط مالک اعمال می‌شود. ممکن است مالک انتخاب کند داده‌های استفاده و عیب‌یابی این دستگاه به Google ارسال شود. اگر تنظیم «فعالیت وب و برنامه» تکمیلی برای فرزندتان روشن باشد، ممکن است این داده‌ها در حساب Google او ذخیره شود. <ph name="BEGIN_LINK2" />بیشتر بدانید<ph name="END_LINK2" /></translation>
+ <translation id="347670947055184738">وای! سیستم نتوانست خط‌مشی را برای دستگاهتان واکشی کند.</translation>
+ <translation id="347785443197175480">همچنان دسترسی به دوربین و میکروفون شما، توسط <ph name="HOST" /> مجاز باشد</translation>
+-<translation id="3479552764303398839">اکنون نه</translation>
++<translation id="3479552764303398839">حالا نه</translation>
+ <translation id="3479685872808224578">سرور چاپ شناسایی نشد. لطفاً نشانی را بررسی و دوباره امتحان کنید.</translation>
+ <translation id="3480612136143976912">اندازه و سبک زیرنویس ناشنوایان را برای «زیرنویس ناشنوایان زنده» سفارشی می‌کند. برخی از برنامه‌ها و سایت‌ها نیز از این تنظیم استفاده خواهند کرد.</translation>
+ <translation id="3480827850068960424"><ph name="NUM" /> برگه پیدا شد</translation>
+diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
+index e7cb75762bb5..c4333102aae1 100644
+--- a/components/strings/components_strings_fa.xtb
++++ b/components/strings/components_strings_fa.xtb
+@@ -2,7 +2,7 @@
+ <!DOCTYPE translationbundle>
+ <translationbundle lang="fa">
+ <translation id="1003222766972176318">یادآوری: پیشنهاد ذخیره‌شده دردسترس است</translation>
+-<translation id="1008557486741366299">اکنون نه</translation>
++<translation id="1008557486741366299">حالا نه</translation>
+ <translation id="100957008357583611">از مکان شما استفاده شود؟</translation>
+ <translation id="1010200102790553230">بار کردن صفحه در فرصتی دیگر</translation>
+ <translation id="1011206368273183593">درحال آماده‌سازی فایل‌ها</translation>
+@@ -930,7 +930,7 @@
+ <translation id="3468054117417088249">‏<ph name="TAB_SWITCH_SUFFIX" />، اکنون باز است، برای جابه‌جا شدن به برگه باز، ابتدا دکمه Tab سپس Enter را فشار دهید</translation>
+ <translation id="3470563864795286535"><ph name="CLOSE_INCOGNITO_WINDOWS_FOCUSED_FRIENDLY_MATCH_TEXT" />؛ برای بستن همه پنجره‌های ناشناسی که درحال‌حاضر باز هستند، کلید «جهش» و سپس «ورود» را فشار دهید</translation>
+ <translation id="3477679029130949506">فهرست فیلم و ساعات کار سینما</translation>
+-<translation id="3479552764303398839">اکنون نه</translation>
++<translation id="3479552764303398839">حالا نه</translation>
+ <translation id="3484560055331845446">‏ممکن است دسترسی به حساب Google را از دست بدهید. Chrome توصیه می‌کند اکنون گذرواژه‌تان را تغییر دهید. از شما خواسته می‌شود به سیستم وارد شوید.</translation>
+ <translation id="3487845404393360112">سینی ۴</translation>
+ <translation id="3495081129428749620">یافتن در صفحه
+diff --git a/remoting/resources/remoting_strings_fa.xtb b/remoting/resources/remoting_strings_fa.xtb
+index 50c5d11d21b9..746856700b26 100644
+--- a/remoting/resources/remoting_strings_fa.xtb
++++ b/remoting/resources/remoting_strings_fa.xtb
+@@ -2,7 +2,7 @@
+ <!DOCTYPE translationbundle>
+ <translationbundle lang="fa">
+ <translation id="1002108253973310084">نسخه ناسازگار پروتکل شناسایی شد. لطفاً مطمئن شوید جدیدترین نسخه نرم‌افزار روی هر دو رایانه نصب شده است و دوباره امتحان کنید.</translation>
+-<translation id="1008557486741366299">اکنون نه</translation>
++<translation id="1008557486741366299">حالا نه</translation>
+ <translation id="1201402288615127009">بعدی</translation>
+ <translation id="1297009705180977556">خطا در اتصال به <ph name="HOSTNAME" /></translation>
+ <translation id="1450760146488584666">شئ درخواست شده وجود ندارد.</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+index 2d8ce99bd8f5..859bf5d213ba 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_fa.xtb
+@@ -287,7 +287,7 @@
+ <translation id="3466147780910026086">در حال اسکن دستگاه رسانه شما...</translation>
+ <translation id="3468522857997926824">‏<ph name="FILE_COUNT" /> عکس در <ph name="BEGIN_LINK" />Google Drive<ph name="END_LINK" /> پشتیبان گرفته شدند</translation>
+ <translation id="3475447146579922140">‏صفحه‌گسترده Google</translation>
+-<translation id="3479552764303398839">اکنون نه</translation>
++<translation id="3479552764303398839">حالا نه</translation>
+ <translation id="3486821258960016770">مغولی</translation>
+ <translation id="3495304270784461826"><ph name="COUNT" /> خطا.</translation>
+ <translation id="3509680540198371098">شبکه <ph name="NETWORK_INDEX" /> از <ph name="NETWORK_COUNT" />، <ph name="NETWORK_NAME" />، <ph name="SECURITY_STATUS" />، <ph name="CONNECTION_STATUS" />، قدرت سیگنال <ph name="SIGNAL_STRENGTH" />٪، جزئیات</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0056-Incrementing-VERSION-to-102.0.5005.147.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0056-Incrementing-VERSION-to-102.0.5005.147.patch
new file mode 100644
index 000000000000..2ef3e3c38af2
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0056-Incrementing-VERSION-to-102.0.5005.147.patch
@@ -0,0 +1,28 @@
+From 391fb1a5e453329543f2f332e5974766cd5014a3 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sat, 2 Jul 2022 01:01:07 +0000
+Subject: [PATCH 56/59] Incrementing VERSION to 102.0.5005.147
+
+Change-Id: I14fb873b1b7c28ba9671cadd20eba07df8273899
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3741368
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1215}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 77a1b84df510..1e243e1ad602 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=146
++PATCH=147
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0057-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0057-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
new file mode 100644
index 000000000000..e98e8e72aeb7
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0057-Updating-XTBs-based-on-.GRDs-from-branch-5005.patch
@@ -0,0 +1,420 @@
+From 635e11ea23feab7857e247cfc97bf6c31d5b3232 Mon Sep 17 00:00:00 2001
+From: Ben Mason <benmason@google.com>
+Date: Sat, 2 Jul 2022 14:46:02 +0000
+Subject: [PATCH 57/59] Updating XTBs based on .GRDs from branch 5005
+
+Change-Id: Iae0d7ba2d623eb48253bf9f4c0ae7256374d5f6f
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3738372
+Auto-Submit: Ben Mason <benmason@chromium.org>
+Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1216}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ ash/strings/ash_strings_mn.xtb                |  4 +--
+ chrome/app/resources/chromium_strings_te.xtb  |  2 +-
+ .../app/resources/generated_resources_ky.xtb  |  2 +-
+ .../app/resources/generated_resources_mn.xtb  |  2 +-
+ .../app/resources/generated_resources_te.xtb  | 16 +++++------
+ .../resources/generated_resources_zh-CN.xtb   |  2 +-
+ .../resources/google_chrome_strings_te.xtb    |  2 +-
+ .../strings/accessibility_strings_ml.xtb      |  8 +++---
+ components/strings/components_strings_te.xtb  | 28 +++++++++----------
+ .../app/strings/resources/ios_strings_ml.xtb  |  6 ++--
+ .../strings/resources/ios_strings_zh-CN.xtb   |  2 +-
+ .../translations/ui_chromeos_strings_te.xtb   |  2 +-
+ 12 files changed, 38 insertions(+), 38 deletions(-)
+
+diff --git a/ash/strings/ash_strings_mn.xtb b/ash/strings/ash_strings_mn.xtb
+index 18ea3f5ec598..eb78743a3d1d 100644
+--- a/ash/strings/ash_strings_mn.xtb
++++ b/ash/strings/ash_strings_mn.xtb
+@@ -7,7 +7,7 @@
+ <translation id="1014111206066007277">Дэлгэцийн видео бичлэгийн хэрэгсэл</translation>
+ <translation id="1024261588257374085">Хэсэгчилсэн дэлгэцийн агшныг сонгосон</translation>
+ <translation id="1024364763893396229">Өөрийн <ph name="NAME" />-г хадгалах уу?</translation>
+-<translation id="1032891413405719768">Мэдрэгч үзэгний батерей бага байна</translation>
++<translation id="1032891413405719768">Мэдрэгч үзэгний батарей бага байна</translation>
+ <translation id="1036073649888683237">Мэдэгдлүүдийг удирдахын тулд Тохиргоо руу очно уу</translation>
+ <translation id="1036672894875463507">Би танд өдрийн турш туслахад бэлэн Google Туслах тань байна!
+ Эхлүүлэхийн тулд та эдгээр зүйлээс хийж үзэх боломжтой.</translation>
+@@ -668,7 +668,7 @@
+ <translation id="4890408602550914571">Таны утас ойролцоо бөгөөд Bluetooth-г нь асаасан эсэхийг шалгана уу.</translation>
+ <translation id="4895488851634969361">Цэнэг дүүрсэн байна.</translation>
+ <translation id="490375751687810070">Босоо</translation>
+-<translation id="490788395437447240">Батерей <ph name="BATTERY_PERCENTAGE" />%</translation>
++<translation id="490788395437447240">Батарей <ph name="BATTERY_PERCENTAGE" />%</translation>
+ <translation id="4917385247580444890">Хүчтэй</translation>
+ <translation id="4918086044614829423">Хүлээн зөвшөөрөх</translation>
+ <translation id="4925542575807923399">Энэ хаягийг хариуцсан ажилтан нь олон хаягаар зэрэг нэвтрэх тохиолдолд зөвхөн энэ хаягаар түрүүлж нэвтэрсний дараагаар бусад хаягт нэвтрэх боломжтой байхаар тохируулсан байна.</translation>
+diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
+index 6cd93063385f..2488072014b7 100644
+--- a/chrome/app/resources/chromium_strings_te.xtb
++++ b/chrome/app/resources/chromium_strings_te.xtb
+@@ -36,7 +36,7 @@
+ <translation id="2008474315282236005">ఇది ఈ పరికరం నుండి 1 అంశాన్ని తొలగిస్తుంది. మీ డేటాను తర్వాత తిరిగి పొందడానికి, Chromiumకు <ph name="USER_EMAIL" /> లాగా సైన్ ఇన్ చేయండి.</translation>
+ <translation id="2020032459870799438">డేటా ఉల్లంఘనల నుండి, ఇతర భద్రతా సమస్యల నుండి మీ ఇతర పాస్‌వర్డ్‌లు సురక్షితంగా ఉన్నాయో లేదో చెక్ చేయడానికి, <ph name="BEGIN_LINK" />Chromiumకు సైన్ ఇన్ చేయండి<ph name="END_LINK" />.</translation>
+ <translation id="2049376729098081731">Google సర్వీస్‌లలో మరింత వ్యక్తిగతీకరించిన అనుభవం కోసం Chromium హిస్టరీని చేర్చాలో, లేదో ఎంచుకోండి</translation>
+-<translation id="2174178932569897599">Chromiumను అనుకూలంగా మార్చు</translation>
++<translation id="2174178932569897599">Chromiumను అనుకూలంగా మార్చండి</translation>
+ <translation id="2185166961232948079">Chromium - నెట్‌వర్క్ సైన్ ఇన్ - <ph name="PAGE_TITLE" /></translation>
+ <translation id="2241627712206172106">మీరు కంప్యూటర్‌ను షేర్‌ చేస్తే, స్నేహితులు, కుటుంబ సభ్యులు విడివిడిగా బ్రౌజ్ చేయవచ్చు. Chromiumను వారికి నచ్చిన రీతిలో సెటప్ చేసుకోవచ్చు.</translation>
+ <translation id="2313870531055795960">Chromiumలో స్టోర్ చేయబడిన సురక్షితం కాని సైట్‌ల లిస్ట్‌తో కూడిన URLలను చెక్ చేస్తుంది. ఏదైనా సైట్ మీ పాస్‌వర్డ్‌ను దొంగిలించే ప్రయత్నం చేసినా, లేదంటే ఏదైనా హానికరమైన ఫైల్‌ను మీరు డౌన్‌లోడ్ చేసినా, సదరు URLలను, ఆయా పేజీల కంటెంట్‌లోని కొన్ని భాగాలను కూడా Chromium, 'సురక్షిత బ్రౌజింగ్'కు పంపవచ్చు.</translation>
+diff --git a/chrome/app/resources/generated_resources_ky.xtb b/chrome/app/resources/generated_resources_ky.xtb
+index 47ae70643bb0..715404a4a6d7 100644
+--- a/chrome/app/resources/generated_resources_ky.xtb
++++ b/chrome/app/resources/generated_resources_ky.xtb
+@@ -6862,7 +6862,7 @@ Family Link колдонмосун түзмөгүңүзгө орнотуп, бу
+ <translation id="7742558784808143689"><ph name="SITE_NAME" />, анын астындагы бардык сайттардагы, ошондой эле орнотулган колдонмолордогу сайтка тиешелүү маалыматтар жана уруксаттар тазалансынбы?</translation>
+ <translation id="7742706086992565332">Айрым сайттардын көрүнүшүн чоңойтуу же кичирейтүү функциясын колдоно аласыз</translation>
+ <translation id="7742879569460013116">Шилтемени төмөнкү менен бөлүшүү:</translation>
+-<translation id="774377079771918250">Кайда сакталаарын тандаңыз</translation>
++<translation id="774377079771918250">Кайда сакталарын тандаңыз</translation>
+ <translation id="7744047395460924128">Басып чыгаруу таржымалыңызды көрүү</translation>
+ <translation id="7744192722284567281">Сырсөз уурдалды</translation>
+ <translation id="7744649840067671761">Башка аракеттерди дайындоо үчүн жаңы которгучту же баскычтоптогу баскычты таптап коюңуз.
+diff --git a/chrome/app/resources/generated_resources_mn.xtb b/chrome/app/resources/generated_resources_mn.xtb
+index 58836e6a0de1..a277cff23049 100644
+--- a/chrome/app/resources/generated_resources_mn.xtb
++++ b/chrome/app/resources/generated_resources_mn.xtb
+@@ -1123,7 +1123,7 @@
+ <translation id="2073148037220830746">{NUM_EXTENSIONS,plural, =1{Өргөтгөлийг суулгахын тулд товшино уу}other{Эдгээр өргөтгөлийг суулгахын тулд товшино уу}}</translation>
+ <translation id="2073496667646280609">Таны төхөөрөмж эсвэл сонгосон нөөцлөлтийн байршилд хангалттай сул хадгалах сан байхгүй байж магадгүй. Сул зай гаргах эсвэл өөр байршил сонгож үзнэ үү.</translation>
+ <translation id="2073505299004274893"><ph name="CHARACTER_LIMIT" /> эсвэл үүнээс цөөн тэмдэгт ашиглана уу</translation>
+-<translation id="2075474481720804517"><ph name="BATTERY_PERCENTAGE" />% батерей</translation>
++<translation id="2075474481720804517"><ph name="BATTERY_PERCENTAGE" />% батарей</translation>
+ <translation id="2075959085554270910">Танд tap-to-click болон чирэлтийг товшихыг идэвхжүүлэх/идэвхгүй болгохыг зөвшөөрдөг</translation>
+ <translation id="2076269580855484719">Энэ нэмэлт өргөтгөлийг нуух</translation>
+ <translation id="2076672359661571384">Дунд (санал болгосон)</translation>
+diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
+index ccce07a85680..bccf4999244f 100644
+--- a/chrome/app/resources/generated_resources_te.xtb
++++ b/chrome/app/resources/generated_resources_te.xtb
+@@ -665,7 +665,7 @@
+ <translation id="1630768113285622200">రీస్టార్ట్ చేసి, కొనసాగించు</translation>
+ <translation id="1632082166874334883">మీ Google ఖాతాలో పాస్‌వర్డ్ స్టోర్ చేయబడింది</translation>
+ <translation id="1632756664321977232">కత్తిరింపు టూల్</translation>
+-<translation id="1632803087685957583">మీ కీబోర్డ్ పునరావృత రేటు, పద సూచన మొదలైనవి సర్దుబాటు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation>
++<translation id="1632803087685957583">మీ కీబోర్డ్ రిపీట్ రేటు, పద సూచన మొదలైనవి సర్దుబాటు చేయడానికి మిమ్మల్ని అనుమతిస్తుంది</translation>
+ <translation id="163309982320328737">ప్రారంభ అక్షరం వెడల్పు నిండింది</translation>
+ <translation id="1633947793238301227">Google Assistantను డిజేబుల్ చేయండి</translation>
+ <translation id="1634783886312010422">మీరు ఇప్పటికే ఈ పాస్‌వర్డ్‌ను <ph name="WEBSITE" />లో మార్చారా?</translation>
+@@ -1588,7 +1588,7 @@
+ <translation id="2468845464436879514">{NUM_TABS,plural, =1{<ph name="GROUP_TITLE" /> - 1 ట్యాబ్}other{<ph name="GROUP_TITLE" /> - # ట్యాబ్‌లు}}</translation>
+ <translation id="2469141124738294431">వర్చువల్ మెషీన్ స్టేటస్</translation>
+ <translation id="2469259292033957819">మీ వద్ద సేవ్ చేసిన ప్రింటర్‌లు ఏవీ లేవు.</translation>
+-<translation id="2469375675106140201">స్పెల్ చెక్‌ను అనుకూలంగా మార్చు</translation>
++<translation id="2469375675106140201">స్పెల్ చెక్‌ను అనుకూలంగా మార్చండి</translation>
+ <translation id="247051149076336810">ఫైల్ షేర్ URL</translation>
+ <translation id="2470702053775288986">మద్దతు లేని ఎక్స్‌టెన్షన్‌లు నిలిపివేయబడ్డాయి</translation>
+ <translation id="2471469610750100598">నలుపు (ఆటోమేటిక్ సెట్టింగ్)</translation>
+@@ -2213,7 +2213,7 @@
+ <translation id="3060987956645097882">మీ ఫోన్‌తో కనెక్షన్‌ను ఏర్పాటు చేయడం మాకు సాధ్యపడలేదు. మీ ఫోన్ సమీపంలోనే ఉండి, అలాగే బ్లూటూత్, Wi-Fi ఆన్ చేయబడి ఉందని నిర్ధారించుకోండి.</translation>
+ <translation id="3064871050034234884">సైట్‌లు సౌండ్‌ను ప్లే చేయగలవు</translation>
+ <translation id="3065041951436100775">ట్యాబ్ మూసివేత ప్ర‌తిస్పంద‌న‌.</translation>
+-<translation id="3065522099314259755">కీబోర్డ్ పునరావృత ప్రతిస్పందన సమయం</translation>
++<translation id="3065522099314259755">కీబోర్డ్ రిపీట్ ప్రతిస్పందన సమయం</translation>
+ <translation id="3067198179881736288">యాప్‌ను ఇన్‌స్టాల్ చేయాలా?</translation>
+ <translation id="3067198360141518313">ఈ ప్లగ్ఇన్‌ను అమలు చేయి</translation>
+ <translation id="3071624960923923138">మీరు కొత్త ట్యాబ్‌ను తెరవడానికి ఇక్కడ క్లిక్ చేయవచ్చు</translation>
+@@ -2515,7 +2515,7 @@
+ <translation id="340282674066624"><ph name="DOWNLOAD_RECEIVED" />, <ph name="TIME_LEFT" /></translation>
+ <translation id="3404065873681873169">ఈ సైట్ కోసం పాస్‌వర్డ్‌లు సేవ్ చేయబడలేదు</translation>
+ <translation id="3404249063913988450">స్క్రీన్ సేవర్‌ను ఎనేబుల్ చేయి</translation>
+-<translation id="3405664148539009465">ఫాంట్‌లను అనుకూలంగా మార్చు</translation>
++<translation id="3405664148539009465">ఫాంట్‌లను అనుకూలంగా మార్చండి</translation>
+ <translation id="3405763860805964263">...</translation>
+ <translation id="3406290648907941085">వర్చువల్ రియాలిటీ పరికరాలను, అలాగే డేటాను ఉపయోగించడానికి అనుమతించబడింది</translation>
+ <translation id="3406396172897554194">భాష లేదా ఇన్‌పుట్ పేరు ఆధారంగా సెర్చ్ చేయండి</translation>
+@@ -3089,7 +3089,7 @@
+ <translation id="3937640725563832867">సర్టిఫికెట్ జారీ చేసినవారి ప్రత్యామ్నాయ పేరు</translation>
+ <translation id="3937734102568271121">ఎల్లప్పుడూ <ph name="LANGUAGE" /> భాషలోది అనువదించు</translation>
+ <translation id="3938128855950761626"><ph name="VENDOR_ID" /> విక్రేత నుండి అందించే పరికరాలు</translation>
+-<translation id="3940233957883229251">ఆటోమేటిక్‌గా పునరావృతం చేయడాన్ని ప్రారంభించు</translation>
++<translation id="3940233957883229251">ఆటోమేటిక్‌గా రిపీట్‌ చేయడాన్ని ప్రారంభించు</translation>
+ <translation id="3941565636838060942">ఈ ప్రోగ్రామ్‌కు యాక్సెస్‌ను దాచడానికి, మీరు దీన్ని నియంత్రణ ప్యానెల్‌లోని
+  <ph name="CONTROL_PANEL_APPLET_NAME" />ను ఉపయోగించి అన్‌ఇన్‌స్టాల్ చేయాలి.
+ 
+@@ -3763,7 +3763,7 @@
+ <translation id="4627442949885028695">మరో పరికరం నుండి కొనసాగించండి</translation>
+ <translation id="4628762811416793313">Linux కంటెయినర్ సెటప్ పూర్తి కాలేదు. దయచేసి మళ్లీ ప్రయత్నించండి.</translation>
+ <translation id="4629521233550547305"><ph name="PROFILE_NAME" /> ప్రొఫైల్‌ను తెరవు</translation>
+-<translation id="4632655012900268062">కార్డ్‌లను అనుకూలంగా మార్చు</translation>
++<translation id="4632655012900268062">కార్డ్‌లను అనుకూలంగా మార్చండి</translation>
+ <translation id="4633003931260532286">"<ph name="IMPORT_NAME" />" యొక్క వెర్షన్ కనీసం "<ph name="IMPORT_VERSION" />" ఉండాలని ఎక్స్‌టెన్షన్ కోరుతోంది, కానీ "<ph name="INSTALLED_VERSION" />" వెర్షన్ మాత్రమే ఇన్‌స్టాల్ చేయబడి ఉంది</translation>
+ <translation id="4633757335284074492">Google Driveలో బ్యాకప్ చేయండి. సులభంగా డేటాను పునరుద్ధరించండి లేదా ఏ సమయంలో అయినా పరికరాన్ని మార్చండి. ఈ బ్యాకప్‌లో యాప్ డేటా కూడా ఉంటుంది. బ్యాకప్‌లు Googleకు అప్‌లోడ్ అవుతాయి, మీ చిన్నారి Google ఖాతా పాస్‌వర్డ్‌ను ఉపయోగించి ఎన్‌క్రిప్ట్ చేయబడతాయి.</translation>
+ <translation id="4634575639321169635">పని కోసం లేదా వ్యక్తిగత వినియోగం కోసం ఈ పరికరాన్ని సెటప్ చేయండి</translation>
+@@ -5659,7 +5659,7 @@
+ <translation id="653983593749614101">కొనసాగించబడుతోంది…</translation>
+ <translation id="654039047105555694"><ph name="BEGIN_BOLD" />గమనిక:<ph name="END_BOLD" /> డేటా సేకరణ వలన పనితీరు తగ్గవచ్చు, అందువల్ల‌ మీరు చేస్తున్నది మీకు తెలిసినప్పుడు లేదా ఇలా చేయాలని మీకు చెప్పినప్పుడు మాత్రమే ప్రారంభించండి.</translation>
+ <translation id="6541638731489116978">ఈ సైట్ మీ మోషన్ సెన్సార్‌లను యాక్సెస్ చేయనీయకుండా బ్లాక్ చేయబడింది.</translation>
+-<translation id="6545665334409411530">పునరావృత రేటు</translation>
++<translation id="6545665334409411530">రిపీట్ రేటు</translation>
+ <translation id="6545867563032584178">Mac సిస్టమ్ ప్రాధాన్యతలలో మైక్రోఫోన్‌ ఆఫ్ చేయబడింది</translation>
+ <translation id="6546856949879953071">అప్‌గ్రేడ్ సమాచారా వివరాల కోసం, Files &gt; నా ఫైల్స్ &gt; <ph name="LOG_FILE" /> అనే సెట్టింగ్‌లో లాగ్స్ సేవ్ చేయబడతాయి</translation>
+ <translation id="6547354035488017500">కనీసం 512 MB స్థలాన్ని ఖాళీగా ఉంచండి, లేదంటే పరికరం ఇక స్పందించదు. స్థలాన్ని ఖాళీ చేయడానికి, పరికర నిల్వ నుండి ఫైళ్లను తొలగించండి.</translation>
+@@ -8090,7 +8090,7 @@
+ <translation id="895347679606913382">ప్రారంభిస్తోంది...</translation>
+ <translation id="8953654039337655940">మీ తల్లి/తండ్రికి వారి Google Family Link యాప్‌నకు, అలాగే families.google.comకు ఒక అప్రూవల్ రిక్వెస్ట్ పంపబడింది. ఒకవేళ మీ తల్లి/తండ్రి ఆ రిక్వెస్ట్‌ను ఆమోదిస్తే, మీకు నోటిఫికేషన్ వస్తుంది.</translation>
+ <translation id="8956230710625245889">రీడర్‌లో తెరవండి</translation>
+-<translation id="8957757410289731985">ప్రొఫైల్‌ను అనుకూలంగా మార్చు</translation>
++<translation id="8957757410289731985">ప్రొఫైల్‌ను అనుకూలంగా మార్చండి</translation>
+ <translation id="895944840846194039">JavaScript మెమరీ</translation>
+ <translation id="8960208913905765425">త్వరిత సమాధానాల యూనిట్ మార్పిడి</translation>
+ <translation id="8962051932294470566">మీరు ఒకసారి ఒక ఫైల్‌ను మాత్రమే షేర్ చేయగలరు. ప్రస్తుత బదిలీ పూర్తయినప్పుడు మీరు మళ్లీ ట్రై చేయండి.</translation>
+diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
+index 0cc9b784386d..fe3bffd76d5d 100644
+--- a/chrome/app/resources/generated_resources_zh-CN.xtb
++++ b/chrome/app/resources/generated_resources_zh-CN.xtb
+@@ -7487,7 +7487,7 @@
+ <translation id="8376137163494131156">请将 Google Cast 发生的情况告诉我们。</translation>
+ <translation id="8376384591331888629">包括此网站上的第三方 Cookie</translation>
+ <translation id="8376451933628734023">如果此 Web 应用试图诱骗您认为它是另一款应用,请卸载它。</translation>
+-<translation id="8378714024927312812">由贵单位管理</translation>
++<translation id="8378714024927312812">由贵组织管理</translation>
+ <translation id="8379156816349755485">一旦您登录,系统便会存储一个独一无二的身份验证令牌,并会使用它保存今后所有符合条件的下载内容。</translation>
+ <translation id="8379878387931047019">此设备不支持该网站要求使用的安全密钥的类型</translation>
+ <translation id="8379991678458444070">只需为此标签页添加书签,便可在需要时快速返回到此处</translation>
+diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
+index 6945de13ae9e..0e82c63e3572 100644
+--- a/chrome/app/resources/google_chrome_strings_te.xtb
++++ b/chrome/app/resources/google_chrome_strings_te.xtb
+@@ -367,7 +367,7 @@
+ <translation id="9138603949443464873">మీ మార్పులను వర్తింపజేయడానికి, Chromeని పునఃప్రారంభించండి</translation>
+ <translation id="9195993889682885387">గత కొన్ని వారాల మీ బ్రౌజింగ్ హిస్టరీ ఆధారంగా Chrome మీ ఆసక్తులను అంచనా వేయగలదు. ఈ సమాచారం మీ పరికరంలో ఉంటుంది.</translation>
+ <translation id="919706545465235479">సింక్‌ను ప్రారంభించడానికి Chromeను అప్‌డేట్ చేయాలి</translation>
+-<translation id="922152298093051471">Chromeను అనుకూలంగా మార్చు</translation>
++<translation id="922152298093051471">Chromeను అనుకూలంగా మార్చండి</translation>
+ <translation id="93760716455950538">ChromeOS Flexను రీస్టార్ట్ చేయండి</translation>
+ <translation id="940313311831216333">మీ అన్ని పరికరాలలో మీ Chrome సంబంధిత అంశాలను యాక్సెస్ చేయడానికి, సైన్ ఇన్ చేసి, ఆపై సింక్‌ను ఆన్ చేయండి.</translation>
+ <translation id="989369509083708165">మీ డిఫాల్ట్ బ్రౌజర్ Google Chrome</translation>
+diff --git a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
+index dfae3919ee18..d7ba94ea8ae0 100644
+--- a/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
++++ b/chrome/browser/resources/chromeos/accessibility/strings/accessibility_strings_ml.xtb
+@@ -136,7 +136,7 @@
+ <translation id="1812527064848182527">ലാൻഡ്‌സ്‌കേപ്പ്</translation>
+ <translation id="1829244130665387512">പേജില്‍ കണ്ടുപിടിക്കുക</translation>
+ <translation id="1834891354138622109">നിര</translation>
+-<translation id="1845944666972354496">സജീവമാക്കാൻ രണ്ട് തവണ ടാപ്പ് ചെയ്യുക</translation>
++<translation id="1845944666972354496">സജീവമാക്കാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക</translation>
+ <translation id="1846771122725914429">Bluetooth ബ്രെയ്‌ലി ഡിസ്‌പ്ലേ</translation>
+ <translation id="1852018405765032699">നാല് വിരലുകൾ ഉപയോഗിച്ച് സ്‌ക്രീനിൽ ടാപ്പ് ചെയ്യുന്നത് ChromeVox മെനുകൾ തുറക്കുകയും അടയ്ക്കുകയും ചെയ്യും. ഈ മെനുകളിൽ കമാൻഡുകളെയും കുറുക്കുവഴികളെയും കുറിച്ചുള്ള സഹായകരമായ വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. മെനുകൾ തുറന്ന് കഴിയുമ്പോൾ, ഒരു വിരൽ ഉപയോഗിച്ച് സ്വൈപ്പ് ചെയ്ത് ഇനങ്ങളിലൂടെ നാവിഗേറ്റ് ചെയ്യാനും ഡബിൾ ടാപ്പ് ചെയ്ത് ഇനങ്ങൾ സജീവമാക്കാനും നിങ്ങൾക്ക് കഴിയും. തുടരാൻ, നാല് വിരലുകൾ ഉപയോഗിച്ച് സ്ക്രീനിൽ ടാപ്പ് ചെയ്യുക.</translation>
+ <translation id="1865601187525349519">വാചകത്തിന്റെ അവസാനം</translation>
+@@ -228,7 +228,7 @@
+ <translation id="2573256689920773241">അടിസ്ഥാന നാവിഗേഷൻ</translation>
+ <translation id="257674075312929031">ഗ്രൂപ്പ്</translation>
+ <translation id="2582407057977008361">അരികിൽ</translation>
+-<translation id="2592212930811759050">എഡിറ്റിംഗ് ആരംഭിക്കാൻ രണ്ടുതവണ ടാപ്പ് ചെയ്യുക</translation>
++<translation id="2592212930811759050">എഡിറ്റിംഗ് ആരംഭിക്കാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക</translation>
+ <translation id="2598495320872286378">വ്യാകരണ പിശക്</translation>
+ <translation id="2603828437139726540">ഒരു പ്രതീകം മുന്നോട്ട് നീക്കുക</translation>
+ <translation id="2619052155095999743">ചേർക്കുക</translation>
+@@ -408,7 +408,7 @@
+ <translation id="360241989769010433">കടപ്പാട്</translation>
+ <translation id="3616016838842055984">നിങ്ങൾക്ക് ക്ലിക്ക് ചെയ്യേണ്ട ഇനത്തിൽ എത്തിയെങ്കിൽ, തിരയൽ + സ്‌പെയ്‌സ് അമർത്തുക. തുടരാൻ അത് ഇപ്പോൾ പരീക്ഷിച്ചുനോക്കൂ.</translation>
+ <translation id="3616113530831147358">ഓഡിയോ</translation>
+-<translation id="3622350485154495700">ഒരു വിരൽ ഉപയോഗിച്ച് രണ്ടുതവണ ടാപ്പ് ചെയ്യുക</translation>
++<translation id="3622350485154495700">ഒരു വിരൽ ഉപയോഗിച്ച് ഡബിൾ ടാപ്പ് ചെയ്യുക</translation>
+ <translation id="3646890046000188562">{COUNT,plural, =1{ബാക്ക്‌ടിക്ക്}other{# ബാക്ക്‌ടിക്കുകൾ}}</translation>
+ <translation id="3650317109285159359">chkmnuitm</translation>
+ <translation id="3655855170848725876">{COUNT,plural, =1{ഡോളർ}other{# ഡോളർ ചിഹ്നങ്ങൾ}}</translation>
+@@ -874,7 +874,7 @@
+ <translation id="7051308646573997571">Coral</translation>
+ <translation id="7062635574500127092">ടീൽ നിറം</translation>
+ <translation id="7086377898680121060">തെളിച്ചം കൂട്ടുക</translation>
+-<translation id="7088743565397416204">ഫോക്കസ് ചെയ്‌തിരിക്കുന്ന ഇനം സജീവമാക്കാൻ ഇരട്ട ടാപ്പ് ചെയ്യുക</translation>
++<translation id="7088743565397416204">ഫോക്കസ് ചെയ്‌തിരിക്കുന്ന ഇനം സജീവമാക്കാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക</translation>
+ <translation id="7088960765736518739">സ്വിച്ച് ആക്‌സസ്</translation>
+ <translation id="7090715360595433170">ഒരു വിരൽ ഉപയോഗിച്ച് ഇടത്തോട്ടും വലത്തോട്ടും സ്വൈപ്പ് ചെയ്യുന്നതിനേക്കാൾ ഇത് കൂടുതൽ കാര്യക്ഷമമാകും.</translation>
+ <translation id="7091296112653361280">നവാജോ വൈറ്റ്</translation>
+diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
+index b6930dce3e96..fc2af3c61755 100644
+--- a/components/strings/components_strings_te.xtb
++++ b/components/strings/components_strings_te.xtb
+@@ -901,7 +901,7 @@
+ <translation id="3395827396354264108">పికప్ పద్ధతి</translation>
+ <translation id="3399952811970034796">బట్వాడా అడ్రస్‌</translation>
+ <translation id="3402261774528610252">ఈ సైట్‌ను లోడ్ చేయడానికి ఉపయోగించిన కనెక్షన్ TLS 1.0 లేదా TLS 1.1ను ఉపయోగించింది, ఇవి విస్మరించబడ్డాయి, భవిష్యత్తులో నిలిపివేయబడతాయి. ఒక సారి నిలిపివేయబడితే, యూజర్‌లు ఈ సైట్‌ను లోడ్ చేయకుండా నివారించబడతారు. సర్వర్ TLS 1.2 లేదా ఆపై వెర్షన్‌లను ఎనేబుల్ చేయాలి.</translation>
+-<translation id="3405664148539009465">ఫాంట్‌లను అనుకూలంగా మార్చు</translation>
++<translation id="3405664148539009465">ఫాంట్‌లను అనుకూలంగా మార్చండి</translation>
+ <translation id="3409896703495473338">భద్రతా సెట్టింగ్‌లను మేనేజ్ చేయండి</translation>
+ <translation id="3414952576877147120">పరిమాణం:</translation>
+ <translation id="3417660076059365994">మీరు అప్‌లోడ్ లేదా జోడించిన ఫైల్స్ Google క్లౌడ్ లేదా థర్డ్ పార్టీలకు విశ్లేషణ కోసం పంపబడతాయి. ఉదాహరణకు, వాటిని సున్నితమైన వ్యక్తిగత సమాచారం లేదా మాల్‌వేర్ కోసం స్కాన్ చేయబడవచ్చు.</translation>
+@@ -909,7 +909,7 @@
+ <translation id="3422472998109090673"><ph name="HOST_NAME" />ని ప్రస్తుతం చేరుకోవడం సాధ్యపడదు.</translation>
+ <translation id="3423742043356668186">సిస్టమ్ పేర్కొన్నవి</translation>
+ <translation id="3427092606871434483">అనుమతించు (డిఫాల్ట్)</translation>
+-<translation id="3427342743765426898">&amp;సవరించడాన్ని పునరావృతం చేయి</translation>
++<translation id="3427342743765426898">&amp;సవరించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="342781501876943858">మీరు మీ పాస్‌వర్డ్‌ని ఇతర సైట్‌లలో తిరిగి ఉపయోగించినట్లయితే దీనిని రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation>
+ <translation id="3428151540071562330">DnsOverHttpsTemplates సర్వర్ టెంప్లేట్‌ URIలు చెల్లవు, ఉపయోగించబడవు.</translation>
+ <translation id="3431636764301398940">ఈ కార్డ్‌ను ఈ పరికరానికి సేవ్ చేయి</translation>
+@@ -959,7 +959,7 @@
+ <translation id="3577902790357386792">జిమ్నాస్టిక్స్</translation>
+ <translation id="3581089476000296252">ఈ పేజీ సిద్ధమైనప్పుడు Chrome మీకు తెలియజేస్తుంది. &lt;a&gt;రద్దు చేయి&lt;/a&gt;</translation>
+ <translation id="3582930987043644930">పేరు జోడించండి</translation>
+-<translation id="3583757800736429874">&amp;తరలించడాన్ని పునరావృతం చేయి</translation>
++<translation id="3583757800736429874">&amp;తరలించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="3584299510153766161">దిగువ భాగంలో రెండు రంధ్రాలు</translation>
+ <translation id="3586931643579894722">వివరాలను దాచిపెట్టు</translation>
+ <translation id="3587738293690942763">మధ్యలో</translation>
+@@ -1167,7 +1167,7 @@
+ <translation id="4176535426287761656">టైమ్‌షేర్‌లు &amp; వెకేషన్ ప్రాపర్టీలు</translation>
+ <translation id="4179515394835346607"><ph name="ROW_NAME" /> <ph name="ROW_CONTENT" /></translation>
+ <translation id="4194250254487269611">మీ కార్డ్‌ను ప్రస్తుతం సేవ్ చేయలేము</translation>
+-<translation id="4196861286325780578">&amp;తరలించడాన్ని పునరావృతం చేయి</translation>
++<translation id="4196861286325780578">&amp;తరలించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="4202554117186904723">ఫిఫ్త్ రోల్</translation>
+ <translation id="4203896806696719780"><ph name="BEGIN_LINK" />ఫైర్‌వాల్ మరియు యాంటీవైరస్ కాన్ఫిగరేషన్‌లను తనిఖీ చేయడం<ph name="END_LINK" /></translation>
+ <translation id="4209092469652827314">పెద్దది</translation>
+@@ -1653,7 +1653,7 @@
+ <translation id="5463625433003343978">పరికరాలను కనుగొంటోంది...</translation>
+ <translation id="5469868506864199649">ఇటాలియన్</translation>
+ <translation id="5470230812924696184">సివిల్ ఇంజినీరింగ్</translation>
+-<translation id="5470861586879999274">&amp;సవరించడాన్ని పునరావృతం చేయి</translation>
++<translation id="5470861586879999274">&amp;సవరించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="5471337644440862957">కామెడీ సినిమాలు</translation>
+ <translation id="5478437291406423475">B6/C4 (ఎన్వలప్)</translation>
+ <translation id="5481076368049295676">ఈ కంటెంట్ మీ సమాచారాన్ని దొంగిలించగల లేదా తొలగించగల హానికరమైన సాఫ్ట్‌వేర్‌ను మీ పరికరంలో ఇన్‌స్టాల్ చేయడానికి ప్రయత్నించవచ్చు. <ph name="BEGIN_LINK" />ఏదేమైనా చూపు<ph name="END_LINK" /></translation>
+@@ -1771,7 +1771,7 @@
+ <translation id="5808542072418270309">సిమ్యులేషన్ గేమ్‌లు</translation>
+ <translation id="5810442152076338065"><ph name="DOMAIN" />కు గల మీ కనెక్షన్ వాడుకలో లేని సైఫర్ సూట్ ఉపయోగించి ఎన్‌క్రిప్ట్ చేయ‌బ‌డింది.</translation>
+ <translation id="5812947184178430888">భద్రతా ఈవెంట్‌లను Chrome ద్వారా ఫ్లాగ్ చేసినప్పుడు, ఈవెంట్‌లకు సంబంధించిన డేటా మీ అడ్మినిస్ట్రేటర్‌కు పంపబడుతుంది. ఇందులో మీరు Chromeలో వెళ్లిన పేజీల URLలు, ఫైల్ పేర్లు లేదా మెటాడేటా, ఇంకా వెబ్ ఆధారితమైన యాప్‌లు, మీ పరికరం, అలాగే Chromeకు సైన్ ఇన్ చేయడానికి మీరు ఉపయోగించే యూజర్‌నేమ్ ఉండవచ్చు.</translation>
+-<translation id="5813119285467412249">&amp;జోడించడాన్ని పునరావృతం చేయి</translation>
++<translation id="5813119285467412249">&amp;జోడించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="5813309815819933152">టీవీ రియాలిటీ షోలు</translation>
+ <translation id="5813753398265398978">భౌతిక శాస్త్రం</translation>
+ <translation id="5817918615728894473">జత చేయి</translation>
+@@ -1913,7 +1913,7 @@
+ <translation id="624499991300733384">ప్రింట్ కంపోజిటర్ సేవ</translation>
+ <translation id="6252613631861574218"><ph name="MANAGE_CHROME_DOWNLOADS_FOCUSED_FRIENDLY_MATCH_TEXT" />, Chromeలో మీరు డౌన్‌లోడ్ చేసిన ఫైల్‌లను మేనేజ్ చేయడానికి Tabను నొక్కి, ఆపై Enterను నొక్కండి</translation>
+ <translation id="6254436959401408446">ఈ పేజీని తెరవడానికి తగినంత మెమరీ లేదు</translation>
+-<translation id="6259156558325130047">&amp;మళ్లీ క్రమం చేయడాన్ని పునరావృతం చేయి</translation>
++<translation id="6259156558325130047">&amp;మళ్లీ క్రమం చేయడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="6263376278284652872"><ph name="DOMAIN" /> బుక్‌మార్క్‌లు</translation>
+ <translation id="6264485186158353794">భద్రతకు తిరిగి వెళ్ళు</translation>
+ <translation id="6265794661083428563"><ph name="POLICY_NAME" /> పాలసీ విలువను కాపీ చేయి</translation>
+@@ -2008,7 +2008,7 @@
+ <translation id="6518133107902771759">ధృవీకరించు</translation>
+ <translation id="6521745193039995384">యాక్టివ్‌గా లేదు</translation>
+ <translation id="6529173248185917884">సెవెంత్ రోల్</translation>
+-<translation id="6529602333819889595">&amp;తొలగించడాన్ని పునరావృతం చేయి</translation>
++<translation id="6529602333819889595">&amp;తొలగించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="6535751101619004418">కరెన్సీలు &amp; విదేశీ మారకం</translation>
+ <translation id="6540534463546766581">మ్యూచువల్ ఫండ్‌లు</translation>
+ <translation id="6545864417968258051">బ్లూటూత్ స్కానింగ్</translation>
+@@ -2114,7 +2114,7 @@
+ <translation id="6865412394715372076">ప్రస్తుతం ఈ కార్డ్‌ని ధృవీకరించడం సాధ్యపడదు</translation>
+ <translation id="6869334554832814367">వ్యక్తిగత రుణాలు</translation>
+ <translation id="6873456682041376666">టాప్ ట్రే</translation>
+-<translation id="6874604403660855544">&amp;జోడించడాన్ని పునరావృతం చేయి</translation>
++<translation id="6874604403660855544">&amp;జోడించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="6881240511396774766">కొత్త Google డాక్‌ను త్వరగా క్రియేట్ చేయండి</translation>
+ <translation id="6883221904761970440">సురక్షిత పేమెంట్ ఆధారాల ప్రామాణీకరణ షీట్ మూయబడింది</translation>
+ <translation id="6884662655240309489">పరిమాణం 1</translation>
+@@ -2278,7 +2278,7 @@
+ <translation id="7320336641823683070">కనెక్షన్ సహాయం</translation>
+ <translation id="7323804146520582233">"<ph name="SECTION" />" విభాగాన్ని దాచు</translation>
+ <translation id="733354035281974745">పరికర స్థానిక ఖాతా భర్తీ</translation>
+-<translation id="7334320624316649418">&amp;మళ్లీ క్రమం చేయడాన్ని పునరావృతం చేయి</translation>
++<translation id="7334320624316649418">&amp;మళ్లీ క్రమం చేయడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="7335157162773372339">మీ కెమెరాను ఉపయోగించడానికి సైట్ అనుమతి అడగవచ్చు</translation>
+ <translation id="7337248890521463931">మరిన్ని వరుసలను చూపించు</translation>
+ <translation id="7337418456231055214">వర్చువల్ కార్డ్ నంబర్‌ను పూరించలేదా? కాపీ చేయడం కోసం కార్డ్ వివరాలను క్లిక్ చేయండి. <ph name="IDS_AUTOFILL_VIRTUAL_CARD_MANUAL_FALLBACK_BUBBLE_LEARN_MORE_LINK_LABEL" /></translation>
+@@ -2379,7 +2379,7 @@
+ <translation id="7542403920425041731">మీరు నిర్ధారించిన తర్వాత, మీ కార్డ్ వివరాలు ఈ సైట్‌తో షేర్ చేయబడతాయి.</translation>
+ <translation id="7542995811387359312">ఈ ఫారమ్ సురక్షిత కనెక్షన్‌ను ఉపయోగించనందున క్రెడిట్ కార్డ్ వివరాలను ఆటోమేటిక్‌గా పూర్తి చేయడం ఆపివేయబడింది.</translation>
+ <translation id="7548892272833184391">కనెక్షన్ ఎర్రర్‌లను పరిష్కరించండి</translation>
+-<translation id="7549584377607005141">ఈ వెబ్‌పేజీ సరిగ్గా ప్రదర్శించబడటానికి మీరు మునుపు నమోదు చేసిన డేటా అవసరం. మీరు ఈ డేటాను మళ్లీ పంపవచ్చు. కానీ అలా చేయడం వ‌ల్ల‌ ఈ పేజీ మునుపు ప్రదర్శించిన ఏదైనా చర్య పునరావృతం కావచ్చు.</translation>
++<translation id="7549584377607005141">ఈ వెబ్‌పేజీ సరిగ్గా ప్రదర్శించబడటానికి మీరు మునుపు నమోదు చేసిన డేటా అవసరం. మీరు ఈ డేటాను మళ్లీ పంపవచ్చు. కానీ అలా చేయడం వ‌ల్ల‌ ఈ పేజీ మునుపు ప్రదర్శించిన ఏదైనా చర్య రిపీట్‌ కావచ్చు.</translation>
+ <translation id="7550637293666041147">మీ పరికరం వినియోగదారు పేరు మరియు Chrome వినియోగదారు పేరు</translation>
+ <translation id="7551484245293639699">ట్రావెల్ బీమా</translation>
+ <translation id="755279583747225797">ట్రయల్ యాక్టివ్‌గా ఉంది</translation>
+@@ -2629,7 +2629,7 @@
+ <translation id="8235754723616617175">కంట్రీ మ్యూజిక్</translation>
+ <translation id="8237519162179154808">అభిరుచులు &amp; కాలక్షేపం</translation>
+ <translation id="8238581221633243064">కొత్త అజ్ఞాత ట్యాబ్‌లో పేజీని తెరవండి</translation>
+-<translation id="8241707690549784388">మీరు వెతికే పేజీ మీరు ఎంటర్ చేసిన సమాచారాన్ని ఉపయోగించుకుంది. ఆ పేజీకి తిరిగి వెళ్ల‌డం ద్వారా మీరు చేసిన ఏ చర్య అయినా పునరావృతం చేయ‌వలసి వస్తుంది. మీరు కొనసాగాలని అనుకుంటున్నారా?</translation>
++<translation id="8241707690549784388">మీరు వెతికే పేజీ మీరు ఎంటర్ చేసిన సమాచారాన్ని ఉపయోగించుకుంది. ఆ పేజీకి తిరిగి వెళ్ల‌డం ద్వారా మీరు చేసిన ఏ చర్య అయినా రిపీట్‌ చేయ‌వలసి వస్తుంది. మీరు కొనసాగాలని అనుకుంటున్నారా?</translation>
+ <translation id="8241712895048303527">ఈ సైట్‌లో బ్లాక్ చేయి</translation>
+ <translation id="8242426110754782860">కొనసాగు</translation>
+ <translation id="8249296373107784235">రద్దుచేయి</translation>
+@@ -2803,7 +2803,7 @@
+ <translation id="8766943070169463815">సురక్షిత పేమెంట్ ఆధారాల ప్రామాణీకరణ షీట్ తెరవబడింది</translation>
+ <translation id="877985182522063539">A4</translation>
+ <translation id="8785658048882205566">మోటారుసైకిళ్లు</translation>
+-<translation id="8790007591277257123">&amp;తొలగించడాన్ని పునరావృతం చేయి</translation>
++<translation id="8790007591277257123">&amp;తొలగించడాన్ని రిపీట్‌ చేయి</translation>
+ <translation id="8792621596287649091">మీరు మీ <ph name="ORG_NAME" /> ఖాతాకు యాక్సెస్‌ను కోల్పోవచ్చు. లేదా గుర్తింపు స‌మాచారం చోరీకి గురి కావచ్చు. మీ పాస్‌వర్డ్‌ను ఇప్పుడే రీసెట్ చేయాల్సిందిగా Chromium సిఫార్సు చేస్తోంది.</translation>
+ <translation id="8792626944327216835">మైక్రోఫోన్</translation>
+ <translation id="8793655568873652685"><ph name="ENROLLMENT_DOMAIN" />, మీ బ్రౌజర్‌లో Chrome Enterprise కనెక్టర్‌లను ఆన్ చేసింది. ఈ కనెక్టర్‌లకు మీ డేటాలో కొంత డేటాకు యాక్సెస్ ఉంది.</translation>
+@@ -2963,7 +2963,7 @@
+ <translation id="9213433120051936369">కనిపించే తీరును అనుకూలంగా మార్చండి</translation>
+ <translation id="9215416866750762878">ఒక అప్లికేషన్ కారణంగా Chrome ఈ సైట్‌కు సురక్షితంగా కనెక్ట్ కాలేకపోతోంది</translation>
+ <translation id="9219103736887031265">ఇమేజ్‌లు</translation>
+-<translation id="922152298093051471">Chromeను అనుకూలంగా మార్చు</translation>
++<translation id="922152298093051471">Chromeను అనుకూలంగా మార్చండి</translation>
+ <translation id="933712198907837967">డైనర్స్ క్లబ్</translation>
+ <translation id="935608979562296692">ఫారమ్‌ను తీసివేయండి</translation>
+ <translation id="936474030629450166">సూపర్-B</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+index 5a7b4111c8a4..5f2f3d8a8c47 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+@@ -51,7 +51,7 @@
+ <translation id="1321993286294231467">ചിത്രം സംരക്ഷിക്കുന്നതിൽ പിശക്.</translation>
+ <translation id="1322735045095424339">അദൃശ്യ മോഡ് ഉപയോഗിക്കാൻ നിങ്ങളുടെ സ്ഥാപനം ആവശ്യപ്പെടുന്നു</translation>
+ <translation id="1323735185997015385">ഇല്ലാതാക്കുക</translation>
+-<translation id="132683371494960526">പാരന്റ് ഫോൾഡർ മാറ്റാൻ രണ്ടുതവണ ടാപ്പ് ചെയ്യുക.</translation>
++<translation id="132683371494960526">പാരന്റ് ഫോൾഡർ മാറ്റാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക.</translation>
+ <translation id="1340643665687018190">മെനു അടയ്‌ക്കുക</translation>
+ <translation id="1358214951266274152">നിങ്ങൾ പകർത്തിയ ലിങ്ക് സന്ദർശിക്കുക</translation>
+ <translation id="1360432990279830238">സൈൻ ഔട്ട് ചെയ്‌ത് സമന്വയം ഓഫാക്കണോ?</translation>
+@@ -67,7 +67,7 @@
+ <translation id="1449835205994625556">പാസ്‍വേഡ് അദൃശ്യമാക്കുക</translation>
+ <translation id="145015347812617860"><ph name="COUNT" /> ഇനങ്ങൾ</translation>
+ <translation id="149095475893949513">കോൺഫിഗറേഷൻ പ്രൊഫൈൽ ഡൗൺലോഡ് ചെയ്യാൻ ഈ വെബ്സൈറ്റ് ശ്രമിക്കുന്നു.</translation>
+-<translation id="1491277525950327607">ക്രമീകരണം മാറ്റാൻ രണ്ടുതവണ ടാപ്പ് ചെയ്യുക</translation>
++<translation id="1491277525950327607">ക്രമീകരണം മാറ്റാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക</translation>
+ <translation id="1492417797159476138">ഈ സൈറ്റിനായി നിങ്ങൾ ഇതിനകം തന്നെ ഈ ഉപയോക്തൃനാമം സംരക്ഷിച്ചു</translation>
+ <translation id="1506063256525392513">ഫോട്ടോകളെടുത്ത് അപ്‌ലോഡ് ചെയ്യാനും QR കോഡുകൾ സ്‌കാൻ ചെയ്യാനും ഇത് നിങ്ങളെ അനുവദിക്കുന്നു</translation>
+ <translation id="1509486075633541495">വെബ്‌സൈറ്റിലേക്ക് സൈൻ ഇൻ ചെയ്യുക</translation>
+@@ -101,7 +101,7 @@
+ <translation id="1690731385917361335">ഇനങ്ങളൊന്നുമില്ല</translation>
+ <translation id="1692118695553449118">സമന്വയം ഓണാണ്</translation>
+ <translation id="1700629756560807968"><ph name="NUMBER_OF_SELECTED_BOOKMARKS" /> തിരഞ്ഞെടുത്തു</translation>
+-<translation id="1740468249224277719">ഇൻസ്‌റ്റാൾ ചെയ്യാൻ രണ്ടുതവണ ടാപ്പ് ചെയ്യുക.</translation>
++<translation id="1740468249224277719">ഇൻസ്‌റ്റാൾ ചെയ്യാൻ ഡബിൾ ടാപ്പ് ചെയ്യുക.</translation>
+ <translation id="1752547299766512813">സംരക്ഷിച്ച പാസ്‌വേഡുകള്‍</translation>
+ <translation id="1753905327828125965">കൂടുതൽ‍ സന്ദര്‍ശിച്ചത്</translation>
+ <translation id="1803264062614276815">കാർഡ് ഉടമയുടെ പേര്</translation>
+diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+index 4c6b66623eb7..aace2b76470a 100644
+--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
++++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+@@ -865,7 +865,7 @@
+ <translation id="8319076807703933069">新搜索</translation>
+ <translation id="8323906514956095947">轻触并按住可查看更多的标签页选项</translation>
+ <translation id="8328777765163860529">全部关闭</translation>
+-<translation id="8378714024927312812">由贵单位管理</translation>
++<translation id="8378714024927312812">由贵组织管理</translation>
+ <translation id="8386068868580335421">重置</translation>
+ <translation id="8407669440184693619">未找到任何用于此网站的密码</translation>
+ <translation id="842017693807136194">所用登录身份</translation>
+diff --git a/ui/chromeos/translations/ui_chromeos_strings_te.xtb b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+index 7093b4618657..808afe88fc4e 100644
+--- a/ui/chromeos/translations/ui_chromeos_strings_te.xtb
++++ b/ui/chromeos/translations/ui_chromeos_strings_te.xtb
+@@ -834,7 +834,7 @@
+ <translation id="8045462269890919536">రొమేనియన్</translation>
+ <translation id="8049184478152619004">వ్యక్తిగత అన్‌బ్లాకింగ్ కీ(PUK)ని ఎంటర్ చేయండి</translation>
+ <translation id="807187749540895545"><ph name="FILE_NAME" />ను సంగ్రహిస్తోంది…</translation>
+-<translation id="8079530767338315840">పునరావృతం చేయి</translation>
++<translation id="8079530767338315840">రిపీట్‌ చేయి</translation>
+ <translation id="8087576439476816834">డౌన్‌లోడ్ చేయి, <ph name="PROFILE_NAME" /></translation>
+ <translation id="8106045200081704138">నాతో షేర్ చేసినవి</translation>
+ <translation id="8116072619078571545">చల్లటి నీరు</translation>
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/chromium-upstream-patches/0058-Incrementing-VERSION-to-102.0.5005.148.patch b/srcpkgs/electron19/files/chromium-upstream-patches/0058-Incrementing-VERSION-to-102.0.5005.148.patch
new file mode 100644
index 000000000000..875c94f3c9d5
--- /dev/null
+++ b/srcpkgs/electron19/files/chromium-upstream-patches/0058-Incrementing-VERSION-to-102.0.5005.148.patch
@@ -0,0 +1,28 @@
+From 975dd790f0a8f62d54d2a4c1a58833c81f0e1742 Mon Sep 17 00:00:00 2001
+From: "Chrome Release Bot (LUCI)"
+ <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Date: Sun, 3 Jul 2022 01:00:32 +0000
+Subject: [PATCH 58/59] Incrementing VERSION to 102.0.5005.148
+
+Change-Id: I30a4cd488d75fef0c005dce94d0e429e3805d297
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3739746
+Bot-Commit: Chrome Release Bot (LUCI) <chrome-official-brancher@chops-service-accounts.iam.gserviceaccount.com>
+Cr-Commit-Position: refs/branch-heads/5005@{#1217}
+Cr-Branched-From: 5b4d9450fee01f821b6400e947b3839727643a71-refs/heads/main@{#992738}
+---
+ chrome/VERSION | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/chrome/VERSION b/chrome/VERSION
+index 1e243e1ad602..408a45a0b648 100644
+--- a/chrome/VERSION
++++ b/chrome/VERSION
+@@ -1,4 +1,4 @@
+ MAJOR=102
+ MINOR=0
+ BUILD=5005
+-PATCH=147
++PATCH=148
+-- 
+2.37.0
+
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-musl-hacks.patch b/srcpkgs/electron19/files/musl-patches/chromium-musl-hacks.patch
new file mode 100644
index 000000000000..1238970d4f80
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-musl-hacks.patch
@@ -0,0 +1,34 @@
+--- base/debug/stack_trace.cc.orig	2018-12-08 14:11:25.303475116 +0100
++++ base/debug/stack_trace.cc	2018-12-08 18:00:43.874946999 +0100
+@@ -229,7 +229,7 @@
+ }
+ std::string StackTrace::ToStringWithPrefix(const char* prefix_string) const {
+   std::stringstream stream;
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   OutputToStreamWithPrefix(&stream, prefix_string);
+ #endif
+   return stream.str();
+--- net/socket/udp_socket_posix.cc.orig	2019-07-03 13:13:46.034342649 -0400
++++ net/socket/udp_socket_posix.cc	2019-07-03 13:23:53.117081909 -0400
+@@ -1194,7 +1194,7 @@
+     msg_iov->push_back({const_cast<char*>(buffer->data()), buffer->length()});
+   msgvec->reserve(buffers.size());
+   for (size_t j = 0; j < buffers.size(); j++)
+-    msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, nullptr, 0, 0}, 0});
++    msgvec->push_back({{nullptr, 0, &msg_iov[j], 1, 0, 0, 0}, 0});
+   int result = HANDLE_EINTR(Sendmmsg(fd, &msgvec[0], buffers.size(), 0));
+   SendResult send_result(0, 0, std::move(buffers));
+   if (result < 0) {
+--- base/debug/stack_trace.cc	2021-05-25 00:05:31.000000000 +0200
++++ -	2021-05-27 13:46:43.740380140 +0200
+@@ -217,7 +217,9 @@
+ }
+ 
+ void StackTrace::OutputToStream(std::ostream* os) const {
++#if defined(__GLIBC__)
+   OutputToStreamWithPrefix(os, nullptr);
++#endif
+ }
+ 
+ std::string StackTrace::ToString() const {
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-musl-libc++.patch b/srcpkgs/electron19/files/musl-patches/chromium-musl-libc++.patch
new file mode 100644
index 000000000000..088d80fad52b
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-musl-libc++.patch
@@ -0,0 +1,55 @@
+diff --git a/buildtools/third_party/libc++/trunk/include/locale b/buildtools/third_party/libc++/trunk/include/locale
+index d29a2dc..53998bc 100644
+--- buildtools/third_party/libc++/trunk/include/locale
++++ buildtools/third_party/libc++/trunk/include/locale
+@@ -11,6 +11,15 @@
+ #ifndef _LIBCPP_LOCALE
+ #define _LIBCPP_LOCALE
+ 
++// musl doesn't define _l (with locale) variants of functions, as it only supports UTF-8.
++// we can simply make macros that will call the non-localated ones if we're using musl, or rather not-using something that has the _l ones.
++// couldn't find anything glibc #defines when it creates strtoull_l (that it doesn't undefine a few lines later), so let's test against glibc and glibc-likes.
++// almost all glibc-likes define __GNU_LIBRARY__ for compatibility
++#ifndef __GNU_LIBRARY__
++#define strtoull_l(A, B, C, LOC) strtoull(A,B,C)
++#define strtoll_l(A, B, C, LOC) strtoll(A,B,C)
++#endif
++
+ /*
+     locale synopsis
+ 
+diff --git a/buildtools/third_party/libc++/trunk/src/locale.cpp b/buildtools/third_party/libc++/trunk/src/locale.cpp
+index 4163c2c..3d1902a 100644
+--- a/buildtools/third_party/libc++/trunk/src/locale.cpp
++++ buildtools/third_party/libc++/trunk/src/locale.cpp
+@@ -1028,11 +1028,11 @@ ctype<char>::do_narrow(const char_type* low, const char_type* high, char dfault,
+     return low;
+ }
+ 
+-#if defined(__EMSCRIPTEN__)
++//#if defined(__EMSCRIPTEN__)
+ extern "C" const unsigned short ** __ctype_b_loc();
+ extern "C" const int ** __ctype_tolower_loc();
+ extern "C" const int ** __ctype_toupper_loc();
+-#endif
++//#endif
+ 
+ #ifdef _LIBCPP_PROVIDES_DEFAULT_RUNE_TABLE
+ const ctype<char>::mask*
+@@ -1136,12 +1136,10 @@ ctype<char>::classic_table()  _NOEXCEPT
+ #elif defined(_AIX)
+     return (const unsigned int *)__lc_ctype_ptr->obj->mask;
+ #else
+-    // Platform not supported: abort so the person doing the port knows what to
+-    // fix
+-# warning  ctype<char>::classic_table() is not implemented
+-    printf("ctype<char>::classic_table() is not implemented\n");
+-    abort();
+-    return NULL;
++// not sure any other libc like this exists, but there is no way to differentiate musl as of right now
++// to be fair, with the change above, this should always work
++// also, #warning is a gcc extension
++    return (const unsigned long *)*__ctype_b_loc();
+ #endif
+ }
+ #endif
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-musl-sandbox.patch b/srcpkgs/electron19/files/musl-patches/chromium-musl-sandbox.patch
new file mode 100644
index 000000000000..230bb7bbd297
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-musl-sandbox.patch
@@ -0,0 +1,92 @@
+--- ./sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc.orig	2019-07-03 11:53:21.213479736 -0400
++++ ./sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc	2019-07-03 11:57:01.304998253 -0400
+@@ -140,31 +140,14 @@
+ ResultExpr RestrictCloneToThreadsAndEPERMFork() {
+   const Arg<unsigned long> flags(0);
+ 
+-  // TODO(mdempsky): Extend DSL to support (flags & ~mask1) == mask2.
+-  const uint64_t kAndroidCloneMask = CLONE_VM | CLONE_FS | CLONE_FILES |
+-                                     CLONE_SIGHAND | CLONE_THREAD |
+-                                     CLONE_SYSVSEM;
+-  const uint64_t kObsoleteAndroidCloneMask = kAndroidCloneMask | CLONE_DETACHED;
++  const int required = CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND |
++                       CLONE_THREAD | CLONE_SYSVSEM;
++  const int safe = CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID | 
++                   CLONE_DETACHED;
++  const BoolExpr thread_clone_ok = (flags&~safe)==required;
+ 
+-  const uint64_t kGlibcPthreadFlags =
+-      CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | CLONE_THREAD |
+-      CLONE_SYSVSEM | CLONE_SETTLS | CLONE_PARENT_SETTID | CLONE_CHILD_CLEARTID;
+-  const BoolExpr glibc_test = flags == kGlibcPthreadFlags;
+-
+-  const BoolExpr android_test =
+-      AnyOf(flags == kAndroidCloneMask, flags == kObsoleteAndroidCloneMask,
+-            flags == kGlibcPthreadFlags);
+-
+-  // The following two flags are the two important flags in any vfork-emulating
+-  // clone call. EPERM any clone call that contains both of them.
+-  const uint64_t kImportantCloneVforkFlags = CLONE_VFORK | CLONE_VM;
+-
+-  const BoolExpr is_fork_or_clone_vfork =
+-      AnyOf((flags & (CLONE_VM | CLONE_THREAD)) == 0,
+-            (flags & kImportantCloneVforkFlags) == kImportantCloneVforkFlags);
+-
+-  return If(IsAndroid() ? android_test : glibc_test, Allow())
+-      .ElseIf(is_fork_or_clone_vfork, Error(EPERM))
++  return If(thread_clone_ok, Allow())
++      .ElseIf((flags & (CLONE_VM | CLONE_THREAD)) == 0, Error(EPERM))
+       .Else(CrashSIGSYSClone());
+ }
+ 
+--- ./sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc.orig
++++ ./sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -494,6 +494,7 @@
+     case __NR_mlock:
+     case __NR_munlock:
+     case __NR_munmap:
++    case __NR_mremap:
+       return true;
+     case __NR_madvise:
+     case __NR_mincore:
+@@ -509,7 +510,6 @@
+     case __NR_modify_ldt:
+ #endif
+     case __NR_mprotect:
+-    case __NR_mremap:
+     case __NR_msync:
+     case __NR_munlockall:
+     case __NR_readahead:
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+index 80f02c0..21fbe21 100644
+--- sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -373,6 +373,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+ #if defined(__i386__)
+     case __NR_waitpid:
+ #endif
++    case __NR_set_tid_address:
+       return true;
+     case __NR_clone:  // Should be parameter-restricted.
+     case __NR_setns:  // Privileged.
+@@ -385,7 +386,6 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
+     case __NR_set_thread_area:
+ #endif
+-    case __NR_set_tid_address:
+     case __NR_unshare:
+ #if !defined(__mips__) && !defined(__aarch64__)
+     case __NR_vfork:
+--- sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ sandbox/policy/linux/bpf_renderer_policy_linux.cc
+@@ -100,9 +100,9 @@
+     case __NR_uname:
+     case __NR_sched_getparam:
+     case __NR_sched_getscheduler:
++    case __NR_sched_setscheduler:
+       return Allow();
+     case __NR_sched_getaffinity:
+-    case __NR_sched_setscheduler:
+       return RestrictSchedTarget(GetPolicyPid(), sysno);
+     case __NR_prlimit64:
+       // See crbug.com/662450 and setrlimit comment above.
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-musl-tid-caching.patch b/srcpkgs/electron19/files/musl-patches/chromium-musl-tid-caching.patch
new file mode 100644
index 000000000000..cec0ffd551f3
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-musl-tid-caching.patch
@@ -0,0 +1,81 @@
+--- ./sandbox/linux/services/namespace_sandbox.cc.orig
++++ ./sandbox/linux/services/namespace_sandbox.cc
+@@ -209,6 +209,70 @@
+   return base::LaunchProcess(argv, launch_options_copy);
+ }
+ 
++#if defined(__aarch64__) || defined(__arm__) || defined(__powerpc__)
++#define TLS_ABOVE_TP
++#endif
++
++struct musl_pthread
++{
++  /* Part 1 -- these fields may be external or
++  * internal (accessed via asm) ABI. Do not change. */
++  struct pthread *self;
++#ifndef TLS_ABOVE_TP
++  uintptr_t *dtv;
++#endif
++  struct pthread *prev, *next; /* non-ABI */
++  uintptr_t sysinfo;
++#ifndef TLS_ABOVE_TP
++#ifdef CANARY_PAD
++  uintptr_t canary_pad;
++#endif
++  uintptr_t canary;
++#endif
++
++/* Part 2 -- implementation details, non-ABI. */
++  int tid;
++  int errno_val;
++  volatile int detach_state;
++  volatile int cancel;
++  volatile unsigned char canceldisable, cancelasync;
++  unsigned char tsd_used:1;
++  unsigned char dlerror_flag:1;
++  unsigned char *map_base;
++  size_t map_size;
++  void *stack;
++  size_t stack_size;
++  size_t guard_size;
++  void *result;
++  struct __ptcb *cancelbuf;
++  void **tsd;
++  struct {
++    volatile void *volatile head;
++    long off;
++    volatile void *volatile pending;
++  } robust_list;
++  int h_errno_val;
++  volatile int timer_id;
++  locale_t locale;
++  volatile int killlock[1];
++  char *dlerror_buf;
++  void *stdio_locks;
++
++  /* Part 3 -- the positions of these fields relative to
++  * the end of the structure is external and internal ABI. */
++#ifdef TLS_ABOVE_TP
++  uintptr_t canary;
++  uintptr_t *dtv;
++#endif
++};
++
++void MaybeUpdateMuslTidCache()
++{
++  pid_t real_tid = sys_gettid();
++  pid_t* cached_tid_location = &reinterpret_cast<struct musl_pthread*>(pthread_self())->tid;
++  *cached_tid_location = real_tid;
++}
++
+ // static
+ pid_t NamespaceSandbox::ForkInNewPidNamespace(bool drop_capabilities_in_child) {
+   const pid_t pid =
+@@ -226,6 +290,7 @@
+ #if defined(LIBC_GLIBC)
+     MaybeUpdateGlibcTidCache();
+ #endif
++    MaybeUpdateMuslTidCache();
+     return 0;
+   }
+ 
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-no-mallinfo.patch b/srcpkgs/electron19/files/musl-patches/chromium-no-mallinfo.patch
new file mode 100644
index 000000000000..aaa4cebf84e9
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-no-mallinfo.patch
@@ -0,0 +1,95 @@
+--- base/trace_event/malloc_dump_provider.cc.orig
++++ base/trace_event/malloc_dump_provider.cc
+@@ -174,7 +174,8 @@
+ 
+ #if (BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && BUILDFLAG(IS_ANDROID)) || \
+     (!BUILDFLAG(USE_PARTITION_ALLOC_AS_MALLOC) && !BUILDFLAG(IS_WIN) &&    \
+-     !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA))
++     !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_WIN) && !BUILDFLAG(IS_FUCHSIA) && \
++     !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)))
+ void ReportMallinfoStats(ProcessMemoryDump* pmd,
+                          size_t* total_virtual_size,
+                          size_t* resident_size,
+--- base/trace_event/malloc_dump_provider.cc
++++ base/trace_event/malloc_dump_provider.cc
+@@ -339,7 +339,7 @@
+                      &allocated_objects_count);
+ #elif BUILDFLAG(IS_FUCHSIA)
+ // TODO(fuchsia): Port, see https://crbug.com/706592.
+-#else
++#elif defined(__GLIBC__)
+   ReportMallinfoStats(/*pmd=*/nullptr, &total_virtual_size, &resident_size,
+                       &allocated_objects_size, &allocated_objects_count);
+ #endif
+--- base/process/process_metrics_posix.cc.orig
++++ base/process/process_metrics_posix.cc
+@@ -105,7 +105,7 @@
+ 
+ #endif  // !BUILDFLAG(IS_FUCHSIA)
+ 
+-#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#if (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+ namespace {
+ 
+ size_t GetMallocUsageMallinfo() {
+@@ -123,7 +123,7 @@
+ }
+ 
+ }  // namespace
+-#endif  // BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) ||
++#endif  // (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) ||
+         // BUILDFLAG(IS_ANDROID)
+ 
+ size_t ProcessMetrics::GetMallocUsage() {
+@@ -131,9 +131,9 @@
+   malloc_statistics_t stats = {0};
+   malloc_zone_statistics(nullptr, &stats);
+   return stats.size_in_use;
+-#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++#elif (BUILDFLAG(IS_LINUX) && defined(__GLIBC__)) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
+   return GetMallocUsageMallinfo();
+-#elif BUILDFLAG(IS_FUCHSIA)
++#elif BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+   // TODO(fuchsia): Not currently exposed. https://crbug.com/735087.
+   return 0;
+ #endif
+--- third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc.orig
++++ third_party/tflite/src/tensorflow/lite/profiling/memory_info.cc
+@@ -35,7 +35,7 @@
+ 
+ MemoryUsage GetMemoryUsage() {
+   MemoryUsage result;
+-#ifdef __linux__
++#if defined(__linux__) && defined(__GLIBC__)
+   rusage res;
+   if (getrusage(RUSAGE_SELF, &res) == 0) {
+     result.max_rss_kb = res.ru_maxrss;
+--- third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc
++++ third_party/swiftshader/third_party/llvm-subzero/lib/Support/Unix/Process.inc.orig
+@@ -86,11 +86,11 @@
+ }
+
+ size_t Process::GetMallocUsage() {
+-#if defined(HAVE_MALLINFO2)
++#if defined(HAVE_MALLINFO2) && defined(__GLIBC__)
+   struct mallinfo2 mi;
+   mi = ::mallinfo2();
+   return mi.uordblks;
+-#elif defined(HAVE_MALLINFO)
++#elif defined(HAVE_MALLINFO) && defined(__GLIBC__)
+   struct mallinfo mi;
+   mi = ::mallinfo();
+   return mi.uordblks;
+
+--- third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h.orig	2019-09-30 13:03:42.556880537 -0400
++++ third_party/swiftshader/third_party/llvm-10.0/configs/linux/include/llvm/Config/config.h	2019-09-30 13:07:27.989821227 -0400
+@@ -122,7 +122,9 @@
+ /* #undef HAVE_MALLCTL */
+ 
+ /* Define to 1 if you have the `mallinfo' function. */
++#if defined(__GLIBC__)
+ #define HAVE_MALLINFO 1
++#endif
+ 
+ /* Define to 1 if you have the <malloc.h> header file. */
+ #define HAVE_MALLOC_H 1
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-quiche-arena-size.patch b/srcpkgs/electron19/files/musl-patches/chromium-quiche-arena-size.patch
new file mode 100644
index 000000000000..8d2cbe442857
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-quiche-arena-size.patch
@@ -0,0 +1,11 @@
+--- ./net/third_party/quiche/src/quiche/quic/core/quic_one_block_arena.h	2022-06-14 11:16:54.000000000 +0200
++++ -	2022-07-09 09:24:13.956440529 +0200
+@@ -69,7 +69,7 @@
+ 
+ // QuicConnections currently use around 1KB of polymorphic types which would
+ // ordinarily be on the heap. Instead, store them inline in an arena.
+-using QuicConnectionArena = QuicOneBlockArena<1152>;
++using QuicConnectionArena = QuicOneBlockArena<1504>;
+ 
+ }  // namespace quic
+ 
diff --git a/srcpkgs/electron19/files/musl-patches/chromium-xxx-ppc64le-support.patch b/srcpkgs/electron19/files/musl-patches/chromium-xxx-ppc64le-support.patch
new file mode 100644
index 000000000000..c893d9b078fb
--- /dev/null
+++ b/srcpkgs/electron19/files/musl-patches/chromium-xxx-ppc64le-support.patch
@@ -0,0 +1,188 @@
+diff --git sandbox/linux/bpf_dsl/seccomp_macros.h sandbox/linux/bpf_dsl/seccomp_macros.h
+index a6aec544e..2a4a7f1bc 100644
+--- sandbox/linux/bpf_dsl/seccomp_macros.h
++++ sandbox/linux/bpf_dsl/seccomp_macros.h
+@@ -16,7 +16,7 @@
+ #if defined(__mips__)
+ // sys/user.h in eglibc misses size_t definition
+ #include <stddef.h>
+-#elif defined(__powerpc64__)
++#elif defined(__powerpc64__) && defined(__GLIBC__)
+ // Manually define greg_t on ppc64
+ typedef unsigned long long greg_t;
+ #endif
+@@ -361,11 +361,11 @@ typedef struct pt_regs regs_struct;
+ #define SECCOMP_ARCH AUDIT_ARCH_PPC64
+ #endif
+ 
+-#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.regs->gpr[_reg])
++#define SECCOMP_REG(_ctx, _reg) (((struct pt_regs *)(_ctx)->uc_mcontext.regs)->gpr[_reg])
+ 
+ #define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, 3)
+ #define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, 0)
+-#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.regs->nip
++#define SECCOMP_IP(_ctx) ((struct pt_regs *)(_ctx)->uc_mcontext.regs)->nip
+ #define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, 3)
+ #define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, 4)
+ #define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, 5)
+diff --git sandbox/linux/seccomp-bpf/syscall.cc sandbox/linux/seccomp-bpf/syscall.cc
+index d53a7ff56..c290f0e92 100644
+--- sandbox/linux/seccomp-bpf/syscall.cc
++++ sandbox/linux/seccomp-bpf/syscall.cc
+@@ -499,9 +499,9 @@ void Syscall::PutValueInUcontext(intptr_t ret_val, ucontext_t* ctx) {
+   // Same as MIPS, need to invert ret and set error register (cr0.SO)
+   if (ret_val <= -1 && ret_val >= -4095) {
+     ret_val = -ret_val;
+-    ctx->uc_mcontext.regs->ccr |= (1 << 28);
++    ((struct pt_regs *)ctx->uc_mcontext.regs)->ccr |= (1 << 28);
+   } else {
+-    ctx->uc_mcontext.regs->ccr &= ~(1 << 28);
++    ((struct pt_regs *)ctx->uc_mcontext.regs)->ccr &= ~(1 << 28);
+   }
+ #endif
+   SECCOMP_RESULT(ctx) = static_cast<greg_t>(ret_val);
+--- third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h.orig
++++ third_party/abseil-cpp/absl/base/internal/unscaledcycleclock.h
+@@ -46,7 +46,7 @@
+ 
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+-    defined(__powerpc__) || defined(__ppc__) || defined(__riscv) ||     \
++    ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || defined(__riscv) ||     \
+     defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
+--- third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
++++ third_party/abseil-cpp/absl/debugging/internal/stacktrace_config.h
+@@ -64,7 +64,7 @@
+ #elif defined(__i386__) || defined(__x86_64__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+   "absl/debugging/internal/stacktrace_x86-inl.inc"
+-#elif defined(__ppc__) || defined(__PPC__)
++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+   "absl/debugging/internal/stacktrace_powerpc-inl.inc"
+ #elif defined(__aarch64__)
+diff --git third_party/breakpad/BUILD.gn third_party/breakpad/BUILD.gn
+index f9a60e37..25f3a0b7 100644
+--- third_party/breakpad/BUILD.gn
++++ third_party/breakpad/BUILD.gn
+@@ -637,6 +637,7 @@ if (is_linux || is_android) {
+ 
+     if (current_cpu == "ppc64") {
+         defines = [ "HAVE_GETCONTEXT" ]
++        libs += [ "ucontext" ]
+     } else {
+         sources += [
+             "breakpad/src/common/linux/breakpad_getcontext.S"
+diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+index 03afec7a..0264ecf1 100644
+--- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
++++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+@@ -273,6 +273,9 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+ 
+ #elif defined(__powerpc64__)
+ 
++#include <asm/elf.h>
++#include <asm/ptrace.h>
++
+ uintptr_t ThreadInfo::GetInstructionPointer() const {
+     return mcontext.gp_regs[PT_NIP];
+ }
+@@ -290,9 +293,9 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+     out->ctr = mcontext.gp_regs[PT_CTR];
+     
+     for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
+-        out->float_save.fpregs[i] = mcontext.fp_regs[i];
++        out->float_save.fpregs[i] = ((uint64_t *)&mcontext.fp_regs)[i];
+ 
+-    out->float_save.fpscr = mcontext.fp_regs[NFPREG-1];
++    out->float_save.fpscr = ((uint64_t *)&mcontext.fp_regs)[ELF_NFPREG-1];
+ 
+     for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
+         out->vector_save.save_vr[i] = \
+diff --git third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+index 1090470f..e580233d 100644
+--- third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -257,6 +257,9 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
+ 
+ #elif defined(__powerpc64__)
+ 
++#include <asm/elf.h>
++#include <asm/ptrace.h>
++
+ uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
+     return uc->uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP];
+ }
+@@ -280,9 +283,9 @@ void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+     out->ctr = uc->uc_mcontext.gp_regs[PT_CTR];
+     
+     for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
+-        out->float_save.fpregs[i] = uc->uc_mcontext.fp_regs[i];
++        out->float_save.fpregs[i] = ((uint64_t *)&uc->uc_mcontext.fp_regs)[i];
+ 
+-    out->float_save.fpscr = uc->uc_mcontext.fp_regs[NFPREG-1];
++    out->float_save.fpscr = ((uint64_t *)&uc->uc_mcontext.fp_regs)[ELF_NFPREG-1];
+ 
+     for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
+         out->vector_save.save_vr[i] =
+diff --git third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+index 5a7ab50c..ee8b858c 100644
+--- third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -105,6 +105,11 @@
+ #define PR_SET_PTRACER 0x59616d61
+ #endif
+ 
++/* musl hack, can't include asm/ptrace.h as that causes conflicts */
++#if defined(__powerpc64__) && !defined(PT_NIP)
++#define PT_NIP 32
++#endif
++
+ namespace google_breakpad {
+ 
+ namespace {
+diff --git third_party/crashpad/crashpad/snapshot/linux/signal_context.h third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+index 8e335a09..b2a0f155 100644
+--- third_party/crashpad/crashpad/snapshot/linux/signal_context.h
++++ third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+@@ -469,7 +469,7 @@ struct MContext64 {
+   SignalThreadContext64 gp_regs;
+   SignalFloatContext64  fp_regs;
+   SignalVectorContext64 *v_regs;
+-  int64_t vmx_reserve[69];
++  int64_t vmx_reserve[101];
+ };
+ 
+ struct ContextTraits64 : public Traits64 {
+diff --git third_party/crashpad/crashpad/util/linux/thread_info.h third_party/crashpad/crashpad/util/linux/thread_info.h
+index dea0d1f3..b203e5b2 100644
+--- third_party/crashpad/crashpad/util/linux/thread_info.h
++++ third_party/crashpad/crashpad/util/linux/thread_info.h
+@@ -30,6 +30,7 @@
+ 
+ #if defined(ARCH_CPU_PPC64_FAMILY)
+ #include <sys/ucontext.h>
++#include <asm/ptrace.h>
+ #endif
+ 
+ namespace crashpad {
+diff --git third_party/lss/linux_syscall_support.h third_party/lss/linux_syscall_support.h
+index 9955ce44..4c1cc488 100644
+--- third_party/lss/linux_syscall_support.h
++++ third_party/lss/linux_syscall_support.h
+@@ -4216,9 +4216,13 @@ struct kernel_statfs {
+     }
+   #endif
+   #if defined(__NR_fstatat64)
++    // musl does #define fstatat64 fstatat
++    #undef fstatat64
+     LSS_INLINE _syscall4(int,   fstatat64,        int,   d,
+                          const char *,      p,
+                          struct kernel_stat64 *,   b,    int,   f)
++    // set it back like it was
++    #define fstatat64 fstatat
+   #endif
+   #if defined(__NR_waitpid)
+     // waitpid is polyfilled below when not available.
diff --git a/srcpkgs/electron19/files/patches/chromium-102-fenced_frame_utils-include.patch b/srcpkgs/electron19/files/patches/chromium-102-fenced_frame_utils-include.patch
new file mode 100644
index 000000000000..61f904bad6a4
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-102-fenced_frame_utils-include.patch
@@ -0,0 +1,25 @@
+From 7c135a291184b59a59643ed6a8c40b4405ac0175 Mon Sep 17 00:00:00 2001
+From: Stephan Hartmann <stha09@googlemail.com>
+Date: Wed, 27 Apr 2022 16:01:01 +0000
+Subject: [PATCH] IWYU: add cstring for std::strlen in fenced_frame_utils
+
+---
+ third_party/blink/common/fenced_frame/fenced_frame_utils.cc | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
+index 9e2d3ad..68f4823 100644
+--- a/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
++++ b/third_party/blink/common/fenced_frame/fenced_frame_utils.cc
+@@ -4,6 +4,8 @@
+ 
+ #include "third_party/blink/public/common/fenced_frame/fenced_frame_utils.h"
+ 
++#include <cstring>
++
+ #include "base/guid.h"
+ #include "base/strings/string_util.h"
+ 
+-- 
+2.35.1
+
diff --git a/srcpkgs/electron19/files/patches/chromium-102-regex_pattern-array.patch b/srcpkgs/electron19/files/patches/chromium-102-regex_pattern-array.patch
new file mode 100644
index 000000000000..18058b1faa45
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-102-regex_pattern-array.patch
@@ -0,0 +1,14 @@
+--- a/components/autofill/core/browser/BUILD.gn
++++ b/components/autofill/core/browser/BUILD.gn
+@@ -54,6 +54,11 @@ action("regex_patterns_inl_h") {
+ }
+ 
+ static_library("browser") {
++  if (is_clang) {
++    cflags = [
++      "-fbracket-depth=1000",
++    ]
++  }
+   sources = [
+     "address_normalization_manager.cc",
+     "address_normalization_manager.h",
diff --git a/srcpkgs/electron19/files/patches/chromium-93-ffmpeg-4.4.patch b/srcpkgs/electron19/files/patches/chromium-93-ffmpeg-4.4.patch
new file mode 100644
index 000000000000..f0ec736f98bc
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-93-ffmpeg-4.4.patch
@@ -0,0 +1,36 @@
+diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
+index ac4713b07268..492a9a37d096 100644
+--- a/media/filters/ffmpeg_demuxer.cc
++++ b/media/filters/ffmpeg_demuxer.cc
+@@ -427,11 +427,11 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+   scoped_refptr<DecoderBuffer> buffer;
+ 
+   if (type() == DemuxerStream::TEXT) {
+-    size_t id_size = 0;
++    int id_size = 0;
+     uint8_t* id_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_IDENTIFIER, &id_size);
+ 
+-    size_t settings_size = 0;
++    int settings_size = 0;
+     uint8_t* settings_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_WEBVTT_SETTINGS, &settings_size);
+ 
+@@ -443,7 +443,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+     buffer = DecoderBuffer::CopyFrom(packet->data, packet->size,
+                                      side_data.data(), side_data.size());
+   } else {
+-    size_t side_data_size = 0;
++    int side_data_size = 0;
+     uint8_t* side_data = av_packet_get_side_data(
+         packet.get(), AV_PKT_DATA_MATROSKA_BLOCKADDITIONAL, &side_data_size);
+ 
+@@ -504,7 +504,7 @@ void FFmpegDemuxerStream::EnqueuePacket(ScopedAVPacket packet) {
+                                        packet->size - data_offset);
+     }
+ 
+-    size_t skip_samples_size = 0;
++    int skip_samples_size = 0;
+     const uint32_t* skip_samples_ptr =
+         reinterpret_cast<const uint32_t*>(av_packet_get_side_data(
+             packet.get(), AV_PKT_DATA_SKIP_SAMPLES, &skip_samples_size));
diff --git a/srcpkgs/electron19/files/patches/chromium-browser-size_t.patch b/srcpkgs/electron19/files/patches/chromium-browser-size_t.patch
new file mode 100644
index 000000000000..36af0ec6c4a7
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-browser-size_t.patch
@@ -0,0 +1,10 @@
+--- a/chrome/browser/search/background/ntp_backgrounds.h	2020-08-10 20:39:20.000000000 +0200
++++ b/chrome/browser/search/background/ntp_backgrounds.h	2020-09-04 13:48:22.640023256 +0200
+@@ -6,6 +6,7 @@
+ #define CHROME_BROWSER_SEARCH_BACKGROUND_NTP_BACKGROUNDS_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ class GURL;
+ 
diff --git a/srcpkgs/electron19/files/patches/chromium-cursed^Uscoped_file.patch b/srcpkgs/electron19/files/patches/chromium-cursed^Uscoped_file.patch
new file mode 100644
index 000000000000..2e5433f7abce
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-cursed^Uscoped_file.patch
@@ -0,0 +1,18 @@
+--- a/base/files/scoped_file_linux.cc.orig
++++ b/base/files/scoped_file_linux.cc
+@@ -77,15 +77,3 @@
+ }
+ 
+ }  // namespace base
+-
+-extern "C" {
+-
+-int __close(int);
+-
+-__attribute__((visibility("default"), noinline)) int close(int fd) {
+-  if (base::IsFDOwned(fd) && g_is_ownership_enforced)
+-    CrashOnFdOwnershipViolation();
+-  return __close(fd);
+-}
+-
+-}  // extern "C"
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch b/srcpkgs/electron19/files/patches/chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
new file mode 100644
index 000000000000..b56717b9ce32
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-missing-TEMP_FAILURE_RETRY-macro.patch
@@ -0,0 +1,21 @@
+This macro is defined in glibc, but not musl.
+
+--- a/sandbox/linux/suid/process_util.h.orig
++++ b/sandbox/linux/suid/process_util.h
+@@ -11,6 +11,16 @@
+ #include <stdint.h>
+ #include <sys/types.h>
+ 
++// Some additional functions
++#if !defined(TEMP_FAILURE_RETRY)
++# define TEMP_FAILURE_RETRY(expression) \
++	(__extension__			\
++	 ({ long int __result;		\
++	  do __result = (long int) (expression); \
++	  while (__result == -1L && errno == EINTR); \
++	  __result; }))
++#endif
++
+ // This adjusts /proc/process/oom_score_adj so the Linux OOM killer
+ // will prefer certain process types over others. The range for the
+ // adjustment is [-1000, 1000], with [0, 1000] being user accessible.
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-missing-cstdint-include-musl.patch b/srcpkgs/electron19/files/patches/chromium-fix-missing-cstdint-include-musl.patch
new file mode 100644
index 000000000000..6ca2897f3dd2
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-missing-cstdint-include-musl.patch
@@ -0,0 +1,10 @@
+--- a/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
++++ b/net/third_party/quiche/src/quiche/http2/adapter/window_manager.h
+@@ -3,6 +3,7 @@
+ 
+ #include <stddef.h>
+ 
++#include <cstdint>
+ #include <functional>
+ 
+ #include "quiche/common/platform/api/quiche_export.h"
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-musl-missing-unistd_h-include.patch b/srcpkgs/electron19/files/patches/chromium-fix-musl-missing-unistd_h-include.patch
new file mode 100644
index 000000000000..e14d009a9e0b
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-musl-missing-unistd_h-include.patch
@@ -0,0 +1,10 @@
+--- a/sandbox/linux/services/credentials.h
++++ b/sandbox/linux/services/credentials.h
+@@ -13,6 +13,7 @@
+ 
+ #include <string>
+ #include <vector>
++#include <unistd.h>
+ 
+ #include "sandbox/linux/system_headers/capability.h"
+ #include "sandbox/sandbox_export.h"
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-narrowing-cast.patch b/srcpkgs/electron19/files/patches/chromium-fix-narrowing-cast.patch
new file mode 100644
index 000000000000..afd42a1489ae
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-narrowing-cast.patch
@@ -0,0 +1,53 @@
+--- a/base/files/file_util_linux.cc
++++ b/base/files/file_util_linux.cc
+@@ -23,14 +23,14 @@
+ 
+   // Not all possible |statfs_buf.f_type| values are in linux/magic.h.
+   // Missing values are copied from the statfs man page.
+-  switch (statfs_buf.f_type) {
++  switch (static_cast<uintmax_t>(statfs_buf.f_type)) {
+     case 0:
+       *type = FILE_SYSTEM_0;
+       break;
+     case EXT2_SUPER_MAGIC:  // Also ext3 and ext4
+     case MSDOS_SUPER_MAGIC:
+     case REISERFS_SUPER_MAGIC:
+-    case static_cast<int>(BTRFS_SUPER_MAGIC):
++    case BTRFS_SUPER_MAGIC:
+     case 0x5346544E:  // NTFS
+     case 0x58465342:  // XFS
+     case 0x3153464A:  // JFS
+@@ -40,14 +40,14 @@
+       *type = FILE_SYSTEM_NFS;
+       break;
+     case SMB_SUPER_MAGIC:
+-    case static_cast<int>(0xFF534D42):  // CIFS
++    case 0xFF534D42:  // CIFS
+       *type = FILE_SYSTEM_SMB;
+       break;
+     case CODA_SUPER_MAGIC:
+       *type = FILE_SYSTEM_CODA;
+       break;
+-    case static_cast<int>(HUGETLBFS_MAGIC):
+-    case static_cast<int>(RAMFS_MAGIC):
++    case HUGETLBFS_MAGIC:
++    case RAMFS_MAGIC:
+     case TMPFS_MAGIC:
+       *type = FILE_SYSTEM_MEMORY;
+       break;
+--- a/base/system/sys_info_posix.cc
++++ b/base/system/sys_info_posix.cc
+@@ -100,10 +100,10 @@
+   if (HANDLE_EINTR(statfs(path.value().c_str(), &stats)) != 0)
+     return false;
+ 
+-  switch (stats.f_type) {
++  switch (static_cast<uintmax_t>(stats.f_type)) {
+     case TMPFS_MAGIC:
+-    case static_cast<int>(HUGETLBFS_MAGIC):
+-    case static_cast<int>(RAMFS_MAGIC):
++    case HUGETLBFS_MAGIC:
++    case RAMFS_MAGIC:
+       return true;
+   }
+   return false;
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-nasm-musl-config.patch b/srcpkgs/electron19/files/patches/chromium-fix-nasm-musl-config.patch
new file mode 100644
index 000000000000..7a0337f3bf3b
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-nasm-musl-config.patch
@@ -0,0 +1,12 @@
+--- a/third_party/nasm/config/config-linux.h
++++ b/third_party/nasm/config/config-linux.h
+@@ -139,7 +139,9 @@
+ #define HAVE_ACCESS 1
+ 
+ /* Define to 1 if you have the `canonicalize_file_name' function. */
++#ifdef __GLIBC__
+ #define HAVE_CANONICALIZE_FILE_NAME 1
++#endif
+ 
+ /* Define to 1 if you have the `cpu_to_le16' intrinsic function. */
+ /* #undef HAVE_CPU_TO_LE16 */
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-perfetto-GetThreadName-musl.patch b/srcpkgs/electron19/files/patches/chromium-fix-perfetto-GetThreadName-musl.patch
new file mode 100644
index 000000000000..4014d1ee5e69
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-perfetto-GetThreadName-musl.patch
@@ -0,0 +1,22 @@
+--- a/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
++++ b/third_party/perfetto/include/perfetto/ext/base/thread_utils.h
+@@ -30,7 +30,8 @@
+ #include <algorithm>
+ #endif
+ 
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
++    (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !defined(__GLIBC__))
+ #include <sys/prctl.h>
+ #endif
+ 
+@@ -58,7 +59,8 @@
+ 
+ inline bool GetThreadName(std::string& out_result) {
+   char buf[16] = {};
+-#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID)
++#if PERFETTO_BUILDFLAG(PERFETTO_OS_ANDROID) || \
++    (PERFETTO_BUILDFLAG(PERFETTO_OS_LINUX) && !defined(__GLIBC__))
+   if (prctl(PR_GET_NAME, buf) != 0)
+     return false;
+ #else
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-resolver-musl.patch b/srcpkgs/electron19/files/patches/chromium-fix-resolver-musl.patch
new file mode 100644
index 000000000000..6bb7aaabb76c
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-resolver-musl.patch
@@ -0,0 +1,66 @@
+--- a/net/dns/public/scoped_res_state.cc.orig
++++ b/net/dns/public/scoped_res_state.cc
+@@ -13,7 +13,7 @@
+ namespace net {
+ 
+ ScopedResState::ScopedResState() {
+-#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA)
++#if BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+   // Note: res_ninit in glibc always returns 0 and sets RES_INIT.
+   // res_init behaves the same way.
+   memset(&_res, 0, sizeof(_res));
+--- a/net/dns/public/scoped_res_state.cc
++++ b/net/dns/public/scoped_res_state.cc
+@@ -25,7 +25,7 @@
+ }
+ 
+ ScopedResState::~ScopedResState() {
+-#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
++#if !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+ 
+   // Prefer res_ndestroy where available.
+ #if BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+@@ -34,7 +34,7 @@
+   res_nclose(&res_);
+ #endif  // BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_FREEBSD)
+ 
+-#endif  // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA)
++#endif  // !BUILDFLAG(IS_OPENBSD) && !BUILDFLAG(IS_FUCHSIA) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+ }
+ 
+ bool ScopedResState::IsValid() const {
+--- a/net/dns/host_resolver_manager.cc.orig
++++ b/net/dns/host_resolver_manager.cc
+@@ -3015,7 +3015,7 @@
+   if (system_dns_config_notifier_)
+     system_dns_config_notifier_->AddObserver(this);
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \
+-    !BUILDFLAG(IS_ANDROID)
++    !BUILDFLAG(IS_ANDROID) && !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+   EnsureDnsReloaderInit();
+ #endif
+ 
+--- a/net/dns/dns_reloader.cc.orig
++++ b/net/dns/dns_reloader.cc
+@@ -7,7 +7,8 @@
+ #include "build/build_config.h"
+ 
+ #if BUILDFLAG(IS_POSIX) && !BUILDFLAG(IS_APPLE) && !BUILDFLAG(IS_OPENBSD) && \
+-    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA)
++    !BUILDFLAG(IS_ANDROID) && !BUILDFLAG(IS_FUCHSIA) && \
++    !(BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+ 
+ #include <resolv.h>
+ 
+--- a/net/dns/host_resolver_proc.cc.orig
++++ b/net/dns/host_resolver_proc.cc
+@@ -177,7 +177,8 @@
+                                                 base::BlockingType::WILL_BLOCK);
+ 
+ #if BUILDFLAG(IS_POSIX) && \
+-    !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID))
++    !(BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_OPENBSD) || BUILDFLAG(IS_ANDROID) || \
++    (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__)))
+   DnsReloaderMaybeReload();
+ #endif
+   absl::optional<AddressInfo> ai;
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-stack-utils-with-musl.patch b/srcpkgs/electron19/files/patches/chromium-fix-stack-utils-with-musl.patch
new file mode 100644
index 000000000000..7936aa6e0db4
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-stack-utils-with-musl.patch
@@ -0,0 +1,20 @@
+--- a/third_party/blink/renderer/platform/wtf/stack_util.cc.orig
++++ b/third_party/blink/renderer/platform/wtf/stack_util.cc
+@@ -29,7 +29,7 @@
+ // FIXME: On Mac OSX and Linux, this method cannot estimate stack size
+ // correctly for the main thread.
+ 
+-#elif defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++#elif BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
+     BUILDFLAG(IS_FUCHSIA)
+   // pthread_getattr_np() can fail if the thread is not invoked by
+   // pthread_create() (e.g., the main thread of blink_unittests).
+@@ -97,7 +97,7 @@
+ }
+ 
+ void* GetStackStart() {
+-#if defined(__GLIBC__) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_FREEBSD) || \
+     BUILDFLAG(IS_FUCHSIA)
+   pthread_attr_t attr;
+   int error;
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-swiftshader-llvm-musl-config.patch b/srcpkgs/electron19/files/patches/chromium-fix-swiftshader-llvm-musl-config.patch
new file mode 100644
index 000000000000..7bf63bd33d4e
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-swiftshader-llvm-musl-config.patch
@@ -0,0 +1,26 @@
+--- a/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
++++ b/third_party/swiftshader/third_party/llvm-subzero/build/Linux/include/llvm/Config/config.h
+@@ -17,7 +17,11 @@
+ #define ENABLE_CRASH_OVERRIDES 0
+ 
+ /* Define to 1 if you have the `backtrace' function. */
++#ifdef __GLIBC__
+ #define HAVE_BACKTRACE 1
++#else
++#define HAVE_BACKTRACE 0
++#endif
+ 
+ /* Define to 1 if you have the <CrashReporterClient.h> header file. */
+ /* #undef HAVE_CRASHREPORTERCLIENT_H */
+@@ -58,7 +62,11 @@
+ #define HAVE_ERRNO_H 1
+ 
+ /* Define to 1 if you have the <execinfo.h> header file. */
++#ifdef __GLIBC__
+ #define HAVE_EXECINFO_H 1
++#else
++#define HAVE_EXECINFO_H 0
++#endif
+ 
+ /* Define to 1 if you have the <fcntl.h> header file. */
+ #define HAVE_FCNTL_H 1
diff --git a/srcpkgs/electron19/files/patches/chromium-fix-unbundled-libxmnl.patch b/srcpkgs/electron19/files/patches/chromium-fix-unbundled-libxmnl.patch
new file mode 100644
index 000000000000..e7f291f88a65
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-fix-unbundled-libxmnl.patch
@@ -0,0 +1,10 @@
+--- a/build/linux/unbundle/libxml.gn	2022-06-14 11:14:53.000000000 +0200
++++ -	2022-07-08 22:53:21.278254993 +0200
+@@ -20,6 +20,7 @@
+     ":xml_writer",
+     "//base/test:test_support",
+     "//services/data_decoder:xml_parser_fuzzer_deps",
++    "//services/data_decoder:lib",
+   ]
+   sources = [
+     "chromium/libxml_utils.cc",
diff --git a/srcpkgs/electron19/files/patches/chromium-libc_malloc.patch b/srcpkgs/electron19/files/patches/chromium-libc_malloc.patch
new file mode 100644
index 000000000000..414f28765d69
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-libc_malloc.patch
@@ -0,0 +1,34 @@
+--- a/base/process/memory_linux.cc
++++ b/base/process/memory_linux.cc
+@@ -18,6 +18,13 @@
+ #include "base/threading/thread_restrictions.h"
+ #include "build/build_config.h"
+ 
++#if defined(LIBC_GLIBC)
++extern "C" {
++extern void *__libc_malloc(size_t size);
++extern void *__libc_free(void *ptr);
++}
++#endif
++
+ namespace base {
+ 
+ namespace {
+@@ -111,7 +118,7 @@
+ #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC)
+   *result = malloc(size);
+ #elif defined(LIBC_GLIBC)
+-  *result = __libc_malloc(size);
++  *result = ::__libc_malloc(size);
+ #endif
+   return *result != nullptr;
+ }
+@@ -122,7 +129,7 @@
+ #elif defined(MEMORY_TOOL_REPLACES_ALLOCATOR) || !defined(LIBC_GLIBC)
+   free(ptr);
+ #elif defined(LIBC_GLIBC)
+-  __libc_free(ptr);
++  ::__libc_free(ptr);
+ #endif
+ }
+ 
diff --git a/srcpkgs/electron19/files/patches/chromium-musl-stat.patch b/srcpkgs/electron19/files/patches/chromium-musl-stat.patch
new file mode 100644
index 000000000000..b25e3c062172
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-musl-stat.patch
@@ -0,0 +1,12 @@
+--- a/base/files/file.h.orig
++++ b/base/files/file.h
+@@ -19,7 +19,8 @@
+ #include "build/build_config.h"
+ 
+ #if BUILDFLAG(IS_BSD) || BUILDFLAG(IS_APPLE) || BUILDFLAG(IS_NACL) || \
+-    BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21)
++    BUILDFLAG(IS_FUCHSIA) || (BUILDFLAG(IS_ANDROID) && __ANDROID_API__ < 21) || \
++    (BUILDFLAG(IS_LINUX) && !defined(__GLIBC__))
+ struct stat;
+ namespace base {
+ typedef struct stat stat_wrapper_t;
diff --git a/srcpkgs/electron19/files/patches/chromium-musl-v8-monotonic-pthread-cont_timedwait.patch b/srcpkgs/electron19/files/patches/chromium-musl-v8-monotonic-pthread-cont_timedwait.patch
new file mode 100644
index 000000000000..cb2e715fe206
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-musl-v8-monotonic-pthread-cont_timedwait.patch
@@ -0,0 +1,24 @@
+Use monotonic clock for pthread_cond_timedwait with musl too.
+
+diff --git a/v8/src/base/platform/condition-variable.cc b/v8/src/base/platform/condition-variable.cc
+index 5ea7083..c13027e 100644
+--- a/v8/src/base/platform/condition-variable.cc
++++ a/v8/src/base/platform/condition-variable.cc
+@@ -16,7 +16,7 @@ namespace base {
+ 
+ ConditionVariable::ConditionVariable() {
+ #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
+-     (V8_OS_LINUX && V8_LIBC_GLIBC))
++     V8_OS_LINUX)
+   // On Free/Net/OpenBSD and Linux with glibc we can change the time
+   // source for pthread_cond_timedwait() to use the monotonic clock.
+   pthread_condattr_t attr;
+@@ -92,7 +92,7 @@ bool ConditionVariable::WaitFor(Mutex* mutex, const TimeDelta& rel_time) {
+       &native_handle_, &mutex->native_handle(), &ts);
+ #else
+ #if (V8_OS_FREEBSD || V8_OS_NETBSD || V8_OS_OPENBSD || \
+-     (V8_OS_LINUX && V8_LIBC_GLIBC))
++     V8_OS_LINUX)
+   // On Free/Net/OpenBSD and Linux with glibc we can change the time
+   // source for pthread_cond_timedwait() to use the monotonic clock.
+   result = clock_gettime(CLOCK_MONOTONIC, &ts);
diff --git a/srcpkgs/electron19/files/patches/chromium-no-execinfo.patch b/srcpkgs/electron19/files/patches/chromium-no-execinfo.patch
new file mode 100644
index 000000000000..6e67182b21b6
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-no-execinfo.patch
@@ -0,0 +1,75 @@
+--- a/base/debug/stack_trace_posix.cc
++++ b/base/debug/stack_trace_posix.cc
+@@ -27,7 +27,7 @@
+ #if !defined(USE_SYMBOLIZE)
+ #include <cxxabi.h>
+ #endif
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ #include <execinfo.h>
+ #endif
+ 
+@@ -89,7 +89,7 @@
+   // Note: code in this function is NOT async-signal safe (std::string uses
+   // malloc internally).
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   std::string::size_type search_from = 0;
+   while (search_from < text->size()) {
+     // Look for the start of a mangled symbol, from search_from.
+@@ -136,7 +136,7 @@
+   virtual ~BacktraceOutputHandler() = default;
+ };
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ void OutputPointer(void* pointer, BacktraceOutputHandler* handler) {
+   // This should be more than enough to store a 64-bit number in hex:
+   // 16 hex digits + 1 for null-terminator.
+@@ -839,7 +839,7 @@
+   // If we do not have unwind tables, then try tracing using frame pointers.
+   return base::debug::TraceStackFramePointers(const_cast<const void**>(trace),
+                                               count, 0);
+-#elif !defined(__UCLIBC__) && !defined(_AIX)
++#elif defined(__GLIBC__) && !defined(_AIX)
+   // Though the backtrace API man page does not list any possible negative
+   // return values, we take no chance.
+   return base::saturated_cast<size_t>(backtrace(trace, count));
+@@ -852,13 +852,13 @@
+ // NOTE: This code MUST be async-signal safe (it's used by in-process
+ // stack dumping signal handler). NO malloc or stdio is allowed here.
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+   PrintBacktraceOutputHandler handler;
+   ProcessBacktrace(trace_, count_, prefix_string, &handler);
+ #endif
+ }
+ 
+-#if !defined(__UCLIBC__) && !defined(_AIX)
++#if defined(__GLIBC__) && !defined(_AIX)
+ void StackTrace::OutputToStreamWithPrefix(std::ostream* os,
+                                           const char* prefix_string) const {
+   StreamBacktraceOutputHandler handler(os);
+--- a/v8/src/codegen/external-reference-table.cc.orig
++++ b/v8/src/codegen/external-reference-table.cc
+@@ -11,7 +11,9 @@
+
+ #if defined(DEBUG) && defined(V8_OS_LINUX) && !defined(V8_OS_ANDROID)
+ #define SYMBOLIZE_FUNCTION
++#if defined(__GLIBC__)
+ #include <execinfo.h>
++#endif
+
+ #include <vector>
+
+@@ -96,7 +98,7 @@
+ }
+
+ const char* ExternalReferenceTable::ResolveSymbol(void* address) {
+-#ifdef SYMBOLIZE_FUNCTION
++#if defined(SYMBOLIZE_FUNCTION) && defined(__GLIBC__)
+   char** names = backtrace_symbols(&address, 1);
+   const char* name = names[0];
+   // The array of names is malloc'ed. However, each name string is static
diff --git a/srcpkgs/electron19/files/patches/chromium-no-getcontext.patch b/srcpkgs/electron19/files/patches/chromium-no-getcontext.patch
new file mode 100644
index 000000000000..2502b5a06acb
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-no-getcontext.patch
@@ -0,0 +1,27 @@
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc.orig	2015-12-06 09:59:55.554536646 +0100
++++ a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc	2015-12-06 10:01:16.818238035 +0100
+@@ -477,7 +477,9 @@ bool ExceptionHandler::SimulateSignalDel
+   siginfo.si_code = SI_USER;
+   siginfo.si_pid = getpid();
+   ucontext_t context;
++#if defined(__GLIBC__)
+   getcontext(&context);
++#endif
+   return HandleSignal(sig, &siginfo, &context);
+ }
+ 
+@@ -647,9 +649,14 @@ bool ExceptionHandler::WriteMinidump() {
+   sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
+ 
+   CrashContext context;
++
++#if defined(__GLIBC__)
+   int getcontext_result = getcontext(&context.context);
+   if (getcontext_result)
+     return false;
++#else
++  return false;
++#endif
+ 
+ #if defined(__i386__)
+   // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
diff --git a/srcpkgs/electron19/files/patches/chromium-no-opaque-pointers.patch b/srcpkgs/electron19/files/patches/chromium-no-opaque-pointers.patch
new file mode 100644
index 000000000000..367bea0f92e5
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-no-opaque-pointers.patch
@@ -0,0 +1,17 @@
+--- a/build/config/compiler/BUILD.gn	2022-07-08 23:17:39.889019407 +0200
++++ -	2022-07-08 23:23:22.740712991 +0200
+@@ -1531,14 +1531,6 @@
+         cflags += [ "-Wno-deprecated-non-prototype" ]
+       }
+ 
+-      if (!is_nacl && !(is_chromeos ||
+-                        default_toolchain == "//build/toolchain/cros:target")) {
+-        # TODO(https://crbug.com/1316298): Re-enable once test failure is figured out
+-        cflags += [
+-          "-Xclang",
+-          "-no-opaque-pointers",
+-        ]
+-      }
+ 
+       if (is_fuchsia) {
+         # TODO(https://bugs.chromium.org/p/fuchsia/issues/detail?id=77383)
diff --git a/srcpkgs/electron19/files/patches/chromium-remove-sys-cdefs-includes.patch b/srcpkgs/electron19/files/patches/chromium-remove-sys-cdefs-includes.patch
new file mode 100644
index 000000000000..00344073f461
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-remove-sys-cdefs-includes.patch
@@ -0,0 +1,39 @@
+--- a/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
++++ b/third_party/crashpad/crashpad/compat/linux/sys/ptrace.h
+@@ -17,8 +17,6 @@
+ 
+ #include_next <sys/ptrace.h>
+ 
+-#include <sys/cdefs.h>
+-
+ // https://sourceware.org/bugzilla/show_bug.cgi?id=22433
+ #if !defined(PTRACE_GET_THREAD_AREA) && !defined(PT_GET_THREAD_AREA) && \
+     defined(__GLIBC__)
+--- a/third_party/libsync/src/include/sync/sync.h
++++ b/third_party/libsync/src/include/sync/sync.h
+@@ -19,12 +19,13 @@
+ #ifndef __SYS_CORE_SYNC_H
+ #define __SYS_CORE_SYNC_H
+ 
+-#include <sys/cdefs.h>
+ #include <stdint.h>
+ 
+ #include <linux/types.h>
+ 
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ 
+ struct sync_legacy_merge_data {
+  int32_t fd2;
+@@ -158,6 +159,8 @@
+                                   struct sync_pt_info *itr);
+ void sync_fence_info_free(struct sync_fence_info_data *info);
+ 
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ 
+ #endif /* __SYS_CORE_SYNC_H */
diff --git a/srcpkgs/electron19/files/patches/chromium-revert-drop-of-system-java.patch b/srcpkgs/electron19/files/patches/chromium-revert-drop-of-system-java.patch
new file mode 100644
index 000000000000..c3f97c7c4d1c
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-revert-drop-of-system-java.patch
@@ -0,0 +1,15 @@
+This was dropped for some reason in 6951c37cecd05979b232a39e5c10e6346a0f74ef
+--- a/third_party/closure_compiler/compiler.py	2021-05-20 04:17:53.000000000 +0200
++++ -	2021-05-25 20:31:10.102971765 +0200
+@@ -13,8 +13,9 @@
+ 
+ 
+ _CURRENT_DIR = os.path.join(os.path.dirname(__file__))
+-_JAVA_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
+-assert os.path.isfile(_JAVA_PATH), "java only allowed in android builds"
++_JAVA_BIN = "java"
++_JDK_PATH = os.path.join(_CURRENT_DIR, "..", "jdk", "current", "bin", "java")
++_JAVA_PATH = _JDK_PATH if os.path.isfile(_JDK_PATH) else _JAVA_BIN
+ 
+ class Compiler(object):
+   """Runs the Closure compiler on given source files to typecheck them
diff --git a/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch b/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch
new file mode 100644
index 000000000000..e739b40a2733
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch
@@ -0,0 +1,333 @@
+From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001
+From: Dale Curtis <dalecurtis@chromium.org>
+Date: Sat, 2 Apr 2022 05:13:53 +0000
+Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125
+ commits)
+
+https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526
+
+Created with:
+  roll-dep src/third_party/ffmpeg
+
+Fixed: 1293918
+Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng
+Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647
+Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
+Reviewed-by: Dan Sanders <sandersd@chromium.org>
+Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
+Cr-Commit-Position: refs/heads/main@{#988253}
+---
+ .../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++---------
+ media/ffmpeg/ffmpeg_common.cc                 | 11 +++----
+ media/filters/audio_file_reader.cc            |  9 +++---
+ media/filters/audio_file_reader_unittest.cc   |  6 ++--
+ .../filters/audio_video_metadata_extractor.cc | 11 +++++--
+ .../filters/ffmpeg_aac_bitstream_converter.cc |  7 +++--
+ ...ffmpeg_aac_bitstream_converter_unittest.cc |  2 +-
+ media/filters/ffmpeg_audio_decoder.cc         | 13 +++++----
+ 8 files changed, 51 insertions(+), 37 deletions(-)
+
+diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+index e4fc3f460e2..9b1ad9f7675 100644
+--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
++++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext(
+       codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
+   }
+ 
+-  codec_context->channels = config.channel_count;
++  codec_context->ch_layout.nb_channels = config.channel_count;
+   codec_context->sample_rate = config.samples_per_second;
+ 
+   if (config.extra_data) {
+@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format,
+     case cdm::kAudioFormatPlanarS16:
+     case cdm::kAudioFormatPlanarF32: {
+       const int decoded_size_per_channel =
+-          decoded_audio_size / av_frame.channels;
+-      for (int i = 0; i < av_frame.channels; ++i) {
++          decoded_audio_size / av_frame.ch_layout.nb_channels;
++      for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
+         memcpy(output_buffer, av_frame.extended_data[i],
+                decoded_size_per_channel);
+         output_buffer += decoded_size_per_channel;
+@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize(
+   // Success!
+   decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
+   samples_per_second_ = config.samples_per_second;
+-  bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
++  bytes_per_frame_ =
++      codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
+   output_timestamp_helper_ =
+       std::make_unique<AudioTimestampHelper>(config.samples_per_second);
+   is_initialized_ = true;
+ 
+   // Store initial values to guard against midstream configuration changes.
+-  channels_ = codec_context_->channels;
++  channels_ = codec_context_->ch_layout.nb_channels;
+   av_sample_format_ = codec_context_->sample_fmt;
+ 
+   return true;
+@@ -291,17 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer(
+   for (auto& frame : audio_frames) {
+     int decoded_audio_size = 0;
+     if (frame->sample_rate != samples_per_second_ ||
+-        frame->channels != channels_ || frame->format != av_sample_format_) {
++        frame->ch_layout.nb_channels != channels_ ||
++        frame->format != av_sample_format_) {
+       DLOG(ERROR) << "Unsupported midstream configuration change!"
+                   << " Sample Rate: " << frame->sample_rate << " vs "
+-                  << samples_per_second_ << ", Channels: " << frame->channels
+-                  << " vs " << channels_ << ", Sample Format: " << frame->format
+-                  << " vs " << av_sample_format_;
++                  << samples_per_second_
++                  << ", Channels: " << frame->ch_layout.nb_channels << " vs "
++                  << channels_ << ", Sample Format: " << frame->format << " vs "
++                  << av_sample_format_;
+       return cdm::kDecodeError;
+     }
+ 
+     decoded_audio_size = av_samples_get_buffer_size(
+-        nullptr, codec_context_->channels, frame->nb_samples,
++        nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
+         codec_context_->sample_fmt, 1);
+     if (!decoded_audio_size)
+       continue;
+@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
+     size_t* total_size,
+     std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
+     AVFrame* frame) {
+-  *total_size += av_samples_get_buffer_size(nullptr, codec_context_->channels,
+-                                            frame->nb_samples,
+-                                            codec_context_->sample_fmt, 1);
++  *total_size += av_samples_get_buffer_size(
++      nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
++      codec_context_->sample_fmt, 1);
+   audio_frames->emplace_back(av_frame_clone(frame));
+   return true;
+ }
+diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
+index 87ca8969626..76f03d6608e 100644
+--- a/media/ffmpeg/ffmpeg_common.cc
++++ b/media/ffmpeg/ffmpeg_common.cc
+@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
+       codec_context->sample_fmt, codec_context->codec_id);
+ 
+   ChannelLayout channel_layout =
+-      codec_context->channels > 8
++      codec_context->ch_layout.nb_channels > 8
+           ? CHANNEL_LAYOUT_DISCRETE
+-          : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
+-                                               codec_context->channels);
++          : ChannelLayoutToChromeChannelLayout(
++                codec_context->ch_layout.u.mask,
++                codec_context->ch_layout.nb_channels);
+ 
+   int sample_rate = codec_context->sample_rate;
+   switch (codec) {
+@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
+                      extra_data, encryption_scheme, seek_preroll,
+                      codec_context->delay);
+   if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
+-    config->SetChannelsForDiscrete(codec_context->channels);
++    config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
+ 
+ #if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
+   // These are bitstream formats unknown to ffmpeg, so they don't have
+@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config,
+ 
+   // TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
+   // said information to decode.
+-  codec_context->channels = config.channels();
++  codec_context->ch_layout.nb_channels = config.channels();
+   codec_context->sample_rate = config.samples_per_second();
+ 
+   if (config.extra_data().empty()) {
+diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
+index 5f257bdfaa6..e1be5aa9a5b 100644
+--- a/media/filters/audio_file_reader.cc
++++ b/media/filters/audio_file_reader.cc
+@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() {
+ 
+   // Verify the channel layout is supported by Chrome.  Acts as a sanity check
+   // against invalid files.  See http://crbug.com/171962
+-  if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
+-                                         codec_context_->channels) ==
++  if (ChannelLayoutToChromeChannelLayout(
++          codec_context_->ch_layout.u.mask,
++          codec_context_->ch_layout.nb_channels) ==
+       CHANNEL_LAYOUT_UNSUPPORTED) {
+     return false;
+   }
+ 
+   // Store initial values to guard against midstream configuration changes.
+-  channels_ = codec_context_->channels;
++  channels_ = codec_context_->ch_layout.nb_channels;
+   audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
+   sample_rate_ = codec_context_->sample_rate;
+   av_sample_format_ = codec_context_->sample_fmt;
+@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame(
+   if (frames_read < 0)
+     return false;
+ 
+-  const int channels = frame->channels;
++  const int channels = frame->ch_layout.nb_channels;
+   if (frame->sample_rate != sample_rate_ || channels != channels_ ||
+       frame->format != av_sample_format_) {
+     DLOG(ERROR) << "Unsupported midstream configuration change!"
+diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
+index 2aba7927a31..1f45a50cace 100644
+--- a/media/filters/audio_file_reader_unittest.cc
++++ b/media/filters/audio_file_reader_unittest.cc
+@@ -121,11 +121,11 @@ class AudioFileReaderTest : public testing::Test {
+     EXPECT_FALSE(reader_->Open());
+   }
+ 
+-  void RunTestFailingDecode(const char* fn) {
++  void RunTestFailingDecode(const char* fn, int expect_read = 0) {
+     Initialize(fn);
+     EXPECT_TRUE(reader_->Open());
+     std::vector<std::unique_ptr<AudioBus>> decoded_audio_packets;
+-    EXPECT_EQ(reader_->Read(&decoded_audio_packets), 0);
++    EXPECT_EQ(reader_->Read(&decoded_audio_packets), expect_read);
+   }
+ 
+   void RunTestPartialDecode(const char* fn) {
+@@ -219,7 +219,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
+ }
+ 
+ TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
+-  RunTestFailingDecode("midstream_config_change.mp3");
++  RunTestFailingDecode("midstream_config_change.mp3", 42624);
+ }
+ #endif
+ 
+diff --git a/media/filters/audio_video_metadata_extractor.cc b/media/filters/audio_video_metadata_extractor.cc
+index 185819eb936..69ff508c221 100644
+--- a/media/filters/audio_video_metadata_extractor.cc
++++ b/media/filters/audio_video_metadata_extractor.cc
+@@ -113,6 +113,15 @@ bool AudioVideoMetadataExtractor::Extract(DataSource* source,
+     if (!stream)
+       continue;
+ 
++    void* display_matrix =
++        av_stream_get_side_data(stream, AV_PKT_DATA_DISPLAYMATRIX, nullptr);
++    if (display_matrix) {
++      rotation_ = VideoTransformation::FromFFmpegDisplayMatrix(
++                      static_cast<int32_t*>(display_matrix))
++                      .rotation;
++      info.tags["rotate"] = base::NumberToString(rotation_);
++    }
++
+     // Extract dictionary from streams also. Needed for containers that attach
+     // metadata to contained streams instead the container itself, like OGG.
+     ExtractDictionary(stream->metadata, &info.tags);
+@@ -255,8 +264,6 @@ void AudioVideoMetadataExtractor::ExtractDictionary(AVDictionary* metadata,
+     if (raw_tags->find(tag->key) == raw_tags->end())
+       (*raw_tags)[tag->key] = tag->value;
+ 
+-    if (ExtractInt(tag, "rotate", &rotation_))
+-      continue;
+     if (ExtractString(tag, "album", &album_))
+       continue;
+     if (ExtractString(tag, "artist", &artist_))
+diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
+index 6f231c85729..ca5e5fb927d 100644
+--- a/media/filters/ffmpeg_aac_bitstream_converter.cc
++++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
+@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
+   if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
+       audio_profile_ != stream_codec_parameters_->profile ||
+       sample_rate_index_ != sample_rate_index ||
+-      channel_configuration_ != stream_codec_parameters_->channels ||
++      channel_configuration_ !=
++          stream_codec_parameters_->ch_layout.nb_channels ||
+       frame_length_ != header_plus_packet_size) {
+     header_generated_ =
+         GenerateAdtsHeader(stream_codec_parameters_->codec_id,
+                            0,  // layer
+                            stream_codec_parameters_->profile, sample_rate_index,
+                            0,  // private stream
+-                           stream_codec_parameters_->channels,
++                           stream_codec_parameters_->ch_layout.nb_channels,
+                            0,  // originality
+                            0,  // home
+                            0,  // copyrighted_stream
+@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
+     codec_ = stream_codec_parameters_->codec_id;
+     audio_profile_ = stream_codec_parameters_->profile;
+     sample_rate_index_ = sample_rate_index;
+-    channel_configuration_ = stream_codec_parameters_->channels;
++    channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
+     frame_length_ = header_plus_packet_size;
+   }
+ 
+diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+index 1fd4c5ccd7d..f59bcd8fdaf 100644
+--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
++++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
+     memset(&test_parameters_, 0, sizeof(AVCodecParameters));
+     test_parameters_.codec_id = AV_CODEC_ID_AAC;
+     test_parameters_.profile = FF_PROFILE_AAC_MAIN;
+-    test_parameters_.channels = 2;
++    test_parameters_.ch_layout.nb_channels = 2;
+     test_parameters_.extradata = extradata_header_;
+     test_parameters_.extradata_size = sizeof(extradata_header_);
+   }
+diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc
+index 6a56c675f7d..4615fdeb3fb 100644
+--- a/media/filters/ffmpeg_audio_decoder.cc
++++ b/media/filters/ffmpeg_audio_decoder.cc
+@@ -28,7 +28,7 @@ namespace media {
+ 
+ // Return the number of channels from the data in |frame|.
+ static inline int DetermineChannels(AVFrame* frame) {
+-  return frame->channels;
++  return frame->ch_layout.nb_channels;
+ }
+ 
+ // Called by FFmpeg's allocation routine to allocate a buffer. Uses
+@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer,
+   // Translate unsupported into discrete layouts for discrete configurations;
+   // ffmpeg does not have a labeled discrete configuration internally.
+   ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
+-      codec_context_->channel_layout, codec_context_->channels);
++      codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
+   if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
+       config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
+     channel_layout = CHANNEL_LAYOUT_DISCRETE;
+@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
+   // Success!
+   av_sample_format_ = codec_context_->sample_fmt;
+ 
+-  if (codec_context_->channels != config.channels()) {
++  if (codec_context_->ch_layout.nb_channels != config.channels()) {
+     MEDIA_LOG(ERROR, media_log_)
+         << "Audio configuration specified " << config.channels()
+         << " channels, but FFmpeg thinks the file contains "
+-        << codec_context_->channels << " channels";
++        << codec_context_->ch_layout.nb_channels << " channels";
+     ReleaseFFmpegResources();
+     state_ = DecoderState::kUninitialized;
+     return false;
+@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
+   if (frame->nb_samples <= 0)
+     return AVERROR(EINVAL);
+ 
+-  if (s->channels != channels) {
++  if (s->ch_layout.nb_channels != channels) {
+     DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
+     return AVERROR(EINVAL);
+   }
+@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
+   ChannelLayout channel_layout =
+       config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
+           ? CHANNEL_LAYOUT_DISCRETE
+-          : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
++          : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
++                                               s->ch_layout.nb_channels);
+ 
+   if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
+     DLOG(ERROR) << "Unsupported channel layout.";
diff --git a/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch.args b/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch.args
new file mode 100644
index 000000000000..8bbbbe948363
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-roll-src-third_party-ffmpeg.patch.args
@@ -0,0 +1 @@
+-RNp1
diff --git a/srcpkgs/electron19/files/patches/chromium-sandbox-membarrier.patch b/srcpkgs/electron19/files/patches/chromium-sandbox-membarrier.patch
new file mode 100644
index 000000000000..998552c2f9e7
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-sandbox-membarrier.patch
@@ -0,0 +1,10 @@
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -370,6 +370,7 @@
+   switch (sysno) {
+     case __NR_exit:
+     case __NR_exit_group:
++    case __NR_membarrier:
+     case __NR_wait4:
+     case __NR_waitid:
+ #if defined(__i386__)
diff --git a/srcpkgs/electron19/files/patches/chromium-sandbox-sched_getparam.patch b/srcpkgs/electron19/files/patches/chromium-sandbox-sched_getparam.patch
new file mode 100644
index 000000000000..87f11af43c04
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-sandbox-sched_getparam.patch
@@ -0,0 +1,20 @@
+Allow SYS_sched_getparam and SYS_sched_getscheduler
+musl uses them for pthread_getschedparam()
+
+source: https://git.alpinelinux.org/aports/commit/community/chromium?id=54af9f8ac24f52d382c5758e2445bf0206eff40e
+
+--- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc.orig	2019-10-08 21:03:18.253080425 +0200
++++ a/sandbox/policy/linux/bpf_renderer_policy_linux.cc	2019-10-08 21:04:19.648549718 +0200
+@@ -88,10 +88,10 @@
+     case __NR_sysinfo:
+     case __NR_times:
+     case __NR_uname:
+-      return Allow();
+-    case __NR_sched_getaffinity:
+     case __NR_sched_getparam:
+     case __NR_sched_getscheduler:
++      return Allow();
++    case __NR_sched_getaffinity:
+     case __NR_sched_setscheduler:
+       return sandbox::RestrictSchedTarget(GetPolicyPid(), sysno);
+     case __NR_prlimit64:
diff --git a/srcpkgs/electron19/files/patches/chromium-sndio.patch b/srcpkgs/electron19/files/patches/chromium-sndio.patch
new file mode 100644
index 000000000000..bac8a63bc24f
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-sndio.patch
@@ -0,0 +1,877 @@
+diff -Naur chromium-83.0.4103.97.orig/media/BUILD.gn chromium-83.0.4103.97/media/BUILD.gn
+--- a/media/BUILD.gn	2020-06-03 20:40:26.000000000 +0200
++++ b/media/BUILD.gn	2020-06-13 17:32:28.510395975 +0200
+@@ -65,6 +65,9 @@
+       defines += [ "DLOPEN_PULSEAUDIO" ]
+     }
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
+diff -Naur chromium-83.0.4103.97.orig/media/audio/BUILD.gn chromium-83.0.4103.97/media/audio/BUILD.gn
+--- a/media/audio/BUILD.gn	2020-06-03 20:39:37.000000000 +0200
++++ b/media/audio/BUILD.gn	2020-06-13 17:32:28.511395969 +0200
+@@ -236,6 +236,17 @@
+     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 -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc chromium-83.0.4103.97/media/audio/linux/audio_manager_linux.cc
+--- a/media/audio/linux/audio_manager_linux.cc	2020-06-03 20:39:37.000000000 +0200
++++ b/media/audio/linux/audio_manager_linux.cc	2020-06-13 18:09:43.623333167 +0200
+@@ -19,6 +19,11 @@
+ #include "media/audio/pulse/audio_manager_pulse.h"
+ #include "media/audio/pulse/pulse_util.h"
+ #endif
++#if defined(USE_SNDIO)
++#include "media/audio/sndio/audio_manager_sndio.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#endif
+ 
+ namespace media {
+ 
+ std::unique_ptr<media::AudioManager> CreateAudioManager(
+@@ -39,6 +45,16 @@
+                                               audio_log_factory);
+   }
+ 
++#if defined(USE_SNDIO)
++  struct sio_hdl *hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
++  if (hdl != NULL) {
++    sio_close(hdl);
++    UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kSndio, kAudioIOMax + 1);
++    return std::make_unique<AudioManagerSndio>(std::move(audio_thread),
++                                                  audio_log_factory);
++  }
++#endif
++
+ #if defined(USE_CRAS)
+   if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) {
+     UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kCras, kAudioIOMax + 1);
+diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/audio_manager_sndio.cc chromium-83.0.4103.97/media/audio/sndio/audio_manager_sndio.cc
+--- a/media/audio/sndio/audio_manager_sndio.cc	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/audio_manager_sndio.cc	2020-06-13 17:32:28.511395969 +0200
+@@ -0,0 +1,148 @@
++// 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 "media/audio/sndio/audio_manager_sndio.h"
++
++#include "base/metrics/histogram_macros.h"
++#include "base/memory/ptr_util.h"
++#include "media/audio/audio_device_description.h"
++#include "media/audio/audio_output_dispatcher.h"
++#include "media/audio/sndio/sndio_input.h"
++#include "media/audio/sndio/sndio_output.h"
++#include "media/base/limits.h"
++#include "media/base/media_switches.h"
++
++namespace media {
++
++
++// Maximum number of output streams that can be open simultaneously.
++static const int kMaxOutputStreams = 4;
++
++// 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);
++}
++
++const char* AudioManagerSndio::GetName() {
++  return "SNDIO";
++}
++
++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, CHANNEL_LAYOUT_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() {
++  Shutdown();
++}
++
++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;
++
++  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
++  int sample_rate = kDefaultSampleRate;
++  int buffer_size = kDefaultOutputBufferSize;
++  if (input_params.IsValid()) {
++    sample_rate = input_params.sample_rate();
++    channel_layout = input_params.channel_layout();
++    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,
++      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);
++}
++
++}  // namespace media
+diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/audio_manager_sndio.h chromium-83.0.4103.97/media/audio/sndio/audio_manager_sndio.h
+--- a/media/audio/sndio/audio_manager_sndio.h	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/audio_manager_sndio.h	2020-06-13 17:32:28.511395969 +0200
+@@ -0,0 +1,65 @@
++// 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/macros.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() 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);
++
++  DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
+diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_input.cc chromium-83.0.4103.97/media/audio/sndio/sndio_input.cc
+--- a/media/audio/sndio/sndio_input.cc	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/sndio_input.cc	2020-06-13 17:32:28.511395969 +0200
+@@ -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/bind.h"
++#include "base/logging.h"
++#include "base/macros.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();
++}
++
++bool SndioAudioInputStream::Open() {
++  struct sio_par par;
++  int sig;
++
++  if (state != kClosed)
++    return false;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++
++  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 false;
++  }
++
++  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 true;
++bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++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)
++    return;
++
++  if (state == kRunning)
++    Stop();
++
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++
++  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 -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_input.h chromium-83.0.4103.97/media/audio/sndio/sndio_input.h
+--- a/media/audio/sndio/sndio_input.h	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/sndio_input.h	2020-06-13 17:32:28.511395969 +0200
+@@ -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/macros.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() override;
++
++  // Implementation of AudioInputStream.
++  bool 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;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
+diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_output.cc chromium-83.0.4103.97/media/audio/sndio/sndio_output.cc
+--- a/media/audio/sndio/sndio_output.cc	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/sndio_output.cc	2020-06-13 17:32:28.511395969 +0200
+@@ -0,0 +1,183 @@
++// 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() {
++  struct sio_par par;
++  int sig;
++
++  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
++      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
++    LOG(WARNING) << "Unsupported audio format.";
++    return false;
++  }
++  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 false;
++  }
++  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.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.";
++    goto bad_close;
++  }
++  state = kStopped;
++  volpending = 0;
++  vol = 0;
++  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
++  sio_onmove(hdl, &OnMoveCallback, this);
++  sio_onvol(hdl, &OnVolCallback, this);
++  return true;
++ bad_close:
++  sio_close(hdl);
++  return false;
++}
++
++void SndioAudioOutputStream::Close() {
++  if (state == kClosed)
++    return;
++  if (state == kRunning)
++    Stop();
++  state = kClosed;
++  delete [] buffer;
++  sio_close(hdl);
++  manager->ReleaseOutputStream(this);  // Calls the destructor
++}
++
++void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
++  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);
++    state = kStopped;
++  }
++}
++
++void SndioAudioOutputStream::Stop() {
++  if (state == kStopped)
++    return;
++  state = kStopWait;
++  pthread_join(thread, NULL);
++  sio_stop(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(), 0, 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 -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_output.h chromium-83.0.4103.97/media/audio/sndio/sndio_output.h
+--- a/media/audio/sndio/sndio_output.h	1970-01-01 01:00:00.000000000 +0100
++++ b/media/audio/sndio/sndio_output.h	2020-06-13 17:32:28.511395969 +0200
+@@ -0,0 +1,86 @@
++// 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);
++  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;
++
++  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
++};
++
++}  // namespace media
++
++#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
+diff -Naur chromium-83.0.4103.97.orig/media/media_options.gni chromium-83.0.4103.97/media/media_options.gni
+--- a/media/media_options.gni	2020-06-03 20:40:26.000000000 +0200
++++ b/media/media_options.gni	2020-06-13 17:32:28.512395963 +0200
+@@ -119,6 +119,9 @@
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
+ 
++  # Enable runtime selection of sndio(7)
++  use_sndio = false
++
+   # Alsa should be used on non-Android, non-Mac POSIX systems.
+   # Alsa should be used on desktop Chromecast and audio-only Chromecast builds.
+   if (is_posix && !is_android && !is_mac &&
diff --git a/srcpkgs/electron19/files/patches/chromium-system-nodejs.patch b/srcpkgs/electron19/files/patches/chromium-system-nodejs.patch
new file mode 100644
index 000000000000..14f88663dade
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-system-nodejs.patch
@@ -0,0 +1,16 @@
+--- a/third_party/node/node.py	2022-02-23 04:45:01.000000000 +0100
++++ -	2022-04-24 21:49:27.122211926 +0200
+@@ -13,12 +13,7 @@
+ def GetBinaryPath():
+   darwin_name = ('node-darwin-arm64' if platform.machine() == 'arm64' else
+                  'node-darwin-x64')
+-  return os_path.join(os_path.dirname(__file__), *{
+-    'Darwin': ('mac', darwin_name, 'bin', 'node'),
+-    'Linux': ('linux', 'node-linux-x64', 'bin', 'node'),
+-    'Windows': ('win', 'node.exe'),
+-  }[platform.system()])
+-
++  return "/usr/bin/node"
+ 
+ def RunNode(cmd_parts, stdout=None):
+   cmd = [GetBinaryPath()] + cmd_parts
diff --git a/srcpkgs/electron19/files/patches/chromium-system-nodejs.patch:q b/srcpkgs/electron19/files/patches/chromium-system-nodejs.patch:q
new file mode 100644
index 000000000000..e69de29bb2d1
diff --git a/srcpkgs/electron19/files/patches/chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch b/srcpkgs/electron19/files/patches/chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
new file mode 100644
index 000000000000..dae1adde0bc6
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-unbundle-ffmpeg-av_stream_get_first_dts.patch
@@ -0,0 +1,12 @@
+diff --git a/build/linux/unbundle/ffmpeg.gn b/build/linux/unbundle/ffmpeg.gn
+index 16e20744706..6a079b32221 100644
+--- a/build/linux/unbundle/ffmpeg.gn
++++ b/build/linux/unbundle/ffmpeg.gn
+@@ -12,6 +12,7 @@ pkg_config("system_ffmpeg") {
+     "libavformat",
+     "libavutil",
+   ]
++  defines = [ "av_stream_get_first_dts(stream)=stream->first_dts" ]
+ }
+ 
+ buildflag_header("ffmpeg_features") {
diff --git a/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch b/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch
new file mode 100644
index 000000000000..f0ce44c0a487
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch
@@ -0,0 +1,66 @@
+From 34a955823630096f5b01c2b01d51c1ea59d22763 Mon Sep 17 00:00:00 2001
+From: Zequan Wu <zequanwu@google.com>
+Date: Tue, 20 Jul 2021 14:13:50 +0000
+Subject: [PATCH] Use -ffile-compilation-dir= instead of
+ -fdebug-compilation-dir=
+
+Bug: 1010267
+Change-Id: If2b4ead8535a76490eb466a38e3d8fed6ea91079
+Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2770738
+Auto-Submit: Zequan Wu <zequanwu@google.com>
+Commit-Queue: Nico Weber <thakis@chromium.org>
+Reviewed-by: Nico Weber <thakis@chromium.org>
+Cr-Commit-Position: refs/heads/master@{#903456}
+---
+ build/config/compiler/BUILD.gn     | 18 ++++++++++++------
+ build/config/compiler/compiler.gni |  7 ++-----
+ 2 files changed, 14 insertions(+), 11 deletions(-)
+
+diff --git a/build/config/compiler/BUILD.gn b/build/config/compiler/BUILD.gn
+index ede07d111c..6db16c1cdd 100644
+--- a/build/config/compiler/BUILD.gn
++++ b/build/config/compiler/BUILD.gn
+@@ -1216,12 +1216,19 @@ 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.
+-    cflags += [
+-      "-Xclang",
+-      "-fdebug-compilation-dir",
+-      "-Xclang",
+-      ".",
+-    ]
++    if (is_nacl) {
++      # TODO(https://crbug.com/1231236): Use -ffile-compilation-dir= here.
++      cflags += [
++        "-Xclang",
++        "-fdebug-compilation-dir",
++        "-Xclang",
++        ".",
++      ]
++    } else {
++      # -ffile-compilation-dir is an alias for both -fdebug-compilation-dir=
++      # and -fcoverage-compilation-dir=.
++      cflags += [ "-ffile-compilation-dir=." ]
++    }
+     if (!is_win) {
+       # We don't use clang -cc1as on Windows (yet? https://crbug.com/762167)
+       asmflags = [ "-Wa,-fdebug-compilation-dir,." ]
+diff --git a/build/config/compiler/compiler.gni b/build/config/compiler/compiler.gni
+index 8c259c360a..642319b4f4 100644
+--- a/build/config/compiler/compiler.gni
++++ b/build/config/compiler/compiler.gni
+@@ -225,11 +225,8 @@ declare_args() {
+ # deterministic builds to reduce compile times, so this is less relevant for
+ # official builders.
+ strip_absolute_paths_from_debug_symbols_default =
+-    # TODO(crbug.com/1010267): remove '!use_clang_coverage', coverage build has
+-    # dependency to absolute path of source files.
+-    !use_clang_coverage &&
+-    (is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
+-     is_chromeos || (is_apple && !enable_dsyms))
++    is_android || is_fuchsia || is_nacl || (is_win && use_lld) || is_linux ||
++    is_chromeos || (is_apple && !enable_dsyms)
+ 
+ # 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.
diff --git a/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch.args b/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch.args
new file mode 100644
index 000000000000..8bbbbe948363
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-use-ffile-compilation-dir.patch.args
@@ -0,0 +1 @@
+-RNp1
diff --git a/srcpkgs/electron19/files/patches/chromium-webrtc-r0.patch b/srcpkgs/electron19/files/patches/chromium-webrtc-r0.patch
new file mode 100644
index 000000000000..c9b6e086ef00
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-webrtc-r0.patch
@@ -0,0 +1,33 @@
+Upstream: Yes, https://webrtc-review.googlesource.com/9384
+Reason: Fixes musl builds of webrtc
+
+From 7f90e2cceda0458cf56026eb6ccffb961a47804b Mon Sep 17 00:00:00 2001
+From: Raphael Kubo da Costa <raphael.kubo.da.costa@intel.com>
+Date: Fri, 13 Oct 2017 15:49:32 +0200
+Subject: [PATCH] IWYU: Include math.h for round(3).
+
+math.h was being implicitly included, which can break the build with
+alternative libc implementations.
+
+Bug: None
+Change-Id: I969b320b65d0f44abb33d3e1036cfbcb859a4952
+Reviewed-on: https://webrtc-review.googlesource.com/9384
+Reviewed-by: Tommi <tommi@webrtc.org>
+Commit-Queue: Raphael Kubo da Costa (rakuco) <raphael.kubo.da.costa@intel.com>
+Cr-Commit-Position: refs/heads/master@{#20292}
+---
+
+--- a/third_party/webrtc/p2p/base/port.cc
++++ a/third_party/webrtc/p2p/base/port.cc
+@@ -10,6 +10,8 @@
+ 
+ #include "p2p/base/port.h"
+ 
++#include <math.h>
++
+ #include <algorithm>
+ #include <vector>
+ 
+-- 
+2.15.0.rc2
+
diff --git a/srcpkgs/electron19/files/patches/chromium-webrtc-size_t.patch b/srcpkgs/electron19/files/patches/chromium-webrtc-size_t.patch
new file mode 100644
index 000000000000..a1fbd43b3013
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-webrtc-size_t.patch
@@ -0,0 +1,10 @@
+--- a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h	2020-08-10 20:42:29.000000000 +0200
++++ a/third_party/webrtc/modules/audio_processing/aec3/clockdrift_detector.h	2020-09-04 12:47:07.014833633 +0200
+@@ -12,6 +12,7 @@
+ #define MODULES_AUDIO_PROCESSING_AEC3_CLOCKDRIFT_DETECTOR_H_
+ 
+ #include <array>
++#include <cstddef>
+ 
+ namespace webrtc {
+ 
diff --git a/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-4k-pages.patch b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-4k-pages.patch
new file mode 100644
index 000000000000..953ca165a094
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-4k-pages.patch
@@ -0,0 +1,56 @@
+commit 45809f85bc3524f867e6e954f444fddd2333245a
+Author: q66 <daniel@octaforge.org>
+Date:   Fri Jan 7 18:18:52 2022 +0100
+
+    switch ppc64 to 4k pages
+    
+    since the partition allocator appears to hate larger constants
+    and at this point errors at compile time and i am not willing
+    to wade through this pile of curse and we use 4k kernels anyway,
+    assume 4K pages for ppc64
+
+diff --git a/base/allocator/partition_allocator/page_allocator_constants.h b/base/allocator/partition_allocator/page_allocator_constants.h
+index bfd5753..045082b 100644
+--- a/base/allocator/partition_allocator/page_allocator_constants.h
++++ b/base/allocator/partition_allocator/page_allocator_constants.h
+@@ -40,7 +40,7 @@ namespace base {
+
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
+ PageAllocationGranularityShift() {
+-#if BUILDFLAG(IS_WIN) || defined(ARCH_CPU_PPC64)
++#if BUILDFLAG(IS_WIN)
+   // Modern ppc64 systems support 4kB (shift = 12) and 64kB (shift = 16) page
+   // sizes.  Since 64kB is the de facto standard on the platform and binaries
+   // compiled for 64kB are likely to work on 4kB systems, 64kB is a good choice
+diff --git a/base/allocator/partition_allocator/partition_alloc_constants.h b/base/allocator/partition_allocator/partition_alloc_constants.h
+index 0b9260d..3e054ec 100644
+--- a/base/allocator/partition_allocator/partition_alloc_constants.h
++++ b/base/allocator/partition_allocator/partition_alloc_constants.h
+@@ -74,11 +74,6 @@
+ PartitionPageShift() {
+   return 16;  // 64 KiB
+ }
+-#elif defined(ARCH_CPU_PPC64)
+-PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
+-PartitionPageShift() {
+-  return 18;  // 256 KiB
+-}
+ #elif (BUILDFLAG(IS_APPLE) && defined(ARCH_CPU_64_BITS)) || \
+     (BUILDFLAG(IS_LINUX) && defined(ARCH_CPU_ARM64))
+ PAGE_ALLOCATOR_CONSTANTS_DECLARE_CONSTEXPR ALWAYS_INLINE size_t
+diff --git a/base/allocator/partition_allocator/partition_alloc_forward.h b/base/allocator/partition_allocator/partition_alloc_forward.h
+index 938ea38..9414b41 100644
+--- a/base/allocator/partition_allocator/partition_alloc_forward.h
++++ b/base/allocator/partition_allocator/partition_alloc_forward.h
+@@ -26,7 +26,10 @@ namespace base {
+ //
+ // __STDCPP_DEFAULT_NEW_ALIGNMENT__ is C++17. As such, it is not defined on all
+ // platforms, as Chrome's requirement is C++14 as of 2020.
+-#if defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
++#if defined(__powerpc64__)
++/* we want this to be 16 here always */
++constexpr size_t kAlignment = 16;
++#elif defined(__STDCPP_DEFAULT_NEW_ALIGNMENT__)
+ constexpr size_t kAlignment =
+     std::max(alignof(max_align_t), __STDCPP_DEFAULT_NEW_ALIGNMENT__);
+ #else
diff --git a/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-libvpx.patch b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-libvpx.patch
new file mode 100644
index 000000000000..6d423d4091c5
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-libvpx.patch
@@ -0,0 +1,72 @@
+Uses generic target for now. To use ppc64le, change --target to ppc64le-gnu
+and add --enable-vsx, and change generic to ppc for the rtcd header.
+
+From 18e6c5c55cfae0cfb458d8210d7bc709360a0e90 Mon Sep 17 00:00:00 2001
+From: q66 <daniel@octaforge.org>
+Date: Wed, 9 Sep 2020 19:08:25 +0200
+Subject: [PATCH] enable generation of ppc64 libvpx bits
+
+this doesn't update the gni file, that's done from
+the template by running the appropriate scripts
+---
+ third_party/libvpx/BUILD.gn        | 4 ++++
+ third_party/libvpx/generate_gni.sh | 9 +++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git third_party/libvpx/BUILD.gn third_party/libvpx/BUILD.gn
+index 7198e59..3300485 100644
+--- a/third_party/libvpx/BUILD.gn
++++ b/third_party/libvpx/BUILD.gn
+@@ -336,6 +336,8 @@ static_library("libvpx") {
+     } else {
+       sources = libvpx_srcs_arm64
+     }
++  } else if (current_cpu == "ppc64") {
++    sources = libvpx_srcs_ppc64
+   }
+ 
+   configs -= [ "//build/config/compiler:chromium_code" ]
+diff --git third_party/libvpx/generate_gni.sh third_party/libvpx/generate_gni.sh
+index bcf84b0..8a3f4f1 100755
+--- a/third_party/libvpx/generate_gni.sh
++++ b/third_party/libvpx/generate_gni.sh
+@@ -361,6 +361,7 @@ gen_config_files linux/arm-neon-highbd "--target=armv7-linux-gcc ${all_platforms
+ gen_config_files linux/arm64-highbd "--target=armv8-linux-gcc ${all_platforms} ${HIGHBD}"
+ gen_config_files linux/mipsel "--target=mips32-linux-gcc ${all_platforms}"
+ gen_config_files linux/mips64el "--target=mips64-linux-gcc ${all_platforms}"
++gen_config_files linux/ppc64 "--target=generic-gnu $HIGHBD ${all_platforms}"
+ gen_config_files linux/generic "--target=generic-gnu $HIGHBD ${all_platforms}"
+ gen_config_files win/arm64 "--target=arm64-win64-vs15 ${all_platforms} ${HIGHBD}"
+ gen_config_files win/ia32 "--target=x86-win32-vs14 ${all_platforms} ${x86_platforms}"
+@@ -386,6 +387,7 @@ lint_config linux/arm-neon-highbd
+ lint_config linux/arm64-highbd
+ lint_config linux/mipsel
+ lint_config linux/mips64el
++lint_config linux/ppc64
+ lint_config linux/generic
+ lint_config win/arm64
+ lint_config win/ia32
+@@ -415,6 +417,7 @@ gen_rtcd_header linux/arm-neon-highbd armv7
+ gen_rtcd_header linux/arm64-highbd armv8
+ gen_rtcd_header linux/mipsel mipsel
+ gen_rtcd_header linux/mips64el mips64el
++gen_rtcd_header linux/ppc64 generic
+ gen_rtcd_header linux/generic generic
+ gen_rtcd_header win/arm64 armv8
+ gen_rtcd_header win/ia32 x86 "${require_sse2}"
+@@ -500,6 +503,12 @@ if [ -z $ONLY_CONFIGS ]; then
+ 
+   echo "MIPS64 source list is identical to MIPS source list. No need to generate it."
+ 
++  echo "Generate ppc64 source list."
++  config=$(print_config_basic linux/ppc64)
++  make_clean
++  make libvpx_srcs.txt target=libs $config > /dev/null
++  convert_srcs_to_project_files libvpx_srcs.txt libvpx_srcs_ppc64
++
+   echo "Generate NaCl source list."
+   config=$(print_config_basic nacl)
+   make_clean
+-- 
+2.28.0
+
diff --git a/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-sandbox-linux-stat.patch b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-sandbox-linux-stat.patch
new file mode 100644
index 000000000000..4bfb5d494b06
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-sandbox-linux-stat.patch
@@ -0,0 +1,31 @@
+--- a/sandbox/linux/system_headers/linux_stat.h
++++ b/sandbox/linux/system_headers/linux_stat.h
+@@ -155,6 +155,28 @@ struct kernel_stat {
+   unsigned int __unused4;
+   unsigned int __unused5;
+ };
++#elif defined(__powerpc64__)
++struct kernel_stat {
++  unsigned long	st_dev;
++  unsigned long	st_ino;
++  unsigned long	st_nlink;
++  unsigned int	st_mode;
++  unsigned int	st_uid;
++  unsigned int	st_gid;
++  unsigned long	st_rdev;
++  long		st_size;
++  unsigned long	st_blksize;
++  unsigned long	st_blocks;
++  unsigned long	st_atime_;
++  unsigned long	st_atime_nsec_;
++  unsigned long	st_mtime_;
++  unsigned long	st_mtime_nsec_;
++  unsigned long	st_ctime_;
++  unsigned long	st_ctime_nsec_;
++  unsigned long	__unused4;
++  unsigned long	__unused5;
++  unsigned long	__unused6;
++};
+ #endif
+ 
+ // On 32-bit systems, we default to the 64-bit stat struct like libc
diff --git a/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-support.patch b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-support.patch
new file mode 100644
index 000000000000..e626f8130d43
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-support.patch
@@ -0,0 +1,3698 @@
+commit 2c013a317b1114ef67cdbbc30824b28907b9ea94
+Author: Daniel Kolesa <daniel@octaforge.org>
+Date:   Wed Mar 3 19:08:29 2021 +0100
+
+    ppc64le support
+
+diff --git a/build/download_nacl_toolchains.py b/build/download_nacl_toolchains.py
+index 286a92a27..ec36a85d3 100755
+--- a/build/download_nacl_toolchains.py
++++ b/build/download_nacl_toolchains.py
+@@ -13,6 +13,10 @@ import sys
+ 
+ 
+ def Main(args):
++  # If `disable_nacl=1` is in GYP_DEFINES, exit
++  if 'disable_nacl=1' in os.environ.get('GYP_DEFINES', ''):
++    return 0
++
+   script_dir = os.path.dirname(os.path.abspath(__file__))
+   src_dir = os.path.dirname(script_dir)
+   nacl_dir = os.path.join(src_dir, 'native_client')
+--- a/chrome/installer/linux/BUILD.gn
++++ b/chrome/installer/linux/BUILD.gn
+@@ -97,8 +97,6 @@
+                     "$root_out_dir/xdg-mime",
+                     "$root_out_dir/xdg-settings",
+                     "$root_out_dir/locales/en-US.pak",
+-                    "$root_out_dir/MEIPreload/manifest.json",
+-                    "$root_out_dir/MEIPreload/preloaded_data.pb",
+                   ]
+ 
+ action_foreach("calculate_deb_dependencies") {
+@@ -377,7 +377,6 @@
+     "//chrome",
+     "//chrome:packed_resources",
+     "//chrome/browser/enterprise/connectors/device_trust/key_management/installer/management_service:chrome_management_service",
+-    "//chrome/browser/resources/media/mei_preload:component",
+     "//components/crash/core/app:chrome_crashpad_handler",
+     "//sandbox/linux:chrome_sandbox",
+   ]
+diff --git a/sandbox/features.gni b/sandbox/features.gni
+index db30ae6d6..9dc09bf53 100644
+--- a/sandbox/features.gni
++++ b/sandbox/features.gni
+@@ -11,7 +11,8 @@ import("//build/config/nacl/config.gni")
+ use_seccomp_bpf = (is_linux || is_chromeos || is_android) &&
+                   (current_cpu == "x86" || current_cpu == "x64" ||
+                    current_cpu == "arm" || current_cpu == "arm64" ||
+-                   current_cpu == "mipsel" || current_cpu == "mips64el")
++                   current_cpu == "mipsel" || current_cpu == "mips64el" ||
++                   current_cpu == "ppc64")
+ 
+ use_seccomp_bpf = use_seccomp_bpf || is_nacl_nonsfi
+ 
+diff --git a/sandbox/linux/BUILD.gn b/sandbox/linux/BUILD.gn
+index e9a94b461..cca1a5da5 100644
+--- a/sandbox/linux/BUILD.gn
++++ b/sandbox/linux/BUILD.gn
+@@ -427,6 +427,8 @@ component("sandbox_services") {
+ 
+ source_set("sandbox_services_headers") {
+   sources = [
++    "system_headers/ppc64_linux_syscalls.h",
++    "system_headers/ppc64_linux_ucontext.h",
+     "system_headers/arm64_linux_syscalls.h",
+     "system_headers/arm_linux_syscalls.h",
+     "system_headers/arm_linux_ucontext.h",
+diff --git a/sandbox/linux/bpf_dsl/linux_syscall_ranges.h b/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+index 313511f22..0ca3a326f 100644
+--- a/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
++++ b/sandbox/linux/bpf_dsl/linux_syscall_ranges.h
+@@ -56,6 +56,13 @@
+ #define MAX_PUBLIC_SYSCALL __NR_syscalls
+ #define MAX_SYSCALL MAX_PUBLIC_SYSCALL
+ 
++#elif defined(__powerpc64__)
++
++#include <asm-generic/unistd.h>
++#define MIN_SYSCALL 0u
++#define MAX_PUBLIC_SYSCALL __NR_syscalls
++#define MAX_SYSCALL MAX_PUBLIC_SYSCALL
++
+ #else
+ #error "Unsupported architecture"
+ #endif
+diff --git a/sandbox/linux/bpf_dsl/seccomp_macros.h b/sandbox/linux/bpf_dsl/seccomp_macros.h
+index 1a407b952..a6aec544e 100644
+--- a/sandbox/linux/bpf_dsl/seccomp_macros.h
++++ b/sandbox/linux/bpf_dsl/seccomp_macros.h
+@@ -16,6 +16,9 @@
+ #if defined(__mips__)
+ // sys/user.h in eglibc misses size_t definition
+ #include <stddef.h>
++#elif defined(__powerpc64__)
++// Manually define greg_t on ppc64
++typedef unsigned long long greg_t;
+ #endif
+ #endif
+ 
+@@ -346,6 +349,51 @@ struct regs_struct {
+ #define SECCOMP_PT_PARM4(_regs) (_regs).regs[3]
+ #define SECCOMP_PT_PARM5(_regs) (_regs).regs[4]
+ #define SECCOMP_PT_PARM6(_regs) (_regs).regs[5]
++
++#elif defined(__powerpc64__)
++#include <asm/ptrace.h>
++
++typedef struct pt_regs regs_struct;
++
++#ifdef ARCH_CPU_LITTLE_ENDIAN
++#define SECCOMP_ARCH AUDIT_ARCH_PPC64LE
++#else
++#define SECCOMP_ARCH AUDIT_ARCH_PPC64
++#endif
++
++#define SECCOMP_REG(_ctx, _reg) ((_ctx)->uc_mcontext.regs->gpr[_reg])
++
++#define SECCOMP_RESULT(_ctx) SECCOMP_REG(_ctx, 3)
++#define SECCOMP_SYSCALL(_ctx) SECCOMP_REG(_ctx, 0)
++#define SECCOMP_IP(_ctx) (_ctx)->uc_mcontext.regs->nip
++#define SECCOMP_PARM1(_ctx) SECCOMP_REG(_ctx, 3)
++#define SECCOMP_PARM2(_ctx) SECCOMP_REG(_ctx, 4)
++#define SECCOMP_PARM3(_ctx) SECCOMP_REG(_ctx, 5)
++#define SECCOMP_PARM4(_ctx) SECCOMP_REG(_ctx, 6)
++#define SECCOMP_PARM5(_ctx) SECCOMP_REG(_ctx, 7)
++#define SECCOMP_PARM6(_ctx) SECCOMP_REG(_ctx, 8)
++
++#define SECCOMP_NR_IDX (offsetof(struct arch_seccomp_data, nr))
++#define SECCOMP_ARCH_IDX (offsetof(struct arch_seccomp_data, arch))
++#define SECCOMP_IP_MSB_IDX \
++  (offsetof(struct arch_seccomp_data, instruction_pointer) + 4)
++#define SECCOMP_IP_LSB_IDX \
++  (offsetof(struct arch_seccomp_data, instruction_pointer) + 0)
++#define SECCOMP_ARG_MSB_IDX(nr) \
++  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 4)
++#define SECCOMP_ARG_LSB_IDX(nr) \
++  (offsetof(struct arch_seccomp_data, args) + 8 * (nr) + 0)
++
++#define SECCOMP_PT_RESULT(_regs) (_regs).gpr[3]
++#define SECCOMP_PT_SYSCALL(_regs) (_regs).gpr[0]
++#define SECCOMP_PT_IP(_regs) (_regs).nip
++#define SECCOMP_PT_PARM1(_regs) (_regs).gpr[3]
++#define SECCOMP_PT_PARM2(_regs) (_regs).gpr[4]
++#define SECCOMP_PT_PARM3(_regs) (_regs).gpr[5]
++#define SECCOMP_PT_PARM4(_regs) (_regs).gpr[6]
++#define SECCOMP_PT_PARM5(_regs) (_regs).gpr[7]
++#define SECCOMP_PT_PARM6(_regs) (_regs).gpr[8]
++
+ #else
+ #error Unsupported target platform
+ 
+diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+index 6a1ec2389..f20c582dd 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy.cc
+@@ -88,7 +88,8 @@ bool IsBaselinePolicyWatched(int sysno) {
+          SyscallSets::IsPrctl(sysno) ||
+          SyscallSets::IsProcessGroupOrSession(sysno) ||
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+          SyscallSets::IsSocketCall(sysno) ||
+ #endif
+ #if defined(__arm__)
+@@ -227,7 +228,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
+   }
+ 
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   if (sysno == __NR_mmap)
+     return RestrictMmapFlags();
+ #endif
+@@ -245,7 +246,7 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
+     return RestrictPrctl();
+ 
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   if (sysno == __NR_socketpair) {
+     // Only allow AF_UNIX, PF_UNIX. Crash if anything else is seen.
+     static_assert(AF_UNIX == PF_UNIX,
+@@ -285,7 +286,8 @@ ResultExpr EvaluateSyscallImpl(int fs_denied_errno,
+   }
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   if (SyscallSets::IsSocketCall(sysno))
+     return RestrictSocketcallCommand();
+ #endif
+diff --git a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc
+index 01c046dda..7e5a6be82 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc	2021-04-15 13:11:10.481579470 -0400
++++ b/sandbox/linux/seccomp-bpf-helpers/baseline_policy_unittest.cc	2021-04-15 13:12:43.524831376 -0400
+@@ -302,7 +302,7 @@
+ TEST_BASELINE_SIGSYS(__NR_syslog)
+ TEST_BASELINE_SIGSYS(__NR_timer_create)
+ 
+-#if !defined(__aarch64__)
++#if !defined(__aarch64__) && !defined(__powerpc64__)
+ TEST_BASELINE_SIGSYS(__NR_inotify_init)
+ TEST_BASELINE_SIGSYS(__NR_vserver)
+ #endif
+diff --git a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+index 01c046dda..7e5a6be82 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/sigsys_handlers.cc
+@@ -358,7 +358,16 @@
+   if (args.nr == __NR_fstatat_default) {
+     if (*reinterpret_cast<const char*>(args.args[1]) == '\0' &&
+         args.args[3] == static_cast<uint64_t>(AT_EMPTY_PATH)) {
+-      return syscall(__NR_fstat_default, static_cast<int>(args.args[0]),
++          int fd = static_cast<int>(args.args[0]);
++#if defined(__powerpc64__)
++      // On ppc64+glibc, some syscalls seem to accidentally negate the first
++      // parameter which causes checks against it to fail. For now, manually
++      // negate them back.
++      // TODO: Investigate the root cause and fix in glibc
++      if (fd < 0)
++        fd = -fd;
++#endif
++      return syscall(__NR_fstat_default, fd,
+                      reinterpret_cast<default_stat_struct*>(args.args[2]));
+     }
+     return -reinterpret_cast<intptr_t>(fs_denied_errno);
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc
+index 2a97d3916..8e81aa6cf 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc	2021-04-14 14:41:08.000000000 -0400
++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.cc	2021-04-15 13:17:57.808715733 -0400
+@@ -37,7 +37,8 @@
+ 
+ #if (BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS_LACROS)) && \
+     !defined(__arm__) && !defined(__aarch64__) &&             \
+-    !defined(PTRACE_GET_THREAD_AREA)
++    !defined(PTRACE_GET_THREAD_AREA) &&                       \
++    !defined(__powerpc64__)
+ // Also include asm/ptrace-abi.h since ptrace.h in older libc (for instance
+ // the one in Ubuntu 16.04 LTS) is missing PTRACE_GET_THREAD_AREA.
+ // asm/ptrace-abi.h doesn't exist on arm32 and PTRACE_GET_THREAD_AREA isn't
+@@ -45,6 +46,11 @@
+ #include <asm/ptrace-abi.h>
+ #endif
+ 
++// On PPC64, TCGETS is defined in terms of struct termios, so we must include termios.h
++#ifdef __powerpc64__
++#include <termios.h>
++#endif
++
+ #if BUILDFLAG(IS_ANDROID)
+ 
+ #if !defined(F_DUPFD_CLOEXEC)
+@@ -99,6 +105,14 @@
+   return true;
+ #else
+   return false;
++#endif
++}
++
++inline bool IsArchitecturePPC64() {
++#if defined(__powerpc64__)
++  return true;
++#else
++  return false;
+ #endif
+ }
+ 
+@@ -239,6 +254,8 @@
+   uint64_t kOLargeFileFlag = O_LARGEFILE;
+   if (IsArchitectureX86_64() || IsArchitectureI386() || IsArchitectureMips())
+     kOLargeFileFlag = 0100000;
++  else if (IsArchitecturePPC64())
++    kOLargeFileFlag = 0200000;
+ 
+   const Arg<int> cmd(1);
+   const Arg<long> long_arg(2);
+@@ -256,7 +273,16 @@
+               F_SETLKW,
+               F_GETLK,
+               F_DUPFD,
+-              F_DUPFD_CLOEXEC),
++              F_DUPFD_CLOEXEC
++#if defined(__powerpc64__)
++// On PPC64, F_SETLK, F_GETLK, F_SETLKW are defined as the 64-bit variants
++// but glibc will sometimes still use the 32-bit versions. Allow both.
++              ,
++              5, /* F_GETLK (32) */
++              6, /* F_SETLK (32) */
++              7  /* F_SETLKW (32) */
++#endif
++	     ),
+              Allow())
+       .Case(F_SETFL,
+             If((long_arg & ~kAllowedMask) == 0, Allow()).Else(CrashSIGSYS()))
+@@ -266,7 +292,7 @@
+   // clang-format on
+ }
+ 
+-#if defined(__i386__) || defined(__mips__)
++#if defined(__i386__) || defined(__mips__) || defined(__powerpc64__)
+ ResultExpr RestrictSocketcallCommand() {
+   // Unfortunately, we are unable to restrict the first parameter to
+   // socketpair(2). Whilst initially sounding bad, it's noteworthy that very
+@@ -419,7 +445,7 @@
+ #endif
+   return Switch(request)
+       .CASES((
+-#if !defined(__aarch64__)
++#if !defined(__aarch64__) && !defined(__powerpc64__)
+                  PTRACE_GETREGS, PTRACE_GETFPREGS, PTRACE_GET_THREAD_AREA,
+                  PTRACE_GETREGSET,
+ #endif
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+index ba4289f05..9a4d5ab2d 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_parameters_restrictions.h
+@@ -48,7 +48,7 @@ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictMprotectFlags();
+ // O_NONBLOCK | O_SYNC | O_LARGEFILE | O_CLOEXEC | O_NOATIME.
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictFcntlCommands();
+ 
+-#if defined(__i386__) || defined(__mips__)
++#if defined(__i386__) || defined(__mips__) || defined(__powerpc64__)
+ // Restrict socketcall(2) to only allow socketpair(2), send(2), recv(2),
+ // sendto(2), recvfrom(2), shutdown(2), sendmsg(2) and recvmsg(2).
+ SANDBOX_EXPORT bpf_dsl::ResultExpr RestrictSocketcallCommand();
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+index 642df7207..34f47eb73 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.cc
+@@ -29,7 +29,8 @@ bool SyscallSets::IsAllowedGettime(int sysno) {
+   switch (sysno) {
+     case __NR_gettimeofday:
+ #if defined(__i386__) || defined(__x86_64__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_time:
+ #endif
+       return true;
+@@ -52,12 +53,14 @@ bool SyscallSets::IsAllowedGettime(int sysno) {
+     case __NR_clock_nanosleep_time64:  // Parameters filtered by RestrictClockID().
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_ftime:  // Obsolete.
+ #endif
+     case __NR_settimeofday:  // Privileged.
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_stime:
+ #endif
+     default:
+@@ -135,7 +138,7 @@ bool SyscallSets::IsFileSystem(int sysno) {
+     case __NR_faccessat:  // EPERM not a valid errno.
+     case __NR_fchmodat:
+     case __NR_fchownat:  // Should be called chownat ?
+-#if defined(__x86_64__) || defined(__aarch64__)
++#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_newfstatat:  // fstatat(). EPERM not a valid errno.
+ #elif defined(__i386__) || defined(__arm__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
+@@ -154,7 +157,7 @@ bool SyscallSets::IsFileSystem(int sysno) {
+     case __NR_memfd_create:
+     case __NR_mkdirat:
+     case __NR_mknodat:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_oldlstat:
+     case __NR_oldstat:
+ #endif
+@@ -168,7 +171,8 @@ bool SyscallSets::IsFileSystem(int sysno) {
+ #endif
+     case __NR_statfs:  // EPERM not a valid errno.
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_statfs64:
+ #endif
+     case __NR_symlinkat:
+@@ -178,7 +182,8 @@ bool SyscallSets::IsFileSystem(int sysno) {
+     case __NR_truncate64:
+ #endif
+     case __NR_unlinkat:
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_utime:
+ #endif
+     case __NR_utimensat:  // New.
+@@ -203,7 +208,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) {
+ #endif
+       return true;
+ // TODO(jln): these should be denied gracefully as well (moved below).
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_fadvise64:  // EPERM not a valid errno.
+ #endif
+ #if defined(__i386__)
+@@ -216,11 +222,12 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) {
+     case __NR_flock:      // EPERM not a valid errno.
+     case __NR_fstatfs:    // Give information about the whole filesystem.
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_fstatfs64:
+ #endif
+     case __NR_fsync:  // EPERM not a valid errno.
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_oldfstat:
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+@@ -228,6 +235,8 @@ bool SyscallSets::IsAllowedFileSystemAccessViaFd(int sysno) {
+     case __NR_sync_file_range:  // EPERM not a valid errno.
+ #elif defined(__arm__)
+     case __NR_arm_sync_file_range:  // EPERM not a valid errno.
++#elif defined(__powerpc64__)
++    case __NR_sync_file_range2: // EPERM not a valid errno.
+ #endif
+     default:
+       return false;
+@@ -248,7 +257,8 @@ bool SyscallSets::IsDeniedFileSystemAccessViaFd(int sysno) {
+ #endif
+     case __NR_getdents64:  // EPERM not a valid errno.
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_readdir:
+ #endif
+       return true;
+@@ -289,7 +299,7 @@ bool SyscallSets::IsGetSimpleId(int sysno) {
+ bool SyscallSets::IsProcessPrivilegeChange(int sysno) {
+   switch (sysno) {
+     case __NR_capset:
+-#if defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_ioperm:  // Intel privilege.
+     case __NR_iopl:    // Intel privilege.
+ #endif
+@@ -340,8 +350,11 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) {
+     case __NR_rt_sigreturn:
+     case __NR_rt_sigtimedwait:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
++#ifndef __powerpc64__
+     case __NR_rt_sigtimedwait_time64:
++#endif
+     case __NR_sigaction:
+     case __NR_sigprocmask:
+     case __NR_sigreturn:
+@@ -357,7 +370,8 @@ bool SyscallSets::IsAllowedSignalHandling(int sysno) {
+ #endif
+     case __NR_signalfd4:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_sigpending:
+     case __NR_sigsuspend:
+ #endif
+@@ -381,7 +395,7 @@ bool SyscallSets::IsAllowedOperationOnFd(int sysno) {
+ #endif
+     case __NR_dup3:
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_shutdown:
+ #endif
+       return true;
+@@ -414,7 +428,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+     case __NR_exit_group:
+     case __NR_wait4:
+     case __NR_waitid:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_waitpid:
+ #endif
+       return true;
+@@ -431,7 +445,7 @@ bool SyscallSets::IsAllowedProcessStartOrDeath(int sysno) {
+ #endif
+     case __NR_set_tid_address:
+     case __NR_unshare:
+-#if !defined(__mips__) && !defined(__aarch64__)
++#if !defined(__mips__) && !defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_vfork:
+ #endif
+     default:
+@@ -484,7 +498,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) {
+       return true;
+     default:
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_socketpair:  // We will want to inspect its argument.
+ #endif
+       return false;
+@@ -494,7 +508,7 @@ bool SyscallSets::IsAllowedGetOrModifySocket(int sysno) {
+ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
+   switch (sysno) {
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_accept:
+     case __NR_accept4:
+     case __NR_bind:
+@@ -509,7 +523,8 @@ bool SyscallSets::IsDeniedGetOrModifySocket(int sysno) {
+ }
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+ // Big multiplexing system call for sockets.
+ bool SyscallSets::IsSocketCall(int sysno) {
+   switch (sysno) {
+@@ -523,7 +538,8 @@ bool SyscallSets::IsSocketCall(int sysno) {
+ }
+ #endif
+ 
+-#if defined(__x86_64__) || defined(__arm__) || defined(__mips__)
++#if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
++    defined(__powerpc64__)
+ bool SyscallSets::IsNetworkSocketInformation(int sysno) {
+   switch (sysno) {
+     case __NR_getpeername:
+@@ -548,7 +564,7 @@ bool SyscallSets::IsAllowedAddressSpaceAccess(int sysno) {
+     case __NR_mincore:
+     case __NR_mlockall:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_mmap:
+ #endif
+ #if defined(__i386__) || defined(__arm__) || \
+@@ -578,7 +594,8 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) {
+   switch (sysno) {
+     case __NR_lseek:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR__llseek:
+ #endif
+ #if !defined(__aarch64__)
+@@ -598,26 +615,28 @@ bool SyscallSets::IsAllowedGeneralIo(int sysno) {
+     case __NR_readv:
+     case __NR_pread64:
+ #if defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_recv:
+ #endif
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_recvfrom:  // Could specify source.
+     case __NR_recvmsg:   // Could specify source.
+ #endif
+-#if defined(__i386__) || defined(__x86_64__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_select:
+ #endif
+-#if defined(__i386__) || defined(__arm__) || defined(__mips__)
++#if defined(__i386__) || defined(__arm__) || defined(__mips__) || defined(__powerpc64__)
+     case __NR__newselect:
+ #endif
+ #if defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_send:
+ #endif
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_sendmsg:  // Could specify destination.
+     case __NR_sendto:   // Could specify destination.
+ #endif
+@@ -673,7 +692,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) {
+       return true;
+     case __NR_getpriority:
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_nice:
+ #endif
+     case __NR_setpriority:
+@@ -685,7 +705,8 @@ bool SyscallSets::IsAllowedBasicScheduler(int sysno) {
+ bool SyscallSets::IsAdminOperation(int sysno) {
+   switch (sysno) {
+ #if defined(__i386__) || defined(__arm__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_bdflush:
+ #endif
+     case __NR_kexec_load:
+@@ -701,7 +722,8 @@ bool SyscallSets::IsAdminOperation(int sysno) {
+ 
+ bool SyscallSets::IsKernelModule(int sysno) {
+   switch (sysno) {
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_create_module:
+     case __NR_get_kernel_syms:  // Should ENOSYS.
+     case __NR_query_module:
+@@ -734,7 +756,8 @@ bool SyscallSets::IsFsControl(int sysno) {
+     case __NR_swapoff:
+     case __NR_swapon:
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_umount:
+ #endif
+     case __NR_umount2:
+@@ -750,7 +773,7 @@ bool SyscallSets::IsNuma(int sysno) {
+     case __NR_getcpu:
+     case __NR_mbind:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_migrate_pages:
+ #endif
+     case __NR_move_pages:
+@@ -785,14 +808,15 @@ bool SyscallSets::IsGlobalProcessEnvironment(int sysno) {
+   switch (sysno) {
+     case __NR_acct:  // Privileged.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+ #endif
+-#if defined(__i386__) || defined(__arm__)
++#if defined(__i386__) || defined(__arm__) || defined(__powerpc64__)
+     case __NR_ugetrlimit:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_ulimit:
+ #endif
+     case __NR_getrusage:
+@@ -826,7 +850,7 @@ bool SyscallSets::IsGlobalSystemStatus(int sysno) {
+ #endif
+     case __NR_sysinfo:
+     case __NR_uname:
+-#if defined(__i386__)
++#if defined(__i386__) || defined(__powerpc64__)
+     case __NR_olduname:
+     case __NR_oldolduname:
+ #endif
+@@ -892,8 +916,16 @@ bool SyscallSets::IsSystemVSemaphores(int sysno) {
+ }
+ #endif
+ 
++/* shitty hack around Void's 4.19 kernel headers missing those numbers */
++#if defined(__powerpc64__) && !defined(__NR_shmget)
++#define __NR_shmget 395
++#define __NR_shmctl 396
++#define __NR_shmat 397
++#define __NR_shmdt 398
++#endif
++
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+-    defined(__aarch64__) ||                                         \
++    defined(__aarch64__) || defined(__powerpc64__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
+ // These give a lot of ambient authority and bypass the setuid sandbox.
+ bool SyscallSets::IsSystemVSharedMemory(int sysno) {
+@@ -925,7 +957,8 @@ bool SyscallSets::IsSystemVMessageQueue(int sysno) {
+ #endif
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+ // Big system V multiplexing system call.
+ bool SyscallSets::IsSystemVIpc(int sysno) {
+   switch (sysno) {
+@@ -945,7 +978,8 @@ bool SyscallSets::IsAnySystemV(int sysno) {
+   return IsSystemVMessageQueue(sysno) || IsSystemVSemaphores(sysno) ||
+          IsSystemVSharedMemory(sysno);
+ #elif defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   return IsSystemVIpc(sysno);
+ #endif
+ }
+@@ -1002,7 +1036,8 @@ bool SyscallSets::IsFaNotify(int sysno) {
+ bool SyscallSets::IsTimer(int sysno) {
+   switch (sysno) {
+     case __NR_getitimer:
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_alarm:
+ #endif
+     case __NR_setitimer:
+@@ -1084,18 +1119,22 @@ bool SyscallSets::IsMisc(int sysno) {
+     case __NR_syncfs:
+     case __NR_vhangup:
+ // The system calls below are not implemented.
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_afs_syscall:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_break:
+ #endif
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_getpmsg:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_gtty:
+     case __NR_idle:
+     case __NR_lock:
+@@ -1103,20 +1142,22 @@ bool SyscallSets::IsMisc(int sysno) {
+     case __NR_prof:
+     case __NR_profil:
+ #endif
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
++    defined(__powerpc64__)
+     case __NR_putpmsg:
+ #endif
+ #if defined(__x86_64__)
+     case __NR_security:
+ #endif
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+     case __NR_stty:
+ #endif
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+     case __NR_tuxcall:
+ #endif
+-#if !defined(__aarch64__)
++#if !defined(__aarch64__) && !defined(__powerpc64__)
+     case __NR_vserver:
+ #endif
+       return true;
+diff --git a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
+index 923533ec9..411f72acd 100644
+--- a/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
++++ b/sandbox/linux/seccomp-bpf-helpers/syscall_sets.h
+@@ -43,13 +43,14 @@ class SANDBOX_EXPORT SyscallSets {
+   static bool IsDeniedGetOrModifySocket(int sysno);
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   // Big multiplexing system call for sockets.
+   static bool IsSocketCall(int sysno);
+ #endif
+ 
+ #if defined(__x86_64__) || defined(__arm__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+   static bool IsNetworkSocketInformation(int sysno);
+ #endif
+ 
+@@ -76,7 +77,7 @@ class SANDBOX_EXPORT SyscallSets {
+   static bool IsSystemVSemaphores(int sysno);
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+-    defined(__aarch64__) ||                                         \
++    defined(__aarch64__) || defined(__powerpc64__) || \
+     (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_64_BITS))
+   // These give a lot of ambient authority and bypass the setuid sandbox.
+   static bool IsSystemVSharedMemory(int sysno);
+@@ -88,7 +89,8 @@ class SANDBOX_EXPORT SyscallSets {
+ #endif
+ 
+ #if defined(__i386__) || \
+-    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS))
++    (defined(ARCH_CPU_MIPS_FAMILY) && defined(ARCH_CPU_32_BITS)) || \
++    defined(__powerpc64__)
+   // Big system V multiplexing system call.
+   static bool IsSystemVIpc(int sysno);
+ #endif
+diff --git a/sandbox/linux/seccomp-bpf/syscall.cc b/sandbox/linux/seccomp-bpf/syscall.cc
+index e47e98bf5..d53a7ff56 100644
+--- a/sandbox/linux/seccomp-bpf/syscall.cc
++++ b/sandbox/linux/seccomp-bpf/syscall.cc
+@@ -18,7 +18,7 @@ namespace sandbox {
+ namespace {
+ 
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined (ARCH_CPU_PPC64_FAMILY)
+ // Number that's not currently used by any Linux kernel ABIs.
+ const int kInvalidSyscallNumber = 0x351d3;
+ #else
+@@ -310,12 +310,56 @@ asm(// We need to be able to tell the kernel exactly where we made a
+     // Enter the kernel
+     "svc 0\n"
+     "2:ret\n"
++    ".cfi_endproc\n"
++    ".size SyscallAsm, .-SyscallAsm\n"
++#elif defined(__powerpc64__)
++    ".text\n"
++    ".align 4\n"
++    ".type SyscallAsm @function\n"
++    "SyscallAsm:\n"
++    ".cfi_startproc\n"
++
++    // Check if r3 is negative
++    "cmpdi 3, 0\n"
++    "bgt 2f\n"
++
++    // Load address of 3f into r3 and return
++    "mflr 10\n"
++    "bl 1f\n"
++    "1: mflr 3\n"
++    "mtlr 10\n"
++    "addi 3, 3, 4*13\n"
++    "blr\n"
++
++    // Load arguments from array into r3-8
++    // save param 3 in r10
++    "2:\n"
++    "mr 0, 3\n"
++    "ld 3, 0(4)\n"
++    "ld 5, 16(4)\n"
++    "ld 6, 24(4)\n"
++    "ld 7, 32(4)\n"
++    "ld 8, 40(4)\n"
++    "ld 4, 8(4)\n"
++    "li 9, 0\n"
++
++    // Enter kernel
++    "sc\n"
++
++    // Magic return address
++    "3:\n"
++    // Like MIPS, ppc64 return values are always positive.
++    // Check for error in cr0.SO and negate upon error
++    "bc 4, 3, 4f\n"
++    "neg 3, 3\n"
++    "4: blr\n"
++
+     ".cfi_endproc\n"
+     ".size SyscallAsm, .-SyscallAsm\n"
+ #endif
+     );  // asm
+ 
+-#if defined(__x86_64__)
++#if defined(__x86_64__) || defined(__powerpc64__)
+ extern "C" {
+ intptr_t SyscallAsm(intptr_t nr, const intptr_t args[6]);
+ }
+@@ -429,6 +473,8 @@ intptr_t Syscall::Call(int nr,
+     ret = inout;
+   }
+ 
++#elif defined(__powerpc64__)
++  intptr_t ret = SyscallAsm(nr, args);
+ #else
+ #error "Unimplemented architecture"
+ #endif
+@@ -445,8 +491,18 @@ void Syscall::PutValueInUcontext(intptr_t ret_val, ucontext_t* ctx) {
+     // needs to be changed back.
+     ret_val = -ret_val;
+     SECCOMP_PARM4(ctx) = 1;
+-  } else
++  } else {
+     SECCOMP_PARM4(ctx) = 0;
++  }
++#endif
++#if defined(__powerpc64__)
++  // Same as MIPS, need to invert ret and set error register (cr0.SO)
++  if (ret_val <= -1 && ret_val >= -4095) {
++    ret_val = -ret_val;
++    ctx->uc_mcontext.regs->ccr |= (1 << 28);
++  } else {
++    ctx->uc_mcontext.regs->ccr &= ~(1 << 28);
++  }
+ #endif
+   SECCOMP_RESULT(ctx) = static_cast<greg_t>(ret_val);
+ }
+diff --git a/sandbox/linux/seccomp-bpf/trap.cc b/sandbox/linux/seccomp-bpf/trap.cc
+index f5b86a73a..5e6c4a068 100644
+--- a/sandbox/linux/seccomp-bpf/trap.cc
++++ b/sandbox/linux/seccomp-bpf/trap.cc
+@@ -232,6 +232,20 @@ void Trap::SigSys(int nr, LinuxSigInfo* info, ucontext_t* ctx) {
+       SetIsInSigHandler();
+     }
+ 
++#if defined(__powerpc64__)
++    // On ppc64+glibc, some syscalls seem to accidentally negate the first
++    // parameter which causes checks against it to fail. For now, manually
++    // negate them back.
++    // TODO(shawn@anastas.io): investigate this issue further
++    auto nr = SECCOMP_SYSCALL(ctx);
++    if (nr == __NR_openat || nr == __NR_mkdirat || nr == __NR_faccessat || nr == __NR_readlinkat ||
++        nr == __NR_renameat || nr == __NR_renameat2 || nr == __NR_newfstatat || nr == __NR_unlinkat) {
++        if (static_cast<int>(SECCOMP_PARM1(ctx)) > 0) {
++            SECCOMP_PARM1(ctx) = -SECCOMP_PARM1(ctx);
++        }
++    }
++#endif
++
+     // Copy the seccomp-specific data into a arch_seccomp_data structure. This
+     // is what we are showing to TrapFnc callbacks that the system call
+     // evaluator registered with the sandbox.
+diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc
+index d7b5d8c44..4adc6d0d4 100644
+--- a/sandbox/linux/services/credentials.cc
++++ b/sandbox/linux/services/credentials.cc
+@@ -81,7 +81,7 @@ bool ChrootToSafeEmptyDir() {
+   pid_t pid = -1;
+   alignas(16) char stack_buf[PTHREAD_STACK_MIN];
+ #if defined(ARCH_CPU_X86_FAMILY) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_PPC64_FAMILY)
+   // The stack grows downward.
+   void* stack = stack_buf + sizeof(stack_buf);
+ #else
+@@ -90,7 +90,9 @@
+ 
+   int clone_flags = CLONE_FS | LINUX_SIGCHLD;
+   void* tls = nullptr;
+-#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY)) && \
++// RAJA this might be it...
++#if (defined(ARCH_CPU_X86_64) || defined(ARCH_CPU_ARM_FAMILY) || \
++    defined(ARCH_CPU_PPC64_FAMILY)) && \
+     !defined(MEMORY_SANITIZER)
+   // Use CLONE_VM | CLONE_VFORK as an optimization to avoid copying page tables.
+   // Since clone writes to the new child's TLS before returning, we must set a
+@@ -98,6 +100,11 @@
+   // glibc performs syscalls by calling a function pointer in TLS, so we do not
+   // attempt this optimization.
+   // TODO(crbug.com/1247458) Broken in MSan builds after LLVM f1bb30a4956f.
++  //
++  // NOTE: Without CLONE_VM, fontconfig will attempt to reload configuration
++  // in every thread.  Since the rendered threads are sandboxed without
++  // filesystem access (e.g. to /etc/fonts/fonts.conf) this will cause font
++  // configuraiton loading failures and no fonts will be displayed!
+   clone_flags |= CLONE_VM | CLONE_VFORK | CLONE_SETTLS;
+ 
+   char tls_buf[PTHREAD_STACK_MIN] = {0};
+diff --git a/sandbox/linux/services/syscall_wrappers.cc b/sandbox/linux/services/syscall_wrappers.cc
+index fcfd2aa12..f6eb32fb7 100644
+--- a/sandbox/linux/services/syscall_wrappers.cc
++++ b/sandbox/linux/services/syscall_wrappers.cc
+@@ -58,7 +58,7 @@ long sys_clone(unsigned long flags,
+ #if defined(ARCH_CPU_X86_64)
+   return syscall(__NR_clone, flags, child_stack, ptid, ctid, tls);
+ #elif defined(ARCH_CPU_X86) || defined(ARCH_CPU_ARM_FAMILY) || \
+-    defined(ARCH_CPU_MIPS_FAMILY)
++    defined(ARCH_CPU_MIPS_FAMILY) || defined(ARCH_CPU_PPC64_FAMILY)
+   // CONFIG_CLONE_BACKWARDS defined.
+   return syscall(__NR_clone, flags, child_stack, ptid, tls, ctid);
+ #endif
+diff --git a/sandbox/linux/syscall_broker/broker_process.cc b/sandbox/linux/syscall_broker/broker_process.cc
+index d72c9d238..77f1d95f5 100644
+--- a/sandbox/linux/syscall_broker/broker_process.cc
++++ b/sandbox/linux/syscall_broker/broker_process.cc
+@@ -169,7 +169,7 @@ bool BrokerProcess::IsSyscallBrokerable(int sysno, bool fast_check) const {
+ #if defined(__NR_fstatat64)
+     case __NR_fstatat64:
+ #endif
+-#if defined(__x86_64__) || defined(__aarch64__)
++#if defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_newfstatat:
+ #endif
+       return !fast_check || allowed_command_set_.test(COMMAND_STAT);
+diff --git a/sandbox/linux/system_headers/linux_seccomp.h b/sandbox/linux/system_headers/linux_seccomp.h
+index 1fa47ed09..39cc9ab53 100644
+--- a/sandbox/linux/system_headers/linux_seccomp.h
++++ b/sandbox/linux/system_headers/linux_seccomp.h
+@@ -41,6 +41,9 @@
+ #ifndef EM_AARCH64
+ #define EM_AARCH64 183
+ #endif
++#ifndef EM_PPC64
++#define EM_PPC64 21
++#endif
+ 
+ #ifndef __AUDIT_ARCH_64BIT
+ #define __AUDIT_ARCH_64BIT 0x80000000
+@@ -73,6 +76,12 @@
+ #ifndef AUDIT_ARCH_AARCH64
+ #define AUDIT_ARCH_AARCH64 (EM_AARCH64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
+ #endif
++#ifndef AUDIT_ARCH_PPC64
++#define AUDIT_ARCH_PPC64 (EM_PPC64 | __AUDIT_ARCH_64BIT)
++#endif
++#ifndef AUDIT_ARCH_PPC64LE
++#define AUDIT_ARCH_PPC64LE (EM_PPC64 | __AUDIT_ARCH_64BIT | __AUDIT_ARCH_LE)
++#endif
+ 
+ // For prctl.h
+ #ifndef PR_SET_SECCOMP
+diff --git a/sandbox/linux/system_headers/linux_signal.h b/sandbox/linux/system_headers/linux_signal.h
+index f5a736761..515b21a5f 100644
+--- a/sandbox/linux/system_headers/linux_signal.h
++++ b/sandbox/linux/system_headers/linux_signal.h
+@@ -13,7 +13,7 @@
+ // (not undefined, but defined different values and in different memory
+ // layouts). So, fill the gap here.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+ 
+ #define LINUX_SIGHUP 1
+ #define LINUX_SIGINT 2
+diff --git a/sandbox/linux/system_headers/linux_syscalls.h b/sandbox/linux/system_headers/linux_syscalls.h
+index 2b78a0cc3..0a70f5ea5 100644
+--- a/sandbox/linux/system_headers/linux_syscalls.h
++++ b/sandbox/linux/system_headers/linux_syscalls.h
+@@ -35,5 +35,9 @@
+ #include "sandbox/linux/system_headers/arm64_linux_syscalls.h"
+ #endif
+ 
++#if defined(__powerpc64__)
++#include "sandbox/linux/system_headers/ppc64_linux_syscalls.h"
++#endif
++
+ #endif  // SANDBOX_LINUX_SYSTEM_HEADERS_LINUX_SYSCALLS_H_
+ 
+diff --git a/sandbox/linux/system_headers/ppc64_linux_syscalls.h b/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+new file mode 100644
+index 000000000..ccacffe22
+--- /dev/null
++++ b/sandbox/linux/system_headers/ppc64_linux_syscalls.h
+@@ -0,0 +1,12 @@
++// 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 SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
++#define SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
++
++#include <asm/unistd.h>
++
++//TODO: is it necessary to redefine syscall numbers for PPC64?
++
++#endif  // SANDBOX_LINUX_SYSTEM_HEADERS_PPC64_LINUX_SYSCALLS_H_
+diff --git a/sandbox/policy/linux/bpf_utility_policy_linux.cc b/sandbox/policy/linux/bpf_utility_policy_linux.cc
+index 2588fc792..d455c4601 100644
+--- a/sandbox/policy/linux/bpf_utility_policy_linux.cc
++++ b/sandbox/policy/linux/bpf_utility_policy_linux.cc
+@@ -34,7 +34,7 @@
+     case __NR_fdatasync:
+     case __NR_fsync:
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+ #endif
+ #if defined(__i386__) || defined(__arm__)
+diff --git a/sandbox/policy/linux/bpf_renderer_policy_linux.cc b/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+index 2588fc792..d455c4601 100644
+--- a/sandbox/policy/linux/bpf_renderer_policy_linux.cc
++++ b/sandbox/policy/linux/bpf_renderer_policy_linux.cc
+@@ -15,6 +15,11 @@
+ #include "sandbox/linux/system_headers/linux_syscalls.h"
+ #include "sandbox/policy/linux/sandbox_linux.h"
+ 
++// On PPC64, TCGETS is defined in terms of struct termios, so we must include termios.h
++#ifdef __powerpc64__
++#include <termios.h>
++#endif
++
+ // TODO(vignatti): replace the local definitions below with #include
+ // <linux/dma-buf.h> once kernel version 4.6 becomes widely used.
+ #include <linux/types.h>
+@@ -77,7 +77,7 @@
+     case __NR_ftruncate64:
+ #endif
+ #if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || \
+-    defined(__aarch64__)
++    defined(__aarch64__) || defined(__powerpc64__)
+     case __NR_getrlimit:
+     case __NR_setrlimit:
+ // We allow setrlimit to dynamically adjust the address space limit as
+diff --git a/third_party/angle/src/compiler/translator/InfoSink.h b/third_party/angle/src/compiler/translator/InfoSink.h
+index 3a807e1e3..5258617a7 100644
+--- a/third_party/angle/src/compiler/translator/InfoSink.h
++++ b/third_party/angle/src/compiler/translator/InfoSink.h
+@@ -92,7 +92,16 @@ class TInfoSinkBase
+             stream.precision(8);
+             stream << f;
+         }
+-        sink.append(stream.str());
++
++        // Hack to work around a bug where negative floating point values
++        // are rendered like '.0.5' instead of '-0.5'
++        std::string res(stream.str());
++
++        if (signbit(f)) { // test if f is negative
++            res[0] = '-';
++        }
++
++        sink.append(res);
+         return *this;
+     }
+     // Write boolean values as their names instead of integral value.
+diff --git a/third_party/angle/src/libANGLE/Constants.h b/third_party/angle/src/libANGLE/Constants.h
+index fcbc9246a..39ae66148 100644
+--- a/third_party/angle/src/libANGLE/Constants.h
++++ b/third_party/angle/src/libANGLE/Constants.h
+@@ -9,6 +9,7 @@
+ #ifndef LIBANGLE_CONSTANTS_H_
+ #define LIBANGLE_CONSTANTS_H_
+ 
++#include <cstddef>
+ #include "common/platform.h"
+ 
+ #include <stdint.h>
+diff --git a/third_party/boringssl/BUILD.gn b/third_party/boringssl/BUILD.gn
+index 17cf9cda9..8ce96bd32 100644
+--- a/third_party/boringssl/BUILD.gn
++++ b/third_party/boringssl/BUILD.gn
+@@ -103,6 +103,13 @@ if (is_win && !is_msan && current_cpu != "arm64") {
+       } else {
+         public_configs = [ ":no_asm_config" ]
+       }
++    } else if (current_cpu == "ppc64") {
++      if (is_linux) {
++        # TODO: ppc64 (be) check
++        sources += crypto_sources_linux_ppc64le
++      } else {
++        public_configs = [ ":no_asm_config" ]
++      }
+     } else {
+       public_configs = [ ":no_asm_config" ]
+     }
+diff --git a/third_party/breakpad/BUILD.gn b/third_party/breakpad/BUILD.gn
+index 4af3d7bbf..adbf54159 100644
+--- a/third_party/breakpad/BUILD.gn
++++ b/third_party/breakpad/BUILD.gn
+@@ -596,7 +596,6 @@ if (is_linux || is_chromeos || is_android) {
+       "breakpad/src/client/minidump_file_writer.h",
+       "breakpad/src/common/convert_UTF.cc",
+       "breakpad/src/common/convert_UTF.h",
+-      "breakpad/src/common/linux/breakpad_getcontext.S",
+       "breakpad/src/common/linux/elf_core_dump.cc",
+       "breakpad/src/common/linux/elf_core_dump.h",
+       "breakpad/src/common/linux/elfutils.cc",
+@@ -634,6 +633,14 @@ if (is_linux || is_chromeos || is_android) {
+ 
+     libs = [ "dl" ]
+ 
++    if (current_cpu == "ppc64") {
++        defines = [ "HAVE_GETCONTEXT" ]
++    } else {
++        sources += [
++            "breakpad/src/common/linux/breakpad_getcontext.S"
++        ]
++    }
++
+     include_dirs = [
+       ".",
+       "breakpad/src",
+@@ -682,7 +689,6 @@ if (is_linux || is_chromeos || is_android) {
+       "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc",
+       "breakpad/src/client/linux/minidump_writer/minidump_writer_unittest_utils.cc",
+       "breakpad/src/client/linux/minidump_writer/proc_cpuinfo_reader_unittest.cc",
+-      "breakpad/src/common/linux/breakpad_getcontext_unittest.cc",
+       "breakpad/src/common/linux/elf_core_dump_unittest.cc",
+       "breakpad/src/common/linux/file_id_unittest.cc",
+       "breakpad/src/common/linux/linux_libc_support_unittest.cc",
+diff --git a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+index 07d9171a0..9aed4cb36 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
++++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/raw_context_cpu.h
+@@ -44,6 +44,8 @@ typedef MDRawContextARM RawContextCPU;
+ typedef MDRawContextARM64_Old RawContextCPU;
+ #elif defined(__mips__)
+ typedef MDRawContextMIPS RawContextCPU;
++#elif defined(__powerpc64__)
++typedef MDRawContextPPC64 RawContextCPU;
+ #else
+ #error "This code has not been ported to your platform yet."
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+index aae1dc13b..03afec7a5 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.cc
+@@ -270,7 +270,42 @@ void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
+   out->float_save.fir = mcontext.fpc_eir;
+ #endif
+ }
+-#endif  // __mips__
++
++#elif defined(__powerpc64__)
++
++uintptr_t ThreadInfo::GetInstructionPointer() const {
++    return mcontext.gp_regs[PT_NIP];
++}
++
++void ThreadInfo::FillCPUContext(RawContextCPU* out) const {
++    out->context_flags = MD_CONTEXT_PPC64_FULL;
++    for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++        out->gpr[i] = mcontext.gp_regs[i];
++
++    out->lr = mcontext.gp_regs[PT_LNK];
++    out->srr0 = mcontext.gp_regs[PT_NIP];
++    out->srr1 = mcontext.gp_regs[PT_MSR];
++    out->cr = mcontext.gp_regs[PT_CCR];
++    out->xer = mcontext.gp_regs[PT_XER];
++    out->ctr = mcontext.gp_regs[PT_CTR];
++    
++    for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++        out->float_save.fpregs[i] = mcontext.fp_regs[i];
++
++    out->float_save.fpscr = mcontext.fp_regs[NFPREG-1];
++
++    for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
++        out->vector_save.save_vr[i] = \
++            {(((uint64_t)vregs.vrregs[i][0]) << 32) 
++                          | vregs.vrregs[i][1], 
++            (((uint64_t)vregs.vrregs[i][2]) << 32)
++                         | vregs.vrregs[i][3]};
++
++    out->vrsave = vregs.vrsave;
++    out->vector_save.save_vscr = {0, vregs.vscr.vscr_word};
++    out->vector_save.save_vrvalid = 0xFFFFFFFF; 
++}
++#endif  // __powerpc64__
+ 
+ void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
+   assert(gp_regs || size);
+@@ -279,6 +314,11 @@ void ThreadInfo::GetGeneralPurposeRegisters(void** gp_regs, size_t* size) {
+     *gp_regs = mcontext.gregs;
+   if (size)
+     *size = sizeof(mcontext.gregs);
++#elif defined(__powerpc64__)
++  if (gp_regs)
++    *gp_regs = mcontext.gp_regs;
++  if (size)
++    *size = sizeof(mcontext.gp_regs);
+ #else
+   if (gp_regs)
+     *gp_regs = &regs;
+@@ -294,6 +334,11 @@ void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) {
+     *fp_regs = &mcontext.fpregs;
+   if (size)
+     *size = sizeof(mcontext.fpregs);
++#elif defined(__powerpc64__)
++  if (fp_regs)
++    *fp_regs = &mcontext.fp_regs;
++  if (size)
++    *size = sizeof(mcontext.fp_regs);
+ #else
+   if (fp_regs)
+     *fp_regs = &fpregs;
+@@ -302,4 +347,13 @@ void ThreadInfo::GetFloatingPointRegisters(void** fp_regs, size_t* size) {
+ #endif
+ }
+ 
++#if defined(__powerpc64__)
++void ThreadInfo::GetVectorRegisters(void** v_regs, size_t* size) {
++    if (v_regs)
++        *v_regs = &vregs;
++    if (size)
++        *size = sizeof(vregs);
++}
++#endif
++
+ }  // namespace google_breakpad
+diff --git a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+index fb216fa6d..593aac822 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
++++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/thread_info.h
+@@ -68,6 +68,10 @@ struct ThreadInfo {
+   // Use the structures defined in <sys/user.h>
+   struct user_regs_struct regs;
+   struct user_fpsimd_struct fpregs;
++#elif defined(__powerpc64__)
++  // Use the structures defined in <sys/ucontext.h>.
++  mcontext_t mcontext;
++  vrregset_t vregs;
+ #elif defined(__mips__)
+   // Use the structure defined in <sys/ucontext.h>.
+   mcontext_t mcontext;
+@@ -84,6 +88,11 @@ struct ThreadInfo {
+ 
+   // Returns the pointer and size of float point register area.
+   void GetFloatingPointRegisters(void** fp_regs, size_t* size);
++
++#if defined(__powerpc64__)
++  // Returns the pointer and size of the vector register area. (PPC64 only)
++  void GetVectorRegisters(void** v_regs, size_t* size);
++#endif
+ };
+ 
+ }  // namespace google_breakpad
+diff --git a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+index 6eec1be24..741983a1a 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.cc
+@@ -254,6 +254,48 @@ void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc) {
+   out->float_save.fir = uc->uc_mcontext.fpc_eir;  // Unused.
+ #endif
+ }
++
++#elif defined(__powerpc64__)
++
++uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
++    return uc->uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP];
++}
++
++uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
++    return uc->uc_mcontext.gp_regs[PT_NIP];
++}
++
++void UContextReader::FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
++                                    const vrregset_t* vregs) {
++    out->context_flags = MD_CONTEXT_PPC64_FULL;
++
++    for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++        out->gpr[i] = uc->uc_mcontext.gp_regs[i];
++
++    out->lr = uc->uc_mcontext.gp_regs[PT_LNK];    
++    out->srr0 = uc->uc_mcontext.gp_regs[PT_NIP];
++    out->srr1 = uc->uc_mcontext.gp_regs[PT_MSR];
++    out->cr = uc->uc_mcontext.gp_regs[PT_CCR];
++    out->xer = uc->uc_mcontext.gp_regs[PT_XER];
++    out->ctr = uc->uc_mcontext.gp_regs[PT_CTR];
++    
++    for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++        out->float_save.fpregs[i] = uc->uc_mcontext.fp_regs[i];
++
++    out->float_save.fpscr = uc->uc_mcontext.fp_regs[NFPREG-1];
++
++    for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++)
++        out->vector_save.save_vr[i] =
++            {(((uint64_t)vregs->vrregs[i][0]) << 32) 
++                         | vregs->vrregs[i][1], 
++             (((uint64_t)vregs->vrregs[i][2]) << 32)
++                         | vregs->vrregs[i][3]};
++
++    out->vrsave = vregs->vrsave;
++    out->vector_save.save_vscr = {0, vregs->vscr.vscr_word};
++    out->vector_save.save_vrvalid = 0xFFFFFFFF; 
++}
++
+ #endif
+ 
+ }  // namespace google_breakpad
+diff --git a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+index 7d4100881..c122ac92e 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
++++ b/third_party/breakpad/breakpad/src/client/linux/dump_writer_common/ucontext_reader.h
+@@ -55,6 +55,9 @@ struct UContextReader {
+ #elif defined(__aarch64__)
+   static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc,
+                              const struct fpsimd_context* fpregs);
++#elif defined(__powerpc64__)
++  static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
++                             const vrregset_t* vregs);
+ #else
+   static void FillCPUContext(RawContextCPU* out, const ucontext_t* uc);
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+index a6cb5f984..ae16b64d9 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.cc
+@@ -461,9 +461,16 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
+     memcpy(&g_crash_context_.float_state, fp_ptr,
+            sizeof(g_crash_context_.float_state));
+   }
++#elif defined(__powerpc64__)
++  // On PPC64, we must copy VR state
++  ucontext_t* uc_ptr = (ucontext_t*)uc;
++  if (uc_ptr->uc_mcontext.v_regs) {
++    memcpy(&g_crash_context_.vector_state, uc_ptr->uc_mcontext.v_regs,
++           sizeof(g_crash_context_.vector_state));
++  }
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+   // FP state is not part of user ABI on ARM Linux.
+-  // In case of MIPS Linux FP state is already part of ucontext_t
++  // In case of MIPS, Linux FP state is already part of ucontext_t
+   // and 'float_state' is not a member of CrashContext.
+   ucontext_t* uc_ptr = (ucontext_t*)uc;
+   if (uc_ptr->uc_mcontext.fpregs) {
+@@ -708,11 +715,19 @@ bool ExceptionHandler::WriteMinidump() {
+   }
+ #endif
+ 
+-#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__)
++#if !defined(__ARM_EABI__) && !defined(__aarch64__) && !defined(__mips__) \
++    && !defined(__powerpc64__)
+   // FPU state is not part of ARM EABI ucontext_t.
+   memcpy(&context.float_state, context.context.uc_mcontext.fpregs,
+          sizeof(context.float_state));
+ #endif
++
++#if defined(__powerpc64__)
++  // Vector registers must be copied on PPC64
++  memcpy(&context.vector_state, context.context.uc_mcontext.v_regs,
++         sizeof(context.vector_state));
++#endif
++
+   context.tid = sys_gettid();
+ 
+   // Add an exception stream to the minidump for better reporting.
+@@ -733,6 +748,9 @@ bool ExceptionHandler::WriteMinidump() {
+ #elif defined(__mips__)
+   context.siginfo.si_addr =
+       reinterpret_cast<void*>(context.context.uc_mcontext.pc);
++#elif defined(__powerpc64__)
++  context.siginfo.si_addr =
++      reinterpret_cast<void*>(context.context.uc_mcontext.gp_regs[PT_NIP]);
+ #else
+ #error "This code has not been ported to your platform yet."
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+index f80843ea7..260dd10f7 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler.h
+@@ -192,7 +192,11 @@ class ExceptionHandler {
+     siginfo_t siginfo;
+     pid_t tid;  // the crashing thread.
+     ucontext_t context;
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++    // PPC64's FP state is a part of ucontext_t like MIPS but the vector
++    // state is not, so a struct is needed.
++    vstate_t vector_state;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+     // #ifdef this out because FP state is not part of user ABI for Linux ARM.
+     // In case of MIPS Linux FP state is already part of ucontext_t so
+     // 'float_state' is not required.
+diff --git a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+index 35dcbfd4d..7934370fd 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/handler/exception_handler_unittest.cc
+@@ -307,7 +307,7 @@ TEST(ExceptionHandlerTest, ParallelChildCrashesDontHang) {
+   }
+ 
+   // Wait a while until the child should have crashed.
+-  usleep(1000000);
++  usleep(2000000);
+   // Kill the child if it is still running.
+   kill(child, SIGKILL);
+ 
+@@ -559,6 +559,8 @@ const unsigned char kIllegalInstruction[] = {
+ #if defined(__mips__)
+   // mfc2 zero,Impl - usually illegal in userspace.
+   0x48, 0x00, 0x00, 0x48
++#elif defined(__powerpc64__)
++  0x01, 0x01, 0x01, 0x01 // Crashes on a tested POWER9 cpu
+ #else
+   // This crashes with SIGILL on x86/x86-64/arm.
+   0xff, 0xff, 0xff, 0xff
+@@ -754,10 +756,10 @@ TEST(ExceptionHandlerTest, InstructionPointerMemoryMaxBound) {
+ 
+   // These are defined here so the parent can use them to check the
+   // data from the minidump afterwards.
+-  // Use 4k here because the OS will hand out a single page even
++  // Use the page size here because the OS will hand out a single page even
+   // if a smaller size is requested, and this test wants to
+   // test the upper bound of the memory range.
+-  const uint32_t kMemorySize = 4096;  // bytes
++  const uint32_t kMemorySize = getpagesize();  // bytes
+   const int kOffset = kMemorySize - sizeof(kIllegalInstruction);
+ 
+   const pid_t child = fork();
+diff --git a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+index fa3c1713a..6ce709e2f 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer.cc
+@@ -138,7 +138,9 @@ class MicrodumpWriter {
+                   const MicrodumpExtraInfo& microdump_extra_info,
+                   LinuxDumper* dumper)
+       : ucontext_(context ? &context->context : NULL),
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        vector_state_(context ? &context->vector_state : NULL),
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         float_state_(context ? &context->float_state : NULL),
+ #endif
+         dumper_(dumper),
+@@ -337,6 +339,8 @@ class MicrodumpWriter {
+ # else
+ #  error "This mips ABI is currently not supported (n32)"
+ #endif
++#elif defined(__powerpc64__)
++    const char kArch[] = "ppc64";
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
+@@ -409,7 +413,9 @@ class MicrodumpWriter {
+   void DumpCPUState() {
+     RawContextCPU cpu;
+     my_memset(&cpu, 0, sizeof(RawContextCPU));
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++    UContextReader::FillCPUContext(&cpu, ucontext_, vector_state_);
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+     UContextReader::FillCPUContext(&cpu, ucontext_, float_state_);
+ #else
+     UContextReader::FillCPUContext(&cpu, ucontext_);
+@@ -605,7 +611,9 @@ class MicrodumpWriter {
+   void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
+ 
+   const ucontext_t* const ucontext_;
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++  const google_breakpad::vstate_t* const vector_state_;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;
+ #endif
+   LinuxDumper* dumper_;
+diff --git a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+index 6339ac0cd..291af106b 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/microdump_writer/microdump_writer_unittest.cc
+@@ -279,10 +279,19 @@ TEST(MicrodumpWriterTest, BasicWithMappings) {
+   CrashAndGetMicrodump(mappings, MicrodumpExtraInfo(), &buf);
+   ASSERT_TRUE(ContainsMicrodump(buf));
+ 
++  int page_size = getpagesize();
+ #ifdef __LP64__
+-  ASSERT_NE(std::string::npos,
+-            buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
+-                     "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  // This test is only available for the following page sizes
++  ASSERT_TRUE((page_size == 4096) || (page_size == 65536));
++  if (page_size == 4096) { 
++    ASSERT_NE(std::string::npos,
++              buf.find("M 0000000000001000 000000000000002A 0000000000001000 "
++                       "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  } else {
++    ASSERT_NE(std::string::npos,
++              buf.find("M 0000000000010000 000000000000002A 0000000000010000 "
++                       "33221100554477668899AABBCCDDEEFF0 libfoo.so"));
++  }
+ #else
+   ASSERT_NE(std::string::npos,
+             buf.find("M 00001000 0000002A 00001000 "
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+index 415068983..b93e4afcf 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_core_dumper.cc
+@@ -112,6 +112,9 @@ bool LinuxCoreDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
+ #elif defined(__mips__)
+   stack_pointer =
+       reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
++#elif defined(__powerpc64__)
++  stack_pointer =
++      reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
+ #else
+ #error "This code hasn't been ported to your platform yet."
+ #endif
+@@ -197,7 +200,10 @@ bool LinuxCoreDumper::EnumerateThreads() {
+         memset(&info, 0, sizeof(ThreadInfo));
+         info.tgid = status->pr_pgrp;
+         info.ppid = status->pr_ppid;
+-#if defined(__mips__)
++#if defined(__powerpc64__)
++        for (int i = 0; i < 31; i++)
++            info.mcontext.gp_regs[i] = status->pr_reg[i];
++#elif defined(__mips__)
+ #if defined(__ANDROID__)
+         for (int i = EF_R0; i <= EF_R31; i++)
+           info.mcontext.gregs[i - EF_R0] = status->pr_reg[i];
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+index 7fd6532ad..199cbfffd 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.cc
+@@ -765,7 +765,9 @@ bool LinuxDumper::GetStackInfo(const void** stack, size_t* stack_len,
+       reinterpret_cast<uint8_t*>(int_stack_pointer & ~(page_size - 1));
+ 
+   // The number of bytes of stack which we try to capture.
+-  static const ptrdiff_t kStackToCapture = 32 * 1024;
++  // This now depends on page_size to avoid missing data
++  // on systems with larger page sizes.
++  static const ptrdiff_t kStackToCapture = 8 * page_size;
+ 
+   const MappingInfo* mapping = FindMapping(stack_pointer);
+   if (!mapping)
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+index 7bee160f1..07bb2b81a 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper.h
+@@ -63,7 +63,8 @@ namespace google_breakpad {
+  (defined(__mips__) && _MIPS_SIM == _ABIO32)
+ typedef Elf32_auxv_t elf_aux_entry;
+ #elif defined(__x86_64) || defined(__aarch64__) || \
+-     (defined(__mips__) && _MIPS_SIM != _ABIO32)
++     (defined(__mips__) && _MIPS_SIM != _ABIO32) || \
++     defined(__powerpc64__)
+ typedef Elf64_auxv_t elf_aux_entry;
+ #endif
+ 
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+index 331f4bb34..3f722947f 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_dumper_unittest_helper.cc
+@@ -51,6 +51,8 @@
+ #define TID_PTR_REGISTER "rcx"
+ #elif defined(__mips__)
+ #define TID_PTR_REGISTER "$1"
++#elif defined(__powerpc64__)
++#define TID_PTR_REGISTER "r8"
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+index e3ddb81a6..fa28575ef 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper.cc
+@@ -149,19 +149,27 @@ bool LinuxPtraceDumper::CopyFromProcess(void* dest, pid_t child,
+   return true;
+ }
+ 
+-bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid)
+-{
++bool LinuxPtraceDumper::ReadRegisterSet(ThreadInfo* info, pid_t tid) {
+ #ifdef PTRACE_GETREGSET
+   struct iovec io;
+   info->GetGeneralPurposeRegisters(&io.iov_base, &io.iov_len);
+-  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PRSTATUS, (void*)&io) == -1) {
+     return false;
+   }
+ 
+   info->GetFloatingPointRegisters(&io.iov_base, &io.iov_len);
+-  if (sys_ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_FPREGSET, (void*)&io) == -1) {
+     return false;
+   }
++
++#if defined(__powerpc64__)
++  // Grab the vector registers on PPC64 too
++  info->GetVectorRegisters(&io.iov_base, &io.iov_len);
++  if (ptrace(PTRACE_GETREGSET, tid, (void*)NT_PPC_VMX, (void*)&io) == -1) {
++    return false;
++  }
++#endif // defined(__powerpc64__)
++
+   return true;
+ #else
+   return false;
+@@ -298,6 +306,9 @@ bool LinuxPtraceDumper::GetThreadInfoByIndex(size_t index, ThreadInfo* info) {
+ #elif defined(__mips__)
+   stack_pointer =
+       reinterpret_cast<uint8_t*>(info->mcontext.gregs[MD_CONTEXT_MIPS_REG_SP]);
++#elif defined(__powerpc64__)
++  stack_pointer =
++      reinterpret_cast<uint8_t*>(info->mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP]);
+ #else
+ #error "This code hasn't been ported to your platform yet."
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+index da71e15dc..12bfb317a 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/linux_ptrace_dumper_unittest.cc
+@@ -462,6 +462,9 @@ TEST(LinuxPtraceDumperTest, VerifyStackReadWithMultipleThreads) {
+ #elif defined(__mips__)
+     pid_t* process_tid_location =
+         reinterpret_cast<pid_t*>(one_thread.mcontext.gregs[1]);
++#elif defined(__powerpc64__)
++    pid_t* process_tid_location =
++        reinterpret_cast<pid_t*>(one_thread.mcontext.gp_regs[8]);
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+@@ -559,6 +562,8 @@ TEST_F(LinuxPtraceDumperTest, SanitizeStackCopy) {
+   uintptr_t heap_addr = thread_info.regs.rcx;
+ #elif defined(__mips__)
+   uintptr_t heap_addr = thread_info.mcontext.gregs[1];
++#elif defined(__powerpc64__)
++  uintptr_t heap_addr = thread_info.mcontext.gp_regs[8];
+ #else
+ #error This test has not been ported to this platform.
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+index 32634ef00..2a56948de 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.cc
+@@ -136,7 +136,9 @@ class MinidumpWriter {
+       : fd_(minidump_fd),
+         path_(minidump_path),
+         ucontext_(context ? &context->context : NULL),
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        vector_state_(context ? &context->vector_state : NULL),
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         float_state_(context ? &context->float_state : NULL),
+ #endif
+         dumper_(dumper),
+@@ -468,7 +470,9 @@ class MinidumpWriter {
+         if (!cpu.Allocate())
+           return false;
+         my_memset(cpu.get(), 0, sizeof(RawContextCPU));
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++        UContextReader::FillCPUContext(cpu.get(), ucontext_, vector_state_);
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+         UContextReader::FillCPUContext(cpu.get(), ucontext_, float_state_);
+ #else
+         UContextReader::FillCPUContext(cpu.get(), ucontext_);
+@@ -897,7 +901,7 @@ class MinidumpWriter {
+     dirent->location.rva = 0;
+   }
+ 
+-#if defined(__i386__) || defined(__x86_64__) || defined(__mips__)
++#if defined(__i386__) || defined(__x86_64__) || defined(__mips__) || defined(__powerpc64__)
+   bool WriteCPUInformation(MDRawSystemInfo* sys_info) {
+     char vendor_id[sizeof(sys_info->cpu.x86_cpu_info.vendor_id) + 1] = {0};
+     static const char vendor_id_name[] = "vendor_id";
+@@ -917,7 +921,9 @@ class MinidumpWriter {
+ 
+     // processor_architecture should always be set, do this first
+     sys_info->processor_architecture =
+-#if defined(__mips__)
++#if defined(__powerpc64__)
++        MD_CPU_ARCHITECTURE_PPC64;
++#elif defined(__mips__)
+ # if _MIPS_SIM == _ABIO32
+         MD_CPU_ARCHITECTURE_MIPS;
+ # elif _MIPS_SIM == _ABI64
+@@ -1333,7 +1339,9 @@ class MinidumpWriter {
+   const char* path_;  // Path to the file where the minidum should be written.
+ 
+   const ucontext_t* const ucontext_;  // also from the signal handler
+-#if !defined(__ARM_EABI__) && !defined(__mips__)
++#if defined(__powerpc64__)
++  const google_breakpad::vstate_t* const vector_state_;
++#elif !defined(__ARM_EABI__) && !defined(__mips__)
+   const google_breakpad::fpstate_t* const float_state_;  // ditto
+ #endif
+   LinuxDumper* dumper_;
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+index e3b0b16da..ccd8aa0a4 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer.h
+@@ -48,6 +48,8 @@ class ExceptionHandler;
+ 
+ #if defined(__aarch64__)
+ typedef struct fpsimd_context fpstate_t;
++#elif defined(__powerpc64__)
++typedef vrregset_t vstate_t;
+ #elif !defined(__ARM_EABI__) && !defined(__mips__)
+ typedef std::remove_pointer<fpregset_t>::type fpstate_t;
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+index d192e5cbb..fc1bfa8d7 100644
+--- a/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
++++ b/third_party/breakpad/breakpad/src/client/linux/minidump_writer/minidump_writer_unittest.cc
+@@ -715,6 +715,9 @@ TEST(MinidumpWriterTest, InvalidStackPointer) {
+ #elif defined(__mips__)
+   context.context.uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP] =
+       invalid_stack_pointer;
++#elif defined(__powerpc64__)
++  context.context.uc_mcontext.gp_regs[MD_CONTEXT_PPC64_REG_SP] =
++      invalid_stack_pointer;
+ #else
+ # error "This code has not been ported to your platform yet."
+ #endif
+diff --git a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+index 99362945c..c54ba7145 100644
+--- a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
++++ b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file.cc
+@@ -65,8 +65,7 @@ bool MemoryMappedFile::Map(const char* path, size_t offset) {
+   }
+ 
+ #if defined(__x86_64__) || defined(__aarch64__) || \
+-   (defined(__mips__) && _MIPS_SIM == _ABI64)
+-
++   (defined(__mips__) && _MIPS_SIM == _ABI64) || defined(__powerpc64__)
+   struct kernel_stat st;
+   if (sys_fstat(fd, &st) == -1 || st.st_size < 0) {
+ #else
+diff --git a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+index fad59f40c..616496d67 100644
+--- a/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
++++ b/third_party/breakpad/breakpad/src/common/linux/memory_mapped_file_unittest.cc
+@@ -176,9 +176,10 @@ TEST_F(MemoryMappedFileTest, RemapAfterMap) {
+ TEST_F(MemoryMappedFileTest, MapWithOffset) {
+   // Put more data in the test file this time. Offsets can only be
+   // done on page boundaries, so we need a two page file to test this.
+-  const int page_size = 4096;
+-  char data1[2 * page_size];
+-  size_t data1_size = sizeof(data1);
++  const int page_size = getpagesize();
++  char *data1 = static_cast<char*>(malloc(2 * page_size));
++  EXPECT_TRUE(data1 != NULL);
++  size_t data1_size = (2 * page_size);
+   for (size_t i = 0; i < data1_size; ++i) {
+     data1[i] = i & 0x7f;
+   }
+diff --git a/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc b/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+index 5803b90d5..2a1cf14f0 100644
+--- a/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
++++ b/third_party/breakpad/breakpad/src/common/memory_allocator_unittest.cc
+@@ -57,8 +57,9 @@ TEST(PageAllocatorTest, LargeObject) {
+ 
+   EXPECT_EQ(0U, allocator.pages_allocated());
+   uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(10000));
++  uint64_t expected_pages = 1 + ((10000 - 1) / getpagesize());
+   ASSERT_FALSE(p == NULL);
+-  EXPECT_EQ(3U, allocator.pages_allocated());
++  EXPECT_EQ(expected_pages, allocator.pages_allocated());
+   for (unsigned i = 1; i < 10; ++i) {
+     uint8_t* p = reinterpret_cast<uint8_t*>(allocator.Alloc(i));
+     ASSERT_FALSE(p == NULL);
+diff --git a/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc b/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
+index 798056dfa..22bd81fff 100644
+--- a/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
++++ b/third_party/breakpad/breakpad/src/processor/exploitability_linux.cc
+@@ -202,12 +202,14 @@ bool ExploitabilityLinux::EndedOnIllegalWrite(uint64_t instruction_ptr) {
+   // Check architecture and set architecture variable to corresponding flag
+   // in objdump.
+   switch (context->GetContextCPU()) {
++#if defined(__i386) || defined(__x86_64)
+     case MD_CONTEXT_X86:
+       architecture = "i386";
+       break;
+     case MD_CONTEXT_AMD64:
+       architecture = "i386:x86-64";
+       break;
++#endif
+     default:
+       // Unsupported architecture. Note that ARM architectures are not
+       // supported because objdump does not support ARM.
+diff --git a/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc b/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
+index 528ee5f21..72764d6c1 100644
+--- a/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
++++ b/third_party/breakpad/breakpad/src/processor/exploitability_unittest.cc
+@@ -104,6 +104,8 @@ ExploitabilityFor(const string& filename) {
+ }
+ 
+ TEST(ExploitabilityTest, TestWindowsEngine) {
++// The following tests are only executable on an x86-class linux machine.
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("ascii_read_av.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -136,9 +138,12 @@ TEST(ExploitabilityTest, TestWindowsEngine) {
+             ExploitabilityFor("read_av_clobber_write.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_LOW,
+             ExploitabilityFor("read_av_conditional.dmp"));
++#endif
+ }
+ 
+ TEST(ExploitabilityTest, TestLinuxEngine) {
++// The following tests are only executable on an x86-class linux machine.
++#if defined(__i386) || defined(__x86_64)
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+             ExploitabilityFor("linux_null_read_av.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -171,7 +176,8 @@ TEST(ExploitabilityTest, TestLinuxEngine) {
+             ExploitabilityFor("linux_executable_heap.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("linux_jmp_to_module_not_exe_region.dmp"));
+-#ifndef _WIN32
++#endif
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+             ExploitabilityFor("linux_write_to_nonwritable_module.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_HIGH,
+@@ -182,10 +188,10 @@ TEST(ExploitabilityTest, TestLinuxEngine) {
+             ExploitabilityFor("linux_write_to_outside_module_via_math.dmp"));
+   ASSERT_EQ(google_breakpad::EXPLOITABILITY_INTERESTING,
+             ExploitabilityFor("linux_write_to_under_4k.dmp"));
+-#endif  // _WIN32
++#endif  // !defined(_WIN32) && (!defined(__i386) && !defined(__x86_64))
+ }
+ 
+-#ifndef _WIN32
++#if !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
+ TEST(ExploitabilityLinuxUtilsTest, DisassembleBytesTest) {
+   ASSERT_FALSE(ExploitabilityLinuxTest::DisassembleBytes("", NULL, 5, NULL));
+   uint8_t bytes[6] = {0xc7, 0x0, 0x5, 0x0, 0x0, 0x0};
+@@ -301,6 +307,7 @@ TEST(ExploitabilityLinuxUtilsTest, CalculateAddressTest) {
+                                                          context,
+                                                          &write_address));
+ }
+-#endif  // _WIN32
++#endif  // !defined(_WIN32) && (defined(__i386) || defined(__x86_64))
++
+ 
+ }  // namespace
+diff --git a/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc b/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+index aade82c99..195aa73f3 100644
+--- a/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
++++ b/third_party/breakpad/breakpad/src/tools/linux/md2core/minidump-2-core.cc
+@@ -77,6 +77,8 @@
+   #define ELF_ARCH  EM_MIPS
+ #elif defined(__aarch64__)
+   #define ELF_ARCH  EM_AARCH64
++#elif defined(__powerpc64__)
++  #define ELF_ARCH  EM_PPC64
+ #endif
+ 
+ #if defined(__arm__)
+@@ -87,6 +89,8 @@ typedef user_regs user_regs_struct;
+ #elif defined (__mips__)
+ // This file-local typedef simplifies the source code.
+ typedef gregset_t user_regs_struct;
++#elif defined(__powerpc64__)
++typedef struct pt_regs user_regs_struct;
+ #endif
+ 
+ using google_breakpad::MDTypeHelper;
+@@ -321,6 +325,9 @@ struct CrashedProcess {
+ #endif
+ #if defined(__aarch64__)
+     user_fpsimd_struct fpregs;
++#endif
++#if defined(__powerpc64__)
++    mcontext_t mcontext;
+ #endif
+     uintptr_t stack_addr;
+     const uint8_t* stack;
+@@ -535,6 +542,38 @@ ParseThreadRegisters(CrashedProcess::Thread* thread,
+   thread->mcontext.fpc_eir = rawregs->float_save.fir;
+ #endif
+ }
++#elif defined(__powerpc64__)
++static void
++ParseThreadRegisters(CrashedProcess::Thread* thread,
++                     const MinidumpMemoryRange& range) {
++  const MDRawContextPPC64* rawregs = range.GetData<MDRawContextPPC64>(0);
++
++  for (int i = 0; i < MD_CONTEXT_PPC64_GPR_COUNT; i++)
++    thread->mcontext.gp_regs[i] = rawregs->gpr[i];
++
++  thread->mcontext.gp_regs[PT_LNK] = rawregs->lr;
++  thread->mcontext.gp_regs[PT_NIP] = rawregs->srr0;
++  thread->mcontext.gp_regs[PT_MSR] = rawregs->srr1;
++  thread->mcontext.gp_regs[PT_CCR] = rawregs->cr;
++  thread->mcontext.gp_regs[PT_XER] = rawregs->xer;
++  thread->mcontext.gp_regs[PT_CTR] = rawregs->ctr;
++  thread->mcontext.v_regs->vrsave = rawregs->vrsave;
++
++  for (int i = 0; i < MD_FLOATINGSAVEAREA_PPC_FPR_COUNT; i++)
++      thread->mcontext.fp_regs[i] = rawregs->float_save.fpregs[i];
++
++  thread->mcontext.fp_regs[NFPREG-1] = rawregs->float_save.fpscr;
++
++  for (int i = 0; i < MD_VECTORSAVEAREA_PPC_VR_COUNT; i++) {
++      thread->mcontext.v_regs->vrregs[i][0] = rawregs->vector_save.save_vr[i].high >> 32;
++      thread->mcontext.v_regs->vrregs[i][1] = rawregs->vector_save.save_vr[i].high;
++      thread->mcontext.v_regs->vrregs[i][2] = rawregs->vector_save.save_vr[i].low >> 32;
++      thread->mcontext.v_regs->vrregs[i][3] = rawregs->vector_save.save_vr[i].low;
++  }
++
++  thread->mcontext.v_regs->vscr.vscr_word = rawregs->vector_save.save_vscr.low & 0xFFFFFFFF;
++}
++
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
+@@ -623,6 +662,12 @@ ParseSystemInfo(const Options& options, CrashedProcess* crashinfo,
+ # else
+ #  error "This mips ABI is currently not supported (n32)"
+ # endif
++#elif defined(__powerpc64__)
++  if (sysinfo->processor_architecture != MD_CPU_ARCHITECTURE_PPC64) {
++    fprintf(stderr,
++            "This version of minidump-2-core only supports PPC64.\n");
++    exit(1);
++  }
+ #else
+ #error "This code has not been ported to your platform yet"
+ #endif
+diff --git a/third_party/crashpad/crashpad/CONTRIBUTORS b/third_party/crashpad/crashpad/CONTRIBUTORS
+index 8724b7f32..8e29424ef 100644
+--- a/third_party/crashpad/crashpad/CONTRIBUTORS
++++ b/third_party/crashpad/crashpad/CONTRIBUTORS
+@@ -13,3 +13,4 @@ Mark Mentovai <mark@chromium.org>
+ Robert Sesek <rsesek@chromium.org>
+ Scott Graham <scottmg@chromium.org>
+ Joshua Peraza <jperaza@chromium.org>
++Shawn Anastasio <shawn@anastas.io>
+diff --git a/third_party/crashpad/crashpad/compat/linux/sys/user.h b/third_party/crashpad/crashpad/compat/linux/sys/user.h
+index 6ed77a98e..1fd83469a 100644
+--- a/third_party/crashpad/crashpad/compat/linux/sys/user.h
++++ b/third_party/crashpad/crashpad/compat/linux/sys/user.h
+@@ -15,6 +15,7 @@
+ #ifndef CRASHPAD_COMPAT_LINUX_SYS_USER_H_
+ #define CRASHPAD_COMPAT_LINUX_SYS_USER_H_
+ 
++#include <cstddef>
+ #include_next <sys/user.h>
+ 
+ #include <features.h>
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_context.h b/third_party/crashpad/crashpad/minidump/minidump_context.h
+index 3a3e603cb..3118d9e9f 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_context.h
++++ b/third_party/crashpad/crashpad/minidump/minidump_context.h
+@@ -592,6 +592,70 @@ struct MinidumpContextMIPS64 {
+   uint64_t fir;
+ };
+ 
++//! \brief ppc64-specific flags for MinidumpPPC64::context_flags
++//! Based on minidump_cpu_ppc64.h from breakpad
++enum MinidumpContextPPC64Flags : uint32_t {
++  //! \brief Identifies the context as PPC64.
++  kMinidumpContextPPC64 = 0x01000000,
++
++  //! \brief Indicates the validity of general purpose registers.
++  //!
++  //! Registers `r0`-`r31`, `nip`, `msr`, `lr`, etc. are valid.
++  kMinidumpContextPPC64Base = kMinidumpContextPPC64 | 0x00000001,
++
++  //! \brief Indicates the validity of floating point registers.
++  //!
++  //! Registers `fp0`-`fp31`, `fpscr` are valid.
++  kMinidumpContextPPC64Floating = kMinidumpContextPPC64 | 0x00000008,
++
++  //! \brief Indicates the validity of Altivec/VMX registers.
++  //!
++  //! Registers `v0`-`v31`, `vscr`, `vrsave`.
++  kMinidumpContextPPC64Vector = kMinidumpContextPPC64 | 0x00000020,
++
++  //! \brief Indicates the validity of all registers
++  kMinidumpContextPPC64All = kMinidumpContextPPC64Base     |
++                             kMinidumpContextPPC64Floating |
++                             kMinidumpContextPPC64Vector
++};
++
++//! \brief A PPC64 CPU context carried in a minidump file.
++//! Based on minidump_cpu_ppc64.h from breakpad.
++struct MinidumpContextPPC64 {
++  uint64_t context_flags;
++
++  //! \brief General purpose registers.
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t regs[32];
++  uint64_t ccr;
++  uint64_t xer;
++  uint64_t lnk;
++  uint64_t ctr;
++
++  //! \brief Floating point registers.
++  double fpregs[32];
++
++  //! \brief FPU status register.
++  double fpscr;
++
++  //! \brief Altivec/VMX vector registers.
++  struct {
++      //! \brief Vector registers are 128bits.
++      uint128_struct save_vr[32];
++      uint128_struct save_vscr;
++
++      //! \brief Padding included for breakpad compatibiltiy.
++      uint32_t save_pad5[4];
++
++      //! \brief VRSAVE register.
++      uint32_t save_vrsave;
++
++      //! \brief Padding included for breakpad compatibiltiy.
++      uint32_t save_pad6[7];
++  } vregs;
++};
++
+ }  // namespace crashpad
+ 
+ #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_H_
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc b/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
+index d7e53a493..d89eb9e01 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
++++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.cc
+@@ -101,6 +101,13 @@ MinidumpContextWriter::CreateFromSnapshot(const CPUContext* context_snapshot) {
+       break;
+     }
+ 
++    case kCPUArchitecturePPC64: {
++      context = std::make_unique<MinidumpContextPPC64Writer>();
++      reinterpret_cast<MinidumpContextPPC64Writer*>(context.get())
++          ->InitalizeFromSnapshot(context_snapshot->ppc64);
++      break;
++    }
++
+     default: {
+       LOG(ERROR) << "unknown context architecture "
+                  << context_snapshot->architecture;
+@@ -453,4 +460,47 @@ size_t MinidumpContextMIPS64Writer::ContextSize() const {
+   return sizeof(context_);
+ }
+ 
++MinidumpContextPPC64Writer::MinidumpContextPPC64Writer()
++  : MinidumpContextWriter(), context_() {
++    context_.context_flags = kMinidumpContextPPC64;
++}
++
++MinidumpContextPPC64Writer::~MinidumpContextPPC64Writer() = default;
++
++void MinidumpContextPPC64Writer::InitalizeFromSnapshot(
++    const CPUContextPPC64* context_snapshot) {
++  DCHECK_EQ(state(), kStateMutable);
++  DCHECK_EQ(context_.context_flags, kMinidumpContextPPC64);
++
++  context_.context_flags = kMinidumpContextPPC64All;
++
++  memcpy(context_.regs, context_snapshot->regs, sizeof(context_.regs));
++  context_.nip = context_snapshot->nip;
++  context_.msr = context_snapshot->msr;
++  context_.ccr = context_snapshot->ccr;
++  context_.xer = context_snapshot->xer;
++  context_.lnk = context_snapshot->lnk;
++  context_.ctr = context_snapshot->ctr;
++
++  memcpy(context_.fpregs, context_snapshot->fpregs, sizeof(context_.fpregs));
++  context_.fpscr = context_snapshot->fpscr;
++
++  memcpy(context_.vregs.save_vr, context_snapshot->vregs.save_vr,
++         sizeof(context_.vregs.save_vr));
++  memcpy(&context_.vregs.save_vscr, &context_snapshot->vregs.save_vscr,
++         sizeof(context_.vregs.save_vscr));
++  context_.vregs.save_vrsave = context_snapshot->vregs.save_vrsave;
++}
++
++bool MinidumpContextPPC64Writer::WriteObject(
++    FileWriterInterface* file_writer) {
++  DCHECK_EQ(state(), kStateWritable);
++  return file_writer->Write(&context_, sizeof(context_));
++}
++
++size_t MinidumpContextPPC64Writer::ContextSize() const {
++  DCHECK_GE(state(), kStateFrozen);
++  return sizeof(context_);
++}
++
+ }  // namespace crashpad
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+index d4ab936ee..1d22fc59c 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
++++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer.h
+@@ -315,6 +315,43 @@ class MinidumpContextMIPS64Writer final : public MinidumpContextWriter {
+   MinidumpContextMIPS64 context_;
+ };
+ 
++class MinidumpContextPPC64Writer final : public MinidumpContextWriter {
++ public:
++  MinidumpContextPPC64Writer();
++  ~MinidumpContextPPC64Writer() override;
++
++  //! \brief Initalizes the MinidumpContextPPC64 based on \a context_snapshot.
++  //!
++  //! \param[in] context_snapshot The context snapshot to use as source data.
++  //!
++  //! \note Valid in #kStateMutable. No mutation of context() may be done before
++  //!     calling this method, and it is not normally necessary to alter
++  //!     context() after calling this method.
++  void InitalizeFromSnapshot(const CPUContextPPC64* context_snapshot);
++
++  //! \brief Returns a pointer to the context structure that this object will
++  //!     write.
++  //!
++  //! \attention This returns a non-`const` pointer to this object’s private
++  //!     data so that a caller can populate the context structure directly.
++  //!     This is done because providing setter interfaces to each field in the
++  //!     context structure would be unwieldy and cumbersome. Care must be taken
++  //!     to populate the context structure correctly. The context structure
++  //!     must only be modified while this object is in the #kStateMutable
++  //!     state.
++  MinidumpContextPPC64* context() { return &context_; }
++
++ protected:
++  // MinidumpWritable:
++  bool WriteObject(FileWriterInterface* file_writer) override;
++
++  // MinidumpContextWriter:
++  size_t ContextSize() const override;
++
++ private:
++  MinidumpContextPPC64 context_;
++};
++
+ }  // namespace crashpad
+ 
+ #endif  // CRASHPAD_MINIDUMP_MINIDUMP_CONTEXT_WRITER_H_
+diff --git a/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc b/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
+index 3216a906b..a9fcbe9d8 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
++++ b/third_party/crashpad/crashpad/minidump/minidump_context_writer_test.cc
+@@ -213,6 +213,21 @@ TEST(MinidumpContextWriter, MIPS64_FromSnapshot) {
+       context, ExpectMinidumpContextMIPS64, kSeed);
+ }
+ 
++TEST(MinidumpContextWriter, PPC64_Zeros) {
++  EmptyContextTest<MinidumpContextPPC64Writer, MinidumpContextPPC64>(
++    ExpectMinidumpContextPPC64);
++}
++
++TEST(MinidumpContextWriter, PPC64_FromSnapshot) {
++  constexpr uint32_t kSeed = 64;
++  CPUContextPPC64 context_ppc64;
++  CPUContext context;
++  context.ppc64 = &context_ppc64;
++  InitializeCPUContextPPC64(&context, kSeed);
++  FromSnapshotTest<MinidumpContextPPC64Writer, MinidumpContextPPC64>(
++      context, ExpectMinidumpContextPPC64, kSeed);
++}
++
+ }  // namespace
+ }  // namespace test
+ }  // namespace crashpad
+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 0974e3ddf..b71ec5880 100644
+--- a/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
++++ b/third_party/crashpad/crashpad/minidump/minidump_misc_info_writer.cc
+@@ -135,6 +135,8 @@ std::string MinidumpMiscInfoDebugBuildString() {
+   static constexpr char kCPU[] = "mips";
+ #elif defined(ARCH_CPU_MIPS64EL)
+   static constexpr char kCPU[] = "mips64";
++#elif defined(ARCH_CPU_PPC64)
++  static constexpr char kCPU[] = "ppc64";
+ #else
+ #error define kCPU for this CPU
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/capture_memory.cc b/third_party/crashpad/crashpad/snapshot/capture_memory.cc
+index 7a1b2763c..beda8da9e 100644
+--- a/third_party/crashpad/crashpad/snapshot/capture_memory.cc
++++ b/third_party/crashpad/crashpad/snapshot/capture_memory.cc
+@@ -112,6 +112,11 @@ void CaptureMemory::PointedToByContext(const CPUContext& context,
+   for (size_t i = 0; i < std::size(context.mipsel->regs); ++i) {
+     MaybeCaptureMemoryAround(delegate, context.mipsel->regs[i]);
+   }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  MaybeCaptureMemoryAround(delegate, context.ppc64->nip);
++  for (size_t i = 0; i < std::size(context.ppc64->regs); ++i) {
++    MaybeCaptureMemoryAround(delegate, context.ppc64->regs[i]);
++  }
+ #else
+ #error Port.
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/cpu_architecture.h b/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
+index 811a72095..f4f83981d 100644
+--- a/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
++++ b/third_party/crashpad/crashpad/snapshot/cpu_architecture.h
+@@ -43,7 +43,10 @@ enum CPUArchitecture {
+   kCPUArchitectureMIPSEL,
+ 
+   //! \brief 64-bit MIPSEL.
+-  kCPUArchitectureMIPS64EL
++  kCPUArchitectureMIPS64EL,
++
++  //! \brief 64-bit PPC64.
++  kCPUArchitecturePPC64
+ };
+ 
+ }  // namespace crashpad
+diff --git a/third_party/crashpad/crashpad/snapshot/cpu_context.cc b/third_party/crashpad/crashpad/snapshot/cpu_context.cc
+index c75b5555e..aeade577a 100644
+--- a/third_party/crashpad/crashpad/snapshot/cpu_context.cc
++++ b/third_party/crashpad/crashpad/snapshot/cpu_context.cc
+@@ -169,6 +169,8 @@ uint64_t CPUContext::InstructionPointer() const {
+       return arm->pc;
+     case kCPUArchitectureARM64:
+       return arm64->pc;
++    case kCPUArchitecturePPC64:
++      return ppc64->nip;
+     default:
+       NOTREACHED();
+       return ~0ull;
+@@ -185,6 +187,8 @@ uint64_t CPUContext::StackPointer() const {
+       return arm->sp;
+     case kCPUArchitectureARM64:
+       return arm64->sp;
++    case kCPUArchitecturePPC64:
++      return ppc64->regs[1];
+     default:
+       NOTREACHED();
+       return ~0ull;
+@@ -196,6 +200,7 @@ bool CPUContext::Is64Bit() const {
+     case kCPUArchitectureX86_64:
+     case kCPUArchitectureARM64:
+     case kCPUArchitectureMIPS64EL:
++    case kCPUArchitecturePPC64:
+       return true;
+     case kCPUArchitectureX86:
+     case kCPUArchitectureARM:
+diff --git a/third_party/crashpad/crashpad/snapshot/cpu_context.h b/third_party/crashpad/crashpad/snapshot/cpu_context.h
+index fb23c4679..eebede63c 100644
+--- a/third_party/crashpad/crashpad/snapshot/cpu_context.h
++++ b/third_party/crashpad/crashpad/snapshot/cpu_context.h
+@@ -352,6 +352,24 @@ struct CPUContextMIPS64 {
+   uint64_t fir;
+ };
+ 
++//! \brief A context structure carrying PPC64 CPU state.
++struct CPUContextPPC64 {
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t regs[32];
++  uint64_t ccr;
++  uint64_t xer;
++  uint64_t lnk;
++  uint64_t ctr;
++  double fpregs[32];
++  double fpscr;
++  struct {
++    uint128_struct save_vr[32];
++    uint128_struct save_vscr;
++    uint32_t save_vrsave;
++  } vregs;
++};
++
+ //! \brief A context structure capable of carrying the context of any supported
+ //!     CPU architecture.
+ struct CPUContext {
+@@ -382,6 +400,7 @@ struct CPUContext {
+     CPUContextARM64* arm64;
+     CPUContextMIPS* mipsel;
+     CPUContextMIPS64* mips64;
++    CPUContextPPC64* ppc64;
+   };
+ };
+ 
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h b/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
+index 9f46a4897..aa677c4eb 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
++++ b/third_party/crashpad/crashpad/snapshot/linux/cpu_context_linux.h
+@@ -15,6 +15,7 @@
+ #ifndef CRASHPAD_SNAPSHOT_LINUX_CPU_CONTEXT_LINUX_H_
+ #define CRASHPAD_SNAPSHOT_LINUX_CPU_CONTEXT_LINUX_H_
+ 
++#include <cstring>
+ #include "build/build_config.h"
+ #include "snapshot/cpu_context.h"
+ #include "snapshot/linux/signal_context.h"
+@@ -174,6 +175,78 @@ void InitializeCPUContextMIPS(
+ 
+ #endif  // ARCH_CPU_MIPS_FAMILY || DOXYGEN
+ 
++#if defined(ARCH_CPU_PPC64_FAMILY) || DOXYGEN
++
++//! \brief Initalizes a CPUContextPPC64 structure from native context
++//!     structures on Linux.
++//!
++//! \param[in] thread_context The native thread context.
++//! \param[in] float_context The native float context.
++//! \param[in] vector_context The native vector context.
++//! \param[out] context The CPUContextPPC64 structure to initalize.
++template <typename Traits>
++void InitializeCPUContextPPC64(
++    const ThreadContext::t64_t& thread_context,
++    const FloatContext::f64_t& float_context,
++    const VectorContext::v64_t& vector_context,
++    typename Traits::CPUContext* context) {
++
++  memcpy(context->regs, thread_context.gpr, sizeof(context->regs));
++  context->nip = thread_context.nip;
++  context->msr = thread_context.msr;
++  context->ccr = thread_context.ccr;
++  context->xer = thread_context.xer;
++  context->lnk = thread_context.lnk;
++  context->ctr = thread_context.ctr;
++
++  memcpy(context->fpregs, float_context.fpregs, sizeof(context->fpregs));
++  context->fpscr = float_context.fpscr;
++
++  for (uint8_t i = 0; i < 32; i++) {
++    context->vregs.save_vr[i] = {
++      (((uint64_t)vector_context.vrregs[i][0]) << 32) |
++        vector_context.vrregs[i][1],
++      (((uint64_t)vector_context.vrregs[i][2]) << 32) |
++        vector_context.vrregs[i][3]
++    };
++  }
++  context->vregs.save_vrsave = vector_context.vrsave;
++  context->vregs.save_vscr = {0, (uint64_t)vector_context.vscr.vscr_word};
++}
++
++template <typename Traits>
++void InitializeCPUContextPPC64(
++    const SignalThreadContext64 &thread_context,
++    const SignalFloatContext64 &float_context,
++    const SignalVectorContext64 &vector_context,
++    typename Traits::CPUContext* context) {
++
++  memcpy(context->regs, thread_context.regs, sizeof(context->regs));
++  context->nip = thread_context.nip;
++  context->msr = thread_context.msr;
++  context->ccr = thread_context.ccr;
++  context->xer = thread_context.xer;
++  context->lnk = thread_context.lnk;
++  context->ctr = thread_context.ctr;
++
++  memcpy(context->fpregs, float_context.regs, sizeof(context->fpregs));
++  context->fpscr = float_context.fpscr;
++
++  for (uint8_t i = 0; i < 32; i++) {
++    context->vregs.save_vr[i] = {
++      (((uint64_t)vector_context.vrregs[i][0]) << 32) |
++        vector_context.vrregs[i][1],
++      (((uint64_t)vector_context.vrregs[i][2]) << 32) |
++        vector_context.vrregs[i][3]
++    };
++  }
++  context->vregs.save_vrsave = vector_context.vrsave;
++  context->vregs.save_vscr = {0, (uint64_t)vector_context.vscr.vscr_word};
++}
++
++
++#endif
++
+ }  // namespace internal
+ }  // namespace crashpad
+ 
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc b/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
+index d32bd1937..2dd538c2b 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/debug_rendezvous_test.cc
+@@ -192,6 +192,8 @@ void TestAgainstTarget(PtraceConnection* connection) {
+               device == 0 && inode == 0 && mapping_name == "[vdso]";
+ #if defined(ARCH_CPU_X86)
+           static constexpr char kPrefix[] = "linux-gate.so.";
++#elif defined(ARCH_CPU_PPC64)
++          static constexpr char kPrefix[] = "linux-vdso64.so.";
+ #else
+           static constexpr char kPrefix[] = "linux-vdso.so.";
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
+index cd40b3b12..6bcf23b6f 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.cc
+@@ -323,6 +323,69 @@ bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
+       reader, context_address, context_.mips64);
+ }
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++
++template <typename Traits>
++static bool ReadContext(ProcessReaderLinux* reader,
++                        LinuxVMAddress context_address,
++                        typename Traits::CPUContext* dest_context) {
++  const ProcessMemory* memory = reader->Memory();
++
++  LinuxVMAddress gp_regs_address = context_address +
++                                   offsetof(UContext, mcontext) +
++                                   offsetof(typename Traits::MContext, gp_regs);
++
++  typename Traits::SignalThreadContext thread_context;
++  if (!memory->Read(gp_regs_address, sizeof(thread_context), &thread_context)) {
++    LOG(ERROR) << "Couldn't read gp_regs!";
++    return false;
++  }
++
++  LinuxVMAddress fp_regs_address = context_address +
++                                   offsetof(UContext, mcontext) +
++                                   offsetof(typename Traits::MContext, fp_regs);
++
++  typename Traits::SignalFloatContext fp_context;
++  if (!memory->Read(fp_regs_address, sizeof(fp_context), &fp_context)) {
++    LOG(ERROR) << "Couldn't read fp_regs!";
++    return false;
++  }
++
++  LinuxVMAddress v_regs_ptr_address = context_address +
++                                  offsetof(UContext, mcontext) +
++                                  offsetof(typename Traits::MContext, vmx_reserve) + 8;
++
++  typename Traits::SignalVectorContext v_context;
++  if (!memory->Read(v_regs_ptr_address, sizeof(v_context), &v_context)) {
++    LOG(ERROR) << "Couldn't read v_regs!";
++    return false;
++  }
++
++  InitializeCPUContextPPC64<ContextTraits64>(thread_context, fp_context,
++                            v_context, dest_context);
++
++  return true;
++}
++
++template<>
++bool ExceptionSnapshotLinux::ReadContext<ContextTraits64>(
++    ProcessReaderLinux* reader,
++    LinuxVMAddress context_address) {
++  context_.architecture = kCPUArchitecturePPC64;
++  context_.ppc64 = &context_union_.ppc64;
++
++  return internal::ReadContext<ContextTraits64>(
++      reader, context_address, context_.ppc64);
++}
++
++template<>
++bool ExceptionSnapshotLinux::ReadContext<ContextTraits32>(
++    ProcessReaderLinux* reader,
++    LinuxVMAddress context_address) {
++  // PPC64 is 64-bit
++  return false;
++}
++
+ #endif  // ARCH_CPU_X86_FAMILY
+ 
+ bool ExceptionSnapshotLinux::Initialize(ProcessReaderLinux* process_reader,
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
+index ea0cd2106..e42df520f 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
++++ b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux.h
+@@ -84,6 +84,8 @@ class ExceptionSnapshotLinux final : public ExceptionSnapshot {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+     CPUContextMIPS mipsel;
+     CPUContextMIPS64 mips64;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    CPUContextPPC64 ppc64;
+ #endif
+   } context_union_;
+   CPUContext context_;
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+index c17170b43..b6a714cc6 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+@@ -296,7 +296,28 @@ void ExpectContext(const CPUContext& actual, const NativeCPUContext& expected) {
+             0);
+ #undef CPU_ARCH_NAME
+ }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++using NativeCPUContext = ucontext_t;
++
++void InitializeContext(NativeCPUContext* context) {
++  for (size_t reg = 0; reg < 32; ++reg) {
++    context->uc_mcontext.gp_regs[reg] = reg;
++  }
++
++  memset(&context->uc_mcontext.fp_regs, 44,
++      sizeof(context->uc_mcontext.fp_regs));
++}
+ 
++void ExpectContext(const CPUContext& actual, const NativeCPUContext& expected) {
++  EXPECT_EQ(actual.architecture, kCPUArchitecturePPC64);
++
++  for (size_t reg = 0; reg < 32; ++reg) {
++    EXPECT_EQ(actual.ppc64->regs[reg], expected.uc_mcontext.gp_regs[reg]);
++  }
++
++  EXPECT_EQ(memcmp(actual.ppc64->fpregs, expected.uc_mcontext.fp_regs,
++            sizeof(actual.ppc64->fpregs)), 0);
++}
+ #else
+ #error Port.
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc b/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
+index ee246e8bc..9555dce04 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/process_reader_linux.cc
+@@ -108,6 +108,8 @@ void ProcessReaderLinux::Thread::InitializeStack(ProcessReaderLinux* reader) {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   stack_pointer = reader->Is64Bit() ? thread_info.thread_context.t64.regs[29]
+                                     : thread_info.thread_context.t32.regs[29];
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  stack_pointer = thread_info.thread_context.t64.gpr[1];
+ #else
+ #error Port.
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/signal_context.h b/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+index 110024680..a1f2da259 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
++++ b/third_party/crashpad/crashpad/snapshot/linux/signal_context.h
+@@ -422,6 +422,89 @@ static_assert(offsetof(UContext<ContextTraits64>, mcontext.fpregs) ==
+               "context offset mismatch");
+ #endif
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++
++struct SignalThreadContext64 {
++  uint64_t regs[32];
++  uint64_t nip;
++  uint64_t msr;
++  uint64_t orig_r3;
++  uint64_t ctr;
++  uint64_t lnk;
++  uint64_t xer;
++  uint64_t ccr;
++  uint64_t softe;
++  uint64_t trap;
++  uint64_t dar;
++  uint64_t dsisr;
++  uint64_t result;
++  uint64_t dscr;
++  uint64_t fpr0[3];
++};
++
++struct SignalFloatContext64 {
++  double regs[32];
++  double fpscr;
++};
++
++struct SignalVectorContext64 {
++  int32_t vrregs[32][4];
++  struct {
++    int32_t __pad[3];
++    int32_t vscr_word;
++  } vscr;
++  int32_t vrsave;
++  int32_t __pad[3];
++} __attribute__((__aligned__(16)));
++
++
++#pragma pack(pop)
++struct MContext64 {
++  uint64_t reserved[4];
++  int32_t signal;
++  int32_t __pad0;
++  uint64_t handler;
++  uint64_t oldmask;
++  uint64_t pt_regs_ptr;
++  SignalThreadContext64 gp_regs;
++  SignalFloatContext64  fp_regs;
++  SignalVectorContext64 *v_regs;
++  int64_t vmx_reserve[69];
++};
++
++struct ContextTraits64 : public Traits64 {
++  using MContext = MContext64;
++  using SignalThreadContext = SignalThreadContext64;
++  using SignalFloatContext = SignalFloatContext64;
++  using SignalVectorContext = SignalVectorContext64;
++  using CPUContext = CPUContextPPC64;
++};
++
++struct ContextTraits32 : public Traits32 {};
++
++struct UContext {
++  uint64_t flags;
++  uint64_t link;
++  SignalStack<ContextTraits64> stack;
++  Sigset<ContextTraits64> sigmask;
++  MContext64 mcontext;
++};
++#pragma pack(push, 1)
++
++static_assert(sizeof(UContext) == sizeof(ucontext_t),
++              "ucontext_t size mismatch");
++static_assert(sizeof(MContext64) == sizeof(mcontext_t),
++              "mcontext_t size mismatch");
++static_assert(sizeof(SignalThreadContext64) == sizeof(gregset_t),
++              "gregset_t size mismatch");
++static_assert(sizeof(SignalFloatContext64) == sizeof(fpregset_t),
++              "fpregset_t size mismatch");
++static_assert(sizeof(SignalVectorContext64) == sizeof(vrregset_t),
++              "vrregset_t size mismatch");
++static_assert(offsetof(UContext, mcontext) ==
++              offsetof(ucontext_t, uc_mcontext), "mcontext offset mismatch");
++static_assert(offsetof(MContext64, gp_regs) ==
++              offsetof(mcontext_t, gp_regs), "gp_regs offset mismatch");
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc b/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
+index a99da3e4b..03b973083 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/system_snapshot_linux.cc
+@@ -204,6 +204,8 @@ CPUArchitecture SystemSnapshotLinux::GetCPUArchitecture() const {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return process_reader_->Is64Bit() ? kCPUArchitectureMIPS64EL
+                                     : kCPUArchitectureMIPSEL;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return kCPUArchitecturePPC64;
+ #else
+ #error port to your architecture
+ #endif
+@@ -219,6 +221,9 @@ uint32_t SystemSnapshotLinux::CPURevision() const {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return 0;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return 0;
+ #else
+ #error port to your architecture
+ #endif
+@@ -239,6 +244,9 @@ std::string SystemSnapshotLinux::CPUVendor() const {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return std::string();
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return std::string();
+ #else
+ #error port to your architecture
+ #endif
+@@ -372,6 +380,9 @@ bool SystemSnapshotLinux::NXEnabled() const {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   // Not implementable on MIPS
+   return false;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  // Not yet implemented on PPC64
++  return false;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/test_modules.cc b/third_party/crashpad/crashpad/snapshot/linux/test_modules.cc
+index b2450c206..7ba78b2ae 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/test_modules.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/test_modules.cc
+@@ -110,6 +110,8 @@ bool WriteTestModule(const base::FilePath& module_path,
+   module.ehdr.e_machine = EM_AARCH64;
+ #elif defined(ARCH_CPU_MIPSEL) || defined(ARCH_CPU_MIPS64EL)
+   module.ehdr.e_machine = EM_MIPS;
++#elif defined(ARCH_CPU_PPC64)
++  module.ehdr.e_machine = EM_PPC64;
+ #endif
+ 
+   module.ehdr.e_version = EV_CURRENT;
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc b/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
+index e3e2bebdd..8ef43752e 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
++++ b/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.cc
+@@ -186,6 +186,14 @@ bool ThreadSnapshotLinux::Initialize(ProcessReaderLinux* process_reader,
+         thread.thread_info.float_context.f32,
+         context_.mipsel);
+   }
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  context_.architecture = kCPUArchitecturePPC64;
++  context_.ppc64 = &context_union_.ppc64;
++  InitializeCPUContextPPC64<ContextTraits64>(
++      thread.thread_info.thread_context.t64,
++      thread.thread_info.float_context.f64,
++      thread.thread_info.vector_context.v64,
++      context_.ppc64);
+ #else
+ #error Port.
+ #endif
+diff --git a/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h b/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
+index 44cc6f6d9..d4136461e 100644
+--- a/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
++++ b/third_party/crashpad/crashpad/snapshot/linux/thread_snapshot_linux.h
+@@ -68,6 +68,8 @@ class ThreadSnapshotLinux final : public ThreadSnapshot {
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+     CPUContextMIPS mipsel;
+     CPUContextMIPS64 mips64;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    CPUContextPPC64 ppc64;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+--- a/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
++++ b/third_party/crashpad/crashpad/util/net/http_transport_libcurl.cc
+@@ -236,6 +236,12 @@
+ #elif defined(ARCH_CPU_BIG_ENDIAN)
+     static constexpr char arch[] = "aarch64_be";
+ #endif
++#elif defined(__powerpc64__)
++#if defined(ARCH_CPU_LITTLE_ENDIAN)
++    static constexpr char arch[] = "ppc64le";
++#elif defined(ARCH_CPU_BIG_ENDIAN)
++    static constexpr char arch[] = "ppc64";
++#endif
+ #else
+ #error Port
+ #endif
+diff --git a/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc b/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
+index d3d5ebdfb..3fd730cb5 100644
+--- a/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
++++ b/third_party/crashpad/crashpad/util/linux/auxiliary_vector.cc
+@@ -56,6 +56,11 @@ bool AuxiliaryVector::Read(PtraceConnection* connection) {
+     if (type == AT_IGNORE) {
+       continue;
+     }
++#if defined(ARCH_CPU_PPC64_FAMILY)
++    if (type == AT_IGNOREPPC) {
++      continue;
++    }
++#endif
+     if (!MapInsertOrReplace(&values_, type, value, nullptr)) {
+       LOG(ERROR) << "duplicate auxv entry";
+       return false;
+diff --git a/third_party/crashpad/crashpad/util/linux/ptracer.cc b/third_party/crashpad/crashpad/util/linux/ptracer.cc
+index 557e0d363..08ae434b8 100644
+--- a/third_party/crashpad/crashpad/util/linux/ptracer.cc
++++ b/third_party/crashpad/crashpad/util/linux/ptracer.cc
+@@ -398,6 +398,64 @@ bool GetThreadArea64(pid_t tid,
+   return true;
+ }
+ 
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++// PPC64 has had HAVE_ARCH_TRACEHOOK set since 2.6.27 (even before x86 had it).
++// That means we can simply use PTRACE_GETREGESET.
++
++template <typename Destination>
++bool GetRegisterSet(pid_t tid, int set, Destination* dest, bool can_log) {
++  iovec iov;
++  iov.iov_base = reinterpret_cast<void*>(dest);
++  iov.iov_len = sizeof(*dest);
++  if (ptrace(PTRACE_GETREGSET, tid, reinterpret_cast<void*>(set), &iov) != 0) {
++    PLOG_IF(ERROR, can_log) << "ptrace";
++    return false;
++  }
++  if (iov.iov_len != sizeof(*dest)) {
++    LOG_IF(ERROR, can_log) << "Unexpected registers size";
++    return false;
++  }
++  return true;
++}
++
++bool GetVectorRegisters64(pid_t tid,
++                          VectorContext* context,
++                          bool can_log) {
++  return GetRegisterSet(tid, NT_PPC_VMX, &context->v64, can_log);
++}
++
++bool GetFloatingPointRegisters64(pid_t tid,
++                                 FloatContext* context,
++                                 bool can_log) {
++  return GetRegisterSet(tid, NT_PRFPREG, &context->f64, can_log);
++}
++
++bool GetThreadArea64(pid_t tid,
++                     const ThreadContext& context,
++                     LinuxVMAddress* address,
++                     bool can_log) {
++  // PPC64 doesn't have PTRACE_GET_THREAD_AREA since the thread pointer
++  // is stored in GPR 13.
++  ThreadContext::t64_t tc;
++  if (!GetRegisterSet(tid, NT_PRSTATUS, &tc, can_log)) {
++    LOG_IF(ERROR, can_log) << "Unable to get thread pointer!";
++    return false;
++  }
++
++  *address = tc.gpr[13];
++
++  return true;
++}
++
++// Stubs for 32-bit functions not applicable on PPC64
++bool GetFloatingPointRegisters32(pid_t tid,
++                                 FloatContext* context,
++                                 bool can_log) { return false; }
++bool GetThreadArea32(pid_t tid,
++                     const ThreadContext &context,
++                     LinuxVMAddress *address,
++                     bool can_log) { return false; }
++
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -494,6 +552,9 @@ bool Ptracer::GetThreadInfo(pid_t tid, ThreadInfo* info) {
+   if (is_64_bit_) {
+     return GetGeneralPurposeRegisters64(tid, &info->thread_context, can_log_) &&
+            GetFloatingPointRegisters64(tid, &info->float_context, can_log_) &&
++#if defined(ARCH_CPU_PPC64_FAMILY)
++           GetVectorRegisters64(tid, &info->vector_context, can_log_) &&
++#endif
+            GetThreadArea64(tid,
+                            info->thread_context,
+                            &info->thread_specific_data_address,
+diff --git a/third_party/crashpad/crashpad/util/linux/thread_info.h b/third_party/crashpad/crashpad/util/linux/thread_info.h
+index 5b55c24a7..dea0d1f39 100644
+--- a/third_party/crashpad/crashpad/util/linux/thread_info.h
++++ b/third_party/crashpad/crashpad/util/linux/thread_info.h
+@@ -28,6 +28,10 @@
+ #include <android/api-level.h>
+ #endif
+ 
++#if defined(ARCH_CPU_PPC64_FAMILY)
++#include <sys/ucontext.h>
++#endif
++
+ namespace crashpad {
+ 
+ //! \brief The set of general purpose registers for an architecture family.
+@@ -79,6 +83,8 @@ union ThreadContext {
+     uint32_t cp0_status;
+     uint32_t cp0_cause;
+     uint32_t padding1_;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // PPC64 is 64-bit
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -132,6 +138,21 @@ union ThreadContext {
+     uint64_t cp0_badvaddr;
+     uint64_t cp0_status;
+     uint64_t cp0_cause;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects struct pt_regs in asm/ptrace.h.
++    uint64_t gpr[32];
++    uint64_t nip;
++    uint64_t msr;
++    uint64_t orig_gpr3;
++    uint64_t ctr;
++    uint64_t lnk;
++    uint64_t xer;
++    uint64_t ccr;
++    uint64_t softe;
++    uint64_t trap;
++    uint64_t dar;
++    uint64_t dsisr;
++    uint64_t result;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -143,6 +164,8 @@ union ThreadContext {
+   using NativeThreadContext = user_regs;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+ // No appropriate NativeThreadsContext type available for MIPS
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  using NativeThreadContext = struct pt_regs;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY || ARCH_CPU_ARM64
+@@ -218,6 +241,9 @@ union FloatContext {
+     } fpregs[32];
+     uint32_t fpcsr;
+     uint32_t fpu_id;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Crashpad's PPC support is 64-bit only, so this
++    // 32bit-only struct is declared as empty.
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -252,6 +278,10 @@ union FloatContext {
+     double fpregs[32];
+     uint32_t fpcsr;
+     uint32_t fpu_id;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects fpregset_t in sys/ucontext.h
++    double fpregs[32];
++    double fpscr;
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86_FAMILY
+@@ -280,6 +310,8 @@ union FloatContext {
+   static_assert(sizeof(f64) == sizeof(user_fpsimd_struct), "Size mismatch");
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+ // No appropriate floating point context native type for available MIPS.
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  static_assert(sizeof(f64) == sizeof(fpregset_t), "Size mismatch");
+ #else
+ #error Port.
+ #endif  // ARCH_CPU_X86
+@@ -287,6 +319,26 @@ union FloatContext {
+ static_assert(std::is_standard_layout<FloatContext>::value,
+               "Not standard layout");
+ 
++//! \brief The vector registers used for an architecture family
++union VectorContext {
++  struct v32_t {} v32;
++#if defined(ARCH_CPU_PPC64_FAMILY)
++  __attribute__((__aligned__(16))) // Vector context must be doubleword aligned.
++#endif
++  struct v64_t {
++#if defined(ARCH_CPU_PPC64_FAMILY)
++    // Reflects vrregset_t in sys/ucontext.h
++    uint32_t vrregs[32][4];
++    struct {
++      uint32_t __pad[3];
++      uint32_t vscr_word;
++    } vscr;
++    uint32_t vrsave;
++    uint32_t __pad[3];
++#endif
++  } v64;
++};
++
+ //! \brief A collection of `ptrace`-able information about a thread.
+ struct ThreadInfo {
+   ThreadInfo();
+@@ -298,6 +350,9 @@ struct ThreadInfo {
+   //! \brief The floating point registers for the thread.
+   FloatContext float_context;
+ 
++  //! \brief (Optional) The vector registers used for the thread.
++  VectorContext vector_context;
++
+   //! \brief The thread-local storage address for the thread.
+   LinuxVMAddress thread_specific_data_address;
+ };
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context.h b/third_party/crashpad/crashpad/util/misc/capture_context.h
+index d21a24f19..acc325349 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context.h
++++ b/third_party/crashpad/crashpad/util/misc/capture_context.h
+@@ -69,6 +69,7 @@ using NativeCPUContext = ucontext_t;
+ //!     macOS/Linux/Fuchsia | x86_64       | `%%rdi`
+ //!     Linux               | ARM/ARM64    | `r0`/`x0`
+ //!     Linux               | MIPS/MIPS64  | `$a0`
++//!     Linux               | PPC64        | `r3`
+ //!
+ //!     Additionally, the value `LR` on ARM/ARM64 will be the return address of
+ //!     this function.
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_linux.S b/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+index 52215ee5d..b3e4a3ec7 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
++++ b/third_party/crashpad/crashpad/util/misc/capture_context_linux.S
+@@ -32,7 +32,7 @@
+   .balign 4, 0x0
+   .type CAPTURECONTEXT_SYMBOL, %function
+   .type CAPTURECONTEXT_SYMBOL2, %function
+-#elif defined(__mips__)
++#elif defined(__mips__) || defined(__powerpc64__)
+   .balign 4, 0x0
+ #endif
+ 
+@@ -423,4 +423,214 @@ CAPTURECONTEXT_SYMBOL2:
+   jr $ra
+ 
+   .set at
++#elif defined(__powerpc64__)
++  // Store r0-r31
++  std 0, 0xe8(3)   // context->uc_mcontext.gp_regs[0]
++  std 1, 0xf0(3)   // context->uc_mcontext.gp_regs[1]
++  std 2, 0xf8(3)   // context->uc_mcontext.gp_regs[2]
++  // note that r3's original value was lost
++  std 3, 0x100(3)  // context->uc_mcontext.gp_regs[3]
++  std 4, 0x108(3)  // context->uc_mcontext.gp_regs[4]
++  std 5, 0x110(3)  // context->uc_mcontext.gp_regs[5]
++  std 6, 0x118(3)  // context->uc_mcontext.gp_regs[6]
++  std 7, 0x120(3)  // context->uc_mcontext.gp_regs[7]
++  std 8, 0x128(3)  // context->uc_mcontext.gp_regs[8]
++  std 9, 0x130(3)  // context->uc_mcontext.gp_regs[9]
++  std 10, 0x138(3) // context->uc_mcontext.gp_regs[10]
++  std 11, 0x140(3) // context->uc_mcontext.gp_regs[11]
++  std 12, 0x148(3) // context->uc_mcontext.gp_regs[12]
++  std 13, 0x150(3) // context->uc_mcontext.gp_regs[13]
++  std 14, 0x158(3) // context->uc_mcontext.gp_regs[14]
++  std 15, 0x160(3) // context->uc_mcontext.gp_regs[15]
++  std 16, 0x168(3) // context->uc_mcontext.gp_regs[16]
++  std 17, 0x170(3) // context->uc_mcontext.gp_regs[17]
++  std 18, 0x178(3) // context->uc_mcontext.gp_regs[18]
++  std 19, 0x180(3) // context->uc_mcontext.gp_regs[19]
++  std 20, 0x188(3) // context->uc_mcontext.gp_regs[20]
++  std 21, 0x190(3) // context->uc_mcontext.gp_regs[21]
++  std 22, 0x198(3) // context->uc_mcontext.gp_regs[22]
++  std 23, 0x1a0(3) // context->uc_mcontext.gp_regs[23]
++  std 24, 0x1a8(3) // context->uc_mcontext.gp_regs[24]
++  std 25, 0x1b0(3) // context->uc_mcontext.gp_regs[25]
++  std 26, 0x1b8(3) // context->uc_mcontext.gp_regs[26]
++  std 27, 0x1c0(3) // context->uc_mcontext.gp_regs[27]
++  std 28, 0x1c8(3) // context->uc_mcontext.gp_regs[28]
++  std 29, 0x1d0(3) // context->uc_mcontext.gp_regs[29]
++  std 30, 0x1d8(3) // context->uc_mcontext.gp_regs[30]
++  std 31, 0x1e0(3) // context->uc_mcontext.gp_regs[31]
++
++  // For NIP, we can use the value in the link register
++  mflr 0
++  std 0, 0x1e8(3) // context->uc_mcontext.gp_regs[PT_NIP]
++
++  // CTR
++  mfctr 0
++  std 0, 0x200(3) // context->uc_mcontext.gp_regs[PT_CTR]
++
++  // For LNK, we'll use the caller's LR save area (2 stack frames up).
++  // r4 can be used as a scratch register since it has already been saved.
++  ld 4, 0(1)
++  ld 4, 16(4)
++  std 4, 0x208(3) // context->uc_mcontext.gp_regs[PT_LNK]
++
++  // XER
++  mfxer 0
++  std 0, 0x210(3) // context->uc_mcontext.gp_regs[PT_XER]
++
++  // CCR
++  mfcr 0
++  std 0, 0x218(3) // context->uc_mcontext.gp_regs[PT_CCR]
++
++  // MSR, orig_r3, MQ, TRAP, DAR, DSISR, RESULT, DSCR,
++  // not used or not relevant,  zero them out.
++  li 4, 0
++  std 4, 0x1f0(3) // context->uc_mcontext.gp_regs[PT_MSR]
++  std 4, 0x1f8(3) // context->uc_mcontext.gp_regs[PT_ORIG_R3]
++  std 4, 0x220(3) // context->uc_mcontext.gp_regs[PT_MQ]
++  std 4, 0x228(3) // context->uc_mcontext.gp_regs[PT_TRAP]
++  std 4, 0x230(3) // context->uc_mcontext.gp_regs[PT_DAR]
++  std 4, 0x238(3) // context->uc_mcontext.gp_regs[PT_DSISR]
++  std 4, 0x240(3) // context->uc_mcontext.gp_regs[PT_RESULT]
++  std 4, 0x248(3) // context->uc_mcontext.gp_regs[PT_DSCR]
++
++  // Update context->uc_mcontext.regs to point to gp_regs
++  addi 0, 3, 0xe8
++  std 0, 0xe0(3)
++
++  // Save floating point registers 0-31
++  stfd 0, 0x268(3)  // context->uc_mcontext.fp_regs[0]
++  stfd 1, 0x270(3)  // context->uc_mcontext.fp_regs[1]
++  stfd 2, 0x278(3)  // context->uc_mcontext.fp_regs[2]
++  stfd 3, 0x280(3)  // context->uc_mcontext.fp_regs[3]
++  stfd 4, 0x288(3)  // context->uc_mcontext.fp_regs[4]
++  stfd 5, 0x290(3)  // context->uc_mcontext.fp_regs[5]
++  stfd 6, 0x298(3)  // context->uc_mcontext.fp_regs[6]
++  stfd 7, 0x2a0(3)  // context->uc_mcontext.fp_regs[7]
++  stfd 8, 0x2a8(3)  // context->uc_mcontext.fp_regs[8]
++  stfd 9, 0x2b0(3)  // context->uc_mcontext.fp_regs[9]
++  stfd 10, 0x2b8(3) // context->uc_mcontext.fp_regs[10]
++  stfd 11, 0x2c0(3) // context->uc_mcontext.fp_regs[11]
++  stfd 12, 0x2c8(3) // context->uc_mcontext.fp_regs[12]
++  stfd 13, 0x2d0(3) // context->uc_mcontext.fp_regs[13]
++  stfd 14, 0x2d8(3) // context->uc_mcontext.fp_regs[14]
++  stfd 15, 0x2e0(3) // context->uc_mcontext.fp_regs[15]
++  stfd 16, 0x2e8(3) // context->uc_mcontext.fp_regs[16]
++  stfd 17, 0x2f0(3) // context->uc_mcontext.fp_regs[17]
++  stfd 18, 0x2f8(3) // context->uc_mcontext.fp_regs[18]
++  stfd 19, 0x300(3) // context->uc_mcontext.fp_regs[19]
++  stfd 20, 0x308(3) // context->uc_mcontext.fp_regs[20]
++  stfd 21, 0x310(3) // context->uc_mcontext.fp_regs[21]
++  stfd 22, 0x318(3) // context->uc_mcontext.fp_regs[22]
++  stfd 23, 0x320(3) // context->uc_mcontext.fp_regs[23]
++  stfd 24, 0x328(3) // context->uc_mcontext.fp_regs[24]
++  stfd 25, 0x330(3) // context->uc_mcontext.fp_regs[25]
++  stfd 26, 0x338(3) // context->uc_mcontext.fp_regs[26]
++  stfd 27, 0x340(3) // context->uc_mcontext.fp_regs[27]
++  stfd 28, 0x348(3) // context->uc_mcontext.fp_regs[28]
++  stfd 29, 0x350(3) // context->uc_mcontext.fp_regs[29]
++  stfd 30, 0x358(3) // context->uc_mcontext.fp_regs[30]
++  stfd 31, 0x360(3) // context->uc_mcontext.fp_regs[31]
++
++  // FPSCR
++  mffs 0
++  stfd 0, 0x368(3) // context->uc_mcontext.fp_regs[32]
++
++  // Save VMX Vector registers
++  // Update r4 to contain the base address of vmx_reserve
++  addi 4, 3, 0x378
++  // Ensure that it is quadword aligned
++  andi. 5, 4, 0xF
++  beq 1f // No alignment is necessary
++  // Address is doubleword aligned and not quadword aligned, add 8
++  addi 4, 4, 8
++
++1:
++  // Store VMX registers 0-31
++  // r4 will contain the base address
++  // r5 will contain the index
++  li 5, 0
++  stvx 0, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 0]
++  addi 5, 5, 16
++  stvx 1, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 1]
++  addi 5, 5, 16
++  stvx 2, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 2]
++  addi 5, 5, 16
++  stvx 3, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 3]
++  addi 5, 5, 16
++  stvx 4, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 4]
++  addi 5, 5, 16
++  stvx 5, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 5]
++  addi 5, 5, 16
++  stvx 6, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 6]
++  addi 5, 5, 16
++  stvx 7, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 7]
++  addi 5, 5, 16
++  stvx 8, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 8]
++  addi 5, 5, 16
++  stvx 9, 4, 5   // context->uc_mcontext.vmx_reserve[(align) + 9]
++  addi 5, 5, 16
++  stvx 10, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 10]
++  addi 5, 5, 16
++  stvx 11, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 11]
++  addi 5, 5, 16
++  stvx 12, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 12]
++  addi 5, 5, 16
++  stvx 13, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 13]
++  addi 5, 5, 16
++  stvx 14, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 14]
++  addi 5, 5, 16
++  stvx 15, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 15]
++  addi 5, 5, 16
++  stvx 16, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 16]
++  addi 5, 5, 16
++  stvx 17, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 17]
++  addi 5, 5, 16
++  stvx 18, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 18]
++  addi 5, 5, 16
++  stvx 19, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 19]
++  addi 5, 5, 16
++  stvx 20, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 20]
++  addi 5, 5, 16
++  stvx 21, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 21]
++  addi 5, 5, 16
++  stvx 22, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 22]
++  addi 5, 5, 16
++  stvx 23, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 23]
++  addi 5, 5, 16
++  stvx 24, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 24]
++  addi 5, 5, 16
++  stvx 25, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 25]
++  addi 5, 5, 16
++  stvx 26, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 26]
++  addi 5, 5, 16
++  stvx 27, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 27]
++  addi 5, 5, 16
++  stvx 28, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 28]
++  addi 5, 5, 16
++  stvx 29, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 29]
++  addi 5, 5, 16
++  stvx 30, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 30]
++  addi 5, 5, 16
++  stvx 31, 4, 5  // context->uc_mcontext.vmx_reserve[(align) + 31]
++  addi 5, 5, 16
++
++  // VSCR
++  mfvscr 0
++  stvx 0, 4, 5
++  addi 5, 5, 16
++
++  // VRSAVE
++  mfvrsave 0
++  stwx 0, 4, 5
++
++  // Update context->uc_mcontext.v_regs to point to vmx_reserve + alignment.
++  std 4, 0x370(3)
++
++  // Zero out all unused fields
++  li 4, 0
++  std 4, 0xc8(3) // context->uc_mcontext.signal
++  std 4, 0xd0(3) // context->uc_mcontext.handler
++  std 4, 0xd8(3) // context->uc_mcontext.oldmask
++
++  blr
+ #endif  // __i386__
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_test.cc b/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
+index cf23c2def..5f264bc92 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
++++ b/third_party/crashpad/crashpad/util/misc/capture_context_test.cc
+@@ -57,7 +57,7 @@ void TestCaptureContext() {
+   uintptr_t pc = ProgramCounterFromContext(context_1);
+ 
+ #if !defined(ADDRESS_SANITIZER) && !defined(ARCH_CPU_MIPS_FAMILY) && \
+-    !defined(MEMORY_SANITIZER)
++    !defined(MEMORY_SANITIZER) && !defined(ARCH_CPU_PPC64_FAMILY)
+   // Sanitizers can cause enough code bloat that the “nearby” check would
+   // likely fail.
+   const uintptr_t kReferencePC =
+diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
+index 30a2ab21d..60509f21d 100644
+--- a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
++++ b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
+@@ -35,6 +35,8 @@ void SanityCheckContext(const NativeCPUContext& context) {
+   EXPECT_EQ(context.uc_mcontext.regs[0], FromPointerCast<uintptr_t>(&context));
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   EXPECT_EQ(context.uc_mcontext.gregs[4], FromPointerCast<uintptr_t>(&context));
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  EXPECT_EQ(context.uc_mcontext.gp_regs[3], FromPointerCast<uintptr_t>(&context));
+ #endif
+ }
+ 
+@@ -49,6 +51,8 @@ uintptr_t ProgramCounterFromContext(const NativeCPUContext& context) {
+   return context.uc_mcontext.pc;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return context.uc_mcontext.pc;
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return context.uc_mcontext.gp_regs[PT_NIP];
+ #endif
+ }
+ 
+@@ -63,6 +67,8 @@ uintptr_t StackPointerFromContext(const NativeCPUContext& context) {
+   return context.uc_mcontext.sp;
+ #elif defined(ARCH_CPU_MIPS_FAMILY)
+   return context.uc_mcontext.gregs[29];
++#elif defined(ARCH_CPU_PPC64_FAMILY)
++  return context.uc_mcontext.gp_regs[1];
+ #endif
+ }
+ 
+diff --git a/third_party/dav1d/BUILD.gn b/third_party/dav1d/BUILD.gn
+index 6b4566fc3..c07f732ad 100644
+--- a/third_party/dav1d/BUILD.gn
++++ b/third_party/dav1d/BUILD.gn
+@@ -184,6 +184,8 @@ static_library("dav1d_8bit") {
+     sources += arm_template_sources
+   } else if (current_cpu == "arm64") {
+     sources += arm_template_sources
++  } else if (current_cpu == "ppc64") {
++    sources += ppc64_template_sources
+   }
+ 
+   cflags = dav1d_copts
+@@ -212,6 +214,8 @@ static_library("dav1d_10bit") {
+     sources += arm_template_sources
+   } else if (current_cpu == "arm64") {
+     sources += arm_template_sources
++  } else if (current_cpu == "ppc64") {
++    sources += ppc64_template_sources
+   }
+ 
+   cflags = dav1d_copts
+@@ -263,6 +267,21 @@ if (current_cpu == "x86" || current_cpu == "x64") {
+       defines = [ "PREFIX" ]
+     }
+ 
++    cflags = dav1d_copts
++  }
++} else if (current_cpu == "ppc64") {
++  static_library("dav1d_ppc") {
++    sources = [
++      "libdav1d/src/ppc/cpu.c",
++      "libdav1d/src/ppc/cpu.h",
++    ]
++
++    configs -= [ "//build/config/compiler:chromium_code" ]
++    configs += [
++      "//build/config/compiler:no_chromium_code",
++      ":dav1d_config",
++    ]
++
+     cflags = dav1d_copts
+   }
+ }
+@@ -292,5 +311,7 @@ static_library("dav1d") {
+     }
+   } else if (current_cpu == "arm" || current_cpu == "arm64") {
+     deps += [ ":dav1d_arm" ]
++  } else if (current_cpu == "ppc64") {
++    deps += [ ":dav1d_ppc" ]
+   }
+ }
+diff --git a/third_party/dav1d/config/linux/ppc64/config.h b/third_party/dav1d/config/linux/ppc64/config.h
+new file mode 100644
+index 000000000..9fbbf75cc
+--- /dev/null
++++ b/third_party/dav1d/config/linux/ppc64/config.h
+@@ -0,0 +1,39 @@
++/*
++ * Autogenerated by the Meson build system.
++ * Do not edit, your changes will be lost.
++ */
++
++#pragma once
++
++#define ARCH_AARCH64 0
++
++#define ARCH_ARM 0
++
++#define ARCH_PPC64LE 1
++
++#define ARCH_X86 0
++
++#define ARCH_X86_32 0
++
++#define ARCH_X86_64 0
++
++#define CONFIG_16BPC 1
++
++#define CONFIG_8BPC 1
++
++// #define CONFIG_LOG 1 -- Logging is controlled by Chromium
++
++#define ENDIANNESS_BIG 0
++
++#define HAVE_ASM 1
++
++#define HAVE_CLOCK_GETTIME 1
++
++#define HAVE_DLSYM 1
++
++#define HAVE_GETAUXVAL 1
++
++#define HAVE_POSIX_MEMALIGN 1
++
++#define HAVE_UNISTD_H 1
++
+diff --git a/third_party/dav1d/dav1d_generated.gni b/third_party/dav1d/dav1d_generated.gni
+index c59cb0821..3060284a8 100644
+--- a/third_party/dav1d/dav1d_generated.gni
++++ b/third_party/dav1d/dav1d_generated.gni
+@@ -82,6 +82,11 @@ arm_template_sources = [
+   "libdav1d/src/arm/mc_init_tmpl.c",
+ ]
+ 
++ppc64_template_sources = [
++  "libdav1d/src/ppc/cdef_init_tmpl.c",
++  "libdav1d/src/ppc/looprestoration_init_tmpl.c",
++]
++
+ template_sources = [
+   "libdav1d/src/cdef_apply_tmpl.c",
+   "libdav1d/src/cdef_tmpl.c",
+--- a/third_party/dav1d/generate_source.py
++++ b/third_party/dav1d/generate_source.py
+@@ -61,6 +61,8 @@
+         _Glob("libdav1d/src/arm/64/*_tmpl.S") + ["libdav1d/src/arm/64/util.S"])
+     _WriteArray(fd, "arm_template_sources", _Glob("libdav1d/src/arm/*_tmpl.c"))
+ 
++    _WriteArray(fd, "ppc64_template_sources", _Glob("libdav1d/src/ppc/*_tmpl.c"))
++
+     template_sources = _Glob("libdav1d/src/*_tmpl.c")
+     _WriteArray(fd, "template_sources", template_sources)
+ 
+diff --git a/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h b/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
+index 0b4bd72f0..a0caa5e71 100644
+--- a/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
++++ b/third_party/dav1d/libdav1d/src/ppc/dav1d_types.h
+@@ -51,4 +51,19 @@
+ #define u16l_to_i32(v) ((i32x4) vec_mergel((u16x8) v, vec_splat_u16(0)))
+ #define i16l_to_i32(v) ((i32x4) vec_unpackl((i16x8)v))
+ 
++#if defined(__clang__)
++#undef vec_splats
++#define vec_splats(N)                     \
++    _Generic((N),                         \
++        unsigned char:      ((u8x16)(N)), \
++        signed char:        ((i8x16)(N)), \
++        unsigned short:     ((u16x8)(N)), \
++        signed short:       ((i16x8)(N)), \
++        unsigned int:       ((u32x4)(N)), \
++        signed int:         ((i32x4)(N)), \
++        unsigned long long: ((u64x2)(N)), \
++        signed long long:   ((i64x2)(N))  \
++    )
++#endif
++
+ #endif /* DAV1D_SRC_PPC_TYPES_H */
+diff --git a/third_party/eigen3/BUILD.gn b/third_party/eigen3/BUILD.gn
+index 0d4e184..f2ce484 100644
+--- a/third_party/eigen3/BUILD.gn
++++ b/third_party/eigen3/BUILD.gn
+@@ -22,4 +22,8 @@ config("eigen_includes") {
+     # for this component on Windows on Arm due to compilation errors.
+     defines += [ "EIGEN_DONT_VECTORIZE" ]
+   }
++
++  if (target_cpu == "ppc64") {
++    defines += [ "EIGEN_DONT_VECTORIZE" ]
++  }
+ }
+
+diff --git a/third_party/libaom/BUILD.gn b/third_party/libaom/BUILD.gn
+index 9b065bd..df3af02 100644
+--- a/third_party/libaom/BUILD.gn
++++ b/third_party/libaom/BUILD.gn
+@@ -36,6 +36,8 @@ if (enable_libaom) {
+   } else {
+     cpu_arch_full = "arm"
+   }
++} else if (current_cpu == "ppc64") {
++  cpu_arch_full = "generic"
+ } else {
+   cpu_arch_full = current_cpu
+ }
+diff --git a/third_party/libgav1/options.gni b/third_party/libgav1/options.gni
+index 11af801..4b13d05 100644
+--- a/third_party/libgav1/options.gni
++++ b/third_party/libgav1/options.gni
+@@ -12,5 +12,5 @@ declare_args() {
+       is_chromeos_ash && (target_cpu == "arm" || target_cpu == "arm64")
+   use_libgav1_parser =
+       (is_chromeos || is_linux || is_win) &&
+-      (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64")
++      (target_cpu == "x86" || target_cpu == "x64" || target_cpu == "arm64" || target_cpu == "ppc64")
+ }
+diff --git a/third_party/lss/linux_syscall_support.h b/third_party/lss/linux_syscall_support.h
+index e4ac22644..1c57015db 100644
+--- a/third_party/lss/linux_syscall_support.h
++++ b/third_party/lss/linux_syscall_support.h
+@@ -3947,7 +3947,7 @@ struct kernel_statfs {
+       LSS_REG(2, buf);
+       LSS_BODY(void*, mmap2, "0"(__r2));
+     }
+-#else
++#elif !defined(__powerpc64__) /* ppc64 doesn't have mmap2 */
+     #define __NR__mmap2 __NR_mmap2
+     LSS_INLINE _syscall6(void*, _mmap2,            void*, s,
+                          size_t,                   l, int,               p,
+@@ -4058,7 +4058,7 @@ struct kernel_statfs {
+   #if defined(__i386__) ||                                                    \
+       defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) ||                     \
+      (defined(__mips__) && _MIPS_SIM == _MIPS_SIM_ABI32) ||                   \
+-      defined(__PPC__) ||                                                     \
++     (defined(__PPC__) && !defined(__powerpc64__)) ||                                                     \
+      (defined(__s390__) && !defined(__s390x__))
+     /* On these architectures, implement mmap() with mmap2(). */
+     LSS_INLINE void* LSS_NAME(mmap)(void *s, size_t l, int p, int f, int d,
+diff --git a/third_party/pdfium/third_party/libpng16/pngpriv.h b/third_party/pdfium/third_party/libpng16/pngpriv.h
+index 583c26f..e03d697 100644
+--- a/third_party/pdfium/third_party/libpng16/pngpriv.h
++++ b/third_party/pdfium/third_party/libpng16/pngpriv.h
+@@ -196,11 +196,7 @@
+ #endif
+ 
+ #ifndef PNG_POWERPC_VSX_OPT
+-#  if defined(__PPC64__) && defined(__ALTIVEC__) && defined(__VSX__)
+-#     define PNG_POWERPC_VSX_OPT 2
+-#  else
+-#     define PNG_POWERPC_VSX_OPT 0
+-#  endif
++#  define PNG_POWERPC_VSX_OPT 0
+ #endif
+ 
+ #ifndef PNG_INTEL_SSE_OPT
+diff --git a/third_party/pffft/src/pffft.c b/third_party/pffft/src/pffft.c
+index bdac4d784..51e0f2cac 100644
+--- a/third_party/pffft/src/pffft.c
++++ b/third_party/pffft/src/pffft.c
+@@ -100,6 +100,7 @@
+    Altivec support macros 
+ */
+ #if !defined(PFFFT_SIMD_DISABLE) && (defined(__ppc__) || defined(__ppc64__))
++#include <altivec.h>
+ typedef vector float v4sf;
+ #  define SIMD_SZ 4
+ #  define VZERO() ((vector float) vec_splat_u8(0))
+diff --git a/third_party/skia/src/sksl/SkSLString.cpp b/third_party/skia/src/sksl/SkSLString.cpp
+index ec3e56964..4cf8999a2 100644
+--- a/third_party/skia/src/sksl/SkSLString.cpp
++++ b/third_party/skia/src/sksl/SkSLString.cpp
+@@ -37,7 +37,12 @@ String to_string(double value) {
+     if (needsDotZero) {
+         buffer << ".0";
+     }
+-    return buffer.str();
++
++    std::string ret(buffer.str());
++    if (std::signbit(value) && ret[0] == '.') {
++        ret[0] = '-';
++    }
++    return ret;
+ }
+ 
+ bool stod(const StringFragment& s, SKSL_FLOAT* value) {
+diff --git a/third_party/sqlite/src/amalgamation/sqlite3.c b/third_party/sqlite/src/amalgamation/sqlite3.c
+index 6b4a7899d..b8c7fe414 100644
+--- a/third_party/sqlite/src/amalgamation/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation/sqlite3.c
+@@ -14474,7 +14474,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) ||   \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
+diff --git a/third_party/sqlite/src/amalgamation_dev/sqlite3.c b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+index d30c9b7de..cf75a69d9 100644
+--- a/third_party/sqlite/src/amalgamation_dev/sqlite3.c
++++ b/third_party/sqlite/src/amalgamation_dev/sqlite3.c
+@@ -14487,7 +14487,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) ||   \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
+diff --git a/third_party/sqlite/src/ext/rtree/rtree.c b/third_party/sqlite/src/ext/rtree/rtree.c
+index f5b57a5e2..80a2d0ad8 100644
+--- a/third_party/sqlite/src/ext/rtree/rtree.c
++++ b/third_party/sqlite/src/ext/rtree/rtree.c
+@@ -450,7 +450,7 @@ struct RtreeMatchArg {
+ #if defined(i386)     || defined(__i386__)   || defined(_M_IX86) ||    \
+     defined(__x86_64) || defined(__x86_64__) || defined(_M_X64)  ||    \
+     defined(_M_AMD64) || defined(_M_ARM)     || defined(__x86)   ||    \
+-    defined(__arm__)
++    defined(__arm__) || defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ # define SQLITE_BYTEORDER    1234
+ #elif defined(sparc)    || defined(__ppc__)
+ # define SQLITE_BYTEORDER    4321
+diff --git a/third_party/sqlite/src/src/sqliteInt.h b/third_party/sqlite/src/src/sqliteInt.h
+index 245070d4f..b25164e95 100644
+--- a/third_party/sqlite/src/src/sqliteInt.h
++++ b/third_party/sqlite/src/src/sqliteInt.h
+@@ -877,7 +877,8 @@ typedef INT16_TYPE LogEst;
+ # if defined(i386)      || defined(__i386__)      || defined(_M_IX86) ||    \
+      defined(__x86_64)  || defined(__x86_64__)    || defined(_M_X64)  ||    \
+      defined(_M_AMD64)  || defined(_M_ARM)        || defined(__x86)   ||    \
+-     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64)
++     defined(__ARMEL__) || defined(__AARCH64EL__) || defined(_M_ARM64) || \
++     defined(__powerpc64__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
+ #   define SQLITE_BYTEORDER    1234
+ # elif defined(sparc)     || defined(__ppc__) || \
+        defined(__ARMEB__) || defined(__AARCH64EB__)
+diff --git a/third_party/webrtc/modules/desktop_capture/differ_block.cc b/third_party/webrtc/modules/desktop_capture/differ_block.cc
+index 4f0c5430c..54ee0829e 100644
+--- a/third_party/webrtc/modules/desktop_capture/differ_block.cc
++++ b/third_party/webrtc/modules/desktop_capture/differ_block.cc
+@@ -30,11 +30,7 @@ bool VectorDifference(const uint8_t* image1, const uint8_t* image2) {
+   static bool (*diff_proc)(const uint8_t*, const uint8_t*) = nullptr;
+ 
+   if (!diff_proc) {
+-#if defined(WEBRTC_ARCH_ARM_FAMILY) || defined(WEBRTC_ARCH_MIPS_FAMILY)
+-    // For ARM and MIPS processors, always use C version.
+-    // TODO(hclam): Implement a NEON version.
+-    diff_proc = &VectorDifference_C;
+-#else
++#if defined(WEBRTC_ARCH_X86_FAMILY)
+     bool have_sse2 = GetCPUInfo(kSSE2) != 0;
+     // For x86 processors, check if SSE2 is supported.
+     if (have_sse2 && kBlockSize == 32) {
+@@ -44,6 +40,10 @@ bool VectorDifference(const uint8_t* image1, const uint8_t* image2) {
+     } else {
+       diff_proc = &VectorDifference_C;
+     }
++#else
++    // For other processors, always use C version.
++    // TODO(hclam): Implement a NEON version.
++    diff_proc = &VectorDifference_C;
+ #endif
+   }
+ 
+diff --git a/third_party/webrtc/rtc_base/system/arch.h b/third_party/webrtc/rtc_base/system/arch.h
+index be2367b85..be4ee4233 100644
+--- a/third_party/webrtc/rtc_base/system/arch.h
++++ b/third_party/webrtc/rtc_base/system/arch.h
+@@ -79,6 +79,18 @@
+ #elif defined(__EMSCRIPTEN__)
+ #define WEBRTC_ARCH_32_BITS
+ #define WEBRTC_ARCH_LITTLE_ENDIAN
++#elif defined(__PPC__)
++#define WEBRTC_ARCH_PPC_FAMILY
++#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
++#define WEBRTC_ARCH_LITTLE_ENDIAN
++#else
++#define WEBRTC_ARCH_BIG_ENDIAN
++#endif
++#if defined(__LP64__)
++#define WEBRTC_ARCH_64_BITS
++#else
++#define WEBRTC_ARCH_32_BITS
++#endif
+ #else
+ #error Please add support for your architecture in rtc_base/system/arch.h
+ #endif
+diff --git a/v8/BUILD.gn b/v8/BUILD.gn
+index f39529a3a..e84fc449e 100644
+--- a/v8/BUILD.gn
++++ b/v8/BUILD.gn
+@@ -850,6 +850,12 @@ config("toolchain") {
+     }
+     if (host_byteorder == "little") {
+       defines += [ "V8_TARGET_ARCH_PPC_LE" ]
++      cflags += [
++        # Enable usage of AltiVec, VSX, and other POWER8 and higher features
++        "-mcpu=power8",
++        "-maltivec",
++        "-mvsx",
++      ]
+     } else if (host_byteorder == "big") {
+       defines += [ "V8_TARGET_ARCH_PPC_BE" ]
+       if (current_os == "aix") {
+diff --git a/ui/gl/features.gni b/ui/gl/features.gni
+index 5fda9b6..3d2dd8b 100644
+--- a/ui/gl/features.gni
++++ b/ui/gl/features.gni
+@@ -32,5 +32,6 @@ declare_args() {
+                         (is_mac && use_egl) || is_chromeos_ash || is_fuchsia) &&
+                        (target_cpu == "x86" || target_cpu == "x64" ||
+                         target_cpu == "arm" || target_cpu == "arm64" ||
+-                        target_cpu == "mipsel" || target_cpu == "mips64el")
++                        target_cpu == "mipsel" || target_cpu == "mips64el" ||
++                        target_cpu == "ppc64")
+ }
+diff --git a/v8/test/BUILD.gn b/v8/test/BUILD.gn
+index fb872ad39..45fc585dd 100644
+--- a/v8/test/BUILD.gn
++++ b/v8/test/BUILD.gn
+@@ -36,7 +36,7 @@ group("gn_all") {
+       "benchmarks/cpp:gn_all",
+       "cctest:cctest",
+       "cctest:generate-bytecode-expectations",
+-      "unittests:unittests",
++      #"unittests:unittests",
+     ]
+   }
+ }
+@@ -83,7 +83,7 @@
+     "message:v8_message",
+     "mjsunit:v8_mjsunit",
+     "mkgrokdump:mkgrokdump",
+-    "unittests:unittests",
++    #"unittests:unittests",
+     "webkit:v8_webkit",
+   ]
+ 
+@@ -108,7 +108,7 @@
+     "message:v8_message",
+     "mjsunit:v8_mjsunit",
+     "mkgrokdump:mkgrokdump",
+-    "unittests:unittests",
++    #"unittests:unittests",
+   ]
+ 
+   if (v8_enable_webassembly) {
diff --git a/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-swiftshader.patch b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-swiftshader.patch
new file mode 100644
index 000000000000..df453f491d8c
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/chromium-xxx-ppc64le-swiftshader.patch
@@ -0,0 +1,18 @@
+--- a/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn
++++ b/third_party/swiftshader/third_party/llvm-10.0/BUILD.gn
+@@ -574,6 +574,7 @@ swiftshader_llvm_source_set("swiftshader
+     "llvm/lib/MC/MCAsmInfoCOFF.cpp",
+     "llvm/lib/MC/MCAsmInfoDarwin.cpp",
+     "llvm/lib/MC/MCAsmInfoELF.cpp",
++    "llvm/lib/MC/MCAsmInfoXCOFF.cpp",
+     "llvm/lib/MC/MCAsmMacro.cpp",
+     "llvm/lib/MC/MCAsmStreamer.cpp",
+     "llvm/lib/MC/MCAssembler.cpp",
+@@ -629,6 +630,7 @@ swiftshader_llvm_source_set("swiftshader
+     "llvm/lib/MC/MCWinCOFFStreamer.cpp",
+     "llvm/lib/MC/MCWinEH.cpp",
+     "llvm/lib/MC/MCXCOFFStreamer.cpp",
++    "llvm/lib/MC/MCXCOFFObjectTargetWriter.cpp",
+     "llvm/lib/MC/MachObjectWriter.cpp",
+     "llvm/lib/MC/StringTableBuilder.cpp",
+     "llvm/lib/MC/SubtargetFeature.cpp",
diff --git a/srcpkgs/electron19/files/patches/electron-Add-a-script-to-list-patch-targets.patch.patch b/srcpkgs/electron19/files/patches/electron-Add-a-script-to-list-patch-targets.patch.patch
new file mode 100644
index 000000000000..916dba9dc3bc
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/electron-Add-a-script-to-list-patch-targets.patch.patch
@@ -0,0 +1,42 @@
+From ff4122f236b70c272c746d0c336cdbd588d78cd1 Mon Sep 17 00:00:00 2001
+From: Elvis Pranskevichus <elvis@magic.io>
+Date: Thu, 12 Dec 2019 16:12:18 -0500
+Subject: [PATCH] Add a script to list patch targets
+
+---
+ script/list_patch_targets.py | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+ create mode 100755 script/list_patch_targets.py
+
+diff --git a/script/list_patch_targets.py b/script/list_patch_targets.py
+new file mode 100755
+index 000000000..55173bac9
+--- /dev/null
++++ b/script/list_patch_targets.py
+@@ -0,0 +1,23 @@
++#!/usr/bin/env python
++
++import argparse
++import json
++
++
++def parse_args():
++  parser = argparse.ArgumentParser(description='Apply Electron patches')
++  parser.add_argument('config', nargs='+',
++                      type=argparse.FileType('r'),
++                      help='patches\' config(s) in the JSON format')
++  return parser.parse_args()
++
++
++def main():
++  configs = parse_args().config
++  for config_json in configs:
++    for patch_dir, repo in json.load(config_json).iteritems():
++      print(repo)
++
++
++if __name__ == '__main__':
++  main()
+-- 
+2.23.0
+
diff --git a/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch b/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
new file mode 100644
index 000000000000..f0036676458f
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
@@ -0,0 +1,33 @@
+diff --git a/build/args/release.gn b/build/args/release.gn
+index e5017f6e1..59207b389 100644
+--- a/build/args/release.gn
++++ b/build/args/release.gn
+@@ -1,6 +1,4 @@
+ import("all.gn")
+-is_component_build = false
+-is_official_build = true
+ 
+ # This may be guarded behind is_chrome_branded alongside
+ # proprietary_codecs https://webrtc-review.googlesource.com/c/src/+/36321,
+@@ -8,9 +6,3 @@ is_official_build = true
+ # The initialization of the decoder depends on whether ffmpeg has
+ # been built with H.264 support.
+ rtc_use_h264 = proprietary_codecs
+-
+-# By default, Electron builds ffmpeg with proprietary codecs enabled. In order
+-# to facilitate users who don't want to ship proprietary codecs in ffmpeg, or
+-# who have an LGPL requirement to ship ffmpeg as a dynamically linked library,
+-# we build ffmpeg as a shared library.
+-is_component_ffmpeg = true
+diff --git a/build/npm.gni b/build/npm.gni
+index a1987d095..fb33a14c3 100644
+--- a/build/npm.gni
++++ b/build/npm.gni
+@@ -35,7 +35,6 @@ template("npm_action") {
+     if (!defined(deps)) {
+       deps = []
+     }
+-    deps += [ ":npm_pre_flight_" + target_name ]
+ 
+     script = "//electron/build/npm-run.py"
+     args = [
diff --git a/srcpkgs/electron19/files/patches/electron-exclude-content-test-patches.patch b/srcpkgs/electron19/files/patches/electron-exclude-content-test-patches.patch
new file mode 100644
index 000000000000..d3fda271ca5b
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/electron-exclude-content-test-patches.patch
@@ -0,0 +1,10 @@
+--- a/script/apply_all_patches.py	2020-08-22 17:46:41.796707506 +0200
++++ -	2020-08-22 17:47:05.887813512 +0200
+@@ -14,6 +14,7 @@
+   for patch_dir, repo in dirs.items():
+     git.import_patches(repo=repo, patch_data=patch_from_dir(patch_dir),
+       threeway=threeway is not None,
++      exclude=['third_party/blink/tools/**', 'test/mjsunit/**', 'content/test/**', 'test/cctest/**', 'test/unittests/**', 'third_party/blink/web_tests/**'],
+       committer_name="Electron Scripts", committer_email="scripts@electron")
+ 
+ 
diff --git a/srcpkgs/electron19/files/patches/electron-no-need-for-husky.patch b/srcpkgs/electron19/files/patches/electron-no-need-for-husky.patch
new file mode 100644
index 000000000000..436d146f1353
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/electron-no-need-for-husky.patch
@@ -0,0 +1,17 @@
+--- a/package.json	2022-07-06 17:31:50.000000000 +0200
++++ -	2022-07-08 23:04:43.654812957 +0200
+@@ -98,7 +98,6 @@
+     "precommit": "lint-staged",
+     "preinstall": "node -e 'process.exit(0)'",
+     "prepack": "check-for-leaks",
+-    "prepare": "husky install",
+     "repl": "node ./script/start.js --interactive",
+     "start": "node ./script/start.js",
+     "test": "node ./script/spec-runner.js",
+@@ -143,4 +142,4 @@
+       "node script/gen-hunspell-filenames.js"
+     ]
+   }
+-}
+\ No newline at end of file
++}
diff --git a/srcpkgs/electron19/files/patches/electron-std-vector-non-const.patch b/srcpkgs/electron19/files/patches/electron-std-vector-non-const.patch
new file mode 100644
index 000000000000..89de8a1afff5
--- /dev/null
+++ b/srcpkgs/electron19/files/patches/electron-std-vector-non-const.patch
@@ -0,0 +1,109 @@
+--- a/patches/chromium/feat_add_data_parameter_to_processsingleton.patch
++++ b/patches/chromium/feat_add_data_parameter_to_processsingleton.patch
+@@ -32,7 +32,7 @@ index 5a64220aaf1309832dc0ad543e353de67fe0a779..e75c4f0d7cf1cac2e5862eb858800359
+ -                                   const base::FilePath& current_directory)>;
+ +       base::RepeatingCallback<bool(const base::CommandLine& command_line,
+ +                                   const base::FilePath& current_directory,
+-+                                   const std::vector<const uint8_t> additional_data)>;
+++                                   const std::vector<uint8_t> additional_data)>;
+  
+  #if BUILDFLAG(IS_WIN)
+    ProcessSingleton(const std::string& program_name,
+@@ -73,7 +73,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..a3e45e9baa09bfc87be5b7ff589ac768
+    // |reader| is for sending back ACK message.
+    void HandleMessage(const std::string& current_dir,
+                       const std::vector<std::string>& argv,
+-+                     const std::vector<const uint8_t> additional_data,
+++                     const std::vector<uint8_t> additional_data,
+                       SocketReader* reader);
+  
+   private:
+@@ -84,7 +84,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..a3e45e9baa09bfc87be5b7ff589ac768
+ -    const std::string& current_dir, const std::vector<std::string>& argv,
+ +    const std::string& current_dir,
+ +    const std::vector<std::string>& argv,
+-+    const std::vector<const uint8_t> additional_data,
+++    const std::vector<uint8_t> additional_data,
+      SocketReader* reader) {
+    DCHECK(ui_task_runner_->BelongsToCurrentThread());
+    DCHECK(reader);
+@@ -114,7 +114,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..a3e45e9baa09bfc87be5b7ff589ac768
+ +  base::StringToSizeT(tokens[0], &num_args);
+ +  std::vector<std::string> command_line(tokens.begin() + 1, tokens.begin() + 1 + num_args);
+ +
+-+  std::vector<const uint8_t> additional_data;
+++  std::vector<uint8_t> additional_data;
+ +  if (tokens.size() >= 3 + num_args) {
+ +    size_t additional_data_size;
+ +    base::StringToSizeT(tokens[1 + num_args], &additional_data_size);
+@@ -123,7 +123,7 @@ index 7d3a441bdb64268ed5fbfa7bf589fb35a2fd1b75..a3e45e9baa09bfc87be5b7ff589ac768
+ +        std::string(1, kTokenDelimiter));
+ +    const uint8_t* additional_data_bits =
+ +        reinterpret_cast<const uint8_t*>(remaining_args.c_str());
+-+    additional_data = std::vector<const uint8_t>(
+++    additional_data = std::vector<uint8_t>(
+ +        additional_data_bits, additional_data_bits + additional_data_size);
+ +  }
+ +
+@@ -189,7 +189,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..fe68beb4b2522d27e07dbbb3341f100f
+                        base::CommandLine* parsed_command_line,
+ -                      base::FilePath* current_directory) {
+ +                      base::FilePath* current_directory,
+-+                      std::vector<const uint8_t>* parsed_additional_data) {
+++                      std::vector<uint8_t>* parsed_additional_data) {
+    // We should have enough room for the shortest command (min_message_size)
+    // and also be a multiple of wchar_t bytes. The shortest command
+ -  // possible is L"START\0\0" (empty current directory and command line).
+@@ -230,7 +230,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..fe68beb4b2522d27e07dbbb3341f100f
+ +        msg.substr(fourth_null + 1, fifth_null - fourth_null);
+ +    const uint8_t* additional_data_bytes =
+ +        reinterpret_cast<const uint8_t*>(additional_data.c_str());
+-+    *parsed_additional_data = std::vector<const uint8_t>(additional_data_bytes,
+++    *parsed_additional_data = std::vector<uint8_t>(additional_data_bytes,
+ +        additional_data_bytes + additional_data_length);
+ +
+      return true;
+@@ -241,7 +241,7 @@ index 0ea5eb3e3cf055d981ab73486115bac53287f2d7..fe68beb4b2522d27e07dbbb3341f100f
+    base::CommandLine parsed_command_line(base::CommandLine::NO_PROGRAM);
+    base::FilePath current_directory;
+ -  if (!ParseCommandLine(cds, &parsed_command_line, &current_directory)) {
+-+  std::vector<const uint8_t> additional_data;
+++  std::vector<uint8_t> additional_data;
+ +  if (!ParseCommandLine(cds, &parsed_command_line, &current_directory, &additional_data)) {
+      *result = TRUE;
+      return true;
+--- a/shell/browser/api/electron_api_app.cc
++++ b/shell/browser/api/electron_api_app.cc
+@@ -519,10 +519,10 @@ bool NotificationCallbackWrapper(
+     const base::RepeatingCallback<
+         void(const base::CommandLine& command_line,
+              const base::FilePath& current_directory,
+-             const std::vector<const uint8_t> additional_data)>& callback,
++             const std::vector<uint8_t> additional_data)>& callback,
+     const base::CommandLine& cmd,
+     const base::FilePath& cwd,
+-    const std::vector<const uint8_t> additional_data) {
++    const std::vector<uint8_t> additional_data) {
+   // Make sure the callback is called after app gets ready.
+   if (Browser::Get()->is_ready()) {
+     callback.Run(cmd, cwd, std::move(additional_data));
+@@ -1083,7 +1083,7 @@ std::string App::GetLocaleCountryCode() {
+ 
+ void App::OnSecondInstance(const base::CommandLine& cmd,
+                            const base::FilePath& cwd,
+-                           const std::vector<const uint8_t> additional_data) {
++                           const std::vector<uint8_t> additional_data) {
+   v8::Isolate* isolate = JavascriptEnvironment::GetIsolate();
+   v8::Locker locker(isolate);
+   v8::HandleScope handle_scope(isolate);
+--- a/shell/browser/api/electron_api_app.h
++++ b/shell/browser/api/electron_api_app.h
+@@ -195,7 +195,7 @@ class App : public ElectronBrowserClient::Delegate,
+   std::string GetLocaleCountryCode();
+   void OnSecondInstance(const base::CommandLine& cmd,
+                         const base::FilePath& cwd,
+-                        const std::vector<const uint8_t> additional_data);
++                        const std::vector<uint8_t> additional_data);
+   bool HasSingleInstanceLock() const;
+   bool RequestSingleInstanceLock(gin::Arguments* args);
+   void ReleaseSingleInstanceLock();
diff --git a/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.cc b/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.cc
new file mode 100644
index 000000000000..2c7aa8efa66f
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.cc
@@ -0,0 +1,148 @@
+// 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/metrics/histogram_macros.h"
+#include "base/memory/ptr_util.h"
+
+#include "media/audio/openbsd/audio_manager_openbsd.h"
+
+#include "media/audio/audio_device_description.h"
+#include "media/audio/audio_output_dispatcher.h"
+#include "media/audio/sndio/sndio_input.h"
+#include "media/audio/sndio/sndio_output.h"
+#include "media/base/limits.h"
+#include "media/base/media_switches.h"
+
+namespace media {
+
+// Maximum number of output streams that can be open simultaneously.
+static const int kMaxOutputStreams = 4;
+
+// 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 AudioManagerOpenBSD::HasAudioOutputDevices() {
+  return true;
+}
+
+bool AudioManagerOpenBSD::HasAudioInputDevices() {
+  return true;
+}
+
+void AudioManagerOpenBSD::GetAudioInputDeviceNames(
+    AudioDeviceNames* device_names) {
+  DCHECK(device_names->empty());
+  AddDefaultDevice(device_names);
+}
+
+void AudioManagerOpenBSD::GetAudioOutputDeviceNames(
+    AudioDeviceNames* device_names) {
+  AddDefaultDevice(device_names);
+}
+
+const char* AudioManagerOpenBSD::GetName() {
+  return "SNDIO";
+}
+
+AudioParameters AudioManagerOpenBSD::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, CHANNEL_LAYOUT_STEREO,
+      kDefaultSampleRate, buffer_size);
+}
+
+AudioManagerOpenBSD::AudioManagerOpenBSD(std::unique_ptr<AudioThread> audio_thread,
+                                         AudioLogFactory* audio_log_factory)
+    : AudioManagerBase(std::move(audio_thread),
+                       audio_log_factory) {
+  DLOG(WARNING) << "AudioManagerOpenBSD";
+  SetMaxOutputStreamsAllowed(kMaxOutputStreams);
+}
+
+AudioManagerOpenBSD::~AudioManagerOpenBSD() {
+  Shutdown();
+}
+
+AudioOutputStream* AudioManagerOpenBSD::MakeLinearOutputStream(
+    const AudioParameters& params,
+    const LogCallback& log_callback) {
+  DCHECK_EQ(AudioParameters::AUDIO_PCM_LINEAR, params.format());
+  return MakeOutputStream(params);
+}
+
+AudioOutputStream* AudioManagerOpenBSD::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* AudioManagerOpenBSD::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* AudioManagerOpenBSD::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 AudioManagerOpenBSD::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;
+
+  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
+  int sample_rate = kDefaultSampleRate;
+  int buffer_size = kDefaultOutputBufferSize;
+  if (input_params.IsValid()) {
+    sample_rate = input_params.sample_rate();
+    channel_layout = input_params.channel_layout();
+    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,
+      sample_rate, buffer_size);
+}
+
+AudioInputStream* AudioManagerOpenBSD::MakeInputStream(
+    const AudioParameters& params) {
+  DLOG(WARNING) << "MakeInputStream";
+  return new SndioAudioInputStream(this,
+             AudioDeviceDescription::kDefaultDeviceId, params);
+}
+
+AudioOutputStream* AudioManagerOpenBSD::MakeOutputStream(
+    const AudioParameters& params) {
+  DLOG(WARNING) << "MakeOutputStream";
+  return new SndioAudioOutputStream(params, this);
+}
+
+}  // namespace media
diff --git a/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.h b/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.h
new file mode 100644
index 000000000000..8c99db966d65
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/audio_manager_openbsd.h
@@ -0,0 +1,65 @@
+// 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_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
+#define MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
+
+#include <set>
+
+#include "base/compiler_specific.h"
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/threading/thread.h"
+#include "media/audio/audio_manager_base.h"
+
+namespace media {
+
+class MEDIA_EXPORT AudioManagerOpenBSD : public AudioManagerBase {
+ public:
+  AudioManagerOpenBSD(std::unique_ptr<AudioThread> audio_thread,
+                   AudioLogFactory* audio_log_factory);
+  ~AudioManagerOpenBSD() 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);
+
+  DISALLOW_COPY_AND_ASSIGN(AudioManagerOpenBSD);
+};
+
+}  // namespace media
+
+#endif  // MEDIA_AUDIO_OPENBSD_AUDIO_MANAGER_OPENBSD_H_
diff --git a/srcpkgs/electron19/files/sndio-files/sndio_input.cc b/srcpkgs/electron19/files/sndio-files/sndio_input.cc
new file mode 100644
index 000000000000..ef5439b49a07
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/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/bind.h"
+#include "base/logging.h"
+#include "base/macros.h"
+#include "media/base/audio_timestamp_helper.h"
+#include "media/audio/openbsd/audio_manager_openbsd.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();
+}
+
+bool SndioAudioInputStream::Open() {
+  struct sio_par par;
+  int sig;
+
+  if (state != kClosed)
+    return false;
+
+  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
+      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
+    LOG(WARNING) << "Unsupported audio format.";
+    return false;
+  }
+
+  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 false;
+  }
+
+  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 true;
+bad_close:
+  sio_close(hdl);
+  return false;
+}
+
+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)
+    return;
+
+  if (state == kRunning)
+    Stop();
+
+  state = kClosed;
+  delete [] buffer;
+  sio_close(hdl);
+
+  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(buffer, nframes, SampleFormatToBytesPerChannel(kSampleFormat));
+
+    // invoke callback
+    callback->OnData(audio_bus.get(), base::TimeTicks::Now() - delay, 1.);
+  }
+}
+
+}  // namespace media
diff --git a/srcpkgs/electron19/files/sndio-files/sndio_input.h b/srcpkgs/electron19/files/sndio-files/sndio_input.h
new file mode 100644
index 000000000000..d868e0469db5
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/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/macros.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() override;
+
+  // Implementation of AudioInputStream.
+  bool 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;
+
+  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
+};
+
+}  // namespace media
+
+#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
diff --git a/srcpkgs/electron19/files/sndio-files/sndio_output.cc b/srcpkgs/electron19/files/sndio-files/sndio_output.cc
new file mode 100644
index 000000000000..a6719f9aac8d
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/sndio_output.cc
@@ -0,0 +1,183 @@
+// 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() {
+  struct sio_par par;
+  int sig;
+
+  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
+      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
+    LOG(WARNING) << "Unsupported audio format.";
+    return false;
+  }
+  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 false;
+  }
+  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.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.";
+    goto bad_close;
+  }
+  state = kStopped;
+  volpending = 0;
+  vol = 0;
+  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
+  sio_onmove(hdl, &OnMoveCallback, this);
+  sio_onvol(hdl, &OnVolCallback, this);
+  return true;
+ bad_close:
+  sio_close(hdl);
+  return false;
+}
+
+void SndioAudioOutputStream::Close() {
+  if (state == kClosed)
+    return;
+  if (state == kRunning)
+    Stop();
+  state = kClosed;
+  delete [] buffer;
+  sio_close(hdl);
+  manager->ReleaseOutputStream(this);  // Calls the destructor
+}
+
+void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
+  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);
+    state = kStopped;
+  }
+}
+
+void SndioAudioOutputStream::Stop() {
+  if (state == kStopped)
+    return;
+  state = kStopWait;
+  pthread_join(thread, NULL);
+  sio_stop(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(), 0, audio_bus.get());
+    audio_bus->ToInterleaved(count, SampleFormatToBytesPerChannel(kSampleFormat), 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/srcpkgs/electron19/files/sndio-files/sndio_output.h b/srcpkgs/electron19/files/sndio-files/sndio_output.h
new file mode 100644
index 000000000000..ead220ca96e7
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-files/sndio_output.h
@@ -0,0 +1,86 @@
+// 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);
+  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;
+
+  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
+};
+
+}  // namespace media
+
+#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
diff --git a/srcpkgs/electron19/files/sndio-patches/media_audio_linux_audio_manager_linux.cc.patch b/srcpkgs/electron19/files/sndio-patches/media_audio_linux_audio_manager_linux.cc.patch
new file mode 100644
index 000000000000..cf8e81b11d67
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-patches/media_audio_linux_audio_manager_linux.cc.patch
@@ -0,0 +1,43 @@
+diff --git a/chromium/media/audio/linux/audio_manager_linux.cc b/chromium/media/audio/linux/audio_manager_linux.cc
+index 5d703549372..9e60b40c749 100644
+--- media/audio/linux/audio_manager_linux.cc
++++ media/audio/linux/audio_manager_linux.cc
+@@ -20,6 +20,10 @@
+ #include "media/audio/pulse/audio_manager_pulse.h"
+ #include "media/audio/pulse/pulse_util.h"
+ #endif
++#if defined(USE_SNDIO)
++#include <sndio.h>
++#include "media/audio/openbsd/audio_manager_openbsd.h"
++#endif
+ 
+ namespace media {
+ 
+@@ -27,7 +31,8 @@ enum LinuxAudioIO {
+   kPulse,
+   kAlsa,
+   kCras,
+-  kAudioIOMax = kCras  // Must always be equal to largest logged entry.
++  kSndio,
++  kAudioIOMax = kSndio  // Must always be equal to largest logged entry.
+ };
+ 
+ std::unique_ptr<media::AudioManager> CreateAudioManager(
+@@ -41,6 +46,17 @@ std::unique_ptr<media::AudioManager> CreateAudioManager(
+   }
+ #endif
+ 
++#if defined(USE_SNDIO)
++  struct sio_hdl * hdl = NULL;
++  if ((hdl=sio_open(SIO_DEVANY, SIO_PLAY, 1)) != NULL) {
++    sio_close(hdl);
++    UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kSndio, kAudioIOMax +1);
++    return std::make_unique<AudioManagerOpenBSD>(std::move(audio_thread),
++                                               audio_log_factory);
++  }
++  DVLOG(1) << "Sndio is not available on the OS";
++#endif
++
+ #if defined(USE_PULSEAUDIO)
+   pa_threaded_mainloop* pa_mainloop = nullptr;
+   pa_context* pa_context = nullptr;
diff --git a/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_BUILD.gn.patch b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_BUILD.gn.patch
new file mode 100644
index 000000000000..ec6040026688
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_BUILD.gn.patch
@@ -0,0 +1,12 @@
+--- media/BUILD.gn	2020-03-24 10:16:30.000000000 +0100
++++ -	2020-04-06 14:32:27.960817513 +0200
+@@ -65,6 +65,9 @@
+   if (use_cras) {
+     defines += [ "USE_CRAS" ]
+   }
++  if (use_sndio) {
++    defines += [ "USE_SNDIO" ]
++  }
+ }
+ 
+ # Internal grouping of the configs necessary to support sub-folders having their
diff --git a/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_audio_BUILD.gn.patch b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_audio_BUILD.gn.patch
new file mode 100644
index 000000000000..c856de0bf2ec
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_audio_BUILD.gn.patch
@@ -0,0 +1,23 @@
+--- media/audio/BUILD.gn	2020-03-24 10:16:30.000000000 +0100
++++ -	2020-04-06 14:31:28.871450217 +0200
+@@ -232,9 +232,19 @@
+     deps += [ "//media/base/android:media_jni_headers" ]
+   }
+ 
+-  if (is_linux) {
++  if (is_linux) {
+     sources += [ "linux/audio_manager_linux.cc" ]
+   }
++  if (use_sndio) {
++    libs += [ "sndio" ]
++    sources += [
++      "openbsd/audio_manager_openbsd.cc",
++      "sndio/sndio_input.cc",
++      "sndio/sndio_input.h",
++      "sndio/sndio_output.cc",
++      "sndio/sndio_output.h"
++   ]
++ }
+ 
+   if (use_alsa) {
+     libs += [ "asound" ]
diff --git a/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_media__options.gni.patch b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_media__options.gni.patch
new file mode 100644
index 000000000000..14807d8e1d36
--- /dev/null
+++ b/srcpkgs/electron19/files/sndio-patches/src_3rdparty_chromium_media_media__options.gni.patch
@@ -0,0 +1,12 @@
+--- media/media_options.gni	2020-03-24 10:16:30.000000000 +0100
++++ -	2020-04-06 14:29:22.958630783 +0200
+@@ -114,6 +114,9 @@
+   # Enables runtime selection of ALSA library for audio.
+   use_alsa = false
+ 
++  # Enables runtime selection of sndio library for audio.
++  use_sndio = false
++
+   # Alsa should be used on non-Android, non-Mac POSIX systems.
+   # Alsa should be used on desktop Chromecast and audio-only Chromecast builds.
+   if (is_posix && !is_android && !is_mac &&
diff --git a/srcpkgs/electron19/template b/srcpkgs/electron19/template
new file mode 100644
index 000000000000..1a8fbb2820ad
--- /dev/null
+++ b/srcpkgs/electron19/template
@@ -0,0 +1,409 @@
+# Template file for 'electron19'
+pkgname=electron19
+version=19.0.8
+revision=1
+_nodever=16.14.2
+_chromiumver=102.0.5005.125
+archs="x86_64* aarch64* ppc64le*"
+create_wrksrc=yes
+build_wrksrc="src"
+hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids
+ libwebp-devel freetype-devel harfbuzz-devel libpng-devel nss-devel which git libevent-devel
+ pciutils-devel libatomic-devel ffmpeg-devel libxml2-devel libglib-devel yarn openjdk libxslt-devel
+ opus-devel libXcursor-devel libXcomposite-devel libXtst-devel libXrandr-devel libXScrnSaver-devel
+ alsa-lib-devel re2-devel snappy-devel mit-krb5-devel $(vopt_if pulseaudio pulseaudio-devel)
+ $(vopt_if sndio sndio-devel) jq"
+makedepends="libpng-devel gtk+-devel gtk+3-devel nss-devel pciutils-devel
+ libXi-devel libgcrypt-devel libgnome-keyring-devel cups-devel elfutils-devel
+ libXcomposite-devel speech-dispatcher-devel libXrandr-devel mit-krb5-devel
+ libXScrnSaver-devel alsa-lib-devel snappy-devel libdrm-devel
+ libxml2-devel libxslt-devel $(vopt_if pulseaudio pulseaudio-devel) libexif-devel
+ libXcursor-devel libflac-devel speex-devel libmtp-devel libwebp-devel
+ libjpeg-turbo-devel libevent-devel json-c-devel harfbuzz-devel
+ minizip-devel jsoncpp-devel zlib-devel libcap-devel libXdamage-devel
+ re2-devel fontconfig-devel freetype-devel opus-devel libatomic-devel
+ $(vopt_if sndio sndio-devel) ffmpeg-devel libva-devel libuv-devel c-ares-devel libnotify-devel
+ $(vopt_if pipewire pipewire-devel) wayland-devel libcurl-devel libxshmfence-devel"
+short_desc="Cross platform application framework based on web technologies"
+maintainer="John <me@johnnynator.dev>"
+license="BSD-3-Clause"
+homepage="https://electronjs.org"
+distfiles="https://github.com/electron/electron/archive/v$version.tar.gz>electron-${version}.tar.gz
+ https://commondatastorage.googleapis.com/chromium-browser-official/chromium-$_chromiumver.tar.xz
+ https://github.com/nodejs/node/archive/v$_nodever.tar.gz>node-$_nodever.tar.gz"
+checksum="d8ee01db95dfe24aa89a67424498b67102a4977ff9a3ccbfbc3f36801fdba7d5
+ f33363565a3c8868f5f67f0852ccf8d19ada209af8ddd4e27774e50206700464
+ cc2331a5c35d3dda0035d9cba71c3b8e234bc68e18ffd955b385c1e97062528f"
+
+case "$XBPS_TARGET_MACHINE" in
+	ppc64*-musl) makedepends+=" libucontext-devel" ;;
+esac
+
+no_generic_pkgconfig_link=yes
+lib32disabled=yes
+nopie=yes  # contains tools that are not PIE, enables PIE itself
+
+build_options="pulseaudio sndio clang pipewire"
+build_options_default="pulseaudio clang pipewire"
+
+#if [ "$build_option_clang" ]; then
+nocross="Yes"
+#elif [ "${XBPS_TARGET_MACHINE%%-musl}" = "aarch64" ]; then
+#	broken="Falls apart at runtime when compiled with gcc"
+#fi
+
+_buildtype=Release
+_is_debug=false
+
+CFLAGS="-Wno-unknown-warning-option -fPIC"
+CXXFLAGS="-Wno-unknown-warning-option -fPIC"
+
+_apply_patch() {
+	local args="$1" pname="$(basename $2)"
+
+	if [ ! -f ".${pname}_done" ]; then
+		if [ -f "${2}.args" ]; then
+			args=$(<"${2}.args")
+		fi
+		msg_normal "$pkgver: patching: ${pname}.\n"
+		patch -N $args -i $2
+		touch .${pname}_done
+	fi
+}
+
+_git_am() {
+	local pname="$(basename $1)"
+
+	if [ ! -f ".${pname}_done" ]; then
+		msg_normal "$pkgver: patching: ${pname}.\n"
+		git -c 'user.name=Electron build' -c 'user.email=electron@ebuild' \
+			am --exclude "third_party/blink/tools/**" \
+			--exclude "test/mjsunit/**" --exclude "content/test/**" \
+			--exclude "test/cctest/**" --exclude "test/unittests/**" \
+			--exclude "third_party/blink/web_tests/**" \
+			--exclude "chrome/test/**" \
+			$1
+		touch .${pname}_done
+	fi
+}
+
+
+_get_chromium_arch() {
+	case "$1" in
+		x86_64*) echo x64 ;;
+		i686*) echo x86 ;;
+		arm*) echo arm ;;
+		aarch64*) echo arm64 ;;
+		ppc64*) echo ppc64 ;;
+		ppc*) echo ppc ;;
+		mipsel*) echo mipsel ;;
+		mips*) echo mips ;;
+		*) msg_error "$pkgver: cannot be compiled for ${XBPS_TARGET_MACHINE}.\n" ;;
+	esac
+}
+
+post_extract() {
+	mv chromium-${_chromiumver} src
+	mkdir -p src/third_party/
+	mv node-$_nodever src/third_party/electron_node
+	mv electron-${version} src/electron
+}
+
+post_patch() {
+	cd $wrksrc
+	for x in $FILESDIR/patches/*.patch; do
+		case "${x##*/}" in
+			electron*.patch)
+				cd src/electron
+				_apply_patch -p1 "$x"
+				cd "$wrksrc";;
+		esac
+	done
+
+	# Sigh, electron uses git am...
+	if [ ! -f ".electron_patches_done" ]; then
+	mv src/electron/patches/config.json config.json.old
+	jq 'del(."src/electron/patches/Mantle", ."src/electron/patches/ReactiveObjC",
+		."src/electron/patches/squirrel.mac", ."src/electron/patches/nan")' \
+		config.json.old > src/electron/patches/config.json
+
+	python2 src/electron/script/list_patch_targets.py src/electron/patches/config.json | while read -r repopath; do
+		cd "$wrksrc"/"$repopath"
+		git init -q
+		git config "gc.auto" 0
+		if [ "$repopath" != "src" ]; then
+			echo "/${repopath#src/}" >> "$wrksrc/$build_wrksrc/.gitignore"
+		fi
+		git add .
+		git -c 'user.name=Electron build' -c 'user.email=electron@ebuild' \
+			commit -q -m "." || true
+	done
+	cd $wrksrc
+
+	for x in $FILESDIR/chromium-upstream-patches/*.patch; do
+		cd src
+		_git_am "$x"
+		cd "$wrksrc"
+	done
+
+	python2 src/electron/script/apply_all_patches.py src/electron/patches/config.json
+	touch .electron_patches_done
+	fi
+
+	for x in $FILESDIR/patches/*; do
+		case "${x##*/}" in
+			chromium*.patch)
+				cd src
+				_apply_patch -p1 "$x"
+				cd "$wrksrc";;
+		esac
+	done
+
+	if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
+	for x in $FILESDIR/musl-patches/*; do
+		case "${x##*/}" in
+			chromium*.patch)
+				cd src
+				_apply_patch -p0 "$x"
+				cd "$wrksrc";;
+			electron*.patch)
+				cd src/electron
+				_apply_patch -p1 "$x"
+				cd "$wrksrc";;
+		esac
+	done
+	fi
+	if [ "$build_option_sndio" ]; then
+		mkdir -p ${wrksrc}/${build_wrksrc}/media/audio/{sndio,openbsd}
+		cp ${FILESDIR}/sndio-files/sndio_*put.* \
+			${wrksrc}/${build_wrksrc}/media/audio/sndio
+		cp ${FILESDIR}/sndio-files/audio_manager_openbsd.* \
+			${wrksrc}/${build_wrksrc}/media/audio/openbsd
+		for f in "${FILESDIR}"/sndio-patches/*.patch; do
+			cd src
+			_apply_patch -p0 "$f"
+			cd "$wrksrc"
+		done
+	fi
+}
+
+pre_configure() {
+	cd "$wrksrc/$build_wrksrc"
+
+	# https://groups.google.com/a/chromium.org/d/topic/chromium-packagers/9JX1N2nf4PU/discussion
+	touch chrome/test/data/webui/i18n_process_css_test.html
+	# Use the file at run time instead of effectively compiling it in
+	sed 's|//third_party/usb_ids/usb.ids|/usr/share/hwdata/usb.ids|g' \
+		-i services/device/public/cpp/usb/BUILD.gn
+
+	mkdir -p third_party/node/linux/node-linux-x64/bin
+	ln -sf /usr/bin/node third_party/node/linux/node-linux-x64/bin/
+	rm -f third_party/devtools-frontend/src/third_party/esbuild/esbuild
+
+	# compile gn early, so it can be used to generate gni stuff
+	msg_normal "Bootstrapping GN\n"
+	CC="${CC_FOR_BUILD:-$CC}" CXX="${CXX_FOR_BUILD:-$CXX}" LD="${LD_FOR_BUILD:-$LD}" \
+	CFLAGS="${CFLAGS_FOR_BUILD:-$CFLAGS}" CXXFLAGS="${CXXFLAGS_FOR_BUILD:-$CXXFLAGS}" \
+	LDFLAGS="${XBPS_LDFLAGS}" \
+		python2 tools/gn/bootstrap/bootstrap.py -s -v --skip-generate-buildfiles
+
+	# we need to generate ppc64 stuff for libvpx as it's not shipped
+	# this has to be done before unbundling, but after gn is built
+	# comment out if we switch back to system libvpx again later
+	case "$XBPS_TARGET_MACHINE" in
+		ppc64*)
+			pushd third_party/libvpx
+			mkdir -p source/config/linux/ppc64
+			# need PATH to find gn
+			PATH="${wrksrc}/${build_wrksrc}/out/Release:$PATH" \
+				./generate_gni.sh || \
+					msg_error "failed to generate libvpx gni"
+			popd
+			;;
+	esac
+
+	# reusable system library settings
+	local use_system="
+		ffmpeg
+		flac
+		fontconfig
+		freetype
+		harfbuzz-ng
+		libdrm
+		libevent
+		libjpeg
+		libpng
+		libwebp
+		libxml
+		libxslt
+		opus
+		re2
+		snappy
+		"
+	for _lib in $use_system libjpeg_turbo; do
+		msg_normal "Removing buildscripts for system provided $_lib\n"
+		find -type f -path "*third_party/$_lib/*" \
+			\! -path "*third_party/$_lib/chromium/*" \
+			\! -path "*third_party/$_lib/google/*" \
+			\! -path './base/third_party/icu/*' \
+			\! -path './third_party/pdfium/third_party/freetype/include/pstables.h' \
+			\! -path './third_party/harfbuzz-ng/utils/hb_scoped.h' \
+			\! -regex '.*\.\(gn\|gni\|isolate\|py\)' \
+			-delete
+	done
+
+
+	msg_normal "Replacing gn files\n"
+	python3 build/linux/unbundle/replace_gn_files.py --system-libraries \
+		$use_system
+	third_party/libaddressinput/chromium/tools/update-strings.py
+}
+
+do_configure() {
+	local target_arch="$(_get_chromium_arch ${XBPS_TARGET_MACHINE})"
+	local host_arch="$(_get_chromium_arch ${XBPS_MACHINE})"
+	# the build system will set march for use, adding it to cflags will break builds
+	export CXXFLAGS=$( shopt -s extglob; echo ${CXXFLAGS/-march=*([^ ])} )
+	export CFLAGS=$( shopt -s extglob; echo ${CFLAGS/-march=*([^ ])} )
+	export CFLAGS=${CFLAGS/-g/}
+	export CXXFLAGS=${CXXFLAGS/-g/}
+	local conf=()
+	cd third_party/electron_node
+	if [ "$CROSS_BUILD" ]; then
+		conf_args=" --dest-cpu=${target_arch} --cross-compiling"
+	fi
+	./configure --prefix=/usr \
+		--shared-zlib \
+		--shared-libuv \
+		--shared-openssl \
+		--shared-cares \
+		--openssl-use-def-ca-store \
+		--without-npm \
+		--without-dtrace \
+		--without-bundled-v8 \
+		${conf_args}
+
+	cd "$wrksrc/$build_wrksrc"/electron
+	yarn install --frozen-lockfile
+	cd "$wrksrc/$build_wrksrc"
+
+	if [ "$build_option_clang" ]; then
+		export CC=clang
+		export CXX=clang++
+		export HOST_CC=clang
+		export HOST_CXX=clang++
+	else
+		export CXXFLAGS="$CXXFLAGS -fpermissive"
+		export BUILD_CXXFLAGS="$BUILD_CXXFLAGS -fpermissive"
+		export BUILD_AR="$AR_host"
+		export BUILD_NM="$NM_host"
+	fi
+
+	conf+=(
+		'blink_symbol_level=0'
+		'clang_use_chrome_plugins=false'
+		'custom_toolchain="//build/toolchain/linux/unbundle:default"'
+	)
+	if [ "$CROSS_BUILD" ]; then
+		conf+=(
+			'host_toolchain="//build/toolchain/linux/unbundle:host"'
+			'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:host"'
+			"host_pkg_config=\"$PKG_CONFIG_FOR_BUILD\""
+			"pkg_config=\"$PKG_CONFIG\""
+		)
+	else
+		conf+=(
+			'host_toolchain="//build/toolchain/linux/unbundle:default"'
+			'v8_snapshot_toolchain="//build/toolchain/linux/unbundle:default"'
+		)
+	fi
+	if [ "$build_option_sndio" ]; then
+		conf+=(
+			'use_sndio=true'
+		)
+	fi
+	if [ -n "$XBPS_DEBUG_PKGS" ]; then
+		conf+=('symbol_level=1')
+	else
+		conf+=('symbol_level=0')
+	fi
+
+	# this does not work on ppc64 yet
+	case "$XBPS_TARGET_MACHINE" in
+		ppc64*) conf+=( "enable_jxl_decoder=false" );;
+	esac
+
+	conf+=(
+		'devtools_skip_typecheck=false'
+		'enable_hangout_services_extension=true'
+		'enable_nacl=false'
+		'enable_precompiled_headers=false'
+		'fatal_linker_warnings=false'
+		'ffmpeg_branding="Chrome"'
+		'gold_path="/usr/bin/ld.gold"'
+		'icu_use_data_file=true'
+		"is_clang=$(vopt_if clang true false)"
+		'is_component_build=false'
+		"is_debug=$_is_debug"
+		'proprietary_codecs=true'
+		'treat_warnings_as_errors=false'
+		'use_allocator_shim=false'
+		'use_allocator="none"'
+		'use_cups=true'
+		'use_custom_libcxx=false'
+		'use_gnome_keyring=false'
+		'use_gold=false'
+		'use_lld=false'
+		'use_system_libwayland=true'
+		"use_pulseaudio=$(vopt_if pulseaudio 'true' 'false')"
+		"rtc_use_pipewire=$(vopt_if pipewire true false)"
+		'use_sysroot=false'
+		'use_system_harfbuzz=true'
+		"target_cpu=\"$target_arch\""
+		"host_cpu=\"$host_arch\""
+		'import("//electron/build/args/release.gn")'
+	)
+
+	msg_normal "Configuring build\n"
+	out/Release/gn gen out/$_buildtype --args="${conf[*]}"
+}
+
+do_build() {
+	export CXXFLAGS=$( shopt -s extglob; echo ${CXXFLAGS/-march=*([^ ])} )
+	export CFLAGS=$( shopt -s extglob; echo ${CFLAGS/-march=*([^ ])} )
+	export CFLAGS=${CFLAGS/-g/}
+	export CXXFLAGS=${CXXFLAGS/-g/}
+	if [ "$build_option_clang" ]; then
+		export CC=clang
+		export CXX=clang++
+		export HOST_CC=clang
+		export HOST_CXX=clang++
+	else
+		export BUILD_CXXFLAGS="$BUILD_CXXFLAGS -fpermissive"
+		export CXXFLAGS="$CXXFLAGS -fpermissive"
+		export BUILD_AR="$AR_host"
+		export BUILD_NM="$NM_host"
+	fi
+	msg_normal "Ninja turtles GO!\n"
+	ninja ${makejobs} -C out/$_buildtype electron third_party/electron_node:headers
+	# finish rest of the build
+	strip -s out/$_buildtype/electron
+	ninja ${makejobs} -C out/$_buildtype electron_dist_zip
+}
+
+do_install() {
+	vmkdir /usr/lib/$pkgname
+	vmkdir /usr/include/$pkgname
+	bsdtar -xf out/$_buildtype/dist.zip -C "$DESTDIR/usr/lib/$pkgname"
+
+	chmod u+s "$DESTDIR/usr/lib/$pkgname/chrome-sandbox"
+
+	cp out/$_buildtype/gen/node_headers.tar.gz "$DESTDIR"/usr/include/$pkgname
+
+	vlicense ${wrksrc}/src/LICENSE chromium.LICENSE
+	vlicense ${wrksrc}/src/electron/LICENSE electron.LICENSE
+	vlicense ${wrksrc}/src/third_party/electron_node/LICENSE node.LICENSE
+
+	vmkdir /usr/bin
+	ln -s ../lib/$pkgname/electron "$DESTDIR"/usr/bin/$pkgname
+}
diff --git a/srcpkgs/electron19/update b/srcpkgs/electron19/update
new file mode 100644
index 000000000000..3af8e58b5358
--- /dev/null
+++ b/srcpkgs/electron19/update
@@ -0,0 +1,2 @@
+site=https://www.electronjs.org/releases/stable?version=${version%%.*}
+pattern='tag/v\K[\d\.]+(?=")'

From ffe2b2626b58a4c3f5f40ab0bf92ca8a3584976c Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sat, 9 Jul 2022 23:12:34 +0200
Subject: [PATCH 03/85] Rocket.Chat-Desktop: update to 3.8.7.

---
 srcpkgs/Rocket.Chat-Desktop/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/Rocket.Chat-Desktop/template b/srcpkgs/Rocket.Chat-Desktop/template
index 065bb05d4a24..70e0bd7a7bc7 100644
--- a/srcpkgs/Rocket.Chat-Desktop/template
+++ b/srcpkgs/Rocket.Chat-Desktop/template
@@ -1,8 +1,8 @@
 # Template file for 'Rocket.Chat-Desktop'
 pkgname=Rocket.Chat-Desktop
-version=3.7.7
+version=3.8.7
 revision=1
-_electron_ver=13
+_electron_ver=19
 wrksrc="Rocket.Chat.Electron-${version}"
 hostmakedepends="yarn nodejs python3 pkg-config app-builder"
 makedepends="electron${_electron_ver} libvips-devel"
@@ -12,7 +12,7 @@ maintainer="John <me@johnnynator.dev>"
 license="MIT"
 homepage="https://rocket.chat/"
 distfiles="https://github.com/RocketChat/Rocket.Chat.Electron/archive/${version}.tar.gz"
-checksum=13ec93b1d531d5d82ee729e5952933def6457c62edcad0ac2fa869fd014abb48
+checksum=ac46390b4ae9e193efa92d5a38947c99fa94140604302b6850b9167e49eea453
 
 export USE_SYSTEM_APP_BUILDER=true
 

From b4991c67082b4b3aa966421723db33dea1884229 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 10 Jul 2022 00:40:44 -0700
Subject: [PATCH 04/85] kitty: update to 0.25.2.

---
 srcpkgs/kitty/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kitty/template b/srcpkgs/kitty/template
index 7f4507a6f0aa..7ba32f5d3638 100644
--- a/srcpkgs/kitty/template
+++ b/srcpkgs/kitty/template
@@ -1,6 +1,6 @@
 # Template file for 'kitty'
 pkgname=kitty
-version=0.25.0
+version=0.25.2
 revision=1
 pycompile_dirs="usr/lib/kitty"
 hostmakedepends="pkg-config python3 wayland-devel wayland-protocols"
@@ -13,7 +13,7 @@ license="GPL-3.0-or-later"
 homepage="https://sw.kovidgoyal.net/kitty/"
 changelog="https://sw.kovidgoyal.net/kitty/changelog.html"
 distfiles="https://github.com/kovidgoyal/kitty/releases/download/v${version}/kitty-${version}.tar.xz"
-checksum=1a2c81bf46687d4141d3182dc984bbc0330791705af152199e5b5815dae933de
+checksum=a20a470490fee05bd4bd0ce0964b5b87df1fabe51f05fa076364bbfe2ee4e03c
 python_version=3
 LDFLAGS+=" -Wl,-z,stack-size=2097152"
 

From 22f6123b881da4de8e4226a88ddb82663edafed3 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 10 Jul 2022 01:29:22 -0700
Subject: [PATCH 05/85] gnome-sudoku: update to 42.0.

---
 srcpkgs/gnome-sudoku/patches/meson-0.61.patch | 38 -------------------
 srcpkgs/gnome-sudoku/template                 |  5 ++-
 2 files changed, 3 insertions(+), 40 deletions(-)
 delete mode 100644 srcpkgs/gnome-sudoku/patches/meson-0.61.patch

diff --git a/srcpkgs/gnome-sudoku/patches/meson-0.61.patch b/srcpkgs/gnome-sudoku/patches/meson-0.61.patch
deleted file mode 100644
index 93549d0158d5..000000000000
--- a/srcpkgs/gnome-sudoku/patches/meson-0.61.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7c9935a02b48f332f67bad3e4ee020b75591084a Mon Sep 17 00:00:00 2001
-From: Jan Beich <jbeich@FreeBSD.org>
-Date: Mon, 24 Jan 2022 11:44:06 +0000
-Subject: [PATCH] meson: drop unused argument for i18n.merge_file()
-
-Ignored in Meson < 0.60.0, deprecated since 0.60.1 and fatal since 0.61.0.
-
-data/meson.build:5:0: ERROR: Function does not take positional arguments.
-data/meson.build:24:0: ERROR: Function does not take positional arguments.
----
- data/meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/data/meson.build b/data/meson.build
-index f18f247..9c95e02 100644
---- a/data/meson.build
-+++ b/data/meson.build
-@@ -2,7 +2,7 @@ resource_files = files('gnome-sudoku.gresource.xml')
- 
- resources = gnome.compile_resources('gnome-sudoku', resource_files)
- 
--desktop_file = i18n.merge_file('desktop',
-+desktop_file = i18n.merge_file(
-   input: '@0@.desktop.in'.format(application_id),
-   output: '@0@.desktop'.format(application_id),
-   install: true,
-@@ -21,7 +21,7 @@ if desktop_file_validate.found()
-   )
- endif
- 
--appdata_file = i18n.merge_file('appdata',
-+appdata_file = i18n.merge_file(
-   input: '@0@.appdata.xml.in'.format(application_id),
-   output: '@0@.appdata.xml'.format(application_id),
-   install: true,
--- 
-GitLab
-
diff --git a/srcpkgs/gnome-sudoku/template b/srcpkgs/gnome-sudoku/template
index 6e0af45248ff..52519e0ebb0a 100644
--- a/srcpkgs/gnome-sudoku/template
+++ b/srcpkgs/gnome-sudoku/template
@@ -1,6 +1,6 @@
 # Template file for 'gnome-sudoku'
 pkgname=gnome-sudoku
-version=40.2
+version=42.0
 revision=1
 build_helper="gir"
 build_style=meson
@@ -10,5 +10,6 @@ short_desc="GNOME Sudoku Japanese logic game"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="https://wiki.gnome.org/Apps/Sudoku"
+changelog="https://gitlab.gnome.org/GNOME/gnome-sudoku/-/raw/gnome-42/NEWS"
 distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=36120531e3c7139581ea3800fbfe3c2b31694c440145ecc897ac34e562d754a3
+checksum=1d2eb4ddb8026b443645cf3585b8df1244e3828ee1c07518052b2599e1c5c28f

From 008cf4d00cce9b649a3209a78286f38a1785e94a Mon Sep 17 00:00:00 2001
From: Cameron Nemo <cnemo@tutanota.com>
Date: Sat, 9 Jul 2022 14:37:31 -0700
Subject: [PATCH 06/85] tokei: add unreleased patch for bug

https: //github.com/XAMPPRocky/tokei/issues/875
Close: #37954
---
 ...c4487ef2a8f53c29124b0aa3e9e793bfaadc.patch | 25 +++++++++++++++++++
 srcpkgs/tokei/template                        |  4 +--
 2 files changed, 27 insertions(+), 2 deletions(-)
 create mode 100644 srcpkgs/tokei/patches/067fc4487ef2a8f53c29124b0aa3e9e793bfaadc.patch

diff --git a/srcpkgs/tokei/patches/067fc4487ef2a8f53c29124b0aa3e9e793bfaadc.patch b/srcpkgs/tokei/patches/067fc4487ef2a8f53c29124b0aa3e9e793bfaadc.patch
new file mode 100644
index 000000000000..46415c14aeba
--- /dev/null
+++ b/srcpkgs/tokei/patches/067fc4487ef2a8f53c29124b0aa3e9e793bfaadc.patch
@@ -0,0 +1,25 @@
+Upstream: yes
+
+From 067fc4487ef2a8f53c29124b0aa3e9e793bfaadc Mon Sep 17 00:00:00 2001
+From: Max Sharnoff <github@max.sharnoff.org>
+Date: Mon, 4 Apr 2022 12:06:32 +0100
+Subject: [PATCH] Summarise language before adding to total (#903)
+
+---
+ src/language/languages.rs | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/language/languages.rs b/src/language/languages.rs
+index 141cae28..2b0fc584 100644
+--- a/src/language/languages.rs
++++ b/src/language/languages.rs
+@@ -102,7 +102,8 @@ impl Languages {
+     #[must_use]
+     pub fn total(self: &Languages) -> Language {
+         let mut total = Language::new();
+-        for (ty, language) in self {
++        for (ty, l) in self {
++            let language = l.summarise();
+             total.comments += language.comments;
+             total.blanks += language.blanks;
+             total.code += language.code;
diff --git a/srcpkgs/tokei/template b/srcpkgs/tokei/template
index 8e5da7ab3923..aec931841af2 100644
--- a/srcpkgs/tokei/template
+++ b/srcpkgs/tokei/template
@@ -1,14 +1,14 @@
 # Template file for 'tokei'
 pkgname=tokei
 version=12.1.2
-revision=2
+revision=3
 build_style=cargo
 configure_args="--features all"
 short_desc="Count lines of code"
 maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
 license="Apache-2.0, MIT"
 homepage="https://github.com/XAMPPRocky/tokei"
-distfiles="https://github.com/XAMPPRocky/tokei/archive/v${version}.tar.gz"
+distfiles="https://github.com/XAMPPRocky/tokei/archive/v$version.tar.gz"
 checksum=81ef14ab8eaa70a68249a299f26f26eba22f342fb8e22fca463b08080f436e50
 
 # on i686 LLVM has problems with compiling doctests

From 2ff6b9abe81419f2f1cd6f1a368c377457601830 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 10 Jul 2022 01:10:58 -0700
Subject: [PATCH 07/85] gnome-chess: update to 42.0.

---
 srcpkgs/gnome-chess/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/gnome-chess/template b/srcpkgs/gnome-chess/template
index 629a10229d9d..3deedebba570 100644
--- a/srcpkgs/gnome-chess/template
+++ b/srcpkgs/gnome-chess/template
@@ -1,14 +1,14 @@
 # Template file for 'gnome-chess'
 pkgname=gnome-chess
-version=41.1
+version=42.0
 revision=1
 build_style=meson
 hostmakedepends="gettext pkg-config vala glib-devel itstool librsvg-devel"
-makedepends="gtk4-devel librsvg-devel"
+makedepends="gtk4-devel libadwaita-devel librsvg-devel"
 depends="gnuchess"
 short_desc="GNOME chess user interface"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-3.0-or-later"
 homepage="https://wiki.gnome.org/Apps/Chess"
 distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=eb619886596396b4033a3f28a3c2e3004b54ebe1b38b40d6422c17b9f2cc17d0
+checksum=12af5493a62205ac6bb74540f0a858413da8928966a346e854330b41d73bc393

From 880470bf9033309aaa30a9c61bb3b33306773ee1 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 10 Jul 2022 00:59:28 -0700
Subject: [PATCH 08/85] gnome-shell: update to 42.3.1

---
 ...-Fix-updating-suggestions-visibility.patch | 37 -------------------
 srcpkgs/gnome-shell/template                  |  8 ++--
 2 files changed, 4 insertions(+), 41 deletions(-)
 delete mode 100644 srcpkgs/gnome-shell/patches/keyboard-Fix-updating-suggestions-visibility.patch

diff --git a/srcpkgs/gnome-shell/patches/keyboard-Fix-updating-suggestions-visibility.patch b/srcpkgs/gnome-shell/patches/keyboard-Fix-updating-suggestions-visibility.patch
deleted file mode 100644
index b2e4df1052ae..000000000000
--- a/srcpkgs/gnome-shell/patches/keyboard-Fix-updating-suggestions-visibility.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From aca79c027483f86e85043f403321a8d8016ca007 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
-Date: Sun, 3 Jul 2022 16:44:39 +0200
-Subject: [PATCH] keyboard: Fix updating suggestions visibility
-
-Commit 237ba24dbeae added corresponding API to the keyboard actor,
-but ended up calling it on the KeyboardManager.
-
-Add the expected method to KeyboardManager that forwards the request
-to the keyboard.
-
-https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5630
-
-Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2359>
-(cherry picked from commit eff23a87c36a6a96c9abab09ab27a4bb35ab1b1f)
----
- js/ui/keyboard.js | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
-index 9e5dbffbb1..e13652bdfe 100644
---- a/js/ui/keyboard.js
-+++ b/js/ui/keyboard.js
-@@ -1273,6 +1273,10 @@ var KeyboardManager = class KeyBoardManager {
-             this._keyboard.resetSuggestions();
-     }
- 
-+    setSuggestionsVisible(visible) {
-+        this._keyboard?.setSuggestionsVisible(visible);
-+    }
-+
-     maybeHandleEvent(event) {
-         if (!this._keyboard)
-             return false;
--- 
-GitLab
-
diff --git a/srcpkgs/gnome-shell/template b/srcpkgs/gnome-shell/template
index e0a73c48c1a5..f273156d7138 100644
--- a/srcpkgs/gnome-shell/template
+++ b/srcpkgs/gnome-shell/template
@@ -1,7 +1,7 @@
 # Template file for 'gnome-shell'
 pkgname=gnome-shell
-version=42.3
-revision=2
+version=42.3.1
+revision=1
 build_style=meson
 build_helper=gir
 configure_args="-Dsystemd=false -Dtests=false"
@@ -20,8 +20,8 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://wiki.gnome.org/Projects/GnomeShell"
 changelog="https://gitlab.gnome.org/GNOME/gnome-shell/-/raw/gnome-42/NEWS"
-distfiles="${GNOME_SITE}/gnome-shell/${version%.*}/gnome-shell-${version}.tar.xz"
-checksum=964f520c28d7f412254298676f9cceed6adf81ff489ff1ded69c42987d4c1888
+distfiles="${GNOME_SITE}/gnome-shell/${version%%.*}/gnome-shell-${version}.tar.xz"
+checksum=7dfab32dfac3cd64d4612918ca987cfb33238efa092798753c8845ff16935f7d
 
 do_check() {
 	mkdir /tmp/gnome-shell-xdg

From 19ce3bd1199051d41b91c64b71ab0935e0acf6e9 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sun, 10 Jul 2022 11:50:07 +0200
Subject: [PATCH 09/85] PolyMC: add qt5-svg dependency

closes #37960
---
 srcpkgs/PolyMC/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/PolyMC/template b/srcpkgs/PolyMC/template
index 90e20adb26fa..3e02c8c9f0d9 100644
--- a/srcpkgs/PolyMC/template
+++ b/srcpkgs/PolyMC/template
@@ -1,13 +1,13 @@
 # Template file for 'PolyMC'
 pkgname=PolyMC
 version=1.3.2
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DLauncher_BUILD_PLATFORM=Void
  -DLauncher_VERSION_BUILD=${revision}"
 hostmakedepends="openjdk8 qt5-host-tools qt5-qmake"
 makedepends="qt5-devel"
-depends="virtual?java-runtime qt5-imageformats xrandr"
+depends="virtual?java-runtime qt5-svg qt5-imageformats xrandr"
 short_desc="Custom launcher for Minecraft"
 maintainer="Philipp David <pd@3b.pm>"
 license="GPL-3.0-only"

From 434a1930d75a9566d1517fcf255352699e039b6c Mon Sep 17 00:00:00 2001
From: J Farkas <chexum+git@gmail.com>
Date: Sat, 9 Jul 2022 17:22:28 +0000
Subject: [PATCH 10/85] polari: allow build with new glib environment

---
 srcpkgs/polari/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/polari/template b/srcpkgs/polari/template
index eb7c9d2dd3df..53233e83acd3 100644
--- a/srcpkgs/polari/template
+++ b/srcpkgs/polari/template
@@ -3,7 +3,7 @@ pkgname=polari
 version=41.0
 revision=1
 build_style=meson
-hostmakedepends="pkg-config itstool gobject-introspection gettext"
+hostmakedepends="pkg-config itstool gobject-introspection gettext glib-devel"
 makedepends="gjs-devel gspell-devel gtk+3-devel libsecret-devel
  libsoup-gnome-devel telepathy-glib-devel telepathy-logger-devel"
 depends="gspell telepathy-idle telepathy-logger telepathy-mission-control"

From 35c9373bcb1895d14401059e4894ad2b8dcd4bf8 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Fri, 24 Jun 2022 18:54:00 +0200
Subject: [PATCH 11/85] qt5-speech: fix version in Qt5TextToSpeechConfig.cmake

closes #37815
---
 srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake | 10 +++++-----
 srcpkgs/qt5-speech/template                          |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake b/srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake
index 34280b9ee763..2bcb2ee2c7e1 100644
--- a/srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake
+++ b/srcpkgs/qt5-speech/files/Qt5TextToSpeechConfig.cmake
@@ -5,7 +5,7 @@ endif()
 get_filename_component(_qt5TextToSpeech_install_prefix "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
 
 # For backwards compatibility only. Use Qt5TextToSpeech_VERSION instead.
-set(Qt5TextToSpeech_VERSION_STRING 5.15.2)
+set(Qt5TextToSpeech_VERSION_STRING 5.15.4)
 
 set(Qt5TextToSpeech_LIBRARIES Qt5::TextToSpeech)
 
@@ -53,8 +53,8 @@ if (NOT TARGET Qt5::TextToSpeech)
 
     set(_Qt5TextToSpeech_OWN_INCLUDE_DIRS "${_qt5TextToSpeech_install_prefix}/include/qt5/" "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech")
     set(Qt5TextToSpeech_PRIVATE_INCLUDE_DIRS
-        "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.2"
-        "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.2/QtTextToSpeech"
+        "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.4"
+        "${_qt5TextToSpeech_install_prefix}/include/qt5/QtTextToSpeech/5.15.4/QtTextToSpeech"
     )
 
     foreach(_dir ${_Qt5TextToSpeech_OWN_INCLUDE_DIRS})
@@ -97,7 +97,7 @@ if (NOT TARGET Qt5::TextToSpeech)
     foreach(_module_dep ${_Qt5TextToSpeech_MODULE_DEPENDENCIES})
         if (NOT Qt5${_module_dep}_FOUND)
             find_package(Qt5${_module_dep}
-                5.15.2 ${_Qt5TextToSpeech_FIND_VERSION_EXACT}
+                5.15.4 ${_Qt5TextToSpeech_FIND_VERSION_EXACT}
                 ${_Qt5TextToSpeech_DEPENDENCIES_FIND_QUIET}
                 ${_Qt5TextToSpeech_FIND_DEPENDENCIES_REQUIRED}
                 PATHS "${CMAKE_CURRENT_LIST_DIR}/.." NO_DEFAULT_PATH
@@ -198,7 +198,7 @@ if (NOT TARGET Qt5::TextToSpeech)
         endif()
     endif()
 
-    _populate_TextToSpeech_target_properties(RELEASE "libQt5TextToSpeech.so.5.15.2" "" FALSE)
+    _populate_TextToSpeech_target_properties(RELEASE "libQt5TextToSpeech.so.5.15.4" "" FALSE)
 
 
 
diff --git a/srcpkgs/qt5-speech/template b/srcpkgs/qt5-speech/template
index 5fa7f74de8c3..8d112d82c316 100644
--- a/srcpkgs/qt5-speech/template
+++ b/srcpkgs/qt5-speech/template
@@ -1,7 +1,7 @@
 # Template file for 'qt5-speech'
 pkgname=qt5-speech
 version=5.15.4
-revision=1
+revision=2
 _commit=c8a1dadc46ccdbeaef45aa805a9dc98d4b3220bd
 wrksrc="qtspeech-${_commit}"
 build_style=qmake

From 81b2ee1c6ae17b3bf8d78dee4336953d9ae07787 Mon Sep 17 00:00:00 2001
From: oreo639 <31916379+Oreo639@users.noreply.github.com>
Date: Sun, 10 Jul 2022 01:39:10 -0700
Subject: [PATCH 12/85] lightsoff: update to 40.0.1.

---
 srcpkgs/lightsoff/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/lightsoff/template b/srcpkgs/lightsoff/template
index 48a6475a6a67..97cda1f8abb6 100644
--- a/srcpkgs/lightsoff/template
+++ b/srcpkgs/lightsoff/template
@@ -1,6 +1,6 @@
 # Template file for 'lightsoff'
 pkgname=lightsoff
-version=3.38.0
+version=40.0.1
 revision=1
 build_style=meson
 hostmakedepends="gettext glib-devel itstool pkg-config vala"
@@ -9,5 +9,6 @@ short_desc="GNOME puzzlle game where you turn off lights"
 maintainer="Orphaned <orphan@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://wiki.gnome.org/Apps/Lightsoff"
-distfiles="${GNOME_SITE}/${pkgname}/${version%.*}/${pkgname}-${version}.tar.xz"
-checksum=d0b6ebd7172e5a948e49d6b5813aaa1473fd664f2c39043cb861fab011b7f636
+changelog="https://gitlab.gnome.org/GNOME/lightsoff/-/raw/master/NEWS"
+distfiles="${GNOME_SITE}/${pkgname}/${version%%.*}/${pkgname}-${version}.tar.xz"
+checksum=acd38d4706f11c6cbb18a1afae77637afbf481d02e0eebfe407595f088f1f1ab

From e8accb6193e95dfe07ffed147419d6fac3a829ef Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Sat, 9 Jul 2022 14:47:44 +0300
Subject: [PATCH 13/85] opera: update to 89.0.4447.38.

---
 srcpkgs/opera/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/opera/template b/srcpkgs/opera/template
index c01a1bc005a7..94daaf576bb4 100644
--- a/srcpkgs/opera/template
+++ b/srcpkgs/opera/template
@@ -1,6 +1,6 @@
 # Template file for 'opera'
 pkgname=opera
-version=88.0.4412.53
+version=89.0.4447.38
 revision=1
 archs="x86_64"
 create_wrksrc=yes
@@ -11,7 +11,7 @@ maintainer="mobinmob <mobinmob@disroot.org>"
 license="custom:Proprietary"
 homepage="https://www.opera.com/computer"
 distfiles="https://get.geo.opera.com/pub/opera/desktop/${version}/linux/opera-stable_${version}_amd64.rpm"
-checksum=de19fbbb16f00c53867e62058f0b34b046157f5277f687dc3345b20f160a9e43
+checksum=959e34218ebae056f439c3c62c71ed722568c7e979545d27a08271cfbf45f88b
 repository="nonfree"
 nostrip=yes
 

From 4907c13bd8e46c015188171762d06c94dc819623 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjam=C3=ADn=20Albi=C3=B1ana?= <benalb@gmail.com>
Date: Sun, 10 Jul 2022 16:43:25 +0200
Subject: [PATCH 14/85] bombadillo: fix update-check pattern

---
 srcpkgs/bombadillo/update | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 srcpkgs/bombadillo/update

diff --git a/srcpkgs/bombadillo/update b/srcpkgs/bombadillo/update
new file mode 100644
index 000000000000..28643b80bad4
--- /dev/null
+++ b/srcpkgs/bombadillo/update
@@ -0,0 +1,2 @@
+site="https://tildegit.org/sloum/bombadillo/releases"
+pattern='/archive/?\K[\d\.Q]+(?=\.tar\.gz")'

From 8cb28550fe93d11fa33d06f5a9f58c41d163666a Mon Sep 17 00:00:00 2001
From: Leah Neukirchen <leah@vuxu.org>
Date: Sun, 10 Jul 2022 21:12:30 +0200
Subject: [PATCH 15/85] scite: update to 5.2.4.

---
 srcpkgs/scite/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/scite/template b/srcpkgs/scite/template
index 0d5851a23d70..226cf45d84ac 100644
--- a/srcpkgs/scite/template
+++ b/srcpkgs/scite/template
@@ -1,6 +1,6 @@
 # Template file for 'scite'
 pkgname=scite
-version=5.2.3
+version=5.2.4
 revision=1
 create_wrksrc=yes
 hostmakedepends="pkg-config"
@@ -10,7 +10,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="MIT"
 homepage="https://www.scintilla.org/SciTEDownload.html"
 distfiles="https://www.scintilla.org/scite${version//./}.tgz"
-checksum=e0dbc30cfe5a3c255b5b00b9491796561de68eea36203811acabbcb7127aa6ae
+checksum=d546165b06f01aa06bb3735484c392856e1defebf29f14160dfd7f8a2000d930
 
 post_extract() {
 	sed -i 's/gthread-2.0/& lua/' scite/gtk/makefile

From cdf237319e685244dd37cf860d77ea3f1f67c886 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 6 Jul 2022 11:20:55 -0500
Subject: [PATCH 16/85] perl-Alien-Build: update to 2.50.

---
 srcpkgs/perl-Alien-Build/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Alien-Build/template b/srcpkgs/perl-Alien-Build/template
index 362dbbff873b..3281d9e38756 100644
--- a/srcpkgs/perl-Alien-Build/template
+++ b/srcpkgs/perl-Alien-Build/template
@@ -1,6 +1,6 @@
 # Template file for 'perl-Alien-Build'
 pkgname=perl-Alien-Build
-version=2.48
+version=2.50
 revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
@@ -13,4 +13,4 @@ maintainer="Zach Dykstra <dykstra.zachary@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/pod/Alien::Build"
 distfiles="https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Alien-Build-${version}.tar.gz"
-checksum=3b26e4794f83c681f3eff8f9d052ba74262c1ca5bad30477a41e66ba64391696
+checksum=4ed2e175ba2d46d77fc8bb3b726a583cd3b28dc5c2885c375cfa2bf2a7c17347

From 99451135fdf4ac60792db5740d559192fbdaaa7c Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 6 Jul 2022 11:19:29 -0500
Subject: [PATCH 17/85] perl-Test-MockModule: update to 0.177.0.

---
 srcpkgs/perl-Test-MockModule/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-Test-MockModule/template b/srcpkgs/perl-Test-MockModule/template
index 0b306844aab0..6f4421b95b5b 100644
--- a/srcpkgs/perl-Test-MockModule/template
+++ b/srcpkgs/perl-Test-MockModule/template
@@ -1,6 +1,6 @@
 # Template file for 'perl-Test-MockModule'
 pkgname=perl-Test-MockModule
-version=0.176.0
+version=0.177.0
 revision=1
 wrksrc="${pkgname/perl-/}-v${version}"
 build_style=perl-ModuleBuild
@@ -13,4 +13,4 @@ maintainer="Zach Dykstra <dykstra.zachary@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/Test-MockModule"
 distfiles="${CPAN_SITE}/Test/${pkgname/perl-/}-v${version}.tar.gz"
-checksum=b71e16657c71b682f045e04d115bd532b85d7a96091e7319a1a85447ff97326e
+checksum=1bda7a49dcea76076d40a7b6a6c3f3e15e6b19c84b6171df44534d91138f1045

From cd16d810ebb30cf7cc8d69c4dc796ba94dc80284 Mon Sep 17 00:00:00 2001
From: Zach Dykstra <dykstra.zachary@gmail.com>
Date: Wed, 6 Jul 2022 11:15:15 -0500
Subject: [PATCH 18/85] perl-YAML-PP: update to 0.034.

---
 srcpkgs/perl-YAML-PP/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/perl-YAML-PP/template b/srcpkgs/perl-YAML-PP/template
index 353d6aa67d08..fcc6e1f15f18 100644
--- a/srcpkgs/perl-YAML-PP/template
+++ b/srcpkgs/perl-YAML-PP/template
@@ -1,6 +1,6 @@
 # Template file for 'perl-YAML-PP'
 pkgname=perl-YAML-PP
-version=0.032
+version=0.034
 revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
@@ -12,4 +12,4 @@ maintainer="Zach Dykstra <dykstra.zachary@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/YAML-PP"
 distfiles="${CPAN_SITE}/YAML/YAML-PP-${version}.tar.gz"
-checksum=27dd0b1e39cef3d12bb5a07b2841c558484a9a430c49d3c6f9ae2e6065abda90
+checksum=6af37ff0757ee962cbda32184177b5282a772adfb126461f744659058dd1eab3

From 17fa7cc93b459458fa68ab3d182fba2a0839d805 Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Tue, 5 Jul 2022 20:21:58 +0530
Subject: [PATCH 19/85] Solaar: update to 1.1.4

---
 srcpkgs/Solaar/template | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/Solaar/template b/srcpkgs/Solaar/template
index 9377d7a11fa6..88c52a0d8f62 100644
--- a/srcpkgs/Solaar/template
+++ b/srcpkgs/Solaar/template
@@ -1,15 +1,16 @@
 # Template file for 'Solaar'
 pkgname=Solaar
-version=1.0.7
+version=1.1.4
 revision=1
 build_style=python3-module
 hostmakedepends="python3-setuptools"
-depends="python3-pyudev python3-psutil python3-yaml python3-xlib"
+depends="python3-evdev python3-pyudev python3-psutil python3-yaml python3-xlib"
 short_desc="Linux device manager for a wide range of Logitech devices"
 maintainer="Young Jin Park <youngjinpark20@gmail.com>"
 license="GPL-3.0-or-later"
 homepage="https://pwr-solaar.github.io/Solaar/"
+changelog="https://raw.githubusercontent.com/pwr-Solaar/Solaar/master/ChangeLog.md"
 distfiles="https://github.com/pwr-Solaar/Solaar/archive/${version}.tar.gz"
-checksum=39c025b4186b6cb4620bc52d1d20e2d841082982c8be0fed155398faee7a9cd1
+checksum=4a6745d1a7cd78873980ce39fec8e44ecb3e5447875335a0237e1fa755217984
 # Package provides no tests
 make_check=no

From b2aea0c2d6fe39b11ca09b17440290768763cec0 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sun, 10 Jul 2022 22:24:22 +0200
Subject: [PATCH 20/85] telegram-desktop: update to 4.0.2.

---
 srcpkgs/telegram-desktop/patches/cross.patch | 19 -------------------
 srcpkgs/telegram-desktop/template            |  4 ++--
 2 files changed, 2 insertions(+), 21 deletions(-)
 delete mode 100644 srcpkgs/telegram-desktop/patches/cross.patch

diff --git a/srcpkgs/telegram-desktop/patches/cross.patch b/srcpkgs/telegram-desktop/patches/cross.patch
deleted file mode 100644
index e1fef852c391..000000000000
--- a/srcpkgs/telegram-desktop/patches/cross.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- a/cmake/external/kwayland/CMakeLists.txt	2022-04-19 14:57:00.000000000 +0200
-+++ -	2022-04-26 18:18:21.919838146 +0200
-@@ -32,6 +32,8 @@
-         -DCMAKE_INSTALL_PREFIX=<BINARY_DIR>
-         -DCMAKE_INSTALL_DATADIR=share
-         -DBUILD_TESTING=OFF
-+	-DQT_HOST_PATH=/usr
-+	-DQtWaylandScanner_EXECUTABLE=/usr/lib/qt6/libexec/qtwaylandscanner
-     BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR>
-     COMMAND ${CMAKE_COMMAND} --install <BINARY_DIR>
-     STEP_TARGETS build
-@@ -83,6 +82,7 @@
-         -DCMAKE_PREFIX_PATH=${CMAKE_CURRENT_BINARY_DIR}
-         -DECM_DIR=${extra_cmake_modules_binary_dir}/share/ECM/cmake
-         -DPlasmaWaylandProtocols_DIR=${plasma_wayland_protocols_binary_dir}/lib/cmake/PlasmaWaylandProtocols
-+	-D_qtpaths_executable=/usr/lib/qt6/bin/qtpaths
-     STEP_TARGETS build
-     EXCLUDE_FROM_ALL TRUE
-     BUILD_BYPRODUCTS <BINARY_DIR>/lib/libKF5WaylandClient.a
diff --git a/srcpkgs/telegram-desktop/template b/srcpkgs/telegram-desktop/template
index 0199fe9ddceb..f791061e47d5 100644
--- a/srcpkgs/telegram-desktop/template
+++ b/srcpkgs/telegram-desktop/template
@@ -1,6 +1,6 @@
 # Template file for 'telegram-desktop'
 pkgname=telegram-desktop
-version=3.7.3
+version=4.0.2
 revision=1
 wrksrc="tdesktop-${version}-full"
 build_style=cmake
@@ -27,7 +27,7 @@ license="GPL-3.0-or-later, OpenSSL"
 homepage="https://desktop.telegram.org/"
 changelog="https://github.com/telegramdesktop/tdesktop/blob/v${version}/changelog.txt"
 distfiles="https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz"
-checksum=9735f30610ff62b01cbdb0b945d32c494cec245961023c9860d9dd5268b9fe1e
+checksum=44659a7b2db3eff2e5c42e372dac14d1b03ffae19e005007ce580719615b59b1
 
 build_options="spellcheck"
 build_options_default="spellcheck"

From 4d6a6dd659e25fdaf2084fa8822f3f4112ec7fb4 Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Sun, 10 Jul 2022 22:24:26 +0200
Subject: [PATCH 21/85] tg_owt: update to 0.0.0.20220508.

---
 srcpkgs/tg_owt/template | 16 ++++++++++------
 1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/srcpkgs/tg_owt/template b/srcpkgs/tg_owt/template
index 3022048a7e76..1b81a7475ac0 100644
--- a/srcpkgs/tg_owt/template
+++ b/srcpkgs/tg_owt/template
@@ -1,9 +1,10 @@
 # Template file for 'tg_owt'
 pkgname=tg_owt
-version=0.0.0.20220413
+version=0.0.0.20220508
 revision=1
-_commit=63a934db1ed212ebf8aaaa20f0010dd7b0d7b396
+_commit=10d5f4bf77333ef6b43516f90d2ce13273255f41
 _libyuv_commit=ad890067f661dc747a975bc55ba3767fe30d4452
+_crc32c_commit=21fc8ef30415a635e7351ffa0e5d5367943d4a94
 wrksrc="tg_owt-$_commit"
 build_style=cmake
 configure_args="-DBUILD_SHARED_LIBS=OFF -DTG_OWT_ARCH_ARMV7_USE_NEON=OFF"
@@ -19,10 +20,12 @@ maintainer="John <me@johnnynator.dev>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/desktop-app/tg_owt"
 distfiles="https://github.com/desktop-app/tg_owt/archive/${_commit}.tar.gz
- https://chromium.googlesource.com/libyuv/libyuv/+archive/${_libyuv_commit}.tar.gz"
-checksum="@677f3dff8619e8e9e38ece55579ad10a5e162145644ec9afa11ac45dcd96904e
- @1dd51820852df840c339bf3f18e6cf1166de33d5631a69cd1eae5b2b34c113e3"
-skip_extraction="${_libyuv_commit}.tar.gz"
+ https://chromium.googlesource.com/libyuv/libyuv/+archive/${_libyuv_commit}.tar.gz
+ https://github.com/google/crc32c/archive/${_crc32c_commit}.tar.gz"
+checksum="@b8a4b1a9e4f8936c02b4a31c19d6282a914df976b9cbdfadb3ae40ca1a185ac6
+ @1dd51820852df840c339bf3f18e6cf1166de33d5631a69cd1eae5b2b34c113e3
+ @b359ed4f5fd0321d807fd7301e66399c311c1fe6ab4c6a0f5538587d97ba4a8d"
+skip_extraction="${_libyuv_commit}.tar.gz ${_crc32c_commit}"
 
 if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
 	makedepends+=" musl-legacy-compat"
@@ -34,4 +37,5 @@ fi
 
 post_extract() {
 	bsdtar xzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_libyuv_commit}.tar.gz -C ${wrksrc}/src/third_party/libyuv
+	bsdtar xzf ${XBPS_SRCDISTDIR}/${pkgname}-${version}/${_crc32c_commit}.tar.gz --strip-components 1 -C ${wrksrc}/src/third_party/crc32c/src
 }

From 87ee019663f1b93aeba2b9a53b80965f67530434 Mon Sep 17 00:00:00 2001
From: lemmi <lemmi@nerd2nerd.org>
Date: Wed, 6 Jul 2022 20:17:54 +0200
Subject: [PATCH 22/85] gerbera: runit fixes

---
 srcpkgs/gerbera/files/gerbera/log/run | 1 +
 srcpkgs/gerbera/files/gerbera/run     | 9 ++++++++-
 srcpkgs/gerbera/template              | 2 +-
 3 files changed, 10 insertions(+), 2 deletions(-)
 create mode 120000 srcpkgs/gerbera/files/gerbera/log/run

diff --git a/srcpkgs/gerbera/files/gerbera/log/run b/srcpkgs/gerbera/files/gerbera/log/run
new file mode 120000
index 000000000000..3a5b4a586051
--- /dev/null
+++ b/srcpkgs/gerbera/files/gerbera/log/run
@@ -0,0 +1 @@
+/usr/bin/vlogger
\ No newline at end of file
diff --git a/srcpkgs/gerbera/files/gerbera/run b/srcpkgs/gerbera/files/gerbera/run
index 925a4d7fde23..cab802769fe9 100755
--- a/srcpkgs/gerbera/files/gerbera/run
+++ b/srcpkgs/gerbera/files/gerbera/run
@@ -1,2 +1,9 @@
 #!/bin/sh
-chpst -u gerbera:gerbera gerbera --home /var/lib/gerbera
+
+if [ ! -d /var/lib/gerbera/.config ]; then
+	mkdir -p /var/lib/gerbera/.config/gerbera
+	chown -R gerbera:gerbera /var/lib/gerbera
+	chpst -u gerbera sh -c 'HOME=/var/lib/gerbera gerbera --create-config > /var/lib/gerbera/.config/gerbera/config.xml'
+fi
+
+exec chpst -u gerbera:gerbera gerbera --home /var/lib/gerbera
diff --git a/srcpkgs/gerbera/template b/srcpkgs/gerbera/template
index 7b4f1a5f1f3d..35136708b3e5 100644
--- a/srcpkgs/gerbera/template
+++ b/srcpkgs/gerbera/template
@@ -1,7 +1,7 @@
 # Template file for 'gerbera'
 pkgname=gerbera
 version=1.11.0
-revision=1
+revision=2
 build_style=cmake
 configure_args="-DWITH_SYSTEMD=0 -DWITH_AVCODEC=1"
 hostmakedepends="pkg-config"

From def75680ca0f16dc42b0f1863f0900599113519a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Sun, 28 Feb 2021 21:26:00 +0100
Subject: [PATCH 23/85] New package: megapixels-1.4.3

Closes: #29129 [via git-merge-pr]
---
 srcpkgs/megapixels/template | 13 +++++++++++++
 srcpkgs/megapixels/update   |  1 +
 2 files changed, 14 insertions(+)
 create mode 100644 srcpkgs/megapixels/template
 create mode 100644 srcpkgs/megapixels/update

diff --git a/srcpkgs/megapixels/template b/srcpkgs/megapixels/template
new file mode 100644
index 000000000000..867f3c825eef
--- /dev/null
+++ b/srcpkgs/megapixels/template
@@ -0,0 +1,13 @@
+# Template file for 'megapixels'
+pkgname=megapixels
+version=1.4.3
+revision=1
+build_style=meson
+hostmakedepends="pkg-config glib-devel"
+makedepends="gtk4-devel libzbar-devel"
+short_desc="GTK4 camera app for ARM devices"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="GPL-3.0-or-later"
+homepage="https://gitlab.com/postmarketOS/megapixels"
+distfiles="${homepage}/-/archive/${version}/megapixels-${version}.tar.gz"
+checksum=8976fa727fa5650499fe1ae923a93d56fedd62e02d92def24d4bf4b0d25a902f
diff --git a/srcpkgs/megapixels/update b/srcpkgs/megapixels/update
new file mode 100644
index 000000000000..3172862eef09
--- /dev/null
+++ b/srcpkgs/megapixels/update
@@ -0,0 +1 @@
+site="https://gitlab.com/postmarketOS/megapixels/-/tags"

From e0b28ee09e2b135a3859385d9a0a6c6fb0d0e807 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Benjam=C3=ADn=20Albi=C3=B1ana?= <benalb@gmail.com>
Date: Sat, 9 Jul 2022 22:36:36 +0200
Subject: [PATCH 24/85] croc: update to 9.6.0.

---
 srcpkgs/croc/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/croc/template b/srcpkgs/croc/template
index 2a0795951d15..558d180274e2 100644
--- a/srcpkgs/croc/template
+++ b/srcpkgs/croc/template
@@ -1,6 +1,6 @@
 # Template file for 'croc'
 pkgname=croc
-version=9.5.6
+version=9.6.0
 revision=1
 build_style=go
 go_import_path=github.com/schollz/croc/v${version%%.*}
@@ -9,7 +9,7 @@ maintainer="Benjamín Albiñana <benalb@gmail.com>"
 license="MIT"
 homepage="https://github.com/schollz/croc"
 distfiles="https://github.com/schollz/croc/archive/v${version}.tar.gz"
-checksum=c03c7b9daf2ba841d373d9c43abb68dc27ab1d7e01bbadead771918d499dea9e
+checksum=15fccb905872ae160c626ef7e47a92a8d78915b738d097865f177dfec925480b
 
 post_install() {
 	vlicense LICENSE

From f708a90882b8a72492096fd266a43379c298dde6 Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Sun, 10 Jul 2022 04:06:31 +0530
Subject: [PATCH 25/85] ristretto: update to 0.12.3

---
 srcpkgs/ristretto/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/ristretto/template b/srcpkgs/ristretto/template
index 80395b0e265d..cd6094d5c4ed 100644
--- a/srcpkgs/ristretto/template
+++ b/srcpkgs/ristretto/template
@@ -1,6 +1,6 @@
 # Template file for 'ristretto'
 pkgname=ristretto
-version=0.12.2
+version=0.12.3
 revision=1
 build_style=gnu-configure
 configure_args="--with-locales-dir=/usr/share/locale"
@@ -13,4 +13,4 @@ license="GPL-2.0-or-later"
 homepage="https://docs.xfce.org/apps/ristretto/start"
 changelog="https://gitlab.xfce.org/apps/ristretto/-/raw/master/NEWS"
 distfiles="https://archive.xfce.org/src/apps/${pkgname}/${version%.*}/${pkgname}-${version}.tar.bz2"
-checksum=0eee869922ec00a253dafa446c2aad2a2f98e07e1db7262e8337ce9ec2dad969
+checksum=868f7021225fa170a2f4716c1d7823bf25ad7aab237687755855799588cd3f3e

From 3dd253ed422f6eabb56daea8b41077edf912cd64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Mon, 11 Jul 2022 10:20:51 +0700
Subject: [PATCH 26/85] python: update checksum

Only change was vendor expat, which we won't use anyway:

	M	cpython-2.7.18.5/Modules/expat/ascii.h
	M	cpython-2.7.18.5/Modules/expat/asciitab.h
	M	cpython-2.7.18.5/Modules/expat/expat.h
	M	cpython-2.7.18.5/Modules/expat/expat_external.h
	M	cpython-2.7.18.5/Modules/expat/iasciitab.h
	M	cpython-2.7.18.5/Modules/expat/internal.h
	M	cpython-2.7.18.5/Modules/expat/latin1tab.h
	M	cpython-2.7.18.5/Modules/expat/nametab.h
	M	cpython-2.7.18.5/Modules/expat/pyexpatns.h
	M	cpython-2.7.18.5/Modules/expat/siphash.h
	M	cpython-2.7.18.5/Modules/expat/utf8tab.h
	M	cpython-2.7.18.5/Modules/expat/winconfig.h
	M	cpython-2.7.18.5/Modules/expat/xmlparse.c
	M	cpython-2.7.18.5/Modules/expat/xmlrole.c
	M	cpython-2.7.18.5/Modules/expat/xmlrole.h
	M	cpython-2.7.18.5/Modules/expat/xmltok.c
	M	cpython-2.7.18.5/Modules/expat/xmltok.h
	M	cpython-2.7.18.5/Modules/expat/xmltok_impl.c
	M	cpython-2.7.18.5/Modules/expat/xmltok_impl.h
	M	cpython-2.7.18.5/Modules/expat/xmltok_ns.c
---
 srcpkgs/python/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/python/template b/srcpkgs/python/template
index bae1327ad821..c5f5e4cf2304 100644
--- a/srcpkgs/python/template
+++ b/srcpkgs/python/template
@@ -16,7 +16,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="Python-2.0"
 homepage="https://www.python.org"
 distfiles="https://github.com/ActiveState/cpython/archive/v${version}.tar.gz"
-checksum=a046ddfd75f439ec2e65af840caa267d1edb4d914d7777d2fbd2f88041c6f3a2
+checksum=e5e80ae00e20994150f2acfe4acfc541cbe6e4e77d334e1e7f9f33f303ab89ba
 
 alternatives="
  python:idle:/usr/bin/idle2.7

From 77297cd0344fa08c9e8a725184e2ee828b9c084b Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Mon, 11 Jul 2022 03:48:22 +0530
Subject: [PATCH 27/85] papirus-icon-theme: update to 20220710

---
 srcpkgs/papirus-icon-theme/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/papirus-icon-theme/template b/srcpkgs/papirus-icon-theme/template
index ea263424dc46..a839f9da67fa 100644
--- a/srcpkgs/papirus-icon-theme/template
+++ b/srcpkgs/papirus-icon-theme/template
@@ -1,13 +1,13 @@
 # Template file for 'papirus-icon-theme'
 pkgname=papirus-icon-theme
-version=20220606
+version=20220710
 revision=1
 short_desc="SVG icon theme for Linux, based on Paper Icon Set"
 maintainer="Giuseppe Fierro <gspe@ae-design.ws>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/PapirusDevelopmentTeam/papirus-icon-theme"
 distfiles="https://github.com/PapirusDevelopmentTeam/${pkgname}/archive/${version}.tar.gz"
-checksum=139d18bada63d72779f2b604dbe893987d74000de728165ef1cb8baa4624b9c6
+checksum=9aa81b51b73bfafeae7dbf7ef411db7c74fcff983e4b13c0e05e481dc65971b2
 
 do_install() {
 	vmkdir usr/share/icons

From f92833e8c7ba8041390b8278210b6f7ba2e53f70 Mon Sep 17 00:00:00 2001
From: Alex Lohr <alexthkloss@web.de>
Date: Thu, 5 May 2022 21:58:04 +0200
Subject: [PATCH 28/85] vscode: update to 1.69.0

take care of new tracking server
---
 srcpkgs/vscode/patches/fix_dir.patch | 10 +++++-----
 srcpkgs/vscode/patches/product.patch |  6 +++---
 srcpkgs/vscode/patches/ripgrep.patch |  6 +++---
 srcpkgs/vscode/template              | 14 +++++++-------
 4 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/srcpkgs/vscode/patches/fix_dir.patch b/srcpkgs/vscode/patches/fix_dir.patch
index da193e702524..62cef243e66e 100644
--- a/srcpkgs/vscode/patches/fix_dir.patch
+++ b/srcpkgs/vscode/patches/fix_dir.patch
@@ -1,13 +1,13 @@
 diff --git a/resources/linux/bin/code.sh b/resources/linux/bin/code.sh
-index 06973937f14..78f72c9e9ed 100755
+index 5fe68cb4f3e..2f7eba7b9a3 100755
 --- a/resources/linux/bin/code.sh
 +++ b/resources/linux/bin/code.sh
-@@ -44,7 +44,7 @@ else
+@@ -53,7 +53,7 @@ else
  		VSCODE_PATH="$(dirname "$(readlink -f "$0")")/.."
  	else
  		# else use the standard install location
--		VSCODE_PATH="/usr/share/@@NAME@@"
-+		VSCODE_PATH="/usr/lib/@@NAME@@"
+-		VSCODE_PATH="/usr/share/@@APPNAME@@"
++		VSCODE_PATH="/usr/lib/@@APPNAME@@"
  	fi
  fi
  
@@ -25,7 +25,7 @@ index 7106e0e0969..faaff89d71c 100644
  Type=Application
  NoDisplay=true
 diff --git a/resources/linux/code.desktop b/resources/linux/code.desktop
-index ab3b79a011b..cdc88ef68a4 100755
+index 72488b67700..c16e815d59f 100755
 --- a/resources/linux/code.desktop
 +++ b/resources/linux/code.desktop
 @@ -2,7 +2,7 @@
diff --git a/srcpkgs/vscode/patches/product.patch b/srcpkgs/vscode/patches/product.patch
index 624ca63afcbe..8ed252e575e7 100644
--- a/srcpkgs/vscode/patches/product.patch
+++ b/srcpkgs/vscode/patches/product.patch
@@ -1,5 +1,5 @@
 diff --git a/product.json b/product.json
-index df18127dcc67..d3006752bd98 100644
+index a50c00f6cf3..8dd13191377 100644
 --- a/product.json
 +++ b/product.json
 @@ -27,7 +27,15 @@
@@ -9,7 +9,7 @@ index df18127dcc67..d3006752bd98 100644
 +	"quality": "stable",
 +	"documentationUrl": "https://github.com/microsoft/vscode-docs",
 +	"requestFeatureUrl": "https://github.com/Microsoft/vscode/issues",
- 	"webviewContentExternalBaseUrlTemplate": "https://{{uuid}}.vscode-webview.net/insider/181b43c0e2949e36ecb623d8cc6de29d4fa2bae8/out/vs/workbench/contrib/webview/browser/pre/",
+ 	"webviewContentExternalBaseUrlTemplate": "https://{{uuid}}.vscode-cdn.net/insider/3c8520fab514b9f56070214496b26ff68d1b1cb5/out/vs/workbench/contrib/webview/browser/pre/",
 +	"extensionsGallery": {
 +		"serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery",
 +		"cacheUrl": "https://vscode.blob.core.windows.net/gallery/index",
@@ -17,4 +17,4 @@ index df18127dcc67..d3006752bd98 100644
 +	},
  	"builtInExtensions": [
  		{
- 			"name": "ms-vscode.references-view",
+ 			"name": "ms-vscode.js-debug-companion",
diff --git a/srcpkgs/vscode/patches/ripgrep.patch b/srcpkgs/vscode/patches/ripgrep.patch
index 3fdc568a9e54..f87bc5eaab5a 100644
--- a/srcpkgs/vscode/patches/ripgrep.patch
+++ b/srcpkgs/vscode/patches/ripgrep.patch
@@ -5,7 +5,7 @@ during build, which unbreaks build on platforms where MS deos not
 ship a prebuilt ripgrep.
 
 diff --git a/package.json b/package.json
-index de2cf9e04a9b..1995e3bb9a7e 100644
+index 39c3e9f5b10..198dbf3e421 100644
 --- a/package.json
 +++ b/package.json
 @@ -62,7 +62,7 @@
@@ -14,11 +14,11 @@ index de2cf9e04a9b..1995e3bb9a7e 100644
      "@vscode/iconv-lite-umd": "0.7.0",
 -    "@vscode/ripgrep": "^1.14.2",
 +    "@vscode/ripgrep": "https://github.com/atk/void-vscode-ripgrep.git",
-     "@vscode/sqlite3": "5.0.7",
+     "@vscode/sqlite3": "5.0.8",
      "@vscode/sudo-prompt": "9.3.1",
      "@vscode/vscode-languagedetection": "1.0.21",
 diff --git a/remote/package.json b/remote/package.json
-index c7fc7a2e931f..8842b784df2c 100644
+index 936aa5f5bab..152ba516795 100644
 --- a/remote/package.json
 +++ b/remote/package.json
 @@ -6,7 +6,7 @@
diff --git a/srcpkgs/vscode/template b/srcpkgs/vscode/template
index 6d3b3d72d00c..9f11f7989152 100644
--- a/srcpkgs/vscode/template
+++ b/srcpkgs/vscode/template
@@ -1,18 +1,18 @@
 # Template file for 'vscode'
 pkgname=vscode
-version=1.66.2
+version=1.69.0
 revision=1
-_electronver=13.6.7
+_electronver=19.0.8
 _npmver=8.6.0
 hostmakedepends="pkg-config python3 nodejs yarn tar git ripgrep"
-makedepends="libxkbfile-devel libsecret-devel libxml2-devel ncurses-devel electron13"
-depends="libXtst ncurses nss dejavu-fonts-ttf xdg-utils ripgrep electron13"
+makedepends="libxkbfile-devel libsecret-devel libxml2-devel ncurses-devel electron19"
+depends="libXtst ncurses nss dejavu-fonts-ttf xdg-utils ripgrep electron19"
 short_desc="Microsoft Code for Linux"
 maintainer="shizonic <realtiaz@gmail.com>, Alex Lohr <alex.lohr@logmein.com>"
 license="MIT"
 homepage="https://code.visualstudio.com/"
-distfiles="https://github.com/Microsoft/vscode/archive/refs/tags/${version}.tar.gz"
-checksum=1b70f202b570763e85f67abd8693eeb9c88c6a066a4b579aca5c0c42ecb1b47f
+distfiles="https://github.com/microsoft/vscode/archive/refs/tags/${version}.tar.gz"
+checksum=982af5d93198b5437c3c211276c7b5fd7e3ecf19359c9605df2d6feddee93151
 nocross=yes # x64 build does not cut it, it contains native code
 
 if [ "$XBPS_TARGET_WORDSIZE" = "32" ]; then
@@ -29,7 +29,7 @@ do_configure() {
 
 	# redirect telemetry urls to 0.0.0.0
 	# src: vscodium/undo_telemetry.sh
-	_TELEMETRY_URLS="(dc\.services\.visualstudio\.com)|(vortex\.data\.microsoft\.com)"
+	_TELEMETRY_URLS="(dc\.services\.visualstudio\.com)|(vortex\.data\.microsoft\.com)|(mobile\.events\.data\.microsoft\.com)"
 	_REPLACEMENT="s/$_TELEMETRY_URLS/0\.0\.0\.0/g"
 	grep -rl --exclude-dir=.git -E $_TELEMETRY_URLS | xargs sed -i -E $_REPLACEMENT
 

From 811092c77c84182705b8e19a3981df1601ed1636 Mon Sep 17 00:00:00 2001
From: 0x5c <dev@0x5c.io>
Date: Mon, 11 Jul 2022 00:24:58 -0400
Subject: [PATCH 29/85] tio: update to 1.43.

---
 srcpkgs/tio/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/tio/template b/srcpkgs/tio/template
index 8b6cd9669585..4d3f61a6a0f9 100644
--- a/srcpkgs/tio/template
+++ b/srcpkgs/tio/template
@@ -1,6 +1,6 @@
 # Template file for 'tio'
 pkgname=tio
-version=1.40
+version=1.43
 revision=1
 build_style=meson
 hostmakedepends="pkg-config"
@@ -9,9 +9,9 @@ short_desc="Simple serial device I/O tool"
 maintainer="0x5c <dev@0x5c.io>"
 license="GPL-2.0-or-later"
 homepage="https://github.com/tio/tio"
-changelog="https://github.com/tio/tio/raw/master/ChangeLog"
+changelog="https://github.com/tio/tio/raw/master/NEWS"
 distfiles="https://github.com/tio/tio/archive/refs/tags/v${version}.tar.gz"
-checksum=1fe3631b9236155818cdb9bac28435499a3701a97b193c5165275952c9f56da5
+checksum=6678c61c5f713c9c9022cada559e40f4c0c4af1c89db1cb25af4ef328d9f36cf
 
 post_install() {
 	vcompletion "build/src/bash-completion/tio" bash tio

From 4276884a15fa8ee396e489f66a8abba4663fb8b9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Ey=C3=9Fer?= <daniel.eysser@gmail.com>
Date: Sun, 10 Jul 2022 00:23:48 +0200
Subject: [PATCH 30/85] mpd: update to 0.23.8.

---
 srcpkgs/mpd/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/mpd/template b/srcpkgs/mpd/template
index bf6aa8c73770..98195b80a38d 100644
--- a/srcpkgs/mpd/template
+++ b/srcpkgs/mpd/template
@@ -1,7 +1,7 @@
 # Template file for 'mpd'
 pkgname=mpd
-version=0.23.7
-revision=3
+version=0.23.8
+revision=1
 build_style=meson
 configure_args="-Dopus=enabled -Dmikmod=enabled -Dneighbor=true
  -Dsoundcloud=enabled -Dpipe=true -Dtwolame=enabled -Dbzip2=enabled
@@ -39,7 +39,7 @@ license="GPL-2.0-or-later"
 homepage="https://www.musicpd.org/"
 changelog="https://raw.githubusercontent.com/MusicPlayerDaemon/MPD/master/NEWS"
 distfiles="https://www.musicpd.org/download/mpd/${version%.*}/mpd-${version}.tar.xz"
-checksum=960dcbac717c388f5dcc4fd945e3af19a476f2b15f367e9653d4c7a948768211
+checksum=86bb569bf3b519821f36f6bb5564e484e85d2564411b34b200fe2cd3a04e78cf
 LDFLAGS="-Wl,-z,stack-size=1048576"
 
 system_accounts="mpd"

From 4c53754bba98365d19700e0d95a72a6fccee5c88 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Ey=C3=9Fer?= <daniel.eysser@gmail.com>
Date: Sun, 10 Jul 2022 00:14:32 +0200
Subject: [PATCH 31/85] dasel: update to 1.26.0.

---
 srcpkgs/dasel/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/dasel/template b/srcpkgs/dasel/template
index c6e2e67cce19..7e1108177775 100644
--- a/srcpkgs/dasel/template
+++ b/srcpkgs/dasel/template
@@ -1,6 +1,6 @@
 # Template file for 'dasel'
 pkgname=dasel
-version=1.25.0
+version=1.26.0
 revision=1
 build_style=go
 go_import_path=github.com/tomwright/dasel
@@ -12,7 +12,7 @@ license="MIT"
 homepage="https://daseldocs.tomwright.me/"
 changelog="https://raw.githubusercontent.com/TomWright/dasel/master/CHANGELOG.md"
 distfiles="https://github.com/TomWright/dasel/archive/v${version}.tar.gz"
-checksum=49f7a34b31c87d27ef5c5a32b87a603ac6d7d4d1a52533942676429b747e1f7e
+checksum=3c28ffd0ce63884835ce10392591624014c4d0af4444d9230a9027385559f898
 
 post_install() {
 	vlicense LICENSE

From 9824b01bd897365d2522ecff8c25126c48d2912c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Ey=C3=9Fer?= <daniel.eysser@gmail.com>
Date: Tue, 5 Jul 2022 22:30:48 +0200
Subject: [PATCH 32/85] kopia: update to 0.11.2.

---
 srcpkgs/kopia/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kopia/template b/srcpkgs/kopia/template
index 8bd4f08fc359..9002539c3181 100644
--- a/srcpkgs/kopia/template
+++ b/srcpkgs/kopia/template
@@ -1,6 +1,6 @@
 # Template file for 'kopia'
 pkgname=kopia
-version=0.10.7
+version=0.11.2
 revision=1
 build_style=go
 build_helper=qemu
@@ -12,7 +12,7 @@ maintainer="Daniel Eyßer <daniel.eysser@gmail.com>"
 license="Apache-2.0"
 homepage="https://kopia.io/"
 distfiles="https://github.com/kopia/kopia/archive/v${version}.tar.gz"
-checksum=d797330d39c099c10e8d7bdb4654b254790ea180543971214e8aeec31ad66da4
+checksum=bc30f6fe2637be4a7f0628e6a6c9d593dc0e93b364348b7781705600310ed98d
 
 post_install() {
 	for shell in bash zsh; do

From 81d4b32a12fa28cd9cae5405827feeb524862a8e Mon Sep 17 00:00:00 2001
From: Subhaditya Nath <sn03.general@gmail.com>
Date: Sat, 9 Jul 2022 22:33:02 +0530
Subject: [PATCH 33/85] libzip: update to 1.9.2, adopt

---
 srcpkgs/libzip/template | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/srcpkgs/libzip/template b/srcpkgs/libzip/template
index 582bda07a977..7642a4f475d0 100644
--- a/srcpkgs/libzip/template
+++ b/srcpkgs/libzip/template
@@ -1,22 +1,17 @@
 # Template file for 'libzip'
 pkgname=libzip
-version=1.8.0
+version=1.9.2
 revision=1
 build_style=cmake
 hostmakedepends="perl groff pkg-config"
 makedepends="bzip2-devel openssl-devel zlib-devel liblzma-devel libzstd-devel"
 short_desc="C library for reading, creating, and modifying zip archives"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Subhaditya Nath <sn03.general@gmail.com>"
 license="BSD-3-Clause"
 homepage="https://libzip.org/"
 changelog="https://raw.githubusercontent.com/nih-at/libzip/master/NEWS.md"
 distfiles="https://libzip.org/download/libzip-${version}.tar.gz"
-checksum=30ee55868c0a698d3c600492f2bea4eb62c53849bcf696d21af5eb65f3f3839e
-
-post_patch() {
-	vsed -i lib/zip_crypto_openssl.c \
-		-e '/^#include <openssl\/rand\.h>/a #include <limits.h>'
-}
+checksum=fd6a7f745de3d69cf5603edc9cb33d2890f0198e415255d0987a0cf10d824c6f
 
 post_install() {
 	vlicense LICENSE

From 8d36bfc8fc3b0c775fc3b7071ccd0995253b9f21 Mon Sep 17 00:00:00 2001
From: Joseph Benden <joe@benden.us>
Date: Sat, 9 Jul 2022 15:43:30 -0700
Subject: [PATCH 34/85] aircrack-ng: update to 1.7.

Signed-off-by: Joseph Benden <joe@benden.us>
---
 srcpkgs/aircrack-ng/patches/evalrev.patch | 13 ++++++
 srcpkgs/aircrack-ng/patches/python.patch  | 49 +++++++++++++++++++++++
 srcpkgs/aircrack-ng/patches/sqlite3.patch | 25 ++++++++++++
 srcpkgs/aircrack-ng/template              | 31 +++++++-------
 4 files changed, 103 insertions(+), 15 deletions(-)
 create mode 100644 srcpkgs/aircrack-ng/patches/evalrev.patch
 create mode 100644 srcpkgs/aircrack-ng/patches/python.patch
 create mode 100644 srcpkgs/aircrack-ng/patches/sqlite3.patch

diff --git a/srcpkgs/aircrack-ng/patches/evalrev.patch b/srcpkgs/aircrack-ng/patches/evalrev.patch
new file mode 100644
index 000000000000..fd66c0dcf1f8
--- /dev/null
+++ b/srcpkgs/aircrack-ng/patches/evalrev.patch
@@ -0,0 +1,13 @@
+diff --git a/evalrev b/evalrev
+index 19b38d6b..afb4157e 100755
+--- a/evalrev
++++ b/evalrev
+@@ -49,7 +49,7 @@ elif test -d "${DIR}/.svn"; then
+         SCM="_r1"
+     fi
+ else
+-    REVISION="$(cat ${DIR}/AC_VERSION)"
++    REVISION="$(cat ${DIR}/AC_VERSION 2>/dev/null)"
+ fi
+ 
+ if test "x$CMD" = "xscm"; then
diff --git a/srcpkgs/aircrack-ng/patches/python.patch b/srcpkgs/aircrack-ng/patches/python.patch
new file mode 100644
index 000000000000..29f41f59124c
--- /dev/null
+++ b/srcpkgs/aircrack-ng/patches/python.patch
@@ -0,0 +1,49 @@
+diff --git a/build/m4/aircrack_ng_ext_scripts.m4 b/build/m4/aircrack_ng_ext_scripts.m4
+index db464944..4d0e9b62 100644
+--- a/build/m4/aircrack_ng_ext_scripts.m4
++++ b/build/m4/aircrack_ng_ext_scripts.m4
+@@ -39,20 +39,14 @@ dnl program, then also delete it here.
+ 
+ AC_DEFUN([AIRCRACK_NG_EXT_SCRIPTS], [
+ 
+-if test "$cross_compiling" = no;
+-then
+-	AC_CHECK_PROGS([PYTHON], [python python3 python2])
+-	if test $PYTHON = no; then
+-		AC_MSG_FAILURE(failed to find Python)
+-	fi
+-
+-    if test "x$PYTHON" != "x"; then
+-        pc_cv_python_site_dir=`$PYTHON -c 'import site; print(site.getsitepackages()[[-1]])'`
+-        dnl AC_SUBST([pythondir], [\${prefix}/$pc_cv_python_site_dir])
+-        AC_SUBST([pythondir], [$pc_cv_python_site_dir])
+-        AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE_NAME])
+-    fi
+-fi
++AC_CHECK_PROGS([PYTHON], [python python3 python2])
++AS_IF([test x"$PYTHON" = x], [
++    AC_MSG_RESULT(failed to find Python)
++], [
++    pc_cv_python_site_dir=`$PYTHON -c 'import site; print(site.getsitepackages()[[-1]])'`
++    AC_SUBST([pythondir], [$pc_cv_python_site_dir])
++    AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE_NAME])
++])
+ 
+ AC_CHECK_PROGS([READLINK], [greadlink readlink])
+ 
+@@ -62,12 +56,11 @@ AC_ARG_WITH(ext-scripts,
+ case "$with_ext_scripts" in
+     yes)
+         AC_MSG_CHECKING([for Python requirement for ext-scripts])
+-        if test "x$PYTHON" = x ; then
++        AS_IF([test "x$PYTHON" = x], [
+            AC_MSG_FAILURE([not found])
+-        else
++        ], [
+            AC_MSG_RESULT([found; $PYTHON])
+-        fi
+-
++        ])
+         EXT_SCRIPTS=yes
+         ;;
+     *)
diff --git a/srcpkgs/aircrack-ng/patches/sqlite3.patch b/srcpkgs/aircrack-ng/patches/sqlite3.patch
new file mode 100644
index 000000000000..ff59c4287bd9
--- /dev/null
+++ b/srcpkgs/aircrack-ng/patches/sqlite3.patch
@@ -0,0 +1,25 @@
+diff --git a/build/m4/ax_lib_sqlite3.m4 b/build/m4/ax_lib_sqlite3.m4
+index 5d5c3a8d..fcb1f3c1 100644
+--- a/build/m4/ax_lib_sqlite3.m4
++++ b/build/m4/ax_lib_sqlite3.m4
+@@ -88,7 +88,7 @@ AC_DEFUN([AX_LIB_SQLITE3],
+             ac_sqlite3_cppflags="-I$ac_sqlite3_path/include"
+             AC_MSG_RESULT([explicitly set; $ac_sqlite3_path])
+         else
+-            for ac_sqlite3_path_tmp in /usr /usr/local /opt ; do
++            for ac_sqlite3_path_tmp in /usr /usr/local /opt $lt_sysroot ; do
+                 if test -f "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header" \
+                     && test -r "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header"; then
+                     ac_sqlite3_path=$ac_sqlite3_path_tmp
+@@ -159,9 +159,9 @@ AC_DEFUN([AX_LIB_SQLITE3],
+             dnl Retrieve SQLite release version
+             if test "x$ac_sqlite3_header_path" != "x"; then
+                 ac_sqlite3_version=`cat $ac_sqlite3_header_path \
+-                    | grep '#define.*SQLITE_VERSION.*\"' | sed -e 's/.* "//' \
++                    | grep '#define.*SQLITE_VERSION.*\"' | tail -n 1 | sed -e 's/.* "//' \
+                         | sed -e 's/"//'`
+-                if test $ac_sqlite3_version != ""; then
++                if test "$ac_sqlite3_version" != ""; then
+                     SQLITE3_VERSION=$ac_sqlite3_version
+                 else
+                     AC_MSG_WARN([Cannot find SQLITE_VERSION macro in sqlite3.h header to retrieve SQLite version!])
diff --git a/srcpkgs/aircrack-ng/template b/srcpkgs/aircrack-ng/template
index ef5d46cebac1..10e1677483d6 100644
--- a/srcpkgs/aircrack-ng/template
+++ b/srcpkgs/aircrack-ng/template
@@ -1,30 +1,31 @@
 # Template file for 'aircrack-ng'
 pkgname=aircrack-ng
-version=1.6
-revision=4
+version=1.7
+revision=1
 build_style=gnu-configure
-hostmakedepends="automake libtool pkg-config"
-makedepends="libnl3-devel openssl-devel sqlite-devel zlib-devel libcap-devel"
+hostmakedepends="automake ethtool libtool pkg-config python3"
+makedepends="libhwloc-devel libnl3-devel libpcap-devel libpciaccess-devel
+ libxml2-devel  openssl-devel pcre-devel python3-devel sqlite-devel zlib-devel"
+checkdepends="cmocka-devel expect"
 short_desc="Complete suite of tools to assess WiFi network security"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Joseph Benden <joe@benden.us>"
 license="GPL-2.0-or-later, BSD-3-Clause, OpenSSL"
 homepage="https://www.aircrack-ng.org/"
 changelog="https://www.aircrack-ng.org/doku.php?id=changelog"
 distfiles="https://download.aircrack-ng.org/${pkgname}-${version}.tar.gz"
-checksum=4f0bfd486efc6ea7229f7fbc54340ff8b2094a0d73e9f617e0a39f878999a247
-
-CFLAGS="-fcommon"
+checksum=05a704e3c8f7792a17315080a21214a4448fd2452c1b0dd5226a3a55f90b58c3
+configure_args+="--without-opt --with-experimental --with-ext-scripts"
 
 pre_configure() {
-	ACLOCAL=/usr/bin/aclocal \
-	AUTOCONF=/usr/bin/autoconf \
-	AUTOHEADER=/usr/bin/autoheader \
-	AUTOMAKE=/usr/bin/automake \
-	LIBTOOLIZE=/usr/bin/libtoolize \
-	NOCONFIGURE=1 \
-		./autogen.sh
+	autoreconf -vif
 }
 
 post_install() {
+	vdoc AUTHORS
+	vdoc ChangeLog
+	vdoc README
+	vdoc README.md
+	vdoc SECURITY.md
+	vlicense LICENSE
 	vlicense LICENSE.OpenSSL
 }

From d7cd35444e5a62cff2cff3948ce78b65720514c4 Mon Sep 17 00:00:00 2001
From: a dinosaur <nick@a-dinosaur.com>
Date: Sat, 9 Jul 2022 20:12:19 +1000
Subject: [PATCH 35/85] libopenmpt: update to 0.6.4

---
 srcpkgs/libopenmpt/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/libopenmpt/template b/srcpkgs/libopenmpt/template
index be4cef907d94..f285cabc1c41 100644
--- a/srcpkgs/libopenmpt/template
+++ b/srcpkgs/libopenmpt/template
@@ -1,6 +1,6 @@
 # Template file for 'libopenmpt'
 pkgname=libopenmpt
-version=0.6.1
+version=0.6.4
 revision=1
 wrksrc="libopenmpt-${version}+release.autotools"
 build_style=gnu-configure
@@ -12,12 +12,12 @@ makedepends="zlib-devel libsndfile-devel
  $(vopt_if pulseaudio pulseaudio-devel) $(vopt_if sdl2 SDL2-devel)
  $(vopt_if portaudio portaudio-cpp-devel)"
 short_desc="Cross-platform C & C++ library to decode tracked music files (modules)"
-maintainer="a dinosaur <nick@a-dinosaur.com>"
+maintainer="a dinosaur <dino@a-dinosaur.com>"
 license="BSD-3-Clause"
 homepage="https://lib.openmpt.org/libopenmpt/"
 changelog="https://lib.openmpt.org/doc/changelog.html"
 distfiles="https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz"
-checksum=c0bada4bebfc707961111bdb5ff6bbe337f5d71e837e8278f2e362a909eb925b
+checksum=e09fb845c3292700a7ac13c3b31d669ecd3bdbebcbfe1328eba2376cebe40162
 
 post_install() {
 	vlicense LICENSE

From 918c40d5c12ac203987d38369e3ba844a8322de7 Mon Sep 17 00:00:00 2001
From: "Andrew J. Hesford" <ajh@sideband.org>
Date: Mon, 11 Jul 2022 09:25:38 -0400
Subject: [PATCH 36/85] rpi-eeprom: update to 2022.05.20.

---
 srcpkgs/rpi-eeprom/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/rpi-eeprom/template b/srcpkgs/rpi-eeprom/template
index 838d81485b88..c5a5e845d2cb 100644
--- a/srcpkgs/rpi-eeprom/template
+++ b/srcpkgs/rpi-eeprom/template
@@ -1,29 +1,29 @@
 # Template file for 'rpi-eeprom'
 pkgname=rpi-eeprom
-version=2021.06.17
-revision=2
-_githash="cecc46f6878ff03ab87c1cdd3c17ca0b446546d2"
+version=2022.05.20
+revision=1
+_githash="1c758a0904630da2ea905118bdf34fe2d8a6bb5e"
 archs="armv7* aarch64*"
 wrksrc="${pkgname}-${_githash}"
-conf_files="/etc/default/rpi-eeprom-update-default"
+conf_files="/etc/default/rpi-eeprom-update"
 depends="binutils pciutils python3 rpi-firmware rpi-userland"
 short_desc="Bootloader and VL805 USB controller EEPROM update tool for RPi4"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause, custom:Proprietary"
 homepage="https://github.com/raspberrypi/rpi-eeprom/"
 distfiles="https://github.com/raspberrypi/rpi-eeprom/archive/${_githash}.tar.gz"
-checksum=668227625344c9dfa615eb9ec77c26f7126615fb4c054cfd4caaf25385475de9
+checksum=ab4e20ef187f1583265c0face1d7d1597df2dc5d0fef697b459794924542388a
 python_version=3
 repository=nonfree
 
 do_install() {
 	vbin rpi-eeprom-config
 	vbin rpi-eeprom-update
-	vinstall rpi-eeprom-update-default 644 etc/default
+	vbin rpi-eeprom-digest
+	vinstall rpi-eeprom-update-default 644 etc/default rpi-eeprom-update
 
 	vmkdir usr/lib/firmware/raspberrypi/bootloader
 	vcopy firmware/* usr/lib/firmware/raspberrypi/bootloader/
-	rm -rf ${DESTDIR}/usr/lib/firmware/raspberrypi/bootloader/firmware/old
 
 	vlicense LICENSE
 }

From 8e688c6a41ab6b63c9dd13e6d3627f57e3d24c28 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Mon, 11 Jul 2022 20:09:27 +0200
Subject: [PATCH 37/85] python3-alembic: update to 1.8.0.

---
 srcpkgs/python3-alembic/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/python3-alembic/template b/srcpkgs/python3-alembic/template
index 1697853ce603..d86e686e6fc6 100644
--- a/srcpkgs/python3-alembic/template
+++ b/srcpkgs/python3-alembic/template
@@ -1,6 +1,6 @@
 # Template file for 'python3-alembic'
 pkgname=python3-alembic
-version=1.7.5
+version=1.8.0
 revision=1
 wrksrc="alembic-${version}"
 build_style=python3-module
@@ -12,7 +12,7 @@ license="MIT"
 homepage="https://github.com/sqlalchemy/alembic"
 changelog="https://raw.githubusercontent.com/sqlalchemy/alembic/master/docs/build/changelog.rst"
 distfiles="${PYPI_SITE}/a/alembic/alembic-${version}.tar.gz"
-checksum=7c328694a2e68f03ee971e63c3bd885846470373a5b532cf2c9f1601c413b153
+checksum=a2d4d90da70b30e70352cd9455e35873a255a31402a438fe24815758d7a0e5e1
 make_check=no # tests require deprecated pytest behavior that throws errors
 
 post_install() {

From 0bec50f216eaa2117eab16ac5a1e660734ec0519 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Mon, 11 Jul 2022 20:09:28 +0200
Subject: [PATCH 38/85] python3-filelock: update to 3.7.1.

---
 srcpkgs/python3-filelock/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/python3-filelock/template b/srcpkgs/python3-filelock/template
index ff639a0f1366..6612043f2eeb 100644
--- a/srcpkgs/python3-filelock/template
+++ b/srcpkgs/python3-filelock/template
@@ -1,6 +1,6 @@
 # Template file for 'python3-filelock'
 pkgname=python3-filelock
-version=3.7.0
+version=3.7.1
 revision=1
 wrksrc="filelock-${version}"
 build_style=python3-module
@@ -12,4 +12,4 @@ license="Unlicense"
 homepage="https://py-filelock.readthedocs.io/en/latest/"
 changelog="https://raw.githubusercontent.com/tox-dev/py-filelock/main/docs/changelog.rst"
 distfiles="${PYPI_SITE}/f/filelock/filelock-${version}.tar.gz"
-checksum=b795f1b42a61bbf8ec7113c341dad679d772567b936fbd1bf43c9a238e673e20
+checksum=3a0fd85166ad9dbab54c9aec96737b744106dc5f15c0b09a6744a445299fcf04

From d31293a87b276172155dcac4cf0714c79d8f8ca1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Mon, 11 Jul 2022 20:09:30 +0200
Subject: [PATCH 39/85] python3-jsondiff: update to 2.0.0.

---
 srcpkgs/python3-jsondiff/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/python3-jsondiff/template b/srcpkgs/python3-jsondiff/template
index bf26ba630960..461a8be63e02 100644
--- a/srcpkgs/python3-jsondiff/template
+++ b/srcpkgs/python3-jsondiff/template
@@ -1,7 +1,7 @@
 # Template file for 'python3-jsondiff'
 pkgname=python3-jsondiff
-version=1.3.0
-revision=2
+version=2.0.0
+revision=1
 wrksrc="jsondiff-${version}"
 build_style=python3-module
 hostmakedepends="python3-setuptools"
@@ -12,7 +12,7 @@ maintainer="Piotr Wójcik <chocimier@tlen.pl>"
 license="MIT"
 homepage="https://github.com/ZoomerAnalytics/jsondiff"
 distfiles="${PYPI_SITE}/j/jsondiff/jsondiff-${version}.tar.gz"
-checksum=5122bf4708a031b02db029366184a87c5d0ddd5a327a5884ee6cf0193e599d71
+checksum=2795844ef075ec8a2b8d385c4d59f5ea48b08e7180fce3cb2787be0db00b1fb4
 
 post_install() {
 	vlicense LICENSE

From 23c6105e74a12d6ad0b29fe8207cb97efb09f778 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Mon, 11 Jul 2022 20:09:31 +0200
Subject: [PATCH 40/85] tox: update to 3.25.1.

---
 srcpkgs/tox/template | 4 ++--
 srcpkgs/tox/update   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/tox/template b/srcpkgs/tox/template
index 21e40e52d16a..931d17654619 100644
--- a/srcpkgs/tox/template
+++ b/srcpkgs/tox/template
@@ -1,6 +1,6 @@
 # Template file for 'tox'
 pkgname=tox
-version=3.24.5
+version=3.25.1
 revision=1
 build_style=python3-module
 hostmakedepends="python3-setuptools_scm"
@@ -14,7 +14,7 @@ license="MIT"
 homepage="https://tox.readthedocs.io/en/latest/"
 changelog="https://tox.readthedocs.io/en/latest/changelog.html"
 distfiles="${PYPI_SITE}/t/tox/tox-${version}.tar.gz"
-checksum=67e0e32c90e278251fea45b696d0fef3879089ccbe979b0c556d35d5a70e2993
+checksum=c138327815f53bc6da4fe56baec5f25f00622ae69ef3fe4e1e385720e22486f9
 
 do_check() {
 	# Skipped tests fail to find module or rely on missing entrypoint script
diff --git a/srcpkgs/tox/update b/srcpkgs/tox/update
index 2c857beffb29..e957dc43055f 100644
--- a/srcpkgs/tox/update
+++ b/srcpkgs/tox/update
@@ -1 +1 @@
-ignore="*a*"
+ignore="*a* *b*"

From 3dc19e8c285c66265415fab2e323e11deed63c4e Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 11 Jul 2022 19:21:44 +0300
Subject: [PATCH 41/85] execline: update to 2.9.0.1.

---
 srcpkgs/execline/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/execline/template b/srcpkgs/execline/template
index 5f98c27ecbe1..2df4249d34cc 100644
--- a/srcpkgs/execline/template
+++ b/srcpkgs/execline/template
@@ -1,6 +1,6 @@
 # Template file for 'execline'
 pkgname=execline
-version=2.9.0.0
+version=2.9.0.1
 revision=1
 build_style=configure
 configure_args="--libdir=/usr/lib --bindir=/usr/bin
@@ -14,7 +14,7 @@ license="ISC"
 homepage="https://skarnet.org/software/execline/"
 changelog="https://skarnet.org/software/execline/upgrade.html"
 distfiles="https://skarnet.org/software/${pkgname}/${pkgname}-${version}.tar.gz"
-checksum=d4906aad8c3671265cfdad1aef265228bda07e09abd7208b4f093ac76f615041
+checksum=01260fcaf80ffbca2a94aa55ea474dfb9e39b3033b55c8af88126791879531f6
 
 CFLAGS="-fPIC"
 

From 0b45265a55586cc6edbad455d8f57f767d4a6f82 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Mon, 11 Jul 2022 19:17:26 +0300
Subject: [PATCH 42/85] mousepad: update to 0.5.10.

---
 srcpkgs/mousepad/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/mousepad/template b/srcpkgs/mousepad/template
index a471702954e6..39c0f10c460d 100644
--- a/srcpkgs/mousepad/template
+++ b/srcpkgs/mousepad/template
@@ -1,6 +1,6 @@
 # Template file for 'mousepad'
 pkgname=mousepad
-version=0.5.9
+version=0.5.10
 revision=1
 build_style=gnu-configure
 configure_args="--with-locales-dir=/usr/share/locale"
@@ -13,4 +13,4 @@ license="GPL-2.0-or-later"
 homepage="https://xfce.org/"
 changelog="https://gitlab.xfce.org/apps/mousepad/-/raw/master/NEWS"
 distfiles="https://archive.xfce.org/src/apps/${pkgname}/${version%.*}/${pkgname}-${version}.tar.bz2"
-checksum=f108a8c167ec5727266ab67666f10dbd60e972d56ea03944302fdabb2167f473
+checksum=6ebaf38d52bee5560d9650c52a693f8a6ed0a67d88cc938d73f7d5ce13552bad

From 964496280e1692df2c1970239702b2f84c9b3c78 Mon Sep 17 00:00:00 2001
From: mobinmob <mobinmob@disroot.org>
Date: Thu, 30 Jun 2022 20:38:21 +0300
Subject: [PATCH 43/85] xonsh: update to 0.13.0.

Also:
- add python3-wheel to hostmakedepends.
---
 srcpkgs/xonsh/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/xonsh/template b/srcpkgs/xonsh/template
index 69caa602e442..c4d324cd8706 100644
--- a/srcpkgs/xonsh/template
+++ b/srcpkgs/xonsh/template
@@ -1,9 +1,9 @@
 # Template file for 'xonsh'
 pkgname=xonsh
-version=0.11.0
+version=0.13.0
 revision=1
 build_style=python3-module
-hostmakedepends="python3-setuptools"
+hostmakedepends="python3-setuptools python3-wheel"
 checkdepends="python3-pytest python3-prompt_toolkit python3-Pygments"
 short_desc="Python-powered, cross-platform, Unix-gazing shell"
 maintainer="SolitudeSF <solitudesf@protonmail.com>"
@@ -11,7 +11,7 @@ license="GPL-3.0-or-later"
 homepage="https://xon.sh/"
 changelog="https://raw.githubusercontent.com/xonsh/xonsh/master/CHANGELOG.rst"
 distfiles="https://github.com/xonsh/xonsh/archive/${version}.tar.gz"
-checksum=9d73273276996297920c234c7d4267a305c695f0e9e2454dbdf0655c3a8f75cb
+checksum=8440abd1515e47b707624dfb8da08e230ebc7854edd3edcfca0d775018e0ad8d
 register_shell="/bin/xonsh"
 # FIXME: fails with multiple AttributeErrors
 make_check=extended

From 901bf327af5bf556c13c65fa56d3f4196bc614a8 Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Mon, 11 Jul 2022 23:56:21 +0530
Subject: [PATCH 44/85] xclipboard: update to 1.1.4

---
 srcpkgs/xclipboard/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/xclipboard/template b/srcpkgs/xclipboard/template
index 69208b796231..96f1b35bd878 100644
--- a/srcpkgs/xclipboard/template
+++ b/srcpkgs/xclipboard/template
@@ -1,16 +1,16 @@
-# Template build file for 'xclipboard'.
+# Template file for 'xclipboard'
 pkgname=xclipboard
-version=1.1.3
-revision=3
+version=1.1.4
+revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config"
 makedepends="libXaw-devel"
 short_desc="X clipboard client"
-homepage="http://xorg.freedesktop.org"
-license="MIT"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
-distfiles="${XORG_SITE}/app/$pkgname-$version.tar.bz2"
-checksum=9c0e0a1f4f1d49f73c6cf3ccd27b5ca0e18afc63679f1a1ee466b1d82446ebb5
+license="MIT"
+homepage="http://xorg.freedesktop.org"
+distfiles="${XORG_SITE}/app/$pkgname-$version.tar.xz"
+checksum=f43d4560d1464e8ff58e850212f6bdb703989b66d599fb61f351b5f9e077f253
 
 post_install() {
 	vlicense COPYING

From dbdb748203434bd50e25e42354e553ce10a3106a Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Tue, 12 Jul 2022 00:08:47 +0530
Subject: [PATCH 45/85] xconsole: update to 1.0.8

---
 srcpkgs/xconsole/template | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/srcpkgs/xconsole/template b/srcpkgs/xconsole/template
index e65cb878d70f..5aaa3671b6fd 100644
--- a/srcpkgs/xconsole/template
+++ b/srcpkgs/xconsole/template
@@ -1,16 +1,16 @@
-# Template build file for 'xconsole'.
+# Template file for 'xconsole'
 pkgname=xconsole
-version=1.0.7
-revision=2
+version=1.0.8
+revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config"
 makedepends="libXaw-devel"
 short_desc="Monitor system console messages with X"
-homepage="http://xorg.freedesktop.org"
-license="MIT"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
-distfiles="${XORG_SITE}/app/${pkgname}-${version}.tar.bz2"
-checksum=d1144882df207378381bc83927906559defbf7b83a01d52c50ad44234c5851e0
+license="MIT"
+homepage="http://xorg.freedesktop.org"
+distfiles="${XORG_SITE}/app/${pkgname}-${version}.tar.xz"
+checksum=7b4a6af068e40e2e6a4521d6f35c9253ec152c287d025fff9cc4c99f2586bba4
 
 post_install() {
 	vlicense COPYING

From a100c0d29957ed07181cd493c49e24f793b8862e Mon Sep 17 00:00:00 2001
From: Leah Neukirchen <leah@vuxu.org>
Date: Mon, 11 Jul 2022 15:14:26 +0200
Subject: [PATCH 46/85] weechat: update to 3.6.

---
 srcpkgs/weechat/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/weechat/template b/srcpkgs/weechat/template
index ebd25fa21547..092615031a9e 100644
--- a/srcpkgs/weechat/template
+++ b/srcpkgs/weechat/template
@@ -1,6 +1,6 @@
 # Template file for 'weechat'
 pkgname=weechat
-version=3.5
+version=3.6
 revision=1
 build_style=cmake
 configure_args="-DENABLE_MAN=ON -DENABLE_PERL=ON
@@ -17,7 +17,7 @@ license="GPL-3.0-or-later"
 homepage="https://www.weechat.org"
 changelog="https://raw.githubusercontent.com/weechat/weechat/master/ChangeLog.adoc"
 distfiles="https://www.weechat.org/files/src/weechat-${version}.tar.xz"
-checksum=ea904e4cec8edd0bd24f3ea17f6d6dff97ca00ee0571ee972e79e54c8c08170c
+checksum=9d85d71b3b7d04c03bd35ab6501afa8b5b3c609dce7691709ec740fecc31f2de
 lib32disabled=yes
 
 subpackages="weechat-aspell weechat-devel weechat-ruby weechat-python weechat-tcl weechat-lua weechat-perl"

From 49535ebb1f82fdf2211ea4e1263a90d963a9ec5a Mon Sep 17 00:00:00 2001
From: Leah Neukirchen <leah@vuxu.org>
Date: Mon, 11 Jul 2022 21:24:24 +0200
Subject: [PATCH 47/85] xscope: update to 1.4.3.

---
 srcpkgs/xscope/template | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xscope/template b/srcpkgs/xscope/template
index fa4ee8e01601..62f3c85a0848 100644
--- a/srcpkgs/xscope/template
+++ b/srcpkgs/xscope/template
@@ -1,16 +1,16 @@
-# Template build file for 'xscope'.
+# Template file for 'xscope'
 pkgname=xscope
-version=1.4.2
+version=1.4.3
 revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config"
 makedepends="libXt-devel"
 short_desc="X Window Protocol Viewer"
-homepage="http://xorg.freedesktop.org"
-license="MIT"
 maintainer="Leah Neukirchen <leah@vuxu.org>"
+license="MIT"
+homepage="http://xorg.freedesktop.org"
 distfiles="${XORG_SITE}/app/$pkgname-$version.tar.xz"
-checksum=507c107ce6969430b9d57441283a4278aecab656bf9d343a7a1ab56ec5ac4764
+checksum=50604759481ac9f747d75b3fd1ad1bab846656d5aa2b3cee5d0e4cb814273985
 
 post_install() {
 	vlicense COPYING

From ca8c456121132fe5f66cb7a26f9baf26fbb9dc2f Mon Sep 17 00:00:00 2001
From: Andrew Benson <abenson+void@gmail.com>
Date: Thu, 30 Jun 2022 16:30:57 -0500
Subject: [PATCH 48/85] nvidia: update to 515.57.

---
 srcpkgs/nvidia/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/nvidia/template b/srcpkgs/nvidia/template
index 9842061efe14..46036bc80874 100644
--- a/srcpkgs/nvidia/template
+++ b/srcpkgs/nvidia/template
@@ -3,7 +3,7 @@
 _desc="NVIDIA drivers for linux"
 
 pkgname=nvidia
-version=515.48.07
+version=515.57
 revision=1
 maintainer="Andrew Benson <abenson+void@gmail.com>"
 license="custom:NVIDIA Proprietary"
@@ -19,7 +19,7 @@ conflicts="xserver-abi-video>25_1 nvidia470>=0 nvidia390>=0"
 
 _pkg="NVIDIA-Linux-x86_64-${version}"
 distfiles="http://uk.download.nvidia.com/XFree86/Linux-x86_64/${version}/${_pkg}.run"
-checksum=e28764cc5b13c32e76370513daeafc05c289b77ee0511552450f1a00e31ae1e3
+checksum=841d69fe1426883647112bb070fe2f29a1f849c64ac80a8d61c70970d8d3d522
 # subpackages need to be processed in this specific order
 subpackages="nvidia-gtklibs nvidia-dkms nvidia-opencl nvidia-libs nvidia-libs-32bit"
 depends="nvidia-libs-${version}_${revision}

From 4b5c662918b271b05fe34449903716b16982cb78 Mon Sep 17 00:00:00 2001
From: Andrew Benson <abenson+void@gmail.com>
Date: Mon, 11 Jul 2022 14:31:40 -0500
Subject: [PATCH 49/85] stellarium: update to 0.22.2.

---
 srcpkgs/stellarium/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/stellarium/template b/srcpkgs/stellarium/template
index 657b3a6e97b1..7c3fdff8033a 100644
--- a/srcpkgs/stellarium/template
+++ b/srcpkgs/stellarium/template
@@ -1,6 +1,6 @@
 # Template file for 'stellarium'
 pkgname=stellarium
-version=0.22.1
+version=0.22.2
 revision=1
 build_style=cmake
 hostmakedepends="perl qt5-qmake qt5-host-tools"
@@ -12,5 +12,5 @@ maintainer="Andrew Benson <abenson+void@gmail.com>"
 license="GPL-2.0-or-later"
 homepage="https://stellarium.org/"
 distfiles="https://github.com/Stellarium/stellarium/releases/download/v${version}/stellarium-${version}.tar.gz"
-checksum=61a595ecc345dcc7517359573d0dc772e67ecaf6d52fefab142a77c92cf3fa24
+checksum=31e965d32cafc0fbad212c7ef4efbeac988f909206013554e1fe35123ebb9376
 replaces="stellarium-data>=0"

From d3c3ea352a1000fcc24d823aeb388584bf2002ee Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Sun, 10 Jul 2022 20:17:37 +0200
Subject: [PATCH 50/85] libinput: split libinput-debug-gui to avoid a cycle

gst-plugins-bad1 -> zbar -> qt5 -> libinput -> gtk4 -> gst-plugins-bad1
---
 srcpkgs/libinput-debug-gui          |  1 -
 srcpkgs/libinput-debug-gui/template | 29 +++++++++++++++++++++++++++++
 srcpkgs/libinput/template           | 15 +++------------
 3 files changed, 32 insertions(+), 13 deletions(-)
 delete mode 120000 srcpkgs/libinput-debug-gui
 create mode 100644 srcpkgs/libinput-debug-gui/template

diff --git a/srcpkgs/libinput-debug-gui b/srcpkgs/libinput-debug-gui
deleted file mode 120000
index b8bfebd1511c..000000000000
--- a/srcpkgs/libinput-debug-gui
+++ /dev/null
@@ -1 +0,0 @@
-libinput
\ No newline at end of file
diff --git a/srcpkgs/libinput-debug-gui/template b/srcpkgs/libinput-debug-gui/template
new file mode 100644
index 000000000000..0ad4ccca9a56
--- /dev/null
+++ b/srcpkgs/libinput-debug-gui/template
@@ -0,0 +1,29 @@
+# Template file for 'libinput-debug-gui'
+# keep in sync with libinput
+# split to avoid cycle: gst-plugins-bad1 -> zbar -> qt5 -> libinput -> gtk4 -> gst-plugins-bad1
+pkgname=libinput-debug-gui
+version=1.21.0
+revision=1
+wrksrc="libinput-${version}"
+build_style=meson
+configure_args="-Db_ndebug=false -Dtests=false -Ddebug-gui=true"
+hostmakedepends="pkg-config wayland-devel"
+makedepends="libevdev-devel libwacom-devel mtdev-devel eudev-libudev-devel
+ gtk4-devel"
+short_desc="Provides handling input devices in Wayland compositors and X"
+maintainer="Michal Vasilek <michal@vasilek.cz>"
+license="MIT"
+homepage="https://www.freedesktop.org/wiki/Software/libinput"
+distfiles="https://gitlab.freedesktop.org/libinput/libinput/-/archive/${version}/libinput-${version}.tar.gz"
+checksum=1b23c180f5b297303ed36f5a549910f5d320b0eb21052eac67a966d4eaa4e01d
+
+post_install() {
+	mv ${DESTDIR}/usr/libexec/libinput/libinput-debug-gui ${DESTDIR}/libinput-debug-gui
+	mv ${DESTDIR}/usr/share/man/man1/libinput-debug-gui.1 ${DESTDIR}/libinput-debug-gui.1
+	rm -r ${DESTDIR}/usr
+	vmkdir usr/libexec/libinput
+	mv ${DESTDIR}/libinput-debug-gui ${DESTDIR}/usr/libexec/libinput/libinput-debug-gui
+	vmkdir usr/share/man/man1
+	mv ${DESTDIR}/libinput-debug-gui.1 ${DESTDIR}/usr/share/man/man1/libinput-debug-gui.1
+	vlicense COPYING
+}
diff --git a/srcpkgs/libinput/template b/srcpkgs/libinput/template
index 55f6847caa57..df6b4a4198b5 100644
--- a/srcpkgs/libinput/template
+++ b/srcpkgs/libinput/template
@@ -3,10 +3,9 @@ pkgname=libinput
 version=1.21.0
 revision=1
 build_style=meson
-configure_args="-Db_ndebug=false"
-hostmakedepends="pkg-config wayland-devel"
-makedepends="libevdev-devel libwacom-devel mtdev-devel eudev-libudev-devel
- gtk4-devel"
+configure_args="-Db_ndebug=false -Ddebug-gui=false"
+hostmakedepends="pkg-config"
+makedepends="libevdev-devel libwacom-devel mtdev-devel eudev-libudev-devel"
 checkdepends="valgrind check-devel"
 short_desc="Provides handling input devices in Wayland compositors and X"
 maintainer="Michal Vasilek <michal@vasilek.cz>"
@@ -34,11 +33,3 @@ libinput-devel_package() {
 		vmove usr/lib/pkgconfig
 	}
 }
-
-libinput-debug-gui_package() {
-	short_desc+=" - debug GUI"
-	pkg_install() {
-		vmove usr/libexec/libinput/libinput-debug-gui
-		vmove usr/share/man/man1/libinput-debug-gui.1
-	}
-}

From 8b137894e6f484a7538e91a8bfaf94febebd7f1a Mon Sep 17 00:00:00 2001
From: Michal Vasilek <michal@vasilek.cz>
Date: Sun, 10 Jul 2022 20:16:53 +0200
Subject: [PATCH 51/85] gtk4: enable tracker support

this makes search in the filechooser dialog use tracker, so it can
discover files faster and recursively
---
 srcpkgs/gtk4/template | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/gtk4/template b/srcpkgs/gtk4/template
index a0c39ac378ed..842af8f4c1c9 100644
--- a/srcpkgs/gtk4/template
+++ b/srcpkgs/gtk4/template
@@ -1,7 +1,7 @@
 # Template file for 'gtk4'
 pkgname=gtk4
 version=4.6.6
-revision=1
+revision=2
 wrksrc="gtk-${version}"
 build_style=meson
 build_helper="gir"
@@ -12,7 +12,8 @@ configure_args="-Dman-pages=true -Dbuild-tests=false -Dgtk_doc=true
  -Dintrospection=$(vopt_if gir enabled disabled)
  -Dcolord=$(vopt_if colord enabled disabled)
  -Dcloudproviders=$(vopt_if cloudproviders enabled disabled)
- -Dvulkan=$(vopt_if vulkan enabled disabled)"
+ -Dvulkan=$(vopt_if vulkan enabled disabled)
+ -Dtracker=$(vopt_if tracker enabled disabled)"
 hostmakedepends="gettext-devel glib-devel gi-docgen perl
  pkg-config sassc gettext libxslt docbook-xsl python3-docutils
  $(vopt_if wayland 'wayland-devel wayland-protocols')"
@@ -21,7 +22,8 @@ makedepends="at-spi2-atk-devel gdk-pixbuf-devel libepoxy-devel pango-devel
  $(vopt_if colord 'colord-devel') $(vopt_if cups 'cups-devel')
  $(vopt_if wayland 'libxkbcommon-devel wayland-devel wayland-protocols MesaLib-devel')
  $(vopt_if x11 'libXcursor-devel libXdamage-devel libXext-devel libXinerama-devel libXi-devel libXrandr-devel libXcomposite-devel')
- $(vopt_if cloudproviders 'libcloudproviders-devel') $(vopt_if vulkan 'vulkan-loader Vulkan-Headers')"
+ $(vopt_if cloudproviders 'libcloudproviders-devel') $(vopt_if vulkan 'vulkan-loader Vulkan-Headers')
+ $(vopt_if tracker 'tracker-devel')"
 depends="gtk-update-icon-cache shared-mime-info $(vopt_if x11 'dbus-x11')"
 short_desc="GIMP ToolKit (v4)"
 maintainer="Enno Boland <gottox@voidlinux.org>"
@@ -32,11 +34,11 @@ distfiles="${GNOME_SITE}/gtk/${version%.*}/gtk-${version}.tar.xz"
 checksum=7bbfe4d13569f7c297ed49834ac7263e318b7bf102d3271cb466d5971f59ae70
 
 # Package build options
-build_options="broadway cloudproviders colord cups gir vulkan wayland x11"
+build_options="broadway cloudproviders colord cups gir vulkan wayland x11 tracker"
 desc_option_broadway="Enable support for the HTML5 Broadway backend"
 desc_option_cloudproviders="Enable integration with cloudproviders, such as Nextcloud"
 
-build_options_default="broadway cloudproviders colord cups gir vulkan wayland x11"
+build_options_default="broadway cloudproviders colord cups gir vulkan wayland x11 tracker"
 
 pre_build() {
 	# help gi-docgen find gi files on cross

From dc61d0258b8b046fbd34d9b8de39d8d810e0723d Mon Sep 17 00:00:00 2001
From: Joel Beckmeyer <joel@beckmeyer.us>
Date: Sun, 10 Jul 2022 22:11:38 -0400
Subject: [PATCH 52/85] dendrite: update to 0.8.9.

---
 srcpkgs/dendrite/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/dendrite/template b/srcpkgs/dendrite/template
index 06e4061c9736..ce0e77935494 100644
--- a/srcpkgs/dendrite/template
+++ b/srcpkgs/dendrite/template
@@ -1,6 +1,6 @@
 # Template file for 'dendrite'
 pkgname=dendrite
-version=0.8.8
+version=0.8.9
 revision=1
 build_style=go
 go_import_path="github.com/matrix-org/dendrite"
@@ -12,7 +12,7 @@ license="Apache-2.0"
 homepage="https://matrix.org/docs/projects/server/dendrite"
 changelog="https://raw.githubusercontent.com/matrix-org/dendrite/main/CHANGES.md"
 distfiles="https://github.com/matrix-org/dendrite/archive/v${version}.tar.gz"
-checksum=1fdd8a3d2844cf38b7bb8ed761f3d66de83902ab502f137d1f4572e884a8fa46
+checksum=f0d43ad9269ee8290e1c55e7add4e02d8048dc2aa9c83d4f190eed6f8b21e34d
 
 system_accounts="_dendrite"
 _dendrite_homedir="/var/lib/dendrite"

From 6b2765debd1c9a994337d3bed91af839a93a39e4 Mon Sep 17 00:00:00 2001
From: Ishaan Bhimwal <ishaanbhimwal@protonmail.com>
Date: Tue, 12 Jul 2022 00:17:24 +0530
Subject: [PATCH 53/85] xmodmap: update to 1.0.11 and adopt

---
 srcpkgs/xmodmap/template | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/srcpkgs/xmodmap/template b/srcpkgs/xmodmap/template
index 2f8678807d6e..00dae1878d52 100644
--- a/srcpkgs/xmodmap/template
+++ b/srcpkgs/xmodmap/template
@@ -1,16 +1,16 @@
 # Template file for 'xmodmap'
 pkgname=xmodmap
-version=1.0.10
-revision=2
+version=1.0.11
+revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config"
 makedepends="libX11-devel"
 short_desc="X modmap program to modify keymaps and pointer button mappings"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Ishaan Bhimwal <ishaanbhimwal@protonmail.com>"
 license="MIT"
 homepage="http://xorg.freedesktop.org"
-distfiles="${XORG_SITE}/app/${pkgname}-${version}.tar.bz2"
-checksum=473f0941d7439d501bb895ff358832b936ec34c749b9704c37a15e11c318487c
+distfiles="${XORG_SITE}/app/${pkgname}-${version}.tar.xz"
+checksum=9a2f8168f7b0bc382828847403902cb6bf175e17658b36189eac87edda877e81
 
 post_install() {
 	vlicense COPYING

From 545ead8dc5a940df0b2cdfd0d197c3c6d77a6369 Mon Sep 17 00:00:00 2001
From: Leah Neukirchen <leah@vuxu.org>
Date: Tue, 12 Jul 2022 14:28:51 +0200
Subject: [PATCH 54/85] ndisc6: update to 1.0.6.

---
 srcpkgs/ndisc6/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/ndisc6/template b/srcpkgs/ndisc6/template
index 05742ef53f27..964fa1857a1f 100644
--- a/srcpkgs/ndisc6/template
+++ b/srcpkgs/ndisc6/template
@@ -1,6 +1,6 @@
 # Template file for 'ndisc6'
 pkgname=ndisc6
-version=1.0.5
+version=1.0.6
 revision=1
 build_style=gnu-configure
 configure_args="--disable-suid-install"
@@ -11,7 +11,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="GPL-2.0-only,GPL-3.0-only"
 homepage="http://www.remlab.net/ndisc6/"
 distfiles="http://www.remlab.net/files/ndisc6/${pkgname}-${version}.tar.bz2"
-checksum=3d058910680517f2d402b36aa37a54c9a53962c32178ff825ef64dd26a1bdbb8
+checksum=a713210e9be1f15cfa0809f4c2728b00cd5f25881d7585126986982055453cfb
 
 post_extract() {
 	sed -i '/undef _GNU_SOURCE/d' src/trace-*.c

From 43108ee3be59cd15ba19a84edaadf6d137c8ebbf Mon Sep 17 00:00:00 2001
From: Leah Neukirchen <leah@vuxu.org>
Date: Tue, 12 Jul 2022 14:31:34 +0200
Subject: [PATCH 55/85] unbound: update to 1.16.1.

---
 srcpkgs/unbound/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/unbound/template b/srcpkgs/unbound/template
index c1bfc1ba86a1..7c96300be53b 100644
--- a/srcpkgs/unbound/template
+++ b/srcpkgs/unbound/template
@@ -1,6 +1,6 @@
 # Template file for 'unbound'
 pkgname=unbound
-version=1.16.0
+version=1.16.1
 revision=1
 build_style=gnu-configure
 configure_args="--with-libevent --with-conf-file=/etc/unbound/unbound.conf
@@ -16,7 +16,7 @@ maintainer="Leah Neukirchen <leah@vuxu.org>"
 license="BSD-3-Clause"
 homepage="https://nlnetlabs.nl/projects/unbound/about/"
 distfiles="https://nlnetlabs.nl/downloads/unbound/${pkgname}-${version}.tar.gz"
-checksum=6701534c938eb019626601191edc6d012fc534c09d2418d5b92827db0cbe48a5
+checksum=2fe4762abccd564a0738d5d502f57ead273e681e92d50d7fba32d11103174e9a
 system_accounts="_unbound"
 
 post_install() {

From 3cd20b4ba830859b3a33c83067cd1cf6ac6795f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Tue, 12 Jul 2022 13:31:47 +0200
Subject: [PATCH 56/85] gnupg: adopt, update to 2.3.7.

---
 srcpkgs/gnupg/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/gnupg/template b/srcpkgs/gnupg/template
index 77767cf0a22a..f16d68e0c541 100644
--- a/srcpkgs/gnupg/template
+++ b/srcpkgs/gnupg/template
@@ -1,6 +1,6 @@
 # Template file for 'gnupg'
 pkgname=gnupg
-version=2.2.35
+version=2.3.7
 revision=1
 build_style=gnu-configure
 configure_args="$(vopt_enable ldap)
@@ -14,11 +14,11 @@ makedepends="bzip2-devel gnutls-devel libassuan-devel libcurl-devel
  libgcrypt-devel"
 depends="pinentry"
 short_desc="GNU Privacy Guard (2.x)"
-maintainer="Orphaned <orphan@voidlinux.org>"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
 license="GPL-3.0-or-later"
 homepage="https://www.gnupg.org/"
 distfiles="https://gnupg.org/ftp/gcrypt/gnupg/gnupg-${version}.tar.bz2"
-checksum=340bc255938971e6e729b3d9956fa2ef4db8215d77693bf300df2bb302498690
+checksum=ee163a5fb9ec99ffc1b18e65faef8d086800c5713d15a672ab57d3799da83669
 build_options="ldap"
 build_options_default="ldap"
 

From 49a6f4233e7f7588dbaa58d170666bc894875ae0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:27:56 +0200
Subject: [PATCH 57/85] New package: perl-Data-Perl-0.002011

---
 srcpkgs/perl-Data-Perl/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-Data-Perl/template

diff --git a/srcpkgs/perl-Data-Perl/template b/srcpkgs/perl-Data-Perl/template
new file mode 100644
index 000000000000..1b213d2e29b5
--- /dev/null
+++ b/srcpkgs/perl-Data-Perl/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-Data-Perl'
+pkgname=perl-Data-Perl
+version=0.002011
+revision=1
+wrksrc="${pkgname/perl-/}-$version"
+build_style=perl-module
+hostmakedepends="perl perl-strictures perl-List-MoreUtils perl-Class-Method-Modifiers perl-Role-Tiny perl-Module-Runtime"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+checkdepends="perl-Test-Deep perl-Test-Output perl-Test-Fatal"
+short_desc="Base classes wrapping fundamental Perl data types"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/Data-Perl"
+distfiles="${CPAN_SITE}/Data/${pkgname/perl-/}-${version}.tar.gz"
+checksum=8d34dbe314cfa2d99bd9aae546bbde94c38bb05b74b07c89bde1673a6f6c55f4

From 0432092cb4b7ce55093c73d8249bc3c6cd6e6892 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:28:16 +0200
Subject: [PATCH 58/85] New package: perl-Type-Tiny-1.014000

---
 srcpkgs/perl-Type-Tiny/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/perl-Type-Tiny/template

diff --git a/srcpkgs/perl-Type-Tiny/template b/srcpkgs/perl-Type-Tiny/template
new file mode 100644
index 000000000000..8e63f9491a10
--- /dev/null
+++ b/srcpkgs/perl-Type-Tiny/template
@@ -0,0 +1,15 @@
+# Template file for 'perl-Type-Tiny'
+pkgname=perl-Type-Tiny
+version=1.014000
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl perl-Exporter-Tiny"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+short_desc="Perl module for type constraints"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/Type-Tiny"
+distfiles="https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/${pkgname/perl-/}-${version}.tar.gz"
+checksum=ae3b784c7b86386f81f0a5a475c02e7b1f1b3e357ceb07d9f5c62761378b3086

From fa506e1cf7cf0f09ed8b7d5873723c991774668f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Tue, 12 Jul 2022 15:02:29 +0200
Subject: [PATCH 59/85] New package: perl-Role-Hooks-0.008

---
 srcpkgs/perl-Role-Hooks/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-Role-Hooks/template

diff --git a/srcpkgs/perl-Role-Hooks/template b/srcpkgs/perl-Role-Hooks/template
new file mode 100644
index 000000000000..753eff1fa78e
--- /dev/null
+++ b/srcpkgs/perl-Role-Hooks/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-Role-Hooks'
+pkgname=perl-Role-Hooks
+version=0.008
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl perl-Class-Method-Modifiers"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+checkdepends="perl-Test-Requires"
+short_desc="Perl module for role callbacks"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="GPL-3.0-or-later"
+homepage="https://metacpan.org/pod/Role::Hooks"
+distfiles="${CPAN_SITE}/Devel/TOBYINK/${pkgname/perl-/}-${version}.tar.gz"
+checksum=28d66ea0a8dc306b76da83ff0879493d808f73185bcf9c4ed372f3946fb543ec

From 9b799e07538b76a0596a76aeee68c1d99efa9145 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:28:50 +0200
Subject: [PATCH 60/85] New package: perl-Sub-HandlesVia-0.031

---
 srcpkgs/perl-Sub-HandlesVia/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-Sub-HandlesVia/template

diff --git a/srcpkgs/perl-Sub-HandlesVia/template b/srcpkgs/perl-Sub-HandlesVia/template
new file mode 100644
index 000000000000..616d5bba4c97
--- /dev/null
+++ b/srcpkgs/perl-Sub-HandlesVia/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-Sub-HandlesVia'
+pkgname=perl-Sub-HandlesVia
+version=0.031
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl perl-Type-Tiny perl-Exporter-Tiny perl-Class-Tiny perl-Class-Method-Modifiers"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+checkdepends="perl-Test-Requires perl-Test-Fatal perl-Moo perl-Role-Hooks"
+short_desc="Sub::HandlesVia - alternative handles_via implementation"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/Sub-HandlesVia"
+distfiles="${CPAN_SITE}/Sub/${pkgname/perl-/}-${version}.tar.gz"
+checksum=53824b58ba392e0ba04d39f119f6f03132f9fb22aa7c0460f29378e287d0f689

From 108a03e6e9a48bef5c2a7582f66135a0868e23aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:29:06 +0200
Subject: [PATCH 61/85] New package: perl-MooX-late-0.100

---
 srcpkgs/perl-MooX-late/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-MooX-late/template

diff --git a/srcpkgs/perl-MooX-late/template b/srcpkgs/perl-MooX-late/template
new file mode 100644
index 000000000000..c4729bee6085
--- /dev/null
+++ b/srcpkgs/perl-MooX-late/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-MooX-late'
+pkgname=perl-MooX-late
+version=0.100
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl"
+makedepends="${hostmakedepends} perl-Moo perl-Sub-HandlesVia perl-Type-Tiny"
+depends="${makedepends}"
+checkdepends="perl-Test-Fatal perl-Test-Requires"
+short_desc="Easily translate Moose code to Moo"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/MooX-late"
+distfiles="${CPAN_SITE}/MooX/${pkgname/perl-/}-${version}.tar.gz"
+checksum=2ae5b1e3da5abc0e4006278ecbcfa8fa7c224ea5529a6a688acbb229c09e6a5f

From 749bb7a0e7c5df94a7fca9e2d0c8ed2e0d424eae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Tue, 12 Jul 2022 15:05:58 +0200
Subject: [PATCH 62/85] New package: perl-MooX-HandlesVia-0.001009

---
 srcpkgs/perl-MooX-HandlesVia/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-MooX-HandlesVia/template

diff --git a/srcpkgs/perl-MooX-HandlesVia/template b/srcpkgs/perl-MooX-HandlesVia/template
new file mode 100644
index 000000000000..a622d1f841be
--- /dev/null
+++ b/srcpkgs/perl-MooX-HandlesVia/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-MooX-HandlesVia'
+pkgname=perl-MooX-HandlesVia
+version=0.001009
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl"
+makedepends="${hostmakedepends} perl-Module-Runtime perl-Data-Perl perl-Moo perl-Class-Method-Modifiers perl-Role-Tiny perl-MooX-Types-MooseLike"
+depends="${makedepends}"
+checkdepends="perl-Test-Fatal perl-Test-Exception"
+short_desc="NativeTrait-like behavior for Moo"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/MooX-HandlesVia"
+distfiles="${CPAN_SITE}/MooX/${pkgname/perl-/}-${version}.tar.gz"
+checksum=716353e38894ecb7e8e4c17bc95483db5f59002b03541b54a72c27f2a8f36c12

From d49b06066fbca3115a30dce5536f175064b7c6a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:29:45 +0200
Subject: [PATCH 63/85] New package: perl-GnuPG-Interface-1.02

---
 .../patches/0001-disables-version-check.patch | 90 +++++++++++++++++++
 .../0002-Hardcode-path-to-usr-bin-gpg.patch   | 38 ++++++++
 srcpkgs/perl-GnuPG-Interface/template         | 15 ++++
 3 files changed, 143 insertions(+)
 create mode 100644 srcpkgs/perl-GnuPG-Interface/patches/0001-disables-version-check.patch
 create mode 100644 srcpkgs/perl-GnuPG-Interface/patches/0002-Hardcode-path-to-usr-bin-gpg.patch
 create mode 100644 srcpkgs/perl-GnuPG-Interface/template

diff --git a/srcpkgs/perl-GnuPG-Interface/patches/0001-disables-version-check.patch b/srcpkgs/perl-GnuPG-Interface/patches/0001-disables-version-check.patch
new file mode 100644
index 000000000000..2807cf114e69
--- /dev/null
+++ b/srcpkgs/perl-GnuPG-Interface/patches/0001-disables-version-check.patch
@@ -0,0 +1,90 @@
+From fe898b9211fd0a6d273c438c21755e39b9b221b3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
+ <jan.christian@gruenhage.xyz>
+Date: Wed, 15 Jun 2022 13:05:40 +0200
+Subject: [PATCH 1/2] disables version check
+
+Void ships GnuPG in a new enough version anyway, so this check is not
+necessary. The reason to disable the check is that it's broken rn:
+
+```
+error determining fileno for STDIN: Illegal seek at (eval 270) line 55.
+Use of uninitialized value $line in pattern match (m//) at /usr/share/perl5/vendor_perl/GnuPG/Interface.pm line 827.
+Use of uninitialized value $a in split at /usr/share/perl5/vendor_perl/GnuPG/Interface.pm line 841.
+Use of uninitialized value $a in split at /usr/share/perl5/vendor_perl/GnuPG/Interface.pm line 841.
+GnuPG Version 1.4 or 2.2+ required at (eval 270) line 55.
+```
+---
+ lib/GnuPG/Interface.pm | 18 ++----------------
+ t/version_updates.t    | 30 ------------------------------
+ 2 files changed, 2 insertions(+), 46 deletions(-)
+ delete mode 100644 t/version_updates.t
+
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 905ae30..7fd2321 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -818,22 +818,8 @@ sub search_keys( $% ) {
+ }
+ 
+ sub _version {
+-    my ( $self ) = @_;
+-
+-    my $out = IO::Handle->new;
+-    my $handles = GnuPG::Handles->new( stdout => $out );
+-    my $pid = $self->wrap_call( commands => [ '--no-options', '--version' ], handles => $handles );
+-    my $line = $out->getline;
+-    $line =~ /(\d+\.\d+\.\d+)/;
+-
+-    my $version = $1;
+-    unless ($self->cmp_version($version, '2.2') >= 0 or
+-        ($self->cmp_version($version, '1.4') >= 0 and $self->cmp_version($version, '1.5') < 0 )) {
+-        croak "GnuPG Version 1.4 or 2.2+ required";
+-    }
+-    waitpid $pid, 0;
+-
+-    return $version;
++    # version detection is broken, hardcoding that we're on 2.2+
++    return '2.3.7';
+ }
+ 
+ sub cmp_version($$) {
+diff --git a/t/version_updates.t b/t/version_updates.t
+deleted file mode 100644
+index 758ee7b..0000000
+--- a/t/version_updates.t
++++ /dev/null
+@@ -1,30 +0,0 @@
+-#!/usr/bin/perl -w
+-
+-use strict;
+-
+-use lib './t';
+-use MyTest;
+-use MyTestSpecific;
+-
+-TEST
+-{
+-    my $gpg = GnuPG::Interface->new(call => './test/fake-gpg-v1');
+-    return ($gpg->version() eq '1.4.23');
+-};
+-
+-
+-TEST
+-{
+-    my $gpg = GnuPG::Interface->new(call => './test/fake-gpg-v2');
+-    return ($gpg->version() eq '2.2.12');
+-};
+-
+-TEST
+-{
+-    my $gpg = GnuPG::Interface->new(call => './test/fake-gpg-v1');
+-    my $v1 = $gpg->version();
+-    $gpg->call('./test/fake-gpg-v2');
+-    my $v2 = $gpg->version();
+-
+-    return ($v1 eq '1.4.23' && $v2 eq '2.2.12');
+-}
+-- 
+2.36.1
+
diff --git a/srcpkgs/perl-GnuPG-Interface/patches/0002-Hardcode-path-to-usr-bin-gpg.patch b/srcpkgs/perl-GnuPG-Interface/patches/0002-Hardcode-path-to-usr-bin-gpg.patch
new file mode 100644
index 000000000000..6052103f5468
--- /dev/null
+++ b/srcpkgs/perl-GnuPG-Interface/patches/0002-Hardcode-path-to-usr-bin-gpg.patch
@@ -0,0 +1,38 @@
+From 4185798921211925d38e9ea2cd0f28f3eb32ddca Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
+ <jan.christian@gruenhage.xyz>
+Date: Wed, 15 Jun 2022 13:10:01 +0200
+Subject: [PATCH 2/2] Hardcode path to /usr/bin/gpg
+
+---
+ lib/GnuPG/Interface.pm | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/lib/GnuPG/Interface.pm b/lib/GnuPG/Interface.pm
+index 7fd2321..ed2f49e 100644
+--- a/lib/GnuPG/Interface.pm
++++ b/lib/GnuPG/Interface.pm
+@@ -76,7 +76,7 @@ sub gnupg_call { shift->call(@_); }
+ 
+ sub BUILD {
+     my ( $self, $args ) = @_;
+-    $self->hash_init( call => 'gpg', %$args );
++    $self->hash_init( call => '/usr/bin/gpg', %$args );
+ }
+ 
+ struct(
+@@ -1183,9 +1183,8 @@ keys to list in a key-listing.
+ 
+ =item call
+ 
+-This defines the call made to invoke GnuPG.  Defaults to 'gpg'; this
+-should be changed if 'gpg' is not in your path, or there is a different
+-name for the binary on your system.
++This defines the call made to invoke GnuPG.  Defaults to '/usr/bin/gpg'; this
++should be changed if there is a different name for the binary on your system.
+ 
+ =item passphrase
+ 
+-- 
+2.36.1
+
diff --git a/srcpkgs/perl-GnuPG-Interface/template b/srcpkgs/perl-GnuPG-Interface/template
new file mode 100644
index 000000000000..20756374d957
--- /dev/null
+++ b/srcpkgs/perl-GnuPG-Interface/template
@@ -0,0 +1,15 @@
+# Template file for 'perl-GnuPG-Interface'
+pkgname=perl-GnuPG-Interface
+version=1.02
+revision=1
+wrksrc="${pkgname/perl-/}-$version"
+build_style=perl-module
+hostmakedepends="perl which gnupg"
+makedepends="${hostmakedepends} perl-Moo perl-MooX-HandlesVia perl-MooX-late"
+depends="${makedepends}"
+short_desc="Perl interface GnuPG"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/GnuPG-Interface"
+distfiles="${CPAN_SITE}/GnuPG/${pkgname/perl-/}-${version}.tar.gz"
+checksum=c27a48c3d48e1a9205e362eeea66d46b032bd84637991fdf0b13828bcafdd3e6

From 728e2bdb13170cc45321b87d2c71a2110536da6a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:30:02 +0200
Subject: [PATCH 64/85] New package: perl-Net-IDN-Encode-2.500

---
 srcpkgs/perl-Net-IDN-Encode/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-Net-IDN-Encode/template

diff --git a/srcpkgs/perl-Net-IDN-Encode/template b/srcpkgs/perl-Net-IDN-Encode/template
new file mode 100644
index 000000000000..a4022ba73d26
--- /dev/null
+++ b/srcpkgs/perl-Net-IDN-Encode/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-Net-IDN-Encode'
+pkgname=perl-Net-IDN-Encode
+version=2.500
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+checkdepends="perl-Test-NoWarnings"
+short_desc="Internationalizing Domain Names in Applications (IDNA) for Perl"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/Net-IDN-Encode"
+distfiles="${CPAN_SITE}/Net/${pkgname/perl-/}-${version}.tar.gz"
+checksum=55453633e3ff24ce325b34bc2c8157b9859962a31ab5cf28bf7ccc1c9b3a3eaa

From cb2edf5c5a155a5184e8eab1fe1be679af98651d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:30:19 +0200
Subject: [PATCH 65/85] New package: perl-Class-MethodMaker-2.24

---
 srcpkgs/perl-Class-MethodMaker/template | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
 create mode 100644 srcpkgs/perl-Class-MethodMaker/template

diff --git a/srcpkgs/perl-Class-MethodMaker/template b/srcpkgs/perl-Class-MethodMaker/template
new file mode 100644
index 000000000000..71d9e06d8ba9
--- /dev/null
+++ b/srcpkgs/perl-Class-MethodMaker/template
@@ -0,0 +1,15 @@
+# Template file for 'perl-Class-MethodMaker'
+pkgname=perl-Class-MethodMaker
+version=2.24
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl"
+makedepends="${hostmakedepends}"
+depends="${makedepends}"
+short_desc="Easy building of Perl Classes"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/Class-MethodMaker"
+distfiles="${CPAN_SITE}/Class/${pkgname/perl-/}-${version}.tar.gz"
+checksum=5eef58ccb27ebd01bcde5b14bcc553b5347a0699e5c3e921c7780c3526890328

From 183ff0d9c9152e24d36bf003fbdc0dfb77378d50 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:30:32 +0200
Subject: [PATCH 66/85] New package: perl-MooX-Types-MooseLike-0.29

---
 srcpkgs/perl-MooX-Types-MooseLike/template | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
 create mode 100644 srcpkgs/perl-MooX-Types-MooseLike/template

diff --git a/srcpkgs/perl-MooX-Types-MooseLike/template b/srcpkgs/perl-MooX-Types-MooseLike/template
new file mode 100644
index 000000000000..dc6441ed9142
--- /dev/null
+++ b/srcpkgs/perl-MooX-Types-MooseLike/template
@@ -0,0 +1,16 @@
+# Template file for 'perl-MooX-Types-MooseLike'
+pkgname=perl-MooX-Types-MooseLike
+version=0.29
+revision=1
+wrksrc="${pkgname/perl-/}-${version}"
+build_style=perl-module
+hostmakedepends="perl"
+makedepends="${hostmakedepends} perl-Module-Runtime perl-Moo"
+depends="${makedepends}"
+checkdepends="perl-Test-Fatal perl-Test-Exception"
+short_desc="Moosish types and a type builder"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Artistic-1.0-Perl, GPL-1.0-or-later"
+homepage="https://metacpan.org/release/MooX-Types-MooseLike"
+distfiles="${CPAN_SITE}/MooX/${pkgname/perl-/}-${version}.tar.gz"
+checksum=1d3780aa9bea430afbe65aa8c76e718f1045ce788aadda4116f59d3b7a7ad2b4

From 8187a5b484594160245bfd3ec4a8bb97046575b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:30:43 +0200
Subject: [PATCH 67/85] New package: qprint-1.1

---
 srcpkgs/qprint/template | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
 create mode 100644 srcpkgs/qprint/template

diff --git a/srcpkgs/qprint/template b/srcpkgs/qprint/template
new file mode 100644
index 000000000000..a09afbc36cba
--- /dev/null
+++ b/srcpkgs/qprint/template
@@ -0,0 +1,20 @@
+# Template file for 'qprint'
+pkgname=qprint
+version=1.1
+revision=1
+build_style=gnu-configure
+short_desc="Encode and decode Quoted-Printable files"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="Public Domain"
+homepage="https://www.fourmilab.ch/webtools/qprint/"
+distfiles="https://www.fourmilab.ch/webtools/qprint/qprint-${version}.tar.gz"
+checksum=ffa9ca1d51c871fb3b56a4bf0165418348cf080f01ff7e59cd04511b9665019c
+
+pre_install() {
+	mkdir -p "${DESTDIR}/usr/bin"
+	mkdir -p "${DESTDIR}/usr/share/man/man1"
+}
+
+post_install() {
+	vlicense COPYING
+}

From 85d121fd31937a71a96f3049b515d570c7cd11ea Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jan=20Christian=20Gr=C3=BCnhage?=
 <jan.christian@gruenhage.xyz>
Date: Thu, 17 Jun 2021 11:30:47 +0200
Subject: [PATCH 68/85] New package: signing-party-2.11

---
 srcpkgs/signing-party/patches/makefiles.patch | 232 ++++++++++++++++++
 srcpkgs/signing-party/template                |  27 ++
 2 files changed, 259 insertions(+)
 create mode 100644 srcpkgs/signing-party/patches/makefiles.patch
 create mode 100644 srcpkgs/signing-party/template

diff --git a/srcpkgs/signing-party/patches/makefiles.patch b/srcpkgs/signing-party/patches/makefiles.patch
new file mode 100644
index 000000000000..fa8d9d2e82d2
--- /dev/null
+++ b/srcpkgs/signing-party/patches/makefiles.patch
@@ -0,0 +1,232 @@
+commit 2ef002d78cbdeae8867a6aac63da451f0bb017c9
+Author: Jan Christian Grünhage <jan.christian@gruenhage.xyz>
+Date:   Fri Jun 18 17:57:01 2021 +0200
+
+    make `make install` install stuff actually
+    
+    So far, installing was done outside of the Makefiles, which means that
+    the installing has to be duplicated per distro. This can be seen in the
+    files in the `debian` folder and in
+    https://github.com/archlinux/svntogit-community/blob/276cd50659b33f4b0ee2cc2b3d22b07665ff7a07/trunk/PKGBUILD#L48-L84.
+    To avoid things like these while I was packaging this for Void Linux, I
+    added or changed Makefiles for the individual projects. This way, I only
+    need this patch in Void instead of workarounds like Arch has.
+
+diff --git a/caff/Makefile b/caff/Makefile
+index 714aa8f..e9bf872 100644
+--- a/caff/Makefile
++++ b/caff/Makefile
+@@ -6,6 +6,9 @@ all: $(MAN)
+ 	pod2man $< > $@
+ 
+ install:
++	install -Dm755 {caff,pgp-clean,pgp-fixkey} -t $(DESTDIR)/usr/bin/
++	install -Dm644 {caff,pgp-clean,pgp-fixkey}.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 {caffrc.sample,README*} -t $(DESTDIR)/usr/share/doc/signing-party/caff/
+ 
+ clean:
+ 	rm -f $(MAN)
+diff --git a/gpg-key2latex/Makefile b/gpg-key2latex/Makefile
+index c2d35d8..33ac35b 100644
+--- a/gpg-key2latex/Makefile
++++ b/gpg-key2latex/Makefile
+@@ -6,6 +6,8 @@ all: $(MAN)
+ 	pod2man $< > $@
+ 
+ install:
++	install -Dm755 gpg-key2latex -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpg-key2latex.1 -t ${DESTDIR}/usr/share/man/man1/
+ 
+ clean:
+ 	rm -f $(MAN)
+diff --git a/gpg-key2ps/Makefile b/gpg-key2ps/Makefile
+index 5f483c5..9e66cce 100644
+--- a/gpg-key2ps/Makefile
++++ b/gpg-key2ps/Makefile
+@@ -4,6 +4,9 @@ gpg-key2ps.1: gpg-key2ps
+ 	pod2man $< > $@
+ 
+ install:
++	install -Dm755 gpg-key2ps -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpg-key2ps.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 README -t $(DESTDIR)/usr/share/doc/signing-party/gpg-key2ps/
+ 
+ clean:
+ 	rm -f gpg-key2ps.1
+diff --git a/gpg-mailkeys/Makefile b/gpg-mailkeys/Makefile
+new file mode 100644
+index 0000000..bf94df8
+--- /dev/null
++++ b/gpg-mailkeys/Makefile
+@@ -0,0 +1,9 @@
++
++all:
++
++install:
++	install -Dm755 gpg-mailkeys -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpg-mailkeys.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 {example.gpg-mailkeysrc,README} -t $(DESTDIR)/usr/share/doc/signing-party/gpg-mailkeys/
++
++clean:
+diff --git a/gpgdir/Makefile b/gpgdir/Makefile
+new file mode 100644
+index 0000000..22f4fc0
+--- /dev/null
++++ b/gpgdir/Makefile
+@@ -0,0 +1,8 @@
++all:
++
++install:
++	install -Dm755 gpgdir -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpgdir.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 {README,ChangeLog} -t $(DESTDIR)/usr/share/doc/signing-party/gpgdir/
++
++clean:
+diff --git a/gpglist/Makefile b/gpglist/Makefile
+index f4f8487..72679b9 100644
+--- a/gpglist/Makefile
++++ b/gpglist/Makefile
+@@ -6,6 +6,8 @@ all: $(MAN)
+ 	pod2man $< > $@
+ 
+ install:
++	install -Dm755 gpglist -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpglist.1 -t ${DESTDIR}/usr/share/man/man1/
+ 
+ clean:
+ 	rm -f $(MAN)
+diff --git a/gpgparticipants/Makefile b/gpgparticipants/Makefile
+new file mode 100644
+index 0000000..c308340
+--- /dev/null
++++ b/gpgparticipants/Makefile
+@@ -0,0 +1,7 @@
++all:
++
++install:
++	install -Dm755 gpg{participants,participants-filter,participants-prefill} -t $(DESTDIR)/usr/bin/
++	install -Dm644 gpg{participants,participants-filter,participants-prefill}.1 -t ${DESTDIR}/usr/share/man/man1/
++
++clean:
+diff --git a/gpgsigs/Makefile b/gpgsigs/Makefile
+index 339ddb8..994983b 100644
+--- a/gpgsigs/Makefile
++++ b/gpgsigs/Makefile
+@@ -4,10 +4,9 @@ gpgsigs.1: gpgsigs
+ 	pod2man $< > $@
+ 
+ install:
+-	install -D gpgsigs $(DESTDIR)/usr/bin/gpgsigs
+-	install -d $(DESTDIR)/usr/share/doc/signing-party/examples/gpgsigs
+-	install -m644 gpgsigs-lt2k5*.txt \
+-		$(DESTDIR)/usr/share/doc/signing-party/examples/gpgsigs
++	install -Dm755 gpgsigs $(DESTDIR)/usr/bin/gpgsigs
++	install -Dm644 gpgsigs.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 gpgsigs-lt2k5*.txt -t $(DESTDIR)/usr/share/doc/signing-party/gpgsigs/examples
+ 
+ clean:
+ 	rm -f gpgsigs.1
+diff --git a/gpgwrap/Makefile b/gpgwrap/Makefile
+index 30064df..8355e91 100644
+--- a/gpgwrap/Makefile
++++ b/gpgwrap/Makefile
+@@ -1,9 +1,14 @@
+ MAKE=make
+ 
+-.PHONY: all clean
++.PHONY: all clean install
+ 
+ all:
+ 	cd src && ${MAKE} all DIET="${DIET}"
+ 
++install:
++	install -Dm755 bin/gpgwrap -t $(DESTDIR)/usr/bin/
++	install -Dm644 doc/gpgwrap.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 {README,NEWS} -t $(DESTDIR)/usr/share/doc/signing-party/gpgwrap
++
+ clean:
+ 	cd src && ${MAKE} clean
+diff --git a/keyanalyze/Makefile b/keyanalyze/Makefile
+index 3517b74..a9ce7b7 100644
+--- a/keyanalyze/Makefile
++++ b/keyanalyze/Makefile
+@@ -16,9 +16,8 @@ pgpring/pgpring: pgpring/config.status
+ 	$(MAKE) -C pgpring pgpring
+ 
+ install:
+-	install pgpring/pgpring $(DESTDIR)/usr/bin
+-	install keyanalyze $(DESTDIR)/usr/bin
+-	install process_keys $(DESTDIR)/usr/bin
++	install -Dm755 {pgpring/pgpring,keyanalyze,process_keys} $(DESTDIR)/usr/bin
++	install -Dm644 {pgpring/pgpring,keyanalyze,process_keys}.1 -t ${DESTDIR}/usr/share/man/man1/
+ 
+ clean:
+ 	[ ! -f pgpring/Makefile ] || $(MAKE) -C pgpring distclean
+diff --git a/keyart/Makefile b/keyart/Makefile
+new file mode 100644
+index 0000000..0efc12c
+--- /dev/null
++++ b/keyart/Makefile
+@@ -0,0 +1,8 @@
++all:
++
++install:
++	install -Dm755 keyart -t $(DESTDIR)/usr/bin/
++	install -Dm644 doc/keyart.1 -t ${DESTDIR}/usr/share/man/man1/
++	install -Dm644 {README,doc/druken-bishop.txt,doc/party-worksheet} -t $(DESTDIR)/usr/share/doc/signing-party/gpgdir/
++
++clean:
+diff --git a/keylookup/Makefile b/keylookup/Makefile
+index dacd4db..4b91390 100644
+--- a/keylookup/Makefile
++++ b/keylookup/Makefile
+@@ -1,9 +1,9 @@
+ all:
+ 
+ install:
+-	install -D keylookup $(DESTDIR)/usr/bin/keylookup
+-	install -D -m644 keylookup.1 $(DESTDIR)/usr/share/man/man1/keylookup.1
+-	install -D -m644 NEWS \
+-		$(DESTDIR)/usr/share/doc/signing-party/NEWS.keylookup
++	install -Dm755 keylookup -t $(DESTDIR)/usr/bin/
++	install -Dm644 keylookup.1 -t $(DESTDIR)/usr/share/man/man1/
++	install -Dm644 NEWS -t \
++		$(DESTDIR)/usr/share/doc/signing-party/keylookup/NEWS
+ 
+ clean:
+diff --git a/sig2dot/Makefile b/sig2dot/Makefile
+index 772207c..37d6665 100644
+--- a/sig2dot/Makefile
++++ b/sig2dot/Makefile
+@@ -1,9 +1,9 @@
+ all:
+ 
+ install:
+-	install -D sig2dot $(DESTDIR)/usr/bin/sig2dot
+-	install -D -m644 sig2dot.1 $(DESTDIR)/usr/share/man/man1/sig2dot.1
+-	install -D -m644 README.sig2dot \
+-		$(DESTDIR)/usr/share/doc/signing-party/README.sig2dot
++	install -Dm755 sig2dot -t $(DESTDIR)/usr/bin/
++	install -Dm644 sig2dot.1 -t $(DESTDIR)/usr/share/man/man1/
++	install -Dm644 README.sig2dot \
++		$(DESTDIR)/usr/share/doc/signing-party/sig2dot/README
+ 
+ clean:
+diff --git a/springgraph/Makefile b/springgraph/Makefile
+index 8f174b7..d3ee8ab 100644
+--- a/springgraph/Makefile
++++ b/springgraph/Makefile
+@@ -1,9 +1,9 @@
+ all:
+ 
+ install:
+-	install -D springgraph $(DESTDIR)/usr/bin/springgraph
+-	install -D -m644 springgraph.1 $(DESTDIR)/usr/share/man/man1/springgraph.1
+-	install -D -m644 README.springgraph \
+-		$(DESTDIR)/usr/share/doc/signing-party/README.springgraph
++	install -Dm755 springgraph -t $(DESTDIR)/usr/bin/
++	install -Dm644 springgraph.1 -t $(DESTDIR)/usr/share/man/man1/
++	install -Dm644 README.springgraph \
++		$(DESTDIR)/usr/share/doc/signing-party/springgraph/README
+ 
+ clean:
diff --git a/srcpkgs/signing-party/template b/srcpkgs/signing-party/template
new file mode 100644
index 000000000000..13fa5838e4a0
--- /dev/null
+++ b/srcpkgs/signing-party/template
@@ -0,0 +1,27 @@
+# Template file for 'signing-party'
+pkgname=signing-party
+version=2.11
+revision=1
+wrksrc="${pkgname}-v${version}"
+build_style=gnu-makefile
+hostmakedepends="perl autoconf automake"
+makedepends="libmd-devel"
+depends="perl-Class-MethodMaker perl-GnuPG-Interface perl-MailTools
+ perl-MIME-tools perl-Net-IDN-Encode perl-Term-ReadKey perl-Text-Template
+ qprint" # keyanalyze should be in here, but it's currently broken
+short_desc="OpenPGP tools for signing keys, keyring analysis, and party preparation"
+maintainer="Jan Christian Grünhage <jan.christian@gruenhage.xyz>"
+license="BSD-3-Clause, GPL-2.0-or-later, GPL-2.0-only, MIT, BSD-2-Clause, GPL-3.0-or-later"
+homepage="https://salsa.debian.org/signing-party-team/signing-party"
+distfiles="https://salsa.debian.org/${pkgname}-team/${pkgname}/-/archive/v${version}/${pkgname}-v${version}.tar.gz"
+checksum=e339cfea9af6f12bf09de8aa6c8972c168d2eb712cb72a8a7415e3f7ecb43cf2
+
+post_patch() {
+# keyanalyze has built separately for crosscompiling to work.
+# building keyanalyze is also broken right now, so it's not included so far
+	vsed -i Makefile -e 's/keyanalyze//'
+}
+
+post_install() {
+	vlicense debian/copyright
+}

From 8d4253801ddd99c3e2447e0bd35ea8ed9994f8bf Mon Sep 17 00:00:00 2001
From: Andrew Benson <abenson+void@gmail.com>
Date: Tue, 12 Jul 2022 14:14:19 -0500
Subject: [PATCH 69/85] jc: update to 1.20.2.

---
 srcpkgs/jc/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/jc/template b/srcpkgs/jc/template
index f47b5a00f270..a8cd52f09503 100644
--- a/srcpkgs/jc/template
+++ b/srcpkgs/jc/template
@@ -1,6 +1,6 @@
 # Template file for 'jc'
 pkgname=jc
-version=1.20.1
+version=1.20.2
 revision=1
 build_style=python3-module
 hostmakedepends="python3-setuptools"
@@ -11,4 +11,4 @@ maintainer="Andrew Benson <abenson+void@gmail.com>"
 license="MIT"
 homepage="https://github.com/kellyjonbrazil/jc"
 distfiles="${homepage}/archive/refs/tags/v${version}.tar.gz"
-checksum=e0426fc0c9f687fdf1600f7503c14f0926234d6bdf316a84af204e3d2cb999ae
+checksum=be7de5ab4b93c433ce9ff1012a79a8c9305ebe2e6b209f56d3428db296fac3c1

From bc87305f7eab8a501bd503b4d27a49da9c2dfcfd Mon Sep 17 00:00:00 2001
From: Andrew Benson <abenson+void@gmail.com>
Date: Tue, 12 Jul 2022 14:16:28 -0500
Subject: [PATCH 70/85] python3-rich: update to 12.5.1.

---
 srcpkgs/python3-rich/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/python3-rich/template b/srcpkgs/python3-rich/template
index 68730185f0bc..85c5abcc618f 100644
--- a/srcpkgs/python3-rich/template
+++ b/srcpkgs/python3-rich/template
@@ -1,6 +1,6 @@
 # Template file for 'python3-rich'
 pkgname=python3-rich
-version=12.4.4
+version=12.5.1
 revision=1
 wrksrc="rich-${version}"
 build_style=python3-module
@@ -13,7 +13,7 @@ maintainer="Andrew Benson <abenson+void@gmail.com>"
 license="MIT"
 homepage="https://github.com/willmcgugan/rich"
 distfiles="${PYPI_SITE}/r/rich/rich-${version}.tar.gz"
-checksum=4c586de507202505346f3e32d1363eb9ed6932f0c2f63184dea88983ff4971e2
+checksum=63a5c5ce3673d3d5fbbf23cd87e11ab84b6b451436f1b7f19ec54b6bc36ed7ca
 make_check=extended # some checks only work on windows
 
 post_install() {

From bc36ef33bbfcfb0cb667f805238cb49807c0e7ea Mon Sep 17 00:00:00 2001
From: Andrew Benson <abenson+void@gmail.com>
Date: Tue, 12 Jul 2022 14:18:54 -0500
Subject: [PATCH 71/85] xlockmore: update to 5.70.

---
 srcpkgs/xlockmore/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/xlockmore/template b/srcpkgs/xlockmore/template
index c520c4d7b4c6..e9439016cf16 100644
--- a/srcpkgs/xlockmore/template
+++ b/srcpkgs/xlockmore/template
@@ -1,6 +1,6 @@
 # Template file for 'xlockmore'
 pkgname=xlockmore
-version=5.69
+version=5.70
 revision=1
 build_style=gnu-configure
 configure_args="--with-xinerama $(vopt_if opengl '--with-opengl --with-mesa')"
@@ -13,7 +13,7 @@ license="MIT"
 homepage="http://sillycycle.com/xlockmore.html"
 changelog="http://sillycycle.com/xlock/xlockmore.README"
 distfiles="http://sillycycle.com/xlock/xlockmore-${version}.tar.xz"
-checksum=ea92654c001226848765a251a73bcbc473ccef17b721cc18d5361f59dbd6d3b9
+checksum=0f3bcb9b802416cd87bb6e163a3843fea5d7fad90ff04838da122c292c3d0da2
 CFLAGS="-D_DEFAULT_SOURCE"
 
 build_options="opengl"

From 22bf95cf356bf1a09212733d775d447d011f70b0 Mon Sep 17 00:00:00 2001
From: Alex Lohr <alexthkloss@web.de>
Date: Wed, 6 Jul 2022 08:56:23 +0200
Subject: [PATCH 72/85] slack-desktop: update to 4.27.156

Closes: #37996 [via git-merge-pr]
---
 srcpkgs/slack-desktop/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/slack-desktop/template b/srcpkgs/slack-desktop/template
index 6b30c8158717..b78a5abb3960 100644
--- a/srcpkgs/slack-desktop/template
+++ b/srcpkgs/slack-desktop/template
@@ -1,6 +1,6 @@
 # Template file for 'slack-desktop'
 pkgname=slack-desktop
-version=4.27.154
+version=4.27.156
 revision=1
 archs="x86_64"
 hostmakedepends="tar xz"
@@ -10,7 +10,7 @@ maintainer="Diogo Leal <diogo@diogoleal.com>"
 license="custom:Proprietary"
 homepage="https://slack.com/"
 distfiles="https://downloads.slack-edge.com/releases/linux/${version}/prod/x64/${pkgname}-${version}-amd64.deb"
-checksum=65c47c7312de88e6ecf3fcffcf494ca4c1ff2c41c472933a61b05d0713168b98
+checksum=ff1b43fbff8a1ad3ebe2f4099bc65ccefa723f17cc070d0e13b8734f31614acd
 restricted=yes
 repository="nonfree"
 nopie=yes

From 67acab04a8fc6f4f22d528156c2fa16e03b52a3a Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Tue, 12 Jul 2022 23:49:43 +0200
Subject: [PATCH 73/85] Rocket.Chat-Desktop: actually use electron19

---
 srcpkgs/Rocket.Chat-Desktop/files/Rocket.Chat-Desktop | 2 --
 srcpkgs/Rocket.Chat-Desktop/template                  | 8 ++++++--
 2 files changed, 6 insertions(+), 4 deletions(-)
 delete mode 100644 srcpkgs/Rocket.Chat-Desktop/files/Rocket.Chat-Desktop

diff --git a/srcpkgs/Rocket.Chat-Desktop/files/Rocket.Chat-Desktop b/srcpkgs/Rocket.Chat-Desktop/files/Rocket.Chat-Desktop
deleted file mode 100644
index 214b977b5989..000000000000
--- a/srcpkgs/Rocket.Chat-Desktop/files/Rocket.Chat-Desktop
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-exec electron13 /usr/lib/Rocket.Chat-Desktop.asar "$@"
diff --git a/srcpkgs/Rocket.Chat-Desktop/template b/srcpkgs/Rocket.Chat-Desktop/template
index 70e0bd7a7bc7..1390686f95c5 100644
--- a/srcpkgs/Rocket.Chat-Desktop/template
+++ b/srcpkgs/Rocket.Chat-Desktop/template
@@ -1,7 +1,7 @@
 # Template file for 'Rocket.Chat-Desktop'
 pkgname=Rocket.Chat-Desktop
 version=3.8.7
-revision=1
+revision=2
 _electron_ver=19
 wrksrc="Rocket.Chat.Electron-${version}"
 hostmakedepends="yarn nodejs python3 pkg-config app-builder"
@@ -39,7 +39,11 @@ do_build() {
 }
 do_install() {
 	vinstall "${FILESDIR}/Rocket.Chat-Desktop.desktop" 644 usr/share/applications
-	vbin "$FILESDIR/Rocket.Chat-Desktop"
+	cat > Rocket.Chat-Desktop <<-EOF
+	#!/bin/sh
+	exec electron${_electron_ver} /usr/lib/Rocket.Chat-Desktop.asar "\$@"
+	EOF
+	vbin Rocket.Chat-Desktop
 	vinstall build/icons/512x512.png 644 usr/share/icons/hicolor/512x512/apps Rocket.Chat-Desktop.png
 	vlicense LICENSE
 	vinstall "dist/linux-unpacked/resources/app.asar" 644 /usr/lib Rocket.Chat-Desktop.asar

From 21cf64ec33e9516a7f14ce7c1b2b538342f4fbfb Mon Sep 17 00:00:00 2001
From: John <me@johnnynator.dev>
Date: Tue, 12 Jul 2022 23:40:55 +0200
Subject: [PATCH 74/85] electron19: make sure to build as "official_build"

Otherwise a bunch of optimization isn't enabled and a few
debug things are enabled, which result in an overall more
(or in this case extremely) unstable electron

Thx to @q66 who pointed out that dchecks are enabled

closes #38005
---
 .../files/patches/chromium-sndio.patch        | 877 ------------------
 .../patches/electron-Build-fixes.patch.patch  |  21 -
 srcpkgs/electron19/template                   |  17 +-
 3 files changed, 13 insertions(+), 902 deletions(-)
 delete mode 100644 srcpkgs/electron19/files/patches/chromium-sndio.patch

diff --git a/srcpkgs/electron19/files/patches/chromium-sndio.patch b/srcpkgs/electron19/files/patches/chromium-sndio.patch
deleted file mode 100644
index bac8a63bc24f..000000000000
--- a/srcpkgs/electron19/files/patches/chromium-sndio.patch
+++ /dev/null
@@ -1,877 +0,0 @@
-diff -Naur chromium-83.0.4103.97.orig/media/BUILD.gn chromium-83.0.4103.97/media/BUILD.gn
---- a/media/BUILD.gn	2020-06-03 20:40:26.000000000 +0200
-+++ b/media/BUILD.gn	2020-06-13 17:32:28.510395975 +0200
-@@ -65,6 +65,9 @@
-       defines += [ "DLOPEN_PULSEAUDIO" ]
-     }
-   }
-+  if (use_sndio) {
-+    defines += [ "USE_SNDIO" ]
-+  }
-   if (use_cras) {
-     defines += [ "USE_CRAS" ]
-   }
-diff -Naur chromium-83.0.4103.97.orig/media/audio/BUILD.gn chromium-83.0.4103.97/media/audio/BUILD.gn
---- a/media/audio/BUILD.gn	2020-06-03 20:39:37.000000000 +0200
-+++ b/media/audio/BUILD.gn	2020-06-13 17:32:28.511395969 +0200
-@@ -236,6 +236,17 @@
-     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 -Naur chromium-83.0.4103.97.orig/media/audio/linux/audio_manager_linux.cc chromium-83.0.4103.97/media/audio/linux/audio_manager_linux.cc
---- a/media/audio/linux/audio_manager_linux.cc	2020-06-03 20:39:37.000000000 +0200
-+++ b/media/audio/linux/audio_manager_linux.cc	2020-06-13 18:09:43.623333167 +0200
-@@ -19,6 +19,11 @@
- #include "media/audio/pulse/audio_manager_pulse.h"
- #include "media/audio/pulse/pulse_util.h"
- #endif
-+#if defined(USE_SNDIO)
-+#include "media/audio/sndio/audio_manager_sndio.h"
-+#include "media/audio/sndio/sndio_input.h"
-+#include "media/audio/sndio/sndio_output.h"
-+#endif
- 
- namespace media {
- 
- std::unique_ptr<media::AudioManager> CreateAudioManager(
-@@ -39,6 +45,16 @@
-                                               audio_log_factory);
-   }
- 
-+#if defined(USE_SNDIO)
-+  struct sio_hdl *hdl = sio_open(SIO_DEVANY, SIO_PLAY, 0);
-+  if (hdl != NULL) {
-+    sio_close(hdl);
-+    UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kSndio, kAudioIOMax + 1);
-+    return std::make_unique<AudioManagerSndio>(std::move(audio_thread),
-+                                                  audio_log_factory);
-+  }
-+#endif
-+
- #if defined(USE_CRAS)
-   if (base::CommandLine::ForCurrentProcess()->HasSwitch(switches::kUseCras)) {
-     UMA_HISTOGRAM_ENUMERATION("Media.LinuxAudioIO", kCras, kAudioIOMax + 1);
-diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/audio_manager_sndio.cc chromium-83.0.4103.97/media/audio/sndio/audio_manager_sndio.cc
---- a/media/audio/sndio/audio_manager_sndio.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/audio_manager_sndio.cc	2020-06-13 17:32:28.511395969 +0200
-@@ -0,0 +1,148 @@
-+// 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 "media/audio/sndio/audio_manager_sndio.h"
-+
-+#include "base/metrics/histogram_macros.h"
-+#include "base/memory/ptr_util.h"
-+#include "media/audio/audio_device_description.h"
-+#include "media/audio/audio_output_dispatcher.h"
-+#include "media/audio/sndio/sndio_input.h"
-+#include "media/audio/sndio/sndio_output.h"
-+#include "media/base/limits.h"
-+#include "media/base/media_switches.h"
-+
-+namespace media {
-+
-+
-+// Maximum number of output streams that can be open simultaneously.
-+static const int kMaxOutputStreams = 4;
-+
-+// 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);
-+}
-+
-+const char* AudioManagerSndio::GetName() {
-+  return "SNDIO";
-+}
-+
-+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, CHANNEL_LAYOUT_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() {
-+  Shutdown();
-+}
-+
-+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;
-+
-+  ChannelLayout channel_layout = CHANNEL_LAYOUT_STEREO;
-+  int sample_rate = kDefaultSampleRate;
-+  int buffer_size = kDefaultOutputBufferSize;
-+  if (input_params.IsValid()) {
-+    sample_rate = input_params.sample_rate();
-+    channel_layout = input_params.channel_layout();
-+    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,
-+      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);
-+}
-+
-+}  // namespace media
-diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/audio_manager_sndio.h chromium-83.0.4103.97/media/audio/sndio/audio_manager_sndio.h
---- a/media/audio/sndio/audio_manager_sndio.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/audio_manager_sndio.h	2020-06-13 17:32:28.511395969 +0200
-@@ -0,0 +1,65 @@
-+// 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/macros.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() 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);
-+
-+  DISALLOW_COPY_AND_ASSIGN(AudioManagerSndio);
-+};
-+
-+}  // namespace media
-+
-+#endif  // MEDIA_AUDIO_SNDIO_AUDIO_MANAGER_SNDIO_H_
-diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_input.cc chromium-83.0.4103.97/media/audio/sndio/sndio_input.cc
---- a/media/audio/sndio/sndio_input.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/sndio_input.cc	2020-06-13 17:32:28.511395969 +0200
-@@ -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/bind.h"
-+#include "base/logging.h"
-+#include "base/macros.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();
-+}
-+
-+bool SndioAudioInputStream::Open() {
-+  struct sio_par par;
-+  int sig;
-+
-+  if (state != kClosed)
-+    return false;
-+
-+  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
-+      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
-+    LOG(WARNING) << "Unsupported audio format.";
-+    return false;
-+  }
-+
-+  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 false;
-+  }
-+
-+  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 true;
-+bad_close:
-+  sio_close(hdl);
-+  return false;
-+}
-+
-+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)
-+    return;
-+
-+  if (state == kRunning)
-+    Stop();
-+
-+  state = kClosed;
-+  delete [] buffer;
-+  sio_close(hdl);
-+
-+  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 -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_input.h chromium-83.0.4103.97/media/audio/sndio/sndio_input.h
---- a/media/audio/sndio/sndio_input.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/sndio_input.h	2020-06-13 17:32:28.511395969 +0200
-@@ -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/macros.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() override;
-+
-+  // Implementation of AudioInputStream.
-+  bool 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;
-+
-+  DISALLOW_COPY_AND_ASSIGN(SndioAudioInputStream);
-+};
-+
-+}  // namespace media
-+
-+#endif  // MEDIA_AUDIO_SNDIO_SNDIO_INPUT_H_
-diff -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_output.cc chromium-83.0.4103.97/media/audio/sndio/sndio_output.cc
---- a/media/audio/sndio/sndio_output.cc	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/sndio_output.cc	2020-06-13 17:32:28.511395969 +0200
-@@ -0,0 +1,183 @@
-+// 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() {
-+  struct sio_par par;
-+  int sig;
-+
-+  if (params.format() != AudioParameters::AUDIO_PCM_LINEAR &&
-+      params.format() != AudioParameters::AUDIO_PCM_LOW_LATENCY) {
-+    LOG(WARNING) << "Unsupported audio format.";
-+    return false;
-+  }
-+  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 false;
-+  }
-+  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.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.";
-+    goto bad_close;
-+  }
-+  state = kStopped;
-+  volpending = 0;
-+  vol = 0;
-+  buffer = new char[audio_bus->frames() * params.GetBytesPerFrame(kSampleFormat)];
-+  sio_onmove(hdl, &OnMoveCallback, this);
-+  sio_onvol(hdl, &OnVolCallback, this);
-+  return true;
-+ bad_close:
-+  sio_close(hdl);
-+  return false;
-+}
-+
-+void SndioAudioOutputStream::Close() {
-+  if (state == kClosed)
-+    return;
-+  if (state == kRunning)
-+    Stop();
-+  state = kClosed;
-+  delete [] buffer;
-+  sio_close(hdl);
-+  manager->ReleaseOutputStream(this);  // Calls the destructor
-+}
-+
-+void SndioAudioOutputStream::Start(AudioSourceCallback* callback) {
-+  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);
-+    state = kStopped;
-+  }
-+}
-+
-+void SndioAudioOutputStream::Stop() {
-+  if (state == kStopped)
-+    return;
-+  state = kStopWait;
-+  pthread_join(thread, NULL);
-+  sio_stop(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(), 0, 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 -Naur chromium-83.0.4103.97.orig/media/audio/sndio/sndio_output.h chromium-83.0.4103.97/media/audio/sndio/sndio_output.h
---- a/media/audio/sndio/sndio_output.h	1970-01-01 01:00:00.000000000 +0100
-+++ b/media/audio/sndio/sndio_output.h	2020-06-13 17:32:28.511395969 +0200
-@@ -0,0 +1,86 @@
-+// 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);
-+  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;
-+
-+  DISALLOW_COPY_AND_ASSIGN(SndioAudioOutputStream);
-+};
-+
-+}  // namespace media
-+
-+#endif  // MEDIA_AUDIO_SNDIO_SNDIO_OUTPUT_H_
-diff -Naur chromium-83.0.4103.97.orig/media/media_options.gni chromium-83.0.4103.97/media/media_options.gni
---- a/media/media_options.gni	2020-06-03 20:40:26.000000000 +0200
-+++ b/media/media_options.gni	2020-06-13 17:32:28.512395963 +0200
-@@ -119,6 +119,9 @@
-   # Enables runtime selection of ALSA library for audio.
-   use_alsa = false
- 
-+  # Enable runtime selection of sndio(7)
-+  use_sndio = false
-+
-   # Alsa should be used on non-Android, non-Mac POSIX systems.
-   # Alsa should be used on desktop Chromecast and audio-only Chromecast builds.
-   if (is_posix && !is_android && !is_mac &&
diff --git a/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch b/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
index f0036676458f..a98ee020d34a 100644
--- a/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
+++ b/srcpkgs/electron19/files/patches/electron-Build-fixes.patch.patch
@@ -1,24 +1,3 @@
-diff --git a/build/args/release.gn b/build/args/release.gn
-index e5017f6e1..59207b389 100644
---- a/build/args/release.gn
-+++ b/build/args/release.gn
-@@ -1,6 +1,4 @@
- import("all.gn")
--is_component_build = false
--is_official_build = true
- 
- # This may be guarded behind is_chrome_branded alongside
- # proprietary_codecs https://webrtc-review.googlesource.com/c/src/+/36321,
-@@ -8,9 +6,3 @@ is_official_build = true
- # The initialization of the decoder depends on whether ffmpeg has
- # been built with H.264 support.
- rtc_use_h264 = proprietary_codecs
--
--# By default, Electron builds ffmpeg with proprietary codecs enabled. In order
--# to facilitate users who don't want to ship proprietary codecs in ffmpeg, or
--# who have an LGPL requirement to ship ffmpeg as a dynamically linked library,
--# we build ffmpeg as a shared library.
--is_component_ffmpeg = true
 diff --git a/build/npm.gni b/build/npm.gni
 index a1987d095..fb33a14c3 100644
 --- a/build/npm.gni
diff --git a/srcpkgs/electron19/template b/srcpkgs/electron19/template
index 1a8fbb2820ad..c7cb81120d41 100644
--- a/srcpkgs/electron19/template
+++ b/srcpkgs/electron19/template
@@ -1,13 +1,13 @@
 # Template file for 'electron19'
 pkgname=electron19
 version=19.0.8
-revision=1
+revision=2
 _nodever=16.14.2
 _chromiumver=102.0.5005.125
 archs="x86_64* aarch64* ppc64le*"
 create_wrksrc=yes
 build_wrksrc="src"
-hostmakedepends="$(vopt_if clang clang) python pkgconf perl gperf bison ninja nodejs hwids
+hostmakedepends="$(vopt_if clang "clang lld") python pkgconf perl gperf bison ninja nodejs hwids
  libwebp-devel freetype-devel harfbuzz-devel libpng-devel nss-devel which git libevent-devel
  pciutils-devel libatomic-devel ffmpeg-devel libxml2-devel libglib-devel yarn openjdk libxslt-devel
  opus-devel libXcursor-devel libXcomposite-devel libXtst-devel libXrandr-devel libXScrnSaver-devel
@@ -185,6 +185,8 @@ post_patch() {
 			cd "$wrksrc"
 		done
 	fi
+	vsed -i 's/OFFICIAL_BUILD/GOOGLE_CHROME_BUILD/' \
+		src/tools/generate_shim_headers/generate_shim_headers.py
 }
 
 pre_configure() {
@@ -300,6 +302,7 @@ do_configure() {
 	fi
 
 	conf+=(
+		'import("//electron/build/args/release.gn")'
 		'blink_symbol_level=0'
 		'clang_use_chrome_plugins=false'
 		'custom_toolchain="//build/toolchain/linux/unbundle:default"'
@@ -353,15 +356,21 @@ do_configure() {
 		'use_custom_libcxx=false'
 		'use_gnome_keyring=false'
 		'use_gold=false'
-		'use_lld=false'
+		"use_lld=$(vopt_if clang true false)"
+
+		'is_cfi=false'
+		'use_thin_lto=false'
+		'use_cfi_icall=false'
+		'chrome_pgo_phase=0'
+
 		'use_system_libwayland=true'
 		"use_pulseaudio=$(vopt_if pulseaudio 'true' 'false')"
 		"rtc_use_pipewire=$(vopt_if pipewire true false)"
 		'use_sysroot=false'
 		'use_system_harfbuzz=true'
+		'is_component_ffmpeg=false'
 		"target_cpu=\"$target_arch\""
 		"host_cpu=\"$host_arch\""
-		'import("//electron/build/args/release.gn")'
 	)
 
 	msg_normal "Configuring build\n"

From d48124074b5078584d704a586ead88128c9def0a Mon Sep 17 00:00:00 2001
From: Laurence de Bruxelles <lfdebrux@gmail.com>
Date: Sun, 10 Jul 2022 16:55:44 +0100
Subject: [PATCH 75/85] perl-Mail-Message: update to 3.012.

---
 srcpkgs/perl-Mail-Message/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/perl-Mail-Message/template b/srcpkgs/perl-Mail-Message/template
index b71b27eb347f..50e1c87a8e0e 100644
--- a/srcpkgs/perl-Mail-Message/template
+++ b/srcpkgs/perl-Mail-Message/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Mail-Message'
 pkgname=perl-Mail-Message
-version=3.009
-revision=2
+version=3.012
+revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -12,4 +12,4 @@ maintainer="Zach Dykstra <dykstra.zachary@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/Mail-Message"
 distfiles="${CPAN_SITE}/Mail/${pkgname/perl-/}-${version}.tar.gz"
-checksum=39d2cf98a24f786c119ff04df9b44662970bc2110d1bc6ad33ba64c06d97cf1a
+checksum=e92b0020e0cb11cca92f93df9dd32441d78b84a3c4b72094c0a70310253cac9e

From 6ddf7bc9ef89cb69f48fd7291cb1625679ff902f Mon Sep 17 00:00:00 2001
From: Laurence de Bruxelles <lfdebrux@gmail.com>
Date: Sun, 10 Jul 2022 16:56:36 +0100
Subject: [PATCH 76/85] perl-Mail-Transport: update to 3.005.

---
 srcpkgs/perl-Mail-Transport/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/perl-Mail-Transport/template b/srcpkgs/perl-Mail-Transport/template
index 18a9eb449c86..d4b17af63d8f 100644
--- a/srcpkgs/perl-Mail-Transport/template
+++ b/srcpkgs/perl-Mail-Transport/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Mail-Transport'
 pkgname=perl-Mail-Transport
-version=3.004
-revision=2
+version=3.005
+revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -12,4 +12,4 @@ maintainer="Orphaned <orphan@voidlinux.org>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/Mail-Transport"
 distfiles="${CPAN_SITE}/Mail/${pkgname/perl-/}-${version}.tar.gz"
-checksum=cf315a09f617e881c01318069054ef9f17ef947ffbbc5ced2f1b00ebbad43d11
+checksum=d0dcb93f705c1285d808e34de7d86dbe28d1ed66aa2a7de830f6651fc35196a3

From 160815e8c6dd34532b9f33ef64b9ff00bef33628 Mon Sep 17 00:00:00 2001
From: Laurence de Bruxelles <lfdebrux@gmail.com>
Date: Sun, 10 Jul 2022 16:56:53 +0100
Subject: [PATCH 77/85] perl-Mail-Box: update to 3.009.

---
 srcpkgs/perl-Mail-Box/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/perl-Mail-Box/template b/srcpkgs/perl-Mail-Box/template
index e7ba48ded419..fbdb119597b5 100644
--- a/srcpkgs/perl-Mail-Box/template
+++ b/srcpkgs/perl-Mail-Box/template
@@ -1,7 +1,7 @@
 # Template file for 'perl-Mail-Box'
 pkgname=perl-Mail-Box
-version=3.008
-revision=2
+version=3.009
+revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
 hostmakedepends="perl"
@@ -16,4 +16,4 @@ maintainer="Alessio Sergi <al3hex@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/Mail-Box"
 distfiles="${CPAN_SITE}/Mail/${pkgname/perl-/}-${version}.tar.gz"
-checksum=b51a50945db1335503e1414d76dcc74e669c4179ea07852f9800b270d5c0d297
+checksum=9185216b0e14c919ec2384769525559491ed7d56d27adb1bc985a1fbeb799165

From cee1e958340bfb1a373b104641628b0cdbb4fb3f Mon Sep 17 00:00:00 2001
From: Johannes <johannes.brechtmann@gmail.com>
Date: Tue, 12 Jul 2022 23:22:56 +0200
Subject: [PATCH 78/85] perl-Crypt-OpenSSL-RSA: update to 0.33.

---
 srcpkgs/perl-Crypt-OpenSSL-RSA/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/perl-Crypt-OpenSSL-RSA/template b/srcpkgs/perl-Crypt-OpenSSL-RSA/template
index ea269e56a06e..3a239a93a6c9 100644
--- a/srcpkgs/perl-Crypt-OpenSSL-RSA/template
+++ b/srcpkgs/perl-Crypt-OpenSSL-RSA/template
@@ -1,16 +1,16 @@
 # Template file for 'perl-Crypt-OpenSSL-RSA'
 pkgname=perl-Crypt-OpenSSL-RSA
-version=0.32
+version=0.33
 revision=1
 wrksrc="${pkgname/perl-/}-${version}"
 build_style=perl-module
 hostmakedepends="perl perl-Crypt-OpenSSL-Guess"
 makedepends="perl openssl-devel"
 depends="perl"
-checkdepends="perl-Crypt-OpenSSL-Random"
+checkdepends="perl-Crypt-OpenSSL-Random perl-Crypt-OpenSSL-Bignum"
 short_desc="Crypt::OpenSSL::RSA - RSA encoding and decoding"
 maintainer="johannes <johannes.brechtmann@gmail.com>"
 license="Artistic-1.0-Perl, GPL-1.0-or-later"
 homepage="https://metacpan.org/release/Crypt-OpenSSL-RSA"
 distfiles="${CPAN_SITE}/Crypt/Crypt-OpenSSL-RSA-${version}.tar.gz"
-checksum=adc74f0ae125c77f65d5dd32abb9c3429300a79543bf263494f333f9c0b62a61
+checksum=bdbe630f6d6f540325746ad99977272ac8664ff81bd19f0adaba6d6f45efd864

From 92f1246964761bb9b7765b582a05f5ed68398a59 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 13 Jul 2022 08:01:42 +0700
Subject: [PATCH 79/85] git: update to 2.37.1.

---
 srcpkgs/git/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/git/template b/srcpkgs/git/template
index 2f22f5ae5bf7..5b91f7571d8b 100644
--- a/srcpkgs/git/template
+++ b/srcpkgs/git/template
@@ -1,6 +1,6 @@
 # Template file for 'git'
 pkgname=git
-version=2.37.0
+version=2.37.1
 revision=1
 hostmakedepends="asciidoc gettext perl pkg-config tk xmlto"
 makedepends="libglib-devel libcurl-devel libsecret-devel pcre2-devel tk-devel"
@@ -14,7 +14,7 @@ license="GPL-2.0-only"
 homepage="https://git-scm.com/"
 changelog="https://raw.githubusercontent.com/git/git/master/Documentation/RelNotes/${version}.txt"
 distfiles="https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"
-checksum=9f7fa1711bd00c4ec3dde2fe44407dc13f12e4772b5e3c72a58db4c07495411f
+checksum=c8162c6b8b8f1c5db706ab01b4ee29e31061182135dc27c4860224aaec1b3500
 replaces="git-perl>=0"
 register_shell=/usr/bin/git-shell
 python_version=3

From 717d9b5d13b72fdec583cc5a0514b1bbd7bc5324 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Wed, 13 Jul 2022 08:02:23 +0700
Subject: [PATCH 80/85] chroot-git: update to 2.37.1.

---
 srcpkgs/chroot-git/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/chroot-git/template b/srcpkgs/chroot-git/template
index 18efb65c4f67..82387bce60ae 100644
--- a/srcpkgs/chroot-git/template
+++ b/srcpkgs/chroot-git/template
@@ -1,6 +1,6 @@
 # Template file for 'chroot-git'
 pkgname=chroot-git
-version=2.35.3
+version=2.37.1
 revision=1
 bootstrap=yes
 wrksrc="git-${version}"
@@ -10,7 +10,7 @@ maintainer="Enno Boland <gottox@voidlinux.org>"
 license="GPL-2.0-only"
 homepage="https://git-scm.com/"
 distfiles="https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz"
-checksum=15e9db4f9bf2ed9fff30cb62a00c5c7c0901015f5ab048cdb4e8b04ddee00fa2
+checksum=c8162c6b8b8f1c5db706ab01b4ee29e31061182135dc27c4860224aaec1b3500
 
 if [ "$CHROOT_READY" ]; then
 	checkdepends="perl gnupg"

From 90a79e7f1f0e112c6af9ced404e6ba825432d9db Mon Sep 17 00:00:00 2001
From: Toby Merz <realtiaz@gmail.com>
Date: Wed, 13 Jul 2022 08:45:20 +0200
Subject: [PATCH 81/85] vscode: update to 1.69.1.

---
 srcpkgs/vscode/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/vscode/template b/srcpkgs/vscode/template
index 9f11f7989152..9fc54b70d9e9 100644
--- a/srcpkgs/vscode/template
+++ b/srcpkgs/vscode/template
@@ -1,6 +1,6 @@
 # Template file for 'vscode'
 pkgname=vscode
-version=1.69.0
+version=1.69.1
 revision=1
 _electronver=19.0.8
 _npmver=8.6.0
@@ -12,7 +12,7 @@ maintainer="shizonic <realtiaz@gmail.com>, Alex Lohr <alex.lohr@logmein.com>"
 license="MIT"
 homepage="https://code.visualstudio.com/"
 distfiles="https://github.com/microsoft/vscode/archive/refs/tags/${version}.tar.gz"
-checksum=982af5d93198b5437c3c211276c7b5fd7e3ecf19359c9605df2d6feddee93151
+checksum=497187731a0cd6ea8641cd762aaf4c77873d926a855c9b71a72e30a51e7cd521
 nocross=yes # x64 build does not cut it, it contains native code
 
 if [ "$XBPS_TARGET_WORDSIZE" = "32" ]; then

From 5a4971a26e5e99d9056e5e9723034db6c5e3ca8b Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 13 Jul 2022 14:43:51 +0200
Subject: [PATCH 82/85] font-util: update to 1.3.3.

---
 srcpkgs/font-util/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/font-util/template b/srcpkgs/font-util/template
index 5b9946003b58..465510dcd53c 100644
--- a/srcpkgs/font-util/template
+++ b/srcpkgs/font-util/template
@@ -1,6 +1,6 @@
 # Template file for 'font-util'
 pkgname=font-util
-version=1.3.2
+version=1.3.3
 revision=1
 build_style=gnu-configure
 hostmakedepends="pkg-config bdftopcf"
@@ -13,8 +13,8 @@ short_desc="Tools for truncating and subseting of ISO10646-1 BDF fonts"
 maintainer="Duncaen <duncaen@voidlinux.org>"
 license="MIT"
 homepage="http://xorg.freedesktop.org"
-distfiles="${XORG_SITE}/font/$pkgname-$version.tar.bz2"
-checksum=3ad880444123ac06a7238546fa38a2a6ad7f7e0cc3614de7e103863616522282
+distfiles="${XORG_SITE}/font/$pkgname-$version.tar.xz"
+checksum=e791c890779c40056ab63aaed5e031bb6e2890a98418ca09c534e6261a2eebd2
 lib32disabled=yes
 
 post_install() {

From 6c5a8fd09927c24dd56db16058678e580f54a0da Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 13 Jul 2022 14:54:16 +0200
Subject: [PATCH 83/85] u-boot-tools: update to 2022.07.

---
 srcpkgs/u-boot-tools/template | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/srcpkgs/u-boot-tools/template b/srcpkgs/u-boot-tools/template
index e3908d65dfc1..0ca8e34429cb 100644
--- a/srcpkgs/u-boot-tools/template
+++ b/srcpkgs/u-boot-tools/template
@@ -1,19 +1,19 @@
 # Template file for 'u-boot-tools'
 pkgname=u-boot-tools
-version=2022.04
+version=2022.07
 revision=1
 wrksrc="u-boot-${version}"
 build_style=gnu-makefile
 make_build_args="HOSTSTRIP=: STRIP=: NO_SDL=1"
 make_build_target="tools-all tools-only envtools"
-hostmakedepends="bison flex which"
+hostmakedepends="bison flex which python3 swig python3-devel"
 makedepends="openssl-devel libuuid-devel gnutls-devel ncurses-libtinfo-devel"
 short_desc="Das U-Boot tools"
 maintainer="Duncaen <duncaen@voidlinux.org>"
 license="GPL-2.0-or-later"
 homepage="https://www.denx.de/wiki/U-Boot/"
 distfiles="ftp://ftp.denx.de/pub/u-boot/u-boot-${version}.tar.bz2"
-checksum=68e065413926778e276ec3abd28bb32fa82abaa4a6898d570c1f48fbdb08bcd0
+checksum=92b08eb49c24da14c1adbf70a71ae8f37cc53eeb4230e859ad8b6733d13dcf5e
 
 if [ "$CROSS_BUILD" ]; then
 	make_build_args+=" CROSS_BUILD_TOOLS=y CROSS_COMPILE=${XBPS_CROSS_TRIPLET}-"

From a23f8532adba29249db3f1021f02a98c4818ac55 Mon Sep 17 00:00:00 2001
From: Duncaen <duncaen@voidlinux.org>
Date: Wed, 13 Jul 2022 15:07:44 +0200
Subject: [PATCH 84/85] cppcheck: update to 2.8.2.

---
 srcpkgs/cppcheck/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/cppcheck/template b/srcpkgs/cppcheck/template
index 5c7b27394bd0..50427f55b33d 100644
--- a/srcpkgs/cppcheck/template
+++ b/srcpkgs/cppcheck/template
@@ -1,6 +1,6 @@
 # Template file for 'cppcheck'
 pkgname=cppcheck
-version=2.8
+version=2.8.2
 revision=1
 build_style=gnu-makefile
 make_build_args="
@@ -18,7 +18,7 @@ license="GPL-3.0-or-later"
 homepage="http://cppcheck.sourceforge.net"
 changelog="https://sourceforge.net/p/cppcheck/news/"
 distfiles="https://github.com/danmar/cppcheck/archive/${version}.tar.gz"
-checksum=57298f3b805f0eb816a04115fbc70e701f75083cfb0305a44246e365cf27606a
+checksum=30ba99ab54089c44b83f02e2453da046a7edff5237950d4a0eb1eba4afcb4f45
 
 post_install() {
 	vman cppcheck.1

From ea0b4e88f8580f5889e68cc9db32aec8fccf8f05 Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sun, 10 Jul 2022 14:10:00 +0530
Subject: [PATCH 85/85] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..1875a60ab80f
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,12 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+build_style=gnu-makefile
+short_desc="Set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (8 preceding siblings ...)
  2022-07-13 13:27 ` [PR PATCH] [Updated] " akhiljalagam
@ 2022-07-13 18:11 ` meator
  2022-07-14  4:09 ` akhiljalagam
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 17+ messages in thread
From: meator @ 2022-07-13 18:11 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 946 bytes --]

New comment by meator on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#issuecomment-1183530123

Comment:
Please try to avoid closing and opening the same pull request. [The contributing guide](https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#review) shows how to forcefully overwrite your branch when you have issues with your git history. This will work without closing your pull request.

I know Void's commit policy is strange, but there has to be one commit per package. You should never force push to publicly visible repositories unless you have a good reason to do so, but Void doesn't care about that. Knowing how to forcefully alter git's history might be useful to you in other cases too (but you should do these things before you `git push` generally). This is called "sausage making" in the git world. I would recommend you to look up `git rebase -i` and baybe `git reset`.

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (9 preceding siblings ...)
  2022-07-13 18:11 ` meator
@ 2022-07-14  4:09 ` akhiljalagam
  2022-07-14  4:10 ` akhiljalagam
  2022-10-11  7:44 ` Chocimier
  12 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-14  4:09 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 554 bytes --]

New comment by akhiljalagam on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#issuecomment-1183964038

Comment:
@meator my apologies. I spent some time on learning git's merge strategies. And I learned that creating a new branch for PR's is the best way to not mess with my master branch, which is not mentioned in CONTRIBUTING.md. also, I checked many contributors repos for void-packages and found that they are creating new branch for each new pkg and creating PR's. It's the cleanest way to maintain master branch. 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (10 preceding siblings ...)
  2022-07-14  4:09 ` akhiljalagam
@ 2022-07-14  4:10 ` akhiljalagam
  2022-10-11  7:44 ` Chocimier
  12 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-14  4:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 511 bytes --]

New comment by akhiljalagam on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#issuecomment-1183964038

Comment:
@meator my apologies. I spent some time on learning git's merge strategies. And I learned that creating a new branch for PR's is the best way to not mess with my master branch. also, I checked many contributors repos for void-packages and found that they are creating new branch for each new pkg and creating PR's. It's the cleanest way to maintain master branch. 

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: New package: cloud-utils-0.33
  2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
                   ` (11 preceding siblings ...)
  2022-07-14  4:10 ` akhiljalagam
@ 2022-10-11  7:44 ` Chocimier
  12 siblings, 0 replies; 17+ messages in thread
From: Chocimier @ 2022-10-11  7:44 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1008 bytes --]

New comment by Chocimier on void-packages repository

https://github.com/void-linux/void-packages/pull/37968#issuecomment-1274235102

Comment:
W dniu 13.07.2022 o 20:11, meator pisze:
> Please try to avoid closing and opening the same pull request. The contributing guide <https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#review> shows how to forcefully overwrite your branch when you have issues with your git history. This will work without closing your pull request.

Good point.


> I know Void's commit policy is strange, but there has to be one commit per package. You should never force push to publicly visible repositories unless you have a good reason to do so, but Void doesn't care about that.

One should only avoid altering branches _that others base work on_. PR branches here are not like that, because they are short, single purpose, and others rewrite anyway.
Void-packages master is never rewritten, we push supplemental or `revert` commit if pushed one is wrong.


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR PATCH] [Updated] New package: cloud-utils-0.33
  2022-07-09 14:41 [PR PATCH] " akhiljalagam
  2022-07-09 15:54 ` [PR PATCH] [Updated] " akhiljalagam
  2022-07-09 15:57 ` akhiljalagam
@ 2022-07-10  8:10 ` akhiljalagam
  2 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-10  8:10 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]

There is an updated pull request by akhiljalagam against master on the void-packages repository

https://github.com/akhiljalagam/void-packages master
https://github.com/void-linux/void-packages/pull/37944

New package: cloud-utils-0.33
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37944.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-37944.patch --]
[-- Type: text/x-diff, Size: 44575 bytes --]

From 0e4bc0081686868ca79b811b5851a480627cd2fe Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 20:09:29 +0530
Subject: [PATCH 01/39] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..f10df899c49d
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,23 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+#wrksrc=
+#create_wrksrc=yes
+build_style=gnu-makefile
+#configure_args=""
+#make_build_args=""
+#make_install_args=""
+#conf_files=""
+#make_dirs="/var/log/dir 0755 root root"
+hostmakedepends=""
+makedepends=""
+depends=""
+short_desc="This package provides a useful set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+#changelog=""
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From adec1ec2bb58152ff2b79c15c3499e0a9786a3f8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sat, 9 Jul 2022 22:31:16 +0700
Subject: [PATCH 02/39] bbswitch: add patch for linux 5.18

Close #37916
---
 .../bbswitch/patches/0003-kernel-5.18.patch    | 18 ++++++++++++++++++
 srcpkgs/bbswitch/template                      |  2 +-
 2 files changed, 19 insertions(+), 1 deletion(-)
 create mode 100644 srcpkgs/bbswitch/patches/0003-kernel-5.18.patch

diff --git a/srcpkgs/bbswitch/patches/0003-kernel-5.18.patch b/srcpkgs/bbswitch/patches/0003-kernel-5.18.patch
new file mode 100644
index 000000000000..6fa0e58269d9
--- /dev/null
+++ b/srcpkgs/bbswitch/patches/0003-kernel-5.18.patch
@@ -0,0 +1,18 @@
+--- a/bbswitch.c
++++ b/bbswitch.c
+@@ -264,10 +264,14 @@
+     pci_disable_device(dis_dev);
+     do {
+         struct acpi_device *ad = NULL;
+-        int r;
++        int r = 0;
+ 
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(5, 18, 0)
++        ad = acpi_fetch_acpi_dev(dis_handle);
++#else
+         r = acpi_bus_get_device(dis_handle, &ad);
++#endif
+         if (r || !ad) {
+             pr_warn("Cannot get ACPI device for PCI device\n");
+             break;
+         }
diff --git a/srcpkgs/bbswitch/template b/srcpkgs/bbswitch/template
index 4dc9d3235e60..bc0a54ceb2c5 100644
--- a/srcpkgs/bbswitch/template
+++ b/srcpkgs/bbswitch/template
@@ -1,7 +1,7 @@
 # Template file for 'bbswitch'
 pkgname=bbswitch
 version=0.8
-revision=4
+revision=5
 archs="x86_64*"
 depends="dkms"
 short_desc="Kernel module for disabling the nVidia GPU on Optimus laptops"

From f41818d59e75bcc76cbdafaf30ed5da0391e500b Mon Sep 17 00:00:00 2001
From: Akhil Jalagam <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 21:24:24 +0530
Subject: [PATCH 03/39] Update srcpkgs/cloud-utils/template

Co-authored-by: meator <meator.dev@gmail.com>
---
 srcpkgs/cloud-utils/template | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
index f10df899c49d..6c1740365982 100644
--- a/srcpkgs/cloud-utils/template
+++ b/srcpkgs/cloud-utils/template
@@ -3,21 +3,10 @@ pkgname=cloud-utils
 version=0.33
 revision=1
 archs="x86_64"
-#wrksrc=
-#create_wrksrc=yes
 build_style=gnu-makefile
-#configure_args=""
-#make_build_args=""
-#make_install_args=""
-#conf_files=""
-#make_dirs="/var/log/dir 0755 root root"
-hostmakedepends=""
-makedepends=""
-depends=""
 short_desc="This package provides a useful set of utilities for interacting with a cloud"
 maintainer="akhil <akhil.j@outlook.in>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/canonical/cloud-utils/"
-#changelog=""
 distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
 checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From a25e3395c7b19269da169abe85a8386997e84861 Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 21:27:12 +0530
Subject: [PATCH 04/39] resolved xlint warnings

---
 srcpkgs/cloud-utils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
index 6c1740365982..1875a60ab80f 100644
--- a/srcpkgs/cloud-utils/template
+++ b/srcpkgs/cloud-utils/template
@@ -4,7 +4,7 @@ version=0.33
 revision=1
 archs="x86_64"
 build_style=gnu-makefile
-short_desc="This package provides a useful set of utilities for interacting with a cloud"
+short_desc="Set of utilities for interacting with a cloud"
 maintainer="akhil <akhil.j@outlook.in>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/canonical/cloud-utils/"

From 24d2f3bc69d2acbb0a63dab20037512b99edf1f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 05/39] fetchmail: update to 6.4.30.

---
 srcpkgs/fetchmail/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/fetchmail/template b/srcpkgs/fetchmail/template
index d1bbe5f33432..8fa7559569d2 100644
--- a/srcpkgs/fetchmail/template
+++ b/srcpkgs/fetchmail/template
@@ -1,6 +1,6 @@
 # Template file for 'fetchmail'
 pkgname=fetchmail
-version=6.4.23
+version=6.4.30
 revision=1
 build_style=gnu-configure
 configure_args="--with-ssl=${XBPS_CROSS_BASE}/usr"
@@ -13,7 +13,7 @@ license="GPL-2.0-only"
 homepage="http://fetchmail.sourceforge.net/"
 changelog="https://gitlab.com/fetchmail/fetchmail/-/raw/legacy_64/NEWS"
 distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.xz"
-checksum=5f7a5e13731431134a2ca535bbced7adc666d3aeb93169a0830945d91f492300
+checksum=35824c20aa1d8d97e3f1611fef49b9f7f68396f7cbc4d3a807fed27ae9ea445a
 
 post_install() {
 	vsed -i -e 's,/usr/bin/python ,/usr/bin/python3 ,' "${DESTDIR}/usr/bin/fetchmailconf"

From 17e0e68355391f6398441728d32d78e6026088d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 06/39] python3-virtualenv: update to 20.15.1.

---
 srcpkgs/python3-virtualenv/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/python3-virtualenv/template b/srcpkgs/python3-virtualenv/template
index ca41cbf2079f..f5593aa78c6b 100644
--- a/srcpkgs/python3-virtualenv/template
+++ b/srcpkgs/python3-virtualenv/template
@@ -1,6 +1,6 @@
 # Template file for 'python3-virtualenv'
 pkgname=python3-virtualenv
-version=20.14.1
+version=20.15.1
 revision=1
 wrksrc="virtualenv-${version}"
 build_style=python3-module
@@ -13,7 +13,7 @@ license="MIT"
 homepage="https://virtualenv.pypa.io/"
 changelog="https://virtualenv.pypa.io/en/latest/changelog.html"
 distfiles="${PYPI_SITE}/v/virtualenv/virtualenv-${version}.tar.gz"
-checksum=ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5
+checksum=288171134a2ff3bfb1a2f54f119e77cd1b81c29fc1265a2356f3e8d14c7d58c4
 alternatives="virtualenv:virtualenv:/usr/bin/virtualenv3"
 
 do_check() {

From 636a1c6264e715fdec98005579dfe02fe4c4653a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 07/39] rinutils: update to 0.10.1.

---
 srcpkgs/rinutils/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/rinutils/template b/srcpkgs/rinutils/template
index a78c2ec31a68..702c7c45ca42 100644
--- a/srcpkgs/rinutils/template
+++ b/srcpkgs/rinutils/template
@@ -1,6 +1,6 @@
 # Template file for 'rinutils'
 pkgname=rinutils
-version=0.10.0
+version=0.10.1
 revision=1
 build_style=cmake
 hostmakedepends="perl pkg-config"
@@ -11,7 +11,7 @@ license="MIT"
 homepage="https://github.com/shlomif/rinutils/"
 changelog="https://raw.githubusercontent.com/shlomif/rinutils/master/NEWS.asciidoc"
 distfiles="https://github.com/shlomif/rinutils/archive/${version}.tar.gz"
-checksum=af688ee2258587bcec5763d2426c24b734f1e15309cb5f28c18252c6a12e167d
+checksum=329ba4cdfb38cddc5af4a8169a8c4a4371f7db8a6ddd76f5c9162a2b216f3b8e
 
 do_check() {
 	: requires many perl modules

From 23a547ee70c20e070ecab576ac95777548cbcdc0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 08/39] filelight: update to 22.04.3.

---
 srcpkgs/filelight/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/filelight/template b/srcpkgs/filelight/template
index ebd6982b50bf..68d0dd27b30d 100644
--- a/srcpkgs/filelight/template
+++ b/srcpkgs/filelight/template
@@ -1,6 +1,6 @@
 # Template file for 'filelight'
 pkgname=filelight
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-only"
 homepage="https://utils.kde.org/projects/filelight/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#filelight"
 distfiles="${KDE_SITE}/release-service/${version}/src/filelight-${version}.tar.xz"
-checksum=036583422b0f4a633fed6a88ae07386d4cac4925d6d5789d7fb1ec9645367624
+checksum=00ee4c583f06fb5a8004d63d74a2c295ee66fec53f14c7703798a50c8a572ff7

From 48b060534f8e5c1fbd6bd0e61e455310a3fb4e76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 09/39] kaccounts-integration: update to 22.04.3.

---
 srcpkgs/kaccounts-integration/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kaccounts-integration/template b/srcpkgs/kaccounts-integration/template
index 0fb2c91aec04..2ed23719d484 100644
--- a/srcpkgs/kaccounts-integration/template
+++ b/srcpkgs/kaccounts-integration/template
@@ -1,6 +1,6 @@
 # Template file for 'kaccounts-integration'
 pkgname=kaccounts-integration
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules pkg-config qt5-host-tools qt5-qmake
@@ -13,7 +13,7 @@ license="GPL-2.0-or-later"
 homepage="https://invent.kde.org/network/kaccounts-integration"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kaccounts-integration"
 distfiles="${KDE_SITE}/release-service/${version}/src/kaccounts-integration-${version}.tar.xz"
-checksum=6a14364e37e87bc5acefc0caa0925bf4baa610b189254936a70a51750e5e28e8
+checksum=1edb9b8984b000f953ea2368c39485e31939b3dc1844dfb3d2a9476e0a15619b
 
 kaccounts-integration-devel_package() {
 	short_desc+=" - development"

From 048a04725a1548ea82684e01f7da1d0c004ab5fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 10/39] kcachegrind: update to 22.04.3.

---
 srcpkgs/kcachegrind/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kcachegrind/template b/srcpkgs/kcachegrind/template
index b1826f4d2857..69e9943092f3 100644
--- a/srcpkgs/kcachegrind/template
+++ b/srcpkgs/kcachegrind/template
@@ -1,6 +1,6 @@
 # Template file for 'kcachegrind'
 pkgname=kcachegrind
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -13,5 +13,5 @@ license="GPL-2.0-only, GFDL-1.2-only"
 homepage="https://kde.org/applications/development/kcachegrind/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kcachegrind"
 distfiles="${KDE_SITE}/release-service/${version}/src/kcachegrind-${version}.tar.xz"
-checksum=d685bc4d6ea53dfc4ecdb307e3c3cade6228467b93c400b42fd1fd0b924841b6
+checksum=b6fc16efd83d076d8b0398fc37f924531203237b7fe28e0a2b4c540c41b29389
 python_version=2

From 858c7311620314e7f53cc8416f3ec6d9a4189efa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 11/39] kcron: update to 22.04.3.

---
 srcpkgs/kcron/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kcron/template b/srcpkgs/kcron/template
index abb8ad979856..0c9741d98267 100644
--- a/srcpkgs/kcron/template
+++ b/srcpkgs/kcron/template
@@ -1,6 +1,6 @@
 # Template file for 'kcron'
 pkgname=kcron
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://userbase.kde.org/System_Settings/Task_Scheduler"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kcron"
 distfiles="${KDE_SITE}/release-service/${version}/src/kcron-${version}.tar.xz"
-checksum=904cf5625e7430eccb8ae39bd8cc280aeba3fcc911b7557b5dcb639ddf0301cd
+checksum=35f7d9de4f445b2848b4f46fb0bd8bd07313d3200e4ff0dd22a9158a1d0c37fc

From 86880ea639b77b94cd515fcf961e5623aba3dd4b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 12/39] kdialog: update to 22.04.3.

---
 srcpkgs/kdialog/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kdialog/template b/srcpkgs/kdialog/template
index a46fb9180340..aa75dfadb5eb 100644
--- a/srcpkgs/kdialog/template
+++ b/srcpkgs/kdialog/template
@@ -1,6 +1,6 @@
 # Template file for 'kdialog'
 pkgname=kdialog
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules kcoreaddons kdoctools python3
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://invent.kde.org/utilities/kdialog"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kdialog"
 distfiles="${KDE_SITE}/release-service/${version}/src/kdialog-${version}.tar.xz"
-checksum=57aa30dbbe53ba807443c1f6dae413ae99ec972d1cb8a67e741eec1008a35933
+checksum=c0fd9708b17ffa016fc54eacffac6735e0db82b4812208ef9ffd41c9d36fff33

From 0252907ce0ca95f77a3a7f297f3bf8ad5ace6daa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 13/39] keditbookmarks: update to 22.04.3.

---
 srcpkgs/keditbookmarks/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/keditbookmarks/template b/srcpkgs/keditbookmarks/template
index bd7704de0b12..15b1ec913301 100644
--- a/srcpkgs/keditbookmarks/template
+++ b/srcpkgs/keditbookmarks/template
@@ -1,6 +1,6 @@
 # Template file for 'keditbookmarks'
 pkgname=keditbookmarks
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kconfig kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later, GFDL-1.2-only"
 homepage="https://www.kde.org/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#keditbookmarks"
 distfiles="${KDE_SITE}/release-service/${version}/src/keditbookmarks-${version}.tar.xz"
-checksum=55dd475d684a93fb59de6182a68a2aaaba6ce2caf6695dc2418222a052e2beb6
+checksum=e762c6b4066f3a173dfd558eba3af75c8dd434e9c66f3f630c003125bf9ad32f

From 83a500f768f399c8a5eb02d62aa921a1922b179b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 14/39] kfind: update to 22.04.3.

---
 srcpkgs/kfind/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kfind/template b/srcpkgs/kfind/template
index 684ecee9c851..9cf961cb47de 100644
--- a/srcpkgs/kfind/template
+++ b/srcpkgs/kfind/template
@@ -1,6 +1,6 @@
 # Template file for 'kfind'
 pkgname=kfind
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons qt5-host-tools qt5-qmake
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://www.kde.org/applications/utilities/kfind/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kfind"
 distfiles="${KDE_SITE}/release-service/${version}/src/kfind-${version}.tar.xz"
-checksum=e9376ff9fe03e2618896fa1bcf99e3ba7c0585ab7396528940204c156cdacaae
+checksum=76e1477270e96fa0c7332c2ee07b6ddeb24e6f6bcee2158106d99c9ac6cb7e7e

From b7aaa0c94934bd60127e261a5b2d728bded96e22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 15/39] kig: update to 22.04.3.

---
 srcpkgs/kig/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kig/template b/srcpkgs/kig/template
index 2c8ddfb859d9..591db4bd477c 100644
--- a/srcpkgs/kig/template
+++ b/srcpkgs/kig/template
@@ -1,6 +1,6 @@
 # Template file for 'kig'
 pkgname=kig
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules kcoreaddons kdoctools gettext
@@ -12,4 +12,4 @@ license="GPL-2.0-only"
 homepage="https://www.kde.org/applications/education/kig/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kig"
 distfiles="${KDE_SITE}/release-service/${version}/src/kig-${version}.tar.xz"
-checksum=cb309faceed3a4e63f930226c84ec117d3dbbf2b1f95899315770f39d1dd310a
+checksum=618d31c19849f9ccdded9d69ac6c52a548ca4914e1765deb10f5994e8df50c29

From d6dec76bf48d5977c7d7c94a461ec954219e1df4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 16/39] kio-gdrive: update to 22.04.3.

---
 srcpkgs/kio-gdrive/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kio-gdrive/template b/srcpkgs/kio-gdrive/template
index 5db295eeb1fc..b33f4ba0f079 100644
--- a/srcpkgs/kio-gdrive/template
+++ b/srcpkgs/kio-gdrive/template
@@ -1,6 +1,6 @@
 # Template file for 'kio-gdrive'
 pkgname=kio-gdrive
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules intltool pkg-config qt5-qmake qt5-host-tools
@@ -14,4 +14,4 @@ license="GPL-2.0-or-later"
 homepage="https://community.kde.org/KIO_GDrive"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kio-gdrive"
 distfiles="${KDE_SITE}/release-service/${version}/src/kio-gdrive-${version}.tar.xz"
-checksum=20296785c8517a2362301cb4db9b415a9de961639ea9e95eb3640cd97ee188d7
+checksum=621a53b9dff22bea57c3f6e7f8a880e6c90695db7842815817f9e3c39b603a41

From e0eb4cc0a3a65347f377e26ebb266e7167f3d7a3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:56 +0200
Subject: [PATCH 17/39] kmag: update to 22.04.3.

---
 srcpkgs/kmag/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmag/template b/srcpkgs/kmag/template
index 1c799748438f..1ba876e12f8a 100644
--- a/srcpkgs/kmag/template
+++ b/srcpkgs/kmag/template
@@ -1,6 +1,6 @@
 # Template file for 'kmag'
 pkgname=kmag
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://www.kde.org/applications/utilities/kmag/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kmag"
 distfiles="${KDE_SITE}/release-service/${version}/src/kmag-${version}.tar.xz"
-checksum=5662be879f7535ef1e413813abbe0721b06dc43c24015ac3daf9c9859aef278a
+checksum=a9a076e62d9dfc9dd436949ce61a928d26cab3b136ec5bfe93fb9865b9d85c22

From 23a461cace59a35dc9ccaf7430d355c66adba105 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 18/39] kmix: update to 22.04.3.

---
 srcpkgs/kmix/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kmix/template b/srcpkgs/kmix/template
index b3525032e8db..a0e12590b9e5 100644
--- a/srcpkgs/kmix/template
+++ b/srcpkgs/kmix/template
@@ -1,6 +1,6 @@
 # Template file for 'kmix'
 pkgname=kmix
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 configure_args="-DSYSCONF_INSTALL_DIR=/etc -DDESKTOPTOJSON_EXECUTABLE=/usr/bin/desktoptojson"
@@ -14,4 +14,4 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later, GFDL-1.2-only"
 homepage="https://www.kde.org/applications/multimedia/kmix/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kmix"
 distfiles="${KDE_SITE}/release-service/${version}/src/kmix-${version}.tar.xz"
-checksum=8cb9cb0a93c3307efba01f12038517896c782a92d1a3f4e33ad28f93234de3cc
+checksum=0863fe31e3b150c3a4fe5ffc26b3f9a4f2c17509274e52f81de6585b1335897d

From 30369abf28baeacd1ff0253d2c5acab1ea750faa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 19/39] kolourpaint: update to 22.04.3.

---
 srcpkgs/kolourpaint/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kolourpaint/template b/srcpkgs/kolourpaint/template
index 503bb69b833a..ae213cabbcb9 100644
--- a/srcpkgs/kolourpaint/template
+++ b/srcpkgs/kolourpaint/template
@@ -1,6 +1,6 @@
 # Template file for 'kolourpaint'
 pkgname=kolourpaint
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,7 +12,7 @@ license="BSD-2-Clause, GPL-2.0-or-later, LGPL-2.1-only, GFDL-1.2-only"
 homepage="http://www.kolourpaint.org/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kolourpaint"
 distfiles="${KDE_SITE}/release-service/${version}/src/kolourpaint-${version}.tar.xz"
-checksum=980e56400f54437e51bbe0d71863b678a40108af77689731b64ac01aa54656a4
+checksum=d0c5f0d38d7226dbd493314bd7e29e33ebd2464a6f82e59570d7599b80c6757d
 
 post_install() {
 	vlicense COPYING

From 9fe2b511f635a40794d32356db1fc8a05a593a68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 20/39] kompare: update to 22.04.3.

---
 srcpkgs/kompare/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kompare/template b/srcpkgs/kompare/template
index 15202f54e3d6..10e89c30b326 100644
--- a/srcpkgs/kompare/template
+++ b/srcpkgs/kompare/template
@@ -1,6 +1,6 @@
 # Template file for 'kompare'
 pkgname=kompare
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-only, GFDL-1.2-only"
 homepage="https://www.kde.org/applications/development/kompare/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kompare"
 distfiles="${KDE_SITE}/release-service/${version}/src/kompare-${version}.tar.xz"
-checksum=7395bd39641080532d124e08b9fbad9b3ec070d4e4c44805248842050c8f1aa1
+checksum=0a7cf268c50fb616eca8b610fdbf7b2faeb012ae6e8b91bd1ab5fcacd14e6d92

From dd0af4bda9c9a2af14d49f41d708356b204fec8c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 21/39] konversation: update to 22.04.3.

---
 srcpkgs/konversation/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/konversation/template b/srcpkgs/konversation/template
index 1ac9f69b27f9..67ff5c507a47 100644
--- a/srcpkgs/konversation/template
+++ b/srcpkgs/konversation/template
@@ -1,6 +1,6 @@
 # Template file for 'konversation'
 pkgname=konversation
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules kconfig kdoctools kcoreaddons
@@ -13,5 +13,5 @@ license="GPL-2.0-or-later"
 homepage="https://konversation.kde.org"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#konversation"
 distfiles="${KDE_SITE}/release-service/${version}/src/${pkgname%5}-${version}.tar.xz"
-checksum=39468c044feca8d4e2391ce41dbbceea54c199382b878f1a0163ee96b71743f2
+checksum=e03ed3afd39f7d37b66b362255fc275289760552e00638e7b66b4163aadd6421
 python_version=3

From c6f5992a6744332a32966a6b9905c5a5d510e093 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 22/39] kpat: update to 22.04.3.

---
 srcpkgs/kpat/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kpat/template b/srcpkgs/kpat/template
index 63cb7a7b143e..de5fcca12de3 100644
--- a/srcpkgs/kpat/template
+++ b/srcpkgs/kpat/template
@@ -1,6 +1,6 @@
 # Template file for 'kpat'
 pkgname=kpat
-version=22.04.1
+version=22.04.3
 revision=1
 build_style=cmake
 configure_args="-DWITH_BH_SOLVER=OFF"
@@ -14,4 +14,4 @@ license="GPL-2.0-only"
 homepage="https://kde.org/applications/games/kpat"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kpat"
 distfiles="${KDE_SITE}/release-service/${version}/src/kpat-${version}.tar.xz"
-checksum=ea9938aa038467e1f5c3356e9e6dd09cf394e6887a69a573ffd4d5d76d11a1f1
+checksum=e353e38e6289f81f29040bebb8f1c550584dc793deabafc5bd3e14ca28fb748d

From 519b46dbd41b62de9d45110f3f9cfb0da2fb9da3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 23/39] kruler: update to 22.04.3.

---
 srcpkgs/kruler/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kruler/template b/srcpkgs/kruler/template
index 9c6e5f5ee2e5..1158667e5744 100644
--- a/srcpkgs/kruler/template
+++ b/srcpkgs/kruler/template
@@ -1,6 +1,6 @@
 # Template file for 'kruler'
 pkgname=kruler
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kconfig kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://www.kde.org/applications/graphics/kruler/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kruler"
 distfiles="${KDE_SITE}/release-service/${version}/src/kruler-${version}.tar.xz"
-checksum=fdc5915c920c210cfe1124a50a1b37a4ddcd69c4c881fe1ccadae3b78cf5c479
+checksum=43c585d00fa81b0213a4c8b588db3e3a4dc426fd0e80a741f0aa327e8cff5c7b

From 9dc99d42da84ae0a27be85516767f4f6f6cd0c18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 24/39] ksystemlog: update to 22.04.3.

---
 srcpkgs/ksystemlog/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/ksystemlog/template b/srcpkgs/ksystemlog/template
index f9bd587df1dc..6f9e93ba65ee 100644
--- a/srcpkgs/ksystemlog/template
+++ b/srcpkgs/ksystemlog/template
@@ -1,6 +1,6 @@
 # Template file for 'ksystemlog'
 pkgname=ksystemlog
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kconfig kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://kde.org/applications/system/ksystemlog/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#ksystemlog"
 distfiles="${KDE_SITE}/release-service/${version}/src/ksystemlog-${version}.tar.xz"
-checksum=7f9f21e211511a59c660897a3ed0f5e59591b829e5daefc3f69ced2fe998caab
+checksum=9b3e32c01ab5faff4935c3f5606fc3d882cfd547308ba91bed6a353b411d3275

From 7817e971dab8ed1735b2feeb72d10bc88ca65f4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 25/39] kteatime: update to 22.04.3.

---
 srcpkgs/kteatime/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kteatime/template b/srcpkgs/kteatime/template
index 4b177e4c7e79..a7a83906c87f 100644
--- a/srcpkgs/kteatime/template
+++ b/srcpkgs/kteatime/template
@@ -1,6 +1,6 @@
 # Template file for 'kteatime'
 pkgname=kteatime
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later"
 homepage="https://www.kde.org/applications/games/kteatime/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kteatime"
 distfiles="${KDE_SITE}/release-service/${version}/src/kteatime-${version}.tar.xz"
-checksum=d13bf6a8b829fe2c904c994a2f019a75e151f00d146e254b38a268529792352b
+checksum=ec9a4707fbf6405b4c67c1f932e76d9893cc23eef8a2454295c6ba25454f4840

From 386e3aa0a50224853d4c795d023e68a7c49cac33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 26/39] kturtle: update to 22.04.3.

---
 srcpkgs/kturtle/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kturtle/template b/srcpkgs/kturtle/template
index 41a6e3e6b765..5dbe4a12f305 100644
--- a/srcpkgs/kturtle/template
+++ b/srcpkgs/kturtle/template
@@ -1,6 +1,6 @@
 # Template file for 'kturtle'
 pkgname=kturtle
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kdoctools
@@ -12,4 +12,4 @@ license="GPL-2.0-or-later, GFDL-1.2-only"
 homepage="https://www.kde.org/applications/education/kturtle/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kturtle"
 distfiles="${KDE_SITE}/release-service/${version}/src/kturtle-${version}.tar.xz"
-checksum=5e72868adc604ceb9873291747f88c85a05e42cb34443d4831c2dfbee5e392d5
+checksum=1b1a611624c254113766fab326553a16b705f919877cd5d89356df1f3f124925

From 8899eda741c898df92f368674fa96a21296f141b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 27/39] kwalletmanager: update to 22.04.3.

---
 srcpkgs/kwalletmanager/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/kwalletmanager/template b/srcpkgs/kwalletmanager/template
index b9a7fc4b2134..35499d430cde 100644
--- a/srcpkgs/kwalletmanager/template
+++ b/srcpkgs/kwalletmanager/template
@@ -1,6 +1,6 @@
 # Template file for 'kwalletmanager'
 pkgname=kwalletmanager
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kauth kdoctools pkg-config
@@ -12,4 +12,4 @@ license="GPL-2.0-only"
 homepage="https://kde.org/applications/system/org.kde.kwalletmanager5"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#kwalletmanager"
 distfiles="${KDE_SITE}/release-service/${version}/src/kwalletmanager-${version}.tar.xz"
-checksum=e1416274d8166b98752226a41b015bd47d90b391b9c077bcf0ace589e62d5fe2
+checksum=0b1498cc3eecdc620dfb4ddf60c0ed99a7e7cc1053d9abbb8056cbefdb392738

From 66449193eeb69bc3d1204c158eb1c7741ca1caad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 28/39] libkcddb: update to 22.04.3.

---
 srcpkgs/libkcddb/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libkcddb/template b/srcpkgs/libkcddb/template
index c211b09b70fa..ccb54f738ffe 100644
--- a/srcpkgs/libkcddb/template
+++ b/srcpkgs/libkcddb/template
@@ -1,6 +1,6 @@
 # Template file for 'libkcddb'
 pkgname=libkcddb
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kconfig kcoreaddons kdoctools
@@ -12,7 +12,7 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later, BSD-3-Clause, GFDL-1.2-only"
 homepage="https://projects.kde.org/projects/kde/kdemultimedia/libkcddb"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#libkcddb"
 distfiles="${KDE_SITE}/release-service/${version}/src/libkcddb-${version}.tar.xz"
-checksum=d88151d2cc5d1899f99d4237dc9e6967009bda7f09bd8e4a41b8c0e66bb7c93d
+checksum=c80b57a73bc17aa71fc559545e173ae9b0e2dd925bbaadeaf37629dc21ca45cb
 
 libkcddb-devel_package() {
 	depends="libkcddb>=${version}_${revision}"

From 7f0b1328fc583f9f4109b8c5890e572b8c2469cc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 29/39] libkdegames: update to 22.04.3.

---
 srcpkgs/libkdegames/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libkdegames/template b/srcpkgs/libkdegames/template
index 6121b499679a..971d57e46f45 100644
--- a/srcpkgs/libkdegames/template
+++ b/srcpkgs/libkdegames/template
@@ -1,6 +1,6 @@
 # Template file for 'libkdegames'
 pkgname=libkdegames
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules pkg-config qt5-qmake qt5-host-tools
@@ -12,7 +12,7 @@ license="GPL-2.0-or-later"
 homepage="https://kde.org/applications/games"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#libkdegames"
 distfiles="${KDE_SITE}/release-service/${version}/src/libkdegames-${version}.tar.xz"
-checksum=c33af6c13540add132122b36b2faabc1f0beaf2c06d29e575f7789f1c5342911
+checksum=f6af5b98c6f5a4061b5124d04e5cf0c2cc9e21df93824559153d5565d541f845
 
 libkdegames-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision} ${makedepends}"

From 9345ba863cd7a87385c59bec79f7f77f2cdc529c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 30/39] libkomparediff2: update to 22.04.3.

---
 srcpkgs/libkomparediff2/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/libkomparediff2/template b/srcpkgs/libkomparediff2/template
index 13b7b15d87de..700c1c1ffa60 100644
--- a/srcpkgs/libkomparediff2/template
+++ b/srcpkgs/libkomparediff2/template
@@ -1,6 +1,6 @@
 # Template file for 'libkomparediff2'
 pkgname=libkomparediff2
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons qt5-host-tools qt5-qmake"
@@ -11,7 +11,7 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later"
 homepage="https://www.kde.org/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#libkomparediff2"
 distfiles="${KDE_SITE}/release-service/${version}/src/libkomparediff2-${version}.tar.xz"
-checksum=a7713b5a7e32e7ed51f3b93668d6338b4674feb149d5d9514e3a9b53367fe609
+checksum=13f11a4025c06ac685348fed5aa56f9ab967b3ef748942069cfa64c34e5f5ded
 
 libkomparediff2-devel_package() {
 	depends="${sourcepkg}>=${version}_${revision}"

From 7a84e4224923d048a058bad42e9c48c19cad5e74 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 31/39] marble5: update to 22.04.3.

---
 srcpkgs/marble5/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/marble5/template b/srcpkgs/marble5/template
index cfa188cb2e45..cb822791c930 100644
--- a/srcpkgs/marble5/template
+++ b/srcpkgs/marble5/template
@@ -1,6 +1,6 @@
 # Template file for 'marble5'
 pkgname=marble5
-version=22.04.2
+version=22.04.3
 revision=1
 wrksrc="marble-${version}"
 build_style=cmake
@@ -16,7 +16,7 @@ license="LGPL-2.1-or-later, GFDL-1.2-only"
 homepage="https://marble.kde.org"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#marble"
 distfiles="${KDE_SITE}/release-service/${version}/src/marble-${version}.tar.xz"
-checksum=a4332e10d26b24ecd07560fa2d877b1f0cce6e50010bbc36ef98e02acc68dfda
+checksum=438d4ef317231b8f2377f64ebfe9249ce669103fb71105c9d7de35a39bbef771
 
 pre_configure() {
 	vsed -i CMakeLists.txt -e 's/-Wcast-align//'

From ff69cec8d70eff418c5bee36e731948854c634a7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:57 +0200
Subject: [PATCH 32/39] signon-kwallet-extension: update to 22.04.3.

---
 srcpkgs/signon-kwallet-extension/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/signon-kwallet-extension/template b/srcpkgs/signon-kwallet-extension/template
index 4f97142b76c3..d16ae5b8c774 100644
--- a/srcpkgs/signon-kwallet-extension/template
+++ b/srcpkgs/signon-kwallet-extension/template
@@ -1,6 +1,6 @@
 # Template file for 'signon-kwallet-extension'
 pkgname=signon-kwallet-extension
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules pkg-config qt5-host-tools qt5-qmake"
@@ -11,4 +11,4 @@ license="GPL-2.0-only"
 homepage="https://invent.kde.org/network/signon-kwallet-extension"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#signon-kwallet-extension"
 distfiles="${KDE_SITE}/release-service/${version}/src/signon-kwallet-extension-${version}.tar.xz"
-checksum=81db99f9f301a8de6bc09265744f1f10c9e3a7ea79daff69f7798e8c4379564c
+checksum=a19088f8dc538d1ce13faa1acd6508fbb8fe80ad666b255bfda7a721a74fba6e

From 25cdacf516f27d9712154ec388da63ecba68008b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:58 +0200
Subject: [PATCH 33/39] svgpart: update to 22.04.3.

---
 srcpkgs/svgpart/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/svgpart/template b/srcpkgs/svgpart/template
index 3fdf4e3bf3ea..9c22d1489b25 100644
--- a/srcpkgs/svgpart/template
+++ b/srcpkgs/svgpart/template
@@ -1,6 +1,6 @@
 # Template file for 'svgpart'
 pkgname=svgpart
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons qt5-host-tools qt5-qmake"
@@ -11,4 +11,4 @@ license="GPL-2.0-or-later"
 homepage="https://invent.kde.org/graphics/svgpart"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#svgpart"
 distfiles="${KDE_SITE}/release-service/${version}/src/svgpart-${version}.tar.xz"
-checksum=c0b9c275c2687df56b6cafec50010a96020634f5646de63264ea8c4f45e60e38
+checksum=785393f3ae348210dccecfceb8133fd848eb7d1ad39100ed2f0d430f713bd598

From dd4d1e2b8b5a269acd841328739901ecb5a0d351 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:58 +0200
Subject: [PATCH 34/39] umbrello: update to 22.04.3.

---
 srcpkgs/umbrello/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/umbrello/template b/srcpkgs/umbrello/template
index 5162649f719a..3f693a6d32b0 100644
--- a/srcpkgs/umbrello/template
+++ b/srcpkgs/umbrello/template
@@ -1,6 +1,6 @@
 # Template file for 'umbrello'
 pkgname=umbrello
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules gettext kcoreaddons kconfig kdoctools qt5-host-tools qt5-qmake"
@@ -11,7 +11,7 @@ license="GPL-2.0-or-later, LGPL-2.0-or-later, GFDL-1.2-or-later"
 homepage="https://umbrello.kde.org/"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#umbrello"
 distfiles="${KDE_SITE}/release-service/${version}/src/umbrello-${version}.tar.xz"
-checksum=3cbb9419155100ae521a2fa80a6c04f436de856a342e041cb86140d5294f9563
+checksum=3ca01205d8143cdd2cf48eb7096283cc79376d2cdffb53d084b7aac4c3ba2243
 python_version=2
 
 pre_configure() {

From 236f4835b3483faade7c1c2b52b72c33f95b53ce Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20W=C3=B3jcik?= <chocimier@tlen.pl>
Date: Sat, 9 Jul 2022 23:01:58 +0200
Subject: [PATCH 35/39] yakuake: update to 22.04.3.

---
 srcpkgs/yakuake/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/yakuake/template b/srcpkgs/yakuake/template
index 8e213a8c5d8f..1f150dba3493 100644
--- a/srcpkgs/yakuake/template
+++ b/srcpkgs/yakuake/template
@@ -1,6 +1,6 @@
 # Template file for 'yakuake'
 pkgname=yakuake
-version=22.04.2
+version=22.04.3
 revision=1
 build_style=cmake
 hostmakedepends="extra-cmake-modules kconfig kcoreaddons qt5-host-tools qt5-qmake gettext"
@@ -13,7 +13,7 @@ license="GPL-2.0-only, GFDL-1.2-only"
 homepage="https://kde.org/applications/system/org.kde.yakuake"
 changelog="https://kde.org/announcements/changelogs/gear/${version}/#yakuake"
 distfiles="${KDE_SITE}/release-service/${version}/src/yakuake-${version}.tar.xz"
-checksum=046c7f91d10363b8bd09c6eb254ad06587dcc26259a3e1952f5ba5c7f4b94b28
+checksum=33c8a28ee34b3a3e4fbc3c7b4addca4ba44e33794a1399f9a6fe995a8c44ac40
 
 build_options="wayland"
 build_options_default="wayland"

From f64ff867bab6fcce90c2ef6e7c04865d2b2b2032 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sigrid=20Solveig=20Hafl=C3=ADnud=C3=B3ttir?=
 <sigrid@ftrv.se>
Date: Mon, 4 Jul 2022 17:25:19 +0200
Subject: [PATCH 36/39] pipewire: update to 0.3.54

---
 srcpkgs/pipewire/template | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index 92d7b65434a9..c71faf1061ac 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,6 +1,6 @@
 # Template file for 'pipewire'
 pkgname=pipewire
-version=0.3.52
+version=0.3.54
 revision=1
 _pms_version=0.4.1
 build_style=meson
@@ -34,7 +34,7 @@ homepage="https://pipewire.org/"
 changelog="https://gitlab.freedesktop.org/pipewire/pipewire/-/raw/master/NEWS"
 distfiles="https://gitlab.freedesktop.org/pipewire/pipewire/-/archive/${version}/pipewire-${version}.tar.gz
  https://gitlab.freedesktop.org/pipewire/media-session/-/archive/${_pms_version}/media-session-${_pms_version}.tar.gz"
-checksum="024ec4b2f77e6049ba3acb569250943f736a366a05f4b8fce42e09e678b43039
+checksum="11a856ac3eb70b7cbeef12407f50d240d212016b6de3bb692e462251571f050e
  119c9216070b54018217552c7924f9888da270c3c4647c5e2b85ffa6b1574975"
 make_dirs="/var/lib/pipewire 0755 _pipewire _pipewire"
 system_accounts="_pipewire"

From de63a0751d17921484456d2dd5064cadd5c3fd68 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C4=90o=C3=A0n=20Tr=E1=BA=A7n=20C=C3=B4ng=20Danh?=
 <congdanhqx@gmail.com>
Date: Sun, 10 Jul 2022 11:57:28 +0700
Subject: [PATCH 37/39] qpdf: fix update-check pattern

---
 srcpkgs/qpdf/update | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 srcpkgs/qpdf/update

diff --git a/srcpkgs/qpdf/update b/srcpkgs/qpdf/update
new file mode 100644
index 000000000000..3fe6fc934cc0
--- /dev/null
+++ b/srcpkgs/qpdf/update
@@ -0,0 +1 @@
+pattern='/archive/refs/tags/release-qpdf-\K[\d.]+(?=\.tar\.gz")'

From 4e8a9ab11df8404bcf006a35a831856841f08fc7 Mon Sep 17 00:00:00 2001
From: lemmi <lemmi@nerd2nerd.org>
Date: Sun, 10 Jul 2022 07:28:00 +0200
Subject: [PATCH 38/39] pipewire: fix pipewire-pulse runit service

Append "/pulse" to PULSE_RUNTIME_PATH, since pulse-server doesn't do it
anymore, see:

https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/4821c7ca2fe5e25ba018e9f5d4967f08d6bb816f
---
 srcpkgs/pipewire/files/pipewire-pulse/run | 2 +-
 srcpkgs/pipewire/template                 | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/srcpkgs/pipewire/files/pipewire-pulse/run b/srcpkgs/pipewire/files/pipewire-pulse/run
index f718570498a9..ea0520e44cd2 100644
--- a/srcpkgs/pipewire/files/pipewire-pulse/run
+++ b/srcpkgs/pipewire/files/pipewire-pulse/run
@@ -3,5 +3,5 @@
 # for further information, please refer to the handbook
 ! [ -d /run/pulse ] && install -m 755 -g _pipewire -o _pipewire -d /run/pulse
 umask 002
-export PULSE_RUNTIME_PATH=/run
+export PULSE_RUNTIME_PATH=/run/pulse
 exec chpst -u _pipewire:_pipewire pipewire-pulse
diff --git a/srcpkgs/pipewire/template b/srcpkgs/pipewire/template
index c71faf1061ac..63a41a8e5189 100644
--- a/srcpkgs/pipewire/template
+++ b/srcpkgs/pipewire/template
@@ -1,7 +1,7 @@
 # Template file for 'pipewire'
 pkgname=pipewire
 version=0.3.54
-revision=1
+revision=2
 _pms_version=0.4.1
 build_style=meson
 configure_args="

From 37d9117d21144a6e317d672ad67f38479472127b Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sun, 10 Jul 2022 13:31:07 +0530
Subject: [PATCH 39/39] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..1875a60ab80f
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,12 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+build_style=gnu-makefile
+short_desc="Set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR PATCH] [Updated] New package: cloud-utils-0.33
  2022-07-09 14:41 [PR PATCH] " akhiljalagam
  2022-07-09 15:54 ` [PR PATCH] [Updated] " akhiljalagam
@ 2022-07-09 15:57 ` akhiljalagam
  2022-07-10  8:10 ` akhiljalagam
  2 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-09 15:57 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]

There is an updated pull request by akhiljalagam against master on the void-packages repository

https://github.com/akhiljalagam/void-packages master
https://github.com/void-linux/void-packages/pull/37944

New package: cloud-utils-0.33
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37944.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-37944.patch --]
[-- Type: text/x-diff, Size: 3290 bytes --]

From 0e4bc0081686868ca79b811b5851a480627cd2fe Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 20:09:29 +0530
Subject: [PATCH 1/3] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..f10df899c49d
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,23 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+#wrksrc=
+#create_wrksrc=yes
+build_style=gnu-makefile
+#configure_args=""
+#make_build_args=""
+#make_install_args=""
+#conf_files=""
+#make_dirs="/var/log/dir 0755 root root"
+hostmakedepends=""
+makedepends=""
+depends=""
+short_desc="This package provides a useful set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+#changelog=""
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From f41818d59e75bcc76cbdafaf30ed5da0391e500b Mon Sep 17 00:00:00 2001
From: Akhil Jalagam <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 21:24:24 +0530
Subject: [PATCH 2/3] Update srcpkgs/cloud-utils/template

Co-authored-by: meator <meator.dev@gmail.com>
---
 srcpkgs/cloud-utils/template | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
index f10df899c49d..6c1740365982 100644
--- a/srcpkgs/cloud-utils/template
+++ b/srcpkgs/cloud-utils/template
@@ -3,21 +3,10 @@ pkgname=cloud-utils
 version=0.33
 revision=1
 archs="x86_64"
-#wrksrc=
-#create_wrksrc=yes
 build_style=gnu-makefile
-#configure_args=""
-#make_build_args=""
-#make_install_args=""
-#conf_files=""
-#make_dirs="/var/log/dir 0755 root root"
-hostmakedepends=""
-makedepends=""
-depends=""
 short_desc="This package provides a useful set of utilities for interacting with a cloud"
 maintainer="akhil <akhil.j@outlook.in>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/canonical/cloud-utils/"
-#changelog=""
 distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
 checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From a25e3395c7b19269da169abe85a8386997e84861 Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 21:27:12 +0530
Subject: [PATCH 3/3] resolved xlint warnings

---
 srcpkgs/cloud-utils/template | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
index 6c1740365982..1875a60ab80f 100644
--- a/srcpkgs/cloud-utils/template
+++ b/srcpkgs/cloud-utils/template
@@ -4,7 +4,7 @@ version=0.33
 revision=1
 archs="x86_64"
 build_style=gnu-makefile
-short_desc="This package provides a useful set of utilities for interacting with a cloud"
+short_desc="Set of utilities for interacting with a cloud"
 maintainer="akhil <akhil.j@outlook.in>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/canonical/cloud-utils/"

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PR PATCH] [Updated] New package: cloud-utils-0.33
  2022-07-09 14:41 [PR PATCH] " akhiljalagam
@ 2022-07-09 15:54 ` akhiljalagam
  2022-07-09 15:57 ` akhiljalagam
  2022-07-10  8:10 ` akhiljalagam
  2 siblings, 0 replies; 17+ messages in thread
From: akhiljalagam @ 2022-07-09 15:54 UTC (permalink / raw)
  To: ml

[-- Attachment #1: Type: text/plain, Size: 1231 bytes --]

There is an updated pull request by akhiljalagam against master on the void-packages repository

https://github.com/akhiljalagam/void-packages master
https://github.com/void-linux/void-packages/pull/37944

New package: cloud-utils-0.33
<!-- Uncomment relevant sections and delete options which are not applicable -->

#### Testing the changes
- I tested the changes in this PR: **YES**

#### New package
- This new package conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements): **YES**

<!-- Note: If the build is likely to take more than 2 hours, please add ci skip tag as described in
https://github.com/void-linux/void-packages/blob/master/CONTRIBUTING.md#continuous-integration
and test at least one native build and, if supported, at least one cross build.
Ignore this section if this PR is not skipping CI.
-->
<!--
#### Local build testing
- I built this PR locally for my native architecture, (ARCH-LIBC)
- I built this PR locally for these architectures (if supported. mark crossbuilds):
  - aarch64-musl
  - armv7l
  - armv6l-musl
-->


A patch file from https://github.com/void-linux/void-packages/pull/37944.patch is attached

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-master-37944.patch --]
[-- Type: text/x-diff, Size: 2473 bytes --]

From 0e4bc0081686868ca79b811b5851a480627cd2fe Mon Sep 17 00:00:00 2001
From: akhil <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 20:09:29 +0530
Subject: [PATCH 1/2] New package: cloud-utils-0.33

---
 srcpkgs/cloud-utils/template | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 srcpkgs/cloud-utils/template

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
new file mode 100644
index 000000000000..f10df899c49d
--- /dev/null
+++ b/srcpkgs/cloud-utils/template
@@ -0,0 +1,23 @@
+# Template file for 'cloud-utils'
+pkgname=cloud-utils
+version=0.33
+revision=1
+archs="x86_64"
+#wrksrc=
+#create_wrksrc=yes
+build_style=gnu-makefile
+#configure_args=""
+#make_build_args=""
+#make_install_args=""
+#conf_files=""
+#make_dirs="/var/log/dir 0755 root root"
+hostmakedepends=""
+makedepends=""
+depends=""
+short_desc="This package provides a useful set of utilities for interacting with a cloud"
+maintainer="akhil <akhil.j@outlook.in>"
+license="GPL-3.0-or-later"
+homepage="https://github.com/canonical/cloud-utils/"
+#changelog=""
+distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
+checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

From f41818d59e75bcc76cbdafaf30ed5da0391e500b Mon Sep 17 00:00:00 2001
From: Akhil Jalagam <akhil.j@outlook.in>
Date: Sat, 9 Jul 2022 21:24:24 +0530
Subject: [PATCH 2/2] Update srcpkgs/cloud-utils/template

Co-authored-by: meator <meator.dev@gmail.com>
---
 srcpkgs/cloud-utils/template | 11 -----------
 1 file changed, 11 deletions(-)

diff --git a/srcpkgs/cloud-utils/template b/srcpkgs/cloud-utils/template
index f10df899c49d..6c1740365982 100644
--- a/srcpkgs/cloud-utils/template
+++ b/srcpkgs/cloud-utils/template
@@ -3,21 +3,10 @@ pkgname=cloud-utils
 version=0.33
 revision=1
 archs="x86_64"
-#wrksrc=
-#create_wrksrc=yes
 build_style=gnu-makefile
-#configure_args=""
-#make_build_args=""
-#make_install_args=""
-#conf_files=""
-#make_dirs="/var/log/dir 0755 root root"
-hostmakedepends=""
-makedepends=""
-depends=""
 short_desc="This package provides a useful set of utilities for interacting with a cloud"
 maintainer="akhil <akhil.j@outlook.in>"
 license="GPL-3.0-or-later"
 homepage="https://github.com/canonical/cloud-utils/"
-#changelog=""
 distfiles="https://github.com/canonical/cloud-utils/archive/refs/tags/${version}.tar.gz"
 checksum=338770d637788466aacfcbcec17a8d0046f92a13cc3b25fce8fceadb02a7339f

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-10-11  7:44 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-10  8:43 [PR PATCH] New package: cloud-utils-0.33 akhiljalagam
2022-07-10 23:47 ` [PR REVIEW] " classabbyamp
2022-07-11  3:53 ` akhilops
2022-07-11  3:54 ` akhilops
2022-07-11  3:54 ` akhilops
2022-07-11  3:57 ` akhilops
2022-07-11  4:01 ` classabbyamp
2022-07-11  4:02 ` classabbyamp
2022-07-11  4:03 ` classabbyamp
2022-07-13 13:27 ` [PR PATCH] [Updated] " akhiljalagam
2022-07-13 18:11 ` meator
2022-07-14  4:09 ` akhiljalagam
2022-07-14  4:10 ` akhiljalagam
2022-10-11  7:44 ` Chocimier
  -- strict thread matches above, loose matches on Subject: below --
2022-07-09 14:41 [PR PATCH] " akhiljalagam
2022-07-09 15:54 ` [PR PATCH] [Updated] " akhiljalagam
2022-07-09 15:57 ` akhiljalagam
2022-07-10  8:10 ` akhiljalagam

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).