<?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>16691</bug_id>
          
          <creation_ts>2008-01-01 01:24:13 -0800</creation_ts>
          <short_desc>Use real JS objects for the rest of the DOMExceptions (EventException, RangeException, etc)</short_desc>
          <delta_ts>2008-01-01 21:47:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>65877</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-01-01 01:24:13 -0800</bug_when>
    <thetext>Now that we are throwing a custom JS object for the core exceptions, and the base work is done, we should be throwing the different objects for the different types of exceptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65954</commentid>
    <comment_count>1</comment_count>
      <attachid>18229</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-01-01 15:59:48 -0800</bug_when>
    <thetext>Created attachment 18229
patch

This patch makes JS objects for all the Exception types, and uses a shared base class for the implementation.  I have tests for the EventException, RangeException, and XPathExceptions, and am still working on making SVG and XHR tests, but I thought I would put this up for review while I figured out how to do that, in order to make sure that I was on the right track with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65963</commentid>
    <comment_count>2</comment_count>
      <attachid>18229</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-01-01 16:41:24 -0800</bug_when>
    <thetext>Comment on attachment 18229
patch

The approach looks sane.  My impression was you were going to add more tests before we did a real review.  You also just noted over IRC that the XHR exceptions were different from expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65971</commentid>
    <comment_count>3</comment_count>
      <attachid>18229</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-01-01 19:40:55 -0800</bug_when>
    <thetext>Comment on attachment 18229
patch

I&apos;m really worried that the named constants that are members of the classes are not the same values as the same-named constants in the JavaScript language binding.

Otherwise, I love this.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>65975</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2008-01-01 21:47:11 -0800</bug_when>
    <thetext>Landed in r29073.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>18229</attachid>
            <date>2008-01-01 15:59:48 -0800</date>
            <delta_ts>2008-01-01 19:40:55 -0800</delta_ts>
            <desc>patch</desc>
            <filename>firstGo.diff</filename>
            <type>text/plain</type>
            <size>119299</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyOTA3MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODggQEAKKzIwMDgtMDEtMDEgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2OTEKKyAgICAgICAg
VXNlIHJlYWwgSlMgb2JqZWN0cyBmb3IgdGhlIHJlc3Qgb2YgdGhlIERPTUV4Y2VwdGlvbnMgKEV2
ZW50RXhjZXB0aW9uLCBSYW5nZUV4Y2VwdGlvbiwgZXRjKQorCisgICAgICAgIFRlc3RzOiBmYXN0
L2RvbS9ET01FeGNlcHRpb24vRXZlbnRFeGNlcHRpb24uaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9kb20vRE9NRXhjZXB0aW9uL1JhbmdlRXhjZXB0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvZG9tL0RPTUV4Y2VwdGlvbi9YUGF0aEV4Y2VwdGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNT
VkdNYXRyaXhDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdNYXRyaXg6OmludmVy
c2UpOgorICAgICAgICAoV2ViQ29yZTo6SlNTVkdNYXRyaXg6OnJvdGF0ZUZyb21WZWN0b3IpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc19iaW5kaW5nLmNwcDoKKyAgICAgICAgKEtKUzo6c2V0
RE9NRXhjZXB0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JK
Uy5wbToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgor
ICAgICAgICAqIGRvbS9ET01Db3JlRXhjZXB0aW9uLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBk
b20vRE9NQ29yZUV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6RE9NQ29yZUV4Y2VwdGlv
bjo6RE9NQ29yZUV4Y2VwdGlvbik6CisgICAgICAgICogZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRs
OgorICAgICAgICAqIGRvbS9FdmVudC5oOgorICAgICAgICAqIGRvbS9FdmVudEV4Y2VwdGlvbi5o
OiBDb3BpZWQgZnJvbSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmguCisgICAgICAgIChX
ZWJDb3JlOjpFdmVudEV4Y2VwdGlvbjo6RXZlbnRFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRFeGNlcHRpb246Oik6CisgICAgICAgICogZG9tL0V2ZW50RXhjZXB0aW9uLmlkbDog
Q29waWVkIGZyb20gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwuCisgICAgICAgICog
ZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFRhcmdldE5v
ZGU6OmRpc3BhdGNoRXZlbnQpOgorICAgICAgICAqIGRvbS9FeGNlcHRpb25CYXNlLmNwcDogQ29w
aWVkIGZyb20gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5jcHAuCisgICAgICAgIChXZWJD
b3JlOjpFeGNlcHRpb25CYXNlOjpFeGNlcHRpb25CYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkV4
Y2VwdGlvbkJhc2U6OnRvU3RyaW5nKToKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uQmFzZS5oOiBD
b3BpZWQgZnJvbSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmguCisgICAgICAgIChXZWJD
b3JlOjpFeGNlcHRpb25CYXNlOjpjb2RlKToKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uQ29kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24pOgorICAg
ICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorICAgICAg
ICAqIGRvbS9SYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6aW5zZXJ0Tm9kZSk6
CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Y2hlY2tOb2RlV09mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZTo6Y2hlY2tOb2RlQkEpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNl
bGVjdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OnNlbGVjdE5vZGVDb250ZW50cyk6
CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6c3Vycm91bmRDb250ZW50cyk6CisgICAgICAgICog
ZG9tL1JhbmdlRXhjZXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUV4Y2VwdGlvbjo6
UmFuZ2VFeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VFeGNlcHRpb246Oik6Cisg
ICAgICAgICogZG9tL1JhbmdlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5pZGw6CisgICAgICAgICogc3ZnL1NWR0NvbG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0NvbG9yOjpzZXRSR0JDb2xvcik6CisgICAgICAgICogc3ZnL1NWR0V4Y2VwdGlvbi5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRXhjZXB0aW9uOjpTVkdFeGNlcHRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRXhjZXB0aW9uOjopOgorICAgICAgICAqIHN2Zy9TVkdFeGNlcHRpb24uaWRsOgor
ICAgICAgICAqIHN2Zy9TVkdMb2NhdGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9j
YXRhYmxlOjpnZXRUcmFuc2Zvcm1Ub0VsZW1lbnQpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6ZGlzcGF0Y2hFdmVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6b3Blbik6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1
ZXN0Lmg6CisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg6IENvcGllZCBm
cm9tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaC4KKyAgICAgICAgKFdlYkNvcmU6OlhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6KToKKyAgICAgICAgKiB4bWwvWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsOiBDb3BpZWQgZnJvbSBXZWJDb3JlL2RvbS9ET01Db3Jl
RXhjZXB0aW9uLmlkbC4KKyAgICAgICAgKiB4bWwvWFBhdGhFdmFsdWF0b3IuaDoKKyAgICAgICAg
KiB4bWwvWFBhdGhFeGNlcHRpb24uaDogQ29waWVkIGZyb20gV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5oLgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhFeGNlcHRpb246OlhQYXRoRXhjZXB0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoRXhjZXB0aW9uOjopOgorICAgICAgICAqIHht
bC9YUGF0aEV4Y2VwdGlvbi5pZGw6IENvcGllZCBmcm9tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNl
cHRpb24uaWRsLgorICAgICAgICAqIHhtbC9YUGF0aFBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYUGF0aDo6UGFyc2VyOjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAgICogeG1sL1hQYXRo
UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0Ojpjb252ZXJ0VG8pOgor
ICAgICAgICAoV2ViQ29yZTo6WFBhdGhSZXN1bHQ6Om51bWJlclZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OlhQYXRoUmVzdWx0OjpzdHJpbmdWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpYUGF0
aFJlc3VsdDo6Ym9vbGVhblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0Ojpz
aW5nbGVOb2RlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGhSZXN1bHQ6OnNuYXBzaG90
TGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlhQYXRoUmVzdWx0OjppdGVyYXRlTmV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYUGF0aFJlc3VsdDo6c25hcHNob3RJdGVtKToKKwogMjAwOC0wMS0w
MSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBKU0RvbUV4
Y2VwdGlvbkNvbnN0cnVjdG9yLmx1dC5oIGZyb20gY2xlYW4gc3RlcApJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI5MDcxKQorKysgV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAg
LTM2MjQsNyArMzYyNCwyMCBAQAogCQlCQzYwRDZFQzBEMjhEOTk5MDBCOTkxOEYgLyogRE9NQ29y
ZUV4Y2VwdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNjBENkVCMEQyOEQ5OTkwMEI5OTE4RiAvKiBET01Db3JlRXhjZXB0aW9uLmlkbCAq
LzsgfTsKIAkJQkM2MEQ3QzAwRDI5QTQ2MzAwQjk5MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzYwRDdC
RTBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhjZXB0aW9uLmNwcCAqLzsgfTsKIAkJQkM2
MEQ3QzEwRDI5QTQ2MzAwQjk5MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MEQ3QkYwRDI5QTQ2MzAwQjk5
MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5oICovOyB9OwotCQlCQzYwRDgwNDBEMjlBOUU4MDBC
OTkxOEYgLyogRE9NQ29yZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzYwRDgwMzBEMjlBOUU4MDBCOTkxOEYgLyogRE9NQ29yZUV4
Y2VwdGlvbi5jcHAgKi87IH07CisJCUJDNjBEOEYyMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRp
b25CYXNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNjBEOEYwMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmNwcCAqLzsgfTsKKwkJ
QkM2MEQ4RjMwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEOEYxMEQyQTExRTAwMEI5OTE4
RiAvKiBFeGNlcHRpb25CYXNlLmggKi87IH07CisJCUJDNjBEOTBDMEQyQTE3Q0UwMEI5OTE4RiAv
KiBFdmVudEV4Y2VwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkM2MEQ5MDkwRDJBMTdDRTAwQjk5MThGIC8qIEV2ZW50RXhjZXB0aW9uLmggKi87
IH07CisJCUJDNjBEOTBEMEQyQTE3Q0UwMEI5OTE4RiAvKiBFdmVudEV4Y2VwdGlvbi5pZGwgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEOTBBMEQy
QTE3Q0UwMEI5OTE4RiAvKiBFdmVudEV4Y2VwdGlvbi5pZGwgKi87IH07CisJCUJDNjBEOUJGMEQy
QTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50RXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEOUJEMEQyQTI2OUEwMEI5OTE4RiAvKiBK
U0V2ZW50RXhjZXB0aW9uLmNwcCAqLzsgfTsKKwkJQkM2MEQ5QzAwRDJBMjY5QTAwQjk5MThGIC8q
IEpTRXZlbnRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNjBEOUJFMEQyQTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50RXhjZXB0aW9uLmgg
Ki87IH07CisJCUJDNjBEOUM5MEQyQTI5RTUwMEI5OTE4RiAvKiBYTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2
MEQ5QzcwRDJBMjlFNTAwQjk5MThGIC8qIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggKi87IH07
CisJCUJDNjBEOUNBMEQyQTI5RTUwMEI5OTE4RiAvKiBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5p
ZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBE
OUM4MEQyQTI5RTUwMEI5OTE4RiAvKiBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwgKi87IH07
CisJCUJDNjBEQTM5MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9u
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBE
QTM3MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCAqLzsg
fTsKKwkJQkM2MERBM0EwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBE
QTM4MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggKi87IH07
CisJCUJDNjBEQTVCMEQyQTMxRjcwMEI5OTE4RiAvKiBYUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2MERBNTkwRDJBMzFGNzAw
Qjk5MThGIC8qIFhQYXRoRXhjZXB0aW9uLmggKi87IH07CisJCUJDNjBEQTVDMEQyQTMxRjcwMEI5
OTE4RiAvKiBYUGF0aEV4Y2VwdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEQTVBMEQyQTMxRjcwMEI5OTE4RiAvKiBYUGF0aEV4Y2Vw
dGlvbi5pZGwgKi87IH07CisJCUJDNjBEQjQ5MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhj
ZXB0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDNjBEQjQ3MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmNwcCAqLzsgfTsK
KwkJQkM2MERCNEEwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBEQjQ4MEQyQTNEMUUw
MEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggKi87IH07CiAJCUJDNjRCNENCMENCNDI5NUQw
MDVGMkI2MiAvKiBDYWNoZWRGb250LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDNjRCNEM5MENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmNw
cCAqLzsgfTsKIAkJQkM2NEI0Q0MwQ0I0Mjk1RDAwNUYyQjYyIC8qIENhY2hlZEZvbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjRCNENBMENCNDI5
NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmggKi87IH07CiAJCUJDNjRCNEQ1MENCNDI5OEEwMDVG
MkI2MiAvKiBDU1NGb250RmFjZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzY0QjRDRDBDQjQyOThBMDA1RjJCNjIgLyogQ1NTRm9udEZhY2UuY3Bw
ICovOyB9OwpAQCAtNzY4Miw3ICs3Njk1LDIwIEBACiAJCUJDNjBENkVCMEQyOEQ5OTkwMEI5OTE4
RiAvKiBET01Db3JlRXhjZXB0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01Db3Jl
RXhjZXB0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2MEQ3QkUwRDI5
QTQ2MzAwQjk5MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUNvcmVFeGNlcHRpb24uY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzYwRDdCRjBEMjlBNDYzMDBCOTkxOEYgLyogSlNET01Db3JlRXhj
ZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NQ29yZUV4Y2Vw
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzYwRDgwMzBEMjlBOUU4MDBC
OTkxOEYgLyogRE9NQ29yZUV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBET01Db3JlRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQkM2MEQ4RjAwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2UuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhjZXB0aW9uQmFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNjBEOEYxMEQyQTExRTAwMEI5OTE4RiAvKiBFeGNl
cHRpb25CYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4Y2VwdGlvbkJh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2MEQ5MDkwRDJBMTdDRTAwQjk5
MThGIC8qIEV2ZW50RXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV2ZW50RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNjBEOTBB
MEQyQTE3Q0UwMEI5OTE4RiAvKiBFdmVudEV4Y2VwdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRXZlbnRFeGNlcHRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzYwRDlCRDBEMkEyNjlBMDBCOTkxOEYgLyogSlNFdmVudEV4Y2VwdGlvbi5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0V2ZW50RXhjZXB0aW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2MEQ5QkUwRDJBMjY5QTAwQjk5MThGIC8qIEpTRXZl
bnRFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFdmVudEV4
Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzYwRDlDNzBEMkEyOUU1
MDBCOTkxOEYgLyogWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkM2MEQ5QzgwRDJBMjlFNTAwQjk5MThGIC8qIFhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYTUxIdHRwUmVxdWVzdEV4Y2Vw
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNjBEQTM3MEQyQTMwMjgw
MEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzYwREEzODBEMkEzMDI4MDBCOTkxOEYgLyogSlNY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDNjBEQTU5MEQyQTMxRjcwMEI5OTE4RiAvKiBYUGF0aEV4Y2VwdGlvbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUGF0aEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzYwREE1QTBEMkEzMUY3MDBCOTkxOEYgLyogWFBhdGhFeGNlcHRp
b24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhQYXRoRXhjZXB0aW9uLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM2MERCNDcwRDJBM0QxRTAwQjk5MThGIC8qIEpTWFBh
dGhFeGNlcHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNY
UGF0aEV4Y2VwdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNjBEQjQ4
MEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTWFBhdGhFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM2NEI0QzkwQ0I0Mjk1RDAwNUYyQjYyIC8qIENhY2hlZEZvbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FjaGVkRm9udC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNjRCNENBMENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRG
b250LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZEZvbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2NEI0Q0QwQ0I0Mjk4QTAwNUYyQjYyIC8qIENT
U0ZvbnRGYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0Zv
bnRGYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwNTIxLDYgKzEwNTQ3
LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFBNzYyQzZCMEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoRXZhbHVhdG9yLmNwcCAqLywKIAkJCQkxQTc2MkM2QzBBMDc0RjI2MDA5ODlGNUIgLyog
SlNYUGF0aEV2YWx1YXRvci5oICovLAorCQkJCUJDNjBEQjQ3MEQyQTNEMUUwMEI5OTE4RiAvKiBK
U1hQYXRoRXhjZXB0aW9uLmNwcCAqLywKKwkJCQlCQzYwREI0ODBEMkEzRDFFMDBCOTkxOEYgLyog
SlNYUGF0aEV4Y2VwdGlvbi5oICovLAogCQkJCTFBNzYyQzZEMEEwNzRGMjYwMDk4OUY1QiAvKiBK
U1hQYXRoRXhwcmVzc2lvbi5jcHAgKi8sCiAJCQkJMUE3NjJDNkUwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhFeHByZXNzaW9uLmggKi8sCiAJCQkJMUE3NjJDNkYwQTA3NEYyNjAwOTg5RjVCIC8q
IEpTWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKQEAgLTEwNTc3LDggKzEwNjA1LDYgQEAKIAkJQTgz
Qjc5MTAwQ0NCMDAxQjAwMEIwODI1IC8qIENvcmUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsK
IAkJCWNoaWxkcmVuID0gKAotCQkJCUJDNjBEN0JFMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RPTUNv
cmVFeGNlcHRpb24uY3BwICovLAotCQkJCUJDNjBEN0JGMEQyOUE0NjMwMEI5OTE4RiAvKiBKU0RP
TUNvcmVFeGNlcHRpb24uaCAqLywKIAkJCQk2NURGMzFEODA5RDFDMTIyMDAwQkUzMjUgLyogSlNB
dHRyLmNwcCAqLywKIAkJCQk2NURGMzFEOTA5RDFDMTIzMDAwQkUzMjUgLyogSlNBdHRyLmggKi8s
CiAJCQkJOTNGOUI3OUUwQkE2MDMyNjAwODU0MDY0IC8qIEpTQ0RBVEFTZWN0aW9uLmNwcCAqLywK
QEAgLTEwNTkzLDYgKzEwNjE5LDggQEAKIAkJCQkxQTQ5NEVERDBBMTIzRjRDMDBGREFGQzEgLyog
SlNEb2N1bWVudEZyYWdtZW50LmggKi8sCiAJCQkJNjVERjMxRTEwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTRG9jdW1lbnRUeXBlLmNwcCAqLywKIAkJCQk2NURGMzFFMjA5RDFDQzYwMDAwQkUzMjUgLyog
SlNEb2N1bWVudFR5cGUuaCAqLywKKwkJCQlCQzYwRDdCRTBEMjlBNDYzMDBCOTkxOEYgLyogSlNE
T01Db3JlRXhjZXB0aW9uLmNwcCAqLywKKwkJCQlCQzYwRDdCRjBEMjlBNDYzMDBCOTkxOEYgLyog
SlNET01Db3JlRXhjZXB0aW9uLmggKi8sCiAJCQkJNjVERjMxRTMwOUQxQ0M2MDAwMEJFMzI1IC8q
IEpTRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCTY1REYzMUU0MDlEMUNDNjAwMDBCRTMy
NSAvKiBKU0RPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJCQkJNjVERjMxRTUwOUQxQ0M2MDAwMEJF
MzI1IC8qIEpTRWxlbWVudC5jcHAgKi8sCkBAIC0xMDYxMywxNiArMTA2NDEsOCBAQAogCQkJCTY1
REYzMUVDMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovLAog
CQkJCUU0QjQyMzg1MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuY3BwICovLAog
CQkJCUU0QjQyMzg2MENCRkI3M0MwMEFGMkVDRSAvKiBKU1Byb2dyZXNzRXZlbnQuaCAqLywKLQkJ
CQk2NURGMzFFRDA5RDFDQzYwMDAwQkUzMjUgLyogSlNSYW5nZS5jcHAgKi8sCi0JCQkJNjVERjMx
RUUwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuaCAqLywKLQkJCQlEMjNDQTU1RTBBQjBFQUI2
MDA1MTA4QTUgLyogSlNSYW5nZUV4Y2VwdGlvbi5jcHAgKi8sCi0JCQkJRDIzQ0E1NUMwQUIwRUFB
RTAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYw
MDAwQkUzMjUgLyogSlNUZXh0LmNwcCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUg
LyogSlNUZXh0LmggKi8sCi0JCQkJNjVERjMxRUQwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2Uu
Y3BwICovLAotCQkJCTY1REYzMUVFMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggKi8sCi0J
CQkJRDIzQ0E1NUUwQUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovLAot
CQkJCUQyM0NBNTVDMEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTA2
MzIsNiArMTA2NTIsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMTRFODM3ODMwOUY4NUQxQzAw
Qjg1QUU0IC8qIEpTRXZlbnQuY3BwICovLAogCQkJCTE0RTgzNzhEMDlGODVENEYwMEI4NUFFNCAv
KiBKU0V2ZW50LmggKi8sCisJCQkJQkM2MEQ5QkQwRDJBMjY5QTAwQjk5MThGIC8qIEpTRXZlbnRF
eGNlcHRpb24uY3BwICovLAorCQkJCUJDNjBEOUJFMEQyQTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50
RXhjZXB0aW9uLmggKi8sCiAJCQkJQTg2NjI5Q0UwOURBMkI0NzAwOTYzM0E1IC8qIEpTS2V5Ym9h
cmRFdmVudC5jcHAgKi8sCiAJCQkJQTg2NjI5Q0QwOURBMkI0NzAwOTYzM0E1IC8qIEpTS2V5Ym9h
cmRFdmVudC5oICovLAogCQkJCTc1NzkzRUM2MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VF
dmVudC5jcHAgKi8sCkBAIC0xMDY3NCw4ICsxMDY5NiwxMCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJMUFDRTUzREQwQThEMTg4MTAwMjI5NDdEIC8qIEpTRE9NUGFyc2VyLmNwcCAqLywKIAkJCQkx
QUNFNTNERTBBOEQxODgxMDAyMjk0N0QgLyogSlNET01QYXJzZXIuaCAqLywKLQkJCQk2NTY1ODFE
NzA5RDE1MDhEMDAwRTYxRDcgLyogSlNYTUxIdHRwUmVxdWVzdC5sdXQuaCAqLywKIAkJCQlCMjhC
QzMxOTBEMTM1RTU0MDBDREJBMjcgLyogSlNFdmVudFRhcmdldEJhc2UubHV0LmggKi8sCisJCQkJ
NjU2NTgxRDcwOUQxNTA4RDAwMEU2MUQ3IC8qIEpTWE1MSHR0cFJlcXVlc3QubHV0LmggKi8sCisJ
CQkJQkM2MERBMzcwRDJBMzAyODAwQjk5MThGIC8qIEpTWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24u
Y3BwICovLAorCQkJCUJDNjBEQTM4MEQyQTMwMjgwMEI5OTE4RiAvKiBKU1hNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmggKi8sCiAJCQkJMUFDRTUzRjQwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2Vy
aWFsaXplci5jcHAgKi8sCiAJCQkJMUFDRTUzRjUwQThEMTk0NzAwMjI5NDdEIC8qIEpTWE1MU2Vy
aWFsaXplci5oICovLAogCQkJCTY1NjU4MUQ5MDlEMTUwOEQwMDBFNjFENyAvKiBKU1hTTFRQcm9j
ZXNzb3IubHV0LmggKi8sCkBAIC0xMDY4NiwxNyArMTA3MTAsNyBAQAogCQlCMjIyNzdDQTBEMDBC
RjFFMDA3MUI3ODIgLyogc3ZnICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQlCMjYyQjgwMzBEMUYzMkQwMDAxNThGMDkgLyogU1ZHRm9udC5jcHAgKi8sCiAJ
CQkJQjI1NTk4ODYwRDAwRDhCODAwQkI4MjVDIC8qIGdyYXBoaWNzICovLAotCQkJCUIyQTFGMkEx
MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5jcHAgKi8sCi0JCQkJQjJBMUYyQTIw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmggKi8sCi0JCQkJQjJBMUYyQTMwQ0VG
MEFCRjAwNDQyRjZBIC8qIFNWR0ZvbnRFbGVtZW50LmlkbCAqLywKLQkJCQlCMkExRjJBNDBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmNwcCAqLywKLQkJCQlCMkExRjJBNTBDRUYw
QUJGMDA0NDJGNkEgLyogU1ZHR2x5cGhFbGVtZW50LmggKi8sCi0JCQkJQjJBMUYyQTYwQ0VGMEFC
RjAwNDQyRjZBIC8qIFNWR0dseXBoRWxlbWVudC5pZGwgKi8sCi0JCQkJQjJBMUYyQTcwQ0VGMEFC
RjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuY3BwICovLAotCQkJCUIyQTFGMkE4
MENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdNaXNzaW5nR2x5cGhFbGVtZW50LmggKi8sCi0JCQkJQjJB
MUYyQTkwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsICovLAog
CQkJCUIyMjI3N0NCMEQwMEJGMUYwMDcxQjc4MiAvKiBDb2xvckRpc3RhbmNlLmNwcCAqLywKIAkJ
CQlCMjIyNzdDQzBEMDBCRjFGMDA3MUI3ODIgLyogQ29sb3JEaXN0YW5jZS5oICovLAogCQkJCUIy
MjI3N0NEMEQwMEJGMUYwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMuaCAqLywKQEAgLTEw
ODY2LDYgKzEwODgwLDEwIEBACiAJCQkJQjIyMjc4N0IwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0Zp
dFRvVmlld0JveC5jcHAgKi8sCiAJCQkJQjIyMjc4N0MwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0Zp
dFRvVmlld0JveC5oICovLAogCQkJCUIyMjI3ODdEMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdGaXRU
b1ZpZXdCb3guaWRsICovLAorCQkJCUIyNjJCODAzMEQxRjMyRDAwMDE1OEYwOSAvKiBTVkdGb250
LmNwcCAqLywKKwkJCQlCMkExRjJBMTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHRm9udEVsZW1lbnQu
Y3BwICovLAorCQkJCUIyQTFGMkEyMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5o
ICovLAorCQkJCUIyQTFGMkEzMENFRjBBQkYwMDQ0MkY2QSAvKiBTVkdGb250RWxlbWVudC5pZGwg
Ki8sCiAJCQkJQjIyMjc4N0UwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0ZvbnRGYWNlRWxlbWVudC5j
cHAgKi8sCiAJCQkJQjIyMjc4N0YwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0ZvbnRGYWNlRWxlbWVu
dC5oICovLAogCQkJCUIyMjI3ODgwMEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdGb250RmFjZUVsZW1l
bnQuaWRsICovLApAQCAtMTA4ODcsNiArMTA5MDUsOSBAQAogCQkJCUIyMjI3ODkwMEQwMEJGMjAw
MDcxQjc4MiAvKiBTVkdHRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4OTEwRDAwQkYyMDAwNzFC
NzgyIC8qIFNWR0dFbGVtZW50LmggKi8sCiAJCQkJQjIyMjc4OTIwRDAwQkYyMDAwNzFCNzgyIC8q
IFNWR0dFbGVtZW50LmlkbCAqLywKKwkJCQlCMkExRjJBNDBDRUYwQUJGMDA0NDJGNkEgLyogU1ZH
R2x5cGhFbGVtZW50LmNwcCAqLywKKwkJCQlCMkExRjJBNTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZH
R2x5cGhFbGVtZW50LmggKi8sCisJCQkJQjJBMUYyQTYwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR0ds
eXBoRWxlbWVudC5pZGwgKi8sCiAJCQkJQjIyMjc4OTMwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR0dy
YWRpZW50RWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4OTQwRDAwQkYyMDAwNzFCNzgyIC8qIFNW
R0dyYWRpZW50RWxlbWVudC5oICovLAogCQkJCUIyMjI3ODk1MEQwMEJGMjAwMDcxQjc4MiAvKiBT
VkdHcmFkaWVudEVsZW1lbnQuaWRsICovLApAQCAtMTA5MjUsNiArMTA5NDYsOSBAQAogCQkJCUIy
MjI3OEI0MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuY3BwICovLAogCQkJ
CUIyMjI3OEI1MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdNZXRhZGF0YUVsZW1lbnQuaCAqLywKIAkJ
CQlCMjIyNzhCNjBEMDBCRjIwMDA3MUI3ODIgLyogU1ZHTWV0YWRhdGFFbGVtZW50LmlkbCAqLywK
KwkJCQlCMkExRjJBNzBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0dseXBoRWxlbWVudC5j
cHAgKi8sCisJCQkJQjJBMUYyQTgwQ0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVs
ZW1lbnQuaCAqLywKKwkJCQlCMkExRjJBOTBDRUYwQUJGMDA0NDJGNkEgLyogU1ZHTWlzc2luZ0ds
eXBoRWxlbWVudC5pZGwgKi8sCiAJCQkJQjIyMjc4QjcwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01Q
YXRoRWxlbWVudC5jcHAgKi8sCiAJCQkJQjIyMjc4QjgwRDAwQkYyMDAwNzFCNzgyIC8qIFNWR01Q
YXRoRWxlbWVudC5oICovLAogCQkJCUIyMjI3OEI5MEQwMEJGMjAwMDcxQjc4MiAvKiBTVkdOdW1i
ZXIuaWRsICovLApAQCAtMTE2NzIsNiArMTE2OTYsMTAgQEAKIAkJQkM5ODU0NDYwQ0QzREE1RjAw
MDY5QkMxIC8qIFJhbmdlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCisJCQkJNjVERjMxRUQwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTUmFuZ2UuY3BwICovLAorCQkJ
CTY1REYzMUVFMDlEMUNDNjAwMDBCRTMyNSAvKiBKU1JhbmdlLmggKi8sCisJCQkJRDIzQ0E1NUUw
QUIwRUFCNjAwNTEwOEE1IC8qIEpTUmFuZ2VFeGNlcHRpb24uY3BwICovLAorCQkJCUQyM0NBNTVD
MEFCMEVBQUUwMDUxMDhBNSAvKiBKU1JhbmdlRXhjZXB0aW9uLmggKi8sCiAJCQkpOwogCQkJbmFt
ZSA9IFJhbmdlczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMTg2MSwxMiArMTE4
ODksMTYgQEAKIAkJCQlBODMzQzdGNjBBMkNGMUQ4MDBENTc2NjQgLyogeG1sYXR0cnMuaW4gKi8s
CiAJCQkJQkM3NzJDNDQwQzRFQjJDNjAwODMyODVGIC8qIFhNTEh0dHBSZXF1ZXN0LmNwcCAqLywK
IAkJCQlCQzc3MkM0NTBDNEVCMkM2MDA4MzI4NUYgLyogWE1MSHR0cFJlcXVlc3QuaCAqLywKKwkJ
CQlCQzYwRDlDNzBEMkEyOUU1MDBCOTkxOEYgLyogWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaCAq
LywKKwkJCQlCQzYwRDlDODBEMkEyOUU1MDBCOTkxOEYgLyogWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b24uaWRsICovLAogCQkJCTFBQ0U1M0U0MEE4RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVy
LmNwcCAqLywKIAkJCQkxQUNFNTNFNTBBOEQxOEU3MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5o
ICovLAogCQkJCTFBQ0U1M0U2MEE4RDE4RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmlkbCAq
LywKIAkJCQkxQUI3RkM0NzBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFdmFsdWF0b3IuY3BwICov
LAogCQkJCTFBQjdGQzQ4MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5oICovLAog
CQkJCTFBQjdGQzQ5MEE4QjkyRUMwMEQ5RDM3QiAvKiBYUGF0aEV2YWx1YXRvci5pZGwgKi8sCisJ
CQkJQkM2MERBNTkwRDJBMzFGNzAwQjk5MThGIC8qIFhQYXRoRXhjZXB0aW9uLmggKi8sCisJCQkJ
QkM2MERBNUEwRDJBMzFGNzAwQjk5MThGIC8qIFhQYXRoRXhjZXB0aW9uLmlkbCAqLywKIAkJCQkx
QUI3RkM0QTBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFeHByZXNzaW9uLmNwcCAqLywKIAkJCQkx
QUI3RkM0QjBBOEI5MkVDMDBEOUQzN0IgLyogWFBhdGhFeHByZXNzaW9uLmggKi8sCiAJCQkJMUFC
N0ZDNEMwQThCOTJFQzAwRDlEMzdCIC8qIFhQYXRoRXhwcmVzc2lvbi5pZGwgKi8sCkBAIC0xMjI5
MSw3ICsxMjMyMyw2IEBACiAJCQkJQTgxODVGMzIwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50
VHlwZS5jcHAgKi8sCiAJCQkJQTgxODVGMzEwOTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50VHlw
ZS5oICovLAogCQkJCTkzRUVDMUU4MDlDMjg3NzcwMEM1MTVEMSAvKiBEb2N1bWVudFR5cGUuaWRs
ICovLAotCQkJCUJDNjBEODAzMEQyOUE5RTgwMEI5OTE4RiAvKiBET01Db3JlRXhjZXB0aW9uLmNw
cCAqLywKIAkJCQlCQzYwRDZFODBEMjhEODM0MDBCOTkxOEYgLyogRE9NQ29yZUV4Y2VwdGlvbi5o
ICovLAogCQkJCUJDNjBENkVCMEQyOEQ5OTkwMEI5OTE4RiAvKiBET01Db3JlRXhjZXB0aW9uLmlk
bCAqLywKIAkJCQlBODE4NUYzNjA5NzY1NzY1MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24u
Y3BwICovLApAQCAtMTIzMTMsNiArMTIzNDQsOCBAQAogCQkJCTg1MDMxQjJCMEE0NEVGQzcwMEY5
OTJFMCAvKiBFdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMkMwQTQ0RUZDNzAwRjk5MkUwIC8qIEV2
ZW50LmggKi8sCiAJCQkJMTRFODM2RDIwOUY4NTEyMDAwQjg1QUU0IC8qIEV2ZW50LmlkbCAqLywK
KwkJCQlCQzYwRDkwOTBEMkExN0NFMDBCOTkxOEYgLyogRXZlbnRFeGNlcHRpb24uaCAqLywKKwkJ
CQlCQzYwRDkwQTBEMkExN0NFMDBCOTkxOEYgLyogRXZlbnRFeGNlcHRpb24uaWRsICovLAogCQkJ
CTkzNUZCQzQ0MDlCQTAwQjkwMEUyMzBCMSAvKiBFdmVudExpc3RlbmVyLmggKi8sCiAJCQkJODVB
RkE3NDEwQUFGMjk4NDAwRTg0MzA1IC8qIEV2ZW50TGlzdGVuZXIuaWRsICovLAogCQkJCTkzOTg4
NUMxMDhCN0UzRDEwMEU3MDdDNCAvKiBFdmVudE5hbWVzLmNwcCAqLywKQEAgLTEyMzIyLDYgKzEy
MzU1LDggQEAKIAkJCQk4NUFGQTc0MjBBQUYyOTg0MDBFODQzMDUgLyogRXZlbnRUYXJnZXQuaWRs
ICovLAogCQkJCTE0RUMyNjdFMDlDQTA3RTAwMEUxRUVFQyAvKiBFdmVudFRhcmdldE5vZGUuY3Bw
ICovLAogCQkJCTE0RUMyNjdEMDlDQTA3RTAwMEUxRUVFQyAvKiBFdmVudFRhcmdldE5vZGUuaCAq
LywKKwkJCQlCQzYwRDhGMDBEMkExMUUwMDBCOTkxOEYgLyogRXhjZXB0aW9uQmFzZS5jcHAgKi8s
CisJCQkJQkM2MEQ4RjEwRDJBMTFFMDAwQjk5MThGIC8qIEV4Y2VwdGlvbkJhc2UuaCAqLywKIAkJ
CQk5MzgzMUI1NjBEMDg3RDYwMDBFNUM5ODQgLyogRXhjZXB0aW9uQ29kZS5jcHAgKi8sCiAJCQkJ
OTM1RkJDRjEwOUJBMTQzQjAwRTIzMEIxIC8qIEV4Y2VwdGlvbkNvZGUuaCAqLywKIAkJCQk4NTAz
MUIyRDBBNDRFRkM3MDBGOTkyRTAgLyogS2V5Ym9hcmRFdmVudC5jcHAgKi8sCkBAIC0xNDI4MSw2
ICsxNDMxNiwxMyBAQAogCQkJCUJDRTNCRUMzMEQyMjJCMUQwMDdFMDZFNCAvKiBUYWdOb2RlTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MEQ2RTkwRDI4RDgzNDAwQjk5MThGIC8qIERPTUNv
cmVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjBEN0MxMEQyOUE0NjMwMEI5OTE4
RiAvKiBKU0RPTUNvcmVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNjBEOEYzMEQy
QTExRTAwMEI5OTE4RiAvKiBFeGNlcHRpb25CYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzYw
RDkwQzBEMkExN0NFMDBCOTkxOEYgLyogRXZlbnRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUJDNjBEOUMwMEQyQTI2OUEwMEI5OTE4RiAvKiBKU0V2ZW50RXhjZXB0aW9uLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQzYwRDlDOTBEMkEyOUU1MDBCOTkxOEYgLyogWE1MSHR0cFJlcXVlc3RF
eGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNjBEQTNBMEQyQTMwMjgwMEI5OTE4RiAv
KiBKU1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzYwREE1
QjBEMkEzMUY3MDBCOTkxOEYgLyogWFBhdGhFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJ
CUJDNjBEQjRBMEQyQTNEMUUwMEI5OTE4RiAvKiBKU1hQYXRoRXhjZXB0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTE0NTQ3LDYgKzE0NTg5LDkgQEAKIAkJCQlCMkExRjJBRjBDRUYwQUJGMDA0NDJG
NkEgLyogU1ZHR2x5cGhFbGVtZW50LmlkbCBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJQjJBMUYyQjIw
Q0VGMEFCRjAwNDQyRjZBIC8qIFNWR01pc3NpbmdHbHlwaEVsZW1lbnQuaWRsIGluIFJlc291cmNl
cyAqLywKIAkJCQlCQzYwRDZFQzBEMjhEOTk5MDBCOTkxOEYgLyogRE9NQ29yZUV4Y2VwdGlvbi5p
ZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUJDNjBEOTBEMEQyQTE3Q0UwMEI5OTE4RiAvKiBFdmVu
dEV4Y2VwdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJCUJDNjBEOUNBMEQyQTI5RTUwMEI5
OTE4RiAvKiBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwgaW4gUmVzb3VyY2VzICovLAorCQkJ
CUJDNjBEQTVDMEQyQTMxRjcwMEI5OTE4RiAvKiBYUGF0aEV4Y2VwdGlvbi5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMTYwMTcsNyArMTYwNjIsMTAgQEAKIAkJCQlCQzdGQTY4MjBEMUYxNjc5MDBE
QjIyQTkgLyogU2VsZWN0b3JOb2RlTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UzQkVD
MjBEMjIyQjFEMDA3RTA2RTQgLyogVGFnTm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM2MEQ3QzAwRDI5QTQ2MzAwQjk5MThGIC8qIEpTRE9NQ29yZUV4Y2VwdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlCQzYwRDgwNDBEMjlBOUU4MDBCOTkxOEYgLyogRE9NQ29yZUV4Y2VwdGlv
bi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzYwRDhGMjBEMkExMUUwMDBCOTkxOEYgLyogRXhj
ZXB0aW9uQmFzZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzYwRDlCRjBEMkEyNjlBMDBCOTkx
OEYgLyogSlNFdmVudEV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzYwREEzOTBE
MkEzMDI4MDBCOTkxOEYgLyogSlNYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlCQzYwREI0OTBEMkEzRDFFMDBCOTkxOEYgLyogSlNYUGF0aEV4Y2VwdGlvbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhD
dXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdNYXRyaXhD
dXN0b20uY3BwCShyZXZpc2lvbiAyOTA3MSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdN
YXRyaXhDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw3IEBAIEpTVmFsdWUq
IEpTU1ZHTWF0cml4OjppbnZlcnNlKEV4ZWNTdGF0ZSoKICAgICBLSlM6OkpTVmFsdWUqIHJlc3Vs
dCA9IHRvSlMoZXhlYywgbmV3IEpTU1ZHUE9EVHlwZVdyYXBwZXJDcmVhdG9yUmVhZE9ubHk8QWZm
aW5lVHJhbnNmb3JtPihpbXAuaW52ZXJzZSgpKSwgbV9jb250ZXh0LmdldCgpKTsKIAogICAgIGlm
ICghaW1wLmlzSW52ZXJ0aWJsZSgpKQotICAgICAgICBzZXRET01FeGNlcHRpb24oZXhlYywgU1ZH
X01BVFJJWF9OT1RfSU5WRVJUQUJMRSk7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBT
VkdFeGNlcHRpb246OlNWR19NQVRSSVhfTk9UX0lOVkVSVEFCTEUpOwogCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KQEAgLTk1LDcgKzk1LDcgQEAgSlNWYWx1ZSogSlNTVkdNYXRyaXg6OnJvdGF0ZUZy
b21WZWN0b3IoRQogICAgIEtKUzo6SlNWYWx1ZSogcmVzdWx0ID0gdG9KUyhleGVjLCBuZXcgSlNT
VkdQT0RUeXBlV3JhcHBlckNyZWF0b3JSZWFkT25seTxBZmZpbmVUcmFuc2Zvcm0+KGltcC5yb3Rh
dGVGcm9tVmVjdG9yKHgsIHkpKSwgbV9jb250ZXh0LmdldCgpKTsKIAogICAgIGlmICh4ID09IDAu
MCB8fCB5ID09IDAuMCkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIFNWR19JTlZBTElE
X1ZBTFVFX0VSUik7CisgICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBTVkdFeGNlcHRpb246
OlNWR19JTlZBTElEX1ZBTFVFX0VSUik7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29y
ZS9iaW5kaW5ncy9qcy9ranNfYmluZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDEyICsy
NywyNyBAQAogI2luY2x1ZGUgImtqc19iaW5kaW5nLmgiCiAKICNpbmNsdWRlICJET01Db3JlRXhj
ZXB0aW9uLmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkpTRE9NQ29yZUV4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIkpTRXZl
bnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJKU05vZGUuaCIKLSNpbmNsdWRlICJYTUxIdHRwUmVx
dWVzdC5oIgorI2luY2x1ZGUgIkpTUmFuZ2VFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJKU1hNTEh0
dHBSZXF1ZXN0RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiUmFuZ2VFeGNlcHRpb24uaCIKKyNpbmNs
dWRlICJYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIgorCisjaWYgRU5BQkxFKFNWRykKKyNpbmNs
dWRlICJKU1NWR0V4Y2VwdGlvbi5oIgorI2luY2x1ZGUgIlNWR0V4Y2VwdGlvbi5oIgorI2VuZGlm
CisKKyNpZiBFTkFCTEUoWFBBVEgpCisjaW5jbHVkZSAiSlNYUGF0aEV4Y2VwdGlvbi5oIgorI2lu
Y2x1ZGUgIlhQYXRoRXhjZXB0aW9uLmgiCisjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpAQCAtMjYzLDEzICsyNzgsNDIgQEAgdm9p
ZCBzZXRET01FeGNlcHRpb24oRXhlY1N0YXRlKiBleGVjLCBFeAogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBUbyBiZSByZW1vdmVkOiBTZWUgWE1MSHR0cFJlcXVlc3QuaC4KLSAgICBpZiAoZWMg
PT0gUEVSTUlTU0lPTl9ERU5JRUQpIHsKKyAgICBpZiAoZWMgPT0gWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb246OlBFUk1JU1NJT05fREVOSUVEKSB7CiAgICAgICAgIHRocm93RXJyb3IoZXhlYywgR2Vu
ZXJhbEVycm9yLCAiUGVybWlzc2lvbiBkZW5pZWQiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIERPTUNvcmVFeGNlcHRpb24qIGV4Y2VwdGlvbiA9IG5ldyBET01Db3JlRXhjZXB0aW9u
KGVjKTsKLSAgICBKU1ZhbHVlKiBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZXhjZXB0aW9uKTsK
KyAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgZ2V0RXhjZXB0
aW9uQ29kZURlc2NyaXB0aW9uKGVjLCBkZXNjcmlwdGlvbik7CisKKyAgICBKU1ZhbHVlKiBlcnJv
ck9iamVjdDsKKyAgICBzd2l0Y2ggKGRlc2NyaXB0aW9uLnR5cGUpIHsKKyAgICAgICAgY2FzZSBE
T01FeGNlcHRpb25UeXBlOgorICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pTKGV4ZWMsIG5l
dyBET01Db3JlRXhjZXB0aW9uKGRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgY2FzZSBSYW5nZUV4Y2VwdGlvblR5cGU6CisgICAgICAgICAgICBlcnJvck9iamVjdCA9
IHRvSlMoZXhlYywgbmV3IFJhbmdlRXhjZXB0aW9uKGRlc2NyaXB0aW9uKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBFdmVudEV4Y2VwdGlvblR5cGU6CisgICAgICAgICAgICBl
cnJvck9iamVjdCA9IHRvSlMoZXhlYywgbmV3IEV2ZW50RXhjZXB0aW9uKGRlc2NyaXB0aW9uKSk7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
blR5cGU6CisgICAgICAgICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgbmV3IFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uKGRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoU1ZHKQorICAgICAgICBjYXNlIFNWR0V4Y2VwdGlvblR5cGU6CisgICAgICAgICAgICBl
cnJvck9iamVjdCA9IHRvSlMoZXhlYywgbmV3IFNWR0V4Y2VwdGlvbihkZXNjcmlwdGlvbiksIDAp
OworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyNpZiBFTkFCTEUoWFBBVEgpCisgICAgICAg
IGNhc2UgWFBhdGhFeGNlcHRpb25UeXBlOgorICAgICAgICAgICAgZXJyb3JPYmplY3QgPSB0b0pT
KGV4ZWMsIG5ldyBYUGF0aEV4Y2VwdGlvbihkZXNjcmlwdGlvbikpOworICAgICAgICAgICAgYnJl
YWs7CisjZW5kaWYKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH0KKwogICAgIGV4ZWMtPnNldEV4Y2VwdGlvbihlcnJvck9iamVjdCk7CiB9
CiAKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQko
cmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC02NjYsNyArNjY2LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgICAgIG15ICRuYW1lID0gJGNvbnN0YW50LT5uYW1lOwogICAg
ICAgICAgICAgcHVzaChAaGFzaEtleXMsICRuYW1lKTsKIAotICAgICAgICAgICAgbXkgJHZhbHVl
ID0gSGFzaFZhbHVlRm9yQ2xhc3NBbmROYW1lKCRpbXBsQ2xhc3NOYW1lLCAkbmFtZSk7CisgICAg
ICAgICAgICBteSAkdmFsdWUgPSAkY29uc3RhbnQtPnZhbHVlOwogICAgICAgICAgICAgcHVzaChA
aGFzaFZhbHVlcywgJHZhbHVlKTsKIAogICAgICAgICAgICAgbXkgJHNwZWNpYWwgPSAiRG9udERl
bGV0ZXxSZWFkT25seSI7CkBAIC02OTksNyArNjk5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgbXkgJG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CiAgICAgICAgIHB1c2go
QGhhc2hLZXlzLCAkbmFtZSk7CiAKLSAgICAgICAgbXkgJHZhbHVlID0gSGFzaFZhbHVlRm9yQ2xh
c3NBbmROYW1lKCRpbXBsQ2xhc3NOYW1lLCAkbmFtZSk7CisgICAgICAgIG15ICR2YWx1ZSA9ICRj
b25zdGFudC0+dmFsdWU7CiAgICAgICAgIHB1c2goQGhhc2hWYWx1ZXMsICR2YWx1ZSk7CiAKICAg
ICAgICAgbXkgJHNwZWNpYWwgPSAiRG9udERlbGV0ZXxSZWFkT25seSI7CkluZGV4OiBXZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtCShyZXZpc2lvbiAyOTA3
MSkKKysrIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQkod29y
a2luZyBjb3B5KQpAQCAtMTI5MSwxNCArMTI5MSwxNCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRh
dGlvbgogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIHdpdGggcm90YXRlRnJvbVZlY3Rv
ciAmIFNWR01hdHJpeCAgICAgICAgCiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250
ZW50LCAiICAgICRleGNlcHRpb25Jbml0XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5j
dGlvbkNvbnRlbnQsICIgICAgaWYgKHggPT0gMC4wIHx8IHkgPT0gMC4wKVxuIik7Ci0gICAgICAg
ICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgICAgICBlYyA9IFdlYkNvcmU6OlNW
R19JTlZBTElEX1ZBTFVFX0VSUjtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9u
Q29udGVudCwgIiAgICAgICAgZWMgPSBXZWJDb3JlOjpTVkdFeGNlcHRpb246OlNWR19JTlZBTElE
X1ZBTFVFX0VSUjtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwg
IiAgICAkZXhjZXB0aW9uUmFpc2VPbkVycm9yXG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbkNvbnRlbnQsICIgICAgcmV0dXJuIFtET01TVkdNYXRyaXggX3dyYXBTVkdNYXRyaXg6
JGNvbnRlbnRdO1xuIik7CiAgICAgICAgICAgICB9IGVsc2lmICgkc3ZnTWF0cml4SW52ZXJzZSkg
ewogICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNlIHdpdGggaW52ZXJzZSAmIFNWR01hdHJp
eAogICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAgICAkZXhjZXB0aW9u
SW5pdFxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25Db250ZW50LCAiICAgIGlm
ICghJGNhbGxlci0+aXNJbnZlcnRpYmxlKCkpXG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBm
dW5jdGlvbkNvbnRlbnQsICIgICAgICAgIGVjID0gV2ViQ29yZTo6U1ZHX01BVFJJWF9OT1RfSU5W
RVJUQUJMRTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGZ1bmN0aW9uQ29udGVudCwgIiAg
ICAgICAgZWMgPSBXZWJDb3JlOjpTVkdFeGNlcHRpb246OlNWR19NQVRSSVhfTk9UX0lOVkVSVEFC
TEU7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBmdW5jdGlvbkNvbnRlbnQsICIgICAgJGV4
Y2VwdGlvblJhaXNlT25FcnJvclxuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAZnVuY3Rpb25D
b250ZW50LCAiICAgIHJldHVybiBbRE9NU1ZHTWF0cml4IF93cmFwU1ZHTWF0cml4OiRjb250ZW50
XTtcbiIpOwogICAgICAgICAgICAgfSBlbHNpZiAoJHJldHVyblR5cGUgZXEgInZvaWQiKSB7Cklu
ZGV4OiBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3Jl
L2RvbS9ET01Db3JlRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1MyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLURPTUNvcmVFeGNlcHRpb246OkRPTUNvcmVFeGNlcHRpb24o
RXhjZXB0aW9uQ29kZSBlYykKLXsKLSAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3Jp
cHRpb247Ci0gICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKGVjLCBkZXNjcmlwdGlvbik7
Ci0KLSAgICBtX2NvZGUgPSBkZXNjcmlwdGlvbi5jb2RlOwotCi0gICAgaWYgKGRlc2NyaXB0aW9u
Lm5hbWUpIHsKLSAgICAgICAgbV9uYW1lID0gZGVzY3JpcHRpb24ubmFtZTsKLSAgICAgICAgbV9t
ZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzOiAlcyBFeGNlcHRpb24gJWQiLCBkZXNjcmlwdGlv
bi5uYW1lLCBkZXNjcmlwdGlvbi50eXBlTmFtZSwgZGVzY3JpcHRpb24uY29kZSk7Ci0gICAgfSBl
bHNlCi0gICAgICAgIG1fbWVzc2FnZSA9IFN0cmluZzo6Zm9ybWF0KCIlcyBFeGNlcHRpb24gJWQi
LCBkZXNjcmlwdGlvbi50eXBlTmFtZSwgZGVzY3JpcHRpb24uY29kZSk7Ci19Ci0KLVN0cmluZyBE
T01Db3JlRXhjZXB0aW9uOjp0b1N0cmluZygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICJFcnJvcjog
IiArIG1fbWVzc2FnZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29y
ZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RPTUNv
cmVFeGNlcHRpb24uaAkocmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL2RvbS9ET01Db3JlRXhj
ZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDUxICsyOSwxNiBAQAogI2lmbmRlZiBET01D
b3JlRXhjZXB0aW9uX2gKICNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCiAKLSNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgY2xhc3MgRE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPERPTUNvcmVFeGNlcHRpb24+IHsKKyAgICBjbGFzcyBET01Db3JlRXhjZXB0aW9uIDogcHVi
bGljIEV4Y2VwdGlvbkJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgRE9NQ29yZUV4Y2VwdGlv
bihFeGNlcHRpb25Db2RlKTsKLQotICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBjb3BpZWQgZnJv
bSBFeGNlcHRpb25Db2RlLmgsIGl0IG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYy4KLSAgICAgICAg
ZW51bSB7Ci0gICAgICAgICAgICBJTkRFWF9TSVpFX0VSUiA9IDEsCi0gICAgICAgICAgICBET01T
VFJJTkdfU0laRV9FUlIgPSAyLAotICAgICAgICAgICAgSElFUkFSQ0hZX1JFUVVFU1RfRVJSID0g
MywKLSAgICAgICAgICAgIFdST05HX0RPQ1VNRU5UX0VSUiA9IDQsCi0gICAgICAgICAgICBJTlZB
TElEX0NIQVJBQ1RFUl9FUlIgPSA1LAotICAgICAgICAgICAgTk9fREFUQV9BTExPV0VEX0VSUiA9
IDYsCi0gICAgICAgICAgICBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgPSA3LAotICAgICAg
ICAgICAgTk9UX0ZPVU5EX0VSUiA9IDgsCi0gICAgICAgICAgICBOT1RfU1VQUE9SVEVEX0VSUiA9
IDksCi0gICAgICAgICAgICBJTlVTRV9BVFRSSUJVVEVfRVJSID0gMTAsCi0KLSAgICAgICAgICAg
IC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgICAgICBJTlZBTElEX1NUQVRF
X0VSUiA9IDExLAotICAgICAgICAgICAgU1lOVEFYX0VSUiA9IDEyLAotICAgICAgICAgICAgSU5W
QUxJRF9NT0RJRklDQVRJT05fRVJSID0gMTMsCi0gICAgICAgICAgICBOQU1FU1BBQ0VfRVJSID0g
MTQsCi0gICAgICAgICAgICBJTlZBTElEX0FDQ0VTU19FUlIgPSAxNSwKLQotICAgICAgICAgICAg
Ly8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKLSAgICAgICAgICAgIFZBTElEQVRJT05fRVJS
ID0gMTYsCi0gICAgICAgICAgICBUWVBFX01JU01BVENIX0VSUiA9IDE3Ci0gICAgICAgIH07Ci0K
LSAgICAgICAgaW50IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICAgICAgU3Ry
aW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICAgICAgU3RyaW5nIG1lc3Nh
Z2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLQotICAgICAgICBTdHJpbmcgdG9TdHJp
bmcoKSBjb25zdDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGludCBtX2NvZGU7Ci0gICAgICAg
IFN0cmluZyBtX25hbWU7Ci0gICAgICAgIFN0cmluZyBtX21lc3NhZ2U7CisgICAgICAgIERPTUNv
cmVFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikK
KyAgICAgICAgICAgIDogRXhjZXB0aW9uQmFzZShkZXNjcmlwdGlvbikKKyAgICAgICAgeworICAg
ICAgICB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9k
b20vRE9NQ29yZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRE9NQ29y
ZUV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS9kb20vRE9NQ29yZUV4
Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTY3LDQgKzY3LDUgQEAgbW9kdWxlIGNvcmUg
ewogICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzOgogICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIFRZUEVfTUlTTUFUQ0hfRVJSICAgICAgICAgICAgICA9IDE3Owog
ICAgIH07CisKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL0V2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9kb20vRXZlbnQuaAkocmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL2RvbS9FdmVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMSArMzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHByb2JhYmx5IGRlZmluZWQgZWxzZXdoZXJlLgogICAg
IHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIERPTVRpbWVTdGFtcDsKIAotICAgIC8vIEZJWE1F
OiB0aGVzZSB0b28gc2hvdWxkIHByb2JhYmx5IGRlZmluZWQgZWxzZXdoZXJlLgotICAgIGNvbnN0
IGludCBFdmVudEV4Y2VwdGlvbk9mZnNldCA9IDEwMDsKLSAgICBjb25zdCBpbnQgRXZlbnRFeGNl
cHRpb25NYXggPSAxOTk7Ci0gICAgZW51bSBFdmVudEV4Y2VwdGlvbkNvZGUgeyBVTlNQRUNJRklF
RF9FVkVOVF9UWVBFX0VSUiA9IEV2ZW50RXhjZXB0aW9uT2Zmc2V0IH07Ci0KICAgICBjbGFzcyBF
dmVudCA6IHB1YmxpYyBSZWZDb3VudGVkPEV2ZW50PiB7CiAgICAgcHVibGljOgogICAgICAgICBl
bnVtIFBoYXNlVHlwZSB7IApJbmRleDogV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5oCShyZXZpc2lvbiAyOTA1OCkJ
KGZyb20gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5oOjI5MDU4KQorKysgV2ViQ29yZS9k
b20vRXZlbnRFeGNlcHRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
KyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIERPTUNvcmVFeGNlcHRpb25faAorI2RlZmluZSBET01Db2RlRXhjZXB0aW9uX2gKKworI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNs
YXNzIERPTUNvcmVFeGNlcHRpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxET01Db3JlRXhjZXB0aW9u
PiB7CisgICAgcHVibGljOgorICAgICAgICBET01Db3JlRXhjZXB0aW9uKEV4Y2VwdGlvbkNvZGUp
OworCisgICAgICAgIC8vIEZJWE1FOiB0aGlzIGlzIGNvcGllZCBmcm9tIEV4Y2VwdGlvbkNvZGUu
aCwgaXQgbmVlZHMgdG8gYmUga2VwdCBpbiBzeW5jLgorICAgICAgICBlbnVtIHsKKyAgICAgICAg
ICAgIElOREVYX1NJWkVfRVJSID0gMSwKKyAgICAgICAgICAgIERPTVNUUklOR19TSVpFX0VSUiA9
IDIsCisgICAgICAgICAgICBISUVSQVJDSFlfUkVRVUVTVF9FUlIgPSAzLAorICAgICAgICAgICAg
V1JPTkdfRE9DVU1FTlRfRVJSID0gNCwKKyAgICAgICAgICAgIElOVkFMSURfQ0hBUkFDVEVSX0VS
UiA9IDUsCisgICAgICAgICAgICBOT19EQVRBX0FMTE9XRURfRVJSID0gNiwKKyAgICAgICAgICAg
IE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDcsCisgICAgICAgICAgICBOT1RfRk9VTkRf
RVJSID0gOCwKKyAgICAgICAgICAgIE5PVF9TVVBQT1JURURfRVJSID0gOSwKKyAgICAgICAgICAg
IElOVVNFX0FUVFJJQlVURV9FUlIgPSAxMCwKKworICAgICAgICAgICAgLy8gSW50cm9kdWNlZCBp
biBET00gTGV2ZWwgMjoKKyAgICAgICAgICAgIElOVkFMSURfU1RBVEVfRVJSID0gMTEsCisgICAg
ICAgICAgICBTWU5UQVhfRVJSID0gMTIsCisgICAgICAgICAgICBJTlZBTElEX01PRElGSUNBVElP
Tl9FUlIgPSAxMywKKyAgICAgICAgICAgIE5BTUVTUEFDRV9FUlIgPSAxNCwKKyAgICAgICAgICAg
IElOVkFMSURfQUNDRVNTX0VSUiA9IDE1LAorCisgICAgICAgICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCAzOgorICAgICAgICAgICAgVkFMSURBVElPTl9FUlIgPSAxNiwKKyAgICAgICAg
ICAgIFRZUEVfTUlTTUFUQ0hfRVJSID0gMTcKKyAgICAgICAgfTsKKworICAgICAgICBpbnQgY29k
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQorICAgICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVzc2FnZTsgfQorCisgICAgICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0OworCisg
ICAgcHJpdmF0ZToKKyAgICAgICAgaW50IG1fY29kZTsKKyAgICAgICAgU3RyaW5nIG1fbmFtZTsK
KyAgICAgICAgU3RyaW5nIG1fbWVzc2FnZTsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBET01Db3JlRXhjZXB0aW9uX2gKSW5kZXg6IFdlYkNvcmUvZG9tL0V2
ZW50RXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24u
aAkocmV2aXNpb24gMjkwNTcpCisrKyBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw1NiArMjYsMjggQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRl
ZiBET01Db3JlRXhjZXB0aW9uX2gKLSNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisjaWZuZGVm
IEV2ZW50RXhjZXB0aW9uX2gKKyNkZWZpbmUgRXZlbnRFeGNlcHRpb25faAogCi0jaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIERPTUNvcmVFeGNlcHRpb24gOiBwdWJsaWMgUmVmQ291
bnRlZDxET01Db3JlRXhjZXB0aW9uPiB7CisgICAgY2xhc3MgRXZlbnRFeGNlcHRpb24gOiBwdWJs
aWMgRXhjZXB0aW9uQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBET01Db3JlRXhjZXB0aW9u
KEV4Y2VwdGlvbkNvZGUpOworICAgICAgICBFdmVudEV4Y2VwdGlvbihjb25zdCBFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgOiBFeGNlcHRpb25CYXNl
KGRlc2NyaXB0aW9uKQorICAgICAgICB7CisgICAgICAgIH0KIAotICAgICAgICAvLyBGSVhNRTog
dGhpcyBpcyBjb3BpZWQgZnJvbSBFeGNlcHRpb25Db2RlLmgsIGl0IG5lZWRzIHRvIGJlIGtlcHQg
aW4gc3luYy4KLSAgICAgICAgZW51bSB7Ci0gICAgICAgICAgICBJTkRFWF9TSVpFX0VSUiA9IDEs
Ci0gICAgICAgICAgICBET01TVFJJTkdfU0laRV9FUlIgPSAyLAotICAgICAgICAgICAgSElFUkFS
Q0hZX1JFUVVFU1RfRVJSID0gMywKLSAgICAgICAgICAgIFdST05HX0RPQ1VNRU5UX0VSUiA9IDQs
Ci0gICAgICAgICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgPSA1LAotICAgICAgICAgICAgTk9f
REFUQV9BTExPV0VEX0VSUiA9IDYsCi0gICAgICAgICAgICBOT19NT0RJRklDQVRJT05fQUxMT1dF
RF9FUlIgPSA3LAotICAgICAgICAgICAgTk9UX0ZPVU5EX0VSUiA9IDgsCi0gICAgICAgICAgICBO
T1RfU1VQUE9SVEVEX0VSUiA9IDksCi0gICAgICAgICAgICBJTlVTRV9BVFRSSUJVVEVfRVJSID0g
MTAsCi0KLSAgICAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAg
ICAgICBJTlZBTElEX1NUQVRFX0VSUiA9IDExLAotICAgICAgICAgICAgU1lOVEFYX0VSUiA9IDEy
LAotICAgICAgICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSID0gMTMsCi0gICAgICAgICAg
ICBOQU1FU1BBQ0VfRVJSID0gMTQsCi0gICAgICAgICAgICBJTlZBTElEX0FDQ0VTU19FUlIgPSAx
NSwKLQotICAgICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKLSAgICAgICAg
ICAgIFZBTElEQVRJT05fRVJSID0gMTYsCi0gICAgICAgICAgICBUWVBFX01JU01BVENIX0VSUiA9
IDE3Ci0gICAgICAgIH07CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgRXZlbnRFeGNlcHRpb25P
ZmZzZXQgPSAxMDA7CisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgRXZlbnRFeGNlcHRpb25NYXgg
PSAxOTk7CiAKLSAgICAgICAgaW50IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAg
ICAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KLSAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KLQotICAgICAgICBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdDsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIGludCBtX2NvZGU7
Ci0gICAgICAgIFN0cmluZyBtX25hbWU7Ci0gICAgICAgIFN0cmluZyBtX21lc3NhZ2U7CisgICAg
ICAgIGVudW0gRXZlbnRFeGNlcHRpb25Db2RlIHsKKyAgICAgICAgICAgIFVOU1BFQ0lGSUVEX0VW
RU5UX1RZUEVfRVJSID0gRXZlbnRFeGNlcHRpb25PZmZzZXQKKyAgICAgICAgfTsKICAgICB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBET01Db3JlRXhjZXB0aW9uX2gK
KyNlbmRpZiAvLyBFdmVudEV4Y2VwdGlvbl9oCkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudEV4Y2Vw
dGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRFeGNlcHRpb24uaWRsCShy
ZXZpc2lvbiAyOTA1OCkJKGZyb20gV2ViQ29yZS9kb20vRE9NQ29yZUV4Y2VwdGlvbi5pZGw6Mjkw
NTgpCisrKyBXZWJDb3JlL2RvbS9FdmVudEV4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFt
ZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICog
ICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50ZXJmYWNlIFsKKyAgICAgICAg
R2VuZXJhdGVDb25zdHJ1Y3RvcgorICAgIF0gRE9NQ29yZUV4Y2VwdGlvbiB7CisKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29kZTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKKworI2lmIGRlZmluZWQoTEFOR1VBR0Vf
SkFWQVNDUklQVCkKKyAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBNb3ppbGxhIGNvbXBhdGlibGUg
Zm9ybWF0CisgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CisjZW5kaWYK
KworICAgICAgICAvLyBFeGNlcHRpb25Db2RlCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
ICAgICAgSU5ERVhfU0laRV9FUlIgICAgICAgICAgICAgICAgID0gMTsKKyAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBET01TVFJJTkdfU0laRV9FUlIgICAgICAgICAgICAgPSAyOwor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiAg
ICAgICAgICA9IDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgV1JPTkdfRE9D
VU1FTlRfRVJSICAgICAgICAgICAgID0gNDsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgICAgICAgICAgPSA1OworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIgICAgICAgICAgICA9IDY7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSICAgID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBOT1RfRk9VTkRf
RVJSICAgICAgICAgICAgICAgICAgPSA4OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIE5PVF9TVVBQT1JURURfRVJSICAgICAgICAgICAgICA9IDk7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiAgICAgICAgICAgID0gMTA7Cisg
ICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0ICAgICAgSU5WQUxJRF9TVEFURV9FUlIgICAgICAgICAgICAgID0gMTE7CisgICAg
ICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0ICAgICAgU1lOVEFYX0VSUiAgICAgICAgICAgICAgICAgICAgID0gMTI7CisgICAgICAg
IC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0ICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSICAgICAgID0gMTM7CisgICAgICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
ICAgICAgTkFNRVNQQUNFX0VSUiAgICAgICAgICAgICAgICAgID0gMTQ7CisgICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAg
ICAgSU5WQUxJRF9BQ0NFU1NfRVJSICAgICAgICAgICAgID0gMTU7CisgICAgICAgIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAg
VkFMSURBVElPTl9FUlIgICAgICAgICAgICAgICAgID0gMTY7CisgICAgICAgIC8vIEludHJvZHVj
ZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVFlQ
RV9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgID0gMTc7CisgICAgfTsKK30KSW5kZXg6IFdlYkNv
cmUvZG9tL0V2ZW50RXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVu
dEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDI5MDU3KQorKysgV2ViQ29yZS9kb20vRXZlbnRFeGNl
cHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTIgQEAKICAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotbW9kdWxlIGNvcmUgeworbW9kdWxlIGV2ZW50cyB7CiAKKyAgICAvLyBJbnRyb2R1
Y2VkIGluIERPTSBMZXZlbCAyOgogICAgIGludGVyZmFjZSBbCiAgICAgICAgIEdlbmVyYXRlQ29u
c3RydWN0b3IKLSAgICBdIERPTUNvcmVFeGNlcHRpb24geworICAgIF0gRXZlbnRFeGNlcHRpb24g
ewogCiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGNvZGU7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CkBAIC00MSwz
MCArNDIsOSBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRv
U3RyaW5nKCk7CiAjZW5kaWYKIAotICAgICAgICAvLyBFeGNlcHRpb25Db2RlCi0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5ERVhfU0laRV9FUlIgICAgICAgICAgICAgICAgID0g
MTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBET01TVFJJTkdfU0laRV9FUlIg
ICAgICAgICAgICAgPSAyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEhJRVJB
UkNIWV9SRVFVRVNUX0VSUiAgICAgICAgICA9IDM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0ICAgICAgV1JPTkdfRE9DVU1FTlRfRVJSICAgICAgICAgICAgID0gNDsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgICAgICAgICAgPSA1
OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIg
ICAgICAgICAgICA9IDY7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSICAgID0gNzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgICAgICBOT1RfRk9VTkRfRVJSICAgICAgICAgICAgICAgICAgPSA4OwotICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PVF9TVVBQT1JURURfRVJSICAgICAgICAgICAgICA9IDk7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiAg
ICAgICAgICAgID0gMTA7Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9TVEFURV9FUlIgICAgICAg
ICAgICAgID0gMTE7Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgU1lOVEFYX0VSUiAgICAgICAgICAgICAgICAg
ICAgID0gMTI7Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSICAgICAg
ID0gMTM7Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTkFNRVNQQUNFX0VSUiAgICAgICAgICAgICAgICAgID0g
MTQ7Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSICAgICAgICAgICAgID0gMTU7
Ci0gICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgVkFMSURBVElPTl9FUlIgICAgICAgICAgICAgICAgID0gMTY7Ci0g
ICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0ICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgID0gMTc7CisgICAg
ICAgIC8vIEV2ZW50RXhjZXB0aW9uQ29kZQorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBV
TlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUiA9IDA7CisKICAgICB9OworCiB9CkluZGV4OiBXZWJD
b3JlL2RvbS9FdmVudFRhcmdldE5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2
ZW50VGFyZ2V0Tm9kZS5jcHAJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS9kb20vRXZlbnRU
YXJnZXROb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1ZGUgIkV2ZW50RXhjZXB0
aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXZlbnRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKQEAgLTEwMyw3ICsxMDQsNyBAQCBib29sIEV2
ZW50VGFyZ2V0Tm9kZTo6ZGlzcGF0Y2hFdmVudChQYXNzCiAgICAgUmVmUHRyPEV2ZW50PiBldnQo
ZSk7CiAgICAgQVNTRVJUKCFldmVudERpc3BhdGNoRm9yYmlkZGVuKCkpOwogICAgIGlmICghZXZ0
IHx8IGV2dC0+dHlwZSgpLmlzRW1wdHkoKSkgeyAKLSAgICAgICAgZWMgPSBVTlNQRUNJRklFRF9F
VkVOVF9UWVBFX0VSUjsKKyAgICAgICAgZWMgPSBFdmVudEV4Y2VwdGlvbjo6VU5TUEVDSUZJRURf
RVZFTlRfVFlQRV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKSW5kZXg6IFdl
YkNvcmUvZG9tL0V4Y2VwdGlvbkJhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V4
Y2VwdGlvbkJhc2UuY3BwCShyZXZpc2lvbiAyOTA1OCkJKGZyb20gV2ViQ29yZS9kb20vRE9NQ29y
ZUV4Y2VwdGlvbi5jcHA6MjkwNTgpCisrKyBXZWJDb3JlL2RvbS9FeGNlcHRpb25CYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRE9NQ29yZUV4Y2VwdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTUNv
cmVFeGNlcHRpb246OkRPTUNvcmVFeGNlcHRpb24oRXhjZXB0aW9uQ29kZSBlYykKK3sKKyAgICBF
eGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAgZ2V0RXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uKGVjLCBkZXNjcmlwdGlvbik7CisKKyAgICBtX2NvZGUgPSBkZXNjcmlwdGlv
bi5jb2RlOworCisgICAgaWYgKGRlc2NyaXB0aW9uLm5hbWUpIHsKKyAgICAgICAgbV9uYW1lID0g
ZGVzY3JpcHRpb24ubmFtZTsKKyAgICAgICAgbV9tZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVz
OiAlcyBFeGNlcHRpb24gJWQiLCBkZXNjcmlwdGlvbi5uYW1lLCBkZXNjcmlwdGlvbi50eXBlTmFt
ZSwgZGVzY3JpcHRpb24uY29kZSk7CisgICAgfSBlbHNlCisgICAgICAgIG1fbWVzc2FnZSA9IFN0
cmluZzo6Zm9ybWF0KCIlcyBFeGNlcHRpb24gJWQiLCBkZXNjcmlwdGlvbi50eXBlTmFtZSwgZGVz
Y3JpcHRpb24uY29kZSk7Cit9CisKK1N0cmluZyBET01Db3JlRXhjZXB0aW9uOjp0b1N0cmluZygp
IGNvbnN0Cit7CisgICAgcmV0dXJuICJFcnJvcjogIiArIG1fbWVzc2FnZTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5jcHAJKHJldmlzaW9uIDI5MDU3
KQorKysgV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDE3ICsyNywxMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJET01D
b3JlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLURPTUNvcmVFeGNlcHRpb246OkRPTUNvcmVFeGNlcHRpb24oRXhjZXB0aW9u
Q29kZSBlYykKK0V4Y2VwdGlvbkJhc2U6OkV4Y2VwdGlvbkJhc2UoY29uc3QgRXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKIHsKLSAgICBFeGNlcHRpb25Db2RlRGVzY3JpcHRp
b24gZGVzY3JpcHRpb247Ci0gICAgZ2V0RXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uKGVjLCBkZXNj
cmlwdGlvbik7Ci0KICAgICBtX2NvZGUgPSBkZXNjcmlwdGlvbi5jb2RlOwotCiAgICAgaWYgKGRl
c2NyaXB0aW9uLm5hbWUpIHsKICAgICAgICAgbV9uYW1lID0gZGVzY3JpcHRpb24ubmFtZTsKICAg
ICAgICAgbV9tZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzOiAlcyBFeGNlcHRpb24gJWQiLCBk
ZXNjcmlwdGlvbi5uYW1lLCBkZXNjcmlwdGlvbi50eXBlTmFtZSwgZGVzY3JpcHRpb24uY29kZSk7
CkBAIC00NSw3ICs0MSw3IEBAIERPTUNvcmVFeGNlcHRpb246OkRPTUNvcmVFeGNlcHRpb24oRXhj
ZXAKICAgICAgICAgbV9tZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIiVzIEV4Y2VwdGlvbiAlZCIs
IGRlc2NyaXB0aW9uLnR5cGVOYW1lLCBkZXNjcmlwdGlvbi5jb2RlKTsKIH0KIAotU3RyaW5nIERP
TUNvcmVFeGNlcHRpb246OnRvU3RyaW5nKCkgY29uc3QKK1N0cmluZyBFeGNlcHRpb25CYXNlOjp0
b1N0cmluZygpIGNvbnN0CiB7CiAgICAgcmV0dXJuICJFcnJvcjogIiArIG1fbWVzc2FnZTsKIH0K
SW5kZXg6IFdlYkNvcmUvZG9tL0V4Y2VwdGlvbkJhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9FeGNlcHRpb25CYXNlLmgJKHJldmlzaW9uIDI5MDU4KQkoZnJvbSBXZWJDb3JlL2RvbS9E
T01Db3JlRXhjZXB0aW9uLmg6MjkwNTgpCisrKyBXZWJDb3JlL2RvbS9FeGNlcHRpb25CYXNlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBET01Db3JlRXhjZXB0aW9u
X2gKKyNkZWZpbmUgRE9NQ29kZUV4Y2VwdGlvbl9oCisKKyNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBET01Db3JlRXhjZXB0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8RE9NQ29yZUV4Y2VwdGlvbj4geworICAgIHB1YmxpYzoKKyAg
ICAgICAgRE9NQ29yZUV4Y2VwdGlvbihFeGNlcHRpb25Db2RlKTsKKworICAgICAgICAvLyBGSVhN
RTogdGhpcyBpcyBjb3BpZWQgZnJvbSBFeGNlcHRpb25Db2RlLmgsIGl0IG5lZWRzIHRvIGJlIGtl
cHQgaW4gc3luYy4KKyAgICAgICAgZW51bSB7CisgICAgICAgICAgICBJTkRFWF9TSVpFX0VSUiA9
IDEsCisgICAgICAgICAgICBET01TVFJJTkdfU0laRV9FUlIgPSAyLAorICAgICAgICAgICAgSElF
UkFSQ0hZX1JFUVVFU1RfRVJSID0gMywKKyAgICAgICAgICAgIFdST05HX0RPQ1VNRU5UX0VSUiA9
IDQsCisgICAgICAgICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgPSA1LAorICAgICAgICAgICAg
Tk9fREFUQV9BTExPV0VEX0VSUiA9IDYsCisgICAgICAgICAgICBOT19NT0RJRklDQVRJT05fQUxM
T1dFRF9FUlIgPSA3LAorICAgICAgICAgICAgTk9UX0ZPVU5EX0VSUiA9IDgsCisgICAgICAgICAg
ICBOT1RfU1VQUE9SVEVEX0VSUiA9IDksCisgICAgICAgICAgICBJTlVTRV9BVFRSSUJVVEVfRVJS
ID0gMTAsCisKKyAgICAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAg
ICAgICAgICBJTlZBTElEX1NUQVRFX0VSUiA9IDExLAorICAgICAgICAgICAgU1lOVEFYX0VSUiA9
IDEyLAorICAgICAgICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSID0gMTMsCisgICAgICAg
ICAgICBOQU1FU1BBQ0VfRVJSID0gMTQsCisgICAgICAgICAgICBJTlZBTElEX0FDQ0VTU19FUlIg
PSAxNSwKKworICAgICAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKKyAgICAg
ICAgICAgIFZBTElEQVRJT05fRVJSID0gMTYsCisgICAgICAgICAgICBUWVBFX01JU01BVENIX0VS
UiA9IDE3CisgICAgICAgIH07CisKKyAgICAgICAgaW50IGNvZGUoKSBjb25zdCB7IHJldHVybiBt
X2NvZGU7IH0KKyAgICAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0K
KyAgICAgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0KKwor
ICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAg
IGludCBtX2NvZGU7CisgICAgICAgIFN0cmluZyBtX25hbWU7CisgICAgICAgIFN0cmluZyBtX21l
c3NhZ2U7CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRE9N
Q29yZUV4Y2VwdGlvbl9oCkluZGV4OiBXZWJDb3JlL2RvbS9FeGNlcHRpb25CYXNlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vRXhjZXB0aW9uQmFzZS5oCShyZXZpc2lvbiAyOTA1NykKKysr
IFdlYkNvcmUvZG9tL0V4Y2VwdGlvbkJhc2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYs
OCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2Rl
ZmluZSBET01Db2RlRXhjZXB0aW9uX2gKKyNpZm5kZWYgRXhjZXB0aW9uQmFzZV9oCisjZGVmaW5l
IEV4Y2VwdGlvbkJhc2VfaAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCkBAIC0zNSw0NyArMzUsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi0gICAgY2xhc3MgRE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERP
TUNvcmVFeGNlcHRpb24+IHsKKyAgICBjbGFzcyBFeGNlcHRpb25CYXNlIDogcHVibGljIFJlZkNv
dW50ZWQ8RXhjZXB0aW9uQmFzZT4gewogICAgIHB1YmxpYzoKLSAgICAgICAgRE9NQ29yZUV4Y2Vw
dGlvbihFeGNlcHRpb25Db2RlKTsKKyAgICAgICAgRXhjZXB0aW9uQmFzZShjb25zdCBFeGNlcHRp
b25Db2RlRGVzY3JpcHRpb24mKTsKIAotICAgICAgICAvLyBGSVhNRTogdGhpcyBpcyBjb3BpZWQg
ZnJvbSBFeGNlcHRpb25Db2RlLmgsIGl0IG5lZWRzIHRvIGJlIGtlcHQgaW4gc3luYy4KLSAgICAg
ICAgZW51bSB7Ci0gICAgICAgICAgICBJTkRFWF9TSVpFX0VSUiA9IDEsCi0gICAgICAgICAgICBE
T01TVFJJTkdfU0laRV9FUlIgPSAyLAotICAgICAgICAgICAgSElFUkFSQ0hZX1JFUVVFU1RfRVJS
ID0gMywKLSAgICAgICAgICAgIFdST05HX0RPQ1VNRU5UX0VSUiA9IDQsCi0gICAgICAgICAgICBJ
TlZBTElEX0NIQVJBQ1RFUl9FUlIgPSA1LAotICAgICAgICAgICAgTk9fREFUQV9BTExPV0VEX0VS
UiA9IDYsCi0gICAgICAgICAgICBOT19NT0RJRklDQVRJT05fQUxMT1dFRF9FUlIgPSA3LAotICAg
ICAgICAgICAgTk9UX0ZPVU5EX0VSUiA9IDgsCi0gICAgICAgICAgICBOT1RfU1VQUE9SVEVEX0VS
UiA9IDksCi0gICAgICAgICAgICBJTlVTRV9BVFRSSUJVVEVfRVJSID0gMTAsCi0KLSAgICAgICAg
ICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgICAgICBJTlZBTElEX1NU
QVRFX0VSUiA9IDExLAotICAgICAgICAgICAgU1lOVEFYX0VSUiA9IDEyLAotICAgICAgICAgICAg
SU5WQUxJRF9NT0RJRklDQVRJT05fRVJSID0gMTMsCi0gICAgICAgICAgICBOQU1FU1BBQ0VfRVJS
ID0gMTQsCi0gICAgICAgICAgICBJTlZBTElEX0FDQ0VTU19FUlIgPSAxNSwKLQotICAgICAgICAg
ICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKLSAgICAgICAgICAgIFZBTElEQVRJT05f
RVJSID0gMTYsCi0gICAgICAgICAgICBUWVBFX01JU01BVENIX0VSUiA9IDE3Ci0gICAgICAgIH07
Ci0KLSAgICAgICAgaW50IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KKyAgICAgICAg
dW5zaWduZWQgc2hvcnQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQogICAgICAgICBT
dHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQogICAgICAgICBTdHJpbmcgbWVz
c2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZTsgfQogCiAgICAgICAgIFN0cmluZyB0b1N0
cmluZygpIGNvbnN0OwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgaW50IG1fY29kZTsKKyAgICAg
ICAgdW5zaWduZWQgc2hvcnQgbV9jb2RlOwogICAgICAgICBTdHJpbmcgbV9uYW1lOwogICAgICAg
ICBTdHJpbmcgbV9tZXNzYWdlOwogICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAot
I2VuZGlmIC8vIERPTUNvcmVFeGNlcHRpb25faAorI2VuZGlmIC8vIEV4Y2VwdGlvbkJhc2VfaApJ
bmRleDogV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS9kb20v
RXhjZXB0aW9uQ29kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE2ICsyNiwxNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKIAotI2luY2x1ZGUg
IkV2ZW50LmgiCisjaW5jbHVkZSAiRXZlbnRFeGNlcHRpb24uaCIKICNpbmNsdWRlICJSYW5nZUV4
Y2VwdGlvbi5oIgotI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0LmgiCisjaW5jbHVkZSAiWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb24uaCIKIAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRXhj
ZXB0aW9uLmgiCiAjZW5kaWYKIAogI2lmIEVOQUJMRShYUEFUSCkKLSNpbmNsdWRlICJYUGF0aEV2
YWx1YXRvci5oIgorI2luY2x1ZGUgIlhQYXRoRXhjZXB0aW9uLmgiCiAjZW5kaWYKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtOTIsNDggKzkyLDU2IEBAIHZvaWQgZ2V0RXhjZXB0aW9uQ29kZURl
c2NyaXB0aW9uKEV4Y2VwdGkKIHsKICAgICBBU1NFUlQoZWMpOwogCi0gICAgY29uc3QgY2hhciog
dHlwZU5hbWUgPSAiRE9NIjsKKyAgICBjb25zdCBjaGFyKiB0eXBlTmFtZTsKICAgICBpbnQgY29k
ZSA9IGVjOwogICAgIGNvbnN0IGNoYXIqIGNvbnN0KiBuYW1lVGFibGU7CiAgICAgaW50IG5hbWVU
YWJsZVNpemU7CiAgICAgaW50IG5hbWVUYWJsZU9mZnNldDsKLSAgICBpZiAoY29kZSA+PSBSYW5n
ZUV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IFJhbmdlRXhjZXB0aW9uTWF4KSB7CisgICAgRXhj
ZXB0aW9uVHlwZSB0eXBlOworICAgIAorICAgIGlmIChjb2RlID49IFJhbmdlRXhjZXB0aW9uOjpS
YW5nZUV4Y2VwdGlvbk9mZnNldCAmJiBjb2RlIDw9IFJhbmdlRXhjZXB0aW9uOjpSYW5nZUV4Y2Vw
dGlvbk1heCkgeworICAgICAgICB0eXBlID0gUmFuZ2VFeGNlcHRpb25UeXBlOwogICAgICAgICB0
eXBlTmFtZSA9ICJET00gUmFuZ2UiOwotICAgICAgICBjb2RlIC09IFJhbmdlRXhjZXB0aW9uT2Zm
c2V0OworICAgICAgICBjb2RlIC09IFJhbmdlRXhjZXB0aW9uOjpSYW5nZUV4Y2VwdGlvbk9mZnNl
dDsKICAgICAgICAgbmFtZVRhYmxlID0gcmFuZ2VFeGNlcHRpb25OYW1lczsKICAgICAgICAgbmFt
ZVRhYmxlU2l6ZSA9IHNpemVvZihyYW5nZUV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZihyYW5nZUV4
Y2VwdGlvbk5hbWVzWzBdKTsKLSAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gQkFEX0JPVU5EQVJZ
UE9JTlRTX0VSUjsKLSAgICB9IGVsc2UgaWYgKGNvZGUgPj0gRXZlbnRFeGNlcHRpb25PZmZzZXQg
JiYgY29kZSA8PSBFdmVudEV4Y2VwdGlvbk1heCkgeworICAgICAgICBuYW1lVGFibGVPZmZzZXQg
PSBSYW5nZUV4Y2VwdGlvbjo6QkFEX0JPVU5EQVJZUE9JTlRTX0VSUjsKKyAgICB9IGVsc2UgaWYg
KGNvZGUgPj0gRXZlbnRFeGNlcHRpb246OkV2ZW50RXhjZXB0aW9uT2Zmc2V0ICYmIGNvZGUgPD0g
RXZlbnRFeGNlcHRpb246OkV2ZW50RXhjZXB0aW9uTWF4KSB7CisgICAgICAgIHR5cGUgPSBFdmVu
dEV4Y2VwdGlvblR5cGU7CiAgICAgICAgIHR5cGVOYW1lID0gIkRPTSBFdmVudHMiOwotICAgICAg
ICBjb2RlIC09IEV2ZW50RXhjZXB0aW9uT2Zmc2V0OworICAgICAgICBjb2RlIC09IEV2ZW50RXhj
ZXB0aW9uOjpFdmVudEV4Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gZXZlbnRF
eGNlcHRpb25OYW1lczsKICAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihldmVudEV4Y2Vw
dGlvbk5hbWVzKSAvIHNpemVvZihldmVudEV4Y2VwdGlvbk5hbWVzWzBdKTsKLSAgICAgICAgbmFt
ZVRhYmxlT2Zmc2V0ID0gVU5TUEVDSUZJRURfRVZFTlRfVFlQRV9FUlI7Ci0gICAgfSBlbHNlIGlm
IChjb2RlID49IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0ICYmIGNvZGUgPD0gWE1MSHR0
cFJlcXVlc3RFeGNlcHRpb25NYXgpIHsKKyAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gRXZlbnRF
eGNlcHRpb246OlVOU1BFQ0lGSUVEX0VWRU5UX1RZUEVfRVJSOworICAgIH0gZWxzZSBpZiAoY29k
ZSA+PSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6WE1MSHR0cFJlcXVlc3RFeGNlcHRpb25PZmZz
ZXQgJiYgY29kZSA8PSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbjo6WE1MSHR0cFJlcXVlc3RFeGNl
cHRpb25NYXgpIHsKKyAgICAgICAgdHlwZSA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uVHlwZTsK
ICAgICAgICAgdHlwZU5hbWUgPSAiWE1MSHR0cFJlcXVlc3QiOwotICAgICAgICBjb2RlIC09IFhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0OworICAgICAgICBjb2RlIC09IFhNTEh0dHBSZXF1
ZXN0RXhjZXB0aW9uOjpYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNldDsKICAgICAgICAgbmFt
ZVRhYmxlID0geG1sSHR0cFJlcXVlc3RFeGNlcHRpb25OYW1lczsKICAgICAgICAgbmFtZVRhYmxl
U2l6ZSA9IHNpemVvZih4bWxIdHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVzKSAvIHNpemVvZih4bWxI
dHRwUmVxdWVzdEV4Y2VwdGlvbk5hbWVzWzBdKTsKICAgICAgICAgLy8gWE1MSHR0cFJlcXVlc3Qg
ZXhjZXB0aW9uIGNvZGVzIHN0YXJ0IHdpdGggMTAxIGFuZCB3ZSBkb24ndCB3YW50IDEwMCBlbXB0
eSBlbGVtZW50cyBpbiB0aGUgbmFtZSBhcnJheQotICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBO
RVRXT1JLX0VSUjsKKyAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb246Ok5FVFdPUktfRVJSOwogI2lmIEVOQUJMRShYUEFUSCkKLSAgICB9IGVsc2UgaWYgKGNv
ZGUgPj0gWFBhdGhFeGNlcHRpb25PZmZzZXQgJiYgY29kZSA8PSBYUGF0aEV4Y2VwdGlvbk1heCkg
eworICAgIH0gZWxzZSBpZiAoY29kZSA+PSBYUGF0aEV4Y2VwdGlvbjo6WFBhdGhFeGNlcHRpb25P
ZmZzZXQgJiYgY29kZSA8PSBYUGF0aEV4Y2VwdGlvbjo6WFBhdGhFeGNlcHRpb25NYXgpIHsKKyAg
ICAgICAgdHlwZSA9IFhQYXRoRXhjZXB0aW9uVHlwZTsKICAgICAgICAgdHlwZU5hbWUgPSAiRE9N
IFhQYXRoIjsKLSAgICAgICAgY29kZSAtPSBYUGF0aEV4Y2VwdGlvbk9mZnNldDsKKyAgICAgICAg
Y29kZSAtPSBYUGF0aEV4Y2VwdGlvbjo6WFBhdGhFeGNlcHRpb25PZmZzZXQ7CiAgICAgICAgIG5h
bWVUYWJsZSA9IHhwYXRoRXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIG5hbWVUYWJsZVNpemUgPSBz
aXplb2YoeHBhdGhFeGNlcHRpb25OYW1lcykgLyBzaXplb2YoeHBhdGhFeGNlcHRpb25OYW1lc1sw
XSk7CiAgICAgICAgIC8vIFhQYXRoIGV4Y2VwdGlvbiBjb2RlcyBzdGFydCB3aXRoIDUxIGFuZCB3
ZSBkb24ndCB3YW50IDUxIGVtcHR5IGVsZW1lbnRzIGluIHRoZSBuYW1lIGFycmF5Ci0gICAgICAg
IG5hbWVUYWJsZU9mZnNldCA9IElOVkFMSURfRVhQUkVTU0lPTl9FUlI7CisgICAgICAgIG5hbWVU
YWJsZU9mZnNldCA9IFhQYXRoRXhjZXB0aW9uOjpJTlZBTElEX0VYUFJFU1NJT05fRVJSOwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFNWRykKLSAgICB9IGVsc2UgaWYgKGNvZGUgPj0gU1ZHRXhjZXB0aW9u
T2Zmc2V0ICYmIGNvZGUgPD0gU1ZHRXhjZXB0aW9uTWF4KSB7CisgICAgfSBlbHNlIGlmIChjb2Rl
ID49IFNWR0V4Y2VwdGlvbjo6U1ZHRXhjZXB0aW9uT2Zmc2V0ICYmIGNvZGUgPD0gU1ZHRXhjZXB0
aW9uOjpTVkdFeGNlcHRpb25NYXgpIHsKKyAgICAgICAgdHlwZSA9IFNWR0V4Y2VwdGlvblR5cGU7
CiAgICAgICAgIHR5cGVOYW1lID0gIkRPTSBTVkciOwotICAgICAgICBjb2RlIC09IFNWR0V4Y2Vw
dGlvbk9mZnNldDsKKyAgICAgICAgY29kZSAtPSBTVkdFeGNlcHRpb246OlNWR0V4Y2VwdGlvbk9m
ZnNldDsKICAgICAgICAgbmFtZVRhYmxlID0gc3ZnRXhjZXB0aW9uTmFtZXM7CiAgICAgICAgIG5h
bWVUYWJsZVNpemUgPSBzaXplb2Yoc3ZnRXhjZXB0aW9uTmFtZXMpIC8gc2l6ZW9mKHN2Z0V4Y2Vw
dGlvbk5hbWVzWzBdKTsKLSAgICAgICAgbmFtZVRhYmxlT2Zmc2V0ID0gU1ZHX1dST05HX1RZUEVf
RVJSOworICAgICAgICBuYW1lVGFibGVPZmZzZXQgPSBTVkdFeGNlcHRpb246OlNWR19XUk9OR19U
WVBFX0VSUjsKICNlbmRpZgogICAgIH0gZWxzZSB7CisgICAgICAgIHR5cGUgPSBET01FeGNlcHRp
b25UeXBlOwogICAgICAgICB0eXBlTmFtZSA9ICJET00iOwogICAgICAgICBuYW1lVGFibGUgPSBl
eGNlcHRpb25OYW1lczsKICAgICAgICAgbmFtZVRhYmxlU2l6ZSA9IHNpemVvZihleGNlcHRpb25O
YW1lcykgLyBzaXplb2YoZXhjZXB0aW9uTmFtZXNbMF0pOwpAQCAtMTQzLDkgKzE1MSwxMCBAQCB2
b2lkIGdldEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbihFeGNlcHRpCiAgICAgZGVzY3JpcHRpb24u
dHlwZU5hbWUgPSB0eXBlTmFtZTsKICAgICBkZXNjcmlwdGlvbi5uYW1lID0gKGVjID49IG5hbWVU
YWJsZU9mZnNldCAmJiBlYyAtIG5hbWVUYWJsZU9mZnNldCA8IG5hbWVUYWJsZVNpemUpID8gbmFt
ZVRhYmxlW2VjIC0gbmFtZVRhYmxlT2Zmc2V0XSA6IDA7CiAgICAgZGVzY3JpcHRpb24uY29kZSA9
IGNvZGU7CisgICAgZGVzY3JpcHRpb24udHlwZSA9IHR5cGU7CiAKICAgICAvLyBBbGwgZXhjZXB0
aW9ucyB1c2VkIGluIHRoZSBET00gY29kZSBzaG91bGQgaGF2ZSBuYW1lcy4KICAgICBBU1NFUlQo
ZGVzY3JpcHRpb24ubmFtZSk7CiB9CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFdlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9F
eGNlcHRpb25Db2RlLmgJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS9kb20vRXhjZXB0aW9u
Q29kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSwxMyArNTEsMjggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBUWVBFX01JU01BVENIX0VSUiA9IDE3CiAgICAgfTsKIAorICAgIGVudW0g
RXhjZXB0aW9uVHlwZSB7CisgICAgICAgIERPTUV4Y2VwdGlvblR5cGUsCisgICAgICAgIFJhbmdl
RXhjZXB0aW9uVHlwZSwKKyAgICAgICAgRXZlbnRFeGNlcHRpb25UeXBlLAorICAgICAgICBYTUxI
dHRwUmVxdWVzdEV4Y2VwdGlvblR5cGUKKyNpZiBFTkFCTEUoWFBBVEgpCisgICAgICAgICwgWFBh
dGhFeGNlcHRpb25UeXBlCisjZW5kaWYKKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAsIFNWR0V4
Y2VwdGlvblR5cGUKKyNlbmRpZgorICAgIH07ICAgICAgICAKKyAgICAKKwogICAgIHN0cnVjdCBF
eGNlcHRpb25Db2RlRGVzY3JpcHRpb24gewogICAgICAgICBjb25zdCBjaGFyKiB0eXBlTmFtZTsg
Ly8gaGFzIHNwYWNlcyBhbmQgaXMgc3VpdGFibGUgZm9yIHVzZSBpbiBleGNlcHRpb24gZGVzY3Jp
cHRpb24gc3RyaW5nczsgbWF4aW11bSBsZW5ndGggaXMgMTAgY2hhcmFjdGVycwogICAgICAgICBj
b25zdCBjaGFyKiBuYW1lOyAvLyBleGNlcHRpb24gbmFtZSwgYWxzbyBpbnRlbmRlZCBmb3IgdXNl
IGluIGV4Y2VwdGlvbiBkZXNjcmlwdGlvbiBzdHJpbmdzOyAwIGlmIG5hbWUgbm90IGtub3duOyBt
YXhpbXVtIGxlbmd0aCBpcyAyNyBjaGFyYWN0ZXJzCiAgICAgICAgIGludCBjb2RlOyAvLyBudW1l
cmljIHZhbHVlIG9mIHRoZSBleGNlcHRpb24gd2l0aGluIGEgcGFydGljdWxhciB0eXBlCisgICAg
ICAgIEV4Y2VwdGlvblR5cGUgdHlwZTsKICAgICB9OwogICAgIHZvaWQgZ2V0RXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uKEV4Y2VwdGlvbkNvZGUsIEV4Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbiYpOwog
Ci19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZgorI2VuZGlmIC8vIEV4Y2VwdGlv
bkNvZGVfaApJbmRleDogV2ViQ29yZS9kb20vUmFuZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL1JhbmdlLmNwcAkocmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL2RvbS9SYW5nZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNTAsNyArMTA1MCw3IEBAIHZvaWQgUmFuZ2U6Omluc2Vy
dE5vZGUoUGFzc1JlZlB0cjxOb2RlPiAKICAgICAgICAgbmV3Tm9kZS0+bm9kZVR5cGUoKSA9PSBO
b2RlOjpFTlRJVFlfTk9ERSB8fAogICAgICAgICBuZXdOb2RlLT5ub2RlVHlwZSgpID09IE5vZGU6
Ok5PVEFUSU9OX05PREUgfHwKICAgICAgICAgbmV3Tm9kZS0+bm9kZVR5cGUoKSA9PSBOb2RlOjpE
T0NVTUVOVF9OT0RFKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAg
ICAgICBlYyA9IFJhbmdlRXhjZXB0aW9uOjpJTlZBTElEX05PREVfVFlQRV9FUlI7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTExNTgsNyArMTE1OCw3IEBAIHZvaWQgUmFuZ2U6OmNoZWNr
Tm9kZVdPZmZzZXQoTm9kZSogbiwgaW4KICAgICAgICAgY2FzZSBOb2RlOjpFTlRJVFlfTk9ERToK
ICAgICAgICAgY2FzZSBOb2RlOjpOT1RBVElPTl9OT0RFOgogICAgICAgICBjYXNlIE5vZGU6OkRP
Q1VNRU5UX1RZUEVfTk9ERToKLSAgICAgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJS
OworICAgICAgICAgICAgZWMgPSBSYW5nZUV4Y2VwdGlvbjo6SU5WQUxJRF9OT0RFX1RZUEVfRVJS
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTm9kZTo6VEVYVF9OT0RFOgogICAg
ICAgICBjYXNlIE5vZGU6OkNPTU1FTlRfTk9ERToKQEAgLTExODksNyArMTE4OSw3IEBAIHZvaWQg
UmFuZ2U6OmNoZWNrTm9kZUJBKCBOb2RlICpuLCBFeGNlcHQKICAgICAgICAgICByb290LT5ub2Rl
VHlwZSgpID09IE5vZGU6OkRPQ1VNRU5UX05PREUgfHwKICAgICAgICAgICByb290LT5ub2RlVHlw
ZSgpID09IE5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREUgfHwKICAgICAgICAgICByb290LT5p
c1NoYWRvd05vZGUoKSkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX05PREVfVFlQRV9FUlI7Cisg
ICAgICAgIGVjID0gUmFuZ2VFeGNlcHRpb246OklOVkFMSURfTk9ERV9UWVBFX0VSUjsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE5OCw3ICsxMTk4LDcgQEAgdm9pZCBSYW5nZTo6Y2hl
Y2tOb2RlQkEoIE5vZGUgKm4sIEV4Y2VwdAogICAgICAgICBuLT5ub2RlVHlwZSgpID09IE5vZGU6
OkFUVFJJQlVURV9OT0RFIHx8CiAgICAgICAgIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6RU5USVRZ
X05PREUgfHwKICAgICAgICAgbi0+bm9kZVR5cGUoKSA9PSBOb2RlOjpOT1RBVElPTl9OT0RFICkK
LSAgICAgICAgZWMgPSBJTlZBTElEX05PREVfVFlQRV9FUlI7CisgICAgICAgIGVjID0gUmFuZ2VF
eGNlcHRpb246OklOVkFMSURfTk9ERV9UWVBFX0VSUjsKIAogfQogCkBAIC0xMzA5LDcgKzEzMDks
NyBAQCB2b2lkIFJhbmdlOjpzZWxlY3ROb2RlKCBOb2RlICpyZWZOb2RlLCBFCiAgICAgICAgICAg
ICBhbmMtPm5vZGVUeXBlKCkgPT0gTm9kZTo6Tk9UQVRJT05fTk9ERSB8fAogICAgICAgICAgICAg
YW5jLT5ub2RlVHlwZSgpID09IE5vZGU6OkRPQ1VNRU5UX1RZUEVfTk9ERSkgewogCi0gICAgICAg
ICAgICBlYyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAgICAgICAgICAgIGVjID0gUmFuZ2VF
eGNlcHRpb246OklOVkFMSURfTk9ERV9UWVBFX0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KQEAgLTEzMjAsNyArMTMyMCw3IEBAIHZvaWQgUmFuZ2U6OnNlbGVjdE5v
ZGUoIE5vZGUgKnJlZk5vZGUsIEUKICAgICAgICAgcmVmTm9kZS0+bm9kZVR5cGUoKSA9PSBOb2Rl
OjpFTlRJVFlfTk9ERSB8fAogICAgICAgICByZWZOb2RlLT5ub2RlVHlwZSgpID09IE5vZGU6Ok5P
VEFUSU9OX05PREUpIHsKIAotICAgICAgICBlYyA9IElOVkFMSURfTk9ERV9UWVBFX0VSUjsKKyAg
ICAgICAgZWMgPSBSYW5nZUV4Y2VwdGlvbjo6SU5WQUxJRF9OT0RFX1RZUEVfRVJSOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCkBAIC0xMzUxLDcgKzEzNTEsNyBAQCB2b2lkIFJhbmdlOjpzZWxl
Y3ROb2RlQ29udGVudHMoIE5vZGUgKnJlCiAgICAgICAgICAgICBuLT5ub2RlVHlwZSgpID09IE5v
ZGU6Ok5PVEFUSU9OX05PREUgfHwKICAgICAgICAgICAgIG4tPm5vZGVUeXBlKCkgPT0gTm9kZTo6
RE9DVU1FTlRfVFlQRV9OT0RFKSB7CiAKLSAgICAgICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZ
UEVfRVJSOworICAgICAgICAgICAgZWMgPSBSYW5nZUV4Y2VwdGlvbjo6SU5WQUxJRF9OT0RFX1RZ
UEVfRVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMTM4NCw3
ICsxMzg0LDcgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRDb250ZW50cyhQYXNzUmVmUHRyPAogICAg
ICAgICBuZXdQYXJlbnQtPm5vZGVUeXBlKCkgPT0gTm9kZTo6RE9DVU1FTlRfVFlQRV9OT0RFIHx8
CiAgICAgICAgIG5ld1BhcmVudC0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9OT0RFIHx8
CiAgICAgICAgIG5ld1BhcmVudC0+bm9kZVR5cGUoKSA9PSBOb2RlOjpET0NVTUVOVF9GUkFHTUVO
VF9OT0RFKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9OT0RFX1RZUEVfRVJSOworICAgICAgICBl
YyA9IFJhbmdlRXhjZXB0aW9uOjpJTlZBTElEX05PREVfVFlQRV9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTE0MjMsMTMgKzE0MjMsMTMgQEAgdm9pZCBSYW5nZTo6c3Vycm91bmRD
b250ZW50cyhQYXNzUmVmUHRyPAogICAgIC8vIEJBRF9CT1VOREFSWVBPSU5UU19FUlI6IFJhaXNl
ZCBpZiB0aGUgUmFuZ2UgcGFydGlhbGx5IHNlbGVjdHMgYSBub24tdGV4dCBub2RlLgogICAgIGlm
ICghbV9zdGFydENvbnRhaW5lci0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkpIHsKICAgICAgICAgaWYg
KG1fc3RhcnRPZmZzZXQgPiAwICYmIG1fc3RhcnRPZmZzZXQgPCBtX3N0YXJ0Q29udGFpbmVyLT5j
aGlsZE5vZGVDb3VudCgpKSB7Ci0gICAgICAgICAgICBlYyA9IEJBRF9CT1VOREFSWVBPSU5UU19F
UlI7CisgICAgICAgICAgICBlYyA9IFJhbmdlRXhjZXB0aW9uOjpCQURfQk9VTkRBUllQT0lOVFNf
RVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogICAgIGlmICghbV9l
bmRDb250YWluZXItPm9mZnNldEluQ2hhcmFjdGVycygpKSB7CiAgICAgICAgIGlmIChtX2VuZE9m
ZnNldCA+IDAgJiYgbV9lbmRPZmZzZXQgPCBtX2VuZENvbnRhaW5lci0+Y2hpbGROb2RlQ291bnQo
KSkgewotICAgICAgICAgICAgZWMgPSBCQURfQk9VTkRBUllQT0lOVFNfRVJSOworICAgICAgICAg
ICAgZWMgPSBSYW5nZUV4Y2VwdGlvbjo6QkFEX0JPVU5EQVJZUE9JTlRTX0VSUjsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KSW5kZXg6IFdlYkNvcmUvZG9tL1JhbmdlRXhj
ZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vUmFuZ2VFeGNlcHRpb24uaAkocmV2
aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNywyMCArMjcsMjYgQEAKICNpZm5kZWYgUmFuZ2VFeGNlcHRpb25faAogI2RlZmlu
ZSBSYW5nZUV4Y2VwdGlvbl9oCiAKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBpbnQg
UmFuZ2VFeGNlcHRpb25PZmZzZXQgPSAyMDA7Ci1jb25zdCBpbnQgUmFuZ2VFeGNlcHRpb25NYXgg
PSAyOTk7Ci1lbnVtIFJhbmdlRXhjZXB0aW9uQ29kZSB7IEJBRF9CT1VOREFSWVBPSU5UU19FUlIg
PSBSYW5nZUV4Y2VwdGlvbk9mZnNldCArIDEsIElOVkFMSURfTk9ERV9UWVBFX0VSUiB9OwotCi1j
bGFzcyBSYW5nZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFJhbmdlRXhjZXB0aW9uPiB7
Ci1wdWJsaWMgOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBCQURfQk9VTkRBUllQ
T0lOVFNfRVJSID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgSU5WQUxJRF9O
T0RFX1RZUEVfRVJSID0gMjsKLX07CisgICAgY2xhc3MgUmFuZ2VFeGNlcHRpb24gOiBwdWJsaWMg
RXhjZXB0aW9uQmFzZSB7CisgICAgcHVibGljOgorICAgICAgICBSYW5nZUV4Y2VwdGlvbihjb25z
dCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgOiBF
eGNlcHRpb25CYXNlKGRlc2NyaXB0aW9uKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAg
ICBzdGF0aWMgY29uc3QgaW50IFJhbmdlRXhjZXB0aW9uT2Zmc2V0ID0gMjAwOworICAgICAgICBz
dGF0aWMgY29uc3QgaW50IFJhbmdlRXhjZXB0aW9uTWF4ID0gMjk5OworCisgICAgICAgIGVudW0g
UmFuZ2VFeGNlcHRpb25Db2RlIHsKKyAgICAgICAgICAgIEJBRF9CT1VOREFSWVBPSU5UU19FUlIg
PSBSYW5nZUV4Y2VwdGlvbk9mZnNldCArIDEsCisgICAgICAgICAgICBJTlZBTElEX05PREVfVFlQ
RV9FUlIKKyAgICAgICAgfTsKKyAgICB9OwogCi19IC8vIG5hbWVzcGFjZQorfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCi0jZW5kaWYKKyNlbmRpZiAvLyBSYW5nZUV4Y2VwdGlvbl9oCkluZGV4OiBX
ZWJDb3JlL2RvbS9SYW5nZUV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
UmFuZ2VFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAyOTA3MSkKKysrIFdlYkNvcmUvZG9tL1Jhbmdl
RXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTE5LDExICsxOSwyMiBAQAogCiBtb2R1bGUgcmFuZ2VzIHsKIAotICAgIGludGVyZmFj
ZSBbR2VuZXJhdGVDb25zdHJ1Y3Rvcl0gUmFuZ2VFeGNlcHRpb24gewotICAgICAgICAKKyAgICBp
bnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yCisgICAgXSBSYW5nZUV4Y2Vw
dGlvbiB7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29k
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKKworI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgW0RvbnRFbnVtXSBET01TdHJp
bmcgdG9TdHJpbmcoKTsKKyNlbmRpZgorCiAgICAgICAgIC8vIERPTSBMZXZlbCAyCi0gICAgICAg
IAorCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEJBRF9CT1VOREFSWVBPSU5UU19FUlIg
PSAxOwogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBJTlZBTElEX05PREVfVFlQRV9FUlIg
PSAyOwogICAgIH07CisKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyOTA3MSkKKysr
IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNTIsNiArMjUy
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBUZXh0RXZlbnRDb25zdHJ1
Y3RvciBUZXh0RXZlbnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBVSUV2ZW50Q29uc3RydWN0b3IgVUlF
dmVudDsKICAgICAgICAgYXR0cmlidXRlIFdoZWVsRXZlbnRDb25zdHJ1Y3RvciBXaGVlbEV2ZW50
OworICAgICAgICBhdHRyaWJ1dGUgRXZlbnRFeGNlcHRpb25Db25zdHJ1Y3RvciBFdmVudEV4Y2Vw
dGlvbjsKIAogICAgICAgICBhdHRyaWJ1dGUgTm9kZUZpbHRlckNvbnN0cnVjdG9yIE5vZGVGaWx0
ZXI7CiAgICAgICAgIGF0dHJpYnV0ZSBSYW5nZUNvbnN0cnVjdG9yIFJhbmdlOwpAQCAtMjY0LDYg
KzI2NSw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBhdHRyaWJ1dGUgRE9NUGFyc2VyQ29u
c3RydWN0b3IgRE9NUGFyc2VyOwogICAgICAgICBhdHRyaWJ1dGUgWE1MU2VyaWFsaXplckNvbnN0
cnVjdG9yIFhNTFNlcmlhbGl6ZXI7CiAKKyAgICAgICAgYXR0cmlidXRlIFhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3IgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb247CisKICNpZiBkZWZp
bmVkKEVOQUJMRV9WSURFTykKICAgICAgICAgYXR0cmlidXRlIEhUTUxBdWRpb0VsZW1lbnRDb25z
dHJ1Y3RvciBIVE1MQXVkaW9FbGVtZW50OwogICAgICAgICBhdHRyaWJ1dGUgSFRNTE1lZGlhRWxl
bWVudENvbnN0cnVjdG9yIEhUTUxNZWRpYUVsZW1lbnQ7CkBAIC0yNzQsNiArMjc3LDcgQEAgbW9k
dWxlIHdpbmRvdyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfWFBBVEgpCiAgICAgICAgIGF0dHJpYnV0
ZSBYUGF0aEV2YWx1YXRvckNvbnN0cnVjdG9yIFhQYXRoRXZhbHVhdG9yOwogICAgICAgICBhdHRy
aWJ1dGUgWFBhdGhSZXN1bHRDb25zdHJ1Y3RvciBYUGF0aFJlc3VsdDsKKyAgICAgICAgYXR0cmli
dXRlIFhQYXRoRXhjZXB0aW9uQ29uc3RydWN0b3IgWFBhdGhFeGNlcHRpb247CiAjZW5kaWYKIAog
I2lmIGRlZmluZWQoRU5BQkxFX1NWRykKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0NvbG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdDb2xvci5jcHAJKHJldmlzaW9uIDI5MDcxKQor
KysgV2ViQ29yZS9zdmcvU1ZHQ29sb3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Niw3ICs3Niw3
IEBAIHZvaWQgU1ZHQ29sb3I6OnNldFJHQkNvbG9yKGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29s
b3IuaXNWYWxpZCgpKQogICAgICAgICBtX2NvbG9yID0gY29sb3I7CiAgICAgZWxzZQotICAgICAg
ICBlYyA9IFNWR19JTlZBTElEX1ZBTFVFX0VSUjsKKyAgICAgICAgZWMgPSBTVkdFeGNlcHRpb246
OlNWR19JTlZBTElEX1ZBTFVFX0VSUjsKIH0KIAogQ29sb3IgU1ZHQ29sb3I6OmNvbG9yRnJvbVJH
QkNvbG9yU3RyaW5nKGNvbnN0IFN0cmluZyYgY29sb3JTdHJpbmcpCkluZGV4OiBXZWJDb3JlL3N2
Zy9TVkdFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24u
aAkocmV2aXNpb24gMjkwNzEpCisrKyBXZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsMjkgKzI0LDI5IEBACiAKICNpZiBFTkFCTEUoU1ZHKQogCi0jaW5jbHVk
ZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotICAgIGNvbnN0IGludCBTVkdFeGNlcHRpb25PZmZzZXQgPSAzMDA7
Ci0gICAgY29uc3QgaW50IFNWR0V4Y2VwdGlvbk1heCA9IDM5OTsKLQotICAgIGVudW0gU1ZHRXhj
ZXB0aW9uQ29kZSB7Ci0gICAgICAgIFNWR19XUk9OR19UWVBFX0VSUiAgICAgICAgICA9IFNWR0V4
Y2VwdGlvbk9mZnNldCwKLSAgICAgICAgU1ZHX0lOVkFMSURfVkFMVUVfRVJSICAgICAgID0gU1ZH
RXhjZXB0aW9uT2Zmc2V0ICsgMSwKLSAgICAgICAgU1ZHX01BVFJJWF9OT1RfSU5WRVJUQUJMRSAg
ID0gU1ZHRXhjZXB0aW9uT2Zmc2V0ICsgMgotICAgIH07Ci0KLSAgICBjbGFzcyBTVkdFeGNlcHRp
b24gOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdFeGNlcHRpb24+IHsKKyAgICBjbGFzcyBTVkdFeGNl
cHRpb24gOiBwdWJsaWMgRXhjZXB0aW9uQmFzZSB7CiAgICAgcHVibGljOgotICAgICAgICBlbnVt
IHsKLSAgICAgICAgICAgIFNWR19XUk9OR19UWVBFX0VSUiAgICAgICAgICA9IDAsCi0gICAgICAg
ICAgICBTVkdfSU5WQUxJRF9WQUxVRV9FUlIgICAgICAgPSAxLAotICAgICAgICAgICAgU1ZHX01B
VFJJWF9OT1RfSU5WRVJUQUJMRSAgID0gMgorICAgICAgICBTVkdFeGNlcHRpb24oY29uc3QgRXhj
ZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKKyAgICAgICAgICAgIDogRXhjZXB0
aW9uQmFzZShkZXNjcmlwdGlvbikKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAgc3Rh
dGljIGNvbnN0IGludCBTVkdFeGNlcHRpb25PZmZzZXQgPSAzMDA7CisgICAgICAgIHN0YXRpYyBj
b25zdCBpbnQgU1ZHRXhjZXB0aW9uTWF4ID0gMzk5OworCisgICAgICAgIGVudW0gU1ZHRXhjZXB0
aW9uQ29kZSB7CisgICAgICAgICAgICBTVkdfV1JPTkdfVFlQRV9FUlIgICAgICAgICAgPSBTVkdF
eGNlcHRpb25PZmZzZXQsCisgICAgICAgICAgICBTVkdfSU5WQUxJRF9WQUxVRV9FUlIgICAgICAg
PSBTVkdFeGNlcHRpb25PZmZzZXQgKyAxLAorICAgICAgICAgICAgU1ZHX01BVFJJWF9OT1RfSU5W
RVJUQUJMRSAgID0gU1ZHRXhjZXB0aW9uT2Zmc2V0ICsgMgogICAgICAgICB9OwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVkcpCisKICNlbmRp
ZiAvLyBTVkdFeGNlcHRpb25faApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRXhjZXB0aW9uLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAyOTA3
MSkKKysrIFdlYkNvcmUvc3ZnL1NWR0V4Y2VwdGlvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xOSw3ICsyMCwyMCBAQAogCiBtb2R1bGUgc3ZnIHsK
IAotICAgIGludGVyZmFjZSBbQ29uZGl0aW9uYWw9U1ZHLCBHZW5lcmF0ZUNvbnN0cnVjdG9yXSBT
VkdFeGNlcHRpb24geworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVNWRywK
KyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvcgorICAgIF0gU1ZHRXhjZXB0aW9uIHsKKworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICBjb2RlOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOworCisjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKQorICAgICAgICAvLyBPdmVycmlkZSBpbiBhIE1vemlsbGEgY29tcGF0
aWJsZSBmb3JtYXQKKyAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJpbmcoKTsKKyNl
bmRpZgorCiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19XUk9OR19UWVBFX0VSUiA9
IDA7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19JTlZBTElEX1ZBTFVFX0VSUiA9
IDE7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNWR19NQVRSSVhfTk9UX0lOVkVSVEFC
TEUgPSAyOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCShyZXZpc2lvbiAyOTA3MSkKKysrIFdlYkNv
cmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNCw3ICsxMzQsNyBA
QCBBZmZpbmVUcmFuc2Zvcm0gU1ZHTG9jYXRhYmxlOjpnZXRUcmFuc2ZvCiAgICAgaWYgKHRhcmdl
dCAmJiB0YXJnZXQtPmlzU3R5bGVkTG9jYXRhYmxlKCkpIHsKICAgICAgICAgQWZmaW5lVHJhbnNm
b3JtIHRhcmdldENUTSA9IHN0YXRpY19jYXN0PFNWR1N0eWxlZExvY2F0YWJsZUVsZW1lbnQqPih0
YXJnZXQpLT5nZXRDVE0oKTsKICAgICAgICAgaWYgKCF0YXJnZXRDVE0uaXNJbnZlcnRpYmxlKCkp
IHsKLSAgICAgICAgICAgIGVjID0gU1ZHX01BVFJJWF9OT1RfSU5WRVJUQUJMRTsKKyAgICAgICAg
ICAgIGVjID0gU1ZHRXhjZXB0aW9uOjpTVkdfTUFUUklYX05PVF9JTlZFUlRBQkxFOwogICAgICAg
ICAgICAgcmV0dXJuIGN0bTsKICAgICAgICAgfQogICAgICAgICBjdG0gKj0gdGFyZ2V0Q1RNLmlu
dmVyc2UoKTsKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlzaW9uIDI5MDcxKQorKysg
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsy
NSw4IEBACiAjaW5jbHVkZSAiQ1N0cmluZy5oIgogI2luY2x1ZGUgIkNhY2hlLmgiCiAjaW5jbHVk
ZSAiRE9NSW1wbGVtZW50YXRpb24uaCIKLSNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKKyNpbmNsdWRlICJFdmVudEV4Y2VwdGlvbi5oIgogI2luY2x1
ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uQ29kZS5oIgpAQCAtNDMsNiArNDMsOCBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJUZXh0RW5jb2Rpbmcu
aCIKKyNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCisjaW5jbHVkZSAiWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb24uaCIKICNpbmNsdWRlICJranNfYmluZGluZy5oIgogI2luY2x1ZGUgPGtq
cy9wcm90ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtMjQyLDcgKzI0NCw3IEBA
IGJvb2wgWE1MSHR0cFJlcXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1IKIHsKICAgICAvLyBGSVhN
RTogY2hlY2sgZm9yIG90aGVyIGVycm9yIGNvbmRpdGlvbnMgZW51bWVyYXRlZCBpbiB0aGUgc3Bl
Yy4KICAgICBpZiAoZXZ0LT50eXBlKCkuaXNFbXB0eSgpKSB7Ci0gICAgICAgIGVjID0gVU5TUEVD
SUZJRURfRVZFTlRfVFlQRV9FUlI7CisgICAgICAgIGVjID0gRXZlbnRFeGNlcHRpb246OlVOU1BF
Q0lGSUVEX0VWRU5UX1RZUEVfRVJSOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAg
LTM0Niw3ICszNDgsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNvbnN0IFN0cmluZyYg
CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gVW5pbml0aWFsaXplZCk7CiAKICAgICBpZiAoIXVybE1h
dGNoZXNEb2N1bWVudERvbWFpbih1cmwpKSB7Ci0gICAgICAgIGVjID0gUEVSTUlTU0lPTl9ERU5J
RUQ7CisgICAgICAgIGVjID0gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb246OlBFUk1JU1NJT05fREVO
SUVEOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNTksNyArMzYxLDcgQEAgdm9pZCBY
TUxIdHRwUmVxdWVzdDo6b3Blbihjb25zdCBTdHJpbmcmIAogICAgIFN0cmluZyBtZXRob2RVcHBl
cihtZXRob2QudXBwZXIoKSk7CiAgICAgCiAgICAgaWYgKG1ldGhvZFVwcGVyID09ICJUUkFDRSIg
fHwgbWV0aG9kVXBwZXIgPT0gIlRSQUNLIiB8fCBtZXRob2RVcHBlciA9PSAiQ09OTkVDVCIpIHsK
LSAgICAgICAgZWMgPSBQRVJNSVNTSU9OX0RFTklFRDsKKyAgICAgICAgZWMgPSBYTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbjo6UEVSTUlTU0lPTl9ERU5JRUQ7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTQ1OCw3ICs0NjAsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKGNvbnN0IFN0
cmluZyYgCiAgICAgICAgIGlmIChlcnJvci5pc051bGwoKSB8fCByZXF1ZXN0LnVybCgpLmlzTG9j
YWxGaWxlKCkgfHwgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSA+IDApCiAgICAgICAgICAgICBw
cm9jZXNzU3luY0xvYWRSZXN1bHRzKGRhdGEsIHJlc3BvbnNlKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgZWMgPSBORVRXT1JLX0VSUjsKKyAgICAgICAgICAgIGVjID0gWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb246Ok5FVFdPUktfRVJSOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4
OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1s
L1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS94bWwvWE1MSHR0
cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTMgKzQ0LDYgQEAgY2xhc3MgU3RyaW5n
OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCi1jb25zdCBpbnQgWE1MSHR0cFJlcXVl
c3RFeGNlcHRpb25PZmZzZXQgPSA1MDA7Ci1jb25zdCBpbnQgWE1MSHR0cFJlcXVlc3RFeGNlcHRp
b25NYXggPSA2OTk7Ci1lbnVtIFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uQ29kZSB7Ci0gICAgUEVS
TUlTU0lPTl9ERU5JRUQgPSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbk9mZnNldCwgLy8gVXNlIFNF
Q1VSSVRZX0VSUiB3aGVuIHRoYXQncyBpbiBET00gQ29yZSwgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODIKLSAgICBORVRXT1JLX0VSUiA9IFhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uT2Zmc2V0ICsgMTAxCi19OwotCiAvLyB0aGVzZSBleGFjdCBudW1lcmljIHZhbHVl
cyBhcmUgaW1wb3J0YW50IGJlY2F1c2UgSlMgZXhwZWN0cyB0aGVtCiBlbnVtIFhNTEh0dHBSZXF1
ZXN0U3RhdGUgewogICAgIFVuaW5pdGlhbGl6ZWQgPSAwLCAgLy8gVGhlIGluaXRpYWwgdmFsdWUu
CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmgJKHJldmlzaW9uIDI5MDU4
KQkoZnJvbSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmg6MjkwNTgpCisrKyBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlvbl9oCisjZGVmaW5lIERPTUNvZGVFeGNlcHRp
b25faAorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisgICAgY2xhc3MgRE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNv
cmVFeGNlcHRpb24+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTUNvcmVFeGNlcHRpb24oRXhj
ZXB0aW9uQ29kZSk7CisKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY29waWVkIGZyb20gRXhj
ZXB0aW9uQ29kZS5oLCBpdCBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMuCisgICAgICAgIGVudW0g
eworICAgICAgICAgICAgSU5ERVhfU0laRV9FUlIgPSAxLAorICAgICAgICAgICAgRE9NU1RSSU5H
X1NJWkVfRVJSID0gMiwKKyAgICAgICAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiA9IDMsCisg
ICAgICAgICAgICBXUk9OR19ET0NVTUVOVF9FUlIgPSA0LAorICAgICAgICAgICAgSU5WQUxJRF9D
SEFSQUNURVJfRVJSID0gNSwKKyAgICAgICAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIgPSA2LAor
ICAgICAgICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0gNywKKyAgICAgICAgICAg
IE5PVF9GT1VORF9FUlIgPSA4LAorICAgICAgICAgICAgTk9UX1NVUFBPUlRFRF9FUlIgPSA5LAor
ICAgICAgICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiA9IDEwLAorCisgICAgICAgICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICAgICAgSU5WQUxJRF9TVEFURV9FUlIg
PSAxMSwKKyAgICAgICAgICAgIFNZTlRBWF9FUlIgPSAxMiwKKyAgICAgICAgICAgIElOVkFMSURf
TU9ESUZJQ0FUSU9OX0VSUiA9IDEzLAorICAgICAgICAgICAgTkFNRVNQQUNFX0VSUiA9IDE0LAor
ICAgICAgICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSID0gMTUsCisKKyAgICAgICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgICAgICBWQUxJREFUSU9OX0VSUiA9IDE2
LAorICAgICAgICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgPSAxNworICAgICAgICB9OworCisgICAg
ICAgIGludCBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgICAgIFN0cmluZyBu
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAgIFN0cmluZyBtZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBpbnQgbV9jb2RlOworICAgICAgICBTdHJp
bmcgbV9uYW1lOworICAgICAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIH07CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERPTUNvcmVFeGNlcHRpb25faApJbmRleDogV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oCShyZXZpc2lvbiAyOTA1NykKKysrIFdlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDU2
ICsyNiwyOSBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIERPTUNvcmVFeGNlcHRpb25f
aAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9uX2gKKyNpZm5kZWYgWE1MSHR0cFJlcXVlc3RFeGNl
cHRpb25faAorI2RlZmluZSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbl9oCiAKLSNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi0gICAgY2xhc3MgRE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPERPTUNvcmVFeGNlcHRpb24+IHsKKyAgICBjbGFzcyBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlv
biA6IHB1YmxpYyBFeGNlcHRpb25CYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIERPTUNvcmVF
eGNlcHRpb24oRXhjZXB0aW9uQ29kZSk7Ci0KLSAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY29w
aWVkIGZyb20gRXhjZXB0aW9uQ29kZS5oLCBpdCBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMuCi0g
ICAgICAgIGVudW0gewotICAgICAgICAgICAgSU5ERVhfU0laRV9FUlIgPSAxLAotICAgICAgICAg
ICAgRE9NU1RSSU5HX1NJWkVfRVJSID0gMiwKLSAgICAgICAgICAgIEhJRVJBUkNIWV9SRVFVRVNU
X0VSUiA9IDMsCi0gICAgICAgICAgICBXUk9OR19ET0NVTUVOVF9FUlIgPSA0LAotICAgICAgICAg
ICAgSU5WQUxJRF9DSEFSQUNURVJfRVJSID0gNSwKLSAgICAgICAgICAgIE5PX0RBVEFfQUxMT1dF
RF9FUlIgPSA2LAotICAgICAgICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0gNywK
LSAgICAgICAgICAgIE5PVF9GT1VORF9FUlIgPSA4LAotICAgICAgICAgICAgTk9UX1NVUFBPUlRF
RF9FUlIgPSA5LAotICAgICAgICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiA9IDEwLAotCi0gICAg
ICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICAgICAgSU5WQUxJ
RF9TVEFURV9FUlIgPSAxMSwKLSAgICAgICAgICAgIFNZTlRBWF9FUlIgPSAxMiwKLSAgICAgICAg
ICAgIElOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiA9IDEzLAotICAgICAgICAgICAgTkFNRVNQQUNF
X0VSUiA9IDE0LAotICAgICAgICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSID0gMTUsCi0KLSAgICAg
ICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgICAgICAgICBWQUxJREFU
SU9OX0VSUiA9IDE2LAotICAgICAgICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgPSAxNworICAgICAg
ICBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbihjb25zdCBFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24m
IGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgOiBFeGNlcHRpb25CYXNlKGRlc2NyaXB0aW9uKQor
ICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29uc3QgaW50IFhNTEh0dHBS
ZXF1ZXN0RXhjZXB0aW9uT2Zmc2V0ID0gNTAwOworICAgICAgICBzdGF0aWMgY29uc3QgaW50IFhN
TEh0dHBSZXF1ZXN0RXhjZXB0aW9uTWF4ID0gNjk5OworCisgICAgICAgIGVudW0gWE1MSHR0cFJl
cXVlc3RFeGNlcHRpb25Db2RlIHsKKyAgICAgICAgICAgIFBFUk1JU1NJT05fREVOSUVEID0gWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb25PZmZzZXQsIC8vIFVzZSBTRUNVUklUWV9FUlIgd2hlbiB0aGF0
J3MgaW4gRE9NIENvcmUsIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
MTgyCisgICAgICAgICAgICBORVRXT1JLX0VSUiA9IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uT2Zm
c2V0ICsgMTAxCiAgICAgICAgIH07Ci0KLSAgICAgICAgaW50IGNvZGUoKSBjb25zdCB7IHJldHVy
biBtX2NvZGU7IH0KLSAgICAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7
IH0KLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX21lc3NhZ2U7IH0K
LQotICAgICAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKLQotICAgIHByaXZhdGU6Ci0gICAg
ICAgIGludCBtX2NvZGU7Ci0gICAgICAgIFN0cmluZyBtX25hbWU7Ci0gICAgICAgIFN0cmluZyBt
X21lc3NhZ2U7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8g
RE9NQ29yZUV4Y2VwdGlvbl9oCisjZW5kaWYgLy8gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25faApJ
bmRleDogV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkocmV2aXNpb24gMjkw
NTgpCShmcm9tIFdlYkNvcmUvZG9tL0RPTUNvcmVFeGNlcHRpb24uaWRsOjI5MDU4KQorKysgV2Vi
Q29yZS94bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUg
b2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAg
ICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK21vZHVsZSBjb3JlIHsKKworICAgIGludGVyZmFjZSBbCisgICAgICAgIEdl
bmVyYXRlQ29uc3RydWN0b3IKKyAgICBdIERPTUNvcmVFeGNlcHRpb24geworCisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGNvZGU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgICAgICAgIG1lc3NhZ2U7CisKKyNpZiBkZWZpbmVkKExBTkdVQUdFX0pB
VkFTQ1JJUFQpCisgICAgICAgIC8vIE92ZXJyaWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZv
cm1hdAorICAgICAgICBbRG9udEVudW1dIERPTVN0cmluZyB0b1N0cmluZygpOworI2VuZGlmCisK
KyAgICAgICAgLy8gRXhjZXB0aW9uQ29kZQorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIElOREVYX1NJWkVfRVJSICAgICAgICAgICAgICAgICA9IDE7CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgRE9NU1RSSU5HX1NJWkVfRVJSICAgICAgICAgICAgID0gMjsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBISUVSQVJDSFlfUkVRVUVTVF9FUlIgICAg
ICAgICAgPSAzOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFdST05HX0RPQ1VN
RU5UX0VSUiAgICAgICAgICAgICA9IDQ7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAg
ICAgSU5WQUxJRF9DSEFSQUNURVJfRVJSICAgICAgICAgID0gNTsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgICAgICBOT19EQVRBX0FMTE9XRURfRVJSICAgICAgICAgICAgPSA2OworICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PX01PRElGSUNBVElPTl9BTExPV0VEX0VS
UiAgICA9IDc7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9UX0ZPVU5EX0VS
UiAgICAgICAgICAgICAgICAgID0gODsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAg
ICBOT1RfU1VQUE9SVEVEX0VSUiAgICAgICAgICAgICAgPSA5OworICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCAgICAgIElOVVNFX0FUVFJJQlVURV9FUlIgICAgICAgICAgICA9IDEwOworICAg
ICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICBjb25zdCB1bnNpZ25l
ZCBzaG9ydCAgICAgIElOVkFMSURfU1RBVEVfRVJSICAgICAgICAgICAgICA9IDExOworICAgICAg
ICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCAgICAgIFNZTlRBWF9FUlIgICAgICAgICAgICAgICAgICAgICA9IDEyOworICAgICAgICAv
LyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9y
dCAgICAgIElOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiAgICAgICA9IDEzOworICAgICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIE5BTUVTUEFDRV9FUlIgICAgICAgICAgICAgICAgICA9IDE0OworICAgICAgICAvLyBJbnRy
b2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAg
IElOVkFMSURfQUNDRVNTX0VSUiAgICAgICAgICAgICA9IDE1OworICAgICAgICAvLyBJbnRyb2R1
Y2VkIGluIERPTSBMZXZlbCAzOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFZB
TElEQVRJT05fRVJSICAgICAgICAgICAgICAgICA9IDE2OworICAgICAgICAvLyBJbnRyb2R1Y2Vk
IGluIERPTSBMZXZlbCAzOgorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIFRZUEVf
TUlTTUFUQ0hfRVJSICAgICAgICAgICAgICA9IDE3OworICAgIH07Cit9CkluZGV4OiBXZWJDb3Jl
L3htbC9YTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3RFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAyOTA1NykKKysrIFdlYkNv
cmUveG1sL1hNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjYs
MTEgKzI2LDExIEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLW1vZHVsZSBjb3JlIHsKK21vZHVsZSB4
bWwgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvcgotICAg
IF0gRE9NQ29yZUV4Y2VwdGlvbiB7CisgICAgXSBYTUxIdHRwUmVxdWVzdEV4Y2VwdGlvbiB7CiAK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29kZTsKICAgICAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKQEAgLTQxLDMwICs0
MSw4IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0RvbnRFbnVtXSBET01TdHJpbmcgdG9TdHJp
bmcoKTsKICNlbmRpZgogCi0gICAgICAgIC8vIEV4Y2VwdGlvbkNvZGUKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBJTkRFWF9TSVpFX0VSUiAgICAgICAgICAgICAgICAgPSAxOwot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIERPTVNUUklOR19TSVpFX0VSUiAgICAg
ICAgICAgICA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSElFUkFSQ0hZ
X1JFUVVFU1RfRVJSICAgICAgICAgID0gMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBXUk9OR19ET0NVTUVOVF9FUlIgICAgICAgICAgICAgPSA0OwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiAgICAgICAgICA9IDU7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9fREFUQV9BTExPV0VEX0VSUiAgICAg
ICAgICAgID0gNjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBOT19NT0RJRklD
QVRJT05fQUxMT1dFRF9FUlIgICAgPSA3OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIE5PVF9GT1VORF9FUlIgICAgICAgICAgICAgICAgICA9IDg7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgTk9UX1NVUFBPUlRFRF9FUlIgICAgICAgICAgICAgID0gOTsKLSAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlVTRV9BVFRSSUJVVEVfRVJSICAgICAg
ICAgICAgPSAxMDsKLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX1NUQVRFX0VSUiAgICAgICAgICAg
ICAgPSAxMTsKLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBTWU5UQVhfRVJSICAgICAgICAgICAgICAgICAgICAg
PSAxMjsKLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX01PRElGSUNBVElPTl9FUlIgICAgICAgPSAx
MzsKLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBOQU1FU1BBQ0VfRVJSICAgICAgICAgICAgICAgICAgPSAxNDsK
LSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMjoKLSAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgICAgICBJTlZBTElEX0FDQ0VTU19FUlIgICAgICAgICAgICAgPSAxNTsKLSAg
ICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKLSAgICAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgICAgICBWQUxJREFUSU9OX0VSUiAgICAgICAgICAgICAgICAgPSAxNjsKLSAgICAg
ICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoKLSAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgICAgICBUWVBFX01JU01BVENIX0VSUiAgICAgICAgICAgICAgPSAxNzsKKyAgICAgICAg
Ly8gWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25Db2RlCisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IE5FVFdPUktfRVJSID0gMTsKICAgICB9OworCiB9CkluZGV4OiBXZWJDb3JlL3htbC9YUGF0
aEV2YWx1YXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXZhbHVhdG9yLmgJ
KHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS94bWwvWFBhdGhFdmFsdWF0b3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IFhQYXRoTlNSZXNvbHZlcjsKICAgICBjbGFzcyBYUGF0aFJlc3VsdDsKIAotICAgIC8vIEZJWE1F
OiBTaG91bGQgdGhlc2UgZXhjZXB0aW9uIGNvZGVzIG1vdmUgdG8gYW5vdGhlciBoZWFkZXI/Ci0g
ICAgY29uc3QgaW50IFhQYXRoRXhjZXB0aW9uT2Zmc2V0ID0gNDAwOwotICAgIGNvbnN0IGludCBY
UGF0aEV4Y2VwdGlvbk1heCA9IDQ5OTsKLSAgICBlbnVtIFhQYXRoRXhjZXB0aW9uQ29kZSB7IElO
VkFMSURfRVhQUkVTU0lPTl9FUlIgPSBYUGF0aEV4Y2VwdGlvbk9mZnNldCArIDUxLCBUWVBFX0VS
UiB9OwotCiAgICAgY2xhc3MgWFBhdGhFdmFsdWF0b3IgOiBwdWJsaWMgUmVmQ291bnRlZDxYUGF0
aEV2YWx1YXRvcj4gewogICAgIHB1YmxpYzoKICAgICAgICAgUGFzc1JlZlB0cjxYUGF0aEV4cHJl
c3Npb24+IGNyZWF0ZUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBYUGF0aE5T
UmVzb2x2ZXIqLCBFeGNlcHRpb25Db2RlJik7CkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aEV4Y2Vw
dGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmgJKHJldmlz
aW9uIDI5MDU4KQkoZnJvbSBXZWJDb3JlL2RvbS9ET01Db3JlRXhjZXB0aW9uLmg6MjkwNTgpCisr
KyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
ODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRE9NQ29yZUV4Y2VwdGlvbl9oCisjZGVmaW5lIERPTUNvZGVFeGNlcHRp
b25faAorCisjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3Ry
aW5nLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisgICAgY2xhc3MgRE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNv
cmVFeGNlcHRpb24+IHsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTUNvcmVFeGNlcHRpb24oRXhj
ZXB0aW9uQ29kZSk7CisKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgaXMgY29waWVkIGZyb20gRXhj
ZXB0aW9uQ29kZS5oLCBpdCBuZWVkcyB0byBiZSBrZXB0IGluIHN5bmMuCisgICAgICAgIGVudW0g
eworICAgICAgICAgICAgSU5ERVhfU0laRV9FUlIgPSAxLAorICAgICAgICAgICAgRE9NU1RSSU5H
X1NJWkVfRVJSID0gMiwKKyAgICAgICAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiA9IDMsCisg
ICAgICAgICAgICBXUk9OR19ET0NVTUVOVF9FUlIgPSA0LAorICAgICAgICAgICAgSU5WQUxJRF9D
SEFSQUNURVJfRVJSID0gNSwKKyAgICAgICAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIgPSA2LAor
ICAgICAgICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0gNywKKyAgICAgICAgICAg
IE5PVF9GT1VORF9FUlIgPSA4LAorICAgICAgICAgICAgTk9UX1NVUFBPUlRFRF9FUlIgPSA5LAor
ICAgICAgICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiA9IDEwLAorCisgICAgICAgICAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgICAgICAgICAgSU5WQUxJRF9TVEFURV9FUlIg
PSAxMSwKKyAgICAgICAgICAgIFNZTlRBWF9FUlIgPSAxMiwKKyAgICAgICAgICAgIElOVkFMSURf
TU9ESUZJQ0FUSU9OX0VSUiA9IDEzLAorICAgICAgICAgICAgTkFNRVNQQUNFX0VSUiA9IDE0LAor
ICAgICAgICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSID0gMTUsCisKKyAgICAgICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgICAgICBWQUxJREFUSU9OX0VSUiA9IDE2
LAorICAgICAgICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgPSAxNworICAgICAgICB9OworCisgICAg
ICAgIGludCBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgICAgIFN0cmluZyBu
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgICAgIFN0cmluZyBtZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CisKKyAgICAgICAgU3RyaW5nIHRvU3RyaW5nKCkg
Y29uc3Q7CisKKyAgICBwcml2YXRlOgorICAgICAgICBpbnQgbV9jb2RlOworICAgICAgICBTdHJp
bmcgbV9uYW1lOworICAgICAgICBTdHJpbmcgbV9tZXNzYWdlOworICAgIH07CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERPTUNvcmVFeGNlcHRpb25faApJbmRleDogV2Vi
Q29yZS94bWwvWFBhdGhFeGNlcHRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0
aEV4Y2VwdGlvbi5oCShyZXZpc2lvbiAyOTA1NykKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0
aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDU2ICsyNiwzMyBAQAogICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0jaWZuZGVmIERPTUNvcmVFeGNlcHRpb25faAotI2RlZmluZSBET01Db2RlRXhjZXB0aW9u
X2gKKyNpZm5kZWYgWFBhdGhFeGNlcHRpb25faAorI2RlZmluZSBYUGF0aEV4Y2VwdGlvbl9oCiAK
LSNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIK
LSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lmIEVOQUJMRShYUEFUSCkKKworI2luY2x1
ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
RE9NQ29yZUV4Y2VwdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUNvcmVFeGNlcHRpb24+IHsK
KyAgICBjbGFzcyBYUGF0aEV4Y2VwdGlvbiA6IHB1YmxpYyBFeGNlcHRpb25CYXNlIHsKICAgICBw
dWJsaWM6Ci0gICAgICAgIERPTUNvcmVFeGNlcHRpb24oRXhjZXB0aW9uQ29kZSk7Ci0KLSAgICAg
ICAgLy8gRklYTUU6IHRoaXMgaXMgY29waWVkIGZyb20gRXhjZXB0aW9uQ29kZS5oLCBpdCBuZWVk
cyB0byBiZSBrZXB0IGluIHN5bmMuCi0gICAgICAgIGVudW0gewotICAgICAgICAgICAgSU5ERVhf
U0laRV9FUlIgPSAxLAotICAgICAgICAgICAgRE9NU1RSSU5HX1NJWkVfRVJSID0gMiwKLSAgICAg
ICAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiA9IDMsCi0gICAgICAgICAgICBXUk9OR19ET0NV
TUVOVF9FUlIgPSA0LAotICAgICAgICAgICAgSU5WQUxJRF9DSEFSQUNURVJfRVJSID0gNSwKLSAg
ICAgICAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIgPSA2LAotICAgICAgICAgICAgTk9fTU9ESUZJ
Q0FUSU9OX0FMTE9XRURfRVJSID0gNywKLSAgICAgICAgICAgIE5PVF9GT1VORF9FUlIgPSA4LAot
ICAgICAgICAgICAgTk9UX1NVUFBPUlRFRF9FUlIgPSA5LAotICAgICAgICAgICAgSU5VU0VfQVRU
UklCVVRFX0VSUiA9IDEwLAotCi0gICAgICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZl
bCAyOgotICAgICAgICAgICAgSU5WQUxJRF9TVEFURV9FUlIgPSAxMSwKLSAgICAgICAgICAgIFNZ
TlRBWF9FUlIgPSAxMiwKLSAgICAgICAgICAgIElOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiA9IDEz
LAotICAgICAgICAgICAgTkFNRVNQQUNFX0VSUiA9IDE0LAotICAgICAgICAgICAgSU5WQUxJRF9B
Q0NFU1NfRVJSID0gMTUsCi0KLSAgICAgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVs
IDM6Ci0gICAgICAgICAgICBWQUxJREFUSU9OX0VSUiA9IDE2LAotICAgICAgICAgICAgVFlQRV9N
SVNNQVRDSF9FUlIgPSAxNworICAgICAgICBYUGF0aEV4Y2VwdGlvbihjb25zdCBFeGNlcHRpb25D
b2RlRGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQorICAgICAgICAgICAgOiBFeGNlcHRpb25CYXNl
KGRlc2NyaXB0aW9uKQorICAgICAgICB7CisgICAgICAgIH0KKworICAgICAgICBzdGF0aWMgY29u
c3QgaW50IFhQYXRoRXhjZXB0aW9uT2Zmc2V0ID0gNDAwOworICAgICAgICBzdGF0aWMgY29uc3Qg
aW50IFhQYXRoRXhjZXB0aW9uTWF4ID0gNDk5OworCisgICAgICAgIGVudW0gWFBhdGhFeGNlcHRp
b25Db2RlIHsKKyAgICAgICAgICAgIElOVkFMSURfRVhQUkVTU0lPTl9FUlIgPSBYUGF0aEV4Y2Vw
dGlvbk9mZnNldCArIDUxLAorICAgICAgICAgICAgVFlQRV9FUlIKICAgICAgICAgfTsKLQotICAg
ICAgICBpbnQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQotICAgICAgICBTdHJpbmcg
bmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQotICAgICAgICBTdHJpbmcgbWVzc2FnZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZTsgfQotCi0gICAgICAgIFN0cmluZyB0b1N0cmluZygp
IGNvbnN0OwotCi0gICAgcHJpdmF0ZToKLSAgICAgICAgaW50IG1fY29kZTsKLSAgICAgICAgU3Ry
aW5nIG1fbmFtZTsKLSAgICAgICAgU3RyaW5nIG1fbWVzc2FnZTsKICAgICB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBET01Db3JlRXhjZXB0aW9uX2gKKyNlbmRpZiAv
LyBFTkFCTEUoWFBBVEgpCisKKyNlbmRpZiAvLyBYUGF0aEV4Y2VwdGlvbl9oCkluZGV4OiBXZWJD
b3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWFBh
dGhFeGNlcHRpb24uaWRsCShyZXZpc2lvbiAyOTA1OCkJKGZyb20gV2ViQ29yZS9kb20vRE9NQ29y
ZUV4Y2VwdGlvbi5pZGw6MjkwNTgpCisrKyBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGNvcmUgeworCisgICAgaW50
ZXJmYWNlIFsKKyAgICAgICAgR2VuZXJhdGVDb25zdHJ1Y3RvcgorICAgIF0gRE9NQ29yZUV4Y2Vw
dGlvbiB7CisKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIHNob3J0ICAgY29k
ZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbmFtZTsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgbWVzc2FnZTsKKworI2lm
IGRlZmluZWQoTEFOR1VBR0VfSkFWQVNDUklQVCkKKyAgICAgICAgLy8gT3ZlcnJpZGUgaW4gYSBN
b3ppbGxhIGNvbXBhdGlibGUgZm9ybWF0CisgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRv
U3RyaW5nKCk7CisjZW5kaWYKKworICAgICAgICAvLyBFeGNlcHRpb25Db2RlCisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5ERVhfU0laRV9FUlIgICAgICAgICAgICAgICAgID0g
MTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBET01TVFJJTkdfU0laRV9FUlIg
ICAgICAgICAgICAgPSAyOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEhJRVJB
UkNIWV9SRVFVRVNUX0VSUiAgICAgICAgICA9IDM7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0ICAgICAgV1JPTkdfRE9DVU1FTlRfRVJSICAgICAgICAgICAgID0gNDsKKyAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgICAgICAgICAgPSA1
OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIg
ICAgICAgICAgICA9IDY7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9fTU9E
SUZJQ0FUSU9OX0FMTE9XRURfRVJSICAgID0gNzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgICAgICBOT1RfRk9VTkRfRVJSICAgICAgICAgICAgICAgICAgPSA4OworICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCAgICAgIE5PVF9TVVBQT1JURURfRVJSICAgICAgICAgICAgICA9IDk7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiAg
ICAgICAgICAgID0gMTA7CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9TVEFURV9FUlIgICAgICAg
ICAgICAgID0gMTE7CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAg
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgU1lOVEFYX0VSUiAgICAgICAgICAgICAgICAg
ICAgID0gMTI7CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSICAgICAg
ID0gMTM7CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTkFNRVNQQUNFX0VSUiAgICAgICAgICAgICAgICAgID0g
MTQ7CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6CisgICAgICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0ICAgICAgSU5WQUxJRF9BQ0NFU1NfRVJSICAgICAgICAgICAgID0gMTU7
CisgICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgVkFMSURBVElPTl9FUlIgICAgICAgICAgICAgICAgID0gMTY7Cisg
ICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDM6CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0ICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgID0gMTc7CisgICAg
fTsKK30KSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoRXhjZXB0aW9uLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3htbC9YUGF0aEV4Y2VwdGlvbi5pZGwJKHJldmlzaW9uIDI5MDU3KQorKysgV2Vi
Q29yZS94bWwvWFBhdGhFeGNlcHRpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYs
MTIgQEAKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotbW9kdWxlIGNvcmUgeworbW9kdWxlIHhwYXRoIHsK
IAogICAgIGludGVyZmFjZSBbCi0gICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IKLSAgICBdIERP
TUNvcmVFeGNlcHRpb24geworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yLAorICAgICAgICBD
b25kaXRpb25hbD1YUEFUSAorICAgIF0gWFBhdGhFeGNlcHRpb24gewogCiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGNvZGU7CiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgICAgICAgIG5hbWU7CkBAIC00MSwzMCArNDIsOSBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIFtEb250RW51bV0gRE9NU3RyaW5nIHRvU3RyaW5nKCk7CiAjZW5kaWYK
IAotICAgICAgICAvLyBFeGNlcHRpb25Db2RlCi0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
ICAgICAgSU5ERVhfU0laRV9FUlIgICAgICAgICAgICAgICAgID0gMTsKLSAgICAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgICAgICBET01TVFJJTkdfU0laRV9FUlIgICAgICAgICAgICAgPSAyOwot
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiAg
ICAgICAgICA9IDM7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgV1JPTkdfRE9D
VU1FTlRfRVJSICAgICAgICAgICAgID0gNDsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQg
ICAgICBJTlZBTElEX0NIQVJBQ1RFUl9FUlIgICAgICAgICAgPSA1OwotICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCAgICAgIE5PX0RBVEFfQUxMT1dFRF9FUlIgICAgICAgICAgICA9IDY7Ci0g
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURf
RVJSICAgID0gNzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgICAgICBOT1RfRk9VTkRf
RVJSICAgICAgICAgICAgICAgICAgPSA4OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCAg
ICAgIE5PVF9TVVBQT1JURURfRVJSICAgICAgICAgICAgICA9IDk7Ci0gICAgICAgIGNvbnN0IHVu
c2lnbmVkIHNob3J0ICAgICAgSU5VU0VfQVRUUklCVVRFX0VSUiAgICAgICAgICAgID0gMTA7Ci0g
ICAgICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0ICAgICAgSU5WQUxJRF9TVEFURV9FUlIgICAgICAgICAgICAgID0gMTE7Ci0gICAg
ICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0ICAgICAgU1lOVEFYX0VSUiAgICAgICAgICAgICAgICAgICAgID0gMTI7Ci0gICAgICAg
IC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNo
b3J0ICAgICAgSU5WQUxJRF9NT0RJRklDQVRJT05fRVJSICAgICAgID0gMTM7Ci0gICAgICAgIC8v
IEludHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
ICAgICAgTkFNRVNQQUNFX0VSUiAgICAgICAgICAgICAgICAgID0gMTQ7Ci0gICAgICAgIC8vIElu
dHJvZHVjZWQgaW4gRE9NIExldmVsIDI6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAg
ICAgSU5WQUxJRF9BQ0NFU1NfRVJSICAgICAgICAgICAgID0gMTU7Ci0gICAgICAgIC8vIEludHJv
ZHVjZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAg
VkFMSURBVElPTl9FUlIgICAgICAgICAgICAgICAgID0gMTY7Ci0gICAgICAgIC8vIEludHJvZHVj
ZWQgaW4gRE9NIExldmVsIDM6Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0ICAgICAgVFlQ
RV9NSVNNQVRDSF9FUlIgICAgICAgICAgICAgID0gMTc7CisgICAgICAgIC8vIFhQYXRoRXhjZXB0
aW9uQ29kZQorICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBJTlZBTElEX0VYUFJFU1NJT05f
RVJSID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVFlQRV9FUlIgPSAyOwogICAg
IH07CisKIH0KSW5kZXg6IFdlYkNvcmUveG1sL1hQYXRoUGFyc2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3htbC9YUGF0aFBhcnNlci5jcHAJKHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29y
ZS94bWwvWFBhdGhQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKICNpbmNs
dWRlICJYUGF0aEV2YWx1YXRvci5oIgorI2luY2x1ZGUgIlhQYXRoRXhjZXB0aW9uLmgiCiAjaW5j
bHVkZSAiWFBhdGhOU1Jlc29sdmVyLmgiCiAjaW5jbHVkZSAiWFBhdGhTdGVwLmgiCiAKQEAgLTUw
Myw3ICs1MDQsNyBAQCBFeHByZXNzaW9uKiBQYXJzZXI6OnBhcnNlU3RhdGVtZW50KGNvbnN0CiAg
ICAgICAgIGlmIChtX2dvdE5hbWVzcGFjZUVycm9yKQogICAgICAgICAgICAgZWMgPSBOQU1FU1BB
Q0VfRVJSOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBlYyA9IElOVkFMSURfRVhQUkVTU0lP
Tl9FUlI7CisgICAgICAgICAgICBlYyA9IFhQYXRoRXhjZXB0aW9uOjpJTlZBTElEX0VYUFJFU1NJ
T05fRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUveG1sL1hQ
YXRoUmVzdWx0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5jcHAJ
KHJldmlzaW9uIDI5MDcxKQorKysgV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXROb2RlLmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIlhQYXRoRXZhbHVhdG9yLmgiCisj
aW5jbHVkZSAiWFBhdGhFeGNlcHRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0x
MDEsMTQgKzEwMiwxNCBAQCB2b2lkIFhQYXRoUmVzdWx0Ojpjb252ZXJ0VG8odW5zaWduZWQgc2hv
CiAgICAgICAgIGNhc2UgQU5ZX1VOT1JERVJFRF9OT0RFX1RZUEU6CiAgICAgICAgIGNhc2UgRklS
U1RfT1JERVJFRF9OT0RFX1RZUEU6IC8vIFRoaXMgaXMgY29ycmVjdCAtIHNpbmdsZU5vZGVWYWx1
ZSgpIHdpbGwgdGFrZSBjYXJlIG9mIG9yZGVyaW5nLgogICAgICAgICAgICAgaWYgKCFtX3ZhbHVl
LmlzTm9kZVNldCgpKSB7Ci0gICAgICAgICAgICAgICAgZWMgPSBUWVBFX0VSUjsKKyAgICAgICAg
ICAgICAgICBlYyA9IFhQYXRoRXhjZXB0aW9uOjpUWVBFX0VSUjsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBtX3Jlc3VsdFR5cGUgPSB0eXBlOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgT1JERVJFRF9OT0RFX0lURVJBVE9SX1RZ
UEU6CiAgICAgICAgICAgICBpZiAoIW1fdmFsdWUuaXNOb2RlU2V0KCkpIHsKLSAgICAgICAgICAg
ICAgICBlYyA9IFRZUEVfRVJSOworICAgICAgICAgICAgICAgIGVjID0gWFBhdGhFeGNlcHRpb246
OlRZUEVfRVJSOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIG1fbm9kZVNldC5zb3J0KCk7CkBAIC0xMTYsNyArMTE3LDcgQEAgdm9pZCBYUGF0aFJl
c3VsdDo6Y29udmVydFRvKHVuc2lnbmVkIHNobwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgT1JERVJFRF9OT0RFX1NOQVBTSE9UX1RZUEU6CiAgICAgICAgICAgICBpZiAoIW1fdmFs
dWUuaXNOb2RlU2V0KCkpIHsKLSAgICAgICAgICAgICAgICBlYyA9IFRZUEVfRVJSOworICAgICAg
ICAgICAgICAgIGVjID0gWFBhdGhFeGNlcHRpb246OlRZUEVfRVJSOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIG1fdmFsdWUudG9Ob2RlU2V0KCku
c29ydCgpOwpAQCAtMTMzLDcgKzEzNCw3IEBAIHVuc2lnbmVkIHNob3J0IFhQYXRoUmVzdWx0Ojpy
ZXN1bHRUeXBlKCkKIGRvdWJsZSBYUGF0aFJlc3VsdDo6bnVtYmVyVmFsdWUoRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKHJlc3VsdFR5cGUoKSAhPSBOVU1CRVJfVFlQRSkgewot
ICAgICAgICBlYyA9IFRZUEVfRVJSOworICAgICAgICBlYyA9IFhQYXRoRXhjZXB0aW9uOjpUWVBF
X0VSUjsKICAgICAgICAgcmV0dXJuIDAuMDsKICAgICB9CiAgICAgcmV0dXJuIG1fdmFsdWUudG9O
dW1iZXIoKTsKQEAgLTE0Miw3ICsxNDMsNyBAQCBkb3VibGUgWFBhdGhSZXN1bHQ6Om51bWJlclZh
bHVlKEV4Y2VwdGlvCiBTdHJpbmcgWFBhdGhSZXN1bHQ6OnN0cmluZ1ZhbHVlKEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAogewogICAgIGlmIChyZXN1bHRUeXBlKCkgIT0gU1RSSU5HX1RZUEUpIHsK
LSAgICAgICAgZWMgPSBUWVBFX0VSUjsKKyAgICAgICAgZWMgPSBYUGF0aEV4Y2VwdGlvbjo6VFlQ
RV9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CiAgICAgcmV0dXJuIG1fdmFs
dWUudG9TdHJpbmcoKTsKQEAgLTE1MSw3ICsxNTIsNyBAQCBTdHJpbmcgWFBhdGhSZXN1bHQ6OnN0
cmluZ1ZhbHVlKEV4Y2VwdGlvCiBib29sIFhQYXRoUmVzdWx0Ojpib29sZWFuVmFsdWUoRXhjZXB0
aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKHJlc3VsdFR5cGUoKSAhPSBCT09MRUFOX1RZ
UEUpIHsKLSAgICAgICAgZWMgPSBUWVBFX0VSUjsKKyAgICAgICAgZWMgPSBYUGF0aEV4Y2VwdGlv
bjo6VFlQRV9FUlI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgcmV0dXJuIG1f
dmFsdWUudG9Cb29sZWFuKCk7CkBAIC0xNjAsNyArMTYxLDcgQEAgYm9vbCBYUGF0aFJlc3VsdDo6
Ym9vbGVhblZhbHVlKEV4Y2VwdGlvbgogTm9kZSogWFBhdGhSZXN1bHQ6OnNpbmdsZU5vZGVWYWx1
ZShFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAocmVzdWx0VHlwZSgpICE9IEFO
WV9VTk9SREVSRURfTk9ERV9UWVBFICYmIHJlc3VsdFR5cGUoKSAhPSBGSVJTVF9PUkRFUkVEX05P
REVfVFlQRSkgewotICAgICAgICBlYyA9IFRZUEVfRVJSOworICAgICAgICBlYyA9IFhQYXRoRXhj
ZXB0aW9uOjpUWVBFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAKQEAgLTE5NCw3
ICsxOTUsNyBAQCBib29sIFhQYXRoUmVzdWx0OjppbnZhbGlkSXRlcmF0b3JTdGF0ZSgpCiB1bnNp
Z25lZCBsb25nIFhQYXRoUmVzdWx0OjpzbmFwc2hvdExlbmd0aChFeGNlcHRpb25Db2RlJiBlYykg
Y29uc3QKIHsKICAgICBpZiAocmVzdWx0VHlwZSgpICE9IFVOT1JERVJFRF9OT0RFX1NOQVBTSE9U
X1RZUEUgJiYgcmVzdWx0VHlwZSgpICE9IE9SREVSRURfTk9ERV9TTkFQU0hPVF9UWVBFKSB7Ci0g
ICAgICAgIGVjID0gVFlQRV9FUlI7CisgICAgICAgIGVjID0gWFBhdGhFeGNlcHRpb246OlRZUEVf
RVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKQEAgLTIwNCw3ICsyMDUsNyBAQCB1bnNp
Z25lZCBsb25nIFhQYXRoUmVzdWx0OjpzbmFwc2hvdExlbmd0CiBOb2RlKiBYUGF0aFJlc3VsdDo6
aXRlcmF0ZU5leHQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHJlc3VsdFR5cGUoKSAh
PSBVTk9SREVSRURfTk9ERV9JVEVSQVRPUl9UWVBFICYmIHJlc3VsdFR5cGUoKSAhPSBPUkRFUkVE
X05PREVfSVRFUkFUT1JfVFlQRSkgewotICAgICAgICBlYyA9IFRZUEVfRVJSOworICAgICAgICBl
YyA9IFhQYXRoRXhjZXB0aW9uOjpUWVBFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
ICAgIApAQCAtMjI2LDcgKzIyNyw3IEBAIE5vZGUqIFhQYXRoUmVzdWx0OjppdGVyYXRlTmV4dChF
eGNlcHRpb24KIE5vZGUqIFhQYXRoUmVzdWx0OjpzbmFwc2hvdEl0ZW0odW5zaWduZWQgbG9uZyBp
bmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKHJlc3VsdFR5cGUoKSAhPSBVTk9S
REVSRURfTk9ERV9TTkFQU0hPVF9UWVBFICYmIHJlc3VsdFR5cGUoKSAhPSBPUkRFUkVEX05PREVf
U05BUFNIT1RfVFlQRSkgewotICAgICAgICBlYyA9IFRZUEVfRVJSOworICAgICAgICBlYyA9IFhQ
YXRoRXhjZXB0aW9uOjpUWVBFX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIApJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gMjkwNzEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOC0wMS0wMSAgU2FtIFdlaW5pZyAgPHNhbUB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY5
MQorICAgICAgICBVc2UgcmVhbCBKUyBvYmplY3RzIGZvciB0aGUgcmVzdCBvZiB0aGUgRE9NRXhj
ZXB0aW9ucyAoRXZlbnRFeGNlcHRpb24sIFJhbmdlRXhjZXB0aW9uLCBldGMpCisKKyAgICAgICAg
KiBmYXN0L2RvbS9ET01FeGNlcHRpb24vRXZlbnRFeGNlcHRpb24uaHRtbDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Byb3RvdHlwZS1vYmplY3QuaHRtbC4K
KyAgICAgICAgKiBmYXN0L2RvbS9ET01FeGNlcHRpb24vUmFuZ2VFeGNlcHRpb24uaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Byb3RvdHlwZS1vYmpl
Y3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L2RvbS9ET01FeGNlcHRpb24vWFBhdGhFeGNlcHRpb24u
aHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Byb3Rv
dHlwZS1vYmplY3QuaHRtbC4KKyAgICAgICAgKiBmYXN0L2RvbS9ET01FeGNlcHRpb24vcmVzb3Vy
Y2VzL0V2ZW50RXhjZXB0aW9uLmpzOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9E
T01FeGNlcHRpb24vcmVzb3VyY2VzL3Byb3RvdHlwZS1vYmplY3QuanMuCisgICAgICAgICogZmFz
dC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9SYW5nZUV4Y2VwdGlvbi5qczogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9wcm90b3R5cGUt
b2JqZWN0LmpzLgorICAgICAgICAqIGZhc3QvZG9tL0RPTUV4Y2VwdGlvbi9yZXNvdXJjZXMvWFBh
dGhFeGNlcHRpb24uanM6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2Vw
dGlvbi9yZXNvdXJjZXMvcHJvdG90eXBlLW9iamVjdC5qcy4KKyAgICAgICAgKiBmYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorCiAyMDA4LTAxLTAxICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZi4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9FdmVudEV4Y2VwdGlvbi5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9FdmVu
dEV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAyOTA1OCkJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NRXhjZXB0aW9uL3Byb3RvdHlwZS1vYmplY3QuaHRtbDoyOTA1OCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9FdmVudEV4Y2VwdGlvbi5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFRE
IEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90eXBlLW9iamVjdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24v
RXZlbnRFeGNlcHRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9E
T01FeGNlcHRpb24vRXZlbnRFeGNlcHRpb24uaHRtbAkocmV2aXNpb24gMjkwNTgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vRXZlbnRFeGNlcHRpb24uaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90
eXBlLW9iamVjdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL0V2ZW50RXhj
ZXB0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9SYW5nZUV4Y2VwdGlvbi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9SYW5nZUV4Y2VwdGlvbi5odG1s
CShyZXZpc2lvbiAyOTA1OCkJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9u
L3Byb3RvdHlwZS1vYmplY3QuaHRtbDoyOTA1OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RP
TUV4Y2VwdGlvbi9SYW5nZUV4Y2VwdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
MTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcHJvdG90eXBlLW9iamVjdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vUmFuZ2VFeGNlcHRpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vUmFu
Z2VFeGNlcHRpb24uaHRtbAkocmV2aXNpb24gMjkwNTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Rv
bS9ET01FeGNlcHRpb24vUmFuZ2VFeGNlcHRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3
ICs3LDcgQEAKIDxib2R5PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90eXBlLW9iamVjdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL1JhbmdlRXhjZXB0aW9uLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RP
TUV4Y2VwdGlvbi9YUGF0aEV4Y2VwdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9YUGF0aEV4Y2VwdGlvbi5odG1sCShyZXZpc2lvbiAyOTA3
MCkJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Byb3RvdHlwZS1vYmpl
Y3QuaHRtbDoyOTA3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9YUGF0
aEV4Y2VwdGlvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQ
RSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8
bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0
eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90eXBl
LW9iamVjdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vWFBhdGhFeGNlcHRpb24uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vWFBhdGhFeGNlcHRpb24uaHRt
bAkocmV2aXNpb24gMjkwNzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24v
WFBhdGhFeGNlcHRpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKIDxib2R5
PgogPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvcHJvdG90eXBlLW9iamVjdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL1hQYXRoRXhjZXB0aW9uLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KIDwvYm9k
eT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9yZXNv
dXJjZXMvRXZlbnRFeGNlcHRpb24uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9FdmVudEV4Y2VwdGlvbi5qcwkocmV2aXNpb24gMjkw
NTgpCShmcm9tIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9yZXNvdXJjZXMvcHJv
dG90eXBlLW9iamVjdC5qczoyOTA1OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2Vw
dGlvbi9yZXNvdXJjZXMvRXZlbnRFeGNlcHRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOSBAQAorZGVzY3JpcHRpb24oIkRPTUV4Y2VwdGlvbiBuZWVkcyBhIHJlYWwgcHJvdG90eXBl
OiBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjYzNyIpCisKK3ZhciBl
OwordHJ5IHsKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQpOworICAgLy8gcmFpc2VzIGEgSElFUkFSQ0hZX1JFUVVFU1RfRVJSCit9IGNhdGNoIChl
cnIpIHsKKyAgZSA9IGVycjsKK30KKworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLnRvU3RyaW5n
KCkiLCAiRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjogRE9NIEV4Y2VwdGlvbiAzIik7Citz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSIs
ICJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuX19wcm90b19fKSIsICJbb2JqZWN0IERPTUV4Y2Vw
dGlvblByb3RvdHlwZV0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZS5jb25zdHJ1Y3Rvci50
b1N0cmluZygpIiwgIltvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdIik7CitzaG91bGRC
ZSgiZS5jb25zdHJ1Y3RvciIsICJ3aW5kb3cuRE9NRXhjZXB0aW9uIik7CitzaG91bGRCZSgiZS5I
SUVSQVJDSFlfUkVRVUVTVF9FUlIiLCAiZS5jb25zdHJ1Y3Rvci5ISUVSQVJDSFlfUkVRVUVTVF9F
UlIiKTsKK3Nob3VsZEJlKCJlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsICIzIik7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9N
RXhjZXB0aW9uL3Jlc291cmNlcy9FdmVudEV4Y2VwdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vcmVzb3VyY2VzL0V2ZW50RXhjZXB0aW9uLmpz
CShyZXZpc2lvbiAyOTA1OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9y
ZXNvdXJjZXMvRXZlbnRFeGNlcHRpb24uanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEsMTkg
QEAKLWRlc2NyaXB0aW9uKCJET01FeGNlcHRpb24gbmVlZHMgYSByZWFsIHByb3RvdHlwZTogaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2MzciKQorZGVzY3JpcHRpb24o
IlRlc3RzIHRoZSBwcm9wZXJ0aWVzIG9mIHRoZSBFdmVudEV4Y2VwdGlvbiBvYmplY3QuIikKIAog
dmFyIGU7CiB0cnkgewotICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmRvY3Vt
ZW50RWxlbWVudCk7Ci0gICAvLyByYWlzZXMgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIKKyAgICBk
b2N1bWVudC5kaXNwYXRjaEV2ZW50KG51bGwpOworICAgIC8vIHJhaXNlcyBhIFVOU1BFQ0lGSUVE
X0VWRU5UX1RZUEVfRVJSCiB9IGNhdGNoIChlcnIpIHsKLSAgZSA9IGVycjsKKyAgICBlID0gZXJy
OwogfQogCi1zaG91bGRCZUVxdWFsVG9TdHJpbmcoImUudG9TdHJpbmcoKSIsICJFcnJvcjogSElF
UkFSQ0hZX1JFUVVFU1RfRVJSOiBET00gRXhjZXB0aW9uIDMiKTsKLXNob3VsZEJlRXF1YWxUb1N0
cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIiwgIltvYmplY3QgRE9NRXhj
ZXB0aW9uXSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwoZS5fX3Byb3RvX18pIiwgIltvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXSIp
Owotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiW29i
amVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0iKTsKLXNob3VsZEJlKCJlLmNvbnN0cnVjdG9y
IiwgIndpbmRvdy5ET01FeGNlcHRpb24iKTsKLXNob3VsZEJlKCJlLkhJRVJBUkNIWV9SRVFVRVNU
X0VSUiIsICJlLmNvbnN0cnVjdG9yLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIpOwotc2hvdWxkQmUo
ImUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIiwgIjMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
ZS50b1N0cmluZygpIiwgIkVycm9yOiBVTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUjogRE9NIEV2
ZW50cyBFeGNlcHRpb24gMCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90
eXBlLnRvU3RyaW5nLmNhbGwoZSkiLCAiW29iamVjdCBFdmVudEV4Y2VwdGlvbl0iKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuX19wcm90
b19fKSIsICJbb2JqZWN0IEV2ZW50RXhjZXB0aW9uUHJvdG90eXBlXSIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiW29iamVjdCBFdmVudEV4Y2Vw
dGlvbkNvbnN0cnVjdG9yXSIpOworc2hvdWxkQmUoImUuY29uc3RydWN0b3IiLCAid2luZG93LkV2
ZW50RXhjZXB0aW9uIik7CitzaG91bGRCZSgiZS5VTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUiIs
ICJlLmNvbnN0cnVjdG9yLlVOU1BFQ0lGSUVEX0VWRU5UX1RZUEVfRVJSIik7CitzaG91bGRCZSgi
ZS5VTlNQRUNJRklFRF9FVkVOVF9UWVBFX0VSUiIsICIwIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jl
c291cmNlcy9SYW5nZUV4Y2VwdGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9ET01FeGNlcHRpb24vcmVzb3VyY2VzL1JhbmdlRXhjZXB0aW9uLmpzCShyZXZpc2lvbiAy
OTA1OCkJKGZyb20gTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9w
cm90b3R5cGUtb2JqZWN0LmpzOjI5MDU4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhj
ZXB0aW9uL3Jlc291cmNlcy9SYW5nZUV4Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDE5IEBACitkZXNjcmlwdGlvbigiRE9NRXhjZXB0aW9uIG5lZWRzIGEgcmVhbCBwcm90b3R5
cGU6IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjM3IikKKwordmFy
IGU7Cit0cnkgeworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCk7CisgICAvLyByYWlzZXMgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIKK30gY2F0Y2gg
KGVycikgeworICBlID0gZXJyOworfQorCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUudG9TdHJp
bmcoKSIsICJFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBET00gRXhjZXB0aW9uIDMiKTsK
K3Nob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUp
IiwgIltvYmplY3QgRE9NRXhjZXB0aW9uXSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmpl
Y3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZS5fX3Byb3RvX18pIiwgIltvYmplY3QgRE9NRXhj
ZXB0aW9uUHJvdG90eXBlXSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmNvbnN0cnVjdG9y
LnRvU3RyaW5nKCkiLCAiW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0iKTsKK3Nob3Vs
ZEJlKCJlLmNvbnN0cnVjdG9yIiwgIndpbmRvdy5ET01FeGNlcHRpb24iKTsKK3Nob3VsZEJlKCJl
LkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsICJlLmNvbnN0cnVjdG9yLkhJRVJBUkNIWV9SRVFVRVNU
X0VSUiIpOworc2hvdWxkQmUoImUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIiwgIjMiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9E
T01FeGNlcHRpb24vcmVzb3VyY2VzL1JhbmdlRXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL0RPTUV4Y2VwdGlvbi9yZXNvdXJjZXMvUmFuZ2VFeGNlcHRpb24u
anMJKHJldmlzaW9uIDI5MDU4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9u
L3Jlc291cmNlcy9SYW5nZUV4Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwy
MCBAQAotZGVzY3JpcHRpb24oIkRPTUV4Y2VwdGlvbiBuZWVkcyBhIHJlYWwgcHJvdG90eXBlOiBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjYzNyIpCitkZXNjcmlwdGlv
bigiVGVzdHMgdGhlIHByb3BlcnRpZXMgb2YgdGhlIFJhbmdlRXhjZXB0aW9uIG9iamVjdC4iKQog
CiB2YXIgZTsKIHRyeSB7Ci0gIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50KTsKLSAgIC8vIHJhaXNlcyBhIEhJRVJBUkNIWV9SRVFVRVNUX0VSUgorICAg
IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCkuc2V0U3RhcnRBZnRlcihkb2N1bWVudCwgMCk7CisgICAg
Ly8gcmFpc2VzIElOVkFMSURfTk9ERV9UWVBFX0VSUgogfSBjYXRjaCAoZXJyKSB7Ci0gIGUgPSBl
cnI7CisgICAgZSA9IGVycjsKIH0KIAotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLnRvU3RyaW5n
KCkiLCAiRXJyb3I6IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjogRE9NIEV4Y2VwdGlvbiAzIik7Ci1z
aG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSIs
ICJbb2JqZWN0IERPTUV4Y2VwdGlvbl0iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0
LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUuX19wcm90b19fKSIsICJbb2JqZWN0IERPTUV4Y2Vw
dGlvblByb3RvdHlwZV0iKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiZS5jb25zdHJ1Y3Rvci50
b1N0cmluZygpIiwgIltvYmplY3QgRE9NRXhjZXB0aW9uQ29uc3RydWN0b3JdIik7Ci1zaG91bGRC
ZSgiZS5jb25zdHJ1Y3RvciIsICJ3aW5kb3cuRE9NRXhjZXB0aW9uIik7Ci1zaG91bGRCZSgiZS5I
SUVSQVJDSFlfUkVRVUVTVF9FUlIiLCAiZS5jb25zdHJ1Y3Rvci5ISUVSQVJDSFlfUkVRVUVTVF9F
UlIiKTsKLXNob3VsZEJlKCJlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsICIzIik7CitzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImUudG9TdHJpbmcoKSIsICJFcnJvcjogSU5WQUxJRF9OT0RFX1RZUEVf
RVJSOiBET00gUmFuZ2UgRXhjZXB0aW9uIDIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiT2Jq
ZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIiwgIltvYmplY3QgUmFuZ2VFeGNlcHRpb25d
Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2Fs
bChlLl9fcHJvdG9fXykiLCAiW29iamVjdCBSYW5nZUV4Y2VwdGlvblByb3RvdHlwZV0iKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiZS5jb25zdHJ1Y3Rvci50b1N0cmluZygpIiwgIltvYmplY3Qg
UmFuZ2VFeGNlcHRpb25Db25zdHJ1Y3Rvcl0iKTsKK3Nob3VsZEJlKCJlLmNvbnN0cnVjdG9yIiwg
IndpbmRvdy5SYW5nZUV4Y2VwdGlvbiIpOworc2hvdWxkQmUoImUuSU5WQUxJRF9OT0RFX1RZUEVf
RVJSIiwgImUuY29uc3RydWN0b3IuSU5WQUxJRF9OT0RFX1RZUEVfRVJSIik7CitzaG91bGRCZSgi
ZS5CQURfQk9VTkRBUllQT0lOVFNfRVJSIiwgIjEiKTsKK3Nob3VsZEJlKCJlLklOVkFMSURfTk9E
RV9UWVBFX0VSUiIsICIyIik7CiAKIHZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9YUGF0aEV4Y2Vw
dGlvbi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24v
cmVzb3VyY2VzL1hQYXRoRXhjZXB0aW9uLmpzCShyZXZpc2lvbiAyOTA3MCkJKGZyb20gTGF5b3V0
VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9wcm90b3R5cGUtb2JqZWN0Lmpz
OjI5MDcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9Y
UGF0aEV4Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACitkZXNjcmlw
dGlvbigiRE9NRXhjZXB0aW9uIG5lZWRzIGEgcmVhbCBwcm90b3R5cGU6IGh0dHA6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjM3IikKKwordmFyIGU7Cit0cnkgeworICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CisgICAvLyBy
YWlzZXMgYSBISUVSQVJDSFlfUkVRVUVTVF9FUlIKK30gY2F0Y2ggKGVycikgeworICBlID0gZXJy
OworfQorCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImUudG9TdHJpbmcoKSIsICJFcnJvcjogSElF
UkFSQ0hZX1JFUVVFU1RfRVJSOiBET00gRXhjZXB0aW9uIDMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0
cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGUpIiwgIltvYmplY3QgRE9NRXhj
ZXB0aW9uXSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3Ry
aW5nLmNhbGwoZS5fX3Byb3RvX18pIiwgIltvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiW29i
amVjdCBET01FeGNlcHRpb25Db25zdHJ1Y3Rvcl0iKTsKK3Nob3VsZEJlKCJlLmNvbnN0cnVjdG9y
IiwgIndpbmRvdy5ET01FeGNlcHRpb24iKTsKK3Nob3VsZEJlKCJlLkhJRVJBUkNIWV9SRVFVRVNU
X0VSUiIsICJlLmNvbnN0cnVjdG9yLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIpOworc2hvdWxkQmUo
ImUuSElFUkFSQ0hZX1JFUVVFU1RfRVJSIiwgIjMiKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNl
ZCA9IHRydWU7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9ET01FeGNlcHRpb24vcmVzb3Vy
Y2VzL1hQYXRoRXhjZXB0aW9uLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9t
L0RPTUV4Y2VwdGlvbi9yZXNvdXJjZXMvWFBhdGhFeGNlcHRpb24uanMJKHJldmlzaW9uIDI5MDcw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vRE9NRXhjZXB0aW9uL3Jlc291cmNlcy9YUGF0aEV4
Y2VwdGlvbi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMSwyMyBAQAotZGVzY3JpcHRpb24o
IkRPTUV4Y2VwdGlvbiBuZWVkcyBhIHJlYWwgcHJvdG90eXBlOiBodHRwOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjYzNyIpCitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHByb3Bl
cnRpZXMgb2YgdGhlIFhQYXRoRXhjZXB0aW9uIG9iamVjdC4iKQogCiB2YXIgZTsKIHRyeSB7Ci0g
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTsKLSAg
IC8vIHJhaXNlcyBhIEhJRVJBUkNIWV9SRVFVRVNUX0VSUgorICAgIHZhciBldmFsdWxhdG9yID0g
bmV3IFhQYXRoRXZhbHVhdG9yOworICAgIHZhciBuc1Jlc29sdmVyID0gZXZhbHVsYXRvci5jcmVh
dGVOU1Jlc29sdmVyKGRvY3VtZW50KTsKKyAgICB2YXIgcmVzdWx0ID0gZXZhbHVsYXRvci5ldmFs
dWF0ZSgiL2JvZHkiLCBkb2N1bWVudCwgbnNSZXNvbHZlciwgMCwgbnVsbCk7CisgICAgdmFyIG51
bSA9IHJlc3VsdC5udW1iZXJWYWx1ZTsKKyAgIC8vIHJhaXNlcyBhIFRZUEVfRVJSCiB9IGNhdGNo
IChlcnIpIHsKLSAgZSA9IGVycjsKKyAgICBlID0gZXJyOwogfQogCi1zaG91bGRCZUVxdWFsVG9T
dHJpbmcoImUudG9TdHJpbmcoKSIsICJFcnJvcjogSElFUkFSQ0hZX1JFUVVFU1RfRVJSOiBET00g
RXhjZXB0aW9uIDMiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50
b1N0cmluZy5jYWxsKGUpIiwgIltvYmplY3QgRE9NRXhjZXB0aW9uXSIpOwotc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZS5fX3Byb3RvX18pIiwg
IltvYmplY3QgRE9NRXhjZXB0aW9uUHJvdG90eXBlXSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiW29iamVjdCBET01FeGNlcHRpb25Db25zdHJ1
Y3Rvcl0iKTsKLXNob3VsZEJlKCJlLmNvbnN0cnVjdG9yIiwgIndpbmRvdy5ET01FeGNlcHRpb24i
KTsKLXNob3VsZEJlKCJlLkhJRVJBUkNIWV9SRVFVRVNUX0VSUiIsICJlLmNvbnN0cnVjdG9yLkhJ
RVJBUkNIWV9SRVFVRVNUX0VSUiIpOwotc2hvdWxkQmUoImUuSElFUkFSQ0hZX1JFUVVFU1RfRVJS
IiwgIjMiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZS50b1N0cmluZygpIiwgIkVycm9yOiBU
WVBFX0VSUjogRE9NIFhQYXRoIEV4Y2VwdGlvbiA1MiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkiLCAiW29iamVjdCBYUGF0aEV4Y2Vw
dGlvbl0iKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiT2JqZWN0LnByb3RvdHlwZS50b1N0cmlu
Zy5jYWxsKGUuX19wcm90b19fKSIsICJbb2JqZWN0IFhQYXRoRXhjZXB0aW9uUHJvdG90eXBlXSIp
Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlLmNvbnN0cnVjdG9yLnRvU3RyaW5nKCkiLCAiW29i
amVjdCBYUGF0aEV4Y2VwdGlvbkNvbnN0cnVjdG9yXSIpOworc2hvdWxkQmUoImUuY29uc3RydWN0
b3IiLCAid2luZG93LlhQYXRoRXhjZXB0aW9uIik7CitzaG91bGRCZSgiZS5UWVBFX0VSUiIsICJl
LmNvbnN0cnVjdG9yLlRZUEVfRVJSIik7CitzaG91bGRCZSgiZS5JTlZBTElEX0VYUFJFU1NJT05f
RVJSIiwgIjUxIik7CitzaG91bGRCZSgiZS5UWVBFX0VSUiIsICI1MiIpOwogCiB2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93
aW5kb3ctcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjkwNzEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01OTQsNiArNTk0LDEwIEBAIHdpbmRvdy5F
dmVudC5wcm90b3R5cGUuU0VMRUNUIFtudW1iZXJdCiB3aW5kb3cuRXZlbnQucHJvdG90eXBlLmlu
aXRFdmVudCBbZnVuY3Rpb25dCiB3aW5kb3cuRXZlbnQucHJvdG90eXBlLnByZXZlbnREZWZhdWx0
IFtmdW5jdGlvbl0KIHdpbmRvdy5FdmVudC5wcm90b3R5cGUuc3RvcFByb3BhZ2F0aW9uIFtmdW5j
dGlvbl0KK3dpbmRvdy5FdmVudEV4Y2VwdGlvbiBbb2JqZWN0IEV2ZW50RXhjZXB0aW9uQ29uc3Ry
dWN0b3JdCit3aW5kb3cuRXZlbnRFeGNlcHRpb24uVU5TUEVDSUZJRURfRVZFTlRfVFlQRV9FUlIg
W251bWJlcl0KK3dpbmRvdy5FdmVudEV4Y2VwdGlvbi5wcm90b3R5cGUgW29iamVjdCBFdmVudEV4
Y2VwdGlvblByb3RvdHlwZV0KK3dpbmRvdy5FdmVudEV4Y2VwdGlvbi5wcm90b3R5cGUuVU5TUEVD
SUZJRURfRVZFTlRfVFlQRV9FUlIgW251bWJlcl0KIHdpbmRvdy5IVE1MQW5jaG9yRWxlbWVudCBb
b2JqZWN0IEhUTUxBbmNob3JFbGVtZW50Q29uc3RydWN0b3JdCiB3aW5kb3cuSFRNTEFuY2hvckVs
ZW1lbnQucHJvdG90eXBlIFtwcmludGVkIGFib3ZlIGFzIHdpbmRvdy5FbGVtZW50LnByb3RvdHlw
ZV0KIHdpbmRvdy5IVE1MQXBwbGV0RWxlbWVudCBbb2JqZWN0IEhUTUxBcHBsZXRFbGVtZW50Q29u
c3RydWN0b3JdCkBAIC0xMTM1LDYgKzExMzksMTAgQEAgd2luZG93LlhNTEh0dHBSZXF1ZXN0LnBy
b3RvdHlwZS5vdmVycmlkZQogd2luZG93LlhNTEh0dHBSZXF1ZXN0LnByb3RvdHlwZS5yZW1vdmVF
dmVudExpc3RlbmVyIFtmdW5jdGlvbl0KIHdpbmRvdy5YTUxIdHRwUmVxdWVzdC5wcm90b3R5cGUu
c2VuZCBbZnVuY3Rpb25dCiB3aW5kb3cuWE1MSHR0cFJlcXVlc3QucHJvdG90eXBlLnNldFJlcXVl
c3RIZWFkZXIgW2Z1bmN0aW9uXQord2luZG93LlhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uIFtvYmpl
Y3QgWE1MSHR0cFJlcXVlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcl0KK3dpbmRvdy5YTUxIdHRwUmVx
dWVzdEV4Y2VwdGlvbi5ORVRXT1JLX0VSUiBbbnVtYmVyXQord2luZG93LlhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLnByb3RvdHlwZSBbb2JqZWN0IFhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uUHJvdG90
eXBlXQord2luZG93LlhNTEh0dHBSZXF1ZXN0RXhjZXB0aW9uLnByb3RvdHlwZS5ORVRXT1JLX0VS
UiBbbnVtYmVyXQogd2luZG93LlhNTFNlcmlhbGl6ZXIgW29iamVjdCBYTUxTZXJpYWxpemVyQ29u
c3RydWN0b3JdCiB3aW5kb3cuWE1MU2VyaWFsaXplci5wcm90b3R5cGUgW29iamVjdCBYTUxTZXJp
YWxpemVyUHJvdG90eXBlXQogd2luZG93LlhNTFNlcmlhbGl6ZXIucHJvdG90eXBlLnNlcmlhbGl6
ZVRvU3RyaW5nIFtmdW5jdGlvbl0KQEAgLTExNDMsNiArMTE1MSwxMiBAQCB3aW5kb3cuWFBhdGhF
dmFsdWF0b3IucHJvdG90eXBlIFtvYmplY3QgCiB3aW5kb3cuWFBhdGhFdmFsdWF0b3IucHJvdG90
eXBlLmNyZWF0ZUV4cHJlc3Npb24gW2Z1bmN0aW9uXQogd2luZG93LlhQYXRoRXZhbHVhdG9yLnBy
b3RvdHlwZS5jcmVhdGVOU1Jlc29sdmVyIFtmdW5jdGlvbl0KIHdpbmRvdy5YUGF0aEV2YWx1YXRv
ci5wcm90b3R5cGUuZXZhbHVhdGUgW2Z1bmN0aW9uXQord2luZG93LlhQYXRoRXhjZXB0aW9uIFtv
YmplY3QgWFBhdGhFeGNlcHRpb25Db25zdHJ1Y3Rvcl0KK3dpbmRvdy5YUGF0aEV4Y2VwdGlvbi5J
TlZBTElEX0VYUFJFU1NJT05fRVJSIFtudW1iZXJdCit3aW5kb3cuWFBhdGhFeGNlcHRpb24uVFlQ
RV9FUlIgW251bWJlcl0KK3dpbmRvdy5YUGF0aEV4Y2VwdGlvbi5wcm90b3R5cGUgW29iamVjdCBY
UGF0aEV4Y2VwdGlvblByb3RvdHlwZV0KK3dpbmRvdy5YUGF0aEV4Y2VwdGlvbi5wcm90b3R5cGUu
SU5WQUxJRF9FWFBSRVNTSU9OX0VSUiBbbnVtYmVyXQord2luZG93LlhQYXRoRXhjZXB0aW9uLnBy
b3RvdHlwZS5UWVBFX0VSUiBbbnVtYmVyXQogd2luZG93LlhQYXRoUmVzdWx0IFtvYmplY3QgWFBh
dGhSZXN1bHRDb25zdHJ1Y3Rvcl0KIHdpbmRvdy5YUGF0aFJlc3VsdC5BTllfVFlQRSBbbnVtYmVy
XQogd2luZG93LlhQYXRoUmVzdWx0LkFOWV9VTk9SREVSRURfTk9ERV9UWVBFIFtudW1iZXJdCg==
</data>
<flag name="review"
          id="7934"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>