<?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>236038</bug_id>
          
          <creation_ts>2022-02-02 13:58:53 -0800</creation_ts>
          <short_desc>Move connect event dispatch logic to SharedWorkerGlobalScope</short_desc>
          <delta_ts>2022-02-02 18:28:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>236028</dependson>
          <blocked>235958</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1836628</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-02 13:58:53 -0800</bug_when>
    <thetext>Move connect event dispatch logic to SharedWorkerGlobalScope and add logging.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836629</commentid>
    <comment_count>1</comment_count>
      <attachid>450696</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-02 14:01:50 -0800</bug_when>
    <thetext>Created attachment 450696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836650</commentid>
    <comment_count>2</comment_count>
      <attachid>450696</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-02-02 15:06:33 -0800</bug_when>
    <thetext>Comment on attachment 450696
Patch

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

&gt; Source/WebCore/workers/shared/SharedWorkerGlobalScope.cpp:68
&gt; +    auto serializedScriptValue = SerializedScriptValue::create(&quot;&quot;);

emptyString()?

Shorter variable name? Maybe serializedValue or even just value?

&gt; Source/WebCore/workers/shared/SharedWorkerGlobalScope.h:28
&gt; +#include &quot;MessageWithMessagePorts.h&quot;

Do we really need this header? No way to forward declare TransferredMessagePort instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836654</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-02 15:11:03 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 450696 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450696&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/shared/SharedWorkerGlobalScope.cpp:68
&gt; &gt; +    auto serializedScriptValue = SerializedScriptValue::create(&quot;&quot;);
&gt; 
&gt; emptyString()?
&gt; 
&gt; Shorter variable name? Maybe serializedValue or even just value?
&gt; 
&gt; &gt; Source/WebCore/workers/shared/SharedWorkerGlobalScope.h:28
&gt; &gt; +#include &quot;MessageWithMessagePorts.h&quot;
&gt; 
&gt; Do we really need this header? No way to forward declare
&gt; TransferredMessagePort instead?


Once Bug 236028 lands, I&apos;ll be able to include TransferredMessagePort.h instead which will be an improvement. I don&apos;t think I can conveniently forward-declare though since this is basically a typedef to a std::pair&lt;MessagePortIdentifier, MessagePortIdentifier&gt;.

I will wait for Bug 236028 before landing this one, so I can fix the include.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836667</commentid>
    <comment_count>4</comment_count>
      <attachid>450706</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-02 15:33:46 -0800</bug_when>
    <thetext>Created attachment 450706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836736</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-02-02 18:19:20 -0800</bug_when>
    <thetext>Committed r289023 (246731@trunk): &lt;https://commits.webkit.org/246731@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1836737</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-02 18:20:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/88412313&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450696</attachid>
            <date>2022-02-02 14:01:50 -0800</date>
            <delta_ts>2022-02-02 15:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236038-20220202140150.patch</filename>
            <type>text/plain</type>
            <size>22248</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4OTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU5YjJjYWIxYzRmZDc0
MGMyMmYyYWY2YTczY2E1YjdiOWMyOTBlYS4uNjc4ZDQ3N2QyMjFhODMyOTQ3NDRiNmY5ODE0NmEx
YjYyYjI0YmJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBjb25uZWN0IGV2ZW50
IGRpc3BhdGNoIGxvZ2ljIHRvIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYwMzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGNvbm5lY3QgZXZlbnQgZGlz
cGF0Y2ggbG9naWMgdG8gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgYW5kIGFkZCBsb2dnaW5nLgor
CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IHBsYXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxT
Y29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyR2xv
YmFsU2NvcGU6OnBvc3RDb25uZWN0RXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVkL1No
YXJlZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zaGFyZWQvU2hhcmVk
V29ya2VySWRlbnRpZmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3No
YXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5oLgorICAgICAgICAqIHdvcmtlcnMvc2hh
cmVkL1NoYXJlZFdvcmtlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29y
a2VyTWFuYWdlcjo6c2NyaXB0TG9hZGVkU3VjY2Vzc2Z1bGx5KToKKyAgICAgICAgKiB3b3JrZXJz
L3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyVGhyZWFkOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZFByb3h5OjpzdGFydFdvcmtlckds
b2JhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZFByb3h5Ojpp
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJl
ZFdvcmtlclRocmVhZFByb3h5Lmg6CisKIDIwMjItMDItMDIgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2FpZEBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBSZW1vdmUgRGlzcGxheUxp
c3Q6OlJlcGxheWVyOjpEZWxlZ2F0ZSBhbmQgRGlzcGxheUxpc3Q6OlJlY29yZGVySW1wbDo6RGVs
ZWdhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IGUxNDM3YTZiYzEzYzA5MjRkMDE3Y2QwMmVhYTdl
YTU0MmZmYWQ0NTIuLjZmN2JmNWE0YzZmM2M0NmFjM2ZlY2RiNDBmNzY1MGM0ZDJiMGRlNDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQpAQCAtMjAwMCw2ICsyMDAwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFU
RV9GUkFNRVdPUktfSEVBREVSUwogICAgIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
V29ya2VyLmgKIAorICAgIHdvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlcklkZW50aWZpZXIuaAog
ICAgIHdvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkLmgKICAgICB3b3Jr
ZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmgKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVmMzQ0
OWM3NjNkYTQwNTM2N2M4MmNmNTU0MWNmZjAxMmNhN2YxMGYuLjNkMjJkYzZiYWQwOWEyYjA5MTU3
NGU4ZGMyNWNmMTg5ZjJiZmI2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzODYsNiArMTM4Niw3IEBACiAJCTQ2RUIzN0ND
MUY5N0NDRDIwMEI2NTUyMyAvKiBKU1NlcnZpY2VXb3JrZXJDbGllbnRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCMzdDNTFGOTdDQ0NCMDBCNjU1
MjMgLyogSlNTZXJ2aWNlV29ya2VyQ2xpZW50cy5oICovOyB9OwogCQk0NkVCMzdDRTFGOTdDQ0Qy
MDBCNjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCMzdDNzFGOTdDQ0NCMDBCNjU1MjMg
LyogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggKi87IH07CiAJCTQ2RUJFQTAyMUI3RDRE
NjUwMEJFNDk0MSAvKiBDb2xsZWN0aW9uVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyogQ29s
bGVjdGlvblRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTQ2RUM0NDRBMjdBQjMzODkwMEZGQ0Q5NiAvKiBTaGFyZWRXb3JrZXJJZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29ya2VySWRlbnRpZmllci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2RUNCNjM4MUZE
MEEzQzgwMDg4RTVBRCAvKiBTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RUNCNjM3MUZEMEEzQkIwMDg4RTVBRCAvKiBT
V0NsaWVudENvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0NkVGMTQyQTFGOTdCN0Q4MDBDMkE1MjQgLyogU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDZFRjE0MjAxRjk3QjdCQTAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQu
aCAqLzsgfTsKIAkJNDZFRjE0MkMxRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVG
MTQyMjFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuaCAqLzsgfTsKQEAg
LTkzMTksNiArOTMyMCw3IEBACiAJCTQ2RUIzN0M2MUY5N0NDQ0IwMEI2NTUyMyAvKiBKU1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDZFQjM3QzcxRjk3Q0NDQjAwQjY1NTIzIC8qIEpTU2VydmljZVdvcmtlcldp
bmRvd0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NlcnZpY2VX
b3JrZXJXaW5kb3dDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQkVB
MDExQjdENEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25UcmF2ZXJzYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlvblRyYXZlcnNhbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29ya2Vy
SWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRXb3Jr
ZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUNCNjM2MUZE
MEEzQkIwMDg4RTVBRCAvKiBTV0NsaWVudENvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU1dDbGllbnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQ0I2MzcxRkQwQTNCQjAwODhFNUFEIC8qIFNXQ2xpZW50Q29u
bmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTV0NsaWVudENvbm5l
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRjE0MjAxRjk3QjdCQTAw
QzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjE1NzMsNiArMjE1NzUsNyBAQAogCQkJCTQ2Njk0Q0U0Mjc1OTQ0
OEUwMEUzMTUwRSAvKiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNDY2OTRD
RTEyNzU5NDQ4QzAwRTMxNTBFIC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggKi8sCiAJCQkJ
NDY2OTRDRTAyNzU5NDQ4QzAwRTMxNTBFIC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmlkbCAq
LywKKwkJCQk0NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29ya2VySWRlbnRpZmll
ci5oICovLAogCQkJCTQ2N0E2OEQzMjc1RUE5OEIwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5h
Z2VyLmNwcCAqLywKIAkJCQk0NjdBNjhEMjI3NUVBOThBMDA5QjMxQzUgLyogU2hhcmVkV29ya2Vy
TWFuYWdlci5oICovLAogCQkJCTQ2N0E2OEQxMjc1RUE5OEEwMDlCMzFDNSAvKiBTaGFyZWRXb3Jr
ZXJTY3JpcHRMb2FkZXIuY3BwICovLApAQCAtMzcxODYsNiArMzcxODksNyBAQAogCQkJCTgzNERG
QUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQxREMwNEZFMjdBODNDOTMwMDhDRjk2OCAvKiBTaGFyZWRWaWRlb0ZyYW1lSW5m
by5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZFQzQ0NEEyN0FCMzM4OTAwRkZDRDk2IC8qIFNoYXJl
ZFdvcmtlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2N0E2OERBMjc1RUE5OUMw
MDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjdB
NjhEODI3NUVBOTk1MDA5QjMxQzUgLyogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NjdBNjhENzI3NUVBOTkxMDA5QjMxQzUgLyogU2hhcmVkV29ya2VyVGhy
ZWFkLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBkYzBm
NTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmLi41ZmVmNDJlZTA2ZWM1MTE1ZmQ4
NmU5ODg5NGY2OWQ3YzIxOWUzZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBAIC0x
MDksNiArMTA5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oU2VsZWN0aW9uKSBcCiAg
ICAgTShTZXJ2aWNlcykgXAogICAgIE0oU2VydmljZVdvcmtlcikgXAorICAgIE0oU2hhcmVkV29y
a2VyKSBcCiAgICAgTShTcGVsbGluZ0FuZEdyYW1tYXIpIFwKICAgICBNKFNRTERhdGFiYXNlKSBc
CiAgICAgTShTdG9yYWdlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3No
YXJlZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NoYXJlZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggNDEyMWViNThjMjA1NDJk
NGE5MzI3MGEzYmQ1MzQyY2ZkNTI3MTVjMi4uZmU1N2Q2NGFjMzA1YTFhODljZDlmZjcyODdmMjM2
ZDdiMTk4ZjVlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hh
cmVkL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiwxMiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgiCiAKKyNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1lc3Nh
Z2VFdmVudC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJTaGFyZWRXb3JrZXJUaHJlYWQuaCIK
ICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5l
cy5oPgogCkBAIC0zMywxNyArMzksNDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFL
RV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOwogCi1TaGFyZWRX
b3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiBwYXJhbXMsIFJlZjxTZWN1cml0eU9yaWdpbj4m
JiBvcmlnaW4sIFdvcmtlclRocmVhZCYgdGhyZWFkLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9w
T3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBT
b2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCisjZGVmaW5lIFNDT1BFX1JFTEVBU0VfTE9H
KGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICIlcCAtIFtzaGFyZWRXb3JrZXJJ
ZGVudGlmaWVyPSUiIFBSSXU2NCAiXSBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6IiBmbXQsIHRo
aXMsIHRoaXMtPnRocmVhZCgpLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCAjI19fVkFfQVJHU19f
KQorCitTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiBwYXJhbXMsIFJlZjxTZWN1
cml0eU9yaWdpbj4mJiBvcmlnaW4sIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBSZWY8U2Vj
dXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSog
Y29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCiAgICAgOiBX
b3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlOjpTaGFyZWRXb3JrZXIsIHBhcmFtcywg
V1RGTW92ZShvcmlnaW4pLCB0aHJlYWQsIFdURk1vdmUodG9wT3JpZ2luKSwgY29ubmVjdGlvblBy
b3h5LCBzb2NrZXRQcm92aWRlcikKICAgICAsIG1fbmFtZShuYW1lKQogeworICAgIFNDT1BFX1JF
TEVBU0VfTE9HKCJTaGFyZWRXb3JrZXJHbG9iYWxTY29wZToiKTsKICAgICByZWxheEFkb3B0aW9u
UmVxdWlyZW1lbnQoKTsKICAgICBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVh
ZGVycyhwYXJhbXMuY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKIH0KIAor
U2hhcmVkV29ya2VyVGhyZWFkJiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkKK3sK
KyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkV29ya2VyVGhyZWFkJj4oV29ya2VyR2xvYmFs
U2NvcGU6OnRocmVhZCgpKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y2xv
c2UoKQogeworICAgIFNDT1BFX1JFTEVBU0VfTE9HKCJjbG9zZToiKTsKICAgICB0aHJlYWQoKS5z
dG9wKG51bGxwdHIpOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS93b3JrZXJzLmh0bWwjZG9tLXNoYXJlZHdvcmtlciBzdGVwIDExLjUKK3ZvaWQgU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU6OnBvc3RDb25uZWN0RXZlbnQoVHJhbnNmZXJyZWRNZXNzYWdlUG9y
dCYmIHRyYW5zZmVycmVkUG9ydCwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7CisgICAg
U0NPUEVfUkVMRUFTRV9MT0coInBvc3RDb25uZWN0RXZlbnQ6Iik7CisgICAgYXV0byBzZXJpYWxp
emVkU2NyaXB0VmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZSgiIik7CisgICAg
QVNTRVJUKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQ
b3J0OjplbnRhbmdsZVBvcnRzKCp0aGlzLCB7IFdURk1vdmUodHJhbnNmZXJyZWRQb3J0KSB9KTsK
KyAgICBBU1NFUlQocG9ydHMuc2l6ZSgpID09IDEpOworICAgIGF1dG8gcG9ydCA9IHBvcnRzWzBd
OworICAgIEFTU0VSVChwb3J0KTsKKyAgICBhdXRvIGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVh
dGUoV1RGTW92ZShwb3J0cyksIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgp
LCBzb3VyY2VPcmlnaW4sIHsgfSwgcG9ydCk7CisgICAgZXZlbnQtPmluaXRFdmVudChldmVudE5h
bWVzKCkuY29ubmVjdEV2ZW50LCBmYWxzZSwgZmFsc2UpOworCisgICAgZGlzcGF0Y2hFdmVudChX
VEZNb3ZlKGV2ZW50KSk7Cit9CisKKyN1bmRlZiBTQ09QRV9SRUxFQVNFX0xPRworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJl
ZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFy
ZWQvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCBmMzc3OWI4NGQxNTAzZTMyNjU1OWNi
ZTFiNmQ0MTY3NTM5ZTgxN2ViLi5iZjI0NjkxOTdhN2M3NjIxMGUxZWI2ODNmOTczNDM4ODAxYTQz
NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjUsMTEgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9i
YWxTY29wZS5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBTaGFyZWRXb3JrZXJUaHJlYWQ7CiBzdHJ1Y3QgV29ya2VyUGFyYW1ldGVy
czsKIAogY2xhc3MgU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgZmluYWwgOiBwdWJsaWMgV29ya2Vy
R2xvYmFsU2NvcGUgewpAQCAtMzksOSArNDEsMTMgQEAgcHVibGljOgogCiAgICAgVHlwZSB0eXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gVHlwZTo6U2hhcmVkV29ya2VyOyB9CiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgU2hhcmVkV29ya2Vy
VGhyZWFkJiB0aHJlYWQoKTsKKworICAgIHZvaWQgcG9zdENvbm5lY3RFdmVudChUcmFuc2ZlcnJl
ZE1lc3NhZ2VQb3J0JiYsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKICAgICB2b2lkIGNs
b3NlKCk7CisKIHByaXZhdGU6Ci0gICAgU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
LCBXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNvY2tldFByb3ZpZGVyKik7CisgICAgU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJz
JiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBTaGFyZWRXb3JrZXJUaHJlYWQmLCBSZWY8U2VjdXJp
dHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSosIFNv
Y2tldFByb3ZpZGVyKik7CiAKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldElu
dGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlRXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBk
ZXN0aW5hdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIEZldGNoT3B0aW9uczo6RGVzdGluYXRp
b246OlNoYXJlZHdvcmtlcjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
aGFyZWQvU2hhcmVkV29ya2VySWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
aGFyZWQvU2hhcmVkV29ya2VySWRlbnRpZmllci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YTk3MjEwNDg3OTNm
ZDZkMGQyMTYyYWYyNzJjNzljYjYwOGQzYWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJJZGVudGlmaWVyLmgKQEAgLTAsMCArMSwz
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVtIFNoYXJlZFdvcmtlcklk
ZW50aWZpZXJUeXBlIHsgfTsKK3VzaW5nIFNoYXJlZFdvcmtlcklkZW50aWZpZXIgPSBPYmplY3RJ
ZGVudGlmaWVyPFNoYXJlZFdvcmtlcklkZW50aWZpZXJUeXBlPjsKKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVk
V29ya2VyTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRX
b3JrZXJNYW5hZ2VyLmNwcAppbmRleCA3ZDVlNjljZDc3OTUzYTcyZjZhOGZiNjc5YmNjYTI1NmQw
MjA0ZmUyLi5hNzQxMDg3N2RiMzIxZjc5NTJmMzEyYzg2ZGMzZmU0YTBiNTVkMDc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJNYW5hZ2Vy
LmNwcApAQCAtOTksMjEgKzk5LDcgQEAgdm9pZCBTaGFyZWRXb3JrZXJNYW5hZ2VyOjpzY3JpcHRM
b2FkZWRTdWNjZXNzZnVsbHkoU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyJiBsb2EKICAgICBhdXRv
IHNvdXJjZU9yaWdpbiA9IGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0
KS5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCk7CiAKICAgICBwcm94eS50aHJlYWQoKS0+cnVu
TG9vcCgpLnBvc3RUYXNrKFt0cmFuc2ZlcnJlZFBvcnQgPSBXVEZNb3ZlKHRyYW5zZmVycmVkUG9y
dCksIHNvdXJjZU9yaWdpbiA9IFdURk1vdmUoc291cmNlT3JpZ2luKS5pc29sYXRlZENvcHkoKV0g
KGF1dG8mIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpIG11dGFibGUgewotICAgICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgICAgICAvLyBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS93b3JrZXJzLmh0bWwjZG9tLXNoYXJlZHdvcmtlciBzdGVwIDExLjUK
LSAgICAgICAgYXV0byBzZXJpYWxpemVkU2NyaXB0VmFsdWUgPSBTZXJpYWxpemVkU2NyaXB0VmFs
dWU6OmNyZWF0ZSgiIik7Ci0gICAgICAgIEFTU0VSVChzZXJpYWxpemVkU2NyaXB0VmFsdWUpOwot
ICAgICAgICBhdXRvIHBvcnRzID0gTWVzc2FnZVBvcnQ6OmVudGFuZ2xlUG9ydHMoc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCwgeyBXVEZNb3ZlKHRyYW5zZmVycmVkUG9ydCkgfSk7Ci0gICAgICAgIEFT
U0VSVChwb3J0cy5zaXplKCkgPT0gMSk7Ci0gICAgICAgIGF1dG8gcG9ydCA9IHBvcnRzWzBdOwot
ICAgICAgICBBU1NFUlQocG9ydCk7Ci0gICAgICAgIGF1dG8gZXZlbnQgPSBNZXNzYWdlRXZlbnQ6
OmNyZWF0ZShXVEZNb3ZlKHBvcnRzKSwgc2VyaWFsaXplZFNjcmlwdFZhbHVlLnJlbGVhc2VOb25O
dWxsKCksIHNvdXJjZU9yaWdpbiwgeyB9LCBwb3J0KTsKLSAgICAgICAgZXZlbnQtPmluaXRFdmVu
dChldmVudE5hbWVzKCkuY29ubmVjdEV2ZW50LCBmYWxzZSwgZmFsc2UpOwotCi0gICAgICAgIFJF
TEVBU0VfQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oaXM8U2hhcmVkV29ya2VyR2xv
YmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKTsKLSAgICAgICAgYXV0byYgd29ya2Vy
R2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7Ci0gICAgICAgIHdvcmtlckdsb2JhbFNjb3BlLmRpc3BhdGNoRXZlbnQo
V1RGTW92ZShldmVudCkpOworICAgICAgICBkb3duY2FzdDxTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZT4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkucG9zdENvbm5lY3RFdmVudChXVEZNb3ZlKHRyYW5z
ZmVycmVkUG9ydCksIHNvdXJjZU9yaWdpbik7CiAgICAgfSk7CiAKICAgICBtX2xvYWRlcnMucmVt
b3ZlKGxvYWRlci5pZGVudGlmaWVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDll
ZDU1ODhmYmQ3OWJhMGRkOGNhNzUzZTY4YTAzNTE0YTJjMzBmYTcuLmY3MmY5YzRlNDBiNTUwYjQ4
OTgwMWZkOTE5YjVmYWQ2Njg5ZDYxZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5jcHAKQEAgLTMx
LDE0ICszMSwxNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNoYXJlZFdvcmtlclRocmVh
ZDo6U2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IGNvbnN0IFNjcmlwdEJ1ZmZlciYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIGxvYWRl
clByb3h5LCBXb3JrZXJEZWJ1Z2dlclByb3h5JiBkZWJ1Z2dlclByb3h5LCBXb3JrZXJPYmplY3RQ
cm94eSYgb2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5
KiBjb25uZWN0aW9uUHJveHksIFNvY2tldFByb3ZpZGVyKiBzb2NrZXRQcm92aWRlciwgSlNDOjpS
dW50aW1lRmxhZ3MgcnVudGltZUZsYWdzKQorU2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3Jr
ZXJUaHJlYWQoU2hhcmVkV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBXb3JrZXJQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBTY3JpcHRCdWZmZXImIHNvdXJjZUNvZGUsIFdv
cmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdn
ZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIG9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciog
c29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKICAgICA6IFdv
cmtlclRocmVhZChwYXJhbWV0ZXJzLCBzb3VyY2VDb2RlLCBsb2FkZXJQcm94eSwgZGVidWdnZXJQ
cm94eSwgb2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgdG9wT3JpZ2luLCBjb25uZWN0aW9uUHJveHks
IHNvY2tldFByb3ZpZGVyLCBydW50aW1lRmxhZ3MpCisgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRp
ZmllcikKICAgICAsIG1fbmFtZShwYXJhbWV0ZXJzLm5hbWUuaXNvbGF0ZWRDb3B5KCkpCiB7Cisg
ICAgUkVMRUFTRV9MT0coU2hhcmVkV29ya2VyLCAiJXAgLSBTaGFyZWRXb3JrZXJUaHJlYWQ6OlNo
YXJlZFdvcmtlclRocmVhZDogbV9pZGVudGlmaWVyPSUiIFBSSXU2NCwgdGhpcywgbV9pZGVudGlm
aWVyLnRvVUludDY0KCkpOwogfQogCiBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IFNoYXJlZFdvcmtl
clRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgV29ya2VyUGFyYW1ldGVycyYg
cGFyYW1ldGVycywgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIG9yaWdpbiwgUmVmPFNlY3VyaXR5T3Jp
Z2luPiYmIHRvcE9yaWdpbikKIHsKKyAgICBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICIlcCAt
IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGU6IG1faWRlbnRpZmll
cj0lIiBQUkl1NjQsIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKICAgICByZXR1cm4g
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShzdGQ6OmV4Y2hhbmdlKG1fbmFtZSwgeyB9
KSwgcGFyYW1ldGVycywgV1RGTW92ZShvcmlnaW4pLCAqdGhpcywgV1RGTW92ZSh0b3BPcmlnaW4p
LCBpZGJDb25uZWN0aW9uUHJveHkoKSwgc29ja2V0UHJvdmlkZXIoKSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhy
ZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtl
clRocmVhZC5oCmluZGV4IDJmMDU2ZjlkNTliYmRmODNjMzVkMmM3YWMwMzY4ZmY3MWJjZTljZDQu
LmY1NzM2YzJlNjBlODcwZWY5ZTc1ZTIwZDgyMmU3ZTlmZThkZDVmOGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJU
aHJlYWQuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNo
YXJlZFdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsMTIgKzM1LDE2IEBAIGNsYXNzIFdvcmtlck9iamVjdFBy
b3h5OwogY2xhc3MgU2hhcmVkV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtlclRocmVhZCB7CiBw
dWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxTaGFyZWRX
b3JrZXJUaHJlYWQ+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTaGFyZWRXb3JrZXJUaHJlYWQoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7IH0KKwor
ICAgIFNoYXJlZFdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
aWRlbnRpZmllcjsgfQorCiBwcml2YXRlOgotICAgIFNoYXJlZFdvcmtlclRocmVhZChjb25zdCBX
b3JrZXJQYXJhbWV0ZXJzJiwgY29uc3QgU2NyaXB0QnVmZmVyJiBzb3VyY2VDb2RlLCBXb3JrZXJM
b2FkZXJQcm94eSYsIFdvcmtlckRlYnVnZ2VyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdv
cmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgSURC
Q2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciosIEpTQzo6UnVudGlt
ZUZsYWdzKTsKKyAgICBTaGFyZWRXb3JrZXJUaHJlYWQoU2hhcmVkV29ya2VySWRlbnRpZmllciwg
Y29uc3QgV29ya2VyUGFyYW1ldGVycyYsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc291cmNlQ29kZSwg
V29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5JiwgV29ya2VyT2JqZWN0UHJv
eHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0UHJvdmlkZXIqLCBKU0M6
OlJ1bnRpbWVGbGFncyk7CiAKICAgICBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4pIGZpbmFsOwogICAgIEFTQ0lJTGl0
ZXJhbCB0aHJlYWROYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIldlYkNvcmU6IFNoYXJlZFdv
cmtlciJfczsgfQogCisgICAgU2hhcmVkV29ya2VySWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAg
ICAgU3RyaW5nIG1fbmFtZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWRQcm94eS5jcHAK
aW5kZXggZTMwYWQ4YjA1ZDZiNjA2N2U5OThiNDQ5MjVjNjY2M2IxZmM5Yzc0YS4uOWJkOTc4M2Q3
YTdlNThlNjdiNmI4MGI1ZDU0NGZlYzJlY2YyY2FmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJl
YWRQcm94eS5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBTaGFyZWRXb3JrZXJUaHJlYWRQcm94
eTo6c3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QKICAg
ICB9OwogCiAgICAgaWYgKCFtX3dvcmtlclRocmVhZCkgewotICAgICAgICBtX3dvcmtlclRocmVh
ZCA9IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKHBhcmFtZXRlcnMsIHNjcmlwdEJ1ZmZlciwg
KnRoaXMsICp0aGlzLCAqdGhpcywgV29ya2VyVGhyZWFkU3RhcnRNb2RlOjpOb3JtYWwsIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+dG9wT3JpZ2luKCksIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aWRiQ29ubmVjdGlvblByb3h5KCksIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c29ja2V0
UHJvdmlkZXIoKSwgcnVudGltZUZsYWdzKTsKKyAgICAgICAgbV93b3JrZXJUaHJlYWQgPSBTaGFy
ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShTaGFyZWRXb3JrZXJJZGVudGlmaWVyOjpnZW5lcmF0ZSgp
LCBwYXJhbWV0ZXJzLCBzY3JpcHRCdWZmZXIsICp0aGlzLCAqdGhpcywgKnRoaXMsIFdvcmtlclRo
cmVhZFN0YXJ0TW9kZTo6Tm9ybWFsLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdp
bigpLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlkYkNvbm5lY3Rpb25Qcm94eSgpLCBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNvY2tldFByb3ZpZGVyKCksIHJ1bnRpbWVGbGFncyk7CiAg
ICAgICAgIG1fd29ya2VyVGhyZWFkLT5zdGFydCgpOwogICAgIH0KIH0KQEAgLTExOCw2ICsxMTgs
MTEgQEAgdm9pZCBTaGFyZWRXb3JrZXJUaHJlYWRQcm94eTo6d29ya2VyT2JqZWN0RGVzdHJveWVk
KCkKICAgICB9KTsKIH0KIAorU2hhcmVkV29ya2VySWRlbnRpZmllciBTaGFyZWRXb3JrZXJUaHJl
YWRQcm94eTo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fd29ya2VyVGhyZWFk
LT5pZGVudGlmaWVyKCk7Cit9CisKIHZvaWQgU2hhcmVkV29ya2VyVGhyZWFkUHJveHk6Om5vdGlm
eU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKQogewogICAgIGlmIChtX2Fza2VkVG9U
ZXJtaW5hdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250
ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3No
YXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggY2U2YzU5ZTFkOWMx
NTE4MDRiNDAxNTEwMGM0ZTYzOTc0NGMwM2QyNy4uNGU5MmU0NTYxNzFjZTkxYWViODc1YTM1ZTc1
OWI5ZWM1YjU0MWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQv
Y29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkUHJveHkuaApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlNoYXJlZFdvcmtlcklkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlclByb3h5LmgiCiAjaW5jbHVkZSAiV29ya2Vy
R2xvYmFsU2NvcGVQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlckxvYWRlclByb3h5LmgiCkBAIC00
MSw2ICs0Miw3IEBAIGNsYXNzIFNoYXJlZFdvcmtlclRocmVhZFByb3h5IGZpbmFsIDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFNoYXJlZFdvcmtlclRoCiBwdWJsaWM6CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFNoYXJlZFdvcmtlclRocmVhZFByb3h5JiBjcmVh
dGUoQXJncyYmLi4uIGFyZ3MpIHsgcmV0dXJuICpuZXcgU2hhcmVkV29ya2VyVGhyZWFkUHJveHko
c3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsgfQogCisgICAgU2hhcmVkV29ya2VySWRlbnRp
ZmllciBpZGVudGlmaWVyKCkgY29uc3Q7CiAgICAgU2hhcmVkV29ya2VyVGhyZWFkKiB0aHJlYWQo
KSB7IHJldHVybiBtX3dvcmtlclRocmVhZC5nZXQoKTsgfQogCiAgICAgdm9pZCBzdGFydFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBib29sIGlzT25saW5lLCBjb25zdCBTY3JpcHRCdWZmZXIm
IHNvdXJjZUNvZGUsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYs
IGJvb2wgc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBD
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiwgTW9ub3RvbmljVGltZSB0aW1lT3JpZ2luLCBSZWZl
cnJlclBvbGljeSwgV29ya2VyVHlwZSwgRmV0Y2hSZXF1ZXN0Q3JlZGVudGlhbHMsIEpTQzo6UnVu
dGltZUZsYWdzKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450706</attachid>
            <date>2022-02-02 15:33:46 -0800</date>
            <delta_ts>2022-02-02 18:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-236038-20220202153345.patch</filename>
            <type>text/plain</type>
            <size>22156</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg5MDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWFiY2JlZGQ2NzJkOTll
ODhhY2M2Mzg1NmIzMmZmOTEyMmIyM2I4MS4uZjc3ZWQ4NzAwYmYwZjJiNGZmZTQ5MmRhYTIxYjkz
OTMzODlkZDk5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAyLTAyICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBjb25uZWN0IGV2ZW50
IGRpc3BhdGNoIGxvZ2ljIHRvIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzYwMzgKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBNb3ZlIGNvbm5lY3QgZXZlbnQgZGlzcGF0
Y2ggbG9naWMgdG8gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUgYW5kIGFkZCBsb2dnaW5nLgorCisg
ICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBs
YXRmb3JtL0xvZ2dpbmcuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJH
bG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29y
a2VyR2xvYmFsU2NvcGU6OnRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyR2xvYmFs
U2NvcGU6OnBvc3RDb25uZWN0RXZlbnQpOgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVkL1NoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zaGFyZWQvU2hhcmVkV29y
a2VySWRlbnRpZmllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJl
ZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5oLgorICAgICAgICAqIHdvcmtlcnMvc2hhcmVk
L1NoYXJlZFdvcmtlck1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2Vy
TWFuYWdlcjo6c2NyaXB0TG9hZGVkU3VjY2Vzc2Z1bGx5KToKKyAgICAgICAgKiB3b3JrZXJzL3No
YXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
aGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAg
KiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAo
V2ViQ29yZTo6U2hhcmVkV29ya2VyVGhyZWFkOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAg
KiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZFByb3h5OjpzdGFydFdvcmtlckdsb2Jh
bFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZFByb3h5OjppZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdv
cmtlclRocmVhZFByb3h5Lmg6CisKIDIwMjItMDItMDIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBNb3ZlIFRyYW5zZmVycmVkTWVzc2FnZVBvcnQgdG8gaXRzIG93
biBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDhhZjI4NTNlYzNkOTYyMTdjOWExNjZiNzlk
NDc0YTBlYjhmYTY5M2QuLmVlY2NkN2Q0ZmIxNzZkYWI1MDY0ZTNiMmU0OTFhMTQ1M2JlYzg0Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMjAwMSw2ICsyMDAxLDcgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyV29ya2VyLmgKIAorICAgIHdvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlcklkZW50aWZpZXIu
aAogICAgIHdvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkLmgKICAgICB3
b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVhZFByb3h5LmgKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJj
NzIzMzZmYmZkZDRjMjk0ZGRjZDViNTIzNjM1OWI1OGQ1NzMwNzQuLmZiMzZlM2QyODdmYWM4ZDJh
NGM2YWE0NDM3MTI1ZmI5OWNkOTc0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzODcsNiArMTM4Nyw3IEBACiAJCTQ2RUIz
N0NDMUY5N0NDRDIwMEI2NTUyMyAvKiBKU1NlcnZpY2VXb3JrZXJDbGllbnRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCMzdDNTFGOTdDQ0NCMDBC
NjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyQ2xpZW50cy5oICovOyB9OwogCQk0NkVCMzdDRTFGOTdD
Q0QyMDBCNjU1MjMgLyogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCMzdDNzFGOTdDQ0NCMDBCNjU1
MjMgLyogSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmggKi87IH07CiAJCTQ2RUJFQTAyMUI3
RDRENjUwMEJFNDk0MSAvKiBDb2xsZWN0aW9uVHJhdmVyc2FsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NkVCRUEwMTFCN0Q0RDVEMDBCRTQ5NDEgLyog
Q29sbGVjdGlvblRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTQ2RUM0NDRBMjdBQjMzODkwMEZGQ0Q5NiAvKiBTaGFyZWRXb3JrZXJJ
ZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29ya2VySWRlbnRpZmllci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2RUNCNjM4
MUZEMEEzQzgwMDg4RTVBRCAvKiBTV0NsaWVudENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RUNCNjM3MUZEMEEzQkIwMDg4RTVBRCAv
KiBTV0NsaWVudENvbm5lY3Rpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0NkVGMTQyQTFGOTdCN0Q4MDBDMkE1MjQgLyogU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDZFRjE0MjAxRjk3QjdCQTAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGll
bnQuaCAqLzsgfTsKIAkJNDZFRjE0MkMxRjk3QjdEODAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJD
bGllbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NkVGMTQyMjFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuaCAqLzsgfTsK
QEAgLTkzMjEsNiArOTMyMiw3IEBACiAJCTQ2RUIzN0M2MUY5N0NDQ0IwMEI2NTUyMyAvKiBKU1Nl
cnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTZXJ2aWNlV29ya2VyV2luZG93Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDZFQjM3QzcxRjk3Q0NDQjAwQjY1NTIzIC8qIEpTU2VydmljZVdvcmtl
cldpbmRvd0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NlcnZp
Y2VXb3JrZXJXaW5kb3dDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZF
QkVBMDExQjdENEQ1RDAwQkU0OTQxIC8qIENvbGxlY3Rpb25UcmF2ZXJzYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdGlvblRyYXZlcnNhbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk0NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29y
a2VySWRlbnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRX
b3JrZXJJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2RUNCNjM2
MUZEMEEzQkIwMDg4RTVBRCAvKiBTV0NsaWVudENvbm5lY3Rpb24uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1dDbGllbnRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFQ0I2MzcxRkQwQTNCQjAwODhFNUFEIC8qIFNXQ2xpZW50
Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTV0NsaWVudENv
bm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRjE0MjAxRjk3QjdC
QTAwQzJBNTI0IC8qIFNlcnZpY2VXb3JrZXJXaW5kb3dDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlcldpbmRvd0NsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjE1NzQsNiArMjE1NzYsNyBAQAogCQkJCTQ2Njk0Q0U0Mjc1
OTQ0OEUwMEUzMTUwRSAvKiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgKi8sCiAJCQkJNDY2
OTRDRTEyNzU5NDQ4QzAwRTMxNTBFIC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggKi8sCiAJ
CQkJNDY2OTRDRTAyNzU5NDQ4QzAwRTMxNTBFIC8qIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmlk
bCAqLywKKwkJCQk0NkVDNDQ0ODI3QUIzMzdGMDBGRkNEOTYgLyogU2hhcmVkV29ya2VySWRlbnRp
Zmllci5oICovLAogCQkJCTQ2N0E2OEQzMjc1RUE5OEIwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJN
YW5hZ2VyLmNwcCAqLywKIAkJCQk0NjdBNjhEMjI3NUVBOThBMDA5QjMxQzUgLyogU2hhcmVkV29y
a2VyTWFuYWdlci5oICovLAogCQkJCTQ2N0E2OEQxMjc1RUE5OEEwMDlCMzFDNSAvKiBTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIuY3BwICovLApAQCAtMzcxODcsNiArMzcxOTAsNyBAQAogCQkJCTgz
NERGQUQwMUY3REFFNUQwMEMyNzI1QiAvKiBTaGFyZWRTdHJpbmdIYXNoLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzMwOUVBMzA5OUVCNzhDMDA1NkU1ODEgLyogU2hhcmVkVGltZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTQxREMwNEZFMjdBODNDOTMwMDhDRjk2OCAvKiBTaGFyZWRWaWRlb0ZyYW1l
SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDZFQzQ0NEEyN0FCMzM4OTAwRkZDRDk2IC8qIFNo
YXJlZFdvcmtlcklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2N0E2OERBMjc1RUE5
OUMwMDlCMzFDNSAvKiBTaGFyZWRXb3JrZXJNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjdBNjhEODI3NUVBOTk1MDA5QjMxQzUgLyogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQk0NjdBNjhENzI3NUVBOTkxMDA5QjMxQzUgLyogU2hhcmVkV29ya2Vy
VGhyZWFkLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xvZ2dpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvZ2dpbmcuaAppbmRleCBk
YzBmNTA5OGI4N2YxODQ1NTI1YmUzYzBiYTQxZjc2NzViMTQwNDdmLi41ZmVmNDJlZTA2ZWM1MTE1
ZmQ4NmU5ODg5NGY2OWQ3YzIxOWUzZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9Mb2dnaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9nZ2luZy5oCkBA
IC0xMDksNiArMTA5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIE0oU2VsZWN0aW9uKSBc
CiAgICAgTShTZXJ2aWNlcykgXAogICAgIE0oU2VydmljZVdvcmtlcikgXAorICAgIE0oU2hhcmVk
V29ya2VyKSBcCiAgICAgTShTcGVsbGluZ0FuZEdyYW1tYXIpIFwKICAgICBNKFNRTERhdGFiYXNl
KSBcCiAgICAgTShTdG9yYWdlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NoYXJlZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggNDEyMWViNThjMjA1
NDJkNGE5MzI3MGEzYmQ1MzQyY2ZkNTI3MTVjMi4uMTJiOGUxYWM4ZDAxMGUzMTAxOTMzZjFmMzA5
OGM0OTVjYzk5NDk2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQv
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2hhcmVkL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw2ICsyNiwxMiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgiCiAKKyNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk1l
c3NhZ2VFdmVudC5oIgorI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlICJTaGFyZWRXb3JrZXJUaHJlYWQu
aCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgogCkBAIC0zMywxNyArMzksNDQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUpOwogCi1TaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiBwYXJhbXMsIFJlZjxTZWN1cml0eU9yaWdp
bj4mJiBvcmlnaW4sIFdvcmtlclRocmVhZCYgdGhyZWFkLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5
LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCisjZGVmaW5lIFNDT1BFX1JFTEVBU0Vf
TE9HKGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhTaGFyZWRXb3JrZXIsICIlcCAtIFtzaGFyZWRXb3Jr
ZXJJZGVudGlmaWVyPSUiIFBSSXU2NCAiXSBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6IiBmbXQs
IHRoaXMsIHRoaXMtPnRocmVhZCgpLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCAjI19fVkFfQVJH
U19fKQorCitTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXb3JrZXJQYXJhbWV0ZXJzJiBwYXJhbXMsIFJlZjxT
ZWN1cml0eU9yaWdpbj4mJiBvcmlnaW4sIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBSZWY8
U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94
eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciogc29ja2V0UHJvdmlkZXIpCiAgICAg
OiBXb3JrZXJHbG9iYWxTY29wZShXb3JrZXJUaHJlYWRUeXBlOjpTaGFyZWRXb3JrZXIsIHBhcmFt
cywgV1RGTW92ZShvcmlnaW4pLCB0aHJlYWQsIFdURk1vdmUodG9wT3JpZ2luKSwgY29ubmVjdGlv
blByb3h5LCBzb2NrZXRQcm92aWRlcikKICAgICAsIG1fbmFtZShuYW1lKQogeworICAgIFNDT1BF
X1JFTEVBU0VfTE9HKCJTaGFyZWRXb3JrZXJHbG9iYWxTY29wZToiKTsKICAgICByZWxheEFkb3B0
aW9uUmVxdWlyZW1lbnQoKTsKICAgICBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycyhwYXJhbXMuY29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzKTsKIH0K
IAorU2hhcmVkV29ya2VyVGhyZWFkJiBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkK
K3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2hhcmVkV29ya2VyVGhyZWFkJj4oV29ya2VyR2xv
YmFsU2NvcGU6OnRocmVhZCgpKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6
Y2xvc2UoKQogeworICAgIFNDT1BFX1JFTEVBU0VfTE9HKCJjbG9zZToiKTsKICAgICB0aHJlYWQo
KS5zdG9wKG51bGxwdHIpOwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS93b3JrZXJzLmh0bWwjZG9tLXNoYXJlZHdvcmtlciBzdGVwIDExLjUKK3ZvaWQgU2hh
cmVkV29ya2VyR2xvYmFsU2NvcGU6OnBvc3RDb25uZWN0RXZlbnQoVHJhbnNmZXJyZWRNZXNzYWdl
UG9ydCYmIHRyYW5zZmVycmVkUG9ydCwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit7Cisg
ICAgU0NPUEVfUkVMRUFTRV9MT0coInBvc3RDb25uZWN0RXZlbnQ6Iik7CisgICAgYXV0byB2YWx1
ZSA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGVtcHR5U3RyaW5nKCkpOworICAgIEFT
U0VSVCh2YWx1ZSk7CisgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0OjplbnRhbmdsZVBvcnRz
KCp0aGlzLCB7IFdURk1vdmUodHJhbnNmZXJyZWRQb3J0KSB9KTsKKyAgICBBU1NFUlQocG9ydHMu
c2l6ZSgpID09IDEpOworICAgIGF1dG8gcG9ydCA9IHBvcnRzWzBdOworICAgIEFTU0VSVChwb3J0
KTsKKyAgICBhdXRvIGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyks
IHZhbHVlLnJlbGVhc2VOb25OdWxsKCksIHNvdXJjZU9yaWdpbiwgeyB9LCBwb3J0KTsKKyAgICBl
dmVudC0+aW5pdEV2ZW50KGV2ZW50TmFtZXMoKS5jb25uZWN0RXZlbnQsIGZhbHNlLCBmYWxzZSk7
CisKKyAgICBkaXNwYXRjaEV2ZW50KFdURk1vdmUoZXZlbnQpKTsKK30KKworI3VuZGVmIFNDT1BF
X1JFTEVBU0VfTE9HCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCmluZGV4
IGYzNzc5Yjg0ZDE1MDNlMzI2NTU5Y2JlMWI2ZDQxNjc1MzllODE3ZWIuLjAzMTI1YWI0OWMzMjFl
MWJmOThhODJhOGMyOThlNmVhZWEyMDc5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSwxMSArMjUsMTMg
QEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJUcmFuc2ZlcnJlZE1lc3NhZ2VQb3J0Lmgi
CiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9j
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2hhcmVkV29ya2VyVGhyZWFkOwog
c3RydWN0IFdvcmtlclBhcmFtZXRlcnM7CiAKIGNsYXNzIFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
IGZpbmFsIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3BlIHsKQEAgLTM5LDkgKzQxLDEzIEBAIHB1
YmxpYzoKIAogICAgIFR5cGUgdHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFR5cGU6OlNoYXJl
ZFdvcmtlcjsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQorICAgIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkKCk7CisKKyAgICB2b2lkIHBvc3RD
b25uZWN0RXZlbnQoVHJhbnNmZXJyZWRNZXNzYWdlUG9ydCYmLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZU9yaWdpbik7CiAgICAgdm9pZCBjbG9zZSgpOworCiBwcml2YXRlOgotICAgIFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV29ya2VyUGFyYW1ldGVycyYs
IFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgV29ya2VyVGhyZWFkJiwgUmVmPFNlY3VyaXR5T3JpZ2lu
PiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92
aWRlciopOworICAgIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgV29ya2VyUGFyYW1ldGVycyYsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiwgU2hhcmVkV29y
a2VyVGhyZWFkJiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJ
REJDb25uZWN0aW9uUHJveHkqLCBTb2NrZXRQcm92aWRlciopOwogCiAgICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQogICAgIEZldGNo
T3B0aW9uczo6RGVzdGluYXRpb24gZGVzdGluYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBG
ZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9uOjpTaGFyZWR3b3JrZXI7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlcklkZW50aWZpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlcklkZW50aWZpZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44N2E5NzIxMDQ4NzkzZmQ2ZDBkMjE2MmFmMjcyYzc5Y2I2MDhkM2FiCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VySWRl
bnRpZmllci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworZW51bSBTaGFyZWRXb3JrZXJJZGVudGlmaWVyVHlwZSB7IH07Cit1c2luZyBTaGFyZWRXb3Jr
ZXJJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTaGFyZWRXb3JrZXJJZGVudGlmaWVyVHlw
ZT47CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2hhcmVkL1NoYXJlZFdvcmtlck1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zaGFyZWQvU2hhcmVkV29ya2VyTWFuYWdlci5jcHAKaW5kZXggN2Q1ZTY5Y2Q3Nzk1
M2E3MmY2YThmYjY3OWJjY2EyNTZkMDIwNGZlMi4uYTc0MTA4NzdkYjMyMWY3OTUyZjMxMmM4NmRj
M2ZlNGEwYjU1ZDA3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQv
U2hhcmVkV29ya2VyTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFy
ZWQvU2hhcmVkV29ya2VyTWFuYWdlci5jcHAKQEAgLTk5LDIxICs5OSw3IEBAIHZvaWQgU2hhcmVk
V29ya2VyTWFuYWdlcjo6c2NyaXB0TG9hZGVkU3VjY2Vzc2Z1bGx5KFNoYXJlZFdvcmtlclNjcmlw
dExvYWRlciYgbG9hCiAgICAgYXV0byBzb3VyY2VPcmlnaW4gPSBkb3duY2FzdDxEb2N1bWVudD4o
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCkuc2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpOwogCiAg
ICAgcHJveHkudGhyZWFkKCktPnJ1bkxvb3AoKS5wb3N0VGFzayhbdHJhbnNmZXJyZWRQb3J0ID0g
V1RGTW92ZSh0cmFuc2ZlcnJlZFBvcnQpLCBzb3VyY2VPcmlnaW4gPSBXVEZNb3ZlKHNvdXJjZU9y
aWdpbikuaXNvbGF0ZWRDb3B5KCldIChhdXRvJiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KSBtdXRh
YmxlIHsKLSAgICAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0KLSAgICAgICAgLy8g
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd29ya2Vycy5odG1sI2RvbS1z
aGFyZWR3b3JrZXIgc3RlcCAxMS41Ci0gICAgICAgIGF1dG8gc2VyaWFsaXplZFNjcmlwdFZhbHVl
ID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoIiIpOwotICAgICAgICBBU1NFUlQoc2Vy
aWFsaXplZFNjcmlwdFZhbHVlKTsKLSAgICAgICAgYXV0byBwb3J0cyA9IE1lc3NhZ2VQb3J0Ojpl
bnRhbmdsZVBvcnRzKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHsgV1RGTW92ZSh0cmFuc2ZlcnJl
ZFBvcnQpIH0pOwotICAgICAgICBBU1NFUlQocG9ydHMuc2l6ZSgpID09IDEpOwotICAgICAgICBh
dXRvIHBvcnQgPSBwb3J0c1swXTsKLSAgICAgICAgQVNTRVJUKHBvcnQpOwotICAgICAgICBhdXRv
IGV2ZW50ID0gTWVzc2FnZUV2ZW50OjpjcmVhdGUoV1RGTW92ZShwb3J0cyksIHNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpLCBzb3VyY2VPcmlnaW4sIHsgfSwgcG9ydCk7Ci0g
ICAgICAgIGV2ZW50LT5pbml0RXZlbnQoZXZlbnROYW1lcygpLmNvbm5lY3RFdmVudCwgZmFsc2Us
IGZhbHNlKTsKLQotICAgICAgICBSRUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FU
SU9OKGlzPFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPihzY3JpcHRFeGVjdXRpb25Db250ZXh0KSk7
Ci0gICAgICAgIGF1dG8mIHdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2hhcmVkV29ya2Vy
R2xvYmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwotICAgICAgICB3b3JrZXJHbG9i
YWxTY29wZS5kaXNwYXRjaEV2ZW50KFdURk1vdmUoZXZlbnQpKTsKKyAgICAgICAgZG93bmNhc3Q8
U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpLnBvc3RDb25u
ZWN0RXZlbnQoV1RGTW92ZSh0cmFuc2ZlcnJlZFBvcnQpLCBzb3VyY2VPcmlnaW4pOwogICAgIH0p
OwogCiAgICAgbV9sb2FkZXJzLnJlbW92ZShsb2FkZXIuaWRlbnRpZmllcigpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhy
ZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29y
a2VyVGhyZWFkLmNwcAppbmRleCA5ZWQ1NTg4ZmJkNzliYTBkZDhjYTc1M2U2OGEwMzUxNGEyYzMw
ZmE3Li5mNzJmOWM0ZTQwYjU1MGI0ODk4MDFmZDkxOWI1ZmFkNjY4OWQ2MWZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVh
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRX
b3JrZXJUaHJlYWQuY3BwCkBAIC0zMSwxNCArMzEsMTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1TaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChjb25zdCBXb3JrZXJQ
YXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBTY3JpcHRCdWZmZXImIHNvdXJjZUNvZGUsIFdv
cmtlckxvYWRlclByb3h5JiBsb2FkZXJQcm94eSwgV29ya2VyRGVidWdnZXJQcm94eSYgZGVidWdn
ZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIG9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFy
dE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBJREJDbGll
bnQ6OklEQkNvbm5lY3Rpb25Qcm94eSogY29ubmVjdGlvblByb3h5LCBTb2NrZXRQcm92aWRlciog
c29ja2V0UHJvdmlkZXIsIEpTQzo6UnVudGltZUZsYWdzIHJ1bnRpbWVGbGFncykKK1NoYXJlZFdv
cmtlclRocmVhZDo6U2hhcmVkV29ya2VyVGhyZWFkKFNoYXJlZFdvcmtlcklkZW50aWZpZXIgaWRl
bnRpZmllciwgY29uc3QgV29ya2VyUGFyYW1ldGVycyYgcGFyYW1ldGVycywgY29uc3QgU2NyaXB0
QnVmZmVyJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgbG9hZGVyUHJveHksIFdvcmtl
ckRlYnVnZ2VyUHJveHkmIGRlYnVnZ2VyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiBvYmplY3RQ
cm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHRvcE9yaWdpbiwgSURCQ2xpZW50OjpJREJDb25uZWN0aW9uUHJveHkqIGNvbm5lY3Rpb25Q
cm94eSwgU29ja2V0UHJvdmlkZXIqIHNvY2tldFByb3ZpZGVyLCBKU0M6OlJ1bnRpbWVGbGFncyBy
dW50aW1lRmxhZ3MpCiAgICAgOiBXb3JrZXJUaHJlYWQocGFyYW1ldGVycywgc291cmNlQ29kZSwg
bG9hZGVyUHJveHksIGRlYnVnZ2VyUHJveHksIG9iamVjdFByb3h5LCBzdGFydE1vZGUsIHRvcE9y
aWdpbiwgY29ubmVjdGlvblByb3h5LCBzb2NrZXRQcm92aWRlciwgcnVudGltZUZsYWdzKQorICAg
ICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX25hbWUocGFyYW1ldGVycy5uYW1l
Lmlzb2xhdGVkQ29weSgpKQogeworICAgIFJFTEVBU0VfTE9HKFNoYXJlZFdvcmtlciwgIiVwIC0g
U2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQ6IG1faWRlbnRpZmllcj0lIiBQ
Ukl1NjQsIHRoaXMsIG1faWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIH0KIAogUmVmPFdvcmtlckds
b2JhbFNjb3BlPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFdvcmtlclBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiBv
cmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4pCiB7CisgICAgUkVMRUFTRV9M
T0coU2hhcmVkV29ya2VyLCAiJXAgLSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckds
b2JhbFNjb3BlOiBtX2lkZW50aWZpZXI9JSIgUFJJdTY0LCB0aGlzLCBtX2lkZW50aWZpZXIudG9V
SW50NjQoKSk7CiAgICAgcmV0dXJuIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoc3Rk
OjpleGNoYW5nZShtX25hbWUsIHsgfSksIHBhcmFtZXRlcnMsIFdURk1vdmUob3JpZ2luKSwgKnRo
aXMsIFdURk1vdmUodG9wT3JpZ2luKSwgaWRiQ29ubmVjdGlvblByb3h5KCksIHNvY2tldFByb3Zp
ZGVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9j
b250ZXh0L1NoYXJlZFdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFy
ZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWQuaAppbmRleCAyZjA1NmY5ZDU5YmJkZjgzYzM1
ZDJjN2FjMDM2OGZmNzFiY2U5Y2Q0Li5mNTczNmMyZTYwZTg3MGVmOWU3NWUyMGQ4MjJlN2U5ZmU4
ZGQ1ZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0
L1NoYXJlZFdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVk
L2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJTaGFyZWRXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
V29ya2VyVGhyZWFkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDEyICszNSwxNiBA
QCBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIGNsYXNzIFNoYXJlZFdvcmtlclRocmVhZCA6IHB1
YmxpYyBXb3JrZXJUaHJlYWQgewogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFy
Z3M+IHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyVGhyZWFkPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3Mp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29ya2VyVGhyZWFkKHN0ZDo6Zm9yd2FyZDxB
cmdzPihhcmdzKS4uLikpOyB9CisKKyAgICBTaGFyZWRXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KKwogcHJpdmF0ZToKLSAgICBTaGFy
ZWRXb3JrZXJUaHJlYWQoY29uc3QgV29ya2VyUGFyYW1ldGVycyYsIGNvbnN0IFNjcmlwdEJ1ZmZl
ciYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJEZWJ1Z2dlclByb3h5Jiwg
V29ya2VyT2JqZWN0UHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB0b3BPcmlnaW4sIElEQkNsaWVudDo6SURCQ29ubmVjdGlvblByb3h5KiwgU29ja2V0
UHJvdmlkZXIqLCBKU0M6OlJ1bnRpbWVGbGFncyk7CisgICAgU2hhcmVkV29ya2VyVGhyZWFkKFNo
YXJlZFdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdvcmtlclBhcmFtZXRlcnMmLCBjb25zdCBTY3Jp
cHRCdWZmZXImIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyRGVidWdnZXJQ
cm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBT
ZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Qcm94eSos
IFNvY2tldFByb3ZpZGVyKiwgSlNDOjpSdW50aW1lRmxhZ3MpOwogCiAgICAgUmVmPFdvcmtlckds
b2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBXb3JrZXJQYXJhbWV0ZXJz
JiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2lu
KSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgdGhyZWFkTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJXZWJDb3JlOiBTaGFyZWRXb3JrZXIiX3M7IH0KIAorICAgIFNoYXJlZFdvcmtlcklkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFN0cmluZyBtX25hbWU7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRocmVh
ZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVk
V29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IGUzMGFkOGIwNWQ2YjYwNjdlOTk4YjQ0OTI1YzY2
NjNiMWZjOWM3NGEuLjliZDk3ODNkN2E3ZTU4ZTY3YjZiODBiNWQ1NDRmZWMyZWNmMmNhZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29y
a2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2Nv
bnRleHQvU2hhcmVkV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQg
U2hhcmVkV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0V29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJM
JiBzY3JpcHRVUkwsIGNvbnN0CiAgICAgfTsKIAogICAgIGlmICghbV93b3JrZXJUaHJlYWQpIHsK
LSAgICAgICAgbV93b3JrZXJUaHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwYXJh
bWV0ZXJzLCBzY3JpcHRCdWZmZXIsICp0aGlzLCAqdGhpcywgKnRoaXMsIFdvcmtlclRocmVhZFN0
YXJ0TW9kZTo6Tm9ybWFsLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnRvcE9yaWdpbigpLCBt
X3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlkYkNvbm5lY3Rpb25Qcm94eSgpLCBtX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQtPnNvY2tldFByb3ZpZGVyKCksIHJ1bnRpbWVGbGFncyk7CisgICAgICAg
IG1fd29ya2VyVGhyZWFkID0gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoU2hhcmVkV29ya2Vy
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgcGFyYW1ldGVycywgc2NyaXB0QnVmZmVyLCAqdGhpcywg
KnRoaXMsICp0aGlzLCBXb3JrZXJUaHJlYWRTdGFydE1vZGU6Ok5vcm1hbCwgbV9zY3JpcHRFeGVj
dXRpb25Db250ZXh0LT50b3BPcmlnaW4oKSwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5pZGJD
b25uZWN0aW9uUHJveHkoKSwgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LT5zb2NrZXRQcm92aWRl
cigpLCBydW50aW1lRmxhZ3MpOwogICAgICAgICBtX3dvcmtlclRocmVhZC0+c3RhcnQoKTsKICAg
ICB9CiB9CkBAIC0xMTgsNiArMTE4LDExIEBAIHZvaWQgU2hhcmVkV29ya2VyVGhyZWFkUHJveHk6
Ondvcmtlck9iamVjdERlc3Ryb3llZCgpCiAgICAgfSk7CiB9CiAKK1NoYXJlZFdvcmtlcklkZW50
aWZpZXIgU2hhcmVkV29ya2VyVGhyZWFkUHJveHk6OmlkZW50aWZpZXIoKSBjb25zdAoreworICAg
IHJldHVybiBtX3dvcmtlclRocmVhZC0+aWRlbnRpZmllcigpOworfQorCiB2b2lkIFNoYXJlZFdv
cmtlclRocmVhZFByb3h5Ojpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkK
IHsKICAgICBpZiAobV9hc2tlZFRvVGVybWluYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zaGFyZWQvY29udGV4dC9TaGFyZWRXb3JrZXJUaHJlYWRQcm94
eS5oCmluZGV4IGNlNmM1OWUxZDljMTUxODA0YjQwMTUxMDBjNGU2Mzk3NDRjMDNkMjcuLjRlOTJl
NDU2MTcxY2U5MWFlYjg3NWEzNWU3NTliOWVjNWI1NDFlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2hhcmVkL2NvbnRleHQvU2hhcmVkV29ya2VyVGhyZWFkUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NoYXJlZC9jb250ZXh0L1NoYXJlZFdvcmtlclRo
cmVhZFByb3h5LmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRl
ICJTaGFyZWRXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV29ya2VyRGVidWdnZXJQcm94
eS5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlUHJveHkuaCIKICNpbmNsdWRlICJXb3Jr
ZXJMb2FkZXJQcm94eS5oIgpAQCAtNDEsNiArNDIsNyBAQCBjbGFzcyBTaGFyZWRXb3JrZXJUaHJl
YWRQcm94eSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJU
aAogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBTaGFyZWRX
b3JrZXJUaHJlYWRQcm94eSYgY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKSB7IHJldHVybiAqbmV3IFNo
YXJlZFdvcmtlclRocmVhZFByb3h5KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLik7IH0KIAor
ICAgIFNoYXJlZFdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0OwogICAgIFNoYXJl
ZFdvcmtlclRocmVhZCogdGhyZWFkKCkgeyByZXR1cm4gbV93b3JrZXJUaHJlYWQuZ2V0KCk7IH0K
IAogICAgIHZvaWQgc3RhcnRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmIHNjcmlwdFVSTCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgYm9vbCBpc09ubGlu
ZSwgY29uc3QgU2NyaXB0QnVmZmVyJiBzb3VyY2VDb2RlLCBjb25zdCBDb250ZW50U2VjdXJpdHlQ
b2xpY3lSZXNwb25zZUhlYWRlcnMmLCBib29sIHNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIE1vbm90b25p
Y1RpbWUgdGltZU9yaWdpbiwgUmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUsIEZldGNoUmVxdWVz
dENyZWRlbnRpYWxzLCBKU0M6OlJ1bnRpbWVGbGFncykgZmluYWw7Cg==
</data>
<flag name="commit-queue"
          id="477183"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>