<?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>218857</bug_id>
          
          <creation_ts>2020-11-12 10:24:50 -0800</creation_ts>
          <short_desc>Use native animations for scroll-behavior:smooth on Mac</short_desc>
          <delta_ts>2021-09-24 09:18:40 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=230310</see_also>
          <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>
          
          <blocked>188043</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="cathiechen">cathiechen</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>rik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1706918</commentid>
    <comment_count>0</comment_count>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2020-11-12 10:24:50 -0800</bug_when>
    <thetext>Try to use the native scroll animation of Mac (scrolling momentum) for smooth scroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709173</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-19 10:25:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/71591918&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773357</commentid>
    <comment_count>2</comment_count>
      <attachid>432463</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-29 02:18:59 -0700</bug_when>
    <thetext>Created attachment 432463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773709</commentid>
    <comment_count>3</comment_count>
      <attachid>432581</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-30 03:48:14 -0700</bug_when>
    <thetext>Created attachment 432581
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774389</commentid>
    <comment_count>4</comment_count>
      <attachid>432581</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2021-07-02 01:54:41 -0700</bug_when>
    <thetext>Comment on attachment 432581
Patch

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

&gt; Source/WebCore/platform/ScrollAnimator.cpp:-125
&gt; -    m_scrollAnimation-&gt;setCurrentPosition(adjustedPosition);

I wonder would this change affect the platform still using m_scrollAnimation?

&gt; Source/WebCore/platform/ScrollView.cpp:-540
&gt; -    setScrollBehaviorStatus(ScrollBehaviorStatus::NotInAnimation);

Looks like we can also remove this in RenderLayerScrollableArea::scrollToOffset()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774393</commentid>
    <comment_count>5</comment_count>
      <attachid>432772</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-07-02 02:11:08 -0700</bug_when>
    <thetext>Created attachment 432772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774394</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-07-02 02:12:49 -0700</bug_when>
    <thetext>(In reply to cathiechen from comment #4)

Thanks for taking a look at this!

&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=432581&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ScrollAnimator.cpp:-125
&gt; &gt; -    m_scrollAnimation-&gt;setCurrentPosition(adjustedPosition);
&gt; 
&gt; I wonder would this change affect the platform still using m_scrollAnimation?

I don&apos;t think this will, because setCurrentPosition is always called before starting a new animation with m_scrollAnimation.

&gt; &gt; Source/WebCore/platform/ScrollView.cpp:-540
&gt; &gt; -    setScrollBehaviorStatus(ScrollBehaviorStatus::NotInAnimation);
&gt; 
&gt; Looks like we can also remove this in
&gt; RenderLayerScrollableArea::scrollToOffset()?

Nice catch! I thought I had gotten all of these, but I missed one.

I&apos;ve uploaded a new version of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774940</commentid>
    <comment_count>7</comment_count>
      <attachid>432928</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-07-06 07:46:13 -0700</bug_when>
    <thetext>Created attachment 432928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774946</commentid>
    <comment_count>8</comment_count>
      <attachid>432931</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-07-06 08:15:21 -0700</bug_when>
    <thetext>Created attachment 432931
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796489</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-09-23 08:00:17 -0700</bug_when>
    <thetext>Now that ScrollAnimator and ScrollAnimatorMac use the same smooth animation, this change is no longer valid.

See: https://bugs.webkit.org/show_bug.cgi?id=230445</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796538</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-09-23 09:57:04 -0700</bug_when>
    <thetext>We still want to run smooth scrolling animations in the UI process on iOS, but we can do that via a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796912</commentid>
    <comment_count>11</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-09-24 09:18:40 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; We still want to run smooth scrolling animations in the UI process on iOS,
&gt; but we can do that via a separate bug.

That&apos;s right. If I&apos;m not mistaken it&apos;s tracked by: https://bugs.webkit.org/show_bug.cgi?id=204936.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432463</attachid>
            <date>2021-06-29 02:18:59 -0700</date>
            <delta_ts>2021-06-30 03:48:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218857-20210629111857.patch</filename>
            <type>text/plain</type>
            <size>13860</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBhMWI2M2FjYjAzMzVh
ZmYyZmYwMzRjNjc4MWRiNmE0ODUwYzJhNS4uYjE0ZjljNWFjYzUyMDg3Nzk3MDhkNzdiNDBhNWNi
MDA2YzRlYmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA2LTI5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbmF0aXZl
IGFuaW1hdGlvbnMgZm9yIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGggb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxNTkxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuYXRpdmUgYW5pbWF0aW9ucyBmb3Igc21vb3RoIHNjcm9sbGlu
ZyBvbiBNYWMuIFRoaXMgZW5zdXJlcyB0aGF0IFNjcm9sbEFuaW1hdG9yTWFjIG5ldmVyCisgICAg
ICAgIHRyaWdnZXJzIGEgbm9uLW5hdGl2ZSBhbmltYXRpb24uIFRoaXMgd2lsbCBiZSB1c2VmdWwg
YmVjYXVzZSBhIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBuZWVkIHRvIHJldGFyZ2V0CisgICAgICAgIGFu
eSBydW5uaW5nIGFuaW1hdGlvbiBhbmQgb25seSBoYXZpbmcgdG8gd29ycnkgYWJvdXQgb25lIHR5
cGUgd2lsbCBtYWtlIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBhbmQgdGhlIGJlaGF2aW9yIGNo
YW5nZXMgYXJlIG5vdCBvYnNlcnZhYmxlCisgICAgICAgIGJ5IHRlc3RzLiBGdW5jdGlvbmFsbHks
IFdlYktpdCBzaG91bGQgYmUgdGhlIHNhbWUsIHBvc3NpYmx5IHdpdGggYSBzbGlnaHRseSBkaWZm
ZXJlbnQKKyAgICAgICAgKG5hdGl2ZSkgYW5pbWF0aW9uIHByb2dyZXNzaW9uLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24gaW5zdGVhZAorICAgICAgICBvZiBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKTogTm8gbG9uZ2VyIGNhbGwgc2V0Q3VycmVudFBvc2l0aW9uIG9uCisgICAgICAg
IHRoZSBub24tbmF0aXZlIGFuaW1hdGlvbiBoZXJlLiBUaGlzIGlzbid0IG5lY2Vzc2FyeSBpZiB3
ZSBhcmUgdXNpbmcgbmF0aXZlIGFuaW1hdGlvbnMgYW5kIGNhbGxpbmcgaXQKKyAgICAgICAgY2Fu
IHRyaWdnZXIgZXh0cmEgZW5kIGFuaW1hdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IHB1dCB0aGUg
U2Nyb2xsQW5pbWF0b3IgaW4gdGhlIHdyb25nIHN0YXRlLiBUaGlzCisgICAgICAgIGlzIGNhbGxl
ZCBmb3IgZXZlcnkgdGljayBvZiBuYXRpdmUgYW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSB0aGUg
bmV3IGVudW0gbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKTogU2V0IHRoZSBwcm9wZXIgc3RhdGUgb2YgdGhlIGFuaW1hdGlvbiBoZXJlLCBy
YXRoZXIgdGhhbgorICAgICAgICBoYXZpbmcgdGhlIGNoaWxkIGNsYXNzZXMgZG8gaXQgd2hlbiBj
YWxsaW5nIGNhbmNlbEFuaW1hdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiZWhhdmlvciB3
aWxsCisgICAgICAgIGFsd2F5cyBiZSB0aGUgc2FtZSB3aGVuIGNhbGxpbmcgY2FuY2VsQW5pbWF0
aW9ucyBhbmQgU2Nyb2xsQW5pbWF0b3Igd2lsbCBoYXZlIGFjY3VyYXRlIHN0YXRlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IENoYW5nZSBJbk5vbk5hdGl2ZUFuaW1hdGlvbiB0
byBJbkFuaW1hdGlvbi4gVGhpcyBzdGF0ZSBjYW4gYmUgc2hhcmVkCisgICAgICAgIGJldHdlZW4g
dGhlIHR3byB0eXBlcyBvZiBhbmltYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24p
OiBIYXZlIHRoZSBiYXNlIGNsYXNzIHNldCB0aGUgcHJvcGVyIGFuaW1hdGlvbiBzdGF0ZQorICAg
ICAgICBpbiBjYW5jZWxBbmltYXRpb25zLiBBbHNvIHVzZSB0aGUgbmV3IGVudW0gbmFtZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkIG5ldyBtZXRob2Qg
ZGVjbGFyYXRpb25zIGFuZCBhZGQgYSBUaW1lciBmb3IgYXN5bmNocm9ub3VzIG1ldGhvZCBjYWxs
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBJbml0aWFs
aXplIHRoZSBuZXcgVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24pOiBBbHdheXMgdXNlIG5hdGl2ZSBhbmltYXRp
b25zIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbik6IE5vIGxvbmdlciBzdG9wIG5hdGl2ZSBhbmltYXRpb25z
IGFsd2F5cworICAgICAgICB3aGVuIHRyaWdnZXJpbmcgYW4gaW5zdGFudCBzY3JvbGwuIFRoaXMg
aXMgaGFuZGxlZCBieSB0aGUgY2FsbHMgdG8gY2FuY2VsQW5pbWF0aW9ucyBpbiB0aGUgYmFzZSBj
bGFzcyBhbmQKKyAgICAgICAgdGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBub24tbmF0aXZl
IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQW5pbWF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6
IFNpbmNlIHRoZSBhbmltYXRpb24gbWlnaHQKKyAgICAgICAgYmUgY2FuY2VsZWQgYXN5bmNocm9u
b3VzbHksIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSBhbmltYXRpb25zIGlmIHRoZSBhbmlt
YXRpb24gaXMgcGVuZGluZyB0byBiZQorICAgICAgICBjYW5jZWxlZC4gRGV0ZWN0IHdoZW4gdGhl
IGFuaW1hdGlvbiBmaW5pc2hlcyBzbyB3ZSBjYW4gcHJvcGVybHkgdXBkYXRlIHRoZSBTY3JvbGxB
bmltYXRvciBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IE5vdyBzdG9wIHRoZSBuYXRpdmUgYW5pbWF0aW9uIGhl
cmUgYXMgd2VsbC4gV2UgYWxzbworICAgICAgICB0cmlnZ2VyIGFuIGFzeW5jaHJvbm91cyBjYWxs
IHRvIF9zdG9wUnVuLCBiZWNhdXNlIGl0IGRvZXMgbm90IHNlZW0gdG8gd29yayB3aGVuIGNhbGxl
ZCBmcm9tIHdpdGhpbgorICAgICAgICBhbiBhbmltYXRpb24gdGljay4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSk6
IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIGFzeW5jaHJvbm91c2x5CisgICAgICAgIHN0b3BzIHRo
ZSBuYXRpdmUgYW5pbWF0aW9uIGlmIGl0cyBzdGF0ZSBpcyBzdGlsbCBjYW5jZWxlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldCk6IFVzZSB0
aGUgbmV3IGVudW0gbmFtZS4KKwogMjAyMS0wNi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkzMjIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYTdlOWYzM2VhNmVmZmNkYTEyYWI1NmJi
ODYxOGM4ZWI1ZTJjZGE2MC4uN2YxYmFmODIyOWI5YWU3YTY2NTQ2Mzg4ZTdmZGM3MTVhMGFiMzYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzc1OCw3ICszNzU4LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBwb3NpdGlvbiwgU2MKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJl
bnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAK
LSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogICAgIGlmIChwb3NpdGlvbiAh
PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9Qb3NpdGlvbldpdGhBbmltYXRpb24ocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDVkZjU5ODdlODk4MTI5ZDNkOGEyYmUzNTFjYzcy
MDAwNDQ0ZDVkNjYuLmU0ZWZjZjJlZjNjMjFjMDk1NTBhNjg3YTVkZDcwZGQyODA4M2I1ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTEyMiw3ICsx
MjIsNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbgogICAgIGlmIChhZGp1c3RlZFBvc2l0aW9u
ID09IGN1cnJlbnRQb3NpdGlvbiAmJiBhZGp1c3RlZFBvc2l0aW9uID09IHNjcm9sbGFibGVBcmVh
KCkuc2Nyb2xsUG9zaXRpb24oKSAmJiAhc2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxPcmlnaW5DaGFu
Z2VkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5z
ZXRDdXJyZW50UG9zaXRpb24oYWRqdXN0ZWRQb3NpdGlvbik7CiAgICAgbV9jdXJyZW50UG9zaXRp
b24gPSBhZGp1c3RlZFBvc2l0aW9uOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChhZGp1c3Rl
ZFBvc2l0aW9uIC0gY3VycmVudFBvc2l0aW9uKTsKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFw
SW5kZXhGb3JPZmZzZXQoKTsKQEAgLTE0Miw3ICsxNDEsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9y
OjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3Np
dGlvbgogCiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3NpdGlvbihtX2N1cnJl
bnRQb3NpdGlvbik7CiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnNjcm9sbChuZXdQb3NpdGlvbik7
Ci0gICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pOworICAgIHNjcm9sbGFibGVBcmVhKCku
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9u
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzYyLDYgKzM2MSw3IEBAIHZvaWQgU2Nyb2xs
QW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUVfVElNRVIpCiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnN0b3AoKTsKICNlbmRpZgorICAg
IHNjcm9sbGFibGVBcmVhKCkuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvcjo6Y29udGVu
dHNSZXNpemVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4
IDBiMWM0MDU2M2U4Y2JiODIyYTlmZWJhNGMwYzQ2NWY4YTU3NGE5M2IuLmIzMDI5YmU5ZGI5OGVk
MDc5NmE3OTk0MjVhYjQ4MTdkNjRkMDVjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaApAQCAtNzEsNyArNzEsNyBAQCBlbnVtIFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gOiB1
aW50OF90IHsKIC8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDkzNgogZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAg
IE5vdEluQW5pbWF0aW9uLAotICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorICAgIEluQW5pbWF0
aW9uLAogfTsKIAogZW51bSBjbGFzcyBBbmltYXRlZFNjcm9sbCA6IHVpbnQ4X3QgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAzZDJmNjJlZmIwMDA3NTNjNzY2MjQ0
MmI3OTM0MTIzNTE0NDc1ZTQ2Li5hY2YwOWMxOGQzNDgyMDVjMzNhMWRkYzE4MTcxYjA2ZGYzYjJj
YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTI3LDcgKzUy
Nyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xsUG9zaXRp
b24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygpICYmIG9wdGlvbnMu
Y2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpID8gYWRqdXN0U2Nyb2xsUG9zaXRp
b25XaXRoaW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKQEAgLTUzNiw4
ICs1MzYsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgUwogCiAgICAgaWYgKCFyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24sIGN1cnJlbnRTY3JvbGxUeXBlKCks
IG9wdGlvbnMuY2xhbXBpbmcpKQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKLQotICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA0
YTVlM2YyZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjLi5hNzQ2OTZmOTYyNTZiNzc1
NzJjOTkzY2JlMzIyZDIxNjNhNDhkMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpOwogCiAgICAg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG1heWJl
U3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5KCk7CiAKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlcjsKQEAgLTE2MCw2ICsxNjEsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkOwogICAgIGJvb2wgbV9uZWVk
c1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAgSW50UmVjdCBtX3Zpc2libGVTY3JvbGxlclRodW1i
UmVjdDsKKyAgICBSdW5Mb29wOjpUaW1lcjxTY3JvbGxBbmltYXRvck1hYz4gbV9jYW5jZWxBbmlt
YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCAxN2E5MWI1M2Y5
NTYzMWFlMDE4YWMxYmFhNjExZjdkNjcyYmYyMmNiLi4yZWFiNWNiMjI5YTdiOWYyMjg2ZmRhMzY5
YTU4MWJkMjQyN2UwNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03MDUsNiArNzA1LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6
OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKICAgICAs
IG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcigqdGhpcywgJlNjcm9sbEFuaW1hdG9yTWFj
OjpzZW5kQ29udGVudEFyZWFTY3JvbGxlZFRpbWVyRmlyZWQpCiAgICAgLCBtX2hhdmVTY3JvbGxl
ZFNpbmNlUGFnZUxvYWQoZmFsc2UpCiAgICAgLCBtX25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0ZShm
YWxzZSkKKyAgICAsIG1fY2FuY2VsQW5pbWF0aW9uVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0
aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6Om1heWJlU3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5
KQogewogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vi
U2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0
b3I6dGhpc10pOwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyID0gYWRvcHROUyhbW05TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxBbmltYXRpb25IZWxwZXIiKSBhbGxvY10gaW5pdFdpdGhE
ZWxlZ2F0ZTptX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlLmdldCgpXSk7CkBAIC03ODks
MTUgKzc5MCwxMyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0
aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdAogICAgIGlmICghcG9zaXRpb25D
aGFuZ2VkICYmICFzY3JvbGxhYmxlQXJlYSgpLnNjcm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBwcmltYXJpbHkg
Ynkgc21vb3RoIHNjcm9sbGluZy4gVGhpcyBzaG91bGQgaWRlYWxseSB1c2UgbmF0aXZlIHNjcm9s
bCBhbmltYXRpb25zLgotICAgIC8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODg1NwotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07
Ci0gICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlv
bihuZXdQb3NpdGlvbik7CisgICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pOworICAgIFttX3Njcm9sbEFu
aW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5ld1Bvc2l0aW9uXTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRB
bmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1w
aW5nKQogewotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07CiAgICAgcmV0
dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihwb3Np
dGlvbiwgY2xhbXBpbmcpOwogfQogCkBAIC04ODAsNyArODc5LDE2IEBAIFN0cmluZyBTY3JvbGxB
bmltYXRvck1hYzo6dmVydGljYWxTY3JvbGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFu
aW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKIHsKICAgICBBU1NFUlQobV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIpOworCisgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiB3YXMgY2Fu
Y2VsZWQsIGJ1dCB0aGUgaGVscGVyIGhhc24ndCBzdG9wcGVkIHlldCwgZG9uJ3QgcHJvY2VzcyBh
bnkgdXBkYXRlcy4KKyAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS5jdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pCisgICAg
ICAgIHJldHVybjsKKwogICAgIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91
dEFuaW1hdGlvbihuZXdQb3NpdGlvbik7CisKKyAgICAvLyBXZSBhc3N1bWUgdGhhdCB0aGUgYW5p
bWF0aW9uIGhhcyBmaW5pc2hlZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBhbmlt
YXRpb24gbWF0Y2hlcyB0aGUgdGFyZ2V0LgorICAgIGlmIChGbG9hdFBvaW50KFttX3Njcm9sbEFu
aW1hdGlvbkhlbHBlciB0YXJnZXRPcmlnaW5dKSA9PSBuZXdQb3NpdGlvbikKKyAgICAgICAgc2Ny
b2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQ
b3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKQEAgLTExOTIsMTIgKzEyMDAs
MjYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygpCiAgICAgU2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNl
UGFnZUxvYWQgPSBmYWxzZTsKIAorICAgIC8vIF9zdG9wUnVuIGRvZXNuJ3Qgc2VlbSB0byB3b3Jr
IHdoZW4gY2FsbGVkIGR1cmluZyBhbiBhbmltYXRpb24gdGljay4gRm9yIGluc3RhbmNlLCB0aGlz
IGlzCisgICAgLy8gdGhlIGNhc2UgaWYgY2FuY2VsQW5pbWF0aW9ucyBpcyB0cmlnZ2VyZWQgZHVy
aW5nIHRoZSBzY3JvbGwgZXZlbnQgaGFuZGxlciBmcm9tIEphdmFTY3JpcHQuCisgICAgLy8gVGhp
cyBjb2RlIHNjaGVkdWxlcyB0aGUgYW5pbWF0aW9uIHRvIGNhbmNlbCBhc3luY2hyb25vdXNseSBm
cm9tIHRoZSBtYWluIGxvb3AuCisgICAgbV9jYW5jZWxBbmltYXRpb25UaW1lci5zdGFydE9uZVNo
b3QoMF9zKTsKKyAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX3N0b3BSdW5dOworCiAgICAg
aWYgKHNjcm9sbGJhclBhaW50VGltZXJJc0FjdGl2ZSgpKQogICAgICAgICBzdG9wU2Nyb2xsYmFy
UGFpbnRUaW1lcigpOwogICAgIFttX2hvcml6b250YWxTY3JvbGxlckltcERlbGVnYXRlIGNhbmNl
bEFuaW1hdGlvbnNdOwogICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBjYW5jZWxB
bmltYXRpb25zXTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bWF5YmVTdG9wQW5pbWF0
aW9uQXN5bmNocm9ub3VzbHkoKQoreworICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCBhbiBh
bmltYXRpb24gd2FzIHRyaWdnZXJlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoaXMgY2FsbGJhY2sgd2Fz
IHNjaGVkdWxlZAorICAgIC8vIGFuZCBub3cuIEluIHRoYXQgY2FzZSwgZG9uJ3Qgc3RvcCB0aGUg
YW5pbWF0aW9uLgorICAgIGlmIChzY3JvbGxhYmxlQXJlYSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlv
clN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbikKKyAgICAg
ICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKK30KKwogdm9pZCBTY3JvbGxB
bmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
IHBoYXNlKQogewogICAgIExPR19XSVRIX1NUUkVBTShPdmVybGF5U2Nyb2xsYmFycywgc3RyZWFt
IDw8ICJTY3JvbGxBbmltYXRvck1hYyAiIDw8IHRoaXMgPDwgIiBzY3JvbGxhYmxlQXJlYSAiIDw8
IG1fc2Nyb2xsYWJsZUFyZWEgPDwgIiBoYW5kbGVXaGVlbEV2ZW50UGhhc2UgIiA8PCBwaGFzZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5jcHAKaW5kZXggNWJjNzcyY2M4MTZiY2JmMDY4N2QyOWU4YzlhYTQwOTI5NWQzZjI3
Zi4uODE3YTg2NGY5MjQ0OTA4NTBhNmYxOTA3NTQ5MTM0ODY4YzJhZTE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cApAQCAtMjU2LDcgKzI1Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6cmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uCiAKIHZvaWQgUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0
JiBzY3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAg
ICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xs
T2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBvcHRpb25zLmNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432581</attachid>
            <date>2021-06-30 03:48:14 -0700</date>
            <delta_ts>2021-07-02 02:11:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218857-20210630124812.patch</filename>
            <type>text/plain</type>
            <size>13971</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBhMWI2M2FjYjAzMzVh
ZmYyZmYwMzRjNjc4MWRiNmE0ODUwYzJhNS4uYjE0ZjljNWFjYzUyMDg3Nzk3MDhkNzdiNDBhNWNi
MDA2YzRlYmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA2LTI5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbmF0aXZl
IGFuaW1hdGlvbnMgZm9yIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGggb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxNTkxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuYXRpdmUgYW5pbWF0aW9ucyBmb3Igc21vb3RoIHNjcm9sbGlu
ZyBvbiBNYWMuIFRoaXMgZW5zdXJlcyB0aGF0IFNjcm9sbEFuaW1hdG9yTWFjIG5ldmVyCisgICAg
ICAgIHRyaWdnZXJzIGEgbm9uLW5hdGl2ZSBhbmltYXRpb24uIFRoaXMgd2lsbCBiZSB1c2VmdWwg
YmVjYXVzZSBhIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBuZWVkIHRvIHJldGFyZ2V0CisgICAgICAgIGFu
eSBydW5uaW5nIGFuaW1hdGlvbiBhbmQgb25seSBoYXZpbmcgdG8gd29ycnkgYWJvdXQgb25lIHR5
cGUgd2lsbCBtYWtlIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBhbmQgdGhlIGJlaGF2aW9yIGNo
YW5nZXMgYXJlIG5vdCBvYnNlcnZhYmxlCisgICAgICAgIGJ5IHRlc3RzLiBGdW5jdGlvbmFsbHks
IFdlYktpdCBzaG91bGQgYmUgdGhlIHNhbWUsIHBvc3NpYmx5IHdpdGggYSBzbGlnaHRseSBkaWZm
ZXJlbnQKKyAgICAgICAgKG5hdGl2ZSkgYW5pbWF0aW9uIHByb2dyZXNzaW9uLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24gaW5zdGVhZAorICAgICAgICBvZiBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKTogTm8gbG9uZ2VyIGNhbGwgc2V0Q3VycmVudFBvc2l0aW9uIG9uCisgICAgICAg
IHRoZSBub24tbmF0aXZlIGFuaW1hdGlvbiBoZXJlLiBUaGlzIGlzbid0IG5lY2Vzc2FyeSBpZiB3
ZSBhcmUgdXNpbmcgbmF0aXZlIGFuaW1hdGlvbnMgYW5kIGNhbGxpbmcgaXQKKyAgICAgICAgY2Fu
IHRyaWdnZXIgZXh0cmEgZW5kIGFuaW1hdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IHB1dCB0aGUg
U2Nyb2xsQW5pbWF0b3IgaW4gdGhlIHdyb25nIHN0YXRlLiBUaGlzCisgICAgICAgIGlzIGNhbGxl
ZCBmb3IgZXZlcnkgdGljayBvZiBuYXRpdmUgYW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSB0aGUg
bmV3IGVudW0gbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKTogU2V0IHRoZSBwcm9wZXIgc3RhdGUgb2YgdGhlIGFuaW1hdGlvbiBoZXJlLCBy
YXRoZXIgdGhhbgorICAgICAgICBoYXZpbmcgdGhlIGNoaWxkIGNsYXNzZXMgZG8gaXQgd2hlbiBj
YWxsaW5nIGNhbmNlbEFuaW1hdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiZWhhdmlvciB3
aWxsCisgICAgICAgIGFsd2F5cyBiZSB0aGUgc2FtZSB3aGVuIGNhbGxpbmcgY2FuY2VsQW5pbWF0
aW9ucyBhbmQgU2Nyb2xsQW5pbWF0b3Igd2lsbCBoYXZlIGFjY3VyYXRlIHN0YXRlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IENoYW5nZSBJbk5vbk5hdGl2ZUFuaW1hdGlvbiB0
byBJbkFuaW1hdGlvbi4gVGhpcyBzdGF0ZSBjYW4gYmUgc2hhcmVkCisgICAgICAgIGJldHdlZW4g
dGhlIHR3byB0eXBlcyBvZiBhbmltYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24p
OiBIYXZlIHRoZSBiYXNlIGNsYXNzIHNldCB0aGUgcHJvcGVyIGFuaW1hdGlvbiBzdGF0ZQorICAg
ICAgICBpbiBjYW5jZWxBbmltYXRpb25zLiBBbHNvIHVzZSB0aGUgbmV3IGVudW0gbmFtZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkIG5ldyBtZXRob2Qg
ZGVjbGFyYXRpb25zIGFuZCBhZGQgYSBUaW1lciBmb3IgYXN5bmNocm9ub3VzIG1ldGhvZCBjYWxs
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBJbml0aWFs
aXplIHRoZSBuZXcgVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24pOiBBbHdheXMgdXNlIG5hdGl2ZSBhbmltYXRp
b25zIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbik6IE5vIGxvbmdlciBzdG9wIG5hdGl2ZSBhbmltYXRpb25z
IGFsd2F5cworICAgICAgICB3aGVuIHRyaWdnZXJpbmcgYW4gaW5zdGFudCBzY3JvbGwuIFRoaXMg
aXMgaGFuZGxlZCBieSB0aGUgY2FsbHMgdG8gY2FuY2VsQW5pbWF0aW9ucyBpbiB0aGUgYmFzZSBj
bGFzcyBhbmQKKyAgICAgICAgdGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBub24tbmF0aXZl
IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQW5pbWF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6
IFNpbmNlIHRoZSBhbmltYXRpb24gbWlnaHQKKyAgICAgICAgYmUgY2FuY2VsZWQgYXN5bmNocm9u
b3VzbHksIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSBhbmltYXRpb25zIGlmIHRoZSBhbmlt
YXRpb24gaXMgcGVuZGluZyB0byBiZQorICAgICAgICBjYW5jZWxlZC4gRGV0ZWN0IHdoZW4gdGhl
IGFuaW1hdGlvbiBmaW5pc2hlcyBzbyB3ZSBjYW4gcHJvcGVybHkgdXBkYXRlIHRoZSBTY3JvbGxB
bmltYXRvciBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IE5vdyBzdG9wIHRoZSBuYXRpdmUgYW5pbWF0aW9uIGhl
cmUgYXMgd2VsbC4gV2UgYWxzbworICAgICAgICB0cmlnZ2VyIGFuIGFzeW5jaHJvbm91cyBjYWxs
IHRvIF9zdG9wUnVuLCBiZWNhdXNlIGl0IGRvZXMgbm90IHNlZW0gdG8gd29yayB3aGVuIGNhbGxl
ZCBmcm9tIHdpdGhpbgorICAgICAgICBhbiBhbmltYXRpb24gdGljay4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSk6
IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIGFzeW5jaHJvbm91c2x5CisgICAgICAgIHN0b3BzIHRo
ZSBuYXRpdmUgYW5pbWF0aW9uIGlmIGl0cyBzdGF0ZSBpcyBzdGlsbCBjYW5jZWxlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldCk6IFVzZSB0
aGUgbmV3IGVudW0gbmFtZS4KKwogMjAyMS0wNi0yNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkzMjIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggYTdlOWYzM2VhNmVmZmNkYTEyYWI1NmJi
ODYxOGM4ZWI1ZTJjZGE2MC4uN2YxYmFmODIyOWI5YWU3YTY2NTQ2Mzg4ZTdmZGM3MTVhMGFiMzYx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzc1OCw3ICszNzU4LDcgQEAgdm9p
ZCBGcmFtZVZpZXc6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IFNjcm9sbFBv
c2l0aW9uJiBwb3NpdGlvbiwgU2MKICAgICBhdXRvIHByZXZpb3VzU2Nyb2xsVHlwZSA9IGN1cnJl
bnRTY3JvbGxUeXBlKCk7CiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUoc2Nyb2xsVHlwZSk7CiAK
LSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogICAgIGlmIChwb3NpdGlvbiAh
PSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpKQogICAgICAgICBTY3JvbGxhYmxlQXJlYTo6c2Nyb2xs
VG9Qb3NpdGlvbldpdGhBbmltYXRpb24ocG9zaXRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDVkZjU5ODdlODk4MTI5ZDNkOGEyYmUzNTFjYzcy
MDAwNDQ0ZDVkNjYuLmU0ZWZjZjJlZjNjMjFjMDk1NTBhNjg3YTVkZDcwZGQyODA4M2I1ZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTEyMiw3ICsx
MjIsNiBAQCBib29sIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbgogICAgIGlmIChhZGp1c3RlZFBvc2l0aW9u
ID09IGN1cnJlbnRQb3NpdGlvbiAmJiBhZGp1c3RlZFBvc2l0aW9uID09IHNjcm9sbGFibGVBcmVh
KCkuc2Nyb2xsUG9zaXRpb24oKSAmJiAhc2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxPcmlnaW5DaGFu
Z2VkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5z
ZXRDdXJyZW50UG9zaXRpb24oYWRqdXN0ZWRQb3NpdGlvbik7CiAgICAgbV9jdXJyZW50UG9zaXRp
b24gPSBhZGp1c3RlZFBvc2l0aW9uOwogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChhZGp1c3Rl
ZFBvc2l0aW9uIC0gY3VycmVudFBvc2l0aW9uKTsKICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFw
SW5kZXhGb3JPZmZzZXQoKTsKQEAgLTE0Miw3ICsxNDEsNyBAQCBib29sIFNjcm9sbEFuaW1hdG9y
OjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3Np
dGlvbgogCiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3NpdGlvbihtX2N1cnJl
bnRQb3NpdGlvbik7CiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnNjcm9sbChuZXdQb3NpdGlvbik7
Ci0gICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhh
dmlvclN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pOworICAgIHNjcm9sbGFibGVBcmVhKCku
c2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9u
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMzYyLDYgKzM2MSw3IEBAIHZvaWQgU2Nyb2xs
QW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKQogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUVfVElNRVIpCiAgICAgbV9zY3JvbGxBbmltYXRpb24tPnN0b3AoKTsKICNlbmRpZgorICAg
IHNjcm9sbGFibGVBcmVhKCkuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvcjo6Y29udGVu
dHNSZXNpemVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCmluZGV4
IDBiMWM0MDU2M2U4Y2JiODIyYTlmZWJhNGMwYzQ2NWY4YTU3NGE5M2IuLmIzMDI5YmU5ZGI5OGVk
MDc5NmE3OTk0MjVhYjQ4MTdkNjRkMDVjODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaApAQCAtNzEsNyArNzEsNyBAQCBlbnVtIFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24gOiB1
aW50OF90IHsKIC8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNDkzNgogZW51bSBjbGFzcyBTY3JvbGxCZWhhdmlvclN0YXR1cyA6IHVpbnQ4X3QgewogICAg
IE5vdEluQW5pbWF0aW9uLAotICAgIEluTm9uTmF0aXZlQW5pbWF0aW9uLAorICAgIEluQW5pbWF0
aW9uLAogfTsKIAogZW51bSBjbGFzcyBBbmltYXRlZFNjcm9sbCA6IHVpbnQ4X3QgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAppbmRleCAzZDJmNjJlZmIwMDA3NTNjNzY2MjQ0
MmI3OTM0MTIzNTE0NDc1ZTQ2Li5hY2YwOWMxOGQzNDgyMDVjMzNhMWRkYzE4MTcxYjA2ZGYzYjJj
YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcApAQCAtNTI3LDcgKzUy
Nyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9z
aXRpb24mIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBTCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JT
dGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAgICAgICAg
IHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xsUG9zaXRp
b24gbmV3U2Nyb2xsUG9zaXRpb24gPSAoIWRlbGVnYXRlc1Njcm9sbGluZygpICYmIG9wdGlvbnMu
Y2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpID8gYWRqdXN0U2Nyb2xsUG9zaXRp
b25XaXRoaW5SYW5nZShzY3JvbGxQb3NpdGlvbikgOiBzY3JvbGxQb3NpdGlvbjsKQEAgLTUzNiw4
ICs1MzYsNiBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9s
bFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgUwogCiAgICAgaWYgKCFyZXF1ZXN0U2Ny
b2xsUG9zaXRpb25VcGRhdGUobmV3U2Nyb2xsUG9zaXRpb24sIGN1cnJlbnRTY3JvbGxUeXBlKCks
IG9wdGlvbnMuY2xhbXBpbmcpKQogICAgICAgICB1cGRhdGVTY3JvbGxiYXJzKG5ld1Njcm9sbFBv
c2l0aW9uKTsKLQotICAgIHNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3Rh
dHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsKFNjcm9s
bERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAppbmRleCA0
YTVlM2YyZTJmOTZkNmU1NThjZmEzZmRiMWE3MjllY2VjYjViNDRjLi5hNzQ2OTZmOTYyNTZiNzc1
NzJjOTkzY2JlMzIyZDIxNjNhNDhkMThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaApAQCAtNjIsNiArNjIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoY29uc3QgSW50UmVjdCYpOwogCiAgICAg
Ym9vbCBzY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIG1heWJl
U3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5KCk7CiAKIHByaXZhdGU6CiAgICAgUmV0YWluUHRy
PGlkPiBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlcjsKQEAgLTE2MCw2ICsxNjEsNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkOwogICAgIGJvb2wgbV9uZWVk
c1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAgSW50UmVjdCBtX3Zpc2libGVTY3JvbGxlclRodW1i
UmVjdDsKKyAgICBSdW5Mb29wOjpUaW1lcjxTY3JvbGxBbmltYXRvck1hYz4gbV9jYW5jZWxBbmlt
YXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCAxN2E5MWI1M2Y5
NTYzMWFlMDE4YWMxYmFhNjExZjdkNjcyYmYyMmNiLi5lOGMxNzFmMWZlMGIwMDM2YTViNzBlN2Yz
OTVjMmNkMjM3OWRiYzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
U2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03MDUsNiArNzA1LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6
OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSkKICAgICAs
IG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lcigqdGhpcywgJlNjcm9sbEFuaW1hdG9yTWFj
OjpzZW5kQ29udGVudEFyZWFTY3JvbGxlZFRpbWVyRmlyZWQpCiAgICAgLCBtX2hhdmVTY3JvbGxl
ZFNpbmNlUGFnZUxvYWQoZmFsc2UpCiAgICAgLCBtX25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0ZShm
YWxzZSkKKyAgICAsIG1fY2FuY2VsQW5pbWF0aW9uVGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0
aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6Om1heWJlU3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5
KQogewogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2Vi
U2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0
b3I6dGhpc10pOwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyID0gYWRvcHROUyhbW05TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxBbmltYXRpb25IZWxwZXIiKSBhbGxvY10gaW5pdFdpdGhE
ZWxlZ2F0ZTptX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlLmdldCgpXSk7CkBAIC03ODks
MTUgKzc5MCwxMyBAQCBib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0
aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdAogICAgIGlmICghcG9zaXRpb25D
aGFuZ2VkICYmICFzY3JvbGxhYmxlQXJlYSgpLnNjcm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgdXNlZCBwcmltYXJpbHkg
Ynkgc21vb3RoIHNjcm9sbGluZy4gVGhpcyBzaG91bGQgaWRlYWxseSB1c2UgbmF0aXZlIHNjcm9s
bCBhbmltYXRpb25zLgotICAgIC8vIFNlZTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxODg1NwotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07
Ci0gICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlv
bihuZXdQb3NpdGlvbik7CisgICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pOworICAgIFttX3Njcm9sbEFu
aW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5ld1Bvc2l0aW9uXTsKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRB
bmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1w
aW5nKQogewotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07CiAgICAgcmV0
dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihwb3Np
dGlvbiwgY2xhbXBpbmcpOwogfQogCkBAIC04ODAsNyArODc5LDE2IEBAIFN0cmluZyBTY3JvbGxB
bmltYXRvck1hYzo6dmVydGljYWxTY3JvbGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdAogdm9p
ZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFu
aW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKIHsKICAgICBBU1NFUlQobV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIpOworCisgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiB3YXMgY2Fu
Y2VsZWQsIGJ1dCB0aGUgaGVscGVyIGhhc24ndCBzdG9wcGVkIHlldCwgZG9uJ3QgcHJvY2VzcyBh
bnkgdXBkYXRlcy4KKyAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS5jdXJyZW50U2Nyb2xsQmVoYXZp
b3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pCisgICAg
ICAgIHJldHVybjsKKwogICAgIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91
dEFuaW1hdGlvbihuZXdQb3NpdGlvbik7CisKKyAgICAvLyBXZSBhc3N1bWUgdGhhdCB0aGUgYW5p
bWF0aW9uIGhhcyBmaW5pc2hlZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBhbmlt
YXRpb24gbWF0Y2hlcyB0aGUgdGFyZ2V0LgorICAgIGlmIChGbG9hdFBvaW50KFttX3Njcm9sbEFu
aW1hdGlvbkhlbHBlciB0YXJnZXRPcmlnaW5dKSA9PSBuZXdQb3NpdGlvbikKKyAgICAgICAgc2Ny
b2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1
czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3RpZnlQ
b3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKQEAgLTExOTIsMTIgKzEyMDAs
MjggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygpCiAgICAgU2Ny
b2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBtX2hhdmVTY3JvbGxlZFNpbmNl
UGFnZUxvYWQgPSBmYWxzZTsKIAorICAgIC8vIF9zdG9wUnVuIGRvZXNuJ3Qgc2VlbSB0byB3b3Jr
IHdoZW4gY2FsbGVkIGR1cmluZyBhbiBhbmltYXRpb24gdGljay4gRm9yIGluc3RhbmNlLCB0aGlz
IGlzCisgICAgLy8gdGhlIGNhc2UgaWYgY2FuY2VsQW5pbWF0aW9ucyBpcyB0cmlnZ2VyZWQgZHVy
aW5nIHRoZSBzY3JvbGwgZXZlbnQgaGFuZGxlciBmcm9tIEphdmFTY3JpcHQuCisgICAgLy8gVGhp
cyBjb2RlIHNjaGVkdWxlcyB0aGUgYW5pbWF0aW9uIHRvIGNhbmNlbCBhc3luY2hyb25vdXNseSBm
cm9tIHRoZSBtYWluIGxvb3AuCisgICAgaWYgKHNjcm9sbGFibGVBcmVhKCkuY3VycmVudFNjcm9s
bEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9uKSB7
CisgICAgICAgIG1fY2FuY2VsQW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CisgICAg
ICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07CisgICAgfQorCiAgICAgaWYg
KHNjcm9sbGJhclBhaW50VGltZXJJc0FjdGl2ZSgpKQogICAgICAgICBzdG9wU2Nyb2xsYmFyUGFp
bnRUaW1lcigpOwogICAgIFttX2hvcml6b250YWxTY3JvbGxlckltcERlbGVnYXRlIGNhbmNlbEFu
aW1hdGlvbnNdOwogICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBjYW5jZWxBbmlt
YXRpb25zXTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bWF5YmVTdG9wQW5pbWF0aW9u
QXN5bmNocm9ub3VzbHkoKQoreworICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCBhbiBhbmlt
YXRpb24gd2FzIHRyaWdnZXJlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoaXMgY2FsbGJhY2sgd2FzIHNj
aGVkdWxlZAorICAgIC8vIGFuZCBub3cuIEluIHRoYXQgY2FzZSwgZG9uJ3Qgc3RvcCB0aGUgYW5p
bWF0aW9uLgorICAgIGlmIChzY3JvbGxhYmxlQXJlYSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0
YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbikKKyAgICAgICAg
W21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKK30KKwogdm9pZCBTY3JvbGxBbmlt
YXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlIHBo
YXNlKQogewogICAgIExPR19XSVRIX1NUUkVBTShPdmVybGF5U2Nyb2xsYmFycywgc3RyZWFtIDw8
ICJTY3JvbGxBbmltYXRvck1hYyAiIDw8IHRoaXMgPDwgIiBzY3JvbGxhYmxlQXJlYSAiIDw8IG1f
c2Nyb2xsYWJsZUFyZWEgPDwgIiBoYW5kbGVXaGVlbEV2ZW50UGhhc2UgIiA8PCBwaGFzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggNWJjNzcyY2M4MTZiY2JmMDY4N2QyOWU4YzlhYTQwOTI5NWQzZjI3Zi4u
ODE3YTg2NGY5MjQ0OTA4NTBhNmYxOTA3NTQ5MTM0ODY4YzJhZTE0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApA
QCAtMjU2LDcgKzI1Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6cmVxdWVz
dFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uCiAKIHZvaWQgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0JiBz
Y3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyYgb3B0aW9ucykK
IHsKLSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZp
b3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAgICAg
ICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xsT2Zm
c2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBvcHRpb25zLmNsYW1waW5nID09IFNjcm9sbENsYW1w
aW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9m
ZnNldDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432772</attachid>
            <date>2021-07-02 02:11:08 -0700</date>
            <delta_ts>2021-07-06 07:46:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218857-20210702111106.patch</filename>
            <type>text/plain</type>
            <size>14481</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJlNjFkNGEwZGVjNjRh
MTgwNDk2YmFhZjBiY2UwZWE4ZGFiMDllNC4uZDVjOTc3NTI5Y2M1MTE0OGFmNzg0MzE1YWE1OTk2
MzdjYjYyZWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA3LTAyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbmF0aXZl
IGFuaW1hdGlvbnMgZm9yIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGggb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxNTkxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuYXRpdmUgYW5pbWF0aW9ucyBmb3Igc21vb3RoIHNjcm9sbGlu
ZyBvbiBNYWMuIFRoaXMgZW5zdXJlcyB0aGF0IFNjcm9sbEFuaW1hdG9yTWFjIG5ldmVyCisgICAg
ICAgIHRyaWdnZXJzIGEgbm9uLW5hdGl2ZSBhbmltYXRpb24uIFRoaXMgd2lsbCBiZSB1c2VmdWwg
YmVjYXVzZSBhIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBuZWVkIHRvIHJldGFyZ2V0CisgICAgICAgIGFu
eSBydW5uaW5nIGFuaW1hdGlvbiBhbmQgb25seSBoYXZpbmcgdG8gd29ycnkgYWJvdXQgb25lIHR5
cGUgd2lsbCBtYWtlIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBhbmQgdGhlIGJlaGF2aW9yIGNo
YW5nZXMgYXJlIG5vdCBvYnNlcnZhYmxlCisgICAgICAgIGJ5IHRlc3RzLiBGdW5jdGlvbmFsbHks
IFdlYktpdCBzaG91bGQgYmUgdGhlIHNhbWUsIHBvc3NpYmx5IHdpdGggYSBzbGlnaHRseSBkaWZm
ZXJlbnQKKyAgICAgICAgKG5hdGl2ZSkgYW5pbWF0aW9uIHByb2dyZXNzaW9uLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24gaW5zdGVhZAorICAgICAgICBvZiBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKTogTm8gbG9uZ2VyIGNhbGwgc2V0Q3VycmVudFBvc2l0aW9uIG9uCisgICAgICAg
IHRoZSBub24tbmF0aXZlIGFuaW1hdGlvbiBoZXJlLiBUaGlzIGlzbid0IG5lY2Vzc2FyeSBpZiB3
ZSBhcmUgdXNpbmcgbmF0aXZlIGFuaW1hdGlvbnMgYW5kIGNhbGxpbmcgaXQKKyAgICAgICAgY2Fu
IHRyaWdnZXIgZXh0cmEgZW5kIGFuaW1hdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IHB1dCB0aGUg
U2Nyb2xsQW5pbWF0b3IgaW4gdGhlIHdyb25nIHN0YXRlLiBUaGlzCisgICAgICAgIGlzIGNhbGxl
ZCBmb3IgZXZlcnkgdGljayBvZiBuYXRpdmUgYW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSB0aGUg
bmV3IGVudW0gbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKTogU2V0IHRoZSBwcm9wZXIgc3RhdGUgb2YgdGhlIGFuaW1hdGlvbiBoZXJlLCBy
YXRoZXIgdGhhbgorICAgICAgICBoYXZpbmcgdGhlIGNoaWxkIGNsYXNzZXMgZG8gaXQgd2hlbiBj
YWxsaW5nIGNhbmNlbEFuaW1hdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiZWhhdmlvciB3
aWxsCisgICAgICAgIGFsd2F5cyBiZSB0aGUgc2FtZSB3aGVuIGNhbGxpbmcgY2FuY2VsQW5pbWF0
aW9ucyBhbmQgU2Nyb2xsQW5pbWF0b3Igd2lsbCBoYXZlIGFjY3VyYXRlIHN0YXRlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IENoYW5nZSBJbk5vbk5hdGl2ZUFuaW1hdGlvbiB0
byBJbkFuaW1hdGlvbi4gVGhpcyBzdGF0ZSBjYW4gYmUgc2hhcmVkCisgICAgICAgIGJldHdlZW4g
dGhlIHR3byB0eXBlcyBvZiBhbmltYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24p
OiBIYXZlIHRoZSBiYXNlIGNsYXNzIHNldCB0aGUgcHJvcGVyIGFuaW1hdGlvbiBzdGF0ZQorICAg
ICAgICBpbiBjYW5jZWxBbmltYXRpb25zLiBBbHNvIHVzZSB0aGUgbmV3IGVudW0gbmFtZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkIG5ldyBtZXRob2Qg
ZGVjbGFyYXRpb25zIGFuZCBhZGQgYSBUaW1lciBmb3IgYXN5bmNocm9ub3VzIG1ldGhvZCBjYWxs
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBJbml0aWFs
aXplIHRoZSBuZXcgVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24pOiBBbHdheXMgdXNlIG5hdGl2ZSBhbmltYXRp
b25zIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbik6IE5vIGxvbmdlciBzdG9wIG5hdGl2ZSBhbmltYXRpb25z
IGFsd2F5cworICAgICAgICB3aGVuIHRyaWdnZXJpbmcgYW4gaW5zdGFudCBzY3JvbGwuIFRoaXMg
aXMgaGFuZGxlZCBieSB0aGUgY2FsbHMgdG8gY2FuY2VsQW5pbWF0aW9ucyBpbiB0aGUgYmFzZSBj
bGFzcyBhbmQKKyAgICAgICAgdGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBub24tbmF0aXZl
IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQW5pbWF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6
IFNpbmNlIHRoZSBhbmltYXRpb24gbWlnaHQKKyAgICAgICAgYmUgY2FuY2VsZWQgYXN5bmNocm9u
b3VzbHksIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSBhbmltYXRpb25zIGlmIHRoZSBhbmlt
YXRpb24gaXMgcGVuZGluZyB0byBiZQorICAgICAgICBjYW5jZWxlZC4gRGV0ZWN0IHdoZW4gdGhl
IGFuaW1hdGlvbiBmaW5pc2hlcyBzbyB3ZSBjYW4gcHJvcGVybHkgdXBkYXRlIHRoZSBTY3JvbGxB
bmltYXRvciBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IE5vdyBzdG9wIHRoZSBuYXRpdmUgYW5pbWF0aW9uIGhl
cmUgYXMgd2VsbC4gV2UgYWxzbworICAgICAgICB0cmlnZ2VyIGFuIGFzeW5jaHJvbm91cyBjYWxs
IHRvIF9zdG9wUnVuLCBiZWNhdXNlIGl0IGRvZXMgbm90IHNlZW0gdG8gd29yayB3aGVuIGNhbGxl
ZCBmcm9tIHdpdGhpbgorICAgICAgICBhbiBhbmltYXRpb24gdGljay4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSk6
IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIGFzeW5jaHJvbm91c2x5CisgICAgICAgIHN0b3BzIHRo
ZSBuYXRpdmUgYW5pbWF0aW9uIGlmIGl0cyBzdGF0ZSBpcyBzdGlsbCBjYW5jZWxlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldCk6IFVzZSB0
aGUgbmV3IGVudW0gbmFtZS4KKwogMjAyMS0wNy0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBMb2NhbFNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6
cmVxdWVzdE5vdGlmaWNhdGlvbldoZW5SZWFkeUZvclZpZGVvRGF0YSBob3AgdG8gbWFpbiB0aHJl
YWQgYmVmb3JlIGhvcHBpbmcgdG8gcHJvY2Vzc2luZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAppbmRleCBhN2U5ZjMzZWE2ZWZmY2RhMTJhYjU2YmI4NjE4YzhlYjVlMmNkYTYwLi43
ZjFiYWY4MjI5YjlhZTdhNjY1NDYzODhlN2ZkYzcxNWEwYWIzNjExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCkBAIC0zNzU4LDcgKzM3NTgsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2Nyb2xs
VG9Qb3NpdGlvbldpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0aW9uLCBT
YwogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUoKTsKICAg
ICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAotICAgIGlmIChjdXJyZW50U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVB
bmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKHBvc2l0aW9uICE9IHRoaXMtPnNjcm9sbFBvc2l0
aW9uKCkpCiAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1h
dGlvbihwb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAKaW5kZXggNWRmNTk4N2U4OTgxMjlkM2Q4YTJiZTM1MWNjNzIwMDA0NDRkNWQ2Ni4uZTRlZmNm
MmVmM2MyMWMwOTU1MGE2ODdhNWRkNzBkZDI4MDgzYjVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMTIyLDcgKzEyMiw2IEBAIGJvb2wgU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9p
bnQmIHBvc2l0aW9uCiAgICAgaWYgKGFkanVzdGVkUG9zaXRpb24gPT0gY3VycmVudFBvc2l0aW9u
ICYmIGFkanVzdGVkUG9zaXRpb24gPT0gc2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxQb3NpdGlvbigp
ICYmICFzY3JvbGxhYmxlQXJlYSgpLnNjcm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3NpdGlvbihh
ZGp1c3RlZFBvc2l0aW9uKTsKICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IGFkanVzdGVkUG9zaXRp
b247CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGFkanVzdGVkUG9zaXRpb24gLSBjdXJyZW50
UG9zaXRpb24pOwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwpA
QCAtMTQyLDcgKzE0MSw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25X
aXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uCiAKICAgICBtX3Njcm9s
bEFuaW1hdGlvbi0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9uKTsKICAgICBt
X3Njcm9sbEFuaW1hdGlvbi0+c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKLSAgICBzY3JvbGxhYmxlQXJl
YSgpLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5h
dGl2ZUFuaW1hdGlvbik7CisgICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0
YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pOwogICAgIHJldHVybiB0cnVl
OwogfQogCkBAIC0zNjIsNiArMzYxLDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6Y2FuY2VsQW5p
bWF0aW9ucygpCiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICBt
X3Njcm9sbEFuaW1hdGlvbi0+c3RvcCgpOwogI2VuZGlmCisgICAgc2Nyb2xsYWJsZUFyZWEoKS5z
ZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRp
b24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpjb250ZW50c1Jlc2l6ZWQoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggMGIxYzQwNTYzZThjYmI4MjJh
OWZlYmE0YzBjNDY1ZjhhNTc0YTkzYi4uYjMwMjliZTlkYjk4ZWQwNzk2YTc5OTQyNWFiNDgxN2Q2
NGQwNWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC03MSw3ICs3
MSw3IEBAIGVudW0gU2Nyb2xsTG9naWNhbERpcmVjdGlvbiA6IHVpbnQ4X3QgewogLy8gU2VlOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CiBlbnVtIGNsYXNz
IFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7CiAgICAgTm90SW5BbmltYXRpb24sCi0g
ICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisgICAgSW5BbmltYXRpb24sCiB9OwogCiBlbnVtIGNs
YXNzIEFuaW1hdGVkU2Nyb2xsIDogdWludDhfdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCmluZGV4IDNkMmY2MmVmYjAwMDc1M2M3NjYyNDQyYjc5MzQxMjM1MTQ0NzVlNDYu
LmFjZjA5YzE4ZDM0ODIwNWMzM2ExZGRjMTgxNzFiMDZkZjNiMmNiYWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBTY3JvbGxW
aWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRp
b24sIGNvbnN0IFMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChjdXJyZW50U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRpdmVB
bmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3IoKS5j
YW5jZWxBbmltYXRpb25zKCk7CiAKICAgICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQb3NpdGlv
biA9ICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgJiYgb3B0aW9ucy5jbGFtcGluZyA9PSBTY3JvbGxD
bGFtcGluZzo6Q2xhbXBlZCkgPyBhZGp1c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdlKHNjcm9s
bFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0aW9uOwpAQCAtNTM2LDggKzUzNiw2IEBAIHZvaWQgU2Ny
b2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBTCiAKICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShu
ZXdTY3JvbGxQb3NpdGlvbiwgY3VycmVudFNjcm9sbFR5cGUoKSwgb3B0aW9ucy5jbGFtcGluZykp
CiAgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOwotCi0gICAgc2V0
U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9u
KTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmluZGV4IDRhNWUzZjJlMmY5NmQ2ZTU1OGNm
YTNmZGIxYTcyOWVjZWNiNWI0NGMuLmE3NDY5NmY5NjI1NmI3NzU3MmM5OTNjYmUzMjJkMjE2M2E0
OGQxOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2libGVTY3Jv
bGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKICAgICBib29sIHNjcm9sbGJhcnNDYW5C
ZUFjdGl2ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgbWF5YmVTdG9wQW5pbWF0aW9uQXN5bmNo
cm9ub3VzbHkoKTsKIAogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ+IG1fc2Nyb2xsQW5pbWF0
aW9uSGVscGVyOwpAQCAtMTYwLDYgKzE2MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhdmVT
Y3JvbGxlZFNpbmNlUGFnZUxvYWQ7CiAgICAgYm9vbCBtX25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0
ZTsKICAgICBJbnRSZWN0IG1fdmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0OworICAgIFJ1bkxvb3A6
OlRpbWVyPFNjcm9sbEFuaW1hdG9yTWFjPiBtX2NhbmNlbEFuaW1hdGlvblRpbWVyOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1Njcm9sbEFuaW1hdG9yTWFjLm1tCmluZGV4IDE3YTkxYjUzZjk1NjMxYWUwMThhYzFiYWE2MTFm
N2Q2NzJiZjIyY2IuLmU4YzE3MWYxZmUwYjAwMzZhNWI3MGU3ZjM5NWMyY2QyMzc5ZGJjOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0K
QEAgLTcwNSw2ICs3MDUsNyBAQCBTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMo
U2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogICAgICwgbV9zZW5kQ29udGVudEFyZWFT
Y3JvbGxlZFRpbWVyKCp0aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6OnNlbmRDb250ZW50QXJlYVNj
cm9sbGVkVGltZXJGaXJlZCkKICAgICAsIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZChmYWxz
ZSkKICAgICAsIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlKGZhbHNlKQorICAgICwgbV9jYW5j
ZWxBbmltYXRpb25UaW1lcihSdW5Mb29wOjpjdXJyZW50KCksIHRoaXMsICZTY3JvbGxBbmltYXRv
ck1hYzo6bWF5YmVTdG9wQW5pbWF0aW9uQXN5bmNocm9ub3VzbHkpCiB7CiAgICAgbV9zY3JvbGxB
bmltYXRpb25IZWxwZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxBbmltYXRpb25IZWxw
ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxBbmltYXRvcjp0aGlzXSk7CiAgICAgbV9z
Y3JvbGxBbmltYXRpb25IZWxwZXIgPSBhZG9wdE5TKFtbTlNDbGFzc0Zyb21TdHJpbmcoQCJOU1Nj
cm9sbEFuaW1hdGlvbkhlbHBlciIpIGFsbG9jXSBpbml0V2l0aERlbGVnYXRlOm1fc2Nyb2xsQW5p
bWF0aW9uSGVscGVyRGVsZWdhdGUuZ2V0KCldKTsKQEAgLTc4OSwxNSArNzkwLDEzIEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIG5ld1Bvc2l0CiAgICAgaWYgKCFwb3NpdGlvbkNoYW5nZWQgJiYgIXNjcm9sbGFi
bGVBcmVhKCkuc2Nyb2xsT3JpZ2luQ2hhbmdlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICAvLyBGSVhNRTogVGhpcyBpcyB1c2VkIHByaW1hcmlseSBieSBzbW9vdGggc2Nyb2xsaW5n
LiBUaGlzIHNob3VsZCBpZGVhbGx5IHVzZSBuYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbnMuCi0gICAg
Ly8gU2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3Ci0g
ICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKLSAgICByZXR1cm4gU2Nyb2xs
QW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRoQW5pbWF0aW9uKG5ld1Bvc2l0aW9uKTsKKyAg
ICBzY3JvbGxhYmxlQXJlYSgpLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbkFuaW1hdGlvbik7CisgICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHNjcm9s
bFRvUG9pbnQ6bmV3UG9zaXRpb25dOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIFNjcm9s
bEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9h
dFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgY2xhbXBpbmcpCiB7Ci0gICAgW21fc2Ny
b2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3I6
OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKHBvc2l0aW9uLCBjbGFtcGluZyk7CiB9
CiAKQEAgLTg4MCw3ICs4NzksMTYgQEAgU3RyaW5nIFNjcm9sbEFuaW1hdG9yTWFjOjp2ZXJ0aWNh
bFNjcm9sbGJhclN0YXRlRm9yVGVzdGluZygpIGNvbnN0CiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFj
OjppbW1lZGlhdGVTY3JvbGxUb1Bvc2l0aW9uRm9yU2Nyb2xsQW5pbWF0aW9uKGNvbnN0IEZsb2F0
UG9pbnQmIG5ld1Bvc2l0aW9uKQogewogICAgIEFTU0VSVChtX3Njcm9sbEFuaW1hdGlvbkhlbHBl
cik7CisKKyAgICAvLyBJZiB0aGUgYW5pbWF0aW9uIHdhcyBjYW5jZWxlZCwgYnV0IHRoZSBoZWxw
ZXIgaGFzbid0IHN0b3BwZWQgeWV0LCBkb24ndCBwcm9jZXNzIGFueSB1cGRhdGVzLgorICAgIGlm
IChzY3JvbGxhYmxlQXJlYSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9s
bEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbikKKyAgICAgICAgcmV0dXJuOworCiAgICAg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKG5ld1Bvc2l0
aW9uKTsKKworICAgIC8vIFdlIGFzc3VtZSB0aGF0IHRoZSBhbmltYXRpb24gaGFzIGZpbmlzaGVk
IHdoZW4gdGhlIGN1cnJlbnQgcG9zaXRpb24gb2YgdGhlIGFuaW1hdGlvbiBtYXRjaGVzIHRoZSB0
YXJnZXQuCisgICAgaWYgKEZsb2F0UG9pbnQoW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHRhcmdl
dE9yaWdpbl0pID09IG5ld1Bvc2l0aW9uKQorICAgICAgICBzY3JvbGxhYmxlQXJlYSgpLnNldFNj
cm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7
CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZChjb25z
dCBGbG9hdFNpemUmIGRlbHRhKQpAQCAtMTE5MiwxMiArMTIwMCwyOCBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjpjYW5jZWxBbmltYXRpb25zKCkKICAgICBTY3JvbGxBbmltYXRvcjo6Y2FuY2Vs
QW5pbWF0aW9ucygpOwogICAgIG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZCA9IGZhbHNlOwog
CisgICAgLy8gX3N0b3BSdW4gZG9lc24ndCBzZWVtIHRvIHdvcmsgd2hlbiBjYWxsZWQgZHVyaW5n
IGFuIGFuaW1hdGlvbiB0aWNrLiBGb3IgaW5zdGFuY2UsIHRoaXMgaXMKKyAgICAvLyB0aGUgY2Fz
ZSBpZiBjYW5jZWxBbmltYXRpb25zIGlzIHRyaWdnZXJlZCBkdXJpbmcgdGhlIHNjcm9sbCBldmVu
dCBoYW5kbGVyIGZyb20gSmF2YVNjcmlwdC4KKyAgICAvLyBUaGlzIGNvZGUgc2NoZWR1bGVzIHRo
ZSBhbmltYXRpb24gdG8gY2FuY2VsIGFzeW5jaHJvbm91c2x5IGZyb20gdGhlIG1haW4gbG9vcC4K
KyAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9
PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pIHsKKyAgICAgICAgbV9jYW5jZWxB
bmltYXRpb25UaW1lci5zdGFydE9uZVNob3QoMF9zKTsKKyAgICAgICAgW21fc2Nyb2xsQW5pbWF0
aW9uSGVscGVyIF9zdG9wUnVuXTsKKyAgICB9CisKICAgICBpZiAoc2Nyb2xsYmFyUGFpbnRUaW1l
cklzQWN0aXZlKCkpCiAgICAgICAgIHN0b3BTY3JvbGxiYXJQYWludFRpbWVyKCk7CiAgICAgW21f
aG9yaXpvbnRhbFNjcm9sbGVySW1wRGVsZWdhdGUgY2FuY2VsQW5pbWF0aW9uc107CiAgICAgW21f
dmVydGljYWxTY3JvbGxlckltcERlbGVnYXRlIGNhbmNlbEFuaW1hdGlvbnNdOwogfQogCit2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSgpCit7
CisgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IGFuIGFuaW1hdGlvbiB3YXMgdHJpZ2dlcmVk
IGJldHdlZW4gdGhlIHRpbWUgdGhpcyBjYWxsYmFjayB3YXMgc2NoZWR1bGVkCisgICAgLy8gYW5k
IG5vdy4gSW4gdGhhdCBjYXNlLCBkb24ndCBzdG9wIHRoZSBhbmltYXRpb24uCisgICAgaWYgKHNj
cm9sbGFibGVBcmVhKCkuY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKQorICAgICAgICBbbV9zY3JvbGxBbmltYXRpb25I
ZWxwZXIgX3N0b3BSdW5dOworfQorCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVl
bEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCiB7CiAgICAgTE9HX1dJ
VEhfU1RSRUFNKE92ZXJsYXlTY3JvbGxiYXJzLCBzdHJlYW0gPDwgIlNjcm9sbEFuaW1hdG9yTWFj
ICIgPDwgdGhpcyA8PCAiIHNjcm9sbGFibGVBcmVhICIgPDwgbV9zY3JvbGxhYmxlQXJlYSA8PCAi
IGhhbmRsZVdoZWVsRXZlbnRQaGFzZSAiIDw8IHBoYXNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAppbmRleCA1YmM3
NzJjYzgxNmJjYmYwNjg3ZDI5ZThjOWFhNDA5Mjk1ZDNmMjdmLi44MmI3ZDg1M2IwNzg5ZGQyNGU5
MTllOTkwMzlkYmRlYzA4OWI0NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0yNTYsNyArMjU2LDcgQEAg
Ym9vbCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpyZXF1ZXN0U2Nyb2xsUG9zaXRpb25VcGRh
dGUoY29uc3QgU2Nyb2xsUG9zaXRpb24KIAogdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
OjpzY3JvbGxUb09mZnNldChjb25zdCBTY3JvbGxPZmZzZXQmIHNjcm9sbE9mZnNldCwgY29uc3Qg
U2Nyb2xsUG9zaXRpb25DaGFuZ2VPcHRpb25zJiBvcHRpb25zKQogewotICAgIGlmIChjdXJyZW50
U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25OYXRp
dmVBbmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNj
cm9sbEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0b3Io
KS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAgICBTY3JvbGxPZmZzZXQgY2xhbXBlZFNjcm9sbE9m
ZnNldCA9IG9wdGlvbnMuY2xhbXBpbmcgPT0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQgPyBjbGFt
cFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQpIDogc2Nyb2xsT2Zmc2V0OwpAQCAtMjczLDcgKzI3
Myw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQoY29u
c3QgU2Nyb2xsT2Zmc2V0JiBzY3JvbGxPZmZzZXQsCiAgICAgZWxzZSB7CiAgICAgICAgIGlmICgh
cmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKHNuYXBwZWRQb3NpdGlvbiwgb3B0aW9ucy50eXBl
LCBvcHRpb25zLmNsYW1waW5nKSkKICAgICAgICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKHNuYXBwZWRQb3NpdGlvbiwgb3B0aW9ucy5jbGFtcGluZyk7Ci0gICAgICAgIHNl
dFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlv
bik7CiAgICAgfQogCiAgICAgc2V0Q3VycmVudFNjcm9sbFR5cGUocHJldmlvdXNTY3JvbGxUeXBl
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432928</attachid>
            <date>2021-07-06 07:46:13 -0700</date>
            <delta_ts>2021-07-06 08:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218857-20210706164612.patch</filename>
            <type>text/plain</type>
            <size>15076</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI1YmU2NGJlNjdlYjFm
MDgwY2MzMjgwMDNhYjc5Yzg3ZTBhYzZjOC4uMjgwMGM5ZjAyMTUyZDkyMTVkODM5OTAxNGFjYTQ2
NjdjMmViNjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA2LTI5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbmF0aXZl
IGFuaW1hdGlvbnMgZm9yIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGggb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxNTkxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuYXRpdmUgYW5pbWF0aW9ucyBmb3Igc21vb3RoIHNjcm9sbGlu
ZyBvbiBNYWMuIFRoaXMgZW5zdXJlcyB0aGF0IFNjcm9sbEFuaW1hdG9yTWFjIG5ldmVyCisgICAg
ICAgIHRyaWdnZXJzIGEgbm9uLW5hdGl2ZSBhbmltYXRpb24uIFRoaXMgd2lsbCBiZSB1c2VmdWwg
YmVjYXVzZSBhIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBuZWVkIHRvIHJldGFyZ2V0CisgICAgICAgIGFu
eSBydW5uaW5nIGFuaW1hdGlvbiBhbmQgb25seSBoYXZpbmcgdG8gd29ycnkgYWJvdXQgb25lIHR5
cGUgd2lsbCBtYWtlIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBhbmQgdGhlIGJlaGF2aW9yIGNo
YW5nZXMgYXJlIG5vdCBvYnNlcnZhYmxlCisgICAgICAgIGJ5IHRlc3RzLiBGdW5jdGlvbmFsbHks
IFdlYktpdCBzaG91bGQgYmUgdGhlIHNhbWUsIHBvc3NpYmx5IHdpdGggYSBzbGlnaHRseSBkaWZm
ZXJlbnQKKyAgICAgICAgKG5hdGl2ZSkgYW5pbWF0aW9uIHByb2dyZXNzaW9uLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24gaW5zdGVhZAorICAgICAgICBvZiBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKTogTm8gbG9uZ2VyIGNhbGwgc2V0Q3VycmVudFBvc2l0aW9uIG9uCisgICAgICAg
IHRoZSBub24tbmF0aXZlIGFuaW1hdGlvbiBoZXJlLiBUaGlzIGlzbid0IG5lY2Vzc2FyeSBpZiB3
ZSBhcmUgdXNpbmcgbmF0aXZlIGFuaW1hdGlvbnMgYW5kIGNhbGxpbmcgaXQKKyAgICAgICAgY2Fu
IHRyaWdnZXIgZXh0cmEgZW5kIGFuaW1hdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IHB1dCB0aGUg
U2Nyb2xsQW5pbWF0b3IgaW4gdGhlIHdyb25nIHN0YXRlLiBUaGlzCisgICAgICAgIGlzIGNhbGxl
ZCBmb3IgZXZlcnkgdGljayBvZiBuYXRpdmUgYW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSB0aGUg
bmV3IGVudW0gbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKTogU2V0IHRoZSBwcm9wZXIgc3RhdGUgb2YgdGhlIGFuaW1hdGlvbiBoZXJlLCBy
YXRoZXIgdGhhbgorICAgICAgICBoYXZpbmcgdGhlIGNoaWxkIGNsYXNzZXMgZG8gaXQgd2hlbiBj
YWxsaW5nIGNhbmNlbEFuaW1hdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiZWhhdmlvciB3
aWxsCisgICAgICAgIGFsd2F5cyBiZSB0aGUgc2FtZSB3aGVuIGNhbGxpbmcgY2FuY2VsQW5pbWF0
aW9ucyBhbmQgU2Nyb2xsQW5pbWF0b3Igd2lsbCBoYXZlIGFjY3VyYXRlIHN0YXRlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IENoYW5nZSBJbk5vbk5hdGl2ZUFuaW1hdGlvbiB0
byBJbkFuaW1hdGlvbi4gVGhpcyBzdGF0ZSBjYW4gYmUgc2hhcmVkCisgICAgICAgIGJldHdlZW4g
dGhlIHR3byB0eXBlcyBvZiBhbmltYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24p
OiBIYXZlIHRoZSBiYXNlIGNsYXNzIHNldCB0aGUgcHJvcGVyIGFuaW1hdGlvbiBzdGF0ZQorICAg
ICAgICBpbiBjYW5jZWxBbmltYXRpb25zLiBBbHNvIHVzZSB0aGUgbmV3IGVudW0gbmFtZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkIG5ldyBtZXRob2Qg
ZGVjbGFyYXRpb25zIGFuZCBhZGQgYSBUaW1lciBmb3IgYXN5bmNocm9ub3VzIG1ldGhvZCBjYWxs
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBJbml0aWFs
aXplIHRoZSBuZXcgVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24pOiBBbHdheXMgdXNlIG5hdGl2ZSBhbmltYXRp
b25zIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbik6IE5vIGxvbmdlciBzdG9wIG5hdGl2ZSBhbmltYXRpb25z
IGFsd2F5cworICAgICAgICB3aGVuIHRyaWdnZXJpbmcgYW4gaW5zdGFudCBzY3JvbGwuIFRoaXMg
aXMgaGFuZGxlZCBieSB0aGUgY2FsbHMgdG8gY2FuY2VsQW5pbWF0aW9ucyBpbiB0aGUgYmFzZSBj
bGFzcyBhbmQKKyAgICAgICAgdGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBub24tbmF0aXZl
IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQW5pbWF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6
IFNpbmNlIHRoZSBhbmltYXRpb24gbWlnaHQKKyAgICAgICAgYmUgY2FuY2VsZWQgYXN5bmNocm9u
b3VzbHksIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSBhbmltYXRpb25zIGlmIHRoZSBhbmlt
YXRpb24gaXMgcGVuZGluZyB0byBiZQorICAgICAgICBjYW5jZWxlZC4gRGV0ZWN0IHdoZW4gdGhl
IGFuaW1hdGlvbiBmaW5pc2hlcyBzbyB3ZSBjYW4gcHJvcGVybHkgdXBkYXRlIHRoZSBTY3JvbGxB
bmltYXRvciBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IE5vdyBzdG9wIHRoZSBuYXRpdmUgYW5pbWF0aW9uIGhl
cmUgYXMgd2VsbC4gV2UgYWxzbworICAgICAgICB0cmlnZ2VyIGFuIGFzeW5jaHJvbm91cyBjYWxs
IHRvIF9zdG9wUnVuLCBiZWNhdXNlIGl0IGRvZXMgbm90IHNlZW0gdG8gd29yayB3aGVuIGNhbGxl
ZCBmcm9tIHdpdGhpbgorICAgICAgICBhbiBhbmltYXRpb24gdGljay4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSk6
IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIGFzeW5jaHJvbm91c2x5CisgICAgICAgIHN0b3BzIHRo
ZSBuYXRpdmUgYW5pbWF0aW9uIGlmIGl0cyBzdGF0ZSBpcyBzdGlsbCBjYW5jZWxlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldCk6IFVzZSB0
aGUgbmV3IGVudW0gbmFtZS4KKwogMjAyMS0wNy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2V0IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5
RnJhbWVJbnRlcnZhbCBpbiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBhN2U5ZjMzZWE2ZWZmY2RhMTJhYjU2YmI4NjE4YzhlYjVlMmNk
YTYwLi43ZjFiYWY4MjI5YjlhZTdhNjY1NDYzODhlN2ZkYzcxNWEwYWIzNjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNzU4LDcgKzM3NTgsNyBAQCB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uLCBTYwogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUo
KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAotICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0
b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKHBvc2l0aW9uICE9IHRoaXMtPnNjcm9s
bFBvc2l0aW9uKCkpCiAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb1Bvc2l0aW9uV2l0
aEFuaW1hdGlvbihwb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5jcHAKaW5kZXggNWU4M2ZkYmFlMjdmYjg5ODdmODA5YTg1NDk3NTdhYzA1ODYyMzgwYy4u
ZTI4N2Y5NGM4OTI5MTZlOTJiYTE0ZTkwMTM4YzgwNWYxMzRiZWE0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMTIyLDcgKzEyMiw2IEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHBvc2l0aW9uCiAgICAgaWYgKGFkanVzdGVkUG9zaXRpb24gPT0gY3VycmVudFBv
c2l0aW9uICYmIGFkanVzdGVkUG9zaXRpb24gPT0gc2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxQb3Np
dGlvbigpICYmICFzY3JvbGxhYmxlQXJlYSgpLnNjcm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3Np
dGlvbihhZGp1c3RlZFBvc2l0aW9uKTsKICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IGFkanVzdGVk
UG9zaXRpb247CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGFkanVzdGVkUG9zaXRpb24gLSBj
dXJyZW50UG9zaXRpb24pOwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNl
dCgpOwpAQCAtMTQyLDcgKzE0MSw3IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9z
aXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIG5ld1Bvc2l0aW9uCiAKICAgICBt
X3Njcm9sbEFuaW1hdGlvbi0+c2V0Q3VycmVudFBvc2l0aW9uKG1fY3VycmVudFBvc2l0aW9uKTsK
ICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKLSAgICBzY3JvbGxh
YmxlQXJlYSgpLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJ
bk5vbk5hdGl2ZUFuaW1hdGlvbik7CisgICAgc2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhh
dmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC0zNjksNiArMzY4LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvcjo6Y2Fu
Y2VsQW5pbWF0aW9ucygpCiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
ICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c3RvcCgpOwogI2VuZGlmCisgICAgc2Nyb2xsYWJsZUFy
ZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5B
bmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yOjpjb250ZW50c1Jlc2l6ZWQoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKaW5kZXggMGIxYzQwNTYzZThj
YmI4MjJhOWZlYmE0YzBjNDY1ZjhhNTc0YTkzYi4uYjMwMjliZTlkYjk4ZWQwNzk2YTc5OTQyNWFi
NDgxN2Q2NGQwNWM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
VHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCkBAIC03
MSw3ICs3MSw3IEBAIGVudW0gU2Nyb2xsTG9naWNhbERpcmVjdGlvbiA6IHVpbnQ4X3QgewogLy8g
U2VlOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM2CiBlbnVt
IGNsYXNzIFNjcm9sbEJlaGF2aW9yU3RhdHVzIDogdWludDhfdCB7CiAgICAgTm90SW5BbmltYXRp
b24sCi0gICAgSW5Ob25OYXRpdmVBbmltYXRpb24sCisgICAgSW5BbmltYXRpb24sCiB9OwogCiBl
bnVtIGNsYXNzIEFuaW1hdGVkU2Nyb2xsIDogdWludDhfdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbFZpZXcuY3BwCmluZGV4IDNkMmY2MmVmYjAwMDc1M2M3NjYyNDQyYjc5MzQxMjM1MTQ0
NzVlNDYuLmFjZjA5YzE4ZDM0ODIwNWMzM2ExZGRjMTgxNzFiMDZkZjNiMmNiYWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC01MjcsNyArNTI3LDcgQEAgdm9pZCBT
Y3JvbGxWaWV3OjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xs
UG9zaXRpb24sIGNvbnN0IFMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0
b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAKICAgICBTY3JvbGxQb3NpdGlvbiBuZXdTY3JvbGxQ
b3NpdGlvbiA9ICghZGVsZWdhdGVzU2Nyb2xsaW5nKCkgJiYgb3B0aW9ucy5jbGFtcGluZyA9PSBT
Y3JvbGxDbGFtcGluZzo6Q2xhbXBlZCkgPyBhZGp1c3RTY3JvbGxQb3NpdGlvbldpdGhpblJhbmdl
KHNjcm9sbFBvc2l0aW9uKSA6IHNjcm9sbFBvc2l0aW9uOwpAQCAtNTM2LDggKzUzNiw2IEBAIHZv
aWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBTCiAKICAgICBpZiAoIXJlcXVlc3RTY3JvbGxQb3NpdGlvblVw
ZGF0ZShuZXdTY3JvbGxQb3NpdGlvbiwgY3VycmVudFNjcm9sbFR5cGUoKSwgb3B0aW9ucy5jbGFt
cGluZykpCiAgICAgICAgIHVwZGF0ZVNjcm9sbGJhcnMobmV3U2Nyb2xsUG9zaXRpb24pOwotCi0g
ICAgc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5p
bWF0aW9uKTsKIH0KIAogYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGwoU2Nyb2xsRGlyZWN0aW9uIGRp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCmluZGV4IDRhNWUzZjJlMmY5NmQ2
ZTU1OGNmYTNmZGIxYTcyOWVjZWNiNWI0NGMuLjBkYTZlNjA2ZTI3OTlmNDY5ZjVhYWQ2MDk4YTFi
ZTgzN2ZhODQ5OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxB
bmltYXRvck1hYy5oCkBAIC02Miw2ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZpc2li
bGVTY3JvbGxlclRodW1iUmVjdChjb25zdCBJbnRSZWN0Jik7CiAKICAgICBib29sIHNjcm9sbGJh
cnNDYW5CZUFjdGl2ZSgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgbWF5YmVTdG9wQW5pbWF0aW9u
QXN5bmNocm9ub3VzbHkoKTsKIAogcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8aWQ+IG1fc2Nyb2xs
QW5pbWF0aW9uSGVscGVyOwpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgc2Ny
b2xsKFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwg
ZmxvYXQgbXVsdGlwbGllciwgT3B0aW9uU2V0PFNjcm9sbEJlaGF2aW9yPikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsQ2xhbXBpbmcgPSBTY3JvbGxDbGFtcGluZzo6
Q2xhbXBlZCkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXRhcmdldFJ1bm5pbmdBbmltYXRpb24oY29u
c3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQog
ICAgIGJvb2wgc2hvdWxkRm9yd2FyZFdoZWVsRXZlbnRzVG9QYXJlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JikgY29uc3Q7CkBAIC0xNjAsNiArMTYyLDcgQEAgcHJpdmF0ZToKICAgICBib29s
IG1faGF2ZVNjcm9sbGVkU2luY2VQYWdlTG9hZDsKICAgICBib29sIG1fbmVlZHNTY3JvbGxlclN0
eWxlVXBkYXRlOwogICAgIEludFJlY3QgbV92aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3Q7CisgICAg
UnVuTG9vcDo6VGltZXI8U2Nyb2xsQW5pbWF0b3JNYWM+IG1fY2FuY2VsQW5pbWF0aW9uVGltZXI7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KaW5kZXggMTdhOTFiNTNmOTU2MzFhZTAxOGFj
MWJhYTYxMWY3ZDY3MmJmMjJjYi4uYzk1YjljOGJiNzVlYTBlMmUyOTVmNzI4Nzk2ZGVhNGFkNzY3
YTA2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1h
dG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRv
ck1hYy5tbQpAQCAtNzA1LDYgKzcwNSw3IEBAIFNjcm9sbEFuaW1hdG9yTWFjOjpTY3JvbGxBbmlt
YXRvck1hYyhTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEpCiAgICAgLCBtX3NlbmRDb250
ZW50QXJlYVNjcm9sbGVkVGltZXIoKnRoaXMsICZTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRl
bnRBcmVhU2Nyb2xsZWRUaW1lckZpcmVkKQogICAgICwgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VM
b2FkKGZhbHNlKQogICAgICwgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUoZmFsc2UpCisgICAg
LCBtX2NhbmNlbEFuaW1hdGlvblRpbWVyKFJ1bkxvb3A6OmN1cnJlbnQoKSwgdGhpcywgJlNjcm9s
bEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSkKIHsKICAgICBt
X3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlID0gYWRvcHROUyhbW1dlYlNjcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbEFuaW1hdG9yOnRoaXNdKTsK
ICAgICBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlciA9IGFkb3B0TlMoW1tOU0NsYXNzRnJvbVN0cmlu
ZyhAIk5TU2Nyb2xsQW5pbWF0aW9uSGVscGVyIikgYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6bV9z
Y3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKV0pOwpAQCAtNzg5LDE1ICs3OTAsMTMg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgbmV3UG9zaXQKICAgICBpZiAoIXBvc2l0aW9uQ2hhbmdlZCAmJiAh
c2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxPcmlnaW5DaGFuZ2VkKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIC8vIEZJWE1FOiBUaGlzIGlzIHVzZWQgcHJpbWFyaWx5IGJ5IHNtb290aCBz
Y3JvbGxpbmcuIFRoaXMgc2hvdWxkIGlkZWFsbHkgdXNlIG5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9u
cy4KLSAgICAvLyBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTg4NTcKLSAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX3N0b3BSdW5dOwotICAgIHJldHVy
biBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24obmV3UG9zaXRp
b24pOworICAgIHNjcm9sbGFibGVBcmVhKCkuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xs
QmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9uKTsKKyAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxw
ZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJv
b2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxDbGFtcGluZyBjbGFtcGluZykKIHsKLSAg
ICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX3N0b3BSdW5dOwogICAgIHJldHVybiBTY3JvbGxB
bmltYXRvcjo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24ocG9zaXRpb24sIGNsYW1w
aW5nKTsKIH0KIApAQCAtODIxLDYgKzgyMCwxMiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjph
ZGp1c3RTY3JvbGxQb3NpdGlvblRvQm91bmRzSWZOZWNlc3NhcnkoKQogICAgIG1fc2Nyb2xsYWJs
ZUFyZWEuc2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoY3VycmVudGx5Q29uc3Ry
YWluc1RvQ29udGVudEVkZ2UpOwogfQogCit2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpyZXRhcmdl
dFJ1bm5pbmdBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbmV3UG9zaXRpb24pCit7CisgICAg
QVNTRVJUKHNjcm9sbGFibGVBcmVhKCkuY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0g
U2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9uKTsKKyAgICBbbV9zY3JvbGxBbmltYXRp
b25IZWxwZXIgc2Nyb2xsVG9Qb2ludDpuZXdQb3NpdGlvbl07Cit9CisKIGJvb2wgU2Nyb2xsQW5p
bWF0b3JNYWM6OmlzVXNlclNjcm9sbEluUHJvZ3Jlc3MoKSBjb25zdAogewogICAgIHJldHVybiBt
X3Njcm9sbENvbnRyb2xsZXIuaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpOwpAQCAtODgwLDcgKzg4
NSwxNiBAQCBTdHJpbmcgU2Nyb2xsQW5pbWF0b3JNYWM6OnZlcnRpY2FsU2Nyb2xsYmFyU3RhdGVG
b3JUZXN0aW5nKCkgY29uc3QKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmltbWVkaWF0ZVNjcm9s
bFRvUG9zaXRpb25Gb3JTY3JvbGxBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbmV3UG9zaXRp
b24pCiB7CiAgICAgQVNTRVJUKG1fc2Nyb2xsQW5pbWF0aW9uSGVscGVyKTsKKworICAgIC8vIElm
IHRoZSBhbmltYXRpb24gd2FzIGNhbmNlbGVkLCBidXQgdGhlIGhlbHBlciBoYXNuJ3Qgc3RvcHBl
ZCB5ZXQsIGRvbid0IHByb2Nlc3MgYW55IHVwZGF0ZXMuCisgICAgaWYgKHNjcm9sbGFibGVBcmVh
KCkuY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6
Ok5vdEluQW5pbWF0aW9uKQorICAgICAgICByZXR1cm47CisKICAgICBTY3JvbGxBbmltYXRvcjo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24obmV3UG9zaXRpb24pOworCisgICAgLy8g
V2UgYXNzdW1lIHRoYXQgdGhlIGFuaW1hdGlvbiBoYXMgZmluaXNoZWQgd2hlbiB0aGUgY3VycmVu
dCBwb3NpdGlvbiBvZiB0aGUgYW5pbWF0aW9uIG1hdGNoZXMgdGhlIHRhcmdldC4KKyAgICBpZiAo
RmxvYXRQb2ludChbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgdGFyZ2V0T3JpZ2luXSkgPT0gbmV3
UG9zaXRpb24pCisgICAgICAgIHNjcm9sbGFibGVBcmVhKCkuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0
dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsKIH0KIAogdm9pZCBTY3Jv
bGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKGNvbnN0IEZsb2F0U2l6ZSYgZGVs
dGEpCkBAIC0xMTkyLDEyICsxMjA2LDI4IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNhbmNl
bEFuaW1hdGlvbnMoKQogICAgIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCk7CiAg
ICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKKyAgICAvLyBfc3RvcFJ1
biBkb2Vzbid0IHNlZW0gdG8gd29yayB3aGVuIGNhbGxlZCBkdXJpbmcgYW4gYW5pbWF0aW9uIHRp
Y2suIEZvciBpbnN0YW5jZSwgdGhpcyBpcworICAgIC8vIHRoZSBjYXNlIGlmIGNhbmNlbEFuaW1h
dGlvbnMgaXMgdHJpZ2dlcmVkIGR1cmluZyB0aGUgc2Nyb2xsIGV2ZW50IGhhbmRsZXIgZnJvbSBK
YXZhU2NyaXB0LgorICAgIC8vIFRoaXMgY29kZSBzY2hlZHVsZXMgdGhlIGFuaW1hdGlvbiB0byBj
YW5jZWwgYXN5bmNocm9ub3VzbHkgZnJvbSB0aGUgbWFpbiBsb29wLgorICAgIGlmIChzY3JvbGxh
YmxlQXJlYSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9y
U3RhdHVzOjpJbkFuaW1hdGlvbikgeworICAgICAgICBtX2NhbmNlbEFuaW1hdGlvblRpbWVyLnN0
YXJ0T25lU2hvdCgwX3MpOworICAgICAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIgX3N0b3BS
dW5dOworICAgIH0KKwogICAgIGlmIChzY3JvbGxiYXJQYWludFRpbWVySXNBY3RpdmUoKSkKICAg
ICAgICAgc3RvcFNjcm9sbGJhclBhaW50VGltZXIoKTsKICAgICBbbV9ob3Jpem9udGFsU2Nyb2xs
ZXJJbXBEZWxlZ2F0ZSBjYW5jZWxBbmltYXRpb25zXTsKICAgICBbbV92ZXJ0aWNhbFNjcm9sbGVy
SW1wRGVsZWdhdGUgY2FuY2VsQW5pbWF0aW9uc107CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JN
YWM6Om1heWJlU3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5KCkKK3sKKyAgICAvLyBUaGVyZSdz
IGEgY2hhbmNlIHRoYXQgYW4gYW5pbWF0aW9uIHdhcyB0cmlnZ2VyZWQgYmV0d2VlbiB0aGUgdGlt
ZSB0aGlzIGNhbGxiYWNrIHdhcyBzY2hlZHVsZWQKKyAgICAvLyBhbmQgbm93LiBJbiB0aGF0IGNh
c2UsIGRvbid0IHN0b3AgdGhlIGFuaW1hdGlvbi4KKyAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS5j
dXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90
SW5BbmltYXRpb24pCisgICAgICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07
Cit9CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmhhbmRsZVdoZWVsRXZlbnRQaGFzZShQbGF0
Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkKIHsKICAgICBMT0dfV0lUSF9TVFJFQU0oT3Zlcmxh
eVNjcm9sbGJhcnMsIHN0cmVhbSA8PCAiU2Nyb2xsQW5pbWF0b3JNYWMgIiA8PCB0aGlzIDw8ICIg
c2Nyb2xsYWJsZUFyZWEgIiA8PCBtX3Njcm9sbGFibGVBcmVhIDw8ICIgaGFuZGxlV2hlZWxFdmVu
dFBoYXNlICIgPDwgcGhhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDViYzc3MmNjODE2YmNiZjA2ODdk
MjllOGM5YWE0MDkyOTVkM2YyN2YuLjgxN2E4NjRmOTI0NDkwODUwYTZmMTkwNzU0OTEzNDg2OGMy
YWUxNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTI1Niw3ICsyNTYsNyBAQCBib29sIFJlbmRlckxheWVy
U2Nyb2xsYWJsZUFyZWE6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShjb25zdCBTY3JvbGxQ
b3NpdGlvbgogCiB2b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvT2Zmc2V0
KGNvbnN0IFNjcm9sbE9mZnNldCYgc2Nyb2xsT2Zmc2V0LCBjb25zdCBTY3JvbGxQb3NpdGlvbkNo
YW5nZU9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0
YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAg
ICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6OkluQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlv
bnMoKTsKIAogICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0gb3B0aW9ucy5j
bGFtcGluZyA9PSBTY3JvbGxDbGFtcGluZzo6Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNj
cm9sbE9mZnNldCkgOiBzY3JvbGxPZmZzZXQ7Cg==
</data>
<flag name="commit-queue"
          id="455020"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432931</attachid>
            <date>2021-07-06 08:15:21 -0700</date>
            <delta_ts>2021-09-23 08:00:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218857-20210706171520.patch</filename>
            <type>text/plain</type>
            <size>15456</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI1YmU2NGJlNjdlYjFm
MDgwY2MzMjgwMDNhYjc5Yzg3ZTBhYzZjOC4uMjgwMGM5ZjAyMTUyZDkyMTVkODM5OTAxNGFjYTQ2
NjdjMmViNjdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIxLTA2LTI5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBVc2UgbmF0aXZl
IGFuaW1hdGlvbnMgZm9yIHNjcm9sbC1iZWhhdmlvcjpzbW9vdGggb24gTWFjCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcxNTkxOTE4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuYXRpdmUgYW5pbWF0aW9ucyBmb3Igc21vb3RoIHNjcm9sbGlu
ZyBvbiBNYWMuIFRoaXMgZW5zdXJlcyB0aGF0IFNjcm9sbEFuaW1hdG9yTWFjIG5ldmVyCisgICAg
ICAgIHRyaWdnZXJzIGEgbm9uLW5hdGl2ZSBhbmltYXRpb24uIFRoaXMgd2lsbCBiZSB1c2VmdWwg
YmVjYXVzZSBhIGZ1dHVyZSBjaGFuZ2Ugd2lsbCBuZWVkIHRvIHJldGFyZ2V0CisgICAgICAgIGFu
eSBydW5uaW5nIGFuaW1hdGlvbiBhbmQgb25seSBoYXZpbmcgdG8gd29ycnkgYWJvdXQgb25lIHR5
cGUgd2lsbCBtYWtlIHRoZSBjb2RlIG11Y2ggY2xlYW5lci4KKworICAgICAgICBObyBuZXcgdGVz
dHMuIFRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBhbmQgdGhlIGJlaGF2aW9yIGNo
YW5nZXMgYXJlIG5vdCBvYnNlcnZhYmxlCisgICAgICAgIGJ5IHRlc3RzLiBGdW5jdGlvbmFsbHks
IFdlYktpdCBzaG91bGQgYmUgdGhlIHNhbWUsIHBvc3NpYmx5IHdpdGggYSBzbGlnaHRseSBkaWZm
ZXJlbnQKKyAgICAgICAgKG5hdGl2ZSkgYW5pbWF0aW9uIHByb2dyZXNzaW9uLgorCisgICAgICAg
ICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3Jv
bGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24gaW5zdGVhZAorICAgICAgICBvZiBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24uCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0
QW5pbWF0aW9uKTogTm8gbG9uZ2VyIGNhbGwgc2V0Q3VycmVudFBvc2l0aW9uIG9uCisgICAgICAg
IHRoZSBub24tbmF0aXZlIGFuaW1hdGlvbiBoZXJlLiBUaGlzIGlzbid0IG5lY2Vzc2FyeSBpZiB3
ZSBhcmUgdXNpbmcgbmF0aXZlIGFuaW1hdGlvbnMgYW5kIGNhbGxpbmcgaXQKKyAgICAgICAgY2Fu
IHRyaWdnZXIgZXh0cmEgZW5kIGFuaW1hdGlvbiBldmVudHMsIHdoaWNoIG1pZ2h0IHB1dCB0aGUg
U2Nyb2xsQW5pbWF0b3IgaW4gdGhlIHdyb25nIHN0YXRlLiBUaGlzCisgICAgICAgIGlzIGNhbGxl
ZCBmb3IgZXZlcnkgdGljayBvZiBuYXRpdmUgYW5pbWF0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbik6IFVzZSB0aGUg
bmV3IGVudW0gbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpjYW5jZWxB
bmltYXRpb25zKTogU2V0IHRoZSBwcm9wZXIgc3RhdGUgb2YgdGhlIGFuaW1hdGlvbiBoZXJlLCBy
YXRoZXIgdGhhbgorICAgICAgICBoYXZpbmcgdGhlIGNoaWxkIGNsYXNzZXMgZG8gaXQgd2hlbiBj
YWxsaW5nIGNhbmNlbEFuaW1hdGlvbnMuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBiZWhhdmlvciB3
aWxsCisgICAgICAgIGFsd2F5cyBiZSB0aGUgc2FtZSB3aGVuIGNhbGxpbmcgY2FuY2VsQW5pbWF0
aW9ucyBhbmQgU2Nyb2xsQW5pbWF0b3Igd2lsbCBoYXZlIGFjY3VyYXRlIHN0YXRlLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbFR5cGVzLmg6IENoYW5nZSBJbk5vbk5hdGl2ZUFuaW1hdGlvbiB0
byBJbkFuaW1hdGlvbi4gVGhpcyBzdGF0ZSBjYW4gYmUgc2hhcmVkCisgICAgICAgIGJldHdlZW4g
dGhlIHR3byB0eXBlcyBvZiBhbmltYXRpb25zLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2V0U2Nyb2xsUG9zaXRpb24p
OiBIYXZlIHRoZSBiYXNlIGNsYXNzIHNldCB0aGUgcHJvcGVyIGFuaW1hdGlvbiBzdGF0ZQorICAg
ICAgICBpbiBjYW5jZWxBbmltYXRpb25zLiBBbHNvIHVzZSB0aGUgbmV3IGVudW0gbmFtZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDogQWRkIG5ldyBtZXRob2Qg
ZGVjbGFyYXRpb25zIGFuZCBhZGQgYSBUaW1lciBmb3IgYXN5bmNocm9ub3VzIG1ldGhvZCBjYWxs
cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xsQW5pbWF0b3JNYWMpOiBJbml0aWFs
aXplIHRoZSBuZXcgVGltZXIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24pOiBBbHdheXMgdXNlIG5hdGl2ZSBhbmltYXRp
b25zIG5vdy4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbik6IE5vIGxvbmdlciBzdG9wIG5hdGl2ZSBhbmltYXRpb25z
IGFsd2F5cworICAgICAgICB3aGVuIHRyaWdnZXJpbmcgYW4gaW5zdGFudCBzY3JvbGwuIFRoaXMg
aXMgaGFuZGxlZCBieSB0aGUgY2FsbHMgdG8gY2FuY2VsQW5pbWF0aW9ucyBpbiB0aGUgYmFzZSBj
bGFzcyBhbmQKKyAgICAgICAgdGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBub24tbmF0aXZl
IGFuaW1hdGlvbnMgaW4gU2Nyb2xsQW5pbWF0b3IuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxB
bmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9sbEFuaW1hdGlvbik6
IFNpbmNlIHRoZSBhbmltYXRpb24gbWlnaHQKKyAgICAgICAgYmUgY2FuY2VsZWQgYXN5bmNocm9u
b3VzbHksIGVuc3VyZSB0aGF0IHdlIGRvbid0IHVwZGF0ZSBhbmltYXRpb25zIGlmIHRoZSBhbmlt
YXRpb24gaXMgcGVuZGluZyB0byBiZQorICAgICAgICBjYW5jZWxlZC4gRGV0ZWN0IHdoZW4gdGhl
IGFuaW1hdGlvbiBmaW5pc2hlcyBzbyB3ZSBjYW4gcHJvcGVybHkgdXBkYXRlIHRoZSBTY3JvbGxB
bmltYXRvciBhbmltYXRpb24gc3RhdGUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6Y2FuY2VsQW5pbWF0aW9ucyk6IE5vdyBzdG9wIHRoZSBuYXRpdmUgYW5pbWF0aW9uIGhl
cmUgYXMgd2VsbC4gV2UgYWxzbworICAgICAgICB0cmlnZ2VyIGFuIGFzeW5jaHJvbm91cyBjYWxs
IHRvIF9zdG9wUnVuLCBiZWNhdXNlIGl0IGRvZXMgbm90IHNlZW0gdG8gd29yayB3aGVuIGNhbGxl
ZCBmcm9tIHdpdGhpbgorICAgICAgICBhbiBhbmltYXRpb24gdGljay4KKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSk6
IEFkZGVkIHRoaXMgaGVscGVyIHdoaWNoIGFzeW5jaHJvbm91c2x5CisgICAgICAgIHN0b3BzIHRo
ZSBuYXRpdmUgYW5pbWF0aW9uIGlmIGl0cyBzdGF0ZSBpcyBzdGlsbCBjYW5jZWxlZC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb09mZnNldCk6IFVzZSB0
aGUgbmV3IGVudW0gbmFtZS4KKwogMjAyMS0wNy0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgU2V0IGtWVENvbXByZXNzaW9uUHJvcGVydHlLZXlfTWF4S2V5
RnJhbWVJbnRlcnZhbCBpbiBWaWRlb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBhN2U5ZjMzZWE2ZWZmY2RhMTJhYjU2YmI4NjE4YzhlYjVlMmNk
YTYwLi43ZjFiYWY4MjI5YjlhZTdhNjY1NDYzODhlN2ZkYzcxNWEwYWIzNjExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNzU4LDcgKzM3NTgsNyBAQCB2b2lkIEZyYW1lVmlldzo6
c2Nyb2xsVG9Qb3NpdGlvbldpdGhBbmltYXRpb24oY29uc3QgU2Nyb2xsUG9zaXRpb24mIHBvc2l0
aW9uLCBTYwogICAgIGF1dG8gcHJldmlvdXNTY3JvbGxUeXBlID0gY3VycmVudFNjcm9sbFR5cGUo
KTsKICAgICBzZXRDdXJyZW50U2Nyb2xsVHlwZShzY3JvbGxUeXBlKTsKIAotICAgIGlmIChjdXJy
ZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5Ob25O
YXRpdmVBbmltYXRpb24pCisgICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09
IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbikKICAgICAgICAgc2Nyb2xsQW5pbWF0
b3IoKS5jYW5jZWxBbmltYXRpb25zKCk7CiAgICAgaWYgKHBvc2l0aW9uICE9IHRoaXMtPnNjcm9s
bFBvc2l0aW9uKCkpCiAgICAgICAgIFNjcm9sbGFibGVBcmVhOjpzY3JvbGxUb1Bvc2l0aW9uV2l0
aEFuaW1hdGlvbihwb3NpdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5jcHAKaW5kZXggNWU4M2ZkYmFlMjdmYjg5ODdmODA5YTg1NDk3NTdhYzA1ODYyMzgwYy4u
OTBjZGQzMDQ1ZjI5NDNhYWU1N2Q5YjNhZTk0YjJlNjM3ZjRjOTAzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtMTIyLDcgKzEyMiw2IEBAIGJvb2wg
U2Nyb2xsQW5pbWF0b3I6OnNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmIHBvc2l0aW9uCiAgICAgaWYgKGFkanVzdGVkUG9zaXRpb24gPT0gY3VycmVudFBv
c2l0aW9uICYmIGFkanVzdGVkUG9zaXRpb24gPT0gc2Nyb2xsYWJsZUFyZWEoKS5zY3JvbGxQb3Np
dGlvbigpICYmICFzY3JvbGxhYmxlQXJlYSgpLnNjcm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9zY3JvbGxBbmltYXRpb24tPnNldEN1cnJlbnRQb3Np
dGlvbihhZGp1c3RlZFBvc2l0aW9uKTsKICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IGFkanVzdGVk
UG9zaXRpb247CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGFkanVzdGVkUG9zaXRpb24gLSBj
dXJyZW50UG9zaXRpb24pOwogICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNl
dCgpOwpAQCAtMTQyLDEzICsxNDEsMTMgQEAgYm9vbCBTY3JvbGxBbmltYXRvcjo6c2Nyb2xsVG9Q
b3NpdGlvbldpdGhBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgbmV3UG9zaXRpb24KIAogICAg
IG1fc2Nyb2xsQW5pbWF0aW9uLT5zZXRDdXJyZW50UG9zaXRpb24obV9jdXJyZW50UG9zaXRpb24p
OwogICAgIG1fc2Nyb2xsQW5pbWF0aW9uLT5zY3JvbGwobmV3UG9zaXRpb24pOwotICAgIHNjcm9s
bGFibGVBcmVhKCkuc2V0U2Nyb2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6
OkluTm9uTmF0aXZlQW5pbWF0aW9uKTsKKyAgICBzY3JvbGxhYmxlQXJlYSgpLnNldFNjcm9sbEJl
aGF2aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbkFuaW1hdGlvbik7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3I6OnJldGFyZ2V0UnVubmluZ0FuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKIHsKLSAgICBBU1NFUlQoc2Nyb2xs
YWJsZUFyZWEoKS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlv
clN0YXR1czo6SW5Ob25OYXRpdmVBbmltYXRpb24pOworICAgIEFTU0VSVChzY3JvbGxhYmxlQXJl
YSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlvclN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVz
OjpJbkFuaW1hdGlvbik7CiAgICAgQVNTRVJUKG1fc2Nyb2xsQW5pbWF0aW9uLT5pc0FjdGl2ZSgp
KTsKICAgICBtX3Njcm9sbEFuaW1hdGlvbi0+c2Nyb2xsKG5ld1Bvc2l0aW9uKTsKIH0KQEAgLTM2
OSw2ICszNjgsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpjYW5jZWxBbmltYXRpb25zKCkKICNp
ZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIG1fc2Nyb2xsQW5pbWF0
aW9uLT5zdG9wKCk7CiAjZW5kaWYKKyAgICBzY3JvbGxhYmxlQXJlYSgpLnNldFNjcm9sbEJlaGF2
aW9yU3RhdHVzKFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CiB9CiAKIHZv
aWQgU2Nyb2xsQW5pbWF0b3I6OmNvbnRlbnRzUmVzaXplZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVHlwZXMuaAppbmRleCAwYjFjNDA1NjNlOGNiYjgyMmE5ZmViYTRjMGM0NjVm
OGE1NzRhOTNiLi5iMzAyOWJlOWRiOThlZDA3OTZhNzk5NDI1YWI0ODE3ZDY0ZDA1YzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxUeXBlcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFR5cGVzLmgKQEAgLTcxLDcgKzcxLDcgQEAgZW51bSBT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uIDogdWludDhfdCB7CiAvLyBTZWU6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzYKIGVudW0gY2xhc3MgU2Nyb2xsQmVoYXZp
b3JTdGF0dXMgOiB1aW50OF90IHsKICAgICBOb3RJbkFuaW1hdGlvbiwKLSAgICBJbk5vbk5hdGl2
ZUFuaW1hdGlvbiwKKyAgICBJbkFuaW1hdGlvbiwKIH07CiAKIGVudW0gY2xhc3MgQW5pbWF0ZWRT
Y3JvbGwgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5k
ZXggM2QyZjYyZWZiMDAwNzUzYzc2NjI0NDJiNzkzNDEyMzUxNDQ3NWU0Ni4uYWNmMDljMThkMzQ4
MjA1YzMzYTFkZGMxODE3MWIwNmRmM2IyY2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5jcHAKQEAgLTUyNyw3ICs1MjcsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uJiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgUwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGN1cnJlbnRTY3JvbGxCZWhhdmlvclN0
YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpJbk5vbk5hdGl2ZUFuaW1hdGlvbikKKyAg
ICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0
dXM6OkluQW5pbWF0aW9uKQogICAgICAgICBzY3JvbGxBbmltYXRvcigpLmNhbmNlbEFuaW1hdGlv
bnMoKTsKIAogICAgIFNjcm9sbFBvc2l0aW9uIG5ld1Njcm9sbFBvc2l0aW9uID0gKCFkZWxlZ2F0
ZXNTY3JvbGxpbmcoKSAmJiBvcHRpb25zLmNsYW1waW5nID09IFNjcm9sbENsYW1waW5nOjpDbGFt
cGVkKSA/IGFkanVzdFNjcm9sbFBvc2l0aW9uV2l0aGluUmFuZ2Uoc2Nyb2xsUG9zaXRpb24pIDog
c2Nyb2xsUG9zaXRpb247CkBAIC01MzYsOCArNTM2LDYgQEAgdm9pZCBTY3JvbGxWaWV3OjpzZXRT
Y3JvbGxQb3NpdGlvbihjb25zdCBTY3JvbGxQb3NpdGlvbiYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0
IFMKIAogICAgIGlmICghcmVxdWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKG5ld1Njcm9sbFBvc2l0
aW9uLCBjdXJyZW50U2Nyb2xsVHlwZSgpLCBvcHRpb25zLmNsYW1waW5nKSkKICAgICAgICAgdXBk
YXRlU2Nyb2xsYmFycyhuZXdTY3JvbGxQb3NpdGlvbik7Ci0KLSAgICBzZXRTY3JvbGxCZWhhdmlv
clN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiBib29s
IFNjcm9sbFZpZXc6OnNjcm9sbChTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLmgKaW5kZXggNGE1ZTNmMmUyZjk2ZDZlNTU4Y2ZhM2ZkYjFhNzI5ZWNl
Y2I1YjQ0Yy4uMGRhNmU2MDZlMjc5OWY0NjlmNWFhZDYwOThhMWJlODM3ZmE4NDk5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgKQEAgLTYy
LDYgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0
KGNvbnN0IEludFJlY3QmKTsKIAogICAgIGJvb2wgc2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBtYXliZVN0b3BBbmltYXRpb25Bc3luY2hyb25vdXNseSgpOwog
CiBwcml2YXRlOgogICAgIFJldGFpblB0cjxpZD4gbV9zY3JvbGxBbmltYXRpb25IZWxwZXI7CkBA
IC04Miw2ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50
YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBP
cHRpb25TZXQ8U2Nyb2xsQmVoYXZpb3I+KSBvdmVycmlkZTsKICAgICBib29sIHNjcm9sbFRvUG9z
aXRpb25XaXRoQW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICBib29s
IHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0
aW9uLCBTY3JvbGxDbGFtcGluZyA9IFNjcm9sbENsYW1waW5nOjpDbGFtcGVkKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJldGFyZ2V0UnVubmluZ0FuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50Jikgb3Zl
cnJpZGU7CiAKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgYm9vbCBzaG91bGRGb3J3
YXJkV2hlZWxFdmVudHNUb1BhcmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdDsK
QEAgLTE2MCw2ICsxNjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXZlU2Nyb2xsZWRTaW5j
ZVBhZ2VMb2FkOwogICAgIGJvb2wgbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGU7CiAgICAgSW50
UmVjdCBtX3Zpc2libGVTY3JvbGxlclRodW1iUmVjdDsKKyAgICBSdW5Mb29wOjpUaW1lcjxTY3Jv
bGxBbmltYXRvck1hYz4gbV9jYW5jZWxBbmltYXRpb25UaW1lcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3Jv
bGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmlt
YXRvck1hYy5tbQppbmRleCAxN2E5MWI1M2Y5NTYzMWFlMDE4YWMxYmFhNjExZjdkNjcyYmYyMmNi
Li5jOTViOWM4YmI3NWVhMGUyZTI5NWY3Mjg3OTZkZWE0YWQ3NjdhMDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCkBAIC03MDUsNiAr
NzA1LDcgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVB
cmVhJiBzY3JvbGxhYmxlQXJlYSkKICAgICAsIG1fc2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1l
cigqdGhpcywgJlNjcm9sbEFuaW1hdG9yTWFjOjpzZW5kQ29udGVudEFyZWFTY3JvbGxlZFRpbWVy
RmlyZWQpCiAgICAgLCBtX2hhdmVTY3JvbGxlZFNpbmNlUGFnZUxvYWQoZmFsc2UpCiAgICAgLCBt
X25lZWRzU2Nyb2xsZXJTdHlsZVVwZGF0ZShmYWxzZSkKKyAgICAsIG1fY2FuY2VsQW5pbWF0aW9u
VGltZXIoUnVuTG9vcDo6Y3VycmVudCgpLCB0aGlzLCAmU2Nyb2xsQW5pbWF0b3JNYWM6Om1heWJl
U3RvcEFuaW1hdGlvbkFzeW5jaHJvbm91c2x5KQogewogICAgIG1fc2Nyb2xsQW5pbWF0aW9uSGVs
cGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViU2Nyb2xsQW5pbWF0aW9uSGVscGVyRGVsZWdhdGUg
YWxsb2NdIGluaXRXaXRoU2Nyb2xsQW5pbWF0b3I6dGhpc10pOwogICAgIG1fc2Nyb2xsQW5pbWF0
aW9uSGVscGVyID0gYWRvcHROUyhbW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxBbmltYXRp
b25IZWxwZXIiKSBhbGxvY10gaW5pdFdpdGhEZWxlZ2F0ZTptX3Njcm9sbEFuaW1hdGlvbkhlbHBl
ckRlbGVnYXRlLmdldCgpXSk7CkBAIC03ODksMTUgKzc5MCwxMyBAQCBib29sIFNjcm9sbEFuaW1h
dG9yTWFjOjpzY3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBu
ZXdQb3NpdAogICAgIGlmICghcG9zaXRpb25DaGFuZ2VkICYmICFzY3JvbGxhYmxlQXJlYSgpLnNj
cm9sbE9yaWdpbkNoYW5nZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gRklY
TUU6IFRoaXMgaXMgdXNlZCBwcmltYXJpbHkgYnkgc21vb3RoIHNjcm9sbGluZy4gVGhpcyBzaG91
bGQgaWRlYWxseSB1c2UgbmF0aXZlIHNjcm9sbCBhbmltYXRpb25zLgotICAgIC8vIFNlZTogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NwotICAgIFttX3Njcm9s
bEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07Ci0gICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpz
Y3JvbGxUb1Bvc2l0aW9uV2l0aEFuaW1hdGlvbihuZXdQb3NpdGlvbik7CisgICAgc2Nyb2xsYWJs
ZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5B
bmltYXRpb24pOworICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBzY3JvbGxUb1BvaW50Om5l
d1Bvc2l0aW9uXTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBTY3JvbGxBbmltYXRvck1h
Yzo6c2Nyb2xsVG9Qb3NpdGlvbldpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9z
aXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1waW5nKQogewotICAgIFttX3Njcm9sbEFuaW1hdGlv
bkhlbHBlciBfc3RvcFJ1bl07CiAgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bv
c2l0aW9uV2l0aG91dEFuaW1hdGlvbihwb3NpdGlvbiwgY2xhbXBpbmcpOwogfQogCkBAIC04MjEs
NiArODIwLDEyIEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmFkanVzdFNjcm9sbFBvc2l0aW9u
VG9Cb3VuZHNJZk5lY2Vzc2FyeSgpCiAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRDb25zdHJhaW5z
U2Nyb2xsaW5nVG9Db250ZW50RWRnZShjdXJyZW50bHlDb25zdHJhaW5zVG9Db250ZW50RWRnZSk7
CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnJldGFyZ2V0UnVubmluZ0FuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKK3sKKyAgICBBU1NFUlQoc2Nyb2xsYWJsZUFy
ZWEoKS5jdXJyZW50U2Nyb2xsQmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1
czo6SW5BbmltYXRpb24pOworICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBzY3JvbGxUb1Bv
aW50Om5ld1Bvc2l0aW9uXTsKK30KKwogYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6aXNVc2VyU2Ny
b2xsSW5Qcm9ncmVzcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5p
c1VzZXJTY3JvbGxJblByb2dyZXNzKCk7CkBAIC04ODAsNyArODg1LDE2IEBAIFN0cmluZyBTY3Jv
bGxBbmltYXRvck1hYzo6dmVydGljYWxTY3JvbGxiYXJTdGF0ZUZvclRlc3RpbmcoKSBjb25zdAog
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRpYXRlU2Nyb2xsVG9Qb3NpdGlvbkZvclNjcm9s
bEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBuZXdQb3NpdGlvbikKIHsKICAgICBBU1NFUlQo
bV9zY3JvbGxBbmltYXRpb25IZWxwZXIpOworCisgICAgLy8gSWYgdGhlIGFuaW1hdGlvbiB3YXMg
Y2FuY2VsZWQsIGJ1dCB0aGUgaGVscGVyIGhhc24ndCBzdG9wcGVkIHlldCwgZG9uJ3QgcHJvY2Vz
cyBhbnkgdXBkYXRlcy4KKyAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS5jdXJyZW50U2Nyb2xsQmVo
YXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pCisg
ICAgICAgIHJldHVybjsKKwogICAgIFNjcm9sbEFuaW1hdG9yOjpzY3JvbGxUb1Bvc2l0aW9uV2l0
aG91dEFuaW1hdGlvbihuZXdQb3NpdGlvbik7CisKKyAgICAvLyBXZSBhc3N1bWUgdGhhdCB0aGUg
YW5pbWF0aW9uIGhhcyBmaW5pc2hlZCB3aGVuIHRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBh
bmltYXRpb24gbWF0Y2hlcyB0aGUgdGFyZ2V0LgorICAgIGlmIChGbG9hdFBvaW50KFttX3Njcm9s
bEFuaW1hdGlvbkhlbHBlciB0YXJnZXRPcmlnaW5dKSA9PSBuZXdQb3NpdGlvbikKKyAgICAgICAg
c2Nyb2xsYWJsZUFyZWEoKS5zZXRTY3JvbGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0
YXR1czo6Tm90SW5BbmltYXRpb24pOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpub3Rp
ZnlQb3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKQEAgLTExOTIsMTIgKzEy
MDYsMjggQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygpCiAgICAg
U2Nyb2xsQW5pbWF0b3I6OmNhbmNlbEFuaW1hdGlvbnMoKTsKICAgICBtX2hhdmVTY3JvbGxlZFNp
bmNlUGFnZUxvYWQgPSBmYWxzZTsKIAorICAgIC8vIF9zdG9wUnVuIGRvZXNuJ3Qgc2VlbSB0byB3
b3JrIHdoZW4gY2FsbGVkIGR1cmluZyBhbiBhbmltYXRpb24gdGljay4gRm9yIGluc3RhbmNlLCB0
aGlzIGlzCisgICAgLy8gdGhlIGNhc2UgaWYgY2FuY2VsQW5pbWF0aW9ucyBpcyB0cmlnZ2VyZWQg
ZHVyaW5nIHRoZSBzY3JvbGwgZXZlbnQgaGFuZGxlciBmcm9tIEphdmFTY3JpcHQuCisgICAgLy8g
VGhpcyBjb2RlIHNjaGVkdWxlcyB0aGUgYW5pbWF0aW9uIHRvIGNhbmNlbCBhc3luY2hyb25vdXNs
eSBmcm9tIHRoZSBtYWluIGxvb3AuCisgICAgaWYgKHNjcm9sbGFibGVBcmVhKCkuY3VycmVudFNj
cm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVoYXZpb3JTdGF0dXM6OkluQW5pbWF0aW9u
KSB7CisgICAgICAgIG1fY2FuY2VsQW5pbWF0aW9uVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7Cisg
ICAgICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlciBfc3RvcFJ1bl07CisgICAgfQorCiAgICAg
aWYgKHNjcm9sbGJhclBhaW50VGltZXJJc0FjdGl2ZSgpKQogICAgICAgICBzdG9wU2Nyb2xsYmFy
UGFpbnRUaW1lcigpOwogICAgIFttX2hvcml6b250YWxTY3JvbGxlckltcERlbGVnYXRlIGNhbmNl
bEFuaW1hdGlvbnNdOwogICAgIFttX3ZlcnRpY2FsU2Nyb2xsZXJJbXBEZWxlZ2F0ZSBjYW5jZWxB
bmltYXRpb25zXTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bWF5YmVTdG9wQW5pbWF0
aW9uQXN5bmNocm9ub3VzbHkoKQoreworICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCBhbiBh
bmltYXRpb24gd2FzIHRyaWdnZXJlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoaXMgY2FsbGJhY2sgd2Fz
IHNjaGVkdWxlZAorICAgIC8vIGFuZCBub3cuIEluIHRoYXQgY2FzZSwgZG9uJ3Qgc3RvcCB0aGUg
YW5pbWF0aW9uLgorICAgIGlmIChzY3JvbGxhYmxlQXJlYSgpLmN1cnJlbnRTY3JvbGxCZWhhdmlv
clN0YXR1cygpID09IFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbikKKyAgICAg
ICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKK30KKwogdm9pZCBTY3JvbGxB
bmltYXRvck1hYzo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNl
IHBoYXNlKQogewogICAgIExPR19XSVRIX1NUUkVBTShPdmVybGF5U2Nyb2xsYmFycywgc3RyZWFt
IDw8ICJTY3JvbGxBbmltYXRvck1hYyAiIDw8IHRoaXMgPDwgIiBzY3JvbGxhYmxlQXJlYSAiIDw8
IG1fc2Nyb2xsYWJsZUFyZWEgPDwgIiBoYW5kbGVXaGVlbEV2ZW50UGhhc2UgIiA8PCBwaGFzZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYS5jcHAKaW5kZXggNWJjNzcyY2M4MTZiY2JmMDY4N2QyOWU4YzlhYTQwOTI5NWQzZjI3
Zi4uODE3YTg2NGY5MjQ0OTA4NTBhNmYxOTA3NTQ5MTM0ODY4YzJhZTE0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cApAQCAtMjU2LDcgKzI1Niw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6cmVx
dWVzdFNjcm9sbFBvc2l0aW9uVXBkYXRlKGNvbnN0IFNjcm9sbFBvc2l0aW9uCiAKIHZvaWQgUmVu
ZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0
JiBzY3JvbGxPZmZzZXQsIGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hhbmdlT3B0aW9ucyYgb3B0aW9u
cykKIHsKLSAgICBpZiAoY3VycmVudFNjcm9sbEJlaGF2aW9yU3RhdHVzKCkgPT0gU2Nyb2xsQmVo
YXZpb3JTdGF0dXM6OkluTm9uTmF0aXZlQW5pbWF0aW9uKQorICAgIGlmIChjdXJyZW50U2Nyb2xs
QmVoYXZpb3JTdGF0dXMoKSA9PSBTY3JvbGxCZWhhdmlvclN0YXR1czo6SW5BbmltYXRpb24pCiAg
ICAgICAgIHNjcm9sbEFuaW1hdG9yKCkuY2FuY2VsQW5pbWF0aW9ucygpOwogCiAgICAgU2Nyb2xs
T2Zmc2V0IGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBvcHRpb25zLmNsYW1waW5nID09IFNjcm9sbENs
YW1waW5nOjpDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9s
bE9mZnNldDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>