<?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>71362</bug_id>
          
          <creation_ts>2011-11-02 07:14:21 -0700</creation_ts>
          <short_desc>[GTK] Add support for javascript dialogs in WebKit2 GTK+ API</short_desc>
          <delta_ts>2011-12-13 05:32:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>
          <dependson>69753</dependson>
          <blocked>71447</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>494597</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-02 07:14:21 -0700</bug_when>
    <thetext>Implement alert, confirm and prompt dialogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494605</commentid>
    <comment_count>1</comment_count>
      <attachid>113315</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-11-02 07:20:33 -0700</bug_when>
    <thetext>Created attachment 113315
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494608</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-02 07:22:55 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519187</commentid>
    <comment_count>3</comment_count>
      <attachid>113315</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-12-12 07:34:40 -0800</bug_when>
    <thetext>Comment on attachment 113315
Patch

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:343
&gt; +     * Emitted when JavaScript code calls &lt;function&gt;alert&lt;/function&gt;. If the

alert -&gt; window.alert

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:392
&gt; +     * signal is not handled a message dialog with Ok and Cancel buttons and

Ok -&gt; OK

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp:109
&gt; +        htmlString = g_strdup_printf(htmlOnLoadFormat, &quot;self.close();&quot;);
&gt; +    else if (g_str_equal(path, &quot;/javascript_alert&quot;)) {
&gt; +        GOwnPtr&lt;char&gt; alertDialogMessage(g_strdup_printf(&quot;alert(&apos;%s&apos;)&quot;, kAlertDialogMessage));
&gt; +        htmlString = g_strdup_printf(htmlOnLoadFormat, alertDialogMessage.get());
&gt; +    } else if (g_str_equal(path, &quot;/javascript_confirm&quot;)) {
&gt; +        GOwnPtr&lt;char&gt; alertDialogMessage(g_strdup_printf(jsConfirmFormat, kConfirmDialogMessage));

Could you skip soup server here again and just load a string?

&gt; Source/WebKit2/UIProcess/API/gtk/tests/TestWebKitWebView.cpp:247
&gt; +    g_main_loop_run(test-&gt;m_mainLoop);

It&apos;s a bit odd that the fixture takes care of ending the main loop, but the test takes care of running it. Maybe you could add a method to the fixture like: runMainLoopUntilAlertDialog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520043</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-12-13 05:32:16 -0800</bug_when>
    <thetext>Committed r102675: &lt;http://trac.webkit.org/changeset/102675&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113315</attachid>
            <date>2011-11-02 07:20:33 -0700</date>
            <delta_ts>2011-12-12 07:34:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-js-dialogs.diff</filename>
            <type>text/plain</type>
            <size>22038</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzZTBmOTljLi42ZTJkZWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMTEtMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciBqYXZhc2NyaXB0IGRpYWxvZ3MgaW4g
V2ViS2l0MiBHVEsrIEFQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzEzNjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcDoKKyAgICAgICAg
KHJ1bkphdmFTY3JpcHRBbGVydCk6IENhbGwgd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRBbGVy
dCgpLgorICAgICAgICAocnVuSmF2YVNjcmlwdENvbmZpcm0pOiBDYWxsIHdlYmtpdFdlYlZpZXdS
dW5KYXZhU2NyaXB0Q29uZmlybSgpLgorICAgICAgICAocnVuSmF2YVNjcmlwdFByb21wdCk6IENh
bGwgd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRQcm9tcHQoKS4KKyAgICAgICAgKHdlYmtpdFVJ
Q2xpZW50QXR0YWNoVUlDbGllbnRUb1BhZ2UpOiBBZGQgaW1wbGVtZW50YXRpb24gZm9yCisgICAg
ICAgIHJ1bkphdmFTY3JpcHRBbGVydCwgcnVuSmF2YVNjcmlwdENvbmZpcm0gYW5kIHJ1bkphdmFT
Y3JpcHRQcm9tcHQKKyAgICAgICAgY2FsbGJhY2tzLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0NyZWF0ZUphdmFT
Y3JpcHREaWFsb2cpOiBIZWxwZXIgZnVuY3Rpb24gdG8gY3JlYXRlCisgICAgICAgIGphdmFzY3Jp
cHQgZGlhbG9ncy4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdTY3JpcHRBbGVydCk6IERlZmF1bHQg
aW1wbGVtZW50YXRpb24gb2Ygc2lnbmFsCisgICAgICAgIFdlYktpdFdlYlZpZXc6OnNjcmlwdC1h
bGVydCB0aGF0IHNob3dzIGEgbWVzc2FnZSBkaWFsb2cuCisgICAgICAgICh3ZWJraXRXZWJWaWV3
U2NyaXB0Q29uZmlybSk6IERlZmF1bHQgaW1wbGVtZW50YXRpb24gb2Ygc2lnbmFsCisgICAgICAg
IFdlYktpdFdlYlZpZXc6OnNjcmlwdC1jb25maXJtIHRoYXQgc2hvd3MgYSBxdWVzdGlvbiBkaWFs
b2cuCisgICAgICAgICh3ZWJraXRXZWJWaWV3U2NyaXB0UHJvbXB0KTogRGVmYXVsdCBpbXBsZW1l
bnRhdGlvbiBvZiBzaWduYWwKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6c2NyaXB0LXByb21wdCB0
aGF0IHNob3dzIGEgcXVlc3Rpb24gZGlhbG9nIHdpdGggYQorICAgICAgICB0ZXh0IGVudHJ5Lgor
ICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0V2Vi
Vmlld1J1bkphdmFTY3JpcHRBbGVydCk6IEVtaXQgV2ViS2l0V2ViVmlldzo6c2NyaXB0LWFsZXJ0
LgorICAgICAgICAod2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRDb25maXJtKTogRW1pdCBXZWJL
aXRXZWJWaWV3OjpzY3JpcHQtY29uZmlybS4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdSdW5KYXZh
U2NyaXB0UHJvbXB0KTogRW1pdCBXZWJLaXRXZWJWaWV3OjpzY3JpcHQtcHJvbXB0LgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHNlcnZlckNhbGxi
YWNrKToKKyAgICAgICAgKHRlc3RXZWJWaWV3SmF2YVNjcmlwdERpYWxvZ3MpOgorICAgICAgICAo
YmVmb3JlQWxsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJraXQybWFyc2hhbC5s
aXN0OgorCiAyMDExLTExLTAxICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEuY29t
PgogCiAgICAgICAgIFtRdF1bV0syXSBNYWtlIEFQSSB0ZXN0cyBsZXNzIG5vaXN5CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5k
ZXggN2ZmNWZhNi4uM2ZmZjU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtNDMsNiArNDMsMjIgQEAgc3RhdGljIHZv
aWQgY2xvc2VQYWdlKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKikKICAgICB3ZWJraXRXZWJW
aWV3Q2xvc2VQYWdlKFdFQktJVF9XRUJfVklFVyh0b0ltcGwocGFnZSktPnZpZXdXaWRnZXQoKSkp
OwogfQogCitzdGF0aWMgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdL
U3RyaW5nUmVmIG1lc3NhZ2UsIFdLRnJhbWVSZWYsIGNvbnN0IHZvaWQqKQoreworICAgIHdlYmtp
dFdlYlZpZXdSdW5KYXZhU2NyaXB0QWxlcnQoV0VCS0lUX1dFQl9WSUVXKHRvSW1wbChwYWdlKS0+
dmlld1dpZGdldCgpKSwgdG9JbXBsKG1lc3NhZ2UpLT5zdHJpbmcoKS51dGY4KCkpOworfQorCitz
dGF0aWMgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbWVzc2FnZSwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCopCit7CisgICAgcmV0dXJuIHdlYmtp
dFdlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybShXRUJLSVRfV0VCX1ZJRVcodG9JbXBsKHBhZ2Up
LT52aWV3V2lkZ2V0KCkpLCB0b0ltcGwobWVzc2FnZSktPnN0cmluZygpLnV0ZjgoKSk7Cit9CisK
K3N0YXRpYyBXS1N0cmluZ1JlZiBydW5KYXZhU2NyaXB0UHJvbXB0KFdLUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiBtZXNzYWdlLCBXS1N0cmluZ1JlZiBkZWZhdWx0VmFsdWUsIFdLRnJhbWVSZWYs
IGNvbnN0IHZvaWQqKQoreworICAgIHJldHVybiB3ZWJraXRXZWJWaWV3UnVuSmF2YVNjcmlwdFBy
b21wdChXRUJLSVRfV0VCX1ZJRVcodG9JbXBsKHBhZ2UpLT52aWV3V2lkZ2V0KCkpLCB0b0ltcGwo
bWVzc2FnZSktPnN0cmluZygpLnV0ZjgoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdG9JbXBsKGRlZmF1bHRWYWx1ZSktPnN0cmluZygpLnV0ZjgoKSk7Cit9
CisKIHZvaWQgd2Via2l0VUlDbGllbnRBdHRhY2hVSUNsaWVudFRvUGFnZShXZWJLaXRVSUNsaWVu
dCogdWlDbGllbnQsIFdLUGFnZVJlZiB3a1BhZ2UpCiB7CiAgICAgV0tQYWdlVUlDbGllbnQgd2tV
SUNsaWVudCA9IHsKQEAgLTU0LDkgKzcwLDkgQEAgdm9pZCB3ZWJraXRVSUNsaWVudEF0dGFjaFVJ
Q2xpZW50VG9QYWdlKFdlYktpdFVJQ2xpZW50KiB1aUNsaWVudCwgV0tQYWdlUmVmIHdrUGEKICAg
ICAgICAgMCwgLy8gdGFrZUZvY3VzCiAgICAgICAgIDAsIC8vIGZvY3VzCiAgICAgICAgIDAsIC8v
IHVuZm9jdXMKLSAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0Ci0gICAgICAgIDAsIC8v
IHJ1bkphdmFTY3JpcHRDb25maXJtCi0gICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQK
KyAgICAgICAgcnVuSmF2YVNjcmlwdEFsZXJ0LAorICAgICAgICBydW5KYXZhU2NyaXB0Q29uZmly
bSwKKyAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdCwKICAgICAgICAgMCwgLy8gc2V0U3RhdHVz
VGV4dAogICAgICAgICAwLCAvLyBtb3VzZURpZE1vdmVPdmVyRWxlbWVudF9kZXByZWNhdGVkRm9y
VXNlV2l0aFYwCiAgICAgICAgIDAsIC8vIG1pc3NpbmdQbHVnaW5CdXR0b25DbGlja2VkCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmlu
ZGV4IDk0NDA4ZDIuLmU0ZWRjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8
V2ViS2l0Mi9XS0Jhc2UuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLUmV0YWluUHRyLmg+CiAjaW5j
bHVkZSA8V2ViS2l0Mi9XS1VSTC5oPgorI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogCkBAIC00Niw2ICs0NywxMCBAQCBlbnVtIHsKICAgICBSRUFEWV9UT19TSE9XLAog
ICAgIENMT1NFLAogCisgICAgU0NSSVBUX0FMRVJULAorICAgIFNDUklQVF9DT05GSVJNLAorICAg
IFNDUklQVF9QUk9NUFQsCisKICAgICBMQVNUX1NJR05BTAogfTsKIApAQCAtNzgsNiArODMsNDkg
QEAgc3RhdGljIEd0a1dpZGdldCogd2Via2l0V2ViVmlld0NyZWF0ZShXZWJLaXRXZWJWaWV3KikK
ICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIEd0a1dpZGdldCogd2Via2l0V2ViVmlld0NyZWF0
ZUphdmFTY3JpcHREaWFsb2coV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrTWVzc2FnZVR5cGUg
dHlwZSwgR3RrQnV0dG9uc1R5cGUgYnV0dG9ucywgaW50IGRlZmF1bHRSZXNwb25zZSwgY29uc3Qg
Y2hhciogbWVzc2FnZSkKK3sKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IGd0a193aWRnZXRfZ2V0
X3RvcGxldmVsKEdUS19XSURHRVQod2ViVmlldykpOworICAgIEd0a1dpZGdldCogZGlhbG9nID0g
Z3RrX21lc3NhZ2VfZGlhbG9nX25ldyhndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHBhcmVudCkgPyBH
VEtfV0lORE9XKHBhcmVudCkgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHVEtfRElBTE9HX0RFU1RST1lfV0lUSF9QQVJFTlQsIHR5cGUsIGJ1dHRv
bnMsICIlcyIsIG1lc3NhZ2UpOworICAgIEdPd25QdHI8Y2hhcj4gdGl0bGUoZ19zdHJkdXBfcHJp
bnRmKCJKYXZhU2NyaXB0IC0gJXMiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaSh3ZWJWaWV3KSkp
OworICAgIGd0a193aW5kb3dfc2V0X3RpdGxlKEdUS19XSU5ET1coZGlhbG9nKSwgdGl0bGUuZ2V0
KCkpOworICAgIGd0a19kaWFsb2dfc2V0X2RlZmF1bHRfcmVzcG9uc2UoR1RLX0RJQUxPRyhkaWFs
b2cpLCBkZWZhdWx0UmVzcG9uc2UpOworCisgICAgcmV0dXJuIGRpYWxvZzsKK30KKworCitzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld1NjcmlwdEFsZXJ0KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGNvbnN0IGNoYXIqIG1lc3NhZ2UpCit7CisgICAgR3RrV2lkZ2V0KiBkaWFsb2cgPSB3ZWJr
aXRXZWJWaWV3Q3JlYXRlSmF2YVNjcmlwdERpYWxvZyh3ZWJWaWV3LCBHVEtfTUVTU0FHRV9XQVJO
SU5HLCBHVEtfQlVUVE9OU19DTE9TRSwgR1RLX1JFU1BPTlNFX0NMT1NFLCBtZXNzYWdlKTsKKyAg
ICBndGtfZGlhbG9nX3J1bihHVEtfRElBTE9HKGRpYWxvZykpOworICAgIGd0a193aWRnZXRfZGVz
dHJveShkaWFsb2cpOworICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Vi
a2l0V2ViVmlld1NjcmlwdENvbmZpcm0oV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgY2hh
ciogbWVzc2FnZSwgZ2Jvb2xlYW4qIGNvbmZpcm1lZCkKK3sKKyAgICBHdGtXaWRnZXQqIGRpYWxv
ZyA9IHdlYmtpdFdlYlZpZXdDcmVhdGVKYXZhU2NyaXB0RGlhbG9nKHdlYlZpZXcsIEdUS19NRVNT
QUdFX1FVRVNUSU9OLCBHVEtfQlVUVE9OU19PS19DQU5DRUwsIEdUS19SRVNQT05TRV9PSywgbWVz
c2FnZSk7CisgICAgKmNvbmZpcm1lZCA9IGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9n
KSkgPT0gR1RLX1JFU1BPTlNFX09LOworICAgIGd0a193aWRnZXRfZGVzdHJveShkaWFsb2cpOwor
ICAgIHJldHVybiBUUlVFOworfQorCitzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0V2ViVmlld1Njcmlw
dFByb21wdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBjb25z
dCBjaGFyKiBkZWZhdWx0VGV4dCwgY2hhcioqIHRleHQpCit7CisgICAgR3RrV2lkZ2V0KiBkaWFs
b2cgPSB3ZWJraXRXZWJWaWV3Q3JlYXRlSmF2YVNjcmlwdERpYWxvZyh3ZWJWaWV3LCBHVEtfTUVT
U0FHRV9RVUVTVElPTiwgR1RLX0JVVFRPTlNfT0tfQ0FOQ0VMLCBHVEtfUkVTUE9OU0VfT0ssIG1l
c3NhZ2UpOworICAgIEd0a1dpZGdldCogZW50cnkgPSBndGtfZW50cnlfbmV3KCk7CisgICAgZ3Rr
X2VudHJ5X3NldF90ZXh0KEdUS19FTlRSWShlbnRyeSksIGRlZmF1bHRUZXh0KTsKKyAgICBndGtf
Y29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJlYShH
VEtfRElBTE9HKGRpYWxvZykpKSwgZW50cnkpOworICAgIGd0a19lbnRyeV9zZXRfYWN0aXZhdGVz
X2RlZmF1bHQoR1RLX0VOVFJZKGVudHJ5KSwgVFJVRSk7CisgICAgZ3RrX3dpZGdldF9zaG93KGVu
dHJ5KTsKKworICAgICp0ZXh0ID0gKGd0a19kaWFsb2dfcnVuKEdUS19ESUFMT0coZGlhbG9nKSkg
PT0gR1RLX1JFU1BPTlNFX09LKSA/IGdfc3RyZHVwKGd0a19lbnRyeV9nZXRfdGV4dChHVEtfRU5U
UlkoZW50cnkpKSkgOiAwOworICAgIHJldHVybiBUUlVFOworfQorCisKIHN0YXRpYyB2b2lkIHdl
YmtpdFdlYlZpZXdTZXRMb2FkZXJDbGllbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViS2l0
V2ViTG9hZGVyQ2xpZW50KiBsb2FkZXJDbGllbnQsIFdLUGFnZVJlZiB3a1BhZ2UpCiB7CiAgICAg
d2ViVmlldy0+cHJpdi0+bG9hZGVyQ2xpZW50ID0gbG9hZGVyQ2xpZW50OwpAQCAtMTczLDYgKzIy
MSw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZp
ZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgIGdPYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJr
aXRXZWJWaWV3RmluYWxpemU7CiAKICAgICB3ZWJWaWV3Q2xhc3MtPmNyZWF0ZSA9IHdlYmtpdFdl
YlZpZXdDcmVhdGU7CisgICAgd2ViVmlld0NsYXNzLT5zY3JpcHRfYWxlcnQgPSB3ZWJraXRXZWJW
aWV3U2NyaXB0QWxlcnQ7CisgICAgd2ViVmlld0NsYXNzLT5zY3JpcHRfY29uZmlybSA9IHdlYmtp
dFdlYlZpZXdTY3JpcHRDb25maXJtOworICAgIHdlYlZpZXdDbGFzcy0+c2NyaXB0X3Byb21wdCA9
IHdlYmtpdFdlYlZpZXdTY3JpcHRQcm9tcHQ7CiAKICAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZh
dGUod2ViVmlld0NsYXNzLCBzaXplb2YoV2ViS2l0V2ViVmlld1ByaXZhdGUpKTsKIApAQCAtMjgz
LDYgKzMzNCw3OCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJL
aXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgICAgICAgICAgIDAsIDAs
CiAgICAgICAgICAgICAgICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKICAg
ICAgICAgICAgICAgICAgICAgIEdfVFlQRV9OT05FLCAwKTsKKworICAgIC8qKgorICAgICAqIFdl
YktpdFdlYlZpZXc6OnNjcmlwdC1hbGVydDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0
V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKKyAgICAgKiBAbWVzc2FnZTog
dGhlIG1lc3NhZ2UgdGV4dAorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVuIEphdmFTY3JpcHQg
Y29kZSBjYWxscyA8ZnVuY3Rpb24+YWxlcnQ8L2Z1bmN0aW9uPi4gSWYgdGhlCisgICAgICogc2ln
bmFsIGlzIG5vdCBoYW5kbGVkIGEgbWVzc2FnZSBkaWFsb2cgd2l0aCBhIHNpbmdsZSBDbG9zZSBi
dXR0b24gd2lsbCBiZQorICAgICAqIHNob3duIHdpdGggdGhlIG1lc3NhZ2UgdGV4dC4KKyAgICAg
KgorICAgICAqIFJldHVybnM6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWlu
ZyBpbnZva2VkIGZvciB0aGUgZXZlbnQuCisgICAgICogICAgJUZBTFNFIHRvIHByb3BhZ2F0ZSB0
aGUgZXZlbnQgZnVydGhlci4KKyAgICAgKi8KKyAgICBzaWduYWxzW1NDUklQVF9BTEVSVF0gPQor
ICAgICAgICAgICAgZ19zaWduYWxfbmV3KCJzY3JpcHQtYWxlcnQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfVFlQRV9GUk9NX0NMQVNTKHdlYlZpZXdDbGFzcyksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
R19TVFJVQ1RfT0ZGU0VUKFdlYktpdFdlYlZpZXdDbGFzcywgc2NyaXB0X2FsZXJ0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fU1RSSU5H
LAorICAgICAgICAgICAgICAgICAgICAgICAgIEdfVFlQRV9CT09MRUFOLCAxLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIEdfVFlQRV9TVFJJTkcpOworCisgICAgLyoqCisgICAgICogV2ViS2l0
V2ViVmlldzo6c2NyaXB0LWNvbmZpcm06CisgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdl
YlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCisgICAgICogQG1lc3NhZ2U6IHRo
ZSBtZXNzYWdlIHRleHQKKyAgICAgKiBAY29uZmlybWVkOiAob3V0KTogcmV0dXJuIGxvY2F0aW9u
IGZvciBjb25maXJtIGRpYWxvZyByZXNwb25zZQorICAgICAqCisgICAgICogRW1pdHRlZCB3aGVu
IEphdmFTY3JpcHQgY29kZSBjYWxscyA8ZnVuY3Rpb24+Y29uZmlybTwvZnVuY3Rpb24+LiBJZiB0
aGUKKyAgICAgKiBzaWduYWwgaXMgbm90IGhhbmRsZWQgYSBtZXNzYWdlIGRpYWxvZyB3aXRoIE9r
IGFuZCBDYW5jZWwgYnV0dG9ucyB3aWxsIGJlCisgICAgICogc2hvd24gd2l0aCB0aGUgbWVzc2Fn
ZSB0ZXh0LiBJZiBPayBidXR0b24gaXMgY2xpY2tlZCBAY29uZmlybWVkIHdpbGwgYmUKKyAgICAg
KiBzZXQgdG8gJVRSVUUsIG90aGVyd2lzZSBpdCB3aWxsIGJlICVGQUxTRS4KKyAgICAgKgorICAg
ICAqIFJldHVybnM6ICVUUlVFIHRvIHN0b3Agb3RoZXIgaGFuZGxlcnMgZnJvbSBiZWluZyBpbnZv
a2VkIGZvciB0aGUgZXZlbnQuCisgICAgICogICAgJUZBTFNFIHRvIHByb3BhZ2F0ZSB0aGUgZXZl
bnQgZnVydGhlci4KKyAgICAgKi8KKyAgICBzaWduYWxzW1NDUklQVF9DT05GSVJNXSA9CisgICAg
ICAgICAgICBnX3NpZ25hbF9uZXcoInNjcmlwdC1jb25maXJtIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIEdfU0lHTkFMX1JVTl9MQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgIEdf
U1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHNjcmlwdF9jb25maXJtKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBnX3NpZ25hbF9hY2N1bXVsYXRvcl90cnVlX2hhbmRsZWQsIDAs
CisgICAgICAgICAgICAgICAgICAgICAgICAgd2Via2l0X21hcnNoYWxfQk9PTEVBTl9fU1RSSU5H
X1BPSU5URVIsCisgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBFX1BPSU5URVIpOwor
CisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6c2NyaXB0LXByb21wdDoKKyAgICAgKiBA
d2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0
ZWQKKyAgICAgKiBAbWVzc2FnZTogdGhlIG1lc3NhZ2UgdGV4dAorICAgICAqIEBkZWZhdWx0IChh
bGxvdy1ub25lKTogdGhlIGRlZmF1bHQgdGV4dAorICAgICAqIEB0ZXh0OiAob3V0KTogcmV0dXJu
IGxvY2F0aW9uIGZvciBwcm9tcHQgZGlhbG9nIHRleHQgcmVzcG9uc2UKKyAgICAgKgorICAgICAq
IEVtaXR0ZWQgd2hlbiBKYXZhU2NyaXB0IGNvZGUgY2FsbHMgPGZ1bmN0aW9uPnByb21wdDwvZnVu
Y3Rpb24+LiBJZiB0aGUKKyAgICAgKiBzaWduYWwgaXMgbm90IGhhbmRsZWQgYSBtZXNzYWdlIGRp
YWxvZyB3aXRoIE9rIGFuZCBDYW5jZWwgYnV0dG9ucyBhbmQKKyAgICAgKiBhIHRleHQgZW50cnkg
d2lsbCBiZSBzaG93biB3aXRoIHRoZSBtZXNzYWdlIHRleHQuIElmIE9rIGJ1dHRvbiBpcyBjbGlj
a2VkCisgICAgICogQHRleHQgd2lsbCBjb250YWluIHRoZSB0ZXh0IGVudGVyZWQgYnkgdGhlIHVz
ZXIsIG90aGVyd2lzZSBpdCB3aWxsIGJlICVOVUxMLgorICAgICAqCisgICAgICogUmV0dXJuczog
JVRSVUUgdG8gc3RvcCBvdGhlciBoYW5kbGVycyBmcm9tIGJlaW5nIGludm9rZWQgZm9yIHRoZSBl
dmVudC4KKyAgICAgKiAgICAlRkFMU0UgdG8gcHJvcGFnYXRlIHRoZSBldmVudCBmdXJ0aGVyLgor
ICAgICAqLworICAgIHNpZ25hbHNbU0NSSVBUX1BST01QVF0gPQorICAgICAgICAgICAgZ19zaWdu
YWxfbmV3KCJzY3JpcHQtcHJvbXB0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBHX1RZUEVf
RlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3MpLAorICAgICAgICAgICAgICAgICAgICAgICAgIEdfU0lH
TkFMX1JVTl9MQVNULAorICAgICAgICAgICAgICAgICAgICAgICAgIEdfU1RSVUNUX09GRlNFVChX
ZWJLaXRXZWJWaWV3Q2xhc3MsIHNjcmlwdF9wcm9tcHQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGdfc2lnbmFsX2FjY3VtdWxhdG9yX3RydWVfaGFuZGxlZCwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICB3ZWJraXRfbWFyc2hhbF9CT09MRUFOX19TVFJJTkdfU1RSSU5HX1BPSU5URVIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgR19UWVBFX0JPT0xFQU4sIDMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgR19UWVBFX1NUUklORywgR19UWVBFX1NUUklORywgR19UWVBFX1BPSU5U
RVIpOworCiB9CiAKIHZvaWQgd2Via2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9ncmVzcyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBkb3VibGUgZXN0aW1hdGVkTG9hZFByb2dyZXNzKQpAQCAt
MzI4LDYgKzQ1MSwyNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdDbG9zZVBhZ2UoV2ViS2l0V2ViVmll
dyogd2ViVmlldykKICAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbQ0xPU0VdLCAw
LCBOVUxMKTsKIH0KIAordm9pZCB3ZWJraXRXZWJWaWV3UnVuSmF2YVNjcmlwdEFsZXJ0KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2UpCit7CisgICAgZ2Jvb2xl
YW4gcmV0dXJuVmFsdWU7CisgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW1NDUklQ
VF9BTEVSVF0sIDAsIG1lc3NhZ2UuZGF0YSgpLCAmcmV0dXJuVmFsdWUpOworfQorCitib29sIHdl
YmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0Q29uZmlybShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBj
b25zdCBDU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGdib29sZWFuIHJldHVyblZhbHVlLCBjb25m
aXJtZWQ7CisgICAgZ19zaWduYWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW1NDUklQVF9DT05GSVJN
XSwgMCwgbWVzc2FnZS5kYXRhKCksICZjb25maXJtZWQsICZyZXR1cm5WYWx1ZSk7CisgICAgcmV0
dXJuIGNvbmZpcm1lZDsKK30KKworV0tTdHJpbmdSZWYgd2Via2l0V2ViVmlld1J1bkphdmFTY3Jp
cHRQcm9tcHQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgQ1N0cmluZyYgbWVzc2FnZSwg
Y29uc3QgQ1N0cmluZyYgZGVmYXVsdFRleHQpCit7CisgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7
CisgICAgR093blB0cjxjaGFyPiB0ZXh0OworICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2ln
bmFsc1tTQ1JJUFRfUFJPTVBUXSwgMCwgbWVzc2FnZS5kYXRhKCksIGRlZmF1bHRUZXh0LmRhdGEo
KSwgJnRleHQub3V0UHRyKCksICZyZXR1cm5WYWx1ZSk7CisgICAgcmV0dXJuIHRleHQgPyBXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh0ZXh0LmdldCgpKSA6IDA7Cit9CisKIC8qKgogICog
d2Via2l0X3dlYl92aWV3X25ldzoKICAqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggMGM1ZGQ1MC4uYjczMjkyNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtNTUs
OSArNTUsMTkgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3IHsKIHN0cnVjdCBfV2ViS2l0V2ViVmll
d0NsYXNzIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZUNsYXNzIHBhcmVudDsKIAotICAgIEd0a1dp
ZGdldCAqKCogY3JlYXRlKSAgICAgICAgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KTsKLSAgICB2
b2lkICAgICAgICgqIHJlYWR5X3RvX3Nob3cpIChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldyk7Ci0g
ICAgdm9pZCAgICAgICAoKiBjbG9zZSkgICAgICAgICAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcp
OworICAgIEd0a1dpZGdldCAqKCogY3JlYXRlKSAgICAgICAgIChXZWJLaXRXZWJWaWV3ICp3ZWJf
dmlldyk7CisgICAgdm9pZCAgICAgICAoKiByZWFkeV90b19zaG93KSAgKFdlYktpdFdlYlZpZXcg
KndlYl92aWV3KTsKKyAgICB2b2lkICAgICAgICgqIGNsb3NlKSAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAqd2ViX3ZpZXcpOworCisgICAgZ2Jvb2xlYW4gICAoKiBzY3JpcHRfYWxlcnQpICAgKFdl
YktpdFdlYlZpZXcgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBnY2hhciAgICptZXNzYWdlKTsKKyAgICBnYm9vbGVhbiAgICgqIHNjcmlwdF9jb25m
aXJtKSAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IGdjaGFyICAgKm1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdib29sZWFuICAgICAgKmNvbmZpcm1lZCk7CisgICAgZ2Jvb2xlYW4gICAo
KiBzY3JpcHRfcHJvbXB0KSAgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICptZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICpkZWZhdWx0X3RleHQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFyICAgICAgICAqKnRleHQpOwog
CiAgICAgLyogUGFkZGluZyBmb3IgZnV0dXJlIGV4cGFuc2lvbiAqLwogICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMCkgKHZvaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggODdkMWM2My4uN2RiNDlk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3UHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFdlYktpdFdlYlZp
ZXdQcml2YXRlX2gKIAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKKyNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CiAKIHZvaWQgd2Vi
a2l0V2ViVmlld1NldEVzdGltYXRlZExvYWRQcm9ncmVzcyhXZWJLaXRXZWJWaWV3KiwgZG91Ymxl
IGVzdGltYXRlZExvYWRQcm9ncmVzcyk7CkBAIC0zNCw1ICszNSw4IEBAIHZvaWQgd2Via2l0V2Vi
Vmlld1VwZGF0ZVVSSShXZWJLaXRXZWJWaWV3Kik7CiBXS1BhZ2VSZWYgd2Via2l0V2ViVmlld0Ny
ZWF0ZU5ld1BhZ2UoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJraXRXZWJWaWV3UmVhZHlUb1No
b3dQYWdlKFdlYktpdFdlYlZpZXcqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Nsb3NlUGFnZShXZWJL
aXRXZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYlZpZXdSdW5KYXZhU2NyaXB0QWxlcnQoV2ViS2l0
V2ViVmlldyosIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2UpOworYm9vbCB3ZWJraXRXZWJWaWV3UnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViS2l0V2ViVmlldyosIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2Up
OworV0tTdHJpbmdSZWYgd2Via2l0V2ViVmlld1J1bkphdmFTY3JpcHRQcm9tcHQoV2ViS2l0V2Vi
VmlldyosIGNvbnN0IENTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IENTdHJpbmcmIGRlZmF1bHRUZXh0
KTsKIAogI2VuZGlmIC8vIFdlYktpdFdlYlZpZXdQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRXZWJWaWV3
LmNwcAppbmRleCA1NDg0ODRiLi41NzVmMjY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYktpdFdlYlZpZXcuY3BwCkBA
IC03OCw5ICs3OCwxNiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld1NldHRpbmdzKFdlYlZpZXdU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KHdlYmtpdF9zZXR0aW5nc19n
ZXRfZW5hYmxlX2phdmFzY3JpcHQoc2V0dGluZ3MpKTsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIq
IGtBbGVydERpYWxvZ01lc3NhZ2UgPSAiV2ViS2l0R1RLKyBhbGVydCBkaWFsb2cgbWVzc2FnZSI7
CitzdGF0aWMgY29uc3QgY2hhcioga0NvbmZpcm1EaWFsb2dNZXNzYWdlID0gIldlYktpdEdUSysg
Y29uZmlybSBkaWFsb2cgbWVzc2FnZSI7CitzdGF0aWMgY29uc3QgY2hhcioga1Byb21wdERpYWxv
Z01lc3NhZ2UgPSAiV2ViS2l0R1RLKyBwcm9tcHQgZGlhbG9nIG1lc3NhZ2UiOworc3RhdGljIGNv
bnN0IGNoYXIqIGtQcm9tcHREaWFsb2dSZXR1cm5lZFRleHQgPSAiV2ViS2l0R1RLKyBwcm9tcHQg
ZGlhbG9nIHJldHVybmVkIHRleHQiOworCiBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3Vw
U2VydmVyKiBzZXJ2ZXIsIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBwYXRoLCBH
SGFzaFRhYmxlKiwgU291cENsaWVudENvbnRleHQqLCBncG9pbnRlcikKIHsKICAgICBzdGF0aWMg
Y29uc3QgY2hhciogaHRtbE9uTG9hZEZvcm1hdCA9ICI8aHRtbD48Ym9keSBvbkxvYWQ9XCIlc1wi
PjwvYm9keT48L2h0bWw+IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhcioganNDb25maXJtRm9ybWF0
ID0gImlmIChjb25maXJtKCclcycpKSB7IGFsZXJ0KCdjb25maXJtZWQnKTsgfSBlbHNlIHsgd2lu
ZG93LmxvY2F0aW9uLnJlbG9hZCgpOyB9IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhcioganNQcm9t
cHRGb3JtYXQgPSAiYWxlcnQocHJvbXB0KCclcycsICclcycpKTsiOwogCiAgICAgaWYgKG1lc3Nh
Z2UtPm1ldGhvZCAhPSBTT1VQX01FVEhPRF9HRVQpIHsKICAgICAgICAgc291cF9tZXNzYWdlX3Nl
dF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfTk9UX0lNUExFTUVOVEVEKTsKQEAgLTg5LDE1
ICs5NiwyNSBAQCBzdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiBzZXJ2ZXIs
IFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKgogCiAgICAgc291cF9tZXNzYWdlX3Nl
dF9zdGF0dXMobWVzc2FnZSwgU09VUF9TVEFUVVNfT0spOwogCisgICAgY2hhciogaHRtbFN0cmlu
ZzsKICAgICBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9jcmVhdGVfbmV3X3ZpZXciKSkgewogICAg
ICAgICBHT3duUHRyPGNoYXI+IHdpbmRvd09wZW5TdHJpbmcoZ19zdHJkdXBfcHJpbnRmKCJ3aW5k
b3cub3BlbignJXMnKSIsIGtTZXJ2ZXItPmdldFVSSUZvclBhdGgoIi9uZXdfd2luZG93IikuZGF0
YSgpKSk7Ci0gICAgICAgIGNoYXIqIGh0bWxTdHJpbmcgPSBnX3N0cmR1cF9wcmludGYoaHRtbE9u
TG9hZEZvcm1hdCwgd2luZG93T3BlblN0cmluZy5nZXQoKSk7Ci0gICAgICAgIHNvdXBfbWVzc2Fn
ZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9ib2R5LCBTT1VQX01FTU9SWV9UQUtFLCBo
dG1sU3RyaW5nLCBzdHJsZW4oaHRtbFN0cmluZykpOwotICAgIH0gZWxzZSBpZiAoZ19zdHJfZXF1
YWwocGF0aCwgIi9uZXdfd2luZG93IikpIHsKLSAgICAgICAgY2hhciogaHRtbFN0cmluZyA9IGdf
c3RyZHVwX3ByaW50ZihodG1sT25Mb2FkRm9ybWF0LCAic2VsZi5jbG9zZSgpOyIpOwotICAgICAg
ICBzb3VwX21lc3NhZ2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9N
RU1PUllfVEFLRSwgaHRtbFN0cmluZywgc3RybGVuKGh0bWxTdHJpbmcpKTsKLSAgICB9Ci0KKyAg
ICAgICAgaHRtbFN0cmluZyA9IGdfc3RyZHVwX3ByaW50ZihodG1sT25Mb2FkRm9ybWF0LCB3aW5k
b3dPcGVuU3RyaW5nLmdldCgpKTsKKyAgICB9IGVsc2UgaWYgKGdfc3RyX2VxdWFsKHBhdGgsICIv
bmV3X3dpbmRvdyIpKQorICAgICAgICBodG1sU3RyaW5nID0gZ19zdHJkdXBfcHJpbnRmKGh0bWxP
bkxvYWRGb3JtYXQsICJzZWxmLmNsb3NlKCk7Iik7CisgICAgZWxzZSBpZiAoZ19zdHJfZXF1YWwo
cGF0aCwgIi9qYXZhc2NyaXB0X2FsZXJ0IikpIHsKKyAgICAgICAgR093blB0cjxjaGFyPiBhbGVy
dERpYWxvZ01lc3NhZ2UoZ19zdHJkdXBfcHJpbnRmKCJhbGVydCgnJXMnKSIsIGtBbGVydERpYWxv
Z01lc3NhZ2UpKTsKKyAgICAgICAgaHRtbFN0cmluZyA9IGdfc3RyZHVwX3ByaW50ZihodG1sT25M
b2FkRm9ybWF0LCBhbGVydERpYWxvZ01lc3NhZ2UuZ2V0KCkpOworICAgIH0gZWxzZSBpZiAoZ19z
dHJfZXF1YWwocGF0aCwgIi9qYXZhc2NyaXB0X2NvbmZpcm0iKSkgeworICAgICAgICBHT3duUHRy
PGNoYXI+IGFsZXJ0RGlhbG9nTWVzc2FnZShnX3N0cmR1cF9wcmludGYoanNDb25maXJtRm9ybWF0
LCBrQ29uZmlybURpYWxvZ01lc3NhZ2UpKTsKKyAgICAgICAgaHRtbFN0cmluZyA9IGdfc3RyZHVw
X3ByaW50ZihodG1sT25Mb2FkRm9ybWF0LCBhbGVydERpYWxvZ01lc3NhZ2UuZ2V0KCkpOworICAg
IH0gZWxzZSBpZiAoZ19zdHJfZXF1YWwocGF0aCwgIi9qYXZhc2NyaXB0X3Byb21wdCIpKSB7Cisg
ICAgICAgIEdPd25QdHI8Y2hhcj4gcHJvbXB0RGlhbG9nTWVzc2FnZShnX3N0cmR1cF9wcmludGYo
anNQcm9tcHRGb3JtYXQsIGtQcm9tcHREaWFsb2dNZXNzYWdlLCAiZGVmYXVsdCIpKTsKKyAgICAg
ICAgaHRtbFN0cmluZyA9IGdfc3RyZHVwX3ByaW50ZihodG1sT25Mb2FkRm9ybWF0LCBwcm9tcHRE
aWFsb2dNZXNzYWdlLmdldCgpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZ19hc3NlcnRfbm90X3Jl
YWNoZWQoKTsKKworICAgIHNvdXBfbWVzc2FnZV9ib2R5X2FwcGVuZChtZXNzYWdlLT5yZXNwb25z
ZV9ib2R5LCBTT1VQX01FTU9SWV9UQUtFLCBodG1sU3RyaW5nLCBzdHJsZW4oaHRtbFN0cmluZykp
OwogICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2JvZHkp
OwogfQogCkBAIC0xMTEsNiArMTI4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgQ2xvc2UKICAgICB9
OwogCisgICAgZW51bSBTY3JpcHRUeXBlIHsKKyAgICAgICAgQWxlcnQsCisgICAgICAgIENvbmZp
cm0sCisgICAgICAgIFByb21wdAorICAgIH07CisKICAgICBzdGF0aWMgdm9pZCB2aWV3Q2xvc2Uo
V2ViS2l0V2ViVmlldyogd2ViVmlldywgVUlDbGllbnRUZXN0KiB0ZXN0KQogICAgIHsKICAgICAg
ICAgZ19hc3NlcnQod2ViVmlldyAhPSB0ZXN0LT5tX3dlYlZpZXcpOwpAQCAtMTQzLDEwICsxNjYs
NTYgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbmV3V2ViVmlldzsKICAgICB9CiAKKyAgICBz
dGF0aWMgZ2Jvb2xlYW4gc2NyaXB0QWxlcnQoV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIFVJQ2xpZW50VGVzdCogdGVzdCkKKyAgICB7CisgICAgICAgIHN3aXRjaCAodGVzdC0+
bV9zY3JpcHRUeXBlKSB7CisgICAgICAgIGNhc2UgVUlDbGllbnRUZXN0OjpBbGVydDoKKyAgICAg
ICAgICAgIGdfYXNzZXJ0X2NtcHN0cihtZXNzYWdlLCA9PSwga0FsZXJ0RGlhbG9nTWVzc2FnZSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBVSUNsaWVudFRlc3Q6OkNvbmZpcm06
CisgICAgICAgICAgICBnX2Fzc2VydCh0ZXN0LT5tX3NjcmlwdERpYWxvZ0NvbmZpcm1lZCk7Cisg
ICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWVzc2FnZSwgPT0sICJjb25maXJtZWQiKTsKKwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgVUlDbGllbnRUZXN0OjpQcm9tcHQ6Cisg
ICAgICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWVzc2FnZSwgPT0sIGtQcm9tcHREaWFsb2dSZXR1
cm5lZFRleHQpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKworICAgICAgICBnX21h
aW5fbG9vcF9xdWl0KHRlc3QtPm1fbWFpbkxvb3ApOworCisgICAgICAgIHJldHVybiBUUlVFOwor
ICAgIH0KKworICAgIHN0YXRpYyBnYm9vbGVhbiBzY3JpcHRDb25maXJtKFdlYktpdFdlYlZpZXcq
LCBjb25zdCBjaGFyKiBtZXNzYWdlLCBnYm9vbGVhbiogY29uZmlybWVkLCBVSUNsaWVudFRlc3Qq
IHRlc3QpCisgICAgeworICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWVzc2FnZSwgPT0sIGtDb25m
aXJtRGlhbG9nTWVzc2FnZSk7CisgICAgICAgIGdfYXNzZXJ0KGNvbmZpcm1lZCk7CisgICAgICAg
IHRlc3QtPm1fc2NyaXB0RGlhbG9nQ29uZmlybWVkID0gIXRlc3QtPm1fc2NyaXB0RGlhbG9nQ29u
ZmlybWVkOworICAgICAgICAqY29uZmlybWVkID0gdGVzdC0+bV9zY3JpcHREaWFsb2dDb25maXJt
ZWQ7CisKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQorCisgICAgc3RhdGljIGdib29sZWFu
IHNjcmlwdFByb21wdChXZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciogbWVzc2FnZSwgY29uc3Qg
Y2hhciogZGVmYXVsdFRleHQsIGNoYXIgKip0ZXh0LCBVSUNsaWVudFRlc3QqIHRlc3QpCisgICAg
eworICAgICAgICBnX2Fzc2VydF9jbXBzdHIobWVzc2FnZSwgPT0sIGtQcm9tcHREaWFsb2dNZXNz
YWdlKTsKKyAgICAgICAgZ19hc3NlcnRfY21wc3RyKGRlZmF1bHRUZXh0LCA9PSwgImRlZmF1bHQi
KTsKKyAgICAgICAgZ19hc3NlcnQodGV4dCk7CisgICAgICAgICp0ZXh0ID0gZ19zdHJkdXAoa1By
b21wdERpYWxvZ1JldHVybmVkVGV4dCk7CisKKyAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgfQor
CiAgICAgVUlDbGllbnRUZXN0KCkKKyAgICAgICAgOiBtX3NjcmlwdFR5cGUoQWxlcnQpCisgICAg
ICAgICwgbV9zY3JpcHREaWFsb2dDb25maXJtZWQodHJ1ZSkKICAgICB7CiAgICAgICAgIHdlYmtp
dF9zZXR0aW5nc19zZXRfamF2YXNjcmlwdF9jYW5fb3Blbl93aW5kb3dzX2F1dG9tYXRpY2FsbHko
d2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyhtX3dlYlZpZXcpLCBUUlVFKTsKICAgICAgICAg
Z19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcsICJjcmVhdGUiLCBHX0NBTExCQUNLKHZpZXdDcmVh
dGUpLCB0aGlzKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcsICJzY3JpcHQt
YWxlcnQiLCBHX0NBTExCQUNLKHNjcmlwdEFsZXJ0KSwgdGhpcyk7CisgICAgICAgIGdfc2lnbmFs
X2Nvbm5lY3QobV93ZWJWaWV3LCAic2NyaXB0LWNvbmZpcm0iLCBHX0NBTExCQUNLKHNjcmlwdENv
bmZpcm0pLCB0aGlzKTsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcsICJzY3Jp
cHQtcHJvbXB0IiwgR19DQUxMQkFDSyhzY3JpcHRQcm9tcHQpLCB0aGlzKTsKICAgICB9CiAKICAg
ICB+VUlDbGllbnRUZXN0KCkKQEAgLTE1NSw2ICsyMjQsOCBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgVmVjdG9yPFdlYlZpZXdFdmVudHM+IG1fd2ViVmlld0V2ZW50czsKKyAgICBTY3JpcHRUeXBl
IG1fc2NyaXB0VHlwZTsKKyAgICBib29sIG1fc2NyaXB0RGlhbG9nQ29uZmlybWVkOwogfTsKIAog
c3RhdGljIHZvaWQgdGVzdFdlYlZpZXdDcmVhdGVSZWFkeUNsb3NlKFVJQ2xpZW50VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKQEAgLTE2OSw2ICsyNDAsMjEgQEAgc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdDcmVhdGVSZWFkeUNsb3NlKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikK
ICAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRzWzJdLCA9PSwgVUlDbGllbnRUZXN0OjpDbG9zZSk7
CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SmF2YVNjcmlwdERpYWxvZ3MoVUlDbGllbnRU
ZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIHRlc3QtPm1fc2NyaXB0VHlwZSA9IFVJ
Q2xpZW50VGVzdDo6QWxlcnQ7CisgICAgd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpKHRlc3QtPm1f
d2ViVmlldywga1NlcnZlci0+Z2V0VVJJRm9yUGF0aCgiL2phdmFzY3JpcHRfYWxlcnQiKS5kYXRh
KCkpOworICAgIGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKKworICAgIHRlc3Qt
Pm1fc2NyaXB0VHlwZSA9IFVJQ2xpZW50VGVzdDo6Q29uZmlybTsKKyAgICB3ZWJraXRfd2ViX3Zp
ZXdfbG9hZF91cmkodGVzdC0+bV93ZWJWaWV3LCBrU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvamF2
YXNjcmlwdF9jb25maXJtIikuZGF0YSgpKTsKKyAgICBnX21haW5fbG9vcF9ydW4odGVzdC0+bV9t
YWluTG9vcCk7CisKKyAgICB0ZXN0LT5tX3NjcmlwdFR5cGUgPSBVSUNsaWVudFRlc3Q6OlByb21w
dDsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfbG9hZF91cmkodGVzdC0+bV93ZWJWaWV3LCBrU2VydmVy
LT5nZXRVUklGb3JQYXRoKCIvamF2YXNjcmlwdF9wcm9tcHQiKS5kYXRhKCkpOworICAgIGdfbWFp
bl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKK30KKwogdm9pZCBiZWZvcmVBbGwoKQogewog
ICAgIGtTZXJ2ZXIgPSBuZXcgV2ViS2l0VGVzdFNlcnZlcigpOwpAQCAtMTc5LDYgKzI2NSw3IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICAgICBUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAid2Vidmll
d3Mtc2hhcmUtY2xpZW50cyIsIHRlc3RXZWJWaWV3c1NoYXJlQ2xpZW50cyk7CiAgICAgV2ViVmll
d1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzZXR0aW5ncyIsIHRlc3RXZWJWaWV3U2V0dGlu
Z3MpOwogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImNyZWF0ZS1yZWFk
eS1jbG9zZSIsIHRlc3RXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZSk7CisgICAgVUlDbGllbnRUZXN0
OjphZGQoIldlYktpdFdlYlZpZXciLCAiamF2YXNjcmlwdC1kaWFsb2dzIiwgdGVzdFdlYlZpZXdK
YXZhU2NyaXB0RGlhbG9ncyk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mm1hcnNoYWwubGlzdCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3dlYmtpdDJtYXJzaGFsLmxpc3QKaW5kZXggM2Y1
YmZmYy4uYzk0ZDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvd2Via2l0Mm1hcnNoYWwubGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay93ZWJraXQybWFyc2hhbC5saXN0CkBAIC0xLDUgKzEsOCBAQAogQk9PTEVBTjpPQkpFQ1Qs
U1RSSU5HLFBPSU5URVIKIEJPT0xFQU46T0JKRUNUCitCT09MRUFOOlNUUklORworQk9PTEVBTjpT
VFJJTkcsUE9JTlRFUgorQk9PTEVBTjpTVFJJTkcsU1RSSU5HLFBPSU5URVIKIEJPT0xFQU46Vk9J
RAogT0JKRUNUOlZPSUQKIFZPSUQ6T0JKRUNULFBPSU5URVIK
</data>
<flag name="review"
          id="111646"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>