<?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>175259</bug_id>
          
          <creation_ts>2017-08-07 03:15:38 -0700</creation_ts>
          <short_desc>[GTK] Implement JavaScript dialog methods of API::AutomationSessionClient</short_desc>
          <delta_ts>2017-08-07 23:25:34 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174614</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>175261</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bburg</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1335905</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-07 03:15:38 -0700</bug_when>
    <thetext>Needed for the web driver prompt commands. See bug #174614</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1335908</commentid>
    <comment_count>1</comment_count>
      <attachid>317408</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-07 03:29:16 -0700</bug_when>
    <thetext>Created attachment 317408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336004</commentid>
    <comment_count>2</comment_count>
      <attachid>317408</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-08-07 10:06:56 -0700</bug_when>
    <thetext>Comment on attachment 317408
Patch

WebDriver related parts look good to me. I&apos;d like Michael or another GTK reviewer to look too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336071</commentid>
    <comment_count>3</comment_count>
      <attachid>317408</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-07 12:05:16 -0700</bug_when>
    <thetext>Comment on attachment 317408
Patch

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

&gt; Source/WebCore/platform/gtk/po/POTFILES.in:33
&gt; +../../../WebKit/UIProcess/API/gtk/WebKitScriptDialogGtk.cpp

Do we have a script that reminds you to do this, or are you the hero of the translators?

&gt; Source/WebKit/ChangeLog:11
&gt; +        files. Implement all JavaScript dialog methods of API::AutomationSessionClient in WebKitAutomationSession. For
&gt; +        now it only works when the user doesn&apos;t override WebKitWebView::script-dialog signal and default implementation
&gt; +        is used.

Well that&apos;s a significant limitation.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:2051
&gt; +    // FIXME: Add API to ask the user in case default implementation is not being used.

What should that API look like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336372</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-07 22:42:25 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #3)
&gt; Comment on attachment 317408 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=317408&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/gtk/po/POTFILES.in:33
&gt; &gt; +../../../WebKit/UIProcess/API/gtk/WebKitScriptDialogGtk.cpp
&gt; 
&gt; Do we have a script that reminds you to do this, or are you the hero of the
&gt; translators?

Not that I know of, I guess I&apos;m the hero of the translators, then :-D

&gt; &gt; Source/WebKit/ChangeLog:11
&gt; &gt; +        files. Implement all JavaScript dialog methods of API::AutomationSessionClient in WebKitAutomationSession. For
&gt; &gt; +        now it only works when the user doesn&apos;t override WebKitWebView::script-dialog signal and default implementation
&gt; &gt; +        is used.
&gt; 
&gt; Well that&apos;s a significant limitation.

It would be significant if applications actually overrode the default implementation, but I bet nobody is doing that (I don&apos;t really know, though).

&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:2051
&gt; &gt; +    // FIXME: Add API to ask the user in case default implementation is not being used.
&gt; 
&gt; What should that API look like?

I don&apos;t know, but more or less the same we are currently using internally, but using signals to ask the user about the js dialogs. Or we could add a WebKitScriptDialogManager or something like that, to not add more signals to the WebKitWebView. I don&apos;t know i haven&apos;t thought about it yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336383</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-07 23:25:34 -0700</bug_when>
    <thetext>Committed r220387: &lt;http://trac.webkit.org/changeset/220387&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317408</attachid>
            <date>2017-08-07 03:29:16 -0700</date>
            <delta_ts>2017-08-07 12:05:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-automation-alerts.diff</filename>
            <type>text/plain</type>
            <size>29131</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9wby9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9nCmluZGV4IDk2ZGYwMzc2YmJk
Li5hNmUwYzg3MGU2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3Bv
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvcG8vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDgtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBKYXZhU2NyaXB0IGRp
YWxvZyBtZXRob2RzIG9mIEFQSTo6QXV0b21hdGlvblNlc3Npb25DbGllbnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTI1OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUE9URklMRVMuaW46IEFkZCBX
ZWJLaXRTY3JpcHREaWFsb2dHdGsuY3BwLgorCiAyMDE3LTA3LTEzICBNYXR0aGV3IEhhbnNvbiAg
PG1hdHRoZXdfaGFuc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGNNYWtlIGJ1aWxk
cyAoR1RLIGFuZCBXUEUuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L3BvL1BPVEZJTEVTLmluIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVT
LmluCmluZGV4IDg5OWZjZDQ5MmViLi41MzNkZjZmZDQ2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL3BvL1BPVEZJTEVTLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9wby9QT1RGSUxFUy5pbgpAQCAtMzAsNiArMzAsNyBAQCBMb2NhbGl6ZWRTdHJp
bmdzR3RrLmNwcAogLi4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbG9y
Q2hvb3NlclJlcXVlc3QuY3BwCiAuLi8uLi8uLi9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0UHJpbnRDdXN0b21XaWRnZXQuY3BwCiAuLi8uLi8uLi9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwCisuLi8uLi8uLi9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0U2NyaXB0RGlhbG9nR3RrLmNwcAogLi4vLi4vLi4vV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKIC4uLy4uLy4uL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3RrLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNGJiYWY4MjQ3OS4u
NTBkMTU5ODRlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTctMDgtMDcgIENhcmxv
cyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIElt
cGxlbWVudCBKYXZhU2NyaXB0IGRpYWxvZyBtZXRob2RzIG9mIEFQSTo6QXV0b21hdGlvblNlc3Np
b25DbGllbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NTI1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmUgdGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgV2ViS2l0U2NyaXB0RGlhbG9nIGZy
b20gV2ViS2l0V2ViVmlldyBwbGF0Zm9ybSBzcGVjaWZpYyBmaWxlcyB0byB0aGVpciBvd24KKyAg
ICAgICAgZmlsZXMuIEltcGxlbWVudCBhbGwgSmF2YVNjcmlwdCBkaWFsb2cgbWV0aG9kcyBvZiBB
UEk6OkF1dG9tYXRpb25TZXNzaW9uQ2xpZW50IGluIFdlYktpdEF1dG9tYXRpb25TZXNzaW9uLiBG
b3IKKyAgICAgICAgbm93IGl0IG9ubHkgd29ya3Mgd2hlbiB0aGUgdXNlciBkb2Vzbid0IG92ZXJy
aWRlIFdlYktpdFdlYlZpZXc6OnNjcmlwdC1kaWFsb2cgc2lnbmFsIGFuZCBkZWZhdWx0IGltcGxl
bWVudGF0aW9uCisgICAgICAgIGlzIHVzZWQuCisKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFr
ZTogQWRkIG5ldyBmaWxlcyB0byBjb21waWxhdGlvbi4KKyAgICAgICAgKiBQbGF0Zm9ybVdQRS5j
bWFrZTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRp
b25TZXNzaW9uLmNwcDoKKyAgICAgICAgKHdlYmtpdEF1dG9tYXRpb25TZXNzaW9uQ3JlYXRlKTog
UGFzcyB0aGUgV2ViS2l0V2ViQ29udGV4dCB0byB0aGUgY29uc3RydWN0b3IgYW5kIGtlZXAgYSBw
b2ludGVyIHRvIGl0IGluIHNlc3Npb24uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0
QWxlcnQpOiBTZXQgdGhlIGN1cnJlbnRseSBzY3JpcHQgZGlhbG9nIGZvciB0aGUgc2NvcGUgb2Yg
dGhlIGZ1bmN0aW9uLgorICAgICAgICAod2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRDb25maXJt
KTogRGl0dG8uCisgICAgICAgICh3ZWJraXRXZWJWaWV3UnVuSmF2YVNjcmlwdFByb21wdCk6IERp
dHRvLgorICAgICAgICAod2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRCZWZvcmVVbmxvYWRDb25m
aXJtKTogRGl0dG8uCisgICAgICAgICh3ZWJraXRXZWJWaWV3SXNTaG93aW5nU2NyaXB0RGlhbG9n
KTogQXNrIGN1cnJlbnQgZGlhbG9nIGlmIHRoZXJlJ3Mgb25lLgorICAgICAgICAod2Via2l0V2Vi
Vmlld0dldEN1cnJlbnRTY3JpcHREaWFsb2dNZXNzYWdlKTogRGl0dG8uCisgICAgICAgICh3ZWJr
aXRXZWJWaWV3U2V0Q3VycmVudFNjcmlwdERpYWxvZ1VzZXJJbnB1dCk6IERpdHRvLgorICAgICAg
ICAod2Via2l0V2ViVmlld0FjY2VwdEN1cnJlbnRTY3JpcHREaWFsb2cpOiBEaXR0by4KKyAgICAg
ICAgKHdlYmtpdFdlYlZpZXdEaXNtaXNzQ3VycmVudFNjcmlwdERpYWxvZyk6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHA6IEFkZGVkLgor
ICAgICAgICAod2Via2l0V2ViVmlld0NyZWF0ZUphdmFTY3JpcHREaWFsb2cpOiBNb3ZlZCBmcm9t
IFdlYktpdFdlYlZpZXdHdGsuY3BwLgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nUnVuKTog
UnVuIHRoZSBkaWFsb2csIHRoaXMgY29kZSBpcyBtb3ZlZCBmcm9tIFdlYktpdFdlYlZpZXdHdGsu
Y3BwLgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nSXNSdW5uaW5nKTogUmV0dXJuIHRydWUg
aWYgdGhlIHNjcmlwdCBkaWFsb2cgaGFzIGEgbmF0aXZlIGRpYWxvZyBydW5uaW5nLgorICAgICAg
ICAod2Via2l0U2NyaXB0RGlhbG9nQWNjZXB0KTogU2VuZCBPayBvciBDbG9zZSByZXNwb25zZSB0
byB0aGUgbmF0aXZlIGRpYWxvZyBkZXBlbmRpbmcgb24gdGhlIGRpYWxvZyB0eXBlLgorICAgICAg
ICAod2Via2l0U2NyaXB0RGlhbG9nRGlzbWlzcyk6IFNlbmQgQ2xvc2UgcmVzcG9uc2UgdG8gdGhl
IG5hdGl2ZSBkaWFsb2cuCisgICAgICAgICh3ZWJraXRTY3JpcHREaWFsb2dTZXRVc2VySW5wdXQp
OiBTZXQgdGhlIGdpdmVuIHRleHQgb24gdGhlIHByb21wdCBkaWFsb2cgZW50cnkuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0d0ay5jcHA6CisgICAgICAgICh3ZWJr
aXRXZWJWaWV3U2NyaXB0RGlhbG9nKTogU2ltcGx5IGNhbGwgd2Via2l0U2NyaXB0RGlhbG9nUnVu
KCkgbm93LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNjcmlwdERpYWxvZ1dQ
RS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oLgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9n
UnVuKToKKyAgICAgICAgKHdlYmtpdFNjcmlwdERpYWxvZ0lzUnVubmluZyk6CisgICAgICAgICh3
ZWJraXRTY3JpcHREaWFsb2dBY2NlcHQpOgorICAgICAgICAod2Via2l0U2NyaXB0RGlhbG9nRGlz
bWlzcyk6CisgICAgICAgICh3ZWJraXRTY3JpcHREaWFsb2dTZXRVc2VySW5wdXQpOgorCiAyMDE3
LTA4LTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXVtXUEVdIEFkZCBBUEkgdG8gcHJvdmlkZSBicm93c2VyIGluZm9ybWF0aW9uIHJl
cXVpcmVkIGJ5IGF1dG9tYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm1H
VEsuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDJmYzFmMmI0
M2QyLi4yNTk0OTg4M2IyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybUdUSy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0xODMsNiArMTgz
LDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0UHJpbnRDdXN0b21XaWRnZXQuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpbnRPcGVyYXRpb24uY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UmVtb3RlSW5z
cGVjdG9yUHJvdG9jb2xIYW5kbGVyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNj
cmlwdERpYWxvZ0d0ay5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRWZXJzaW9uLmNw
cAogICAgIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFZlcnNpb24uaC5pbgogICAgIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkluc3BlY3Rvci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCmlu
ZGV4IGYzMGU2YzJhYmI1Li40MTlkY2ViNDE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybVdQRS5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV1BFLmNtYWtlCkBA
IC0xOTAsNiArMTkwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCiAgICAgVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2Vz
dHVyZUNvbnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2NyaXB0RGlh
bG9nV1BFLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXdXUEUuY3BwCiAg
ICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3Bw
CmluZGV4IDk2Y2MyOTIyMDUwLi5lZDUwYmFmOTFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEF1dG9tYXRpb25TZXNzaW9uLmNw
cApAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50
LmgiCiAjaW5jbHVkZSAiV2ViS2l0QXBwbGljYXRpb25JbmZvLmgiCiAjaW5jbHVkZSAiV2ViS2l0
QXV0b21hdGlvblNlc3Npb25Qcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGds
aWIvZ2kxOG4tbGliLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5cGUuaD4KQEAgLTYwLDYg
KzYxLDcgQEAgZW51bSB7CiBzdHJ1Y3QgX1dlYktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZSB7
CiAgICAgUmVmUHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uPiBzZXNzaW9uOwogICAgIFdlYktpdEFw
cGxpY2F0aW9uSW5mbyogYXBwbGljYXRpb25JbmZvOworICAgIFdlYktpdFdlYkNvbnRleHQqIHdl
YkNvbnRleHQ7CiAgICAgQ1N0cmluZyBpZDsKIH07CiAKQEAgLTkwLDYgKzkyLDQ2IEBAIHByaXZh
dGU6CiAgICAgICAgIHJldHVybiAmd2Via2l0V2ViVmlld0dldFBhZ2Uod2ViVmlldyk7CiAgICAg
fQogCisgICAgYm9vbCBpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nT25QYWdlKFdlYkF1dG9tYXRp
b25TZXNzaW9uJiwgV2ViUGFnZVByb3h5JiBwYWdlKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
YXV0byogd2ViVmlldyA9IHdlYmtpdFdlYkNvbnRleHRHZXRXZWJWaWV3Rm9yUGFnZShtX3Nlc3Np
b24tPnByaXYtPndlYkNvbnRleHQsICZwYWdlKTsKKyAgICAgICAgaWYgKCF3ZWJWaWV3KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gd2Via2l0V2ViVmlld0lzU2hv
d2luZ1NjcmlwdERpYWxvZyh3ZWJWaWV3KTsKKyAgICB9CisKKyAgICB2b2lkIGRpc21pc3NDdXJy
ZW50SmF2YVNjcmlwdERpYWxvZ09uUGFnZShXZWJBdXRvbWF0aW9uU2Vzc2lvbiYsIFdlYlBhZ2VQ
cm94eSYgcGFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGF1dG8qIHdlYlZpZXcgPSB3ZWJr
aXRXZWJDb250ZXh0R2V0V2ViVmlld0ZvclBhZ2UobV9zZXNzaW9uLT5wcml2LT53ZWJDb250ZXh0
LCAmcGFnZSk7CisgICAgICAgIGlmICghd2ViVmlldykKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgd2Via2l0V2ViVmlld0Rpc21pc3NDdXJyZW50U2NyaXB0RGlhbG9nKHdlYlZpZXcpOwor
ICAgIH0KKworICAgIHZvaWQgYWNjZXB0Q3VycmVudEphdmFTY3JpcHREaWFsb2dPblBhZ2UoV2Vi
QXV0b21hdGlvblNlc3Npb24mLCBXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRlCisgICAgewor
ICAgICAgICBhdXRvKiB3ZWJWaWV3ID0gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdl
KG1fc2Vzc2lvbi0+cHJpdi0+d2ViQ29udGV4dCwgJnBhZ2UpOworICAgICAgICBpZiAoIXdlYlZp
ZXcpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYmtpdFdlYlZpZXdBY2NlcHRDdXJy
ZW50U2NyaXB0RGlhbG9nKHdlYlZpZXcpOworICAgIH0KKworICAgIFN0cmluZyBtZXNzYWdlT2ZD
dXJyZW50SmF2YVNjcmlwdERpYWxvZ09uUGFnZShXZWJBdXRvbWF0aW9uU2Vzc2lvbiYsIFdlYlBh
Z2VQcm94eSYgcGFnZSkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGF1dG8qIHdlYlZpZXcgPSB3
ZWJraXRXZWJDb250ZXh0R2V0V2ViVmlld0ZvclBhZ2UobV9zZXNzaW9uLT5wcml2LT53ZWJDb250
ZXh0LCAmcGFnZSk7CisgICAgICAgIGlmICghd2ViVmlldykKKyAgICAgICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIHJldHVybiB3ZWJraXRXZWJWaWV3R2V0Q3VycmVudFNjcmlwdERpYWxvZ01l
c3NhZ2Uod2ViVmlldyk7CisgICAgfQorCisgICAgdm9pZCBzZXRVc2VySW5wdXRGb3JDdXJyZW50
SmF2YVNjcmlwdFByb21wdE9uUGFnZShXZWJBdXRvbWF0aW9uU2Vzc2lvbiYsIFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgU3RyaW5nJiB1c2VySW5wdXQpIG92ZXJyaWRlCisgICAgeworICAgICAg
ICBhdXRvKiB3ZWJWaWV3ID0gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdGb3JQYWdlKG1fc2Vz
c2lvbi0+cHJpdi0+d2ViQ29udGV4dCwgJnBhZ2UpOworICAgICAgICBpZiAoIXdlYlZpZXcpCisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYmtpdFdlYlZpZXdTZXRDdXJyZW50U2NyaXB0
RGlhbG9nVXNlcklucHV0KHdlYlZpZXcsIHVzZXJJbnB1dCk7CisgICAgfQorCiAgICAgV2ViS2l0
QXV0b21hdGlvblNlc3Npb24qIG1fc2Vzc2lvbjsKIH07CiAKQEAgLTE5Miw5ICsyMzQsMTEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X2F1dG9tYXRpb25fc2Vzc2lvbl9jbGFzc19pbml0KFdlYktpdEF1
dG9tYXRpb25TZXNzaW9uQ2xhc3MqIHMKICAgICAgICAgR19UWVBFX05PTkUpOwogfQogCi1XZWJL
aXRBdXRvbWF0aW9uU2Vzc2lvbiogd2Via2l0QXV0b21hdGlvblNlc3Npb25DcmVhdGUoY29uc3Qg
Y2hhciogc2Vzc2lvbklEKQorV2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHdlYmtpdEF1dG9tYXRp
b25TZXNzaW9uQ3JlYXRlKFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQsIGNvbnN0IGNoYXIq
IHNlc3Npb25JRCkKIHsKLSAgICByZXR1cm4gV0VCS0lUX0FVVE9NQVRJT05fU0VTU0lPTihnX29i
amVjdF9uZXcoV0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OLCAiaWQiLCBzZXNzaW9uSUQs
IG51bGxwdHIpKTsKKyAgICBhdXRvKiBzZXNzaW9uID0gV0VCS0lUX0FVVE9NQVRJT05fU0VTU0lP
TihnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfQVVUT01BVElPTl9TRVNTSU9OLCAiaWQiLCBzZXNz
aW9uSUQsIG51bGxwdHIpKTsKKyAgICBzZXNzaW9uLT5wcml2LT53ZWJDb250ZXh0ID0gd2ViQ29u
dGV4dDsKKyAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAogV2ViQXV0b21hdGlvblNlc3Npb24mIHdl
YmtpdEF1dG9tYXRpb25TZXNzaW9uR2V0U2Vzc2lvbihXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiog
c2Vzc2lvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEF1dG9tYXRpb25TZXNzaW9uUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0QXV0b21hdGlvblNlc3Npb25Qcml2YXRlLmgKaW5kZXggNDBjZDkzMjFi
ODMuLmFlMmEyY2MxYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRBdXRvbWF0aW9uU2Vzc2lvblByaXZhdGUuaApAQCAt
MjEsOCArMjEsOSBAQAogCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKICNpbmNs
dWRlICJXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbi5oIgorI2luY2x1ZGUgIldlYktpdFdlYkNvbnRl
eHQuaCIKIAotV2ViS2l0QXV0b21hdGlvblNlc3Npb24qIHdlYmtpdEF1dG9tYXRpb25TZXNzaW9u
Q3JlYXRlKGNvbnN0IGNoYXIqIHNlc3Npb25JRCk7CitXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiog
d2Via2l0QXV0b21hdGlvblNlc3Npb25DcmVhdGUoV2ViS2l0V2ViQ29udGV4dCosIGNvbnN0IGNo
YXIqIHNlc3Npb25JRCk7CiBXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uJiB3ZWJraXRBdXRv
bWF0aW9uU2Vzc2lvbkdldFNlc3Npb24oV2ViS2l0QXV0b21hdGlvblNlc3Npb24qKTsKIFN0cmlu
ZyB3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkdldEJyb3dzZXJOYW1lKFdlYktpdEF1dG9tYXRpb25T
ZXNzaW9uKik7CiBTdHJpbmcgd2Via2l0QXV0b21hdGlvblNlc3Npb25HZXRCcm93c2VyVmVyc2lv
bihXZWJLaXRBdXRvbWF0aW9uU2Vzc2lvbiopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2NyaXB0RGlhbG9nUHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2NyaXB0RGlhbG9nUHJpdmF0ZS5oCmluZGV4
IDVmMWE0M2Q5NDY0Li4wMGRhNmVkZmQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0U2NyaXB0RGlhbG9nUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFNjcmlwdERpYWxvZ1ByaXZhdGUuaApAQCAt
MTcsMTEgKzE3LDEyIEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLwogCi0j
aWZuZGVmIFdlYktpdFNjcmlwdERpYWxvZ1ByaXZhdGVfaAotI2RlZmluZSBXZWJLaXRTY3JpcHRE
aWFsb2dQcml2YXRlX2gKKyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlh
bG9nLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NT
dHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogc3RydWN0IF9XZWJL
aXRTY3JpcHREaWFsb2cgewogICAgIF9XZWJLaXRTY3JpcHREaWFsb2codW5zaWduZWQgdHlwZSwg
Y29uc3QgQ1N0cmluZyYgbWVzc2FnZSkKQEAgLTU1LDYgKzU2LDE0IEBAIHN0cnVjdCBfV2ViS2l0
U2NyaXB0RGlhbG9nIHsKIAogICAgIGJvb2wgY29uZmlybWVkOwogICAgIENTdHJpbmcgdGV4dDsK
KworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBHdGtXaWRnZXQqIG5hdGl2ZURpYWxvZyB7IG51bGxw
dHIgfTsKKyNlbmRpZgogfTsKIAotI2VuZGlmIC8vIFdlYktpdFNjcmlwdERpYWxvZ1ByaXZhdGVf
aAordm9pZCB3ZWJraXRTY3JpcHREaWFsb2dSdW4oV2ViS2l0U2NyaXB0RGlhbG9nKiwgV2ViS2l0
V2ViVmlldyopOworYm9vbCB3ZWJraXRTY3JpcHREaWFsb2dJc1J1bm5pbmcoV2ViS2l0U2NyaXB0
RGlhbG9nKik7Cit2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0FjY2VwdChXZWJLaXRTY3JpcHREaWFs
b2cqKTsKK3ZvaWQgd2Via2l0U2NyaXB0RGlhbG9nRGlzbWlzcyhXZWJLaXRTY3JpcHREaWFsb2cq
KTsKK3ZvaWQgd2Via2l0U2NyaXB0RGlhbG9nU2V0VXNlcklucHV0KFdlYktpdFNjcmlwdERpYWxv
ZyosIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCA0YWI5MDFlZTkyZS4uM2EwYjRmMzc3
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdl
YkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0yMzMsNyArMjMzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJl
cXVlc3RBdXRvbWF0aW9uU2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JZGVudGlmaWVyKSBv
dmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX3dlYkNvbnRleHQtPnByaXYtPmF1dG9t
YXRpb25TZXNzaW9uKTsKLSAgICAgICAgbV93ZWJDb250ZXh0LT5wcml2LT5hdXRvbWF0aW9uU2Vz
c2lvbiA9IGFkb3B0R1JlZih3ZWJraXRBdXRvbWF0aW9uU2Vzc2lvbkNyZWF0ZShzZXNzaW9uSWRl
bnRpZmllci51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIG1fd2ViQ29udGV4dC0+cHJpdi0+YXV0
b21hdGlvblNlc3Npb24gPSBhZG9wdEdSZWYod2Via2l0QXV0b21hdGlvblNlc3Npb25DcmVhdGUo
bV93ZWJDb250ZXh0LCBzZXNzaW9uSWRlbnRpZmllci51dGY4KCkuZGF0YSgpKSk7CiAgICAgICAg
IGdfc2lnbmFsX2VtaXQobV93ZWJDb250ZXh0LCBzaWduYWxzW0FVVE9NQVRJT05fU1RBUlRFRF0s
IDAsIG1fd2ViQ29udGV4dC0+cHJpdi0+YXV0b21hdGlvblNlc3Npb24uZ2V0KCkpOwogICAgICAg
ICBtX3dlYkNvbnRleHQtPnByaXYtPnByb2Nlc3NQb29sLT5zZXRBdXRvbWF0aW9uU2Vzc2lvbigm
d2Via2l0QXV0b21hdGlvblNlc3Npb25HZXRTZXNzaW9uKG1fd2ViQ29udGV4dC0+cHJpdi0+YXV0
b21hdGlvblNlc3Npb24uZ2V0KCkpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGYyZjhiNjg5M2IwLi4wYmY3
Yjk0NjI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKQEAgLTY2LDYgKzY2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9N
RXhjZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlZlB0ckNhaXJvLmg+CiAj
aW5jbHVkZSA8Z2xpYi9naTE4bi1saWIuaD4KKyNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4K
ICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvV1RGR1R5
cGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0yMTksNiArMjIwLDggQEAg
c3RydWN0IF9XZWJLaXRXZWJWaWV3UHJpdmF0ZSB7CiAgICAgR1JlZlB0cjxXZWJLaXRXZWJSZXNv
dXJjZT4gbWFpblJlc291cmNlOwogICAgIExvYWRpbmdSZXNvdXJjZXNNYXAgbG9hZGluZ1Jlc291
cmNlc01hcDsKIAorICAgIFdlYktpdFNjcmlwdERpYWxvZyogY3VycmVudFNjcmlwdERpYWxvZzsK
KwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHUmVmUHRyPFdlYktpdFdlYkluc3BlY3Rvcj4gaW5z
cGVjdG9yOwogI2VuZGlmCkBAIC0yMDA4LDYgKzIwMTEsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdD
bG9zZVBhZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHZvaWQgd2Via2l0V2ViVmlld1J1bkph
dmFTY3JpcHRBbGVydChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBDU3RyaW5nJiBtZXNz
YWdlKQogewogICAgIFdlYktpdFNjcmlwdERpYWxvZyBkaWFsb2coV0VCS0lUX1NDUklQVF9ESUFM
T0dfQUxFUlQsIG1lc3NhZ2UpOworICAgIFNldEZvclNjb3BlPFdlYktpdFNjcmlwdERpYWxvZyo+
IGNoYW5nZSh3ZWJWaWV3LT5wcml2LT5jdXJyZW50U2NyaXB0RGlhbG9nLCAmZGlhbG9nKTsKICAg
ICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25h
bHNbU0NSSVBUX0RJQUxPR10sIDAsICZkaWFsb2csICZyZXR1cm5WYWx1ZSk7CiB9CkBAIC0yMDE1
LDYgKzIwMTksNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0
V2ViVmlldyogd2ViVmlldywgY29uc3QgQ1N0cmluZyYgbWVzcwogYm9vbCB3ZWJraXRXZWJWaWV3
UnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgQ1N0cmlu
ZyYgbWVzc2FnZSkKIHsKICAgICBXZWJLaXRTY3JpcHREaWFsb2cgZGlhbG9nKFdFQktJVF9TQ1JJ
UFRfRElBTE9HX0NPTkZJUk0sIG1lc3NhZ2UpOworICAgIFNldEZvclNjb3BlPFdlYktpdFNjcmlw
dERpYWxvZyo+IGNoYW5nZSh3ZWJWaWV3LT5wcml2LT5jdXJyZW50U2NyaXB0RGlhbG9nLCAmZGlh
bG9nKTsKICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZp
ZXcsIHNpZ25hbHNbU0NSSVBUX0RJQUxPR10sIDAsICZkaWFsb2csICZyZXR1cm5WYWx1ZSk7CiAg
ICAgcmV0dXJuIGRpYWxvZy5jb25maXJtZWQ7CkBAIC0yMDIzLDYgKzIwMjgsNyBAQCBib29sIHdl
YmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBj
b25zdCBDU3RyaW5nJiBtZQogQ1N0cmluZyB3ZWJraXRXZWJWaWV3UnVuSmF2YVNjcmlwdFByb21w
dChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBDU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBD
U3RyaW5nJiBkZWZhdWx0VGV4dCkKIHsKICAgICBXZWJLaXRTY3JpcHREaWFsb2cgZGlhbG9nKFdF
QktJVF9TQ1JJUFRfRElBTE9HX1BST01QVCwgbWVzc2FnZSwgZGVmYXVsdFRleHQpOworICAgIFNl
dEZvclNjb3BlPFdlYktpdFNjcmlwdERpYWxvZyo+IGNoYW5nZSh3ZWJWaWV3LT5wcml2LT5jdXJy
ZW50U2NyaXB0RGlhbG9nLCAmZGlhbG9nKTsKICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKICAg
ICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbU0NSSVBUX0RJQUxPR10sIDAsICZkaWFs
b2csICZyZXR1cm5WYWx1ZSk7CiAgICAgcmV0dXJuIGRpYWxvZy50ZXh0OwpAQCAtMjAzMSwxMSAr
MjAzNyw1OSBAQCBDU3RyaW5nIHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IENTdHJpbmcmCiBib29sIHdlYmtpdFdlYlZpZXdSdW5K
YXZhU2NyaXB0QmVmb3JlVW5sb2FkQ29uZmlybShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBDU3RyaW5nJiBtZXNzYWdlKQogewogICAgIFdlYktpdFNjcmlwdERpYWxvZyBkaWFsb2coV0VC
S0lUX1NDUklQVF9ESUFMT0dfQkVGT1JFX1VOTE9BRF9DT05GSVJNLCBtZXNzYWdlKTsKKyAgICBT
ZXRGb3JTY29wZTxXZWJLaXRTY3JpcHREaWFsb2cqPiBjaGFuZ2Uod2ViVmlldy0+cHJpdi0+Y3Vy
cmVudFNjcmlwdERpYWxvZywgJmRpYWxvZyk7CiAgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7CiAg
ICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW1NDUklQVF9ESUFMT0ddLCAwLCAmZGlh
bG9nLCAmcmV0dXJuVmFsdWUpOwogICAgIHJldHVybiBkaWFsb2cuY29uZmlybWVkOwogfQogCiti
b29sIHdlYmtpdFdlYlZpZXdJc1Nob3dpbmdTY3JpcHREaWFsb2coV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKK3sKKyAgICBpZiAoIXdlYlZpZXctPnByaXYtPmN1cnJlbnRTY3JpcHREaWFsb2cpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FOiBBZGQgQVBJIHRvIGFzayB0aGUg
dXNlciBpbiBjYXNlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gaXMgbm90IGJlaW5nIHVzZWQuCisg
ICAgcmV0dXJuIHdlYmtpdFNjcmlwdERpYWxvZ0lzUnVubmluZyh3ZWJWaWV3LT5wcml2LT5jdXJy
ZW50U2NyaXB0RGlhbG9nKTsKK30KKworU3RyaW5nIHdlYmtpdFdlYlZpZXdHZXRDdXJyZW50U2Ny
aXB0RGlhbG9nTWVzc2FnZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGlmICghd2Vi
Vmlldy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZykKKyAgICAgICAgcmV0dXJuIHsgfTsKKwor
ICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KHdlYlZpZXctPnByaXYtPmN1cnJlbnRTY3JpcHRE
aWFsb2ctPm1lc3NhZ2UpOworfQorCit2b2lkIHdlYmtpdFdlYlZpZXdTZXRDdXJyZW50U2NyaXB0
RGlhbG9nVXNlcklucHV0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IFN0cmluZyYgdXNl
cklucHV0KQoreworICAgIGlmICghd2ViVmlldy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEFkZCBBUEkgdG8gYXNrIHRoZSB1c2Vy
IGluIGNhc2UgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYmVpbmcgdXNlZC4KKyAgICBp
ZiAod2Via2l0U2NyaXB0RGlhbG9nSXNSdW5uaW5nKHdlYlZpZXctPnByaXYtPmN1cnJlbnRTY3Jp
cHREaWFsb2cpKQorICAgICAgICB3ZWJraXRTY3JpcHREaWFsb2dTZXRVc2VySW5wdXQod2ViVmll
dy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZywgdXNlcklucHV0KTsKK30KKwordm9pZCB3ZWJr
aXRXZWJWaWV3QWNjZXB0Q3VycmVudFNjcmlwdERpYWxvZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQoreworICAgIGlmICghd2ViVmlldy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgLy8gRklYTUU6IEFkZCBBUEkgdG8gYXNrIHRoZSB1c2VyIGluIGNh
c2UgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBpcyBub3QgYmVpbmcgdXNlZC4KKyAgICBpZiAod2Vi
a2l0U2NyaXB0RGlhbG9nSXNSdW5uaW5nKHdlYlZpZXctPnByaXYtPmN1cnJlbnRTY3JpcHREaWFs
b2cpKQorICAgICAgICB3ZWJraXRTY3JpcHREaWFsb2dBY2NlcHQod2ViVmlldy0+cHJpdi0+Y3Vy
cmVudFNjcmlwdERpYWxvZyk7Cit9CisKK3ZvaWQgd2Via2l0V2ViVmlld0Rpc21pc3NDdXJyZW50
U2NyaXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgaWYgKCF3ZWJWaWV3
LT5wcml2LT5jdXJyZW50U2NyaXB0RGlhbG9nKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBG
SVhNRTogQWRkIEFQSSB0byBhc2sgdGhlIHVzZXIgaW4gY2FzZSBkZWZhdWx0IGltcGxlbWVudGF0
aW9uIGlzIG5vdCBiZWluZyB1c2VkLgorICAgIGlmICh3ZWJraXRTY3JpcHREaWFsb2dJc1J1bm5p
bmcod2ViVmlldy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZykpCisgICAgICAgIHdlYmtpdFNj
cmlwdERpYWxvZ0Rpc21pc3Mod2ViVmlldy0+cHJpdi0+Y3VycmVudFNjcmlwdERpYWxvZyk7Cit9
CisKIHZvaWQgd2Via2l0V2ViVmlld01ha2VQb2xpY3lEZWNpc2lvbihXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBXZWJLaXRQb2xpY3lEZWNpc2lvblR5cGUgdHlwZSwgV2ViS2l0UG9saWN5RGVjaXNp
b24qIGRlY2lzaW9uKQogewogICAgIGdib29sZWFuIHJldHVyblZhbHVlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgK
aW5kZXggYWZiODNiZjM1NjUuLmYzYzI5NmZlZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKQEAgLTUzLDYg
KzUzLDEyIEBAIHZvaWQgd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRBbGVydChXZWJLaXRXZWJW
aWV3KiwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZSk7CiBib29sIHdlYmtpdFdlYlZpZXdSdW5KYXZh
U2NyaXB0Q29uZmlybShXZWJLaXRXZWJWaWV3KiwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZSk7CiBD
U3RyaW5nIHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0UHJvbXB0KFdlYktpdFdlYlZpZXcqLCBj
b25zdCBDU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBDU3RyaW5nJiBkZWZhdWx0VGV4dCk7CiBib29s
IHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0QmVmb3JlVW5sb2FkQ29uZmlybShXZWJLaXRXZWJW
aWV3KiwgY29uc3QgQ1N0cmluZyYgbWVzc2FnZSk7Citib29sIHdlYmtpdFdlYlZpZXdJc1Nob3dp
bmdTY3JpcHREaWFsb2coV2ViS2l0V2ViVmlldyopOworYm9vbCB3ZWJraXRXZWJWaWV3SXNTY3Jp
cHREaWFsb2dSdW5uaW5nKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRTY3JpcHREaWFsb2cqKTsKK1N0
cmluZyB3ZWJraXRXZWJWaWV3R2V0Q3VycmVudFNjcmlwdERpYWxvZ01lc3NhZ2UoV2ViS2l0V2Vi
VmlldyopOwordm9pZCB3ZWJraXRXZWJWaWV3U2V0Q3VycmVudFNjcmlwdERpYWxvZ1VzZXJJbnB1
dChXZWJLaXRXZWJWaWV3KiwgY29uc3QgU3RyaW5nJik7Cit2b2lkIHdlYmtpdFdlYlZpZXdBY2Nl
cHRDdXJyZW50U2NyaXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqKTsKK3ZvaWQgd2Via2l0V2ViVmll
d0Rpc21pc3NDdXJyZW50U2NyaXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqKTsKIHZvaWQgd2Via2l0
V2ViVmlld01ha2VQZXJtaXNzaW9uUmVxdWVzdChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0UGVybWlz
c2lvblJlcXVlc3QqKTsKIHZvaWQgd2Via2l0V2ViVmlld01ha2VQb2xpY3lEZWNpc2lvbihXZWJL
aXRXZWJWaWV3KiwgV2ViS2l0UG9saWN5RGVjaXNpb25UeXBlLCBXZWJLaXRQb2xpY3lEZWNpc2lv
biopOwogdm9pZCB3ZWJraXRXZWJWaWV3TW91c2VUYXJnZXRDaGFuZ2VkKFdlYktpdFdlYlZpZXcq
LCBjb25zdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhJiwgV2ViS2l0OjpXZWJFdmVudDo6
TW9kaWZpZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2NyaXB0RGlhbG9nR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0U2NyaXB0RGlhbG9nR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZGE0MDQ4MjkyZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFNjcmlwdERpYWxvZ0d0ay5jcHAKQEAgLTAsMCArMSwx
MjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICog
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYktpdFNjcmlwdERpYWxvZy5oIgorCisjaW5jbHVkZSAiV2Vi
S2l0U2NyaXB0RGlhbG9nUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRl
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HdGtVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDxnbGliL2dp
MThuLWxpYi5oPgorI2luY2x1ZGUgPGd0ay9ndGsuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5p
cXVlUHRyLmg+CisKK3N0YXRpYyBHdGtXaWRnZXQqIHdlYmtpdFdlYlZpZXdDcmVhdGVKYXZhU2Ny
aXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEd0a01lc3NhZ2VUeXBlIHR5cGUsIEd0
a0J1dHRvbnNUeXBlIGJ1dHRvbnMsIGludCBkZWZhdWx0UmVzcG9uc2UsIGNvbnN0IGNoYXIqIHBy
aW1hcnlUZXh0LCBjb25zdCBjaGFyKiBzZWNvbmRhcnlUZXh0ID0gbnVsbHB0cikKK3sKKyAgICBH
dGtXaWRnZXQqIHBhcmVudCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQod2Vi
VmlldykpOworICAgIEd0a1dpZGdldCogZGlhbG9nID0gZ3RrX21lc3NhZ2VfZGlhbG9nX25ldyhX
ZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cocGFyZW50KSA/IEdUS19XSU5E
T1cocGFyZW50KSA6IG51bGxwdHIsCisgICAgICAgIEdUS19ESUFMT0dfREVTVFJPWV9XSVRIX1BB
UkVOVCwgdHlwZSwgYnV0dG9ucywgIiVzIiwgcHJpbWFyeVRleHQpOworICAgIGlmIChzZWNvbmRh
cnlUZXh0KQorICAgICAgICBndGtfbWVzc2FnZV9kaWFsb2dfZm9ybWF0X3NlY29uZGFyeV90ZXh0
KEdUS19NRVNTQUdFX0RJQUxPRyhkaWFsb2cpLCAiJXMiLCBzZWNvbmRhcnlUZXh0KTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IHRpdGxlKGdfc3RyZHVwX3ByaW50ZigiSmF2YVNjcmlwdCAtICVzIiwg
d2Via2l0V2ViVmlld0dldFBhZ2Uod2ViVmlldykucGFnZUxvYWRTdGF0ZSgpLnVybCgpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICBndGtfd2luZG93X3NldF90aXRsZShHVEtfV0lORE9XKGRpYWxvZyks
IHRpdGxlLmdldCgpKTsKKyAgICBpZiAoYnV0dG9ucyAhPSBHVEtfQlVUVE9OU19OT05FKQorICAg
ICAgICBndGtfZGlhbG9nX3NldF9kZWZhdWx0X3Jlc3BvbnNlKEdUS19ESUFMT0coZGlhbG9nKSwg
ZGVmYXVsdFJlc3BvbnNlKTsKKworICAgIHJldHVybiBkaWFsb2c7Cit9CisKK3ZvaWQgd2Via2l0
U2NyaXB0RGlhbG9nUnVuKFdlYktpdFNjcmlwdERpYWxvZyogc2NyaXB0RGlhbG9nLCBXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIEd0a1dpZGdldCogZGlhbG9nID0gbnVsbHB0cjsKKwor
ICAgIHN3aXRjaCAoc2NyaXB0RGlhbG9nLT50eXBlKSB7CisgICAgY2FzZSBXRUJLSVRfU0NSSVBU
X0RJQUxPR19BTEVSVDoKKyAgICAgICAgZGlhbG9nID0gd2Via2l0V2ViVmlld0NyZWF0ZUphdmFT
Y3JpcHREaWFsb2cod2ViVmlldywgR1RLX01FU1NBR0VfV0FSTklORywgR1RLX0JVVFRPTlNfQ0xP
U0UsIEdUS19SRVNQT05TRV9DTE9TRSwgc2NyaXB0RGlhbG9nLT5tZXNzYWdlLmRhdGEoKSk7Cisg
ICAgICAgIHNjcmlwdERpYWxvZy0+bmF0aXZlRGlhbG9nID0gZGlhbG9nOworICAgICAgICBndGtf
ZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFdFQktJVF9TQ1JJUFRfRElBTE9HX0NPTkZJUk06CisgICAgICAgIGRpYWxvZyA9IHdlYmtpdFdl
YlZpZXdDcmVhdGVKYXZhU2NyaXB0RGlhbG9nKHdlYlZpZXcsIEdUS19NRVNTQUdFX1FVRVNUSU9O
LCBHVEtfQlVUVE9OU19PS19DQU5DRUwsIEdUS19SRVNQT05TRV9PSywgc2NyaXB0RGlhbG9nLT5t
ZXNzYWdlLmRhdGEoKSk7CisgICAgICAgIHNjcmlwdERpYWxvZy0+bmF0aXZlRGlhbG9nID0gZGlh
bG9nOworICAgICAgICBzY3JpcHREaWFsb2ctPmNvbmZpcm1lZCA9IGd0a19kaWFsb2dfcnVuKEdU
S19ESUFMT0coZGlhbG9nKSkgPT0gR1RLX1JFU1BPTlNFX09LOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVDogeworICAgICAgICBkaWFsb2cgPSB3
ZWJraXRXZWJWaWV3Q3JlYXRlSmF2YVNjcmlwdERpYWxvZyh3ZWJWaWV3LCBHVEtfTUVTU0FHRV9R
VUVTVElPTiwgR1RLX0JVVFRPTlNfT0tfQ0FOQ0VMLCBHVEtfUkVTUE9OU0VfT0ssIHNjcmlwdERp
YWxvZy0+bWVzc2FnZS5kYXRhKCkpOworICAgICAgICBzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxv
ZyA9IGRpYWxvZzsKKyAgICAgICAgR3RrV2lkZ2V0KiBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsK
KyAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShlbnRyeSksIHNjcmlwdERpYWxv
Zy0+ZGVmYXVsdFRleHQuZGF0YSgpKTsKKyAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NP
TlRBSU5FUihndGtfZGlhbG9nX2dldF9jb250ZW50X2FyZWEoR1RLX0RJQUxPRyhkaWFsb2cpKSks
IGVudHJ5KTsKKyAgICAgICAgZ3RrX2VudHJ5X3NldF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5U
UlkoZW50cnkpLCBUUlVFKTsKKyAgICAgICAgZ3RrX3dpZGdldF9zaG93KGVudHJ5KTsKKyAgICAg
ICAgaWYgKGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSkgPT0gR1RLX1JFU1BPTlNF
X09LKQorICAgICAgICAgICAgc2NyaXB0RGlhbG9nLT50ZXh0ID0gZ3RrX2VudHJ5X2dldF90ZXh0
KEdUS19FTlRSWShlbnRyeSkpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgY2FzZSBXRUJL
SVRfU0NSSVBUX0RJQUxPR19CRUZPUkVfVU5MT0FEX0NPTkZJUk06CisgICAgICAgIGRpYWxvZyA9
IHdlYmtpdFdlYlZpZXdDcmVhdGVKYXZhU2NyaXB0RGlhbG9nKHdlYlZpZXcsIEdUS19NRVNTQUdF
X1FVRVNUSU9OLCBHVEtfQlVUVE9OU19OT05FLCBHVEtfUkVTUE9OU0VfT0ssCisgICAgICAgICAg
ICBfKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gbGVhdmUgdGhpcyBwYWdlPyIpLCBzY3JpcHRE
aWFsb2ctPm1lc3NhZ2UuZGF0YSgpKTsKKyAgICAgICAgc2NyaXB0RGlhbG9nLT5uYXRpdmVEaWFs
b2cgPSBkaWFsb2c7CisgICAgICAgIGd0a19kaWFsb2dfYWRkX2J1dHRvbnMoR1RLX0RJQUxPRyhk
aWFsb2cpLCBfKCJTdGF5IG9uIFBhZ2UiKSwgR1RLX1JFU1BPTlNFX0NMT1NFLCBfKCJMZWF2ZSBQ
YWdlIiksIEdUS19SRVNQT05TRV9PSywgbnVsbHB0cik7CisgICAgICAgIGd0a19kaWFsb2dfc2V0
X2RlZmF1bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFsb2cpLCBHVEtfUkVTUE9OU0VfT0spOwor
ICAgICAgICBzY3JpcHREaWFsb2ctPmNvbmZpcm1lZCA9IGd0a19kaWFsb2dfcnVuKEdUS19ESUFM
T0coZGlhbG9nKSkgPT0gR1RLX1JFU1BPTlNFX09LOworICAgICAgICBicmVhazsKKyAgICB9CisK
KyAgICBndGtfd2lkZ2V0X2Rlc3Ryb3koZGlhbG9nKTsKKyAgICBzY3JpcHREaWFsb2ctPm5hdGl2
ZURpYWxvZyA9IG51bGxwdHI7Cit9CisKK2Jvb2wgd2Via2l0U2NyaXB0RGlhbG9nSXNSdW5uaW5n
KFdlYktpdFNjcmlwdERpYWxvZyogc2NyaXB0RGlhbG9nKQoreworICAgIHJldHVybiAhIXNjcmlw
dERpYWxvZy0+bmF0aXZlRGlhbG9nOworfQorCit2b2lkIHdlYmtpdFNjcmlwdERpYWxvZ0FjY2Vw
dChXZWJLaXRTY3JpcHREaWFsb2cqIHNjcmlwdERpYWxvZykKK3sKKyAgICBpbnQgcmVzcG9uc2Ug
PSAwOworICAgIHN3aXRjaCAoc2NyaXB0RGlhbG9nLT50eXBlKSB7CisgICAgY2FzZSBXRUJLSVRf
U0NSSVBUX0RJQUxPR19BTEVSVDoKKyAgICAgICAgcmVzcG9uc2UgPSBHVEtfUkVTUE9OU0VfQ0xP
U0U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV0VCS0lUX1NDUklQVF9ESUFMT0dfQ09ORklS
TToKKyAgICBjYXNlIFdFQktJVF9TQ1JJUFRfRElBTE9HX1BST01QVDoKKyAgICBjYXNlIFdFQktJ
VF9TQ1JJUFRfRElBTE9HX0JFRk9SRV9VTkxPQURfQ09ORklSTToKKyAgICAgICAgcmVzcG9uc2Ug
PSBHVEtfUkVTUE9OU0VfT0s7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBBU1NFUlQoc2Ny
aXB0RGlhbG9nLT5uYXRpdmVEaWFsb2cpOworICAgIGd0a19kaWFsb2dfcmVzcG9uc2UoR1RLX0RJ
QUxPRyhzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZyksIHJlc3BvbnNlKTsKK30KKwordm9pZCB3
ZWJraXRTY3JpcHREaWFsb2dEaXNtaXNzKFdlYktpdFNjcmlwdERpYWxvZyogc2NyaXB0RGlhbG9n
KQoreworICAgIEFTU0VSVChzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxvZyk7CisgICAgZ3RrX2Rp
YWxvZ19yZXNwb25zZShHVEtfRElBTE9HKHNjcmlwdERpYWxvZy0+bmF0aXZlRGlhbG9nKSwgR1RL
X1JFU1BPTlNFX0NMT1NFKTsKK30KKwordm9pZCB3ZWJraXRTY3JpcHREaWFsb2dTZXRVc2VySW5w
dXQoV2ViS2l0U2NyaXB0RGlhbG9nKiBzY3JpcHREaWFsb2csIGNvbnN0IFN0cmluZyYgdXNlcklu
cHV0KQoreworICAgIGlmIChzY3JpcHREaWFsb2ctPnR5cGUgIT0gV0VCS0lUX1NDUklQVF9ESUFM
T0dfUFJPTVBUKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoc2NyaXB0RGlhbG9nLT5u
YXRpdmVEaWFsb2cpOworICAgIEd0a1dpZGdldCogZGlhbG9nQ29udGVudEFyZWEgPSBndGtfZGlh
bG9nX2dldF9jb250ZW50X2FyZWEoR1RLX0RJQUxPRyhzY3JpcHREaWFsb2ctPm5hdGl2ZURpYWxv
ZykpOworICAgIEdVbmlxdWVQdHI8R0xpc3Q+IGNoaWxkcmVuKGd0a19jb250YWluZXJfZ2V0X2No
aWxkcmVuKEdUS19DT05UQUlORVIoZGlhbG9nQ29udGVudEFyZWEpKSk7CisgICAgZm9yIChHTGlz
dCogY2hpbGQgPSBjaGlsZHJlbi5nZXQoKTsgY2hpbGQ7IGNoaWxkID0gZ19saXN0X25leHQoY2hp
bGQpKSB7CisgICAgICAgIEd0a1dpZGdldCogY2hpbGRXaWRnZXQgPSBHVEtfV0lER0VUKGNoaWxk
LT5kYXRhKTsKKyAgICAgICAgaWYgKEdUS19JU19FTlRSWShjaGlsZFdpZGdldCkpIHsKKyAgICAg
ICAgICAgIGd0a19lbnRyeV9zZXRfdGV4dChHVEtfRU5UUlkoY2hpbGRXaWRnZXQpLCB1c2VySW5w
dXQudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0K
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdHdGsuY3BwCmluZGV4IGM3ZjRlMWUwYmIzLi5jMTJlZGEwZDc2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCkBAIC0z
Niw1NiArMzYsOSBAQCBnYm9vbGVhbiB3ZWJraXRXZWJWaWV3QXV0aGVudGljYXRlKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIFdlYktpdEF1dGhlbnRpY2F0aW9uUgogICAgIHJldHVybiBUUlVFOwog
fQogCi1zdGF0aWMgR3RrV2lkZ2V0KiB3ZWJraXRXZWJWaWV3Q3JlYXRlSmF2YVNjcmlwdERpYWxv
ZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtNZXNzYWdlVHlwZSB0eXBlLCBHdGtCdXR0b25z
VHlwZSBidXR0b25zLCBpbnQgZGVmYXVsdFJlc3BvbnNlLCBjb25zdCBjaGFyKiBwcmltYXJ5VGV4
dCwgY29uc3QgY2hhciogc2Vjb25kYXJ5VGV4dCA9IG51bGxwdHIpCi17Ci0gICAgR3RrV2lkZ2V0
KiBwYXJlbnQgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHdlYlZpZXcpKTsK
LSAgICBHdGtXaWRnZXQqIGRpYWxvZyA9IGd0a19tZXNzYWdlX2RpYWxvZ19uZXcoV2ViQ29yZTo6
d2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHBhcmVudCkgPyBHVEtfV0lORE9XKHBhcmVu
dCkgOiBudWxscHRyLAotICAgICAgICBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIHR5
cGUsIGJ1dHRvbnMsICIlcyIsIHByaW1hcnlUZXh0KTsKLSAgICBpZiAoc2Vjb25kYXJ5VGV4dCkK
LSAgICAgICAgZ3RrX21lc3NhZ2VfZGlhbG9nX2Zvcm1hdF9zZWNvbmRhcnlfdGV4dChHVEtfTUVT
U0FHRV9ESUFMT0coZGlhbG9nKSwgIiVzIiwgc2Vjb25kYXJ5VGV4dCk7Ci0gICAgR1VuaXF1ZVB0
cjxjaGFyPiB0aXRsZShnX3N0cmR1cF9wcmludGYoIkphdmFTY3JpcHQgLSAlcyIsIHdlYmtpdFdl
YlZpZXdHZXRQYWdlKHdlYlZpZXcpLnBhZ2VMb2FkU3RhdGUoKS51cmwoKS51dGY4KCkuZGF0YSgp
KSk7Ci0gICAgZ3RrX3dpbmRvd19zZXRfdGl0bGUoR1RLX1dJTkRPVyhkaWFsb2cpLCB0aXRsZS5n
ZXQoKSk7Ci0gICAgaWYgKGJ1dHRvbnMgIT0gR1RLX0JVVFRPTlNfTk9ORSkKLSAgICAgICAgZ3Rr
X2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25zZShHVEtfRElBTE9HKGRpYWxvZyksIGRlZmF1bHRS
ZXNwb25zZSk7Ci0KLSAgICByZXR1cm4gZGlhbG9nOwotfQotCiBnYm9vbGVhbiB3ZWJraXRXZWJW
aWV3U2NyaXB0RGlhbG9nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdFNjcmlwdERpYWxv
Zyogc2NyaXB0RGlhbG9nKQogewotICAgIEd0a1dpZGdldCogZGlhbG9nID0gMDsKLQotICAgIHN3
aXRjaCAoc2NyaXB0RGlhbG9nLT50eXBlKSB7Ci0gICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxP
R19BTEVSVDoKLSAgICAgICAgZGlhbG9nID0gd2Via2l0V2ViVmlld0NyZWF0ZUphdmFTY3JpcHRE
aWFsb2cod2ViVmlldywgR1RLX01FU1NBR0VfV0FSTklORywgR1RLX0JVVFRPTlNfQ0xPU0UsIEdU
S19SRVNQT05TRV9DTE9TRSwgc2NyaXB0RGlhbG9nLT5tZXNzYWdlLmRhdGEoKSk7Ci0gICAgICAg
IGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSk7Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgV0VCS0lUX1NDUklQVF9ESUFMT0dfQ09ORklSTToKLSAgICAgICAgZGlhbG9nID0gd2Vi
a2l0V2ViVmlld0NyZWF0ZUphdmFTY3JpcHREaWFsb2cod2ViVmlldywgR1RLX01FU1NBR0VfUVVF
U1RJT04sIEdUS19CVVRUT05TX09LX0NBTkNFTCwgR1RLX1JFU1BPTlNFX09LLCBzY3JpcHREaWFs
b2ctPm1lc3NhZ2UuZGF0YSgpKTsKLSAgICAgICAgc2NyaXB0RGlhbG9nLT5jb25maXJtZWQgPSBn
dGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpID09IEdUS19SRVNQT05TRV9PSzsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19QUk9NUFQ6IHsKLSAg
ICAgICAgZGlhbG9nID0gd2Via2l0V2ViVmlld0NyZWF0ZUphdmFTY3JpcHREaWFsb2cod2ViVmll
dywgR1RLX01FU1NBR0VfUVVFU1RJT04sIEdUS19CVVRUT05TX09LX0NBTkNFTCwgR1RLX1JFU1BP
TlNFX09LLCBzY3JpcHREaWFsb2ctPm1lc3NhZ2UuZGF0YSgpKTsKLSAgICAgICAgR3RrV2lkZ2V0
KiBlbnRyeSA9IGd0a19lbnRyeV9uZXcoKTsKLSAgICAgICAgZ3RrX2VudHJ5X3NldF90ZXh0KEdU
S19FTlRSWShlbnRyeSksIHNjcmlwdERpYWxvZy0+ZGVmYXVsdFRleHQuZGF0YSgpKTsKLSAgICAg
ICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihndGtfZGlhbG9nX2dldF9jb250ZW50
X2FyZWEoR1RLX0RJQUxPRyhkaWFsb2cpKSksIGVudHJ5KTsKLSAgICAgICAgZ3RrX2VudHJ5X3Nl
dF9hY3RpdmF0ZXNfZGVmYXVsdChHVEtfRU5UUlkoZW50cnkpLCBUUlVFKTsKLSAgICAgICAgZ3Rr
X3dpZGdldF9zaG93KGVudHJ5KTsKLSAgICAgICAgaWYgKGd0a19kaWFsb2dfcnVuKEdUS19ESUFM
T0coZGlhbG9nKSkgPT0gR1RLX1JFU1BPTlNFX09LKQotICAgICAgICAgICAgc2NyaXB0RGlhbG9n
LT50ZXh0ID0gZ3RrX2VudHJ5X2dldF90ZXh0KEdUS19FTlRSWShlbnRyeSkpOwotICAgICAgICBi
cmVhazsKLSAgICB9Ci0gICAgY2FzZSBXRUJLSVRfU0NSSVBUX0RJQUxPR19CRUZPUkVfVU5MT0FE
X0NPTkZJUk06Ci0gICAgICAgIGRpYWxvZyA9IHdlYmtpdFdlYlZpZXdDcmVhdGVKYXZhU2NyaXB0
RGlhbG9nKHdlYlZpZXcsIEdUS19NRVNTQUdFX1FVRVNUSU9OLCBHVEtfQlVUVE9OU19OT05FLCBH
VEtfUkVTUE9OU0VfT0ssCi0gICAgICAgICAgICBfKCJBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8g
bGVhdmUgdGhpcyBwYWdlPyIpLCBzY3JpcHREaWFsb2ctPm1lc3NhZ2UuZGF0YSgpKTsKLSAgICAg
ICAgZ3RrX2RpYWxvZ19hZGRfYnV0dG9ucyhHVEtfRElBTE9HKGRpYWxvZyksIF8oIlN0YXkgb24g
UGFnZSIpLCBHVEtfUkVTUE9OU0VfQ0xPU0UsIF8oIkxlYXZlIFBhZ2UiKSwgR1RLX1JFU1BPTlNF
X09LLCBudWxscHRyKTsKLSAgICAgICAgZ3RrX2RpYWxvZ19zZXRfZGVmYXVsdF9yZXNwb25zZShH
VEtfRElBTE9HKGRpYWxvZyksIEdUS19SRVNQT05TRV9PSyk7Ci0gICAgICAgIHNjcmlwdERpYWxv
Zy0+Y29uZmlybWVkID0gZ3RrX2RpYWxvZ19ydW4oR1RLX0RJQUxPRyhkaWFsb2cpKSA9PSBHVEtf
UkVTUE9OU0VfT0s7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGd0a193aWRnZXRfZGVz
dHJveShkaWFsb2cpOwotCisgICAgd2Via2l0U2NyaXB0RGlhbG9nUnVuKHNjcmlwdERpYWxvZywg
d2ViVmlldyk7CiAgICAgcmV0dXJuIFRSVUU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2NyaXB0RGlhbG9nV1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0U2NyaXB0RGlhbG9nV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjk4YTIzZjc1NjAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFNjcmlwdERpYWxv
Z1dQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEgUy5MLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0U2NyaXB0RGlhbG9n
LmgiCisKKyNpbmNsdWRlICJXZWJLaXRTY3JpcHREaWFsb2dQcml2YXRlLmgiCisKK3ZvaWQgd2Vi
a2l0U2NyaXB0RGlhbG9nUnVuKFdlYktpdFNjcmlwdERpYWxvZyosIFdlYktpdFdlYlZpZXcqKQor
eworfQorCitib29sIHdlYmtpdFNjcmlwdERpYWxvZ0lzUnVubmluZyhXZWJLaXRTY3JpcHREaWFs
b2cqKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCB3ZWJraXRTY3JpcHREaWFsb2dB
Y2NlcHQoV2ViS2l0U2NyaXB0RGlhbG9nKikKK3sKK30KKwordm9pZCB3ZWJraXRTY3JpcHREaWFs
b2dEaXNtaXNzKFdlYktpdFNjcmlwdERpYWxvZyopCit7Cit9CisKK3ZvaWQgd2Via2l0U2NyaXB0
RGlhbG9nU2V0VXNlcklucHV0KFdlYktpdFNjcmlwdERpYWxvZyosIGNvbnN0IFN0cmluZyYpCit7
Cit9Cg==
</data>
<flag name="review"
          id="337965"
          type_id="1"
          status="+"
          setter="mcatanzaro"
    />
          </attachment>
      

    </bug>

</bugzilla>