<?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>140037</bug_id>
          
          <creation_ts>2015-01-01 18:08:56 -0800</creation_ts>
          <short_desc>Remove GroupSettings</short_desc>
          <delta_ts>2015-01-01 21:27:02 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1058380</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-01 18:08:56 -0800</bug_when>
    <thetext>Remove GroupSettings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058381</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-01 18:09:53 -0800</bug_when>
    <thetext>No one ever sets any of the values in GroupSettings and they are never used for anything.  We should probably just get rid of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058382</commentid>
    <comment_count>2</comment_count>
      <attachid>243878</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-01 18:13:39 -0800</bug_when>
    <thetext>Created attachment 243878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058386</commentid>
    <comment_count>3</comment_count>
      <attachid>243881</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-01 19:38:30 -0800</bug_when>
    <thetext>Created attachment 243881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058389</commentid>
    <comment_count>4</comment_count>
      <attachid>243881</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-01 21:26:59 -0800</bug_when>
    <thetext>Comment on attachment 243881
Patch

Clearing flags on attachment: 243881

Committed r177857: &lt;http://trac.webkit.org/changeset/177857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1058390</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-01-01 21:27:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243878</attachid>
            <date>2015-01-01 18:13:39 -0800</date>
            <delta_ts>2015-01-01 19:38:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140037-20150101181342.patch</filename>
            <type>text/plain</type>
            <size>69370</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Nzg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDE1LTAxLTAxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIEdyb3VwU2V0dGluZ3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDAzNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGhpbmcgc2V0
cyB0aGUgdmFsdWVzIGluIEdyb3VwU2V0dGluZ3MgYW5kIG5vdGhpbmcgdXNlcyB0aGVtLgorICAg
ICAgICAtIFRoZSBpbmRleGVkREJEYXRhYmFzZVBhdGggaXMgYWNjZXNzZWQgYW5kIHNlbnQgdG8g
dGhlIEluZGV4ZWREQiBiYWNrZW5kLAorICAgICAgICAgIGJ1dCB0aGUgYmFja2VuZCB0aGVuIHBy
b2NlZWRzIHRvIG5vdCB1c2UgaXQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFj
dG9yeTo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6ZnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OmZhY3RvcnlCYWNrZW5kKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmluZGV4ZWREQik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAg
ICAgICogcGFnZS9Hcm91cFNldHRpbmdzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0dy
b3VwU2V0dGluZ3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6OlBhZ2VHcm91cCk6CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6Z3JvdXBTZXR0aW5ncyk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVneS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5OjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZCk6
CisgICAgICAgICogcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVneS5oOgorICAgICAgICAqIHdvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAg
KiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvRGVm
YXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OndvcmtlclNjcmlwdExvYWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94eTo6Z3JvdXBTZXR0aW5ncyk6IERlbGV0ZWQuCisgICAg
ICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAg
ICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtl
cnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZDo6
U2hhcmVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVh
ZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29y
a2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlOjpncm91cFNldHRpbmdzKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
Ojp3b3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIw
MTUtMDEtMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmll
ZCB0byBmaXggdGhlIGlPUyBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lv
biAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTkwNiw3ICsxOTA2LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvRnJh
bWVTbmFwc2hvdHRpbmcuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwCiAgICAgcGFnZS9GcmFt
ZVZpZXcuY3BwCi0gICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcAogICAgIHBhZ2UvSGlzdG9yeS5j
cHAKICAgICBwYWdlL0xvY2F0aW9uLmNwcAogICAgIHBhZ2UvTWFpbkZyYW1lLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODQsNyArNjg0LDYgQEAgX19aTjdXZWJD
b3JlMTZBcHBsaWNhdGlvbkNhY2hlMjBkZWxldGVDYQogX19aTjdXZWJDb3JlMTZDU1NQYXJzZXJD
b250ZXh0QzFFUk5TXzhEb2N1bWVudEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxNkNhbGN1bGF0aW9uVmFsdWU2Y3JlYXRlRU5TdDNfXzExMHVuaXF1ZV9wdHJJTlNfMThD
YWxjRXhwcmVzc2lvbk5vZGVFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVFRU5TXzMwQ2FsY3Vs
YXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlRQogX19aTjdXZWJDb3JlMTZEYXRhYmFzZVN0cmF0ZWd5
MTdnZXREYXRhYmFzZVNlcnZlckV2Ci1fX1pON1dlYkNvcmUxNkRhdGFiYXNlU3RyYXRlZ3kyM2Ny
ZWF0ZUlEQkZhY3RvcnlCYWNrZW5kRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTZEZXZp
Y2VNb3Rpb25EYXRhMTJBY2NlbGVyYXRpb242Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3JlMTZE
ZXZpY2VNb3Rpb25EYXRhMTJSb3RhdGlvblJhdGU2Y3JlYXRlRWJkYmRiZAogX19aTjdXZWJDb3Jl
MTZEZXZpY2VNb3Rpb25EYXRhNmNyZWF0ZUVOM1dURjEwUGFzc1JlZlB0cklOUzBfMTJBY2NlbGVy
YXRpb25FRUVTNF9OUzJfSU5TMF8xMlJvdGF0aW9uUmF0ZUVFRWJkCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcAkocmV2aXNpb24gMTc3
ODQ3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUg
Ikdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwu
aCIKQEAgLTY1LDcgKzY0LDYgQEAgSURCRmFjdG9yeTo6fklEQkZhY3RvcnkoKQogewogfQogCi1u
YW1lc3BhY2Ugewogc3RhdGljIGJvb2wgaXNDb250ZXh0VmFsaWQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCkKIHsKICAgICBBU1NFUlQoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSB8fCBj
b250ZXh0LT5pc1dvcmtlckdsb2JhbFNjb3BlKCkpOwpAQCAtNzYsMjAgKzc0LDYgQEAgc3RhdGlj
IGJvb2wgaXNDb250ZXh0VmFsaWQoU2NyaXB0RXhlY3V0aQogICAgIHJldHVybiB0cnVlOwogfQog
Ci1zdGF0aWMgU3RyaW5nIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQotewotICAgIEFTU0VSVChpc0NvbnRleHRWYWxpZChjb250ZXh0KSk7
Ci0gICAgaWYgKGlzPERvY3VtZW50PigqY29udGV4dCkpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KTsKLSAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCkuaW5kZXhlZERCRGF0YWJhc2VQ
YXRoKCk7Ci0gICAgfQotICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3MgPSBk
b3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLmdyb3VwU2V0dGluZ3MoKTsKLSAg
ICBpZiAoZ3JvdXBTZXR0aW5ncykKLSAgICAgICAgcmV0dXJuIGdyb3VwU2V0dGluZ3MtPmluZGV4
ZWREQkRhdGFiYXNlUGF0aCgpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLX0KLQogUGFzc1Jl
ZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9y
YWdlQVBJLCAiSURCRmFjdG9yeTo6Z2V0RGF0YWJhc2VOYW1lcyIpOwpAQCAtMTAxLDcgKzg1LDcg
QEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJGYWN0b3J5OjpnZXREYQogICAgIH0KIAogICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IElEQkFueTo6Y3JlYXRlKHRoaXMpLCAwKTsKLSAgICBtX2JhY2tlbmQtPmdldERhdGFiYXNlTmFt
ZXMocmVxdWVzdCwgKihjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpKSwgKihjb250ZXh0LT50b3BP
cmlnaW4oKSksIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250ZXh0KSk7Cisg
ICAgbV9iYWNrZW5kLT5nZXREYXRhYmFzZU5hbWVzKHJlcXVlc3QsICooY29udGV4dC0+c2VjdXJp
dHlPcmlnaW4oKSksICooY29udGV4dC0+dG9wT3JpZ2luKCkpLCBjb250ZXh0KTsKICAgICByZXR1
cm4gcmVxdWVzdDsKIH0KIApAQCAtMTU3LDcgKzE0MSw3IEBAIFBhc3NSZWZQdHI8SURCT3BlbkRC
UmVxdWVzdD4gSURCRmFjdG9yeToKICAgICB9CiAKICAgICBSZWZQdHI8SURCT3BlbkRCUmVxdWVz
dD4gcmVxdWVzdCA9IElEQk9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCAwLCAwLCAwLCBJ
bmRleGVkREI6OlZlcnNpb25OdWxsbmVzczo6TnVsbCk7Ci0gICAgbV9iYWNrZW5kLT5kZWxldGVE
YXRhYmFzZShuYW1lLCAqY29udGV4dC0+c2VjdXJpdHlPcmlnaW4oKSwgKmNvbnRleHQtPnRvcE9y
aWdpbigpLCByZXF1ZXN0LCBjb250ZXh0LCBnZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoY29udGV4
dCkpOworICAgIG1fYmFja2VuZC0+ZGVsZXRlRGF0YWJhc2UobmFtZSwgKmNvbnRleHQtPnNlY3Vy
aXR5T3JpZ2luKCksICpjb250ZXh0LT50b3BPcmlnaW4oKSwgcmVxdWVzdCwgY29udGV4dCk7CiAg
ICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5j
cHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSAr
MzUsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NSZWZQdHI8SURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2U+IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUoY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpCitQYXNzUmVmUHRyPElEQkZhY3Rv
cnlCYWNrZW5kSW50ZXJmYWNlPiBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCkK
IHsKLSAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmRhdGFiYXNlU3RyYXRlZ3koKS0+
Y3JlYXRlSURCRmFjdG9yeUJhY2tlbmQoZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmRhdGFiYXNlU3RyYXRlZ3koKS0+Y3JlYXRl
SURCRmFjdG9yeUJhY2tlbmQoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZS5oCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NiwxMiArNTYsMTIgQEAgdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsK
IC8vIHRyaWdnZXIgd29yayBvbiBhIGJhY2tncm91bmQgdGhyZWFkIGlmIG5lY2Vzc2FyeS4KIGNs
YXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlIDogcHVibGljIFJlZkNvdW50ZWQ8SURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2U+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VE
aXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlKCk7CiAgICAgdmlydHVhbCB+SURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UoKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBnZXREYXRhYmFzZU5hbWVzKFBhc3NS
ZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4s
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2lu
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNv
bnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFj
a3M+LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG1haW5GcmFtZU9yaWdpbikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFE
aXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFi
YXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpID0gMDsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdl
R3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCwxNCArMjgsMTIgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQogCi0jaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIklEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiUGFnZUdyb3VwLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlOjpQYWdlR3JvdXBJbmRleGVkRGF0
YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpCi0gICAgOiBt
X2RhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcihkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIp
CitQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSgpCiB7
CiB9CiAKQEAgLTUyLDcgKzUwLDcgQEAgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKiBQYWdlR3Jv
dXBJbmRleAogewogICAgIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSogc3VwcGxlbWVudCA9IHN0
YXRpY19jYXN0PFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSo+KFN1cHBsZW1lbnQ8UGFnZUdyb3Vw
Pjo6ZnJvbSgmZ3JvdXAsIHN1cHBsZW1lbnROYW1lKCkpKTsKICAgICBpZiAoIXN1cHBsZW1lbnQp
IHsKLSAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlR3Jv
dXBJbmRleGVkRGF0YWJhc2U+KGdyb3VwLmdyb3VwU2V0dGluZ3MoKS5pbmRleGVkREJEYXRhYmFz
ZVBhdGgoKSk7CisgICAgICAgIGF1dG8gbmV3U3VwcGxlbWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8
UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlPigpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3Vw
cGxlbWVudC5nZXQoKTsKICAgICAgICAgcHJvdmlkZVRvKCZncm91cCwgc3VwcGxlbWVudE5hbWUo
KSwgV1RGOjptb3ZlKG5ld1N1cHBsZW1lbnQpKTsKICAgICB9CkBAIC02NCw3ICs2Miw3IEBAIElE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlKiBQYWdlR3JvdXBJbmQKICAgICAvLyBEbyBub3QgYWRk
IHBhZ2Ugc2V0dGluZyBiYXNlZCBhY2Nlc3MgY29udHJvbCBoZXJlIHNpbmNlIHRoaXMgb2JqZWN0
IGlzIHNoYXJlZCBieSBhbGwgcGFnZXMgaW4KICAgICAvLyB0aGUgZ3JvdXAgYW5kIGhhdmluZyBw
ZXItcGFnZSBjb250cm9scyBpcyBtaXNsZWFkaW5nLgogICAgIGlmICghbV9mYWN0b3J5QmFja2Vu
ZCkKLSAgICAgICAgbV9mYWN0b3J5QmFja2VuZCA9IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
OjpjcmVhdGUobV9kYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAgICAgICBtX2ZhY3Rv
cnlCYWNrZW5kID0gSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U6OmNyZWF0ZSgpOwogICAgIHJl
dHVybiBtX2ZhY3RvcnlCYWNrZW5kLmdldCgpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJh
c2UuaAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4
LDcgQEAgY2xhc3MgUGFnZUdyb3VwOwogCiBjbGFzcyBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2Ug
OiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlR3JvdXA+IHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBQ
YWdlR3JvdXBJbmRleGVkRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlk
ZW50aWZpZXIpOworICAgIGV4cGxpY2l0IFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSgpOwogICAg
IHZpcnR1YWwgflBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZSgpOwogCiAgICAgc3RhdGljIFBhZ2VH
cm91cEluZGV4ZWREYXRhYmFzZSogZnJvbShQYWdlR3JvdXAmKTsKQEAgLTQ4LDcgKzQ4LDYgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgY29uc3QgY2hhciogc3VwcGxlbWVudE5hbWUo
KTsKIAotICAgIFN0cmluZyBtX2RhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcjsKICAgICBSZWZQ
dHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IG1fZmFjdG9yeUJhY2tlbmQ7CiB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUlu
ZGV4ZWREYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAx
Nzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDcgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFz
ZTo6V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpcmVjdG9yeUlkZW50aWZpZXIpCi0gICAgOiBtX2RhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmll
cihkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpCitXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWRE
YXRhYmFzZTo6V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UoKQogewogfQogCkBAIC01
NiwxMiArNTUsNyBAQCBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSogV29ya2VyCiB7
CiAgICAgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIHN1cHBsZW1lbnQgPSBzdGF0
aWNfY2FzdDxXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSo+KFN1cHBsZW1lbnQ8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dD46OmZyb20oY29udGV4dCwgc3VwcGxlbWVudE5hbWUoKSkpOwog
ICAgIGlmICghc3VwcGxlbWVudCkgewotICAgICAgICBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlJ
ZGVudGlmaWVyOwotICAgICAgICBjb25zdCBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KCpjb250ZXh0KS5ncm91cFNldHRpbmdzKCk7Ci0g
ICAgICAgIGlmIChncm91cFNldHRpbmdzKQotICAgICAgICAgICAgZGF0YWJhc2VEaXJlY3RvcnlJ
ZGVudGlmaWVyID0gZ3JvdXBTZXR0aW5ncy0+aW5kZXhlZERCRGF0YWJhc2VQYXRoKCk7Ci0KLSAg
ICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxT
Y29wZUluZGV4ZWREYXRhYmFzZT4oZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICAg
ICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJHbG9iYWxTY29w
ZUluZGV4ZWREYXRhYmFzZT4oKTsKICAgICAgICAgc3VwcGxlbWVudCA9IG5ld1N1cHBsZW1lbnQu
Z2V0KCk7CiAgICAgICAgIHByb3ZpZGVUbyhjb250ZXh0LCBzdXBwbGVtZW50TmFtZSgpLCBXVEY6
Om1vdmUobmV3U3VwcGxlbWVudCkpOwogICAgIH0KQEAgLTc2LDcgKzcwLDcgQEAgSURCRmFjdG9y
eSogV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YQogSURCRmFjdG9yeSogV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2U6OmluZGV4ZWREQigpCiB7CiAgICAgaWYgKCFtX2ZhY3RvcnlC
YWNrZW5kKQotICAgICAgICBtX2ZhY3RvcnlCYWNrZW5kID0gSURCRmFjdG9yeUJhY2tlbmRJbnRl
cmZhY2U6OmNyZWF0ZShtX2RhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcik7CisgICAgICAgIG1f
ZmFjdG9yeUJhY2tlbmQgPSBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCk7CiAg
ICAgaWYgKCFtX2lkYkZhY3RvcnkpCiAgICAgICAgIG1faWRiRmFjdG9yeSA9IElEQkZhY3Rvcnk6
OmNyZWF0ZShtX2ZhY3RvcnlCYWNrZW5kLmdldCgpKTsKICAgICByZXR1cm4gbV9pZGJGYWN0b3J5
LmdldCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvV29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oCShyZXZp
c2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJH
bG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3
IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKIGNsYXNzIFdvcmtlckdsb2JhbFNj
b3BlSW5kZXhlZERhdGFiYXNlIDogcHVibGljIFN1cHBsZW1lbnQ8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dD4gewogcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERh
dGFiYXNlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICBl
eHBsaWNpdCBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSgpOwogICAgIHZpcnR1YWwg
fldvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKCk7CiAgICAgc3RhdGljIFdvcmtlckds
b2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKiBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsK
IApAQCAtNTAsNyArNTAsNiBAQCBwcml2YXRlOgogICAgIElEQkZhY3RvcnkqIGluZGV4ZWREQigp
OwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFtZSgpOwogCi0gICAgU3RyaW5n
IG1fZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyOwogICAgIFJlZlB0cjxJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZT4gbV9mYWN0b3J5QmFja2VuZDsKICAgICBSZWZQdHI8SURCRmFjdG9yeT4g
bV9pZGJGYWN0b3J5OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hw
cm9qL1dlYkNvcmUudmN4cHJvagkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzIwOSw3
ICs3MjA5LDYgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVTbmFwc2hv
dHRpbmcuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGcmFtZVRyZWUu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGcmFtZVZpZXcuY3BwIiAv
PgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxHcm91cFNldHRpbmdzLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcSGlzdG9yeS5jcHAiIC8+CiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxJbXBsaWNpdEFuaW1hdGlvbi5jcHAi
IC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxLZXlmcmFtZUFu
aW1hdGlvbi5jcHAiIC8+CkBAIC0xOTIxMyw3ICsxOTIxMiw2IEBACiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEZyYW1lU25hcHNob3R0aW5nLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJ
bmNsdWRlPSIuLlxwYWdlXEZyYW1lVHJlZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccGFnZVxGcmFtZVZpZXcuaCIgLz4KLSAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2Vc
R3JvdXBTZXR0aW5ncy5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxIaXN0
b3J5LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXGFuaW1hdGlvblxJbXBs
aWNpdEFuaW1hdGlvbi5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxhbmlt
YXRpb25cS2V5ZnJhbWVBbmltYXRpb24uaCIgLz4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHJldmlzaW9u
IDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2ouZmlsdGVycwkod29ya2luZyBjb3B5KQpAQCAtNzcxLDkgKzc3MSw2IEBACiAgICAgPENsQ29t
cGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZyYW1lVmlldy5jcHAiPgogICAgICAgPEZpbHRlcj5wYWdl
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxw
YWdlXEdyb3VwU2V0dGluZ3MuY3BwIj4KLSAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgotICAg
IDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxIaXN0b3J5LmNw
cCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KQEAgLTc3
ODIsOSArNzc3OSw2IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEZyYW1lVmll
dy5oIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFnZVxHcm91cFNldHRpbmdzLmgiPgotICAgICAgPEZp
bHRlcj5wYWdlPC9GaWx0ZXI+Ci0gICAgPC9DbEluY2x1ZGU+CiAgICAgPENsSW5jbHVkZSBJbmNs
dWRlPSIuLlxwYWdlXEhpc3RvcnkuaCI+CiAgICAgICA8RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KICAg
ICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNTU2
MSw4ICs1NTYxLDYgQEAKIAkJQzQwMEQxMDkxOEYxQzhGNjAwOTBEODYzIC8qIEV2ZW50TG9vcElu
cHV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0
MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgKi87IH07CiAJCUM0
Q0Q2MjlBMTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNENENjI5ODE4MzgzNzY2MDA3
RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuY3BwICovOyB9OwogCQlDNENENjI5QjE4MzgzNzY2
MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNu
YXBzaG90dGluZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCUM1MEI1NjE2MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE0MTIxMTlE
MjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLzsgfTsKLQkJQzUwQjU2MTcxMjExOUQy
MzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEI1NjE1MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRp
bmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QzUwRDBFODMwRkY0MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MEQwRTgxMEZGNDI3MjkwMEFD
MjY0NCAvKiBTdG9yYWdlTmFtZXNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzUxMzdDRjIxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3Ry
aW5nTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNTEzN0NGMDExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmNwcCAqLzsgfTsK
IAkJQzUxMzdDRjMxMUE1ODM3ODAwNEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxMzdDRjExMUE1ODM3ODAw
NEFEQjk5IC8qIEpTRE9NU3RyaW5nTGlzdC5oICovOyB9OwpAQCAtMTMwMjIsOCArMTMwMjAsNiBA
QAogCQlDNDAwRDEwODE4RjFDOEY2MDA5MEQ4NjMgLyogRXZlbnRMb29wSW5wdXQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXZlbnRMb29wSW5wdXQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNENENjI5ODE4MzgzNzY2MDA3RUJBRjEgLyogRnJh
bWVTbmFwc2hvdHRpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RnJhbWVTbmFwc2hvdHRpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNENE
NjI5OTE4MzgzNzY2MDA3RUJBRjEgLyogRnJhbWVTbmFwc2hvdHRpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRnJhbWVTbmFwc2hvdHRpbmcuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQzUwQjU2MTQxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3Mu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JvdXBTZXR0aW5ncy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUM1MEI1NjE1MTIxMTlEMjMwMDhCNDZF
MCAvKiBHcm91cFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdy
b3VwU2V0dGluZ3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUwRDBFODEwRkY0
MjcyOTAwQUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3RvcmFnZU5hbWVzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNTEzN0NGMDExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NU3RyaW5nTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTM3Q0YxMTFBNTgzNzgwMDRBREI5OSAvKiBK
U0RPTVN0cmluZ0xpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01T
dHJpbmdMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjY2NSw4ICsxNjY2
MSw2IEBACiAJCQkJNjVBMjE0ODMwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oICovLAog
CQkJCTY1Q0JGRUY3MDk3NEY2MDcwMDFEQUMyNSAvKiBGcmFtZVZpZXcuY3BwICovLAogCQkJCTY1
Q0JGRUY4MDk3NEY2MDcwMDFEQUMyNSAvKiBGcmFtZVZpZXcuaCAqLywKLQkJCQlDNTBCNTYxNDEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgKi8sCi0JCQkJQzUwQjU2MTUxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLywKIAkJCQlCQzk0RDE1MDBDMjc1QzhC
MDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgKi8sCiAJCQkJQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3
IC8qIEhpc3RvcnkuaCAqLywKIAkJCQlCQzk0RDE1MjBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9y
eS5pZGwgKi8sCkBAIC0yNDUwNSw3ICsyNDQ5OSw2IEBACiAJCQkJQTEyNzA1QzMxNjU2QkQ2NTAw
QzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNzQ4M0YxOEZF
QkNFQzAwMDZFQ0MwIC8qIEdyaWRSZXNvbHZlZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMTJBMTA1MDE2NjQ0NEZEMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJQzUwQjU2MTcxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg0ODJCNzQ2MTE5OEMzNTQwMEJGQjAwNSAvKiBIYXNoQ2hhbmdlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4NzQ4QkUwMTJDQkYyREMwMDFGQkE0MSAvKiBIYXNo
VG9vbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREMwMTI1MUYxMkQwMDNFRjI2OSAvKiBI
aWRkZW5JbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjgwMDQsNyArMjc5OTcsNiBAQAog
CQkJCTBGQTI0RDc5MTYyREY5MTkwMEEzRjRDMCAvKiBHcmFwaGljc0xheWVyVXBkYXRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCMkEwMTVBQTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NU
eXBlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREY3NDgzRTE4RkVCQ0VDMDAwNkVDQzAgLyog
R3JpZFJlc29sdmVkUG9zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQzUwQjU2MTYxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1
QjNEQkYxMjUxRjEyRDAwM0VGMjY5IC8qIEhpZGRlbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUE5RDlGMzE5NUI5NTAzMDAxQjJCNUMgLyogSElER2FtZXBhZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTc5Q0UzNjE5NUNBQzdFMDAxOUMxOTggLyogSElER2FtZXBhZFByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiU3R5bGVTaGVldExpc3QuaCIK
ICNpbmNsdWRlICJVc2VyQ29udGVudENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaCIKKyNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclBy
ZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9D
YXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsOCBA
QAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dFRyYWNrTGlzdC5oIgogI2lu
Y2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVzZXJDb250ZW50VHlw
ZXMuaCIKKyNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIlVzZXJTdHlsZVNo
ZWV0VHlwZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05Niw2ICs5Niw3IEBACiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVj
b2Rlci5oIgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVz
ZXJDb250ZW50VVJMUGF0dGVybi5oIgorI2luY2x1ZGUgIlVzZXJTY3JpcHQuaCIKICNpbmNsdWRl
ICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5o
IgogI2luY2x1ZGUgIldlYktpdEZvbnRGYW1pbHlOYW1lcy5oIgpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9Hcm91cFNldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0dyb3VwU2V0dGluZ3MuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUzICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdyb3VwU2V0dGluZ3M6Okdyb3VwU2V0dGluZ3MoKQot
ICAgIDogbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKDUgKiAxMDI0ICogMTAyNCkgLy8gU3VnZ2Vz
dGVkIGJ5IHRoZSBIVE1MNSBzcGVjLgotICAgICwgbV9pbmRleGVkREJRdW90YUJ5dGVzKDUgKiAx
MDI0ICogMTAyNCkKLXsKLX0KLQotdm9pZCBHcm91cFNldHRpbmdzOjpzZXRMb2NhbFN0b3JhZ2VR
dW90YUJ5dGVzKHVuc2lnbmVkIHF1b3RhKQotewotICAgIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRl
cyA9IHF1b3RhOwotfQotCi12b2lkIEdyb3VwU2V0dGluZ3M6OnNldEluZGV4ZWREQkRhdGFiYXNl
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAgbV9pbmRleGVkREJEYXRhYmFzZVBhdGgg
PSBwYXRoOwotfQotCi12b2lkIEdyb3VwU2V0dGluZ3M6OnNldEluZGV4ZWREQlF1b3RhQnl0ZXMo
aW50NjRfdCBxdW90YSkKLXsKLSAgICBtX2luZGV4ZWREQlF1b3RhQnl0ZXMgPSBxdW90YTsKLX0K
LQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0dy
b3VwU2V0dGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0dyb3VwU2V0
dGluZ3MuaAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Hcm91cFNl
dHRpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0gCi0jaWZuZGVm
IEdyb3VwU2V0dGluZ3NfaAotI2RlZmluZSBHcm91cFNldHRpbmdzX2gKLQotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFBhZ2VH
cm91cDsKLQotY2xhc3MgR3JvdXBTZXR0aW5ncyB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
R3JvdXBTZXR0aW5ncyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotcHVibGljOgotICAgIEdy
b3VwU2V0dGluZ3MoKTsKLQotICAgIHZvaWQgc2V0TG9jYWxTdG9yYWdlUXVvdGFCeXRlcyh1bnNp
Z25lZCk7Ci0gICAgdW5zaWduZWQgbG9jYWxTdG9yYWdlUXVvdGFCeXRlcygpIGNvbnN0IHsgcmV0
dXJuIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsgfQotCi0gICAgdm9pZCBzZXRJbmRleGVkREJR
dW90YUJ5dGVzKGludDY0X3QpOwotICAgIGludDY0X3QgaW5kZXhlZERCUXVvdGFCeXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1faW5kZXhlZERCUXVvdGFCeXRlczsgfQotCi0gICAgdm9pZCBzZXRJbmRl
eGVkREJEYXRhYmFzZVBhdGgoY29uc3QgU3RyaW5nJik7Ci0gICAgY29uc3QgU3RyaW5nJiBpbmRl
eGVkREJEYXRhYmFzZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlUGF0
aDsgfQotCi1wcml2YXRlOgotICAgIHVuc2lnbmVkIG1fbG9jYWxTdG9yYWdlUXVvdGFCeXRlczsK
LSAgICBTdHJpbmcgbV9pbmRleGVkREJEYXRhYmFzZVBhdGg7Ci0gICAgaW50NjRfdCBtX2luZGV4
ZWREQlF1b3RhQnl0ZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBHcm91cFNldHRpbmdzX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAJKHJldmlz
aW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkRPTVdyYXBwZXJXb3JsZC5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVj
dGlvbi5oIgotI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3MuaCIKICNpbmNsdWRlICJNYWluRnJhbWUu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCkBAIC02MSwxMyAr
NjAsMTEgQEAgc3RhdGljIHVuc2lnbmVkIGdldFVuaXF1ZUlkZW50aWZpZXIoKQogUGFnZUdyb3Vw
OjpQYWdlR3JvdXAoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIDogbV9uYW1lKG5hbWUpCiAgICAg
LCBtX2lkZW50aWZpZXIoZ2V0VW5pcXVlSWRlbnRpZmllcigpKQotICAgICwgbV9ncm91cFNldHRp
bmdzKHN0ZDo6bWFrZV91bmlxdWU8R3JvdXBTZXR0aW5ncz4oKSkKIHsKIH0KIAogUGFnZUdyb3Vw
OjpQYWdlR3JvdXAoUGFnZSYgcGFnZSkKICAgICA6IG1faWRlbnRpZmllcihnZXRVbmlxdWVJZGVu
dGlmaWVyKCkpCi0gICAgLCBtX2dyb3VwU2V0dGluZ3Moc3RkOjptYWtlX3VuaXF1ZTxHcm91cFNl
dHRpbmdzPigpKQogewogICAgIGFkZFBhZ2UocGFnZSk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VHcm91cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZUdyb3VwLmgJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdy
b3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDIyICsyNywxNCBAQAogI2RlZmluZSBQYWdlR3Jv
dXBfaAogCiAjaW5jbHVkZSAiU3VwcGxlbWVudGFibGUuaCIKLSNpbmNsdWRlICJVc2VyU2NyaXB0
LmgiCi0jaW5jbHVkZSAiVXNlclN0eWxlU2hlZXQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBVUkw7Ci0gICAgY2xh
c3MgR3JvdXBTZXR0aW5nczsKLSAgICBjbGFzcyBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTsK
ICAgICBjbGFzcyBQYWdlOwotICAgIGNsYXNzIFNlY3VyaXR5T3JpZ2luOwotICAgIGNsYXNzIFN0
b3JhZ2VOYW1lc3BhY2U7Ci0KICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgY2xhc3MgQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyOwogICAgIGNsYXNzIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXM7CiAjZW5kaWYKIApAQCAtNjMsOCArNTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIHsgcmV0dXJuIG1fbmFtZTsgfQogICAgICAg
ICB1bnNpZ25lZCBpZGVudGlmaWVyKCkgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAKLSAgICAg
ICAgR3JvdXBTZXR0aW5ncyYgZ3JvdXBTZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuICptX2dyb3Vw
U2V0dGluZ3M7IH0KLQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiAgICAgICAgIFdFQkNPUkVf
RVhQT1JUIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIGNhcHRpb25QcmVmZXJlbmNlcygpOwpAQCAt
NzYsOCArNjYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdW5zaWduZWQgbV9p
ZGVudGlmaWVyOwogCi0gICAgICAgIGNvbnN0IHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdz
PiBtX2dyb3VwU2V0dGluZ3M7Ci0KICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgICAgIHN0
ZDo6dW5pcXVlX3B0cjxDYXB0aW9uVXNlclByZWZlcmVuY2VzPiBtX2NhcHRpb25QcmVmZXJlbmNl
czsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVn
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YWJhc2VTdHJh
dGVneS5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rh
dGFiYXNlU3RyYXRlZ3kuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxMCArMzksOSBAQCBBYnN0
cmFjdERhdGFiYXNlU2VydmVyKiBEYXRhYmFzZVN0cmF0ZWd5CiAjZW5kaWYgLy8gRU5BQkxFKFNR
TF9EQVRBQkFTRSkKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotUGFzc1JlZlB0cjxJ
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gRGF0YWJhc2VTdHJhdGVneTo6Y3JlYXRlSURCRmFj
dG9yeUJhY2tlbmQoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpCitQ
YXNzUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBEYXRhYmFzZVN0cmF0ZWd5Ojpj
cmVhdGVJREJGYWN0b3J5QmFja2VuZCgpCiB7CiAgICAgLy8gRklYTUU6IE5lZWQgYSBiZXR0ZXIg
cGxhdGZvcm0gYWJzdHJhY3Rpb24gaGVyZSwgYnV0IHRoaXMgc3RvcCBnYXAgd2lsbCB3b3JrIGZv
ciBub3cuCi0gICAgVU5VU0VEX1BBUkFNKGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcik7CiAg
ICAgcmV0dXJuIDA7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhYmFzZVN0cmF0ZWd5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVneS5oCShyZXZpc2lvbiAx
Nzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhYmFzZVN0cmF0ZWd5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIFBhc3NSZWZQ
dHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIFBhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0
ZUlEQkZhY3RvcnlCYWNrZW5kKCk7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpJbmRleDogU291cmNl
L1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5j
cHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNSArMzksMTUgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+
IERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGlu
Z3MsIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikK
K1JlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGlj
YXRlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKIHsKLSAgICBS
ZWY8RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGlu
Z3MpLCB0aHJlYWQsIHRvcE9yaWdpbikpOworICAgIFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUo
dXJsLCB1c2VyQWdlbnQsIHRocmVhZCwgdG9wT3JpZ2luKSk7CiAgICAgY29udGV4dC0+YXBwbHlD
b250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKLURlZGlj
YXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNl
dHRpbmdzPiBzZXR0aW5ncywgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKLSAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVy
bCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIHRvcE9yaWdpbikKK0Rl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVh
ZCYgdGhyZWFkLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCisgICAgOiBX
b3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCB0b3BPcmlnaW4pCiB7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
ckdsb2JhbFNjb3BlLmgJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRGVkaWNhdGVkV29ya2VyR2xv
YmFsU2NvcGUgOiBwdWJsaWMgV29ya2VyR2xvYmFsU2NvcGUgewogICAgIHB1YmxpYzoKICAgICAg
ICAgdHlwZWRlZiBXb3JrZXJHbG9iYWxTY29wZSBCYXNlOwotICAgICAgICBzdGF0aWMgUmVmPERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgRGVkaWNhdGVkV29y
a2VyVGhyZWFkJiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOworICAgICAgICBzdGF0aWMgUmVmPERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KTsKICAgICAgICAgdmlydHVhbCB+RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoKTsKIAogICAg
ICAgICB2aXJ0dWFsIGJvb2wgaXNEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTYyLDcgKzYyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCgpOwogCiAgICAgcHJp
dmF0ZToKLSAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgRGVk
aWNhdGVkV29ya2VyVGhyZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KTsKKyAgICAgICAgRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIERlZGljYXRlZFdvcmtlclRocmVhZCYsIFBhc3NSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJUaHJlYWQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhy
ZWFkLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMyArMzgsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29y
a2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUg
c3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCitSZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0
UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0
VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwg
d29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNv
ZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbikp
OwogfQogCi1EZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZChjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3Mq
IHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3
b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5LCBX
b3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1
cml0eVBvbGljeVR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCi0gICAgOiBX
b3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJM
b2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pCitEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBVUkwmIHVybCwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0
UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikK
KyAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9h
ZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2luKQogICAgICwgbV93b3Jr
ZXJPYmplY3RQcm94eSh3b3JrZXJPYmplY3RQcm94eSkKIHsKIH0KQEAgLTUzLDkgKzUzLDkgQEAg
RGVkaWNhdGVkV29ya2VyVGhyZWFkOjp+RGVkaWNhdGVkV29ya2VyVAogewogfQogCi1SZWY8V29y
a2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2VyR2xvYmFs
U2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1
ZV9wdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3Vy
aXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckds
b2JhbFNjb3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVh
ZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiB0b3BPcmlnaW4pCiB7Ci0gICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
OjpjcmVhdGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksICp0aGlzLCBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbik7
CisgICAgcmV0dXJuIERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUodXJsLCB1c2Vy
QWdlbnQsICp0aGlzLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGlj
eVR5cGUsIHRvcE9yaWdpbik7CiB9CiAKIHZvaWQgRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpydW5F
dmVudExvb3AoKQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdv
cmtlclRocmVhZC5oCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlclRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNiArMzksMTYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgRGVkaWNhdGVkV29ya2VyVGhyZWFk
IDogcHVibGljIFdvcmtlclRocmVhZCB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVm
PERlZGljYXRlZFdvcmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYg
c291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdvcmtl
clRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENv
bnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRv
cE9yaWdpbik7CisgICAgICAgIHN0YXRpYyBSZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVh
dGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkm
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9s
aWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luKiB0b3BPcmlnaW4pOwogICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0
UHJveHkoKSBjb25zdCB7IHJldHVybiBtX3dvcmtlck9iamVjdFByb3h5OyB9CiAgICAgICAgIHZp
cnR1YWwgfkRlZGljYXRlZFdvcmtlclRocmVhZCgpOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAg
ICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUo
Y29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91
cFNldHRpbmdzPiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9w
T3JpZ2luKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4p
IG92ZXJyaWRlOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCkgb3ZlcnJpZGU7
CiAKICAgICBwcml2YXRlOgotICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyT2JqZWN0UHJveHkm
LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9s
aWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luKiB0b3BPcmlnaW4pOworICAgICAgICBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQoY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29y
a2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CiAKICAg
ICAgICAgV29ya2VyT2JqZWN0UHJveHkmIG1fd29ya2VyT2JqZWN0UHJveHk7CiAgICAgfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODgsOCArODgsNiBAQCBwdWJsaWM6CiAgICAgLy8gUmVtb3ZlcyBhIGRldGFjaGVkIGRvY3Vt
ZW50IGZyb20gdGhlIGxpc3Qgb2Ygd29ya2VyJ3MgZG9jdW1lbnRzLiBNYXkgc2V0IHRoZSBjbG9z
aW5nIGZsYWcgaWYgdGhpcyBpcyB0aGUgbGFzdCBkb2N1bWVudCBpbiB0aGUgbGlzdC4KICAgICB2
b2lkIGRvY3VtZW50RGV0YWNoZWQoRG9jdW1lbnQqKTsKIAotICAgIEdyb3VwU2V0dGluZ3MqIGdy
b3VwU2V0dGluZ3MoKSBjb25zdDsgLy8gUGFnZSBHcm91cFNldHRpbmdzIHVzZWQgYnkgd29ya2Vy
IHRocmVhZC4KLQogcHJpdmF0ZToKICAgICBTaGFyZWRXb3JrZXJQcm94eShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFVSTCYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KTsKICAgICB2b2lk
IGNsb3NlKCk7CkBAIC0xNTMsMTkgKzE1MSw2IEBAIGJvb2wgU2hhcmVkV29ya2VyUHJveHk6OnBv
c3RUYXNrRm9yTW9kZVQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotR3JvdXBTZXR0aW5ncyogU2hh
cmVkV29ya2VyUHJveHk6Omdyb3VwU2V0dGluZ3MoKSBjb25zdAotewotICAgIGlmIChpc0Nsb3Np
bmcoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgQVNTRVJUKG1fd29ya2VyRG9jdW1lbnRzLnNp
emUoKSk7Ci0gICAgLy8gSnVzdCBwaWNrIHRoZSBmaXJzdCBhY3RpdmUgZG9jdW1lbnQsIGFuZCB1
c2UgdGhlIGdyb3Vwc2V0dGluZ3Mgb2YgdGhhdCBwYWdlLgotICAgIERvY3VtZW50KiBkb2N1bWVu
dCA9ICoobV93b3JrZXJEb2N1bWVudHMuYmVnaW4oKSk7Ci0gICAgaWYgKGRvY3VtZW50LT5wYWdl
KCkpCi0gICAgICAgIHJldHVybiAmZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRp
bmdzKCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQogdm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6cG9z
dEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQg
bGluZU51bWJlciwgaW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCiB7
CiAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3dvcmtlckRvY3VtZW50c0xvY2spOwpAQCAtMzM3LDcg
KzMyMiw3IEBAIHZvaWQgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OndvcmsKIAogICAg
IC8vIEFub3RoZXIgbG9hZGVyIG1heSBoYXZlIGFscmVhZHkgc3RhcnRlZCB1cCBhIHRocmVhZCBm
b3IgdGhpcyBwcm94eSAtIGlmIHNvLCBqdXN0IHNlbmQgYSBjb25uZWN0IHRvIHRoZSBwcmUtZXhp
c3RpbmcgdGhyZWFkLgogICAgIGlmICghcHJveHkudGhyZWFkKCkpIHsKLSAgICAgICAgUmVmUHRy
PFNoYXJlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUo
cHJveHkubmFtZSgpLCBwcm94eS51cmwoKSwgdXNlckFnZW50LCBwcm94eS5ncm91cFNldHRpbmdz
KCksIHdvcmtlclNjcmlwdCwgcHJveHksIHByb3h5LCBEb250UGF1c2VXb3JrZXJHbG9iYWxTY29w
ZU9uU3RhcnQsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlw
ZSk7CisgICAgICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IFNoYXJlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKHByb3h5Lm5hbWUoKSwgcHJveHkudXJsKCksIHVzZXJBZ2VudCwg
d29ya2VyU2NyaXB0LCBwcm94eSwgcHJveHksIERvbnRQYXVzZVdvcmtlckdsb2JhbFNjb3BlT25T
dGFydCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsK
ICAgICAgICAgcHJveHkuc2V0VGhyZWFkKHRocmVhZCk7CiAgICAgICAgIHRocmVhZC0+c3RhcnQo
KTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDE1ICs1MiwxNSBAQCBQYXNzUmVmUHRyPE1lc3NhZ2VFdmVudD4gY3JlYXRlQ29ubmVjdEV2CiB9
CiAKIC8vIHN0YXRpYwotUmVmPFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPiBTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4gc2V0
dGluZ3MsIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRT
ZWN1cml0eVBvbGljeVR5cGUpCitSZWY8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IFNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5
OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiB7Ci0gICAgUmVmPFNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBTaGFyZWRXb3JrZXJH
bG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgdGhy
ZWFkKSk7CisgICAgUmVmPFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlPiBjb250ZXh0ID0gYWRvcHRS
ZWYoKm5ldyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShuYW1lLCB1cmwsIHVzZXJBZ2VudCwgdGhy
ZWFkKSk7CiAgICAgY29udGV4dC0+YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5n
KGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CiAgICAg
cmV0dXJuIGNvbnRleHQ7CiB9CiAKLVNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IHNldHRpbmdz
LCBTaGFyZWRXb3JrZXJUaHJlYWQmIHRocmVhZCkKLSAgICA6IFdvcmtlckdsb2JhbFNjb3BlKHVy
bCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0aHJlYWQsIDApCitTaGFyZWRXb3Jr
ZXJHbG9iYWxTY29wZTo6U2hhcmVkV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdvcmtlclRo
cmVhZCYgdGhyZWFkKQorICAgIDogV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIHRo
cmVhZCwgMCkKICAgICAsIG1fbmFtZShuYW1lKQogewogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMTc3ODQ3
KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBj
bGFzcyBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7
CiAgICAgcHVibGljOgogICAgICAgICB0eXBlZGVmIFdvcmtlckdsb2JhbFNjb3BlIEJhc2U7Ci0g
ICAgICAgIHN0YXRpYyBSZWY8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVu
aXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCYsIGNvbnN0IFN0cmlu
ZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5
cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CisgICAgICAgIHN0YXRpYyBSZWY8U2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBTaGFyZWRXb3JrZXJUaHJlYWQmLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJU
eXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpOwogICAgICAgICB2aXJ0dWFsIH5TaGFyZWRX
b3JrZXJHbG9iYWxTY29wZSgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1NoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNTksNyAr
NTksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZCYg
dGhyZWFkKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBTaGFyZWRXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIFNoYXJlZFdvcmtlclRocmVhZCYpOwor
ICAgICAgICBTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBTaGFyZWRXb3JrZXJUaHJlYWQmKTsKICAg
ICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBpbnQg
Y29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPikgb3Zl
cnJpZGU7CiAKICAgICAgICAgU3RyaW5nIG1fbmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFNoYXJl
ZFdvcmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdv
cmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpI
ZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCitSZWY8U2hhcmVkV29ya2VyVGhy
ZWFkPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBz
b3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJl
cG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZFdvcmtlclRocmVhZChuYW1lLCBzY3JpcHRV
UkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3
b3JrZXJSZXBvcnRpbmdQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVR5cGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFy
ZWRXb3JrZXJUaHJlYWQobmFtZSwgc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdv
cmtlckxvYWRlclByb3h5LCB3b3JrZXJSZXBvcnRpbmdQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50
U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpKTsKIH0KIAotU2hhcmVk
V29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3Mq
IHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3
b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1By
b3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRl
bnRTZWN1cml0eVBvbGljeVR5cGUpCi0gICAgOiBXb3JrZXJUaHJlYWQodXJsLCB1c2VyQWdlbnQs
IHNldHRpbmdzLCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5n
UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQ
b2xpY3lUeXBlLCAwKQorU2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRl
clByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtl
clRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5
UG9saWN5VHlwZSkKKyAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29k
ZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBzdGFydE1vZGUsIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgMCkKICAgICAs
IG1fbmFtZShuYW1lLmlzb2xhdGVkQ29weSgpKQogewogfQpAQCAtNTMsOSArNTMsOSBAQCBTaGFy
ZWRXb3JrZXJUaHJlYWQ6On5TaGFyZWRXb3JrZXJUaHJlYWQoCiB7CiB9CiAKLVJlZjxXb3JrZXJH
bG9iYWxTY29wZT4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxH
cm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xp
Y3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPikKK1JlZjxXb3JrZXJHbG9iYWxTY29w
ZT4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwm
IHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3Vy
aXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pCiB7Ci0gICAgcmV0dXJu
IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpjcmVhdGUobV9uYW1lLCB1cmwsIHVzZXJBZ2VudCwg
V1RGOjptb3ZlKHNldHRpbmdzKSwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSk7CisgICAgcmV0dXJuIFNoYXJlZFdvcmtlckdsb2JhbFNjb3Bl
OjpjcmVhdGUobV9uYW1lLCB1cmwsIHVzZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQu
aAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3Jr
ZXJUaHJlYWQuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTQgKzM5LDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIGNsYXNzIFNoYXJlZFdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJU
aHJlYWQgewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRXb3JrZXJUaHJl
YWQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYg
dXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2Rl
LCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRXb3Jr
ZXJUaHJlYWQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclBy
b3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0
IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6Okhl
YWRlclR5cGUpOwogICAgICAgICB2aXJ0dWFsIH5TaGFyZWRXb3JrZXJUaHJlYWQoKTsKIAogICAg
IHByb3RlY3RlZDoKLSAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0
ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBz
dGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3Vy
aXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgUmVm
PFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xp
Y3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNo
YXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2Vy
VGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsKKyAgICAgICAgU2hhcmVkV29ya2VyVGhy
ZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJS
ZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CiAK
ICAgICAgICAgU3RyaW5nIG1fbmFtZTsKICAgICB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
d29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02NCwxMCArNjQsOSBAQCB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLVdvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29wZShjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNl
dHRpbmdzPiBzZXR0aW5ncywgV29ya2VyVGhyZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHRvcE9yaWdpbikKK1dvcmtlckdsb2JhbFNjb3BlOjpXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZCYg
dGhyZWFkLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCiAgICAgOiBtX3Vy
bCh1cmwpCiAgICAgLCBtX3VzZXJBZ2VudCh1c2VyQWdlbnQpCi0gICAgLCBtX2dyb3VwU2V0dGlu
Z3MoV1RGOjptb3ZlKHNldHRpbmdzKSkKICAgICAsIG1fc2NyaXB0KHN0ZDo6bWFrZV91bmlxdWU8
V29ya2VyU2NyaXB0Q29udHJvbGxlcj4odGhpcykpCiAgICAgLCBtX3RocmVhZCh0aHJlYWQpCiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
R2xvYmFsU2NvcGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckdsb2JhbFNjb3BlLmgJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyR2xvYmFsU2NvcGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAog
I2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgotI2luY2x1ZGUgIkdyb3VwU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2Vy
RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIldvcmtlclNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTY2
LDcgKzY1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIGNvbnN0IFVS
TCYgdXJsKCkgY29uc3Qgb3ZlcnJpZGUgZmluYWwgeyByZXR1cm4gbV91cmw7IH0KICAgICAgICAg
dmlydHVhbCBVUkwgY29tcGxldGVVUkwoY29uc3QgU3RyaW5nJikgY29uc3Qgb3ZlcnJpZGUgZmlu
YWw7CiAKLSAgICAgICAgY29uc3QgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncygpIHsgcmV0
dXJuIG1fZ3JvdXBTZXR0aW5ncy5nZXQoKTsgfQogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2Vy
QWdlbnQoY29uc3QgVVJMJikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBvdmVycmlkZTsKQEAgLTE0
MSw3ICsxMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKIAogICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgV29ya2VyVGhyZWFkJiwg
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKKyAgICAgICAgV29ya2VyR2xv
YmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVh
ZCYsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CiAgICAgICAgIHZvaWQg
YXBwbHlDb250ZW50U2VjdXJpdHlQb2xpY3lGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOwogCiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBsb2dFeGNlcHRpb25Ub0NvbnNvbGUoY29uc3QgU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBpbnQgbGluZU51bWJlciwgaW50
IGNvbHVtbk51bWJlciwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pIG92
ZXJyaWRlOwpAQCAtMTYyLDcgKzE2MCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBVUkwgbV91cmw7CiAgICAgICAgIFN0cmluZyBtX3VzZXJBZ2VudDsKLSAgICAgICAgc3RkOjp1
bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IG1fZ3JvdXBTZXR0aW5nczsKIAogICAgICAgICBtdXRh
YmxlIFJlZlB0cjxXb3JrZXJMb2NhdGlvbj4gbV9sb2NhdGlvbjsKICAgICAgICAgbXV0YWJsZSBS
ZWZQdHI8V29ya2VyTmF2aWdhdG9yPiBtX25hdmlnYXRvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCShyZXZpc2lvbiAxNzc4NDcp
CisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODQsMTAgKzg0LDcgQEAgdm9pZCBXb3JrZXJNZXNzYWdpbmdQcm94eTo6
c3RhcnRXb3JrZXJHbAogICAgIC8vIEZJWE1FOiBUaGlzIG5lZWQgdG8gYmUgcmV2aXNpdGVkIHdo
ZW4gd2Ugc3VwcG9ydCBuZXN0ZWQgd29ya2VyIG9uZSBkYXkKICAgICBBU1NFUlQobV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0KTsKICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1
bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0gICAgR3JvdXBTZXR0aW5ncyogc2V0
dGluZ3MgPSBudWxscHRyOwotICAgIGlmIChkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgIHNldHRp
bmdzID0gJmRvY3VtZW50LnBhZ2UoKS0+Z3JvdXAoKS5ncm91cFNldHRpbmdzKCk7Ci0gICAgUmVm
UHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gRGVkaWNhdGVkV29ya2VyVGhyZWFk
OjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNldHRpbmdzLCBzb3VyY2VDb2RlLCAqdGhp
cywgKnRoaXMsIHN0YXJ0TW9kZSwgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRl
cHJlY2F0ZWRIZWFkZXIoKSwgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJl
Y2F0ZWRIZWFkZXJUeXBlKCksIGRvY3VtZW50LnRvcE9yaWdpbigpKTsKKyAgICBSZWZQdHI8RGVk
aWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgKnRoaXMsICp0aGlzLCBzdGFydE1v
ZGUsIGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyKCks
IGRvY3VtZW50LmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5kZXByZWNhdGVkSGVhZGVyVHlwZSgp
LCBkb2N1bWVudC50b3BPcmlnaW4oKSk7CiAgICAgd29ya2VyVGhyZWFkQ3JlYXRlZCh0aHJlYWQp
OwogICAgIHRocmVhZC0+c3RhcnQoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFN0YXJ0V29ya2VyR2xvYmFsU2NvcGUobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0LmdldCgpLCB0
aGlzLCBzY3JpcHRVUkwpOwpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFk
LmNwcAkocmV2aXNpb24gMTc3ODQ4KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJU
aHJlYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MCwxMSArODAsMTAgQEAgdW5zaWduZWQgV29y
a2VyVGhyZWFkOjp3b3JrZXJUaHJlYWRDb3VudAogc3RydWN0IFdvcmtlclRocmVhZFN0YXJ0dXBE
YXRhIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXb3JrZXJUaHJlYWRTdGFydHVwRGF0YSk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdvcmtlclRocmVhZFN0YXJ0
dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFk
U3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOworICAgIFdvcmtlclRocmVhZFN0YXJ0dXBEYXRh
KGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7
CiAKICAgICBVUkwgbV9zY3JpcHRVUkw7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwotICAgIHN0
ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBtX2dyb3VwU2V0dGluZ3M7CiAgICAgU3RyaW5n
IG1fc291cmNlQ29kZTsKICAgICBXb3JrZXJUaHJlYWRTdGFydE1vZGUgbV9zdGFydE1vZGU7CiAg
ICAgU3RyaW5nIG1fY29udGVudFNlY3VyaXR5UG9saWN5OwpAQCAtOTIsNyArOTEsNyBAQCBwdWJs
aWM6CiAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3RvcE9yaWdpbjsKIH07CiAKLVdvcmtl
clRocmVhZFN0YXJ0dXBEYXRhOjpXb3JrZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNj
cmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNl
dHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBz
dGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKK1dvcmtlclRocmVhZFN0YXJ0dXBEYXRhOjpXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1
c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25z
dCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQogICAgIDogbV9zY3JpcHRVUkwoc2NyaXB0VVJM
LmNvcHkoKSkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudC5pc29sYXRlZENvcHkoKSkKICAg
ICAsIG1fc291cmNlQ29kZShzb3VyY2VDb2RlLmlzb2xhdGVkQ29weSgpKQpAQCAtMTAxLDIwICsx
MDAsMTMgQEAgV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YQogICAgICwg
bV9jb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiAg
ICAgLCBtX3RvcE9yaWdpbih0b3BPcmlnaW4gPyAmdG9wT3JpZ2luLT5pc29sYXRlZENvcHkoKS5n
ZXQoKSA6IG51bGxwdHIpCiB7Ci0gICAgaWYgKCFzZXR0aW5ncykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbV9ncm91cFNldHRpbmdzID0gc3RkOjptYWtlX3VuaXF1ZTxHcm91cFNldHRpbmdzPigp
OwotICAgIG1fZ3JvdXBTZXR0aW5ncy0+c2V0TG9jYWxTdG9yYWdlUXVvdGFCeXRlcyhzZXR0aW5n
cy0+bG9jYWxTdG9yYWdlUXVvdGFCeXRlcygpKTsKLSAgICBtX2dyb3VwU2V0dGluZ3MtPnNldElu
ZGV4ZWREQlF1b3RhQnl0ZXMoc2V0dGluZ3MtPmluZGV4ZWREQlF1b3RhQnl0ZXMoKSk7Ci0gICAg
bV9ncm91cFNldHRpbmdzLT5zZXRJbmRleGVkREJEYXRhYmFzZVBhdGgoc2V0dGluZ3MtPmluZGV4
ZWREQkRhdGFiYXNlUGF0aCgpLmlzb2xhdGVkQ29weSgpKTsKIH0KIAotV29ya2VyVGhyZWFkOjpX
b3JrZXJUaHJlYWQoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBHcm91cFNldHRpbmdzKiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2Rl
LCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1By
b3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9k
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25zdCBTZWN1cml0
eU9yaWdpbiogdG9wT3JpZ2luKQorV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQoY29uc3QgVVJM
JiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0
aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3Rh
cnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3Vy
aXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiAgICAgOiBtX3RocmVhZElEKDApCiAgICAgLCBtX3dv
cmtlckxvYWRlclByb3h5KHdvcmtlckxvYWRlclByb3h5KQogICAgICwgbV93b3JrZXJSZXBvcnRp
bmdQcm94eSh3b3JrZXJSZXBvcnRpbmdQcm94eSkKLSAgICAsIG1fc3RhcnR1cERhdGEoc3RkOjpt
YWtlX3VuaXF1ZTxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4oc2NyaXB0VVJMLCB1c2VyQWdlbnQs
IHNldHRpbmdzLCBzb3VyY2VDb2RlLCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Y29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2luKSkKKyAgICAsIG1fc3RhcnR1cERh
dGEoc3RkOjptYWtlX3VuaXF1ZTxXb3JrZXJUaHJlYWRTdGFydHVwRGF0YT4oc2NyaXB0VVJMLCB1
c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5LCBj
b250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pKQogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCiAgICAgLCBtX25vdGlmaWNh
dGlvbkNsaWVudCgwKQogI2VuZGlmCkBAIC0xNTksNyArMTUxLDcgQEAgdm9pZCBXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZCgpCiAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2sobV90
aHJlYWRDcmVhdGlvbk11dGV4KTsKLSAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0
ZVdvcmtlckdsb2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBE
YXRhLT5tX3VzZXJBZ2VudCwgV1RGOjptb3ZlKG1fc3RhcnR1cERhdGEtPm1fZ3JvdXBTZXR0aW5n
cyksIG1fc3RhcnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX3N0YXJ0dXBEYXRh
LT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIG1fc3RhcnR1cERhdGEtPm1fdG9wT3JpZ2lu
LnJlbGVhc2UoKSk7CisgICAgICAgIG1fd29ya2VyR2xvYmFsU2NvcGUgPSBjcmVhdGVXb3JrZXJH
bG9iYWxTY29wZShtX3N0YXJ0dXBEYXRhLT5tX3NjcmlwdFVSTCwgbV9zdGFydHVwRGF0YS0+bV91
c2VyQWdlbnQsIG1fc3RhcnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5LCBtX3N0YXJ0
dXBEYXRhLT5tX2NvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIG1fc3RhcnR1cERhdGEtPm1fdG9w
T3JpZ2luLnJlbGVhc2UoKSk7CiAKICAgICAgICAgaWYgKG1fcnVuTG9vcC50ZXJtaW5hdGVkKCkp
IHsKICAgICAgICAgICAgIC8vIFRoZSB3b3JrZXIgd2FzIHRlcm1pbmF0ZWQgYmVmb3JlIHRoZSB0
aHJlYWQgaGFkIGEgY2hhbmNlIHRvIHJ1bi4gU2luY2UgdGhlIGNvbnRleHQgZGlkbid0IGV4aXN0
IHlldCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAkocmV2aXNpb24g
MTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogI2RlZmluZSBXb3JrZXJUaHJlYWRfaAogCiAjaW5j
bHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5o
IgogI2luY2x1ZGUgIldvcmtlclJ1bkxvb3AuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTY5LDEwICs2OCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAjZW5kaWYKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IFVS
TCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQ
cm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJp
dHlPcmlnaW4qIHRvcE9yaWdpbik7CisgICAgICAgIFdvcmtlclRocmVhZChjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJM
b2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKIAogICAg
ICAgICAvLyBGYWN0b3J5IG1ldGhvZCBmb3IgY3JlYXRpbmcgYSBuZXcgd29ya2VyIGNvbnRleHQg
Zm9yIHRoZSB0aHJlYWQuCi0gICAgICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBj
cmVhdGVXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pID0gMDsKKyAgICAgICAgdmlydHVhbCBSZWY8
V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGlj
eSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiB0b3BPcmlnaW4pID0gMDsKIAogICAgICAgICAvLyBFeGVjdXRlcyB0aGUgZXZlbnQg
bG9vcCBmb3IgdGhlIHdvcmtlciB0aHJlYWQuIERlcml2ZWQgY2xhc3NlcyBjYW4gb3ZlcnJpZGUg
dG8gcGVyZm9ybSBhY3Rpb25zIGJlZm9yZS9hZnRlciBlbnRlcmluZyB0aGUgZXZlbnQgbG9vcC4K
ICAgICAgICAgdmlydHVhbCB2b2lkIHJ1bkV2ZW50TG9vcCgpOwpJbmRleDogU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2
aXNpb24gMTc3ODU1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjIgQEAKKzIwMTUtMDEtMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZW1vdmUgR3JvdXBTZXR0aW5ncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQwMDM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBkYXRhYmFzZURpcmVjdG9y
eUlkZW50aWZpZXIgcGFyYW1ldGVycy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YklEQkZhY3RvcnlCYWNrZW5kOjpXZWJJREJGYWN0b3J5QmFja2VuZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkZhY3RvcnlCYWNrZW5kOjpnZXREYXRhYmFzZU5hbWVzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRmFjdG9yeUJhY2tlbmQ6OmRlbGV0ZURhdGFiYXNlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVJREJGYWN0
b3J5QmFja2VuZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxNS0wMS0wMSAgSmVmZiBNaWxsZXIgIDxqZWZmbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgVXBkYXRlIHVzZXItdmlzaWJsZSBjb3B5cmlnaHQgc3RyaW5ncyB0
byBpbmNsdWRlIDIwMTUKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNr
ZW5kLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODAsNyArODAsNyBAQCBzdGF0aWMgU3RyaW5nIGNvbWJpbmVkU2VjdXJpdHlPcmlnaW5J
ZGVuCiAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKIH0KIAotV2ViSURCRmFj
dG9yeUJhY2tlbmQ6OldlYklEQkZhY3RvcnlCYWNrZW5kKGNvbnN0IFN0cmluZyYpCitXZWJJREJG
YWN0b3J5QmFja2VuZDo6V2ViSURCRmFjdG9yeUJhY2tlbmQoKQogewogfQogCkBAIC04OCw3ICs4
OCw3IEBAIFdlYklEQkZhY3RvcnlCYWNrZW5kOjp+V2ViSURCRmFjdG9yeUJhY2sKIHsKIH0KIAot
dm9pZCBXZWJJREJGYWN0b3J5QmFja2VuZDo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdp
biwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJikKK3ZvaWQgV2ViSURCRmFjdG9yeUJhY2tl
bmQ6OmdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywg
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiBtYWluRnJhbWVPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiB7CiAg
ICAgTE9HKElEQiwgIldlYklEQkZhY3RvcnlCYWNrZW5kOjpnZXREYXRhYmFzZU5hbWVzIik7CiAK
QEAgLTE0Niw3ICsxNDYsNyBAQCB2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpvcGVuKGNvbnN0
IFN0CiAgICAgZGF0YWJhc2VCYWNrZW5kLT5vcGVuQ29ubmVjdGlvbihjYWxsYmFja3MsIGRhdGFi
YXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKTsKIH0KIAotdm9pZCBXZWJJREJG
YWN0b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgV2ViSURCRmFjdG9y
eUJhY2tlbmQ6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25z
dCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCopCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAg
ICBMT0coSURCLCAiV2ViSURCRmFjdG9yeUJhY2tlbmQ6OmRlbGV0ZURhdGFiYXNlIik7CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFj
dG9yeUJhY2tlbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuaAkocmV2aXNpb24gMTc3ODQ3
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDE4ICszNSwxOCBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCRmFjdG9yeUJhY2tlbmQgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJ
REJGYWN0b3J5QmFja2VuZChkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpKTsgfQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYklEQkZhY3RvcnlCYWNrZW5kPiBjcmVhdGUoKSB7IHJldHVybiBh
ZG9wdFJlZihuZXcgV2ViSURCRmFjdG9yeUJhY2tlbmQpOyB9CiAKICAgICB2aXJ0dWFsIH5XZWJJ
REJGYWN0b3J5QmFja2VuZCgpOwogCi0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMo
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG1h
aW5GcmFtZU9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0
cmluZyYgZGF0YURpcikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFt
ZXMoUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IG1haW5GcmFtZU9yaWdpbiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgdWludDY0X3Qg
dmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNh
bGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2
b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiBtYWluRnJhbWVPcmlnaW4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCQ2FsbGJhY2tzPiwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJy
aWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBT
dHJpbmcmIHVuaXF1ZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IFdlYklEQkZhY3RvcnlCYWNrZW5kKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlJ
ZGVudGlmaWVyKTsKKyAgICBleHBsaWNpdCBXZWJJREJGYWN0b3J5QmFja2VuZCgpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAJKHJldmlzaW9u
IDE3Nzg0NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFt
ZXNwYWNlSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRl
ICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Hcm91cFNldHRpbmdzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2lu
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDYsMTMgKzIwNiwxMyBAQCBBYnN0cmFjdERhdGFiYXNlU2VydmVyKiBX
ZWJQbGF0Zm9ybVN0cmF0CiAjZW5kaWYgLy8gRU5BQkxFKFNRTF9EQVRBQkFTRSkKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZChjb25z
dCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikKK1Bhc3NSZWZQdHI8SURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2U+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlSURCRmFj
dG9yeUJhY2tlbmQoKQogewogI2lmICFFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKLSAgICByZXR1
cm4gRGF0YWJhc2VTdHJhdGVneTo6Y3JlYXRlSURCRmFjdG9yeUJhY2tlbmQoZGF0YWJhc2VEaXJl
Y3RvcnlJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gRGF0YWJhc2VTdHJhdGVneTo6Y3JlYXRlSURC
RmFjdG9yeUJhY2tlbmQoKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIFdlYklEQkZhY3RvcnlCYWNr
ZW5kOjpjcmVhdGUoZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gV2Vi
SURCRmFjdG9yeUJhY2tlbmQ6OmNyZWF0ZSgpOwogfQogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlz
aW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDcgKzY2LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkFic3RyYWN0RGF0YWJhc2VTZXJ2ZXIqIGdl
dERhdGFiYXNlU2VydmVyKCkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tl
bmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VEaXJlY3RvcnlJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IGNyZWF0ZUlEQkZhY3RvcnlCYWNr
ZW5kKCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAogICAgIC8vIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243881</attachid>
            <date>2015-01-01 19:38:30 -0800</date>
            <delta_ts>2015-01-01 21:26:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140037-20150101193833.patch</filename>
            <type>text/plain</type>
            <size>69951</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3Nzg1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDE1LTAxLTAxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIEdyb3VwU2V0dGluZ3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDAzNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdGhpbmcgc2V0
cyB0aGUgdmFsdWVzIGluIEdyb3VwU2V0dGluZ3MgYW5kIG5vdGhpbmcgdXNlcyB0aGVtLgorICAg
ICAgICAtIFRoZSBpbmRleGVkREJEYXRhYmFzZVBhdGggaXMgYWNjZXNzZWQgYW5kIHNlbnQgdG8g
dGhlIEluZGV4ZWREQiBiYWNrZW5kLAorICAgICAgICAgIGJ1dCB0aGUgYmFja2VuZCB0aGVuIHBy
b2NlZWRzIHRvIG5vdCB1c2UgaXQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCRmFj
dG9yeTo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkZh
Y3RvcnlCYWNrZW5kSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91
cEluZGV4ZWREYXRhYmFzZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6ZnJvbSk6CisgICAgICAgIChXZWJDb3Jl
OjpQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OmZhY3RvcnlCYWNrZW5kKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZTo6V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyR2xv
YmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmZyb20pOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2U6OmluZGV4ZWREQik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvV29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UuaDoKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
ZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwOgorICAgICAgICAqIHBhZ2UvQ2Fw
dGlvblVzZXJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6CisgICAg
ICAgICogcGFnZS9Hcm91cFNldHRpbmdzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL0dy
b3VwU2V0dGluZ3MuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL1BhZ2VHcm91cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlR3JvdXA6OlBhZ2VHcm91cCk6CisgICAgICAgICogcGFnZS9Q
YWdlR3JvdXAuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VHcm91cDo6Z3JvdXBTZXR0aW5ncyk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVneS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5OjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZCk6
CisgICAgICAgICogcGxhdGZvcm0vRGF0YWJhc2VTdHJhdGVneS5oOgorICAgICAgICAqIHdvcmtl
cnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJHbG9iYWxTY29wZTo6RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUpOgorICAg
ICAgICAqIHdvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKiB3
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWRp
Y2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQ6OkRlZGljYXRlZFdvcmtlclRocmVhZCk6CisgICAgICAgIChXZWJDb3JlOjpE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAg
KiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5oOgorICAgICAgICAqIHdvcmtlcnMvRGVm
YXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OndvcmtlclNjcmlwdExvYWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94eTo6Z3JvdXBTZXR0aW5ncyk6IERlbGV0ZWQuCisgICAg
ICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNoYXJlZFdvcmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZSk6CisgICAg
ICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oOgorICAgICAgICAqIHdvcmtl
cnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtl
clRocmVhZDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVhZDo6
U2hhcmVkV29ya2VyVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclRocmVh
ZDo6Y3JlYXRlV29ya2VyR2xvYmFsU2NvcGUpOgorICAgICAgICAqIHdvcmtlcnMvU2hhcmVkV29y
a2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJHbG9iYWxTY29wZTo6V29ya2VyR2xvYmFsU2NvcGUpOgor
ICAgICAgICAqIHdvcmtlcnMvV29ya2VyR2xvYmFsU2NvcGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
Oldvcmtlckdsb2JhbFNjb3BlOjpncm91cFNldHRpbmdzKTogRGVsZXRlZC4KKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
ck1lc3NhZ2luZ1Byb3h5OjpzdGFydFdvcmtlckdsb2JhbFNjb3BlKToKKyAgICAgICAgKiB3b3Jr
ZXJzL1dvcmtlclRocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRTdGFy
dHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhcnR1cERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyVGhyZWFkOjpXb3JrZXJUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFk
Ojp3b3JrZXJUaHJlYWQpOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhyZWFkLmg6CisKIDIw
MTUtMDEtMDEgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBUcmll
ZCB0byBmaXggdGhlIGlPUyBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lv
biAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMTkwNiw3ICsxOTA2LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvRnJh
bWVTbmFwc2hvdHRpbmcuY3BwCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwCiAgICAgcGFnZS9GcmFt
ZVZpZXcuY3BwCi0gICAgcGFnZS9Hcm91cFNldHRpbmdzLmNwcAogICAgIHBhZ2UvSGlzdG9yeS5j
cHAKICAgICBwYWdlL0xvY2F0aW9uLmNwcAogICAgIHBhZ2UvTWFpbkZyYW1lLmNwcApJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC02ODQsNyArNjg0LDcgQEAgX19aTjdXZWJD
b3JlMTZBcHBsaWNhdGlvbkNhY2hlMjBkZWxldGVDYQogX19aTjdXZWJDb3JlMTZDU1NQYXJzZXJD
b250ZXh0QzFFUk5TXzhEb2N1bWVudEVSS05TXzNVUkxFUktOM1dURjZTdHJpbmdFCiBfX1pON1dl
YkNvcmUxNkNhbGN1bGF0aW9uVmFsdWU2Y3JlYXRlRU5TdDNfXzExMHVuaXF1ZV9wdHJJTlNfMThD
YWxjRXhwcmVzc2lvbk5vZGVFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVFRU5TXzMwQ2FsY3Vs
YXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlRQogX19aTjdXZWJDb3JlMTZEYXRhYmFzZVN0cmF0ZWd5
MTdnZXREYXRhYmFzZVNlcnZlckV2Ci1fX1pON1dlYkNvcmUxNkRhdGFiYXNlU3RyYXRlZ3kyM2Ny
ZWF0ZUlEQkZhY3RvcnlCYWNrZW5kRVJLTjNXVEY2U3RyaW5nRQorX19aTjdXZWJDb3JlMTZEYXRh
YmFzZVN0cmF0ZWd5MjNjcmVhdGVJREJGYWN0b3J5QmFja2VuZEV2CiBfX1pON1dlYkNvcmUxNkRl
dmljZU1vdGlvbkRhdGExMkFjY2VsZXJhdGlvbjZjcmVhdGVFYmRiZGJkCiBfX1pON1dlYkNvcmUx
NkRldmljZU1vdGlvbkRhdGExMlJvdGF0aW9uUmF0ZTZjcmVhdGVFYmRiZGJkCiBfX1pON1dlYkNv
cmUxNkRldmljZU1vdGlvbkRhdGE2Y3JlYXRlRU4zV1RGMTBQYXNzUmVmUHRySU5TMF8xMkFjY2Vs
ZXJhdGlvbkVFRVM0X05TMl9JTlMwXzEyUm90YXRpb25SYXRlRUVFYmQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnkuY3BwCShyZXZpc2lvbiAx
Nzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkRvY3VtZW50Lmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVk
ZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIklEQkJpbmRpbmdVdGlsaXRpZXMuaCIKICNp
bmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1w
bC5oIgpAQCAtNjUsNyArNjQsNiBAQCBJREJGYWN0b3J5Ojp+SURCRmFjdG9yeSgpCiB7CiB9CiAK
LW5hbWVzcGFjZSB7CiBzdGF0aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0KQogewogICAgIEFTU0VSVChpczxEb2N1bWVudD4oKmNvbnRleHQpIHx8
IGNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CkBAIC03NiwyMCArNzQsNiBAQCBzdGF0
aWMgYm9vbCBpc0NvbnRleHRWYWxpZChTY3JpcHRFeGVjdXRpCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXN0YXRpYyBTdHJpbmcgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGlzQ29udGV4dFZhbGlkKGNvbnRleHQp
KTsKLSAgICBpZiAoaXM8RG9jdW1lbnQ+KCpjb250ZXh0KSkgewotICAgICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpOwotICAgICAgICByZXR1cm4g
ZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKS5pbmRleGVkREJEYXRhYmFz
ZVBhdGgoKTsKLSAgICB9Ci0gICAgY29uc3QgR3JvdXBTZXR0aW5ncyogZ3JvdXBTZXR0aW5ncyA9
IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPigqY29udGV4dCkuZ3JvdXBTZXR0aW5ncygpOwot
ICAgIGlmIChncm91cFNldHRpbmdzKQotICAgICAgICByZXR1cm4gZ3JvdXBTZXR0aW5ncy0+aW5k
ZXhlZERCRGF0YWJhc2VQYXRoKCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotfQotCiBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhdGFiYXNlTmFtZXMoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgTE9HKFN0
b3JhZ2VBUEksICJJREJGYWN0b3J5OjpnZXREYXRhYmFzZU5hbWVzIik7CkBAIC0xMDEsNyArODUs
NyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkZhY3Rvcnk6OmdldERhCiAgICAgfQogCiAg
ICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4
dCwgSURCQW55OjpjcmVhdGUodGhpcyksIDApOwotICAgIG1fYmFja2VuZC0+Z2V0RGF0YWJhc2VO
YW1lcyhyZXF1ZXN0LCAqKGNvbnRleHQtPnNlY3VyaXR5T3JpZ2luKCkpLCAqKGNvbnRleHQtPnRv
cE9yaWdpbigpKSwgY29udGV4dCwgZ2V0SW5kZXhlZERCRGF0YWJhc2VQYXRoKGNvbnRleHQpKTsK
KyAgICBtX2JhY2tlbmQtPmdldERhdGFiYXNlTmFtZXMocmVxdWVzdCwgKihjb250ZXh0LT5zZWN1
cml0eU9yaWdpbigpKSwgKihjb250ZXh0LT50b3BPcmlnaW4oKSksIGNvbnRleHQpOwogICAgIHJl
dHVybiByZXF1ZXN0OwogfQogCkBAIC0xNTcsNyArMTQxLDcgQEAgUGFzc1JlZlB0cjxJREJPcGVu
REJSZXF1ZXN0PiBJREJGYWN0b3J5OgogICAgIH0KIAogICAgIFJlZlB0cjxJREJPcGVuREJSZXF1
ZXN0PiByZXF1ZXN0ID0gSURCT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIDAsIDAsIDAs
IEluZGV4ZWREQjo6VmVyc2lvbk51bGxuZXNzOjpOdWxsKTsKLSAgICBtX2JhY2tlbmQtPmRlbGV0
ZURhdGFiYXNlKG5hbWUsICpjb250ZXh0LT5zZWN1cml0eU9yaWdpbigpLCAqY29udGV4dC0+dG9w
T3JpZ2luKCksIHJlcXVlc3QsIGNvbnRleHQsIGdldEluZGV4ZWREQkRhdGFiYXNlUGF0aChjb250
ZXh0KSk7CisgICAgbV9iYWNrZW5kLT5kZWxldGVEYXRhYmFzZShuYW1lLCAqY29udGV4dC0+c2Vj
dXJpdHlPcmlnaW4oKSwgKmNvbnRleHQtPnRvcE9yaWdpbigpLCByZXF1ZXN0LCBjb250ZXh0KTsK
ICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
LmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw5
ICszNSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxJREJGYWN0b3J5
QmFja2VuZEludGVyZmFjZT4gSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikKK1Bhc3NSZWZQdHI8SURCRmFj
dG9yeUJhY2tlbmRJbnRlcmZhY2U+IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUo
KQogewotICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+ZGF0YWJhc2VTdHJhdGVneSgp
LT5jcmVhdGVJREJGYWN0b3J5QmFja2VuZChkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOwor
ICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+ZGF0YWJhc2VTdHJhdGVneSgpLT5jcmVh
dGVJREJGYWN0b3J5QmFja2VuZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVy
ZmFjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU2LDEyICs1NiwxMiBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2Rl
OwogLy8gdHJpZ2dlciB3b3JrIG9uIGEgYmFja2dyb3VuZCB0aHJlYWQgaWYgbmVjZXNzYXJ5Lgog
Y2xhc3MgSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZT4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlPiBjcmVhdGUoKTsKICAgICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZSgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFz
c1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdp
biwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBn
ZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmln
aW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4o
Y29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9u
SWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRlbGV0ZURh
dGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdP
cmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmlnaW4sIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0
YURpcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0
YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgPSAwOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1Bh
Z2VHcm91cEluZGV4ZWREYXRhYmFzZS5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDE0ICsyOCwxMiBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKLSNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9y
eUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U6OlBhZ2VHcm91cEluZGV4ZWRE
YXRhYmFzZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikKLSAgICA6
IG1fZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmll
cikKK1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZTo6UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCkK
IHsKIH0KIApAQCAtNTIsNyArNTAsNyBAQCBQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UqIFBhZ2VH
cm91cEluZGV4CiB7CiAgICAgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKiBzdXBwbGVtZW50ID0g
c3RhdGljX2Nhc3Q8UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKj4oU3VwcGxlbWVudDxQYWdlR3Jv
dXA+Ojpmcm9tKCZncm91cCwgc3VwcGxlbWVudE5hbWUoKSkpOwogICAgIGlmICghc3VwcGxlbWVu
dCkgewotICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VH
cm91cEluZGV4ZWREYXRhYmFzZT4oZ3JvdXAuZ3JvdXBTZXR0aW5ncygpLmluZGV4ZWREQkRhdGFi
YXNlUGF0aCgpKTsKKyAgICAgICAgYXV0byBuZXdTdXBwbGVtZW50ID0gc3RkOjptYWtlX3VuaXF1
ZTxQYWdlR3JvdXBJbmRleGVkRGF0YWJhc2U+KCk7CiAgICAgICAgIHN1cHBsZW1lbnQgPSBuZXdT
dXBwbGVtZW50LmdldCgpOwogICAgICAgICBwcm92aWRlVG8oJmdyb3VwLCBzdXBwbGVtZW50TmFt
ZSgpLCBXVEY6Om1vdmUobmV3U3VwcGxlbWVudCkpOwogICAgIH0KQEAgLTY0LDcgKzYyLDcgQEAg
SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UqIFBhZ2VHcm91cEluZAogICAgIC8vIERvIG5vdCBh
ZGQgcGFnZSBzZXR0aW5nIGJhc2VkIGFjY2VzcyBjb250cm9sIGhlcmUgc2luY2UgdGhpcyBvYmpl
Y3QgaXMgc2hhcmVkIGJ5IGFsbCBwYWdlcyBpbgogICAgIC8vIHRoZSBncm91cCBhbmQgaGF2aW5n
IHBlci1wYWdlIGNvbnRyb2xzIGlzIG1pc2xlYWRpbmcuCiAgICAgaWYgKCFtX2ZhY3RvcnlCYWNr
ZW5kKQotICAgICAgICBtX2ZhY3RvcnlCYWNrZW5kID0gSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZh
Y2U6OmNyZWF0ZShtX2RhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcik7CisgICAgICAgIG1fZmFj
dG9yeUJhY2tlbmQgPSBJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZTo6Y3JlYXRlKCk7CiAgICAg
cmV0dXJuIG1fZmFjdG9yeUJhY2tlbmQuZ2V0KCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRhYmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1BhZ2VHcm91cEluZGV4ZWREYXRh
YmFzZS5oCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9QYWdlR3JvdXBJbmRleGVkRGF0YWJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyAr
MzgsNyBAQCBjbGFzcyBQYWdlR3JvdXA7CiAKIGNsYXNzIFBhZ2VHcm91cEluZGV4ZWREYXRhYmFz
ZSA6IHB1YmxpYyBTdXBwbGVtZW50PFBhZ2VHcm91cD4gewogcHVibGljOgotICAgIGV4cGxpY2l0
IFBhZ2VHcm91cEluZGV4ZWREYXRhYmFzZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5
SWRlbnRpZmllcik7CisgICAgZXhwbGljaXQgUGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCk7CiAg
ICAgdmlydHVhbCB+UGFnZUdyb3VwSW5kZXhlZERhdGFiYXNlKCk7CiAKICAgICBzdGF0aWMgUGFn
ZUdyb3VwSW5kZXhlZERhdGFiYXNlKiBmcm9tKFBhZ2VHcm91cCYpOwpAQCAtNDgsNyArNDgsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdXBwbGVtZW50TmFt
ZSgpOwogCi0gICAgU3RyaW5nIG1fZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyOwogICAgIFJl
ZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gbV9mYWN0b3J5QmFja2VuZDsKIH07CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3Bl
SW5kZXhlZERhdGFiYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9Xb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5jcHAJKHJldmlzaW9u
IDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2Jh
bFNjb3BlSW5kZXhlZERhdGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsOCArMzgsNyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFi
YXNlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZShjb25zdCBTdHJpbmcmIGRhdGFi
YXNlRGlyZWN0b3J5SWRlbnRpZmllcikKLSAgICA6IG1fZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlm
aWVyKGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikKK1dvcmtlckdsb2JhbFNjb3BlSW5kZXhl
ZERhdGFiYXNlOjpXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSgpCiB7CiB9CiAKQEAg
LTU2LDEyICs1NSw3IEBAIFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKiBXb3JrZXIK
IHsKICAgICBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZSogc3VwcGxlbWVudCA9IHN0
YXRpY19jYXN0PFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKj4oU3VwcGxlbWVudDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Pjo6ZnJvbShjb250ZXh0LCBzdXBwbGVtZW50TmFtZSgpKSk7
CiAgICAgaWYgKCFzdXBwbGVtZW50KSB7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZURpcmVjdG9y
eUlkZW50aWZpZXI7Ci0gICAgICAgIGNvbnN0IEdyb3VwU2V0dGluZ3MqIGdyb3VwU2V0dGluZ3Mg
PSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oKmNvbnRleHQpLmdyb3VwU2V0dGluZ3MoKTsK
LSAgICAgICAgaWYgKGdyb3VwU2V0dGluZ3MpCi0gICAgICAgICAgICBkYXRhYmFzZURpcmVjdG9y
eUlkZW50aWZpZXIgPSBncm91cFNldHRpbmdzLT5pbmRleGVkREJEYXRhYmFzZVBhdGgoKTsKLQot
ICAgICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckdsb2Jh
bFNjb3BlSW5kZXhlZERhdGFiYXNlPihkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAg
ICAgICBhdXRvIG5ld1N1cHBsZW1lbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlckdsb2JhbFNj
b3BlSW5kZXhlZERhdGFiYXNlPigpOwogICAgICAgICBzdXBwbGVtZW50ID0gbmV3U3VwcGxlbWVu
dC5nZXQoKTsKICAgICAgICAgcHJvdmlkZVRvKGNvbnRleHQsIHN1cHBsZW1lbnROYW1lKCksIFdU
Rjo6bW92ZShuZXdTdXBwbGVtZW50KSk7CiAgICAgfQpAQCAtNzYsNyArNzAsNyBAQCBJREJGYWN0
b3J5KiBXb3JrZXJHbG9iYWxTY29wZUluZGV4ZWREYXRhCiBJREJGYWN0b3J5KiBXb3JrZXJHbG9i
YWxTY29wZUluZGV4ZWREYXRhYmFzZTo6aW5kZXhlZERCKCkKIHsKICAgICBpZiAoIW1fZmFjdG9y
eUJhY2tlbmQpCi0gICAgICAgIG1fZmFjdG9yeUJhY2tlbmQgPSBJREJGYWN0b3J5QmFja2VuZElu
dGVyZmFjZTo6Y3JlYXRlKG1fZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsKKyAgICAgICAg
bV9mYWN0b3J5QmFja2VuZCA9IElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlOjpjcmVhdGUoKTsK
ICAgICBpZiAoIW1faWRiRmFjdG9yeSkKICAgICAgICAgbV9pZGJGYWN0b3J5ID0gSURCRmFjdG9y
eTo6Y3JlYXRlKG1fZmFjdG9yeUJhY2tlbmQuZ2V0KCkpOwogICAgIHJldHVybiBtX2lkYkZhY3Rv
cnkuZ2V0KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9Xb3JrZXJH
bG9iYWxTY29wZUluZGV4ZWREYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL1dvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmgJKHJl
dmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL1dvcmtl
ckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQw
LDcgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIAogY2xhc3MgV29ya2VyR2xvYmFs
U2NvcGVJbmRleGVkRGF0YWJhc2UgOiBwdWJsaWMgU3VwcGxlbWVudDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0PiB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgV29ya2VyR2xvYmFsU2NvcGVJbmRleGVk
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAg
IGV4cGxpY2l0IFdvcmtlckdsb2JhbFNjb3BlSW5kZXhlZERhdGFiYXNlKCk7CiAgICAgdmlydHVh
bCB+V29ya2VyR2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UoKTsKICAgICBzdGF0aWMgV29ya2Vy
R2xvYmFsU2NvcGVJbmRleGVkRGF0YWJhc2UqIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCop
OwogCkBAIC01MCw3ICs1MCw2IEBAIHByaXZhdGU6CiAgICAgSURCRmFjdG9yeSogaW5kZXhlZERC
KCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAKLSAgICBTdHJp
bmcgbV9kYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXI7CiAgICAgUmVmUHRyPElEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlPiBtX2ZhY3RvcnlCYWNrZW5kOwogICAgIFJlZlB0cjxJREJGYWN0b3J5
PiBtX2lkYkZhY3Rvcnk7CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9q
L1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZj
eHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03MjA5
LDcgKzcyMDksNiBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxGcmFtZVNuYXBz
aG90dGluZy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZyYW1lVHJl
ZS5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEZyYW1lVmlldy5jcHAi
IC8+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuY3BwIiAv
PgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccGFnZVxIaXN0b3J5LmNwcCIgLz4KICAgICA8
Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcYW5pbWF0aW9uXEltcGxpY2l0QW5pbWF0aW9uLmNw
cCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcYW5pbWF0aW9uXEtleWZyYW1l
QW5pbWF0aW9uLmNwcCIgLz4KQEAgLTE5MjEzLDcgKzE5MjEyLDYgQEAKICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVTbmFwc2hvdHRpbmcuaCIgLz4KICAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVUcmVlLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRl
PSIuLlxwYWdlXEZyYW1lVmlldy5oIiAvPgotICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccGFn
ZVxHcm91cFNldHRpbmdzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEhp
c3RvcnkuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcYW5pbWF0aW9uXElt
cGxpY2l0QW5pbWF0aW9uLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXGFu
aW1hdGlvblxLZXlmcmFtZUFuaW1hdGlvbi5oIiAvPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwkocmV2aXNp
b24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4
cHJvai5maWx0ZXJzCSh3b3JraW5nIGNvcHkpCkBAIC03NzEsOSArNzcxLDYgQEAKICAgICA8Q2xD
b21waWxlIEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVWaWV3LmNwcCI+CiAgICAgICA8RmlsdGVyPnBh
Z2U8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4u
XHBhZ2VcR3JvdXBTZXR0aW5ncy5jcHAiPgotICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+Ci0g
ICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxwYWdlXEhpc3Rvcnku
Y3BwIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
Nzc4Miw5ICs3Nzc5LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHBhZ2VcRnJhbWVW
aWV3LmgiPgogICAgICAgPEZpbHRlcj5wYWdlPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+Ci0g
ICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxwYWdlXEdyb3VwU2V0dGluZ3MuaCI+Ci0gICAgICA8
RmlsdGVyPnBhZ2U8L0ZpbHRlcj4KLSAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIElu
Y2x1ZGU9Ii4uXHBhZ2VcSGlzdG9yeS5oIj4KICAgICAgIDxGaWx0ZXI+cGFnZTwvRmlsdGVyPgog
ICAgIDwvQ2xJbmNsdWRlPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01
NTYxLDggKzU1NjEsNiBAQAogCQlDNDAwRDEwOTE4RjFDOEY2MDA5MEQ4NjMgLyogRXZlbnRMb29w
SW5wdXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzQwMEQxMDgxOEYxQzhGNjAwOTBEODYzIC8qIEV2ZW50TG9vcElucHV0LmNwcCAqLzsgfTsKIAkJ
QzRDRDYyOUExODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1lU25hcHNob3R0aW5nLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM0Q0Q2Mjk4MTgzODM3NjYw
MDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5jcHAgKi87IH07CiAJCUM0Q0Q2MjlCMTgzODM3
NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzRDRDYyOTkxODM4Mzc2NjAwN0VCQUYxIC8qIEZyYW1l
U25hcHNob3R0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQzUwQjU2MTYxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTQxMjEx
OUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0dGluZ3MuY3BwICovOyB9OwotCQlDNTBCNTYxNzEyMTE5
RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwQjU2MTUxMjExOUQyMzAwOEI0NkUwIC8qIEdyb3VwU2V0
dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlDNTBEMEU4MzBGRjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUwRDBFODEwRkY0MjcyOTAw
QUMyNjQ0IC8qIFN0b3JhZ2VOYW1lc3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlDNTEzN0NGMjExQTU4Mzc4MDA0QURCOTkgLyogSlNET01T
dHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1MTM3Q0YwMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwICovOyB9
OwogCQlDNTEzN0NGMzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTEzN0NGMTExQTU4Mzc4
MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggKi87IH07CkBAIC0xMzAyMiw4ICsxMzAyMCw2
IEBACiAJCUM0MDBEMTA4MThGMUM4RjYwMDkwRDg2MyAvKiBFdmVudExvb3BJbnB1dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmVudExvb3BJbnB1dC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0Q0Q2Mjk4MTgzODM3NjYwMDdFQkFGMSAvKiBG
cmFtZVNuYXBzaG90dGluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGcmFtZVNuYXBzaG90dGluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM0
Q0Q2Mjk5MTgzODM3NjYwMDdFQkFGMSAvKiBGcmFtZVNuYXBzaG90dGluZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmFtZVNuYXBzaG90dGluZy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlDNTBCNTYxNDEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5n
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcm91cFNldHRpbmdz
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQzUwQjU2MTUxMjExOUQyMzAwOEI0
NkUwIC8qIEdyb3VwU2V0dGluZ3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R3JvdXBTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTBEMEU4MTBG
RjQyNzI5MDBBQzI2NDQgLyogU3RvcmFnZU5hbWVzcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9yYWdlTmFtZXNwYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUM1MTM3Q0YwMTFBNTgzNzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01TdHJpbmdMaXN0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxMzdDRjExMUE1ODM3ODAwNEFEQjk5IC8q
IEpTRE9NU3RyaW5nTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0RP
TVN0cmluZ0xpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NjY1LDggKzE2
NjYxLDYgQEAKIAkJCQk2NUEyMTQ4MzA5N0EzRjUzMDBCOTA1MEEgLyogRnJhbWVUcmVlLmggKi8s
CiAJCQkJNjVDQkZFRjcwOTc0RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5jcHAgKi8sCiAJCQkJ
NjVDQkZFRjgwOTc0RjYwNzAwMURBQzI1IC8qIEZyYW1lVmlldy5oICovLAotCQkJCUM1MEI1NjE0
MTIxMTlEMjMwMDhCNDZFMCAvKiBHcm91cFNldHRpbmdzLmNwcCAqLywKLQkJCQlDNTBCNTYxNTEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oICovLAogCQkJCUJDOTREMTUwMEMyNzVD
OEIwMDZCQzYxNyAvKiBIaXN0b3J5LmNwcCAqLywKIAkJCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2
MTcgLyogSGlzdG9yeS5oICovLAogCQkJCUJDOTREMTUyMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0
b3J5LmlkbCAqLywKQEAgLTI0NTA1LDcgKzI0NDk5LDYgQEAKIAkJCQlBMTI3MDVDMzE2NTZCRDY1
MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY3NDgzRjE4
RkVCQ0VDMDAwNkVDQzAgLyogR3JpZFJlc29sdmVkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAog
CQkJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlDNTBCNTYxNzEyMTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODQ4MkI3NDYxMTk4QzM1NDAwQkZCMDA1IC8qIEhhc2hDaGFuZ2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg3NDhCRTAxMkNCRjJEQzAwMUZCQTQxIC8qIEhh
c2hUb29scy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQzAxMjUxRjEyRDAwM0VGMjY5IC8q
IEhpZGRlbklucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODAwNCw3ICsyNzk5Nyw2IEBA
CiAJCQkJMEZBMjRENzkxNjJERjkxOTAwQTNGNEMwIC8qIEdyYXBoaWNzTGF5ZXJVcGRhdGVyLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIyQTAxNUFBMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGlj
c1R5cGVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNERjc0ODNFMThGRUJDRUMwMDA2RUNDMCAv
KiBHcmlkUmVzb2x2ZWRQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlDNTBCNTYxNjEy
MTE5RDIzMDA4QjQ2RTAgLyogR3JvdXBTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlG
NTVCM0RCRjEyNTFGMTJEMDAzRUYyNjkgLyogSGlkZGVuSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxQTlEOUYzMTk1Qjk1MDMwMDFCMkI1QyAvKiBISURHYW1lcGFkLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxNzlDRTM2MTk1Q0FDN0UwMDE5QzE5OCAvKiBISURHYW1lcGFkUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxNzc4NDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbi5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJTdHlsZVNoZWV0TGlzdC5o
IgogI2luY2x1ZGUgIlVzZXJDb250ZW50Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlVzZXJDb250
ZW50VVJMUGF0dGVybi5oIgorI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0LmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZl
cmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2Vy
UHJlZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdl
L0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw4
IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0VHJhY2tMaXN0LmgiCiAj
aW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiVXNlckNvbnRlbnRU
eXBlcy5oIgorI2luY2x1ZGUgIlVzZXJTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiVXNlclN0eWxl
U2hlZXRUeXBlcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDcgQEAKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VE
ZWNvZGVyLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAi
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgiCisjaW5jbHVkZSAiVXNlclNjcmlwdC5oIgogI2luY2x1
ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRz
LmgiCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZhbWlseU5hbWVzLmgiCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0dyb3VwU2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvR3JvdXBTZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNTMgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHcm91cFNldHRpbmdzLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotR3JvdXBTZXR0aW5nczo6R3JvdXBTZXR0aW5ncygp
Ci0gICAgOiBtX2xvY2FsU3RvcmFnZVF1b3RhQnl0ZXMoNSAqIDEwMjQgKiAxMDI0KSAvLyBTdWdn
ZXN0ZWQgYnkgdGhlIEhUTUw1IHNwZWMuCi0gICAgLCBtX2luZGV4ZWREQlF1b3RhQnl0ZXMoNSAq
IDEwMjQgKiAxMDI0KQotewotfQotCi12b2lkIEdyb3VwU2V0dGluZ3M6OnNldExvY2FsU3RvcmFn
ZVF1b3RhQnl0ZXModW5zaWduZWQgcXVvdGEpCi17Ci0gICAgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5
dGVzID0gcXVvdGE7Ci19Ci0KLXZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCRGF0YWJh
c2VQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBtX2luZGV4ZWREQkRhdGFiYXNlUGF0
aCA9IHBhdGg7Ci19Ci0KLXZvaWQgR3JvdXBTZXR0aW5nczo6c2V0SW5kZXhlZERCUXVvdGFCeXRl
cyhpbnQ2NF90IHF1b3RhKQotewotICAgIG1faW5kZXhlZERCUXVvdGFCeXRlcyA9IHF1b3RhOwot
fQotCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
R3JvdXBTZXR0aW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvR3JvdXBT
ZXR0aW5ncy5oCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0dyb3Vw
U2V0dGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLSAKLSNpZm5k
ZWYgR3JvdXBTZXR0aW5nc19oCi0jZGVmaW5lIEdyb3VwU2V0dGluZ3NfaAotCi0jaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGFn
ZUdyb3VwOwotCi1jbGFzcyBHcm91cFNldHRpbmdzIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShHcm91cFNldHRpbmdzKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAg
R3JvdXBTZXR0aW5ncygpOwotCi0gICAgdm9pZCBzZXRMb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKHVu
c2lnbmVkKTsKLSAgICB1bnNpZ25lZCBsb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKCkgY29uc3QgeyBy
ZXR1cm4gbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzOyB9Ci0KLSAgICB2b2lkIHNldEluZGV4ZWRE
QlF1b3RhQnl0ZXMoaW50NjRfdCk7Ci0gICAgaW50NjRfdCBpbmRleGVkREJRdW90YUJ5dGVzKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmRleGVkREJRdW90YUJ5dGVzOyB9Ci0KLSAgICB2b2lkIHNldElu
ZGV4ZWREQkRhdGFiYXNlUGF0aChjb25zdCBTdHJpbmcmKTsKLSAgICBjb25zdCBTdHJpbmcmIGlu
ZGV4ZWREQkRhdGFiYXNlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhlZERCRGF0YWJhc2VQ
YXRoOyB9Ci0KLXByaXZhdGU6Ci0gICAgdW5zaWduZWQgbV9sb2NhbFN0b3JhZ2VRdW90YUJ5dGVz
OwotICAgIFN0cmluZyBtX2luZGV4ZWREQkRhdGFiYXNlUGF0aDsKLSAgICBpbnQ2NF90IG1faW5k
ZXhlZERCUXVvdGFCeXRlczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEdyb3VwU2V0dGluZ3NfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmNwcAkocmV2
aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFN0eWxlU2hlZXRDb2xs
ZWN0aW9uLmgiCi0jaW5jbHVkZSAiR3JvdXBTZXR0aW5ncy5oIgogI2luY2x1ZGUgIk1haW5GcmFt
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKQEAgLTYxLDEz
ICs2MCwxMSBAQCBzdGF0aWMgdW5zaWduZWQgZ2V0VW5pcXVlSWRlbnRpZmllcigpCiBQYWdlR3Jv
dXA6OlBhZ2VHcm91cChjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgOiBtX25hbWUobmFtZSkKICAg
ICAsIG1faWRlbnRpZmllcihnZXRVbmlxdWVJZGVudGlmaWVyKCkpCi0gICAgLCBtX2dyb3VwU2V0
dGluZ3Moc3RkOjptYWtlX3VuaXF1ZTxHcm91cFNldHRpbmdzPigpKQogewogfQogCiBQYWdlR3Jv
dXA6OlBhZ2VHcm91cChQYWdlJiBwYWdlKQogICAgIDogbV9pZGVudGlmaWVyKGdldFVuaXF1ZUlk
ZW50aWZpZXIoKSkKLSAgICAsIG1fZ3JvdXBTZXR0aW5ncyhzdGQ6Om1ha2VfdW5pcXVlPEdyb3Vw
U2V0dGluZ3M+KCkpCiB7CiAgICAgYWRkUGFnZShwYWdlKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZUdyb3VwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlR3JvdXAuaAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
R3JvdXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMjIgKzI3LDE0IEBACiAjZGVmaW5lIFBhZ2VH
cm91cF9oCiAKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2luY2x1ZGUgIlVzZXJTY3Jp
cHQuaCIKLSNpbmNsdWRlICJVc2VyU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFVSTDsKLSAgICBj
bGFzcyBHcm91cFNldHRpbmdzOwotICAgIGNsYXNzIElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNl
OwogICAgIGNsYXNzIFBhZ2U7Ci0gICAgY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci0gICAgY2xhc3Mg
U3RvcmFnZU5hbWVzcGFjZTsKLQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBjbGFzcyBD
YXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVuZXI7CiAgICAgY2xhc3MgQ2FwdGlvblVzZXJQ
cmVmZXJlbmNlczsKICNlbmRpZgogCkBAIC02Myw4ICs1NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAg
ICAgIHVuc2lnbmVkIGlkZW50aWZpZXIoKSB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KIAotICAg
ICAgICBHcm91cFNldHRpbmdzJiBncm91cFNldHRpbmdzKCkgY29uc3QgeyByZXR1cm4gKm1fZ3Jv
dXBTZXR0aW5nczsgfQotCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKICAgICAgICAgV0VCQ09S
RV9FWFBPUlQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyogY2FwdGlvblByZWZlcmVuY2VzKCk7CkBA
IC03Niw4ICs2Niw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB1bnNpZ25lZCBt
X2lkZW50aWZpZXI7CiAKLSAgICAgICAgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGlu
Z3M+IG1fZ3JvdXBTZXR0aW5nczsKLQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAgICAg
c3RkOjp1bmlxdWVfcHRyPENhcHRpb25Vc2VyUHJlZmVyZW5jZXM+IG1fY2FwdGlvblByZWZlcmVu
Y2VzOwogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhYmFzZVN0cmF0
ZWd5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhYmFzZVN0
cmF0ZWd5LmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RGF0YWJhc2VTdHJhdGVneS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDEwICszOSw5IEBAIEFi
c3RyYWN0RGF0YWJhc2VTZXJ2ZXIqIERhdGFiYXNlU3RyYXRlZ3kKICNlbmRpZiAvLyBFTkFCTEUo
U1FMX0RBVEFCQVNFKQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1QYXNzUmVmUHRy
PElEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlPiBEYXRhYmFzZVN0cmF0ZWd5OjpjcmVhdGVJREJG
YWN0b3J5QmFja2VuZChjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikK
K1Bhc3NSZWZQdHI8SURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2U+IERhdGFiYXNlU3RyYXRlZ3k6
OmNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKCkKIHsKICAgICAvLyBGSVhNRTogTmVlZCBhIGJldHRl
ciBwbGF0Zm9ybSBhYnN0cmFjdGlvbiBoZXJlLCBidXQgdGhpcyBzdG9wIGdhcCB3aWxsIHdvcmsg
Zm9yIG5vdy4KLSAgICBVTlVTRURfUEFSQU0oZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKTsK
ICAgICByZXR1cm4gMDsKIH0KICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGFiYXNlU3RyYXRlZ3kuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EYXRhYmFzZVN0cmF0ZWd5LmgJKHJldmlzaW9u
IDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RhdGFiYXNlU3RyYXRlZ3kuaAko
d29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgUGFzc1Jl
ZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJhY2tlbmQo
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgUGFzc1JlZlB0cjxJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3Jl
YXRlSURCRmFjdG9yeUJhY2tlbmQoKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0
ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE1ICszOSwxNSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZT4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0
aW5ncywgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2lu
KQorUmVmPERlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlPiBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVk
aWNhdGVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5
UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5
UG9saWN5VHlwZSwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQogewotICAg
IFJlZjxEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZT4gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcg
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUodXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0
aW5ncyksIHRocmVhZCwgdG9wT3JpZ2luKSk7CisgICAgUmVmPERlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlPiBjb250ZXh0ID0gYWRvcHRSZWYoKm5ldyBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29w
ZSh1cmwsIHVzZXJBZ2VudCwgdGhyZWFkLCB0b3BPcmlnaW4pKTsKICAgICBjb250ZXh0LT5hcHBs
eUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29udGVudFNlY3VyaXR5UG9saWN5LCBj
b250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAgICByZXR1cm4gY29udGV4dDsKIH0KIAotRGVk
aWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3Vw
U2V0dGluZ3M+IHNldHRpbmdzLCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKQotICAgIDogV29ya2VyR2xvYmFsU2NvcGUo
dXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksIHRocmVhZCwgdG9wT3JpZ2luKQor
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OkRlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhy
ZWFkJiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKKyAgICA6
IFdvcmtlckdsb2JhbFNjb3BlKHVybCwgdXNlckFnZW50LCB0aHJlYWQsIHRvcE9yaWdpbikKIHsK
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxT
Y29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29y
a2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Miw3
ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJH
bG9iYWxTY29wZSA6IHB1YmxpYyBXb3JrZXJHbG9iYWxTY29wZSB7CiAgICAgcHVibGljOgogICAg
ICAgICB0eXBlZGVmIFdvcmtlckdsb2JhbFNjb3BlIEJhc2U7Ci0gICAgICAgIHN0YXRpYyBSZWY8
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBEZWRpY2F0ZWRX
b3JrZXJUaHJlYWQmLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbik7CisgICAgICAgIHN0YXRpYyBSZWY8
RGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZShjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW4pOwogICAgICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZSgpOwogCiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBpc0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNjIsNyArNjIsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKICAgICBw
cml2YXRlOgotICAgICAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBj
b25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQmLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmln
aW4pOworICAgICAgICBEZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgRGVkaWNhdGVkV29ya2VyVGhyZWFkJiwgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJU
aHJlYWQuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0Rl
ZGljYXRlZFdvcmtlclRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEzICszOCwxMyBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IERl
ZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBT
dHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBX
b3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9k
ZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29u
c3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKK1JlZjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+
IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmpl
Y3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBj
b250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2lu
KQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlZGljYXRlZFdvcmtlclRocmVhZChzY3Jp
cHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5
LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNv
bnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbikpOworICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IERlZGljYXRlZFdvcmtlclRocmVhZChzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNl
Q29kZSwgd29ya2VyTG9hZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5LCBzdGFydE1vZGUsIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2lu
KSk7CiB9CiAKLURlZGljYXRlZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5n
cyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkm
IHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJPYmplY3RQcm94eSYgd29ya2VyT2JqZWN0UHJveHks
IFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNl
Y3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNl
Y3VyaXR5UG9saWN5VHlwZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKLSAgICA6
IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtl
ckxvYWRlclByb3h5LCB3b3JrZXJPYmplY3RQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbikKK0RlZGljYXRl
ZFdvcmtlclRocmVhZDo6RGVkaWNhdGVkV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYgdXJsLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHksIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmpl
Y3RQcm94eSwgV29ya2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBj
b250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2lu
KQorICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJM
b2FkZXJQcm94eSwgd29ya2VyT2JqZWN0UHJveHksIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pCiAgICAgLCBtX3dv
cmtlck9iamVjdFByb3h5KHdvcmtlck9iamVjdFByb3h5KQogewogfQpAQCAtNTMsOSArNTMsOSBA
QCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6On5EZWRpY2F0ZWRXb3JrZXJUCiB7CiB9CiAKLVJlZjxX
b3JrZXJHbG9iYWxTY29wZT4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpjcmVhdGVXb3JrZXJHbG9i
YWxTY29wZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5p
cXVlX3B0cjxHcm91cFNldHRpbmdzPiBzZXR0aW5ncywgY29uc3QgU3RyaW5nJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pCitS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3JlYXRlV29ya2Vy
R2xvYmFsU2NvcGUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25z
dCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpI
ZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHRvcE9yaWdpbikKIHsKLSAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZSh1cmwsIHVzZXJBZ2VudCwgV1RGOjptb3ZlKHNldHRpbmdzKSwgKnRoaXMsIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgdG9wT3JpZ2lu
KTsKKyAgICByZXR1cm4gRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZSh1cmwsIHVz
ZXJBZ2VudCwgKnRoaXMsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9s
aWN5VHlwZSwgdG9wT3JpZ2luKTsKIH0KIAogdm9pZCBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OnJ1
bkV2ZW50TG9vcCgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtl
clRocmVhZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVk
V29ya2VyVGhyZWFkLmgJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDE2ICszOSwx
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBS
ZWY8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiBjcmVhdGUoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNv
bnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5n
JiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Q29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiog
dG9wT3JpZ2luKTsKKyAgICAgICAgc3RhdGljIFJlZjxEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IGNy
ZWF0ZShjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94
eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4qIHRvcE9yaWdpbik7CiAgICAgICAgIFdvcmtlck9iamVjdFByb3h5JiB3b3JrZXJPYmpl
Y3RQcm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyT2JqZWN0UHJveHk7IH0KICAgICAgICAg
dmlydHVhbCB+RGVkaWNhdGVkV29ya2VyVGhyZWFkKCk7CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIHZpcnR1YWwgUmVmPFdvcmtlckdsb2JhbFNjb3BlPiBjcmVhdGVXb3JrZXJHbG9iYWxTY29w
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdy
b3VwU2V0dGluZ3M+LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0
b3BPcmlnaW4pIG92ZXJyaWRlOworICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29w
ZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2Vy
QWdlbnQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJp
dHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdp
bikgb3ZlcnJpZGU7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3AoKSBvdmVycmlk
ZTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyosIGNvbnN0
IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJPYmplY3RQcm94
eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQ
b2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4qIHRvcE9yaWdpbik7CisgICAgICAgIERlZGljYXRlZFdvcmtlclRocmVhZChjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBX
b3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlck9iamVjdFByb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRN
b2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKIAog
ICAgICAgICBXb3JrZXJPYmplY3RQcm94eSYgbV93b3JrZXJPYmplY3RQcm94eTsKICAgICB9OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9y
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVk
V29ya2VyUmVwb3NpdG9yeS5jcHAJKHJldmlzaW9uIDE3Nzg0NykKKysrIFNvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04OCw4ICs4OCw2IEBAIHB1YmxpYzoKICAgICAvLyBSZW1vdmVzIGEgZGV0YWNoZWQgZG9j
dW1lbnQgZnJvbSB0aGUgbGlzdCBvZiB3b3JrZXIncyBkb2N1bWVudHMuIE1heSBzZXQgdGhlIGNs
b3NpbmcgZmxhZyBpZiB0aGlzIGlzIHRoZSBsYXN0IGRvY3VtZW50IGluIHRoZSBsaXN0LgogICAg
IHZvaWQgZG9jdW1lbnREZXRhY2hlZChEb2N1bWVudCopOwogCi0gICAgR3JvdXBTZXR0aW5ncyog
Z3JvdXBTZXR0aW5ncygpIGNvbnN0OyAvLyBQYWdlIEdyb3VwU2V0dGluZ3MgdXNlZCBieSB3b3Jr
ZXIgdGhyZWFkLgotCiBwcml2YXRlOgogICAgIFNoYXJlZFdvcmtlclByb3h5KGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgVVJMJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4pOwogICAgIHZv
aWQgY2xvc2UoKTsKQEAgLTE1MywxOSArMTUxLDYgQEAgYm9vbCBTaGFyZWRXb3JrZXJQcm94eTo6
cG9zdFRhc2tGb3JNb2RlVAogICAgIHJldHVybiB0cnVlOwogfQogCi1Hcm91cFNldHRpbmdzKiBT
aGFyZWRXb3JrZXJQcm94eTo6Z3JvdXBTZXR0aW5ncygpIGNvbnN0Ci17Ci0gICAgaWYgKGlzQ2xv
c2luZygpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBBU1NFUlQobV93b3JrZXJEb2N1bWVudHMu
c2l6ZSgpKTsKLSAgICAvLyBKdXN0IHBpY2sgdGhlIGZpcnN0IGFjdGl2ZSBkb2N1bWVudCwgYW5k
IHVzZSB0aGUgZ3JvdXBzZXR0aW5ncyBvZiB0aGF0IHBhZ2UuCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gKihtX3dvcmtlckRvY3VtZW50cy5iZWdpbigpKTsKLSAgICBpZiAoZG9jdW1lbnQtPnBh
Z2UoKSkKLSAgICAgICAgcmV0dXJuICZkb2N1bWVudC0+cGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0
dGluZ3MoKTsKLQotICAgIHJldHVybiAwOwotfQotCiB2b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpw
b3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkK
IHsKICAgICBNdXRleExvY2tlciBsb2NrKG1fd29ya2VyRG9jdW1lbnRzTG9jayk7CkBAIC0zMzcs
NyArMzIyLDcgQEAgdm9pZCBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6d29yawogCiAg
ICAgLy8gQW5vdGhlciBsb2FkZXIgbWF5IGhhdmUgYWxyZWFkeSBzdGFydGVkIHVwIGEgdGhyZWFk
IGZvciB0aGlzIHByb3h5IC0gaWYgc28sIGp1c3Qgc2VuZCBhIGNvbm5lY3QgdG8gdGhlIHByZS1l
eGlzdGluZyB0aHJlYWQuCiAgICAgaWYgKCFwcm94eS50aHJlYWQoKSkgewotICAgICAgICBSZWZQ
dHI8U2hhcmVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0
ZShwcm94eS5uYW1lKCksIHByb3h5LnVybCgpLCB1c2VyQWdlbnQsIHByb3h5Lmdyb3VwU2V0dGlu
Z3MoKSwgd29ya2VyU2NyaXB0LCBwcm94eSwgcHJveHksIERvbnRQYXVzZVdvcmtlckdsb2JhbFNj
b3BlT25TdGFydCwgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lU
eXBlKTsKKyAgICAgICAgUmVmUHRyPFNoYXJlZFdvcmtlclRocmVhZD4gdGhyZWFkID0gU2hhcmVk
V29ya2VyVGhyZWFkOjpjcmVhdGUocHJveHkubmFtZSgpLCBwcm94eS51cmwoKSwgdXNlckFnZW50
LCB3b3JrZXJTY3JpcHQsIHByb3h5LCBwcm94eSwgRG9udFBhdXNlV29ya2VyR2xvYmFsU2NvcGVP
blN0YXJ0LCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUp
OwogICAgICAgICBwcm94eS5zZXRUaHJlYWQodGhyZWFkKTsKICAgICAgICAgdGhyZWFkLT5zdGFy
dCgpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyR2xv
YmFsU2NvcGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGUuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTIsMTUgKzUyLDE1IEBAIFBhc3NSZWZQdHI8TWVzc2FnZUV2ZW50PiBjcmVhdGVDb25uZWN0RXYK
IH0KIAogLy8gc3RhdGljCi1SZWY8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmIHVybCwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiBz
ZXR0aW5ncywgU2hhcmVkV29ya2VyVGhyZWFkJiB0aHJlYWQsIGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVu
dFNlY3VyaXR5UG9saWN5VHlwZSkKK1JlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgU2hhcmVkV29ya2VyVGhyZWFkJiB0aHJlYWQs
IGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKIHsKLSAgICBSZWY8U2hh
cmVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IFNoYXJlZFdvcmtl
ckdsb2JhbFNjb3BlKG5hbWUsIHVybCwgdXNlckFnZW50LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCB0
aHJlYWQpKTsKKyAgICBSZWY8U2hhcmVkV29ya2VyR2xvYmFsU2NvcGU+IGNvbnRleHQgPSBhZG9w
dFJlZigqbmV3IFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKG5hbWUsIHVybCwgdXNlckFnZW50LCB0
aHJlYWQpKTsKICAgICBjb250ZXh0LT5hcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJp
bmcoY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKICAg
ICByZXR1cm4gY29udGV4dDsKIH0KIAotU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OlNoYXJlZFdv
cmtlckdsb2JhbFNjb3BlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4gc2V0dGlu
Z3MsIFNoYXJlZFdvcmtlclRocmVhZCYgdGhyZWFkKQotICAgIDogV29ya2VyR2xvYmFsU2NvcGUo
dXJsLCB1c2VyQWdlbnQsIFdURjo6bW92ZShzZXR0aW5ncyksIHRocmVhZCwgMCkKK1NoYXJlZFdv
cmtlckdsb2JhbFNjb3BlOjpTaGFyZWRXb3JrZXJHbG9iYWxTY29wZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgU2hhcmVkV29ya2Vy
VGhyZWFkJiB0aHJlYWQpCisgICAgOiBXb3JrZXJHbG9iYWxTY29wZSh1cmwsIHVzZXJBZ2VudCwg
dGhyZWFkLCAwKQogICAgICwgbV9uYW1lKG5hbWUpCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJHbG9iYWxTY29wZS5oCShyZXZpc2lvbiAxNzc4
NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlckdsb2JhbFNjb3BlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IGNsYXNzIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlIDogcHVibGljIFdvcmtlckdsb2JhbFNjb3Bl
IHsKICAgICBwdWJsaWM6CiAgICAgICAgIHR5cGVkZWYgV29ya2VyR2xvYmFsU2NvcGUgQmFzZTsK
LSAgICAgICAgc3RhdGljIFJlZjxTaGFyZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIHN0ZDo6
dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkJiwgY29uc3QgU3Ry
aW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVy
VHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKKyAgICAgICAgc3RhdGljIFJlZjxTaGFy
ZWRXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJM
JiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdvcmtlclRocmVhZCYsIGNvbnN0IFN0
cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRl
clR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSk7CiAgICAgICAgIHZpcnR1YWwgflNoYXJl
ZFdvcmtlckdsb2JhbFNjb3BlKCk7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzU2hhcmVkV29y
a2VyR2xvYmFsU2NvcGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC01OSw3
ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU2hhcmVkV29ya2VyVGhyZWFk
JiB0aHJlYWQoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFNoYXJlZFdvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgU2hhcmVkV29ya2VyVGhyZWFkJik7
CisgICAgICAgIFNoYXJlZFdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFNoYXJlZFdvcmtlclRocmVhZCYpOwog
ICAgICAgICB2aXJ0dWFsIHZvaWQgbG9nRXhjZXB0aW9uVG9Db25zb2xlKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGlu
dCBjb2x1bW5OdW1iZXIsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+KSBv
dmVycmlkZTsKIAogICAgICAgICBTdHJpbmcgbV9uYW1lOwpJbmRleDogU291cmNlL1dlYkNvcmUv
d29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysg
U291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCwxMyArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2hh
cmVkV29ya2VyVGhyZWFkPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29u
c3QgR3JvdXBTZXR0aW5ncyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29y
a2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYg
d29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNv
bnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkKK1JlZjxTaGFyZWRXb3JrZXJU
aHJlYWQ+IFNoYXJlZFdvcmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29u
c3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2Vy
UmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlw
dFVSTCwgdXNlckFnZW50LCBzZXR0aW5ncywgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJveHks
IHdvcmtlclJlcG9ydGluZ1Byb3h5LCBzdGFydE1vZGUsIGNvbnRlbnRTZWN1cml0eVBvbGljeSwg
Y29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNo
YXJlZFdvcmtlclRocmVhZChuYW1lLCBzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwg
d29ya2VyTG9hZGVyUHJveHksIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBzdGFydE1vZGUsIGNvbnRl
bnRTZWN1cml0eVBvbGljeSwgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkpOwogfQogCi1TaGFy
ZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5n
cyogc2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkm
IHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5n
UHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBzdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29u
dGVudFNlY3VyaXR5UG9saWN5VHlwZSkKLSAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2Vu
dCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3JrZXJSZXBvcnRp
bmdQcm94eSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnRlbnRTZWN1cml0
eVBvbGljeVR5cGUsIDApCitTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2Vu
dCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9h
ZGVyUHJveHksIFdvcmtlclJlcG9ydGluZ1Byb3h5JiB3b3JrZXJSZXBvcnRpbmdQcm94eSwgV29y
a2VyVGhyZWFkU3RhcnRNb2RlIHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJp
dHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJp
dHlQb2xpY3lUeXBlKQorICAgIDogV29ya2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VD
b2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHksIHN0YXJ0TW9kZSwg
Y29udGVudFNlY3VyaXR5UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCAwKQogICAg
ICwgbV9uYW1lKG5hbWUuaXNvbGF0ZWRDb3B5KCkpCiB7CiB9CkBAIC01Myw5ICs1Myw5IEBAIFNo
YXJlZFdvcmtlclRocmVhZDo6flNoYXJlZFdvcmtlclRocmVhZCgKIHsKIH0KIAotUmVmPFdvcmtl
ckdsb2JhbFNjb3BlPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3Bl
KGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRy
PEdyb3VwU2V0dGluZ3M+IHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBv
bGljeVR5cGUsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+KQorUmVmPFdvcmtlckdsb2JhbFNj
b3BlPiBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVS
TCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlLCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPikKIHsKLSAgICByZXR1
cm4gU2hhcmVkV29ya2VyR2xvYmFsU2NvcGU6OmNyZWF0ZShtX25hbWUsIHVybCwgdXNlckFnZW50
LCBXVEY6Om1vdmUoc2V0dGluZ3MpLCAqdGhpcywgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb250
ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKKyAgICByZXR1cm4gU2hhcmVkV29ya2VyR2xvYmFsU2Nv
cGU6OmNyZWF0ZShtX25hbWUsIHVybCwgdXNlckFnZW50LCAqdGhpcywgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVh
ZC5oCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlclRocmVhZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSwxNCArMzksMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgU2hhcmVkV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtl
clRocmVhZCB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPFNoYXJlZFdvcmtlclRo
cmVhZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJl
YWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOworICAgICAgICBzdGF0aWMgUmVmPFNoYXJlZFdv
cmtlclRocmVhZD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVy
UHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29u
c3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6
SGVhZGVyVHlwZSk7CiAgICAgICAgIHZpcnR1YWwgflNoYXJlZFdvcmtlclRocmVhZCgpOwogCiAg
ICAgcHJvdGVjdGVkOgotICAgICAgICB2aXJ0dWFsIFJlZjxXb3JrZXJHbG9iYWxTY29wZT4gY3Jl
YXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQs
IHN0ZDo6dW5pcXVlX3B0cjxHcm91cFNldHRpbmdzPiwgY29uc3QgU3RyaW5nJiBjb250ZW50U2Vj
dXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSwgUGFzc1JlZlB0
cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKSBvdmVycmlkZTsKKyAgICAgICAgdmlydHVhbCBS
ZWY8V29ya2VyR2xvYmFsU2NvcGU+IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBv
bGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBQYXNzUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiB0b3BPcmlnaW4pIG92ZXJyaWRlOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAg
U2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCBjb25zdCBTdHJpbmcmIHNv
dXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3Jr
ZXJUaHJlYWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBD
b250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUpOworICAgICAgICBTaGFyZWRXb3JrZXJU
aHJlYWQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJB
Z2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtl
clJlcG9ydGluZ1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlKTsK
IAogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL1dvcmtlckdsb2JhbFNjb3BlLmNwcAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291
cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDEwICs2NCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNjb3BlKGNvbnN0
IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3Vw
U2V0dGluZ3M+IHNldHRpbmdzLCBXb3JrZXJUaHJlYWQmIHRocmVhZCwgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gdG9wT3JpZ2luKQorV29ya2VyR2xvYmFsU2NvcGU6Oldvcmtlckdsb2JhbFNj
b3BlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhyZWFk
JiB0aHJlYWQsIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikKICAgICA6IG1f
dXJsKHVybCkKICAgICAsIG1fdXNlckFnZW50KHVzZXJBZ2VudCkKLSAgICAsIG1fZ3JvdXBTZXR0
aW5ncyhXVEY6Om1vdmUoc2V0dGluZ3MpKQogICAgICwgbV9zY3JpcHQoc3RkOjptYWtlX3VuaXF1
ZTxXb3JrZXJTY3JpcHRDb250cm9sbGVyPih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJHbG9iYWxTY29wZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyR2xvYmFsU2NvcGUuaAkocmV2aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0
ZW5lci5oIgogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAiR3JvdXBTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJXb3Jr
ZXJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0Q29udHJvbGxlci5oIgpAQCAt
NjYsNyArNjUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3Qg
VVJMJiB1cmwoKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX3VybDsgfQogICAgICAg
ICB2aXJ0dWFsIFVSTCBjb21wbGV0ZVVSTChjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZSBm
aW5hbDsKIAotICAgICAgICBjb25zdCBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgeyBy
ZXR1cm4gbV9ncm91cFNldHRpbmdzLmdldCgpOyB9CiAgICAgICAgIHZpcnR1YWwgU3RyaW5nIHVz
ZXJBZ2VudChjb25zdCBVUkwmKSBjb25zdCBvdmVycmlkZTsKIAogICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZUV2YWwoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIG92ZXJyaWRlOwpAQCAt
MTQxLDcgKzEzOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogCiAgICAgcHJvdGVj
dGVkOgotICAgICAgICBXb3JrZXJHbG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgc3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+LCBXb3JrZXJUaHJlYWQm
LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiB0b3BPcmlnaW4pOworICAgICAgICBXb3JrZXJH
bG9iYWxTY29wZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV29ya2VyVGhy
ZWFkJiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gdG9wT3JpZ2luKTsKICAgICAgICAgdm9p
ZCBhcHBseUNvbnRlbnRTZWN1cml0eVBvbGljeUZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSk7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIGxvZ0V4Y2VwdGlvblRvQ29uc29sZShjb25zdCBTdHJpbmcm
IGVycm9yTWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGludCBsaW5lTnVtYmVyLCBp
bnQgY29sdW1uTnVtYmVyLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPikg
b3ZlcnJpZGU7CkBAIC0xNjIsNyArMTYwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAg
ICAgIFVSTCBtX3VybDsKICAgICAgICAgU3RyaW5nIG1fdXNlckFnZW50OwotICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4gbV9ncm91cFNldHRpbmdzOwogCiAgICAgICAgIG11
dGFibGUgUmVmUHRyPFdvcmtlckxvY2F0aW9uPiBtX2xvY2F0aW9uOwogICAgICAgICBtdXRhYmxl
IFJlZlB0cjxXb3JrZXJOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwpJbmRleDogU291cmNlL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAJKHJldmlzaW9uIDE3Nzg0
NykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC04NCwxMCArODQsNyBAQCB2b2lkIFdvcmtlck1lc3NhZ2luZ1Byb3h5
OjpzdGFydFdvcmtlckdsCiAgICAgLy8gRklYTUU6IFRoaXMgbmVlZCB0byBiZSByZXZpc2l0ZWQg
d2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXIgb25lIGRheQogICAgIEFTU0VSVChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERv
Y3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKLSAgICBHcm91cFNldHRpbmdzKiBz
ZXR0aW5ncyA9IG51bGxwdHI7Ci0gICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgc2V0
dGluZ3MgPSAmZG9jdW1lbnQucGFnZSgpLT5ncm91cCgpLmdyb3VwU2V0dGluZ3MoKTsKLSAgICBS
ZWZQdHI8RGVkaWNhdGVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBEZWRpY2F0ZWRXb3JrZXJUaHJl
YWQ6OmNyZWF0ZShzY3JpcHRVUkwsIHVzZXJBZ2VudCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsICp0
aGlzLCAqdGhpcywgc3RhcnRNb2RlLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+
ZGVwcmVjYXRlZEhlYWRlcigpLCBkb2N1bWVudC5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+ZGVw
cmVjYXRlZEhlYWRlclR5cGUoKSwgZG9jdW1lbnQudG9wT3JpZ2luKCkpOworICAgIFJlZlB0cjxE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQ+IHRocmVhZCA9IERlZGljYXRlZFdvcmtlclRocmVhZDo6Y3Jl
YXRlKHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCAqdGhpcywgKnRoaXMsIHN0YXJ0
TW9kZSwgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXIo
KSwgZG9jdW1lbnQuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmRlcHJlY2F0ZWRIZWFkZXJUeXBl
KCksIGRvY3VtZW50LnRvcE9yaWdpbigpKTsKICAgICB3b3JrZXJUaHJlYWRDcmVhdGVkKHRocmVh
ZCk7CiAgICAgdGhyZWFkLT5zdGFydCgpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkU3RhcnRXb3JrZXJHbG9iYWxTY29wZShtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuZ2V0KCks
IHRoaXMsIHNjcmlwdFVSTCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCShyZXZpc2lvbiAxNzc4NDgpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgwLDExICs4MCwxMCBAQCB1bnNpZ25lZCBX
b3JrZXJUaHJlYWQ6OndvcmtlclRocmVhZENvdW50CiBzdHJ1Y3QgV29ya2VyVGhyZWFkU3RhcnR1
cERhdGEgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdvcmtlclRocmVhZFN0YXJ0dXBEYXRh
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV29ya2VyVGhyZWFkU3Rh
cnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBj
b25zdCBHcm91cFNldHRpbmdzKiwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJl
YWRTdGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50
U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29u
c3QgU2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbik7CisgICAgV29ya2VyVGhyZWFkU3RhcnR1cERh
dGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlclRocmVhZFN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBj
b250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRTZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBj
b250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25zdCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2lu
KTsKIAogICAgIFVSTCBtX3NjcmlwdFVSTDsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7Ci0gICAg
c3RkOjp1bmlxdWVfcHRyPEdyb3VwU2V0dGluZ3M+IG1fZ3JvdXBTZXR0aW5nczsKICAgICBTdHJp
bmcgbV9zb3VyY2VDb2RlOwogICAgIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBtX3N0YXJ0TW9kZTsK
ICAgICBTdHJpbmcgbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CkBAIC05Miw3ICs5MSw3IEBAIHB1
YmxpYzoKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fdG9wT3JpZ2luOwogfTsKIAotV29y
a2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYg
c2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgR3JvdXBTZXR0aW5ncyog
c2V0dGluZ3MsIGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSwgV29ya2VyVGhyZWFkU3RhcnRNb2Rl
IHN0YXJ0TW9kZSwgY29uc3QgU3RyaW5nJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6SGVhZGVyVHlwZSBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCBjb25z
dCBTZWN1cml0eU9yaWdpbiogdG9wT3JpZ2luKQorV29ya2VyVGhyZWFkU3RhcnR1cERhdGE6Oldv
cmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUgc3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pCiAgICAgOiBtX3NjcmlwdFVSTChzY3JpcHRV
UkwuY29weSgpKQogICAgICwgbV91c2VyQWdlbnQodXNlckFnZW50Lmlzb2xhdGVkQ29weSgpKQog
ICAgICwgbV9zb3VyY2VDb2RlKHNvdXJjZUNvZGUuaXNvbGF0ZWRDb3B5KCkpCkBAIC0xMDEsMjAg
KzEwMCwxMyBAQCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29ya2VyVGhyZWFkU3RhCiAgICAg
LCBtX2NvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUoY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSkK
ICAgICAsIG1fdG9wT3JpZ2luKHRvcE9yaWdpbiA/ICZ0b3BPcmlnaW4tPmlzb2xhdGVkQ29weSgp
LmdldCgpIDogbnVsbHB0cikKIHsKLSAgICBpZiAoIXNldHRpbmdzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBtX2dyb3VwU2V0dGluZ3MgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyb3VwU2V0dGluZ3M+
KCk7Ci0gICAgbV9ncm91cFNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKHNldHRp
bmdzLT5sb2NhbFN0b3JhZ2VRdW90YUJ5dGVzKCkpOwotICAgIG1fZ3JvdXBTZXR0aW5ncy0+c2V0
SW5kZXhlZERCUXVvdGFCeXRlcyhzZXR0aW5ncy0+aW5kZXhlZERCUXVvdGFCeXRlcygpKTsKLSAg
ICBtX2dyb3VwU2V0dGluZ3MtPnNldEluZGV4ZWREQkRhdGFiYXNlUGF0aChzZXR0aW5ncy0+aW5k
ZXhlZERCRGF0YWJhc2VQYXRoKCkuaXNvbGF0ZWRDb3B5KCkpOwogfQogCi1Xb3JrZXJUaHJlYWQ6
OldvcmtlclRocmVhZChjb25zdCBVUkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdl
bnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqIHNldHRpbmdzLCBjb25zdCBTdHJpbmcmIHNvdXJjZUNv
ZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5n
UHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5LCBXb3JrZXJUaHJlYWRTdGFydE1vZGUgc3RhcnRN
b2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpIZWFkZXJUeXBlIGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luKiB0b3BPcmlnaW4pCitXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBXb3JrZXJSZXBv
cnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHksIFdvcmtlclRocmVhZFN0YXJ0TW9kZSBz
dGFydE1vZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2Vj
dXJpdHlQb2xpY3k6OkhlYWRlclR5cGUgY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4qIHRvcE9yaWdpbikKICAgICA6IG1fdGhyZWFkSUQoMCkKICAgICAsIG1f
d29ya2VyTG9hZGVyUHJveHkod29ya2VyTG9hZGVyUHJveHkpCiAgICAgLCBtX3dvcmtlclJlcG9y
dGluZ1Byb3h5KHdvcmtlclJlcG9ydGluZ1Byb3h5KQotICAgICwgbV9zdGFydHVwRGF0YShzdGQ6
Om1ha2VfdW5pcXVlPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPihzY3JpcHRVUkwsIHVzZXJBZ2Vu
dCwgc2V0dGluZ3MsIHNvdXJjZUNvZGUsIHN0YXJ0TW9kZSwgY29udGVudFNlY3VyaXR5UG9saWN5
LCBjb250ZW50U2VjdXJpdHlQb2xpY3lUeXBlLCB0b3BPcmlnaW4pKQorICAgICwgbV9zdGFydHVw
RGF0YShzdGQ6Om1ha2VfdW5pcXVlPFdvcmtlclRocmVhZFN0YXJ0dXBEYXRhPihzY3JpcHRVUkws
IHVzZXJBZ2VudCwgc291cmNlQ29kZSwgc3RhcnRNb2RlLCBjb250ZW50U2VjdXJpdHlQb2xpY3ks
IGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUsIHRvcE9yaWdpbikpCiAjaWYgRU5BQkxFKE5PVElG
SUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKICAgICAsIG1fbm90aWZp
Y2F0aW9uQ2xpZW50KDApCiAjZW5kaWYKQEAgLTE1OSw3ICsxNTEsNyBAQCB2b2lkIFdvcmtlclRo
cmVhZDo6d29ya2VyVGhyZWFkKCkKIAogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayht
X3RocmVhZENyZWF0aW9uTXV0ZXgpOwotICAgICAgICBtX3dvcmtlckdsb2JhbFNjb3BlID0gY3Jl
YXRlV29ya2VyR2xvYmFsU2NvcGUobV9zdGFydHVwRGF0YS0+bV9zY3JpcHRVUkwsIG1fc3RhcnR1
cERhdGEtPm1fdXNlckFnZW50LCBXVEY6Om1vdmUobV9zdGFydHVwRGF0YS0+bV9ncm91cFNldHRp
bmdzKSwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3RhcnR1cERh
dGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90b3BPcmln
aW4ucmVsZWFzZSgpKTsKKyAgICAgICAgbV93b3JrZXJHbG9iYWxTY29wZSA9IGNyZWF0ZVdvcmtl
ckdsb2JhbFNjb3BlKG1fc3RhcnR1cERhdGEtPm1fc2NyaXB0VVJMLCBtX3N0YXJ0dXBEYXRhLT5t
X3VzZXJBZ2VudCwgbV9zdGFydHVwRGF0YS0+bV9jb250ZW50U2VjdXJpdHlQb2xpY3ksIG1fc3Rh
cnR1cERhdGEtPm1fY29udGVudFNlY3VyaXR5UG9saWN5VHlwZSwgbV9zdGFydHVwRGF0YS0+bV90
b3BPcmlnaW4ucmVsZWFzZSgpKTsKIAogICAgICAgICBpZiAobV9ydW5Mb29wLnRlcm1pbmF0ZWQo
KSkgewogICAgICAgICAgICAgLy8gVGhlIHdvcmtlciB3YXMgdGVybWluYXRlZCBiZWZvcmUgdGhl
IHRocmVhZCBoYWQgYSBjaGFuY2UgdG8gcnVuLiBTaW5jZSB0aGUgY29udGV4dCBkaWRuJ3QgZXhp
c3QgeWV0LApJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCShyZXZpc2lv
biAxNzc4NDcpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjZGVmaW5lIFdvcmtlclRocmVhZF9oCiAKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKLSNpbmNsdWRlICJHcm91cFNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtNjksMTAgKzY4LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICNlbmRpZgogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3JrZXJUaHJlYWQoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IEdyb3VwU2V0dGluZ3MqLCAgY29u
c3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9ydGlu
Z1Byb3h5JiwgV29ya2VyVGhyZWFkU3RhcnRNb2RlLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRTZWN1
cml0eVBvbGljeSwgQ29udGVudFNlY3VyaXR5UG9saWN5OjpIZWFkZXJUeXBlLCBjb25zdCBTZWN1
cml0eU9yaWdpbiogdG9wT3JpZ2luKTsKKyAgICAgICAgV29ya2VyVGhyZWFkKGNvbnN0IFVSTCYs
IGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtl
ckxvYWRlclByb3h5JiwgV29ya2VyUmVwb3J0aW5nUHJveHkmLCBXb3JrZXJUaHJlYWRTdGFydE1v
ZGUsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OkhlYWRlclR5cGUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiB0b3BPcmlnaW4pOwogCiAg
ICAgICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3b3JrZXIgY29udGV4
dCBmb3IgdGhlIHRocmVhZC4KLSAgICAgICAgdmlydHVhbCBSZWY8V29ya2VyR2xvYmFsU2NvcGU+
IGNyZWF0ZVdvcmtlckdsb2JhbFNjb3BlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBzdGQ6OnVuaXF1ZV9wdHI8R3JvdXBTZXR0aW5ncz4sIGNvbnN0IFN0cmluZyYgY29udGVu
dFNlY3VyaXR5UG9saWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRvcE9yaWdpbikgPSAwOworICAgICAgICB2aXJ0dWFsIFJl
ZjxXb3JrZXJHbG9iYWxTY29wZT4gY3JlYXRlV29ya2VyR2xvYmFsU2NvcGUoY29uc3QgVVJMJiwg
Y29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgY29udGVudFNlY3VyaXR5UG9s
aWN5LCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkhlYWRlclR5cGUsIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IHRvcE9yaWdpbikgPSAwOwogCiAgICAgICAgIC8vIEV4ZWN1dGVzIHRoZSBldmVu
dCBsb29wIGZvciB0aGUgd29ya2VyIHRocmVhZC4gRGVyaXZlZCBjbGFzc2VzIGNhbiBvdmVycmlk
ZSB0byBwZXJmb3JtIGFjdGlvbnMgYmVmb3JlL2FmdGVyIGVudGVyaW5nIHRoZSBldmVudCBsb29w
LgogICAgICAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wKCk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAxNzc4NTUpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMiBAQAorMjAxNS0wMS0wMSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJlbW92ZSBHcm91cFNldHRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAwMzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdW51c2VkIGRhdGFiYXNlRGlyZWN0
b3J5SWRlbnRpZmllciBwYXJhbWV0ZXJzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCRmFjdG9yeUJhY2tlbmQ6OldlYklEQkZhY3RvcnlCYWNrZW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERhdGFiYXNlTmFtZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHA6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUlEQkZh
Y3RvcnlCYWNrZW5kKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oOgorCiAyMDE1LTAxLTAxICBKZWZmIE1pbGxlciAgPGplZmZtQGFw
cGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdXNlci12aXNpYmxlIGNvcHlyaWdodCBzdHJpbmdz
IHRvIGluY2x1ZGUgMjAxNQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJh
Y2tlbmQuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRpYyBTdHJpbmcgY29tYmluZWRTZWN1cml0eU9yaWdp
bklkZW4KICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwogfQogCi1XZWJJREJG
YWN0b3J5QmFja2VuZDo6V2ViSURCRmFjdG9yeUJhY2tlbmQoY29uc3QgU3RyaW5nJikKK1dlYklE
QkZhY3RvcnlCYWNrZW5kOjpXZWJJREJGYWN0b3J5QmFja2VuZCgpCiB7CiB9CiAKQEAgLTg4LDcg
Kzg4LDcgQEAgV2ViSURCRmFjdG9yeUJhY2tlbmQ6On5XZWJJREJGYWN0b3J5QmFjawogewogfQog
Ci12b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpnZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luLCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmKQordm9pZCBXZWJJREJGYWN0b3J5QmFj
a2VuZDo6Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tz
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG1haW5GcmFtZU9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKIHsK
ICAgICBMT0coSURCLCAiV2ViSURCRmFjdG9yeUJhY2tlbmQ6OmdldERhdGFiYXNlTmFtZXMiKTsK
IApAQCAtMTQ2LDcgKzE0Niw3IEBAIHZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4oY29u
c3QgU3QKICAgICBkYXRhYmFzZUJhY2tlbmQtPm9wZW5Db25uZWN0aW9uKGNhbGxiYWNrcywgZGF0
YWJhc2VDYWxsYmFja3MsIHRyYW5zYWN0aW9uSWQsIHZlcnNpb24pOwogfQogCi12b2lkIFdlYklE
QkZhY3RvcnlCYWNrZW5kOjpkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiBtYWluRnJhbWVPcmlnaW4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3Ms
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJpbmcmKQordm9pZCBXZWJJREJGYWN0
b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYg
bWFpbkZyYW1lT3JpZ2luLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwog
ICAgIExPRyhJREIsICJXZWJJREJGYWN0b3J5QmFja2VuZDo6ZGVsZXRlRGF0YWJhc2UiKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJG
YWN0b3J5QmFja2VuZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
RGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oCShyZXZpc2lvbiAxNzc4
NDcpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2Vi
SURCRmFjdG9yeUJhY2tlbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTggKzM1LDE4IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJREJGYWN0b3J5QmFja2VuZCBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViSURCRmFjdG9yeUJhY2tlbmQ+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdl
YklEQkZhY3RvcnlCYWNrZW5kKGRhdGFiYXNlRGlyZWN0b3J5SWRlbnRpZmllcikpOyB9CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViSURCRmFjdG9yeUJhY2tlbmQ+IGNyZWF0ZSgpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBXZWJJREJGYWN0b3J5QmFja2VuZCk7IH0KIAogICAgIHZpcnR1YWwgfldl
YklEQkZhY3RvcnlCYWNrZW5kKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1l
cyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYg
bWFpbkZyYW1lT3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
U3RyaW5nJiBkYXRhRGlyKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VO
YW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgbWFpbkZyYW1lT3JpZ2luLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRf
dCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFs
IHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mIG1haW5GcmFtZU9yaWdpbiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJREJDYWxsYmFja3M+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3Zl
cnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0
IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgV2ViSURCRmFjdG9yeUJhY2tlbmQoY29uc3QgU3RyaW5nJiBkYXRhYmFzZURpcmVjdG9y
eUlkZW50aWZpZXIpOworICAgIGV4cGxpY2l0IFdlYklEQkZhY3RvcnlCYWNrZW5kKCk7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
U3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VJbXBsLmNwcAkocmV2aXNp
b24gMTc3ODQ3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VO
YW1lc3BhY2VJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1
ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBQcm94eS5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0dyb3VwU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiAxNzc4NDcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIwNiwxMyArMjA2LDEzIEBAIEFic3RyYWN0RGF0YWJhc2VTZXJ2ZXIq
IFdlYlBsYXRmb3JtU3RyYXQKICNlbmRpZiAvLyBFTkFCTEUoU1FMX0RBVEFCQVNFKQogCiAjaWYg
RU5BQkxFKElOREVYRURfREFUQUJBU0UpCi1QYXNzUmVmUHRyPElEQkZhY3RvcnlCYWNrZW5kSW50
ZXJmYWNlPiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNyZWF0ZUlEQkZhY3RvcnlCYWNrZW5kKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnlJZGVudGlmaWVyKQorUGFzc1JlZlB0cjxJREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVJREJG
YWN0b3J5QmFja2VuZCgpCiB7CiAjaWYgIUVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQotICAgIHJl
dHVybiBEYXRhYmFzZVN0cmF0ZWd5OjpjcmVhdGVJREJGYWN0b3J5QmFja2VuZChkYXRhYmFzZURp
cmVjdG9yeUlkZW50aWZpZXIpOworICAgIHJldHVybiBEYXRhYmFzZVN0cmF0ZWd5OjpjcmVhdGVJ
REJGYWN0b3J5QmFja2VuZCgpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gV2ViSURCRmFjdG9yeUJh
Y2tlbmQ6OmNyZWF0ZShkYXRhYmFzZURpcmVjdG9yeUlkZW50aWZpZXIpOworICAgIHJldHVybiBX
ZWJJREJGYWN0b3J5QmFja2VuZDo6Y3JlYXRlKCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2
aXNpb24gMTc3ODQ3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6QWJzdHJhY3REYXRhYmFzZVNlcnZlciog
Z2V0RGF0YWJhc2VTZXJ2ZXIoKSBvdmVycmlkZTsKICNlbmRpZgogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJGYWN0b3J5QmFj
a2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJhY2tlbmQoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZURpcmVjdG9yeUlkZW50aWZpZXIpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZT4gY3JlYXRlSURCRmFjdG9yeUJh
Y2tlbmQoKSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6TG9hZGVyU3RyYXRl
Z3kKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDE3Nzg0
NykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTgxLDYgKzE4MSw4IEBACiAjaW1wb3J0IDxXZWJDb3JlL1RocmVhZENoZWNrLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQ29udGVu
dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVXNlclNjcmlwdC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9Vc2VyU3R5bGVTaGVldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlT2JqQ0V4
dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVmlldy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9XaWRnZXQuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>