<?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>160430</bug_id>
          
          <creation_ts>2016-08-01 15:39:17 -0700</creation_ts>
          <short_desc>Freeze the last of the HTML Objective-C bindings</short_desc>
          <delta_ts>2016-08-01 15:52:24 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216292</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 15:39:17 -0700</bug_when>
    <thetext>Freeze the last of the HTML Objective-C bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216293</commentid>
    <comment_count>1</comment_count>
      <attachid>285047</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 15:41:31 -0700</bug_when>
    <thetext>Created attachment 285047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216296</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-01 15:52:24 -0700</bug_when>
    <thetext>Committed r203993: &lt;http://trac.webkit.org/changeset/203993&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285047</attachid>
            <date>2016-08-01 15:41:31 -0700</date>
            <delta_ts>2016-08-01 15:42:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160430-20160801154011.patch</filename>
            <type>text/plain</type>
            <size>93513</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAzOTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNkZjM3Njc0MjAzMjM1
NDczNzEyNDkwNDA0OWFlM2FkMDU5ZmRkZi4uYTE3YTMxYWVkMzFkZTk3YmY5YTI4MGEzOThiOWRm
ZmE5MmU1ZDJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE2LTA4LTAxICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgRnJlZXplIHRoZSBs
YXN0IG9mIHRoZSBIVE1MIE9iamVjdGl2ZS1DIGJpbmRpbmdzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjA0MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvLCByZW1vdmUgYSBidW5jaCBvZiBmb3Jt
IHZhbGlkYXRpb24gcmVsYXRlZCBtZXRob2RzIHRoYXQgd2VyZSBuZXZlciBleHBvc2VkL3VzZWQu
CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUJsb2Iu
aDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01CbG9iLm1tOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUJsb2JJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTURPTVRva2VuTGlzdC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTURPTVRva2VuTGlzdC5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01ET01Ub2tlbkxpc3RJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUZpbGUuaDogQWRkZWQuIAorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRmls
ZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01GaWxlSW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01GaWxlTGlzdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUZpbGVMaXN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUZpbGVMaXN0SW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MQnV0dG9uRWxlbWVudC5tbToKKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUhUTUxGaWVsZFNldEVsZW1lbnQubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9E
T01IVE1MSW5wdXRFbGVtZW50Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTElu
cHV0RWxlbWVudFByaXZhdGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmpl
Y3RFbGVtZW50Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFNlbGVjdEVsZW1l
bnQubW06CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MVGV4dEFyZWFFbGVtZW50Lm1t
OgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTFRleHRBcmVhRWxlbWVudFByaXZhdGUu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU1lZGlhRXJyb3IuaDogQWRkZWQuCisgICAg
ICAgICogYmluZGluZ3Mvb2JqYy9ET01NZWRpYUVycm9yLm1tOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTU1lZGlhRXJyb3JJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTVRpbWVSYW5nZXMuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01UaW1lUmFuZ2VzLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TVRpbWVSYW5nZXNJbnRlcm5hbC5oOiBBZGRlZC4KKworMjAxNi0wOC0wMSAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCiAgICAgICAgIEZyZWV6ZSBhbGwgdGhlIERPTUhU
TUwqIE9iamVjdGl2ZS1DIGJpbmRpbmdzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjA0MjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggNmI0Yjc5MDM5OTBhNTFjNThkNWM3MDczYjZhYzRmM2FlZGIxYjY1Yy4uNzY0MGZlZTcxNDQw
YWM1OWFjMWI1NDI1MmViYTkyMGVmODk4Njg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0zNDYsMjcgKzM0NiwxOSBAQCBKU19BTkRfT0JKQ19CSU5ESU5HX0lETFMgPSBcCiAg
ICAgJChXZWJDb3JlKS9kb20vV2ViS2l0VHJhbnNpdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9kb20vV2hlZWxFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL1hNTERvY3VtZW50
LmlkbCBcCi0gICAgJChXZWJDb3JlKS9maWxlYXBpL0Jsb2IuaWRsIFwKLSAgICAkKFdlYkNvcmUp
L2ZpbGVhcGkvRmlsZS5pZGwgXAotICAgICQoV2ViQ29yZSkvZmlsZWFwaS9GaWxlRXJyb3IuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwgXAotICAgICQoV2Vi
Q29yZSkvZmlsZWFwaS9GaWxlTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFwaS9GaWxl
UmVhZGVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9maWxlYXBpL0ZpbGVSZWFkZXJTeW5jLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9odG1sL0RPTUZvcm1EYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9o
dG1sL0RPTVNldHRhYmxlVG9rZW5MaXN0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9odG1sL0RPTVRv
a2VuTGlzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9ET01VUkwuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2h0bWwvSW1hZ2VEYXRhLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL01lZGlhQ29u
dHJvbGxlci5pZGwgXAotICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBcCiAgICAg
JChXZWJDb3JlKS9odG1sL01lZGlhS2V5RXJyb3IuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwv
TWVkaWFLZXlFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9SYWRpb05vZGVMaXN0Lmlk
bCBcCiAgICAgJChXZWJDb3JlKS9odG1sL1RleHRNZXRyaWNzLmlkbCBcCi0gICAgJChXZWJDb3Jl
KS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvVVJMVXRpbHMuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2h0bWwvVmFsaWRpdHlTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvaHRtbC9Wb2lkQ2FsbGJhY2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvY2FudmFzL0FO
R0xFSW5zdGFuY2VkQXJyYXlzLmlkbCBcCiAgICAgJChXZWJDb3JlKS9odG1sL2NhbnZhcy9DYW52
YXNHcmFkaWVudC5pZGwgXApAQCAtNDkzLDYgKzQ4NSwxMSBAQCBKU19BTkRfT0JKQ19CSU5ESU5H
X0lETFMgPSBcCiAjCiAKIEpTX09OTFlfQklORElOR19JRExTID0gXAorCSQoV2ViQ29yZSkvZmls
ZWFwaS9CbG9iLmlkbCBcCisJJChXZWJDb3JlKS9maWxlYXBpL0ZpbGUuaWRsIFwKKwkkKFdlYkNv
cmUpL2ZpbGVhcGkvRmlsZUVycm9yLmlkbCBcCisJJChXZWJDb3JlKS9maWxlYXBpL0ZpbGVMaXN0
LmlkbCBcCisJJChXZWJDb3JlKS9odG1sL0RPTVRva2VuTGlzdC5pZGwgXAogCSQoV2ViQ29yZSkv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvaHRtbC9IVE1MQXJlYUVsZW1lbnQuaWRsIFwKQEAg
LTU3Myw2ICs1NzAsOSBAQCBKU19PTkxZX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUp
L2h0bWwvSFRNTFVMaXN0RWxlbWVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvaHRtbC9IVE1MVW5r
bm93bkVsZW1lbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvaHRtbC9NZWRpYUVycm9yLmlkbCBcCisgICAgJChXZWJDb3Jl
KS9odG1sL1RpbWVSYW5nZXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2h0bWwvVmFsaWRpdHlTdGF0
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvc3ZnL1NWR0FFbGVtZW50LmlkbCBcCiAgICAgJChXZWJD
b3JlKS9zdmcvU1ZHQWx0R2x5cGhEZWZFbGVtZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9zdmcv
U1ZHQWx0R2x5cGhFbGVtZW50LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjIwNGU5Y2FhNDZkM2QyZmRkOGQxOTE5Yjdj
YjNkNGI2MjEyZGM5Mi4uNTA5MTZhN2U4MGJmOWM5NjdmNmVhYjk5MGRmZjQ3ZWEzZDVjYTgyNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNjY0LDggKzY2NCw2IEBACiAJCTE1Qzc3MDhEMTAwRDNDNkIwMDVCQTI2NyAvKiBWYWxp
ZGl0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNUM3NzA4QTEwMEQzQzZBMDA1QkEyNjcgLyogVmFsaWRpdHlTdGF0ZS5oICovOyB9OwogCQkx
NUM3NzA5MzEwMEQzQ0E4MDA1QkEyNjcgLyogSlNWYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNUM3NzA5MTEwMEQzQ0E4MDA1QkEy
NjcgLyogSlNWYWxpZGl0eVN0YXRlLmggKi87IH07CiAJCTE1Qzc3MDk0MTAwRDNDQTgwMDVCQTI2
NyAvKiBKU1ZhbGlkaXR5U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMTVDNzcwOTIxMDBEM0NBODAwNUJBMjY3IC8qIEpTVmFsaWRpdHlTdGF0
ZS5jcHAgKi87IH07Ci0JCTE1Qzc3MEE1MTAwRDQxQ0QwMDVCQTI2NyAvKiBET01WYWxpZGl0eVN0
YXRlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTVD
NzcwQTMxMDBENDFDRDAwNUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUubW0gKi87IH07Ci0JCTE1
Qzc3MEE2MTAwRDQxQ0QwMDVCQTI2NyAvKiBET01WYWxpZGl0eVN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNUM3NzBBNDEwMEQ0MUNEMDA1QkEy
NjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5oICovOyB9OwogCQkxNUZDQzlGQzFCNERGN0YyMDBFNzIz
MjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDczNzk0RUQxOUVFMzY0MjAwRTVBMDQ1IC8qIERPTVVSTE1lZGlh
U3RyZWFtLmNwcCAqLzsgfTsKIAkJMTVGQ0M5RkUxQjRERjg1RTAwRTcyMzI2IC8qIERPTVVSTE1l
ZGlhU3RyZWFtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxNUZDQzlGRDFCNERGODU2MDBFNzIzMjYgLyogRE9NVVJMTWVkaWFTdHJlYW0uaCAqLzsgfTsK
IAkJMTYzRTg4RjcxMThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTYzRTg4RjUx
MThBMzlEMjAwRUQ5MjMxIC8qIFNpbXBsZUZvbnREYXRhQ29yZVRleHQuY3BwICovOyB9OwpAQCAt
Njg4LDYgKzY4NiwxMCBAQAogCQkxQTBENTc0MTBBNUM3ODY3MDA3RURENEMgLyogSlNPdmVyZmxv
d0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTBENTczRjBBNUM3ODY3MDA3RURENEMgLyogSlNPdmVyZmxvd0V2ZW50LmggKi87IH07CiAJCTFB
MTQxNEI1MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUExNDE0QjMxM0EwRjA1
MDAwMTk5OTZDIC8qIFdlYktpdEZvbnRGYW1pbHlOYW1lcy5jcHAgKi87IH07CiAJCTFBMTQxNEI2
MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMTQxNEI0
MTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OworCQkxQTE0NEI0RDFENEZGNzczMDBEOUUzMkMgLyog
RE9NRE9NVG9rZW5MaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBMTQ0QjRDMUQ0RkY3NjkwMEQ5RTMyQyAvKiBET01ET01Ub2tlbkxp
c3RJbnRlcm5hbC5oICovOyB9OworCQkxQTE0NEI1MDFENEZGN0YxMDBEOUUzMkMgLyogRE9NRE9N
VG9rZW5MaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUExNDRCNEYxRDRGRjdERDAwRDlFMzJDIC8qIERPTURPTVRva2VuTGlzdC5tbSAqLzsgfTsK
KwkJMUExNDRCNTExRDRGRjlCRDAwRDlFMzJDIC8qIERPTURPTVRva2VuTGlzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUExNDRCNEUxRDRGRjdERDAw
RDlFMzJDIC8qIERPTURPTVRva2VuTGlzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTFBMTQ0QjUyMUQ1MDAyNDMwMEQ5RTMyQyAvKiBET01IVE1M
VGl0bGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU5OTJFQjkwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQubW0g
Ki87IH07CiAJCTFBMUQxMzgwMEE1MzI1NTIwMDY0QkY1RiAvKiBET01YUGF0aC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUExRDEzN0UwQTUzMjU1MjAw
NjRCRjVGIC8qIERPTVhQYXRoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUExRDEzODEwQTUzMjU1MjAwNjRCRjVGIC8qIERPTVhQYXRoLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUExRDEzN0YwQTUz
MjU1MjAwNjRCRjVGIC8qIERPTVhQYXRoLm1tICovOyB9OwogCQkxQTIxOUIzQjBEQ0E4N0FCMDA0
MEUzQTAgLyogbnBmdW5jdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBMjE5QjNBMERDQTg3QUIwMDQwRTNBMCAvKiBucGZ1bmN0aW9ucy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04MDIsNyAr
ODA0LDYgQEAKIAkJMUE2N0JGNjcxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxNZXRhRWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NUU3MTE2QzBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE1ldGFFbGVtZW50SW50ZXJuYWwu
aCAqLzsgfTsKIAkJMUE2N0JGNjgxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxNb2RFbGVtZW50
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1RTcxMTZEMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MTW9kRWxlbWVudEludGVybmFsLmgg
Ki87IH07CiAJCTFBNjdCRjY5MUQ0RkU0MjMwMDQxMkFDNyAvKiBET01IVE1MT2JqZWN0RWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NUU3MTE2RTBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRJbnRlcm5h
bC5oICovOyB9OwotCQkxQTY3QkY2QTFENEZFNDIzMDA0MTJBQzcgLyogRE9NSFRNTE9iamVjdEVs
ZW1lbnRQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NDI5QUFGRjBDQjg0RUMzMDA3NjQ3QzUgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2
YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MUE2N0JGNkIxRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPTGlzdEVsZW1lbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QkE0RDA3MEFBNjg4Njgw
MDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUE2N0JGNkMxRDRGRTQyMzAwNDEyQUM3IC8qIERP
TUhUTUxPTGlzdEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODVFNzExNkYwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxPTGlz
dEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwogCQkxQTY3QkY2RDFENEZFNDIzMDA0MTJBQzcgLyog
RE9NSFRNTE9wdEdyb3VwRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVGMzJBRTYwQUE2M0I4NzAwRkYzMTg0IC8qIERPTUhUTUxPcHRHcm91
cEVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTI3OCw4ICsxMjc5LDYgQEAKIAkJMkQzRUY0NEIxOTE3OTE1QzAwMDM0MTg0IC8qIFdl
YkNvcmVDQUxheWVyRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkQzRUY0NDcxOTE3OTE1QzAwMDM0MTg0IC8qIFdlYkNvcmVDQUxheWVyRXh0
cmFzLm1tICovOyB9OwogCQkyRDQxM0Y2MTFBMTg3QTNGMDA0MUE1MjEgLyogTG9va3VwU1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDQxM0Y2MDFB
MTg3QTNGMDA0MUE1MjEgLyogTG9va3VwU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ0MTUwREUxQzFGODY4QzAwMEEzQkEyIC8qIEpTTW9j
a1BhZ2VPdmVybGF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJENkYzRTkyMUMxRjg1NTUwMDYxREJENCAvKiBKU01vY2tQYWdlT3ZlcmxheS5jcHAg
Ki87IH07Ci0JCTJENDQ0NjlCMUM4NENEMDUwMDI0Qzg4OSAvKiBET01NZWRpYUVycm9yLmggaW4g
Q29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyREVDNjY3NTFDODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFFcnJvci5oICovOyB9OwotCQky
RDQ0NDY5RjFDODRDRDA2MDAyNEM4ODkgLyogRE9NVGltZVJhbmdlcy5oIGluIENvcHkgR2VuZXJh
dGVkIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRFQzY2NkYx
QzgzRjJBRjAwOTk4NDZBIC8qIERPTVRpbWVSYW5nZXMuaCAqLzsgfTsKIAkJMkQ0NkYwNEUxN0I5
NkZCRDAwNTY0N0YwIC8qIEludFBvaW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJENDZGMDREMTdCOTZGQkQwMDU2NDdGMCAvKiBJbnRQb2ludC5j
cHAgKi87IH07CiAJCTJENDZGMDUwMTdCOTZGRDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENDZGMDRGMTdCOTZG
RDIwMDU2NDdGMCAvKiBJbnRTaXplLmNwcCAqLzsgfTsKIAkJMkQ0ODFGMDAxNDZCNUM0QzAwQUE3
ODM0IC8qIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMkZDMDU0MTQ2MENENkYwMDI2MzYzMyAvKiBDcm9z
c2ZhZGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi87IH07CkBAIC0xMzYzLDkgKzEzNjIsNiBAQAogCQky
RTNCQkYwODExNjJEQTExMDBCOTQwOUEgLyogVVVJRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUzQkJGMDYxMTYyREExMTAwQjk0MDlBIC8qIFVVSUQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTNC
QzBDQTExN0QzRTA4MDBCOTQwOUEgLyogSlNGaWxlRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUzQkMwQzgxMTdEM0UwODAwQjk0MDlBIC8q
IEpTRmlsZUVycm9yLmNwcCAqLzsgfTsKIAkJMkUzQkMwQ0IxMTdEM0UwODAwQjk0MDlBIC8qIEpT
RmlsZUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRTNCQzBDOTExN0QzRTA4MDBCOTQwOUEgLyogSlNGaWxlRXJyb3IuaCAqLzsgfTsKLQkJMkUz
QkMxMDgxMTdENDc5ODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUzQkMxMDYxMTdENDc5ODAwQjk0MDlBIC8q
IERPTUZpbGVFcnJvci5oICovOyB9OwotCQkyRTNCQzEwOTExN0Q0Nzk4MDBCOTQwOUEgLyogRE9N
RmlsZUVycm9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkUzQkMxMDcxMTdENDc5ODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvci5tbSAqLzsgfTsKLQkJ
MkUzQkMxMEIxMTdENDdDODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvckludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTNCQzEwQTExN0Q0N0M4
MDBCOTQwOUEgLyogRE9NRmlsZUVycm9ySW50ZXJuYWwuaCAqLzsgfTsKIAkJMkUzQzhDNjIxQkZC
QTk3NTAwMzA5NTY2IC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTNDOEM2MTFCRkJBOERDMDAzMDk1NjYgLyog
Q2FwdHVyZURldmljZU1hbmFnZXIuaCAqLzsgfTsKIAkJMkUzQzhDNjQxQkZCQjc1RDAwMzA5NTY2
IC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFM0M4QzYzMUJGQkI3NUQwMDMwOTU2NiAvKiBDYXB0dXJlRGV2
aWNlTWFuYWdlci5jcHAgKi87IH07CiAJCTJFM0M4QzY4MUJGQkY4RTEwMDMwOTU2NiAvKiBDYXB0
dXJlRGV2aWNlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkUzQzhDNjYxQkZCRjhFMTAwMzA5NTY2IC8qIENhcHR1cmVEZXZpY2VJbmZvLmggKi87
IH07CkBAIC0yNzczLDggKzI3NjksNiBAQAogCQk3NjgwOEI1MDE1OURBREZBMDAyQjUyMzMgLyog
SlNIVE1MRGlhbG9nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxvZ0VsZW1l
bnQuaCAqLzsgfTsKIAkJNzY5NDU2M0MxMjE0RDk3QzAwMDdDQkFFIC8qIEpTRE9NVG9rZW5MaXN0
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2OTQ1
NjNBMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5jcHAgKi87IH07CiAJCTc2OTQ1
NjNEMTIxNEQ5N0MwMDA3Q0JBRSAvKiBKU0RPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzY5NDU2M0IxMjE0RDk3QzAwMDdDQkFFIC8q
IEpTRE9NVG9rZW5MaXN0LmggKi87IH07Ci0JCTc2OTQ1NjVCMTIxNERCNjMwMDA3Q0JBRSAvKiBE
T01ET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDc2OTQ1NjU5MTIxNERCNjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QuaCAqLzsg
fTsKLQkJNzY5NDU2NUMxMjE0REI2MzAwMDdDQkFFIC8qIERPTURPTVRva2VuTGlzdC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2OTQ1NjVBMTIxNERC
NjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QubW0gKi87IH07CiAJCTc2Q0REMkYyMTEwM0RB
NjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzZDREQyRUMxMTAzREE2NjAwNjgwNTIxIC8q
IEFjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgKi87IH07CiAJCTc2Q0REMkYzMTEwM0RBNjYwMDY4
MDUyMSAvKiBBY2Nlc3NpYmlsaXR5TWVudUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2Q0REMkVEMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3Np
YmlsaXR5TWVudUxpc3QuaCAqLzsgfTsKIAkJNzZDREQyRjQxMTAzREE2NjAwNjgwNTIxIC8qIEFj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDc2Q0REMkVFMTEwM0RBNjYwMDY4MDUyMSAvKiBBY2Nlc3NpYmls
aXR5TWVudUxpc3RQb3B1cC5jcHAgKi87IH07CkBAIC0zMzA0LDcgKzMyOTgsNiBAQAogCQk4NTk5
MkVCRDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjUwQUE1MDY5NTAwQUMw
Nzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5tbSAqLzsgfTsKIAkJODU5OTJFQkUwQUE1MDY5NTAw
QUMwNzg1IC8qIERPTUhUTUxMaW5rRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjYwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxM
aW5rRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg1OTkyRUJGMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MTGlua0VsZW1lbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCNzBB
QTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTExpbmtFbGVtZW50Lm1tICovOyB9OwotCQk4NTk5MkVD
MDBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjgwQUE1MDY5NTAwQUMwNzg1
IC8qIERPTUhUTUxUaXRsZUVsZW1lbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NTlBOUM0NzBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJh
c2VFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4NTlBOUMzRDBBQTVFM0JEMDBCNjk0QjIgLyogRE9NSFRNTEJhc2VFbGVtZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU5QTlDNDgwQUE1
RTNCRDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OUE5QzNFMEFBNUUzQkQwMEI2OTRCMiAvKiBE
T01IVE1MQmFzZUVsZW1lbnQubW0gKi87IH07CiAJCTg1OUE5QzQ5MEFBNUUzQkQwMEI2OTRCMiAv
KiBET01IVE1MQm9keUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDg1OUE5QzNGMEFBNUUzQkQwMEI2OTRCMiAvKiBET01IVE1MQm9keUVsZW1l
bnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
NzI2OSw3ICs3MjYyLDYgQEAKIAkJCQlCQzAwRjAzOTBFMEExOURCMDBGRDA0RTMgLyogRE9NRmls
ZUxpc3RJbnRlcm5hbC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJQTFDNzk3
MTgxODgzREQ4MjAwMEY1RTFGIC8qIERPTUdlc3R1cmVFdmVudC5oIGluIENvcHkgR2VuZXJhdGVk
IEhlYWRlcnMgKi8sCiAJCQkJODVERjM0NjIwQUFGQzJENDAwRTU5QUUzIC8qIERPTUtleWJvYXJk
RXZlbnQuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovLAotCQkJCTJENDQ0NjlCMUM4NENE
MDUwMDI0Qzg4OSAvKiBET01NZWRpYUVycm9yLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LywKIAkJCQk4NTA2NTc5RjBBQUI0QThFMDAyRDE1QzAgLyogRE9NTWVkaWFMaXN0LmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk4NTdFMEIzMTBBQjA0NDc4MDAzNkU0NDcgLyog
RE9NTW91c2VFdmVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJODVERjM0
NUQwQUFGQzJENDAwRTU5QUUzIC8qIERPTU11dGF0aW9uRXZlbnQuaCBpbiBDb3B5IEdlbmVyYXRl
ZCBIZWFkZXJzICovLApAQCAtNzI5Miw3ICs3Mjg0LDYgQEAKIAkJCQk4NTA2NTdBMTBBQUI0QThF
MDAyRDE1QzAgLyogRE9NU3R5bGVTaGVldExpc3QuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJz
ICovLAogCQkJCTFDMTFDQ0MyMEFBNjA5MzcwMERBREIyMCAvKiBET01UZXh0LmggaW4gQ29weSBH
ZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQk5MzNBMTQ3NjBCN0QxQkFGMDBBNTNGRkQgLyogRE9N
VGV4dEV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKLQkJCQkyRDQ0NDY5RjFD
ODRDRDA2MDAyNEM4ODkgLyogRE9NVGltZVJhbmdlcy5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRl
cnMgKi8sCiAJCQkJQTFDNzk3MTkxODgzRERFRDAwMEY1RTFGIC8qIERPTVRvdWNoLmggaW4gQ29w
eSBHZW5lcmF0ZWQgSGVhZGVycyAqLywKIAkJCQlBMUM3OTcxQTE4ODNERTBEMDAwRjVFMUYgLyog
RE9NVG91Y2hFdmVudC5oIGluIENvcHkgR2VuZXJhdGVkIEhlYWRlcnMgKi8sCiAJCQkJQTFDNzk3
MUIxODgzREUyQjAwMEY1RTFGIC8qIERPTVRvdWNoTGlzdC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8sCkBAIC04MDQyLDggKzgwMzMsNiBAQAogCQkxNUM3NzA4QTEwMEQzQzZBMDA1QkEy
NjcgLyogVmFsaWRpdHlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
YWxpZGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE1Qzc3MDkxMTAw
RDNDQTgwMDVCQTI2NyAvKiBKU1ZhbGlkaXR5U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNWYWxpZGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE1Qzc3MDkyMTAwRDNDQTgwMDVCQTI2NyAvKiBKU1ZhbGlkaXR5U3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNWYWxpZGl0eVN0YXRlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTVDNzcwQTMxMDBENDFDRDAwNUJBMjY3IC8qIERP
TVZhbGlkaXR5U3RhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBET01WYWxpZGl0eVN0YXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxNUM3
NzBBNDEwMEQ0MUNEMDA1QkEyNjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01WYWxpZGl0eVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTE1RkNDOUZEMUI0REY4NTYwMEU3MjMyNiAvKiBET01VUkxNZWRpYVN0cmVh
bS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01VUkxNZWRpYVN0cmVhbS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNjNFODhGNTExOEEzOUQyMDBFRDkyMzEg
LyogU2ltcGxlRm9udERhdGFDb3JlVGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTg1QkNGMjYwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVycy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRUaW1lcnMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODA2Nyw2ICs4MDU2LDkgQEAKIAkJMUEwRDU3
M0YwQTVDNzg2NzAwN0VERDRDIC8qIEpTT3ZlcmZsb3dFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNPdmVyZmxvd0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBMTQxNEIzMTNBMEYwNTAwMDE5OTk2QyAvKiBXZWJLaXRGb250RmFtaWx5TmFt
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUExNDE0QjQxM0EwRjA1MDAwMTk5OTZDIC8qIFdl
YktpdEZvbnRGYW1pbHlOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRGb250RmFtaWx5TmFt
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUExNDRCNEMxRDRGRjc2OTAwRDlF
MzJDIC8qIERPTURPTVRva2VuTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTURPTVRva2VuTGlzdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTFBMTQ0QjRFMUQ0RkY3REQwMEQ5RTMyQyAvKiBET01ET01Ub2tlbkxpc3QuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRE9NVG9rZW5MaXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBMTQ0QjRGMUQ0RkY3REQwMEQ5RTMyQyAvKiBET01E
T01Ub2tlbkxpc3QubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01ET01Ub2tlbkxpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMUQxMzdF
MEE1MzI1NTIwMDY0QkY1RiAvKiBET01YUGF0aC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01YUGF0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTFEMTM3
RjBBNTMyNTUyMDA2NEJGNUYgLyogRE9NWFBhdGgubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01YUGF0aC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUEyMTlCM0EwRENBODdBQjAwNDBFM0EwIC8qIG5wZnVuY3Rpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IG5wZnVuY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04NzI3LDkgKzg3MTksNiBAQAogCQkyRTNCQkYwNjExNjJEQTExMDBCOTQwOUEg
LyogVVVJRC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVVUlELmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFM0JDMEM4MTE3RDNFMDgwMEI5NDA5QSAvKiBKU0Zp
bGVFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0ZpbGVF
cnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFM0JDMEM5MTE3RDNFMDgw
MEI5NDA5QSAvKiBKU0ZpbGVFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0ZpbGVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyRTNCQzEwNjEx
N0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTUZpbGVFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQky
RTNCQzEwNzExN0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9yLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NRmlsZUVycm9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQkyRTNCQzEwQTExN0Q0N0M4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9y
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRmlsZUVycm9y
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUzQzhDNjExQkZCQThE
QzAwMzA5NTY2IC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhcHR1
cmVEZXZpY2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFM0M4QzYz
MUJGQkI3NUQwMDMwOTU2NiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYXB0dXJlRGV2aWNlTWFuYWdlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFM0M4QzY2MUJGQkY4RTEwMDMwOTU2NiAvKiBDYXB0
dXJlRGV2aWNlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYXB0dXJl
RGV2aWNlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTIzMiw3ICs5MjIx
LDYgQEAKIAkJNDNGNkZEOTUxM0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVkSW50ZWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZEludGVn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEwMDBD
NEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NDI5QUFGRjBD
Qjg0RUMzMDA3NjQ3QzUgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyOUFCMDcwQ0I4NEY4MTAwNzY0N0M1IC8q
IERPTVRleHRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01UZXh0RXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NDJBQkNENTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5ldC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0xvYWRl
ckNsaWVudENGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyQUY3QTcx
MDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBRdWlja0xvb2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjkz
LDggKzEwMjgxLDYgQEAKIAkJNzY4MDhCNEUxNTlEQURGQTAwMkI1MjMzIC8qIEpTSFRNTERpYWxv
Z0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MRGlhbG9n
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Njk0NTYzQTEyMTREOTdD
MDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNET01Ub2tlbkxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Njk0NTYzQjEyMTREOTdDMDAwN0NCQUUgLyogSlNET01Ub2tlbkxpc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Ub2tlbkxpc3QuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNzY5NDU2NTkxMjE0REI2MzAwMDdDQkFFIC8qIERPTURPTVRva2Vu
TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01ET01Ub2tlbkxpc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNzY5NDU2NUExMjE0REI2MzAwMDdDQkFF
IC8qIERPTURPTVRva2VuTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERPTURPTVRva2VuTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzZDREQyRUMxMTAzREE2NjAwNjgwNTIxIC8qIEFjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3NkNERDJFRDExMDNEQTY2MDA2ODA1
MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFjY2Vzc2liaWxpdHlNZW51TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3NkNERDJFRTExMDNEQTY2MDA2ODA1MjEgLyogQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYyNDYs
NiArMTYyMzIsMTggQEAKIAkJMUFEMkQxNUMxRDRGRDZCMjAwQjdERTM2IC8qIEhUTUwgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTJFMkQ5OUU1MTBFMkJD
MUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi8sCisJCQkJMkUyRDk5RTYxMEUyQkMxQzAwNDk2MzM3
IC8qIERPTUJsb2IubW0gKi8sCisJCQkJMkUyRDk5RTkxMEUyQkMzODAwNDk2MzM3IC8qIERPTUJs
b2JJbnRlcm5hbC5oICovLAorCQkJCTFBMTQ0QjRFMUQ0RkY3REQwMEQ5RTMyQyAvKiBET01ET01U
b2tlbkxpc3QuaCAqLywKKwkJCQkxQTE0NEI0RjFENEZGN0REMDBEOUUzMkMgLyogRE9NRE9NVG9r
ZW5MaXN0Lm1tICovLAorCQkJCTFBMTQ0QjRDMUQ0RkY3NjkwMEQ5RTMyQyAvKiBET01ET01Ub2tl
bkxpc3RJbnRlcm5hbC5oICovLAorCQkJCUJDMDBFRkZFMEUwQTE4NTUwMEZEMDRFMyAvKiBET01G
aWxlLmggKi8sCisJCQkJQkMwMEVGRkYwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGUubW0gKi8s
CisJCQkJQkMwMEYwMDAwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGVJbnRlcm5hbC5oICovLAor
CQkJCUJDMDBGMDAxMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlzdC5oICovLAorCQkJCUJD
MDBGMDAyMEUwQTE4NTUwMEZEMDRFMyAvKiBET01GaWxlTGlzdC5tbSAqLywKKwkJCQlCQzAwRjAw
MzBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3RJbnRlcm5hbC5oICovLAogCQkJCTg1REY4
MTIxMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5oICovLAogCQkJCTg1
REY4MTIyMEFBNzc4NzIwMDQ4NkFENyAvKiBET01IVE1MQW5jaG9yRWxlbWVudC5tbSAqLywKIAkJ
CQk4NUU3MTE0QzBBQzVENTM0MDA1MzI3MEYgLyogRE9NSFRNTEFuY2hvckVsZW1lbnRJbnRlcm5h
bC5oICovLApAQCAtMTYzNjQsNyArMTYzNjIsNiBAQAogCQkJCTg1REY4MTI1MEFBNzc4NzIwMDQ4
NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5oICovLAogCQkJCTg1REY4MTI2MEFBNzc4NzIw
MDQ4NkFENyAvKiBET01IVE1MT2JqZWN0RWxlbWVudC5tbSAqLywKIAkJCQk4NUU3MTE2RTBBQzVE
NTM1MDA1MzI3MEYgLyogRE9NSFRNTE9iamVjdEVsZW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTQ0
MjlBQUZGMENCODRFQzMwMDc2NDdDNSAvKiBET01IVE1MT2JqZWN0RWxlbWVudFByaXZhdGUuaCAq
LywKIAkJCQk4NUJBNEQwNzBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRNTE9MaXN0RWxlbWVudC5o
ICovLAogCQkJCTg1QkE0RDA4MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MT0xpc3RFbGVtZW50
Lm1tICovLAogCQkJCTg1RTcxMTZGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MT0xpc3RFbGVt
ZW50SW50ZXJuYWwuaCAqLywKQEAgLTE2NDI5LDYgKzE2NDI2LDEyIEBACiAJCQkJMkRFQzY2NEIx
QzgyQ0ZCRjAwOTk4NDZBIC8qIERPTUhUTUxWaWRlb0VsZW1lbnQuaCAqLywKIAkJCQkyREVDNjY0
QzFDODJDRkJGMDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxlbWVudC5tbSAqLywKIAkJCQkyREVD
NjY0RDFDODJDRkJGMDA5OTg0NkEgLyogRE9NSFRNTFZpZGVvRWxlbWVudEludGVybmFsLmggKi8s
CisJCQkJMkRFQzY2NzUxQzg0MDNDMzAwOTk4NDZBIC8qIERPTU1lZGlhRXJyb3IuaCAqLywKKwkJ
CQkyREVDNjY3NjFDODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFFcnJvci5tbSAqLywKKwkJCQky
REVDNjY3NzFDODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFFcnJvckludGVybmFsLmggKi8sCisJ
CQkJMkRFQzY2NkYxQzgzRjJBRjAwOTk4NDZBIC8qIERPTVRpbWVSYW5nZXMuaCAqLywKKwkJCQky
REVDNjY3MDFDODNGMkFGMDA5OTg0NkEgLyogRE9NVGltZVJhbmdlcy5tbSAqLywKKwkJCQkyREVD
NjY3MTFDODNGMkFGMDA5OTg0NkEgLyogRE9NVGltZVJhbmdlc0ludGVybmFsLmggKi8sCiAJCQkp
OwogCQkJbmFtZSA9IEhUTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTg3NzMs
NyArMTg3NzYsNiBAQAogCQkJCTg1OTY3RDlGMEFBOEJCNTkwMDVGRURFRSAvKiBDb3JlICovLAog
CQkJCTg1OTY3RENBMEFBOEJGMEYwMDVGRURFRSAvKiBDU1MgKi8sCiAJCQkJODVBRkE3QUIwQUFG
M0JCMDAwRTg0MzA1IC8qIEV2ZW50cyAqLywKLQkJCQk4NUM1NkQwMzBBQThCQUE3MDBEOTU3NTUg
LyogSFRNTCAqLywKIAkJCQk4NUU3MTEzRDBBQzVENEExMDA1MzI3MEYgLyogSW50ZXJuYWwgKi8s
CiAJCQkJODUzOEYwNTcwQUQ3MjJCOTAwNkE4MUQxIC8qIFJhbmdlcyAqLywKIAkJCQk4NTA2NTcw
NDBBQUI0NzZDMDAyRDE1QzAgLyogU3R5bGVTaGVldHMgKi8sCkBAIC0xODc4NSwzNSArMTg3ODcs
MTEgQEAKIAkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3JlOwogCQkJc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsKIAkJfTsKLQkJODVDNTZEMDMwQUE4QkFBNzAwRDk1NzU1IC8q
IEhUTUwgKi8gPSB7Ci0JCQlpc2EgPSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTJF
MkQ5OUU1MTBFMkJDMUMwMDQ5NjMzNyAvKiBET01CbG9iLmggKi8sCi0JCQkJMkUyRDk5RTYxMEUy
QkMxQzAwNDk2MzM3IC8qIERPTUJsb2IubW0gKi8sCi0JCQkJNzY5NDU2NTkxMjE0REI2MzAwMDdD
QkFFIC8qIERPTURPTVRva2VuTGlzdC5oICovLAotCQkJCTc2OTQ1NjVBMTIxNERCNjMwMDA3Q0JB
RSAvKiBET01ET01Ub2tlbkxpc3QubW0gKi8sCi0JCQkJQkMwMEVGRkUwRTBBMTg1NTAwRkQwNEUz
IC8qIERPTUZpbGUuaCAqLywKLQkJCQlCQzAwRUZGRjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmls
ZS5tbSAqLywKLQkJCQkyRTNCQzEwNjExN0Q0Nzk4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9yLmgg
Ki8sCi0JCQkJMkUzQkMxMDcxMTdENDc5ODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvci5tbSAqLywK
LQkJCQlCQzAwRjAwMTBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QuaCAqLywKLQkJCQlC
QzAwRjAwMjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QubW0gKi8sCi0JCQkJMkRFQzY2
NzUxQzg0MDNDMzAwOTk4NDZBIC8qIERPTU1lZGlhRXJyb3IuaCAqLywKLQkJCQkyREVDNjY3NjFD
ODQwM0MzMDA5OTg0NkEgLyogRE9NTWVkaWFFcnJvci5tbSAqLywKLQkJCQkyREVDNjY2RjFDODNG
MkFGMDA5OTg0NkEgLyogRE9NVGltZVJhbmdlcy5oICovLAotCQkJCTJERUM2NjcwMUM4M0YyQUYw
MDk5ODQ2QSAvKiBET01UaW1lUmFuZ2VzLm1tICovLAotCQkJCTE1Qzc3MEE0MTAwRDQxQ0QwMDVC
QTI2NyAvKiBET01WYWxpZGl0eVN0YXRlLmggKi8sCi0JCQkJMTVDNzcwQTMxMDBENDFDRDAwNUJB
MjY3IC8qIERPTVZhbGlkaXR5U3RhdGUubW0gKi8sCi0JCQkpOwotCQkJbmFtZSA9IEhUTUw7Ci0J
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwotCQl9OwogCQk4NUU3MTEzRDBBQzVENEExMDA1MzI3
MEYgLyogSW50ZXJuYWwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAogCQkJCTg1MzhGMDE4MEFENzE4RDgwMDZBODFEMSAvKiBET01BYnN0cmFjdFZpZXdJbnRlcm5h
bC5oICovLAogCQkJCTg1RTcxMTNFMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01BdHRySW50ZXJuYWwu
aCAqLywKLQkJCQkyRTJEOTlFOTEwRTJCQzM4MDA0OTYzMzcgLyogRE9NQmxvYkludGVybmFsLmgg
Ki8sCiAJCQkJODVFNzExM0YwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNEQVRBU2VjdGlvbkludGVy
bmFsLmggKi8sCiAJCQkJODVFNzExNDAwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNoYXJhY3RlckRh
dGFJbnRlcm5hbC5oICovLAogCQkJCTg1RTcxMTQxMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Db21t
ZW50SW50ZXJuYWwuaCAqLywKQEAgLTE4ODQxLDExICsxODgxOSw3IEBACiAJCQkJODVFNzExNEEw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNEIw
QUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggKi8sCiAJCQkJ
ODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKLQkJCQky
RTNCQzEwQTExN0Q0N0M4MDBCOTQwOUEgLyogRE9NRmlsZUVycm9ySW50ZXJuYWwuaCAqLywKLQkJ
CQlCQzAwRjAwMDBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUludGVybmFsLmggKi8sCi0JCQkJ
QkMwMEYwMDMwRTBBMTg1NTAwRkQwNEUzIC8qIERPTUZpbGVMaXN0SW50ZXJuYWwuaCAqLywKIAkJ
CQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgg
Ki8sCi0JCQkJMkRFQzY2NzcxQzg0MDNDMzAwOTk4NDZBIC8qIERPTU1lZGlhRXJyb3JJbnRlcm5h
bC5oICovLAogCQkJCTg1RTcxMTgyMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01NZWRpYUxpc3RJbnRl
cm5hbC5oICovLAogCQkJCTc1NzkzRUQyMEQwQ0U4NUIwMDdGQzBBQyAvKiBET01NZXNzYWdlRXZl
bnRJbnRlcm5hbC5oICovLAogCQkJCUUxQURFREQ0MEU3NkJENjAwMDRBMUE1RSAvKiBET01NZXNz
YWdlUG9ydEludGVybmFsLmggKi8sCkBAIC0xODg2Niw3ICsxODg0MCw2IEBACiAJCQkJODVFNzEx
ODgwQUM1RDUzNTAwNTMyNzBGIC8qIERPTVN0eWxlU2hlZXRMaXN0SW50ZXJuYWwuaCAqLywKIAkJ
CQk0NDI5QUIwNzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLywK
IAkJCQk4NUU3MTE4QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NVGV4dEludGVybmFsLmggKi8sCi0J
CQkJMkRFQzY2NzExQzgzRjJBRjAwOTk4NDZBIC8qIERPTVRpbWVSYW5nZXNJbnRlcm5hbC5oICov
LAogCQkJCTg1MEI0MUMxMEFEOUU3RTcwMEE2RUQ0RiAvKiBET01UcmVlV2Fsa2VySW50ZXJuYWwu
aCAqLywKIAkJCQk4NTk4OURDOTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NVUlFdmVudEludGVybmFs
LmggKi8sCiAJCQkJODU5ODlEQ0EwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRl
cm5hbC5oICovLApAQCAtMjI0NzYsOCArMjI0NDksOCBAQAogCQlCQzFBMzc5NDA5N0M2RkM0MDAx
OUYzRDggLyogb2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJMUFEMkQxNUMxRDRGRDZCMjAwQjdERTM2IC8qIEhUTUwgKi8sCiAJCQkJODU0RjEyQUMw
QThFQkMxODAwMDk0MEI1IC8qIENvcmUgKi8sCisJCQkJMUFEMkQxNUMxRDRGRDZCMjAwQjdERTM2
IC8qIEhUTUwgKi8sCiAJCQkJODVCMjMyMjYwQThCRjNBMTAwRkRGNDdCIC8qIERlcml2ZWQgU291
cmNlcyAqLywKIAkJCQk4NTQwNzU0MjBBRDZDNzNFMDA2MjBDNTcgLyogRE9NRXhjZXB0aW9ucyAq
LywKIAkJCQlCQ0QwRkJDRTBEQkQ2MjQxMDBCMkY2MzAgLyogVmlld3MgKi8sCkBAIC0yNTQ2MCw3
ICsyNTQzMyw2IEBACiAJCQkJRTFGRTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0
b1V0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5M0YzNEExQUE2QkE1RTAwQTk4QkFC
IC8qIENvbXBpbGVkQ29udGVudEV4dGVuc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdDMjM2
MTExMDk3RUU3NzAwRUY5RjcyIC8qIENvbXBsZXhUZXh0Q29udHJvbGxlci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMUE2N0JGNkExRDRGRTQyMzAwNDEyQUM3IC8qIERPTUhUTUxPYmplY3RFbGVtZW50
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRCQTUwOTAxQkNGQkQ5NTAwRTM0RUY3IC8q
IENvbXBvc2VkVHJlZUFuY2VzdG9ySXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NEZB
MTg1MUJDQTZCNUEwMDkxQjZFRiAvKiBDb21wb3NlZFRyZWVJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMzE2RkUxMTYwRTZFMURBNzAwQkY2MDg4IC8qIENvbXBvc2l0ZUFuaW1hdGlvbi5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNTg0OCw3ICsyNTgyMCw2IEBACiAJCQkJNTJDQ0E5RTgxNUUz
RjY0QzAwNTNDNzdGIC8qIERPTURPTU5hbWVkRmxvd0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTUyQ0NBOUVBMTVFM0Y2NEMwMDUzQzc3RiAvKiBET01ET01OYW1lZEZsb3dDb2xsZWN0
aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTlCM0E4ODcyMTQ1NjMyRjkwMDNBRThG
NSAvKiBET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzY5NDU2
NUIxMjE0REI2MzAwMDdDQkFFIC8qIERPTURPTVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0FBQkEyNUExNEJDNjEzMzAwQUE5QTExIC8qIERPTUVkaXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODVBQ0E5QzAwQTlCNUZBNTAwNjcxRTkwIC8qIERPTUVsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg1RTcxMTk4MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01FbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLApAQCAtMjU4NjYsOCArMjU4MzcsNiBAQAogCQkJCTg1Qzc4QTY4MEFC
REUxQjQwMDQ0RkMxNiAvKiBET01FeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUEz
N0I1MDk3QzcxNUYwMDE5RjNEOCAvKiBET01FeHRlbnNpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzAwRjAwNDBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJMkUzQkMxMDgxMTdENDc5ODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMkUzQkMxMEIxMTdENDdDODAwQjk0MDlBIC8qIERPTUZpbGVFcnJvckludGVybmFs
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAwRjAwNjBFMEExODU1MDBGRDA0RTMgLyogRE9NRmls
ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAwRjAwNzBFMEExODU1MDBGRDA0RTMg
LyogRE9NRmlsZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDBGMDA5MEUwQTE4NTUwMEZE
MDRFMyAvKiBET01GaWxlTGlzdEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDA1LDcg
KzI1OTc0LDYgQEAKIAkJCQkyRTM3REZEQjEyREJBRkI4MDBBNkIyMzMgLyogRE9NVVJMLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDRDlERTE4MjE3QUFENkE0MDBFQTM4NkQgLyogRE9NVVJMTWVkaWFT
b3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTE1RkNDOUZFMUI0REY4NUUwMEU3MjMyNiAvKiBE
T01VUkxNZWRpYVN0cmVhbS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMTVDNzcwQTYxMDBENDFDRDAw
NUJBMjY3IC8qIERPTVZhbGlkaXR5U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUEzN0Mw
MDk3QzcxNUYwMDE5RjNEOCAvKiBET01WaWV3cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZG
NDkwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUMwRkY0QjBFNENFRkREMDA3RDZGRTUgLyogRE9NV2ViS2l0QW5pbWF0aW9u
RXZlbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzg3Niw2ICsyNzg0NCw3IEBACiAJ
CQkJNDk5OEFFQzYxM0Y5RDBFQTAwOTBCMUFBIC8qIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNTVCM0REMDEyNTFGMTJEMDAzRUYyNjkgLyogUmVz
ZXRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFRTY4NDZBMTJEMjZFMzgwMEU3OTQx
NSAvKiBSZXNvdXJjZUVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQTE0NEI0RDFENEZGNzcz
MDBEOUUzMkMgLyogRE9NRE9NVG9rZW5MaXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTkzNEY3MTNDMEQ1QTZGMTkwMDAxOEQ2OSAvKiBSZXNvdXJjZUVycm9yQmFzZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTE0Qzc2NzkwQ0U5MjNBMTAwN0VGM0NEIC8qIFJlc291cmNlSGFuZGxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyNkZBRTRDRDE4NTJFM0E1MDA0QzhDNDYgLyogUmVzb3VyY2VI
YW5kbGVDRlVSTENvbm5lY3Rpb25EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODIwNCw2
ICsyODE3Myw3IEBACiAJCQkJRTEzOTg2NjQxNTQ3ODQ3NDAwMUUzRjY1IC8qIFN0eWxlUmVzb2x2
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0QkJFRDREMTRGQ0RCQTEwMDNGMEI5OCAvKiBTdHls
ZVJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0OTQ2RUFGMTU2RTY0REQwMEQzMjk3RiAvKiBT
dHlsZVJ1bGVJbXBvcnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTFBMTQ0QjUxMUQ0RkY5QkQwMEQ5
RTMyQyAvKiBET01ET01Ub2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0N0E1RTNFMTk1
QjhDOEEwMDQ4MzEwMCAvKiBTdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTlENjM4MDEwMUFGMTczMjIwMDMxQTE1QyAvKiBTdHlsZVNlbGZBbGlnbm1lbnREYXRhLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlFNDdBM0FDNjFDNUVBQzlEMDBDQ0JGQTcgLyogU3R5bGVTaGFy
aW5nUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjk3MjYsNyArMjk2OTYsNiBAQAogCQkJ
CTg1Q0E5NzVEMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4NTE4RENFQTBBOUNDODBEMDA5MUI3QTYgLyogRE9NRE9NSW1wbGVtZW50YXRp
b24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MkNDQTlFOTE1RTNGNjRDMDA1M0M3N0YgLyogRE9N
RE9NTmFtZWRGbG93Q29sbGVjdGlvbi5tbSBpbiBTb3VyY2VzICovLAotCQkJCTc2OTQ1NjVDMTIx
NERCNjMwMDA3Q0JBRSAvKiBET01ET01Ub2tlbkxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
QUFCQTI1OTE0QkM2MTMzMDBBQTlBMTEgLyogRE9NRWRpdG9yLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTg1QUNBOUMxMEE5QjVGQTUwMDY3MUU5MCAvKiBET01FbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtMjk3MzUsNyArMjk3MDQsNiBAQAogCQkJCTg1QUZBODIzMEFBRjUyOEEwMEU4
NDMwNSAvKiBET01FdmVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMUEzN0IzMDk3QzcxNUYw
MDE5RjNEOCAvKiBET01FdmVudHMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzAwRjAwNTBFMEEx
ODU1MDBGRDA0RTMgLyogRE9NRmlsZS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTJFM0JDMTA5MTE3
RDQ3OTgwMEI5NDA5QSAvKiBET01GaWxlRXJyb3IubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzAw
RjAwODBFMEExODU1MDBGRDA0RTMgLyogRE9NRmlsZUxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRUQ2MDlCQzExNDVCMDcxMDBDODY4NEUgLyogRE9NRm9ybURhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEY1NERDRTExODgwRjkwMTAwM0VFREJCIC8qIERPTUdlc3R1cmVFdmVudC5tbSBp
biBTb3VyY2VzICovLApAQCAtMjk3OTUsNyArMjk3NjMsNiBAQAogCQkJCTg1REY4MjcxMEFBNzhC
OEIwMDQ4NkFENyAvKiBET01IVE1MVGFibGVFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODVERjgyMjQwQUE3ODQ5RTAwNDg2QUQ3IC8qIERPTUhUTUxUYWJsZVJvd0VsZW1lbnQubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NURGODIyNjBBQTc4NDlFMDA0ODZBRDcgLyogRE9NSFRNTFRhYmxl
U2VjdGlvbkVsZW1lbnQubW0gaW4gU291cmNlcyAqLywKLQkJCQk4NTk5MkVDMTBBQTUwNjk1MDBB
QzA3ODUgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg1QkE0
RDE4MEFBNjg4NjgwMDg4MDUyRCAvKiBET01IVE1MVUxpc3RFbGVtZW50Lm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkRFQzY2NTMxQzgyRDAyRTAwOTk4NDZBIC8qIERPTUhUTUxWaWRlb0VsZW1lbnQu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlBODE4NUYzRTA5NzY1NzY2MDA1ODI2RDkgLyogRE9NSW1w
bGVtZW50YXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTg0OCw3ICsyOTgxNSw2IEBACiAJ
CQkJQ0Q5REUxODExN0FBRDZBNDAwRUEzODZEIC8qIERPTVVSTE1lZGlhU291cmNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTE1RkNDOUZDMUI0REY3RjIwMEU3MjMyNiAvKiBET01VUkxNZWRpYVN0
cmVhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzFBMzdCRjA5N0M3MTVGMDAxOUYzRDggLyog
RE9NVXRpbGl0eS5tbSBpbiBTb3VyY2VzICovLAotCQkJCTE1Qzc3MEE1MTAwRDQxQ0QwMDVCQTI2
NyAvKiBET01WYWxpZGl0eVN0YXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGNEEwRTRD
RUZERDAwN0Q2RkU1IC8qIERPTVdlYktpdEFuaW1hdGlvbkV2ZW50Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMzEwNjAzN0ExNDMyODFDRDAwQUJGNEJBIC8qIERPTVdlYktpdENTU0ZpbHRlclZhbHVl
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4MzkxNTEwRjFFNzZCNDAwQzIzNzgyIC8qIERPTVdl
YktpdENTU01hdHJpeC5tbSBpbiBTb3VyY2VzICovLApAQCAtMzE1NTksNiArMzE1MjUsNyBAQAog
CQkJCUE4REY0QUYwMDk4MEM0MkMwMDUyOTgxQiAvKiBSZW5kZXJUYWJsZVJvdy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBOERGNEFFRDA5ODBDNDJDMDA1Mjk4MUIgLyogUmVuZGVyVGFibGVTZWN0
aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRUE0ODhCMDk3RDkzMDIwMDk0QzlFNCAvKiBS
ZW5kZXJUZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTFBMTQ0QjUwMUQ0RkY3RjEwMEQ5RTMy
QyAvKiBET01ET01Ub2tlbkxpc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQlBQjY3RDFBODA5N0Yz
QUUzMDBGOTM5MkUgLyogUmVuZGVyVGV4dENvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDgzREFFQTYwRjAxQTdGQjAwMzQyNzU0IC8qIFJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTA4M0RBRUE4MEYwMUE3RkIwMDM0Mjc1NCAvKiBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMTYwMCw2ICszMTU2
Nyw3IEBACiAJCQkJOTczRTMyNTYxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlm
aWVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZCNjkzQTM0MUM1MUE5NUQwMEIwM0JFRiAvKiBS
ZXNvdXJjZUxvYWRPYnNlcnZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTkyOUNBNjFDNTk4
QTlFMDA0REYyMjYgLyogUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQkxQTE0NEI1MjFENTAwMjQzMDBEOUUzMkMgLyogRE9NSFRNTFRpdGxlRWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdBRDNDREQ5MUM4QTAwMkYwMEYxMjY5OCAvKiBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUM5Qjg2MEMxQzIxRTND
OTAwMTEwRjM2IC8qIFJlc291cmNlTG9hZFRpbWluZy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUx
NEM3NjdDMENFOTIzQTEwMDdFRjNDRCAvKiBSZXNvdXJjZVJlcXVlc3RCYXNlLmNwcCBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01CbG9i
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUJsb2IuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZDI0NDNjMDE2ZGQ4ZjMyZGJjNDlhZTQyZDEzYjZlNGNkMDQ2NGJiCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01CbG9iLmgKQEAgLTAsMCArMSwzMSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4KKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfNikKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NQmxvYiA6IERPTU9iamVjdAorQHBy
b3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgbG9uZyBsb25nIHNpemU7CitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUJsb2IubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUJsb2IubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJkNDRkOTNjYTMyYmU0
NjNkMTkyNzBkMTlmNmFkMmM5OTYxNGViZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQmxvYi5tbQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTUJsb2JJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJCbG9iLmgiCisjaW1w
b3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0
ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgi
CisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJD
b3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2lt
cG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpCbG9iKj4oX2ludGVybmFsKQorCitAaW1wbGVtZW50YXRpb24gRE9NQmxvYgorCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1h
aW5UaHJlYWQoW0RPTUJsb2IgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
aWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxv
Y107Cit9CisKKy0gKHVuc2lnbmVkIGxvbmcgbG9uZylzaXplCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zaXplKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dHlwZSgpOworfQorCitAZW5kCisKK1dlYkNvcmU6
OkJsb2IqIGNvcmUoRE9NQmxvYiAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6QmxvYio+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01CbG9iICpraXQoV2ViQ29yZTo6QmxvYiogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICBy
ZXR1cm4gbmlsOworICAgIGlmIChET01CbG9iICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1
ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAg
RE9NQmxvYiAqd3JhcHBlciA9IFtbRE9NQmxvYiBhbGxvY10gX2luaXRdOworICAgIHdyYXBwZXIt
Pl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7
CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOwor
ICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUJsb2JJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01CbG9iSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzZlMDY1MzRmNGU5
YTI2NGE0ZmVhZjgzY2Q0ODJlNTMxYjlmNDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01CbG9iSW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
IDxXZWJDb3JlL0RPTUJsb2IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQmxvYjsK
K30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6QmxvYiogY29yZShET01CbG9iICopOworV0VC
Q09SRV9FWFBPUlQgRE9NQmxvYiAqa2l0KFdlYkNvcmU6OkJsb2IqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRE9NVG9rZW5MaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTURPTVRva2VuTGlzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyOWQ3NjIy
OGI4M2ZmNjViYWJkNzY1MTA0OTY1ZWM1NzUwZDQyMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTURPTVRva2VuTGlzdC5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJL
SVRfQ0xBU1NfQVZBSUxBQkxFX01BQyg5ODc2XzUpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNl
IERPTURPTVRva2VuTGlzdCA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSkgdW5zaWdu
ZWQgbGVuZ3RoOworQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqdmFsdWU7CisKKy0gKE5TU3Ry
aW5nICopaXRlbToodW5zaWduZWQpaW5kZXg7CistIChCT09MKWNvbnRhaW5zOihOU1N0cmluZyAq
KXRva2VuOworLSAoQk9PTCl0b2dnbGU6KE5TU3RyaW5nICopdG9rZW4gZm9yY2U6KEJPT0wpZm9y
Y2U7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTURP
TVRva2VuTGlzdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRE9NVG9rZW5M
aXN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk1NjljYzg5MmZiMTZhMmY4OGQwNWRjMTIzZjdjMzM1NjU2NjAz
NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTURP
TVRva2VuTGlzdC5tbQpAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQg
IkRPTURPTVRva2VuTGlzdEludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisj
aW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTVRva2VuTGlzdC5oIgorI2lt
cG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0
ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAi
V2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6RE9NVG9rZW5MaXN0Kj4oX2ludGVybmFsKQorCitAaW1wbGVtZW50YXRpb24gRE9N
RE9NVG9rZW5MaXN0CisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1Nj
aGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbRE9NRE9NVG9rZW5MaXN0IGNsYXNzXSwgc2Vs
ZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwt
PmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh1bnNpZ25lZClsZW5ndGgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmxlbmd0aCgpOworfQorCistIChOU1N0cmluZyAqKXZhbHVlCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52YWx1ZSgp
OworfQorCistICh2b2lkKXNldFZhbHVlOihOU1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldFZhbHVlKG5l
d1ZhbHVlKTsKK30KKworLSAoTlNTdHJpbmcgKilpdGVtOih1bnNpZ25lZClpbmRleAoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
aXRlbShpbmRleCk7Cit9CisKKy0gKEJPT0wpY29udGFpbnM6KE5TU3RyaW5nICopdG9rZW4KK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmNvbnRhaW5zKHRva2VuKTsKK30KKworLSAoQk9PTCl0b2dnbGU6KE5TU3RyaW5nICopdG9r
ZW4gZm9yY2U6KEJPT0wpZm9yY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgQk9PTCBy
ZXN1bHQgPSBJTVBMLT50b2dnbGUodG9rZW4sIGZvcmNlLCBlYyk7CisgICAgV2ViQ29yZTo6cmFp
c2VPbkRPTUVycm9yKGVjKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitAZW5kCisKK1dlYkNv
cmU6OkRPTVRva2VuTGlzdCogY29yZShET01ET01Ub2tlbkxpc3QgKndyYXBwZXIpCit7CisgICAg
cmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkRPTVRva2VuTGlzdCo+
KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01ET01Ub2tlbkxpc3QgKmtpdChXZWJD
b3JlOjpET01Ub2tlbkxpc3QqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25D
aGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAg
ICBpZiAoRE9NRE9NVG9rZW5MaXN0ICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisg
ICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NRE9N
VG9rZW5MaXN0ICp3cmFwcGVyID0gW1tET01ET01Ub2tlbkxpc3QgYWxsb2NdIF9pbml0XTsKKyAg
ICB3cmFwcGVyLT5faW50ZXJuYWwgPSByZWludGVycHJldF9jYXN0PERPTU9iamVjdEludGVybmFs
Kj4odmFsdWUpOworICAgIHZhbHVlLT5yZWYoKTsKKyAgICBhZGRET01XcmFwcGVyKHdyYXBwZXIs
IHZhbHVlKTsKKyAgICByZXR1cm4gW3dyYXBwZXIgYXV0b3JlbGVhc2VdOworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01ET01Ub2tlbkxpc3RJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01ET01Ub2tlbkxpc3RJbnRlcm5hbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJjNzk4NTQ2YzdlYzA5NjJkNTg2M2ZiM2VkNWU1YjJjMWNmYWVmN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTURPTVRva2Vu
TGlzdEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxXZWJDb3JlL0RPTURPTVRva2Vu
TGlzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBET01Ub2tlbkxpc3Q7Cit9CisK
K1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkRPTVRva2VuTGlzdCogY29yZShET01ET01Ub2tlbkxp
c3QgKik7CitXRUJDT1JFX0VYUE9SVCBET01ET01Ub2tlbkxpc3QgKmtpdChXZWJDb3JlOjpET01U
b2tlbkxpc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
RmlsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGZmZjJkZmMwNDQ5OTEzNWY4NTE0ZDU4Y2RkMWFjYWMxMWM0ZmZhMwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRmlsZS5oCkBAIC0wLDAgKzEs
MzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgPFdlYkNvcmUvRE9NQmxvYi5oPgorCitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzYpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TUZpbGUgOiBET01CbG9iCitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqbmFt
ZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRmls
ZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRmlsZS5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xN2Y4MzdlZjU5NzE5YTM3NGMyYmQ0ZTdkMDcwNjlhMjZjNmMwNmU4Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlLm1tCkBAIC0wLDAgKzEs
NjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NRmlsZUludGVybmFsLmgiCisKKyNpbXBv
cnQgIkRPTUJsb2JJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1w
b3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiRmlsZS5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
VVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYv
R2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpGaWxlKj4ocmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjpCbG9iKj4oX2ludGVybmFsKSkKKworQGltcGxlbWVudGF0
aW9uIERPTUZpbGUKKworLSAoTlNTdHJpbmcgKiluYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5uYW1lKCk7Cit9CisKKy0g
KGxvbmcgbG9uZylsYXN0TW9kaWZpZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxhc3RNb2RpZmllZCgpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OkZpbGUqIGNvcmUoRE9NRmlsZSAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4g
d3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RmlsZSo+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOworfQorCitET01GaWxlICpraXQoV2ViQ29yZTo6RmlsZSogdmFsdWUpCit7Cisg
ICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NRmlsZSo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpCbG9iKj4odmFsdWUp
KSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUZpbGVJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlSW50ZXJuYWwu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43Y2NhMzA2NTEzZGJhNTBlNjAxOTQ2NWE2NDFmZjcyZTc0MjIzYjg5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlSW50
ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGUuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworY2xhc3MgRmlsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6
RmlsZSogY29yZShET01GaWxlICopOworV0VCQ09SRV9FWFBPUlQgRE9NRmlsZSAqa2l0KFdlYkNv
cmU6OkZpbGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
RmlsZUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRmlsZUxpc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jZGRhNjQ1MDkzYTc4YTlkMmQ1YWQwMzgzYmNmN2MxYmMxNjM5MzU2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlTGlzdC5o
CkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01G
aWxlOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF82KQorV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01GaWxlTGlzdCA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSkg
dW5zaWduZWQgbGVuZ3RoOworCistIChET01GaWxlICopaXRlbToodW5zaWduZWQpaW5kZXg7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUZpbGVMaXN0
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlTGlzdC5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNWU0M2ViOWFhZGNiMTBhNDZiMWViNmE3MTE0ZjViY2UzYjMyYzVhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01GaWxlTGlzdC5tbQpAQCAt
MCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUZpbGVMaXN0SW50ZXJuYWwu
aCIKKworI2ltcG9ydCAiRE9NRmlsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVy
cy5oIgorI2ltcG9ydCAiRmlsZS5oIgorI2ltcG9ydCAiRmlsZUxpc3QuaCIKKyNpbXBvcnQgIkpT
TWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQg
IldlYkNvcmVPYmpDRXh0cmFzLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgi
CisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OkZpbGVMaXN0Kj4oX2ludGVybmFsKQorCitAaW1wbGVtZW50YXRpb24gRE9NRmls
ZUxpc3QKKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVE
ZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01GaWxlTGlzdCBjbGFzc10sIHNlbGYpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFsKQorICAgICAgICBJTVBMLT5kZXJlZigpOwor
ICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAodW5zaWduZWQpbGVuZ3RoCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5sZW5n
dGgoKTsKK30KKworLSAoRE9NRmlsZSAqKWl0ZW06KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+aXRlbShpbmRleCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpGaWxlTGlz
dCogY29yZShET01GaWxlTGlzdCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RmlsZUxpc3QqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NRmlsZUxpc3QgKmtpdChXZWJDb3JlOjpGaWxlTGlzdCogdmFsdWUpCit7Cisg
ICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAoIXZhbHVl
KQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01GaWxlTGlzdCAqd3JhcHBlciA9IGdl
dERPTVdyYXBwZXIodmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVyIHJldGFpbl0gYXV0
b3JlbGVhc2VdOworICAgIERPTUZpbGVMaXN0ICp3cmFwcGVyID0gW1tET01GaWxlTGlzdCBhbGxv
Y10gX2luaXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9N
T2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdy
YXBwZXIod3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUZpbGVMaXN0
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRmlsZUxpc3RJbnRl
cm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVmOTRmMTk4MTdkZmVhZmUyYzFlZTAxY2NjMmYzYzM3MDY4MzI2
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUZp
bGVMaXN0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUZpbGVMaXN0
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZpbGVMaXN0OworfQorCitXRUJDT1JF
X0VYUE9SVCBXZWJDb3JlOjpGaWxlTGlzdCogY29yZShET01GaWxlTGlzdCAqKTsKK1dFQkNPUkVf
RVhQT1JUIERPTUZpbGVMaXN0ICpraXQoV2ViQ29yZTo6RmlsZUxpc3QqKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxCdXR0b25FbGVtZW50Lm1tCmluZGV4
IDUwNTY0OGVmZjJhMWQ2YWE1MDliY2VmNDNkMmJiN2IyMGRlMTQwZTMuLmQ2OGFmZmJkMjgzOGI3
YmQwMWJkMjY4YWY1NGI1ZDNjNTZlZjNjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTEJ1dHRvbkVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01IVE1MQnV0dG9uRWxlbWVudC5tbQpAQCAtMjksNyArMjksNiBAQAog
I2ltcG9ydCAiRE9NSFRNTEZvcm1FbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJ
bnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUxpc3RJbnRlcm5hbC5oIgotI2ltcG9ydCAiRE9N
VmFsaWRpdHlTdGF0ZUludGVybmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgog
I2ltcG9ydCAiSFRNTEJ1dHRvbkVsZW1lbnQuaCIKICNpbXBvcnQgIkhUTUxGb3JtRWxlbWVudC5o
IgpAQCAtMzksNyArMzgsNiBAQAogI2ltcG9ydCAiTm9kZUxpc3QuaCIKICNpbXBvcnQgIlRocmVh
ZENoZWNrLmgiCiAjaW1wb3J0ICJVUkwuaCIKLSNpbXBvcnQgIlZhbGlkaXR5U3RhdGUuaCIKICNp
bXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4K
IApAQCAtNzcsNDIgKzc1LDYgQEAKICAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmZv
cm0oKSkpOwogfQogCi0tIChOU1N0cmluZyAqKWZvcm1BY3Rpb24KLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmZvcm1BY3Rpb24o
KTsKLX0KLQotLSAodm9pZClzZXRGb3JtQWN0aW9uOihOU1N0cmluZyAqKW5ld0Zvcm1BY3Rpb24K
LXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgSU1QTC0+
c2V0Rm9ybUFjdGlvbihuZXdGb3JtQWN0aW9uKTsKLX0KLQotLSAoTlNTdHJpbmcgKilmb3JtRW5j
dHlwZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4gSU1QTC0+Zm9ybUVuY3R5cGUoKTsKLX0KLQotLSAodm9pZClzZXRGb3JtRW5jdHlwZToo
TlNTdHJpbmcgKiluZXdGb3JtRW5jdHlwZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRGb3JtRW5jdHlwZShuZXdGb3JtRW5jdHlwZSk7
Ci19Ci0KLS0gKE5TU3RyaW5nICopZm9ybU1ldGhvZAotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+Zm9ybU1ldGhvZCgpOwotfQot
Ci0tICh2b2lkKXNldEZvcm1NZXRob2Q6KE5TU3RyaW5nICopbmV3Rm9ybU1ldGhvZAotewotICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRGb3Jt
TWV0aG9kKG5ld0Zvcm1NZXRob2QpOwotfQotCiAtIChOU1N0cmluZyAqKXR5cGUKIHsKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0xMjUsMzAgKzg3LDYgQEAK
ICAgICBJTVBMLT5zZXRUeXBlKG5ld1R5cGUpOwogfQogCi0tIChCT09MKWZvcm1Ob1ZhbGlkYXRl
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVy
biBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxO
YW1lczo6Zm9ybW5vdmFsaWRhdGVBdHRyKTsKLX0KLQotLSAodm9pZClzZXRGb3JtTm9WYWxpZGF0
ZTooQk9PTCluZXdGb3JtTm9WYWxpZGF0ZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhU
TUxOYW1lczo6Zm9ybW5vdmFsaWRhdGVBdHRyLCBuZXdGb3JtTm9WYWxpZGF0ZSk7Ci19Ci0KLS0g
KE5TU3RyaW5nICopZm9ybVRhcmdldAotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+Z2V0QXR0cmlidXRlKFdlYkNvcmU6OkhUTUxO
YW1lczo6Zm9ybXRhcmdldEF0dHIpOwotfQotCi0tICh2b2lkKXNldEZvcm1UYXJnZXQ6KE5TU3Ry
aW5nICopbmV3Rm9ybVRhcmdldAotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdl
YkNvcmU6OkhUTUxOYW1lczo6Zm9ybXRhcmdldEF0dHIsIG5ld0Zvcm1UYXJnZXQpOwotfQotCiAt
IChOU1N0cmluZyAqKW5hbWUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC0xNzksMjQgKzExNyw2IEBACiAgICAgcmV0dXJuIElNUEwtPndpbGxWYWxpZGF0
ZSgpOwogfQogCi0tIChET01WYWxpZGl0eVN0YXRlICopdmFsaWRpdHkKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0
cihJTVBMLT52YWxpZGl0eSgpKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3Nh
Z2UKLXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0
dXJuIElNUEwtPnZhbGlkYXRpb25NZXNzYWdlKCk7Ci19Ci0KLS0gKERPTU5vZGVMaXN0ICopbGFi
ZWxzCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bGFiZWxzKCkpKTsKLX0KLQogLSAoTlNTdHJpbmcg
KilhY2Nlc3NLZXkKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CkBAIC0yMDksMTggKzEyOSw2IEBACiAgICAgSU1QTC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihXZWJDb3JlOjpIVE1MTmFtZXM6OmFjY2Vzc2tleUF0dHIsIG5ld0FjY2Vzc0tl
eSk7CiB9CiAKLS0gKEJPT0wpY2hlY2tWYWxpZGl0eQotewotICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+Y2hlY2tWYWxpZGl0eSgpOwot
fQotCi0tICh2b2lkKXNldEN1c3RvbVZhbGlkaXR5OihOU1N0cmluZyAqKWVycm9yCi17Ci0gICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIElNUEwtPnNldEN1c3Rv
bVZhbGlkaXR5KGVycm9yKTsKLX0KLQogLSAodm9pZCljbGljawogewogICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NSFRNTEZpZWxkU2V0RWxlbWVudC5tbQppbmRleCAzOTJjZWZlNDZiZjIy
N2UzMDhlYmQ0NDhlOTFhY2I0ODM2M2QwYjllLi5jODkyYmM2MTczMmM3ZWQ0YWVmZDA1ZjhjNDA3
NzJiZDUxNjYxY2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxGaWVsZFNldEVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01IVE1MRmllbGRTZXRFbGVtZW50Lm1tCkBAIC0zMCw3ICszMCw2IEBACiAjaW1wb3J0ICJE
T01IVE1MRm9ybUVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NSW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgotI2ltcG9ydCAiRE9NVmFsaWRpdHlTdGF0ZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgogI2ltcG9ydCAiSFRNTENvbGxl
Y3Rpb24uaCIKICNpbXBvcnQgIkhUTUxGaWVsZFNldEVsZW1lbnQuaCIKQEAgLTQ3LDc4ICs0Niwx
MiBAQAogCiBAaW1wbGVtZW50YXRpb24gRE9NSFRNTEZpZWxkU2V0RWxlbWVudAogCi0tIChCT09M
KWRpc2FibGVkCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwot
ICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNv
cmU6OkhUTUxOYW1lczo6ZGlzYWJsZWRBdHRyKTsKLX0KLQotLSAodm9pZClzZXREaXNhYmxlZDoo
Qk9PTCluZXdEaXNhYmxlZAotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKLSAgICBJTVBMLT5zZXRCb29sZWFuQXR0cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6
ZGlzYWJsZWRBdHRyLCBuZXdEaXNhYmxlZCk7Ci19Ci0KIC0gKERPTUhUTUxGb3JtRWxlbWVudCAq
KWZvcm0KIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5mb3JtKCkpKTsKIH0KIAotLSAoTlNTdHJpbmcg
KiluYW1lCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAg
IHJldHVybiBJTVBMLT5nZXROYW1lQXR0cmlidXRlKCk7Ci19Ci0KLS0gKHZvaWQpc2V0TmFtZToo
TlNTdHJpbmcgKiluZXdOYW1lCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOwotICAgIElNUEwtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2Vi
Q29yZTo6SFRNTE5hbWVzOjpuYW1lQXR0ciwgbmV3TmFtZSk7Ci19Ci0KLS0gKE5TU3RyaW5nICop
dHlwZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBy
ZXR1cm4gSU1QTC0+dHlwZSgpOwotfQotCi0tIChET01IVE1MQ29sbGVjdGlvbiAqKWVsZW1lbnRz
Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoSU1QTC0+ZWxlbWVudHNGb3JOYXRpdmVCaW5kaW5ncygpKSk7Ci19
Ci0KLS0gKEJPT0wpd2lsbFZhbGlkYXRlCi17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT53aWxsVmFsaWRhdGUoKTsKLX0KLQotLSAo
RE9NVmFsaWRpdHlTdGF0ZSAqKXZhbGlkaXR5Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+dmFsaWRp
dHkoKSkpOwotfQotCi0tIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlCi17Ci0gICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT52YWxp
ZGF0aW9uTWVzc2FnZSgpOwotfQotCi0tIChCT09MKWNoZWNrVmFsaWRpdHkKLXsKLSAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmNoZWNr
VmFsaWRpdHkoKTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJpbmcgKill
cnJvcgotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJ
TVBMLT5zZXRDdXN0b21WYWxpZGl0eShlcnJvcik7Ci19Ci0KIEBlbmQKIAogV2ViQ29yZTo6SFRN
TEZpZWxkU2V0RWxlbWVudCogY29yZShET01IVE1MRmllbGRTZXRFbGVtZW50ICp3cmFwcGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVt
ZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50
Lm1tCmluZGV4IDkwNzY2YjYzNjNjOTg1OGYyNzkwZTk2ZTYxZjAzZDNiMjJmNGUyZjkuLmY1MmIz
OTQyYTMzMTAzMjYxZGI1MzUzZTllMDczMTFkODUzMmRhNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTElucHV0RWxlbWVudC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1lbnQubW0KQEAgLTMzLDcgKzMz
LDYgQEAKICNpbXBvcnQgIkRPTU5vZGVMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTUludGVy
bmFsLmgiCiAjaW1wb3J0ICJET01Qcml2YXRlLmgiCi0jaW1wb3J0ICJET01WYWxpZGl0eVN0YXRl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJGaWxl
TGlzdC5oIgogI2ltcG9ydCAiSFRNTEVsZW1lbnQuaCIKQEAgLTQ3LDcgKzQ2LDYgQEAKICNpbXBv
cnQgIlJlbmRlckVsZW1lbnQuaCIKICNpbXBvcnQgIlRocmVhZENoZWNrLmgiCiAjaW1wb3J0ICJV
UkwuaCIKLSNpbXBvcnQgIlZhbGlkaXR5U3RhdGUuaCIKICNpbXBvcnQgIldlYlNjcmlwdE9iamVj
dFByaXZhdGUuaCIKICNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KIApAQCAtNDkxLDEyICs0ODksNiBA
QAogICAgIHJldHVybiBJTVBMLT53aWxsVmFsaWRhdGUoKTsKIH0KIAotLSAoRE9NVmFsaWRpdHlT
dGF0ZSAqKXZhbGlkaXR5Ci17Ci0gICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+dmFsaWRpdHkoKSkpOwotfQot
CiAtIChOU1N0cmluZyAqKXZhbGlkYXRpb25NZXNzYWdlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01IVE1MSW5wdXRFbGVtZW50UHJpdmF0ZS5oCmluZGV4IGJmYjY3NjMzN2E2
NjRlNjYzZTA1Y2JkMzZmMDQ4ZDIxM2ZiNTFkMTIuLjYyZGRlYTBmNTk5YTc5NmZmYzYwZDhkMzI0
YjFhMzlkYmM4NmFhYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NSFRNTElucHV0RWxlbWVudFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUhUTUxJbnB1dEVsZW1lbnRQcml2YXRlLmgKQEAgLTQ4LDggKzQ4LDYgQEAKIEBw
cm9wZXJ0eSBOU1RpbWVJbnRlcnZhbCB2YWx1ZUFzRGF0ZTsKIEBwcm9wZXJ0eSBkb3VibGUgdmFs
dWVBc051bWJlcjsKIEBwcm9wZXJ0eSB1bnNpZ25lZCB3aWR0aDsKLUBwcm9wZXJ0eSAocmVhZG9u
bHksIHN0cm9uZykgRE9NVmFsaWRpdHlTdGF0ZSAqdmFsaWRpdHk7Ci1AcHJvcGVydHkgKHJlYWRv
bmx5LCBjb3B5KSBOU1N0cmluZyAqdmFsaWRhdGlvbk1lc3NhZ2U7CiBAcHJvcGVydHkgKHJlYWRv
bmx5LCBzdHJvbmcpIERPTU5vZGVMaXN0ICpsYWJlbHM7CiBAcHJvcGVydHkgKGNvcHkpIE5TU3Ry
aW5nICpzZWxlY3Rpb25EaXJlY3Rpb247CiBAcHJvcGVydHkgQk9PTCBpbmNyZW1lbnRhbDsKQEAg
LTU5LDggKzU3LDYgQEAKIAogLSAodm9pZClzdGVwVXA6KGludCluOwogLSAodm9pZClzdGVwRG93
bjooaW50KW47Ci0tIChCT09MKWNoZWNrVmFsaWRpdHk7Ci0tICh2b2lkKXNldEN1c3RvbVZhbGlk
aXR5OihOU1N0cmluZyAqKWVycm9yOwogLSAodm9pZClzZXRSYW5nZVRleHQ6KE5TU3RyaW5nICop
cmVwbGFjZW1lbnQ7CiAtICh2b2lkKXNldFJhbmdlVGV4dDooTlNTdHJpbmcgKilyZXBsYWNlbWVu
dCBzdGFydDoodW5zaWduZWQpc3RhcnQgZW5kOih1bnNpZ25lZCllbmQgc2VsZWN0aW9uTW9kZToo
TlNTdHJpbmcgKilzZWxlY3Rpb25Nb2RlOwogLSAodm9pZClzZXRWYWx1ZUZvclVzZXI6KE5TU3Ry
aW5nICopdmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TUhUTUxPYmplY3RFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MT2JqZWN0RWxlbWVudC5tbQppbmRleCBmNjU2Nzk0OGZjYzg3ZTQ5ZDc1ZDAwODUyNWViNDFh
ZWZlZDVlZDI2Li5lZTlkNzJiODI5NTliZTk4ZGY3ZmUwMTdiYWQyZDRjZDFjYzU1MjlhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTE9iamVjdEVsZW1l
bnQubW0KQEAgLTMwLDcgKzMwLDYgQEAKICNpbXBvcnQgIkRPTUhUTUxGb3JtRWxlbWVudEludGVy
bmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTVByaXZhdGUu
aCIKLSNpbXBvcnQgIkRPTVZhbGlkaXR5U3RhdGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiRG9jdW1l
bnQuaCIKICNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJIVE1MRm9ybUVs
ZW1lbnQuaCIKQEAgLTQwLDcgKzM5LDYgQEAKICNpbXBvcnQgIlJlbmRlckVsZW1lbnQuaCIKICNp
bXBvcnQgIlRocmVhZENoZWNrLmgiCiAjaW1wb3J0ICJVUkwuaCIKLSNpbXBvcnQgIlZhbGlkaXR5
U3RhdGUuaCIKICNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKICNpbXBvcnQgPHd0
Zi9HZXRQdHIuaD4KIApAQCAtMjQ2LDI0ICsyNDQsNiBAQAogICAgIElNUEwtPnNldEF0dHJpYnV0
ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oV2ViQ29yZTo6SFRNTE5hbWVzOjp3aWR0aEF0dHIsIG5l
d1dpZHRoKTsKIH0KIAotLSAoQk9PTCl3aWxsVmFsaWRhdGUKLXsKLSAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPndpbGxWYWxpZGF0ZSgp
OwotfQotCi0tIChET01WYWxpZGl0eVN0YXRlICopdmFsaWRpdHkKLXsKLSAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJ
TVBMLT52YWxpZGl0eSgpKSk7Ci19Ci0KLS0gKE5TU3RyaW5nICopdmFsaWRhdGlvbk1lc3NhZ2UK
LXsKLSAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJu
IElNUEwtPnZhbGlkYXRpb25NZXNzYWdlKCk7Ci19Ci0KIC0gKERPTURvY3VtZW50ICopY29udGVu
dERvY3VtZW50CiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpA
QCAtMjc4LDE4ICsyNTgsNiBAQAogICAgIHJldHVybiBbc2VsZiBfZ2V0VVJMQXR0cmlidXRlOkAi
ZGF0YSJdOwogfQogCi0tIChCT09MKWNoZWNrVmFsaWRpdHkKLXsKLSAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPmNoZWNrVmFsaWRpdHko
KTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJpbmcgKillcnJvcgotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRD
dXN0b21WYWxpZGl0eShlcnJvcik7Ci19Ci0KIEBlbmQKIAogV2ViQ29yZTo6SFRNTE9iamVjdEVs
ZW1lbnQqIGNvcmUoRE9NSFRNTE9iamVjdEVsZW1lbnQgKndyYXBwZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVtZW50UHJpdmF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MT2JqZWN0RWxlbWVudFByaXZh
dGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODlhZGNmOGNiMzgyY2E3ZWNkMzdi
NGNlMmJhZDYzNzVjNmFhMmYwNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxPYmplY3RFbGVt
ZW50UHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCA8V2ViQ29yZS9E
T01IVE1MT2JqZWN0RWxlbWVudC5oPgotCi1AY2xhc3MgRE9NVmFsaWRpdHlTdGF0ZTsKLQotQGlu
dGVyZmFjZSBET01IVE1MT2JqZWN0RWxlbWVudCAoRE9NSFRNTE9iamVjdEVsZW1lbnRQcml2YXRl
KQotQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB3aWxsVmFsaWRhdGU7Ci1AcHJvcGVydHkgKHJl
YWRvbmx5LCBzdHJvbmcpIERPTVZhbGlkaXR5U3RhdGUgKnZhbGlkaXR5OwotQHByb3BlcnR5IChy
ZWFkb25seSwgY29weSkgTlNTdHJpbmcgKnZhbGlkYXRpb25NZXNzYWdlOwotCi0tIChCT09MKWNo
ZWNrVmFsaWRpdHk7Ci0tICh2b2lkKXNldEN1c3RvbVZhbGlkaXR5OihOU1N0cmluZyAqKWVycm9y
OwotQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1M
U2VsZWN0RWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFNl
bGVjdEVsZW1lbnQubW0KaW5kZXggNzY5MTg2YzA4Y2U1ZGRkNjdjNzZiZGZhODY5NjdmMjk4NGU3
ZjA2Ni4uMjY3MjRiMmNlODA3ZjVmYWYxZTQzY2E0MzY0NDI4ZDIzMjk3NTM2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MU2VsZWN0RWxlbWVudC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxTZWxlY3RFbGVtZW50Lm1t
CkBAIC0zMiw3ICszMiw2IEBACiAjaW1wb3J0ICJET01IVE1MT3B0aW9uc0NvbGxlY3Rpb25JbnRl
cm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlTGlz
dEludGVybmFsLmgiCi0jaW1wb3J0ICJET01WYWxpZGl0eVN0YXRlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJIVE1MQ29sbGVjdGlvbi5oIgogI2lt
cG9ydCAiSFRNTEVsZW1lbnQuaCIKQEAgLTQ2LDcgKzQ1LDYgQEAKICNpbXBvcnQgIk5vZGVMaXN0
LmgiCiAjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgogI2ltcG9ydCAiVVJMLmgiCi0jaW1wb3J0ICJW
YWxpZGl0eVN0YXRlLmgiCiAjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCiAjaW1w
b3J0IDx3dGYvR2V0UHRyLmg+CiAKQEAgLTEwOCwxOCArMTA2LDYgQEAKICAgICBJTVBMLT5zZXRB
dHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6bmFtZUF0
dHIsIG5ld05hbWUpOwogfQogCi0tIChCT09MKXJlcXVpcmVkCi17Ci0gICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBJTVBMLT5oYXNBdHRyaWJ1dGVX
aXRob3V0U3luY2hyb25pemF0aW9uKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVxdWlyZWRBdHRyKTsK
LX0KLQotLSAodm9pZClzZXRSZXF1aXJlZDooQk9PTCluZXdSZXF1aXJlZAotewotICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRCb29sZWFuQXR0
cmlidXRlKFdlYkNvcmU6OkhUTUxOYW1lczo6cmVxdWlyZWRBdHRyLCBuZXdSZXF1aXJlZCk7Ci19
Ci0KIC0gKGludClzaXplCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwpAQCAtMTUwLDEyICsxMzYsNiBAQAogICAgIHJldHVybiBJTVBMLT5sZW5ndGgoKTsKIH0K
IAotLSAoRE9NSFRNTENvbGxlY3Rpb24gKilzZWxlY3RlZE9wdGlvbnMKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0
cihJTVBMLT5zZWxlY3RlZE9wdGlvbnMoKSkpOwotfQotCiAtIChpbnQpc2VsZWN0ZWRJbmRleAog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKQEAgLTE4NiwzNiAr
MTY2LDYgQEAKICAgICByZXR1cm4gSU1QTC0+d2lsbFZhbGlkYXRlKCk7CiB9CiAKLS0gKERPTVZh
bGlkaXR5U3RhdGUgKil2YWxpZGl0eQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnZhbGlkaXR5KCkp
KTsKLX0KLQotLSAoTlNTdHJpbmcgKil2YWxpZGF0aW9uTWVzc2FnZQotewotICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+dmFsaWRhdGlv
bk1lc3NhZ2UoKTsKLX0KLQotLSAoRE9NTm9kZUxpc3QgKilsYWJlbHMKLXsKLSAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIGtpdChXVEY6OmdldFB0
cihJTVBMLT5sYWJlbHMoKSkpOwotfQotCi0tIChOU1N0cmluZyAqKWF1dG9jb21wbGV0ZQotewot
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1Q
TC0+YXV0b2NvbXBsZXRlKCk7Ci19Ci0KLS0gKHZvaWQpc2V0QXV0b2NvbXBsZXRlOihOU1N0cmlu
ZyAqKW5ld0F1dG9jb21wbGV0ZQotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKLSAgICBJTVBMLT5zZXRBdXRvY29tcGxldGUobmV3QXV0b2NvbXBsZXRlKTsKLX0K
LQogLSAoRE9NTm9kZSAqKWl0ZW06KHVuc2lnbmVkKWluZGV4CiB7CiAgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjU0LDE4ICsyMDQsNiBAQAogICAgIElNUEwt
PnJlbW92ZUJ5SW5kZXgoaW5kZXgpOwogfQogCi0tIChCT09MKWNoZWNrVmFsaWRpdHkKLXsKLSAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwt
PmNoZWNrVmFsaWRpdHkoKTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21WYWxpZGl0eTooTlNTdHJp
bmcgKillcnJvcgotewotICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICBJTVBMLT5zZXRDdXN0b21WYWxpZGl0eShlcnJvcik7Ci19Ci0KIEBlbmQKIAogV2ViQ29y
ZTo6SFRNTFNlbGVjdEVsZW1lbnQqIGNvcmUoRE9NSFRNTFNlbGVjdEVsZW1lbnQgKndyYXBwZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUZXh0QXJl
YUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUZXh0QXJl
YUVsZW1lbnQubW0KaW5kZXggM2E2ZWQwZTc3YjA1OTU0MzEyOTRjZmVjMDBhODliOTU3OTcxNjE3
YS4uYzFjNThhZWJhNjAwYmYwMmUyNTg5ZWUwODQxZWNmMDgxMDRlYzAwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGV4dEFyZWFFbGVtZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRleHRBcmVhRWxlbWVudC5t
bQpAQCAtMjksMTMgKzI5LDExIEBACiAjaW1wb3J0ICJET01IVE1MRm9ybUVsZW1lbnRJbnRlcm5h
bC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlTGlzdElu
dGVybmFsLmgiCi0jaW1wb3J0ICJET01WYWxpZGl0eVN0YXRlSW50ZXJuYWwuaCIKICNpbXBvcnQg
IkV4Y2VwdGlvbkhhbmRsZXJzLmgiCiAjaW1wb3J0ICJIVE1MVGV4dEFyZWFFbGVtZW50LmgiCiAj
aW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbXBvcnQgIk5vZGVMaXN0LmgiCiAj
aW1wb3J0ICJUaHJlYWRDaGVjay5oIgotI2ltcG9ydCAiVmFsaWRpdHlTdGF0ZS5oIgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjQwLDE4ICsyMzgsNiBAQCBET01IVE1MVGV4dEFy
ZWFFbGVtZW50ICpraXQoSFRNTFRleHRBcmVhRWxlbWVudCogdmFsdWUpCiAgICAgcmV0dXJuIHdy
YXBwZWQoX2ludGVybmFsKS53aWxsVmFsaWRhdGUoKTsKIH0KIAotLSAoRE9NVmFsaWRpdHlTdGF0
ZSAqKXZhbGlkaXR5Ci17Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJl
dHVybiBraXQod3JhcHBlZChfaW50ZXJuYWwpLnZhbGlkaXR5KCkpOwotfQotCi0tIChOU1N0cmlu
ZyAqKXZhbGlkYXRpb25NZXNzYWdlCi17Ci0gICAgSlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OwotICAgIHJldHVybiB3cmFwcGVkKF9pbnRlcm5hbCkudmFsaWRhdGlvbk1lc3NhZ2UoKTsKLX0K
LQogLSAoRE9NTm9kZUxpc3QgKilsYWJlbHMKIHsKICAgICBKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CkBAIC0zMTgsMTggKzMwNCw2IEBAIERPTUhUTUxUZXh0QXJlYUVsZW1lbnQgKmtpdChI
VE1MVGV4dEFyZWFFbGVtZW50KiB2YWx1ZSkKICAgICB3cmFwcGVkKF9pbnRlcm5hbCkuc2V0QXV0
b2NvbXBsZXRlKG5ld0F1dG9jb21wbGV0ZSk7CiB9CiAKLS0gKEJPT0wpY2hlY2tWYWxpZGl0eQot
ewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gd3JhcHBlZChf
aW50ZXJuYWwpLmNoZWNrVmFsaWRpdHkoKTsKLX0KLQotLSAodm9pZClzZXRDdXN0b21WYWxpZGl0
eTooTlNTdHJpbmcgKillcnJvcgotewotICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
LSAgICB3cmFwcGVkKF9pbnRlcm5hbCkuc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3IpOwotfQotCiAt
ICh2b2lkKXNlbGVjdAogewogICAgIEpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRleHRBcmVhRWxlbWVu
dFByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTFRleHRBcmVh
RWxlbWVudFByaXZhdGUuaAppbmRleCBiODQ0NzY5NzM2MGFkNTFjNDMzZjhkYWU2ODc4MGJkNWQ5
MTFkMGVkLi5kM2M3ZWM0NDcwYTY0MzMxNmMwMzQzNzkwM2Y4NjYzNzM1MDNmOTNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxUZXh0QXJlYUVsZW1lbnRQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MVGV4dEFy
ZWFFbGVtZW50UHJpdmF0ZS5oCkBAIC0zNSwxNSArMzUsMTEgQEAKIEBwcm9wZXJ0eSBCT09MIHJl
cXVpcmVkOwogQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqd3JhcDsKIEBwcm9wZXJ0eSAocmVh
ZG9ubHkpIHVuc2lnbmVkIHRleHRMZW5ndGg7Ci1AcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IERPTVZhbGlkaXR5U3RhdGUgKnZhbGlkaXR5OwotQHByb3BlcnR5IChyZWFkb25seSwgY29weSkg
TlNTdHJpbmcgKnZhbGlkYXRpb25NZXNzYWdlOwogQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBET01Ob2RlTGlzdCAqbGFiZWxzOwogQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAqc2VsZWN0
aW9uRGlyZWN0aW9uOwogQHByb3BlcnR5IEJPT0wgYXV0b2NvcnJlY3Q7CiBAcHJvcGVydHkgKGNv
cHkpIE5TU3RyaW5nICphdXRvY2FwaXRhbGl6ZTsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcg
KmF1dG9jb21wbGV0ZTsKLS0gKEJPT0wpY2hlY2tWYWxpZGl0eTsKLS0gKHZvaWQpc2V0Q3VzdG9t
VmFsaWRpdHk6KE5TU3RyaW5nICopZXJyb3I7CiAtICh2b2lkKXNldFJhbmdlVGV4dDooTlNTdHJp
bmcgKilyZXBsYWNlbWVudDsKIC0gKHZvaWQpc2V0UmFuZ2VUZXh0OihOU1N0cmluZyAqKXJlcGxh
Y2VtZW50IHN0YXJ0Oih1bnNpZ25lZClzdGFydCBlbmQ6KHVuc2lnbmVkKWVuZCBzZWxlY3Rpb25N
b2RlOihOU1N0cmluZyAqKXNlbGVjdGlvbk1vZGU7CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU1lZGlhRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NTWVkaWFFcnJvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMzg1MmI2YzczNzcyZjFi
OGM2ZjUxMzM3NzQ4MDU4MDBkOThkM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTU1lZGlhRXJyb3IuaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJD
b3JlL0RPTU9iamVjdC5oPgorCitlbnVtIHsKKyAgICBET01fTUVESUFfRVJSX0FCT1JURUQgPSAx
LAorICAgIERPTV9NRURJQV9FUlJfTkVUV09SSyA9IDIsCisgICAgRE9NX01FRElBX0VSUl9ERUNP
REUgPSAzLAorICAgIERPTV9NRURJQV9FUlJfU1JDX05PVF9TVVBQT1JURUQgPSA0LAorICAgIERP
TV9NRURJQV9FUlJfRU5DUllQVEVEID0gNQorfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDk4
NzZfNSk7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4NzZfNSkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NTWVkaWFFcnJvciA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFk
b25seSkgdW5zaWduZWQgc2hvcnQgY29kZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NTWVkaWFFcnJvci5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NTWVkaWFFcnJvci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NjJmMDE0YjM4OTM0NzRjZWI3
ODMwNTA5NDFkZGM0ZmI3ZTQwNzgyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01NZWRpYUVycm9yLm1tCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCisgKiBU
aGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBO
T1QgTU9ESUZZIQorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisKKyNpbXBvcnQgIkRPTUlu
dGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTU1lZGlhRXJyb3IuaCIKKworI2ltcG9ydCAiRE9NTWVk
aWFFcnJvckludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIK
KyNpbXBvcnQgIk1lZGlhRXJyb3IuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0
ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
IgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2Fz
dDxXZWJDb3JlOjpNZWRpYUVycm9yKj4oX2ludGVybmFsKQorCitAaW1wbGVtZW50YXRpb24gRE9N
TWVkaWFFcnJvcgorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTU1lZGlhRXJyb3IgY2xhc3NdLCBzZWxmKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+ZGVy
ZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0KWNvZGUK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmNvZGUoKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNZWRpYUVycm9yKiBjb3JlKERP
TU1lZGlhRXJyb3IgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJl
dF9jYXN0PFdlYkNvcmU6Ok1lZGlhRXJyb3IqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30K
KworRE9NTWVkaWFFcnJvciAqa2l0KFdlYkNvcmU6Ok1lZGlhRXJyb3IqIHZhbHVlKQoreworICAg
IFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2YWx1ZSkK
KyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBpZiAoRE9NTWVkaWFFcnJvciAqd3JhcHBlciA9IGdl
dERPTVdyYXBwZXIodmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVyIHJldGFpbl0gYXV0
b3JlbGVhc2VdOworICAgIERPTU1lZGlhRXJyb3IgKndyYXBwZXIgPSBbW0RPTU1lZGlhRXJyb3Ig
YWxsb2NdIF9pbml0XTsKKyAgICB3cmFwcGVyLT5faW50ZXJuYWwgPSByZWludGVycHJldF9jYXN0
PERPTU9iamVjdEludGVybmFsKj4odmFsdWUpOworICAgIHZhbHVlLT5yZWYoKTsKKyAgICBhZGRE
T01XcmFwcGVyKHdyYXBwZXIsIHZhbHVlKTsKKyAgICByZXR1cm4gW3dyYXBwZXIgYXV0b3JlbGVh
c2VdOworfQorCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01NZWRpYUVycm9ySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NTWVkaWFFcnJvckludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWVh
N2MxZDBhM2YzYTk4M2I2YjY3ZTliNDIyMjQyYzNhYjhlM2ZhNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTWVkaWFFcnJvckludGVybmFsLmgKQEAg
LTAsMCArMSwzNCBAQAorLyoKKyAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3Bl
biBzb3VyY2UgcHJvamVjdC4KKyAqIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2Vu
ZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTU1lZGlhRXJyb3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgTWVkaWFFcnJvcjsKK30KKworV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6TWVkaWFFcnJvciogY29yZShET01NZWRpYUVycm9yICopOworV0VCQ09S
RV9FWFBPUlQgRE9NTWVkaWFFcnJvciAqa2l0KFdlYkNvcmU6Ok1lZGlhRXJyb3IqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGltZVJhbmdlcy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UaW1lUmFuZ2VzLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODM2
YjhhZTM5ZjAwYTlmY2M1NTljMzgyZjk3ZjE2ZGM0ZDg4NjRmOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGltZVJhbmdlcy5oCkBAIC0wLDAgKzEs
MzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVf
TUFDKDk4NzZfNSkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGltZVJhbmdlcyA6IERP
TU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgbGVuZ3RoOworCistIChkb3Vi
bGUpc3RhcnQ6KHVuc2lnbmVkKWluZGV4OworLSAoZG91YmxlKWVuZDoodW5zaWduZWQpaW5kZXg7
CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVRpbWVS
YW5nZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVRpbWVSYW5nZXMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2U3NWZlYTM0Y2I4YTk1YTcwM2ZmYWNhYmUwYzMxNjExYTdlYTA3YwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGltZVJhbmdl
cy5tbQpAQCAtMCwwICsxLDEwMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8p
CisKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisKKyNpbXBvcnQgIkRPTVRpbWVSYW5nZXMuaCIK
KworI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01UaW1lUmFuZ2VzSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJUaW1l
UmFuZ2VzLmgiCisjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2Ny
aXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElN
UEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpUaW1lUmFuZ2VzKj4oX2ludGVybmFsKQorCitA
aW1wbGVtZW50YXRpb24gRE9NVGltZVJhbmdlcworCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBp
ZiAoV2ViQ29yZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTVRpbWVSYW5n
ZXMgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkK
KyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVu
c2lnbmVkKWxlbmd0aAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+bGVuZ3RoKCk7Cit9CisKKy0gKGRvdWJsZSlzdGFydDoodW5z
aWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZG91YmxlIHJlc3VsdCA9
IElNUEwtPnN0YXJ0KGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVj
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCistIChkb3VibGUpZW5kOih1bnNpZ25lZClpbmRl
eAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBkb3VibGUgcmVzdWx0ID0gSU1QTC0+ZW5k
KGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCitAZW5kCisKK1dlYkNvcmU6OlRpbWVSYW5nZXMqIGNvcmUoRE9NVGlt
ZVJhbmdlcyAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6VGltZVJhbmdlcyo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitE
T01UaW1lUmFuZ2VzICpraXQoV2ViQ29yZTo6VGltZVJhbmdlcyogdmFsdWUpCit7CisgICAgV2Vi
Q29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAoIXZhbHVlKQorICAg
ICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01UaW1lUmFuZ2VzICp3cmFwcGVyID0gZ2V0RE9N
V3JhcHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVs
ZWFzZV07CisgICAgRE9NVGltZVJhbmdlcyAqd3JhcHBlciA9IFtbRE9NVGltZVJhbmdlcyBhbGxv
Y10gX2luaXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9N
T2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdy
YXBwZXIod3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07
Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVRpbWVSYW5nZXNJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01UaW1lUmFuZ2VzSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjEyZWE1
N2I2MTI1MGRlOWU5YmRhNTg2YmI5NGM4NWQ1MTliMTJhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UaW1lUmFuZ2VzSW50ZXJuYWwuaApAQCAtMCww
ICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVRpbWVSYW5nZXMuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgVGltZVJhbmdlczsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6VGlt
ZVJhbmdlcyogY29yZShET01UaW1lUmFuZ2VzICopOworV0VCQ09SRV9FWFBPUlQgRE9NVGltZVJh
bmdlcyAqa2l0KFdlYkNvcmU6OlRpbWVSYW5nZXMqKTsK
</data>
<flag name="review"
          id="308701"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>