<?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>205876</bug_id>
          
          <creation_ts>2020-01-07 11:45:55 -0800</creation_ts>
          <short_desc>Move allowPlugins to FrameLoader</short_desc>
          <delta_ts>2020-06-01 03:05:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603694</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-07 11:45:55 -0800</bug_when>
    <thetext>Move allowPlugins to Frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603695</commentid>
    <comment_count>1</comment_count>
      <attachid>387008</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-01-07 11:48:59 -0800</bug_when>
    <thetext>Created attachment 387008
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639183</commentid>
    <comment_count>2</comment_count>
      <attachid>395846</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-08 11:40:41 -0700</bug_when>
    <thetext>Created attachment 395846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639802</commentid>
    <comment_count>3</comment_count>
      <attachid>395846</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-09 13:00:28 -0700</bug_when>
    <thetext>Comment on attachment 395846
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        Move allowPlugins to Frame since the FrameLoader
&gt; +        ends up delegating to the setting on the Frame.
&gt; +        This makes for less delegation and less dependency
&gt; +        on FrameLoader.

What I don’t like about this is that we still have a long term plan of cutting the Frame class down to the absolute minimum, with each consideration about frames in a purpose-specific logic. I consider everything in Frame except for the basics to be there only for legacy reasons, and propose that we move it out.

This is just undoing what we did when we created the FrameLoader in the first place. The whole point was to cut the giant Frame class down to size and head in the direction of separate objects with relationships that could be simplified over time.

Seems fine to move this out of SubframeLoader, but not great to move it out of FrameLoader.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640864</commentid>
    <comment_count>4</comment_count>
      <attachid>396275</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-13 07:56:12 -0700</bug_when>
    <thetext>Created attachment 396275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640887</commentid>
    <comment_count>5</comment_count>
      <attachid>396287</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-13 08:33:15 -0700</bug_when>
    <thetext>Created attachment 396287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640945</commentid>
    <comment_count>6</comment_count>
      <attachid>396300</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-13 10:05:46 -0700</bug_when>
    <thetext>Created attachment 396300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641025</commentid>
    <comment_count>7</comment_count>
      <attachid>396300</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-13 12:09:56 -0700</bug_when>
    <thetext>Comment on attachment 396300
Patch

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

This change seems OK, but I think we are lacking in vision about the direction we intend for the loader set of objects.

Long ago I had this concept:

1) Get loading out of Frame itself, moving it to a loader object, which became FrameLoader, to help Frame not be a &quot;god object&quot;.

2) Have the FrameLoader only contain code about loading before we have a specific document loaded, and put the loading of the document be managed by DocumentLoader. One FrameLoader, a succession of DocumentLoader objects. Minimize data members in FrameLoader that keep getting reset as a new document arrives, move those into DocumentLoader.

3) Can’t remember where SubframeLoader came from and what its relationship with FrameLoader and DocumentLoader would be, but perhaps it’s about things that load inside the frame as opposed to the main document in the frame?

Another small mess is that there are things in Frame and FrameLoader (hopefully not in DocumentLoader) that should really only be done for the top level main frame, and not for subframes. A while back I tried to make MainFrame a derived class different from Frame and move things that should only be done for the main frame into MainFrame, and also move things from Page to MainFrame, but that never got far and eventually Chris Dumez removed my MainFrame class.

Again, motion between these classes of functions or data makes more sense when in the context of our overall goals. Something that might make things prettier in the short term might instead be evidence that there is code that should be moving *in* to one of the loader classes rather than code that should be easier to call on the object that is closest at hand.

&gt; Source/WebCore/loader/FrameLoader.h:335
&gt; +    WEBCORE_EXPORT bool allowPlugins();

In Apple’s Cocoa naming guidelines, they try to name functions like this so they are clearly a boolean predicate, and not ambiguously possibly a command to the frame loader saying &quot;you shall allow plug-ins&quot;.

In WebKit we have often followed suit.

That’s why we use named like &quot;shouldAllowPlugins&quot; or &quot;arePluginsEnabled&quot;. And it seems like we could improve the name here.

&gt; Source/WebCore/loader/SubframeLoader.cpp:157
&gt; -    if ((!allowPlugins() &amp;&amp; !MIMETypeRegistry::isApplicationPluginMIMEType(mimeType)))
&gt; +    if ((!m_frame.settings().arePluginsEnabled() &amp;&amp; !MIMETypeRegistry::isApplicationPluginMIMEType(mimeType)))

Is this good? If we are wiling to do the check directly then why do we need an allowPlugins function at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641343</commentid>
    <comment_count>8</comment_count>
      <attachid>396408</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-14 06:22:10 -0700</bug_when>
    <thetext>Created attachment 396408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641356</commentid>
    <comment_count>9</comment_count>
      <attachid>396412</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-14 07:17:03 -0700</bug_when>
    <thetext>Created attachment 396412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641357</commentid>
    <comment_count>10</comment_count>
      <attachid>396300</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-14 07:19:06 -0700</bug_when>
    <thetext>Comment on attachment 396300
Patch

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

&gt;&gt; Source/WebCore/loader/FrameLoader.h:335
&gt;&gt; +    WEBCORE_EXPORT bool allowPlugins();
&gt; 
&gt; In Apple’s Cocoa naming guidelines, they try to name functions like this so they are clearly a boolean predicate, and not ambiguously possibly a command to the frame loader saying &quot;you shall allow plug-ins&quot;.
&gt; 
&gt; In WebKit we have often followed suit.
&gt; 
&gt; That’s why we use named like &quot;shouldAllowPlugins&quot; or &quot;arePluginsEnabled&quot;. And it seems like we could improve the name here.

Makes sense, I think arePluginsEnabled is good here as it asks the Setting with the same name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641359</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-14 07:22:04 -0700</bug_when>
    <thetext>Thanks for the detailed description of the design that went into this! I will attempt to do more patches for FrameLoader/DocumentLoader as it has some overlap with Fetch.

(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 396300 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396300&amp;action=review
&gt; 

&gt; 3) Can’t remember where SubframeLoader came from and what its relationship
&gt; with FrameLoader and DocumentLoader would be, but perhaps it’s about things
&gt; that load inside the frame as opposed to the main document in the frame?

FWIW SubframeLoader.h says:
It handles the higher level logic of loading both subframes and plugins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641372</commentid>
    <comment_count>12</comment_count>
      <attachid>396300</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2020-04-14 08:02:47 -0700</bug_when>
    <thetext>Comment on attachment 396300
Patch

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

&gt;&gt; Source/WebCore/loader/SubframeLoader.cpp:157
&gt;&gt; +    if ((!m_frame.settings().arePluginsEnabled() &amp;&amp; !MIMETypeRegistry::isApplicationPluginMIMEType(mimeType)))
&gt; 
&gt; Is this good? If we are wiling to do the check directly then why do we need an allowPlugins function at all?

It did look stange to me so I simply replaced &amp;&amp; with || and that broke a lot of stuff. So it seems that arePluginsEnabled is enough to stop requesting the plugin, *unless* we deal with an application plugin. I chose a different logic form to hopefully make it more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642597</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-17 00:52:04 -0700</bug_when>
    <thetext>Committed r260239: &lt;https://trac.webkit.org/changeset/260239&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396412.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642598</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-17 00:53:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/61924336&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387008</attachid>
            <date>2020-01-07 11:48:59 -0800</date>
            <delta_ts>2020-04-08 11:40:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200107204857.patch</filename>
            <type>text/plain</type>
            <size>17434</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkwMjhlY2U1ZGZlM2Zi
ODMwYmQwNWQ1OGI0NGIyNmRlZGVjZGU3YS4uNzgzZWQ2OTcxYmZiMmE0Yzg4ZDQ1NmNlZmFmYjZj
NTM0MzM3NDA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTAxLTA3ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lIHNpbmNlIHRoZSBGcmFtZUxvYWRlcgorICAgICAgICBl
bmRzIHVwIGRlbGVnYXRpbmcgdG8gdGhlIHNldHRpbmcgb24gdGhlIEZyYW1lLgorICAgICAgICBU
aGlzIG1ha2VzIGZvciBsZXNzIGRlbGVnYXRpb24gYW5kIGxlc3MgZGVwZW5kZW5jeQorICAgICAg
ICBvbiBGcmFtZUxvYWRlci4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQpOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjphbGxvd1BsdWdpbnMgY29uc3Qp
OgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDoKKyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1pbWVUeXBlOjplbmFibGVkUGx1Z2luIGNvbnN0
KToKKwogMjAyMC0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NDEzMi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NTliODM3MmUxOTk5MDhjNGRkZGE3MjJmMWRiOGQ5NjNmYTg2NmVkNC4uMThmODgwNTQwMDA5NDFh
NTNjNTdhNzdmY2YxMjRjYTNkYWU4OWFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAy
MC0wMS0wNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgYWxs
b3dQbHVnaW5zIHRvIEZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBvcHVsYXRlUGx1Z2luQ2Fj
aGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0
Q29udGVudFR5cGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpjYW5TaG93TUlNRVR5cGUgY29uc3QpOgorCiAyMDIwLTAxLTA3ICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjU0MTMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGM3NGVmYTlm
NzQwM2U5NzYyOGRlMTRhODM5YWUzMzgyNWNhZGYzZjUuLjA5ZTM2ZjFmZGQ4OWEyYzUzMmNmNjky
NTdmY2Y3NmQyZGI3N2UzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAyMC0wMS0wNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92
aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyk6Cisg
ICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX2NhblBy
b3ZpZGVEb2N1bWVudFNvdXJjZV0pOgorCiAyMDIwLTAxLTA3ICBDb21taXQgUXVldWUgIDxjb21t
aXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MjU0MTMyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDE4MDIwMzc4M2M2MmRlYzlk
MmNhN2VjMjIyYWZjODJlNzU0NWE1NmQuLjBkYzFjMzBmZDc1NjZjMWIwMGIxNTI2ZDk3ZWVjNTQ4
OWRlNTc1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMC0wMS0wNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUg
YWxsb3dQbHVnaW5zIHRvIEZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6Y2FuU2hvd01J
TUVUeXBlKToKKwogMjAyMC0wMS0wNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NDEzMi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDllZGMyMGRhNzhmMDIzNDkw
NWI2NjVlZDkyNDg2ZGMwNWMzOTZjMjYuLmE0NTdjMzY2YjliN2ZkMGQ2YjJjNDc2ZTQwOTA5N2Ew
ODhjZjRhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcApAQCAt
NTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5LmgiCiAjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKLSNpbmNsdWRl
ICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0RG9j
dW1lbnQuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudC5oIgpAQCAtMTczLDcgKzE3Miw3IEBAIFJl
ZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KGNvbnN0IFN0cmlu
ZyYgdHlwZSwgRnJhbWUqIGZyYW1lCiAKICAgICAvLyBUaGUgZm9sbG93aW5nIGlzIHRoZSByZWxh
dGl2ZWx5IGNvc3RseSBsb29rdXAgdGhhdCByZXF1aXJlcyBpbml0aWFsaXppbmcgdGhlIHBsdWct
aW4gZGF0YWJhc2UuCiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAg
YXV0byBhbGxvd2VkUGx1Z2luVHlwZXMgPSBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIo
KS5hbGxvd1BsdWdpbnMoKQorICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5UeXBlcyA9IGZyYW1l
LT5hbGxvd1BsdWdpbnMoKQogICAgICAgICAgICAgPyBQbHVnaW5EYXRhOjpBbGxQbHVnaW5zIDog
UGx1Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2luczsKICAgICAgICAgaWYgKGZyYW1lLT5w
YWdlKCktPnBsdWdpbkRhdGEoKS5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZSh0eXBlLCBhbGxv
d2VkUGx1Z2luVHlwZXMpKQogICAgICAgICAgICAgcmV0dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVh
dGUoKmZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAppbmRleCAwYTBj
YjA5ODE3YTRjY2RiYjE1ODE5N2RlNjg5M2ZkZWQ4NTMxZTgxLi45ZWI3NzMyOTg0OTA1ZDNiNWY0
ZjM2OWYyYjQ2YWZjOWI3ZTVmY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcApA
QCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJTaW11
bGF0ZWRDbGljay5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgotI2luY2x1ZGUgIlN1
YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgi
CiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC03NDEsNyArNzQwLDcgQEAgYm9vbCBIVE1MRWxlbWVu
dDo6cmVuZGVyZXJJc05lZWRlZChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfSBlbHNlIGlmIChoYXNUYWdOYW1lKG5vZW1iZWRUYWcpKSB7
CiAgICAgICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAg
ICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1Bs
dWdpbnMoKSkKKyAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5hbGxvd1BsdWdpbnMoKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6
OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAKaW5kZXggZGFhMTQ0ZTk3OTI2ZjkyYzkzYjc3MGM5ZGZlZWRlNzJlMDNiOGRhOS4u
YzcyYmEyOGYyZTdjZDA3MmViNTEyMmMwNjA0MmMyYTMyMjc1OTU2YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTdWJm
cmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVs
ZW1lbnQsIGNvbnN0IFUKICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlucyBhcmUgcGx1Zy1pbnMg
aW1wbGVtZW50ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxlIFF0IHBsdWctaW5zLAog
ICAgIC8vIGFzIG9wcG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNoIGFzIEZsYXNoLiBUaGUg
dXNlciBhZ2VudCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlCiAgICAgLy8gcGVybWl0
dGVkLCByYXRoZXIgdGhhbiBXZWJLaXQuCi0gICAgaWYgKCghYWxsb3dQbHVnaW5zKCkgJiYgIU1J
TUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQor
ICAgIGlmICgoIW1fZnJhbWUuYWxsb3dQbHVnaW5zKCkgJiYgIU1JTUVUeXBlUmVnaXN0cnk6Omlz
QXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBpZiAoIXBsdWdpbklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0yNzks
NyArMjc5LDcgQEAgUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBs
ZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9IGNv
bXBsZXRlVVJMKGJhc2VVUkxTdHJpbmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0Owot
ICAgIGlmIChhbGxvd1BsdWdpbnMoKSkKKyAgICBpZiAobV9mcmFtZS5hbGxvd1BsdWdpbnMoKSkK
ICAgICAgICAgd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVhdGVKYXZhQXBw
bGV0V2lkZ2V0KHNpemUsIGVsZW1lbnQsIGJhc2VVUkwsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVz
KTsKIAogICAgIGxvZ1BsdWdpblJlcXVlc3QobV9mcmFtZS5wYWdlKCksIGVsZW1lbnQuc2Vydmlj
ZVR5cGUoKSwgU3RyaW5nKCksIHdpZGdldCk7CkBAIC0zNzksMTEgKzM3OSw2IEBAIEZyYW1lKiBT
dWJmcmFtZUxvYWRlcjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJF
bGVtZW50LCBjb25zdCBVCiAgICAgcmV0dXJuIGZyYW1lLmdldCgpOwogfQogCi1ib29sIFN1YmZy
YW1lTG9hZGVyOjphbGxvd1BsdWdpbnMoKQotewotICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdz
KCkuYXJlUGx1Z2luc0VuYWJsZWQoKTsKLX0KLQogYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxk
VXNlUGx1Z2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhh
c0ZhbGxiYWNrLCBib29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIo
KS5jbGllbnQoKS5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggY2M3Y2M0MjQzNzc2MTY4Yzhj
ZDFkOTNkN2E1NjNjNzAxYTBkMDY2OC4uZDY2YWU4MjRkMzc3M2Q2Yjk5YjU5NGJmZmRiYjI0MmY5
ODM3MjcwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKQEAgLTYxLDgg
KzYxLDYgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdp
ZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dQbHVnaW5zKCk7Ci0KICAgICBib29sIGNvbnRh
aW5zUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNQbHVnaW5zOyB9CiAgICAgCiAg
ICAgYm9vbCByZXNvdXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCA2ZjQzNGQ5NTgzMmUyNTI3
YWEyMDU5ZTU5MDcxNTRiZGY2NGJlZjYzLi5iYzEwZWY1ZGE4NDA4NGE2YTU2MDA5YjQ1ZmQ3NmU5
YjBlMWRiMTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMTAwMSw2ICsxMDAxLDExIEBAIGJv
b2wgRnJhbWU6Om1heVByZXdhcm1Mb2NhbFN0b3JhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2xv
Y2FsU3RvcmFnZVByZXdhcm1pbmdDb3VudCA8IG1heGxvY2FsU3RvcmFnZVByZXdhcm1pbmdDb3Vu
dDsKIH0KIAorYm9vbCBGcmFtZTo6YWxsb3dQbHVnaW5zKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
c2V0dGluZ3MoKS5hcmVQbHVnaW5zRW5hYmxlZCgpOworfQorCiB2b2lkIEZyYW1lOjpzZWxmT25s
eVJlZigpCiB7CiAgICAgQVNTRVJUKGlzTWFpbkZyYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCmluZGV4
IGRkOTgwMmMwMWNiYmUyZjk0YzllNjdlOWQ2NGVhZWU0MDA5ODkyNzIuLjM4OTU1MzllMWY3ZTY5
MWEwMDU0M2JlNmE4MTk5YTk4YTIyMmM0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKQEAgLTI5NCw2ICsy
OTQsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRQcmV3YXJtTG9jYWxTdG9yYWdlKCk7CiAgICAg
Ym9vbCBtYXlQcmV3YXJtTG9jYWxTdG9yYWdlKCkgY29uc3Q7CiAKKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGFsbG93UGx1Z2lucygpIGNvbnN0OworCiAvLyA9PT09PT09PQogCiAgICAgdm9pZCBz
ZWxmT25seVJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1l
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAx
YjJkNzUyZDJlZDA2NzAyMzc5NjMyZWQ4YWJlMDg0Y2E3MTZmYjgzLi5jMTZkOGNhZjA1MTgxM2Yw
ODk2NzM2ZjI2YTdkOTM2MGYzNzZjZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVU
eXBlLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNpbmNsdWRlICJTdWJmcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtNjcsNyArNjYsNyBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2Ny
aXB0aW9uKCkgY29uc3QKIAogUmVmUHRyPERPTVBsdWdpbj4gRE9NTWltZVR5cGU6OmVuYWJsZWRQ
bHVnaW4oKSBjb25zdAogewotICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8
ICFtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCku
YWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwg
IW1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPE1pbWVDbGFzc0luZm8+IG1pbWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Q
cm92aWRlci5jcHAKaW5kZXggYjM1NzRjYWMwZTYwNmM4ZTA2NjZmYTEwYmQzNGQwMzg3ODM0MTQ3
MS4uMjljZjE0ZWQzMmI2YWRiODc4NWJmMWJkNTRjOWE0MTJkYTIwMGNhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hl
bWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTA4
LDcgKzEwNyw3IEBAIFZlY3RvcjxQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBs
dWdpbkluZm8oUGFnZSYgcGFnZSwgT3B0aW9uYWw8VmVjdG9yCiAgICAgaWYgKG1fY2FjaGVkU3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiAgICAgICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzID0gKm1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKLSAgICByZXR1cm4g
cGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygp
ID8gbV9jYWNoZWRQbHVnaW5zIDogbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnM7CisgICAgcmV0
dXJuIHBhZ2UubWFpbkZyYW1lKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBsdWdpbnMgOiBt
X2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OwogICAgIFVOVVNFRF9QQVJBTShzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyk7CkBAIC0xNTEs
NyArMTUwLDcgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBvcHVsYXRlUGx1Z2luQ2Fj
aGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICAgICAgLy8gQXBwbGljYXRpb24gcGx1
Z2lucyBhcmUgbm90IGFmZmVjdGVkIGJ5IGVuYWJsZVBsdWdpbnMgc2V0dGluZywgc28gd2UgYWx3
YXlzIG5lZWQgdG8gc2NhbiBwbHVnaW5zIHRvIGdldCB0aGVtLgogICAgICAgICBib29sIHNob3Vs
ZFNjYW5QbHVnaW5zID0gdHJ1ZTsKICNlbHNlCi0gICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdp
bnMgPSBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCk7CisgICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdpbnMgPSBwYWdlLm1haW5GcmFtZSgp
LmFsbG93UGx1Z2lucygpOwogI2VuZGlmCiAgICAgICAgIGlmIChzaG91bGRTY2FuUGx1Z2lucykg
ewogICAgICAgICAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGFkMWI4NTM5ZTc1NjlmZTBj
MTg2NWM3Y2RiZmNhYmE4ZjFlOWQ4M2UuLmI4ZWY3YjA2MWZjMzA0YWVhMGNmN2I4OGI4Mjc0NDY2
Yjg2NGFiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODgsNyArODgs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VJRXZlbnRXaXRoS2V5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KQEAgLTE3MDIsNyArMTcwMSw3IEBAIE9i
amVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShj
b25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpJ
bWFnZTsKIAogICAgIGlmIChXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Ci0g
ICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gd2ViRnJhbWUoKS0+Y29yZUZyYW1lKCkt
PmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkKKyAgICAgICAgYXV0byBh
bGxvd2VkUGx1Z2luVHlwZXMgPSB3ZWJGcmFtZSgpLT5jb3JlRnJhbWUoKS0+YWxsb3dQbHVnaW5z
KCkKICAgICAgICAgICAgID8gUGx1Z2luRGF0YTo6QWxsUGx1Z2lucyA6IFBsdWdpbkRhdGE6Ok9u
bHlBcHBsaWNhdGlvblBsdWdpbnM7CiAgICAgICAgIGlmICh3ZWJQYWdlLT5jb3JlUGFnZSgpLT5w
bHVnaW5EYXRhKCkuc3VwcG9ydHNNaW1lVHlwZShtaW1lVHlwZSwgYWxsb3dlZFBsdWdpblR5cGVz
KSkKICAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6UGx1Z0luOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxZTNlZjc3OTRm
MDE3ZjBlNmI4YWQ0NmM5MDIyZmRlMzIzZDA1Yjc5Li40ZWI2YmQxZjdhNzcwMjMzNDhiNjU3ZTI5
Njk1OTgzNmE2NzhlMjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtOTcwLDcgKzk3MCw3IEBAIFJlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FCiAg
ICAgUGx1Z2luUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBwbHVnaW5FbGVtZW50LT5kaXNwbGF5
U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6V2FpdGluZ0ZvclNuYXBzaG90ID8gUGx1Z2lu
UHJvY2Vzc1R5cGVTbmFwc2hvdCA6IFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsOwogI2VuZGlmCiAK
LSAgICBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFmcmFtZS0+Y29yZUZyYW1l
KCktPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBh
bGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMgPSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5hbGxvd1Bs
dWdpbnMoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICB1aW50MzJf
dCBwbHVnaW5Mb2FkUG9saWN5OwpAQCAtNTE4Niw3ICs1MTg2LDcgQEAgYm9vbCBXZWJQYWdlOjpj
YW5QbHVnaW5IYW5kbGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkK
IHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB1aW50MzJfdCBwbHVnaW5M
b2FkUG9saWN5OwotICAgIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIW1fbWFp
bkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdp
bnMoKTsKKyAgICBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFt
ZS0+Y29yZUZyYW1lKCktPmFsbG93UGx1Z2lucygpOwogCiAgICAgdWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuOwogICAgIFN0cmluZyBuZXdNSU1FVHlwZTsKQEAgLTU3MDUsNyArNTcwNSw3IEBA
IGJvb2wgV2ViUGFnZTo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNv
bnN0IEZ1bmN0aW9uPGJvb2woY29uc3QKICAgICBpZiAoIW1pbWVUeXBlLmlzTnVsbCgpICYmIG1f
bWltZVR5cGVzV2l0aEN1c3RvbUNvbnRlbnRQcm92aWRlcnMuY29udGFpbnMobWltZVR5cGUpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5s
b2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpICYmIHBsdWdpbnNTdXBwb3J0
KG1pbWVUeXBlLCBQbHVnaW5EYXRhOjpBbGxQbHVnaW5zKSkKKyAgICBpZiAoY29yZVBhZ2UoKS0+
bWFpbkZyYW1lKCkuYWxsb3dQbHVnaW5zKCkgJiYgcGx1Z2luc1N1cHBvcnQobWltZVR5cGUsIFBs
dWdpbkRhdGE6OkFsbFBsdWdpbnMpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdl
IGNhbiB1c2UgYXBwbGljYXRpb24gcGx1Z2lucyBldmVuIGlmIHBsdWdpbnMgYXJlbid0IGVuYWJs
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KaW5kZXggNTU0NjUxY2FiZjMxYWEwZTUy
NDk5ZmU2ZDBhNDRhZDViYzNmZDM1OC4uOWNkNTU5M2Q4OWNiMjMxYWRmMjk1NmI3MTg4YjY0N2Q5
ODZkYzMxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpAQCAtMzAsNyArMzAsNiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1N1YmZyYW1l
TG9hZGVyLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYzLDcgKzYyLDcgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdp
bkluZm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBw
YWcKIAogCiAgICAgLy8gV2ViS2l0MSBoYXMgbm8gYXBwbGljYXRpb24gcGx1Zy1pbnMsIHNvIHdl
IGRvbid0IG5lZWQgdG8gYWRkIHRoZW0gaGVyZS4KLSAgICBpZiAoIXBhZ2UubWFpbkZyYW1lKCku
bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICBpZiAoIXBhZ2Uu
bWFpbkZyYW1lKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHJldHVybiBwbHVnaW5zOwogCiAg
ICAgZm9yIChXZWJQbHVnaW5QYWNrYWdlICpwbHVnaW4gaW4gW1dlYlBsdWdpbkRhdGFiYXNlIHNo
YXJlZERhdGFiYXNlXS5wbHVnaW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KaW5kZXggMzRmMjgxZDE3MDQ1ZDVkZWQxNDZhMWUzMTlhMmZiNjMwZDBiMmMz
Zi4uYjJhMWJmOTJhNzg2YWJiNmJjYWRkODcwMTRhNGI2ODgxODhlMTFkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05NzYsNyArOTc2LDcgQEAg
c3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRhVVJMKCk7CiAKICAgICBpZiAoV2ViQ29y
ZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpCiAgICAgICAgIHx8
IFdlYkNvcmU6OkltYWdlOjpzdXBwb3J0c1R5cGUobWltZVR5cGUpCi0gICAgICAgIHx8IChwbHVn
aW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBl
LCBXZWJDb3JlOjpQbHVnaW5EYXRhOjpBbGxQbHVnaW5zKSAmJiBmcmFtZS0+bG9hZGVyKCkuc3Vi
ZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICAgICAgfHwgKHBsdWdpbkRhdGEgJiYg
cGx1Z2luRGF0YS0+c3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5cGUobWltZVR5cGUsIFdlYkNvcmU6
OlBsdWdpbkRhdGE6OkFsbFBsdWdpbnMpICYmIGZyYW1lLT5hbGxvd1BsdWdpbnMoKSkKICAgICAg
ICAgfHwgKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5
cGUobWltZVR5cGUsIFdlYkNvcmU6OlBsdWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdpbnMp
KSkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmlu
ZGV4IGViMDg2NjQ4Njc3OTE1NjgxZjNhYzNkYzgwMzgyNGRhMDg5NzFiMGYuLmRjOWE1NGUyZjQz
YjFkMjkxODE3NWEwMzdmMDc5NGZiODFjZjI2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZp
ZXcuY3BwCkBAIC0xNjAsNyArMTYwLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NvY2tldFByb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFt
ZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRy
b2xsZXIuaD4KQEAgLTI5NjcsNyArMjk2Niw3IEBAIEhSRVNVTFQgV2ViVmlldzo6Y2FuU2hvd01J
TUVUeXBlKF9Jbl8gQlNUUiBtaW1lVHlwZSwgX091dF8gQk9PTCogY2FuU2hvdykKIGJvb2wgV2Vi
Vmlldzo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgRnJh
bWUqIGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJhbWUpOwotICAgIGJvb2wgYWxsb3dQbHVnaW5z
ID0gY29yZUZyYW1lICYmIGNvcmVGcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxv
d1BsdWdpbnMoKTsKKyAgICBib29sIGFsbG93UGx1Z2lucyA9IGNvcmVGcmFtZSAmJiBjb3JlRnJh
bWUtPmFsbG93UGx1Z2lucygpOwogCiAgICAgYm9vbCBjYW5TaG93ID0gTUlNRVR5cGVSZWdpc3Ry
eTo6aXNTdXBwb3J0ZWRJbWFnZU1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAgICB8fCBNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395846</attachid>
            <date>2020-04-08 11:40:41 -0700</date>
            <delta_ts>2020-04-13 07:56:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200408204037.patch</filename>
            <type>text/plain</type>
            <size>17587</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzUzM2RhMDUxOGQ2NTA4
MjM5MTAwMzI2NzVkNzU2MGQyZTEyYzQzZC4uZjQ3YTU0NWE0Yjc1NTM5NDA5NjRmMTgxY2VmNGJj
ZTYxZGMzOTU4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTA4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lIHNpbmNlIHRoZSBGcmFtZUxvYWRlcgorICAgICAgICBl
bmRzIHVwIGRlbGVnYXRpbmcgdG8gdGhlIHNldHRpbmcgb24gdGhlIEZyYW1lLgorICAgICAgICBU
aGlzIG1ha2VzIGZvciBsZXNzIGRlbGVnYXRpb24gYW5kIGxlc3MgZGVwZW5kZW5jeQorICAgICAg
ICBvbiBGcmFtZUxvYWRlci4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgor
ICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVs
ZW1lbnQ6OnJlbmRlcmVySXNFdmVyTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRX
aWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmFsbG93UGx1Z2lucyk6
IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmg6CisgICAgICAgICog
cGFnZS9GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZTo6YWxsb3dQbHVnaW5zIGNv
bnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmg6CisgICAgICAgICogcGx1Z2lucy9ET01NaW1l
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlwZTo6ZW5hYmxlZFBsdWdpbiBj
b25zdCk6CisKIDIwMjAtMDQtMDggIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBJbXBvcnQgZmV0Y2gvb3JpZ2luL2Fzc29ydGVkLndpbmRvdy5qcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0
MjBlMWU4M2FkYzNlZjUzZGMzNDJkZGM5ODIwYTA0M2I5MTg3NDI0Li4wYjk3YWQyMWY0NjYwZGNi
ODcxYmVhNmVhM2FlYTIzZmIyODMxNjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIw
LTA0LTA4ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxv
d1BsdWdpbnMgdG8gRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1
Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OmNyZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRs
ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuU2hvd01JTUVUeXBlIGNv
bnN0KToKKwogMjAyMC0wNC0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlZiBXZWJQcm9jZXNzUHJveHkgaW4gTmV0d29ya1Byb2Nlc3NQcm94eTo6dGVybWlu
YXRlVW5yZXNwb25zaXZlU2VydmljZVdvcmtlclByb2Nlc3NlcygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggYWNiMzM5NzUwM2VkNTNmNmI3N2QxZDdmN2YxZjE4ODYzZGNlMTdlNi4u
NWZhMjU4ZTY1MTRiY2UwNjEyZDc2MTQyODE1ZWNkZjFhNGM3M2RhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA0LTA4ICBSb2IgQnVpcyAgPHJi
dWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8gRnJhbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTg3NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkYXB0IHRvIEFQ
SSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlk
ZXIubW06CisgICAgICAgIChXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgtW1dlYkZyYW1lIF9jYW5Qcm92
aWRlRG9jdW1lbnRTb3VyY2VdKToKKwogMjAyMC0wNC0wOCAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSB1c2Ugb2YgWENCdWlsZCBieSBkZWZh
dWx0IGluIEFwcGxlIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IGZhM2E1
NzZlYzVjODA4ZTRjNjAxNzg1ZDc4MWI4ZDBjYWJkMDc3ZGMuLjU1ZjU0MjNjN2QyMGFjODJjZjZk
YjY0MDAwYjFkZTU1Zjg0ZmQ4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMC0wNC0wOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0byBBUEkgY2hhbmdlLgorCisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjpjYW5TaG93TUlNRVR5cGUpOgorCiAy
MDIwLTA0LTAzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgQWRkIFNQSSB0byBtYWtlIFdLVXNlclNjcmlwdHMgd2FpdCBmb3IgYSBub3RpZmlj
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCmluZGV4IDllZGMy
MGRhNzhmMDIzNDkwNWI2NjVlZDkyNDg2ZGMwNWMzOTZjMjYuLmE0NTdjMzY2YjliN2ZkMGQ2YjJj
NDc2ZTQwOTA5N2EwODhjZjRhNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01J
bXBsZW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0
aW9uLmNwcApAQCAtNTEsNyArNTEsNiBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luUG9saWN5
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMu
aCIKLSNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJUZXh0RG9jdW1lbnQuaCIKICNpbmNsdWRlICJYTUxEb2N1bWVudC5oIgpAQCAtMTczLDcg
KzE3Miw3IEBAIFJlZjxEb2N1bWVudD4gRE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50
KGNvbnN0IFN0cmluZyYgdHlwZSwgRnJhbWUqIGZyYW1lCiAKICAgICAvLyBUaGUgZm9sbG93aW5n
IGlzIHRoZSByZWxhdGl2ZWx5IGNvc3RseSBsb29rdXAgdGhhdCByZXF1aXJlcyBpbml0aWFsaXpp
bmcgdGhlIHBsdWctaW4gZGF0YWJhc2UuCiAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkp
IHsKLSAgICAgICAgYXV0byBhbGxvd2VkUGx1Z2luVHlwZXMgPSBmcmFtZS0+bG9hZGVyKCkuc3Vi
ZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKQorICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5U
eXBlcyA9IGZyYW1lLT5hbGxvd1BsdWdpbnMoKQogICAgICAgICAgICAgPyBQbHVnaW5EYXRhOjpB
bGxQbHVnaW5zIDogUGx1Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2luczsKICAgICAgICAg
aWYgKGZyYW1lLT5wYWdlKCktPnBsdWdpbkRhdGEoKS5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlw
ZSh0eXBlLCBhbGxvd2VkUGx1Z2luVHlwZXMpKQogICAgICAgICAgICAgcmV0dXJuIFBsdWdpbkRv
Y3VtZW50OjpjcmVhdGUoKmZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAppbmRleCA0NTc3MmQxM2RkYWU1NTRjY2JjNDcxYjQzYzExZmQ1YTcwODRiMDMzLi4xZjJkMWZh
NGQ5ZTM0Y2UzYjkxNjU0NjEzMzRiNzlmYTExZjJmN2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJTaW11bGF0ZWRDbGljay5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgot
I2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC03NDEsNyArNzQwLDcgQEAgYm9v
bCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc0V2ZXJOZWVkZWQoKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0gZWxzZSBpZiAoaGFzVGFnTmFtZShub2VtYmVkVGFnKSkgewogICAgICAg
ICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgICAgICBpZiAo
ZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkp
CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+YWxsb3dQbHVnaW5zKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIHJldHVybiBTdHlsZWRFbGVtZW50OjpyZW5kZXJl
cklzRXZlck5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
aW5kZXggYmI2N2JkMzM5M2Q5NzZhOTEzMjczMjQyYWJiYTM4ZmI5ZTk2ZmVkYy4uZTNlNDViMTcy
NzQ0OTc0NmJhYmUyMjI2NTVmMDdhZTJlNjhjYzBlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRl
cjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNv
bnN0IFUKICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlucyBhcmUgcGx1Zy1pbnMgaW1wbGVtZW50
ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxlIFF0IHBsdWctaW5zLAogICAgIC8vIGFz
IG9wcG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNoIGFzIEZsYXNoLiBUaGUgdXNlciBhZ2Vu
dCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlCiAgICAgLy8gcGVybWl0dGVkLCByYXRo
ZXIgdGhhbiBXZWJLaXQuCi0gICAgaWYgKCghYWxsb3dQbHVnaW5zKCkgJiYgIU1JTUVUeXBlUmVn
aXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQorICAgIGlmICgo
IW1fZnJhbWUuYWxsb3dQbHVnaW5zKCkgJiYgIU1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRp
b25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAoIXBsdWdpbklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0yNzksNyArMjc5LDcg
QEAgUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQo
Y29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9IGNvbXBsZXRlVVJM
KGJhc2VVUkxTdHJpbmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0OwotICAgIGlmIChh
bGxvd1BsdWdpbnMoKSkKKyAgICBpZiAobV9mcmFtZS5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAg
d2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVhdGVKYXZhQXBwbGV0V2lkZ2V0
KHNpemUsIGVsZW1lbnQsIGJhc2VVUkwsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKTsKIAogICAg
IGxvZ1BsdWdpblJlcXVlc3QobV9mcmFtZS5wYWdlKCksIGVsZW1lbnQuc2VydmljZVR5cGUoKSwg
U3RyaW5nKCksIHdpZGdldCk7CkBAIC0zODIsMTEgKzM4Miw2IEBAIFJlZlB0cjxGcmFtZT4gU3Vi
ZnJhbWVMb2FkZXI6OmxvYWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxl
bWVudCwKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLWJvb2wgU3ViZnJhbWVMb2FkZXI6OmFsbG93
UGx1Z2lucygpCi17Ci0gICAgcmV0dXJuIG1fZnJhbWUuc2V0dGluZ3MoKS5hcmVQbHVnaW5zRW5h
YmxlZCgpOwotfQotCiBib29sIFN1YmZyYW1lTG9hZGVyOjpzaG91bGRVc2VQbHVnaW4oY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgaGFzRmFsbGJhY2ssIGJvb2wm
IHVzZUZhbGxiYWNrKQogewogICAgIGlmIChtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLnNob3Vs
ZEFsd2F5c1VzZVBsdWdpbkRvY3VtZW50KG1pbWVUeXBlKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuaAppbmRleCAyNGY3ZTQzMWQ2NTkxYjcyZTRiMWVjMDAwMjEyYmRjMDg4
MTJmZTZkLi40NjUzZWExNzgyNDQ2ZjFjNGMyZmY4ODcyYmRiOTg2ZDAyYTYyMDY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuaApAQCAtNjEsOCArNjEsNiBAQCBwdWJsaWM6
CiAKICAgICBSZWZQdHI8V2lkZ2V0PiBjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNp
emUmLCBIVE1MQXBwbGV0RWxlbWVudCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBhbGxvd1BsdWdpbnMoKTsKLQogICAgIGJvb2wgY29udGFpbnNQbHVnaW5zKCkgY29u
c3QgeyByZXR1cm4gbV9jb250YWluc1BsdWdpbnM7IH0KICAgICAKICAgICBib29sIHJlc291cmNl
V2lsbFVzZVBsdWdpbihjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGU2MjcxZDdlODYwMjNiY2UwMzE5Mzc1MjgwNWYyMWVl
OTZkMjM1ZmEuLjk0YWFjZjc5ZGI5Y2Q0N2E1MjhmZWEzMzMwNmYzNGEyZmJhMWFlYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWUuY3BwCkBAIC0xMDM3LDYgKzEwMzcsMTEgQEAgYm9vbCBGcmFtZTo6bWF5UHJl
d2FybUxvY2FsU3RvcmFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbG9jYWxTdG9yYWdlUHJld2Fy
bWluZ0NvdW50IDwgbWF4bG9jYWxTdG9yYWdlUHJld2FybWluZ0NvdW50OwogfQogCitib29sIEZy
YW1lOjphbGxvd1BsdWdpbnMoKSBjb25zdAoreworICAgIHJldHVybiBzZXR0aW5ncygpLmFyZVBs
dWdpbnNFbmFibGVkKCk7Cit9CisKIHZvaWQgRnJhbWU6OnNlbGZPbmx5UmVmKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluRnJhbWUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmgKaW5kZXggZWI5N2E2MWZjODhhMGMw
NzY4N2FiNWQyYjEzYTQ1MTcwY2JiM2I1YS4uNjVkYjExNzk3ZmNmYjQ1MTk5Mzc5ZDZlMTI1OGZl
NTdjMmNjYjZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuaApAQCAtMzA1LDYgKzMwNSw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGRpZFByZXdhcm1Mb2NhbFN0b3JhZ2UoKTsKICAgICBib29sIG1heVByZXdhcm1M
b2NhbFN0b3JhZ2UoKSBjb25zdDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dQbHVn
aW5zKCkgY29uc3Q7CisKIC8vID09PT09PT09CiAKICAgICB2b2lkIHNlbGZPbmx5UmVmKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCmluZGV4IDFiMmQ3NTJkMmVkMDY3MDIz
Nzk2MzJlZDhhYmUwODRjYTcxNmZiODMuLmMxNmQ4Y2FmMDUxODEzZjA4OTY3MzZmMjZhN2Q5MzYw
ZjM3NmNmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwCkBAIC0yNCw3
ICsyNCw2IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGx1Z2luRGF0YS5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC02Nyw3ICs2Niw3IEBAIFN0cmluZyBET01NaW1lVHlwZTo6ZGVzY3JpcHRpb24oKSBjb25zdAog
CiBSZWZQdHI8RE9NUGx1Z2luPiBET01NaW1lVHlwZTo6ZW5hYmxlZFBsdWdpbigpIGNvbnN0CiB7
Ci0gICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUtPnBhZ2Uo
KS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkK
KyAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPnBhZ2UoKSB8fCAhbV9mcmFtZS0+cGFnZSgp
LT5tYWluRnJhbWUoKS5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAK
ICAgICBWZWN0b3I8TWltZUNsYXNzSW5mbz4gbWltZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAppbmRl
eCBiMzU3NGNhYzBlNjA2YzhlMDY2NmZhMTBiZDM0ZDAzODc4MzQxNDcxLi4yOWNmMTRlZDMyYjZh
ZGI4Nzg1YmYxYmQ1NGM5YTQxMmRhMjAwY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKQEAgLTM3
LDcgKzM3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdIYXNoLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDgsNyArMTA3LDcgQEAgVmVj
dG9yPFBsdWdpbkluZm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhQYWdlJiBw
YWdlLCBPcHRpb25hbDxWZWN0b3IKICAgICBpZiAobV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVu
dGlmaWVycykKICAgICAgICAgc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMgPSAqbV9jYWNoZWRT
dXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVyczsKIAotICAgIHJldHVybiBwYWdlLm1haW5GcmFtZSgp
LmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBsdWdp
bnMgOiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKKyAgICByZXR1cm4gcGFnZS5tYWluRnJh
bWUoKS5hbGxvd1BsdWdpbnMoKSA/IG1fY2FjaGVkUGx1Z2lucyA6IG1fY2FjaGVkQXBwbGljYXRp
b25QbHVnaW5zOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7CiAgICAgVU5VU0VEX1BB
UkFNKHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKTsKQEAgLTE1MSw3ICsxNTAsNyBAQCB2b2lk
IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cG9wdWxhdGVQbHVnaW5DYWNoZShjb25zdCBXZWJDb3Jl
OjpQYWdlJiBwYWdlKQogICAgICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnaW5zIGFyZSBub3QgYWZm
ZWN0ZWQgYnkgZW5hYmxlUGx1Z2lucyBzZXR0aW5nLCBzbyB3ZSBhbHdheXMgbmVlZCB0byBzY2Fu
IHBsdWdpbnMgdG8gZ2V0IHRoZW0uCiAgICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdpbnMgPSB0
cnVlOwogI2Vsc2UKLSAgICAgICAgYm9vbCBzaG91bGRTY2FuUGx1Z2lucyA9IHBhZ2UubWFpbkZy
YW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKKyAgICAgICAg
Ym9vbCBzaG91bGRTY2FuUGx1Z2lucyA9IHBhZ2UubWFpbkZyYW1lKCkuYWxsb3dQbHVnaW5zKCk7
CiAjZW5kaWYKICAgICAgICAgaWYgKHNob3VsZFNjYW5QbHVnaW5zKSB7CiAgICAgICAgICAgICBI
YW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNDQxODVkNWE3Mjg2NmJmZjY0MDBjZjczOGI1ZTE5ZTNi
MGE1MWY3YS4uZjIzNjIyZmI2MWI1ZjAwODM5NDY1NjUwNTY5MGEyZTZkYWZlYjY3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04Nyw3ICs4Nyw2IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9y
aWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVUlFdmVudFdpdGhLZXlT
dGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2lkZ2V0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aW5kb3dGZWF0dXJlcy5oPgpAQCAtMTcxMyw3ICsxNzEyLDcgQEAgT2JqZWN0Q29udGVudFR5cGUg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFVSTCYgdXJsLCBj
b25zdAogICAgICAgICByZXR1cm4gT2JqZWN0Q29udGVudFR5cGU6OkltYWdlOwogCiAgICAgaWYg
KFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgYXV0byBhbGxv
d2VkUGx1Z2luVHlwZXMgPSB3ZWJGcmFtZSgpLmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFt
ZUxvYWRlcigpLmFsbG93UGx1Z2lucygpCisgICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVz
ID0gd2ViRnJhbWUoKS5jb3JlRnJhbWUoKS0+YWxsb3dQbHVnaW5zKCkKICAgICAgICAgICAgID8g
UGx1Z2luRGF0YTo6QWxsUGx1Z2lucyA6IFBsdWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdp
bnM7CiAgICAgICAgIGlmICh3ZWJQYWdlLT5jb3JlUGFnZSgpLT5wbHVnaW5EYXRhKCkuc3VwcG9y
dHNNaW1lVHlwZShtaW1lVHlwZSwgYWxsb3dlZFBsdWdpblR5cGVzKSkKICAgICAgICAgICAgIHJl
dHVybiBPYmplY3RDb250ZW50VHlwZTo6UGx1Z0luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA0Mzc2ZGU4MDczOGQ5ZThkYzg5ZGEzNjNiYTZi
MWUyZjcwMzU5NGMwLi42MzI4Zjg0YTBjODA3NDdhODI4NmE5NGYyNTEwOGM1YjA2ZjM5YTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTgz
LDcgKzk4Myw3IEBAIFJlZlB0cjxQbHVnaW4+IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJGcmFt
ZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50KiBwbHVnaW5FCiAgICAgUGx1Z2luUHJvY2Vzc1R5
cGUgcHJvY2Vzc1R5cGUgPSBwbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1
Z0luRWxlbWVudDo6V2FpdGluZ0ZvclNuYXBzaG90ID8gUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hv
dCA6IFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsOwogI2VuZGlmCiAKLSAgICBib29sIGFsbG93T25s
eUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnN1YmZy
YW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlv
blBsdWdpbnMgPSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5hbGxvd1BsdWdpbnMoKTsKIAogICAgIHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5
OwpAQCAtNTIyOSw3ICs1MjI5LDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKICAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5OwotICAgIGJv
b2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIW1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKKyAgICBib29sIGFs
bG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmFs
bG93UGx1Z2lucygpOwogCiAgICAgdWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuOwogICAgIFN0
cmluZyBuZXdNSU1FVHlwZTsKQEAgLTU3NzcsNyArNTc3Nyw3IEBAIGJvb2wgV2ViUGFnZTo6Y2Fu
U2hvd01JTUVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IEZ1bmN0aW9uPGJvb2wo
Y29uc3QKICAgICBpZiAoIW1pbWVUeXBlLmlzTnVsbCgpICYmIG1fbWltZVR5cGVzV2l0aEN1c3Rv
bUNvbnRlbnRQcm92aWRlcnMuY29udGFpbnMobWltZVR5cGUpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIGlmIChjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxv
YWRlcigpLmFsbG93UGx1Z2lucygpICYmIHBsdWdpbnNTdXBwb3J0KG1pbWVUeXBlLCBQbHVnaW5E
YXRhOjpBbGxQbHVnaW5zKSkKKyAgICBpZiAoY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuYWxsb3dQ
bHVnaW5zKCkgJiYgcGx1Z2luc1N1cHBvcnQobWltZVR5cGUsIFBsdWdpbkRhdGE6OkFsbFBsdWdp
bnMpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIGNhbiB1c2UgYXBwbGljYXRp
b24gcGx1Z2lucyBldmVuIGlmIHBsdWdpbnMgYXJlbid0IGVuYWJsZWQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlk
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5J
bmZvUHJvdmlkZXIubW0KaW5kZXggNTU0NjUxY2FiZjMxYWEwZTUyNDk5ZmU2ZDBhNDRhZDViYzNm
ZDM1OC4uOWNkNTU5M2Q4OWNiMjMxYWRmMjk1NmI3MTg4YjY0N2Q5ODZkYzMxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5tbQpAQCAtMzAsNyArMzAsNiBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW1wb3J0
IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTYzLDcgKzYyLDcgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+IFdlYlBsdWdpbklu
Zm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWcKIAogCiAgICAgLy8gV2Vi
S2l0MSBoYXMgbm8gYXBwbGljYXRpb24gcGx1Zy1pbnMsIHNvIHdlIGRvbid0IG5lZWQgdG8gYWRk
IHRoZW0gaGVyZS4KLSAgICBpZiAoIXBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVM
b2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICBpZiAoIXBhZ2UubWFpbkZyYW1lKCkuYWxsb3dQ
bHVnaW5zKCkpCiAgICAgICAgIHJldHVybiBwbHVnaW5zOwogCiAgICAgZm9yIChXZWJQbHVnaW5Q
YWNrYWdlICpwbHVnaW4gaW4gW1dlYlBsdWdpbkRhdGFiYXNlIHNoYXJlZERhdGFiYXNlXS5wbHVn
aW5zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXgg
YmQ5YTY3ODFiYmVhMDYxMWUyZTRkNzA0OTYwODZjZWZkNThiMTE0Yi4uYjI4ZjQwZDEzMzA0MDdh
ODQ2MmU1NGFkODdhM2YzZGUyMGUyOGIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05NzUsNyArOTc1LDcgQEAgc3RhdGljIE5TVVJMICpjcmVh
dGVVbmlxdWVXZWJEYXRhVVJMKCk7CiAKICAgICBpZiAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3Ry
eTo6aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpCiAgICAgICAgIHx8IFdlYkNvcmU6OkltYWdlOjpz
dXBwb3J0c1R5cGUobWltZVR5cGUpCi0gICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRh
dGEtPnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5E
YXRhOjpBbGxQbHVnaW5zKSAmJiBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxv
d1BsdWdpbnMoKSkKKyAgICAgICAgfHwgKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9y
dHNXZWJWaXNpYmxlTWltZVR5cGUobWltZVR5cGUsIFdlYkNvcmU6OlBsdWdpbkRhdGE6OkFsbFBs
dWdpbnMpICYmIGZyYW1lLT5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAgfHwgKHBsdWdpbkRhdGEg
JiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5cGUobWltZVR5cGUsIFdlYkNv
cmU6OlBsdWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdpbnMpKSkKICAgICAgICAgcmV0dXJu
IE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDliY2UzNjhhZGJhNDQw
NzkzMWUyNTRkNjE2MDM2MjNlZGE3NTAwZjkuLjVlNzFkOTU2OGFhYmNiZDFkMjhhMzEyOTZjNjQ4
NTk1NWM0OTc2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0xNjIsNyAr
MTYyLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvY2tl
dFByb3ZpZGVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU3lzdGVtSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9y
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudENvbnRyb2xsZXIuaD4KQEAgLTI5NzIs
NyArMjk3MSw3IEBAIEhSRVNVTFQgV2ViVmlldzo6Y2FuU2hvd01JTUVUeXBlKF9Jbl8gQlNUUiBt
aW1lVHlwZSwgX091dF8gQk9PTCogY2FuU2hvdykKIGJvb2wgV2ViVmlldzo6Y2FuU2hvd01JTUVU
eXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNv
cmUobV9tYWluRnJhbWUpOwotICAgIGJvb2wgYWxsb3dQbHVnaW5zID0gY29yZUZyYW1lICYmIGNv
cmVGcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKKyAgICBi
b29sIGFsbG93UGx1Z2lucyA9IGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmFsbG93UGx1Z2lucygp
OwogCiAgICAgYm9vbCBjYW5TaG93ID0gTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRJbWFn
ZU1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAgICB8fCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1N1cHBv
cnRlZE5vbkltYWdlTUlNRVR5cGUobWltZVR5cGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396275</attachid>
            <date>2020-04-13 07:56:12 -0700</date>
            <delta_ts>2020-04-13 08:33:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200413165611.patch</filename>
            <type>text/plain</type>
            <size>18569</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4MzQ1ODhhNTMwNjRi
MzhmOTYyZDIyN2ZmNDYxMTM1NDUwYTdjOS4uYjMzMzU0Mjk2NjIzMmU5OWExZmU4YTcyYTU0M2Jh
Y2I5OWQ3YTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTEzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVyIHRvIHJlZHVjZQorICAgICAgICBw
b2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgbGVzc2VuIGRlcGVuZGVuY3kKKyAgICAgICAgb24gU3Vi
ZnJhbWVMb2FkZXIuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjpyZW5kZXJlcklzRXZlck5lZWRlZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphbGxvd1BsdWdpbnMpOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBwbHVn
aW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1pbWVUeXBlOjplbmFi
bGVkUGx1Z2luIGNvbnN0KToKKwogMjAyMC0wNC0xMyAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0VNRV1bR1N0cmVhbWVyXSByZW1vdmUgbV9jZG1JbnN0
YW5jZSBBU1NFUlQgaW4gY2RtSW5zdGFuY2VEZXRhY2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMjhkMDdmNzQ3
ZDE4MDQ1N2JhOTkxMTlkMjdkYTE0OTMzZDZiMGM0Li40ODk0NmIxMzQyMWJhYjQxM2I0MWQzZGRh
MzhjMzM4MTc0ZWEyMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5m
b1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuU2hvd01JTUVUeXBlIGNvbnN0
KToKKwogMjAyMC0wNC0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IHNvbWUgc3RyYW5nZSB1c2VzIG9mIHN0YXJ0L2VuZE9mRG9jdW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCAxMmZjOWU2MTQxMTg0OTBhNDE2YTMxODIyNTgwNDQ4Njg1
NmE4OTViLi5lNWUyMWU2ZDFmYzZhYTEzMWZlZDE4MzBhNjUxODMzMTk5ZjE4MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMTMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIGFsbG93UGx1Z2lucyB0byBG
cmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBs
dWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1
Z2luSW5mbyk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZV0pOgorCiAyMDIwLTA0LTExICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dLMV0g
VG91Y2ggQmFyIGZsYXNoZXMgd2hlbiB0eXBpbmcgaW4gVmlldG5hbWVzZSBpbiBNYWlsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggODA0YmU1YTQ0YWNmNDRiZjdmNWQ2ZmM2YTUwOWQ3
YzA0YjMwNmRjOC4uYWUzYzRkNDhiOGFkNzBlMDI3NzAxYmIxY2JhNjc0NjU0ZjNiNGQ2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZSk6CisKIDIwMjAtMDQtMDggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBmaW5kIHRvdWNoLWFj
dGlvbiBlbGVtZW50cyBpbnNpZGUgbm9uLWNvbXBvc2l0ZWQgaWZyYW1lcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggOWVkYzIwZGE3OGYwMjM0OTA1YjY2NWVk
OTI0ODZkYzA1YzM5NmMyNi4uMTU5ZWQyZWY3NmI3NzNkNjIxMGQ5MDFlMTc1YTc3ZjYwOTM5ZmNh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC01MSw3ICs1
MSw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgotI2luY2x1ZGUgIlN1YmZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHREb2N1bWVudC5o
IgogI2luY2x1ZGUgIlhNTERvY3VtZW50LmgiCkBAIC0xNzMsNyArMTcyLDcgQEAgUmVmPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0eXBl
LCBGcmFtZSogZnJhbWUKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHJlbGF0aXZlbHkg
Y29zdGx5IGxvb2t1cCB0aGF0IHJlcXVpcmVzIGluaXRpYWxpemluZyB0aGUgcGx1Zy1pbiBkYXRh
YmFzZS4KICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICBhdXRvIGFs
bG93ZWRQbHVnaW5UeXBlcyA9IGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93
UGx1Z2lucygpCisgICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gZnJhbWUtPmxvYWRl
cigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnMg
OiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBpZiAoZnJhbWUt
PnBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKHR5cGUsIGFs
bG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNy
ZWF0ZSgqZnJhbWUsIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDQ1
NzcyZDEzZGRhZTU1NGNjYmM0NzFiNDNjMTFmZDVhNzA4NGIwMzMuLmUxY2I2N2VhZTJlOTM0MDcy
ZWI1YWNhMzRjOGMxNzdjN2Q3YmQwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNp
bXVsYXRlZENsaWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAi
U3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTc0MSw3ICs3NDAsNyBAQCBib29sIEhUTUxFbGVt
ZW50OjpyZW5kZXJlcklzRXZlck5lZWRlZCgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfSBlbHNlIGlmIChoYXNUYWdOYW1lKG5vZW1iZWRUYWcpKSB7CiAgICAgICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICAgICAg
aWYgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVy
SXNFdmVyTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBj
NzE2ZDcyODBmNDYyY2I1NjczNzU3YjRiYTRlM2IyNGFiZWU4ZGUwLi44ZGRhNzNiMGM0NjRiNTYy
MDkzMjU0NWFjNmUwMmQ5MmM0OTZhNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTQxNTYsNiArNDE1NiwxMSBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRTdXBw
cmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS5zZXR0
aW5ncygpLnNob3VsZFN1cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25h
bE5hdmlnYXRpb24oKSAmJiBtX3N0YXRlID09IEZyYW1lU3RhdGVQcm92aXNpb25hbDsKIH0KIAor
Ym9vbCBGcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKCkKK3sKKyAgICByZXR1cm4gbV9mcmFtZS5z
ZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXgg
YjUxNDQ4MWE3ZmVjOWUxMmY3ODQ2YWU5ZjYxOTkxM2FkNjljZWIxOS4uYmEyYTM2ZDVlN2EzYTMw
OWRkZmEzOTg2ZGU5MWY4MGQyMmM2NGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKQEAgLTMzMiw2ICszMzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHN1YnJlc291cmNlIHJl
cXVlc3RzIHRoZSBGcmFtZUxvYWRUeXBlIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IGFuZCBjYW4g
YmUgc2tpcHBlZC4KICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYsIElzTWFpblJlc291cmNlLCBGcmFtZUxvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3Rh
bmRhcmQpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhbGxvd1BsdWdpbnMoKTsKKwogcHJp
dmF0ZToKICAgICBlbnVtIEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5IHsKICAgICAgICAg
TWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBiYjY3YmQzMzkzZDk3NmE5MTMyNzMy
NDJhYmJhMzhmYjllOTZmZWRjLi43MzBmOGE0NmYzNGU0ZDVhNjMzYzUwYmZmOGQxMTc2NDY3OTMy
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVQogICAgIC8vIEFwcGxpY2F0aW9uIHBs
dWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4
YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMgb3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2Rl
IHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhl
eSBhcmUKICAgICAvLyBwZXJtaXR0ZWQsIHJhdGhlciB0aGFuIFdlYktpdC4KLSAgICBpZiAoKCFh
bGxvd1BsdWdpbnMoKSAmJiAhTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1J
TUVUeXBlKG1pbWVUeXBlKSkpCisgICAgaWYgKCghbV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdp
bnNFbmFibGVkKCkgJiYgIU1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1F
VHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXBsdWdp
bklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0yNzksNyArMjc5LDcgQEAgUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9IGNvbXBsZXRlVVJMKGJhc2VVUkxTdHJp
bmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0OwotICAgIGlmIChhbGxvd1BsdWdpbnMo
KSkKKyAgICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCkpCiAgICAg
ICAgIHdpZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlSmF2YUFwcGxldFdp
ZGdldChzaXplLCBlbGVtZW50LCBiYXNlVVJMLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAK
ICAgICBsb2dQbHVnaW5SZXF1ZXN0KG1fZnJhbWUucGFnZSgpLCBlbGVtZW50LnNlcnZpY2VUeXBl
KCksIFN0cmluZygpLCB3aWRnZXQpOwpAQCAtMzgyLDExICszODIsNiBAQCBSZWZQdHI8RnJhbWU+
IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25l
ckVsZW1lbnQsCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjph
bGxvd1BsdWdpbnMoKQotewotICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuYXJlUGx1Z2lu
c0VuYWJsZWQoKTsKLX0KLQogYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBi
b29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggMjRmN2U0MzFkNjU5MWI3MmU0YjFlYzAwMDIxMmJk
YzA4ODEyZmU2ZC4uNDY1M2VhMTc4MjQ0NmYxYzRjMmZmODg3MmJkYjk4NmQwMmE2MjA2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKQEAgLTYxLDggKzYxLDYgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgYWxsb3dQbHVnaW5zKCk7Ci0KICAgICBib29sIGNvbnRhaW5zUGx1Z2lucygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNQbHVnaW5zOyB9CiAgICAgCiAgICAgYm9vbCByZXNv
dXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyZDJl
ZDA2NzAyMzc5NjMyZWQ4YWJlMDg0Y2E3MTZmYjgzLi5iNDU0YTBiM2U5MTdkMjVjYTQyNmJhNjhk
ZjRjOWY5Nzc0ZWEwZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1p
bWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApA
QCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjcsNyArNjYsNyBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKIAogUmVmUHRyPERPTVBsdWdpbj4gRE9NTWltZVR5cGU6OmVuYWJsZWRQbHVnaW4oKSBj
b25zdAogewotICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1l
LT5wYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCkpCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUt
PnBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPE1pbWVDbGFzc0luZm8+IG1pbWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Q
cm92aWRlci5jcHAKaW5kZXggYjM1NzRjYWMwZTYwNmM4ZTA2NjZmYTEwYmQzNGQwMzg3ODM0MTQ3
MS4uMzE0YjdkNWJjM2RiMTg0ZjAxMzJiY2M1OWI2MDE2OTJkYzY1NDBlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hl
bWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTA4
LDcgKzEwNyw3IEBAIFZlY3RvcjxQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBs
dWdpbkluZm8oUGFnZSYgcGFnZSwgT3B0aW9uYWw8VmVjdG9yCiAgICAgaWYgKG1fY2FjaGVkU3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiAgICAgICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzID0gKm1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKLSAgICByZXR1cm4g
cGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygp
ID8gbV9jYWNoZWRQbHVnaW5zIDogbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnM7CisgICAgcmV0
dXJuIHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBs
dWdpbnMgOiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2UpOwogICAgIFVOVVNFRF9QQVJBTShzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyk7
CkBAIC0xNTEsNyArMTUwLDcgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBvcHVsYXRl
UGx1Z2luQ2FjaGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICAgICAgLy8gQXBwbGlj
YXRpb24gcGx1Z2lucyBhcmUgbm90IGFmZmVjdGVkIGJ5IGVuYWJsZVBsdWdpbnMgc2V0dGluZywg
c28gd2UgYWx3YXlzIG5lZWQgdG8gc2NhbiBwbHVnaW5zIHRvIGdldCB0aGVtLgogICAgICAgICBi
b29sIHNob3VsZFNjYW5QbHVnaW5zID0gdHJ1ZTsKICNlbHNlCi0gICAgICAgIGJvb2wgc2hvdWxk
U2NhblBsdWdpbnMgPSBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCku
YWxsb3dQbHVnaW5zKCk7CisgICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdpbnMgPSBwYWdlLm1h
aW5GcmFtZSgpLmxvYWRlcigpLmFsbG93UGx1Z2lucygpOwogI2VuZGlmCiAgICAgICAgIGlmIChz
aG91bGRTY2FuUGx1Z2lucykgewogICAgICAgICAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhh
bmdEZXRlY3Rpb25EaXNhYmxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDQ0MTg1ZDVhNzI4NjZiZmY2NDAwY2Y3MzhiNWUxOWUzYjBhNTFmN2EuLmE5MTQyNDk4NmIyODE5
NTNiNmZkNDNkYzBkZjlmMDk1Yzc0YjNlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtODcsNyArODcsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXR0aW5ncy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VJRXZlbnRXaXRoS2V5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dpZGdldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KQEAgLTE3
MTMsNyArMTcxMiw3IEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpv
YmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAgcmV0dXJuIE9i
amVjdENvbnRlbnRUeXBlOjpJbWFnZTsKIAogICAgIGlmIChXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gd2ViRnJh
bWUoKS5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMo
KQorICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5UeXBlcyA9IHdlYkZyYW1lKCkuY29yZUZyYW1l
KCktPmxvYWRlcigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFs
bFBsdWdpbnMgOiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBp
ZiAod2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzTWltZVR5cGUobWlt
ZVR5cGUsIGFsbG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29u
dGVudFR5cGU6OlBsdWdJbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYTI1MzA4NTNiMGFhMGQxYzVmNjBlY2Y4ZmM1NGVkMGNkZGRlZmRjYy4u
NTMzODNlZjU1ZGZjMTcwNTFlODM3NmY1OWI5MTVkNTNkMTA3YmRlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIyNiw3ICsyMjYsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaD4KQEAgLTk5Niw3ICs5OTUsNyBAQCBSZWZQdHI8
UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0lu
RWxlbWVudCogcGx1Z2luRQogICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1
Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdG
b3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlw
ZU5vcm1hbDsKICNlbmRpZgogCi0gICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMg
PSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1
Z2lucygpOworICAgIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIWZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CiAKICAgICB1aW50NjRfdCBwbHVn
aW5Qcm9jZXNzVG9rZW47CiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKQEAgLTUyNDIs
NyArNTI0MSw3IEBAIGJvb2wgV2ViUGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKLSAgICBib29sIGFsbG93T25s
eUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd09ubHlBcHBs
aWNhdGlvblBsdWdpbnMgPSAhbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5hbGxv
d1BsdWdpbnMoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICBTdHJp
bmcgbmV3TUlNRVR5cGU7CkBAIC01NzkwLDcgKzU3ODksNyBAQCBib29sIFdlYlBhZ2U6OmNhblNo
b3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBGdW5jdGlvbjxib29sKGNv
bnN0CiAgICAgaWYgKCFtaW1lVHlwZS5pc051bGwoKSAmJiBtX21pbWVUeXBlc1dpdGhDdXN0b21D
b250ZW50UHJvdmlkZXJzLmNvbnRhaW5zKG1pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBpZiAoY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2Fk
ZXIoKS5hbGxvd1BsdWdpbnMoKSAmJiBwbHVnaW5zU3VwcG9ydChtaW1lVHlwZSwgUGx1Z2luRGF0
YTo6QWxsUGx1Z2lucykpCisgICAgaWYgKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigp
LmFsbG93UGx1Z2lucygpICYmIHBsdWdpbnNTdXBwb3J0KG1pbWVUeXBlLCBQbHVnaW5EYXRhOjpB
bGxQbHVnaW5zKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBjYW4gdXNlIGFw
cGxpY2F0aW9uIHBsdWdpbnMgZXZlbiBpZiBwbHVnaW5zIGFyZW4ndCBlbmFibGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDU1NDY1MWNhYmYzMWFhMGU1MjQ5OWZlNmQwYTQ0
YWQ1YmMzZmQzNTguLjExNTFjYWZiY2Y2ZTE5OWU5NzMzZGIxM2QzOTdhZWI5MGQ4YjQ3ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdp
bkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC02Myw3ICs2Miw3IEBAIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnCiAKIAogICAg
IC8vIFdlYktpdDEgaGFzIG5vIGFwcGxpY2F0aW9uIHBsdWctaW5zLCBzbyB3ZSBkb24ndCBuZWVk
IHRvIGFkZCB0aGVtIGhlcmUuCi0gICAgaWYgKCFwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1
YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKCFwYWdlLm1haW5GcmFtZSgp
LmxvYWRlcigpLmFsbG93UGx1Z2lucygpKQogICAgICAgICByZXR1cm4gcGx1Z2luczsKIAogICAg
IGZvciAoV2ViUGx1Z2luUGFja2FnZSAqcGx1Z2luIGluIFtXZWJQbHVnaW5EYXRhYmFzZSBzaGFy
ZWREYXRhYmFzZV0ucGx1Z2lucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCmluZGV4IGE4MWMzMGI3YTk5ODYzODM5YjA1MWM0NTlhZmUwNWUwMjc4ZWQ0ZGEu
LmRhNTQxNzVmYTM5YjBiZjFmNjkwOTg3ZTMwODRjODkyYjBkZjNjMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTAzLDcgKzEwMyw2IEBACiAj
aW1wb3J0IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NtYXJ0
UmVwbGFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEl0ZXJhdG9y
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Zp
c2libGVVbml0cy5oPgpAQCAtOTc3LDcgKzk3Niw3IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5p
cXVlV2ViRGF0YVVSTCgpOwogCiAgICAgaWYgKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAgICB8fCBXZWJDb3JlOjpJbWFnZTo6c3VwcG9y
dHNUeXBlKG1pbWVUeXBlKQotICAgICAgICB8fCAocGx1Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5z
dXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1lVHlwZSwgV2ViQ29yZTo6UGx1Z2luRGF0YTo6
QWxsUGx1Z2lucykgJiYgZnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCkpCisgICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2Vi
VmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5EYXRhOjpBbGxQbHVnaW5z
KSAmJiBmcmFtZS0+bG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHx8IChwbHVnaW5E
YXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBX
ZWJDb3JlOjpQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zKSkpCiAgICAgICAgIHJl
dHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5YmNlMzY4YWRi
YTQ0MDc5MzFlMjU0ZDYxNjAzNjIzZWRhNzUwMGY5Li5kYTczNjZkODUxZTcxNjFkZGMwODkxOTM0
ZGNmMGJmODkzNWEyMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYy
LDcgKzE2Miw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
b2NrZXRQcm92aWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N5c3RlbUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVy
YXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRlbnRDb250cm9sbGVyLmg+CkBAIC0y
OTcyLDcgKzI5NzEsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZShfSW5fIEJT
VFIgbWltZVR5cGUsIF9PdXRfIEJPT0wqIGNhblNob3cpCiBib29sIFdlYlZpZXc6OmNhblNob3dN
SU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUg
PSBjb3JlKG1fbWFpbkZyYW1lKTsKLSAgICBib29sIGFsbG93UGx1Z2lucyA9IGNvcmVGcmFtZSAm
JiBjb3JlRnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7Cisg
ICAgYm9vbCBhbGxvd1BsdWdpbnMgPSBjb3JlRnJhbWUgJiYgY29yZUZyYW1lLT5sb2FkZXIoKS5h
bGxvd1BsdWdpbnMoKTsKIAogICAgIGJvb2wgY2FuU2hvdyA9IE1JTUVUeXBlUmVnaXN0cnk6Omlz
U3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShtaW1lVHlwZSkKICAgICAgICAgfHwgTUlNRVR5cGVSZWdp
c3RyeTo6aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1pbWVUeXBlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396287</attachid>
            <date>2020-04-13 08:33:15 -0700</date>
            <delta_ts>2020-04-13 10:05:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200413173314.patch</filename>
            <type>text/plain</type>
            <size>18305</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4MzQ1ODhhNTMwNjRi
MzhmOTYyZDIyN2ZmNDYxMTM1NDUwYTdjOS4uYjMzMzU0Mjk2NjIzMmU5OWExZmU4YTcyYTU0M2Jh
Y2I5OWQ3YTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTEzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVyIHRvIHJlZHVjZQorICAgICAgICBw
b2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgbGVzc2VuIGRlcGVuZGVuY3kKKyAgICAgICAgb24gU3Vi
ZnJhbWVMb2FkZXIuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjpyZW5kZXJlcklzRXZlck5lZWRlZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphbGxvd1BsdWdpbnMpOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBwbHVn
aW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1pbWVUeXBlOjplbmFi
bGVkUGx1Z2luIGNvbnN0KToKKwogMjAyMC0wNC0xMyAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0VNRV1bR1N0cmVhbWVyXSByZW1vdmUgbV9jZG1JbnN0
YW5jZSBBU1NFUlQgaW4gY2RtSW5zdGFuY2VEZXRhY2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMjhkMDdmNzQ3
ZDE4MDQ1N2JhOTkxMTlkMjdkYTE0OTMzZDZiMGM0Li40ODk0NmIxMzQyMWJhYjQxM2I0MWQzZGRh
MzhjMzM4MTc0ZWEyMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5m
b1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuU2hvd01JTUVUeXBlIGNvbnN0
KToKKwogMjAyMC0wNC0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IHNvbWUgc3RyYW5nZSB1c2VzIG9mIHN0YXJ0L2VuZE9mRG9jdW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCAxMmZjOWU2MTQxMTg0OTBhNDE2YTMxODIyNTgwNDQ4Njg1
NmE4OTViLi5lNWUyMWU2ZDFmYzZhYTEzMWZlZDE4MzBhNjUxODMzMTk5ZjE4MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMTMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIGFsbG93UGx1Z2lucyB0byBG
cmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBs
dWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1
Z2luSW5mbyk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZV0pOgorCiAyMDIwLTA0LTExICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dLMV0g
VG91Y2ggQmFyIGZsYXNoZXMgd2hlbiB0eXBpbmcgaW4gVmlldG5hbWVzZSBpbiBNYWlsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggODA0YmU1YTQ0YWNmNDRiZjdmNWQ2ZmM2YTUwOWQ3
YzA0YjMwNmRjOC4uYWUzYzRkNDhiOGFkNzBlMDI3NzAxYmIxY2JhNjc0NjU0ZjNiNGQ2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZSk6CisKIDIwMjAtMDQtMDggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBmaW5kIHRvdWNoLWFj
dGlvbiBlbGVtZW50cyBpbnNpZGUgbm9uLWNvbXBvc2l0ZWQgaWZyYW1lcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggOWVkYzIwZGE3OGYwMjM0OTA1YjY2NWVk
OTI0ODZkYzA1YzM5NmMyNi4uMTU5ZWQyZWY3NmI3NzNkNjIxMGQ5MDFlMTc1YTc3ZjYwOTM5ZmNh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC01MSw3ICs1
MSw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgotI2luY2x1ZGUgIlN1YmZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHREb2N1bWVudC5o
IgogI2luY2x1ZGUgIlhNTERvY3VtZW50LmgiCkBAIC0xNzMsNyArMTcyLDcgQEAgUmVmPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0eXBl
LCBGcmFtZSogZnJhbWUKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHJlbGF0aXZlbHkg
Y29zdGx5IGxvb2t1cCB0aGF0IHJlcXVpcmVzIGluaXRpYWxpemluZyB0aGUgcGx1Zy1pbiBkYXRh
YmFzZS4KICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICBhdXRvIGFs
bG93ZWRQbHVnaW5UeXBlcyA9IGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93
UGx1Z2lucygpCisgICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gZnJhbWUtPmxvYWRl
cigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnMg
OiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBpZiAoZnJhbWUt
PnBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKHR5cGUsIGFs
bG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNy
ZWF0ZSgqZnJhbWUsIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDQ1
NzcyZDEzZGRhZTU1NGNjYmM0NzFiNDNjMTFmZDVhNzA4NGIwMzMuLmUxY2I2N2VhZTJlOTM0MDcy
ZWI1YWNhMzRjOGMxNzdjN2Q3YmQwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNp
bXVsYXRlZENsaWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAi
U3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTc0MSw3ICs3NDAsNyBAQCBib29sIEhUTUxFbGVt
ZW50OjpyZW5kZXJlcklzRXZlck5lZWRlZCgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfSBlbHNlIGlmIChoYXNUYWdOYW1lKG5vZW1iZWRUYWcpKSB7CiAgICAgICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICAgICAg
aWYgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVy
SXNFdmVyTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBj
NzE2ZDcyODBmNDYyY2I1NjczNzU3YjRiYTRlM2IyNGFiZWU4ZGUwLi44ZGRhNzNiMGM0NjRiNTYy
MDkzMjU0NWFjNmUwMmQ5MmM0OTZhNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTQxNTYsNiArNDE1NiwxMSBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRTdXBw
cmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS5zZXR0
aW5ncygpLnNob3VsZFN1cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25h
bE5hdmlnYXRpb24oKSAmJiBtX3N0YXRlID09IEZyYW1lU3RhdGVQcm92aXNpb25hbDsKIH0KIAor
Ym9vbCBGcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKCkKK3sKKyAgICByZXR1cm4gbV9mcmFtZS5z
ZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXgg
YjUxNDQ4MWE3ZmVjOWUxMmY3ODQ2YWU5ZjYxOTkxM2FkNjljZWIxOS4uYmEyYTM2ZDVlN2EzYTMw
OWRkZmEzOTg2ZGU5MWY4MGQyMmM2NGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKQEAgLTMzMiw2ICszMzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHN1YnJlc291cmNlIHJl
cXVlc3RzIHRoZSBGcmFtZUxvYWRUeXBlIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IGFuZCBjYW4g
YmUgc2tpcHBlZC4KICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYsIElzTWFpblJlc291cmNlLCBGcmFtZUxvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3Rh
bmRhcmQpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhbGxvd1BsdWdpbnMoKTsKKwogcHJp
dmF0ZToKICAgICBlbnVtIEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5IHsKICAgICAgICAg
TWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBiYjY3YmQzMzkzZDk3NmE5MTMyNzMy
NDJhYmJhMzhmYjllOTZmZWRjLi43MzBmOGE0NmYzNGU0ZDVhNjMzYzUwYmZmOGQxMTc2NDY3OTMy
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVQogICAgIC8vIEFwcGxpY2F0aW9uIHBs
dWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4
YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMgb3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2Rl
IHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhl
eSBhcmUKICAgICAvLyBwZXJtaXR0ZWQsIHJhdGhlciB0aGFuIFdlYktpdC4KLSAgICBpZiAoKCFh
bGxvd1BsdWdpbnMoKSAmJiAhTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1J
TUVUeXBlKG1pbWVUeXBlKSkpCisgICAgaWYgKCghbV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdp
bnNFbmFibGVkKCkgJiYgIU1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1F
VHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXBsdWdp
bklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0yNzksNyArMjc5LDcgQEAgUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9IGNvbXBsZXRlVVJMKGJhc2VVUkxTdHJp
bmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0OwotICAgIGlmIChhbGxvd1BsdWdpbnMo
KSkKKyAgICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCkpCiAgICAg
ICAgIHdpZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlSmF2YUFwcGxldFdp
ZGdldChzaXplLCBlbGVtZW50LCBiYXNlVVJMLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAK
ICAgICBsb2dQbHVnaW5SZXF1ZXN0KG1fZnJhbWUucGFnZSgpLCBlbGVtZW50LnNlcnZpY2VUeXBl
KCksIFN0cmluZygpLCB3aWRnZXQpOwpAQCAtMzgyLDExICszODIsNiBAQCBSZWZQdHI8RnJhbWU+
IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25l
ckVsZW1lbnQsCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjph
bGxvd1BsdWdpbnMoKQotewotICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuYXJlUGx1Z2lu
c0VuYWJsZWQoKTsKLX0KLQogYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBi
b29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggMjRmN2U0MzFkNjU5MWI3MmU0YjFlYzAwMDIxMmJk
YzA4ODEyZmU2ZC4uNDY1M2VhMTc4MjQ0NmYxYzRjMmZmODg3MmJkYjk4NmQwMmE2MjA2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKQEAgLTYxLDggKzYxLDYgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgYWxsb3dQbHVnaW5zKCk7Ci0KICAgICBib29sIGNvbnRhaW5zUGx1Z2lucygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNQbHVnaW5zOyB9CiAgICAgCiAgICAgYm9vbCByZXNv
dXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyZDJl
ZDA2NzAyMzc5NjMyZWQ4YWJlMDg0Y2E3MTZmYjgzLi5iNDU0YTBiM2U5MTdkMjVjYTQyNmJhNjhk
ZjRjOWY5Nzc0ZWEwZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1p
bWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApA
QCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjcsNyArNjYsNyBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKIAogUmVmUHRyPERPTVBsdWdpbj4gRE9NTWltZVR5cGU6OmVuYWJsZWRQbHVnaW4oKSBj
b25zdAogewotICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1l
LT5wYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCkpCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUt
PnBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPE1pbWVDbGFzc0luZm8+IG1pbWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Q
cm92aWRlci5jcHAKaW5kZXggYjM1NzRjYWMwZTYwNmM4ZTA2NjZmYTEwYmQzNGQwMzg3ODM0MTQ3
MS4uMzE0YjdkNWJjM2RiMTg0ZjAxMzJiY2M1OWI2MDE2OTJkYzY1NDBlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hl
bWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTA4
LDcgKzEwNyw3IEBAIFZlY3RvcjxQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBs
dWdpbkluZm8oUGFnZSYgcGFnZSwgT3B0aW9uYWw8VmVjdG9yCiAgICAgaWYgKG1fY2FjaGVkU3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiAgICAgICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzID0gKm1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKLSAgICByZXR1cm4g
cGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygp
ID8gbV9jYWNoZWRQbHVnaW5zIDogbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnM7CisgICAgcmV0
dXJuIHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBs
dWdpbnMgOiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2UpOwogICAgIFVOVVNFRF9QQVJBTShzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyk7
CkBAIC0xNTEsNyArMTUwLDcgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBvcHVsYXRl
UGx1Z2luQ2FjaGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICAgICAgLy8gQXBwbGlj
YXRpb24gcGx1Z2lucyBhcmUgbm90IGFmZmVjdGVkIGJ5IGVuYWJsZVBsdWdpbnMgc2V0dGluZywg
c28gd2UgYWx3YXlzIG5lZWQgdG8gc2NhbiBwbHVnaW5zIHRvIGdldCB0aGVtLgogICAgICAgICBi
b29sIHNob3VsZFNjYW5QbHVnaW5zID0gdHJ1ZTsKICNlbHNlCi0gICAgICAgIGJvb2wgc2hvdWxk
U2NhblBsdWdpbnMgPSBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCku
YWxsb3dQbHVnaW5zKCk7CisgICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdpbnMgPSBwYWdlLm1h
aW5GcmFtZSgpLmxvYWRlcigpLmFsbG93UGx1Z2lucygpOwogI2VuZGlmCiAgICAgICAgIGlmIChz
aG91bGRTY2FuUGx1Z2lucykgewogICAgICAgICAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhh
bmdEZXRlY3Rpb25EaXNhYmxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDQ0MTg1ZDVhNzI4NjZiZmY2NDAwY2Y3MzhiNWUxOWUzYjBhNTFmN2EuLmE5MTQyNDk4NmIyODE5
NTNiNmZkNDNkYzBkZjlmMDk1Yzc0YjNlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtODcsNyArODcsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXR0aW5ncy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VJRXZlbnRXaXRoS2V5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dpZGdldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KQEAgLTE3
MTMsNyArMTcxMiw3IEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpv
YmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAgcmV0dXJuIE9i
amVjdENvbnRlbnRUeXBlOjpJbWFnZTsKIAogICAgIGlmIChXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gd2ViRnJh
bWUoKS5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMo
KQorICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5UeXBlcyA9IHdlYkZyYW1lKCkuY29yZUZyYW1l
KCktPmxvYWRlcigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFs
bFBsdWdpbnMgOiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBp
ZiAod2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzTWltZVR5cGUobWlt
ZVR5cGUsIGFsbG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29u
dGVudFR5cGU6OlBsdWdJbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYTI1MzA4NTNiMGFhMGQxYzVmNjBlY2Y4ZmM1NGVkMGNkZGRlZmRjYy4u
NTMzODNlZjU1ZGZjMTcwNTFlODM3NmY1OWI5MTVkNTNkMTA3YmRlMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTIyNiw3ICsyMjYsNiBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvU2hhZG93Um9vdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdHlsZVByb3BlcnRpZXMuaD4KLSNpbmNsdWRl
IDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaD4KQEAgLTk5Niw3ICs5OTUsNyBAQCBSZWZQdHI8
UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0lu
RWxlbWVudCogcGx1Z2luRQogICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1
Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdG
b3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlw
ZU5vcm1hbDsKICNlbmRpZgogCi0gICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMg
PSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1
Z2lucygpOworICAgIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIWZyYW1lLT5j
b3JlRnJhbWUoKS0+bG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CiAKICAgICB1aW50NjRfdCBwbHVn
aW5Qcm9jZXNzVG9rZW47CiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKQEAgLTUyNDIs
NyArNTI0MSw3IEBAIGJvb2wgV2ViUGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2UoY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKLSAgICBib29sIGFsbG93T25s
eUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigp
LnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd09ubHlBcHBs
aWNhdGlvblBsdWdpbnMgPSAhbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5hbGxv
d1BsdWdpbnMoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICBTdHJp
bmcgbmV3TUlNRVR5cGU7CkBAIC01NzkwLDcgKzU3ODksNyBAQCBib29sIFdlYlBhZ2U6OmNhblNo
b3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBGdW5jdGlvbjxib29sKGNv
bnN0CiAgICAgaWYgKCFtaW1lVHlwZS5pc051bGwoKSAmJiBtX21pbWVUeXBlc1dpdGhDdXN0b21D
b250ZW50UHJvdmlkZXJzLmNvbnRhaW5zKG1pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAKLSAgICBpZiAoY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2Fk
ZXIoKS5hbGxvd1BsdWdpbnMoKSAmJiBwbHVnaW5zU3VwcG9ydChtaW1lVHlwZSwgUGx1Z2luRGF0
YTo6QWxsUGx1Z2lucykpCisgICAgaWYgKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigp
LmFsbG93UGx1Z2lucygpICYmIHBsdWdpbnNTdXBwb3J0KG1pbWVUeXBlLCBQbHVnaW5EYXRhOjpB
bGxQbHVnaW5zKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBjYW4gdXNlIGFw
cGxpY2F0aW9uIHBsdWdpbnMgZXZlbiBpZiBwbHVnaW5zIGFyZW4ndCBlbmFibGVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5m
b1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDU1NDY1MWNhYmYzMWFhMGU1MjQ5OWZlNmQwYTQ0
YWQ1YmMzZmQzNTguLjExNTFjYWZiY2Y2ZTE5OWU5NzMzZGIxM2QzOTdhZWI5MGQ4YjQ3ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsdWdp
bkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TdWJmcmFtZUxvYWRlci5oPgog
I2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CkBAIC02Myw3ICs2Miw3IEBAIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiBXZWJQ
bHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnCiAKIAogICAg
IC8vIFdlYktpdDEgaGFzIG5vIGFwcGxpY2F0aW9uIHBsdWctaW5zLCBzbyB3ZSBkb24ndCBuZWVk
IHRvIGFkZCB0aGVtIGhlcmUuCi0gICAgaWYgKCFwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1
YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKCFwYWdlLm1haW5GcmFtZSgp
LmxvYWRlcigpLmFsbG93UGx1Z2lucygpKQogICAgICAgICByZXR1cm4gcGx1Z2luczsKIAogICAg
IGZvciAoV2ViUGx1Z2luUGFja2FnZSAqcGx1Z2luIGluIFtXZWJQbHVnaW5EYXRhYmFzZSBzaGFy
ZWREYXRhYmFzZV0ucGx1Z2lucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCmluZGV4IGE4MWMzMGI3YTk5ODYzODM5YjA1MWM0NTlhZmUwNWUwMjc4ZWQ0ZGEu
LjBiMTQ5YTJlMDk1OTRjNjI1NDI2ZjY2MzZkNmEyMzZkZGUzMWI1OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHN0
YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpOwogCiAgICAgaWYgKFdlYkNvcmU6
Ok1JTUVUeXBlUmVnaXN0cnk6OmlzVGV4dE1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAgICB8fCBX
ZWJDb3JlOjpJbWFnZTo6c3VwcG9ydHNUeXBlKG1pbWVUeXBlKQotICAgICAgICB8fCAocGx1Z2lu
RGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1lVHlwZSwg
V2ViQ29yZTo6UGx1Z2luRGF0YTo6QWxsUGx1Z2lucykgJiYgZnJhbWUtPmxvYWRlcigpLnN1YmZy
YW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBs
dWdpbkRhdGEtPnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQ
bHVnaW5EYXRhOjpBbGxQbHVnaW5zKSAmJiBmcmFtZS0+bG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkp
CiAgICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2ViVmlzaWJs
ZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25Q
bHVnaW5zKSkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3
LmNwcAppbmRleCA5YmNlMzY4YWRiYTQ0MDc5MzFlMjU0ZDYxNjAzNjIzZWRhNzUwMGY5Li5kYTcz
NjZkODUxZTcxNjFkZGMwODkxOTM0ZGNmMGJmODkzNWEyMjYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcApAQCAtMTYyLDcgKzE2Miw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0
aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
U3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUluZm8uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckNvbnRl
bnRDb250cm9sbGVyLmg+CkBAIC0yOTcyLDcgKzI5NzEsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmNh
blNob3dNSU1FVHlwZShfSW5fIEJTVFIgbWltZVR5cGUsIF9PdXRfIEJPT0wqIGNhblNob3cpCiBi
b29sIFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewog
ICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fbWFpbkZyYW1lKTsKLSAgICBib29sIGFsbG93
UGx1Z2lucyA9IGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVy
KCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd1BsdWdpbnMgPSBjb3JlRnJhbWUgJiYg
Y29yZUZyYW1lLT5sb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKIAogICAgIGJvb2wgY2FuU2hvdyA9
IE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShtaW1lVHlwZSkKICAg
ICAgICAgfHwgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1p
bWVUeXBlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396300</attachid>
            <date>2020-04-13 10:05:46 -0700</date>
            <delta_ts>2020-06-01 03:05:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200413190544.patch</filename>
            <type>text/plain</type>
            <size>18026</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4MzQ1ODhhNTMwNjRi
MzhmOTYyZDIyN2ZmNDYxMTM1NDUwYTdjOS4uYjMzMzU0Mjk2NjIzMmU5OWExZmU4YTcyYTU0M2Jh
Y2I5OWQ3YTFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTA0LTEzICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVyIHRvIHJlZHVjZQorICAgICAgICBw
b2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgbGVzc2VuIGRlcGVuZGVuY3kKKyAgICAgICAgb24gU3Vi
ZnJhbWVMb2FkZXIuCisKKyAgICAgICAgKiBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NSW1wbGVtZW50YXRpb246OmNyZWF0ZURvY3VtZW50KToKKyAgICAg
ICAgKiBodG1sL0hUTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxFbGVtZW50
OjpyZW5kZXJlcklzRXZlck5lZWRlZCk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjphbGxvd1BsdWdpbnMpOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y3JlYXRlSmF2YUFwcGxldFdpZGdl
dCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBwbHVn
aW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU1pbWVUeXBlOjplbmFi
bGVkUGx1Z2luIGNvbnN0KToKKwogMjAyMC0wNC0xMyAgQ2hhcmxpZSBUdXJuZXIgIDxjdHVybmVy
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0VNRV1bR1N0cmVhbWVyXSByZW1vdmUgbV9jZG1JbnN0
YW5jZSBBU1NFUlQgaW4gY2RtSW5zdGFuY2VEZXRhY2hlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMjhkMDdmNzQ3
ZDE4MDQ1N2JhOTkxMTlkMjdkYTE0OTMzZDZiMGM0Li40ODk0NmIxMzQyMWJhYjQxM2I0MWQzZGRh
MzhjMzM4MTc0ZWEyMjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2lu
SW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luSW5m
b1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6Om9iamVjdENvbnRlbnRUeXBlKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNy
ZWF0ZVBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJl
c3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Y2FuU2hvd01JTUVUeXBlIGNvbnN0
KToKKwogMjAyMC0wNC0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IHNvbWUgc3RyYW5nZSB1c2VzIG9mIHN0YXJ0L2VuZE9mRG9jdW1lbnQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCAxMmZjOWU2MTQxMTg0OTBhNDE2YTMxODIyNTgwNDQ4Njg1
NmE4OTViLi5lNWUyMWU2ZDFmYzZhYTEzMWZlZDE4MzBhNjUxODMzMTk5ZjE4MjYwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDQtMTMgIFJvYiBC
dWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIGFsbG93UGx1Z2lucyB0byBG
cmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA1ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBs
dWdpbkluZm9Qcm92aWRlci5tbToKKyAgICAgICAgKFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1
Z2luSW5mbyk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2Vi
RnJhbWUgX2NhblByb3ZpZGVEb2N1bWVudFNvdXJjZV0pOgorCiAyMDIwLTA0LTExICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gW1dLMV0g
VG91Y2ggQmFyIGZsYXNoZXMgd2hlbiB0eXBpbmcgaW4gVmlldG5hbWVzZSBpbiBNYWlsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggODA0YmU1YTQ0YWNmNDRiZjdmNWQ2ZmM2YTUwOWQ3
YzA0YjMwNmRjOC4uYWUzYzRkNDhiOGFkNzBlMDI3NzAxYmIxY2JhNjc0NjU0ZjNiNGQ2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA0LTEzICBS
b2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMg
dG8gRnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkYXB0IHRvIEFQSSBjaGFuZ2UuCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZSk6CisKIDIwMjAtMDQtMDggIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFNob3VsZCBmaW5kIHRvdWNoLWFj
dGlvbiBlbGVtZW50cyBpbnNpZGUgbm9uLWNvbXBvc2l0ZWQgaWZyYW1lcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKaW5kZXggOWVkYzIwZGE3OGYwMjM0OTA1YjY2NWVk
OTI0ODZkYzA1YzM5NmMyNi4uMTU5ZWQyZWY3NmI3NzNkNjIxMGQ5MDFlMTc1YTc3ZjYwOTM5ZmNh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCkBAIC01MSw3ICs1
MSw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5Qb2xpY3kuaCIKICNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgotI2luY2x1ZGUgIlN1YmZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHREb2N1bWVudC5o
IgogI2luY2x1ZGUgIlhNTERvY3VtZW50LmgiCkBAIC0xNzMsNyArMTcyLDcgQEAgUmVmPERvY3Vt
ZW50PiBET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQoY29uc3QgU3RyaW5nJiB0eXBl
LCBGcmFtZSogZnJhbWUKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgaXMgdGhlIHJlbGF0aXZlbHkg
Y29zdGx5IGxvb2t1cCB0aGF0IHJlcXVpcmVzIGluaXRpYWxpemluZyB0aGUgcGx1Zy1pbiBkYXRh
YmFzZS4KICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkgewotICAgICAgICBhdXRvIGFs
bG93ZWRQbHVnaW5UeXBlcyA9IGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93
UGx1Z2lucygpCisgICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gZnJhbWUtPmxvYWRl
cigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnMg
OiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBpZiAoZnJhbWUt
PnBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKHR5cGUsIGFs
bG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gUGx1Z2luRG9jdW1lbnQ6OmNy
ZWF0ZSgqZnJhbWUsIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDQ1
NzcyZDEzZGRhZTU1NGNjYmM0NzFiNDNjMTFmZDVhNzA4NGIwMzMuLmUxY2I2N2VhZTJlOTM0MDcy
ZWI1YWNhMzRjOGMxNzdjN2Q3YmQwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3Bw
CkBAIC02Myw3ICs2Myw2IEBACiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlNp
bXVsYXRlZENsaWNrLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCi0jaW5jbHVkZSAi
U3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMu
aCIKICNpbmNsdWRlICJtYXJrdXAuaCIKQEAgLTc0MSw3ICs3NDAsNyBAQCBib29sIEhUTUxFbGVt
ZW50OjpyZW5kZXJlcklzRXZlck5lZWRlZCgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfSBlbHNlIGlmIChoYXNUYWdOYW1lKG5vZW1iZWRUYWcpKSB7CiAgICAgICAgIFJlZlB0cjxG
cmFtZT4gZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICAgICAg
aWYgKGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVy
SXNFdmVyTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBj
NzE2ZDcyODBmNDYyY2I1NjczNzU3YjRiYTRlM2IyNGFiZWU4ZGUwLi44ZGRhNzNiMGM0NjRiNTYy
MDkzMjU0NWFjNmUwMmQ5MmM0OTZhNGEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKQEAgLTQxNTYsNiArNDE1NiwxMSBAQCBib29sIEZyYW1lTG9hZGVyOjpzaG91bGRTdXBw
cmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29uc3QKICAgICByZXR1cm4gbV9mcmFtZS5zZXR0
aW5ncygpLnNob3VsZFN1cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25h
bE5hdmlnYXRpb24oKSAmJiBtX3N0YXRlID09IEZyYW1lU3RhdGVQcm92aXNpb25hbDsKIH0KIAor
Ym9vbCBGcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKCkKK3sKKyAgICByZXR1cm4gbV9mcmFtZS5z
ZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI3VuZGVmIFBBR0VfSUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXgg
YjUxNDQ4MWE3ZmVjOWUxMmY3ODQ2YWU5ZjYxOTkxM2FkNjljZWIxOS4uYmEyYTM2ZDVlN2EzYTMw
OWRkZmEzOTg2ZGU5MWY4MGQyMmM2NGJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKQEAgLTMzMiw2ICszMzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gRm9yIHN1YnJlc291cmNlIHJl
cXVlc3RzIHRoZSBGcmFtZUxvYWRUeXBlIHBhcmFtZXRlciBoYXMgbm8gZWZmZWN0IGFuZCBjYW4g
YmUgc2tpcHBlZC4KICAgICB2b2lkIGFkZEV4dHJhRmllbGRzVG9SZXF1ZXN0KFJlc291cmNlUmVx
dWVzdCYsIElzTWFpblJlc291cmNlLCBGcmFtZUxvYWRUeXBlID0gRnJhbWVMb2FkVHlwZTo6U3Rh
bmRhcmQpOwogCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBhbGxvd1BsdWdpbnMoKTsKKwogcHJp
dmF0ZToKICAgICBlbnVtIEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5IHsKICAgICAgICAg
TWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAppbmRleCBiYjY3YmQzMzkzZDk3NmE5MTMyNzMy
NDJhYmJhMzhmYjllOTZmZWRjLi43MzBmOGE0NmYzNGU0ZDVhNjMzYzUwYmZmOGQxMTc2NDY3OTMy
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTE1NCw3
ICsxNTQsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVQogICAgIC8vIEFwcGxpY2F0aW9uIHBs
dWctaW5zIGFyZSBwbHVnLWlucyBpbXBsZW1lbnRlZCBieSB0aGUgdXNlciBhZ2VudCwgZm9yIGV4
YW1wbGUgUXQgcGx1Zy1pbnMsCiAgICAgLy8gYXMgb3Bwb3NlZCB0byB0aGlyZC1wYXJ0eSBjb2Rl
IHN1Y2ggYXMgRmxhc2guIFRoZSB1c2VyIGFnZW50IGRlY2lkZXMgd2hldGhlciBvciBub3QgdGhl
eSBhcmUKICAgICAvLyBwZXJtaXR0ZWQsIHJhdGhlciB0aGFuIFdlYktpdC4KLSAgICBpZiAoKCFh
bGxvd1BsdWdpbnMoKSAmJiAhTUlNRVR5cGVSZWdpc3RyeTo6aXNBcHBsaWNhdGlvblBsdWdpbk1J
TUVUeXBlKG1pbWVUeXBlKSkpCisgICAgaWYgKCghbV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdp
bnNFbmFibGVkKCkgJiYgIU1JTUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1F
VHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXBsdWdp
bklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0yNzksNyArMjc5LDcgQEAgUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6
ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9IGNvbXBsZXRlVVJMKGJhc2VVUkxTdHJp
bmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0OwotICAgIGlmIChhbGxvd1BsdWdpbnMo
KSkKKyAgICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCkpCiAgICAg
ICAgIHdpZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlSmF2YUFwcGxldFdp
ZGdldChzaXplLCBlbGVtZW50LCBiYXNlVVJMLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAK
ICAgICBsb2dQbHVnaW5SZXF1ZXN0KG1fZnJhbWUucGFnZSgpLCBlbGVtZW50LnNlcnZpY2VUeXBl
KCksIFN0cmluZygpLCB3aWRnZXQpOwpAQCAtMzgyLDExICszODIsNiBAQCBSZWZQdHI8RnJhbWU+
IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBvd25l
ckVsZW1lbnQsCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1ib29sIFN1YmZyYW1lTG9hZGVyOjph
bGxvd1BsdWdpbnMoKQotewotICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuYXJlUGx1Z2lu
c0VuYWJsZWQoKTsKLX0KLQogYm9vbCBTdWJmcmFtZUxvYWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIGhhc0ZhbGxiYWNrLCBi
b29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5z
aG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1lVHlwZSkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggMjRmN2U0MzFkNjU5MWI3MmU0YjFlYzAwMDIxMmJk
YzA4ODEyZmU2ZC4uNDY1M2VhMTc4MjQ0NmYxYzRjMmZmODg3MmJkYjk4NmQwMmE2MjA2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKQEAgLTYxLDggKzYxLDYgQEAgcHVi
bGljOgogCiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgYWxsb3dQbHVnaW5zKCk7Ci0KICAgICBib29sIGNvbnRhaW5zUGx1Z2lucygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNQbHVnaW5zOyB9CiAgICAgCiAgICAgYm9vbCByZXNv
dXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAppbmRleCAxYjJkNzUyZDJl
ZDA2NzAyMzc5NjMyZWQ4YWJlMDg0Y2E3MTZmYjgzLi5iNDU0YTBiM2U5MTdkMjVjYTQyNmJhNjhk
ZjRjOWY5Nzc0ZWEwZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1p
bWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcApA
QCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNpbmNsdWRlICJTdWJmcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjcsNyArNjYsNyBAQCBTdHJpbmcgRE9NTWltZVR5cGU6OmRlc2NyaXB0aW9uKCkg
Y29uc3QKIAogUmVmUHRyPERPTVBsdWdpbj4gRE9NTWltZVR5cGU6OmVuYWJsZWRQbHVnaW4oKSBj
b25zdAogewotICAgIGlmICghbV9mcmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1l
LT5wYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCkpCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUt
PnBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCiAgICAgVmVjdG9yPE1pbWVDbGFzc0luZm8+IG1pbWVzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3Zp
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Q
cm92aWRlci5jcHAKaW5kZXggYjM1NzRjYWMwZTYwNmM4ZTA2NjZmYTEwYmQzNGQwMzg3ODM0MTQ3
MS4uMzE0YjdkNWJjM2RiMTg0ZjAxMzJiY2M1OWI2MDE2OTJkYzY1NDBlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJv
dmlkZXIuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hl
bWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTA4
LDcgKzEwNyw3IEBAIFZlY3RvcjxQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBs
dWdpbkluZm8oUGFnZSYgcGFnZSwgT3B0aW9uYWw8VmVjdG9yCiAgICAgaWYgKG1fY2FjaGVkU3Vw
cG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpCiAgICAgICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZp
ZXJzID0gKm1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKLSAgICByZXR1cm4g
cGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygp
ID8gbV9jYWNoZWRQbHVnaW5zIDogbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnM7CisgICAgcmV0
dXJuIHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBs
dWdpbnMgOiBtX2NhY2hlZEFwcGxpY2F0aW9uUGx1Z2luczsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2UpOwogICAgIFVOVVNFRF9QQVJBTShzdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycyk7
CkBAIC0xNTEsNyArMTUwLDcgQEAgdm9pZCBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBvcHVsYXRl
UGx1Z2luQ2FjaGUoY29uc3QgV2ViQ29yZTo6UGFnZSYgcGFnZSkKICAgICAgICAgLy8gQXBwbGlj
YXRpb24gcGx1Z2lucyBhcmUgbm90IGFmZmVjdGVkIGJ5IGVuYWJsZVBsdWdpbnMgc2V0dGluZywg
c28gd2UgYWx3YXlzIG5lZWQgdG8gc2NhbiBwbHVnaW5zIHRvIGdldCB0aGVtLgogICAgICAgICBi
b29sIHNob3VsZFNjYW5QbHVnaW5zID0gdHJ1ZTsKICNlbHNlCi0gICAgICAgIGJvb2wgc2hvdWxk
U2NhblBsdWdpbnMgPSBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCku
YWxsb3dQbHVnaW5zKCk7CisgICAgICAgIGJvb2wgc2hvdWxkU2NhblBsdWdpbnMgPSBwYWdlLm1h
aW5GcmFtZSgpLmxvYWRlcigpLmFsbG93UGx1Z2lucygpOwogI2VuZGlmCiAgICAgICAgIGlmIChz
aG91bGRTY2FuUGx1Z2lucykgewogICAgICAgICAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhh
bmdEZXRlY3Rpb25EaXNhYmxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDQ0MTg1ZDVhNzI4NjZiZmY2NDAwY2Y3MzhiNWUxOWUzYjBhNTFmN2EuLmE5MTQyNDk4NmIyODE5
NTNiNmZkNDNkYzBkZjlmMDk1Yzc0YjNlZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcApAQCAtODcsNyArODcsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxl
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TZXR0aW5ncy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VJRXZlbnRXaXRoS2V5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dpZGdldC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KQEAgLTE3
MTMsNyArMTcxMiw3IEBAIE9iamVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojpv
YmplY3RDb250ZW50VHlwZShjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAgcmV0dXJuIE9i
amVjdENvbnRlbnRUeXBlOjpJbWFnZTsKIAogICAgIGlmIChXZWJQYWdlKiB3ZWJQYWdlID0gbV9m
cmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gd2ViRnJh
bWUoKS5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMo
KQorICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5UeXBlcyA9IHdlYkZyYW1lKCkuY29yZUZyYW1l
KCktPmxvYWRlcigpLmFsbG93UGx1Z2lucygpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFs
bFBsdWdpbnMgOiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBp
ZiAod2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzTWltZVR5cGUobWlt
ZVR5cGUsIGFsbG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29u
dGVudFR5cGU6OlBsdWdJbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYTI1MzA4NTNiMGFhMGQxYzVmNjBlY2Y4ZmM1NGVkMGNkZGRlZmRjYy4u
YjkzMmFlMmY2MzcxYTQ2ZTRhMWI3N2QxYTIwZjk0Njc1YTZmN2I1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk5Niw3ICs5OTYsNyBAQCBS
ZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1M
UGx1Z0luRWxlbWVudCogcGx1Z2luRQogICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
ID0gcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6Oldh
aXRpbmdGb3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QgOiBQbHVnaW5Qcm9j
ZXNzVHlwZU5vcm1hbDsKICNlbmRpZgogCi0gICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBs
dWdpbnMgPSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFs
bG93UGx1Z2lucygpOworICAgIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIWZy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CiAKICAgICB1aW50NjRf
dCBwbHVnaW5Qcm9jZXNzVG9rZW47CiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKQEAg
LTUyNDIsNyArNTI0Miw3IEBAIGJvb2wgV2ViUGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBF
X1BMVUdJTl9BUEkpCiAgICAgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeTsKLSAgICBib29sIGFs
bG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxv
YWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd09u
bHlBcHBsaWNhdGlvblBsdWdpbnMgPSAhbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIo
KS5hbGxvd1BsdWdpbnMoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAg
ICBTdHJpbmcgbmV3TUlNRVR5cGU7CkBAIC01NzkwLDcgKzU3OTAsNyBAQCBib29sIFdlYlBhZ2U6
OmNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBGdW5jdGlvbjxi
b29sKGNvbnN0CiAgICAgaWYgKCFtaW1lVHlwZS5pc051bGwoKSAmJiBtX21pbWVUeXBlc1dpdGhD
dXN0b21Db250ZW50UHJvdmlkZXJzLmNvbnRhaW5zKG1pbWVUeXBlKSkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKLSAgICBpZiAoY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJh
bWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSAmJiBwbHVnaW5zU3VwcG9ydChtaW1lVHlwZSwgUGx1
Z2luRGF0YTo6QWxsUGx1Z2lucykpCisgICAgaWYgKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxv
YWRlcigpLmFsbG93UGx1Z2lucygpICYmIHBsdWdpbnNTdXBwb3J0KG1pbWVUeXBlLCBQbHVnaW5E
YXRhOjpBbGxQbHVnaW5zKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBXZSBjYW4g
dXNlIGFwcGxpY2F0aW9uIHBsdWdpbnMgZXZlbiBpZiBwbHVnaW5zIGFyZW4ndCBlbmFibGVkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1
Z2luSW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDU1NDY1MWNhYmYzMWFhMGU1MjQ5OWZl
NmQwYTQ0YWQ1YmMzZmQzNTguLjExNTFjYWZiY2Y2ZTE5OWU5NzMzZGIxM2QzOTdhZWI5MGQ4YjQ3
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBsdWdpbkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNp
bXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9TdWJmcmFtZUxvYWRl
ci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CkBAIC02Myw3ICs2Miw3IEBAIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZv
PiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oV2ViQ29yZTo6UGFnZSYgcGFnCiAK
IAogICAgIC8vIFdlYktpdDEgaGFzIG5vIGFwcGxpY2F0aW9uIHBsdWctaW5zLCBzbyB3ZSBkb24n
dCBuZWVkIHRvIGFkZCB0aGVtIGhlcmUuCi0gICAgaWYgKCFwYWdlLm1haW5GcmFtZSgpLmxvYWRl
cigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKCFwYWdlLm1haW5G
cmFtZSgpLmxvYWRlcigpLmFsbG93UGx1Z2lucygpKQogICAgICAgICByZXR1cm4gcGx1Z2luczsK
IAogICAgIGZvciAoV2ViUGx1Z2luUGFja2FnZSAqcGx1Z2luIGluIFtXZWJQbHVnaW5EYXRhYmFz
ZSBzaGFyZWREYXRhYmFzZV0ucGx1Z2lucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCmluZGV4IGE4MWMzMGI3YTk5ODYzODM5YjA1MWM0NTlhZmUwNWUwMjc4
ZWQ0ZGEuLjBiMTQ5YTJlMDk1OTRjNjI1NDI2ZjY2MzZkNmEyMzZkZGUzMWI1OGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtOTc3LDcgKzk3Nyw3
IEBAIHN0YXRpYyBOU1VSTCAqY3JlYXRlVW5pcXVlV2ViRGF0YVVSTCgpOwogCiAgICAgaWYgKFdl
YkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6OmlzVGV4dE1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAg
ICB8fCBXZWJDb3JlOjpJbWFnZTo6c3VwcG9ydHNUeXBlKG1pbWVUeXBlKQotICAgICAgICB8fCAo
cGx1Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1l
VHlwZSwgV2ViQ29yZTo6UGx1Z2luRGF0YTo6QWxsUGx1Z2lucykgJiYgZnJhbWUtPmxvYWRlcigp
LnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgICAgIHx8IChwbHVnaW5EYXRh
ICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJD
b3JlOjpQbHVnaW5EYXRhOjpBbGxQbHVnaW5zKSAmJiBmcmFtZS0+bG9hZGVyKCkuYWxsb3dQbHVn
aW5zKCkpCiAgICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2Vi
VmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5EYXRhOjpPbmx5QXBwbGlj
YXRpb25QbHVnaW5zKSkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJWaWV3LmNwcAppbmRleCA5YmNlMzY4YWRiYTQ0MDc5MzFlMjU0ZDYxNjAzNjIzZWRhNzUwMGY5
Li5kYTczNjZkODUxZTcxNjFkZGMwODkxOTM0ZGNmMGJmODkzNWEyMjYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYyLDcgKzE2Miw2IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdM
b2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbUluZm8uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ckNvbnRlbnRDb250cm9sbGVyLmg+CkBAIC0yOTcyLDcgKzI5NzEsNyBAQCBIUkVTVUxUIFdlYlZp
ZXc6OmNhblNob3dNSU1FVHlwZShfSW5fIEJTVFIgbWltZVR5cGUsIF9PdXRfIEJPT0wqIGNhblNo
b3cpCiBib29sIFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBl
KQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3JlKG1fbWFpbkZyYW1lKTsKLSAgICBib29s
IGFsbG93UGx1Z2lucyA9IGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxvYWRlcigpLnN1YmZyYW1l
TG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAgYm9vbCBhbGxvd1BsdWdpbnMgPSBjb3JlRnJh
bWUgJiYgY29yZUZyYW1lLT5sb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKIAogICAgIGJvb2wgY2Fu
U2hvdyA9IE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkSW1hZ2VNSU1FVHlwZShtaW1lVHlw
ZSkKICAgICAgICAgfHwgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVU
eXBlKG1pbWVUeXBlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396408</attachid>
            <date>2020-04-14 06:22:10 -0700</date>
            <delta_ts>2020-04-14 07:16:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200414152208.patch</filename>
            <type>text/plain</type>
            <size>18753</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYyZjI1ZTcyZTE4YzZh
ZjEwOGY1OWRkZjgwMmQyZDcyZTFjZDYwZS4uYzRjNjFkYTI0MzFlN2U5ODZhNjNmNGIyZTdlMDc3
NmQwNWY1NzU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA0LTE0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVyIHRvIHJlZHVjZQorICAgICAgICBw
b2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgbGVzc2VuIGRlcGVuZGVuY3kKKyAgICAgICAgb24gU3Vi
ZnJhbWVMb2FkZXIuIEFsc28gcmVuYW1lIHRvCisgICAgICAgIGFyZVBsdWdpbnNFbmFibGVkIHNp
bmNlIHRoZSBtZXRob2QgaXMgYXNraW5nCisgICAgICAgIHRoZSBTZXR0aW5nIHdpdGggdGhlIHNh
bWUgbmFtZS4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnJl
bmRlcmVySXNFdmVyTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFyZVBsdWdpbnNFbmFibGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RQbHVnaW4p
OiBGaXggbG9naWMgZXJyb3IuCisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6Y3Jl
YXRlSmF2YUFwcGxldFdpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpTdWJmcmFtZUxvYWRlcjo6
YWxsb3dQbHVnaW5zKTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2FkZXIu
aDoKKyAgICAgICAgKiBwbHVnaW5zL0RPTU1pbWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRPTU1pbWVUeXBlOjplbmFibGVkUGx1Z2luIGNvbnN0KToKKwogMjAyMC0wNC0xNCAgQ2FybG9z
IEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BF
XSBTY3JvbGxiYXIgaGFuZGxlIGhhcyBubyBtaW5pbXVtIHNpemUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzFhMTI3
ZWNmYjE5MDk2NmJlZjY3NDAyM2FhZTgwMDBmMGU3YmUyNy4uOGU2MTk0MWQxYmMxOTUzOGY5ZGFh
NTEwMmM2ZDJkODIwNWQxMWY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0x
NCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgYWxsb3dQbHVn
aW5zIHRvIEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGFwdCB0byBBUEkgY2hhbmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9Q
bHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBs
dWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdp
bkluZm9Qcm92aWRlcjo6cG9wdWxhdGVQbHVnaW5DYWNoZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpjcmVhdGVQbHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5QbHVnaW5IYW5k
bGVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblNob3dNSU1FVHlwZSBj
b25zdCk6CisKIDIwMjAtMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIERvIG5vdCBwcm9jZXNzIFJUQyBOZXR3b3JrIG1lc3NhZ2VzIGNvbWluZyBmcm9t
IE5ldHdvcmtQcm9jZXNzIGlmIExpYldlYlJUQ05ldHdvcmsgaXMgbm90IGFjdGl2ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDk4N2Q1NTYzMGVmYWQ0NWZjNDdmZWY3NWUyNWQxNDAx
NmE1ZWQ4N2EuLjNmNGMyZmNhNmQ3MGUwMGU2ZjBiNTBlNjdmNzA0NTg2NzU3OTQ4OWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNC0xNCAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRv
IEZyYW1lTG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGFwdCB0byBBUEkgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
UGx1Z2luSW5mb1Byb3ZpZGVyLm1tOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpw
bHVnaW5JbmZvKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtX
ZWJGcmFtZSBfY2FuUHJvdmlkZURvY3VtZW50U291cmNlXSk6CisKIDIwMjAtMDQtMTMgIFRpbSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjI1OTg0Myk6ICJNaXNzaW5nIFBsdWctSW4iIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UgaW50byBN
YWlsIENvbXBvc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA4MDRiZTVhNDRhY2Y0
NGJmN2Y1ZDZmYzZhNTA5ZDdjMDRiMzA2ZGM4Li4xNmFjZWRkNTQxNmExNmI4M2VhYWM3NDY4NmJk
YmNiYjdiNTg0OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMjAtMDQtMTQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBN
b3ZlIGFsbG93UGx1Z2lucyB0byBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAq
IFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6Y2FuU2hvd01JTUVUeXBlKToKKwogMjAy
MC0wNC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hv
dWxkIGZpbmQgdG91Y2gtYWN0aW9uIGVsZW1lbnRzIGluc2lkZSBub24tY29tcG9zaXRlZCBpZnJh
bWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCA5ZWRjMjBk
YTc4ZjAyMzQ5MDViNjY1ZWQ5MjQ4NmRjMDVjMzk2YzI2Li41NjQ5ZGViOTUzNTM4NjUyNGVlMGYy
ZTY5YzRmMWQwZGE4ZTEwODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1w
bGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlv
bi5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgi
Ci0jaW5jbHVkZSAiU3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSAiVGV4dERvY3VtZW50LmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnQuaCIKQEAgLTE3Myw3ICsx
NzIsNyBAQCBSZWY8RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChj
b25zdCBTdHJpbmcmIHR5cGUsIEZyYW1lKiBmcmFtZQogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBp
cyB0aGUgcmVsYXRpdmVseSBjb3N0bHkgbG9va3VwIHRoYXQgcmVxdWlyZXMgaW5pdGlhbGl6aW5n
IHRoZSBwbHVnLWluIGRhdGFiYXNlLgogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKSB7
Ci0gICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gZnJhbWUtPmxvYWRlcigpLnN1YmZy
YW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkKKyAgICAgICAgYXV0byBhbGxvd2VkUGx1Z2luVHlw
ZXMgPSBmcmFtZS0+bG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKQogICAgICAgICAgICAgPyBQ
bHVnaW5EYXRhOjpBbGxQbHVnaW5zIDogUGx1Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2lu
czsKICAgICAgICAgaWYgKGZyYW1lLT5wYWdlKCktPnBsdWdpbkRhdGEoKS5zdXBwb3J0c1dlYlZp
c2libGVNaW1lVHlwZSh0eXBlLCBhbGxvd2VkUGx1Z2luVHlwZXMpKQogICAgICAgICAgICAgcmV0
dXJuIFBsdWdpbkRvY3VtZW50OjpjcmVhdGUoKmZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxFbGVtZW50LmNwcAppbmRleCA0NTc3MmQxM2RkYWU1NTRjY2JjNDcxYjQzYzExZmQ1YTcwODRi
MDMzLi44ZTI5MmUwZDA0MGNhOGIyMGM2MDNiOTJiMmJmYjVjNjUyYWRmYzNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIlNoYWRv
d1Jvb3QuaCIKICNpbmNsdWRlICJTaW11bGF0ZWRDbGljay5oIgogI2luY2x1ZGUgIlN0eWxlUHJv
cGVydGllcy5oIgotI2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5o
IgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC03NDEsNyAr
NzQwLDcgQEAgYm9vbCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc0V2ZXJOZWVkZWQoKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0gZWxzZSBpZiAoaGFzVGFnTmFtZShub2VtYmVkVGFn
KSkgewogICAgICAgICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwot
ICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxs
b3dQbHVnaW5zKCkpCisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkuYXJlUGx1
Z2luc0VuYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0
dXJuIFN0eWxlZEVsZW1lbnQ6OnJlbmRlcmVySXNFdmVyTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCBjNzE2ZDcyODBmNDYyY2I1NjczNzU3YjRiYTRlM2Iy
NGFiZWU4ZGUwLi4wNDYzYWE0N2E3NDMyOTZjNjQ4ZThhMWRlMWZhMTlkY2M5NjM0NmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxNTYsNiArNDE1NiwxMSBAQCBi
b29sIEZyYW1lTG9hZGVyOjpzaG91bGRTdXBwcmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29u
c3QKICAgICByZXR1cm4gbV9mcmFtZS5zZXR0aW5ncygpLnNob3VsZFN1cHByZXNzVGV4dElucHV0
RnJvbUVkaXRpbmdEdXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24oKSAmJiBtX3N0YXRlID09IEZy
YW1lU3RhdGVQcm92aXNpb25hbDsKIH0KIAorYm9vbCBGcmFtZUxvYWRlcjo6YXJlUGx1Z2luc0Vu
YWJsZWQoKQoreworICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuYXJlUGx1Z2luc0VuYWJs
ZWQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgUEFHRV9JRApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBiNTE0NDgxYTdmZWM5ZTEyZjc4NDZhZTlm
NjE5OTEzYWQ2OWNlYjE5Li4yZGFmODNhZWZmMDMyOGMxNThiOTg2NzBkOTRiMWE2YWY4NTE0ZjIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzMyLDYgKzMzMiw4IEBAIHB1
YmxpYzoKICAgICAvLyBGb3Igc3VicmVzb3VyY2UgcmVxdWVzdHMgdGhlIEZyYW1lTG9hZFR5cGUg
cGFyYW1ldGVyIGhhcyBubyBlZmZlY3QgYW5kIGNhbiBiZSBza2lwcGVkLgogICAgIHZvaWQgYWRk
RXh0cmFGaWVsZHNUb1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgSXNNYWluUmVzb3VyY2UsIEZy
YW1lTG9hZFR5cGUgPSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZCk7CiAKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGFyZVBsdWdpbnNFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAgZW51bSBGb3Jt
U3VibWlzc2lvbkNhY2hlTG9hZFBvbGljeSB7CiAgICAgICAgIE1heUF0dGVtcHRDYWNoZU9ubHlM
b2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YmZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAKaW5kZXggYmI2N2JkMzM5M2Q5NzZhOTEzMjczMjQyYWJiYTM4ZmI5ZTk2ZmVkYy4u
ZDAzZTlkYTFlMTRlMDU1Yzk2MzNlODM4NDUwZjk4ZmU3ZTY1OTdjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTdWJm
cmFtZUxvYWRlcjo6cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVs
ZW1lbnQsIGNvbnN0IFUKICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlucyBhcmUgcGx1Zy1pbnMg
aW1wbGVtZW50ZWQgYnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxlIFF0IHBsdWctaW5zLAog
ICAgIC8vIGFzIG9wcG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNoIGFzIEZsYXNoLiBUaGUg
dXNlciBhZ2VudCBkZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlCiAgICAgLy8gcGVybWl0
dGVkLCByYXRoZXIgdGhhbiBXZWJLaXQuCi0gICAgaWYgKCghYWxsb3dQbHVnaW5zKCkgJiYgIU1J
TUVUeXBlUmVnaXN0cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQor
ICAgIGlmICgoIW1fZnJhbWUuc2V0dGluZ3MoKS5hcmVQbHVnaW5zRW5hYmxlZCgpIHx8ICFNSU1F
VHlwZVJlZ2lzdHJ5Ojppc0FwcGxpY2F0aW9uUGx1Z2luTUlNRVR5cGUobWltZVR5cGUpKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFwbHVnaW5Jc0xvYWRhYmxlKHVybCwgbWlt
ZVR5cGUpKQpAQCAtMjc5LDcgKzI3OSw3IEBAIFJlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVy
OjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBCiAgICAg
VVJMIGJhc2VVUkwgPSBjb21wbGV0ZVVSTChiYXNlVVJMU3RyaW5nKTsKIAogICAgIFJlZlB0cjxX
aWRnZXQ+IHdpZGdldDsKLSAgICBpZiAoYWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKG1fZnJhbWUu
c2V0dGluZ3MoKS5hcmVQbHVnaW5zRW5hYmxlZCgpKQogICAgICAgICB3aWRnZXQgPSBtX2ZyYW1l
LmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoc2l6ZSwgZWxlbWVudCwg
YmFzZVVSTCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogCiAgICAgbG9nUGx1Z2luUmVxdWVz
dChtX2ZyYW1lLnBhZ2UoKSwgZWxlbWVudC5zZXJ2aWNlVHlwZSgpLCBTdHJpbmcoKSwgd2lkZ2V0
KTsKQEAgLTM4MiwxMSArMzgyLDYgQEAgUmVmUHRyPEZyYW1lPiBTdWJmcmFtZUxvYWRlcjo6bG9h
ZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCYgb3duZXJFbGVtZW50LAogICAgIHJldHVy
biBmcmFtZTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6YWxsb3dQbHVnaW5zKCkKLXsKLSAg
ICByZXR1cm4gbV9mcmFtZS5zZXR0aW5ncygpLmFyZVBsdWdpbnNFbmFibGVkKCk7Ci19Ci0KIGJv
b2wgU3ViZnJhbWVMb2FkZXI6OnNob3VsZFVzZVBsdWdpbihjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spCiB7
CiAgICAgaWYgKG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuc2hvdWxkQWx3YXlzVXNlUGx1Z2lu
RG9jdW1lbnQobWltZVR5cGUpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
U3ViZnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5o
CmluZGV4IDI0ZjdlNDMxZDY1OTFiNzJlNGIxZWMwMDAyMTJiZGMwODgxMmZlNmQuLjQ2NTNlYTE3
ODI0NDZmMWM0YzJmZjg4NzJiZGI5ODZkMDJhNjIwNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJmcmFtZUxvYWRlci5oCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxX
aWRnZXQ+IGNyZWF0ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYsIEhUTUxBcHBsZXRF
bGVtZW50JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbVZhbHVlcyk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFsbG93UGx1
Z2lucygpOwotCiAgICAgYm9vbCBjb250YWluc1BsdWdpbnMoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRhaW5zUGx1Z2luczsgfQogICAgIAogICAgIGJvb2wgcmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvRE9NTWltZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1
Z2lucy9ET01NaW1lVHlwZS5jcHAKaW5kZXggMWIyZDc1MmQyZWQwNjcwMjM3OTYzMmVkOGFiZTA4
NGNhNzE2ZmI4My4uYWU2YTkyZjMyYjI4ODFiMjU3NzllODU5NWEzZDdmNDFhNjIwMTAwNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy9ET01NaW1lVHlwZS5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbHVn
aW5EYXRhLmgiCi0jaW5jbHVkZSAiU3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDcgKzY2LDcg
QEAgU3RyaW5nIERPTU1pbWVUeXBlOjpkZXNjcmlwdGlvbigpIGNvbnN0CiAKIFJlZlB0cjxET01Q
bHVnaW4+IERPTU1pbWVUeXBlOjplbmFibGVkUGx1Z2luKCkgY29uc3QKIHsKLSAgICBpZiAoIW1f
ZnJhbWUgfHwgIW1fZnJhbWUtPnBhZ2UoKSB8fCAhbV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUo
KS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpKQorICAgIGlmICghbV9m
cmFtZSB8fCAhbV9mcmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgp
LmxvYWRlcigpLmFyZVBsdWdpbnNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgVmVjdG9yPE1pbWVDbGFzc0luZm8+IG1pbWVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKaW5k
ZXggYjM1NzRjYWMwZTYwNmM4ZTA2NjZmYTEwYmQzNGQwMzg3ODM0MTQ3MS4uMTFmNjhjMzc5ZWM1
ZTAwM2UyMmE1MTlkNmE3NGE4NDQzNzZmNWMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCkBAIC0z
Nyw3ICszNyw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMTA4LDcgKzEwNyw3IEBAIFZl
Y3RvcjxQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oUGFnZSYg
cGFnZSwgT3B0aW9uYWw8VmVjdG9yCiAgICAgaWYgKG1fY2FjaGVkU3VwcG9ydGVkUGx1Z2luSWRl
bnRpZmllcnMpCiAgICAgICAgIHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzID0gKm1fY2FjaGVk
U3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnM7CiAKLSAgICByZXR1cm4gcGFnZS5tYWluRnJhbWUo
KS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpID8gbV9jYWNoZWRQbHVn
aW5zIDogbV9jYWNoZWRBcHBsaWNhdGlvblBsdWdpbnM7CisgICAgcmV0dXJuIHBhZ2UubWFpbkZy
YW1lKCkubG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKSA/IG1fY2FjaGVkUGx1Z2lucyA6IG1f
Y2FjaGVkQXBwbGljYXRpb25QbHVnaW5zOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7
CiAgICAgVU5VU0VEX1BBUkFNKHN1cHBvcnRlZFBsdWdpbklkZW50aWZpZXJzKTsKQEAgLTE1MSw3
ICsxNTAsNyBAQCB2b2lkIFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cG9wdWxhdGVQbHVnaW5DYWNo
ZShjb25zdCBXZWJDb3JlOjpQYWdlJiBwYWdlKQogICAgICAgICAvLyBBcHBsaWNhdGlvbiBwbHVn
aW5zIGFyZSBub3QgYWZmZWN0ZWQgYnkgZW5hYmxlUGx1Z2lucyBzZXR0aW5nLCBzbyB3ZSBhbHdh
eXMgbmVlZCB0byBzY2FuIHBsdWdpbnMgdG8gZ2V0IHRoZW0uCiAgICAgICAgIGJvb2wgc2hvdWxk
U2NhblBsdWdpbnMgPSB0cnVlOwogI2Vsc2UKLSAgICAgICAgYm9vbCBzaG91bGRTY2FuUGx1Z2lu
cyA9IHBhZ2UubWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdp
bnMoKTsKKyAgICAgICAgYm9vbCBzaG91bGRTY2FuUGx1Z2lucyA9IHBhZ2UubWFpbkZyYW1lKCku
bG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKTsKICNlbmRpZgogICAgICAgICBpZiAoc2hvdWxk
U2NhblBsdWdpbnMpIHsKICAgICAgICAgICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0
ZWN0aW9uRGlzYWJsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA0NDE4
NWQ1YTcyODY2YmZmNjQwMGNmNzM4YjVlMTllM2IwYTUxZjdhLi5jNjJjMWMzNTIzOTVmYmViYmM1
ZmFiMzYwYzY0OGI2NzIwMmZkNTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTg3LDcgKzg3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9VSUV2ZW50V2l0aEtleVN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9X
aWRnZXQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVzLmg+CkBAIC0xNzEzLDcg
KzE3MTIsNyBAQCBPYmplY3RDb250ZW50VHlwZSBXZWJGcmFtZUxvYWRlckNsaWVudDo6b2JqZWN0
Q29udGVudFR5cGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgICAgIHJldHVybiBPYmplY3RD
b250ZW50VHlwZTo6SW1hZ2U7CiAKICAgICBpZiAoV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKSkgewotICAgICAgICBhdXRvIGFsbG93ZWRQbHVnaW5UeXBlcyA9IHdlYkZyYW1lKCku
Y29yZUZyYW1lKCktPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkKKyAg
ICAgICAgYXV0byBhbGxvd2VkUGx1Z2luVHlwZXMgPSB3ZWJGcmFtZSgpLmNvcmVGcmFtZSgpLT5s
b2FkZXIoKS5hcmVQbHVnaW5zRW5hYmxlZCgpCiAgICAgICAgICAgICA/IFBsdWdpbkRhdGE6OkFs
bFBsdWdpbnMgOiBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zOwogICAgICAgICBp
ZiAod2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzTWltZVR5cGUobWlt
ZVR5cGUsIGFsbG93ZWRQbHVnaW5UeXBlcykpCiAgICAgICAgICAgICByZXR1cm4gT2JqZWN0Q29u
dGVudFR5cGU6OlBsdWdJbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZWU4YTU2MWI1NzZmNTRiNjhjMWFkMDA3MzkzYTQ3MWQ1Mjc5MGIzMC4u
MzMzNzhhMTVjZGQ4NWY3M2ExNDE3M2VkOGU0ZGY1ZWM2M2EzODdlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTk5Niw3ICs5OTYsNyBAQCBS
ZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1M
UGx1Z0luRWxlbWVudCogcGx1Z2luRQogICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBl
ID0gcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6Oldh
aXRpbmdGb3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QgOiBQbHVnaW5Qcm9j
ZXNzVHlwZU5vcm1hbDsKICNlbmRpZgogCi0gICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBs
dWdpbnMgPSAhZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFs
bG93UGx1Z2lucygpOworICAgIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIWZy
YW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKTsKIAogICAgIHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5
OwpAQCAtNTI0MCw3ICs1MjQwLDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVSZXNw
b25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICNpZiBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKICAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5OwotICAgIGJv
b2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID0gIW1fbWFpbkZyYW1lLT5jb3JlRnJhbWUo
KS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKKyAgICBib29sIGFs
bG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxv
YWRlcigpLmFyZVBsdWdpbnNFbmFibGVkKCk7CiAKICAgICB1aW50NjRfdCBwbHVnaW5Qcm9jZXNz
VG9rZW47CiAgICAgU3RyaW5nIG5ld01JTUVUeXBlOwpAQCAtNTc4OCw3ICs1Nzg4LDcgQEAgYm9v
bCBXZWJQYWdlOjpjYW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3Qg
RnVuY3Rpb248Ym9vbChjb25zdAogICAgIGlmICghbWltZVR5cGUuaXNOdWxsKCkgJiYgbV9taW1l
VHlwZXNXaXRoQ3VzdG9tQ29udGVudFByb3ZpZGVycy5jb250YWlucyhtaW1lVHlwZSkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRl
cigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgJiYgcGx1Z2luc1N1cHBvcnQobWlt
ZVR5cGUsIFBsdWdpbkRhdGE6OkFsbFBsdWdpbnMpKQorICAgIGlmIChjb3JlUGFnZSgpLT5tYWlu
RnJhbWUoKS5sb2FkZXIoKS5hcmVQbHVnaW5zRW5hYmxlZCgpICYmIHBsdWdpbnNTdXBwb3J0KG1p
bWVUeXBlLCBQbHVnaW5EYXRhOjpBbGxQbHVnaW5zKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICAvLyBXZSBjYW4gdXNlIGFwcGxpY2F0aW9uIHBsdWdpbnMgZXZlbiBpZiBwbHVnaW5zIGFy
ZW4ndCBlbmFibGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCmluZGV4IDU1NDY1MWNh
YmYzMWFhMGU1MjQ5OWZlNmQwYTQ0YWQ1YmMzZmQzNTguLmExYWFiNzMwNjY0NzgzZGVjMGQxNmI3
ODljNWFkZTg2ZTQ3NWU1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KQEAgLTMw
LDcgKzMwLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RnJhbWVMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9TdWJmcmFtZUxvYWRlci5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC02Myw3ICs2Miw3IEBAIFZlY3RvcjxXZWJD
b3JlOjpQbHVnaW5JbmZvPiBXZWJQbHVnaW5JbmZvUHJvdmlkZXI6OnBsdWdpbkluZm8oV2ViQ29y
ZTo6UGFnZSYgcGFnCiAKIAogICAgIC8vIFdlYktpdDEgaGFzIG5vIGFwcGxpY2F0aW9uIHBsdWct
aW5zLCBzbyB3ZSBkb24ndCBuZWVkIHRvIGFkZCB0aGVtIGhlcmUuCi0gICAgaWYgKCFwYWdlLm1h
aW5GcmFtZSgpLmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAg
aWYgKCFwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLmFyZVBsdWdpbnNFbmFibGVkKCkpCiAgICAg
ICAgIHJldHVybiBwbHVnaW5zOwogCiAgICAgZm9yIChXZWJQbHVnaW5QYWNrYWdlICpwbHVnaW4g
aW4gW1dlYlBsdWdpbkRhdGFiYXNlIHNoYXJlZERhdGFiYXNlXS5wbHVnaW5zKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYTgxYzMwYjdhOTk4NjM4
MzliMDUxYzQ1OWFmZTA1ZTAyNzhlZDRkYS4uNGVkODc4NDgxOWViMTBjMDY3MmNhOTcyNTg3Zjgz
Y2QyZWI3ZjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCkBAIC05NzcsNyArOTc3LDcgQEAgc3RhdGljIE5TVVJMICpjcmVhdGVVbmlxdWVXZWJEYXRh
VVJMKCk7CiAKICAgICBpZiAoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0TUlNRVR5
cGUobWltZVR5cGUpCiAgICAgICAgIHx8IFdlYkNvcmU6OkltYWdlOjpzdXBwb3J0c1R5cGUobWlt
ZVR5cGUpCi0gICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEtPnN1cHBvcnRzV2Vi
VmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5EYXRhOjpBbGxQbHVnaW5z
KSAmJiBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAg
ICAgICAgfHwgKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNXZWJWaXNpYmxlTWlt
ZVR5cGUobWltZVR5cGUsIFdlYkNvcmU6OlBsdWdpbkRhdGE6OkFsbFBsdWdpbnMpICYmIGZyYW1l
LT5sb2FkZXIoKS5hcmVQbHVnaW5zRW5hYmxlZCgpKQogICAgICAgICB8fCAocGx1Z2luRGF0YSAm
JiBwbHVnaW5EYXRhLT5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1lVHlwZSwgV2ViQ29y
ZTo6UGx1Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2lucykpKQogICAgICAgICByZXR1cm4g
Tk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKaW5kZXggOWJjZTM2OGFkYmE0NDA3
OTMxZTI1NGQ2MTYwMzYyM2VkYTc1MDBmOS4uNzIxNjk0NzM0ZDQwZGQ2MzYwOTM1MWMzOWNlODNk
YjIyM2E1YWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAKQEAgLTE2Miw3ICsx
NjIsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Nob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU29ja2V0
UHJvdmlkZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N1YmZyYW1lTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TeXN0ZW1JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SXRlcmF0b3Iu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJDb250ZW50Q29udHJvbGxlci5oPgpAQCAtMjk3Miwx
NCArMjk3MSwxNCBAQCBIUkVTVUxUIFdlYlZpZXc6OmNhblNob3dNSU1FVHlwZShfSW5fIEJTVFIg
bWltZVR5cGUsIF9PdXRfIEJPT0wqIGNhblNob3cpCiBib29sIFdlYlZpZXc6OmNhblNob3dNSU1F
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBj
b3JlKG1fbWFpbkZyYW1lKTsKLSAgICBib29sIGFsbG93UGx1Z2lucyA9IGNvcmVGcmFtZSAmJiBj
b3JlRnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7CisgICAg
Ym9vbCBhcmVQbHVnaW5zRW5hYmxlZCA9IGNvcmVGcmFtZSAmJiBjb3JlRnJhbWUtPmxvYWRlcigp
LmFyZVBsdWdpbnNFbmFibGVkKCk7CiAKICAgICBib29sIGNhblNob3cgPSBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1N1cHBvcnRlZEltYWdlTUlNRVR5cGUobWltZVR5cGUpCiAgICAgICAgIHx8IE1JTUVU
eXBlUmVnaXN0cnk6OmlzU3VwcG9ydGVkTm9uSW1hZ2VNSU1FVHlwZShtaW1lVHlwZSkKICAgICAg
ICAgfHwgTUlNRVR5cGVSZWdpc3RyeTo6aXNTdXBwb3J0ZWRNZWRpYU1JTUVUeXBlKG1pbWVUeXBl
KTsKIAogICAgIGlmICghY2FuU2hvdyAmJiBtX3BhZ2UpIHsKLSAgICAgICAgY2FuU2hvdyA9ICht
X3BhZ2UtPnBsdWdpbkRhdGEoKS5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1lVHlwZSwg
UGx1Z2luRGF0YTo6QWxsUGx1Z2lucykgJiYgYWxsb3dQbHVnaW5zKQorICAgICAgICBjYW5TaG93
ID0gKG1fcGFnZS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVU
eXBlLCBQbHVnaW5EYXRhOjpBbGxQbHVnaW5zKSAmJiBhcmVQbHVnaW5zRW5hYmxlZCkKICAgICAg
ICAgICAgIHx8IG1fcGFnZS0+cGx1Z2luRGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBl
KG1pbWVUeXBlLCBQbHVnaW5EYXRhOjpPbmx5QXBwbGljYXRpb25QbHVnaW5zKTsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396412</attachid>
            <date>2020-04-14 07:17:03 -0700</date>
            <delta_ts>2020-04-17 00:52:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205876-20200414161701.patch</filename>
            <type>text/plain</type>
            <size>18683</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EwMDQ4M2QyMDU4OGY5
YmE1ZDcxYzFjYzk2NjQ5MzVmZjAwY2ZhOS4uOTliNWE3NTIxNmFiMGQ2YTNjMTVlZDkzMzgzNzQ0
Y2I2YWFkYjRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA0LTE0ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgTW92ZSBhbGxvd1BsdWdpbnMgdG8g
RnJhbWVMb2FkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNTg3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVyIHRvIHJlZHVjZQorICAgICAgICBw
b2ludGVyIGRlcmVmZXJlbmNlcyBhbmQgbGVzc2VuIGRlcGVuZGVuY3kKKyAgICAgICAgb24gU3Vi
ZnJhbWVMb2FkZXIuIEFsc28gcmVuYW1lIHRvCisgICAgICAgIGFyZVBsdWdpbnNFbmFibGVkIHNp
bmNlIHRoZSBtZXRob2QgaXMgYXNraW5nCisgICAgICAgIHRoZSBTZXR0aW5nIHdpdGggdGhlIHNh
bWUgbmFtZS4KKworICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlvbjo6Y3JlYXRlRG9jdW1lbnQpOgorICAgICAgICAq
IGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OnJl
bmRlcmVySXNFdmVyTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmFyZVBsdWdpbnNFbmFibGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvU3ViZnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFBcHBs
ZXRXaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6U3ViZnJhbWVMb2FkZXI6OmFsbG93UGx1Z2lu
cyk6IERlbGV0ZWQuCisgICAgICAgICogbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmg6CisgICAgICAg
ICogcGx1Z2lucy9ET01NaW1lVHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01NaW1lVHlw
ZTo6ZW5hYmxlZFBsdWdpbiBjb25zdCk6CisKIDIwMjAtMDQtMTQgIENsYXVkaW8gU2FhdmVkcmEg
IDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGFwdCB0byBHZGtWaXN1
YWwgZGVwcmVjYXRpb24gYW5kIHJlbW92YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYzFhMTI3ZWNmYjE5MDk2NmJl
ZjY3NDAyM2FhZTgwMDBmMGU3YmUyNy4uOGU2MTk0MWQxYmMxOTUzOGY5ZGFhNTEwMmM2ZDJkODIw
NWQxMWY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMC0wNC0xNCAgUm9iIEJ1aXMg
IDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1l
TG9hZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDU4NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGFwdCB0byBBUEkgY2hhbmdlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1dlYlBs
dWdpbkluZm9Qcm92aWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92
aWRlcjo6cGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkluZm9Qcm92aWRl
cjo6cG9wdWxhdGVQbHVnaW5DYWNoZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVQbHVn
aW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVSZXNwb25zZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblNob3dNSU1FVHlwZSBjb25zdCk6CisKIDIw
MjAtMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIERv
IG5vdCBwcm9jZXNzIFJUQyBOZXR3b3JrIG1lc3NhZ2VzIGNvbWluZyBmcm9tIE5ldHdvcmtQcm9j
ZXNzIGlmIExpYldlYlJUQ05ldHdvcmsgaXMgbm90IGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IDk4N2Q1NTYzMGVmYWQ0NWZjNDdmZWY3NWUyNWQxNDAxNmE1ZWQ4N2EuLjNm
NGMyZmNhNmQ3MGUwMGU2ZjBiNTBlNjdmNzA0NTg2NzU3OTQ4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNC0xNCAgUm9iIEJ1aXMgIDxyYnVp
c0BpZ2FsaWEuY29tPgorCisgICAgICAgIE1vdmUgYWxsb3dQbHVnaW5zIHRvIEZyYW1lTG9hZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU4NzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB0
byBBUEkgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGx1Z2luSW5mb1By
b3ZpZGVyLm1tOgorICAgICAgICAoV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwbHVnaW5JbmZvKToK
KyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoLVtXZWJGcmFtZSBfY2Fu
UHJvdmlkZURvY3VtZW50U291cmNlXSk6CisKIDIwMjAtMDQtMTMgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI1OTg0Myk6ICJN
aXNzaW5nIFBsdWctSW4iIHdoZW4gZHJhZ2dpbmcgYW4gaW1hZ2UgaW50byBNYWlsIENvbXBvc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCA4MDRiZTVhNDRhY2Y0NGJmN2Y1ZDZmYzZh
NTA5ZDdjMDRiMzA2ZGM4Li4xNmFjZWRkNTQxNmExNmI4M2VhYWM3NDY4NmJkYmNiYjdiNTg0OWVl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDQt
MTQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KKworICAgICAgICBNb3ZlIGFsbG93UGx1
Z2lucyB0byBGcmFtZUxvYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1ODc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRhcHQgdG8gQVBJIGNoYW5nZS4KKworICAgICAgICAqIFdlYlZpZXcuY3Bw
OgorICAgICAgICAoV2ViVmlldzo6Y2FuU2hvd01JTUVUeXBlKToKKwogMjAyMC0wNC0wOCAgRGFu
aWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU2hvdWxkIGZpbmQgdG91
Y2gtYWN0aW9uIGVsZW1lbnRzIGluc2lkZSBub24tY29tcG9zaXRlZCBpZnJhbWVzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmNwcAppbmRleCA5ZWRjMjBkYTc4ZjAyMzQ5MDVi
NjY1ZWQ5MjQ4NmRjMDVjMzk2YzI2Li41NjQ5ZGViOTUzNTM4NjUyNGVlMGYyZTY5YzRmMWQwZGE4
ZTEwODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTUx
LDcgKzUxLDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpblBvbGljeS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVldENvbnRlbnRzLmgiCi0jaW5jbHVkZSAi
U3ViZnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dERvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiWE1MRG9jdW1lbnQuaCIKQEAgLTE3Myw3ICsxNzIsNyBAQCBSZWY8
RG9jdW1lbnQ+IERPTUltcGxlbWVudGF0aW9uOjpjcmVhdGVEb2N1bWVudChjb25zdCBTdHJpbmcm
IHR5cGUsIEZyYW1lKiBmcmFtZQogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpcyB0aGUgcmVsYXRp
dmVseSBjb3N0bHkgbG9va3VwIHRoYXQgcmVxdWlyZXMgaW5pdGlhbGl6aW5nIHRoZSBwbHVnLWlu
IGRhdGFiYXNlLgogICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKSB7Ci0gICAgICAgIGF1
dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gZnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCku
YWxsb3dQbHVnaW5zKCkKKyAgICAgICAgYXV0byBhbGxvd2VkUGx1Z2luVHlwZXMgPSBmcmFtZS0+
bG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKQogICAgICAgICAgICAgPyBQbHVnaW5EYXRhOjpB
bGxQbHVnaW5zIDogUGx1Z2luRGF0YTo6T25seUFwcGxpY2F0aW9uUGx1Z2luczsKICAgICAgICAg
aWYgKGZyYW1lLT5wYWdlKCktPnBsdWdpbkRhdGEoKS5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlw
ZSh0eXBlLCBhbGxvd2VkUGx1Z2luVHlwZXMpKQogICAgICAgICAgICAgcmV0dXJuIFBsdWdpbkRv
Y3VtZW50OjpjcmVhdGUoKmZyYW1lLCB1cmwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cAppbmRleCA0NTc3MmQxM2RkYWU1NTRjY2JjNDcxYjQzYzExZmQ1YTcwODRiMDMzLi44ZTI5MmUw
ZDA0MGNhOGIyMGM2MDNiOTJiMmJmYjVjNjUyYWRmYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNiBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNp
bmNsdWRlICJTaW11bGF0ZWRDbGljay5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgot
I2luY2x1ZGUgIlN1YmZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
IlhNTE5hbWVzLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCkBAIC03NDEsNyArNzQwLDcgQEAgYm9v
bCBIVE1MRWxlbWVudDo6cmVuZGVyZXJJc0V2ZXJOZWVkZWQoKQogICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0gZWxzZSBpZiAoaGFzVGFnTmFtZShub2VtYmVkVGFnKSkgewogICAgICAg
ICBSZWZQdHI8RnJhbWU+IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgICAgICBpZiAo
ZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkp
CisgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+bG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIFN0eWxlZEVs
ZW1lbnQ6OnJlbmRlcmVySXNFdmVyTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAppbmRleCBjNzE2ZDcyODBmNDYyY2I1NjczNzU3YjRiYTRlM2IyNGFiZWU4ZGUwLi4w
NDYzYWE0N2E3NDMyOTZjNjQ4ZThhMWRlMWZhMTlkY2M5NjM0NmE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxNTYsNiArNDE1NiwxMSBAQCBib29sIEZyYW1lTG9h
ZGVyOjpzaG91bGRTdXBwcmVzc1RleHRJbnB1dEZyb21FZGl0aW5nKCkgY29uc3QKICAgICByZXR1
cm4gbV9mcmFtZS5zZXR0aW5ncygpLnNob3VsZFN1cHByZXNzVGV4dElucHV0RnJvbUVkaXRpbmdE
dXJpbmdQcm92aXNpb25hbE5hdmlnYXRpb24oKSAmJiBtX3N0YXRlID09IEZyYW1lU3RhdGVQcm92
aXNpb25hbDsKIH0KIAorYm9vbCBGcmFtZUxvYWRlcjo6YXJlUGx1Z2luc0VuYWJsZWQoKQorewor
ICAgIHJldHVybiBtX2ZyYW1lLnNldHRpbmdzKCkuYXJlUGx1Z2luc0VuYWJsZWQoKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjdW5kZWYgUEFHRV9JRApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuaAppbmRleCBiNTE0NDgxYTdmZWM5ZTEyZjc4NDZhZTlmNjE5OTEzYWQ2OWNl
YjE5Li4yZGFmODNhZWZmMDMyOGMxNThiOTg2NzBkOTRiMWE2YWY4NTE0ZjIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzMyLDYgKzMzMiw4IEBAIHB1YmxpYzoKICAgICAv
LyBGb3Igc3VicmVzb3VyY2UgcmVxdWVzdHMgdGhlIEZyYW1lTG9hZFR5cGUgcGFyYW1ldGVyIGhh
cyBubyBlZmZlY3QgYW5kIGNhbiBiZSBza2lwcGVkLgogICAgIHZvaWQgYWRkRXh0cmFGaWVsZHNU
b1JlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiwgSXNNYWluUmVzb3VyY2UsIEZyYW1lTG9hZFR5cGUg
PSBGcmFtZUxvYWRUeXBlOjpTdGFuZGFyZCk7CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGFy
ZVBsdWdpbnNFbmFibGVkKCk7CisKIHByaXZhdGU6CiAgICAgZW51bSBGb3JtU3VibWlzc2lvbkNh
Y2hlTG9hZFBvbGljeSB7CiAgICAgICAgIE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1
Ym1pc3Npb25JdGVtLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKaW5k
ZXggYmI2N2JkMzM5M2Q5NzZhOTEzMjczMjQyYWJiYTM4ZmI5ZTk2ZmVkYy4uMDhmNThhMzY4NWU2
M2IyMmJlYTllMWQwNzZmNTE4M2ViYzRhYmRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vi
ZnJhbWVMb2FkZXIuY3BwCkBAIC0xNTQsNyArMTU0LDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6
cmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBvd25lckVsZW1lbnQsIGNvbnN0
IFUKICAgICAvLyBBcHBsaWNhdGlvbiBwbHVnLWlucyBhcmUgcGx1Zy1pbnMgaW1wbGVtZW50ZWQg
YnkgdGhlIHVzZXIgYWdlbnQsIGZvciBleGFtcGxlIFF0IHBsdWctaW5zLAogICAgIC8vIGFzIG9w
cG9zZWQgdG8gdGhpcmQtcGFydHkgY29kZSBzdWNoIGFzIEZsYXNoLiBUaGUgdXNlciBhZ2VudCBk
ZWNpZGVzIHdoZXRoZXIgb3Igbm90IHRoZXkgYXJlCiAgICAgLy8gcGVybWl0dGVkLCByYXRoZXIg
dGhhbiBXZWJLaXQuCi0gICAgaWYgKCghYWxsb3dQbHVnaW5zKCkgJiYgIU1JTUVUeXBlUmVnaXN0
cnk6OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQorICAgIGlmICghKG1f
ZnJhbWUuc2V0dGluZ3MoKS5hcmVQbHVnaW5zRW5hYmxlZCgpIHx8IE1JTUVUeXBlUmVnaXN0cnk6
OmlzQXBwbGljYXRpb25QbHVnaW5NSU1FVHlwZShtaW1lVHlwZSkpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBpZiAoIXBsdWdpbklzTG9hZGFibGUodXJsLCBtaW1lVHlwZSkpCkBAIC0y
NzksNyArMjc5LDcgQEAgUmVmUHRyPFdpZGdldD4gU3ViZnJhbWVMb2FkZXI6OmNyZWF0ZUphdmFB
cHBsZXRXaWRnZXQoY29uc3QgSW50U2l6ZSYgc2l6ZSwgSFRNTEEKICAgICBVUkwgYmFzZVVSTCA9
IGNvbXBsZXRlVVJMKGJhc2VVUkxTdHJpbmcpOwogCiAgICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0
OwotICAgIGlmIChhbGxvd1BsdWdpbnMoKSkKKyAgICBpZiAobV9mcmFtZS5zZXR0aW5ncygpLmFy
ZVBsdWdpbnNFbmFibGVkKCkpCiAgICAgICAgIHdpZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xp
ZW50KCkuY3JlYXRlSmF2YUFwcGxldFdpZGdldChzaXplLCBlbGVtZW50LCBiYXNlVVJMLCBwYXJh
bU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAKICAgICBsb2dQbHVnaW5SZXF1ZXN0KG1fZnJhbWUucGFn
ZSgpLCBlbGVtZW50LnNlcnZpY2VUeXBlKCksIFN0cmluZygpLCB3aWRnZXQpOwpAQCAtMzgyLDEx
ICszODIsNiBAQCBSZWZQdHI8RnJhbWU+IFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRN
TEZyYW1lT3duZXJFbGVtZW50JiBvd25lckVsZW1lbnQsCiAgICAgcmV0dXJuIGZyYW1lOwogfQog
Ci1ib29sIFN1YmZyYW1lTG9hZGVyOjphbGxvd1BsdWdpbnMoKQotewotICAgIHJldHVybiBtX2Zy
YW1lLnNldHRpbmdzKCkuYXJlUGx1Z2luc0VuYWJsZWQoKTsKLX0KLQogYm9vbCBTdWJmcmFtZUxv
YWRlcjo6c2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVU
eXBlLCBib29sIGhhc0ZhbGxiYWNrLCBib29sJiB1c2VGYWxsYmFjaykKIHsKICAgICBpZiAobV9m
cmFtZS5sb2FkZXIoKS5jbGllbnQoKS5zaG91bGRBbHdheXNVc2VQbHVnaW5Eb2N1bWVudChtaW1l
VHlwZSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKaW5kZXggMjRmN2U0
MzFkNjU5MWI3MmU0YjFlYzAwMDIxMmJkYzA4ODEyZmU2ZC4uNDY1M2VhMTc4MjQ0NmYxYzRjMmZm
ODg3MmJkYjk4NmQwMmE2MjA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1
YmZyYW1lTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmgKQEAgLTYxLDggKzYxLDYgQEAgcHVibGljOgogCiAgICAgUmVmUHRyPFdpZGdldD4gY3JlYXRl
SmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQmLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFt
VmFsdWVzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgYWxsb3dQbHVnaW5zKCk7Ci0KICAg
ICBib29sIGNvbnRhaW5zUGx1Z2lucygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGFpbnNQbHVnaW5z
OyB9CiAgICAgCiAgICAgYm9vbCByZXNvdXJjZVdpbGxVc2VQbHVnaW4oY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGx1Z2lucy9ET01NaW1lVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVU
eXBlLmNwcAppbmRleCAxYjJkNzUyZDJlZDA2NzAyMzc5NjMyZWQ4YWJlMDg0Y2E3MTZmYjgzLi5h
ZTZhOTJmMzJiMjg4MWIyNTc3OWU4NTk1YTNkN2Y0MWE2MjAxMDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL0RPTU1pbWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL0RPTU1pbWVUeXBlLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGEuaCIKLSNp
bmNsdWRlICJTdWJmcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjcsNyArNjYsNyBAQCBTdHJpbmcgRE9N
TWltZVR5cGU6OmRlc2NyaXB0aW9uKCkgY29uc3QKIAogUmVmUHRyPERPTVBsdWdpbj4gRE9NTWlt
ZVR5cGU6OmVuYWJsZWRQbHVnaW4oKSBjb25zdAogewotICAgIGlmICghbV9mcmFtZSB8fCAhbV9m
cmFtZS0+cGFnZSgpIHx8ICFtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLmxvYWRlcigpLnN1
YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkpCisgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2Zy
YW1lLT5wYWdlKCkgfHwgIW1fZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuYXJl
UGx1Z2luc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBWZWN0b3I8
TWltZUNsYXNzSW5mbz4gbWltZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvV2ViUGx1Z2luSW5mb1Byb3ZpZGVyLmNwcAppbmRleCBiMzU3NGNhYzBl
NjA2YzhlMDY2NmZhMTBiZDM0ZDAzODc4MzQxNDcxLi4xMWY2OGMzNzllYzVlMDAzZTIyYTUxOWQ2
YTc0YTg0NDM3NmY1YzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9XZWJQbHVnaW5JbmZvUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1dlYlBsdWdpbkluZm9Qcm92aWRlci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xMDgsNyArMTA3LDcgQEAgVmVjdG9yPFBsdWdpbklu
Zm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhQYWdlJiBwYWdlLCBPcHRpb25h
bDxWZWN0b3IKICAgICBpZiAobV9jYWNoZWRTdXBwb3J0ZWRQbHVnaW5JZGVudGlmaWVycykKICAg
ICAgICAgc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMgPSAqbV9jYWNoZWRTdXBwb3J0ZWRQbHVn
aW5JZGVudGlmaWVyczsKIAotICAgIHJldHVybiBwYWdlLm1haW5GcmFtZSgpLmxvYWRlcigpLnN1
YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCkgPyBtX2NhY2hlZFBsdWdpbnMgOiBtX2NhY2hl
ZEFwcGxpY2F0aW9uUGx1Z2luczsKKyAgICByZXR1cm4gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIo
KS5hcmVQbHVnaW5zRW5hYmxlZCgpID8gbV9jYWNoZWRQbHVnaW5zIDogbV9jYWNoZWRBcHBsaWNh
dGlvblBsdWdpbnM7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKICAgICBVTlVTRURf
UEFSQU0oc3VwcG9ydGVkUGx1Z2luSWRlbnRpZmllcnMpOwpAQCAtMTUxLDcgKzE1MCw3IEBAIHZv
aWQgV2ViUGx1Z2luSW5mb1Byb3ZpZGVyOjpwb3B1bGF0ZVBsdWdpbkNhY2hlKGNvbnN0IFdlYkNv
cmU6OlBhZ2UmIHBhZ2UpCiAgICAgICAgIC8vIEFwcGxpY2F0aW9uIHBsdWdpbnMgYXJlIG5vdCBh
ZmZlY3RlZCBieSBlbmFibGVQbHVnaW5zIHNldHRpbmcsIHNvIHdlIGFsd2F5cyBuZWVkIHRvIHNj
YW4gcGx1Z2lucyB0byBnZXQgdGhlbS4KICAgICAgICAgYm9vbCBzaG91bGRTY2FuUGx1Z2lucyA9
IHRydWU7CiAjZWxzZQotICAgICAgICBib29sIHNob3VsZFNjYW5QbHVnaW5zID0gcGFnZS5tYWlu
RnJhbWUoKS5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpOworICAgICAg
ICBib29sIHNob3VsZFNjYW5QbHVnaW5zID0gcGFnZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5hcmVQ
bHVnaW5zRW5hYmxlZCgpOwogI2VuZGlmCiAgICAgICAgIGlmIChzaG91bGRTY2FuUGx1Z2lucykg
ewogICAgICAgICAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxl
cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDQ0MTg1ZDVhNzI4NjZiZmY2
NDAwY2Y3MzhiNWUxOWUzYjBhNTFmN2EuLmM2MmMxYzM1MjM5NWZiZWJiYzVmYWIzNjBjNjQ4YjY3
MjAyZmQ1MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtODcsNyArODcs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1VJRXZlbnRXaXRoS2V5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dpZGdldC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvV2luZG93RmVhdHVyZXMuaD4KQEAgLTE3MTMsNyArMTcxMiw3IEBAIE9i
amVjdENvbnRlbnRUeXBlIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpvYmplY3RDb250ZW50VHlwZShj
b25zdCBVUkwmIHVybCwgY29uc3QKICAgICAgICAgcmV0dXJuIE9iamVjdENvbnRlbnRUeXBlOjpJ
bWFnZTsKIAogICAgIGlmIChXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Ci0g
ICAgICAgIGF1dG8gYWxsb3dlZFBsdWdpblR5cGVzID0gd2ViRnJhbWUoKS5jb3JlRnJhbWUoKS0+
bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKQorICAgICAgICBhdXRvIGFs
bG93ZWRQbHVnaW5UeXBlcyA9IHdlYkZyYW1lKCkuY29yZUZyYW1lKCktPmxvYWRlcigpLmFyZVBs
dWdpbnNFbmFibGVkKCkKICAgICAgICAgICAgID8gUGx1Z2luRGF0YTo6QWxsUGx1Z2lucyA6IFBs
dWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdpbnM7CiAgICAgICAgIGlmICh3ZWJQYWdlLT5j
b3JlUGFnZSgpLT5wbHVnaW5EYXRhKCkuc3VwcG9ydHNNaW1lVHlwZShtaW1lVHlwZSwgYWxsb3dl
ZFBsdWdpblR5cGVzKSkKICAgICAgICAgICAgIHJldHVybiBPYmplY3RDb250ZW50VHlwZTo6UGx1
Z0luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBlZThhNTYxYjU3NmY1NGI2OGMxYWQwMDczOTNhNDcxZDUyNzkwYjMwLi4zMzM3OGExNWNkZDg1
ZjczYTE0MTczZWQ4ZTRkZjVlYzYzYTM4N2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtOTk2LDcgKzk5Niw3IEBAIFJlZlB0cjxQbHVnaW4+
IFdlYlBhZ2U6OmNyZWF0ZVBsdWdpbihXZWJGcmFtZSogZnJhbWUsIEhUTUxQbHVnSW5FbGVtZW50
KiBwbHVnaW5FCiAgICAgUGx1Z2luUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBwbHVnaW5FbGVt
ZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6V2FpdGluZ0ZvclNuYXBz
aG90ID8gUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCA6IFBsdWdpblByb2Nlc3NUeXBlTm9ybWFs
OwogI2VuZGlmCiAKLSAgICBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFmcmFt
ZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCkuYWxsb3dQbHVnaW5zKCk7
CisgICAgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMgPSAhZnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS5hcmVQbHVnaW5zRW5hYmxlZCgpOwogCiAgICAgdWludDY0X3QgcGx1Z2lu
UHJvY2Vzc1Rva2VuOwogICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3k7CkBAIC01MjQwLDcg
KzUyNDAsNyBAQCBib29sIFdlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJlc3BvbnNlKGNvbnN0IFJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3k7Ci0gICAgYm9vbCBhbGxvd09ubHlB
cHBsaWNhdGlvblBsdWdpbnMgPSAhbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5z
dWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpOworICAgIGJvb2wgYWxsb3dPbmx5QXBwbGlj
YXRpb25QbHVnaW5zID0gIW1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkuYXJlUGx1
Z2luc0VuYWJsZWQoKTsKIAogICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKICAgICBT
dHJpbmcgbmV3TUlNRVR5cGU7CkBAIC01Nzg4LDcgKzU3ODgsNyBAQCBib29sIFdlYlBhZ2U6OmNh
blNob3dNSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBGdW5jdGlvbjxib29s
KGNvbnN0CiAgICAgaWYgKCFtaW1lVHlwZS5pc051bGwoKSAmJiBtX21pbWVUeXBlc1dpdGhDdXN0
b21Db250ZW50UHJvdmlkZXJzLmNvbnRhaW5zKG1pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKLSAgICBpZiAoY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkubG9hZGVyKCkuc3ViZnJhbWVM
b2FkZXIoKS5hbGxvd1BsdWdpbnMoKSAmJiBwbHVnaW5zU3VwcG9ydChtaW1lVHlwZSwgUGx1Z2lu
RGF0YTo6QWxsUGx1Z2lucykpCisgICAgaWYgKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLmxvYWRl
cigpLmFyZVBsdWdpbnNFbmFibGVkKCkgJiYgcGx1Z2luc1N1cHBvcnQobWltZVR5cGUsIFBsdWdp
bkRhdGE6OkFsbFBsdWdpbnMpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIGNh
biB1c2UgYXBwbGljYXRpb24gcGx1Z2lucyBldmVuIGlmIHBsdWdpbnMgYXJlbid0IGVuYWJsZWQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bHVnaW5JbmZvUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbHVnaW5JbmZvUHJvdmlkZXIubW0KaW5kZXggNTU0NjUxY2FiZjMxYWEwZTUyNDk5
ZmU2ZDBhNDRhZDViYzNmZDM1OC4uYTFhYWI3MzA2NjQ3ODNkZWMwZDE2Yjc4OWM1YWRlODZlNDc1
ZTUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGx1Z2luSW5mb1Byb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsdWdpbkluZm9Qcm92aWRlci5tbQpAQCAtMzAsNyArMzAsNiBAQAog
I2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1N1YmZyYW1lTG9h
ZGVyLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTYzLDcgKzYyLDcgQEAgVmVjdG9yPFdlYkNvcmU6OlBsdWdpbklu
Zm8+IFdlYlBsdWdpbkluZm9Qcm92aWRlcjo6cGx1Z2luSW5mbyhXZWJDb3JlOjpQYWdlJiBwYWcK
IAogCiAgICAgLy8gV2ViS2l0MSBoYXMgbm8gYXBwbGljYXRpb24gcGx1Zy1pbnMsIHNvIHdlIGRv
bid0IG5lZWQgdG8gYWRkIHRoZW0gaGVyZS4KLSAgICBpZiAoIXBhZ2UubWFpbkZyYW1lKCkubG9h
ZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKSkKKyAgICBpZiAoIXBhZ2UubWFp
bkZyYW1lKCkubG9hZGVyKCkuYXJlUGx1Z2luc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIHBs
dWdpbnM7CiAKICAgICBmb3IgKFdlYlBsdWdpblBhY2thZ2UgKnBsdWdpbiBpbiBbV2ViUGx1Z2lu
RGF0YWJhc2Ugc2hhcmVkRGF0YWJhc2VdLnBsdWdpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBhODFjMzBiN2E5OTg2MzgzOWIwNTFjNDU5YWZl
MDVlMDI3OGVkNGRhLi40ZWQ4Nzg0ODE5ZWIxMGMwNjcyY2E5NzI1ODdmODNjZDJlYjdmMmVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTk3Nyw3
ICs5NzcsNyBAQCBzdGF0aWMgTlNVUkwgKmNyZWF0ZVVuaXF1ZVdlYkRhdGFVUkwoKTsKIAogICAg
IGlmIChXZWJDb3JlOjpNSU1FVHlwZVJlZ2lzdHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkK
ICAgICAgICAgfHwgV2ViQ29yZTo6SW1hZ2U6OnN1cHBvcnRzVHlwZShtaW1lVHlwZSkKLSAgICAg
ICAgfHwgKHBsdWdpbkRhdGEgJiYgcGx1Z2luRGF0YS0+c3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5
cGUobWltZVR5cGUsIFdlYkNvcmU6OlBsdWdpbkRhdGE6OkFsbFBsdWdpbnMpICYmIGZyYW1lLT5s
b2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmFsbG93UGx1Z2lucygpKQorICAgICAgICB8fCAocGx1
Z2luRGF0YSAmJiBwbHVnaW5EYXRhLT5zdXBwb3J0c1dlYlZpc2libGVNaW1lVHlwZShtaW1lVHlw
ZSwgV2ViQ29yZTo6UGx1Z2luRGF0YTo6QWxsUGx1Z2lucykgJiYgZnJhbWUtPmxvYWRlcigpLmFy
ZVBsdWdpbnNFbmFibGVkKCkpCiAgICAgICAgIHx8IChwbHVnaW5EYXRhICYmIHBsdWdpbkRhdGEt
PnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBXZWJDb3JlOjpQbHVnaW5EYXRh
OjpPbmx5QXBwbGljYXRpb25QbHVnaW5zKSkpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAppbmRleCA5YmNlMzY4YWRiYTQ0MDc5MzFlMjU0ZDYxNjAz
NjIzZWRhNzUwMGY5Li43MjE2OTQ3MzRkNDBkZDYzNjA5MzUxYzM5Y2U4M2RiMjIzYTVhYzI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcApAQCAtMTYyLDcgKzE2Miw2IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hvdWxkVHJlYXRB
c0NvbnRpbnVpbmdMb2FkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb2NrZXRQcm92aWRlci5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N5
c3RlbUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJdGVyYXRvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvVXNlckNvbnRlbnRDb250cm9sbGVyLmg+CkBAIC0yOTcyLDE0ICsyOTcxLDE0IEBA
IEhSRVNVTFQgV2ViVmlldzo6Y2FuU2hvd01JTUVUeXBlKF9Jbl8gQlNUUiBtaW1lVHlwZSwgX091
dF8gQk9PTCogY2FuU2hvdykKIGJvb2wgV2ViVmlldzo6Y2FuU2hvd01JTUVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUobV9tYWluRnJh
bWUpOwotICAgIGJvb2wgYWxsb3dQbHVnaW5zID0gY29yZUZyYW1lICYmIGNvcmVGcmFtZS0+bG9h
ZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5hbGxvd1BsdWdpbnMoKTsKKyAgICBib29sIGFyZVBsdWdp
bnNFbmFibGVkID0gY29yZUZyYW1lICYmIGNvcmVGcmFtZS0+bG9hZGVyKCkuYXJlUGx1Z2luc0Vu
YWJsZWQoKTsKIAogICAgIGJvb2wgY2FuU2hvdyA9IE1JTUVUeXBlUmVnaXN0cnk6OmlzU3VwcG9y
dGVkSW1hZ2VNSU1FVHlwZShtaW1lVHlwZSkKICAgICAgICAgfHwgTUlNRVR5cGVSZWdpc3RyeTo6
aXNTdXBwb3J0ZWROb25JbWFnZU1JTUVUeXBlKG1pbWVUeXBlKQogICAgICAgICB8fCBNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1N1cHBvcnRlZE1lZGlhTUlNRVR5cGUobWltZVR5cGUpOwogCiAgICAgaWYg
KCFjYW5TaG93ICYmIG1fcGFnZSkgewotICAgICAgICBjYW5TaG93ID0gKG1fcGFnZS0+cGx1Z2lu
RGF0YSgpLnN1cHBvcnRzV2ViVmlzaWJsZU1pbWVUeXBlKG1pbWVUeXBlLCBQbHVnaW5EYXRhOjpB
bGxQbHVnaW5zKSAmJiBhbGxvd1BsdWdpbnMpCisgICAgICAgIGNhblNob3cgPSAobV9wYWdlLT5w
bHVnaW5EYXRhKCkuc3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5cGUobWltZVR5cGUsIFBsdWdpbkRh
dGE6OkFsbFBsdWdpbnMpICYmIGFyZVBsdWdpbnNFbmFibGVkKQogICAgICAgICAgICAgfHwgbV9w
YWdlLT5wbHVnaW5EYXRhKCkuc3VwcG9ydHNXZWJWaXNpYmxlTWltZVR5cGUobWltZVR5cGUsIFBs
dWdpbkRhdGE6Ok9ubHlBcHBsaWNhdGlvblBsdWdpbnMpOwogICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>