<?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>213119</bug_id>
          
          <creation_ts>2020-06-12 02:37:32 -0700</creation_ts>
          <short_desc>Remove FileError.{h,cpp} after bug 213117</short_desc>
          <delta_ts>2020-06-13 11:06:44 -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>DOM</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>213117</dependson>
          <blocked>213168</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1661896</commentid>
    <comment_count>0</comment_count>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 02:37:32 -0700</bug_when>
    <thetext>This is clean up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662102</commentid>
    <comment_count>1</comment_count>
      <attachid>401767</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-12 12:54:37 -0700</bug_when>
    <thetext>Created attachment 401767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662119</commentid>
    <comment_count>2</comment_count>
      <attachid>401767</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-12 13:32:14 -0700</bug_when>
    <thetext>Comment on attachment 401767
Patch

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

r=me with nits.

&gt; Source/WebCore/fileapi/BlobLoader.h:60
&gt; +    Optional&lt;ExceptionCode&gt; m_errorCode { WTF::nullopt };

{ WTF::nullopt } is unnecessary.

&gt; Source/WebCore/fileapi/FileReaderLoader.cpp:123
&gt; +    if (m_errorCode.hasValue()) {

.hasValue() should not be necessary.

&gt; Source/WebCore/fileapi/FileReaderLoader.cpp:172
&gt; +    if (m_errorCode.hasValue())

ditto.

&gt; Source/WebCore/fileapi/FileReaderLoader.cpp:232
&gt; +    if (m_errorCode.hasValue() &amp;&amp; m_errorCode.value() == AbortError)

ditto.

&gt; Source/WebCore/fileapi/FileReaderLoader.cpp:271
&gt; +    if (!m_rawData || m_errorCode.hasValue())

ditto.

&gt; Source/WebCore/fileapi/FileReaderLoader.cpp:287
&gt; +    if (!m_rawData || m_errorCode.hasValue())

ditto.

&gt; Source/WebCore/fileapi/FileReaderLoader.h:121
&gt; +    Optional&lt;ExceptionCode&gt; m_errorCode { WTF::nullopt };

{ WTF::nullopt } is not needed.

&gt; Source/WebCore/fileapi/FileReaderSync.cpp:79
&gt; +    if (!error.hasValue())

.hasValue() is not needed.

&gt; Source/WebCore/fileapi/NetworkSendQueue.cpp:89
&gt; +            if (loader-&gt;isLoading() || (errorCode.hasValue() &amp;&amp; errorCode.value() == AbortError)) {

.hasValue() is not needed.

&gt; Source/WebCore/fileapi/NetworkSendQueue.cpp:98
&gt; +            ASSERT(errorCode.hasValue());

.hasValue() is not needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662346</commentid>
    <comment_count>3</comment_count>
      <attachid>401834</attachid>
    <who name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</who>
    <bug_when>2020-06-13 05:57:21 -0700</bug_when>
    <thetext>Created attachment 401834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662362</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-13 09:24:19 -0700</bug_when>
    <thetext>Committed r262999: &lt;https://trac.webkit.org/changeset/262999&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401834.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662363</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-13 09:25:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/64329711&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401767</attachid>
            <date>2020-06-12 12:54:37 -0700</date>
            <delta_ts>2020-06-13 05:57:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213119-20200613045435.patch</filename>
            <type>text/plain</type>
            <size>35592</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTBlMGNkNWY5ODBkYzJk
ZTBlMjZhNmQzZDU1YjViNjg1NmZjNmI0MC4uYzVjMjk3YmNkMGNiOTZkMTc0MDA5M2I4ODBkY2Iz
MzY3MDNlODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA2LTEyICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVt
b3ZlIEZpbGVFcnJvci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTMxMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlOjpDbGlwYm9hcmRJdGVtVHlwZUxvYWRl
cjo6ZGlkRmFpbCk6CisgICAgICAgICogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJk
SXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjphYm9ydE91dGdvaW5nRnJh
bWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZmlsZWFwaS9CbG9iTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCbG9iTG9hZGVyOjpk
aWRGYWlsKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVFcnJvci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVy
OjpkaWRGYWlsKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRl
ckxvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6Y2Fu
Y2VsKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmNsZWFudXApOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVJlYWRlckxvYWRlcjo6ZmFpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFk
ZXJMb2FkZXI6OnRvRXJyb3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2Fk
ZXI6Omh0dHBTdGF0dXNDb2RlVG9FcnJvckNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJl
YWRlckxvYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVJlYWRlckxvYWRlcjo6c3RyaW5nUmVzdWx0KToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmVycm9y
Q29kZSBjb25zdCk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmg6
CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlUmVhZGVyU3luYzo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXJTeW5jLmg6CisgICAgICAgICogZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVldWU6OnByb2Nlc3NNZXNzYWdlcyk6CisgICAg
ICAgICogZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmg6CisgICAgICAgICogaHRtbC9JbWFnZUJp
dG1hcC5jcHA6CisKIDIwMjAtMDYtMTIgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNAYXBwbGUuY29tPgog
CiAgICAgICAgIEZpbGVJbnB1dFR5cGUgc2hvdWxkIHVzZSBXZWFrUHRyIGZvciBGaWxlTGlzdENy
ZWF0b3IgbGFtYmRhcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1N2EwY2Y5ZmRmZTgwNjAyOTk1OTNmMWJlYjdmZWZj
YTUyMDBjZGQxLi5jMTBkOTVmN2ViMGI2YTJjNzk1NzUxOTk4MGY2MTJhMGU4OGI0YjVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA2LTEyICBUZXRzdWhhcnUgT2h6ZWtpICA8dGV0
c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIEZpbGVFcnJvci5oCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29j
a2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKToKKwogMjAyMC0wNi0xMiAgQW50b2luZSBR
dWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBEb3VibGUgdGFwIHRvIHpvb20g
b3V0IGRvZXNuJ3Qgd29yayBhZnRlciB1cGdyYWRpbmcgdG8gaU9TIDEzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCBlYzY5NzQxYTU3YmFlZjEzZjY0MTM3YjM1YjQzZTg0OGEwOTU4ODdjLi5iOWI4Yjkw
YTBmMDM1Y2UwNGRlNzliZjA5NGU4NWVmNmFiZjcxYjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTUzNCw3ICs1MzQsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAg
ICAgZmlsZWFwaS9CbG9iUHJvcGVydHlCYWcuaAogICAgIGZpbGVhcGkvRW5kaW5nVHlwZS5oCiAg
ICAgZmlsZWFwaS9GaWxlLmgKLSAgICBmaWxlYXBpL0ZpbGVFcnJvci5oCiAgICAgZmlsZWFwaS9G
aWxlTGlzdC5oCiAgICAgZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmgKICAgICBmaWxlYXBpL0Zp
bGVSZWFkZXJMb2FkZXJDbGllbnQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGlu
Z3NEYXRhU291cmNlLmNwcAppbmRleCA3NDY1ZDBlNmE4NjY4NzM4ZjRlYmRjNTc0ZjkyNmM3NDg4
ZTdhYTRlLi42MTFmNzJlYzk0YWY5MGIwODBlZmM4NmM1NWFkZTg4Yjk0Y2MxNDc0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVt
QmluZGluZ3NEYXRhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5j
LWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmNwcApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkNsaXBib2FyZC5oIgogI2luY2x1ZGUgIkNsaXBib2FyZEl0ZW0u
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNp
bmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHQuaCIKQEAgLTI0OSw3ICsyNTAsNyBAQCB2b2lkIENsaXBib2FyZEl0
ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNsaXBib2FyZEl0ZW1UeXBlTG9hZGVyOjpkaWRGaW5pc2hM
b2FkaW5nKAogICAgIGludm9rZUNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgQ2xpcGJv
YXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZTo6Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI6OmRpZEZh
aWwoaW50KQordm9pZCBDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlOjpDbGlwYm9hcmRJ
dGVtVHlwZUxvYWRlcjo6ZGlkRmFpbChFeGNlcHRpb25Db2RlKQogewogICAgIEFTU0VSVChtX2Js
b2JMb2FkZXIpOwogICAgIG1fYmxvYkxvYWRlciA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtQmluZGluZ3NE
YXRhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlw
Ym9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmgKaW5kZXggZjBiMWNhZmEwZGIxMmZjYWZkZjU4
YTY3NGJmYjQxYWYxOTk2ODVlMi4uM2E5MDc2N2ZiZjc3NmM0NWQ4NDdlM2MwMTA5ZTg2YTJkMjcz
ZTQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQv
Q2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2UuaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJDbGlwYm9hcmRJdGVt
RGF0YVNvdXJjZS5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxl
UmVhZGVyTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KQEAgLTgwLDcgKzgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBkaWRTdGFydExvYWRpbmcoKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBkaWRSZWNlaXZlRGF0
YSgpIGZpbmFsIHsgfQogICAgICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBmaW5hbDsKLSAg
ICAgICAgdm9pZCBkaWRGYWlsKGludCkgZmluYWw7CisgICAgICAgIHZvaWQgZGlkRmFpbChFeGNl
cHRpb25Db2RlKSBmaW5hbDsKIAogICAgICAgICBTdHJpbmcgbV90eXBlOwogICAgICAgICBCdWZm
ZXJPclN0cmluZyBtX2RhdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwCmluZGV4IDBiZTMxMmFmMGU2Y2FiY2Y3ZjAxNGRj
MTk1NTdhZTE5MWI3NGIyMzUuLjlkZDM3YWE2YTBjNGQ1OWZhNjc0OTljMDNkYTVjOTczMzIwZDgx
MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
RGF0YUNoYW5uZWwuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJCbG9iLmgiCiAj
aW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC03MSw5ICs3MiwxMSBAQCBOZXR3b3JrU2Vu
ZFF1ZXVlIFJUQ0RhdGFDaGFubmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRvY3Vt
ZW50LCBSVENEYXRhQwogICAgIH0sIFsmY2hhbm5lbF0oYXV0byogZGF0YSwgc2l6ZV90IGxlbmd0
aCkgewogICAgICAgICBpZiAoIWNoYW5uZWwubV9oYW5kbGVyLT5zZW5kUmF3RGF0YShkYXRhLCBs
ZW5ndGgpKQogICAgICAgICAgICAgY2hhbm5lbC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCAi
RXJyb3Igc2VuZGluZyBiaW5hcnkgZGF0YSB0aHJvdWdoIFJUQ0RhdGFDaGFubmVsLiJfcyk7Ci0g
ICAgfSwgWyZjaGFubmVsXShpbnQgZXJyb3JDb2RlKSB7Ci0gICAgICAgIGlmIChhdXRvKiBjb250
ZXh0ID0gY2hhbm5lbC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgICAgICBjb250
ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpF
cnJvciwgbWFrZVN0cmluZygiRXJyb3IgIiwgZXJyb3JDb2RlLCAiIGluIHJldHJpZXZpbmcgYSBi
bG9iIGRhdGEgdG8gYmUgc2VudCB0aHJvdWdoIFJUQ0RhdGFDaGFubmVsLiIpKTsKKyAgICB9LCBb
JmNoYW5uZWxdKEV4Y2VwdGlvbkNvZGUgZXJyb3JDb2RlKSB7CisgICAgICAgIGlmIChhdXRvKiBj
b250ZXh0ID0gY2hhbm5lbC5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpIHsKKyAgICAgICAgICAg
IGF1dG8gY29kZSA9IHN0YXRpY19jYXN0PGludD4oZXJyb3JDb2RlKTsKKyAgICAgICAgICAgIGNv
bnRleHQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBtYWtlU3RyaW5nKCJFcnJvciAiLCBjb2RlLCAiIGluIHJldHJpZXZpbmcgYSBibG9i
IGRhdGEgdG8gYmUgc2VudCB0aHJvdWdoIFJUQ0RhdGFDaGFubmVsLiIpKTsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm4gTmV0d29ya1NlbmRRdWV1ZTo6Q29udGludWU6OlllczsKICAgICB9IH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggNjIzZmUzOTM2OTU2NWZiZjk4ODcxM2FlMTFhOTI2YjE4ZjQw
NTgyNC4uOTY2Yjg2MmU5NTNkZDIwZGYyNDY3M2QzZmVhMWUyYWUyN2RmMDVmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMu
aCIKICNpbmNsdWRlICJDb29raWVKYXIuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJG
aWxlUmVhZGVyTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxv
YWRlci5oIgpAQCAtMzk1LDE0ICszOTUsMTUgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRG
aW5pc2hMb2FkaW5nKCkKICAgICBkZXJlZigpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpZEZhaWwoaW50IGVycm9yQ29kZSkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbChF
eGNlcHRpb25Db2RlIGVycm9yQ29kZSkKIHsKLSAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENo
YW5uZWwgJXAgZGlkRmFpbCgpIGVycm9yQ29kZT0lZCIsIHRoaXMsIGVycm9yQ29kZSk7CisgICAg
YXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8aW50PihlcnJvckNvZGUpOworICAgIExPRyhOZXR3b3Jr
LCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBkaWRGYWlsKCkgZXJyb3JDb2RlPSVkIiwgdGhpcywgY29k
ZSk7CiAgICAgQVNTRVJUKG1fYmxvYkxvYWRlcik7CiAgICAgQVNTRVJUKG1fYmxvYkxvYWRlclN0
YXR1cyA9PSBCbG9iTG9hZGVyU3RhcnRlZCk7CiAgICAgbV9ibG9iTG9hZGVyID0gbnVsbHB0cjsK
ICAgICBtX2Jsb2JMb2FkZXJTdGF0dXMgPSBCbG9iTG9hZGVyRmFpbGVkOwotICAgIGZhaWwobWFr
ZVN0cmluZygiRmFpbGVkIHRvIGxvYWQgQmxvYjogZXJyb3IgY29kZSA9ICIsIGVycm9yQ29kZSkp
OyAvLyBGSVhNRTogR2VuZXJhdGUgaHVtYW4tZnJpZW5kbHkgcmVhc29uIG1lc3NhZ2UuCisgICAg
ZmFpbChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gbG9hZCBCbG9iOiBlcnJvciBjb2RlID0gIiwgY29k
ZSkpOyAvLyBGSVhNRTogR2VuZXJhdGUgaHVtYW4tZnJpZW5kbHkgcmVhc29uIG1lc3NhZ2UuCiAg
ICAgZGVyZWYoKTsKIH0KIApAQCAtODA5LDcgKzgxMCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6YWJvcnRPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgIG1fb3V0Z29pbmdGcmFtZVF1ZXVlU3Rh
dHVzID0gT3V0Z29pbmdGcmFtZVF1ZXVlQ2xvc2VkOwogICAgIGlmIChtX2Jsb2JMb2FkZXJTdGF0
dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpIHsKICAgICAgICAgbV9ibG9iTG9hZGVyLT5jYW5jZWwo
KTsKLSAgICAgICAgZGlkRmFpbChGaWxlRXJyb3I6OkFCT1JUX0VSUik7CisgICAgICAgIGRpZEZh
aWwoQWJvcnRFcnJvcik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCA5OTYwMWEwNWRiZDYxNGQ5
Y2RiYjg0OTQ2NzNiMzg3NzBkYWNkODQyLi5kYzViOTljNDIwYjk1NjMyNjRkZTNjMjNhMjE0MDU5
NjVlNzJjNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAK
KyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlckNs
aWVudC5oIgogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUg
IlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCkBAIC0xMTMsNyArMTE0LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIG92ZXJyaWRl
OwotICAgIHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZEZhaWwoRXhjZXB0aW9uQ29kZSBlcnJvckNvZGUpIG92ZXJyaWRlOwogCiAgICAgdW5zaWduZWQg
aWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaGFz
Q3JlYXRlZEhhbmRzaGFrZSgpIHsgcmV0dXJuICEhbV9oYW5kc2hha2U7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNDRiYjhh
NzlhZTk3Yzg0MGM0NzNhNTk2ZWU3YzhhMGQ2ZmNhOTdiLi42ZWI1YjQ4M2Q2NjRmNGE2NjVjYzMx
NjNhZTQzYzE0ODNkNjY4MmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODIzLDcgKzI4MjMsNiBAQAogCQk5NzZENkM3QzEy
MkI4QTNEMDAxRkQxRjcgLyogQmxvYkJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzVEMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iQnVp
bGRlci5oICovOyB9OwogCQk5NzZENkM3RjEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYlVSTC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNjAxMjJC
OEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCAqLzsgfTsKIAkJOTc2RDZDODExMjJCOEEzRDAwMUZE
MUY3IC8qIEZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NkQ2QzYyMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTc2RDZDODMxMjJCOEEzRDAwMUZEMUY3
IC8qIEZpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTc2RDZDNjQxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVFcnJvci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk3NkQ2Qzg2MTIyQjhBM0Qw
MDFGRDFGNyAvKiBGaWxlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTc2RDZDNjcxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTc2RDZDODkxMjJC
OEEzRDAwMUZEMUY3IC8qIEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzZBMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVhZGVy
LmggKi87IH07CiAJCTk3NkQ2Qzk1MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJl
Z2lzdHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NzZENkM3NjEyMkI4QTNEMDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oICovOyB9
OwpAQCAtMTExNjUsNyArMTExNjQsNiBAQAogCQk5NzZENkM2MDEyMkI4QTNEMDAxRkQxRjcgLyog
QmxvYlVSTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iVVJMLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzYxMTIyQjhBM0QwMDFGRDFGNyAvKiBG
aWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZpbGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM2MjEyMkI4QTNEMDAxRkQxRjcgLyog
RmlsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk3NkQ2QzY0MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJy
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUVycm9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzY2MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxl
TGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaWxlTGlzdC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzY3MTIyQjhBM0QwMDFGRDFG
NyAvKiBGaWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlTGlz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM2OTEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZVJlYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGaWxlUmVhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyOTIwLDcg
KzIyOTE4LDYgQEAKIAkJCQk5NzZENkM2MjEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZS5oICovLAog
CQkJCUUxQUIxRUI3MTRFOUUzNTgwMDQ0OUUxMyAvKiBGaWxlLmlkbCAqLywKIAkJCQlFMTY0QTJF
NzE5MUFDNUJCMDAxMDczN0QgLyogRmlsZUNvY29hLm1tICovLAotCQkJCTk3NkQ2QzY0MTIyQjhB
M0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCAqLywKIAkJCQk5NzZENkM2NjEyMkI4QTNEMDAxRkQx
RjcgLyogRmlsZUxpc3QuY3BwICovLAogCQkJCTk3NkQ2QzY3MTIyQjhBM0QwMDFGRDFGNyAvKiBG
aWxlTGlzdC5oICovLAogCQkJCUUxQUIxRUE4MTRFOUUyN0QwMDQ0OUUxMyAvKiBGaWxlTGlzdC5p
ZGwgKi8sCkBAIC0zMDU4Miw3ICszMDU3OSw2IEBACiAJCQkJOTc2RDZDODExMjJCOEEzRDAwMUZE
MUY3IC8qIEZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzOEY4NkRBMUY1MDlFNzQwMEU4Q0ZD
NSAvKiBGaWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NkM3NzJCMEFCNjAzQjcw
MDIzOENDNCAvKiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTc2RDZDODMxMjJC
OEEzRDAwMUZEMUY3IC8qIEZpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTM1MUQ0QjEx
REY5MTZCNDAwODAxMENEIC8qIEZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBODhB
OTA1MTc1NTNDRDcwMDBDNzRGOSAvKiBGaWxlSWNvbkxvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRjU1QjNEQkUxMjUxRjEyRDAwM0VGMjY5IC8qIEZpbGVJbnB1dFR5cGUuaCBpbiBIZWFkZXJz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JMb2FkZXIuaAppbmRleCAwMGIzMmRmMDc4YTQ3ZjVk
ZDMzMjE5ZWYzNjZhM2U1ZjQxMGJjOTI4Li44YmE4MjVhMzUwMmRiYmVlZGJhZDM5ZjdiYmY5YTQ2
YmIzNmVhZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0Jsb2JMb2FkZXIuaApAQCAtMjcsMTEgKzI3
LDEzIEBACiAKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlci5oIgogI2lu
Y2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQzLDE5ICs0NSwxOSBAQCBwdWJsaWM6CiAKICAgICBib29s
IGlzTG9hZGluZygpIGNvbnN0IHsgcmV0dXJuICEhbV9sb2FkZXI7IH0KICAgICBjb25zdCBSZWZQ
dHI8SlNDOjpBcnJheUJ1ZmZlcj4mIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fYnVmZmVyOyB9
Ci0gICAgaW50IGVycm9yQ29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CisgICAg
T3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4gZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJv
ckNvZGU7IH0KIAogcHJpdmF0ZToKICAgICB2b2lkIGRpZFN0YXJ0TG9hZGluZygpIGZpbmFsIHsg
fQogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgZGlkRmlu
aXNoTG9hZGluZygpIGZpbmFsOwotICAgIHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlcnJvckNvZGUpIGZpbmFsOwogICAg
IHZvaWQgY29tcGxldGUoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWxlUmVhZGVyTG9hZGVy
PiBtX2xvYWRlcjsKICAgICBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZlcj4gbV9idWZmZXI7Ci0gICAg
aW50IG1fZXJyb3JDb2RlIHsgMCB9OworICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IG1fZXJy
b3JDb2RlIHsgV1RGOjpudWxsb3B0IH07CiAgICAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBt
X2NvbXBsZXRpb25IYW5kbGVyOwogfTsKIApAQCAtNzgsNyArODAsNyBAQCBpbmxpbmUgdm9pZCBC
bG9iTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKICAgICBjb21wbGV0ZSgpOwogfQogCi1pbmxp
bmUgdm9pZCBCbG9iTG9hZGVyOjpkaWRGYWlsKGludCBlcnJvckNvZGUpCitpbmxpbmUgdm9pZCBC
bG9iTG9hZGVyOjpkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXJyb3JDb2RlKQogewogICAgIG1fZXJy
b3JDb2RlID0gZXJyb3JDb2RlOwogICAgIGNvbXBsZXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
RXJyb3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWJjNTdhYTlhMTMxZTE0ZmNi
OTVmM2Q2YTYxZTgwN2EwY2EyNDBhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVFcnJvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9SZWYu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNsYXNzIEZpbGVFcnJvciA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVFcnJvcj4gewotcHVibGlj
OgotICAgIGVudW0gRXJyb3JDb2RlIHsKLSAgICAgICAgT0sgPSAwLAotICAgICAgICBOT1RfRk9V
TkRfRVJSID0gMSwKLSAgICAgICAgU0VDVVJJVFlfRVJSID0gMiwKLSAgICAgICAgQUJPUlRfRVJS
ID0gMywKLSAgICAgICAgTk9UX1JFQURBQkxFX0VSUiA9IDQsCi0gICAgICAgIEVOQ09ESU5HX0VS
UiA9IDUsCi0gICAgICAgIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDYsCi0gICAgICAg
IElOVkFMSURfU1RBVEVfRVJSID0gNywKLSAgICAgICAgU1lOVEFYX0VSUiA9IDgsCi0gICAgICAg
IElOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiA9IDksCi0gICAgICAgIFFVT1RBX0VYQ0VFREVEX0VS
UiA9IDEwLAotICAgICAgICBUWVBFX01JU01BVENIX0VSUiA9IDExLAotICAgICAgICBQQVRIX0VY
SVNUU19FUlIgPSAxMiwKLSAgICB9OwotCi0gICAgc3RhdGljIFJlZjxGaWxlRXJyb3I+IGNyZWF0
ZShFcnJvckNvZGUgY29kZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlRXJyb3IoY29kZSkp
OyB9Ci0KLSAgICBFcnJvckNvZGUgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQotCi1w
cml2YXRlOgotICAgIEZpbGVFcnJvcihFcnJvckNvZGUgY29kZSkKLSAgICAgICAgOiBtX2NvZGUo
Y29kZSkKLSAgICB7IH0KLQotICAgIEVycm9yQ29kZSBtX2NvZGU7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcAppbmRleCA2MGU3
ZDEyOGI1OTM4YjgxNjE2ZjA0NGE0ZmRkN2FkNDc0MTllM2UwLi4zZTE5OGQ0NzQxNzlhNmQwOWZj
YmVjZWI3NTY1Y2Y1MDQ0YWI0OTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5j
cHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlICJFeGNlcHRpb24uaCIKICNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZS5oIgotI2luY2x1ZGUgIkZpbGVFcnJvci5o
IgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMjExLDcgKzIxMCw3IEBAIHZvaWQg
RmlsZVJlYWRlcjo6ZGlkRmluaXNoTG9hZGluZygpCiAgICAgfSk7CiB9CiAKLXZvaWQgRmlsZVJl
YWRlcjo6ZGlkRmFpbChpbnQgZXJyb3JDb2RlKQordm9pZCBGaWxlUmVhZGVyOjpkaWRGYWlsKEV4
Y2VwdGlvbkNvZGUgZXJyb3JDb2RlKQogewogICAgIC8vIElmIHdlJ3JlIGFib3J0aW5nLCBkbyBu
b3QgcHJvY2VlZCB3aXRoIG5vcm1hbCBlcnJvciBoYW5kbGluZyBzaW5jZSBpdCBpcyBjb3ZlcmVk
IGluIGFib3J0aW5nIGNvZGUuCiAgICAgaWYgKG1fYWJvcnRpbmcpCkBAIC0yMjEsOSArMjIwLDcg
QEAgdm9pZCBGaWxlUmVhZGVyOjpkaWRGYWlsKGludCBlcnJvckNvZGUpCiAgICAgICAgIEFTU0VS
VChtX3N0YXRlICE9IERPTkUpOwogICAgICAgICBtX3N0YXRlID0gRE9ORTsKIAotICAgICAgICBh
dXRvIGUgPSBGaWxlUmVhZGVyU3luYzo6ZXJyb3JDb2RlVG9FeGNlcHRpb24oc3RhdGljX2Nhc3Q8
RmlsZUVycm9yOjpFcnJvckNvZGU+KGVycm9yQ29kZSkpOwotICAgICAgICBBU1NFUlQoZS5oYXNF
eGNlcHRpb24oKSk7Ci0gICAgICAgIG1fZXJyb3IgPSBET01FeGNlcHRpb246OmNyZWF0ZShlLmV4
Y2VwdGlvbigpKTsKKyAgICAgICAgbV9lcnJvciA9IERPTUV4Y2VwdGlvbjo6Y3JlYXRlKEV4Y2Vw
dGlvbiB7IGVycm9yQ29kZSB9KTsKIAogICAgICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLmVy
cm9yRXZlbnQpOwogICAgICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLmxvYWRlbmRFdmVudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCmluZGV4IDZhZWM5MTc4ODZmMDhjNjUxMTFk
NDliNTIzZmM2MjIxMzY0MGE1YzYuLmY2MDRkYmIxYjFlZWZjZWVjN2JjZjE3YjdmOTU4MGRmY2I0
M2YxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCkBAIC0zMyw2ICszMyw3IEBA
CiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRE9NRXhjZXB0aW9uLmgi
CiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIgpAQCAtOTUsNyArOTYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoTG9hZGluZygpIGZpbmFsOwotICAg
IHZvaWQgZGlkRmFpbChpbnQgZXJyb3JDb2RlKSBmaW5hbDsKKyAgICB2b2lkIGRpZEZhaWwoRXhj
ZXB0aW9uQ29kZSBlcnJvckNvZGUpIGZpbmFsOwogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmVh
ZEludGVybmFsKEJsb2ImLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSk7CiAgICAgdm9pZCBm
aXJlRXJyb3JFdmVudChpbnQgaHR0cFN0YXR1c0NvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlckxvYWRlci5jcHAKaW5kZXggODk3MTU1YTEyMjkxZGM0ZTUzNTIzNGUwODhh
OGM0MmVmYTA5YjVhNy4uMDg1MTc5MjY2M2NhMjcxNTlkOGVkODA1NTc4Mzg2OTFjMzM4YzA4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAKICNpbmNsdWRlICJCbG9iLmgiCiAjaW5jbHVkZSAiQmxvYlVSTC5oIgorI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiSFRUUEhlYWRlck5hbWVzLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgpAQCAtNzgsNyArNzksNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnN0YXJ0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEJsbwogICAgIC8vIFRo
ZSBibG9iIGlzIHJlYWQgYnkgcm91dGluZyB0aHJvdWdoIHRoZSByZXF1ZXN0IGhhbmRsaW5nIGxh
eWVyIGdpdmVuIGEgdGVtcG9yYXJ5IHB1YmxpYyB1cmwuCiAgICAgbV91cmxGb3JSZWFkaW5nID0g
QmxvYlVSTDo6Y3JlYXRlUHVibGljVVJMKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPnNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIGlmIChtX3VybEZvclJlYWRpbmcuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IGZhaWxlZChGaWxlRXJyb3I6OlNFQ1VSSVRZX0VSUik7CisgICAgICAgIGZhaWxlZChTZWN1cml0
eUVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5OjpyZWdpc3RlckJsb2JVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+c2VjdXJpdHlPcmln
aW4oKSwgbV91cmxGb3JSZWFkaW5nLCBibG9iLnVybCgpKTsKQEAgLTEwMiw3ICsxMDMsNyBAQCB2
b2lkIEZpbGVSZWFkZXJMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQsIEJsbwogCiB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmNhbmNlbCgp
CiB7Ci0gICAgbV9lcnJvckNvZGUgPSBGaWxlRXJyb3I6OkFCT1JUX0VSUjsKKyAgICBtX2Vycm9y
Q29kZSA9IEFib3J0RXJyb3I7CiAgICAgdGVybWluYXRlKCk7CiB9CiAKQEAgLTExOSw3ICsxMjAs
NyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmNsZWFudXAoKQogICAgIG1fbG9hZGVyID0gbnVs
bHB0cjsKIAogICAgIC8vIElmIHdlIGdldCBhbnkgZXJyb3IsIHdlIGRvIG5vdCBuZWVkIHRvIGtl
ZXAgYSBidWZmZXIgYXJvdW5kLgotICAgIGlmIChtX2Vycm9yQ29kZSkgeworICAgIGlmIChtX2Vy
cm9yQ29kZS5oYXNWYWx1ZSgpKSB7CiAgICAgICAgIG1fcmF3RGF0YSA9IG51bGxwdHI7CiAgICAg
ICAgIG1fc3RyaW5nUmVzdWx0ID0gZW1wdHlTdHJpbmcoKTsKICAgICB9CkBAIC0xNDQsNyArMTQ1
LDcgQEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQg
bG9uZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICAvLyBzbyB0byBjYWxsIEFycmF5QnVm
ZmVyJ3MgY3JlYXRlIGZ1bmN0aW9uLgogICAgIC8vIEZJWE1FOiBTdXBwb3J0IHJlYWRpbmcgbW9y
ZSB0aGFuIHRoZSBjdXJyZW50IHNpemUgbGltaXQgb2YgQXJyYXlCdWZmZXIuCiAgICAgaWYgKGxl
bmd0aCA+IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSkgewotICAgICAgICBm
YWlsZWQoRmlsZUVycm9yOjpOT1RfUkVBREFCTEVfRVJSKTsKKyAgICAgICAgZmFpbGVkKE5vdFJl
YWRhYmxlRXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xNTIsNyArMTUzLDcg
QEAgdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UodW5zaWduZWQgbG9u
ZywgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYKICAgICBtX3Jhd0RhdGEgPSBBcnJheUJ1ZmZlcjo6
dHJ5Q3JlYXRlKHN0YXRpY19jYXN0PHVuc2lnbmVkPihsZW5ndGgpLCAxKTsKIAogICAgIGlmICgh
bV9yYXdEYXRhKSB7Ci0gICAgICAgIGZhaWxlZChGaWxlRXJyb3I6Ok5PVF9SRUFEQUJMRV9FUlIp
OworICAgICAgICBmYWlsZWQoTm90UmVhZGFibGVFcnJvcik7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKQEAgLTE2OCw3ICsxNjksNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmRpZFJlY2Vp
dmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogICAgIEFTU0VSVChkYXRh
TGVuZ3RoID4gMCk7CiAKICAgICAvLyBCYWlsIG91dCBpZiB3ZSBhbHJlYWR5IGVuY291bnRlcmVk
IGFuIGVycm9yLgotICAgIGlmIChtX2Vycm9yQ29kZSkKKyAgICBpZiAobV9lcnJvckNvZGUuaGFz
VmFsdWUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaW50IGxlbmd0aCA9IGRhdGFMZW5ndGg7
CkBAIC0xNzYsMjAgKzE3NywyMCBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmRpZFJlY2VpdmVE
YXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogICAgIGlmIChsZW5ndGggPiBz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KHJlbWFpbmluZ0J1ZmZlclNwYWNlKSkgewogICAgICAgICAv
LyBJZiB0aGUgYnVmZmVyIGhhcyBoaXQgbWF4aW11bSBzaXplLCBpdCBjYW4ndCBiZSBncm93biBh
bnkgbW9yZS4KICAgICAgICAgaWYgKG1fdG90YWxCeXRlcyA+PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVuc2lnbmVkPjo6bWF4KCkpIHsKLSAgICAgICAgICAgIGZhaWxlZChGaWxlRXJyb3I6Ok5PVF9S
RUFEQUJMRV9FUlIpOworICAgICAgICAgICAgZmFpbGVkKE5vdFJlYWRhYmxlRXJyb3IpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChtX3ZhcmlhYmxlTGVuZ3Ro
KSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBtX3RvdGFsQnl0ZXMgKyBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZGF0YUxlbmd0aCk7CiAgICAgICAgICAgICBpZiAobmV3TGVuZ3Ro
IDwgbV90b3RhbEJ5dGVzKSB7Ci0gICAgICAgICAgICAgICAgZmFpbGVkKEZpbGVFcnJvcjo6Tk9U
X1JFQURBQkxFX0VSUik7CisgICAgICAgICAgICAgICAgZmFpbGVkKE5vdFJlYWRhYmxlRXJyb3Ip
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG5l
d0xlbmd0aCA9IHN0ZDo6bWF4KG5ld0xlbmd0aCwgbV90b3RhbEJ5dGVzICsgbV90b3RhbEJ5dGVz
IC8gNCArIDEpOwogICAgICAgICAgICAgYXV0byBuZXdEYXRhID0gQXJyYXlCdWZmZXI6OnRyeUNy
ZWF0ZShuZXdMZW5ndGgsIDEpOwogICAgICAgICAgICAgaWYgKCFuZXdEYXRhKSB7CiAgICAgICAg
ICAgICAgICAgLy8gTm90IGVub3VnaCBtZW1vcnkuCi0gICAgICAgICAgICAgICAgZmFpbGVkKEZp
bGVFcnJvcjo6Tk9UX1JFQURBQkxFX0VSUik7CisgICAgICAgICAgICAgICAgZmFpbGVkKE5vdFJl
YWRhYmxlRXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIG1lbWNweShzdGF0aWNfY2FzdDxjaGFyKj4obmV3RGF0YS0+ZGF0YSgpKSwgc3Rh
dGljX2Nhc3Q8Y2hhcio+KG1fcmF3RGF0YS0+ZGF0YSgpKSwgbV9ieXRlc0xvYWRlZCk7CkBAIC0y
MjgsMzcgKzIyOSwzNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmco
dW5zaWduZWQgbG9uZykKIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZGlkRmFpbChjb25zdCBSZXNv
dXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBJZiB3ZSdyZSBhYm9ydGluZywgZG8gbm90IHBy
b2NlZWQgd2l0aCBub3JtYWwgZXJyb3IgaGFuZGxpbmcgc2luY2UgaXQgaXMgY292ZXJlZCBpbiBh
Ym9ydGluZyBjb2RlLgotICAgIGlmIChtX2Vycm9yQ29kZSA9PSBGaWxlRXJyb3I6OkFCT1JUX0VS
UikKKyAgICBpZiAobV9lcnJvckNvZGUuaGFzVmFsdWUoKSAmJiBtX2Vycm9yQ29kZS52YWx1ZSgp
ID09IEFib3J0RXJyb3IpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZhaWxlZCh0b0Vycm9yQ29k
ZShzdGF0aWNfY2FzdDxCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yPihlcnJvci5lcnJvckNvZGUo
KSkpKTsKIH0KIAotdm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpmYWlsZWQoRmlsZUVycm9yOjpFcnJv
ckNvZGUgZXJyb3JDb2RlKQordm9pZCBGaWxlUmVhZGVyTG9hZGVyOjpmYWlsZWQoRXhjZXB0aW9u
Q29kZSBlcnJvckNvZGUpCiB7CiAgICAgbV9lcnJvckNvZGUgPSBlcnJvckNvZGU7CiAgICAgY2xl
YW51cCgpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwobV9l
cnJvckNvZGUpOworICAgICAgICBtX2NsaWVudC0+ZGlkRmFpbChlcnJvckNvZGUpOwogfQogCi1G
aWxlRXJyb3I6OkVycm9yQ29kZSBGaWxlUmVhZGVyTG9hZGVyOjp0b0Vycm9yQ29kZShCbG9iUmVz
b3VyY2VIYW5kbGU6OkVycm9yIGVycm9yKQorRXhjZXB0aW9uQ29kZSBGaWxlUmVhZGVyTG9hZGVy
Ojp0b0Vycm9yQ29kZShCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yIGVycm9yKQogewogICAgIHN3
aXRjaCAoZXJyb3IpIHsKICAgICBjYXNlIEJsb2JSZXNvdXJjZUhhbmRsZTo6RXJyb3I6Ok5vdEZv
dW5kRXJyb3I6Ci0gICAgICAgIHJldHVybiBGaWxlRXJyb3I6Ok5PVF9GT1VORF9FUlI7CisgICAg
ICAgIHJldHVybiBOb3RGb3VuZEVycm9yOwogICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBG
aWxlRXJyb3I6Ok5PVF9SRUFEQUJMRV9FUlI7CisgICAgICAgIHJldHVybiBOb3RSZWFkYWJsZUVy
cm9yOwogICAgIH0KIH0KIAotRmlsZUVycm9yOjpFcnJvckNvZGUgRmlsZVJlYWRlckxvYWRlcjo6
aHR0cFN0YXR1c0NvZGVUb0Vycm9yQ29kZShpbnQgaHR0cFN0YXR1c0NvZGUpCitFeGNlcHRpb25D
b2RlIEZpbGVSZWFkZXJMb2FkZXI6Omh0dHBTdGF0dXNDb2RlVG9FcnJvckNvZGUoaW50IGh0dHBT
dGF0dXNDb2RlKQogewogICAgIHN3aXRjaCAoaHR0cFN0YXR1c0NvZGUpIHsKICAgICBjYXNlIDQw
MzoKLSAgICAgICAgcmV0dXJuIEZpbGVFcnJvcjo6U0VDVVJJVFlfRVJSOworICAgICAgICByZXR1
cm4gU2VjdXJpdHlFcnJvcjsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gRmlsZUVycm9y
OjpOT1RfUkVBREFCTEVfRVJSOworICAgICAgICByZXR1cm4gTm90UmVhZGFibGVFcnJvcjsKICAg
ICB9CiB9CiAKQEAgLTI2Nyw3ICsyNjgsNyBAQCBSZWZQdHI8QXJyYXlCdWZmZXI+IEZpbGVSZWFk
ZXJMb2FkZXI6OmFycmF5QnVmZmVyUmVzdWx0KCkgY29uc3QKICAgICBBU1NFUlQobV9yZWFkVHlw
ZSA9PSBSZWFkQXNBcnJheUJ1ZmZlcik7CiAKICAgICAvLyBJZiB0aGUgbG9hZGluZyBpcyBub3Qg
c3RhcnRlZCBvciBhbiBlcnJvciBvY2N1cnMsIHJldHVybiBhbiBlbXB0eSByZXN1bHQuCi0gICAg
aWYgKCFtX3Jhd0RhdGEgfHwgbV9lcnJvckNvZGUpCisgICAgaWYgKCFtX3Jhd0RhdGEgfHwgbV9l
cnJvckNvZGUuaGFzVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBJ
ZiBjb21wbGV0ZWQsIHdlIGNhbiBzaW1wbHkgcmV0dXJuIG91ciBidWZmZXIuCkBAIC0yODMsNyAr
Mjg0LDcgQEAgU3RyaW5nIEZpbGVSZWFkZXJMb2FkZXI6OnN0cmluZ1Jlc3VsdCgpCiAgICAgQVNT
RVJUKG1fcmVhZFR5cGUgIT0gUmVhZEFzQXJyYXlCdWZmZXIgJiYgbV9yZWFkVHlwZSAhPSBSZWFk
QXNCbG9iKTsKIAogICAgIC8vIElmIHRoZSBsb2FkaW5nIGlzIG5vdCBzdGFydGVkIG9yIGFuIGVy
cm9yIG9jY3VycywgcmV0dXJuIGFuIGVtcHR5IHJlc3VsdC4KLSAgICBpZiAoIW1fcmF3RGF0YSB8
fCBtX2Vycm9yQ29kZSkKKyAgICBpZiAoIW1fcmF3RGF0YSB8fCBtX2Vycm9yQ29kZS5oYXNWYWx1
ZSgpKQogICAgICAgICByZXR1cm4gbV9zdHJpbmdSZXN1bHQ7CiAKICAgICAvLyBJZiBhbHJlYWR5
IGNvbnZlcnRlZCBmcm9tIHRoZSByYXcgZGF0YSwgcmV0dXJuIHRoZSByZXN1bHQgbm93LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuaAppbmRleCA3YTQyOGJlNTA1N2Qy
YmM2YWM0MWNlOTI5OGIyNTRmYzVhMjllMDBhLi5kZDEzODMwY2JhYjUyODZkZWRiNzNjYjJkNzIy
NTA5NWFlYmUzNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXJMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIu
aApAQCAtMzEsMTEgKzMxLDEyIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkJsb2JSZXNv
dXJjZUhhbmRsZS5oIgotI2luY2x1ZGUgIkZpbGVFcnJvci5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgi
CiAjaW5jbHVkZSAiVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtNzcsNyArNzgsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+IGFycmF5QnVmZmVyUmVz
dWx0KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdCB7IHJldHVybiBt
X2J5dGVzTG9hZGVkOyB9CiAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fdG90YWxCeXRlczsgfQotICAgIEZpbGVFcnJvcjo6RXJyb3JDb2RlIGVycm9yQ29kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CisgICAgT3B0aW9uYWw8RXhjZXB0aW9uQ29kZT4g
ZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvckNvZGU7IH0KIAogICAgIHZvaWQgc2V0
RW5jb2RpbmcoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzZXREYXRhVHlwZShjb25zdCBTdHJp
bmcmIGRhdGFUeXBlKSB7IG1fZGF0YVR5cGUgPSBkYXRhVHlwZTsgfQpAQCAtODcsMTQgKzg4LDE0
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKICAgICB2b2lkIGNs
ZWFudXAoKTsKLSAgICB2b2lkIGZhaWxlZChGaWxlRXJyb3I6OkVycm9yQ29kZSk7CisgICAgdm9p
ZCBmYWlsZWQoRXhjZXB0aW9uQ29kZSk7CiAgICAgdm9pZCBjb252ZXJ0VG9UZXh0KCk7CiAgICAg
dm9pZCBjb252ZXJ0VG9EYXRhVVJMKCk7CiAKICAgICBib29sIGlzQ29tcGxldGVkKCkgY29uc3Q7
CiAKLSAgICBzdGF0aWMgRmlsZUVycm9yOjpFcnJvckNvZGUgaHR0cFN0YXR1c0NvZGVUb0Vycm9y
Q29kZShpbnQpOwotICAgIHN0YXRpYyBGaWxlRXJyb3I6OkVycm9yQ29kZSB0b0Vycm9yQ29kZShC
bG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uQ29kZSBodHRw
U3RhdHVzQ29kZVRvRXJyb3JDb2RlKGludCk7CisgICAgc3RhdGljIEV4Y2VwdGlvbkNvZGUgdG9F
cnJvckNvZGUoQmxvYlJlc291cmNlSGFuZGxlOjpFcnJvcik7CiAKICAgICBSZWFkVHlwZSBtX3Jl
YWRUeXBlOwogICAgIEZpbGVSZWFkZXJMb2FkZXJDbGllbnQqIG1fY2xpZW50OwpAQCAtMTE3LDcg
KzExOCw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9ieXRlc0xvYWRlZDsKICAgICB1bnNp
Z25lZCBtX3RvdGFsQnl0ZXM7CiAKLSAgICBGaWxlRXJyb3I6OkVycm9yQ29kZSBtX2Vycm9yQ29k
ZSB7IEZpbGVFcnJvcjo6T0sgfTsKKyAgICBPcHRpb25hbDxFeGNlcHRpb25Db2RlPiBtX2Vycm9y
Q29kZSB7IFdURjo6bnVsbG9wdCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaAppbmRleCA0
ZjY3ZTMxYjEyMjc1NzhkZDZjMjBhZjFkNGNjNmMwYThlYzM1MGZhLi5jNjNiYzY4OTQyZmQ0Y2U4
YmFlMzlkYjhkNDYwZWJjN2JlYWExYTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50IHsKQEAgLTM5LDcgKzQxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydExvYWRpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGludCBlcnJvckNvZGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChFeGNlcHRpb25Db2RlIGVycm9yQ29kZSkgPSAwOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXJTeW5jLmNwcAppbmRleCBlZDEzODhkNzlhOTU2NjYxNWE1ZGU3MDc4NGZjNzdjZDc5Yzcw
ODIxLi4zNzI2M2JiNGJjYzVkYWMxYWY0MzJhNmFmNGZjMTdmYTIxNDU3YmYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAj
aW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIKLSNpbmNsdWRlICJGaWxlRXJy
b3IuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQXJyYXlCdWZmZXIuaD4KIApAQCAtNzMsNDMgKzcyLDE0IEBAIEV4Y2VwdGlvbk9yPFN0
cmluZz4gRmlsZVJlYWRlclN5bmM6OnJlYWRBc0RhdGFVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0CiAgICAgcmV0dXJuIHN0YXJ0TG9hZGluZ1N0cmluZyhzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBsb2FkZXIsIGJsb2IpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBGaWxlUmVhZGVy
U3luYzo6ZXJyb3JDb2RlVG9FeGNlcHRpb24oRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2Rl
KQotewotICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7Ci0gICAgY2FzZSBGaWxlRXJyb3I6Ok9LOgot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpOT1RfRk9VTkRfRVJSOgot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciB9OwotICAgIGNhc2UgRmls
ZUVycm9yOjpTRUNVUklUWV9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yIH07Ci0gICAgY2FzZSBGaWxlRXJyb3I6OkFCT1JUX0VSUjoKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfTsKLSAgICBjYXNlIEZpbGVFcnJvcjo6Tk9UX1JFQURB
QkxFX0VSUjoKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFJlYWRhYmxlRXJyb3IgfTsK
LSAgICBjYXNlIEZpbGVFcnJvcjo6RU5DT0RJTkdfRVJSOgotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRW5jb2RpbmdFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpJTlZBTElEX1NUQVRFX0VSUjoK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgY2Fz
ZSBGaWxlRXJyb3I6OlNZTlRBWF9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50
YXhFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpJTlZBTElEX01PRElGSUNBVElPTl9FUlI6
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgfTsK
LSAgICBjYXNlIEZpbGVFcnJvcjo6UVVPVEFfRVhDRUVERURfRVJSOgotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgUXVvdGFFeGNlZWRlZEVycm9yIH07Ci0gICAgY2FzZSBGaWxlRXJyb3I6OlRZ
UEVfTUlTTUFUQ0hfRVJSOgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNo
RXJyb3IgfTsKLSAgICBjYXNlIEZpbGVFcnJvcjo6UEFUSF9FWElTVFNfRVJSOgotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLSAgICB9Ci0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciB9OwotfQotCiBFeGNlcHRpb25Pcjx2
b2lkPiBGaWxlUmVhZGVyU3luYzo6c3RhcnRMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEZpbGVSZWFkZXJMb2FkZXImIGxvYWRlciwgQmxvYiYg
YmxvYikKIHsKICAgICBsb2FkZXIuc3RhcnQoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGJsb2Ip
OwotICAgIHJldHVybiBlcnJvckNvZGVUb0V4Y2VwdGlvbihsb2FkZXIuZXJyb3JDb2RlKCkpOwor
ICAgIGF1dG8gZXJyb3IgPSBsb2FkZXIuZXJyb3JDb2RlKCk7CisgICAgaWYgKCFlcnJvci5oYXNW
YWx1ZSgpKQorICAgICAgICByZXR1cm4geyB9OworICAgIAorICAgIHJldHVybiBFeGNlcHRpb24g
eyBlcnJvci52YWx1ZSgpIH07CiB9CiAKIEV4Y2VwdGlvbk9yPFN0cmluZz4gRmlsZVJlYWRlclN5
bmM6OnN0YXJ0TG9hZGluZ1N0cmluZyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0LCBGaWxlUmVhZGVyTG9hZGVyJiBsb2FkZXIsIEJsb2ImIGJsb2IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmggYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmgKaW5kZXggMWNiYWZlNjM5MTRhMTA5NzMy
YjBhZTVmYjYwNGZhZmJkZmMwMDQ4MS4uOWUyNWNkYThiZTYxNGJhZjU1MmJkZTljNTg5NGQ4ODY0
ODBiNDVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3lu
Yy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaApAQCAtMzEs
NyArMzEsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2lu
Y2x1ZGUgIkZpbGVFcnJvci5oIgogCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEFycmF5QnVmZmVy
OwpAQCAtNTUsOCArNTQsNiBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiByZWFk
QXNUZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBCbG9iJiwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZyk7CiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiByZWFkQXNEYXRhVVJMKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBCbG9iJik7CiAKLSAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gZXJy
b3JDb2RlVG9FeGNlcHRpb24oRmlsZUVycm9yOjpFcnJvckNvZGUpOwotCiBwcml2YXRlOgogICAg
IEZpbGVSZWFkZXJTeW5jKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
TmV0d29ya1NlbmRRdWV1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5k
UXVldWUuY3BwCmluZGV4IGRiNzEyMTk5MjdmNzU3Y2E1OGI5Mjc0N2JlZmMzMjcxNjYwNTA0N2Qu
LjcwNTA4NmE1MGViNDc5ZTY0OGE2NDEyMWQyMWNjYzhhZGMxNjZjNzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApAQCAtODUsNyArODUsOCBAQCB2b2lk
IE5ldHdvcmtTZW5kUXVldWU6OnByb2Nlc3NNZXNzYWdlcygpCiAgICAgICAgIH0sIFt0aGlzXShS
ZWY8U2hhcmVkQnVmZmVyPiYgZGF0YSkgewogICAgICAgICAgICAgbV93cml0ZVJhd0RhdGEoZGF0
YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOwogICAgICAgICB9LCBbdGhpcywgJnNob3VsZFN0b3BQ
cm9jZXNzaW5nXShVbmlxdWVSZWY8QmxvYkxvYWRlcj4mIGxvYWRlcikgewotICAgICAgICAgICAg
aWYgKGxvYWRlci0+aXNMb2FkaW5nKCkgfHwgbG9hZGVyLT5lcnJvckNvZGUoKSA9PSBGaWxlRXJy
b3I6OkFCT1JUX0VSUikgeworICAgICAgICAgICAgYXV0byBlcnJvckNvZGUgPSBsb2FkZXItPmVy
cm9yQ29kZSgpOworICAgICAgICAgICAgaWYgKGxvYWRlci0+aXNMb2FkaW5nKCkgfHwgKGVycm9y
Q29kZS5oYXNWYWx1ZSgpICYmIGVycm9yQ29kZS52YWx1ZSgpID09IEFib3J0RXJyb3IpKSB7CiAg
ICAgICAgICAgICAgICAgc2hvdWxkU3RvcFByb2Nlc3NpbmcgPSB0cnVlOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KQEAgLTk0LDggKzk1LDggQEAgdm9pZCBOZXR3b3Jr
U2VuZFF1ZXVlOjpwcm9jZXNzTWVzc2FnZXMoKQogICAgICAgICAgICAgICAgIG1fd3JpdGVSYXdE
YXRhKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXN1bHQtPmRhdGEoKSksIHJlc3VsdC0+Ynl0
ZUxlbmd0aCgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICBBU1NFUlQobG9hZGVyLT5lcnJvckNvZGUoKSk7Ci0gICAgICAgICAgICBzaG91bGRT
dG9wUHJvY2Vzc2luZyA9IG1fcHJvY2Vzc0Vycm9yKGxvYWRlci0+ZXJyb3JDb2RlKCkpID09IENv
bnRpbnVlOjpObzsKKyAgICAgICAgICAgIEFTU0VSVChlcnJvckNvZGUuaGFzVmFsdWUoKSk7Cisg
ICAgICAgICAgICBzaG91bGRTdG9wUHJvY2Vzc2luZyA9IG1fcHJvY2Vzc0Vycm9yKGVycm9yQ29k
ZS52YWx1ZSgpKSA9PSBDb250aW51ZTo6Tm87CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoc2hv
dWxkU3RvcFByb2Nlc3NpbmcpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Zp
bGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCmluZGV4IDFiNDRmN2I3ZDI2MjU5MTI0MDUwOGYwZTE0
YzUyZTQxMGQ5YWQ5YzkuLmU1YzI1NmZjZTNmN2VkOTBmYWRkYTM4ODRiNDUwZDJiYWM2Njg1NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCkBAIC0yNSw2ICsy
NSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUg
PHd0Zi9VbmlxdWVSZWYuaD4KQEAgLTQ3LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFdy
aXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBTdHJpbmcmKT47CiAgICAgdXNpbmcgV3Jp
dGVSYXdEYXRhID0gRnVuY3Rpb248dm9pZChjb25zdCBjaGFyKiwgc2l6ZV90KT47CiAgICAgZW51
bSBjbGFzcyBDb250aW51ZSB7IE5vLCBZZXMgfTsKLSAgICB1c2luZyBQcm9jZXNzRXJyb3IgPSBG
dW5jdGlvbjxDb250aW51ZShpbnQpPjsKKyAgICB1c2luZyBQcm9jZXNzRXJyb3IgPSBGdW5jdGlv
bjxDb250aW51ZShFeGNlcHRpb25Db2RlKT47CiAgICAgTmV0d29ya1NlbmRRdWV1ZShEb2N1bWVu
dCYsIFdyaXRlU3RyaW5nJiYsIFdyaXRlUmF3RGF0YSYmLCBQcm9jZXNzRXJyb3ImJik7CiAgICAg
fk5ldHdvcmtTZW5kUXVldWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAppbmRl
eCAzNWYxNTU3ZWJhMTMyZWUxYjFmZDhkMTIxMWE0YjJhYzIwOTFlYjMxLi40NWRmN2Y5YTNhYTAw
MzBiZTcwNWI3MjFmMDUxNjIxNDY2NGEzNWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFw
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgiCiAjaW5jbHVk
ZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxv
YWRlci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIKQEAgLTU5Nyw3ICs1
OTgsNyBAQCBwcml2YXRlOgogICAgICAgICBjcmVhdGVJbWFnZUJpdG1hcEFuZFJlc29sdmVQcm9t
aXNlU29vbihtX2Jsb2JMb2FkZXIuYXJyYXlCdWZmZXJSZXN1bHQoKSk7CiAgICAgfQogCi0gICAg
dm9pZCBkaWRGYWlsKGludCkgb3ZlcnJpZGUKKyAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29k
ZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNyZWF0ZUltYWdlQml0bWFwQW5kUmVzb2x2ZVBy
b21pc2VTb29uKG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZjA4MmE2NDc0Yzc2NTlh
MWY0MjM1MmIyYzcxMjFlZjA2MGFjZGJkOS4uYWQzNDNmZGM0YTA3MWQxMzA0ZDVhYzEyYmQxNDIw
NDVmOTQ4OGNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9iLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
b2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uQ29kZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oPgpAQCAtNjIsOCArNjMs
OSBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1
ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwogICAgIH0sIFsmY2hhbm5lbF0oY29uc3QgY2hh
ciogZGF0YSwgc2l6ZV90IGJ5dGVMZW5ndGgpIHsKICAgICAgICAgY2hhbm5lbC5ub3RpZnlTZW5k
RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlQmluYXJ5LCBkYXRhLCBieXRlTGVu
Z3RoKTsKICAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2FnZShNZXNzYWdlczo6TmV0d29ya1NvY2tl
dENoYW5uZWw6OlNlbmREYXRhIHsgSVBDOjpEYXRhUmVmZXJlbmNlIHsgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGJ5dGVMZW5ndGggfSB9LCBieXRlTGVuZ3RoKTsKLSAg
ICB9LCBbJmNoYW5uZWxdKGF1dG8gZXJyb3JDb2RlKSB7Ci0gICAgICAgIGNoYW5uZWwuZmFpbCht
YWtlU3RyaW5nKCJGYWlsZWQgdG8gbG9hZCBCbG9iOiBlcnJvciBjb2RlID0gIiwgZXJyb3JDb2Rl
KSk7CisgICAgfSwgWyZjaGFubmVsXShFeGNlcHRpb25Db2RlIGV4Y2VwdGlvbkNvZGUpIHsKKyAg
ICAgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8aW50PihleGNlcHRpb25Db2RlKTsKKyAgICAg
ICAgY2hhbm5lbC5mYWlsKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBsb2FkIEJsb2I6IGV4Y2VwdGlv
biBjb2RlID0gIiwgY29kZSkpOwogICAgICAgICByZXR1cm4gTmV0d29ya1NlbmRRdWV1ZTo6Q29u
dGludWU6Ok5vOwogICAgIH0gfTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401834</attachid>
            <date>2020-06-13 05:57:21 -0700</date>
            <delta_ts>2020-06-13 09:24:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213119-20200613215720.patch</filename>
            <type>text/plain</type>
            <size>34248</size>
            <attacher name="Tetsuharu Ohzeki [UTC+9]">tetsuharu.ohzeki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyOTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDhiZDY0OWM4YmE2ZDNm
NmViYmYzODliZDQxZGJiNGFiYjFiYWI2Yy4uYzhiODQ0ZDc5YWFkNGJlNDY5ODQyM2Q2NTBjMjE0
MGEyZGQxN2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIwLTA2LTEyICBUZXRz
dWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBnbWFpbC5jb20+CisKKyAgICAgICAgUmVt
b3ZlIEZpbGVFcnJvci5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTMxMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlOjpDbGlwYm9hcmRJdGVtVHlwZUxvYWRl
cjo6ZGlkRmFpbCk6CisgICAgICAgICogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJk
SXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDRGF0YUNoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDRGF0YUNoYW5uZWw6OmNy
ZWF0ZU1lc3NhZ2VRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFp
bCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjphYm9ydE91dGdvaW5nRnJh
bWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
aDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogZmlsZWFwaS9CbG9iTG9hZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpCbG9iTG9hZGVyOjpk
aWRGYWlsKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVFcnJvci5oOiBSZW1vdmVkLgorICAgICAg
ICAqIGZpbGVhcGkvRmlsZVJlYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVy
OjpkaWRGYWlsKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaDoKKyAgICAgICAgKiBm
aWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRl
ckxvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6Y2Fu
Y2VsKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmNsZWFudXApOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlckxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmRpZEZhaWwpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVJlYWRlckxvYWRlcjo6ZmFpbGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFk
ZXJMb2FkZXI6OnRvRXJyb3JDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2Fk
ZXI6Omh0dHBTdGF0dXNDb2RlVG9FcnJvckNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJl
YWRlckxvYWRlcjo6YXJyYXlCdWZmZXJSZXN1bHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVJlYWRlckxvYWRlcjo6c3RyaW5nUmVzdWx0KToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXJMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXJMb2FkZXI6OmVycm9y
Q29kZSBjb25zdCk6CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmg6
CisgICAgICAgICogZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlUmVhZGVyU3luYzo6c3RhcnRMb2FkaW5nKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVS
ZWFkZXJTeW5jLmg6CisgICAgICAgICogZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTZW5kUXVldWU6OnByb2Nlc3NNZXNzYWdlcyk6CisgICAg
ICAgICogZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmg6CisgICAgICAgICogaHRtbC9JbWFnZUJp
dG1hcC5jcHA6CisKIDIwMjAtMDYtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjYxOTg1KTogVW5hYmxlIHRvIHJlc3BvbmQg
dG8gbGFyZ2UgY29tbWVudHMgb24gQnVnemlsbGEgd2l0aCBhbHdheXMtb24gc2Nyb2xsYmFycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCA5OGNjNTE1MTJjODBkMjgyNjZhNzFlN2M5NWM5MGNjNzE1MDIzZDgzLi45NDEz
ZjdhODYzNTFlYjYyZGY4ODMzN2U5OTk1MjJlOTFmN2E0NmIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA2LTEyICBUZXRzdWhhcnUgT2h6ZWtpICA8dGV0c3VoYXJ1Lm9oemVraUBn
bWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIEZpbGVFcnJvci5oCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTMxMTkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJT
b2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y3Jl
YXRlTWVzc2FnZVF1ZXVlKToKKwogMjAyMC0wNi0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxl
LmNvbT4KIAogICAgICAgICBBdXRvbWF0aW9uLmNvbXB1dGVFbGVtZW50TGF5b3V0IHNob3VsZCBy
ZXR1cm4gaWZyYW1lLXJlbGF0aXZlIGVsZW1lbnQgcmVjdHMgKHdoZW4gY29vcmRpbmF0ZSBzeXN0
ZW0gaXMgJ1BhZ2UnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBi
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWM2OTc0MWE1N2JhZWYxM2Y2NDEz
N2IzNWI0M2U4NDhhMDk1ODg3Yy4uYjliOGI5MGEwZjAzNWNlMDRkZTc5YmYwOTRlODVlZjZhYmY3
MWI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC01MzQsNyArNTM0LDYgQEAgc2V0KFdlYkNvcmVf
UFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGZpbGVhcGkvQmxvYlByb3BlcnR5QmFnLmgK
ICAgICBmaWxlYXBpL0VuZGluZ1R5cGUuaAogICAgIGZpbGVhcGkvRmlsZS5oCi0gICAgZmlsZWFw
aS9GaWxlRXJyb3IuaAogICAgIGZpbGVhcGkvRmlsZUxpc3QuaAogICAgIGZpbGVhcGkvRmlsZVJl
YWRlckxvYWRlci5oCiAgICAgZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0
ZW1CaW5kaW5nc0RhdGFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1j
bGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKaW5kZXggNzQ2NWQw
ZTZhODY2ODczOGY0ZWJkYzU3NGY5MjZjNzQ4OGU3YWE0ZS4uNjExZjcyZWM5NGFmOTBiMDgwZWZj
ODZjNTVhZGU4OGI5NGNjMTQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
c3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRp
bmdzRGF0YVNvdXJjZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDbGlwYm9hcmQu
aCIKICNpbmNsdWRlICJDbGlwYm9hcmRJdGVtLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlci5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCkBAIC0yNDks
NyArMjUwLDcgQEAgdm9pZCBDbGlwYm9hcmRJdGVtQmluZGluZ3NEYXRhU291cmNlOjpDbGlwYm9h
cmRJdGVtVHlwZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZygKICAgICBpbnZva2VDb21wbGV0aW9u
SGFuZGxlcigpOwogfQogCi12b2lkIENsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3VyY2U6OkNs
aXBib2FyZEl0ZW1UeXBlTG9hZGVyOjpkaWRGYWlsKGludCkKK3ZvaWQgQ2xpcGJvYXJkSXRlbUJp
bmRpbmdzRGF0YVNvdXJjZTo6Q2xpcGJvYXJkSXRlbVR5cGVMb2FkZXI6OmRpZEZhaWwoRXhjZXB0
aW9uQ29kZSkKIHsKICAgICBBU1NFUlQobV9ibG9iTG9hZGVyKTsKICAgICBtX2Jsb2JMb2FkZXIg
PSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hc3luYy1jbGlw
Ym9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbUJpbmRpbmdzRGF0YVNvdXJjZS5o
CmluZGV4IGYwYjFjYWZhMGRiMTJmY2FmZGY1OGE2NzRiZmI0MWFmMTk5Njg1ZTIuLjNhOTA3Njdm
YmY3NzZjNDVkODQ3ZTNjMDEwOWU4NmEyZDI3M2U0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW1CaW5kaW5nc0RhdGFTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9h
cmRJdGVtQmluZGluZ3NEYXRhU291cmNlLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQ2xpcGJvYXJkSXRlbURhdGFTb3VyY2UuaCIKKyNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlckNsaWVudC5oIgogI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CkBAIC04MCw3ICs4
MSw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlkU3RhcnRMb2FkaW5nKCkgZmluYWwgeyB9
CiAgICAgICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBmaW5hbCB7IH0KICAgICAgICAgdm9pZCBk
aWRGaW5pc2hMb2FkaW5nKCkgZmluYWw7Ci0gICAgICAgIHZvaWQgZGlkRmFpbChpbnQpIGZpbmFs
OworICAgICAgICB2b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSkgZmluYWw7CiAKICAgICAgICAg
U3RyaW5nIG1fdHlwZTsKICAgICAgICAgQnVmZmVyT3JTdHJpbmcgbV9kYXRhOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApp
bmRleCAwYmUzMTJhZjBlNmNhYmNmN2YwMTRkYzE5NTU3YWUxOTFiNzRiMjM1Li45ZGQzN2FhNmEw
YzRkNTlmYTY3NDk5YzAzZGE1Yzk3MzMyMGQ4MTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcApAQCAtMzAsNiArMzAs
NyBAQAogCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpA
QCAtNzEsOSArNzIsMTEgQEAgTmV0d29ya1NlbmRRdWV1ZSBSVENEYXRhQ2hhbm5lbDo6Y3JlYXRl
TWVzc2FnZVF1ZXVlKERvY3VtZW50JiBkb2N1bWVudCwgUlRDRGF0YUMKICAgICB9LCBbJmNoYW5u
ZWxdKGF1dG8qIGRhdGEsIHNpemVfdCBsZW5ndGgpIHsKICAgICAgICAgaWYgKCFjaGFubmVsLm1f
aGFuZGxlci0+c2VuZFJhd0RhdGEoZGF0YSwgbGVuZ3RoKSkKICAgICAgICAgICAgIGNoYW5uZWwu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgIkVycm9yIHNlbmRpbmcgYmluYXJ5IGRhdGEgdGhy
b3VnaCBSVENEYXRhQ2hhbm5lbC4iX3MpOwotICAgIH0sIFsmY2hhbm5lbF0oaW50IGVycm9yQ29k
ZSkgewotICAgICAgICBpZiAoYXV0byogY29udGV4dCA9IGNoYW5uZWwuc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQotICAgICAgICAgICAgY29udGV4dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yICIsIGVy
cm9yQ29kZSwgIiBpbiByZXRyaWV2aW5nIGEgYmxvYiBkYXRhIHRvIGJlIHNlbnQgdGhyb3VnaCBS
VENEYXRhQ2hhbm5lbC4iKSk7CisgICAgfSwgWyZjaGFubmVsXShFeGNlcHRpb25Db2RlIGVycm9y
Q29kZSkgeworICAgICAgICBpZiAoYXV0byogY29udGV4dCA9IGNoYW5uZWwuc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKSB7CisgICAgICAgICAgICBhdXRvIGNvZGUgPSBzdGF0aWNfY2FzdDxpbnQ+
KGVycm9yQ29kZSk7CisgICAgICAgICAgICBjb250ZXh0LT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiRXJyb3IgIiwg
Y29kZSwgIiBpbiByZXRyaWV2aW5nIGEgYmxvYiBkYXRhIHRvIGJlIHNlbnQgdGhyb3VnaCBSVENE
YXRhQ2hhbm5lbC4iKSk7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIE5ldHdvcmtTZW5kUXVl
dWU6OkNvbnRpbnVlOjpZZXM7CiAgICAgfSB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDYyM2ZlMzkz
Njk1NjVmYmY5ODg3MTNhZTExYTkyNmIxOGY0MDU4MjQuLjk2NmI4NjJlOTUzZGQyMGRmMjQ2NzNk
M2ZlYTFlMmFlMjdkZjA1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNs
dWRlICJDb250ZW50UnVsZUxpc3RSZXN1bHRzLmgiCiAjaW5jbHVkZSAiQ29va2llSmFyLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJGaWxlRXJyb3IuaCIKKyNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKQEAgLTM5NSwxNCArMzk1LDE1IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmluaXNoTG9hZGluZygpCiAgICAgZGVyZWYoKTsK
IH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsKGludCBlcnJvckNvZGUpCit2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlcnJvckNvZGUpCiB7Ci0g
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZEZhaWwoKSBlcnJvckNvZGU9
JWQiLCB0aGlzLCBlcnJvckNvZGUpOworICAgIGF1dG8gY29kZSA9IHN0YXRpY19jYXN0PGludD4o
ZXJyb3JDb2RlKTsKKyAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmFp
bCgpIGVycm9yQ29kZT0lZCIsIHRoaXMsIGNvZGUpOwogICAgIEFTU0VSVChtX2Jsb2JMb2FkZXIp
OwogICAgIEFTU0VSVChtX2Jsb2JMb2FkZXJTdGF0dXMgPT0gQmxvYkxvYWRlclN0YXJ0ZWQpOwog
ICAgIG1fYmxvYkxvYWRlciA9IG51bGxwdHI7CiAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxv
YkxvYWRlckZhaWxlZDsKLSAgICBmYWlsKG1ha2VTdHJpbmcoIkZhaWxlZCB0byBsb2FkIEJsb2I6
IGVycm9yIGNvZGUgPSAiLCBlcnJvckNvZGUpKTsgLy8gRklYTUU6IEdlbmVyYXRlIGh1bWFuLWZy
aWVuZGx5IHJlYXNvbiBtZXNzYWdlLgorICAgIGZhaWwobWFrZVN0cmluZygiRmFpbGVkIHRvIGxv
YWQgQmxvYjogZXJyb3IgY29kZSA9ICIsIGNvZGUpKTsgLy8gRklYTUU6IEdlbmVyYXRlIGh1bWFu
LWZyaWVuZGx5IHJlYXNvbiBtZXNzYWdlLgogICAgIGRlcmVmKCk7CiB9CiAKQEAgLTgwOSw3ICs4
MTAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmFib3J0T3V0Z29pbmdGcmFtZVF1ZXVlKCkK
ICAgICBtX291dGdvaW5nRnJhbWVRdWV1ZVN0YXR1cyA9IE91dGdvaW5nRnJhbWVRdWV1ZUNsb3Nl
ZDsKICAgICBpZiAobV9ibG9iTG9hZGVyU3RhdHVzID09IEJsb2JMb2FkZXJTdGFydGVkKSB7CiAg
ICAgICAgIG1fYmxvYkxvYWRlci0+Y2FuY2VsKCk7Ci0gICAgICAgIGRpZEZhaWwoRmlsZUVycm9y
OjpBQk9SVF9FUlIpOworICAgICAgICBkaWRGYWlsKEFib3J0RXJyb3IpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmgKaW5kZXggOTk2MDFhMDVkYmQ2MTRkOWNkYmI4NDk0NjczYjM4NzcwZGFjZDg0Mi4uZGM1
Yjk5YzQyMGI5NTYzMjY0ZGUzYzIzYTIxNDA1OTY1ZTcyYzc2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zMCw2
ICszMCw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgog
I2luY2x1ZGUgIkZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJTb2NrZXRTdHJl
YW1IYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5o
IgpAQCAtMTEzLDcgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN0YXJ0TG9hZGluZygp
IG92ZXJyaWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZURhdGEoKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZEZpbmlzaExvYWRpbmcoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZEZhaWwoaW50IGVycm9y
Q29kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXJyb3JDb2Rl
KSBvdmVycmlkZTsKIAogICAgIHVuc2lnbmVkIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBt
X2lkZW50aWZpZXI7IH0KICAgICBib29sIGhhc0NyZWF0ZWRIYW5kc2hha2UoKSB7IHJldHVybiAh
IW1faGFuZHNoYWtlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMTQ0YmI4YTc5YWU5N2M4NDBjNDczYTU5NmVlN2M4YTBkNmZj
YTk3Yi4uNmViNWI0ODNkNjY0ZjRhNjY1Y2MzMTYzYWU0M2MxNDgzZDY2ODJmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjgy
Myw3ICsyODIzLDYgQEAKIAkJOTc2RDZDN0MxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JCdWlsZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM1
RDEyMkI4QTNEMDAxRkQxRjcgLyogQmxvYkJ1aWxkZXIuaCAqLzsgfTsKIAkJOTc2RDZDN0YxMjJC
OEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzYwMTIyQjhBM0QwMDFGRDFGNyAvKiBCbG9iVVJMLmggKi87
IH07CiAJCTk3NkQ2QzgxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM2MjEyMkI4QTNEMDAxRkQxRjcg
LyogRmlsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTk3NkQ2QzgzMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzY0MTIyQjhBM0QwMDFGRDFG
NyAvKiBGaWxlRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk5NzZENkM4NjEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzY3MTIyQjhBM0Qw
MDFGRDFGNyAvKiBGaWxlTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk3NkQ2Qzg5MTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVhZGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZENkM2QTEy
MkI4QTNEMDAxRkQxRjcgLyogRmlsZVJlYWRlci5oICovOyB9OwogCQk5NzZENkM5NTEyMkI4QTNE
MDAxRkQxRjcgLyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzYxMjJCOEEzRDAwMUZEMUY3IC8qIFRo
cmVhZGFibGVCbG9iUmVnaXN0cnkuaCAqLzsgfTsKQEAgLTExMTY1LDcgKzExMTY0LDYgQEAKIAkJ
OTc2RDZDNjAxMjJCOEEzRDAwMUZEMUY3IC8qIEJsb2JVUkwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQmxvYlVSTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzZENkM2MTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBGaWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTc2RDZDNjIxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5NzZENkM2
NDEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZpbGVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZE
NkM2NjEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gRmlsZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NzZENkM2NzEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmlsZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTc2RDZDNjkxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVSZWFkZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlsZVJlYWRlci5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMjkyMCw3ICsyMjkxOCw2IEBACiAJCQkJOTc2RDZDNjIxMjJC
OEEzRDAwMUZEMUY3IC8qIEZpbGUuaCAqLywKIAkJCQlFMUFCMUVCNzE0RTlFMzU4MDA0NDlFMTMg
LyogRmlsZS5pZGwgKi8sCiAJCQkJRTE2NEEyRTcxOTFBQzVCQjAwMTA3MzdEIC8qIEZpbGVDb2Nv
YS5tbSAqLywKLQkJCQk5NzZENkM2NDEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUVycm9yLmggKi8s
CiAJCQkJOTc2RDZDNjYxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVMaXN0LmNwcCAqLywKIAkJCQk5
NzZENkM2NzEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZUxpc3QuaCAqLywKIAkJCQlFMUFCMUVBODE0
RTlFMjdEMDA0NDlFMTMgLyogRmlsZUxpc3QuaWRsICovLApAQCAtMzA1ODIsNyArMzA1NzksNiBA
QAogCQkJCTk3NkQ2QzgxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4MzhGODZEQTFGNTA5RTc0MDBFOENGQzUgLyogRmlsZUNhbGxiYWNrLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwNjZDNzcyQjBBQjYwM0I3MDAyMzhDQzQgLyogRmlsZUNob29zZXIuaCBpbiBI
ZWFkZXJzICovLAotCQkJCTk3NkQ2QzgzMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlRXJyb3IuaCBp
biBIZWFkZXJzICovLAogCQkJCTUzNTFENEIxMURGOTE2QjQwMDgwMTBDRCAvKiBGaWxlSGFuZGxl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTg4QTkwNTE3NTUzQ0Q3MDAwQzc0RjkgLyogRmlsZUlj
b25Mb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREJFMTI1MUYxMkQwMDNFRjI2OSAv
KiBGaWxlSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvQmxvYkxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9CbG9iTG9h
ZGVyLmgKaW5kZXggMDBiMzJkZjA3OGE0N2Y1ZGQzMzIxOWVmMzY2YTNlNWY0MTBiYzkyOC4uZTBi
Y2M5ZmFlMDE2MjY2YWNhNWM1MmNhMmU5OTlhZjU5YzJkNmExZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9CbG9iTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9CbG9iTG9hZGVyLmgKQEAgLTI3LDExICsyNywxMyBAQAogCiAjaW5jbHVkZSAiQmxvYi5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1
ZGUgIkZpbGVSZWFkZXJMb2FkZXIuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyQ2xpZW50
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUv
QXJyYXlCdWZmZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MywxOSAr
NDUsMTkgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0xvYWRpbmcoKSBjb25zdCB7IHJldHVybiAh
IW1fbG9hZGVyOyB9CiAgICAgY29uc3QgUmVmUHRyPEpTQzo6QXJyYXlCdWZmZXI+JiByZXN1bHQo
KSBjb25zdCB7IHJldHVybiBtX2J1ZmZlcjsgfQotICAgIGludCBlcnJvckNvZGUoKSBjb25zdCB7
IHJldHVybiBtX2Vycm9yQ29kZTsgfQorICAgIE9wdGlvbmFsPEV4Y2VwdGlvbkNvZGU+IGVycm9y
Q29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3JDb2RlOyB9CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCBkaWRTdGFydExvYWRpbmcoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKCkg
ZmluYWwgeyB9CiAKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoKSBmaW5hbDsKLSAgICB2b2lk
IGRpZEZhaWwoaW50IGVycm9yQ29kZSkgZmluYWw7CisgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlv
bkNvZGUgZXJyb3JDb2RlKSBmaW5hbDsKICAgICB2b2lkIGNvbXBsZXRlKCk7CiAKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8RmlsZVJlYWRlckxvYWRlcj4gbV9sb2FkZXI7CiAgICAgUmVmUHRyPEpTQzo6
QXJyYXlCdWZmZXI+IG1fYnVmZmVyOwotICAgIGludCBtX2Vycm9yQ29kZSB7IDAgfTsKKyAgICBP
cHRpb25hbDxFeGNlcHRpb25Db2RlPiBtX2Vycm9yQ29kZTsKICAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+IG1fY29tcGxldGlvbkhhbmRsZXI7CiB9OwogCkBAIC03OCw3ICs4MCw3IEBAIGlu
bGluZSB2b2lkIEJsb2JMb2FkZXI6OmRpZEZpbmlzaExvYWRpbmcoKQogICAgIGNvbXBsZXRlKCk7
CiB9CiAKLWlubGluZSB2b2lkIEJsb2JMb2FkZXI6OmRpZEZhaWwoaW50IGVycm9yQ29kZSkKK2lu
bGluZSB2b2lkIEJsb2JMb2FkZXI6OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlcnJvckNvZGUpCiB7
CiAgICAgbV9lcnJvckNvZGUgPSBlcnJvckNvZGU7CiAgICAgY29tcGxldGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9m
aWxlYXBpL0ZpbGVFcnJvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YmM1N2Fh
OWExMzFlMTRmY2I5NWYzZDZhNjFlODA3YTBjYTI0MGE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZUVycm9y
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVk
ZSA8d3RmL1JlZi5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgRmlsZUVycm9yIDogcHVibGljIFJlZkNvdW50ZWQ8RmlsZUVycm9y
PiB7Ci1wdWJsaWM6Ci0gICAgZW51bSBFcnJvckNvZGUgewotICAgICAgICBPSyA9IDAsCi0gICAg
ICAgIE5PVF9GT1VORF9FUlIgPSAxLAotICAgICAgICBTRUNVUklUWV9FUlIgPSAyLAotICAgICAg
ICBBQk9SVF9FUlIgPSAzLAotICAgICAgICBOT1RfUkVBREFCTEVfRVJSID0gNCwKLSAgICAgICAg
RU5DT0RJTkdfRVJSID0gNSwKLSAgICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0g
NiwKLSAgICAgICAgSU5WQUxJRF9TVEFURV9FUlIgPSA3LAotICAgICAgICBTWU5UQVhfRVJSID0g
OCwKLSAgICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSID0gOSwKLSAgICAgICAgUVVPVEFf
RVhDRUVERURfRVJSID0gMTAsCi0gICAgICAgIFRZUEVfTUlTTUFUQ0hfRVJSID0gMTEsCi0gICAg
ICAgIFBBVEhfRVhJU1RTX0VSUiA9IDEyLAotICAgIH07Ci0KLSAgICBzdGF0aWMgUmVmPEZpbGVF
cnJvcj4gY3JlYXRlKEVycm9yQ29kZSBjb2RlKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVF
cnJvcihjb2RlKSk7IH0KLQotICAgIEVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9j
b2RlOyB9Ci0KLXByaXZhdGU6Ci0gICAgRmlsZUVycm9yKEVycm9yQ29kZSBjb2RlKQotICAgICAg
ICA6IG1fY29kZShjb2RlKQotICAgIHsgfQotCi0gICAgRXJyb3JDb2RlIG1fY29kZTsKLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3Bw
CmluZGV4IDYwZTdkMTI4YjU5MzhiODE2MTZmMDQ0YTRmZGQ3YWQ0NzQxOWUzZTAuLjNlMTk4ZDQ3
NDE3OWE2ZDA5ZmNiZWNlYjc1NjVjZjUwNDRhYjQ5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9G
aWxlUmVhZGVyLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbi5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlLmgiCi0jaW5jbHVkZSAi
RmlsZUVycm9yLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlByb2dyZXNzRXZl
bnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCkBAIC0yMTEsNyArMjEw
LDcgQEAgdm9pZCBGaWxlUmVhZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKICAgICB9KTsKIH0KIAot
dm9pZCBGaWxlUmVhZGVyOjpkaWRGYWlsKGludCBlcnJvckNvZGUpCit2b2lkIEZpbGVSZWFkZXI6
OmRpZEZhaWwoRXhjZXB0aW9uQ29kZSBlcnJvckNvZGUpCiB7CiAgICAgLy8gSWYgd2UncmUgYWJv
cnRpbmcsIGRvIG5vdCBwcm9jZWVkIHdpdGggbm9ybWFsIGVycm9yIGhhbmRsaW5nIHNpbmNlIGl0
IGlzIGNvdmVyZWQgaW4gYWJvcnRpbmcgY29kZS4KICAgICBpZiAobV9hYm9ydGluZykKQEAgLTIy
MSw5ICsyMjAsNyBAQCB2b2lkIEZpbGVSZWFkZXI6OmRpZEZhaWwoaW50IGVycm9yQ29kZSkKICAg
ICAgICAgQVNTRVJUKG1fc3RhdGUgIT0gRE9ORSk7CiAgICAgICAgIG1fc3RhdGUgPSBET05FOwog
Ci0gICAgICAgIGF1dG8gZSA9IEZpbGVSZWFkZXJTeW5jOjplcnJvckNvZGVUb0V4Y2VwdGlvbihz
dGF0aWNfY2FzdDxGaWxlRXJyb3I6OkVycm9yQ29kZT4oZXJyb3JDb2RlKSk7Ci0gICAgICAgIEFT
U0VSVChlLmhhc0V4Y2VwdGlvbigpKTsKLSAgICAgICAgbV9lcnJvciA9IERPTUV4Y2VwdGlvbjo6
Y3JlYXRlKGUuZXhjZXB0aW9uKCkpOworICAgICAgICBtX2Vycm9yID0gRE9NRXhjZXB0aW9uOjpj
cmVhdGUoRXhjZXB0aW9uIHsgZXJyb3JDb2RlIH0pOwogCiAgICAgICAgIGZpcmVFdmVudChldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCk7CiAgICAgICAgIGZpcmVFdmVudChldmVudE5hbWVzKCkubG9h
ZGVuZEV2ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKaW5kZXggNmFlYzkxNzg4
NmYwOGM2NTExMWQ0OWI1MjNmYzYyMjEzNjQwYTVjNi4uZjYwNGRiYjFiMWVlZmNlZWM3YmNmMTdi
N2Y5NTgwZGZjYjQzZjEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxl
UmVhZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJET01F
eGNlcHRpb24uaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkV4Y2VwdGlv
bkNvZGUuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJM
b2FkZXIuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyQ2xpZW50LmgiCkBAIC05NSw3ICs5
Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRTdGFydExvYWRpbmcoKSBmaW5hbDsKICAgICB2
b2lkIGRpZFJlY2VpdmVEYXRhKCkgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkg
ZmluYWw7Ci0gICAgdm9pZCBkaWRGYWlsKGludCBlcnJvckNvZGUpIGZpbmFsOworICAgIHZvaWQg
ZGlkRmFpbChFeGNlcHRpb25Db2RlIGVycm9yQ29kZSkgZmluYWw7CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiByZWFkSW50ZXJuYWwoQmxvYiYsIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBlKTsK
ICAgICB2b2lkIGZpcmVFcnJvckV2ZW50KGludCBodHRwU3RhdHVzQ29kZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyLmNwcAppbmRleCA4OTcxNTVhMTIyOTFkYzRl
NTM1MjM0ZTA4OGE4YzQyZWZhMDliNWE3Li5jYzRjYjMxZjU3ZmE0YTJmNmFkYTA0NGNiMTM3NWE3
NThmYzZhYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIkJsb2IuaCIKICNpbmNsdWRlICJCbG9i
VVJMLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJM
b2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJIVFRQSGVhZGVyTmFtZXMuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZUVycm9yLmgiCkBAIC03OCw3ICs3OSw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6
c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgQmxv
CiAgICAgLy8gVGhlIGJsb2IgaXMgcmVhZCBieSByb3V0aW5nIHRocm91Z2ggdGhlIHJlcXVlc3Qg
aGFuZGxpbmcgbGF5ZXIgZ2l2ZW4gYSB0ZW1wb3JhcnkgcHVibGljIHVybC4KICAgICBtX3VybEZv
clJlYWRpbmcgPSBCbG9iVVJMOjpjcmVhdGVQdWJsaWNVUkwoc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+c2VjdXJpdHlPcmlnaW4oKSk7CiAgICAgaWYgKG1fdXJsRm9yUmVhZGluZy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgZmFpbGVkKEZpbGVFcnJvcjo6U0VDVVJJVFlfRVJSKTsKKyAgICAgICAgZmFp
bGVkKFNlY3VyaXR5RXJyb3IpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnk6OnJlZ2lzdGVyQmxvYlVSTChzY3JpcHRFeGVjdXRpb25Db250ZXh0LT5z
ZWN1cml0eU9yaWdpbigpLCBtX3VybEZvclJlYWRpbmcsIGJsb2IudXJsKCkpOwpAQCAtMTAyLDcg
KzEwMyw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgQmxvCiAKIHZvaWQgRmlsZVJlYWRlckxvYWRl
cjo6Y2FuY2VsKCkKIHsKLSAgICBtX2Vycm9yQ29kZSA9IEZpbGVFcnJvcjo6QUJPUlRfRVJSOwor
ICAgIG1fZXJyb3JDb2RlID0gQWJvcnRFcnJvcjsKICAgICB0ZXJtaW5hdGUoKTsKIH0KIApAQCAt
MTQ0LDcgKzE0NSw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmCiAgICAgLy8gc28gdG8gY2Fs
bCBBcnJheUJ1ZmZlcidzIGNyZWF0ZSBmdW5jdGlvbi4KICAgICAvLyBGSVhNRTogU3VwcG9ydCBy
ZWFkaW5nIG1vcmUgdGhhbiB0aGUgY3VycmVudCBzaXplIGxpbWl0IG9mIEFycmF5QnVmZmVyLgog
ICAgIGlmIChsZW5ndGggPiBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIHsK
LSAgICAgICAgZmFpbGVkKEZpbGVFcnJvcjo6Tk9UX1JFQURBQkxFX0VSUik7CisgICAgICAgIGZh
aWxlZChOb3RSZWFkYWJsZUVycm9yKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTUy
LDcgKzE1Myw3IEBAIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKHVu
c2lnbmVkIGxvbmcsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmCiAgICAgbV9yYXdEYXRhID0gQXJy
YXlCdWZmZXI6OnRyeUNyZWF0ZShzdGF0aWNfY2FzdDx1bnNpZ25lZD4obGVuZ3RoKSwgMSk7CiAK
ICAgICBpZiAoIW1fcmF3RGF0YSkgewotICAgICAgICBmYWlsZWQoRmlsZUVycm9yOjpOT1RfUkVB
REFCTEVfRVJSKTsKKyAgICAgICAgZmFpbGVkKE5vdFJlYWRhYmxlRXJyb3IpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0xNzYsMjAgKzE3NywyMCBAQCB2b2lkIEZpbGVSZWFkZXJMb2Fk
ZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IGNoYXIqIGRhdGEsIGludCBkYXRhTGVuZ3RoKQogICAg
IGlmIChsZW5ndGggPiBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KHJlbWFpbmluZ0J1ZmZlclNwYWNl
KSkgewogICAgICAgICAvLyBJZiB0aGUgYnVmZmVyIGhhcyBoaXQgbWF4aW11bSBzaXplLCBpdCBj
YW4ndCBiZSBncm93biBhbnkgbW9yZS4KICAgICAgICAgaWYgKG1fdG90YWxCeXRlcyA+PSBzdGQ6
Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpIHsKLSAgICAgICAgICAgIGZhaWxlZChG
aWxlRXJyb3I6Ok5PVF9SRUFEQUJMRV9FUlIpOworICAgICAgICAgICAgZmFpbGVkKE5vdFJlYWRh
YmxlRXJyb3IpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmICht
X3ZhcmlhYmxlTGVuZ3RoKSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBuZXdMZW5ndGggPSBtX3Rv
dGFsQnl0ZXMgKyBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGF0YUxlbmd0aCk7CiAgICAgICAgICAg
ICBpZiAobmV3TGVuZ3RoIDwgbV90b3RhbEJ5dGVzKSB7Ci0gICAgICAgICAgICAgICAgZmFpbGVk
KEZpbGVFcnJvcjo6Tk9UX1JFQURBQkxFX0VSUik7CisgICAgICAgICAgICAgICAgZmFpbGVkKE5v
dFJlYWRhYmxlRXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIG5ld0xlbmd0aCA9IHN0ZDo6bWF4KG5ld0xlbmd0aCwgbV90b3RhbEJ5dGVz
ICsgbV90b3RhbEJ5dGVzIC8gNCArIDEpOwogICAgICAgICAgICAgYXV0byBuZXdEYXRhID0gQXJy
YXlCdWZmZXI6OnRyeUNyZWF0ZShuZXdMZW5ndGgsIDEpOwogICAgICAgICAgICAgaWYgKCFuZXdE
YXRhKSB7CiAgICAgICAgICAgICAgICAgLy8gTm90IGVub3VnaCBtZW1vcnkuCi0gICAgICAgICAg
ICAgICAgZmFpbGVkKEZpbGVFcnJvcjo6Tk9UX1JFQURBQkxFX0VSUik7CisgICAgICAgICAgICAg
ICAgZmFpbGVkKE5vdFJlYWRhYmxlRXJyb3IpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIG1lbWNweShzdGF0aWNfY2FzdDxjaGFyKj4obmV3RGF0
YS0+ZGF0YSgpKSwgc3RhdGljX2Nhc3Q8Y2hhcio+KG1fcmF3RGF0YS0+ZGF0YSgpKSwgbV9ieXRl
c0xvYWRlZCk7CkBAIC0yMjgsMzcgKzIyOSwzNyBAQCB2b2lkIEZpbGVSZWFkZXJMb2FkZXI6OmRp
ZEZpbmlzaExvYWRpbmcodW5zaWduZWQgbG9uZykKIHZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZGlk
RmFpbChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKICAgICAvLyBJZiB3ZSdyZSBhYm9y
dGluZywgZG8gbm90IHByb2NlZWQgd2l0aCBub3JtYWwgZXJyb3IgaGFuZGxpbmcgc2luY2UgaXQg
aXMgY292ZXJlZCBpbiBhYm9ydGluZyBjb2RlLgotICAgIGlmIChtX2Vycm9yQ29kZSA9PSBGaWxl
RXJyb3I6OkFCT1JUX0VSUikKKyAgICBpZiAobV9lcnJvckNvZGUgJiYgbV9lcnJvckNvZGUudmFs
dWUoKSA9PSBBYm9ydEVycm9yKQogICAgICAgICByZXR1cm47CiAKICAgICBmYWlsZWQodG9FcnJv
ckNvZGUoc3RhdGljX2Nhc3Q8QmxvYlJlc291cmNlSGFuZGxlOjpFcnJvcj4oZXJyb3IuZXJyb3JD
b2RlKCkpKSk7CiB9CiAKLXZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZmFpbGVkKEZpbGVFcnJvcjo6
RXJyb3JDb2RlIGVycm9yQ29kZSkKK3ZvaWQgRmlsZVJlYWRlckxvYWRlcjo6ZmFpbGVkKEV4Y2Vw
dGlvbkNvZGUgZXJyb3JDb2RlKQogewogICAgIG1fZXJyb3JDb2RlID0gZXJyb3JDb2RlOwogICAg
IGNsZWFudXAoKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRGYWls
KG1fZXJyb3JDb2RlKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZEZhaWwoZXJyb3JDb2RlKTsKIH0K
IAotRmlsZUVycm9yOjpFcnJvckNvZGUgRmlsZVJlYWRlckxvYWRlcjo6dG9FcnJvckNvZGUoQmxv
YlJlc291cmNlSGFuZGxlOjpFcnJvciBlcnJvcikKK0V4Y2VwdGlvbkNvZGUgRmlsZVJlYWRlckxv
YWRlcjo6dG9FcnJvckNvZGUoQmxvYlJlc291cmNlSGFuZGxlOjpFcnJvciBlcnJvcikKIHsKICAg
ICBzd2l0Y2ggKGVycm9yKSB7CiAgICAgY2FzZSBCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yOjpO
b3RGb3VuZEVycm9yOgotICAgICAgICByZXR1cm4gRmlsZUVycm9yOjpOT1RfRk9VTkRfRVJSOwor
ICAgICAgICByZXR1cm4gTm90Rm91bmRFcnJvcjsKICAgICBkZWZhdWx0OgotICAgICAgICByZXR1
cm4gRmlsZUVycm9yOjpOT1RfUkVBREFCTEVfRVJSOworICAgICAgICByZXR1cm4gTm90UmVhZGFi
bGVFcnJvcjsKICAgICB9CiB9CiAKLUZpbGVFcnJvcjo6RXJyb3JDb2RlIEZpbGVSZWFkZXJMb2Fk
ZXI6Omh0dHBTdGF0dXNDb2RlVG9FcnJvckNvZGUoaW50IGh0dHBTdGF0dXNDb2RlKQorRXhjZXB0
aW9uQ29kZSBGaWxlUmVhZGVyTG9hZGVyOjpodHRwU3RhdHVzQ29kZVRvRXJyb3JDb2RlKGludCBo
dHRwU3RhdHVzQ29kZSkKIHsKICAgICBzd2l0Y2ggKGh0dHBTdGF0dXNDb2RlKSB7CiAgICAgY2Fz
ZSA0MDM6Ci0gICAgICAgIHJldHVybiBGaWxlRXJyb3I6OlNFQ1VSSVRZX0VSUjsKKyAgICAgICAg
cmV0dXJuIFNlY3VyaXR5RXJyb3I7CiAgICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIEZpbGVF
cnJvcjo6Tk9UX1JFQURBQkxFX0VSUjsKKyAgICAgICAgcmV0dXJuIE5vdFJlYWRhYmxlRXJyb3I7
CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFk
ZXJMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCmlu
ZGV4IDdhNDI4YmU1MDU3ZDJiYzZhYzQxY2U5Mjk4YjI1NGZjNWEyOWUwMGEuLmUzZjQ2NjJmODVk
MGYzZjdiZDU0YzJhZWVkYzdkMWVlZmQxMmEwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZVJlYWRlckxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVJlYWRlckxvYWRlci5oCkBAIC0zMSwxMSArMzEsMTIgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSAiQmxvYlJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiRmlsZUVycm9yLmgiCisj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRl
ICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC03Nyw3ICs3
OCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8SlNDOjpBcnJheUJ1ZmZl
cj4gYXJyYXlCdWZmZXJSZXN1bHQoKSBjb25zdDsKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fYnl0ZXNMb2FkZWQ7IH0KICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVz
KCkgY29uc3QgeyByZXR1cm4gbV90b3RhbEJ5dGVzOyB9Ci0gICAgRmlsZUVycm9yOjpFcnJvckNv
ZGUgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvckNvZGU7IH0KKyAgICBPcHRpb25h
bDxFeGNlcHRpb25Db2RlPiBlcnJvckNvZGUoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yQ29kZTsg
fQogCiAgICAgdm9pZCBzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHNldERh
dGFUeXBlKGNvbnN0IFN0cmluZyYgZGF0YVR5cGUpIHsgbV9kYXRhVHlwZSA9IGRhdGFUeXBlOyB9
CkBAIC04NywxNCArODgsMTQgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIHRlcm1pbmF0
ZSgpOwogICAgIHZvaWQgY2xlYW51cCgpOwotICAgIHZvaWQgZmFpbGVkKEZpbGVFcnJvcjo6RXJy
b3JDb2RlKTsKKyAgICB2b2lkIGZhaWxlZChFeGNlcHRpb25Db2RlKTsKICAgICB2b2lkIGNvbnZl
cnRUb1RleHQoKTsKICAgICB2b2lkIGNvbnZlcnRUb0RhdGFVUkwoKTsKIAogICAgIGJvb2wgaXND
b21wbGV0ZWQoKSBjb25zdDsKIAotICAgIHN0YXRpYyBGaWxlRXJyb3I6OkVycm9yQ29kZSBodHRw
U3RhdHVzQ29kZVRvRXJyb3JDb2RlKGludCk7Ci0gICAgc3RhdGljIEZpbGVFcnJvcjo6RXJyb3JD
b2RlIHRvRXJyb3JDb2RlKEJsb2JSZXNvdXJjZUhhbmRsZTo6RXJyb3IpOworICAgIHN0YXRpYyBF
eGNlcHRpb25Db2RlIGh0dHBTdGF0dXNDb2RlVG9FcnJvckNvZGUoaW50KTsKKyAgICBzdGF0aWMg
RXhjZXB0aW9uQ29kZSB0b0Vycm9yQ29kZShCbG9iUmVzb3VyY2VIYW5kbGU6OkVycm9yKTsKIAog
ICAgIFJlYWRUeXBlIG1fcmVhZFR5cGU7CiAgICAgRmlsZVJlYWRlckxvYWRlckNsaWVudCogbV9j
bGllbnQ7CkBAIC0xMTcsNyArMTE4LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2J5dGVz
TG9hZGVkOwogICAgIHVuc2lnbmVkIG1fdG90YWxCeXRlczsKIAotICAgIEZpbGVFcnJvcjo6RXJy
b3JDb2RlIG1fZXJyb3JDb2RlIHsgRmlsZUVycm9yOjpPSyB9OworICAgIE9wdGlvbmFsPEV4Y2Vw
dGlvbkNvZGU+IG1fZXJyb3JDb2RlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyTG9hZGVyQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaAppbmRleCA0
ZjY3ZTMxYjEyMjc1NzhkZDZjMjBhZjFkNGNjNmMwYThlYzM1MGZhLi5jNjNiYzY4OTQyZmQ0Y2U4
YmFlMzlkYjhkNDYwZWJjN2JlYWExYTZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxl
YXBpL0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBp
L0ZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjcHJhZ21hIG9u
Y2UKIAorI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBGaWxlUmVhZGVyTG9hZGVyQ2xpZW50IHsKQEAgLTM5LDcgKzQxLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydExvYWRpbmcoKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpZFJlY2VpdmVEYXRhKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsKGludCBlcnJvckNvZGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbChFeGNlcHRpb25Db2RlIGVycm9yQ29kZSkgPSAwOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVS
ZWFkZXJTeW5jLmNwcAppbmRleCBlZDEzODhkNzlhOTU2NjYxNWE1ZGU3MDc4NGZjNzdjZDc5Yzcw
ODIxLi41MzYyYWU5MjU0MzcxYTY5ZjFlNWM3MTkyYzJjMGQ1ZWRmNzZjNDA3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmNwcApAQCAtMzQsNyArMzQsNiBAQAogCiAj
aW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkJsb2JVUkwuaCIKLSNpbmNsdWRlICJGaWxlRXJy
b3IuaCIKICNpbmNsdWRlICJGaWxlUmVhZGVyTG9hZGVyLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvQXJyYXlCdWZmZXIuaD4KIApAQCAtNzMsNDMgKzcyLDE0IEBAIEV4Y2VwdGlvbk9yPFN0
cmluZz4gRmlsZVJlYWRlclN5bmM6OnJlYWRBc0RhdGFVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgc2NyaXB0CiAgICAgcmV0dXJuIHN0YXJ0TG9hZGluZ1N0cmluZyhzY3JpcHRFeGVjdXRpb25D
b250ZXh0LCBsb2FkZXIsIGJsb2IpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBGaWxlUmVhZGVy
U3luYzo6ZXJyb3JDb2RlVG9FeGNlcHRpb24oRmlsZUVycm9yOjpFcnJvckNvZGUgZXJyb3JDb2Rl
KQotewotICAgIHN3aXRjaCAoZXJyb3JDb2RlKSB7Ci0gICAgY2FzZSBGaWxlRXJyb3I6Ok9LOgot
ICAgICAgICByZXR1cm4geyB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpOT1RfRk9VTkRfRVJSOgot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciB9OwotICAgIGNhc2UgRmls
ZUVycm9yOjpTRUNVUklUWV9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yIH07Ci0gICAgY2FzZSBGaWxlRXJyb3I6OkFCT1JUX0VSUjoKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfTsKLSAgICBjYXNlIEZpbGVFcnJvcjo6Tk9UX1JFQURB
QkxFX0VSUjoKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFJlYWRhYmxlRXJyb3IgfTsK
LSAgICBjYXNlIEZpbGVFcnJvcjo6RU5DT0RJTkdfRVJSOgotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRW5jb2RpbmdFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpOT19NT0RJRklDQVRJ
T05fQUxMT1dFRF9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlv
bkFsbG93ZWRFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpJTlZBTElEX1NUQVRFX0VSUjoK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07Ci0gICAgY2Fz
ZSBGaWxlRXJyb3I6OlNZTlRBWF9FUlI6Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50
YXhFcnJvciB9OwotICAgIGNhc2UgRmlsZUVycm9yOjpJTlZBTElEX01PRElGSUNBVElPTl9FUlI6
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IgfTsK
LSAgICBjYXNlIEZpbGVFcnJvcjo6UVVPVEFfRVhDRUVERURfRVJSOgotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgUXVvdGFFeGNlZWRlZEVycm9yIH07Ci0gICAgY2FzZSBGaWxlRXJyb3I6OlRZ
UEVfTUlTTUFUQ0hfRVJSOgotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNo
RXJyb3IgfTsKLSAgICBjYXNlIEZpbGVFcnJvcjo6UEFUSF9FWElTVFNfRVJSOgotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKLSAgICB9Ci0g
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciB9OwotfQotCiBFeGNlcHRpb25Pcjx2
b2lkPiBGaWxlUmVhZGVyU3luYzo6c3RhcnRMb2FkaW5nKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEZpbGVSZWFkZXJMb2FkZXImIGxvYWRlciwgQmxvYiYg
YmxvYikKIHsKICAgICBsb2FkZXIuc3RhcnQoJnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGJsb2Ip
OwotICAgIHJldHVybiBlcnJvckNvZGVUb0V4Y2VwdGlvbihsb2FkZXIuZXJyb3JDb2RlKCkpOwor
ICAgIGF1dG8gZXJyb3IgPSBsb2FkZXIuZXJyb3JDb2RlKCk7CisgICAgaWYgKCFlcnJvcikKKyAg
ICAgICAgcmV0dXJuIHsgfTsKKyAgICAKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgZXJyb3IudmFs
dWUoKSB9OwogfQogCiBFeGNlcHRpb25PcjxTdHJpbmc+IEZpbGVSZWFkZXJTeW5jOjpzdGFydExv
YWRpbmdTdHJpbmcoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCwgRmlsZVJlYWRlckxvYWRlciYgbG9hZGVyLCBCbG9iJiBibG9iKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyU3luYy5oIGIvU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlUmVhZGVyU3luYy5oCmluZGV4IDFjYmFmZTYzOTE0YTEwOTczMmIwYWU1ZmI2MDRm
YWZiZGZjMDA0ODEuLjllMjVjZGE4YmU2MTRiYWY1NTJiZGU5YzU4OTRkODg2NDgwYjQ1ZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlclN5bmMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmgKQEAgLTMxLDcgKzMxLDYgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJGaWxl
RXJyb3IuaCIKIAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBBcnJheUJ1ZmZlcjsKQEAgLTU1LDgg
KzU0LDYgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPFN0cmluZz4gcmVhZEFzVGV4dChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgQmxvYiYsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcpOwogICAg
IEV4Y2VwdGlvbk9yPFN0cmluZz4gcmVhZEFzRGF0YVVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgQmxvYiYpOwogCi0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IGVycm9yQ29kZVRvRXhj
ZXB0aW9uKEZpbGVFcnJvcjo6RXJyb3JDb2RlKTsKLQogcHJpdmF0ZToKICAgICBGaWxlUmVhZGVy
U3luYygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5k
UXVldWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9OZXR3b3JrU2VuZFF1ZXVlLmNwcApp
bmRleCBkYjcxMjE5OTI3Zjc1N2NhNThiOTI3NDdiZWZjMzI3MTY2MDUwNDdkLi45ODVlNTMwMWQ0
YjEyZmY3NzY1YzAzMWEzNGFlMzEyYTRkNDEwMDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL05ldHdvcmtTZW5kUXVldWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5jcHAKQEAgLTg1LDcgKzg1LDggQEAgdm9pZCBOZXR3b3JrU2Vu
ZFF1ZXVlOjpwcm9jZXNzTWVzc2FnZXMoKQogICAgICAgICB9LCBbdGhpc10oUmVmPFNoYXJlZEJ1
ZmZlcj4mIGRhdGEpIHsKICAgICAgICAgICAgIG1fd3JpdGVSYXdEYXRhKGRhdGEtPmRhdGEoKSwg
ZGF0YS0+c2l6ZSgpKTsKICAgICAgICAgfSwgW3RoaXMsICZzaG91bGRTdG9wUHJvY2Vzc2luZ10o
VW5pcXVlUmVmPEJsb2JMb2FkZXI+JiBsb2FkZXIpIHsKLSAgICAgICAgICAgIGlmIChsb2FkZXIt
PmlzTG9hZGluZygpIHx8IGxvYWRlci0+ZXJyb3JDb2RlKCkgPT0gRmlsZUVycm9yOjpBQk9SVF9F
UlIpIHsKKyAgICAgICAgICAgIGF1dG8gZXJyb3JDb2RlID0gbG9hZGVyLT5lcnJvckNvZGUoKTsK
KyAgICAgICAgICAgIGlmIChsb2FkZXItPmlzTG9hZGluZygpIHx8IChlcnJvckNvZGUgJiYgZXJy
b3JDb2RlLnZhbHVlKCkgPT0gQWJvcnRFcnJvcikpIHsKICAgICAgICAgICAgICAgICBzaG91bGRT
dG9wUHJvY2Vzc2luZyA9IHRydWU7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQpAQCAtOTQsOCArOTUsOCBAQCB2b2lkIE5ldHdvcmtTZW5kUXVldWU6OnByb2Nlc3NNZXNz
YWdlcygpCiAgICAgICAgICAgICAgICAgbV93cml0ZVJhd0RhdGEoc3RhdGljX2Nhc3Q8Y29uc3Qg
Y2hhcio+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCkpOwogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIEFTU0VSVChsb2FkZXIt
PmVycm9yQ29kZSgpKTsKLSAgICAgICAgICAgIHNob3VsZFN0b3BQcm9jZXNzaW5nID0gbV9wcm9j
ZXNzRXJyb3IobG9hZGVyLT5lcnJvckNvZGUoKSkgPT0gQ29udGludWU6Ok5vOworICAgICAgICAg
ICAgQVNTRVJUKGVycm9yQ29kZSk7CisgICAgICAgICAgICBzaG91bGRTdG9wUHJvY2Vzc2luZyA9
IG1fcHJvY2Vzc0Vycm9yKGVycm9yQ29kZS52YWx1ZSgpKSA9PSBDb250aW51ZTo6Tm87CiAgICAg
ICAgIH0pOwogICAgICAgICBpZiAoc2hvdWxkU3RvcFByb2Nlc3NpbmcpCiAgICAgICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL05ldHdvcmtTZW5kUXVl
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29ya1NlbmRRdWV1ZS5oCmluZGV4IDFi
NDRmN2I3ZDI2MjU5MTI0MDUwOGYwZTE0YzUyZTQxMGQ5YWQ5YzkuLmU1YzI1NmZjZTNmN2VkOTBm
YWRkYTM4ODRiNDUwZDJiYWM2Njg1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvTmV0d29ya1NlbmRRdWV1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTmV0d29y
a1NlbmRRdWV1ZS5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KQEAgLTQ3LDcgKzQ4LDcg
QEAgcHVibGljOgogICAgIHVzaW5nIFdyaXRlU3RyaW5nID0gRnVuY3Rpb248dm9pZChjb25zdCBT
dHJpbmcmKT47CiAgICAgdXNpbmcgV3JpdGVSYXdEYXRhID0gRnVuY3Rpb248dm9pZChjb25zdCBj
aGFyKiwgc2l6ZV90KT47CiAgICAgZW51bSBjbGFzcyBDb250aW51ZSB7IE5vLCBZZXMgfTsKLSAg
ICB1c2luZyBQcm9jZXNzRXJyb3IgPSBGdW5jdGlvbjxDb250aW51ZShpbnQpPjsKKyAgICB1c2lu
ZyBQcm9jZXNzRXJyb3IgPSBGdW5jdGlvbjxDb250aW51ZShFeGNlcHRpb25Db2RlKT47CiAgICAg
TmV0d29ya1NlbmRRdWV1ZShEb2N1bWVudCYsIFdyaXRlU3RyaW5nJiYsIFdyaXRlUmF3RGF0YSYm
LCBQcm9jZXNzRXJyb3ImJik7CiAgICAgfk5ldHdvcmtTZW5kUXVldWUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUJpdG1hcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlQml0bWFwLmNwcAppbmRleCAzNWYxNTU3ZWJhMTMyZWUxYjFmZDhkMTIxMWE0YjJh
YzIwOTFlYjMxLi40NWRmN2Y5YTNhYTAwMzBiZTcwNWI3MjFmMDUxNjIxNDY2NGEzNWEzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0ltYWdlQml0bWFwLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkJpdG1hcEltYWdlLmgiCiAjaW5jbHVkZSAiQmxvYi5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdl
LmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CiAjaW5jbHVkZSAiRmlsZVJlYWRlckxvYWRlci5oIgogI2luY2x1ZGUgIkZpbGVSZWFkZXJMb2Fk
ZXJDbGllbnQuaCIKQEAgLTU5Nyw3ICs1OTgsNyBAQCBwcml2YXRlOgogICAgICAgICBjcmVhdGVJ
bWFnZUJpdG1hcEFuZFJlc29sdmVQcm9taXNlU29vbihtX2Jsb2JMb2FkZXIuYXJyYXlCdWZmZXJS
ZXN1bHQoKSk7CiAgICAgfQogCi0gICAgdm9pZCBkaWRGYWlsKGludCkgb3ZlcnJpZGUKKyAgICB2
b2lkIGRpZEZhaWwoRXhjZXB0aW9uQ29kZSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGNyZWF0
ZUltYWdlQml0bWFwQW5kUmVzb2x2ZVByb21pc2VTb29uKG51bGxwdHIpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKaW5kZXggZjA4MmE2NDc0Yzc2NTlhMWY0MjM1MmIyYzcxMjFlZjA2MGFjZGJkOS4uYWQzNDNm
ZGM0YTA3MWQxMzA0ZDVhYzEyYmQxNDIwNDVmOTQ4OGNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTM0LDYg
KzM0LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CbG9i
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXhj
ZXB0aW9uQ29kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvV2ViU29ja2V0Q2hhbm5lbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oPgpAQCAtNjIsOCArNjMsOSBAQCBOZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENo
YW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvYwogICAg
IH0sIFsmY2hhbm5lbF0oY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGJ5dGVMZW5ndGgpIHsKICAg
ICAgICAgY2hhbm5lbC5ub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BD
b2RlQmluYXJ5LCBkYXRhLCBieXRlTGVuZ3RoKTsKICAgICAgICAgY2hhbm5lbC5zZW5kTWVzc2Fn
ZShNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OlNlbmREYXRhIHsgSVBDOjpEYXRhUmVm
ZXJlbmNlIHsgcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oZGF0YSksIGJ5dGVMZW5n
dGggfSB9LCBieXRlTGVuZ3RoKTsKLSAgICB9LCBbJmNoYW5uZWxdKGF1dG8gZXJyb3JDb2RlKSB7
Ci0gICAgICAgIGNoYW5uZWwuZmFpbChtYWtlU3RyaW5nKCJGYWlsZWQgdG8gbG9hZCBCbG9iOiBl
cnJvciBjb2RlID0gIiwgZXJyb3JDb2RlKSk7CisgICAgfSwgWyZjaGFubmVsXShFeGNlcHRpb25D
b2RlIGV4Y2VwdGlvbkNvZGUpIHsKKyAgICAgICAgYXV0byBjb2RlID0gc3RhdGljX2Nhc3Q8aW50
PihleGNlcHRpb25Db2RlKTsKKyAgICAgICAgY2hhbm5lbC5mYWlsKG1ha2VTdHJpbmcoIkZhaWxl
ZCB0byBsb2FkIEJsb2I6IGV4Y2VwdGlvbiBjb2RlID0gIiwgY29kZSkpOwogICAgICAgICByZXR1
cm4gTmV0d29ya1NlbmRRdWV1ZTo6Q29udGludWU6Ok5vOwogICAgIH0gfTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>