<?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>168417</bug_id>
          
          <creation_ts>2017-02-16 00:23:45 -0800</creation_ts>
          <short_desc>Remove Chromium-specific code to call FrameLoaderClient::redirectDataToPlugin(nullptr)</short_desc>
          <delta_ts>2017-02-16 18:42:07 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aestes</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1277559</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 00:23:45 -0800</bug_when>
    <thetext>In r125500 (bug #93283) we added code to PluginDocument::detachFromPluginElement() to call FrameLoaderClient::redirectDataToPlugin(nullptr). Calling redirectDataToPlugin() with nullptr was used by the Chromium port to signify that the plugin document was being destroyed so that they could tear down their plugin widget. And PluginDocument::detachFromPluginElement() is the only place that calls redirectDataToPlugin() passing nullptr. No other port made use of this machinery and the Chromium port has long since been removed from the Open Source WebKit Project. We should remove this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277561</commentid>
    <comment_count>1</comment_count>
      <attachid>301723</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 00:26:54 -0800</bug_when>
    <thetext>Created attachment 301723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277562</commentid>
    <comment_count>2</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 00:32:43 -0800</bug_when>
    <thetext>Are the files Source/WebKit/mac/WebKit.order and Source/WebKit2/mac/WebKit2.order still relevant? Xcode still references these order files though they were last modified in r180570 (2 years ago).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277563</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 00:33:04 -0800</bug_when>
    <thetext>&lt;rdar://problem/30541748&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277672</commentid>
    <comment_count>4</comment_count>
      <attachid>301723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-16 08:31:48 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt; Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:1178
&gt; +    if (pluginWidget.isPluginView())

Looks like a possible behavior change here? We used to reset m_manualLoader to nullptr when pluginWidget was null.

&gt; Source/WebKit2/mac/WebKit2.order:-6993
&gt; -__ZN6WebKit20WebFrameLoaderClient20redirectDataToPluginEPN7WebCore6WidgetE

No need to update the .order files. They are re-generated before releases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277818</commentid>
    <comment_count>5</comment_count>
      <attachid>301723</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 12:53:15 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt;&gt; Source/WebKit/win/WebCoreSupport/WebFrameLoaderClient.cpp:1178
&gt;&gt; +    if (pluginWidget.isPluginView())
&gt; 
&gt; Looks like a possible behavior change here? We used to reset m_manualLoader to nullptr when pluginWidget was null.

Notice that pluginWidget can never be null. That is what led me to change all Widget* to Widget&amp;. I tried to convey this in my remark &quot;No other port made use of this machinery&quot; and the per-file remark for the file loader/EmptyClients.cpp in the WebCore ChangeLog entry. I can make these remarks more explicit or do you have suggestions on how I can better convey this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277819</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 12:53:50 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebKit2/mac/WebKit2.order:-6993
&gt; &gt; -__ZN6WebKit20WebFrameLoaderClient20redirectDataToPluginEPN7WebCore6WidgetE
&gt; 
&gt; No need to update the .order files. They are re-generated before releases.

Will undo the changes to the .order files before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277824</commentid>
    <comment_count>7</comment_count>
      <attachid>301723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-16 12:57:53 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);

What confuses is that it is called with null here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277827</commentid>
    <comment_count>8</comment_count>
      <attachid>301723</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-16 12:59:58 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

This patch looks good. Are there existing plugin tests that confirm we do not break functionality?

&gt; Source/WebCore/html/PluginDocument.cpp:130
&gt;          if (Widget* widget = renderer-&gt;widget()) {

Could be &quot;auto*&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277830</commentid>
    <comment_count>9</comment_count>
      <attachid>301723</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-16 13:02:07 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt;&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt;&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);
&gt; 
&gt; What confuses is that it is called with null here.

I think this is pretty clearly explained in the ChangeLog. This code was added to support specific Chromium behavior, which no longer exists. We can get rid of this, which means we can now pass a reference everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277833</commentid>
    <comment_count>10</comment_count>
      <attachid>301723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-16 13:05:40 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt;&gt;&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt;&gt;&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);
&gt;&gt; 
&gt;&gt; What confuses is that it is called with null here.
&gt; 
&gt; I think this is pretty clearly explained in the ChangeLog. This code was added to support specific Chromium behavior, which no longer exists. We can get rid of this, which means we can now pass a reference everywhere.

Yes, I read the Changelog. It still seemed to me that there may be a behavior change for the Window port as well as we were calling with null here and the windows implementation would reset m_manualLoader to null. After this change, redirectDataToPlugin() no longer resets m_manualLoader to null on Windows. This may be completely fine but I thought I would point out the possible behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277852</commentid>
    <comment_count>11</comment_count>
      <attachid>301723</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-16 13:27:03 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt;&gt;&gt;&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);
&gt;&gt;&gt; 
&gt;&gt;&gt; What confuses is that it is called with null here.
&gt;&gt; 
&gt;&gt; I think this is pretty clearly explained in the ChangeLog. This code was added to support specific Chromium behavior, which no longer exists. We can get rid of this, which means we can now pass a reference everywhere.
&gt; 
&gt; Yes, I read the Changelog. It still seemed to me that there may be a behavior change for the Window port as well as we were calling with null here and the windows implementation would reset m_manualLoader to null. After this change, redirectDataToPlugin() no longer resets m_manualLoader to null on Windows. This may be completely fine but I thought I would point out the possible behavior change.

Oh, I see!

We probably don&apos;t care, because the Windows port (at least here at Apple) does not permit the use of plugins.

This could be an issue for the WinCairo ports, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277866</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-16 13:39:38 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 301723 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301723&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt; &gt;&gt;&gt;&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; What confuses is that it is called with null here.
&gt; &gt;&gt; 
&gt; &gt;&gt; I think this is pretty clearly explained in the ChangeLog. This code was added to support specific Chromium behavior, which no longer exists. We can get rid of this, which means we can now pass a reference everywhere.
&gt; &gt; 
&gt; &gt; Yes, I read the Changelog. It still seemed to me that there may be a behavior change for the Window port as well as we were calling with null here and the windows implementation would reset m_manualLoader to null. After this change, redirectDataToPlugin() no longer resets m_manualLoader to null on Windows. This may be completely fine but I thought I would point out the possible behavior change.
&gt; 
&gt; Oh, I see!
&gt; 
&gt; We probably don&apos;t care, because the Windows port (at least here at Apple)
&gt; does not permit the use of plugins.
&gt; 
&gt; This could be an issue for the WinCairo ports, though.

Good, this was my only potential worry. The patch looks good otherwise.
I&apos;ll let Brent r+ then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277870</commentid>
    <comment_count>13</comment_count>
      <attachid>301723</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-02-16 13:42:07 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

This change looks good. We can work with WinCairo to help address any (unlikely) fallout. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277872</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-02-16 13:42:33 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 301723 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=301723&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/html/PluginDocument.cpp:-171
&gt; &gt;&gt;&gt; -    frame()-&gt;loader().client().redirectDataToPlugin(nullptr);
&gt; &gt;&gt; 
&gt; &gt;&gt; What confuses is that it is called with null here.
&gt; &gt; 
&gt; &gt; I think this is pretty clearly explained in the ChangeLog. This code was added to support specific Chromium behavior, which no longer exists. We can get rid of this, which means we can now pass a reference everywhere.
&gt; 
&gt; Yes, I read the Changelog. It still seemed to me that there may be a
&gt; behavior change for the Window port as well as we were calling with null
&gt; here and the windows implementation would reset m_manualLoader to null.
&gt; After this change, redirectDataToPlugin() no longer resets m_manualLoader to
&gt; null on Windows.

Notice that &lt;https://trac.webkit.org/changeset/125500&gt; (bug #93283) added this branch to the Windows code such that we reset m_manualLoader to null. I take it you are saying that the Windows port may now depend on this functionality to behave correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278069</commentid>
    <comment_count>15</comment_count>
      <attachid>301723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 18:42:02 -0800</bug_when>
    <thetext>Comment on attachment 301723
Patch

Clearing flags on attachment: 301723

Committed r212518: &lt;http://trac.webkit.org/changeset/212518&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1278070</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-16 18:42:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301723</attachid>
            <date>2017-02-16 00:26:54 -0800</date>
            <delta_ts>2017-02-16 18:42:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168417-20170216002417.patch</filename>
            <type>text/plain</type>
            <size>16203</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDgzZDk4YjQ0Mzc2MzYz
ZmJmNzQ0NzAzMTNhOGNiNjg3NzhhMmM1MS4uMjY5NmYyNDVhNjYzMmQ5OWQ2NjI1OWMwZDE1Y2Ix
Y2E3ZjNhNjFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTAyLTE1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgQ2hyb21pdW0t
c3BlY2lmaWMgY29kZSB0byBjYWxsIEZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1Bs
dWdpbihudWxscHRyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY4NDE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDU0MTc0OD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgQ2hyb21pdW0t
c3BlY2lmaWMgY29kZSB0aGF0IHdhcyBhZGRlZCBpbiByMTI1NTAwIHRvIGNhbGwgRnJhbWVMb2Fk
ZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKG51bGxwdHIpCisgICAgICAgIGluIFBsdWdp
bkRvY3VtZW50OjpkZXRhY2hGcm9tUGx1Z2luRWxlbWVudCgpLiBDYWxsaW5nIHJlZGlyZWN0RGF0
YVRvUGx1Z2luKCkgd2l0aCBudWxscHRyIHdhcyB1c2VkIGJ5IHRoZQorICAgICAgICBDaHJvbWl1
bSBwb3J0IHRvIHNpZ25pZnkgdGhhdCB0aGUgcGx1Z2luIGRvY3VtZW50IHdhcyBiZWluZyBkZXN0
cm95ZWQgc28gdGhhdCB0aGV5IGNvdWxkIHRlYXIgZG93biB0aGVpcgorICAgICAgICBwbHVnaW4g
d2lkZ2V0LiBBbmQgUGx1Z2luRG9jdW1lbnQ6OmRldGFjaEZyb21QbHVnaW5FbGVtZW50KCkgaXMg
dGhlIG9ubHkgcGxhY2UgdGhhdCBjYWxscyByZWRpcmVjdERhdGFUb1BsdWdpbigpCisgICAgICAg
IHBhc3NpbmcgbnVsbHB0ci4gTm8gb3RoZXIgcG9ydCBtYWRlIHVzZSBvZiB0aGlzIG1hY2hpbmVy
eSBhbmQgdGhlIENocm9taXVtIHBvcnQgaGFzIGxvbmcgc2luY2UgYmVlbiByZW1vdmVkCisgICAg
ICAgIGZyb20gdGhlIE9wZW4gU291cmNlIFdlYktpdCBQcm9qZWN0LiBXZSBzaG91bGQgcmVtb3Zl
IHRoaXMgY29kZS4KKworICAgICAgICAqIGh0bWwvUGx1Z2luRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKTogUGFzcyB0aGUg
cGx1Z2luIHdpZGdldCBieSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5Eb2N1
bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQpOiBSZW1vdmUgY2FsbCB0byBGcmFtZUxvYWRl
ckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oKS4KKyAgICAgICAgVGhpcyBjYWxsIHdhcyBv
bmx5IHVzZWQgYnkgdGhlIENocm9taXVtIHBvcnQgYXMgbWVhbnMgdG8gYmUgbm90aWZpZWQgd2hl
biB0aGUgcGx1Z2luIGRvY3VtZW50IHdhcyBiZWluZworICAgICAgICBkZXN0cm95ZWQuIE5vIG90
aGVyIHBvcnQgbWFkZSB1c2Ugb2YgdGhpcyBub3RpZmljYXRpb24gb3IgbmVlZGVkIHN1Y2ggYSBu
b3RpZmljYXRpb24uCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6IENoYW5nZSBh
cmd1bWVudCBvZiByZWRpcmVjdERhdGFUb1BsdWdpbigpIGZyb20gV2lkZ2V0KiB0byBXaWRnZXQm
IHRvIGNvbnZleQorICAgICAgICB0aGF0IHRoaXMgZnVuY3Rpb24gYWx3YXlzIHRha2VzIGEgdmFs
aWQgV2lkZ2V0LiBBbHNvIHJlbW92ZSB1bm5lY2Vzc2FyeSBhcmd1bWVudCBuYW1lIGFzIHRoZSBk
YXRhIHR5cGUKKyAgICAgICAgb2YgdGhlIGFyZ3VtZW50IGFuZCB0aGUgbmFtZSBvZiB0aGUgZnVu
Y3Rpb24gc3VmZmljaWVudGx5IGRlc2NyaWJlcyB0aGUgcHVycG9zZSBvZiB0aGUgYXJndW1lbnQu
CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50Lmg6IERpdHRvLgorCiAyMDE3LTAy
LTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtN
ZWRpYVN0cmVhbV0gZGVsZXRlIENhcHR1cmVEZXZpY2VJbmZvIHN0cnVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDNmOWRkZTJlN2FhNjhhYzA2ZGEyYWE0NjAyN2NmNzA2ZDdlYzZjOGYuLjZkZmIzMTBk
OTc5ODIyYjBiMjQ3MDE3NGQwNzZmZmJkY2IxYmIyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wMi0xNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CisKKyAgICAgICAgUmVtb3ZlIENocm9taXVtLXNwZWNpZmljIGNvZGUgdG8gY2FsbCBGcmFtZUxv
YWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4obnVsbHB0cikKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODQxNworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzA1NDE3NDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVXBkYXRlIG92ZXJyaWRlIG9mIEZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVj
dERhdGFUb1BsdWdpbigpIHRvIHRha2UgYSBXaWRnZXQmIGluc3RlYWQgb2YgYQorICAgICAgICBX
aWRnZXQqIGFzIGl0IGlzIGFsd2F5cyBjYWxsZWQgd2l0aCBhIHZhbGlkIFdpZGdldC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFt
ZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4pOgorICAgICAgICAqIFdlYktpdC5v
cmRlcjogUmVtb3ZlIHN5bWJvbCBmb3IgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0
YVRvUGx1Z2luKCkgdGhhdCB0b29rIGEgV2lkZ2V0KgorICAgICAgICBhcyBpdCBubyBsb25nZXIg
ZXhpc3RzLiBJIGFtIHVuY2xlYXIgaWYgdGhpcyBmaWxlIGlzIHN0aWxsIG1lYW5pbmdmdWwgYXMg
aXQgd2FzIGxhc3QgbW9kaWZpZWQgaW4KKyAgICAgICAgcjE4MDU3MCAoMiB5ZWFycyBhZ28pIHRo
b3VnaCBYY29kZSBzdGlsbCByZWZlcmVuY2VzIHRoaXMgb3JkZXJpbmcgZmlsZSAod2h5PykuCisK
IDIwMTctMDItMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgRml4IHRoZSBidWlsZCBhZnRlciByMjEyMzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNmQy
ZjNjODVhOWEzYTI4N2ZhNTlkNmRmMzRmMWE1NWQ1OGI0ZTc1My4uMDQ3NzBhN2FmYWYxZWNhYWVj
YzA3ZDVkNjliZjk0N2VhZjY0NDkwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDE3LTAyLTE1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZW1vdmUgQ2hyb21pdW0tc3BlY2lmaWMgY29kZSB0byBjYWxsIEZyYW1lTG9hZGVyQ2xpZW50
OjpyZWRpcmVjdERhdGFUb1BsdWdpbihudWxscHRyKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4NDE3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8z
MDU0MTc0OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgb3ZlcnJpZGUgb2YgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1
Z2luKCkgdG8gdGFrZSBhIFdpZGdldCYgaW5zdGVhZCBvZiBhCisgICAgICAgIFdpZGdldCogYXMg
aXQgaXMgYWx3YXlzIGNhbGxlZCB3aXRoIGEgdmFsaWQgV2lkZ2V0LgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorCiAyMDE3LTAyLTE1ICBBbmRlcnMgQ2FybHNz
b24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgQW5vdGhlciBhdHRlbXB0IGF0IGZp
eGluZyB0aGUgV2luZG93cyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Njg0OTliOGEwZjc2MTZhNTNj
ZDA1NTUwMGVkMTI4NjQ4ZDFjY2FmLi41ODkxYTkzMTE4MjRmZWFhZmJhMmY0ZGZjZmY5ZjkwNzY2
MmU2ZDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTctMDItMTUgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBDaHJvbWl1bS1zcGVj
aWZpYyBjb2RlIHRvIGNhbGwgRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2lu
KG51bGxwdHIpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjg0MTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNTQxNzQ4PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBvdmVycmlkZSBvZiBG
cmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVnaW4oKSB0byB0YWtlIGEgV2lkZ2V0
JiBpbnN0ZWFkIG9mIGEKKyAgICAgICAgV2lkZ2V0KiBhcyBpdCBpcyBhbHdheXMgY2FsbGVkIHdp
dGggYSB2YWxpZCBXaWRnZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbWFjL1dlYktp
dDIub3JkZXI6IFJlbW92ZSBzeW1ib2wgZm9yIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVj
dERhdGFUb1BsdWdpbigpIHRoYXQgdG9vayBhIFdpZGdldCoKKyAgICAgICAgYXMgaXQgbm8gbG9u
Z2VyIGV4aXN0cy4gSSBhbSB1bmNsZWFyIGlmIHRoaXMgZmlsZSBpcyBzdGlsbCBtZWFuaW5nZnVs
IGFzIGl0IHdhcyBsYXN0IG1vZGlmaWVkIGluCisgICAgICAgIHIxODA1NzAgKDIgeWVhcnMgYWdv
KSB0aG91Z2ggWGNvZGUgc3RpbGwgcmVmZXJlbmNlcyB0aGlzIG9yZGVyaW5nIGZpbGUgKHdoeT8p
LgorCiAyMDE3LTAyLTE1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gZGVsZXRlIENhcHR1cmVEZXZpY2VJbmZvIHN0cnVjdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9QbHVnaW5Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcAppbmRleCAxYzc5MjU5ZDE0ZDlmMzc2
MTkwMTQ1ZDQ3ZDNiZmJmOWQwZDA3NmEyLi43NDk3YjNjNjg0YWE2MjI3NWQ4NDkyYjhlNjNiZmY1
YWNmODA5NGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1BsdWdpbkRvY3VtZW50LmNwcApAQCAtMTI4
LDcgKzEyOCw3IEBAIHZvaWQgUGx1Z2luRG9jdW1lbnRQYXJzZXI6OmFwcGVuZEJ5dGVzKERvY3Vt
ZW50V3JpdGVyJiwgY29uc3QgY2hhciosIHNpemVfdCkKIAogICAgIGlmIChSZW5kZXJXaWRnZXQq
IHJlbmRlcmVyID0gbV9lbWJlZEVsZW1lbnQtPnJlbmRlcldpZGdldCgpKSB7CiAgICAgICAgIGlm
IChXaWRnZXQqIHdpZGdldCA9IHJlbmRlcmVyLT53aWRnZXQoKSkgewotICAgICAgICAgICAgZnJh
bWUtPmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1Z2luKHdpZGdldCk7CisgICAg
ICAgICAgICBmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkucmVkaXJlY3REYXRhVG9QbHVnaW4oKndp
ZGdldCk7CiAgICAgICAgICAgICAvLyBJbiBhIHBsdWdpbiBkb2N1bWVudCwgdGhlIG1haW4gcmVz
b3VyY2UgaXMgdGhlIHBsdWdpbi4gSWYgd2UgaGF2ZSBhIG51bGwgd2lkZ2V0LCB0aGF0IG1lYW5z
CiAgICAgICAgICAgICAvLyB0aGUgbG9hZGluZyBvZiB0aGUgcGx1Z2luIHdhcyBjYW5jZWxsZWQs
IHdoaWNoIGdpdmVzIHVzIGEgbnVsbCBtYWluUmVzb3VyY2VMb2FkZXIoKSwgc28gd2UKICAgICAg
ICAgICAgIC8vIG5lZWQgdG8gaGF2ZSB0aGlzIGNhbGwgaW4gYSBudWxsIGNoZWNrIG9mIHRoZSB3
aWRnZXQgb3Igb2YgbWFpblJlc291cmNlTG9hZGVyKCkuCkBAIC0xNjgsNyArMTY4LDYgQEAgdm9p
ZCBQbHVnaW5Eb2N1bWVudDo6ZGV0YWNoRnJvbVBsdWdpbkVsZW1lbnQoKQogewogICAgIC8vIFJl
bGVhc2UgdGhlIHBsdWdpbiBFbGVtZW50IHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZSBhIGNpcmN1bGFy
IHJlZmVyZW5jZS4KICAgICBtX3BsdWdpbkVsZW1lbnQgPSBudWxscHRyOwotICAgIGZyYW1lKCkt
PmxvYWRlcigpLmNsaWVudCgpLnJlZGlyZWN0RGF0YVRvUGx1Z2luKG51bGxwdHIpOwogfQogCiB2
b2lkIFBsdWdpbkRvY3VtZW50OjpjYW5jZWxNYW51YWxQbHVnaW5Mb2FkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMjVjNDVlMjlkMDc1OTNhYTdjOTg2MjU4Y2E3
YjQ2MDI4YTM2ZjJiYS4uYWZjODU2YTU0MzlmMmVhNjM0NGY0YTlkNDAwN2NhNzFhNTBiZWQ3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTQyNCw3ICs0MjQsNyBA
QCBjbGFzcyBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIEZyYW1lTG9hZGVy
Q2xpZW50IHsKICAgICBPYmplY3RDb250ZW50VHlwZSBvYmplY3RDb250ZW50VHlwZShjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6Tm9u
ZTsgfQogICAgIFN0cmluZyBvdmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHsgfTsgfQogCi0gICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXaWRnZXQqKSBmaW5hbCB7
IH0KKyAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCYpIGZpbmFsIHsgfQogICAg
IHZvaWQgZGlzcGF0Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoRE9NV3JhcHBlcldvcmxk
JikgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRm9ySWNvbk5vdGlmaWNhdGlvbihib29s
KSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5k
ZXggZTlhY2Q0YmM0NDA3YzVhZTVkYWRiZjI0MjI4MDYwMzNkZjgzNjc4ZC4uNjZlMzg2ZTUyYjU5
YWRiNTBhMzE0M2NlZWEwZGRiZWJlNjU0YzgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI3Nyw3ICsyNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBSZWZQdHI8RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwgYm9vbCBh
bGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50IG1hcmdpbkhlaWdodCkgPSAwOwog
ICAgIHZpcnR1YWwgUmVmUHRyPFdpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmLCBI
VE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBib29sIGxvYWRNYW51YWxseSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCByZWNyZWF0ZVBsdWdpbihXaWRnZXQqKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1Z2luV2lkZ2V0KSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCYpID0gMDsKIAog
ICAgIHZpcnR1YWwgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1
ZXMpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNjZlMzg2YmQxOWUxODUzNDI5YWI2YTFmOWI0
ODFjNmZjYWYyMDJjMC4uOGM0OTUxNzkyOWMzNzUxYjkyOGY2OWE5NmMwYjE1NzdiMDQ5YjZhYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5oCkBAIC0yMDgsNyArMjA4LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
V2ViQ29yZTo6V2lkZ2V0PiBjcmVhdGVQbHVnaW4oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdl
YkNvcmU6OkhUTUxQbHVnSW5FbGVtZW50JiwgY29uc3QgV2ViQ29yZTo6VVJMJiwKICAgICAgICAg
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBj
b25zdCBXVEY6OlN0cmluZyYsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgcmVjcmVhdGVQbHVnaW4o
V2ViQ29yZTo6V2lkZ2V0KikgZmluYWw7Ci0gICAgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihX
ZWJDb3JlOjpXaWRnZXQqIHBsdWdpbldpZGdldCkgZmluYWw7CisgICAgdm9pZCByZWRpcmVjdERh
dGFUb1BsdWdpbihXZWJDb3JlOjpXaWRnZXQmKSBmaW5hbDsKIAogI2lmIEVOQUJMRShXRUJHTCkK
ICAgICBXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3kgd2ViR0xQb2xpY3lGb3JVUkwoY29uc3QgU3Ry
aW5nJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCmluZGV4IDc5ZGJlOTg0MDU4YzI3MTlj
ZmQ4YzVjZDI2OTZmNDU5NTg5YmQyYzguLjUzNzcxMjk4MjMzNjY5YTYyYzE0ZjdmMTg2NGM0Zjhj
MjEwY2UyZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC0yMDUzLDE2ICsyMDUzLDEzIEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlY3JlYXRlUGx1Z2luKFdpZGdldCopCiB7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2luKFdpZGdldCogcGx1
Z2luV2lkZ2V0KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJlY3REYXRhVG9QbHVn
aW4oV2lkZ2V0JiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAgaWYgKCFwbHVnaW5XaWRnZXQpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIFdl
YkhUTUxSZXByZXNlbnRhdGlvbiAqcmVwcmVzZW50YXRpb24gPSAoV2ViSFRNTFJlcHJlc2VudGF0
aW9uICopW1ttX3dlYkZyYW1lLmdldCgpIF9kYXRhU291cmNlXSByZXByZXNlbnRhdGlvbl07CiAK
LSAgICBOU1ZpZXcgKnBsdWdpblZpZXcgPSBwbHVnaW5XaWRnZXQtPnBsYXRmb3JtV2lkZ2V0KCk7
CisgICAgTlNWaWV3ICpwbHVnaW5WaWV3ID0gcGx1Z2luV2lkZ2V0LnBsYXRmb3JtV2lkZ2V0KCk7
CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBpZiAoW3BsdWdpblZpZXcg
aXNLaW5kT2ZDbGFzczpbTkVUU0NBUEVfUExVR0lOX1ZJRVcgY2xhc3NdXSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYktpdC5vcmRlciBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYktp
dC5vcmRlcgppbmRleCA3MTYyMTcyY2Q2MTA3NGQ3NTkwOGQzYmE0NTFkM2U1NmYzZWY1NWZlLi5h
NWEyZTIyYzA4ZDYxYjFmZmI5N2FkMTBlOTQzMmYxNGU4OGMwODBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJLaXQub3JkZXIKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViS2l0
Lm9yZGVyCkBAIC0yMTE5LDcgKzIxMTksNiBAQCBfX1pONldlYktpdDI2SG9zdGVkTmV0c2NhcGVQ
bHVnaW5TdHJlYW03ZGlkRmFpbEVQTjdXZWJDb3JlMjZOZXRzY2FwZVBsdWdJblN0cmVhbQogX19X
S1BIU3RyZWFtRGlkRmFpbAogX19aTjNKU0M4anNTdHJpbmdFUE5TXzJWTUVSS04zV1RGNlN0cmlu
Z0UKIF9fWk4zSlNDOEpTU3RyaW5nNmNyZWF0ZUVSTlNfMlZNRU4zV1RGMTBQYXNzUmVmUHRySU5T
M18xMFN0cmluZ0ltcGxFRUUKLV9fWk4yMFdlYkZyYW1lTG9hZGVyQ2xpZW50MjByZWRpcmVjdERh
dGFUb1BsdWdpbkVQTjdXZWJDb3JlNldpZGdldEUKIC1bV2ViSFRNTFJlcHJlc2VudGF0aW9uIF9y
ZWRpcmVjdERhdGFUb01hbnVhbExvYWRlcjpmb3JQbHVnaW5WaWV3Ol0KIC1bV2ViSG9zdGVkTmV0
c2NhcGVQbHVnaW5WaWV3IHBsdWdpblZpZXc6cmVjZWl2ZWRSZXNwb25zZTpdCiBfX1pONldlYktp
dDI2SG9zdGVkTmV0c2NhcGVQbHVnaW5TdHJlYW1DMUVQTlNfMjdOZXRzY2FwZVBsdWdpbkluc3Rh
bmNlUHJveHlFUE43V2ViQ29yZTExRnJhbWVMb2FkZXJFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
M2QxM2NkNDQ2YzZhZjc3YTBlY2YwZWVlZDhjMWM4YjU3YjY5YWFmNS4uZGU1NmM3NzMzYzg3NTQ4
ZGU5ZGU5ZDRjZjE4NjliNDc3NGI4OTdlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTE3Miwx
MyArMTE3MiwxMyBAQCBSZWZQdHI8V2lkZ2V0PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRl
UGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsIEhUTQogICAgIHJldHVybiBudWxscHRy
OwogfQogCi12b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpyZWRpcmVjdERhdGFUb1BsdWdpbihX
aWRnZXQqIHBsdWdpbldpZGdldCkKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0
RGF0YVRvUGx1Z2luKFdpZGdldCYgcGx1Z2luV2lkZ2V0KQogewogICAgIC8vIElkZWFsbHksIHRo
aXMgZnVuY3Rpb24gc2hvdWxkbid0IGJlIG5lY2Vzc2FyeSwgc2VlIDxyZGFyOi8vcHJvYmxlbS80
ODUyODg5PgotICAgIGlmICghcGx1Z2luV2lkZ2V0IHx8IHBsdWdpbldpZGdldC0+aXNQbHVnaW5W
aWV3KCkpCi0gICAgICAgIG1fbWFudWFsTG9hZGVyID0gdG9QbHVnaW5WaWV3KHBsdWdpbldpZGdl
dCk7CisgICAgaWYgKHBsdWdpbldpZGdldC5pc1BsdWdpblZpZXcoKSkKKyAgICAgICAgbV9tYW51
YWxMb2FkZXIgPSB0b1BsdWdpblZpZXcoJnBsdWdpbldpZGdldCk7CiAgICAgZWxzZSAKLSAgICAg
ICAgbV9tYW51YWxMb2FkZXIgPSBzdGF0aWNfY2FzdDxFbWJlZGRlZFdpZGdldCo+KHBsdWdpbldp
ZGdldCk7CisgICAgICAgIG1fbWFudWFsTG9hZGVyID0gc3RhdGljX2Nhc3Q8RW1iZWRkZWRXaWRn
ZXQqPigmcGx1Z2luV2lkZ2V0KTsKIH0KIAogUmVmUHRyPFdpZGdldD4gV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwg
SFRNTEFwcGxldEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFVSTCYgLypiYXNlVVJMKi8sIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1W
YWx1ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwMzBmNjI5YzgzODM0Mzg2OGIyN2Q0ZjZhY2FiMTI0
MmY5ZDk3OTBkLi4zNDZjMjk3ZDA1YTg1YjhkNWVlN2ZmZGQ0ZjFlYmEyZTY0MDM0ODcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKQEAgLTE4Niw3ICsxODYsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFdU
Rjo6U3RyaW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0
aCwgaW50IG1hcmdpbkhlaWdodCkgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OldpZGdl
dD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1
Z0luRWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBib29s
IGxvYWRNYW51YWxseSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJDb3Jl
OjpXaWRnZXQqKSBvdmVycmlkZSB7IH0KLSAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdl
YkNvcmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KSBvdmVycmlkZTsKKyAgICB2b2lkIHJlZGlyZWN0
RGF0YVRvUGx1Z2luKFdlYkNvcmU6OldpZGdldCYpIG92ZXJyaWRlOwogCiAgICAgUmVmUHRyPFdl
YkNvcmU6OldpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgV2ViQ29yZTo6SFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJh
c2VVUkwsIGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3Rv
cjxXVEY6OlN0cmluZz4mIHBhcmFtVmFsdWVzKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcAppbmRleCAyNWUwNjI1NDdhMjA4OWRlNDgzMTMwYmQzNGY2ODNiNDJl
MjVkY2E5Li4wNjBjZDJmMDA0ZWQ3NTNkNTBiN2ViODY5ODNkZmY1NzUxMGE1MmI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTQ4OSwxMCArMTQ4OSw5IEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlY3JlYXRlUGx1Z2luKFdpZGdldCogd2lkZ2V0KQogI2Vu
ZGlmCiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnJlZGlyZWN0RGF0YVRvUGx1Z2lu
KFdpZGdldCogcGx1Z2luV2lkZ2V0KQordm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6cmVkaXJl
Y3REYXRhVG9QbHVnaW4oV2lkZ2V0JiBwbHVnaW5XaWRnZXQpCiB7Ci0gICAgaWYgKHBsdWdpbldp
ZGdldCkKLSAgICAgICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+KHBs
dWdpbldpZGdldCk7CisgICAgbV9wbHVnaW5WaWV3ID0gc3RhdGljX2Nhc3Q8UGx1Z2luVmlldyo+
KCZwbHVnaW5XaWRnZXQpOwogfQogCiAjaWYgRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5oCmluZGV4IDVmNGYxYzg0N2FjNmUzZTA3OWU5Njk5OGE4YTEyOTBkYjM0NTRh
OTIuLjFiZTRjNDEyN2YyNmZmOGRkOTE1ZGVmMWZiMGU0MWJjMjYwM2NkOGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTIwMSw3ICsyMDEsNyBAQCBwcml2YXRlOgogCiAgICAg
UmVmUHRyPFdlYkNvcmU6OldpZGdldD4gY3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmLCBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCYsIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcm
LCBib29sIGxvYWRNYW51YWxseSkgZmluYWw7CiAgICAgdm9pZCByZWNyZWF0ZVBsdWdpbihXZWJD
b3JlOjpXaWRnZXQqKSBmaW5hbDsKLSAgICB2b2lkIHJlZGlyZWN0RGF0YVRvUGx1Z2luKFdlYkNv
cmU6OldpZGdldCogcGx1Z2luV2lkZ2V0KSBmaW5hbDsKKyAgICB2b2lkIHJlZGlyZWN0RGF0YVRv
UGx1Z2luKFdlYkNvcmU6OldpZGdldCYpIGZpbmFsOwogICAgIAogI2lmIEVOQUJMRShXRUJHTCkK
ICAgICBXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3kgd2ViR0xQb2xpY3lGb3JVUkwoY29uc3QgU3Ry
aW5nJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9tYWMvV2ViS2l0
Mi5vcmRlciBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCmluZGV4IDhhMDM4Mzg5
MjdmNWU5MmUzOGQ1MzYyZmFjMzlkN2RhMDZmNjM2ZjguLjcwYmU4YWE0MzVmOWRlYzQzNWQ3ZmQz
OTc1YTY5NjVkNDMyMTY1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQy
Lm9yZGVyCisrKyBiL1NvdXJjZS9XZWJLaXQyL21hYy9XZWJLaXQyLm9yZGVyCkBAIC02OTkwLDcg
KzY5OTAsNiBAQCBfX1pONldlYktpdDlQREZQbHVnaW4xMXBsdWdpbkxheWVyRXYKIF9fWk42V2Vi
S2l0MTVTaW1wbGVQREZQbHVnaW4yM3dpbmRvd1Zpc2liaWxpdHlDaGFuZ2VkRWIKIF9fWk42V2Vi
S2l0MTVTaW1wbGVQREZQbHVnaW4xOHdpbmRvd0ZvY3VzQ2hhbmdlZEViCiBfX1pONldlYktpdDE1
U2ltcGxlUERGUGx1Z2luMTZ3YW50c1doZWVsRXZlbnRzRXYKLV9fWk42V2ViS2l0MjBXZWJGcmFt
ZUxvYWRlckNsaWVudDIwcmVkaXJlY3REYXRhVG9QbHVnaW5FUE43V2ViQ29yZTZXaWRnZXRFCiBf
X1pONldlYktpdDEwUGx1Z2luVmlldzI4bWFudWFsTG9hZERpZFJlY2VpdmVSZXNwb25zZUVSS043
V2ViQ29yZTE2UmVzb3VyY2VSZXNwb25zZUUKIF9fWk42V2ViS2l0MTVTaW1wbGVQREZQbHVnaW4z
MG1hbnVhbFN0cmVhbURpZFJlY2VpdmVSZXNwb25zZUVSS043V2ViQ29yZTRLVVJMRWpqUktOM1dU
RjZTdHJpbmdFUzhfUzhfCiBfX1pONldlYktpdDEwUGx1Z2luVmlldzI0bWFudWFsTG9hZERpZFJl
Y2VpdmVEYXRhRVBLY2kK
</data>

          </attachment>
      

    </bug>

</bugzilla>