<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>239103</bug_id>
          
          <creation_ts>2022-04-11 21:06:21 -0700</creation_ts>
          <short_desc>[WPE] Add support for generating breakpad dumps</short_desc>
          <delta_ts>2022-08-12 10:13:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>240367</dependson>
    
    <dependson>240444</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Lauro Moura">lmoura</reporter>
          <assigned_to name="Lauro Moura">lmoura</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>magomez</cc>
    
    <cc>pnormand</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>vivek_arumugam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1860548</commentid>
    <comment_count>0</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-11 21:06:21 -0700</bug_when>
    <thetext>[WPE] Add support for generating breakpad dumps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860549</commentid>
    <comment_count>1</comment_count>
      <attachid>457310</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-11 21:07:12 -0700</bug_when>
    <thetext>Created attachment 457310
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860738</commentid>
    <comment_count>2</comment_count>
      <attachid>457310</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-12 11:18:08 -0700</bug_when>
    <thetext>Comment on attachment 457310
Patch

Needs a few tweaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861082</commentid>
    <comment_count>3</comment_count>
      <attachid>457522</attachid>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-13 04:35:48 -0700</bug_when>
    <thetext>Created attachment 457522
Updated patch

Updated patch fixing a compilation issue and adding missing file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861086</commentid>
    <comment_count>4</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-04-13 04:50:52 -0700</bug_when>
    <thetext>Is breakpad shipped in the SDK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861092</commentid>
    <comment_count>5</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-13 05:45:23 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Is breakpad shipped in the SDK?

Not yet. I tested it against a breakpad compiled outside the sdk and it worked fine.

Adding it to the SDK would be nice instead of compiling it manually. Maybe in a followup patch, to make it easier to backport this to older WPE versions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861094</commentid>
    <comment_count>6</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-04-13 05:59:58 -0700</bug_when>
    <thetext>(In reply to Philippe Normand from comment #4)
&gt; Is breakpad shipped in the SDK?

The following was good enough to have breakpad built, here with
“bst-wrapper build sdk/breakpad.bst”, but I haven&apos;t tested any
further than that:

---
# Tools/buildstream/elements/sdk/breakpad.bst
kind: autotools

build-depends:
- freedesktop-sdk.bst:public-stacks/buildsystem-autotools.bst

sources:
- kind: git
  url: https://chromium.googlesource.com/breakpad/breakpad
  ref: d8a7c0548c7b30689df9a65e52b7ab9db37ab9e8
  track: chrome_99
- kind: git
  url: https://chromium.googlesource.com/linux-syscall-support
  ref: e1e7b0ad8ee99a875b272c8e33e308472e897660
  track: main
  directory: src/third_party/lss

public:
  bst:
    integration-commands:
    - |
      minidump-2-core -v</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861095</commentid>
    <comment_count>7</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-04-13 06:00:52 -0700</bug_when>
    <thetext>(In reply to Lauro Moura from comment #5)
&gt; (In reply to Philippe Normand from comment #4)
&gt; &gt; Is breakpad shipped in the SDK?
&gt; 
&gt; Not yet. I tested it against a breakpad compiled outside the sdk and it
&gt; worked fine.
&gt; 
&gt; Adding it to the SDK would be nice instead of compiling it manually. Maybe
&gt; in a followup patch, to make it easier to backport this to older WPE
&gt; versions?

Follow-up patch SGTM. Feel free to pick the example buildstream element
source I copied in my previous comment as basis for the patch :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861098</commentid>
    <comment_count>8</comment_count>
      <attachid>457522</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-04-13 06:28:22 -0700</bug_when>
    <thetext>Comment on attachment 457522
Updated patch

View in context: https://bugs.webkit.org/attachment.cgi?id=457522&amp;action=review

&gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:35
&gt; +}

You could write this function as an inline static lambda below.

&gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:39
&gt; +    static google_breakpad::ExceptionHandler* exceptionHandler = nullptr;

You&apos;ll want to use WTF::MainThreadLazyNeverDestroyed&lt;T&gt; here, which will be
safer and should make it unneeded to apply the UNUSED_PARAM() macro. In this
case the initialization of the static should go into a std::once() invocation.

&gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:58
&gt; +#ifdef SIGPIPE

Why does SIGPIPE need to be ignored? A comment here explaining why would
go a long way.

&gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:63
&gt; +}

Instead of passing “breakpadCallback” from above, you can replace it with a static
lambda. If you combine it with the NeverDestroyed stuff suggested above, you can
call the static “construct()” template method:

   exceptionHandler.construct(google_breakpad::MinidumpDescriptor(breakpadMinidumpDir.utf8().data()), nullptr,
       [](const google_breakpad::MinidumpDescriptor&amp;, void*, bool succeeded) -&gt; bool {
           return succeeded;
       }, nullptr, true, -1);

&gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.h:27
&gt; +WK_EXPORT void installExceptionHandler();

The name of the function does not convey what&apos;s the goal of the handler. A better name
would be WebKit::installBreakpadExceptionHandler().

&gt; Source/WebKit/WebProcess/wpe/WebProcessMainWPE.cpp:81
&gt; +#endif

How about processes other than NetworkProcess and WebProcess? For example some folks are already
working on enabling GPUProcess (as per bug #238593) and we should cover crashes from there as well.

To avoid repeating code, this should go into AuxiliaryProcess::platformInitialize(), or maybe
even in AuxiliaryProcess::initialize() -- see Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp
Breakpad works in most Unix-y systems (even Darwin) there is nothing about it specific to the
WPE or GTK ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1861102</commentid>
    <comment_count>9</comment_count>
      <attachid>457522</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2022-04-13 06:41:07 -0700</bug_when>
    <thetext>Comment on attachment 457522
Updated patch

View in context: https://bugs.webkit.org/attachment.cgi?id=457522&amp;action=review

&gt; Source/cmake/OptionsWPE.cmake:79
&gt; +WEBKIT_OPTION_DEFINE(ENABLE_BREAKPAD &quot;Whether or not enable breakpad minidump support.&quot; PUBLIC OFF)

Having it disabled on all ports will encourage build breaks and bitrotting... Can we enable this at least in WPE developer builds once the dependency is in the SDK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864938</commentid>
    <comment_count>10</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-04-27 14:25:48 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #8)
&gt; Comment on attachment 457522 [details]
&gt; Updated patch
&gt; 

snip.

&gt; &gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:58
&gt; &gt; +#ifdef SIGPIPE
&gt; 
&gt; Why does SIGPIPE need to be ignored? A comment here explaining why would
&gt; go a long way.
&gt; 

It&apos;s used to avoid breakpad&apos;s handler not being invoked by early exits like when journald emits SIGPIPE. From https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html#Stream%20logging:

&gt; In order to react gracefully in this (journald stopped) case it is recommended that programs logging to standard output/error ignore such errors. If the SIGPIPE UNIX signal handler is not blocked or turned off, such write attempts will also result in such process signals being generated, see signal(7). To mitigate this issue, systemd service manager explicitly turns off the SIGPIPE signal for all invoked processes by default (this may be changed for each unit individually via the IgnoreSIGPIPE= option, see systemd.exec(5) for details).

I&apos;ll add a comment in the updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865090</commentid>
    <comment_count>11</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2022-04-28 01:37:01 -0700</bug_when>
    <thetext>(In reply to Lauro Moura from comment #10)
&gt; (In reply to Adrian Perez from comment #8)
&gt; &gt; Comment on attachment 457522 [details]
&gt; &gt; Updated patch
&gt; &gt; 
&gt; 
&gt; snip.
&gt; 
&gt; &gt; &gt; Source/WebKit/Shared/unix/BreakpadExceptionHandler.cpp:58
&gt; &gt; &gt; +#ifdef SIGPIPE
&gt; &gt; 
&gt; &gt; Why does SIGPIPE need to be ignored? A comment here explaining why would
&gt; &gt; go a long way.
&gt; &gt; 
&gt; 
&gt; It&apos;s used to avoid breakpad&apos;s handler not being invoked by early exits like
&gt; when journald emits SIGPIPE. From
&gt; https://www.freedesktop.org/software/systemd/man/systemd-journald.service.
&gt; html#Stream%20logging:
&gt; 
&gt; &gt; In order to react gracefully in this (journald stopped) case it is recommended that programs logging to standard output/error ignore such errors. If the SIGPIPE UNIX signal handler is not blocked or turned off, such write attempts will also result in such process signals being generated, see signal(7). To mitigate this issue, systemd service manager explicitly turns off the SIGPIPE signal for all invoked processes by default (this may be changed for each unit individually via the IgnoreSIGPIPE= option, see systemd.exec(5) for details).

Thanks for the explanation. This means we want to *always* ignore SIGPIPE
in subprocesses, not only when ENABLE(BREAKPAD) is in effect. A good place
to setup this could be Source/WebKit/Shared/unix/AuxiliaryProcessMain.cpp;
and while at it let&apos;s use sigaction() instead of signal() -- also if you
prefer to split the part that configures SIGPIPE to be ignored into a
separate patch, that would be fine =)

&gt; I&apos;ll add a comment in the updated patch.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1888044</commentid>
    <comment_count>12</comment_count>
    <who name="Lauro Moura">lmoura</who>
    <bug_when>2022-08-01 03:46:46 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/2893</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1890916</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-12 10:12:06 -0700</bug_when>
    <thetext>Committed 253381@main (b4d401778976): &lt;https://commits.webkit.org/253381@main&gt;

Reviewed commits have been landed. Closing PR #2893 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1890917</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-12 10:13:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/98575006&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457310</attachid>
            <date>2022-04-11 21:07:12 -0700</date>
            <delta_ts>2022-04-12 11:18:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239103-20220412010711.patch</filename>
            <type>text/plain</type>
            <size>11092</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdlN2U3MTNhY2Y1NjVkYmEx
NGE3MDIwNGM3M2Y2ZGIzMDZiZDUwMTcuLmY1OTEwYmM4ZjIxOTM1NjhhZWFiNjNlM2U3YWI3MmVm
MDc3MjYzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMTEgIExhdXJvIE1v
dXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQWRkIHN1cHBvcnQgZm9y
IGdlbmVyYXRpbmcgYnJlYWtwYWQgZHVtcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlYmFzZSBvZiBvcmlnaW5hbCBwYXRjaCBmcm9tIFZpdmVrIEFy
dW11Z2FtIGZyb20KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dlYlBsYXRmb3JtRm9yRW1i
ZWRkZWQvV1BFV2ViS2l0L3B1bGwvODA4CisKKyAgICAgICAgQnJlYWtwYWQgaXMgYSBsaWJyYXJ5
IGFuZCB0b29sIHN1aXRlIHRoYXQgYWxsb3dzIGNvbGxlY3Rpb24gb2YKKyAgICAgICAgY3Jhc2gg
ZHVtcHMgaW4gYSBjb21wYWN0IGZvcm1hdCBmcm9tIGFwcGxpY2F0aW9ucyBzdHJpcHBlZCBvZgor
ICAgICAgICBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiBhdCBydW50aW1lLiBJdCB3b3JrcyBieSBwcm9j
ZXNzaW5nIHRoZSBkZWJ1ZworICAgICAgICBpbmZvcm1hdGlvbiBnZW5lcmF0ZWQgaW4gdGhlIGJ1
aWxkIGJlZm9yZSBpdCdzIHN0cmlwcGVkIGFuZAorICAgICAgICBwcm9jZXNzaW5nIHRvZ2V0aGVy
IHdpdGggdGhlIG1pbmlkdW1wLgorCisgICAgICAgIFRvIGVuYWJsZSwgdXNlIHRoZSBjbWFrZSBv
cHRpb24gYC1ERU5BQkxFX0JSRUFLUEFEYCBvciB0aGUKKyAgICAgICAgYGJ1aWxkLXdlYmtpdGAg
YC0tZW5hYmxlLWJyZWFrcGFkYCBvcHRpb24uIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlCisgICAg
ICAgIG1pbmlkdW1wcyB3aWxsIGJlIHN0b3JlZCBjYW4gYmUgc2V0IHdpdGggYC1EQlJFQUtQQURf
TUlOSURVTVBfRElSYAorICAgICAgICBjbWFrZSBidWlsZCBvcHRpb24gYW5kIHRoZSBgJEJSRUFL
UEFEX01JTklEVU1QX0RJUmAgZW52aXJvbm1lbnQKKyAgICAgICAgdmFyaWFibGUuCisKKyAgICAg
ICAgKiBTaGFyZWQvdW5peC9CcmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBTaGFyZWQvdW5peC9CcmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuaDogQWRkZWQuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKToKKyAgICAgICAgKiBQbGF0Zm9y
bVdQRS5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NNYWluKToKKyAgICAgICAgKiB3ZWJraXRn
bGliLXN5bWJvbHMubWFwOgorCiAyMDIyLTA0LTExICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEVuc3VyZSByZXF1ZXN0UGluIGNhbGxiYWNrIG9u
IG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKaW5kZXggZjk4Y2Q2NWEwZWExMmZi
ODVkZjM5MDFmMGVmMjJmMzgwZDU0ZjU5My4uMjk0MTQ0YzNhZTJkZDY5MmNhOGU3MjBjNjE2N2Vk
ODNkOWU5OTM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcApAQCAtMzEsNiArMzEsMTAgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAKKyNpZiBFTkFCTEUoQlJFQUtQQUQpCisjaW5jbHVkZSAidW5peC9C
cmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKEdDUllQVCkKICNp
bmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9Jbml0aWFsaXphdGlvbi5oPgogI2VuZGlmCkBAIC01
OCw2ICs2Miw5IEBAIHB1YmxpYzoKIAogaW50IE5ldHdvcmtQcm9jZXNzTWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiB7CisjaWYgRU5BQkxFKEJSRUFLUEFEKQorICAgIGluc3RhbGxFeGNlcHRp
b25IYW5kbGVyKCk7CisjZW5kaWYKICAgICByZXR1cm4gQXV4aWxpYXJ5UHJvY2Vzc01haW48TmV0
d29ya1Byb2Nlc3NNYWluU291cD4oYXJnYywgYXJndik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNt
YWtlCmluZGV4IDk5M2MyMWVhOWRlMTM4NjJmM2YzNjU3ZDZiNTI4NGEyMWMzZmUwNmUuLjk3ZWE1
MTg2Yjc2M2YzNTI5MGJhY2ViMzJhZDFkODg3ZTFlMTFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMzg1LDYgKzM4NSwxNSBAQCBpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKICAgICAp
CiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX0JSRUFLUEFEKQorICAgIGxpc3QoQVBQRU5EIFdlYktp
dF9TT1VSQ0VTCisgICAgICAgIFNoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0aW9uSGFuZGxlci5j
cHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X0xJQlJBUklFUworICAgICAgICBCcmVh
a3BhZDo6QnJlYWtwYWQKKyAgICApCitlbmRpZiAoKQorCiBXRUJLSVRfQlVJTERfSU5TUEVDVE9S
X0dSRVNPVVJDRVMoJHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NPVVJDRVNfRElSfSkKIGxpc3Qo
QVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMKICAgICAke1dl
Ykluc3BlY3RvclVJX0RFUklWRURfU09VUkNFU19ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRs
ZS5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0
aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0
aW9uSGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzMwMDdiZDVmYzlmOWE4ZjY1NDU1MmU4Zjk3ZDI4
OGNmMjk4NDljZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgv
QnJlYWtwYWRFeGNlcHRpb25IYW5kbGVyLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogSWYg
bm90IHN0YXRlZCBvdGhlcndpc2UgaW4gdGhpcyBmaWxlIG9yIHRoaXMgY29tcG9uZW50J3MgbGlj
ZW5zZSBmaWxlIHRoZQorICogZm9sbG93aW5nIGNvcHlyaWdodCBhbmQgbGljZW5zZXMgYXBwbHk6
CisgKgorICogQ29weXJpZ2h0IDIwMjAgUkRLIE1hbmFnZW1lbnQKKyAqCisgKiBMaWNlbnNlZCB1
bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAq
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUg
TGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoK
KyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywg
c29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQK
KyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZiBFTkFCTEUoQlJF
QUtQQUQpCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnJlYWtwYWRFeGNlcHRpb25I
YW5kbGVyLmgiCisKKyNpbmNsdWRlIDxjbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu
ZGxlci5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworLy8gY2FsbGVkIGJ5ICdnb29nbGVfYnJlYWtwYWQ6OkV4
Y2VwdGlvbkhhbmRsZXInIG9uIGV2ZXJ5IGNyYXNoCitzdGF0aWMgYm9vbCBicmVha3BhZENhbGxi
YWNrKGNvbnN0IGdvb2dsZV9icmVha3BhZDo6TWluaWR1bXBEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
LCB2b2lkKiBjb250ZXh0LCBib29sIHN1Y2NlZWRlZCkKK3sKKyAgICAodm9pZCkgZGVzY3JpcHRv
cjsKKyAgICAodm9pZCkgY29udGV4dDsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lk
IGluc3RhbGxFeGNlcHRpb25IYW5kbGVyKCkKK3sKKyAgICBzdGF0aWMgZ29vZ2xlX2JyZWFrcGFk
OjpFeGNlcHRpb25IYW5kbGVyKiBleGVjcHRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBzdGF0
aWMgU3RyaW5nIGJyZWFrcGFkTWluaWR1bXBEaXIoZ2V0ZW52KCJCUkVBS1BBRF9NSU5JRFVNUF9E
SVIiKSk7CisKKyNpZmRlZiBCUkVBS1BBRF9NSU5JRFVNUF9ESVIKKyAgICBpZiAoYnJlYWtwYWRN
aW5pZHVtcERpci5pc0VtcHR5KCkpCisgICAgICAgIGJyZWFrcGFkTWluaWR1bXBEaXIgPSBTdHJp
bmcoQlJFQUtQQURfTUlOSURVTVBfRElSKTsKKyNlbmRpZgorCisgICAgaWYgKGJyZWFrcGFkTWlu
aWR1bXBEaXIuaXNFbXB0eSgpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiQnJlYWtwYWQgZGly
IGlzIG5vdCBzZXQgb3IgZW1wdHksIG5vdCBpbnN0YWxsaW5nIGhhbmRsZXIiKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KGJy
ZWFrcGFkTWluaWR1bXBEaXIsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkgeworICAgICAgICBXVEZMb2dBbHdheXMoIkJyZWFrcGFkIGRpciBcIiVzXCIgZG9lc24n
dCBleGlzdCwgbm90IGluc3RhbGxpbmcgaGFuZGxlciIsIGJyZWFrcGFkTWluaWR1bXBEaXIudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZmRlZiBTSUdQSVBFCisg
ICAgc2lnbmFsKFNJR1BJUEUsIFNJR19JR04pOworI2VuZGlmCisKKyAgICBleGVjcHRpb25IYW5k
bGVyID0gbmV3IGdvb2dsZV9icmVha3BhZDo6RXhjZXB0aW9uSGFuZGxlcihnb29nbGVfYnJlYWtw
YWQ6Ok1pbmlkdW1wRGVzY3JpcHRvcihicmVha3BhZE1pbmlkdW1wRGlyLnV0ZjgoKS5kYXRhKCkp
LCBudWxscHRyLCBicmVha3BhZENhbGxiYWNrLCBudWxscHRyLCB0cnVlLCAtMSk7Cit9Cit9Cisj
ZW5kaWYKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvdW5peC9CcmVha3BhZEV4
Y2VwdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQnJlYWtwYWRFeGNl
cHRpb25IYW5kbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjA2NjVkYTM2NTY1ZTlmZmEwNzJmMzVlN2U2YWZl
YzY5YjVlNTMwMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgv
QnJlYWtwYWRFeGNlcHRpb25IYW5kbGVyLmgKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIElmIG5v
dCBzdGF0ZWQgb3RoZXJ3aXNlIGluIHRoaXMgZmlsZSBvciB0aGlzIGNvbXBvbmVudCdzIGxpY2Vu
c2UgZmlsZSB0aGUKKyAqIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2VzIGFwcGx5Ogor
ICoKKyAqIENvcHlyaWdodCAyMDIwIFJESyBNYW5hZ2VtZW50CisgKgorICogTGljZW5zZWQgdW5k
ZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5
b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExp
Y2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisg
KiBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxl
c3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNv
ZnR3YXJlCisgKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBv
biBhbiAiQVMgSVMiIEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMg
T0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vu
c2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisg
KiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShCUkVBS1BBRCkKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitXS19FWFBPUlQgdm9pZCBpbnN0YWxsRXhjZXB0aW9uSGFuZGxlcigp
OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCUkVBS1BBRCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5X
UEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5j
cHAKaW5kZXggZmY1ZWVlYjBmMGFiYjgzMDc1OTBmYjkxOThhNTE5YjQ0NTg5NjZiNy4uNGNhODM5
ZDk1NDBhOTRlYTlhOWM2NGNhM2ViYmIxYmM2YmEzNjIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTMxLDYgKzMxLDEw
IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPGdsaWIuaD4KIAorI2lmIEVO
QUJMRShCUkVBS1BBRCkKKyNpbmNsdWRlICJ1bml4L0JyZWFrcGFkRXhjZXB0aW9uSGFuZGxlci5o
IgorI2VuZGlmCisKICNpZiBVU0UoR0NSWVBUKQogI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0
L0luaXRpYWxpemF0aW9uLmg+CiAjZW5kaWYKQEAgLTcyLDYgKzc2LDkgQEAgcHVibGljOgogCiBp
bnQgV2ViUHJvY2Vzc01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogeworI2lmIEVOQUJMRShC
UkVBS1BBRCkKKyAgICBpbnN0YWxsRXhjZXB0aW9uSGFuZGxlcigpOworI2VuZGlmCiAgICAgcmV0
dXJuIEF1eGlsaWFyeVByb2Nlc3NNYWluPFdlYlByb2Nlc3NNYWluV1BFPihhcmdjLCBhcmd2KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93ZWJraXRnbGliLXN5bWJvbHMubWFwIGIv
U291cmNlL1dlYktpdC93ZWJraXRnbGliLXN5bWJvbHMubWFwCmluZGV4IDFiZTI5NjM1NDVmNjI4
MDFiN2ZkNDFkNjZjYzAwODYzZWU1OTM2NGMuLmM1NGQwZTQwNThhZGY4MWRiNzZmZDk1ZGIxNzgy
ZDVhNjg1MDExNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2Via2l0Z2xpYi1zeW1ib2xz
Lm1hcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dlYmtpdGdsaWItc3ltYm9scy5tYXAKQEAgLTksNiAr
OSw3IEBAIGdsb2JhbDoKICAgICAiV2ViS2l0OjpXZWJLaXRFeHRlbnNpb25NYW5hZ2VyOjppbml0
aWFsaXplKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGUqLCBBUEk6Ok9iamVjdCopIjsKICAgICAiV2Vi
S2l0OjpXZWJLaXRFeHRlbnNpb25NYW5hZ2VyOjpzaW5nbGV0b24oKSI7CiAgICAgIldlYktpdDo6
V2ViUHJvY2Vzc01haW4oaW50LCBjaGFyKiopIjsKKyAgICAiV2ViS2l0OjppbnN0YWxsRXhjZXB0
aW9uSGFuZGxlcigpIjsKICAgfTsKIGxvY2FsOgogICAqOwpkaWZmIC0tZ2l0IGEvU291cmNlL2Nt
YWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQppbmRl
eCA3M2JiNjgzMjRlYTBmOTQ5ZTMwNDM2OThiNjAzZDBjM2I3YjNjY2Q1Li44YjQxNGQ2NjgzZjQ1
ZTY1OGE1Yjc5ODc5NTYyMGQ2MzBhNTY5OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvT3B0
aW9uc1dQRS5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpAQCAtNzYs
NiArNzYsNyBAQCBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCWFIg
UFJJVkFURSAke0VOQUJMRV9FWFBFUklNRU5UQUxfRkVBVAogIyBQdWJsaWMgb3B0aW9ucyBzcGVj
aWZpYyB0byB0aGUgV1BFIHBvcnQuIERvIG5vdCBhZGQgYW55IG9wdGlvbnMgaGVyZSB1bmxlc3MK
ICMgdGhlcmUgaXMgYSBzdHJvbmcgcmVhc29uIHdlIHNob3VsZCBzdXBwb3J0IGNoYW5naW5nIHRo
ZSB2YWx1ZSBvZiB0aGUgb3B0aW9uLAogIyBhbmQgdGhlIG9wdGlvbiBpcyBub3QgcmVsZXZhbnQg
dG8gYW55IG90aGVyIFdlYktpdCBwb3J0cy4KK1dFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9C
UkVBS1BBRCAiV2hldGhlciBvciBub3QgZW5hYmxlIGJyZWFrcGFkIG1pbmlkdW1wIHN1cHBvcnQu
IiBQVUJMSUMgT0ZGKQogV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0RPQ1VNRU5UQVRJT04g
IldoZXRoZXIgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvbi4iIFBVQkxJQyBPTikKIFdFQktJVF9P
UFRJT05fREVGSU5FKEVOQUJMRV9JTlRST1NQRUNUSU9OICJXaGV0aGVyIHRvIGVuYWJsZSBHT2Jq
ZWN0IGludHJvc3BlY3Rpb24uIiBQVUJMSUMgT04pCiBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFC
TEVfSk9VUk5BTERfTE9HICJXaGV0aGVyIHRvIGVuYWJsZSBqb3VybmFsZCBsb2dnaW5nIiBQVUJM
SUMgT04pCkBAIC0yNzcsNiArMjc4LDE1IEBAIGlmIChVU0VfTENNUykKICAgICBlbmRpZiAoKQog
ZW5kaWYgKCkKIAoraWYgKEVOQUJMRV9CUkVBS1BBRCkKKyAgICBmaW5kX3BhY2thZ2UoQnJlYWtw
YWQgUkVRVUlSRUQpCisgICAgaWYgKEJSRUFLUEFEX01JTklEVU1QX0RJUikKKyAgICAgICAgYWRk
X2RlZmluaXRpb25zKC1EQlJFQUtQQURfTUlOSURVTVBfRElSPSIke0JSRUFLUEFEX01JTklEVU1Q
X0RJUn0iKQorICAgIGVsc2UgKCkKKyAgICAgICAgbWVzc2FnZShTVEFUVVMgIkJSRUFLUEFEX01J
TklEVU1QX0RJUiBpcyBub3Qgc2V0IikKKyAgICBlbmRpZiAoKQorZW5kaWYgKCkKKwogYWRkX2Rl
ZmluaXRpb25zKC1EQlVJTERJTkdfV1BFX189MSkKIGFkZF9kZWZpbml0aW9ucygtREdFVFRFWFRf
UEFDS0FHRT0iV1BFIikKIGFkZF9kZWZpbml0aW9ucygtREpTQ19HTElCX0FQSV9FTkFCTEVEKQpk
aWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGJkYWI1YmQxN2IzZTRhOTBi
ZGU5ZGU3MTIzZDI5OTgzZDg0MTg2YTcuLjdlZjIxNzhjNWQ1NGQ1OTE5OTkwYTVjZWU4ODM1OTRh
ZDcxOTM4YWUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOCBAQAorMjAyMi0wNC0xMSAgTGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbV1BFXSBBZGQgc3VwcG9ydCBmb3IgZ2VuZXJhdGluZyBicmVha3BhZCBkdW1wcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MTAzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlIG9m
IG9yaWdpbmFsIHBhdGNoIGZyb20gVml2ZWsgQXJ1bXVnYW0gZnJvbQorICAgICAgICBodHRwczov
L2dpdGh1Yi5jb20vV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVXZWJLaXQvcHVsbC84MDgKKwor
ICAgICAgICBCcmVha3BhZCBpcyBhIGxpYnJhcnkgYW5kIHRvb2wgc3VpdGUgdGhhdCBhbGxvd3Mg
Y29sbGVjdGlvbiBvZgorICAgICAgICBjcmFzaCBkdW1wcyBpbiBhIGNvbXBhY3QgZm9ybWF0IGZy
b20gYXBwbGljYXRpb25zIHN0cmlwcGVkIG9mCisgICAgICAgIG9mIGRlYnVnIGluZm9ybWF0aW9u
IGF0IHJ1bnRpbWUuIEl0IHdvcmtzIGJ5IHByb2Nlc3NpbmcgdGhlIGRlYnVnCisgICAgICAgIGlu
Zm9ybWF0aW9uIGdlbmVyYXRlZCBpbiB0aGUgYnVpbGQgYmVmb3JlIGl0J3Mgc3RyaXBwZWQgYW5k
CisgICAgICAgIHByb2Nlc3NpbmcgdG9nZXRoZXIgd2l0aCB0aGUgbWluaWR1bXAuCisKKyAgICAg
ICAgVG8gZW5hYmxlLCB1c2UgdGhlIGNtYWtlIG9wdGlvbiBgLURFTkFCTEVfQlJFQUtQQURgIG9y
IHRoZQorICAgICAgICBgYnVpbGQtd2Via2l0YCBgLS1lbmFibGUtYnJlYWtwYWRgIG9wdGlvbi4g
VGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUKKyAgICAgICAgbWluaWR1bXBzIHdpbGwgYmUgc3RvcmVk
IGNhbiBiZSBzZXQgd2l0aCBgLURCUkVBS1BBRF9NSU5JRFVNUF9ESVJgCisgICAgICAgIGNtYWtl
IGJ1aWxkIG9wdGlvbiBhbmQgdGhlIGAkQlJFQUtQQURfTUlOSURVTVBfRElSYCBlbnZpcm9ubWVu
dAorICAgICAgICB2YXJpYWJsZS4KKworICAgICAgICAqIFNvdXJjZS9jbWFrZS9PcHRpb25zV1BF
LmNtYWtlOiBFeHBvc2UgYW4gb3B0aW9uIHRvIGVuYWJsZSBicmVha3BhZAorICAgICAgICBzdXBw
b3J0LCBkaXNhYmxlZCBieSBkZWZhdWx0LgorCiAyMDIyLTA0LTA5ICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBNaXNzaW5n
IGludGVyLW1vZHVsZSBkb2N1bWVudGF0aW9uIGxpbmtzCg==
</data>
<flag name="commit-queue"
          id="485895"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457522</attachid>
            <date>2022-04-13 04:35:48 -0700</date>
            <delta_ts>2022-04-13 06:28:22 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-239103-20220413083547.patch</filename>
            <type>text/plain</type>
            <size>12476</size>
            <attacher name="Lauro Moura">lmoura</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdlN2U3MTNhY2Y1NjVkYmEx
NGE3MDIwNGM3M2Y2ZGIzMDZiZDUwMTcuLmY1OTEwYmM4ZjIxOTM1NjhhZWFiNjNlM2U3YWI3MmVm
MDc3MjYzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjItMDQtMTEgIExhdXJvIE1v
dXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQWRkIHN1cHBvcnQgZm9y
IGdlbmVyYXRpbmcgYnJlYWtwYWQgZHVtcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFJlYmFzZSBvZiBvcmlnaW5hbCBwYXRjaCBmcm9tIFZpdmVrIEFy
dW11Z2FtIGZyb20KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dlYlBsYXRmb3JtRm9yRW1i
ZWRkZWQvV1BFV2ViS2l0L3B1bGwvODA4CisKKyAgICAgICAgQnJlYWtwYWQgaXMgYSBsaWJyYXJ5
IGFuZCB0b29sIHN1aXRlIHRoYXQgYWxsb3dzIGNvbGxlY3Rpb24gb2YKKyAgICAgICAgY3Jhc2gg
ZHVtcHMgaW4gYSBjb21wYWN0IGZvcm1hdCBmcm9tIGFwcGxpY2F0aW9ucyBzdHJpcHBlZCBvZgor
ICAgICAgICBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiBhdCBydW50aW1lLiBJdCB3b3JrcyBieSBwcm9j
ZXNzaW5nIHRoZSBkZWJ1ZworICAgICAgICBpbmZvcm1hdGlvbiBnZW5lcmF0ZWQgaW4gdGhlIGJ1
aWxkIGJlZm9yZSBpdCdzIHN0cmlwcGVkIGFuZAorICAgICAgICBwcm9jZXNzaW5nIHRvZ2V0aGVy
IHdpdGggdGhlIG1pbmlkdW1wLgorCisgICAgICAgIFRvIGVuYWJsZSwgdXNlIHRoZSBjbWFrZSBv
cHRpb24gYC1ERU5BQkxFX0JSRUFLUEFEYCBvciB0aGUKKyAgICAgICAgYGJ1aWxkLXdlYmtpdGAg
YC0tZW5hYmxlLWJyZWFrcGFkYCBvcHRpb24uIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlCisgICAg
ICAgIG1pbmlkdW1wcyB3aWxsIGJlIHN0b3JlZCBjYW4gYmUgc2V0IHdpdGggYC1EQlJFQUtQQURf
TUlOSURVTVBfRElSYAorICAgICAgICBjbWFrZSBidWlsZCBvcHRpb24gYW5kIHRoZSBgJEJSRUFL
UEFEX01JTklEVU1QX0RJUmAgZW52aXJvbm1lbnQKKyAgICAgICAgdmFyaWFibGUuCisKKyAgICAg
ICAgKiBTaGFyZWQvdW5peC9CcmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBTaGFyZWQvdW5peC9CcmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuaDogQWRkZWQuCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NNYWluKToKKyAgICAgICAgKiBQbGF0Zm9y
bVdQRS5jbWFrZToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NNYWluKToKKyAgICAgICAgKiB3ZWJraXRn
bGliLXN5bWJvbHMubWFwOgorCiAyMDIyLTA0LTExICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxl
LmNvbT4KIAogICAgICAgICBbV2ViQXV0aG5dIEVuc3VyZSByZXF1ZXN0UGluIGNhbGxiYWNrIG9u
IG1haW4gdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKaW5kZXggZjk4Y2Q2NWEwZWExMmZi
ODVkZjM5MDFmMGVmMjJmMzgwZDU0ZjU5My4uMjk0MTQ0YzNhZTJkZDY5MmNhOGU3MjBjNjE2N2Vk
ODNkOWU5OTM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtQcm9jZXNzTWFpblNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcApAQCAtMzEsNiArMzEsMTAgQEAK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uLmg+CiAKKyNpZiBFTkFCTEUoQlJFQUtQQUQpCisjaW5jbHVkZSAidW5peC9C
cmVha3BhZEV4Y2VwdGlvbkhhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgVVNFKEdDUllQVCkKICNp
bmNsdWRlIDxwYWwvY3J5cHRvL2djcnlwdC9Jbml0aWFsaXphdGlvbi5oPgogI2VuZGlmCkBAIC01
OCw2ICs2Miw5IEBAIHB1YmxpYzoKIAogaW50IE5ldHdvcmtQcm9jZXNzTWFpbihpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCiB7CisjaWYgRU5BQkxFKEJSRUFLUEFEKQorICAgIGluc3RhbGxFeGNlcHRp
b25IYW5kbGVyKCk7CisjZW5kaWYKICAgICByZXR1cm4gQXV4aWxpYXJ5UHJvY2Vzc01haW48TmV0
d29ya1Byb2Nlc3NNYWluU291cD4oYXJnYywgYXJndik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNt
YWtlCmluZGV4IDk5M2MyMWVhOWRlMTM4NjJmM2YzNjU3ZDZiNTI4NGEyMWMzZmUwNmUuLjk3ZWE1
MTg2Yjc2M2YzNTI5MGJhY2ViMzJhZDFkODg3ZTFlMTFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm1XUEUuY21ha2UKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdQRS5j
bWFrZQpAQCAtMzg1LDYgKzM4NSwxNSBAQCBpZiAoRU5BQkxFX01FRElBX1NUUkVBTSkKICAgICAp
CiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX0JSRUFLUEFEKQorICAgIGxpc3QoQVBQRU5EIFdlYktp
dF9TT1VSQ0VTCisgICAgICAgIFNoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0aW9uSGFuZGxlci5j
cHAKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViS2l0X0xJQlJBUklFUworICAgICAgICBCcmVh
a3BhZDo6QnJlYWtwYWQKKyAgICApCitlbmRpZiAoKQorCiBXRUJLSVRfQlVJTERfSU5TUEVDVE9S
X0dSRVNPVVJDRVMoJHtXZWJJbnNwZWN0b3JVSV9ERVJJVkVEX1NPVVJDRVNfRElSfSkKIGxpc3Qo
QVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMKICAgICAke1dl
Ykluc3BlY3RvclVJX0RFUklWRURfU09VUkNFU19ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRs
ZS5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0
aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC91bml4L0JyZWFrcGFkRXhjZXB0
aW9uSGFuZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGJhNzJlZWMyZjgyNzZkNGE0ZTRjYTA1MzE1ZWQ2
MDUxZTgyZTFmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgv
QnJlYWtwYWRFeGNlcHRpb25IYW5kbGVyLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogSWYg
bm90IHN0YXRlZCBvdGhlcndpc2UgaW4gdGhpcyBmaWxlIG9yIHRoaXMgY29tcG9uZW50J3MgbGlj
ZW5zZSBmaWxlIHRoZQorICogZm9sbG93aW5nIGNvcHlyaWdodCBhbmQgbGljZW5zZXMgYXBwbHk6
CisgKgorICogQ29weXJpZ2h0IDIwMjAgUkRLIE1hbmFnZW1lbnQKKyAqCisgKiBMaWNlbnNlZCB1
bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKyAq
IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUg
TGljZW5zZS4KKyAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorICoK
KyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorICoKKyAqIFVu
bGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywg
c29mdHdhcmUKKyAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVk
IG9uIGFuICJBUyBJUyIgQkFTSVMsCisgKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9O
UyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyAqIFNlZSB0aGUgTGlj
ZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQK
KyAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorICovCisKKyNpZiBFTkFCTEUoQlJF
QUtQQUQpCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQnJlYWtwYWRFeGNlcHRpb25I
YW5kbGVyLmgiCisKKyNpbmNsdWRlIDxjbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu
ZGxlci5oPgorI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworLy8gY2FsbGVkIGJ5ICdnb29nbGVfYnJlYWtwYWQ6OkV4
Y2VwdGlvbkhhbmRsZXInIG9uIGV2ZXJ5IGNyYXNoCitzdGF0aWMgYm9vbCBicmVha3BhZENhbGxi
YWNrKGNvbnN0IGdvb2dsZV9icmVha3BhZDo6TWluaWR1bXBEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
LCB2b2lkKiBjb250ZXh0LCBib29sIHN1Y2NlZWRlZCkKK3sKKyAgICAodm9pZCkgZGVzY3JpcHRv
cjsKKyAgICAodm9pZCkgY29udGV4dDsKKyAgICByZXR1cm4gc3VjY2VlZGVkOworfQorCit2b2lk
IGluc3RhbGxFeGNlcHRpb25IYW5kbGVyKCkKK3sKKyAgICBzdGF0aWMgZ29vZ2xlX2JyZWFrcGFk
OjpFeGNlcHRpb25IYW5kbGVyKiBleGNlcHRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBVTlVT
RURfUEFSQU0oZXhjZXB0aW9uSGFuZGxlcik7CisgICAgc3RhdGljIFN0cmluZyBicmVha3BhZE1p
bmlkdW1wRGlyID0gU3RyaW5nOjpmcm9tVVRGOChnZXRlbnYoIkJSRUFLUEFEX01JTklEVU1QX0RJ
UiIpKTsKKworI2lmZGVmIEJSRUFLUEFEX01JTklEVU1QX0RJUgorICAgIGlmIChicmVha3BhZE1p
bmlkdW1wRGlyLmlzRW1wdHkoKSkKKyAgICAgICAgYnJlYWtwYWRNaW5pZHVtcERpciA9IFN0cmlu
ZyhCUkVBS1BBRF9NSU5JRFVNUF9ESVIpOworI2VuZGlmCisKKyAgICBpZiAoYnJlYWtwYWRNaW5p
ZHVtcERpci5pc0VtcHR5KCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJCcmVha3BhZCBkaXIg
aXMgbm90IHNldCBvciBlbXB0eSwgbm90IGluc3RhbGxpbmcgaGFuZGxlciIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVUeXBlKGJyZWFrcGFkTWlu
aWR1bXBEaXIpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpEaXJlY3RvcnkpIHsKKyAgICAgICAg
V1RGTG9nQWx3YXlzKCJCcmVha3BhZCBkaXIgXCIlc1wiIGlzIG5vdCBhIGRpcmVjdG9yeSwgbm90
IGluc3RhbGxpbmcgaGFuZGxlciIsIGJyZWFrcGFkTWluaWR1bXBEaXIudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZmRlZiBTSUdQSVBFCisgICAgc2lnbmFsKFNJ
R1BJUEUsIFNJR19JR04pOworI2VuZGlmCisKKyAgICBleGNlcHRpb25IYW5kbGVyID0gbmV3IGdv
b2dsZV9icmVha3BhZDo6RXhjZXB0aW9uSGFuZGxlcihnb29nbGVfYnJlYWtwYWQ6Ok1pbmlkdW1w
RGVzY3JpcHRvcihicmVha3BhZE1pbmlkdW1wRGlyLnV0ZjgoKS5kYXRhKCkpLCBudWxscHRyLCBi
cmVha3BhZENhbGxiYWNrLCBudWxscHRyLCB0cnVlLCAtMSk7Cit9Cit9CisjZW5kaWYKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvdW5peC9CcmVha3BhZEV4Y2VwdGlvbkhhbmRs
ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQnJlYWtwYWRFeGNlcHRpb25IYW5kbGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjA2NjVkYTM2NTY1ZTlmZmEwNzJmMzVlN2U2YWZlYzY5YjVlNTMwMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3VuaXgvQnJlYWtwYWRFeGNl
cHRpb25IYW5kbGVyLmgKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIElmIG5vdCBzdGF0ZWQgb3Ro
ZXJ3aXNlIGluIHRoaXMgZmlsZSBvciB0aGlzIGNvbXBvbmVudCdzIGxpY2Vuc2UgZmlsZSB0aGUK
KyAqIGZvbGxvd2luZyBjb3B5cmlnaHQgYW5kIGxpY2Vuc2VzIGFwcGx5OgorICoKKyAqIENvcHly
aWdodCAyMDIwIFJESyBNYW5hZ2VtZW50CisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNo
ZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1
c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZ
b3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiBodHRwOi8vd3d3
LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyAqCisgKiBVbmxlc3MgcmVxdWlyZWQg
YnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgKiBk
aXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMi
IEJBU0lTLAorICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQs
IGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBz
cGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgKiBsaW1pdGF0aW9u
cyB1bmRlciB0aGUgTGljZW5zZS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShC
UkVBS1BBRCkKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitXS19FWFBPUlQgdm9pZCBpbnN0YWxsRXhjZXB0aW9uSGFuZGxlcigpOworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShCUkVBS1BBRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKaW5kZXggZmY1
ZWVlYjBmMGFiYjgzMDc1OTBmYjkxOThhNTE5YjQ0NTg5NjZiNy4uNGNhODM5ZDk1NDBhOTRlYTlh
OWM2NGNhM2ViYmIxYmM2YmEzNjIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPGdsaWIuaD4KIAorI2lmIEVOQUJMRShCUkVBS1BB
RCkKKyNpbmNsdWRlICJ1bml4L0JyZWFrcGFkRXhjZXB0aW9uSGFuZGxlci5oIgorI2VuZGlmCisK
ICNpZiBVU0UoR0NSWVBUKQogI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0L0luaXRpYWxpemF0
aW9uLmg+CiAjZW5kaWYKQEAgLTcyLDYgKzc2LDkgQEAgcHVibGljOgogCiBpbnQgV2ViUHJvY2Vz
c01haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogeworI2lmIEVOQUJMRShCUkVBS1BBRCkKKyAg
ICBpbnN0YWxsRXhjZXB0aW9uSGFuZGxlcigpOworI2VuZGlmCiAgICAgcmV0dXJuIEF1eGlsaWFy
eVByb2Nlc3NNYWluPFdlYlByb2Nlc3NNYWluV1BFPihhcmdjLCBhcmd2KTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93ZWJraXRnbGliLXN5bWJvbHMubWFwIGIvU291cmNlL1dlYktp
dC93ZWJraXRnbGliLXN5bWJvbHMubWFwCmluZGV4IDFiZTI5NjM1NDVmNjI4MDFiN2ZkNDFkNjZj
YzAwODYzZWU1OTM2NGMuLmM1NGQwZTQwNThhZGY4MWRiNzZmZDk1ZGIxNzgyZDVhNjg1MDExNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2Via2l0Z2xpYi1zeW1ib2xzLm1hcAorKysgYi9T
b3VyY2UvV2ViS2l0L3dlYmtpdGdsaWItc3ltYm9scy5tYXAKQEAgLTksNiArOSw3IEBAIGdsb2Jh
bDoKICAgICAiV2ViS2l0OjpXZWJLaXRFeHRlbnNpb25NYW5hZ2VyOjppbml0aWFsaXplKFdlYktp
dDo6SW5qZWN0ZWRCdW5kbGUqLCBBUEk6Ok9iamVjdCopIjsKICAgICAiV2ViS2l0OjpXZWJLaXRF
eHRlbnNpb25NYW5hZ2VyOjpzaW5nbGV0b24oKSI7CiAgICAgIldlYktpdDo6V2ViUHJvY2Vzc01h
aW4oaW50LCBjaGFyKiopIjsKKyAgICAiV2ViS2l0OjppbnN0YWxsRXhjZXB0aW9uSGFuZGxlcigp
IjsKICAgfTsKIGxvY2FsOgogICAqOwpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRCcmVh
a3BhZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kQnJlYWtwYWQuY21ha2UKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZmZhNzBlYzc5NDI5ZDU0NzFhN2FhNGYzNjc4MDc1MTc0OGU1NjljMwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9jbWFrZS9GaW5kQnJlYWtwYWQuY21ha2UKQEAgLTAsMCArMSwyNyBAQAorcGtn
X2NoZWNrX21vZHVsZXMoUENfQlJFQUtQQUQgYnJlYWtwYWQtY2xpZW50KQorCitmaW5kX3BhdGgo
QlJFQUtQQURfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhj
ZXB0aW9uX2hhbmRsZXIuaAorICAgIEhJTlRTICR7UENfQlJFQUtQQURfSU5DTFVERURJUn0KKyAg
ICBISU5UUyAke1BDX0JSRUFLUEFEX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KEJS
RUFLUEFEX0xJQlJBUlkKKyAgICBOQU1FUyBicmVha3BhZF9jbGllbnQKKyAgICBISU5UUyAke1BD
X0JSRUFLUEFEX0xJQlJBUllfRElSU30KKyAgICAgICAgICAke1BDX0JSRUFLUEFEX0xJQkRJUn0K
KykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FH
RV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhCcmVha3BhZCBSRVFVSVJFRF9WQVJTIEJSRUFLUEFEX0lO
Q0xVREVfRElSUyBCUkVBS1BBRF9MSUJSQVJZKQorCitpZiAoQlJFQUtQQURfTElCUkFSWSBBTkQg
Tk9UIFRBUkdFVCBCcmVha3BhZDo6QnJlYWtwYWQpCisgICAgYWRkX2xpYnJhcnkoQnJlYWtwYWQ6
OkJyZWFrcGFkIFVOS05PV04gSU1QT1JURUQgR0xPQkFMKQorICAgIHNldF90YXJnZXRfcHJvcGVy
dGllcyhCcmVha3BhZDo6QnJlYWtwYWQgUFJPUEVSVElFUworICAgICAgICBJTVBPUlRFRF9MT0NB
VElPTiAiJHtCUkVBS1BBRF9MSUJSQVJZfSIKKyAgICAgICAgSU5URVJGQUNFX0NPTVBJTEVfT1BU
SU9OUyAiJHtQQ19CUkVBS1BBRF9DRkxBR1NfT1RIRVJ9IgorICAgICAgICBJTlRFUkZBQ0VfSU5D
TFVERV9ESVJFQ1RPUklFUyAiJHtCUkVBS1BBRF9JTkNMVURFX0RJUlN9IgorICAgICkKK2VuZGlm
ICgpCisKK21hcmtfYXNfYWR2YW5jZWQoQlJFQUtQQURfSU5DTFVERV9ESVJTIEJSRUFLUEFEX0xJ
QlJBUlkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCmluZGV4IDczYmI2ODMyNGVhMGY5NDllMzA0MzY5OGI2
MDNkMGMzYjdiM2NjZDUuLjMyZjE3YTY2MjkzN2JhNTg1OWY0ZGY1ODZmMDQ5NjcyMDYwNWU4NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCisrKyBiL1NvdXJjZS9j
bWFrZS9PcHRpb25zV1BFLmNtYWtlCkBAIC03Niw2ICs3Niw3IEBAIFdFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJYUiBQUklWQVRFICR7RU5BQkxFX0VYUEVSSU1FTlRB
TF9GRUFUCiAjIFB1YmxpYyBvcHRpb25zIHNwZWNpZmljIHRvIHRoZSBXUEUgcG9ydC4gRG8gbm90
IGFkZCBhbnkgb3B0aW9ucyBoZXJlIHVubGVzcwogIyB0aGVyZSBpcyBhIHN0cm9uZyByZWFzb24g
d2Ugc2hvdWxkIHN1cHBvcnQgY2hhbmdpbmcgdGhlIHZhbHVlIG9mIHRoZSBvcHRpb24sCiAjIGFu
ZCB0aGUgb3B0aW9uIGlzIG5vdCByZWxldmFudCB0byBhbnkgb3RoZXIgV2ViS2l0IHBvcnRzLgor
V0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0JSRUFLUEFEICJXaGV0aGVyIG9yIG5vdCBlbmFi
bGUgYnJlYWtwYWQgbWluaWR1bXAgc3VwcG9ydC4iIFBVQkxJQyBPRkYpCiBXRUJLSVRfT1BUSU9O
X0RFRklORShFTkFCTEVfRE9DVU1FTlRBVElPTiAiV2hldGhlciB0byBnZW5lcmF0ZSBkb2N1bWVu
dGF0aW9uLiIgUFVCTElDIE9OKQogV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX0lOVFJPU1BF
Q1RJT04gIldoZXRoZXIgdG8gZW5hYmxlIEdPYmplY3QgaW50cm9zcGVjdGlvbi4iIFBVQkxJQyBP
TikKIFdFQktJVF9PUFRJT05fREVGSU5FKEVOQUJMRV9KT1VSTkFMRF9MT0cgIldoZXRoZXIgdG8g
ZW5hYmxlIGpvdXJuYWxkIGxvZ2dpbmciIFBVQkxJQyBPTikKQEAgLTI3Nyw2ICsyNzgsMTggQEAg
aWYgKFVTRV9MQ01TKQogICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCitpZiAoRU5BQkxFX0JSRUFL
UEFEKQorICAgIGZpbmRfcGFja2FnZShCcmVha3BhZCBSRVFVSVJFRCkKKyAgICBpZiAoTk9UIEJy
ZWFrcGFkX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VSUk9SICJicmVha3BhZCBlbmFi
bGVkIGJ1dCBub3QgZm91bmQuIikKKyAgICBlbmRpZiAoKQorICAgIGlmIChCUkVBS1BBRF9NSU5J
RFVNUF9ESVIpCisgICAgICAgIGFkZF9kZWZpbml0aW9ucygtREJSRUFLUEFEX01JTklEVU1QX0RJ
Uj0iJHtCUkVBS1BBRF9NSU5JRFVNUF9ESVJ9IikKKyAgICBlbHNlICgpCisgICAgICAgIG1lc3Nh
Z2UoU1RBVFVTICJCUkVBS1BBRF9NSU5JRFVNUF9ESVIgaXMgbm90IHNldCIpCisgICAgZW5kaWYg
KCkKK2VuZGlmICgpCisKIGFkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCiBhZGRf
ZGVmaW5pdGlvbnMoLURHRVRURVhUX1BBQ0tBR0U9IldQRSIpCiBhZGRfZGVmaW5pdGlvbnMoLURK
U0NfR0xJQl9BUElfRU5BQkxFRCkKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCBiZGFiNWJkMTdiM2U0YTkwYmRlOWRlNzEyM2QyOTk4M2Q4NDE4NmE3Li4xZTJmNTViNWRm
MjdmNWYwMjYwMTE1ZjY1Y2MzMDBmOWM4OGNkZWE3IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMjItMDQtMTEgIExhdXJvIE1vdXJhICA8
bG1vdXJhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gQWRkIHN1cHBvcnQgZm9yIGdlbmVy
YXRpbmcgYnJlYWtwYWQgZHVtcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTEwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlYmFzZSBvZiBvcmlnaW5hbCBwYXRjaCBmcm9tIFZpdmVrIEFydW11Z2Ft
IGZyb20KKyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL1dlYlBsYXRmb3JtRm9yRW1iZWRkZWQv
V1BFV2ViS2l0L3B1bGwvODA4CisKKyAgICAgICAgQnJlYWtwYWQgaXMgYSBsaWJyYXJ5IGFuZCB0
b29sIHN1aXRlIHRoYXQgYWxsb3dzIGNvbGxlY3Rpb24gb2YKKyAgICAgICAgY3Jhc2ggZHVtcHMg
aW4gYSBjb21wYWN0IGZvcm1hdCBmcm9tIGFwcGxpY2F0aW9ucyBzdHJpcHBlZCBvZgorICAgICAg
ICBvZiBkZWJ1ZyBpbmZvcm1hdGlvbiBhdCBydW50aW1lLiBJdCB3b3JrcyBieSBwcm9jZXNzaW5n
IHRoZSBkZWJ1ZworICAgICAgICBpbmZvcm1hdGlvbiBnZW5lcmF0ZWQgaW4gdGhlIGJ1aWxkIGJl
Zm9yZSBpdCdzIHN0cmlwcGVkIGFuZAorICAgICAgICBwcm9jZXNzaW5nIHRvZ2V0aGVyIHdpdGgg
dGhlIG1pbmlkdW1wLgorCisgICAgICAgIFRvIGVuYWJsZSwgdXNlIHRoZSBjbWFrZSBvcHRpb24g
YC1ERU5BQkxFX0JSRUFLUEFEYCBvciB0aGUKKyAgICAgICAgYGJ1aWxkLXdlYmtpdGAgYC0tZW5h
YmxlLWJyZWFrcGFkYCBvcHRpb24uIFRoZSBkaXJlY3Rvcnkgd2hlcmUgdGhlCisgICAgICAgIG1p
bmlkdW1wcyB3aWxsIGJlIHN0b3JlZCBjYW4gYmUgc2V0IHdpdGggYC1EQlJFQUtQQURfTUlOSURV
TVBfRElSYAorICAgICAgICBjbWFrZSBidWlsZCBvcHRpb24gYW5kIHRoZSBgJEJSRUFLUEFEX01J
TklEVU1QX0RJUmAgZW52aXJvbm1lbnQKKyAgICAgICAgdmFyaWFibGUuCisKKyAgICAgICAgKiBT
b3VyY2UvY21ha2UvRmluZEJyZWFrcGFkLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTb3VyY2Uv
Y21ha2UvT3B0aW9uc1dQRS5jbWFrZTogRXhwb3NlIGFuIG9wdGlvbiB0byBlbmFibGUgYnJlYWtw
YWQKKyAgICAgICAgc3VwcG9ydCwgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKwogMjAyMi0wNC0wOSAg
QWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdW1dQRV0gTWlzc2luZyBpbnRlci1tb2R1bGUgZG9jdW1lbnRhdGlvbiBsaW5rcwo=
</data>
<flag name="review"
          id="486153"
          type_id="1"
          status="-"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>