<?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>258932</bug_id>
          
          <creation_ts>2023-07-06 08:22:42 -0700</creation_ts>
          <short_desc>REGRESSION(265800@main): Broke the build for the bots</short_desc>
          <delta_ts>2023-07-06 08:30:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>258924</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>rackler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1965353</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-07-06 08:22:42 -0700</bug_when>
    <thetext>https://commits.webkit.org/265800@main introduced a regression:
Broke the build for the bots

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965355</commentid>
    <comment_count>1</comment_count>
      <attachid>466950</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2023-07-06 08:22:50 -0700</bug_when>
    <thetext>Created attachment 466950
REVERT of 265800@main

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965356</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-07-06 08:29:10 -0700</bug_when>
    <thetext>Committed 265802@main (9ea2a85cc6c2): &lt;https://commits.webkit.org/265802@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 466950.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1965357</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-07-06 08:30:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/111850592&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>466950</attachid>
            <date>2023-07-06 08:22:50 -0700</date>
            <delta_ts>2023-07-06 08:29:11 -0700</delta_ts>
            <desc>REVERT of 265800@main</desc>
            <filename>bug-258932-20230706152249.patch</filename>
            <type>text/plain</type>
            <size>58539</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">RnJvbSA5ZmVhNjM0NmIzYjYxZjliZmViYWNhNGM4NDRhMzIwMzBmMzQ0NjdiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBDb21taXQgUXVldWUgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgpEYXRlOiBUaHUsIDYgSnVsIDIwMjMgMTU6MjI6NDcgKzAwMDAKU3ViamVjdDogW1BBVENIXSBV
bnJldmlld2VkLCByZXZlcnRpbmcgMjY1ODAwQG1haW4uCiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjU4OTMyCgpCcm9rZSB0aGUgYnVpbGQgZm9yIHRoZSBib3RzCgpS
ZXZlcnRlZCBjaGFuZ2VzZXQ6CgoiVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIDI2NTU4NkBtYWluLiIK
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1ODkyNApodHRwczovL2Nv
bW1pdHMud2Via2l0Lm9yZy8yNjU4MDBAbWFpbgotLS0KIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
TWFrZUxpc3RzLnR4dCAgICAgICAgICB8ICAgMSArCiAuLi4vSmF2YVNjcmlwdENvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiAgfCAgIDQgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0NvZGVCbG9jay5jcHAgIHwgIDEzICstLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNv
ZGUuY3BwICAgICAgICAgICAgIHwgIDEyICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29k
ZS5oICAgICAgICAgICAgICAgfCAgIDUgKy0KIC4uLi9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rl
U2VxdWVuY2UuY3BwICAgICB8ICAyOCArKy0tLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNv
ZGVTZXF1ZW5jZS5oICAgICAgIHwgICA0ICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29k
ZXMuY3BwICAgICAgICAgICAgfCAgMjkgKysrLS0KIC4uLi9wcm9maWxlci9Qcm9maWxlckJ5dGVj
b2Rlcy5oICAgICAgICAgICAgICB8ICAgMiArLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGls
YXRpb24uY3BwICAgICAgICAgIHwgMTA5ICsrKysrKystLS0tLS0tLS0tLQogLi4uL3Byb2ZpbGVy
L1Byb2ZpbGVyQ29tcGlsYXRpb24uaCAgICAgICAgICAgIHwgICAzICstCiAuLi4vcHJvZmlsZXIv
UHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcCAgICAgfCAgMTQgKy0tCiAuLi4vcHJvZmlsZXIv
UHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmggICAgICAgfCAgIDYgKy0KIC4uLi9wcm9maWxlci9Q
cm9maWxlckRhdGFiYXNlLmNwcCAgICAgICAgICAgICB8ICA3MyArKysrLS0tLS0tLS0KIC4uLi9w
cm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmggICAgICAgICAgICAgICB8ICAxNiArLS0KIC4uLi9K
YXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckR1bXBlci5oICB8ICA5NSArKysrKysrKysr
KysrKysKIC4uLi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmNwcCB8ICAy
MCArKy0tCiAuLi4vSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5oICAgfCAg
IDMgKy0KIC4uLi9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuY3BwICAgICAgICAgICAgICB8ICAx
NyArKy0KIC4uLi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXQuaCB8ICAg
NSArLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwICAgICAgICAgIHwgIDEz
ICstLQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuaCAgICAgICAgICAgIHwgICA1
ICstCiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJPcmlnaW4uY3BwICAgICAgICAgICAgICAgfCAgMTAg
Ky0KIC4uLi9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5oICB8ICAgMyAr
LQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suY3BwICAgICAgICAgIHwgIDE1ICst
LQogLi4uL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suaCAgICAgICAgICAgIHwgICAzICst
CiAuLi4vcHJvZmlsZXIvUHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5jcHAgICAgfCAgMTIgKy0K
IC4uLi9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0ZWNvZGVzLmggICAgICB8ICAgMiArLQog
Li4uL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyVUlELmNwcCAgIHwgICA0ICstCiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaCAgfCAgIDYgKy0KIC4u
Li9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmggICAgICAgICAgICAgICB8ICAyOCAtLS0tLQog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaCAgIHwgICAyICsKIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCAgICAgICAgICB8ICAxNCArKy0KIFNv
dXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuY3BwICAgICAgICAgICAgICAgICB8IDEwMyArKysrKysr
KystLS0tLS0tLQogU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oICAgICAgICAgICAgICAgICAg
IHwgICA3ICstCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAg
fCAgIDIgKy0KIDM2IGZpbGVzIGNoYW5nZWQsIDM1NCBpbnNlcnRpb25zKCspLCAzMzQgZGVsZXRp
b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyRHVtcGVyLmgKCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YjlkNzgwZjAyZTRiLi5hNjRjMDliNWQ0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTkzMCw2ICs5MzAsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFN
RVdPUktfSEVBREVSUwogICAgIHByb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb25LaW5kLmgKICAg
ICBwcm9maWxlci9Qcm9maWxlckNvbXBpbGVkQnl0ZWNvZGUuaAogICAgIHByb2ZpbGVyL1Byb2Zp
bGVyRGF0YWJhc2UuaAorICAgIHByb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmgKICAgICBwcm9maWxl
ci9Qcm9maWxlckV2ZW50LmgKICAgICBwcm9maWxlci9Qcm9maWxlckV4ZWN1dGlvbkNvdW50ZXIu
aAogICAgIHByb2ZpbGVyL1Byb2ZpbGVySmV0dGlzb25SZWFzb24uaApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAzOTYwOTYyMGVmMTguLjE0ZjJmMjg3YjdkNCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTE5NDEsNiArMTk0MSw3IEBACiAJCUUzQkZBNUQwMjFFODUz
QTEwMDlDMEVCQSAvKiBERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkZBNUNEMjFFODUzQTEwMDlDMEVCQSAv
KiBERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaCAqLzsgfTsKIAkJRTNCRkQwQkMxREFGODA4RTAw
NjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JGRDBCQTFEQUY4MDdDMDA2NURFQTIgLyogQWNj
ZXNzQ2FzZVNuaXBwZXRQYXJhbXMuaCAqLzsgfTsKIAkJRTNDMDkxRTkyOUIwN0Q0QzAwQ0Q2RDk3
IC8qIFdhc21CQlFKSVQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkVENUZBMzMyOUEwODU5QzAwNzk4QTdGIC8qIFdhc21CQlFKSVQuY3BwICovOyB9
OworCQlFM0MwRUNDQTJBNEMwMUU5MDAyQzlEMkIgLyogUHJvZmlsZXJEdW1wZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzBFQ0M5MkE0QzAxRTgw
MDJDOUQyQiAvKiBQcm9maWxlckR1bXBlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUUzQzI5NUREMUVEMkNCREEwMEQzMDE2RiAvKiBPYmplY3RQ
cm9wZXJ0eUNoYW5nZUFkYXB0aXZlV2F0Y2hwb2ludC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDMjk1REMxRUQyQ0JBQTAwRDMwMTZGIC8qIE9iamVj
dFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50LmggKi87IH07CiAJCUUzQzQxMzFEMjg5
RTA4RUEwMDExNTBGOCAvKiBTeW50aGV0aWNNb2R1bGVSZWNvcmQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzQxMzFDMjg5RTA4RTUwMDExNTBGOCAv
KiBTeW50aGV0aWNNb2R1bGVSZWNvcmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFM0M2OTRCMzIzMDI2ODc3MDA2RkJFNDIgLyogV2FzbU9TUkVu
dHJ5RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNDNjk0QjEyMzAyNjg3MzAwNkZCRTQyIC8qIFdhc21PU1JFbnRyeURhdGEuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ3Miw2ICs1NDczLDcg
QEAKIAkJRTNCRkE1Q0QyMUU4NTNBMTAwOUMwRUJBIC8qIERGR0Rlc2lyZWRHbG9iYWxQcm9wZXJ0
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEZXNpcmVkR2xvYmFsUHJv
cGVydHkuaDsgcGF0aCA9IGRmZy9ERkdEZXNpcmVkR2xvYmFsUHJvcGVydHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRkQwQjkxREFGODA3QzAwNjVERUEyIC8qIEFjY2Vzc0Nh
c2VTbmlwcGV0UGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNCRkQwQkExREFGODA3QzAwNjVERUEyIC8qIEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1zLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjY2Vzc0Nhc2VTbmlwcGV0UGFyYW1z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQzBFQ0M5MkE0QzAxRTgwMDJDOUQy
QiAvKiBQcm9maWxlckR1bXBlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBQ
cm9maWxlckR1bXBlci5oOyBwYXRoID0gcHJvZmlsZXIvUHJvZmlsZXJEdW1wZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDMjk1REMxRUQyQ0JBQTAwRDMwMTZGIC8qIE9iamVj
dFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IE9iamVjdFByb3BlcnR5Q2hhbmdlQWRhcHRpdmVXYXRjaHBvaW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQzQxMzFCMjg5RTA4RTUwMDExNTBGOCAvKiBT
eW50aGV0aWNNb2R1bGVSZWNvcmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3ludGhldGljTW9k
dWxlUmVjb3JkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNDNDEzMUMyODlF
MDhFNTAwMTE1MEY4IC8qIFN5bnRoZXRpY01vZHVsZVJlY29yZC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
eW50aGV0aWNNb2R1bGVSZWNvcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg4
MzcsNiArODgzOSw3IEBACiAJCQkJMEZGNzI5OUIxNjZBRDM0NzAwMEY1QkEzIC8qIFByb2ZpbGVy
Q29tcGlsZWRCeXRlY29kZS5oICovLAogCQkJCTBGRjcyOTlDMTY2QUQzNDcwMDBGNUJBMyAvKiBQ
cm9maWxlckRhdGFiYXNlLmNwcCAqLywKIAkJCQkwRkY3Mjk5RDE2NkFEMzQ3MDAwRjVCQTMgLyog
UHJvZmlsZXJEYXRhYmFzZS5oICovLAorCQkJCUUzQzBFQ0M5MkE0QzAxRTgwMDJDOUQyQiAvKiBQ
cm9maWxlckR1bXBlci5oICovLAogCQkJCURDNjA1QjU5MUNFMjZFOTgwMDU5MzcxOCAvKiBQcm9m
aWxlckV2ZW50LmNwcCAqLywKIAkJCQlEQzYwNUI1QTFDRTI2RTk4MDA1OTM3MTggLyogUHJvZmls
ZXJFdmVudC5oICovLAogCQkJCTBGRjcyOTlFMTY2QUQzNDcwMDBGNUJBMyAvKiBQcm9maWxlckV4
ZWN1dGlvbkNvdW50ZXIuaCAqLywKQEAgLTEwOTcxLDYgKzEwOTc0LDcgQEAKIAkJCQkwRkY3MjlC
QjE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJDb21waWxhdGlvbktpbmQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRjcyOUJDMTY2QUQzNjAwMDBGNUJBMyAvKiBQcm9maWxlckNvbXBpbGVkQnl0
ZWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjcyOUJEMTY2QUQzNjAwMDBGNUJBMyAvKiBQ
cm9maWxlckRhdGFiYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0MwRUNDQTJBNEMwMUU5MDAy
QzlEMkIgLyogUHJvZmlsZXJEdW1wZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCURDNjA1QjVFMUNF
MjZFQTIwMDU5MzcxOCAvKiBQcm9maWxlckV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY3
MjlCRTE2NkFEMzYwMDAwRjVCQTMgLyogUHJvZmlsZXJFeGVjdXRpb25Db3VudGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjE5MENBRDE4OUQ4MkY2MDAwQUU1RjAgLyogUHJvZmlsZXJKZXR0aXNv
blJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Db2RlQmxvY2suY3BwCmluZGV4IDRlYWU0MDAyODc1NC4uODc3ZjQ3ODA5ZjllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtMTQwLDE2ICsx
NDAsMTEgQEAgQ1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVGb3JUb29scygpIGNvbnN0CiB7
CiAgICAgaWYgKGNvZGVUeXBlKCkgIT0gRnVuY3Rpb25Db2RlKQogICAgICAgICByZXR1cm4gb3du
ZXJFeGVjdXRhYmxlKCktPnNvdXJjZSgpLnRvVVRGOCgpOwotICAgIAotICAgIFNvdXJjZVByb3Zp
ZGVyKiBwcm92aWRlciA9IHNvdXJjZSgpLnByb3ZpZGVyKCk7CisKICAgICBGdW5jdGlvbkV4ZWN1
dGFibGUqIGV4ZWN1dGFibGUgPSBqc0Nhc3Q8RnVuY3Rpb25FeGVjdXRhYmxlKj4ob3duZXJFeGVj
dXRhYmxlKCkpOwotICAgIFVubGlua2VkRnVuY3Rpb25FeGVjdXRhYmxlKiB1bmxpbmtlZCA9IGV4
ZWN1dGFibGUtPnVubGlua2VkRXhlY3V0YWJsZSgpOwotICAgIHVuc2lnbmVkIHVubGlua2VkU3Rh
cnRPZmZzZXQgPSB1bmxpbmtlZC0+c3RhcnRPZmZzZXQoKTsKLSAgICB1bnNpZ25lZCBsaW5rZWRT
dGFydE9mZnNldCA9IGV4ZWN1dGFibGUtPnNvdXJjZSgpLnN0YXJ0T2Zmc2V0KCk7Ci0gICAgaW50
IGRlbHRhID0gbGlua2VkU3RhcnRPZmZzZXQgLSB1bmxpbmtlZFN0YXJ0T2Zmc2V0OwotICAgIHVu
c2lnbmVkIHJhbmdlU3RhcnQgPSBkZWx0YSArIHVubGlua2VkLT51bmxpbmtlZEZ1bmN0aW9uU3Rh
cnQoKTsKLSAgICB1bnNpZ25lZCByYW5nZUVuZCA9IGRlbHRhICsgdW5saW5rZWQtPnN0YXJ0T2Zm
c2V0KCkgKyB1bmxpbmtlZC0+c291cmNlTGVuZ3RoKCk7Ci0gICAgcmV0dXJuIHByb3ZpZGVyLT5z
b3VyY2UoKS5zdWJzdHJpbmcocmFuZ2VTdGFydCwgcmFuZ2VFbmQgLSByYW5nZVN0YXJ0KS51dGY4
KCk7CisgICAgcmV0dXJuIGV4ZWN1dGFibGUtPnNvdXJjZSgpLnByb3ZpZGVyKCktPmdldFJhbmdl
KAorICAgICAgICBleGVjdXRhYmxlLT5mdW5jdGlvblN0YXJ0KCksCisgICAgICAgIGV4ZWN1dGFi
bGUtPnBhcmFtZXRlcnNTdGFydE9mZnNldCgpICsgZXhlY3V0YWJsZS0+c291cmNlKCkubGVuZ3Ro
KCkpLnV0ZjgoKTsKIH0KIAogQ1N0cmluZyBDb2RlQmxvY2s6OnNvdXJjZUNvZGVPbk9uZUxpbmUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2Zp
bGVyQnl0ZWNvZGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Qnl0ZWNvZGUuY3BwCmluZGV4IDVhODc4NTI2NjNhMi4uMTI4ZWJmYmMxNGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuY3BwCkBA
IC0yOSwxNiArMjksMTYgQEAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0Q29uc3RydWN0b3IuaCIKICNpbmNsdWRlICJPcGNvZGUuaCIKKyNpbmNsdWRlICJQcm9maWxl
ckR1bXBlci5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAotSlNW
YWx1ZSBCeXRlY29kZTo6dG9KUyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAor
UmVmPEpTT046OlZhbHVlPiBCeXRlY29kZTo6dG9KU09OKER1bXBlciYgZHVtcGVyKSBjb25zdAog
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBKU09iamVjdCogcmVzdWx0
ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xvYmFsT2JqZWN0KTsKLSAgICByZXN1bHQtPnB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Ynl0ZWNvZGVJbmRleCwganNOdW1iZXIobV9ieXRl
Y29kZUluZGV4KSk7Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
Pm9wY29kZSwganNTdHJpbmcodm0sIFN0cmluZzo6ZnJvbVVURjgob3Bjb2RlTmFtZXNbbV9vcGNv
ZGVJRF0pKSk7Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmRl
c2NyaXB0aW9uLCBqc1N0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChtX2Rlc2NyaXB0aW9uKSkp
OworICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQt
PnNldERvdWJsZShkdW1wZXIua2V5cygpLm1fYnl0ZWNvZGVJbmRleCwgbV9ieXRlY29kZUluZGV4
KTsKKyAgICByZXN1bHQtPnNldFN0cmluZyhkdW1wZXIua2V5cygpLm1fb3Bjb2RlLCBTdHJpbmc6
OmZyb21VVEY4KG9wY29kZU5hbWVzW21fb3Bjb2RlSURdKSk7CisgICAgcmVzdWx0LT5zZXRTdHJp
bmcoZHVtcGVyLmtleXMoKS5tX2Rlc2NyaXB0aW9uLCBTdHJpbmc6OmZyb21VVEY4KG1fZGVzY3Jp
cHRpb24pKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZS5oIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGUuaAppbmRleCAwN2JiOWU1NjI1YTEuLjNj
ZmI4OGNiYzA1ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQnl0ZWNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJCeXRlY29kZS5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KIAogbmFtZXNwYWNlIEpTQyB7CkBAIC0zNCw2ICszNSw4IEBA
IGVudW0gT3Bjb2RlSUQgOiB1bnNpZ25lZDsKIAogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAorY2xh
c3MgRHVtcGVyOworCiBjbGFzcyBCeXRlY29kZSB7CiBwdWJsaWM6CiAgICAgQnl0ZWNvZGUoKQpA
QCAtNTIsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgT3Bjb2RlSUQgb3Bjb2RlSUQoKSBjb25zdCB7
IHJldHVybiBtX29wY29kZUlEOyB9CiAgICAgY29uc3QgQ1N0cmluZyYgZGVzY3JpcHRpb24oKSBj
b25zdCB7IHJldHVybiBtX2Rlc2NyaXB0aW9uOyB9CiAgICAgCi0gICAgSlNWYWx1ZSB0b0pTKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7CisgICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVy
JikgY29uc3Q7CiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fYnl0ZWNvZGVJbmRleDsKICAgICBP
cGNvZGVJRCBtX29wY29kZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3By
b2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmNwcAppbmRleCBiZTlkYzE3MTgw
ZDYuLjRmY2NmNzJkMjMxMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5jZS5jcHAKQEAgLTc0LDI1ICs3NCwx
NyBAQCBjb25zdCBCeXRlY29kZSYgQnl0ZWNvZGVTZXF1ZW5jZTo6Zm9yQnl0ZWNvZGVJbmRleCh1
bnNpZ25lZCBieXRlY29kZUluZGV4KSBjb25zdAogICAgIHJldHVybiBhdChpbmRleEZvckJ5dGVj
b2RlSW5kZXgoYnl0ZWNvZGVJbmRleCkpOwogfQogCi12b2lkIEJ5dGVjb2RlU2VxdWVuY2U6OmFk
ZFNlcXVlbmNlUHJvcGVydGllcyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU09iamVj
dCogcmVzdWx0KSBjb25zdAordm9pZCBCeXRlY29kZVNlcXVlbmNlOjphZGRTZXF1ZW5jZVByb3Bl
cnRpZXMoRHVtcGVyJiBkdW1wZXIsIEpTT046Ok9iamVjdCYgcmVzdWx0KSBjb25zdAogewotICAg
IFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRSh2bSk7Ci0gICAgSlNBcnJheSogaGVhZGVyID0gY29uc3RydWN0RW1wdHlBcnJh
eShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faGVhZGVyLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIGhlYWRlci0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCBq
c1N0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChtX2hlYWRlcltpXSkpKTsKLSAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAgcmVzdWx0LT5wdXRE
aXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmhlYWRlciwgaGVhZGVyKTsKLSAgICAKLSAgICBK
U0FycmF5KiBzZXF1ZW5jZSA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxs
cHRyKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBtX3NlcXVlbmNlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIHNl
cXVlbmNlLT5wdXREaXJlY3RJbmRleChnbG9iYWxPYmplY3QsIGksIG1fc2VxdWVuY2VbaV0udG9K
UyhnbG9iYWxPYmplY3QpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKLSAgICB9Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMt
PmJ5dGVjb2RlLCBzZXF1ZW5jZSk7CisgICAgYXV0byBoZWFkZXIgPSBKU09OOjpBcnJheTo6Y3Jl
YXRlKCk7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faGVhZGVyLnNpemUoKTsgKytp
KQorICAgICAgICBoZWFkZXItPnB1c2hTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChtX2hlYWRlcltp
XSkpOworICAgIHJlc3VsdC5zZXRWYWx1ZShkdW1wZXIua2V5cygpLm1faGVhZGVyLCBXVEZNb3Zl
KGhlYWRlcikpOworCisgICAgYXV0byBzZXF1ZW5jZSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zZXF1ZW5jZS5zaXplKCk7ICsraSkKKyAg
ICAgICAgc2VxdWVuY2UtPnB1c2hWYWx1ZShtX3NlcXVlbmNlW2ldLnRvSlNPTihkdW1wZXIpKTsK
KyAgICByZXN1bHQuc2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2RlLCBXVEZNb3ZlKHNl
cXVlbmNlKSk7CiB9CiAKIH0gfSAvLyBuYW1lc3BhY2UgSlNDOjpQcm9maWxlcgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5j
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1
ZW5jZS5oCmluZGV4IDM4ODk0NGZmOTVhMi4uNjE2Yzc1NDAwZDUwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZVNlcXVlbmNlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVTZXF1ZW5j
ZS5oCkBAIC0zNiw2ICszNiw4IEBAIGNsYXNzIENvZGVCbG9jazsKIAogbmFtZXNwYWNlIFByb2Zp
bGVyIHsKIAorY2xhc3MgRHVtcGVyOworCiBjbGFzcyBCeXRlY29kZVNlcXVlbmNlIHsKIHB1Ymxp
YzoKICAgICBCeXRlY29kZVNlcXVlbmNlKENvZGVCbG9jayopOwpAQCAtNDksNyArNTEsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgQnl0ZWNvZGUmIGZvckJ5dGVjb2RlSW5kZXgodW5zaWduZWQgYnl0
ZWNvZGVJbmRleCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIGFkZFNlcXVlbmNlUHJv
cGVydGllcyhKU0dsb2JhbE9iamVjdCosIEpTT2JqZWN0KikgY29uc3Q7CisgICAgdm9pZCBhZGRT
ZXF1ZW5jZVByb3BlcnRpZXMoRHVtcGVyJiwgSlNPTjo6T2JqZWN0JikgY29uc3Q7CiAgICAgCiBw
cml2YXRlOgogICAgIFZlY3RvcjxDU3RyaW5nPiBtX2hlYWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZXMuY3BwCmluZGV4IDYzYzJi
NjVjY2E0My4uYzAwZGQ4OWEyM2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJCeXRlY29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5jcHAKQEAgLTI5LDcgKzI5LDkgQEAKICNpbmNs
dWRlICJDb2RlQmxvY2suaCIKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiAjaW5jbHVkZSAiT2Jq
ZWN0Q29uc3RydWN0b3IuaCIKKyNpbmNsdWRlICJQcm9maWxlckR1bXBlci5oIgogI2luY2x1ZGUg
PHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgorI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rl
ck5hbWVzLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewogCkBAIC01
MCwxOCArNTIsMjMgQEAgdm9pZCBCeXRlY29kZXM6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29u
c3QKICAgICBvdXQucHJpbnQoIiMiLCBtX2hhc2gsICIoIiwgbV9pZCwgIikiKTsKIH0KIAotSlNW
YWx1ZSBCeXRlY29kZXM6OnRvSlMoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QK
K1JlZjxKU09OOjpWYWx1ZT4gQnl0ZWNvZGVzOjp0b0pTT04oRHVtcGVyJiBkdW1wZXIpIGNvbnN0
CiB7Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIEpTT2JqZWN0KiByZXN1
bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxPYmplY3QpOwotICAgIAotICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5ieXRlY29kZXNJRCwganNOdW1iZXIo
bV9pZCkpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pbmZl
cnJlZE5hbWUsIGpzU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KG1faW5mZXJyZWROYW1lKSkp
OwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5zb3VyY2VDb2Rl
LCBqc1N0cmluZyh2bSwgU3RyaW5nOjpmcm9tVVRGOChtX3NvdXJjZUNvZGUpKSk7Ci0gICAgcmVz
dWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmhhc2gsIGpzU3RyaW5nKHZtLCBT
dHJpbmc6OmZyb21VVEY4KHRvQ1N0cmluZyhtX2hhc2gpKSkpOwotICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5pbnN0cnVjdGlvbkNvdW50LCBqc051bWJlcihtX2lu
c3RydWN0aW9uQ291bnQpKTsKLSAgICBhZGRTZXF1ZW5jZVByb3BlcnRpZXMoZ2xvYmFsT2JqZWN0
LCByZXN1bHQpOwotICAgIAorICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUo
KTsKKworICAgIHJlc3VsdC0+c2V0RG91YmxlKGR1bXBlci5rZXlzKCkubV9ieXRlY29kZXNJRCwg
bV9pZCk7CisgICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtleXMoKS5tX2luZmVycmVkTmFt
ZSwgU3RyaW5nOjpmcm9tVVRGOChtX2luZmVycmVkTmFtZSkpOworICAgIFN0cmluZyBzb3VyY2VD
b2RlID0gU3RyaW5nOjpmcm9tVVRGOChtX3NvdXJjZUNvZGUpOworICAgIGlmIChPcHRpb25zOjph
YmJyZXZpYXRlU291cmNlQ29kZUZvclByb2ZpbGVyKCkpIHsKKyAgICAgICAgdW5zaWduZWQgc2l6
ZSA9IE9wdGlvbnM6OmFiYnJldmlhdGVTb3VyY2VDb2RlRm9yUHJvZmlsZXIoKTsKKyAgICAgICAg
aWYgKHNvdXJjZUNvZGUubGVuZ3RoKCkgPiBzaXplKQorICAgICAgICAgICAgc291cmNlQ29kZSA9
IG1ha2VTdHJpbmcoU3RyaW5nVmlldyhzb3VyY2VDb2RlKS5sZWZ0KHNpemUgLSAxKSwgaG9yaXpv
bnRhbEVsbGlwc2lzKTsKKyAgICB9CisgICAgcmVzdWx0LT5zZXRTdHJpbmcoZHVtcGVyLmtleXMo
KS5tX3NvdXJjZUNvZGUsIFdURk1vdmUoc291cmNlQ29kZSkpOworICAgIHJlc3VsdC0+c2V0U3Ry
aW5nKGR1bXBlci5rZXlzKCkubV9oYXNoLCBTdHJpbmc6OmZyb21VVEY4KHRvQ1N0cmluZyhtX2hh
c2gpKSk7CisgICAgcmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX2luc3RydWN0aW9u
Q291bnQsIG1faW5zdHJ1Y3Rpb25Db3VudCk7CisgICAgYWRkU2VxdWVuY2VQcm9wZXJ0aWVzKGR1
bXBlciwgcmVzdWx0LmdldCgpKTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQnl0ZWNvZGVzLmgKaW5kZXgg
ODhmNjZiNjEwOGU2Li42Y2EyZDIwNjA4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckJ5dGVjb2Rlcy5oCkBAIC00Niw3ICs0Niw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwogICAgIAotICAgIEpTVmFs
dWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9K
U09OKER1bXBlciYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBzaXplX3QgbV9pZDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0
aW9uLmNwcAppbmRleCA3MzVjMWRlNTI2ZjUuLjFiZGY4NWQ1MzkwZCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckNvbXBpbGF0aW9uLmNwcApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmpl
Y3RDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIlByb2ZpbGVyRGF0YWJhc2UuaCIKKyNpbmNsdWRl
ICJQcm9maWxlckR1bXBlci5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgog
CiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKQEAgLTExMCw3NiArMTExLDUw
IEBAIHZvaWQgQ29tcGlsYXRpb246OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QKICAgICBv
dXQucHJpbnQoIkNvbXAiLCBtX3VpZCk7CiB9CiAKLUpTVmFsdWUgQ29tcGlsYXRpb246OnRvSlMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK1JlZjxKU09OOjpWYWx1ZT4gQ29t
cGlsYXRpb246OnRvSlNPTihEdW1wZXImIGR1bXBlcikgY29uc3QKIHsKLSAgICBWTSYgdm0gPSBn
bG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9iYWxP
YmplY3QpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmJ5dGVjb2Rlc0lELCBqc051bWJlciht
X2J5dGVjb2Rlcy0+aWQoKSkpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5jb21waWxhdGlvbktpbmQsIGpzU3RyaW5nKHZtLCBTdHJpbmc6OmZyb21VVEY4KHRv
Q1N0cmluZyhtX2tpbmQpKSkpOwotICAgIAotICAgIEpTQXJyYXkqIHByb2ZpbGVkQnl0ZWNvZGVz
ID0gY29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IG1fcHJvZmlsZWRCeXRlY29kZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXV0byB2YWx1ZSA9
IG1fcHJvZmlsZWRCeXRlY29kZXNbaV0udG9KUyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICBwcm9maWxlZEJ5dGVjb2Rlcy0+
cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCB2YWx1ZSk7Ci0gICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm9maWxlZEJ5dGVjb2RlcywgcHJvZmlsZWRCeXRlY29kZXMp
OwotICAgIAotICAgIEpTQXJyYXkqIGRlc2NyaXB0aW9ucyA9IGNvbnN0cnVjdEVtcHR5QXJyYXko
Z2xvYmFsT2JqZWN0LCBudWxscHRyKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2Rlc2NyaXB0aW9ucy5zaXplKCk7
ICsraSkgewotICAgICAgICBhdXRvIHZhbHVlID0gbV9kZXNjcmlwdGlvbnNbaV0udG9KUyhnbG9i
YWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAg
ICAgICBkZXNjcmlwdGlvbnMtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaSwgdmFsdWUp
OwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZGVzY3JpcHRpb25zLCBkZXNj
cmlwdGlvbnMpOwotICAgIAotICAgIEpTQXJyYXkqIGNvdW50ZXJzID0gY29uc3RydWN0RW1wdHlB
cnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0gICAgZm9yIChhdXRvIGl0ID0gbV9jb3VudGVycy5iZWdpbigpLCBlbmQgPSBt
X2NvdW50ZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgSlNPYmplY3QqIGNv
dW50ZXJFbnRyeSA9IGNvbnN0cnVjdEVtcHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGF1dG8gdmFsdWUgPSBp
dC0+a2V5LnRvSlMoZ2xvYmFsT2JqZWN0KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKLSAgICAgICAgY291bnRlckVudHJ5LT5wdXREaXJlY3Qodm0sIHZtLnByb3Bl
cnR5TmFtZXMtPm9yaWdpbiwgdmFsdWUpOwotICAgICAgICBjb3VudGVyRW50cnktPnB1dERpcmVj
dCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZXhlY3V0aW9uQ291bnQsIGpzTnVtYmVyKGl0LT52YWx1
ZS0+Y291bnQoKSkpOwotICAgICAgICBjb3VudGVycy0+cHVzaChnbG9iYWxPYmplY3QsIGNvdW50
ZXJFbnRyeSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAg
fQotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb3VudGVycywg
Y291bnRlcnMpOwotICAgIAotICAgIEpTQXJyYXkqIGV4aXRTaXRlcyA9IGNvbnN0cnVjdEVtcHR5
QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX29zckV4aXRTaXRlcy5z
aXplKCk7ICsraSkgewotICAgICAgICBhdXRvIHZhbHVlID0gbV9vc3JFeGl0U2l0ZXNbaV0udG9K
UyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwotICAgICAgICBleGl0U2l0ZXMtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaSwgdmFs
dWUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGF1dG8g
cmVzdWx0ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldERvdWJsZShk
dW1wZXIua2V5cygpLm1fYnl0ZWNvZGVzSUQsIG1fYnl0ZWNvZGVzLT5pZCgpKTsKKyAgICByZXN1
bHQtPnNldFN0cmluZyhkdW1wZXIua2V5cygpLm1fY29tcGlsYXRpb25LaW5kLCBTdHJpbmc6OmZy
b21VVEY4KHRvQ1N0cmluZyhtX2tpbmQpKSk7CisKKyAgICBhdXRvIHByb2ZpbGVkQnl0ZWNvZGVz
ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOworICAgIGZvciAoY29uc3QgYXV0byYgYnl0ZWNvZGUg
OiBtX3Byb2ZpbGVkQnl0ZWNvZGVzKQorICAgICAgICBwcm9maWxlZEJ5dGVjb2Rlcy0+cHVzaFZh
bHVlKGJ5dGVjb2RlLnRvSlNPTihkdW1wZXIpKTsKKyAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBl
ci5rZXlzKCkubV9wcm9maWxlZEJ5dGVjb2RlcywgV1RGTW92ZShwcm9maWxlZEJ5dGVjb2Rlcykp
OworCisgICAgYXV0byBkZXNjcmlwdGlvbnMgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAg
Zm9yIChjb25zdCBhdXRvJiBkZXNjcmlwdGlvbiA6IG1fZGVzY3JpcHRpb25zKQorICAgICAgICBk
ZXNjcmlwdGlvbnMtPnB1c2hWYWx1ZShkZXNjcmlwdGlvbi50b0pTT04oZHVtcGVyKSk7CisgICAg
cmVzdWx0LT5zZXRWYWx1ZShkdW1wZXIua2V5cygpLm1fZGVzY3JpcHRpb25zLCBXVEZNb3ZlKGRl
c2NyaXB0aW9ucykpOworCisgICAgYXV0byBjb3VudGVycyA9IEpTT046OkFycmF5OjpjcmVhdGUo
KTsKKyAgICBmb3IgKGNvbnN0IGF1dG8mIFtrZXksIHZhbHVlXSA6IG1fY291bnRlcnMpIHsKKyAg
ICAgICAgYXV0byBjb3VudGVyRW50cnkgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOworICAgICAg
ICBjb3VudGVyRW50cnktPnNldFZhbHVlKGR1bXBlci5rZXlzKCkubV9vcmlnaW4sIGtleS50b0pT
T04oZHVtcGVyKSk7CisgICAgICAgIGNvdW50ZXJFbnRyeS0+c2V0RG91YmxlKGR1bXBlci5rZXlz
KCkubV9leGVjdXRpb25Db3VudCwgdmFsdWUtPmNvdW50KCkpOworICAgICAgICBjb3VudGVycy0+
cHVzaFZhbHVlKFdURk1vdmUoY291bnRlckVudHJ5KSk7CiAgICAgfQotICAgIHJlc3VsdC0+cHV0
RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5vc3JFeGl0U2l0ZXMsIGV4aXRTaXRlcyk7Ci0g
ICAgCi0gICAgSlNBcnJheSogZXhpdHMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGdsb2JhbE9iamVj
dCwgbnVsbHB0cik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9vc3JFeGl0cy5zaXplKCk7ICsraSkgewotICAgICAg
ICBleGl0cy0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0LCBpLCBtX29zckV4aXRzW2ldLnRv
SlMoZ2xvYmFsT2JqZWN0KSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7Ci0gICAgfQotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5v
c3JFeGl0cywgZXhpdHMpOwotICAgIAotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9w
ZXJ0eU5hbWVzLT5udW1JbmxpbmVkR2V0QnlJZHMsIGpzTnVtYmVyKG1fbnVtSW5saW5lZEdldEJ5
SWRzKSk7Ci0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm51bUlu
bGluZWRQdXRCeUlkcywganNOdW1iZXIobV9udW1JbmxpbmVkUHV0QnlJZHMpKTsKLSAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bnVtSW5saW5lZENhbGxzLCBqc051
bWJlcihtX251bUlubGluZWRDYWxscykpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5qZXR0aXNvblJlYXNvbiwganNTdHJpbmcodm0sIFN0cmluZzo6ZnJvbVVU
RjgodG9DU3RyaW5nKG1famV0dGlzb25SZWFzb24pKSkpOworICAgIHJlc3VsdC0+c2V0VmFsdWUo
ZHVtcGVyLmtleXMoKS5tX2NvdW50ZXJzLCBXVEZNb3ZlKGNvdW50ZXJzKSk7CisKKyAgICBhdXRv
IGV4aXRTaXRlcyA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsKKyAgICBmb3IgKGNvbnN0IGF1dG8m
IG9zckV4aXRTaXRlIDogbV9vc3JFeGl0U2l0ZXMpCisgICAgICAgIGV4aXRTaXRlcy0+cHVzaFZh
bHVlKG9zckV4aXRTaXRlLnRvSlNPTihkdW1wZXIpKTsKKyAgICByZXN1bHQtPnNldFZhbHVlKGR1
bXBlci5rZXlzKCkubV9vc3JFeGl0U2l0ZXMsIFdURk1vdmUoZXhpdFNpdGVzKSk7CisKKyAgICBh
dXRvIGV4aXRzID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX29zckV4aXRzLnNpemUoKTsgKytpKQorICAgICAgICBleGl0cy0+cHVzaFZhbHVl
KG1fb3NyRXhpdHNbaV0udG9KU09OKGR1bXBlcikpOworICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVt
cGVyLmtleXMoKS5tX29zckV4aXRzLCBXVEZNb3ZlKGV4aXRzKSk7CisKKyAgICByZXN1bHQtPnNl
dERvdWJsZShkdW1wZXIua2V5cygpLm1fbnVtSW5saW5lZEdldEJ5SWRzLCBtX251bUlubGluZWRH
ZXRCeUlkcyk7CisgICAgcmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX251bUlubGlu
ZWRQdXRCeUlkcywgbV9udW1JbmxpbmVkUHV0QnlJZHMpOworICAgIHJlc3VsdC0+c2V0RG91Ymxl
KGR1bXBlci5rZXlzKCkubV9udW1JbmxpbmVkQ2FsbHMsIG1fbnVtSW5saW5lZENhbGxzKTsKKyAg
ICByZXN1bHQtPnNldFN0cmluZyhkdW1wZXIua2V5cygpLm1famV0dGlzb25SZWFzb24sIFN0cmlu
Zzo6ZnJvbVVURjgodG9DU3RyaW5nKG1famV0dGlzb25SZWFzb24pKSk7CiAgICAgaWYgKCFtX2Fk
ZGl0aW9uYWxKZXR0aXNvblJlYXNvbi5pc051bGwoKSkKLSAgICAgICAgcmVzdWx0LT5wdXREaXJl
Y3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmFkZGl0aW9uYWxKZXR0aXNvblJlYXNvbiwganNTdHJp
bmcodm0sIFN0cmluZzo6ZnJvbVVURjgobV9hZGRpdGlvbmFsSmV0dGlzb25SZWFzb24pKSk7Ci0g
ICAgCi0gICAgcmVzdWx0LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnVpZCwgbV91
aWQudG9KUyhnbG9iYWxPYmplY3QpKTsKLSAgICAKKyAgICAgICAgcmVzdWx0LT5zZXRTdHJpbmco
ZHVtcGVyLmtleXMoKS5tX2FkZGl0aW9uYWxKZXR0aXNvblJlYXNvbiwgU3RyaW5nOjpmcm9tVVRG
OChtX2FkZGl0aW9uYWxKZXR0aXNvblJlYXNvbikpOworCisgICAgcmVzdWx0LT5zZXRWYWx1ZShk
dW1wZXIua2V5cygpLm1fdWlkLCBtX3VpZC50b0pTT04oZHVtcGVyKSk7CisKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJDb21waWxhdGlvbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQ29tcGlsYXRpb24uaAppbmRleCAyODM0Nzg2NjA2NzIuLjI3OTdmOTAxYjUxMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsYXRp
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxh
dGlvbi5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIGNsYXNzIEJ5
dGVjb2RlczsKIGNsYXNzIERhdGFiYXNlOworY2xhc3MgRHVtcGVyOwogCiAvLyBSZXByZXNlbnRz
IHRoZSBhY3Qgb2YgZXhlY3V0aW5nIHNvbWUgYnl0ZWNvZGVzIGluIHNvbWUgZW5naW5lLCBhbmQg
ZG9lcwogLy8gYWxsIG9mIHRoZSBjb3VudGluZyBmb3IgdGhvc2UgZXhlY3V0aW9ucy4KQEAgLTc4
LDcgKzc5LDcgQEAgcHVibGljOgogICAgIFVJRCB1aWQoKSBjb25zdCB7IHJldHVybiBtX3VpZDsg
fQogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwotICAgIEpTVmFsdWUg
dG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9KU09O
KER1bXBlciYpIGNvbnN0OwogICAgIAogcHJpdmF0ZToKICAgICBDb21waWxhdGlvbktpbmQgbV9r
aW5kOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
Q29tcGlsZWRCeXRlY29kZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJDb21waWxlZEJ5dGVjb2RlLmNwcAppbmRleCBiOGMxOGQ2ZGZiMDEuLjliMjYwYzNjZjMw
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29t
cGlsZWRCeXRlY29kZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyQ29tcGlsZWRCeXRlY29kZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUg
IkpTQ0lubGluZXMuaCIKICNpbmNsdWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUg
IlByb2ZpbGVyRHVtcGVyLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIg
ewogCkBAIC00MSwxNCArNDIsMTMgQEAgQ29tcGlsZWRCeXRlY29kZTo6fkNvbXBpbGVkQnl0ZWNv
ZGUoKQogewogfQogCi1KU1ZhbHVlIENvbXBpbGVkQnl0ZWNvZGU6OnRvSlMoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK1JlZjxKU09OOjpWYWx1ZT4gQ29tcGlsZWRCeXRlY29k
ZTo6dG9KU09OKER1bXBlciYgZHVtcGVyKSBjb25zdAogewotICAgIFZNJiB2bSA9IGdsb2JhbE9i
amVjdC0+dm0oKTsKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3Qo
Z2xvYmFsT2JqZWN0KTsKLSAgICAKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVy
dHlOYW1lcy0+b3JpZ2luLCBtX29yaWdpbi50b0pTKGdsb2JhbE9iamVjdCkpOwotICAgIHJlc3Vs
dC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5kZXNjcmlwdGlvbiwganNTdHJpbmco
dm0sIFN0cmluZzo6ZnJvbVVURjgobV9kZXNjcmlwdGlvbikpKTsKLSAgICAKKyAgICBhdXRvIHJl
c3VsdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisKKyAgICByZXN1bHQtPnNldFZhbHVlKGR1
bXBlci5rZXlzKCkubV9vcmlnaW4sIG1fb3JpZ2luLnRvSlNPTihkdW1wZXIpKTsKKyAgICByZXN1
bHQtPnNldFN0cmluZyhkdW1wZXIua2V5cygpLm1fZGVzY3JpcHRpb24sIFN0cmluZzo6ZnJvbVVU
RjgobV9kZXNjcmlwdGlvbikpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29k
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRl
Y29kZS5oCmluZGV4IGQ2Mzc1OWZjOGFhNy4uYjNhY2Q3MTU4ZmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJDb21waWxlZEJ5dGVjb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyQ29tcGlsZWRCeXRlY29k
ZS5oCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICAKICAgICBjb25zdCBPcmlnaW5TdGFj
ayYgb3JpZ2luU3RhY2soKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGNvbnN0IENT
dHJpbmcmIGRlc2NyaXB0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXNjcmlwdGlvbjsgfQotICAg
IAotICAgIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OwotICAgIAorCisgICAg
UmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVyJikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAg
T3JpZ2luU3RhY2sgbV9vcmlnaW47CiAgICAgQ1N0cmluZyBtX2Rlc2NyaXB0aW9uOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCmlu
ZGV4IDQxYjQzZmIwNzJhYy4uMDI5OTYyOWFmZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiSlNDSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTT05PYmplY3QuaCIKICNpbmNs
dWRlICJPYmplY3RDb25zdHJ1Y3Rvci5oIgorI2luY2x1ZGUgIlByb2ZpbGVyRHVtcGVyLmgiCiAj
aW5jbHVkZSA8d3RmL0ZpbGVQcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNw
YWNlIFByb2ZpbGVyIHsKQEAgLTk0LDY5ICs5NSwzNSBAQCB2b2lkIERhdGFiYXNlOjphZGRDb21w
aWxhdGlvbihDb2RlQmxvY2sqIGNvZGVCbG9jaywgUmVmPENvbXBpbGF0aW9uPiYmIGNvbXBpbGF0
aQogICAgIG1fY29tcGlsYXRpb25NYXAuc2V0KGNvZGVCbG9jaywgV1RGTW92ZShjb21waWxhdGlv
bikpOwogfQogCi1KU1ZhbHVlIERhdGFiYXNlOjp0b0pTKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpIGNvbnN0CitSZWY8SlNPTjo6VmFsdWU+IERhdGFiYXNlOjp0b0pTT04oKSBjb25zdAog
ewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEVt
cHR5T2JqZWN0KGdsb2JhbE9iamVjdCk7Ci0gICAgCi0gICAgSlNBcnJheSogYnl0ZWNvZGVzID0g
Y29uc3RydWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
Ynl0ZWNvZGVzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8gdmFsdWUgPSBtX2J5dGVjb2Rl
c1tpXS50b0pTKGdsb2JhbE9iamVjdCk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0gICAgICAgIGJ5dGVjb2Rlcy0+cHV0RGlyZWN0SW5kZXgoZ2xvYmFsT2JqZWN0
LCBpLCB2YWx1ZSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0g
ICAgfQotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5ieXRlY29k
ZXMsIGJ5dGVjb2Rlcyk7Ci0gICAgCi0gICAgSlNBcnJheSogY29tcGlsYXRpb25zID0gY29uc3Ry
dWN0RW1wdHlBcnJheShnbG9iYWxPYmplY3QsIG51bGxwdHIpOwotICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY29tcGls
YXRpb25zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8gdmFsdWUgPSBtX2NvbXBpbGF0aW9u
c1tpXS0+dG9KUyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgICAgICBjb21waWxhdGlvbnMtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9i
amVjdCwgaSwgdmFsdWUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwotICAgIH0KLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Y29t
cGlsYXRpb25zLCBjb21waWxhdGlvbnMpOwotICAgIAotICAgIEpTQXJyYXkqIGV2ZW50cyA9IGNv
bnN0cnVjdEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2V2
ZW50cy5zaXplKCk7ICsraSkgewotICAgICAgICBhdXRvIHZhbHVlID0gbV9ldmVudHNbaV0udG9K
UyhnbG9iYWxPYmplY3QpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwotICAgICAgICBldmVudHMtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaSwgdmFsdWUp
OwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICBy
ZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+ZXZlbnRzLCBldmVudHMpOwot
ICAgIAotICAgIHJldHVybiByZXN1bHQ7Ci19CisgICAgRHVtcGVyIGR1bXBlcigqdGhpcyk7Cisg
ICAgYXV0byByZXN1bHQgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogCi1TdHJpbmcgRGF0YWJh
c2U6OnRvSlNPTigpIGNvbnN0Ci17Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUobV92bSk7Ci0gICAgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IEpTR2xvYmFsT2Jq
ZWN0OjpjcmVhdGUoCi0gICAgICAgIG1fdm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1
cmUobV92bSwganNOdWxsKCkpKTsKKyAgICBhdXRvIGJ5dGVjb2RlcyA9IEpTT046OkFycmF5Ojpj
cmVhdGUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9ieXRlY29kZXMuc2l6ZSgp
OyArK2kpCisgICAgICAgIGJ5dGVjb2Rlcy0+cHVzaFZhbHVlKG1fYnl0ZWNvZGVzW2ldLnRvSlNP
TihkdW1wZXIpKTsKKyAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBlci5rZXlzKCkubV9ieXRlY29k
ZXMsIFdURk1vdmUoYnl0ZWNvZGVzKSk7CisKKyAgICBhdXRvIGNvbXBpbGF0aW9ucyA9IEpTT046
OkFycmF5OjpjcmVhdGUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jb21waWxh
dGlvbnMuc2l6ZSgpOyArK2kpCisgICAgICAgIGNvbXBpbGF0aW9ucy0+cHVzaFZhbHVlKG1fY29t
cGlsYXRpb25zW2ldLT50b0pTT04oZHVtcGVyKSk7CisgICAgcmVzdWx0LT5zZXRWYWx1ZShkdW1w
ZXIua2V5cygpLm1fY29tcGlsYXRpb25zLCBXVEZNb3ZlKGNvbXBpbGF0aW9ucykpOworCisgICAg
YXV0byBldmVudHMgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fZXZlbnRzLnNpemUoKTsgKytpKQorICAgICAgICBldmVudHMtPnB1c2hWYWx1
ZShtX2V2ZW50c1tpXS50b0pTT04oZHVtcGVyKSk7CisgICAgcmVzdWx0LT5zZXRWYWx1ZShkdW1w
ZXIua2V5cygpLm1fZXZlbnRzLCBXVEZNb3ZlKGV2ZW50cykpOwogCi0gICAgYXV0byB2YWx1ZSA9
IHRvSlMoZ2xvYmFsT2JqZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJp
bmcoKSk7Ci0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBKU09OU3RyaW5naWZ5KGdsb2Jh
bE9iamVjdCwgdmFsdWUsIDApKTsKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIERhdGFi
YXNlOjpzYXZlKGNvbnN0IGNoYXIqIGZpbGVuYW1lKSBjb25zdAogewotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX0NBVENIX1NDT1BFKG1fdm0pOwogICAgIGF1dG8gb3V0ID0gRmlsZVByaW50U3Ry
ZWFtOjpvcGVuKGZpbGVuYW1lLCAidyIpOwogICAgIGlmICghb3V0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgCi0gICAgU3RyaW5nIGRhdGEgPSB0b0pTT04oKTsKLSAgICBpZiAoVU5MSUtF
TFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgb3V0LT5wcmludChkYXRhKTsKKyAg
ICBvdXQtPnByaW50KHRvSlNPTigpLmdldCgpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2Uu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKaW5k
ZXggYWU3ODVlNGUzZGNiLi5mMTI1MzI5YjQwMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckRhdGFiYXNlLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRGF0YWJhc2UuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIlByb2ZpbGVyRXZlbnQuaCIKICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNs
dWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9TZWdtZW50ZWRWZWN0b3IuaD4KQEAgLTUwLDE3ICs1MSwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBub3RpZnlEZXN0cnVjdGlvbihDb2RlQmxvY2sqKTsKICAgICAKICAgICB2b2lkIGFkZENv
bXBpbGF0aW9uKENvZGVCbG9jayosIFJlZjxDb21waWxhdGlvbj4mJik7Ci0gICAgCi0gICAgLy8g
Q29udmVydHMgdGhlIGRhdGFiYXNlIHRvIGEgSmF2YVNjcmlwdCBvYmplY3QgdGhhdCBpcyBzdWl0
YWJsZSBmb3IgSlNPTiBzdHJpbmdpZmljYXRpb24uCi0gICAgLy8gTm90ZSB0aGF0IGl0J3MgcHJv
YmFibHkgYSBnb29kIGlkZWEgdG8gdXNlIGFuIENhbGxGcmFtZSogYXNzb2NpYXRlZCB3aXRoIGEg
Z2xvYmFsCi0gICAgLy8gb2JqZWN0IHRoYXQgaXMgImNsZWFuIiAtIGkuZS4gYXJyYXkgYW5kIG9i
amVjdCBwcm90b3R5cGVzIGhhdmVuJ3QgaGFkIHN0cmFuZ2UgdGhpbmdzCi0gICAgLy8gZG9uZSB0
byB0aGVtLiBBbmQgeWVzLCBpdCBzaG91bGQgYmUgYXBwcm9wcmlhdGUgdG8ganVzdCB1c2UgYSBn
bG9iYWxFeGVjIGhlcmUuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNWYWx1ZSB0b0pTKEpTR2xv
YmFsT2JqZWN0KikgY29uc3Q7Ci0gICAgCi0gICAgLy8gQ29udmVydHMgdGhlIGRhdGFiYXNlIHRv
IGEgSmF2YVNjcmlwdCBvYmplY3QgdXNpbmcgYSBwcml2YXRlIHRlbXBvcmFyeSBnbG9iYWwgb2Jq
ZWN0LAotICAgIC8vIGFuZCB0aGVuIHJldHVybnMgdGhlIEpTT04gcmVwcmVzZW50YXRpb24gb2Yg
dGhhdCBvYmplY3QuCi0gICAgSlNfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHRvSlNPTigpIGNvbnN0
OwotICAgIAorCisgICAgLy8gQ29udmVydHMgdGhlIGRhdGFiYXNlIHRvIGEgSlNPTiBvYmplY3Qg
dGhhdCBpcyBzdWl0YWJsZSBmb3IgSlNPTiBzdHJpbmdpZmljYXRpb24uCisgICAgSlNfRVhQT1JU
X1BSSVZBVEUgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oKSBjb25zdDsKKwogICAgIC8vIFNhdmVz
IHRoZSBKU09OIHJlcHJlc2VudGF0aW9uIChmcm9tIHRvSlNPTigpKSB0byB0aGUgZ2l2ZW4gZmls
ZS4gUmV0dXJucyBmYWxzZSBpZiB0aGUKICAgICAvLyBzYXZlIGZhaWxlZC4KICAgICBKU19FWFBP
UlRfUFJJVkFURSBib29sIHNhdmUoY29uc3QgY2hhciogZmlsZW5hbWUpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRHVtcGVyLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJEdW1wZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE0ZTY3NTE2YjRmMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckR1bXBlci5oCkBA
IC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9QcmludFN0cmVhbS5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9m
aWxlciB7CisKK2NsYXNzIERhdGFiYXNlOworCisjZGVmaW5lIEpTQ19QUk9GSUxFUl9PQkpFQ1Rf
S0VZUyhtYWNybykgXAorICAgIG1hY3JvKGJ5dGVjb2RlKSBcCisgICAgbWFjcm8oYnl0ZWNvZGVJ
bmRleCkgXAorICAgIG1hY3JvKGJ5dGVjb2RlcykgXAorICAgIG1hY3JvKGJ5dGVjb2Rlc0lEKSBc
CisgICAgbWFjcm8oY291bnRlcnMpIFwKKyAgICBtYWNybyhvcGNvZGUpIFwKKyAgICBtYWNybyhk
ZXNjcmlwdGlvbikgXAorICAgIG1hY3JvKGRlc2NyaXB0aW9ucykgXAorICAgIG1hY3JvKGhhc2gp
IFwKKyAgICBtYWNybyhpbmZlcnJlZE5hbWUpIFwKKyAgICBtYWNybyhzb3VyY2VDb2RlKSBcCisg
ICAgbWFjcm8oaW5zdHJ1Y3Rpb25Db3VudCkgXAorICAgIG1hY3JvKGNvbXBpbGF0aW9uS2luZCkg
XAorICAgIG1hY3JvKGNvbXBpbGF0aW9uVUlEKSBcCisgICAgbWFjcm8oY29tcGlsYXRpb25zKSBc
CisgICAgbWFjcm8ocHJvZmlsZWRCeXRlY29kZXMpIFwKKyAgICBtYWNybyhvcmlnaW4pIFwKKyAg
ICBtYWNybyhvc3JFeGl0U2l0ZXMpIFwKKyAgICBtYWNybyhvc3JFeGl0cykgXAorICAgIG1hY3Jv
KGV4ZWN1dGlvbkNvdW50KSBcCisgICAgbWFjcm8oZXhpdEtpbmQpIFwKKyAgICBtYWNybyhudW1J
bmxpbmVkQ2FsbHMpIFwKKyAgICBtYWNybyhudW1JbmxpbmVkR2V0QnlJZHMpIFwKKyAgICBtYWNy
byhudW1JbmxpbmVkUHV0QnlJZHMpIFwKKyAgICBtYWNybyhhZGRpdGlvbmFsSmV0dGlzb25SZWFz
b24pIFwKKyAgICBtYWNybyhqZXR0aXNvblJlYXNvbikgXAorICAgIG1hY3JvKHVpZCkgXAorICAg
IG1hY3JvKGV2ZW50cykgXAorICAgIG1hY3JvKHN1bW1hcnkpIFwKKyAgICBtYWNybyhpc1dhdGNo
cG9pbnQpIFwKKyAgICBtYWNybyhkZXRhaWwpIFwKKyAgICBtYWNybyh0aW1lKSBcCisgICAgbWFj
cm8oaWQpIFwKKyAgICBtYWNybyhoZWFkZXIpIFwKKyAgICBtYWNybyhjb3VudCkgXAorCisKK2Ns
YXNzIER1bXBlciB7CitwdWJsaWM6CisgICAgY2xhc3MgS2V5cyB7CisgICAgcHVibGljOgorI2Rl
ZmluZSBKU0NfREVGSU5FX1BST0ZJTEVSX09CSkVDVF9LRVkoa2V5KSBTdHJpbmcgbV8jI2tleSB7
ICNrZXkgIiJfcyB9OworICAgICAgICBKU0NfUFJPRklMRVJfT0JKRUNUX0tFWVMoSlNDX0RFRklO
RV9QUk9GSUxFUl9PQkpFQ1RfS0VZKQorI3VuZGVmIEpTQ19ERUZJTkVfUFJPRklMRVJfT0JKRUNU
X0tFWQorICAgIH07CisKKyAgICBEdW1wZXIoY29uc3QgRGF0YWJhc2UmIGRhdGFiYXNlKQorICAg
ICAgICA6IG1fZGF0YWJhc2UoZGF0YWJhc2UpCisgICAgeworICAgIH0KKworICAgIGNvbnN0IERh
dGFiYXNlJiBkYXRhYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YWJhc2U7IH0KKyAgICBjb25z
dCBLZXlzJiBrZXlzKCkgY29uc3QgeyByZXR1cm4gbV9rZXlzOyB9CisKK3ByaXZhdGU6CisgICAg
Y29uc3QgRGF0YWJhc2UmIG1fZGF0YWJhc2U7CisgICAgS2V5cyBtX2tleXM7Cit9OworCit9IH0g
Ly8gbmFtZXNwYWNlIEpTQzo6UHJvZmlsZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9Qcm9maWxlckV2ZW50LmNwcAppbmRleCA3OTZkMTliMzU5YzQuLjMxYWYwNzljN2Rm
YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50
LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCiAj
aW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9maWxlckNvbXBpbGF0
aW9uLmgiCisjaW5jbHVkZSAiUHJvZmlsZXJEdW1wZXIuaCIKICNpbmNsdWRlICJQcm9maWxlclVJ
RC5oIgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsKQEAgLTQ0LDE5ICs0
NSwxOCBAQCB2b2lkIEV2ZW50OjpkdW1wKFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgICAg
IG91dC5wcmludCgiICgiLCBtX2RldGFpbCwgIikiKTsKIH0KIAotSlNWYWx1ZSBFdmVudDo6dG9K
UyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorUmVmPEpTT046OlZhbHVlPiBF
dmVudDo6dG9KU09OKER1bXBlciYgZHVtcGVyKSBjb25zdAogewotICAgIFZNJiB2bSA9IGdsb2Jh
bE9iamVjdC0+dm0oKTsKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmpl
Y3QoZ2xvYmFsT2JqZWN0KTsKLSAgICAKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJv
cGVydHlOYW1lcy0+dGltZSwganNOdW1iZXIobV90aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFs
dWUoKSkpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5ieXRl
Y29kZXNJRCwganNOdW1iZXIobV9ieXRlY29kZXMtPmlkKCkpKTsKKyAgICBhdXRvIHJlc3VsdCA9
IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisKKyAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIu
a2V5cygpLm1fdGltZSwgbV90aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSk7CisgICAg
cmVzdWx0LT5zZXREb3VibGUoZHVtcGVyLmtleXMoKS5tX2J5dGVjb2Rlc0lELCBtX2J5dGVjb2Rl
cy0+aWQoKSk7CiAgICAgaWYgKG1fY29tcGlsYXRpb24pCi0gICAgICAgIHJlc3VsdC0+cHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5jb21waWxhdGlvblVJRCwgbV9jb21waWxhdGlvbi0+
dWlkKCkudG9KUyhnbG9iYWxPYmplY3QpKTsKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+c3VtbWFyeSwganNTdHJpbmcodm0sIFN0cmluZzo6ZnJvbVVURjgobV9z
dW1tYXJ5KSkpOworICAgICAgICByZXN1bHQtPnNldFZhbHVlKGR1bXBlci5rZXlzKCkubV9jb21w
aWxhdGlvblVJRCwgbV9jb21waWxhdGlvbi0+dWlkKCkudG9KU09OKGR1bXBlcikpOworICAgIHJl
c3VsdC0+c2V0U3RyaW5nKGR1bXBlci5rZXlzKCkubV9zdW1tYXJ5LCBTdHJpbmc6OmZyb21VVEY4
KG1fc3VtbWFyeSkpOwogICAgIGlmIChtX2RldGFpbC5sZW5ndGgoKSkKLSAgICAgICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmRldGFpbCwganNTdHJpbmcodm0sIFN0
cmluZzo6ZnJvbVVURjgobV9kZXRhaWwpKSk7Ci0gICAgCisgICAgICAgIHJlc3VsdC0+c2V0U3Ry
aW5nKGR1bXBlci5rZXlzKCkubV9kZXRhaWwsIFN0cmluZzo6ZnJvbVVURjgobV9kZXRhaWwpKTsK
KwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZXJFdmVudC5oCmluZGV4IGM3OTgzMWU4OGZkYy4uNDQ3MGYwZmQyYWM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJFdmVudC5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlckV2ZW50LmgKQEAg
LTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIGNs
YXNzIEJ5dGVjb2RlczsKIGNsYXNzIENvbXBpbGF0aW9uOworY2xhc3MgRHVtcGVyOwogCiBjbGFz
cyBFdmVudCB7CiBwdWJsaWM6CkBAIC02Miw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBD
U3RyaW5nJiBkZXRhaWwoKSBjb25zdCB7IHJldHVybiBtX2RldGFpbDsgfQogICAgIAogICAgIHZv
aWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0OwotICAgIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9i
amVjdCopIGNvbnN0OworICAgIFJlZjxKU09OOjpWYWx1ZT4gdG9KU09OKER1bXBlciYpIGNvbnN0
OwogICAgIAogcHJpdmF0ZToKICAgICBXYWxsVGltZSBtX3RpbWUgeyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmNwcAppbmRleCA3NTE1
MDJiOTBjN2QuLjFmZTEzODMwYjZlNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdC5jcHAKQEAgLTI4LDcgKzI4LDcgQEAKIAogI2luY2x1
ZGUgIkpTR2xvYmFsT2JqZWN0LmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKLSNp
bmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiUHJvZmlsZXJEdW1wZXIuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKQEAgLTQ1LDE1ICs0NSwxNCBAQCBP
U1JFeGl0Ojp+T1NSRXhpdCgpCiB7CiB9CiAKLUpTVmFsdWUgT1NSRXhpdDo6dG9KUyhKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorUmVmPEpTT046OlZhbHVlPiBPU1JFeGl0Ojp0
b0pTT04oRHVtcGVyJiBkdW1wZXIpIGNvbnN0CiB7Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwotICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChnbG9i
YWxPYmplY3QpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5p
ZCwganNOdW1iZXIobV9pZCkpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0
eU5hbWVzLT5vcmlnaW4sIG1fb3JpZ2luLnRvSlMoZ2xvYmFsT2JqZWN0KSk7Ci0gICAgcmVzdWx0
LT5wdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPmV4aXRLaW5kLCBqc05vbnRyaXZpYWxT
dHJpbmcodm0sIGV4aXRLaW5kVG9TdHJpbmcobV9leGl0S2luZCkpKTsKLSAgICByZXN1bHQtPnB1
dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+aXNXYXRjaHBvaW50LCBqc0Jvb2xlYW4obV9p
c1dhdGNocG9pbnQpKTsKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+Y291bnQsIGpzTnVtYmVyKG1fY291bnRlcikpOworICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6
T2JqZWN0OjpjcmVhdGUoKTsKKyAgICByZXN1bHQtPnNldERvdWJsZShkdW1wZXIua2V5cygpLm1f
aWQsIG1faWQpOworICAgIHJlc3VsdC0+c2V0VmFsdWUoZHVtcGVyLmtleXMoKS5tX29yaWdpbiwg
bV9vcmlnaW4udG9KU09OKGR1bXBlcikpOworICAgIHJlc3VsdC0+c2V0U3RyaW5nKGR1bXBlci5r
ZXlzKCkubV9leGl0S2luZCwgZXhpdEtpbmRUb1N0cmluZyhtX2V4aXRLaW5kKSk7CisgICAgcmVz
dWx0LT5zZXRCb29sZWFuKGR1bXBlci5rZXlzKCkubV9pc1dhdGNocG9pbnQsICEhbV9pc1dhdGNo
cG9pbnQpOworICAgIHJlc3VsdC0+c2V0RG91YmxlKGR1bXBlci5rZXlzKCkubV9jb3VudCwgbV9j
b3VudGVyKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0LmgKaW5kZXggNzQwNDIyNDc0ZDU4Li5mOWU2
NzIxMDZjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9m
aWxlck9TUkV4aXQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZXJPU1JFeGl0LmgKQEAgLTMxLDYgKzMxLDkgQEAKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBQcm9maWxlciB7CiAKK2NsYXNzIERhdGFiYXNlOworY2xhc3MgRHVtcGVyOworCiBjbGFzcyBP
U1JFeGl0IHsKIHB1YmxpYzoKICAgICBPU1JFeGl0KHVuc2lnbmVkIGlkLCBjb25zdCBPcmlnaW5T
dGFjayYsIEV4aXRLaW5kLCBib29sIGlzV2F0Y2hwb2ludCk7CkBAIC00NSw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICB1aW50NjRfdCBjb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlcjsgfQog
ICAgIHZvaWQgaW5jQ291bnQoKSB7IG1fY291bnRlcisrOyB9CiAKLSAgICBKU1ZhbHVlIHRvSlMo
SlNHbG9iYWxPYmplY3QqKSBjb25zdDsKKyAgICBSZWY8SlNPTjo6VmFsdWU+IHRvSlNPTihEdW1w
ZXImKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBPcmlnaW5TdGFjayBtX29yaWdpbjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRl
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRl
LmNwcAppbmRleCA4ZTg2MzdiNDA1YjAuLmZkODdiZmRmZWViMCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9TUkV4aXRTaXRlLmNwcApAQCAt
MzEsMTYgKzMxLDExIEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewog
Ci1KU1ZhbHVlIE9TUkV4aXRTaXRlOjp0b0pTKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qp
IGNvbnN0CitSZWY8SlNPTjo6VmFsdWU+IE9TUkV4aXRTaXRlOjp0b0pTT04oRHVtcGVyJikgY29u
c3QKIHsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVj
dEVtcHR5QXJyYXkoZ2xvYmFsT2JqZWN0LCBudWxscHRyKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NvZGVBZGRy
ZXNzZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgcmVzdWx0LT5wdXREaXJlY3RJbmRleChnbG9i
YWxPYmplY3QsIGksIGpzU3RyaW5nKHZtLCB0b1N0cmluZyhSYXdQb2ludGVyKG1fY29kZUFkZHJl
c3Nlc1tpXS5kYXRhTG9jYXRpb24oKSkpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7Ci0gICAgfQorICAgIGF1dG8gcmVzdWx0ID0gSlNPTjo6QXJyYXk6OmNyZWF0
ZSgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NvZGVBZGRyZXNzZXMuc2l6ZSgp
OyArK2kpCisgICAgICAgIHJlc3VsdC0+cHVzaFN0cmluZyh0b1N0cmluZyhSYXdQb2ludGVyKG1f
Y29kZUFkZHJlc3Nlc1tpXS5kYXRhTG9jYXRpb24oKSkpKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJP
U1JFeGl0U2l0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NS
RXhpdFNpdGUuaAppbmRleCBlZTg0NTdmMTY0MzIuLmFmOWUwNTY5Y2UzNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT1NSRXhpdFNpdGUuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJPU1JFeGl0U2l0ZS5oCkBA
IC0zMSw2ICszMSw5IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgUHJvZmlsZXIgewog
CitjbGFzcyBEYXRhYmFzZTsKK2NsYXNzIER1bXBlcjsKKwogY2xhc3MgT1NSRXhpdFNpdGUgewog
cHVibGljOgogICAgIGV4cGxpY2l0IE9TUkV4aXRTaXRlKGNvbnN0IFZlY3RvcjxDb2RlUHRyPEpT
SW50ZXJuYWxQdHJUYWc+PiYgY29kZUFkZHJlc3NlcykKQEAgLTQwLDcgKzQzLDcgQEAgcHVibGlj
OgogICAgIAogICAgIGNvbnN0IFZlY3RvcjxDb2RlUHRyPEpTSW50ZXJuYWxQdHJUYWc+PiYgY29k
ZUFkZHJlc3MoKSBjb25zdCB7IHJldHVybiBtX2NvZGVBZGRyZXNzZXM7IH0KICAgICAKLSAgICBK
U1ZhbHVlIHRvSlMoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKKyAgICBSZWY8SlNPTjo6VmFsdWU+
IHRvSlNPTihEdW1wZXImKSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBWZWN0b3I8Q29kZVB0cjxK
U0ludGVybmFsUHRyVGFnPj4gbV9jb2RlQWRkcmVzc2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5jcHAKaW5kZXggZmZhZDQ1ZDU5M2JmLi42
MTRlZWFiZmE0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1By
b2ZpbGVyT3JpZ2luLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIk9iamVjdENvbnN0
cnVjdG9yLmgiCiAjaW5jbHVkZSAiUHJvZmlsZXJCeXRlY29kZXMuaCIKICNpbmNsdWRlICJQcm9m
aWxlckRhdGFiYXNlLmgiCisjaW5jbHVkZSAiUHJvZmlsZXJEdW1wZXIuaCIKIAogbmFtZXNwYWNl
IEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKQEAgLTQ0LDEyICs0NSwxMSBAQCB2b2lkIE9y
aWdpbjo6ZHVtcChQcmludFN0cmVhbSYgb3V0KSBjb25zdAogICAgIG91dC5wcmludCgqbV9ieXRl
Y29kZXMsICIgIiwgbV9ieXRlY29kZUluZGV4KTsKIH0KIAotSlNWYWx1ZSBPcmlnaW46OnRvSlMo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkgY29uc3QKK1JlZjxKU09OOjpWYWx1ZT4gT3Jp
Z2luOjp0b0pTT04oRHVtcGVyJiBkdW1wZXIpIGNvbnN0CiB7Ci0gICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwotICAgIEpTT2JqZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVj
dChnbG9iYWxPYmplY3QpOwotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5h
bWVzLT5ieXRlY29kZXNJRCwganNOdW1iZXIobV9ieXRlY29kZXMtPmlkKCkpKTsKLSAgICByZXN1
bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+Ynl0ZWNvZGVJbmRleCwganNOdW1i
ZXIobV9ieXRlY29kZUluZGV4Lm9mZnNldCgpKSk7CisgICAgYXV0byByZXN1bHQgPSBKU09OOjpP
YmplY3Q6OmNyZWF0ZSgpOworICAgIHJlc3VsdC0+c2V0RG91YmxlKGR1bXBlci5rZXlzKCkubV9i
eXRlY29kZXNJRCwgbV9ieXRlY29kZXMtPmlkKCkpOworICAgIHJlc3VsdC0+c2V0RG91YmxlKGR1
bXBlci5rZXlzKCkubV9ieXRlY29kZUluZGV4LCBtX2J5dGVjb2RlSW5kZXgub2Zmc2V0KCkpOwog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2Zp
bGVyL1Byb2ZpbGVyT3JpZ2luLmgKaW5kZXggNGRkN2Q4NzZhNjVlLi5lOGY0NDU0OTg3MmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpbi5oCkBA
IC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBQcm9maWxlciB7CiAKIGNsYXNzIEJ5dGVjb2RlczsK
IGNsYXNzIERhdGFiYXNlOworY2xhc3MgRHVtcGVyOwogCiBjbGFzcyBPcmlnaW4gewogcHVibGlj
OgpAQCAtNjYsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpIGNvbnN0OwogICAgIAogICAgIHZvaWQgZHVtcChQcmludFN0cmVhbSYpIGNvbnN0Owot
ICAgIEpTVmFsdWUgdG9KUyhKU0dsb2JhbE9iamVjdCopIGNvbnN0OworICAgIFJlZjxKU09OOjpW
YWx1ZT4gdG9KU09OKER1bXBlciYpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIEJ5dGVjb2Rlcyog
bV9ieXRlY29kZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJPcmlnaW5TdGFjay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJPcmlnaW5TdGFjay5jcHAKaW5kZXggMDA1ZGZhZmI4NTJmLi44Y2Y3MjViYzkzYzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdp
blN0YWNrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJP
cmlnaW5TdGFjay5jcHAKQEAgLTk3LDE4ICs5NywxMSBAQCB2b2lkIE9yaWdpblN0YWNrOjpkdW1w
KFByaW50U3RyZWFtJiBvdXQpIGNvbnN0CiAgICAgfQogfQogCi1KU1ZhbHVlIE9yaWdpblN0YWNr
Ojp0b0pTKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpIGNvbnN0CitSZWY8SlNPTjo6VmFs
dWU+IE9yaWdpblN0YWNrOjp0b0pTT04oRHVtcGVyJiBkdW1wZXIpIGNvbnN0CiB7Ci0gICAgVk0m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBKU0FycmF5KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGds
b2JhbE9iamVjdCwgbnVsbHB0cik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKLSAgICAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zdGFjay5zaXplKCk7ICsr
aSkgewotICAgICAgICByZXN1bHQtPnB1dERpcmVjdEluZGV4KGdsb2JhbE9iamVjdCwgaSwgbV9z
dGFja1tpXS50b0pTKGdsb2JhbE9iamVjdCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotICAgIH0KLSAgICAKKyAgICBhdXRvIHJlc3VsdCA9IEpTT046OkFycmF5
OjpjcmVhdGUoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9zdGFjay5zaXplKCk7
ICsraSkKKyAgICAgICAgcmVzdWx0LT5wdXNoVmFsdWUobV9zdGFja1tpXS50b0pTT04oZHVtcGVy
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyT3JpZ2luU3RhY2suaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wcm9maWxlci9Qcm9maWxlck9yaWdpblN0YWNrLmgKaW5kZXggNTE5NWExM2NiZWI1Li44
ZTlkM2ZiOTlkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Q
cm9maWxlck9yaWdpblN0YWNrLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyT3JpZ2luU3RhY2suaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBDb2RlT3JpZ2lu
OwogbmFtZXNwYWNlIFByb2ZpbGVyIHsKIAogY2xhc3MgRGF0YWJhc2U7CitjbGFzcyBEdW1wZXI7
CiAKIGNsYXNzIE9yaWdpblN0YWNrIHsKIHB1YmxpYzoKQEAgLTY1LDcgKzY2LDcgQEAgcHVibGlj
OgogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdDsKICAgICAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKLSAgICBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxP
YmplY3QqKSBjb25zdDsKKyAgICBSZWY8SlNPTjo6VmFsdWU+IHRvSlNPTihEdW1wZXImKSBjb25z
dDsKICAgICAKIHByaXZhdGU6CiAgICAgVmVjdG9yPE9yaWdpbiwgMT4gbV9zdGFjazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2ZpbGVkQnl0
ZWNvZGVzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclByb2Zp
bGVkQnl0ZWNvZGVzLmNwcAppbmRleCBmYzJiNWNiNDYwN2UuLmZjNTY3MWYyNzAwOSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVyUHJvZmlsZWRCeXRl
Y29kZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclBy
b2ZpbGVkQnl0ZWNvZGVzLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgogI2luY2x1ZGUgIk9iamVjdENvbnN0cnVjdG9yLmgiCisjaW5jbHVkZSAiUHJvZmls
ZXJEdW1wZXIuaCIKIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBQcm9maWxlciB7CiAKQEAg
LTQxLDE0ICs0MiwxMSBAQCBQcm9maWxlZEJ5dGVjb2Rlczo6flByb2ZpbGVkQnl0ZWNvZGVzKCkK
IHsKIH0KIAotSlNWYWx1ZSBQcm9maWxlZEJ5dGVjb2Rlczo6dG9KUyhKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAorUmVmPEpTT046OlZhbHVlPiBQcm9maWxlZEJ5dGVjb2Rlczo6
dG9KU09OKER1bXBlciYgZHVtcGVyKSBjb25zdAogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVj
dC0+dm0oKTsKLSAgICBKU09iamVjdCogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoZ2xv
YmFsT2JqZWN0KTsKLSAgICAKLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlO
YW1lcy0+Ynl0ZWNvZGVzSUQsIGpzTnVtYmVyKG1fYnl0ZWNvZGVzLT5pZCgpKSk7Ci0gICAgYWRk
U2VxdWVuY2VQcm9wZXJ0aWVzKGdsb2JhbE9iamVjdCwgcmVzdWx0KTsKLSAgICAKKyAgICBhdXRv
IHJlc3VsdCA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CisgICAgcmVzdWx0LT5zZXREb3VibGUo
ZHVtcGVyLmtleXMoKS5tX2J5dGVjb2Rlc0lELCBtX2J5dGVjb2Rlcy0+aWQoKSk7CisgICAgYWRk
U2VxdWVuY2VQcm9wZXJ0aWVzKGR1bXBlciwgcmVzdWx0LmdldCgpKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVy
L1Byb2ZpbGVyUHJvZmlsZWRCeXRlY29kZXMuaAppbmRleCA1MjhjMTRhZDg5ZjEuLjczMDUzMDRm
NzdmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVy
UHJvZmlsZWRCeXRlY29kZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIv
UHJvZmlsZXJQcm9maWxlZEJ5dGVjb2Rlcy5oCkBAIC0zNyw3ICszNyw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBjb25zdCBCeXRlY29kZXMqIGJ5dGVjb2RlcygpIGNvbnN0IHsgcmV0dXJuIG1fYnl0
ZWNvZGVzOyB9CiAgICAgCi0gICAgSlNWYWx1ZSB0b0pTKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7
CisgICAgUmVmPEpTT046OlZhbHVlPiB0b0pTT04oRHVtcGVyJikgY29uc3Q7CiAKIHByaXZhdGU6
CiAgICAgQnl0ZWNvZGVzKiBtX2J5dGVjb2RlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cHJvZmlsZXIvUHJvZmlsZXJVSUQuY3BwCmluZGV4IGYwMDBjOTg4ODNmNi4uNGZiZjVhOWJiMGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5jcHAK
QEAgLTQ4LDkgKzQ4LDkgQEAgdm9pZCBVSUQ6OmR1bXAoUHJpbnRTdHJlYW0mIG91dCkgY29uc3QK
ICAgICBvdXQucHJpbnQobV91aWQpOwogfQogCi1KU1ZhbHVlIFVJRDo6dG9KUyhKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0KSBjb25zdAorUmVmPEpTT046OlZhbHVlPiBVSUQ6OnRvSlNPTihE
dW1wZXImKSBjb25zdAogewotICAgIHJldHVybiBqc1N0cmluZyhnbG9iYWxPYmplY3QtPnZtKCks
IHRvU3RyaW5nKCp0aGlzKSk7CisgICAgcmV0dXJuIEpTT046OlZhbHVlOjpjcmVhdGUodG9TdHJp
bmcoKnRoaXMpKTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OlByb2ZpbGVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZXJVSUQuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlclVJRC5oCmluZGV4IGIyMzE2ZmI0OWM1
OC4uNWJmNDliOGIwYWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvUHJvZmlsZXJVSUQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJv
ZmlsZXJVSUQuaApAQCAtMjYsMTAgKzI2LDE0IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkpTQ0pTVmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgogI2luY2x1ZGUgPHd0
Zi9QcmludFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgSlNDIHsgbmFtZXNwYWNlIFByb2ZpbGVyIHsK
IAorY2xhc3MgRGF0YWJhc2U7CitjbGFzcyBEdW1wZXI7CisKIGNsYXNzIFVJRCB7CiBwdWJsaWM6
CiAgICAgVUlEKCkKQEAgLTc3LDcgKzgxLDcgQEAgcHVibGljOgogICAgIH0KICAgICAKICAgICB2
b2lkIGR1bXAoUHJpbnRTdHJlYW0mKSBjb25zdDsKLSAgICBKU1ZhbHVlIHRvSlMoSlNHbG9iYWxP
YmplY3QqKSBjb25zdDsKKyAgICBSZWY8SlNPTjo6VmFsdWU+IHRvSlNPTihEdW1wZXImKSBjb25z
dDsKICAgICAKIHByaXZhdGU6CiAgICAgdWludDY0X3QgbV91aWQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uSWRlbnRpZmllcnMuaAppbmRleCAyNTZiY2MxN2Q0
M2UuLjUyMzMxMzQ5NjA1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uSWRlbnRpZmllcnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25JZGVudGlmaWVycy5oCkBAIC03MCw3ICs3MCw2IEBACiAgICAgbWFjcm8oX19sb29r
dXBHZXR0ZXJfXykgXAogICAgIG1hY3JvKF9fbG9va3VwU2V0dGVyX18pIFwKICAgICBtYWNybyhh
ZGQpIFwKLSAgICBtYWNybyhhZGRpdGlvbmFsSmV0dGlzb25SZWFzb24pIFwKICAgICBtYWNybyhh
bm9ueW1vdXMpIFwKICAgICBtYWNybyhhcmd1bWVudHMpIFwKICAgICBtYWNybyhhcykgXApAQCAt
NzksMTAgKzc4LDYgQEAKICAgICBtYWNybyhiaW5kKSBcCiAgICAgbWFjcm8oYnl0ZUxlbmd0aCkg
XAogICAgIG1hY3JvKGJ5dGVPZmZzZXQpIFwKLSAgICBtYWNybyhieXRlY29kZSkgXAotICAgIG1h
Y3JvKGJ5dGVjb2RlSW5kZXgpIFwKLSAgICBtYWNybyhieXRlY29kZXMpIFwKLSAgICBtYWNybyhi
eXRlY29kZXNJRCkgXAogICAgIG1hY3JvKGNhbGVuZGFyKSBcCiAgICAgbWFjcm8oY2FsbGVlKSBc
CiAgICAgbWFjcm8oY2FsbGVyKSBcCkBAIC05MSwxNCArODYsMTAgQEAKICAgICBtYWNybyhjbGVh
cikgXAogICAgIG1hY3JvKGNvbGxhdGlvbikgXAogICAgIG1hY3JvKGNvbHVtbikgXAotICAgIG1h
Y3JvKGNvbXBpbGF0aW9uS2luZCkgXAotICAgIG1hY3JvKGNvbXBpbGF0aW9uVUlEKSBcCi0gICAg
bWFjcm8oY29tcGlsYXRpb25zKSBcCiAgICAgbWFjcm8oY29tcGlsZSkgXAogICAgIG1hY3JvKGNv
bmZpZ3VyYWJsZSkgXAogICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBcCiAgICAgbWFjcm8oY291bnQp
IFwKLSAgICBtYWNybyhjb3VudGVycykgXAogICAgIG1hY3JvKGRhdGVTdHlsZSkgXAogICAgIG1h
Y3JvKGRheSkgXAogICAgIG1hY3JvKGRheXMpIFwKQEAgLTEwNyw3ICs5OCw2IEBACiAgICAgbWFj
cm8oZGVmaW5lUHJvcGVydHkpIFwKICAgICBtYWNybyhkZXJlZikgXAogICAgIG1hY3JvKGRlc2Ny
aXB0aW9uKSBcCi0gICAgbWFjcm8oZGVzY3JpcHRpb25zKSBcCiAgICAgbWFjcm8oZGV0YWlsKSBc
CiAgICAgbWFjcm8oZGlzcGxheU5hbWUpIFwKICAgICBtYWNybyhkb25lKSBcCkBAIC0xMTcsMTAg
KzEwNyw3IEBACiAgICAgbWFjcm8oZXJhWWVhcikgXAogICAgIG1hY3JvKGVycm9ycykgXAogICAg
IG1hY3JvKGV2YWwpIFwKLSAgICBtYWNybyhldmVudHMpIFwKICAgICBtYWNybyhleGVjKSBcCi0g
ICAgbWFjcm8oZXhlY3V0aW9uQ291bnQpIFwKLSAgICBtYWNybyhleGl0S2luZCkgXAogICAgIG1h
Y3JvKGV4cG9ydHMpIFwKICAgICBtYWNybyhmYWxsYmFjaykgXAogICAgIG1hY3JvKGZsYWdzKSBc
CkBAIC0xNTYsNyArMTQzLDYgQEAKICAgICBtYWNybyhpZ25vcmVQdW5jdHVhdGlvbikgXAogICAg
IG1hY3JvKGluZGV4KSBcCiAgICAgbWFjcm8oaW5kaWNlcykgXAotICAgIG1hY3JvKGluZmVycmVk
TmFtZSkgXAogICAgIG1hY3JvKGlucHV0KSBcCiAgICAgbWFjcm8oaXNvRGF5KSBcCiAgICAgbWFj
cm8oaXNvSG91cikgXApAQCAtMTY3LDE1ICsxNTMsMTIgQEAKICAgICBtYWNybyhpc29OYW5vc2Vj
b25kKSBcCiAgICAgbWFjcm8oaXNvU2Vjb25kKSBcCiAgICAgbWFjcm8oaXNvWWVhcikgXAotICAg
IG1hY3JvKGluc3RydWN0aW9uQ291bnQpIFwKICAgICBtYWNybyhpc0FycmF5KSBcCiAgICAgbWFj
cm8oaXNFbmFibGVkKSBcCiAgICAgbWFjcm8oaXNQcm90b3R5cGVPZikgXAogICAgIG1hY3JvKGlz
VmlldykgXAotICAgIG1hY3JvKGlzV2F0Y2hwb2ludCkgXAogICAgIG1hY3JvKGlzV2VsbEZvcm1l
ZCkgXAogICAgIG1hY3JvKGlzV29yZExpa2UpIFwKLSAgICBtYWNybyhqZXR0aXNvblJlYXNvbikg
XAogICAgIG1hY3JvKGpvaW4pIFwKICAgICBtYWNybyhsYW5ndWFnZSkgXAogICAgIG1hY3JvKGxh
bmd1YWdlRGlzcGxheSkgXApAQCAtMjEyLDIyICsxOTUsMTQgQEAKICAgICBtYWNybyhuYW5vc2Vj
b25kc0Rpc3BsYXkpIFwKICAgICBtYWNybyhuZXh0KSBcCiAgICAgbWFjcm8obm93KSBcCi0gICAg
bWFjcm8obnVtSW5saW5lZENhbGxzKSBcCi0gICAgbWFjcm8obnVtSW5saW5lZEdldEJ5SWRzKSBc
Ci0gICAgbWFjcm8obnVtSW5saW5lZFB1dEJ5SWRzKSBcCiAgICAgbWFjcm8obnVtYmVyaW5nU3lz
dGVtKSBcCiAgICAgbWFjcm8obnVtZXJpYykgXAogICAgIG1hY3JvKG9mKSBcCi0gICAgbWFjcm8o
b3Bjb2RlKSBcCi0gICAgbWFjcm8ob3JpZ2luKSBcCi0gICAgbWFjcm8ob3NyRXhpdFNpdGVzKSBc
Ci0gICAgbWFjcm8ob3NyRXhpdHMpIFwKICAgICBtYWNybyhvdmVyZmxvdykgXAogICAgIG1hY3Jv
KG93bktleXMpIFwKICAgICBtYWNybyhwYXJzZSkgXAogICAgIG1hY3JvKHBhcnNlSW50KSBcCiAg
ICAgbWFjcm8ocGFyc2VGbG9hdCkgXAotICAgIG1hY3JvKHByb2ZpbGVkQnl0ZWNvZGVzKSBcCiAg
ICAgbWFjcm8ocHJvcGVydHlJc0VudW1lcmFibGUpIFwKICAgICBtYWNybyhwcm90b3R5cGUpIFwK
ICAgICBtYWNybyhyYXcpIFwKQEAgLTI1MSwxNCArMjI2LDEyIEBACiAgICAgbWFjcm8oc2xpY2Up
IFwKICAgICBtYWNybyhzbWFsbGVzdFVuaXQpIFwKICAgICBtYWNybyhzb3VyY2UpIFwKLSAgICBt
YWNybyhzb3VyY2VDb2RlKSBcCiAgICAgbWFjcm8oc291cmNlVVJMKSBcCiAgICAgbWFjcm8oc3Rh
Y2spIFwKICAgICBtYWNybyhzdGFja1RyYWNlTGltaXQpIFwKICAgICBtYWNybyhzdGlja3kpIFwK
ICAgICBtYWNybyhzdHlsZSkgXAogICAgIG1hY3JvKHN1YmFycmF5KSBcCi0gICAgbWFjcm8oc3Vt
bWFyeSkgXAogICAgIG1hY3JvKHRhcmdldCkgXAogICAgIG1hY3JvKHRlc3QpIFwKICAgICBtYWNy
byh0aGVuKSBcCkBAIC0yNzgsNyArMjUxLDYgQEAKICAgICBtYWNybyh0cmFpbGluZ1plcm9EaXNw
bGF5KSBcCiAgICAgbWFjcm8odHJhbnNmZXIpIFwKICAgICBtYWNybyh0eXBlKSBcCi0gICAgbWFj
cm8odWlkKSBcCiAgICAgbWFjcm8odW5pY29kZSkgXAogICAgIG1hY3JvKHVuaWNvZGVTZXRzKSBc
CiAgICAgbWFjcm8odW5pdCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3B0aW9uc0xpc3QuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlv
bnNMaXN0LmgKaW5kZXggNjhlZTIxZTVlYzNkLi41NDQ1N2M3OWY5MGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnNMaXN0LmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaApAQCAtMjY5LDcgKzI2OSw5IEBAIGJv
b2wgY2FuVXNlV2ViQXNzZW1ibHlGYXN0TWVtb3J5KCk7CiAgICAgdihJbnQzMiwgcHJpb3JpdHlE
ZWx0YU9mV2FzbUNvbXBpbGVyVGhyZWFkcywgY29tcHV0ZVByaW9yaXR5RGVsdGFPZldvcmtlclRo
cmVhZHMoLTEsIDApLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VQ
cm9maWxlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoQm9vbCwgZHVtcFByb2Zp
bGVyRGF0YUF0RXhpdCwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoQm9vbCwgZGlz
YXNzZW1ibGVCYXNlbGluZUZvclByb2ZpbGVyLCB0cnVlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAg
ICB2KFVuc2lnbmVkLCBhYmJyZXZpYXRlU291cmNlQ29kZUZvclByb2ZpbGVyLCAwLCBOb3JtYWws
IG51bGxwdHIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VBcmNoaXRlY3R1cmVTcGVjaWZpY09w
dGltaXphdGlvbnMsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1ZNLmNwcAppbmRleCBhMDc4Mzk0MzlmNDUuLjM4ZjE3NGFiYTVhZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcApAQCAtMzE1LDEyICszMTUsMTQgQEAgVk06
OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlLCBXVEY6OlJ1bkxvb3AqIHJ1bkxv
b3AsIGJvb2wqIHN1Y2Nlc3MpCiAgICAgaWYgKFVOTElLRUxZKE9wdGlvbnM6OnVzZVByb2ZpbGVy
KCkpKSB7CiAgICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlciA9IG1ha2VVbmlxdWU8UHJvZmls
ZXI6OkRhdGFiYXNlPigqdGhpcyk7CiAKLSAgICAgICAgU3RyaW5nUHJpbnRTdHJlYW0gcGF0aE91
dDsKLSAgICAgICAgY29uc3QgY2hhciogcHJvZmlsZXJQYXRoID0gZ2V0ZW52KCJKU0NfUFJPRklM
RVJfUEFUSCIpOwotICAgICAgICBpZiAocHJvZmlsZXJQYXRoKQotICAgICAgICAgICAgcGF0aE91
dC5wcmludChwcm9maWxlclBhdGgsICIvIik7Ci0gICAgICAgIHBhdGhPdXQucHJpbnQoIkpTQ1By
b2ZpbGUtIiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiLSIsIG1fcGVyQnl0ZWNvZGVQcm9maWxl
ci0+ZGF0YWJhc2VJRCgpLCAiLmpzb24iKTsKLSAgICAgICAgbV9wZXJCeXRlY29kZVByb2ZpbGVy
LT5yZWdpc3RlclRvU2F2ZUF0RXhpdChwYXRoT3V0LnRvQ1N0cmluZygpLmRhdGEoKSk7CisgICAg
ICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjpkdW1wUHJvZmlsZXJEYXRhQXRFeGl0KCkpKSB7Cisg
ICAgICAgICAgICBTdHJpbmdQcmludFN0cmVhbSBwYXRoT3V0OworICAgICAgICAgICAgY29uc3Qg
Y2hhciogcHJvZmlsZXJQYXRoID0gZ2V0ZW52KCJKU0NfUFJPRklMRVJfUEFUSCIpOworICAgICAg
ICAgICAgaWYgKHByb2ZpbGVyUGF0aCkKKyAgICAgICAgICAgICAgICBwYXRoT3V0LnByaW50KHBy
b2ZpbGVyUGF0aCwgIi8iKTsKKyAgICAgICAgICAgIHBhdGhPdXQucHJpbnQoIkpTQ1Byb2ZpbGUt
IiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgpLCAiLSIsIG1fcGVyQnl0ZWNvZGVQcm9maWxlci0+ZGF0
YWJhc2VJRCgpLCAiLmpzb24iKTsKKyAgICAgICAgICAgIG1fcGVyQnl0ZWNvZGVQcm9maWxlci0+
cmVnaXN0ZXJUb1NhdmVBdEV4aXQocGF0aE91dC50b0NTdHJpbmcoKS5kYXRhKCkpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGlzIGxhc3QsIGFzIGEgZnJlZSB3YXkg
b2YgYXNzZXJ0aW5nIHRoYXQgVk0gaW5pdGlhbGl6YXRpb24gaXRzZWxmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMu
Y3BwCmluZGV4IDI4NWU1OWVjOGM1NC4uM2U0MTBjMTQ0Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi9K
U09OVmFsdWVzLmg+CiAKKyNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTQ1NywxMyAr
NDU4LDYgQEAgUmVmUHRyPEpTT046OlZhbHVlPiBidWlsZFZhbHVlKGNvbnN0IENvZGVVbml0KiBz
dGFydCwgY29uc3QgQ29kZVVuaXQqIGVuZCwgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQog
Ci1pbmxpbmUgdm9pZCBhcHBlbmREb3VibGVRdW90ZWRTdHJpbmcoU3RyaW5nQnVpbGRlciYgYnVp
bGRlciwgU3RyaW5nVmlldyBzdHJpbmcpCi17Ci0gICAgYnVpbGRlci5hcHBlbmQoJyInKTsKLSAg
ICBWYWx1ZTo6ZXNjYXBlU3RyaW5nKGJ1aWxkZXIsIHN0cmluZyk7Ci0gICAgYnVpbGRlci5hcHBl
bmQoJyInKTsKLX0KLQogfSAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCiAKIFJlZjxWYWx1ZT4gVmFs
dWU6Om51bGwoKQpAQCAtNTQyLDQ2ICs1MzYsNiBAQCBSZWZQdHI8VmFsdWU+IFZhbHVlOjpwYXJz
ZUpTT04oU3RyaW5nVmlldyBqc29uKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgVmFs
dWU6OmVzY2FwZVN0cmluZyhTdHJpbmdCdWlsZGVyJiBidWlsZGVyLCBTdHJpbmdWaWV3IHN0cmlu
ZykKLXsKLSAgICBmb3IgKFVDaGFyIGNvZGVVbml0IDogc3RyaW5nLmNvZGVVbml0cygpKSB7Ci0g
ICAgICAgIHN3aXRjaCAoY29kZVVuaXQpIHsKLSAgICAgICAgY2FzZSAnXGInOgotICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoIlxcYiIpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGNhc2UgJ1xmJzoKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXGYiKTsKLSAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICBjYXNlICdcbic6Ci0gICAgICAgICAgICBidWlsZGVyLmFw
cGVuZCgiXFxuIik7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgY2FzZSAnXHInOgot
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxcciIpOwotICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIGNhc2UgJ1x0JzoKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKCJcXHQiKTsK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBjYXNlICdcXCc6Ci0gICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZCgiXFxcXCIpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGNh
c2UgJyInOgotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoIlxcXCIiKTsKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIGVzY2FwZSA8IGFuZCA+IHRvIHBy
ZXZlbnQgc2NyaXB0IGV4ZWN1dGlvbi4KLSAgICAgICAgaWYgKGNvZGVVbml0ID49IDMyICYmIGNv
ZGVVbml0IDwgMTI3ICYmIGNvZGVVbml0ICE9ICc8JyAmJiBjb2RlVW5pdCAhPSAnPicpIHsKLSAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGNvZGVVbml0KTsKLSAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIGNvdWxkIGVuY29kZSBjaGFyYWN0ZXJzID49IDEy
NyBhcyBVVEYtOCBpbnN0ZWFkIG9mIFx1IGVzY2FwZSBzZXF1ZW5jZXMuCi0gICAgICAgIC8vIFdl
IGNvdWxkIGhhbmRsZSBzdXJyb2dhdGVzIGhlcmUgaWYgY2FsbGVycyB3YW50ZWQgdGhhdDsgZm9y
IG5vdyB3ZSBqdXN0Ci0gICAgICAgIC8vIHdyaXRlIHRoZW0gb3V0IGFzIGEgXHUgc2VxdWVuY2Us
IHNvIGEgc3Vycm9nYXRlIHBhaXIgYXBwZWFycyBhcyB0d28gb2YgdGhlbS4KLSAgICAgICAgYnVp
bGRlci5hcHBlbmQoIlxcdSIsCi0gICAgICAgICAgICB1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdp
dChjb2RlVW5pdCA+PiA4KSwgbG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQoY29kZVVuaXQgPj4g
OCksCi0gICAgICAgICAgICB1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjb2RlVW5pdCksIGxv
d2VyTmliYmxlVG9BU0NJSUhleERpZ2l0KGNvZGVVbml0KSk7Ci0gICAgfQotfQotCiBTdHJpbmcg
VmFsdWU6OnRvSlNPTlN0cmluZygpIGNvbnN0CiB7CiAgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7
CkBAIC02MTgsNiArNTcyLDU3IEBAIFN0cmluZyBWYWx1ZTo6YXNTdHJpbmcoKSBjb25zdAogICAg
IHJldHVybiBtX3ZhbHVlLnN0cmluZzsKIH0KIAordm9pZCBWYWx1ZTo6ZHVtcChQcmludFN0cmVh
bSYgb3V0KSBjb25zdAoreworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgY2FzZSBUeXBlOjpO
dWxsOgorICAgICAgICBvdXQucHJpbnQoIm51bGwiX3MpOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFR5cGU6OkJvb2xlYW46CisgICAgICAgIG91dC5wcmludChtX3ZhbHVlLmJvb2xlYW4gPyAi
dHJ1ZSJfcyA6ICJmYWxzZSJfcyk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVHlwZTo6U3Ry
aW5nOiB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmRRdW90ZWRKU09OU3RyaW5nKG1fdmFsdWUuc3RyaW5nKTsKKyAgICAgICAgb3V0LnByaW50
KGJ1aWxkZXIudG9TdHJpbmcoKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFR5
cGU6OkRvdWJsZToKKyAgICBjYXNlIFR5cGU6OkludGVnZXI6IHsKKyAgICAgICAgaWYgKCFzdGQ6
OmlzZmluaXRlKG1fdmFsdWUubnVtYmVyKSkKKyAgICAgICAgICAgIG91dC5wcmludCgibnVsbCJf
cyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG91dC5wcmludChtYWtlU3RyaW5nKG1fdmFs
dWUubnVtYmVyKSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIFR5cGU6Ok9iamVj
dDogeworICAgICAgICBhdXRvJiBvYmplY3QgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgT2JqZWN0QmFz
ZSo+KHRoaXMpOworICAgICAgICBDb21tYVByaW50ZXIgY29tbWEoIiwiKTsKKyAgICAgICAgb3V0
LnByaW50KCJ7Iik7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogb2JqZWN0Lm1fb3Jk
ZXIpIHsKKyAgICAgICAgICAgIGF1dG8gZmluZFJlc3VsdCA9IG9iamVjdC5tX21hcC5maW5kKGtl
eSk7CisgICAgICAgICAgICBBU1NFUlQoZmluZFJlc3VsdCAhPSBvYmplY3QubV9tYXAuZW5kKCkp
OworICAgICAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmRRdW90ZWRKU09OU3RyaW5nKGZpbmRSZXN1bHQtPmtleSk7CisgICAgICAgICAgICBv
dXQucHJpbnQoY29tbWEsIGJ1aWxkZXIudG9TdHJpbmcoKSwgIjoiLCBmaW5kUmVzdWx0LT52YWx1
ZS5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgb3V0LnByaW50KCJ9Iik7CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICBjYXNlIFR5cGU6OkFycmF5OiB7CisgICAgICAgIGF1dG8mIGFycmF5
ID0gKnN0YXRpY19jYXN0PGNvbnN0IEFycmF5QmFzZSo+KHRoaXMpOworICAgICAgICBDb21tYVBy
aW50ZXIgY29tbWEoIiwiKTsKKyAgICAgICAgb3V0LnByaW50KCJbIik7CisgICAgICAgIGZvciAo
YXV0byYgdmFsdWUgOiBhcnJheS5tX21hcCkKKyAgICAgICAgICAgIG91dC5wcmludChjb21tYSwg
dmFsdWUuZ2V0KCkpOworICAgICAgICBvdXQucHJpbnQoIl0iKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
K30KKwogdm9pZCBWYWx1ZTo6d3JpdGVKU09OKFN0cmluZ0J1aWxkZXImIG91dHB1dCkgY29uc3QK
IHsKICAgICBzd2l0Y2ggKG1fdHlwZSkgewpAQCAtNjMxLDcgKzYzNiw3IEBAIHZvaWQgVmFsdWU6
OndyaXRlSlNPTihTdHJpbmdCdWlsZGVyJiBvdXRwdXQpIGNvbnN0CiAgICAgICAgICAgICBvdXRw
dXQuYXBwZW5kKCJmYWxzZSIpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFR5cGU6OlN0cmlu
ZzoKLSAgICAgICAgYXBwZW5kRG91YmxlUXVvdGVkU3RyaW5nKG91dHB1dCwgbV92YWx1ZS5zdHJp
bmcpOworICAgICAgICBvdXRwdXQuYXBwZW5kUXVvdGVkSlNPTlN0cmluZyhtX3ZhbHVlLnN0cmlu
Zyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHlwZTo6RG91YmxlOgogICAgIGNhc2UgVHlw
ZTo6SW50ZWdlcjogewpAQCAtNzQ4LDcgKzc1Myw3IEBAIHZvaWQgT2JqZWN0QmFzZTo6d3JpdGVK
U09OKFN0cmluZ0J1aWxkZXImIG91dHB1dCkgY29uc3QKICAgICAgICAgQVNTRVJUKGZpbmRSZXN1
bHQgIT0gbV9tYXAuZW5kKCkpOwogICAgICAgICBpZiAoaSkKICAgICAgICAgICAgIG91dHB1dC5h
cHBlbmQoJywnKTsKLSAgICAgICAgYXBwZW5kRG91YmxlUXVvdGVkU3RyaW5nKG91dHB1dCwgZmlu
ZFJlc3VsdC0+a2V5KTsKKyAgICAgICAgb3V0cHV0LmFwcGVuZFF1b3RlZEpTT05TdHJpbmcoZmlu
ZFJlc3VsdC0+a2V5KTsKICAgICAgICAgb3V0cHV0LmFwcGVuZCgnOicpOwogICAgICAgICBmaW5k
UmVzdWx0LT52YWx1ZS0+d3JpdGVKU09OKG91dHB1dCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCmlu
ZGV4IGQ2M2RjYjE4NTkwZC4uZGQ3ODIxMjJhYjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9KU09OVmFsdWVzLmgKKysrIGIvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5oCkBAIC0zOCw2
ICszOCw4IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCitjbGFzcyBQcmludFN0cmVhbTsKKwogLy8g
TWFrZSBzdXJlIGNvbXBpbGVkIHN5bWJvbHMgY29udGFpbiB0aGUgV1RGIG5hbWVzcGFjZSBwcmVm
aXgsIGJ1dAogLy8gdXNlIGEgZGlmZmVyZW50IGlubmVyIG5hbWVzcGFjZSBuYW1lIHNvIHRoYXQg
SlNPTjo6VmFsdWUgaXMgbm90IGFtYmlnaW91cy4KIC8vIE90aGVyd2lzZSwgdGhlIGNvbXBpbGVy
IHdvdWxkIGhhdmUgYm90aCBXVEY6OkpTT046OlZhbHVlIGFuZCBKU09OOjpWYWx1ZQpAQCAtMTAz
LDExICsxMDUsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPEFycmF5PiBhc0FycmF5
KCk7CiAKICAgICBzdGF0aWMgUmVmUHRyPFZhbHVlPiBwYXJzZUpTT04oU3RyaW5nVmlldyk7Ci0g
ICAgc3RhdGljIHZvaWQgZXNjYXBlU3RyaW5nKFN0cmluZ0J1aWxkZXImLCBTdHJpbmdWaWV3KTsK
IAogICAgIFN0cmluZyB0b0pTT05TdHJpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGVKU09OKFN0cmluZ0J1aWxkZXImIG91dHB1dCkgY29uc3Q7CiAKKyAgICB2b2lkIGR1bXAoUHJp
bnRTdHJlYW0mKSBjb25zdDsKKwogICAgIHZpcnR1YWwgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25z
dDsKIAogICAgIC8vIEZJWE1FOiA8aHR0cDovL3dlYmtpdC5vcmcvYi8xNzk4NDc+IHJlbW92ZSB0
aGVzZSBmdW5jdGlvbnMgd2hlbiBsZWdhY3kgSW5zcGVjdG9yT2JqZWN0IHN5bWJvbHMgYXJlIG5v
IGxvbmdlciBuZWVkZWQuCkBAIC0xNjMsNiArMTY2LDcgQEAgcHJpdmF0ZToKIAogY2xhc3MgT2Jq
ZWN0QmFzZSA6IHB1YmxpYyBWYWx1ZSB7CiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBWYWx1
ZTsKICAgICB1c2luZyBEYXRhU3RvcmFnZSA9IEhhc2hNYXA8U3RyaW5nLCBSZWY8VmFsdWU+PjsK
ICAgICB1c2luZyBPcmRlclN0b3JhZ2UgPSBWZWN0b3I8U3RyaW5nPjsKIApAQCAtMjU3LDYgKzI2
MSw3IEBAIHB1YmxpYzoKIAogY2xhc3MgV1RGX0VYUE9SVF9QUklWQVRFIEFycmF5QmFzZSA6IHB1
YmxpYyBWYWx1ZSB7CiBwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBWYWx1ZTsKICAgICB1c2lu
ZyBEYXRhU3RvcmFnZSA9IFZlY3RvcjxSZWY8VmFsdWU+PjsKIAogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3MzkzZWUwMDJkMzgu
LjM5NGFjM2U3YjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTc1MjMsNyArNzUyMyw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Qnl0ZWNvZGVQ
cm9maWxlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYgY2FsbGJhCiAg
ICAgaWYgKExJS0VMWSghY29tbW9uVk0oKS5tX3BlckJ5dGVjb2RlUHJvZmlsZXIpKQogICAgICAg
ICByZXR1cm4gY2FsbGJhY2soeyB9KTsKIAotICAgIFN0cmluZyByZXN1bHQgPSBjb21tb25WTSgp
Lm1fcGVyQnl0ZWNvZGVQcm9maWxlci0+dG9KU09OKCk7CisgICAgU3RyaW5nIHJlc3VsdCA9IGNv
bW1vblZNKCkubV9wZXJCeXRlY29kZVByb2ZpbGVyLT50b0pTT04oKS0+dG9KU09OU3RyaW5nKCk7
CiAgICAgQVNTRVJUKHJlc3VsdC5sZW5ndGgoKSk7CiAgICAgY2FsbGJhY2socmVzdWx0KTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>