<?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>213259</bug_id>
          
          <creation_ts>2020-06-16 13:58:12 -0700</creation_ts>
          <short_desc>FileListCreator should only be used for resolving directories</short_desc>
          <delta_ts>2020-06-16 17:47:17 -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>Forms</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213130</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1663223</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 13:58:12 -0700</bug_when>
    <thetext>FileListCreator should only be used for resolving directories</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663224</commentid>
    <comment_count>1</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 13:59:27 -0700</bug_when>
    <thetext>rdar://problem/64375709</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663261</commentid>
    <comment_count>2</comment_count>
      <attachid>402045</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 15:08:17 -0700</bug_when>
    <thetext>Created attachment 402045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663285</commentid>
    <comment_count>3</comment_count>
      <attachid>402051</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 15:54:07 -0700</bug_when>
    <thetext>Created attachment 402051
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663320</commentid>
    <comment_count>4</comment_count>
      <attachid>402051</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-16 17:11:03 -0700</bug_when>
    <thetext>Comment on attachment 402051
Patch

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

&gt; Source/WebCore/html/FileInputType.cpp:427
&gt; +    m_directoryFileListCreator = DirectoryFileListCreator::create([this, weakThis = makeWeakPtr(*this), icon = makeRefPtr(icon)](Ref&lt;FileList&gt;&amp;&amp; fileList) mutable {
&gt; +        if (!weakThis)
&gt;              return;
&gt; -        setFiles(WTFMove(fileList), icon ? RequestIcon::Yes : RequestIcon::No);
&gt; -        if (icon &amp;&amp; !m_fileList-&gt;isEmpty() &amp;&amp; element())
&gt; -            iconLoaded(WTFMove(icon));
&gt; -        m_fileListCreator = nullptr;
&gt; +        didCreateFileList(WTFMove(fileList), WTFMove(icon));
&gt;      });

Worth adding an ASSERT() that this runs on the main thread?  (Does not have to be addressed to land this since it wasn&apos;t present before.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663323</commentid>
    <comment_count>5</comment_count>
      <attachid>402051</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 17:15:29 -0700</bug_when>
    <thetext>Comment on attachment 402051
Patch

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

&gt;&gt; Source/WebCore/html/FileInputType.cpp:427
&gt;&gt;      });
&gt; 
&gt; Worth adding an ASSERT() that this runs on the main thread?  (Does not have to be addressed to land this since it wasn&apos;t present before.)

👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663325</commentid>
    <comment_count>6</comment_count>
      <attachid>402059</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2020-06-16 17:25:01 -0700</bug_when>
    <thetext>Created attachment 402059
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1663329</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-16 17:47:15 -0700</bug_when>
    <thetext>Committed r263129: &lt;https://trac.webkit.org/changeset/263129&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402059.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402045</attachid>
            <date>2020-06-16 15:08:17 -0700</date>
            <delta_ts>2020-06-16 15:54:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213259-20200616150816.patch</filename>
            <type>text/plain</type>
            <size>28191</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMyZjk2ZTFmODZiODkw
OTQ1YjMwN2RlZjk3YjA3NjBhZTc1NWVjZi4uMTI2MzdjN2FhMWEyYjFkZWQ1NTY4OWVjZDgyMmZm
NjRlODRlMjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA2LTE2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlTGlzdENyZWF0b3Igc2hv
dWxkIG9ubHkgYmUgdXNlZCBmb3IgcmVzb2x2aW5nIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY0Mzc1NzA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERlcGVuZGluZyBvbiB3aGV0aGVyIGRpcmVjdG9yaWVzIHNob3VsZCBiZSBy
ZXNvbHZlZCwgRmlsZUxpc3RDcmVhdG9yOjpjcmVhdGUgd291bGQgZWl0aGVyCisgICAgICAgIHN5
bmNocm9ub3VzbHkgZXhlY3V0ZSBpdHMgY29tcGxldGlvbiBoYW5kbGVyIHRoZW4gcmV0dXJuIG51
bGxwdHIgb3IgYXN5bmNocm9ub3VzbHkgZGlzcGF0Y2gKKyAgICAgICAgaXRzIGNvbXBsZXRpb24g
aGFuZGxlciB0aGVuIHJldHVybiBhIG5vbi1udWxsIFJlZlB0ci4gSW50ZXJmYWNlcyB3aXRoIHNv
bWV0aW1lcy1zeW5jaHJvbm91cworICAgICAgICBjYWxsYmFja3MgY2FuIGJlIGhhcmQgdG8gdXNl
IGNvcnJlY3RseTsgZS5nLiwgcjI2Mjk2MiBmaXhlcyBhIHByb2JsZW0gd2hlcmUKKyAgICAgICAg
RmlsZUlucHV0VHlwZTo6bV9maWxlTGlzdENyZWF0b3Igd2FzIGJlaW5nIG1vZGlmaWVkIGluIGFu
IHVuZXhwZWN0ZWQgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgaW50ZXJm
YWNlIGJldHdlZW4gRmlsZUlucHV0VHlwZSBhbmQgRmlsZUxpc3RDcmVhdG9yIGxlc3MgZXJyb3It
cHJvbmUKKyAgICAgICAgYW5kIG1vcmUgZXhwbGljaXQgYnkgcmVuYW1pbmcgRmlsZUxpc3RDcmVh
dG9yIHRvIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciwgbWFraW5nIGl0cyBqb2IKKyAgICAgICAg
c29sZWx5IHRvIGNyZWF0ZSBkaXJlY3RvcnkgRmlsZUxpc3RzIG9uIGEgYmFja2dyb3VuZCBxdWV1
ZSwgYW5kIGdpdmluZyBpdCBhbiBleHBsaWNpdCBzdGFydAorICAgICAgICBtZW1iZXIgZnVuY3Rp
b24uIEZvciBub24tZGlyZWN0b3JpZXMsIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuIG5vdyBi
eXBhc3NlcworICAgICAgICBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IgYW5kIGRpcmVjdGx5IGNv
bnZlcnRzIGZyb20gVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IHRvIEZpbGVMaXN0LgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAg
ICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA6IFJlbmFtZWQgZnJvbSBodG1s
L0ZpbGVMaXN0Q3JlYXRvci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlTGlzdCk6
IFJlbW92ZWQgdGhlIHRlbXBsYXRlIGFuZCBTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3IpOiBNb3ZlZCB0aGUgd29yayBxdWV1ZQorICAgICAgICBkaXNwYXRj
aGluZyB0byBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I6OnN0YXJ0LgorICAgICAgICAoV2ViQ29y
ZTo6RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpzdGFydCk6IEFkZGVkOyBtb3ZlZCB0aGUgd29y
ayBxdWV1ZSBkaXNwYXRjaGluZyBoZXJlCisgICAgICAgIGZyb20gdGhlIGN0b3IuCisKKyAgICAg
ICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oOiBSZW5hbWVkIGZyb20gaHRtbC9G
aWxlTGlzdENyZWF0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdG9yeUZpbGVMaXN0Q3Jl
YXRvcjo6Y3JlYXRlKTogU3RvcHBlZCBwZXJmb3JtaW5nIG5vbi1kaXJlY3RvcnkgY3JlYXRpb24g
YW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJldHVybiB2YWx1ZSBiYWNrIHRvIFJlZjw+LgorCisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogTW92ZWQgbW9zdCBvZiB0aGUgd29yayBkb25lIGluIHRo
ZSBGaWxlTGlzdENyZWF0b3IKKyAgICAgICAgY29tcGxldGlvbiBoYW5kbGVyIHRvIGRpZENyZWF0
ZUZpbGVMaXN0LiBXaGVuICFGaWxlSW5wdXRUeXBlOjphbGxvd3NEaXJlY3RvcmllcywgdXNlZAor
ICAgICAgICBWZWN0b3I6Om1hcCB0byBjb252ZXJ0IHBhdGhzIHRvIGEgVmVjdG9yPFJlZjxGaWxl
Pj4sIHVzZWQgdGhhdCB0byBjcmVhdGUgYSBGaWxlTGlzdCwgdGhlbgorICAgICAgICBjYWxsZWQg
ZGlkQ3JlYXRlRmlsZUxpc3QuIE90aGVyd2lzZSwgY3JlYXRlZCBhbmQgc3RhcnRlZCBhIERpcmVj
dG9yeUZpbGVMaXN0Q3JlYXRvciB0aGF0CisgICAgICAgIGNhbGxzIGRpZENyZWF0ZUZpbGVMaXN0
IGluIGl0cyBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRU
eXBlOjpkaWRDcmVhdGVGaWxlTGlzdCk6IEFkZGVkOyBzZXRzIHRoZSBuZXcgZmlsZSBsaXN0IGFu
ZCBpY29uIGFuZAorICAgICAgICBjbGVhcnMgbV9kaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuCisK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKwogMjAyMC0wNi0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9hZHMgdHJpZ2dlcmVkIGJ5IGFu
IG9wYXF1ZSBzdHlsZXNoZWV0IHNob3VsZCBub3QgYmUgdmlzaWJsZSB0byBzZXJ2aWNlIHdvcmtl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMjRkYjhmZDJjMzFkOTE0OWQ2MmI5NjlhOTVhMzY0OGVkNjU1
NzBlZi4uZjY1MTc3ZDY3OGQzNzA0ZTM3OGE4OWJiODc4OGVmZmMwZmZjZmFkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTExMzQsMTAgKzExMzQsMTAgQEAgaHRtbC9ET01VUkwuY3BwCiBodG1sL0RhdGVJ
bnB1dFR5cGUuY3BwCiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAogaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcAoraHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwCiBodG1s
L0VtYWlsSW5wdXRUeXBlLmNwcAogaHRtbC9FbnRlcktleUhpbnQuY3BwCiBodG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcAotaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCiBodG1sL0ZlYXR1cmVQ
b2xpY3kuY3BwCiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwCiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1MjY1ZGI1ODM4MmE4OTA2MGIzNjMxNTZiZjhmMTdmNDAzMmI1ODgxLi5m
M2FhMTlmYTQzYTJjMDlkZjY0YTYxZGQ4YjBhOTdkZTMzNzQ0ZjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDMxLDcgKzI0
MzEsNyBAQAogCQk4MzU4Q0I3MDFDNTMyNzc1MDBFMEMyRDggLyogSlNYTUxEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGNTcwQUQxQzUz
MjY4RTAwN0ZENkNCIC8qIEpTWE1MRG9jdW1lbnQuaCAqLzsgfTsKIAkJODM1RDJENzgxRjVGMUZC
RDAwMTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQg
LyogSFRNTElucHV0RWxlbWVudEVudHJpZXNBUEkuaCAqLzsgfTsKIAkJODM1RDM2MzcxOUZGNjE5
MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxl
QnVpbGRlckN1c3RvbS5oICovOyB9OwotCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmls
ZUxpc3RDcmVhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggKi87IH07
CisJCTgzNUQ1NEM1MUY0REU1MzgwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQ1NEMy
MUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCAqLzsgfTsKIAkJ
ODM2MkU4QzEyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2MkU4QkYy
MENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzNjU4OURFMUY1NEE3
NjkwMERDMzFGNCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjU4OUQ5MUY1NEE3NjIwMERDMzFG
NCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCAqLzsgfTsKIAkJODM2NTg5RTAxRjU0
QTc2RTAwREMzMUY0IC8qIEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2NTg5RDgxRjU0QTc2MjAwREMz
MUY0IC8qIEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oICovOyB9OwpAQCAtMTAzNTgsOCAr
MTAzNTgsOCBAQAogCQk4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQgLyogSFRNTElucHV0RWxlbWVu
dEVudHJpZXNBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTElucHV0
RWxlbWVudEVudHJpZXNBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RDJE
NzYxRjVGMUZCODAwMTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVz
QVBJLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RDM2MzYxOUZGNjE5MzAw
NEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZUJ1aWxkZXJDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODM1RDU0QzExRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlTGlzdENyZWF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmls
ZUxpc3RDcmVhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVMaXN0
Q3JlYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzVENTRDMTFGNERFNTM0
MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJl
Y3RvcnlGaWxlTGlzdENyZWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzNUY4QjI2MUQyRDkwQkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2xvdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzYy
RThCRjIwQ0VGOUNCMDAyNDU4ODYgLyogU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEODFGNTRBNzYyMDBEQzMx
RjQgLyogSlNGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjIyNTcsNiArMjIyNTcsOCBAQAogCQkJCUY1NUIzRDg0MTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlVGltZUlucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDg1MTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4
NjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oICovLAorCQkJCTgz
NUQ1NEMxMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwICov
LAorCQkJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IuaCAqLywKIAkJCQkyRUQ2MDlCQTExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3Bw
ICovLAogCQkJCTJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oICovLAog
CQkJCTJFMDg4OEMzMTE0ODgzQTkwMEFGNDI2NSAvKiBET01Gb3JtRGF0YS5pZGwgKi8sCkBAIC0y
MjI3NCw4ICsyMjI3Niw2IEBACiAJCQkJNDFBMDgyOTkyMjkzMkVGNDAwODQyNkUwIC8qIEZlYXR1
cmVQb2xpY3kuaCAqLywKIAkJCQlGNTVCM0Q4OTEyNTFGMTJEMDAzRUYyNjkgLyogRmlsZUlucHV0
VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOEExMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5
cGUuaCAqLywKLQkJCQk4MzVENTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9y
LmNwcCAqLywKLQkJCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9y
LmggKi8sCiAJCQkJNEEwREEyRkMxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAgKi8sCiAJCQkJNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudC5oICovLAogCQkJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi8sCkBAIC0yOTk5Miw2ICsyOTk5Miw3IEBACiAJCQkJRURFM0E1MDAwQzdB
NDMwNjAwOTU2QTM3IC8qIENvbG9yTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0FDNkFFOTI0
N0YwODJGMDBFNjFENTkgLyogQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJE
RjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3
QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVkRmlsdGVy
c0FscGhhYmV0LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzU2LDYgKzMwMzU3LDcgQEAKIAkJCQk5
MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQ1NjQ2QjAxQjhGODQ5MzAwM0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RD
b252b2x2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNUQ1NEM1MUY0REU1MzgwMEU2MDY3MSAv
KiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0N0EwOUQx
MjBBOTNBOTcwMDI0MEZBRSAvKiBEaXNhYmxlZEFkYXB0YXRpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1QjIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJv
eC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDU4OCw3ICszMDU5MCw2IEBACiAJCQkJMUE4OEE5MDUx
NzU1M0NENzAwMEM3NEY5IC8qIEZpbGVJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NTVCM0RCRTEyNTFGMTJEMDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc2RDZDODYxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QTA5Q0VGMTFGMDIwNjlCMDBFOTNCREIgLyogRmlsZU1vbml0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2Qzg5MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVh
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTc1ODQxRTEyNzc5QURBMDA2MjYyOEIgLyogRmls
ZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzExMCw3ICszMzExMSw2IEBACiAJ
CQkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFMzZGRDE3MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlv
blN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRTZFNUEwQ0M1NTIxMzAwNEEy
MDYyIC8qIFNRTFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QzAyOUM2RTI0OTNDOEY4MDAy
NjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NjMwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZCOTk5
OTExODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNrQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENy
ZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3Iu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhZjllYjIyYzRhNjQzNTIxNDFlNzE5NTZlNTJhNmNmZjYyYTBmNDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0
Q3JlYXRvci5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oIgorCisjaW5j
bHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlTGlzdC5oIgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZENvcGllci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlTWV0YWRhdGEuaD4KKyNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RpcmVj
dG9yeUZpbGVMaXN0Q3JlYXRvcjo6fkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcigpCit7CisgICAg
QVNTRVJUKCFtX2NvbXBsZXRpb25IYW5kbGVyKTsKK30KKworc3RhdGljIHZvaWQgYXBwZW5kRGly
ZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgcmVsYXRp
dmVQYXRoLCBWZWN0b3I8UmVmPEZpbGU+PiYgZmlsZU9iamVjdHMpCit7CisgICAgZm9yIChhdXRv
JiBjaGlsZFBhdGggOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgIioiKSkg
eworICAgICAgICBhdXRvIG1ldGFkYXRhID0gRmlsZVN5c3RlbTo6ZmlsZU1ldGFkYXRhKGNoaWxk
UGF0aCk7CisgICAgICAgIGlmICghbWV0YWRhdGEpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBpZiAobWV0YWRhdGEudmFsdWUoKS5pc0hpZGRlbikKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIFN0cmluZyBjaGlsZFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlUGF0aCAr
ICIvIiArIEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpOworICAgICAgICBp
ZiAobWV0YWRhdGEudmFsdWUoKS50eXBlID09IEZpbGVNZXRhZGF0YTo6VHlwZTo6RGlyZWN0b3J5
KQorICAgICAgICAgICAgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY2hpbGRQYXRoLCBjaGlsZFJlbGF0
aXZlUGF0aCwgZmlsZU9iamVjdHMpOworICAgICAgICBlbHNlIGlmIChtZXRhZGF0YS52YWx1ZSgp
LnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlOjpGaWxlKQorICAgICAgICAgICAgZmlsZU9iamVj
dHMuYXBwZW5kKEZpbGU6OmNyZWF0ZVdpdGhSZWxhdGl2ZVBhdGgoY2hpbGRQYXRoLCBjaGlsZFJl
bGF0aXZlUGF0aCkpOworICAgIH0KK30KKworc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmls
ZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocykKK3sKKyAgICBW
ZWN0b3I8UmVmPEZpbGU+PiBmaWxlT2JqZWN0czsKKyAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRo
cykgeworICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KGluZm8ucGF0aCwg
RmlsZVN5c3RlbTo6U2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQorICAgICAgICAgICAg
YXBwZW5kRGlyZWN0b3J5RmlsZXMoaW5mby5wYXRoLCBGaWxlU3lzdGVtOjpwYXRoR2V0RmlsZU5h
bWUoaW5mby5wYXRoKSwgZmlsZU9iamVjdHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBm
aWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFt
ZSkpOworICAgIH0KKyAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGZpbGVPYmpl
Y3RzKSk7Cit9CisKK0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6RGlyZWN0b3J5RmlsZUxpc3RD
cmVhdG9yKENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgOiBtX3dv
cmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yIFdvcmsg
UXVldWUiKSkKKyAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpCit7Cit9CisKK3ZvaWQgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpzdGFydChjb25z
dCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIHBhdGhzKQoreworICAgIC8vIFJlc29sdmUg
ZGlyZWN0b3JpZXMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCB0byBhdm9pZCBibG9ja2luZyB0aGUg
bWFpbiB0aHJlYWQuCisgICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHBhdGhzID0gY3Jvc3NUaHJlYWRDb3B5KHBhdGhzKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZpbGVMaXN0ID0gY3JlYXRlRmlsZUxpc3QocGF0aHMp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQorICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZmlsZUxpc3QpKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpjYW5jZWwoKQorewor
ICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOworICAgIG1fd29ya1F1ZXVlID0gbnVs
bHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ3ZjY1MmQwYjNhY2Fl
MWEwMTIzOTIzN2I3OWUxNmRjZmU5NDRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZpbGVDaG9vc2VyRmlsZUluZm87Citj
bGFzcyBGaWxlTGlzdDsKKworY2xhc3MgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcj4geworcHVibGlj
OgorICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gRnVuY3Rpb248dm9pZChSZWY8RmlsZUxp
c3Q+JiYpPjsKKworICAgIHN0YXRpYyBSZWY8RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yPiBjcmVh
dGUoQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcihXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIH5EaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IoKTsKKworICAgIHZvaWQgc3RhcnQoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
Jik7CisgICAgdm9pZCBjYW5jZWwoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3IoQ29tcGxldGlvbkhhbmRsZXImJik7CisKKyAgICBSZWZQdHI8V29y
a1F1ZXVlPiBtX3dvcmtRdWV1ZTsKKyAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBsZXRpb25I
YW5kbGVyOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXgg
OGY3MTc4MWEyNTgxNjcyODBmMmFlOWE4ZmNkMmI3OWE3ZTg4OGYxMi4uZDNkNmRlOTI4ZDExY2Y3
Nzg2ZmYxMWJjMzA0MDBmYTJiODI5NzRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSAiRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgi
CiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVM
aXN0LmgiCi0jaW5jbHVkZSAiRmlsZUxpc3RDcmVhdG9yLmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKQEAgLTQwOSwxOSArNDA5LDM1IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4o
Y29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QKICAgICBpZiAo
IWRpc3BsYXlTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNw
bGF5U3RyaW5nOwogCi0gICAgaWYgKG1fZmlsZUxpc3RDcmVhdG9yKQotICAgICAgICBtX2ZpbGVM
aXN0Q3JlYXRvci0+Y2FuY2VsKCk7CisgICAgaWYgKG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9y
KQorICAgICAgICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci0+Y2FuY2VsKCk7CiAKLSAgICBh
dXRvIHNob3VsZFJlc29sdmVEaXJlY3RvcmllcyA9IGFsbG93c0RpcmVjdG9yaWVzKCkgPyBGaWxl
TGlzdENyZWF0b3I6OlNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzIDogRmlsZUxpc3RDcmVh
dG9yOjpTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXM6Ok5vOwotICAgIG1fZmlsZUxpc3RDcmVhdG9y
ID0gRmlsZUxpc3RDcmVhdG9yOjpjcmVhdGUocGF0aHMsIHNob3VsZFJlc29sdmVEaXJlY3Rvcmll
cywgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBpY29uID0gbWFrZVJlZlB0
cihpY29uKV0oUmVmPEZpbGVMaXN0PiYmIGZpbGVMaXN0KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0
byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7Ci0gICAgICAgIGlm
ICghcHJvdGVjdGVkVGhpcykKKyAgICBpZiAoIWFsbG93c0RpcmVjdG9yaWVzKCkpIHsKKyAgICAg
ICAgYXV0byBmaWxlcyA9IHBhdGhzLm1hcChbXShhdXRvJiBmaWxlSW5mbykgeworICAgICAgICAg
ICAgcmV0dXJuIEZpbGU6OmNyZWF0ZShmaWxlSW5mby5wYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFt
ZSk7CisgICAgICAgIH0pOworICAgICAgICBkaWRDcmVhdGVGaWxlTGlzdChGaWxlTGlzdDo6Y3Jl
YXRlKFdURk1vdmUoZmlsZXMpKSwgaWNvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6
Y3JlYXRlKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaWNvbiA9IG1ha2VS
ZWZQdHIoaWNvbildKFJlZjxGaWxlTGlzdD4mJiBmaWxlTGlzdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHNldEZpbGVzKFdU
Rk1vdmUoZmlsZUxpc3QpLCBpY29uID8gUmVxdWVzdEljb246OlllcyA6IFJlcXVlc3RJY29uOjpO
byk7Ci0gICAgICAgIGlmIChpY29uICYmICFtX2ZpbGVMaXN0LT5pc0VtcHR5KCkgJiYgZWxlbWVu
dCgpKQotICAgICAgICAgICAgaWNvbkxvYWRlZChXVEZNb3ZlKGljb24pKTsKLSAgICAgICAgbV9m
aWxlTGlzdENyZWF0b3IgPSBudWxscHRyOworICAgICAgICBkaWRDcmVhdGVGaWxlTGlzdChXVEZN
b3ZlKGZpbGVMaXN0KSwgV1RGTW92ZShpY29uKSk7CiAgICAgfSk7CisgICAgbV9kaXJlY3RvcnlG
aWxlTGlzdENyZWF0b3ItPnN0YXJ0KHBhdGhzKTsKK30KKwordm9pZCBGaWxlSW5wdXRUeXBlOjpk
aWRDcmVhdGVGaWxlTGlzdChSZWY8RmlsZUxpc3Q+JiYgZmlsZUxpc3QsIFJlZlB0cjxJY29uPiYm
IGljb24pCit7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAg
ICBzZXRGaWxlcyhXVEZNb3ZlKGZpbGVMaXN0KSwgaWNvbiA/IFJlcXVlc3RJY29uOjpZZXMgOiBS
ZXF1ZXN0SWNvbjo6Tm8pOworICAgIGlmIChpY29uICYmICFtX2ZpbGVMaXN0LT5pc0VtcHR5KCkg
JiYgZWxlbWVudCgpKQorICAgICAgICBpY29uTG9hZGVkKFdURk1vdmUoaWNvbikpOworCisgICAg
QVNTRVJUKCFhbGxvd3NEaXJlY3RvcmllcygpIHx8IG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9y
KTsKKyAgICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA9IG51bGxwdHI7CiB9CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkaXNwbGF5U3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKaW5kZXggMjkzODQ4MmEyMmE0OGY2NDQzYmE4NDcwYmNlNjIyMjEwNjllNWQy
ZC4uMDhmNjIxZmU1YzNkNmQzMDM4NjdhZTlmMDcxN2VhZGQzNTZlY2JhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTM5LDkgKzM5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I7CiBjbGFzcyBEcmFnRGF0YTsK
IGNsYXNzIEZpbGVMaXN0OwotY2xhc3MgRmlsZUxpc3RDcmVhdG9yOwogY2xhc3MgSWNvbjsKIAog
Y2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRl
ckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVJbnB1dFR5cGU+IHsKQEAgLTg2LDkg
Kzg2LDkgQEAgcHJpdmF0ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRh
dGlvbi4KICAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpIGZpbmFsOwogCi0gICAg
dm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotCiAgICAgdm9pZCBhcHBs
eUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOworICAgIHZv
aWQgZGlkQ3JlYXRlRmlsZUxpc3QoUmVmPEZpbGVMaXN0PiYmLCBSZWZQdHI8SWNvbj4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgYm9vbCBh
bGxvd3NEaXJlY3RvcmllcygpIGNvbnN0OwogCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJY29uTG9hZGVyOwogCiAg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwotICAgIFJlZlB0cjxGaWxlTGlzdENyZWF0b3I+
IG1fZmlsZUxpc3RDcmVhdG9yOworICAgIFJlZlB0cjxEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I+
IG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAg
ICAgU3RyaW5nIG1fZGlzcGxheVN0cmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0
Q3JlYXRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1MjdlMGQxOGRlYjZi
YTM5ODYxODU5ZGFkY2U5OTc3ZmRiMzU2NWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlTGlzdENyZWF0b3IuaCIKLQotI2luY2x1ZGUg
IkZpbGVDaG9vc2VyLmgiCi0jaW5jbHVkZSAiRmlsZUxpc3QuaCIKLSNpbmNsdWRlIDx3dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvRmlsZU1ldGFkYXRhLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1GaWxlTGlzdENy
ZWF0b3I6On5GaWxlTGlzdENyZWF0b3IoKQotewotICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFu
ZGxlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGFwcGVuZERpcmVjdG9yeUZpbGVzKGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlUGF0aCwgVmVjdG9yPFJlZjxGaWxl
Pj4mIGZpbGVPYmplY3RzKQotewotICAgIGZvciAoYXV0byYgY2hpbGRQYXRoIDogRmlsZVN5c3Rl
bTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIikpIHsKLSAgICAgICAgYXV0byBtZXRhZGF0
YSA9IEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YShjaGlsZFBhdGgpOwotICAgICAgICBpZiAoIW1l
dGFkYXRhKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKG1ldGFkYXRhLnZh
bHVlKCkuaXNIaWRkZW4pCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBTdHJpbmcg
Y2hpbGRSZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGggKyAiLyIgKyBGaWxlU3lzdGVtOjpwYXRo
R2V0RmlsZU5hbWUoY2hpbGRQYXRoKTsKLSAgICAgICAgaWYgKG1ldGFkYXRhLnZhbHVlKCkudHlw
ZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGU6OkRpcmVjdG9yeSkKLSAgICAgICAgICAgIGFwcGVuZERp
cmVjdG9yeUZpbGVzKGNoaWxkUGF0aCwgY2hpbGRSZWxhdGl2ZVBhdGgsIGZpbGVPYmplY3RzKTsK
LSAgICAgICAgZWxzZSBpZiAobWV0YWRhdGEudmFsdWUoKS50eXBlID09IEZpbGVNZXRhZGF0YTo6
VHlwZTo6RmlsZSkKLSAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVhdGVX
aXRoUmVsYXRpdmVQYXRoKGNoaWxkUGF0aCwgY2hpbGRSZWxhdGl2ZVBhdGgpKTsKLSAgICB9Ci19
Ci0KLXRlbXBsYXRlPEZpbGVMaXN0Q3JlYXRvcjo6U2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzIHNo
b3VsZFJlc29sdmVEaXJlY3Rvcmllcz4KLXN0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVM
aXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMpCi17Ci0gICAgVmVj
dG9yPFJlZjxGaWxlPj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChhdXRvJiBpbmZvIDogcGF0aHMp
IHsKLSAgICAgICAgaWYgKHNob3VsZFJlc29sdmVEaXJlY3RvcmllcyA9PSBGaWxlTGlzdENyZWF0
b3I6OlNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIEZpbGVTeXN0ZW06OmZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkKLSAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5
c3RlbTo6cGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBh
dGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVh
dGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwotfQotCi1SZWZQdHI8RmlsZUxpc3RDcmVhdG9yPiBG
aWxlTGlzdENyZWF0b3I6OmNyZWF0ZShjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4m
IHBhdGhzLCBTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMgc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVz
LCBDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChzaG91
bGRSZXNvbHZlRGlyZWN0b3JpZXMgPT0gU2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzOjpObykgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVGaWxlTGlzdDxTaG91bGRSZXNvbHZlRGly
ZWN0b3JpZXM6Ok5vPihwYXRocykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0K
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlTGlzdENyZWF0b3IocGF0aHMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKSk7Ci19Ci0KLUZpbGVMaXN0Q3JlYXRvcjo6RmlsZUxpc3RDcmVh
dG9yKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIENvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBtX3dvcmtRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiRmlsZUxpc3RDcmVhdG9yIFdvcmsgUXVldWUiKSkKLSAgICAsIG1fY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi17Ci0gICAgLy8gUmVzb2x2ZSBk
aXJlY3RvcmllcyBvbiBhIGJhY2tncm91bmQgdGhyZWFkIHRvIGF2b2lkIGJsb2NraW5nIHRoZSBt
YWluIHRocmVhZC4KLSAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgcGF0aHMgPSBjcm9zc1RocmVhZENvcHkocGF0aHMpXSgpIG11
dGFibGUgewotICAgICAgICBhdXRvIGZpbGVMaXN0ID0gY3JlYXRlRmlsZUxpc3Q8U2hvdWxkUmVz
b2x2ZURpcmVjdG9yaWVzOjpZZXM+KHBhdGhzKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZpbGVMaXN0ID0g
V1RGTW92ZShmaWxlTGlzdCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9jb21wbGV0aW9uSGFuZGxlcikpCi0gICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShmaWxlTGlzdCkpOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0KLQotdm9pZCBGaWxlTGlzdENyZWF0b3I6OmNhbmNlbCgpCi17Ci0gICAgbV9j
b21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7Ci0gICAgbV93b3JrUXVldWUgPSBudWxscHRyOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVMaXN0Q3JlYXRvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0
b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNiYWMwZWQzNzk5M2E1YzdhNWNi
NjgzOWFhOTI3MjAyYjg2ZWU2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Ry
dWN0IEZpbGVDaG9vc2VyRmlsZUluZm87Ci1jbGFzcyBGaWxlTGlzdDsKLQotY2xhc3MgRmlsZUxp
c3RDcmVhdG9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZpbGVMaXN0Q3JlYXRvcj4g
ewotcHVibGljOgotICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gRnVuY3Rpb248dm9pZChS
ZWY8RmlsZUxpc3Q+JiYpPjsKLQotICAgIGVudW0gY2xhc3MgU2hvdWxkUmVzb2x2ZURpcmVjdG9y
aWVzIHsgTm8sIFllcyB9OwotICAgIHN0YXRpYyBSZWZQdHI8RmlsZUxpc3RDcmVhdG9yPiBjcmVh
dGUoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiwgU2hvdWxkUmVzb2x2ZURpcmVj
dG9yaWVzLCBDb21wbGV0aW9uSGFuZGxlciYmKTsKLQotICAgIH5GaWxlTGlzdENyZWF0b3IoKTsK
LQotICAgIHZvaWQgY2FuY2VsKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZUxpc3RDcmVhdG9yKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIENvbXBsZXRpb25IYW5kbGVyJiYpOwot
Ci0gICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7Ci0gICAgQ29tcGxldGlvbkhhbmRs
ZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKLX07Ci0KLX0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402051</attachid>
            <date>2020-06-16 15:54:07 -0700</date>
            <delta_ts>2020-06-16 17:24:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213259-20200616155406.patch</filename>
            <type>text/plain</type>
            <size>28191</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMyZjk2ZTFmODZiODkw
OTQ1YjMwN2RlZjk3YjA3NjBhZTc1NWVjZi4uMTI2MzdjN2FhMWEyYjFkZWQ1NTY4OWVjZDgyMmZm
NjRlODRlMjk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA2LTE2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlTGlzdENyZWF0b3Igc2hv
dWxkIG9ubHkgYmUgdXNlZCBmb3IgcmVzb2x2aW5nIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY0Mzc1NzA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERlcGVuZGluZyBvbiB3aGV0aGVyIGRpcmVjdG9yaWVzIHNob3VsZCBiZSBy
ZXNvbHZlZCwgRmlsZUxpc3RDcmVhdG9yOjpjcmVhdGUgd291bGQgZWl0aGVyCisgICAgICAgIHN5
bmNocm9ub3VzbHkgZXhlY3V0ZSBpdHMgY29tcGxldGlvbiBoYW5kbGVyIHRoZW4gcmV0dXJuIG51
bGxwdHIgb3IgYXN5bmNocm9ub3VzbHkgZGlzcGF0Y2gKKyAgICAgICAgaXRzIGNvbXBsZXRpb24g
aGFuZGxlciB0aGVuIHJldHVybiBhIG5vbi1udWxsIFJlZlB0ci4gSW50ZXJmYWNlcyB3aXRoIHNv
bWV0aW1lcy1zeW5jaHJvbm91cworICAgICAgICBjYWxsYmFja3MgY2FuIGJlIGhhcmQgdG8gdXNl
IGNvcnJlY3RseTsgZS5nLiwgcjI2Mjk2MiBmaXhlcyBhIHByb2JsZW0gd2hlcmUKKyAgICAgICAg
RmlsZUlucHV0VHlwZTo6bV9maWxlTGlzdENyZWF0b3Igd2FzIGJlaW5nIG1vZGlmaWVkIGluIGFu
IHVuZXhwZWN0ZWQgb3JkZXIuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyB0aGUgaW50ZXJm
YWNlIGJldHdlZW4gRmlsZUlucHV0VHlwZSBhbmQgRmlsZUxpc3RDcmVhdG9yIGxlc3MgZXJyb3It
cHJvbmUKKyAgICAgICAgYW5kIG1vcmUgZXhwbGljaXQgYnkgcmVuYW1pbmcgRmlsZUxpc3RDcmVh
dG9yIHRvIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciwgbWFraW5nIGl0cyBqb2IKKyAgICAgICAg
c29sZWx5IHRvIGNyZWF0ZSBkaXJlY3RvcnkgRmlsZUxpc3RzIG9uIGEgYmFja2dyb3VuZCBxdWV1
ZSwgYW5kIGdpdmluZyBpdCBhbiBleHBsaWNpdCBzdGFydAorICAgICAgICBtZW1iZXIgZnVuY3Rp
b24uIEZvciBub24tZGlyZWN0b3JpZXMsIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuIG5vdyBi
eXBhc3NlcworICAgICAgICBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IgYW5kIGRpcmVjdGx5IGNv
bnZlcnRzIGZyb20gVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IHRvIEZpbGVMaXN0LgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4
dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAg
ICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA6IFJlbmFtZWQgZnJvbSBodG1s
L0ZpbGVMaXN0Q3JlYXRvci5jcHAuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGaWxlTGlzdCk6
IFJlbW92ZWQgdGhlIHRlbXBsYXRlIGFuZCBTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMgcGFyYW1l
dGVyLgorICAgICAgICAoV2ViQ29yZTo6RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3IpOiBNb3ZlZCB0aGUgd29yayBxdWV1ZQorICAgICAgICBkaXNwYXRj
aGluZyB0byBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I6OnN0YXJ0LgorICAgICAgICAoV2ViQ29y
ZTo6RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpzdGFydCk6IEFkZGVkOyBtb3ZlZCB0aGUgd29y
ayBxdWV1ZSBkaXNwYXRjaGluZyBoZXJlCisgICAgICAgIGZyb20gdGhlIGN0b3IuCisKKyAgICAg
ICAgKiBodG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oOiBSZW5hbWVkIGZyb20gaHRtbC9G
aWxlTGlzdENyZWF0b3IuaC4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdG9yeUZpbGVMaXN0Q3Jl
YXRvcjo6Y3JlYXRlKTogU3RvcHBlZCBwZXJmb3JtaW5nIG5vbi1kaXJlY3RvcnkgY3JlYXRpb24g
YW5kCisgICAgICAgIGNoYW5nZWQgdGhlIHJldHVybiB2YWx1ZSBiYWNrIHRvIFJlZjw+LgorCisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJ
bnB1dFR5cGU6OmZpbGVzQ2hvc2VuKTogTW92ZWQgbW9zdCBvZiB0aGUgd29yayBkb25lIGluIHRo
ZSBGaWxlTGlzdENyZWF0b3IKKyAgICAgICAgY29tcGxldGlvbiBoYW5kbGVyIHRvIGRpZENyZWF0
ZUZpbGVMaXN0LiBXaGVuICFGaWxlSW5wdXRUeXBlOjphbGxvd3NEaXJlY3RvcmllcywgdXNlZAor
ICAgICAgICBWZWN0b3I6Om1hcCB0byBjb252ZXJ0IHBhdGhzIHRvIGEgVmVjdG9yPFJlZjxGaWxl
Pj4sIHVzZWQgdGhhdCB0byBjcmVhdGUgYSBGaWxlTGlzdCwgdGhlbgorICAgICAgICBjYWxsZWQg
ZGlkQ3JlYXRlRmlsZUxpc3QuIE90aGVyd2lzZSwgY3JlYXRlZCBhbmQgc3RhcnRlZCBhIERpcmVj
dG9yeUZpbGVMaXN0Q3JlYXRvciB0aGF0CisgICAgICAgIGNhbGxzIGRpZENyZWF0ZUZpbGVMaXN0
IGluIGl0cyBjb21wbGV0aW9uIGhhbmRsZXIuCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRU
eXBlOjpkaWRDcmVhdGVGaWxlTGlzdCk6IEFkZGVkOyBzZXRzIHRoZSBuZXcgZmlsZSBsaXN0IGFu
ZCBpY29uIGFuZAorICAgICAgICBjbGVhcnMgbV9kaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuCisK
KyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuaDoKKwogMjAyMC0wNi0xNiAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTG9hZHMgdHJpZ2dlcmVkIGJ5IGFu
IG9wYXF1ZSBzdHlsZXNoZWV0IHNob3VsZCBub3QgYmUgdmlzaWJsZSB0byBzZXJ2aWNlIHdvcmtl
cnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggMjRkYjhmZDJjMzFkOTE0OWQ2MmI5NjlhOTVhMzY0OGVkNjU1
NzBlZi4uZjY1MTc3ZDY3OGQzNzA0ZTM3OGE4OWJiODc4OGVmZmMwZmZjZmFkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTExMzQsMTAgKzExMzQsMTAgQEAgaHRtbC9ET01VUkwuY3BwCiBodG1sL0RhdGVJ
bnB1dFR5cGUuY3BwCiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAogaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcAoraHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwCiBodG1s
L0VtYWlsSW5wdXRUeXBlLmNwcAogaHRtbC9FbnRlcktleUhpbnQuY3BwCiBodG1sL0ZUUERpcmVj
dG9yeURvY3VtZW50LmNwcAotaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCiBodG1sL0ZlYXR1cmVQ
b2xpY3kuY3BwCiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwCiBodG1sL0Zvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA1MjY1ZGI1ODM4MmE4OTA2MGIzNjMxNTZiZjhmMTdmNDAzMmI1ODgxLi5m
M2FhMTlmYTQzYTJjMDlkZjY0YTYxZGQ4YjBhOTdkZTMzNzQ0ZjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNDMxLDcgKzI0
MzEsNyBAQAogCQk4MzU4Q0I3MDFDNTMyNzc1MDBFMEMyRDggLyogSlNYTUxEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODNGNTcwQUQxQzUz
MjY4RTAwN0ZENkNCIC8qIEpTWE1MRG9jdW1lbnQuaCAqLzsgfTsKIAkJODM1RDJENzgxRjVGMUZC
RDAwMTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQg
LyogSFRNTElucHV0RWxlbWVudEVudHJpZXNBUEkuaCAqLzsgfTsKIAkJODM1RDM2MzcxOUZGNjE5
MzAwNEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDM2MzYxOUZGNjE5MzAwNEM5M0FCIC8qIFN0eWxl
QnVpbGRlckN1c3RvbS5oICovOyB9OwotCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmls
ZUxpc3RDcmVhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggKi87IH07
CisJCTgzNUQ1NEM1MUY0REU1MzgwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQ1NEMy
MUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCAqLzsgfTsKIAkJ
ODM2MkU4QzEyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2MkU4QkYy
MENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzNjU4OURFMUY1NEE3
NjkwMERDMzFGNCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjU4OUQ5MUY1NEE3NjIwMERDMzFG
NCAvKiBKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlSZWFkZXIuaCAqLzsgfTsKIAkJODM2NTg5RTAxRjU0
QTc2RTAwREMzMUY0IC8qIEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM2NTg5RDgxRjU0QTc2MjAwREMz
MUY0IC8qIEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oICovOyB9OwpAQCAtMTAzNTgsOCAr
MTAzNTgsOCBAQAogCQk4MzVEMkQ3NTFGNUYxRkI4MDAxNDFERUQgLyogSFRNTElucHV0RWxlbWVu
dEVudHJpZXNBUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTElucHV0
RWxlbWVudEVudHJpZXNBUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RDJE
NzYxRjVGMUZCODAwMTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVz
QVBJLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM1RDM2MzYxOUZGNjE5MzAw
NEM5M0FCIC8qIFN0eWxlQnVpbGRlckN1c3RvbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTdHlsZUJ1aWxkZXJDdXN0b20uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODM1RDU0QzExRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlTGlzdENyZWF0b3IuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmls
ZUxpc3RDcmVhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVMaXN0
Q3JlYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MzVENTRDMTFGNERFNTM0
MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJl
Y3RvcnlGaWxlTGlzdENyZWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTgzNUY4QjI2MUQyRDkwQkEwMEU0MDhFQyAvKiBTbG90YWJsZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gU2xvdGFibGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzYy
RThCRjIwQ0VGOUNCMDAyNDU4ODYgLyogU2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzY1ODlEODFGNTRBNzYyMDBEQzMx
RjQgLyogSlNGaWxlU3lzdGVtRW50cmllc0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjIyNTcsNiArMjIyNTcsOCBAQAogCQkJCUY1NUIzRDg0MTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlVGltZUlucHV0VHlwZS5oICovLAogCQkJCUY1NUIzRDg1MTI1MUYx
MkQwMDNFRjI2OSAvKiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCAqLywKIAkJCQlGNTVCM0Q4
NjEyNTFGMTJEMDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oICovLAorCQkJCTgz
NUQ1NEMxMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwICov
LAorCQkJCTgzNUQ1NEMyMUY0REU1MzQwMEU2MDY3MSAvKiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IuaCAqLywKIAkJCQkyRUQ2MDlCQTExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3Bw
ICovLAogCQkJCTJFRDYwOUJCMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5oICovLAog
CQkJCTJFMDg4OEMzMTE0ODgzQTkwMEFGNDI2NSAvKiBET01Gb3JtRGF0YS5pZGwgKi8sCkBAIC0y
MjI3NCw4ICsyMjI3Niw2IEBACiAJCQkJNDFBMDgyOTkyMjkzMkVGNDAwODQyNkUwIC8qIEZlYXR1
cmVQb2xpY3kuaCAqLywKIAkJCQlGNTVCM0Q4OTEyNTFGMTJEMDAzRUYyNjkgLyogRmlsZUlucHV0
VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEOEExMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5
cGUuaCAqLywKLQkJCQk4MzVENTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9y
LmNwcCAqLywKLQkJCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9y
LmggKi8sCiAJCQkJNEEwREEyRkMxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lhdGVkRWxl
bWVudC5jcHAgKi8sCiAJCQkJNEEwREEyRkQxMjlCMjQxOTAwQUI2MUUxIC8qIEZvcm1Bc3NvY2lh
dGVkRWxlbWVudC5oICovLAogCQkJCUY1MDY2NEY1MTU3RjUyREMwMEFDMjI2RiAvKiBGb3JtQ29u
dHJvbGxlci5jcHAgKi8sCkBAIC0yOTk5Miw2ICsyOTk5Miw3IEBACiAJCQkJRURFM0E1MDAwQzdB
NDMwNjAwOTU2QTM3IC8qIENvbG9yTWFjLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0FDNkFFOTI0
N0YwODJGMDBFNjFENTkgLyogQ29sb3JNYXRyaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTkzODJE
RjU4MTBBOEQ1QzkwMDkyNTY1MiAvKiBDb2xvclNwYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3
QzAyOUM2RTI0OTNDOEY4MDAyNjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFQUY2NkIyM0JGQzM5RTAwNDAzMERBIC8qIENvbG9yVXRpbGl0aWVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDNFREQ2N0YxQjQ4NURCRjAwNjQwRTc1IC8qIENvbWJpbmVkRmlsdGVy
c0FscGhhYmV0LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzU2LDYgKzMwMzU3LDcgQEAKIAkJCQk5
MzdGRjNENTFBMTAxMkQ2MDA4RUJBMzEgLyogRGljdGlvbmFyeUxvb2t1cC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQ1NjQ2QjAxQjhGODQ5MzAwM0M0OTk0IC8qIERpY3Rpb25hcnlQb3B1cEluZm8u
aCBpbiBIZWFkZXJzICovLAogCQkJCUZEQUYxOTk5MTUxM0QxMzEwMDhEQjBDMyAvKiBEaXJlY3RD
b252b2x2ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzNUQ1NEM1MUY0REU1MzgwMEU2MDY3MSAv
KiBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0N0EwOUQx
MjBBOTNBOTcwMDI0MEZBRSAvKiBEaXNhYmxlZEFkYXB0YXRpb25zLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RURBQUZDOTE5QTJDQ0RDMDAzNERGRDEgLyogRGlza0NhY2hlTW9uaXRvckNvY29hLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1QjIwOEUzQzdGMDAyMzU4Q0MgLyogRGlzcGxheUJv
eC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDU4OCw3ICszMDU5MCw2IEBACiAJCQkJMUE4OEE5MDUx
NzU1M0NENzAwMEM3NEY5IC8qIEZpbGVJY29uTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
NTVCM0RCRTEyNTFGMTJEMDAzRUYyNjkgLyogRmlsZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTc2RDZDODYxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRmlsZUxpc3RDcmVhdG9yLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QTA5Q0VGMTFGMDIwNjlCMDBFOTNCREIgLyogRmlsZU1vbml0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2Qzg5MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVh
ZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRTc1ODQxRTEyNzc5QURBMDA2MjYyOEIgLyogRmls
ZVJlYWRlckxvYWRlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMzExMCw3ICszMzExMSw2IEBACiAJ
CQkJRkUzNkZEMTgxNkM3ODI2NTAwRjg4N0MxIC8qIFNRTFRyYW5zYWN0aW9uU3RhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFMzZGRDE3MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlv
blN0YXRlTWFjaGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyRTZFNUEwQ0M1NTIxMzAwNEEy
MDYyIC8qIFNRTFZhbHVlLmggaW4gSGVhZGVycyAqLywKLQkJCQk3QzAyOUM2RTI0OTNDOEY4MDAy
NjgyMDQgLyogQ29sb3JUeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5NjMwODI0NUU1
OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjZCOTk5
OTExODAzQjNDOTAwRDAxMTIxIC8qIFN0YWNrQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzdGQTYyRDBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxpc3QuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENy
ZWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3Iu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhZjllYjIyYzRhNjQzNTIxNDFlNzE5NTZlNTJhNmNmZjYyYTBmNDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0
Q3JlYXRvci5jcHAKQEAgLTAsMCArMSw5NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNy0y
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oIgorCisjaW5j
bHVkZSAiRmlsZUNob29zZXIuaCIKKyNpbmNsdWRlICJGaWxlTGlzdC5oIgorI2luY2x1ZGUgPHd0
Zi9Dcm9zc1RocmVhZENvcGllci5oPgorI2luY2x1ZGUgPHd0Zi9GaWxlTWV0YWRhdGEuaD4KKyNp
bmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RpcmVj
dG9yeUZpbGVMaXN0Q3JlYXRvcjo6fkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcigpCit7CisgICAg
QVNTRVJUKCFtX2NvbXBsZXRpb25IYW5kbGVyKTsKK30KKworc3RhdGljIHZvaWQgYXBwZW5kRGly
ZWN0b3J5RmlsZXMoY29uc3QgU3RyaW5nJiBkaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgcmVsYXRp
dmVQYXRoLCBWZWN0b3I8UmVmPEZpbGU+PiYgZmlsZU9iamVjdHMpCit7CisgICAgZm9yIChhdXRv
JiBjaGlsZFBhdGggOiBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSwgIioiKSkg
eworICAgICAgICBhdXRvIG1ldGFkYXRhID0gRmlsZVN5c3RlbTo6ZmlsZU1ldGFkYXRhKGNoaWxk
UGF0aCk7CisgICAgICAgIGlmICghbWV0YWRhdGEpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBpZiAobWV0YWRhdGEudmFsdWUoKS5pc0hpZGRlbikKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIFN0cmluZyBjaGlsZFJlbGF0aXZlUGF0aCA9IHJlbGF0aXZlUGF0aCAr
ICIvIiArIEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxlTmFtZShjaGlsZFBhdGgpOworICAgICAgICBp
ZiAobWV0YWRhdGEudmFsdWUoKS50eXBlID09IEZpbGVNZXRhZGF0YTo6VHlwZTo6RGlyZWN0b3J5
KQorICAgICAgICAgICAgYXBwZW5kRGlyZWN0b3J5RmlsZXMoY2hpbGRQYXRoLCBjaGlsZFJlbGF0
aXZlUGF0aCwgZmlsZU9iamVjdHMpOworICAgICAgICBlbHNlIGlmIChtZXRhZGF0YS52YWx1ZSgp
LnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlOjpGaWxlKQorICAgICAgICAgICAgZmlsZU9iamVj
dHMuYXBwZW5kKEZpbGU6OmNyZWF0ZVdpdGhSZWxhdGl2ZVBhdGgoY2hpbGRQYXRoLCBjaGlsZFJl
bGF0aXZlUGF0aCkpOworICAgIH0KK30KKworc3RhdGljIFJlZjxGaWxlTGlzdD4gY3JlYXRlRmls
ZUxpc3QoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocykKK3sKKyAgICBW
ZWN0b3I8UmVmPEZpbGU+PiBmaWxlT2JqZWN0czsKKyAgICBmb3IgKGF1dG8mIGluZm8gOiBwYXRo
cykgeworICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KGluZm8ucGF0aCwg
RmlsZVN5c3RlbTo6U2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6Tm8pKQorICAgICAgICAgICAg
YXBwZW5kRGlyZWN0b3J5RmlsZXMoaW5mby5wYXRoLCBGaWxlU3lzdGVtOjpwYXRoR2V0RmlsZU5h
bWUoaW5mby5wYXRoKSwgZmlsZU9iamVjdHMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBm
aWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlKGluZm8ucGF0aCwgaW5mby5kaXNwbGF5TmFt
ZSkpOworICAgIH0KKyAgICByZXR1cm4gRmlsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGZpbGVPYmpl
Y3RzKSk7Cit9CisKK0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6RGlyZWN0b3J5RmlsZUxpc3RD
cmVhdG9yKENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgOiBtX3dv
cmtRdWV1ZShXb3JrUXVldWU6OmNyZWF0ZSgiRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yIFdvcmsg
UXVldWUiKSkKKyAgICAsIG1fY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpCit7Cit9CisKK3ZvaWQgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpzdGFydChjb25z
dCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4mIHBhdGhzKQoreworICAgIC8vIFJlc29sdmUg
ZGlyZWN0b3JpZXMgb24gYSBiYWNrZ3JvdW5kIHRocmVhZCB0byBhdm9pZCBibG9ja2luZyB0aGUg
bWFpbiB0aHJlYWQuCisgICAgbV93b3JrUXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gbWFrZVJlZigqdGhpcyksIHBhdGhzID0gY3Jvc3NUaHJlYWRDb3B5KHBhdGhzKV0oKSBt
dXRhYmxlIHsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZpbGVMaXN0ID0gY3JlYXRlRmlsZUxpc3QocGF0aHMp
XSgpIG11dGFibGUgeworICAgICAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBz
dGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpKQorICAgICAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoZmlsZUxpc3QpKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7Cit9CisKK3ZvaWQgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpjYW5jZWwoKQorewor
ICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOworICAgIG1fd29ya1F1ZXVlID0gbnVs
bHB0cjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjQ3ZjY1MmQwYjNhY2Fl
MWEwMTIzOTIzN2I3OWUxNmRjZmU5NDRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgKQEAgLTAsMCArMSw2MCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZpbGVDaG9vc2VyRmlsZUluZm87Citj
bGFzcyBGaWxlTGlzdDsKKworY2xhc3MgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcj4geworcHVibGlj
OgorICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gRnVuY3Rpb248dm9pZChSZWY8RmlsZUxp
c3Q+JiYpPjsKKworICAgIHN0YXRpYyBSZWY8RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yPiBjcmVh
dGUoQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKKyAgICB7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcihXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSkpOworICAgIH0KKworICAgIH5EaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IoKTsKKworICAgIHZvaWQgc3RhcnQoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+
Jik7CisgICAgdm9pZCBjYW5jZWwoKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3IoQ29tcGxldGlvbkhhbmRsZXImJik7CisKKyAgICBSZWZQdHI8V29y
a1F1ZXVlPiBtX3dvcmtRdWV1ZTsKKyAgICBDb21wbGV0aW9uSGFuZGxlciBtX2NvbXBsZXRpb25I
YW5kbGVyOworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXgg
OGY3MTc4MWEyNTgxNjcyODBmMmFlOWE4ZmNkMmI3OWE3ZTg4OGYxMi4uNmE4ZmE5ZmQxMWViMjM0
OGQ2YTEyZTlkMzg0N2ZjNTgyM2ViZTM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuY3BwCkBAIC0yNCwxMiArMjQsMTIgQEAKIAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1
ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSAiRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgi
CiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRmlsZS5oIgogI2luY2x1ZGUgIkZpbGVM
aXN0LmgiCi0jaW5jbHVkZSAiRmlsZUxpc3RDcmVhdG9yLmgiCiAjaW5jbHVkZSAiRm9ybUNvbnRy
b2xsZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKQEAgLTQwOSwxOSArNDA5LDM1IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6ZmlsZXNDaG9zZW4o
Y29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgY29uc3QKICAgICBpZiAo
IWRpc3BsYXlTdHJpbmcuaXNFbXB0eSgpKQogICAgICAgICBtX2Rpc3BsYXlTdHJpbmcgPSBkaXNw
bGF5U3RyaW5nOwogCi0gICAgaWYgKG1fZmlsZUxpc3RDcmVhdG9yKQotICAgICAgICBtX2ZpbGVM
aXN0Q3JlYXRvci0+Y2FuY2VsKCk7CisgICAgaWYgKG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9y
KQorICAgICAgICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci0+Y2FuY2VsKCk7CiAKLSAgICBh
dXRvIHNob3VsZFJlc29sdmVEaXJlY3RvcmllcyA9IGFsbG93c0RpcmVjdG9yaWVzKCkgPyBGaWxl
TGlzdENyZWF0b3I6OlNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzIDogRmlsZUxpc3RDcmVh
dG9yOjpTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXM6Ok5vOwotICAgIG1fZmlsZUxpc3RDcmVhdG9y
ID0gRmlsZUxpc3RDcmVhdG9yOjpjcmVhdGUocGF0aHMsIHNob3VsZFJlc29sdmVEaXJlY3Rvcmll
cywgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCBpY29uID0gbWFrZVJlZlB0
cihpY29uKV0oUmVmPEZpbGVMaXN0PiYmIGZpbGVMaXN0KSBtdXRhYmxlIHsKLSAgICAgICAgYXV0
byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cih3ZWFrVGhpcy5nZXQoKSk7Ci0gICAgICAgIGlm
ICghcHJvdGVjdGVkVGhpcykKKyAgICBpZiAoIWFsbG93c0RpcmVjdG9yaWVzKCkpIHsKKyAgICAg
ICAgYXV0byBmaWxlcyA9IHBhdGhzLm1hcChbXShhdXRvJiBmaWxlSW5mbykgeworICAgICAgICAg
ICAgcmV0dXJuIEZpbGU6OmNyZWF0ZShmaWxlSW5mby5wYXRoLCBmaWxlSW5mby5kaXNwbGF5TmFt
ZSk7CisgICAgICAgIH0pOworICAgICAgICBkaWRDcmVhdGVGaWxlTGlzdChGaWxlTGlzdDo6Y3Jl
YXRlKFdURk1vdmUoZmlsZXMpKSwgaWNvbik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA9IERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6
Y3JlYXRlKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaWNvbiA9IG1ha2VS
ZWZQdHIoaWNvbildKFJlZjxGaWxlTGlzdD4mJiBmaWxlTGlzdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHNldEZpbGVzKFdU
Rk1vdmUoZmlsZUxpc3QpLCBpY29uID8gUmVxdWVzdEljb246OlllcyA6IFJlcXVlc3RJY29uOjpO
byk7Ci0gICAgICAgIGlmIChpY29uICYmICFtX2ZpbGVMaXN0LT5pc0VtcHR5KCkgJiYgZWxlbWVu
dCgpKQotICAgICAgICAgICAgaWNvbkxvYWRlZChXVEZNb3ZlKGljb24pKTsKLSAgICAgICAgbV9m
aWxlTGlzdENyZWF0b3IgPSBudWxscHRyOworICAgICAgICBkaWRDcmVhdGVGaWxlTGlzdChXVEZN
b3ZlKGZpbGVMaXN0KSwgV1RGTW92ZShpY29uKSk7CiAgICAgfSk7CisgICAgbV9kaXJlY3RvcnlG
aWxlTGlzdENyZWF0b3ItPnN0YXJ0KHBhdGhzKTsKK30KKwordm9pZCBGaWxlSW5wdXRUeXBlOjpk
aWRDcmVhdGVGaWxlTGlzdChSZWY8RmlsZUxpc3Q+JiYgZmlsZUxpc3QsIFJlZlB0cjxJY29uPiYm
IGljb24pCit7CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKKyAg
ICBBU1NFUlQoIWFsbG93c0RpcmVjdG9yaWVzKCkgfHwgbV9kaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3IpOworICAgIG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yID0gbnVsbHB0cjsKKworICAgIHNl
dEZpbGVzKFdURk1vdmUoZmlsZUxpc3QpLCBpY29uID8gUmVxdWVzdEljb246OlllcyA6IFJlcXVl
c3RJY29uOjpObyk7CisgICAgaWYgKGljb24gJiYgIW1fZmlsZUxpc3QtPmlzRW1wdHkoKSAmJiBl
bGVtZW50KCkpCisgICAgICAgIGljb25Mb2FkZWQoV1RGTW92ZShpY29uKSk7CiB9CiAKIFN0cmlu
ZyBGaWxlSW5wdXRUeXBlOjpkaXNwbGF5U3RyaW5nKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxl
SW5wdXRUeXBlLmgKaW5kZXggMjkzODQ4MmEyMmE0OGY2NDQzYmE4NDcwYmNlNjIyMjEwNjllNWQy
ZC4uMDhmNjIxZmU1YzNkNmQzMDM4NjdhZTlmMDcxN2VhZGQzNTZlY2JhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTM5LDkgKzM5LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I7CiBjbGFzcyBEcmFnRGF0YTsK
IGNsYXNzIEZpbGVMaXN0OwotY2xhc3MgRmlsZUxpc3RDcmVhdG9yOwogY2xhc3MgSWNvbjsKIAog
Y2xhc3MgRmlsZUlucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlu
cHV0VHlwZSwgcHJpdmF0ZSBGaWxlQ2hvb3NlckNsaWVudCwgcHJpdmF0ZSBGaWxlSWNvbkxvYWRl
ckNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVJbnB1dFR5cGU+IHsKQEAgLTg2LDkg
Kzg2LDkgQEAgcHJpdmF0ZToKICAgICAvLyBGaWxlSWNvbkxvYWRlckNsaWVudCBpbXBsZW1lbnRh
dGlvbi4KICAgICB2b2lkIGljb25Mb2FkZWQoUmVmUHRyPEljb24+JiYpIGZpbmFsOwogCi0gICAg
dm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwotCiAgICAgdm9pZCBhcHBs
eUZpbGVDaG9vc2VyU2V0dGluZ3MoY29uc3QgRmlsZUNob29zZXJTZXR0aW5ncyYpOworICAgIHZv
aWQgZGlkQ3JlYXRlRmlsZUxpc3QoUmVmPEZpbGVMaXN0PiYmLCBSZWZQdHI8SWNvbj4mJik7Cisg
ICAgdm9pZCByZXF1ZXN0SWNvbihjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiAgICAgYm9vbCBh
bGxvd3NEaXJlY3RvcmllcygpIGNvbnN0OwogCkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEZpbGVJY29uTG9hZGVyPiBtX2ZpbGVJY29uTG9hZGVyOwogCiAg
ICAgUmVmPEZpbGVMaXN0PiBtX2ZpbGVMaXN0OwotICAgIFJlZlB0cjxGaWxlTGlzdENyZWF0b3I+
IG1fZmlsZUxpc3RDcmVhdG9yOworICAgIFJlZlB0cjxEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I+
IG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOwogICAgIFJlZlB0cjxJY29uPiBtX2ljb247CiAg
ICAgU3RyaW5nIG1fZGlzcGxheVN0cmluZzsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0
Q3JlYXRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE1MjdlMGQxOGRlYjZi
YTM5ODYxODU5ZGFkY2U5OTc3ZmRiMzU2NWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMTAzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJGaWxlTGlzdENyZWF0b3IuaCIKLQotI2luY2x1ZGUg
IkZpbGVDaG9vc2VyLmgiCi0jaW5jbHVkZSAiRmlsZUxpc3QuaCIKLSNpbmNsdWRlIDx3dGYvQ3Jv
c3NUaHJlYWRDb3BpZXIuaD4KLSNpbmNsdWRlIDx3dGYvRmlsZU1ldGFkYXRhLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1GaWxlTGlzdENy
ZWF0b3I6On5GaWxlTGlzdENyZWF0b3IoKQotewotICAgIEFTU0VSVCghbV9jb21wbGV0aW9uSGFu
ZGxlcik7Ci19Ci0KLXN0YXRpYyB2b2lkIGFwcGVuZERpcmVjdG9yeUZpbGVzKGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHJlbGF0aXZlUGF0aCwgVmVjdG9yPFJlZjxGaWxl
Pj4mIGZpbGVPYmplY3RzKQotewotICAgIGZvciAoYXV0byYgY2hpbGRQYXRoIDogRmlsZVN5c3Rl
bTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIikpIHsKLSAgICAgICAgYXV0byBtZXRhZGF0
YSA9IEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YShjaGlsZFBhdGgpOwotICAgICAgICBpZiAoIW1l
dGFkYXRhKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAgaWYgKG1ldGFkYXRhLnZh
bHVlKCkuaXNIaWRkZW4pCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBTdHJpbmcg
Y2hpbGRSZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGggKyAiLyIgKyBGaWxlU3lzdGVtOjpwYXRo
R2V0RmlsZU5hbWUoY2hpbGRQYXRoKTsKLSAgICAgICAgaWYgKG1ldGFkYXRhLnZhbHVlKCkudHlw
ZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGU6OkRpcmVjdG9yeSkKLSAgICAgICAgICAgIGFwcGVuZERp
cmVjdG9yeUZpbGVzKGNoaWxkUGF0aCwgY2hpbGRSZWxhdGl2ZVBhdGgsIGZpbGVPYmplY3RzKTsK
LSAgICAgICAgZWxzZSBpZiAobWV0YWRhdGEudmFsdWUoKS50eXBlID09IEZpbGVNZXRhZGF0YTo6
VHlwZTo6RmlsZSkKLSAgICAgICAgICAgIGZpbGVPYmplY3RzLmFwcGVuZChGaWxlOjpjcmVhdGVX
aXRoUmVsYXRpdmVQYXRoKGNoaWxkUGF0aCwgY2hpbGRSZWxhdGl2ZVBhdGgpKTsKLSAgICB9Ci19
Ci0KLXRlbXBsYXRlPEZpbGVMaXN0Q3JlYXRvcjo6U2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzIHNo
b3VsZFJlc29sdmVEaXJlY3Rvcmllcz4KLXN0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVM
aXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMpCi17Ci0gICAgVmVj
dG9yPFJlZjxGaWxlPj4gZmlsZU9iamVjdHM7Ci0gICAgZm9yIChhdXRvJiBpbmZvIDogcGF0aHMp
IHsKLSAgICAgICAgaWYgKHNob3VsZFJlc29sdmVEaXJlY3RvcmllcyA9PSBGaWxlTGlzdENyZWF0
b3I6OlNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzICYmIEZpbGVTeXN0ZW06OmZpbGVJc0Rp
cmVjdG9yeShpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6
Ok5vKSkKLSAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5
c3RlbTo6cGF0aEdldEZpbGVOYW1lKGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgZmlsZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBh
dGgsIGluZm8uZGlzcGxheU5hbWUpKTsKLSAgICB9Ci0gICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVh
dGUoV1RGTW92ZShmaWxlT2JqZWN0cykpOwotfQotCi1SZWZQdHI8RmlsZUxpc3RDcmVhdG9yPiBG
aWxlTGlzdENyZWF0b3I6OmNyZWF0ZShjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxlSW5mbz4m
IHBhdGhzLCBTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMgc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVz
LCBDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChzaG91
bGRSZXNvbHZlRGlyZWN0b3JpZXMgPT0gU2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzOjpObykgewot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVGaWxlTGlzdDxTaG91bGRSZXNvbHZlRGly
ZWN0b3JpZXM6Ok5vPihwYXRocykpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0K
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlTGlzdENyZWF0b3IocGF0aHMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKSk7Ci19Ci0KLUZpbGVMaXN0Q3JlYXRvcjo6RmlsZUxpc3RDcmVh
dG9yKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIENvbXBsZXRpb25I
YW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCi0gICAgOiBtX3dvcmtRdWV1ZShXb3JrUXVldWU6
OmNyZWF0ZSgiRmlsZUxpc3RDcmVhdG9yIFdvcmsgUXVldWUiKSkKLSAgICAsIG1fY29tcGxldGlv
bkhhbmRsZXIoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpCi17Ci0gICAgLy8gUmVzb2x2ZSBk
aXJlY3RvcmllcyBvbiBhIGJhY2tncm91bmQgdGhyZWFkIHRvIGF2b2lkIGJsb2NraW5nIHRoZSBt
YWluIHRocmVhZC4KLSAgICBtX3dvcmtRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgcGF0aHMgPSBjcm9zc1RocmVhZENvcHkocGF0aHMpXSgpIG11
dGFibGUgewotICAgICAgICBhdXRvIGZpbGVMaXN0ID0gY3JlYXRlRmlsZUxpc3Q8U2hvdWxkUmVz
b2x2ZURpcmVjdG9yaWVzOjpZZXM+KHBhdGhzKTsKLSAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGZpbGVMaXN0ID0g
V1RGTW92ZShmaWxlTGlzdCldKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUobV9jb21wbGV0aW9uSGFuZGxlcikpCi0gICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShmaWxlTGlzdCkpOwotICAgICAgICB9KTsK
LSAgICB9KTsKLX0KLQotdm9pZCBGaWxlTGlzdENyZWF0b3I6OmNhbmNlbCgpCi17Ci0gICAgbV9j
b21wbGV0aW9uSGFuZGxlciA9IG51bGxwdHI7Ci0gICAgbV93b3JrUXVldWUgPSBudWxscHRyOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ZpbGVMaXN0Q3JlYXRvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0
b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNiYWMwZWQzNzk5M2E1YzdhNWNi
NjgzOWFhOTI3MjAyYjg2ZWU2YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVMaXN0Q3JlYXRvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Ry
dWN0IEZpbGVDaG9vc2VyRmlsZUluZm87Ci1jbGFzcyBGaWxlTGlzdDsKLQotY2xhc3MgRmlsZUxp
c3RDcmVhdG9yIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZpbGVMaXN0Q3JlYXRvcj4g
ewotcHVibGljOgotICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gRnVuY3Rpb248dm9pZChS
ZWY8RmlsZUxpc3Q+JiYpPjsKLQotICAgIGVudW0gY2xhc3MgU2hvdWxkUmVzb2x2ZURpcmVjdG9y
aWVzIHsgTm8sIFllcyB9OwotICAgIHN0YXRpYyBSZWZQdHI8RmlsZUxpc3RDcmVhdG9yPiBjcmVh
dGUoY29uc3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiwgU2hvdWxkUmVzb2x2ZURpcmVj
dG9yaWVzLCBDb21wbGV0aW9uSGFuZGxlciYmKTsKLQotICAgIH5GaWxlTGlzdENyZWF0b3IoKTsK
LQotICAgIHZvaWQgY2FuY2VsKCk7Ci0KLXByaXZhdGU6Ci0gICAgRmlsZUxpc3RDcmVhdG9yKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYsIENvbXBsZXRpb25IYW5kbGVyJiYpOwot
Ci0gICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7Ci0gICAgQ29tcGxldGlvbkhhbmRs
ZXIgbV9jb21wbGV0aW9uSGFuZGxlcjsKLX07Ci0KLX0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402059</attachid>
            <date>2020-06-16 17:25:01 -0700</date>
            <delta_ts>2020-06-16 17:47:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213259-20200616172500.patch</filename>
            <type>text/plain</type>
            <size>28222</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTMyZjk2ZTFmODZiODkw
OTQ1YjMwN2RlZjk3YjA3NjBhZTc1NWVjZi4uZWQxZGU2MTU4MmEyYTViMmQyOGUzYmE5YmE1ODRi
MjFhNzM2YTIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA2LTE2ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBGaWxlTGlzdENyZWF0b3Igc2hv
dWxkIG9ubHkgYmUgdXNlZCBmb3IgcmVzb2x2aW5nIGRpcmVjdG9yaWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMyNTkKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY0Mzc1NzA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEtpbHplci4K
KworICAgICAgICBEZXBlbmRpbmcgb24gd2hldGhlciBkaXJlY3RvcmllcyBzaG91bGQgYmUgcmVz
b2x2ZWQsIEZpbGVMaXN0Q3JlYXRvcjo6Y3JlYXRlIHdvdWxkIGVpdGhlcgorICAgICAgICBzeW5j
aHJvbm91c2x5IGV4ZWN1dGUgaXRzIGNvbXBsZXRpb24gaGFuZGxlciB0aGVuIHJldHVybiBudWxs
cHRyIG9yIGFzeW5jaHJvbm91c2x5IGRpc3BhdGNoCisgICAgICAgIGl0cyBjb21wbGV0aW9uIGhh
bmRsZXIgdGhlbiByZXR1cm4gYSBub24tbnVsbCBSZWZQdHIuIEludGVyZmFjZXMgd2l0aCBzb21l
dGltZXMtc3luY2hyb25vdXMKKyAgICAgICAgY2FsbGJhY2tzIGNhbiBiZSBoYXJkIHRvIHVzZSBj
b3JyZWN0bHk7IGUuZy4sIHIyNjI5NjIgZml4ZXMgYSBwcm9ibGVtIHdoZXJlCisgICAgICAgIEZp
bGVJbnB1dFR5cGU6Om1fZmlsZUxpc3RDcmVhdG9yIHdhcyBiZWluZyBtb2RpZmllZCBpbiBhbiB1
bmV4cGVjdGVkIG9yZGVyLgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhlIGludGVyZmFj
ZSBiZXR3ZWVuIEZpbGVJbnB1dFR5cGUgYW5kIEZpbGVMaXN0Q3JlYXRvciBsZXNzIGVycm9yLXBy
b25lCisgICAgICAgIGFuZCBtb3JlIGV4cGxpY2l0IGJ5IHJlbmFtaW5nIEZpbGVMaXN0Q3JlYXRv
ciB0byBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IsIG1ha2luZyBpdHMgam9iCisgICAgICAgIHNv
bGVseSB0byBjcmVhdGUgZGlyZWN0b3J5IEZpbGVMaXN0cyBvbiBhIGJhY2tncm91bmQgcXVldWUs
IGFuZCBnaXZpbmcgaXQgYW4gZXhwbGljaXQgc3RhcnQKKyAgICAgICAgbWVtYmVyIGZ1bmN0aW9u
LiBGb3Igbm9uLWRpcmVjdG9yaWVzLCBGaWxlSW5wdXRUeXBlOjpmaWxlc0Nob3NlbiBub3cgYnlw
YXNzZXMKKyAgICAgICAgRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yIGFuZCBkaXJlY3RseSBjb252
ZXJ0cyBmcm9tIFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiB0byBGaWxlTGlzdC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAg
ICogaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwOiBSZW5hbWVkIGZyb20gaHRtbC9G
aWxlTGlzdENyZWF0b3IuY3BwLgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRmlsZUxpc3QpOiBS
ZW1vdmVkIHRoZSB0ZW1wbGF0ZSBhbmQgU2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzIHBhcmFtZXRl
ci4KKyAgICAgICAgKFdlYkNvcmU6OkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6RGlyZWN0b3J5
RmlsZUxpc3RDcmVhdG9yKTogTW92ZWQgdGhlIHdvcmsgcXVldWUKKyAgICAgICAgZGlzcGF0Y2hp
bmcgdG8gRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yOjpzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6
OkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6c3RhcnQpOiBBZGRlZDsgbW92ZWQgdGhlIHdvcmsg
cXVldWUgZGlzcGF0Y2hpbmcgaGVyZQorICAgICAgICBmcm9tIHRoZSBjdG9yLgorCisgICAgICAg
ICogaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaDogUmVuYW1lZCBmcm9tIGh0bWwvRmls
ZUxpc3RDcmVhdG9yLmguCisgICAgICAgIChXZWJDb3JlOjpEaXJlY3RvcnlGaWxlTGlzdENyZWF0
b3I6OmNyZWF0ZSk6IFN0b3BwZWQgcGVyZm9ybWluZyBub24tZGlyZWN0b3J5IGNyZWF0aW9uIGFu
ZAorICAgICAgICBjaGFuZ2VkIHRoZSByZXR1cm4gdmFsdWUgYmFjayB0byBSZWY8Pi4KKworICAg
ICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5w
dXRUeXBlOjpmaWxlc0Nob3Nlbik6IE1vdmVkIG1vc3Qgb2YgdGhlIHdvcmsgZG9uZSBpbiB0aGUg
RmlsZUxpc3RDcmVhdG9yCisgICAgICAgIGNvbXBsZXRpb24gaGFuZGxlciB0byBkaWRDcmVhdGVG
aWxlTGlzdC4gV2hlbiAhRmlsZUlucHV0VHlwZTo6YWxsb3dzRGlyZWN0b3JpZXMsIHVzZWQKKyAg
ICAgICAgVmVjdG9yOjptYXAgdG8gY29udmVydCBwYXRocyB0byBhIFZlY3RvcjxSZWY8RmlsZT4+
LCB1c2VkIHRoYXQgdG8gY3JlYXRlIGEgRmlsZUxpc3QsIHRoZW4KKyAgICAgICAgY2FsbGVkIGRp
ZENyZWF0ZUZpbGVMaXN0LiBPdGhlcndpc2UsIGNyZWF0ZWQgYW5kIHN0YXJ0ZWQgYSBEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3IgdGhhdAorICAgICAgICBjYWxscyBkaWRDcmVhdGVGaWxlTGlzdCBp
biBpdHMgY29tcGxldGlvbiBoYW5kbGVyLgorICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlw
ZTo6ZGlkQ3JlYXRlRmlsZUxpc3QpOiBBZGRlZDsgc2V0cyB0aGUgbmV3IGZpbGUgbGlzdCBhbmQg
aWNvbiBhbmQKKyAgICAgICAgY2xlYXJzIG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLgorCisg
ICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmg6CisKIDIwMjAtMDYtMTYgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIExvYWRzIHRyaWdnZXJlZCBieSBhbiBv
cGFxdWUgc3R5bGVzaGVldCBzaG91bGQgbm90IGJlIHZpc2libGUgdG8gc2VydmljZSB3b3JrZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CmluZGV4IDI0ZGI4ZmQyYzMxZDkxNDlkNjJiOTY5YTk1YTM2NDhlZDY1NTcw
ZWYuLmY2NTE3N2Q2NzhkMzcwNGUzNzhhODliYjg3ODhlZmZjMGZmY2ZhZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CkBAIC0xMTM0LDEwICsxMTM0LDEwIEBAIGh0bWwvRE9NVVJMLmNwcAogaHRtbC9EYXRlSW5w
dXRUeXBlLmNwcAogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKIGh0bWwvRGF0ZVRpbWVMb2Nh
bElucHV0VHlwZS5jcHAKK2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcAogaHRtbC9F
bWFpbElucHV0VHlwZS5jcHAKIGh0bWwvRW50ZXJLZXlIaW50LmNwcAogaHRtbC9GVFBEaXJlY3Rv
cnlEb2N1bWVudC5jcHAKLWh0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAogaHRtbC9GZWF0dXJlUG9s
aWN5LmNwcAogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAogaHRtbC9Gb3JtQXNzb2NpYXRlZEVsZW1l
bnQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNTI2NWRiNTgzODJhODkwNjBiMzYzMTU2YmY4ZjE3ZjQwMzJiNTg4MS4uZjNh
YTE5ZmE0M2EyYzA5ZGY2NGE2MWRkOGIwYTk3ZGUzMzc0NGY2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjQzMSw3ICsyNDMx
LDcgQEAKIAkJODM1OENCNzAxQzUzMjc3NTAwRTBDMkQ4IC8qIEpTWE1MRG9jdW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjU3MEFEMUM1MzI2
OEUwMDdGRDZDQiAvKiBKU1hNTERvY3VtZW50LmggKi87IH07CiAJCTgzNUQyRDc4MUY1RjFGQkQw
MDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM1RDJENzUxRjVGMUZCODAwMTQxREVEIC8q
IEhUTUxJbnB1dEVsZW1lbnRFbnRyaWVzQVBJLmggKi87IH07CiAJCTgzNUQzNjM3MTlGRjYxOTMw
MDRDOTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNUQzNjM2MTlGRjYxOTMwMDRDOTNBQiAvKiBTdHlsZUJ1
aWxkZXJDdXN0b20uaCAqLzsgfTsKLQkJODM1RDU0QzUxRjRERTUzODAwRTYwNjcxIC8qIEZpbGVM
aXN0Q3JlYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM1RDU0QzIxRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5oICovOyB9Owor
CQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzVENTRDMjFG
NERFNTM0MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggKi87IH07CiAJCTgz
NjJFOEMxMjBDRUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjJFOEJGMjBD
RUY5Q0IwMDI0NTg4NiAvKiBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4MzY1ODlERTFGNTRBNzY5
MDBEQzMxRjQgLyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzY1ODlEOTFGNTRBNzYyMDBEQzMxRjQg
LyogSlNGaWxlU3lzdGVtRGlyZWN0b3J5UmVhZGVyLmggKi87IH07CiAJCTgzNjU4OUUwMUY1NEE3
NkUwMERDMzFGNCAvKiBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNjU4OUQ4MUY1NEE3NjIwMERDMzFG
NCAvKiBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaCAqLzsgfTsKQEAgLTEwMzU4LDggKzEw
MzU4LDggQEAKIAkJODM1RDJENzUxRjVGMUZCODAwMTQxREVEIC8qIEhUTUxJbnB1dEVsZW1lbnRF
bnRyaWVzQVBJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxJbnB1dEVs
ZW1lbnRFbnRyaWVzQVBJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUQyRDc2
MUY1RjFGQjgwMDE0MURFRCAvKiBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQSS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MSW5wdXRFbGVtZW50RW50cmllc0FQ
SS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzNUQzNjM2MTlGRjYxOTMwMDRD
OTNBQiAvKiBTdHlsZUJ1aWxkZXJDdXN0b20uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3R5bGVCdWlsZGVyQ3VzdG9tLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTgzNUQ1NEMxMUY0REU1MzQwMEU2MDY3MSAvKiBGaWxlTGlzdENyZWF0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZUxpc3RDcmVhdG9yLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODM1RDU0QzIxRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVM
aXN0Q3JlYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlTGlzdENy
ZWF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODM1RDU0QzExRjRERTUzNDAw
RTYwNjcxIC8qIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRGlyZWN0
b3J5RmlsZUxpc3RDcmVhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERp
cmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
MzVGOEIyNjFEMkQ5MEJBMDBFNDA4RUMgLyogU2xvdGFibGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNsb3RhYmxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2MkU4
QkYyMENFRjlDQjAwMjQ1ODg2IC8qIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM2NTg5RDgxRjU0QTc2MjAwREMzMUY0
IC8qIEpTRmlsZVN5c3RlbUVudHJpZXNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0ZpbGVTeXN0ZW1FbnRyaWVzQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIyMjU3LDYgKzIyMjU3LDggQEAKIAkJCQlGNTVCM0Q4NDEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZVRpbWVJbnB1dFR5cGUuaCAqLywKIAkJCQlGNTVCM0Q4NTEyNTFGMTJE
MDAzRUYyNjkgLyogRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgKi8sCiAJCQkJRjU1QjNEODYx
MjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCAqLywKKwkJCQk4MzVE
NTRDMTFGNERFNTM0MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNwcCAqLywK
KwkJCQk4MzVENTRDMjFGNERFNTM0MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9y
LmggKi8sCiAJCQkJMkVENjA5QkExMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmNwcCAq
LywKIAkJCQkyRUQ2MDlCQjExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuaCAqLywKIAkJ
CQkyRTA4ODhDMzExNDg4M0E5MDBBRjQyNjUgLyogRE9NRm9ybURhdGEuaWRsICovLApAQCAtMjIy
NzQsOCArMjIyNzYsNiBAQAogCQkJCTQxQTA4Mjk5MjI5MzJFRjQwMDg0MjZFMCAvKiBGZWF0dXJl
UG9saWN5LmggKi8sCiAJCQkJRjU1QjNEODkxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5
cGUuY3BwICovLAogCQkJCUY1NUIzRDhBMTI1MUYxMkQwMDNFRjI2OSAvKiBGaWxlSW5wdXRUeXBl
LmggKi8sCi0JCQkJODM1RDU0QzExRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5j
cHAgKi8sCi0JCQkJODM1RDU0QzIxRjRERTUzNDAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5o
ICovLAogCQkJCTRBMERBMkZDMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRlZEVsZW1l
bnQuY3BwICovLAogCQkJCTRBMERBMkZEMTI5QjI0MTkwMEFCNjFFMSAvKiBGb3JtQXNzb2NpYXRl
ZEVsZW1lbnQuaCAqLywKIAkJCQlGNTA2NjRGNTE1N0Y1MkRDMDBBQzIyNkYgLyogRm9ybUNvbnRy
b2xsZXIuY3BwICovLApAQCAtMjk5OTIsNiArMjk5OTIsNyBAQAogCQkJCUVERTNBNTAwMEM3QTQz
MDYwMDk1NkEzNyAvKiBDb2xvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NBQzZBRTkyNDdG
MDgyRjAwRTYxRDU5IC8qIENvbG9yTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzgyREY1
ODEwQThENUM5MDA5MjU2NTIgLyogQ29sb3JTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0Mw
MjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRUFGNjZCMjNCRkMzOUUwMDQwMzBEQSAvKiBDb2xvclV0aWxpdGllcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8qIENvbHVtbkluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQzRURENjdGMUI0ODVEQkYwMDY0MEU3NSAvKiBDb21iaW5lZEZpbHRlcnNB
bHBoYWJldC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMDM1Niw2ICszMDM1Nyw3IEBACiAJCQkJOTM3
RkYzRDUxQTEwMTJENjAwOEVCQTMxIC8qIERpY3Rpb25hcnlMb29rdXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTJENTY0NkIwMUI4Rjg0OTMwMDNDNDk5NCAvKiBEaWN0aW9uYXJ5UG9wdXBJbmZvLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGREFGMTk5OTE1MTNEMTMxMDA4REIwQzMgLyogRGlyZWN0Q29u
dm9sdmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk4MzVENTRDNTFGNERFNTM4MDBFNjA2NzEgLyog
RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDdBMDlEMTIw
QTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1vbml0b3JDb2NvYS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMTE5OUZBNUIyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3gu
aCBpbiBIZWFkZXJzICovLApAQCAtMzA1ODgsNyArMzA1OTAsNiBAQAogCQkJCTFBODhBOTA1MTc1
NTNDRDcwMDBDNzRGOSAvKiBGaWxlSWNvbkxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1
QjNEQkUxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk3NkQ2Qzg2MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlTGlzdC5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJODM1RDU0QzUxRjRERTUzODAwRTYwNjcxIC8qIEZpbGVMaXN0Q3JlYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0EwOUNFRjExRjAyMDY5QjAwRTkzQkRCIC8qIEZpbGVNb25pdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5NzZENkM4OTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVJlYWRl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU3NTg0MUUxMjc3OUFEQTAwNjI2MjhCIC8qIEZpbGVS
ZWFkZXJMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzMxMTAsNyArMzMxMTEsNiBAQAogCQkJ
CUZFMzZGRDE4MTZDNzgyNjUwMEY4ODdDMSAvKiBTUUxUcmFuc2FjdGlvblN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlGRTM2RkQxNzE2Qzc4MjY1MDBGODg3QzEgLyogU1FMVHJhbnNhY3Rpb25T
dGF0ZU1hY2hpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkU2RTVBMENDNTUyMTMwMDRBMjA2
MiAvKiBTUUxWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJN0MwMjlDNkUyNDkzQzhGODAwMjY4
MjA0IC8qIENvbG9yVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRjE5OTYzMDgyNDVFNTkw
MDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2Qjk5OTkx
MTgwM0IzQzkwMEQwMTEyMSAvKiBTdGFja0FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM3RkE2MkQwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVh
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYWY5ZWIyMmM0YTY0MzUyMTQxZTcxOTU2ZTUyYTZjZmY2MmEwZjQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EaXJlY3RvcnlGaWxlTGlzdENy
ZWF0b3IuY3BwCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IuaCIKKworI2luY2x1
ZGUgIkZpbGVDaG9vc2VyLmgiCisjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlIDx3dGYv
Q3Jvc3NUaHJlYWRDb3BpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRmlsZU1ldGFkYXRhLmg+CisjaW5j
bHVkZSA8d3RmL0ZpbGVTeXN0ZW0uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitEaXJlY3Rv
cnlGaWxlTGlzdENyZWF0b3I6On5EaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IoKQoreworICAgIEFT
U0VSVCghbV9jb21wbGV0aW9uSGFuZGxlcik7Cit9CisKK3N0YXRpYyB2b2lkIGFwcGVuZERpcmVj
dG9yeUZpbGVzKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHJlbGF0aXZl
UGF0aCwgVmVjdG9yPFJlZjxGaWxlPj4mIGZpbGVPYmplY3RzKQoreworICAgIGZvciAoYXV0byYg
Y2hpbGRQYXRoIDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnksICIqIikpIHsK
KyAgICAgICAgYXV0byBtZXRhZGF0YSA9IEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YShjaGlsZFBh
dGgpOworICAgICAgICBpZiAoIW1ldGFkYXRhKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgaWYgKG1ldGFkYXRhLnZhbHVlKCkuaXNIaWRkZW4pCisgICAgICAgICAgICBjb250aW51
ZTsKKworICAgICAgICBTdHJpbmcgY2hpbGRSZWxhdGl2ZVBhdGggPSByZWxhdGl2ZVBhdGggKyAi
LyIgKyBGaWxlU3lzdGVtOjpwYXRoR2V0RmlsZU5hbWUoY2hpbGRQYXRoKTsKKyAgICAgICAgaWYg
KG1ldGFkYXRhLnZhbHVlKCkudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGU6OkRpcmVjdG9yeSkK
KyAgICAgICAgICAgIGFwcGVuZERpcmVjdG9yeUZpbGVzKGNoaWxkUGF0aCwgY2hpbGRSZWxhdGl2
ZVBhdGgsIGZpbGVPYmplY3RzKTsKKyAgICAgICAgZWxzZSBpZiAobWV0YWRhdGEudmFsdWUoKS50
eXBlID09IEZpbGVNZXRhZGF0YTo6VHlwZTo6RmlsZSkKKyAgICAgICAgICAgIGZpbGVPYmplY3Rz
LmFwcGVuZChGaWxlOjpjcmVhdGVXaXRoUmVsYXRpdmVQYXRoKGNoaWxkUGF0aCwgY2hpbGRSZWxh
dGl2ZVBhdGgpKTsKKyAgICB9Cit9CisKK3N0YXRpYyBSZWY8RmlsZUxpc3Q+IGNyZWF0ZUZpbGVM
aXN0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMpCit7CisgICAgVmVj
dG9yPFJlZjxGaWxlPj4gZmlsZU9iamVjdHM7CisgICAgZm9yIChhdXRvJiBpbmZvIDogcGF0aHMp
IHsKKyAgICAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVJc0RpcmVjdG9yeShpbmZvLnBhdGgsIEZp
bGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6Ok5vKSkKKyAgICAgICAgICAgIGFw
cGVuZERpcmVjdG9yeUZpbGVzKGluZm8ucGF0aCwgRmlsZVN5c3RlbTo6cGF0aEdldEZpbGVOYW1l
KGluZm8ucGF0aCksIGZpbGVPYmplY3RzKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZmls
ZU9iamVjdHMuYXBwZW5kKEZpbGU6OmNyZWF0ZShpbmZvLnBhdGgsIGluZm8uZGlzcGxheU5hbWUp
KTsKKyAgICB9CisgICAgcmV0dXJuIEZpbGVMaXN0OjpjcmVhdGUoV1RGTW92ZShmaWxlT2JqZWN0
cykpOworfQorCitEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I6OkRpcmVjdG9yeUZpbGVMaXN0Q3Jl
YXRvcihDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIDogbV93b3Jr
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciBXb3JrIFF1
ZXVlIikpCisgICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKQoreworfQorCit2b2lkIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6c3RhcnQoY29uc3Qg
VmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocykKK3sKKyAgICAvLyBSZXNvbHZlIGRp
cmVjdG9yaWVzIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgdG8gYXZvaWQgYmxvY2tpbmcgdGhlIG1h
aW4gdGhyZWFkLgorICAgIG1fd29ya1F1ZXVlLT5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBwYXRocyA9IGNyb3NzVGhyZWFkQ29weShwYXRocyldKCkgbXV0
YWJsZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBmaWxlTGlzdCA9IGNyZWF0ZUZpbGVMaXN0KHBhdGhzKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGlmIChhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gc3Rk
OjpleGNoYW5nZShtX2NvbXBsZXRpb25IYW5kbGVyLCBudWxscHRyKSkKKyAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGZpbGVMaXN0KSk7CisgICAgICAgIH0pOworICAg
IH0pOworfQorCit2b2lkIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcjo6Y2FuY2VsKCkKK3sKKyAg
ICBtX2NvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBtX3dvcmtRdWV1ZSA9IG51bGxw
dHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0N2Y2NTJkMGIzYWNhZTFh
MDEyMzkyMzdiNzllMTZkY2ZlOTQ0ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNp
bmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGaWxlQ2hvb3NlckZpbGVJbmZvOworY2xh
c3MgRmlsZUxpc3Q7CisKK2NsYXNzIERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvciA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I+IHsKK3B1YmxpYzoK
KyAgICB1c2luZyBDb21wbGV0aW9uSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoUmVmPEZpbGVMaXN0
PiYmKT47CisKKyAgICBzdGF0aWMgUmVmPERpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcj4gY3JlYXRl
KENvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IoV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpKTsKKyAgICB9CisKKyAgICB+RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9y
KCk7CisKKyAgICB2b2lkIHN0YXJ0KGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYp
OworICAgIHZvaWQgY2FuY2VsKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgRGlyZWN0b3J5
RmlsZUxpc3RDcmVhdG9yKENvbXBsZXRpb25IYW5kbGVyJiYpOworCisgICAgUmVmUHRyPFdvcmtR
dWV1ZT4gbV93b3JrUXVldWU7CisgICAgQ29tcGxldGlvbkhhbmRsZXIgbV9jb21wbGV0aW9uSGFu
ZGxlcjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4IDhm
NzE3ODFhMjU4MTY3MjgwZjJhZTlhOGZjZDJiNzlhN2U4ODhmMTIuLmYzYzcwOThjYmY1ZTRiODIw
ZWI2ODBmN2NjNDI2NTVmMGI5ZTJkNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBl
LmNwcApAQCAtMjQsMTIgKzI0LDEyIEBACiAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRl
ICJET01Gb3JtRGF0YS5oIgorI2luY2x1ZGUgIkRpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvci5oIgog
I2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAiRWxlbWVudENoaWxkSXRlcmF0b3IuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJGaWxlTGlz
dC5oIgotI2luY2x1ZGUgIkZpbGVMaXN0Q3JlYXRvci5oIgogI2luY2x1ZGUgIkZvcm1Db250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CkBAIC00MDksMTkgKzQwOSwzNiBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OmZpbGVzQ2hvc2VuKGNv
bnN0IFZlY3RvcjxGaWxlQ2hvb3NlckZpbGVJbmZvPiYgcGF0aHMsIGNvbnN0CiAgICAgaWYgKCFk
aXNwbGF5U3RyaW5nLmlzRW1wdHkoKSkKICAgICAgICAgbV9kaXNwbGF5U3RyaW5nID0gZGlzcGxh
eVN0cmluZzsKIAotICAgIGlmIChtX2ZpbGVMaXN0Q3JlYXRvcikKLSAgICAgICAgbV9maWxlTGlz
dENyZWF0b3ItPmNhbmNlbCgpOworICAgIGlmIChtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRvcikK
KyAgICAgICAgbV9kaXJlY3RvcnlGaWxlTGlzdENyZWF0b3ItPmNhbmNlbCgpOwogCi0gICAgYXV0
byBzaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMgPSBhbGxvd3NEaXJlY3RvcmllcygpID8gRmlsZUxp
c3RDcmVhdG9yOjpTaG91bGRSZXNvbHZlRGlyZWN0b3JpZXM6OlllcyA6IEZpbGVMaXN0Q3JlYXRv
cjo6U2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzOjpObzsKLSAgICBtX2ZpbGVMaXN0Q3JlYXRvciA9
IEZpbGVMaXN0Q3JlYXRvcjo6Y3JlYXRlKHBhdGhzLCBzaG91bGRSZXNvbHZlRGlyZWN0b3JpZXMs
IFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgaWNvbiA9IG1ha2VSZWZQdHIo
aWNvbildKFJlZjxGaWxlTGlzdD4mJiBmaWxlTGlzdCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8g
cHJvdGVjdGVkVGhpcyA9IG1ha2VSZWZQdHIod2Vha1RoaXMuZ2V0KCkpOwotICAgICAgICBpZiAo
IXByb3RlY3RlZFRoaXMpCisgICAgaWYgKCFhbGxvd3NEaXJlY3RvcmllcygpKSB7CisgICAgICAg
IGF1dG8gZmlsZXMgPSBwYXRocy5tYXAoW10oYXV0byYgZmlsZUluZm8pIHsKKyAgICAgICAgICAg
IHJldHVybiBGaWxlOjpjcmVhdGUoZmlsZUluZm8ucGF0aCwgZmlsZUluZm8uZGlzcGxheU5hbWUp
OworICAgICAgICB9KTsKKyAgICAgICAgZGlkQ3JlYXRlRmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0
ZShXVEZNb3ZlKGZpbGVzKSksIGljb24pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
bV9kaXJlY3RvcnlGaWxlTGlzdENyZWF0b3IgPSBEaXJlY3RvcnlGaWxlTGlzdENyZWF0b3I6OmNy
ZWF0ZShbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIGljb24gPSBtYWtlUmVm
UHRyKGljb24pXShSZWY8RmlsZUxpc3Q+JiYgZmlsZUxpc3QpIG11dGFibGUgeworICAgICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICBzZXRGaWxlcyhXVEZNb3ZlKGZpbGVMaXN0KSwgaWNvbiA/IFJl
cXVlc3RJY29uOjpZZXMgOiBSZXF1ZXN0SWNvbjo6Tm8pOwotICAgICAgICBpZiAoaWNvbiAmJiAh
bV9maWxlTGlzdC0+aXNFbXB0eSgpICYmIGVsZW1lbnQoKSkKLSAgICAgICAgICAgIGljb25Mb2Fk
ZWQoV1RGTW92ZShpY29uKSk7Ci0gICAgICAgIG1fZmlsZUxpc3RDcmVhdG9yID0gbnVsbHB0cjsK
KyAgICAgICAgZGlkQ3JlYXRlRmlsZUxpc3QoV1RGTW92ZShmaWxlTGlzdCksIFdURk1vdmUoaWNv
bikpOwogICAgIH0pOworICAgIG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLT5zdGFydChwYXRo
cyk7Cit9CisKK3ZvaWQgRmlsZUlucHV0VHlwZTo6ZGlkQ3JlYXRlRmlsZUxpc3QoUmVmPEZpbGVM
aXN0PiYmIGZpbGVMaXN0LCBSZWZQdHI8SWNvbj4mJiBpY29uKQoreworICAgIGF1dG8gcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCisgICAgQVNTRVJUKCFhbGxvd3NEaXJlY3Rvcmll
cygpIHx8IG1fZGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yKTsKKyAgICBtX2RpcmVjdG9yeUZpbGVM
aXN0Q3JlYXRvciA9IG51bGxwdHI7CisKKyAgICBzZXRGaWxlcyhXVEZNb3ZlKGZpbGVMaXN0KSwg
aWNvbiA/IFJlcXVlc3RJY29uOjpZZXMgOiBSZXF1ZXN0SWNvbjo6Tm8pOworICAgIGlmIChpY29u
ICYmICFtX2ZpbGVMaXN0LT5pc0VtcHR5KCkgJiYgZWxlbWVudCgpKQorICAgICAgICBpY29uTG9h
ZGVkKFdURk1vdmUoaWNvbikpOwogfQogCiBTdHJpbmcgRmlsZUlucHV0VHlwZTo6ZGlzcGxheVN0
cmluZygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCmluZGV4IDI5Mzg0ODJh
MjJhNDhmNjQ0M2JhODQ3MGJjZTYyMjIxMDY5ZTVkMmQuLjA4ZjYyMWZlNWMzZDZkMzAzODY3YWU5
ZjA3MTdlYWRkMzU2ZWNiYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oCkBAIC0z
OSw5ICszOSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGlyZWN0b3J5Rmls
ZUxpc3RDcmVhdG9yOwogY2xhc3MgRHJhZ0RhdGE7CiBjbGFzcyBGaWxlTGlzdDsKLWNsYXNzIEZp
bGVMaXN0Q3JlYXRvcjsKIGNsYXNzIEljb247CiAKIGNsYXNzIEZpbGVJbnB1dFR5cGUgZmluYWwg
OiBwdWJsaWMgQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUsIHByaXZhdGUgRmlsZUNob29z
ZXJDbGllbnQsIHByaXZhdGUgRmlsZUljb25Mb2FkZXJDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vh
a1B0cjxGaWxlSW5wdXRUeXBlPiB7CkBAIC04Niw5ICs4Niw5IEBAIHByaXZhdGU6CiAgICAgLy8g
RmlsZUljb25Mb2FkZXJDbGllbnQgaW1wbGVtZW50YXRpb24uCiAgICAgdm9pZCBpY29uTG9hZGVk
KFJlZlB0cjxJY29uPiYmKSBmaW5hbDsKIAotICAgIHZvaWQgcmVxdWVzdEljb24oY29uc3QgVmVj
dG9yPFN0cmluZz4mKTsKLQogICAgIHZvaWQgYXBwbHlGaWxlQ2hvb3NlclNldHRpbmdzKGNvbnN0
IEZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKKyAgICB2b2lkIGRpZENyZWF0ZUZpbGVMaXN0KFJlZjxG
aWxlTGlzdD4mJiwgUmVmUHRyPEljb24+JiYpOworICAgIHZvaWQgcmVxdWVzdEljb24oY29uc3Qg
VmVjdG9yPFN0cmluZz4mKTsKIAogICAgIGJvb2wgYWxsb3dzRGlyZWN0b3JpZXMoKSBjb25zdDsK
IApAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlSWNv
bkxvYWRlcj4gbV9maWxlSWNvbkxvYWRlcjsKIAogICAgIFJlZjxGaWxlTGlzdD4gbV9maWxlTGlz
dDsKLSAgICBSZWZQdHI8RmlsZUxpc3RDcmVhdG9yPiBtX2ZpbGVMaXN0Q3JlYXRvcjsKKyAgICBS
ZWZQdHI8RGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yPiBtX2RpcmVjdG9yeUZpbGVMaXN0Q3JlYXRv
cjsKICAgICBSZWZQdHI8SWNvbj4gbV9pY29uOwogICAgIFN0cmluZyBtX2Rpc3BsYXlTdHJpbmc7
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxNTI3ZTBkMThkZWI2YmEzOTg2MTg1OWRhZGNlOTk3N2ZkYjM1NjVl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDEwMyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
RmlsZUxpc3RDcmVhdG9yLmgiCi0KLSNpbmNsdWRlICJGaWxlQ2hvb3Nlci5oIgotI2luY2x1ZGUg
IkZpbGVMaXN0LmgiCi0jaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkQ29waWVyLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZpbGVNZXRhZGF0YS5oPgotI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotRmlsZUxpc3RDcmVhdG9yOjp+RmlsZUxpc3RDcmVhdG9yKCkK
LXsKLSAgICBBU1NFUlQoIW1fY29tcGxldGlvbkhhbmRsZXIpOwotfQotCi1zdGF0aWMgdm9pZCBh
cHBlbmREaXJlY3RvcnlGaWxlcyhjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgY29uc3QgU3RyaW5n
JiByZWxhdGl2ZVBhdGgsIFZlY3RvcjxSZWY8RmlsZT4+JiBmaWxlT2JqZWN0cykKLXsKLSAgICBm
b3IgKGF1dG8mIGNoaWxkUGF0aCA6IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZGlyZWN0b3J5
LCAiKiIpKSB7Ci0gICAgICAgIGF1dG8gbWV0YWRhdGEgPSBGaWxlU3lzdGVtOjpmaWxlTWV0YWRh
dGEoY2hpbGRQYXRoKTsKLSAgICAgICAgaWYgKCFtZXRhZGF0YSkKLSAgICAgICAgICAgIGNvbnRp
bnVlOwotCi0gICAgICAgIGlmIChtZXRhZGF0YS52YWx1ZSgpLmlzSGlkZGVuKQotICAgICAgICAg
ICAgY29udGludWU7Ci0KLSAgICAgICAgU3RyaW5nIGNoaWxkUmVsYXRpdmVQYXRoID0gcmVsYXRp
dmVQYXRoICsgIi8iICsgRmlsZVN5c3RlbTo6cGF0aEdldEZpbGVOYW1lKGNoaWxkUGF0aCk7Ci0g
ICAgICAgIGlmIChtZXRhZGF0YS52YWx1ZSgpLnR5cGUgPT0gRmlsZU1ldGFkYXRhOjpUeXBlOjpE
aXJlY3RvcnkpCi0gICAgICAgICAgICBhcHBlbmREaXJlY3RvcnlGaWxlcyhjaGlsZFBhdGgsIGNo
aWxkUmVsYXRpdmVQYXRoLCBmaWxlT2JqZWN0cyk7Ci0gICAgICAgIGVsc2UgaWYgKG1ldGFkYXRh
LnZhbHVlKCkudHlwZSA9PSBGaWxlTWV0YWRhdGE6OlR5cGU6OkZpbGUpCi0gICAgICAgICAgICBm
aWxlT2JqZWN0cy5hcHBlbmQoRmlsZTo6Y3JlYXRlV2l0aFJlbGF0aXZlUGF0aChjaGlsZFBhdGgs
IGNoaWxkUmVsYXRpdmVQYXRoKSk7Ci0gICAgfQotfQotCi10ZW1wbGF0ZTxGaWxlTGlzdENyZWF0
b3I6OlNob3VsZFJlc29sdmVEaXJlY3RvcmllcyBzaG91bGRSZXNvbHZlRGlyZWN0b3JpZXM+Ci1z
dGF0aWMgUmVmPEZpbGVMaXN0PiBjcmVhdGVGaWxlTGlzdChjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIHBhdGhzKQotewotICAgIFZlY3RvcjxSZWY8RmlsZT4+IGZpbGVPYmplY3Rz
OwotICAgIGZvciAoYXV0byYgaW5mbyA6IHBhdGhzKSB7Ci0gICAgICAgIGlmIChzaG91bGRSZXNv
bHZlRGlyZWN0b3JpZXMgPT0gRmlsZUxpc3RDcmVhdG9yOjpTaG91bGRSZXNvbHZlRGlyZWN0b3Jp
ZXM6OlllcyAmJiBGaWxlU3lzdGVtOjpmaWxlSXNEaXJlY3RvcnkoaW5mby5wYXRoLCBGaWxlU3lz
dGVtOjpTaG91bGRGb2xsb3dTeW1ib2xpY0xpbmtzOjpObykpCi0gICAgICAgICAgICBhcHBlbmRE
aXJlY3RvcnlGaWxlcyhpbmZvLnBhdGgsIEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxlTmFtZShpbmZv
LnBhdGgpLCBmaWxlT2JqZWN0cyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGZpbGVPYmpl
Y3RzLmFwcGVuZChGaWxlOjpjcmVhdGUoaW5mby5wYXRoLCBpbmZvLmRpc3BsYXlOYW1lKSk7Ci0g
ICAgfQotICAgIHJldHVybiBGaWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoZmlsZU9iamVjdHMpKTsK
LX0KLQotUmVmUHRyPEZpbGVMaXN0Q3JlYXRvcj4gRmlsZUxpc3RDcmVhdG9yOjpjcmVhdGUoY29u
c3QgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+JiBwYXRocywgU2hvdWxkUmVzb2x2ZURpcmVj
dG9yaWVzIHNob3VsZFJlc29sdmVEaXJlY3RvcmllcywgQ29tcGxldGlvbkhhbmRsZXImJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoc2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzID09IFNo
b3VsZFJlc29sdmVEaXJlY3Rvcmllczo6Tm8pIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
Y3JlYXRlRmlsZUxpc3Q8U2hvdWxkUmVzb2x2ZURpcmVjdG9yaWVzOjpObz4ocGF0aHMpKTsKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RmlsZUxpc3RDcmVhdG9yKHBhdGhzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSkpOwotfQot
Ci1GaWxlTGlzdENyZWF0b3I6OkZpbGVMaXN0Q3JlYXRvcihjb25zdCBWZWN0b3I8RmlsZUNob29z
ZXJGaWxlSW5mbz4mIHBhdGhzLCBDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVy
KQotICAgIDogbV93b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIkZpbGVMaXN0Q3JlYXRvciBX
b3JrIFF1ZXVlIikpCi0gICAgLCBtX2NvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKQotewotICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgb24gYSBiYWNrZ3JvdW5k
IHRocmVhZCB0byBhdm9pZCBibG9ja2luZyB0aGUgbWFpbiB0aHJlYWQuCi0gICAgbV93b3JrUXVl
dWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHBhdGhz
ID0gY3Jvc3NUaHJlYWRDb3B5KHBhdGhzKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBmaWxl
TGlzdCA9IGNyZWF0ZUZpbGVMaXN0PFNob3VsZFJlc29sdmVEaXJlY3Rvcmllczo6WWVzPihwYXRo
cyk7Ci0gICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZN
b3ZlKHByb3RlY3RlZFRoaXMpLCBmaWxlTGlzdCA9IFdURk1vdmUoZmlsZUxpc3QpXSgpIG11dGFi
bGUgewotICAgICAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKG1f
Y29tcGxldGlvbkhhbmRsZXIpKQotICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdU
Rk1vdmUoZmlsZUxpc3QpKTsKLSAgICAgICAgfSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgRmlsZUxp
c3RDcmVhdG9yOjpjYW5jZWwoKQotewotICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRy
OwotICAgIG1fd29ya1F1ZXVlID0gbnVsbHB0cjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlTGlzdENyZWF0b3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRmlsZUxpc3RDcmVhdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJjYmFjMGVkMzc5OTNhNWM3YTVjYjY4MzlhYTkyNzIwMmI4NmVlNmEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9GaWxlTGlzdENyZWF0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
LSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVk
ZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBGaWxlQ2hvb3NlckZpbGVJbmZvOwot
Y2xhc3MgRmlsZUxpc3Q7Ci0KLWNsYXNzIEZpbGVMaXN0Q3JlYXRvciA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxGaWxlTGlzdENyZWF0b3I+IHsKLXB1YmxpYzoKLSAgICB1c2luZyBDb21w
bGV0aW9uSGFuZGxlciA9IEZ1bmN0aW9uPHZvaWQoUmVmPEZpbGVMaXN0PiYmKT47Ci0KLSAgICBl
bnVtIGNsYXNzIFNob3VsZFJlc29sdmVEaXJlY3RvcmllcyB7IE5vLCBZZXMgfTsKLSAgICBzdGF0
aWMgUmVmUHRyPEZpbGVMaXN0Q3JlYXRvcj4gY3JlYXRlKGNvbnN0IFZlY3RvcjxGaWxlQ2hvb3Nl
ckZpbGVJbmZvPiYsIFNob3VsZFJlc29sdmVEaXJlY3RvcmllcywgQ29tcGxldGlvbkhhbmRsZXIm
Jik7Ci0KLSAgICB+RmlsZUxpc3RDcmVhdG9yKCk7Ci0KLSAgICB2b2lkIGNhbmNlbCgpOwotCi1w
cml2YXRlOgotICAgIEZpbGVMaXN0Q3JlYXRvcihjb25zdCBWZWN0b3I8RmlsZUNob29zZXJGaWxl
SW5mbz4mLCBDb21wbGV0aW9uSGFuZGxlciYmKTsKLQotICAgIFJlZlB0cjxXb3JrUXVldWU+IG1f
d29ya1F1ZXVlOwotICAgIENvbXBsZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7Ci19
OwotCi19Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>