<?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>133315</bug_id>
          
          <creation_ts>2014-05-27 10:41:23 -0700</creation_ts>
          <short_desc>[WebKit2] Move WebPreferences macro definitions and key names into their own files</short_desc>
          <delta_ts>2014-05-27 11:35:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1012012</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-05-27 10:41:23 -0700</bug_when>
    <thetext>[WebKit2] Move WebPreferences macro definitions and key names into their own files</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012013</commentid>
    <comment_count>1</comment_count>
      <attachid>232140</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-05-27 10:43:04 -0700</bug_when>
    <thetext>Created attachment 232140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012014</commentid>
    <comment_count>2</comment_count>
      <attachid>232140</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-27 10:44:01 -0700</bug_when>
    <thetext>Comment on attachment 232140
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012021</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-05-27 11:35:38 -0700</bug_when>
    <thetext>Committed r169394: &lt;http://trac.webkit.org/changeset/169394&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232140</attachid>
            <date>2014-05-27 10:43:04 -0700</date>
            <delta_ts>2014-05-27 10:44:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133315-20140527104240.patch</filename>
            <type>text/plain</type>
            <size>125428</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2OTM4OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE0LTA1LTI3ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYktpdDJdIE1vdmUgV2ViUHJlZmVy
ZW5jZXMgbWFjcm8gZGVmaW5pdGlvbnMgYW5kIGtleSBuYW1lcyBpbnRvIHRoZWlyIG93biBmaWxl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMzE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5o
LgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0tleXMuY3BwOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAuCisgICAgICAgICog
U2hhcmVkL1dlYlByZWZlcmVuY2VzS2V5cy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0
TWFjLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUHJlZmVyZW5jZXNNYWMubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgICog
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cDoKKwogMjAxNC0wNS0yNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNv
bT4KIAogICAgICAgICBBZGQgVUkgcHJvY2VzcyB3YXRjaGRvZyBvbiBpT1MgdG8gZW5zdXJlIFdl
YlByb2Nlc3MgY29ubmVjdGlvbnMgY2xvc2UKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAxNjkzNjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMjMzLDYgKzIzMyw3IEBAIHNldChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQv
V2ViUGFnZUdyb3VwRGF0YS5jcHAKICAgICBTaGFyZWQvV2ViUGxhdGZvcm1Ub3VjaFBvaW50LmNw
cAogICAgIFNoYXJlZC9XZWJQb3B1cEl0ZW0uY3BwCisgICAgU2hhcmVkL1dlYlByZWZlcmVuY2Vz
S2V5cy5jcHAKICAgICBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAKICAgICBTaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKICAgICBTaGFyZWQvV2ViUmVuZGVyTGF5
ZXIuY3BwCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0
aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmgJKHJldmlzaW9uIDE2OTM1NykJKGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDoxNjkzNTcpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJQcmVmZXJlbmNlc1N0
b3JlX2gKKyNkZWZpbmUgV2ViUHJlZmVyZW5jZXNTdG9yZV9oCisKKyNpbmNsdWRlICJBcmd1bWVu
dERlY29kZXIuaCIKKyNpbmNsdWRlICJBcmd1bWVudEVuY29kZXIuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL1NlY3VyaXR5T3JpZ2luLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBtYWNybyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5
cGVOYW1lVXBwZXIsIFR5cGVOYW1lLCBEZWZhdWx0VmFsdWUpIAorCisjaWYgUExBVEZPUk0oR1RL
KQorI2RlZmluZSBERUZBVUxUX1dFQktJVF9UQUJTVE9MSU5LU19FTkFCTEVEIHRydWUKKyNlbHNl
CisjZGVmaW5lIERFRkFVTFRfV0VCS0lUX1RBQlNUT0xJTktTX0VOQUJMRUQgZmFsc2UKKyNlbmRp
ZgorCisjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCisjZGVmaW5lIERFRkFVTFRfV0VCS0lU
X1NDUk9MTF9BTklNQVRPUl9FTkFCTEVEIHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfV0VC
S0lUX1NDUk9MTF9BTklNQVRPUl9FTkFCTEVEIGZhbHNlCisjZW5kaWYKKworI2lmIFBMQVRGT1JN
KE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisjZGVmaW5l
IERFRkFVTFRfU0NSRUVOX0ZPTlRfU1VCU1RJVFVUSU9OX0VOQUJMRUQgZmFsc2UKKyNlbHNlCisj
ZGVmaW5lIERFRkFVTFRfU0NSRUVOX0ZPTlRfU1VCU1RJVFVUSU9OX0VOQUJMRUQgdHJ1ZQorI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShDT0NPQSkKKyNkZWZpbmUgREVGQVVMVF9ISURERU5fUEFHRV9E
T01fVElNRVJfVEhST1RUTElOR19FTkFCTEVEIHRydWUKKyNkZWZpbmUgREVGQVVMVF9ISURERU5f
UEFHRV9DU1NfQU5JTUFUSU9OX1NVU1BFTlNJT05fRU5BQkxFRCB0cnVlCisjZGVmaW5lIERFRkFV
TFRfUERGUExVR0lOX0VOQUJMRUQgdHJ1ZQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9ISURERU5f
UEFHRV9ET01fVElNRVJfVEhST1RUTElOR19FTkFCTEVEIGZhbHNlCisjZGVmaW5lIERFRkFVTFRf
SElEREVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKKyNkZWZp
bmUgREVGQVVMVF9QREZQTFVHSU5fRU5BQkxFRCBmYWxzZQorI2VuZGlmCisKKyNpZiBQTEFURk9S
TShJT1MpCisjZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklOR19FTkFCTEVEIHRydWUKKyNk
ZWZpbmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQorI2RlZmluZSBERUZB
VUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSBmYWxzZQorI2RlZmluZSBERUZBVUxUX0pBVkFT
Q1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCisjZGVmaW5lIERFRkFV
TFRfU0hPVUxEX1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT04gdHJ1ZQorI2RlZmluZSBERUZBVUxU
X01JTklNVU1fRk9OVF9aT09NX1NJWkUgV0tHZXRNaW5pbXVtWm9vbUZvbnRTaXplKCkKKyNkZWZp
bmUgREVGQVVMVF9QQVNTV09SRF9FQ0hPX0VOQUJMRUQgdHJ1ZQorI2RlZmluZSBERUZBVUxUX01F
RElBX1BMQVlCQUNLX0FMTE9XU19JTkxJTkUgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9NRURJQV9Q
TEFZQkFDS19SRVFVSVJFU19VU0VSX0dFU1RVUkUgdHJ1ZQorI2RlZmluZSBERUZBVUxUX1RFTVBP
UkFSWV9USUxFX0NPSE9SVF9SRVRFTlRJT05fRU5BQkxFRCBmYWxzZQorI2Vsc2UKKyNkZWZpbmUg
REVGQVVMVF9GUkFNRV9GTEFUVEVOSU5HX0VOQUJMRUQgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9T
SE9VTERfUFJJTlRfQkFDS0dST1VORFMgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9URVhUX0FSRUFT
X0FSRV9SRVNJWkFCTEUgdHJ1ZQorI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJUFRfQ0FOX09QRU5f
V0lORE9XU19BVVRPTUFUSUNBTExZIHRydWUKKyNkZWZpbmUgREVGQVVMVF9TSE9VTERfUkVTUEVD
VF9JTUFHRV9PUklFTlRBVElPTiBmYWxzZQorI2RlZmluZSBERUZBVUxUX01JTklNVU1fRk9OVF9a
T09NX1NJWkUgMAorI2RlZmluZSBERUZBVUxUX1BBU1NXT1JEX0VDSE9fRU5BQkxFRCBmYWxzZQor
I2RlZmluZSBERUZBVUxUX01FRElBX1BMQVlCQUNLX0FMTE9XU19JTkxJTkUgdHJ1ZQorI2RlZmlu
ZSBERUZBVUxUX01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVSRSBmYWxzZQorI2Rl
ZmluZSBERUZBVUxUX1RFTVBPUkFSWV9USUxFX0NPSE9SVF9SRVRFTlRJT05fRU5BQkxFRCB0cnVl
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1Ip
CisjZGVmaW5lIERFRkFVTFRfQUNDRUxFUkFURURfRFJBV0lOR19FTkFCTEVEIHRydWUKKyNlbHNl
CisjZGVmaW5lIERFRkFVTFRfQUNDRUxFUkFURURfRFJBV0lOR19FTkFCTEVEIGZhbHNlCisjZW5k
aWYKKworI2lmIFBMQVRGT1JNKElPUykgJiYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKKyNkZWZp
bmUgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HIGZhbHNlCisjZWxzZQor
I2RlZmluZSBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RSQVdJTkcgdHJ1ZQorI2Vu
ZGlmCisKKyNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAor
ICAgIG1hY3JvKEphdmFTY3JpcHRFbmFibGVkLCBqYXZhU2NyaXB0RW5hYmxlZCwgQm9vbCwgYm9v
bCwgdHJ1ZSkgXAorICAgIG1hY3JvKEphdmFTY3JpcHRNYXJrdXBFbmFibGVkLCBqYXZhU2NyaXB0
TWFya3VwRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseSwgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBCb29sLCBib29sLCB0cnVl
KSBcCisgICAgbWFjcm8oTG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVu
Y2UsIGxvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBCb29sLCBi
b29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFBsdWdpbnNFbmFibGVkLCBwbHVnaW5zRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVz
LCBqYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFj
cm8oT2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLCBvZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oTG9jYWxTdG9y
YWdlRW5hYmxlZCwgbG9jYWxTdG9yYWdlRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAg
IG1hY3JvKERhdGFiYXNlc0VuYWJsZWQsIGRhdGFiYXNlc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKKyAgICBtYWNybyhYU1NBdWRpdG9yRW5hYmxlZCwgeHNzQXVkaXRvckVuYWJsZWQsIEJv
b2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhGcmFtZUZsYXR0ZW5pbmdFbmFibGVkLCBmcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkdf
RU5BQkxFRCkgXAorICAgIG1hY3JvKERldmVsb3BlckV4dHJhc0VuYWJsZWQsIGRldmVsb3BlckV4
dHJhc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oSmF2YVNjcmlwdEV4
cGVyaW1lbnRzRW5hYmxlZCwgamF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKKyAgICBtYWNybyhQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBwcml2YXRlQnJv
d3NpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFRleHRBcmVhc0Fy
ZVJlc2l6YWJsZSwgdGV4dEFyZWFzQXJlUmVzaXphYmxlLCBCb29sLCBib29sLCBERUZBVUxUX1RF
WFRfQVJFQVNfQVJFX1JFU0laQUJMRSkgXAorICAgIG1hY3JvKEphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHksIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHks
IEJvb2wsIGJvb2wsIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJ
Q0FMTFkpIFwKKyAgICBtYWNybyhIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQsIGh5cGVybGlua0F1
ZGl0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKE5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzLCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKKyAgICBtYWNybyhBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhGb3JjZUNv
bXBvc2l0aW5nTW9kZSwgZm9yY2VDb21wb3NpdGluZ01vZGUsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
CisgICAgbWFjcm8oQWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWREcmF3aW5n
RW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9BQ0NFTEVSQVRFRF9EUkFXSU5HX0VOQUJMRUQp
IFwKKyAgICBtYWNybyhDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nLCBjYW52YXNVc2VzQWNj
ZWxlcmF0ZWREcmF3aW5nLCBCb29sLCBib29sLCBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJB
VEVEX0RSQVdJTkcpIFwKKyAgICBtYWNybyhDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlLCBjb21w
b3NpdGluZ0JvcmRlcnNWaXNpYmxlLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKENv
bXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZSwgY29tcG9zaXRpbmdSZXBhaW50Q291bnRl
cnNWaXNpYmxlLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFRpbGVkU2Nyb2xsaW5n
SW5kaWNhdG9yVmlzaWJsZSwgdGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlLCBCb29sLCBi
b29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFdlYkdMRW5hYmxlZCwgd2ViR0xFbmFibGVkLCBCb29s
LCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oTXVsdGl0aHJlYWRlZFdlYkdMRW5hYmxlZCwgbXVs
dGl0aHJlYWRlZFdlYkdMRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhG
b3JjZVNvZnR3YXJlV2ViR0xSZW5kZXJpbmcsIGZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZywg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZCwgYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAg
bWFjcm8oQ1NTUmVnaW9uc0VuYWJsZWQsIGNzc1JlZ2lvbnNFbmFibGVkLCBCb29sLCBib29sLCB0
cnVlKSBcCisgICAgbWFjcm8oQ1NTQ29tcG9zaXRpbmdFbmFibGVkLCBjc3NDb21wb3NpdGluZ0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhGb3JjZUZUUERpcmVjdG9yeUxp
c3RpbmdzLCBmb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzLCBCb29sLCBib29sLCBmYWxzZSkgXAor
ICAgIG1hY3JvKFRhYnNUb0xpbmtzLCB0YWJzVG9MaW5rcywgQm9vbCwgYm9vbCwgREVGQVVMVF9X
RUJLSVRfVEFCU1RPTElOS1NfRU5BQkxFRCkgXAorICAgIG1hY3JvKEROU1ByZWZldGNoaW5nRW5h
YmxlZCwgZG5zUHJlZmV0Y2hpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1h
Y3JvKFdlYkFyY2hpdmVEZWJ1Z01vZGVFbmFibGVkLCB3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhMb2NhbEZpbGVDb250ZW50U25pZmZp
bmdFbmFibGVkLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBCb29sLCBib29sLCBm
YWxzZSkgXAorICAgIG1hY3JvKFVzZXNQYWdlQ2FjaGUsIHVzZXNQYWdlQ2FjaGUsIEJvb2wsIGJv
b2wsIHRydWUpIFwKKyAgICBtYWNybyhQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMsIHBhZ2VDYWNo
ZVN1cHBvcnRzUGx1Z2lucywgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkLCBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCwgQm9vbCwgYm9v
bCwgdHJ1ZSkgXAorICAgIG1hY3JvKFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCwgcGFnaW5h
dGVEdXJpbmdMYXlvdXRFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKERP
TVBhc3RlQWxsb3dlZCwgZG9tUGFzdGVBbGxvd2VkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAg
IG1hY3JvKEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIGphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU2hvdWxkUHJpbnRCYWNr
Z3JvdW5kcywgc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcywgQm9vbCwgYm9vbCwgREVGQVVMVF9TSE9V
TERfUFJJTlRfQkFDS0dST1VORFMpIFwKKyAgICBtYWNybyhGdWxsU2NyZWVuRW5hYmxlZCwgZnVs
bFNjcmVlbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQsIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2Vi
U2VjdXJpdHlFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oQWxsb3dVbml2
ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMsIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxz
LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcywgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkgXAor
ICAgIG1hY3JvKEFWRm91bmRhdGlvbkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0
dXJlLCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwgQm9vbCwgYm9vbCwgREVGQVVM
VF9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19VU0VSX0dFU1RVUkUpIFwKKyAgICBtYWNybyhNZWRp
YVBsYXliYWNrQWxsb3dzSW5saW5lLCBtZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lLCBCb29sLCBi
b29sLCBERUZBVUxUX01FRElBX1BMQVlCQUNLX0FMTE9XU19JTkxJTkUpIFwKKyAgICBtYWNybyhN
ZWRpYVBsYXliYWNrQWxsb3dzQWlyUGxheSwgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXksIEJv
b2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCwgaW5z
cGVjdG9yU3RhcnRzQXR0YWNoZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhTaG93
c1Rvb2xUaXBPdmVyVHJ1bmNhdGVkVGV4dCwgc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oTW9ja1Njcm9sbGJhcnNFbmFibGVkLCBt
b2NrU2Nyb2xsYmFyc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oV2Vi
QXVkaW9FbmFibGVkLCB3ZWJBdWRpb0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBt
YWNybyhBcHBsaWNhdGlvbkNocm9tZU1vZGVFbmFibGVkLCBhcHBsaWNhdGlvbkNocm9tZU1vZGUs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU3VwcHJlc3Nlc0luY3JlbWVudGFsUmVu
ZGVyaW5nLCBzdXBwcmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCisgICAgbWFjcm8oQmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQsIGJhY2tzcGFjZUtl
eU5hdmlnYXRpb25FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oQ2FyZXRC
cm93c2luZ0VuYWJsZWQsIGNhcmV0QnJvd3NpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKFNob3VsZERpc3BsYXlTdWJ0aXRsZXMsIHNob3VsZERpc3BsYXlTdWJ0aXRs
ZXMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU2hvdWxkRGlzcGxheUNhcHRpb25z
LCBzaG91bGREaXNwbGF5Q2FwdGlvbnMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8o
U2hvdWxkRGlzcGxheVRleHREZXNjcmlwdGlvbnMsIHNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRp
b25zLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKE5vdGlmaWNhdGlvbnNFbmFibGVk
LCBub3RpZmljYXRpb25zRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKFNo
b3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
biwgQm9vbCwgYm9vbCwgREVGQVVMVF9TSE9VTERfUkVTUEVDVF9JTUFHRV9PUklFTlRBVElPTikg
XAorICAgIG1hY3JvKFdhbnRzQmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IsIHdhbnRz
QmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisg
ICAgbWFjcm8oUmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCwgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKERpYWdub3N0aWNMb2dn
aW5nRW5hYmxlZCwgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCwgYXN5
bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKEFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFs
bFBsdWdpbnMsIGFzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBs
dWdpbnMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQXJ0aWZpY2lhbFBsdWdpbklu
aXRpYWxpemF0aW9uRGVsYXlFbmFibGVkLCBhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25E
ZWxheUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oVGFiVG9MaW5rc0Vu
YWJsZWQsIHRhYlRvTGlua3NFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3Jv
KEludGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkLCBpbnRlcmFjdGl2ZUZvcm1WYWxpZGF0
aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhTY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkLCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNjcm9sbEFuaW1hdG9yRW5hYmxlZCwg
c2Nyb2xsQW5pbWF0b3JFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX1dFQktJVF9TQ1JPTExf
QU5JTUFUT1JfRU5BQkxFRCkgXAorICAgIG1hY3JvKFNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFi
bGVkLCBzY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9T
Q1JFRU5fRk9OVF9TVUJTVElUVVRJT05fRU5BQkxFRCkgXAorICAgIG1hY3JvKENvb2tpZUVuYWJs
ZWQsIGNvb2tpZUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhQbHVnSW5T
bmFwc2hvdHRpbmdFbmFibGVkLCBwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkLCBCb29sLCBib29s
LCBmYWxzZSkgXAorICAgIG1hY3JvKFNuYXBzaG90QWxsUGx1Z0lucywgc25hcHNob3RBbGxQbHVn
SW5zLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEF1dG9zdGFydE9yaWdpblBsdWdJ
blNuYXBzaG90dGluZ0VuYWJsZWQsIGF1dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhQcmltYXJ5UGx1Z0luU25hcHNo
b3REZXRlY3Rpb25FbmFibGVkLCBwcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVk
LCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oUERGUGx1Z2luRW5hYmxlZCwgcGRmUGx1
Z2luRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9QREZQTFVHSU5fRU5BQkxFRCkgXAorICAg
IG1hY3JvKFVzZXNFbmNvZGluZ0RldGVjdG9yLCB1c2VzRW5jb2RpbmdEZXRlY3RvciwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhUZXh0QXV0b3NpemluZ0VuYWJsZWQsIHRleHRBdXRv
c2l6aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBZ2dyZXNzaXZl
VGlsZVJldGVudGlvbkVuYWJsZWQsIGFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCwgQm9v
bCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhUZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9u
RW5hYmxlZCwgdGVtcG9yYXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQsIEJvb2wsIGJvb2ws
IERFRkFVTFRfVEVNUE9SQVJZX1RJTEVfQ09IT1JUX1JFVEVOVElPTl9FTkFCTEVEKSBcCisgICAg
bWFjcm8oUVRLaXRFbmFibGVkLCBpc1FUS2l0RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAor
ICAgIG1hY3JvKExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkLCBsb2dzUGFn
ZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAg
ICBtYWNybyhQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCwgcGFn
ZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRy
dWUpIFwKKyAgICBtYWNybyhTbWFydEluc2VydERlbGV0ZUVuYWJsZWQsIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQsIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU2hvd3NVUkxzSW5Ub29sVGlwc0VuYWJsZWQsIHNo
b3dzVVJMc0luVG9vbFRpcHNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3Jv
KEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQsIGFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCisgICAgbWFjcm8oSGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQsIGhpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0hJRERF
Tl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HX0VOQUJMRUQpIFwKKyAgICBtYWNybyhIaWRkZW5Q
YWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQsIGhpZGRlblBhZ2VDU1NBbmltYXRpb25T
dXNwZW5zaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9ISURERU5fUEFHRV9DU1NfQU5J
TUFUSU9OX1NVU1BFTlNJT05fRU5BQkxFRCkgXAorICAgIG1hY3JvKExvd1Bvd2VyVmlkZW9BdWRp
b0J1ZmZlclNpemVFbmFibGVkLCBsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQs
IHRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3Jv
KFNpbXBsZUxpbmVMYXlvdXRFbmFibGVkLCBzaW1wbGVMaW5lTGF5b3V0RW5hYmxlZCwgQm9vbCwg
Ym9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkLCBzaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKKyAgICBtYWNybyhTdWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkLCBzdWJw
aXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAg
bWFjcm8oQmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UsIGJhY2tncm91bmRTaG91bGRF
eHRlbmRCZXlvbmRQYWdlLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKE1lZGlhU3Ry
ZWFtRW5hYmxlZCwgbWVkaWFTdHJlYW1FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAg
IG1hY3JvKFVzZUxlZ2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3IsIHVzZUxl
Z2FjeVRleHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3IsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCisgICAgbWFjcm8oU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBzcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oTWVkaWFTb3VyY2VFbmFi
bGVkLCBtZWRpYVNvdXJjZUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhW
aWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQsIHZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhTaG91bGRDb252ZXJ0UG9zaXRpb25TdHls
ZU9uQ29weSwgc2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCisgICAgbWFjcm8oU3RhbmRhbG9uZSwgc3RhbmRhbG9uZSwgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKKyAgICBtYWNybyhUZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCwgdGVsZXBob25l
TnVtYmVyUGFyc2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQWx3
YXlzVXNlQmFzZWxpbmVPZlByaW1hcnlGb250LCBhbHdheXNVc2VCYXNlbGluZU9mUHJpbWFyeUZv
bnQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQWxsb3dNdWx0aUVsZW1lbnRJbXBs
aWNpdFN1Ym1pc3Npb24sIGFsbG93TXVsdGlFbGVtZW50SW1wbGljaXRTdWJtaXNzaW9uLCBCb29s
LCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEFsd2F5c1VzZUFjY2VsZXJhdGVkT3ZlcmZsb3dT
Y3JvbGwsIGFsd2F5c1VzZUFjY2VsZXJhdGVkT3ZlcmZsb3dTY3JvbGwsIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCisgICAgbWFjcm8oUGFzc3dvcmRFY2hvRW5hYmxlZCwgcGFzc3dvcmRFY2hvRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9QQVNTV09SRF9FQ0hPX0VOQUJMRUQpIFwKKyAgICBtYWNy
byhJbWFnZUNvbnRyb2xzRW5hYmxlZCwgaW1hZ2VDb250cm9sc0VuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCisgICAgbWFjcm8oRW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50LCBlbmFi
bGVJbmhlcml0VVJJUXVlcnlDb21wb25lbnQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFj
cm8oU2VydmljZUNvbnRyb2xzRW5hYmxlZCwgc2VydmljZUNvbnRyb2xzRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKKworI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVO
Q0UobWFjcm8pIFwKKyAgICBtYWNybyhQREZTY2FsZUZhY3RvciwgcGRmU2NhbGVGYWN0b3IsIERv
dWJsZSwgZG91YmxlLCAwKSBcCisgICAgbWFjcm8oSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVz
c2lvblRpbWVvdXQsIGluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0LCBEb3Vi
bGUsIGRvdWJsZSwgNSkgXAorICAgIG1hY3JvKE1pbmltdW1Gb250U2l6ZSwgbWluaW11bUZvbnRT
aXplLCBEb3VibGUsIGRvdWJsZSwgMCkgXAorICAgIG1hY3JvKE1pbmltdW1Mb2dpY2FsRm9udFNp
emUsIG1pbmltdW1Mb2dpY2FsRm9udFNpemUsIERvdWJsZSwgZG91YmxlLCA5KSBcCisgICAgbWFj
cm8oTWluaW11bVpvb21Gb250U2l6ZSwgbWluaW11bVpvb21Gb250U2l6ZSwgRG91YmxlLCBkb3Vi
bGUsIERFRkFVTFRfTUlOSU1VTV9GT05UX1pPT01fU0laRSkgXAorICAgIG1hY3JvKERlZmF1bHRG
b250U2l6ZSwgZGVmYXVsdEZvbnRTaXplLCBEb3VibGUsIGRvdWJsZSwgMTYpIFwKKyAgICBtYWNy
byhEZWZhdWx0Rml4ZWRGb250U2l6ZSwgZGVmYXVsdEZpeGVkRm9udFNpemUsIERvdWJsZSwgZG91
YmxlLCAxMykgXAorICAgIG1hY3JvKExheW91dEludGVydmFsLCBsYXlvdXRJbnRlcnZhbCwgRG91
YmxlLCBkb3VibGUsIC0xKSBcCisgICAgbWFjcm8oTWF4UGFyc2VEdXJhdGlvbiwgbWF4UGFyc2VE
dXJhdGlvbiwgRG91YmxlLCBkb3VibGUsIC0xKSBcCisgICAgbWFjcm8oUGFzc3dvcmRFY2hvRHVy
YXRpb24sIHBhc3N3b3JkRWNob0R1cmF0aW9uLCBEb3VibGUsIGRvdWJsZSwgMikgXAorICAgIFwK
KworI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfVUlOVDMyX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAg
ICBtYWNybyhGb250U21vb3RoaW5nTGV2ZWwsIGZvbnRTbW9vdGhpbmdMZXZlbCwgVUludDMyLCB1
aW50MzJfdCwgRm9udFNtb290aGluZ0xldmVsTWVkaXVtKSBcCisgICAgbWFjcm8oTGF5b3V0RmFs
bGJhY2tXaWR0aCwgbGF5b3V0RmFsbGJhY2tXaWR0aCwgVUludDMyLCB1aW50MzJfdCwgOTgwKSBc
CisgICAgbWFjcm8oRGV2aWNlV2lkdGgsIGRldmljZVdpZHRoLCBVSW50MzIsIHVpbnQzMl90LCAw
KSBcCisgICAgbWFjcm8oRGV2aWNlSGVpZ2h0LCBkZXZpY2VIZWlnaHQsIFVJbnQzMiwgdWludDMy
X3QsIDApIFwKKyAgICBtYWNybyhQREZEaXNwbGF5TW9kZSwgcGRmRGlzcGxheU1vZGUsIFVJbnQz
MiwgdWludDMyX3QsIDEpIFwKKyAgICBtYWNybyhFZGl0YWJsZUxpbmtCZWhhdmlvciwgZWRpdGFi
bGVMaW5rQmVoYXZpb3IsIFVJbnQzMiwgdWludDMyX3QsIFdlYkNvcmU6OkVkaXRhYmxlTGlua05l
dmVyTGl2ZSkgXAorICAgIG1hY3JvKEluc3BlY3RvckF0dGFjaGVkSGVpZ2h0LCBpbnNwZWN0b3JB
dHRhY2hlZEhlaWdodCwgVUludDMyLCB1aW50MzJfdCwgMzAwKSBcCisgICAgbWFjcm8oSW5zcGVj
dG9yQXR0YWNoZWRXaWR0aCwgaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCwgVUludDMyLCB1aW50MzJf
dCwgNzUwKSBcCisgICAgbWFjcm8oSW5zcGVjdG9yQXR0YWNobWVudFNpZGUsIGluc3BlY3RvckF0
dGFjaG1lbnRTaWRlLCBVSW50MzIsIHVpbnQzMl90LCAwKSBcCisgICAgbWFjcm8oU3RvcmFnZUJs
b2NraW5nUG9saWN5LCBzdG9yYWdlQmxvY2tpbmdQb2xpY3ksIFVJbnQzMiwgdWludDMyX3QsIFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlKSBcCisgICAgXAor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCisjZGVmaW5lIERFRkFV
TFRfQ1VSU0lWRV9GT05UX0ZBTUlMWSAiU25lbGwgUm91bmRoYW5kIgorI2RlZmluZSBERUZBVUxU
X1BJQ1RPR1JBUEhfRk9OVF9GQU1JTFkgIkFwcGxlQ29sb3JFbW9qaSIKKyNlbHNlCisjZGVmaW5l
IERFRkFVTFRfQ1VSU0lWRV9GT05UX0ZBTUlMWSAiQXBwbGUgQ2hhbmNlcnkiCisjZGVmaW5lIERF
RkFVTFRfUElDVE9HUkFQSF9GT05UX0ZBTUlMWSAiQXBwbGUgQ29sb3IgRW1vamkiCisjZW5kaWYK
KworCisjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3Jv
KSBcCisgICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRGYW1pbHksIFN0
cmluZywgU3RyaW5nLCAiVGltZXMiKSBcCisgICAgbWFjcm8oQ3Vyc2l2ZUZvbnRGYW1pbHksIGN1
cnNpdmVGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgREVGQVVMVF9DVVJTSVZFX0ZPTlRfRkFN
SUxZKSBcCisgICAgbWFjcm8oRmFudGFzeUZvbnRGYW1pbHksIGZhbnRhc3lGb250RmFtaWx5LCBT
dHJpbmcsIFN0cmluZywgIlBhcHlydXMiKSBcCisgICAgbWFjcm8oRml4ZWRGb250RmFtaWx5LCBm
aXhlZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiQ291cmllciIpIFwKKyAgICBtYWNybyhT
YW5zU2VyaWZGb250RmFtaWx5LCBzYW5zU2VyaWZGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywg
IkhlbHZldGljYSIpIFwKKyAgICBtYWNybyhTZXJpZkZvbnRGYW1pbHksIHNlcmlmRm9udEZhbWls
eSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIpIFwKKyAgICBtYWNybyhQaWN0b2dyYXBoRm9udEZh
bWlseSwgcGljdG9ncmFwaEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiQXBwbGUgQ29sb3Ig
RW1vamkiKSBcCisgICAgXAorCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkK
KworI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykg
XAorICAgIG1hY3JvKFN0YW5kYXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJp
bmcsIFN0cmluZywgIlRpbWVzIikgXAorICAgIG1hY3JvKEN1cnNpdmVGb250RmFtaWx5LCBjdXJz
aXZlRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJDb21pYyBTYW5zIE1TIikgXAorICAgIG1h
Y3JvKEZhbnRhc3lGb250RmFtaWx5LCBmYW50YXN5Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcs
ICJJbXBhY3QiKSBcCisgICAgbWFjcm8oRml4ZWRGb250RmFtaWx5LCBmaXhlZEZvbnRGYW1pbHks
IFN0cmluZywgU3RyaW5nLCAiQ291cmllciBOZXciKSBcCisgICAgbWFjcm8oU2Fuc1NlcmlmRm9u
dEZhbWlseSwgc2Fuc1NlcmlmRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJIZWx2ZXRpY2Ei
KSBcCisgICAgbWFjcm8oU2VyaWZGb250RmFtaWx5LCBzZXJpZkZvbnRGYW1pbHksIFN0cmluZywg
U3RyaW5nLCAiVGltZXMiKSBcCisgICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1pbHksIHBpY3Rv
Z3JhcGhGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVzIikgXAorICAgIFwKKworI2Vu
ZGlmCisKKyNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJFTkNFKG1hY3JvKSBc
CisgICAgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAg
ICBtYWNybyhEZWZhdWx0VGV4dEVuY29kaW5nTmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUs
IFN0cmluZywgU3RyaW5nLCAiSVNPLTg4NTktMSIpIFwKKyAgICBtYWNybyhGVFBEaXJlY3RvcnlU
ZW1wbGF0ZVBhdGgsIGZ0cERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgU3RyaW5nLCBTdHJpbmcsICIi
KSBcCisgICAgXAorCisjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRV9O
T1RfSU5fV0VCQ09SRShtYWNybykgXAorICAgIG1hY3JvKEluc3BlY3RvcldpbmRvd0ZyYW1lLCBp
bnNwZWN0b3JXaW5kb3dGcmFtZSwgU3RyaW5nLCBTdHJpbmcsICIiKSBcCisgICAgXAorCisjZGVm
aW5lIEZPUl9FQUNIX1dFQktJVF9QUkVGRVJFTkNFKG1hY3JvKSBcCisgICAgRk9SX0VBQ0hfV0VC
S0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAorICAgIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVf
UFJFRkVSRU5DRShtYWNybykgXAorICAgIEZPUl9FQUNIX1dFQktJVF9VSU5UMzJfUFJFRkVSRU5D
RShtYWNybykgXAorICAgIEZPUl9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRShtYWNybykg
XAorICAgIEZPUl9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRV9OT1RfSU5fV0VCQ09SRSht
YWNybykgXAorICAgIFwKKworbmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5IHsKKworI2RlZmlu
ZSBERUNMQVJFX0tFWV9HRVRURVJTKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUs
IERlZmF1bHRWYWx1ZSkgY29uc3QgU3RyaW5nJiBLZXlMb3dlciMjS2V5KCk7CisKK0ZPUl9FQUNI
X1dFQktJVF9QUkVGRVJFTkNFKERFQ0xBUkVfS0VZX0dFVFRFUlMpCisKKyN1bmRlZiBERUNMQVJF
X0tFWV9HRVRURVJTCisKK30gLy8gbmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5CisKK3N0cnVj
dCBXZWJQcmVmZXJlbmNlc1N0b3JlIHsKKyAgICBXZWJQcmVmZXJlbmNlc1N0b3JlKCk7CisKKyAg
ICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHN0YXRpYyBi
b29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlByZWZlcmVuY2VzU3RvcmUmKTsK
KworICAgIC8vIE5PVEU6IFRoZSBnZXR0ZXJzIGluIHRoaXMgY2xhc3MgaGF2ZSBub24tc3RhbmRh
cmQgbmFtZXMgdG8gYWlkIGluIHRoZSB1c2Ugb2YgdGhlIHByZWZlcmVuY2UgbWFjcm9zLgorCisg
ICAgYm9vbCBzZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSk7CisgICAgU3RyaW5nIGdldFN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5KSBjb25zdDsKKworICAgIGJvb2wgc2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCBib29sIHZhbHVlKTsKKyAgICBib29sIGdldEJvb2xWYWx1ZUZvcktleShjb25zdCBT
dHJpbmcmIGtleSkgY29uc3Q7CisKKyAgICBib29sIHNldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSk7CisgICAgdWludDMyX3QgZ2V0VUludDMyVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworCisgICAgYm9vbCBzZXREb3VibGVW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKTsKKyAgICBkb3VibGUg
Z2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OworCisgICAgdm9p
ZCBzZXRPdmVycmlkZURlZmF1bHRzU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IFN0cmluZyB2YWx1ZSk7CisgICAgdm9pZCBzZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKTsKKyAgICB2b2lkIHNldE92ZXJyaWRl
RGVmYXVsdHNVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QgdmFs
dWUpOworICAgIHZvaWQgc2V0T3ZlcnJpZGVEZWZhdWx0c0RvdWJsZVZhbHVlRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5LCBkb3VibGUgdmFsdWUpOworCisgICAgLy8gRm9yIFdlYktpdFRlc3RSdW5u
ZXIgdXNhZ2UuCisgICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVCb29sVmFsdWVGb3JLZXkoY29uc3Qg
U3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOworICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RSdW5u
ZXJPdmVycmlkZXMoKTsKKworICAgIHN0cnVjdCBWYWx1ZSB7CisgICAgICAgIGVudW0gY2xhc3Mg
VHlwZSB7CisgICAgICAgICAgICBOb25lLAorICAgICAgICAgICAgU3RyaW5nLAorICAgICAgICAg
ICAgQm9vbCwKKyAgICAgICAgICAgIFVJbnQzMiwKKyAgICAgICAgICAgIERvdWJsZSwKKyAgICAg
ICAgfTsKKworICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0
OworICAgICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBWYWx1
ZSYpOworCisgICAgICAgIGV4cGxpY2l0IFZhbHVlKCkgOiBtX3R5cGUoVHlwZTo6Tm9uZSkgeyB9
CisgICAgICAgIGV4cGxpY2l0IFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90eXBlKFR5
cGU6OlN0cmluZyksIG1fc3RyaW5nKHZhbHVlKSB7IH0KKyAgICAgICAgZXhwbGljaXQgVmFsdWUo
Ym9vbCB2YWx1ZSkgOiBtX3R5cGUoVHlwZTo6Qm9vbCksIG1fYm9vbCh2YWx1ZSkgeyB9CisgICAg
ICAgIGV4cGxpY2l0IFZhbHVlKHVpbnQzMl90IHZhbHVlKSA6IG1fdHlwZShUeXBlOjpVSW50MzIp
LCBtX3VpbnQzMih2YWx1ZSkgeyB9CisgICAgICAgIGV4cGxpY2l0IFZhbHVlKGRvdWJsZSB2YWx1
ZSkgOiBtX3R5cGUoVHlwZTo6RG91YmxlKSwgbV9kb3VibGUodmFsdWUpIHsgfQorCisgICAgICAg
IFZhbHVlKFZhbHVlJiYgdmFsdWUpCisgICAgICAgICAgICA6IG1fdHlwZSh2YWx1ZS5tX3R5cGUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgICAgICBj
YXNlIFR5cGU6Ok5vbmU6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IFR5cGU6OlN0cmluZzoKKyAgICAgICAgICAgICAgICBuZXcgKCZtX3N0cmluZykgU3RyaW5nKHN0
ZDo6bW92ZSh2YWx1ZS5tX3N0cmluZykpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBUeXBlOjpCb29sOgorICAgICAgICAgICAgICAgIG1fYm9vbCA9IHZhbHVlLm1f
Ym9vbDsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVHlwZTo6VUlu
dDMyOgorICAgICAgICAgICAgICAgIG1fdWludDMyID0gdmFsdWUubV91aW50MzI7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFR5cGU6OkRvdWJsZToKKyAgICAgICAg
ICAgICAgICBtX2RvdWJsZSA9IHZhbHVlLm1fZG91YmxlOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgVmFsdWUmIG9wZXJhdG9yPShj
b25zdCBWYWx1ZSYgb3RoZXIpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzID09ICZv
dGhlcikKKyAgICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICBkZXN0cm95KCk7CisKKyAgICAgICAgICAgIG1fdHlwZSA9IG90aGVyLm1fdHlw
ZTsKKyAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgICAgICBjYXNlIFR5cGU6
Ok5vbmU6CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFR5cGU6OlN0
cmluZzoKKyAgICAgICAgICAgICAgICBuZXcgKCZtX3N0cmluZykgU3RyaW5nKG90aGVyLm1fc3Ry
aW5nKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVHlwZTo6Qm9v
bDoKKyAgICAgICAgICAgICAgICBtX2Jvb2wgPSBvdGhlci5tX2Jvb2w7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFR5cGU6OlVJbnQzMjoKKyAgICAgICAgICAgICAg
ICBtX3VpbnQzMiA9IG90aGVyLm1fdWludDMyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBUeXBlOjpEb3VibGU6CisgICAgICAgICAgICAgICAgbV9kb3VibGUgPSBv
dGhlci5tX2RvdWJsZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAKKyAgICAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgICAgfQorCisgICAgICAgIH5WYWx1
ZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGRlc3Ryb3koKTsKKyAgICAgICAgfQorCisgICAg
ICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCisgICAgICAgIFN0cmlu
ZyBhc1N0cmluZygpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUg
PT0gVHlwZTo6U3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybiBtX3N0cmluZzsKKyAgICAgICAg
fQorCisgICAgICAgIGJvb2wgYXNCb29sKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
QVNTRVJUKG1fdHlwZSA9PSBUeXBlOjpCb29sKTsKKyAgICAgICAgICAgIHJldHVybiBtX2Jvb2w7
CisgICAgICAgIH0KKworICAgICAgICB1aW50MzJfdCBhc1VJbnQzMigpIGNvbnN0CisgICAgICAg
IHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6VUludDMyKTsKKyAgICAgICAg
ICAgIHJldHVybiBtX3VpbnQzMjsKKyAgICAgICAgfQorCisgICAgICAgIGRvdWJsZSBhc0RvdWJs
ZSgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6
RG91YmxlKTsKKyAgICAgICAgICAgIHJldHVybiBtX2RvdWJsZTsKKyAgICAgICAgfQorCisgICAg
cHJpdmF0ZToKKyAgICAgICAgdm9pZCBkZXN0cm95KCkKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKG1fdHlwZSA9PSBUeXBlOjpTdHJpbmcpCisgICAgICAgICAgICAgICAgbV9zdHJpbmcuflN0
cmluZygpOworICAgICAgICB9CisKKyAgICAgICAgVHlwZSBtX3R5cGU7CisgICAgICAgIHVuaW9u
IHsKKyAgICAgICAgICAgIFN0cmluZyBtX3N0cmluZzsKKyAgICAgICAgICAgIGJvb2wgbV9ib29s
OworICAgICAgICAgICAgdWludDMyX3QgbV91aW50MzI7CisgICAgICAgICAgICBkb3VibGUgbV9k
b3VibGU7CisgICAgICAgIH07CisgICAgfTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcs
IFZhbHVlPiBWYWx1ZU1hcDsKKyAgICBWYWx1ZU1hcCBtX3ZhbHVlczsKKyAgICBWYWx1ZU1hcCBt
X292ZXJyaWRlbkRlZmF1bHRzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJQcmVmZXJlbmNlc1N0b3JlX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAkod29ya2luZyBjb3B5KQorKysgU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAkod29ya2luZyBj
b3B5KQpAQCAtMjMsMTcgKzIzLDggQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIFdlYlByZWZlcmVuY2VzU3RvcmVfaAotI2RlZmluZSBXZWJQcmVm
ZXJlbmNlc1N0b3JlX2gKLQotI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgotI2luY2x1ZGUg
IkFyZ3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4K
LSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7
CisjaWZuZGVmIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnNfaAorI2RlZmluZSBXZWJQcmVmZXJl
bmNlc0RlZmluaXRpb25zX2gKIAogLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFt
ZVVwcGVyLCBUeXBlTmFtZSwgRGVmYXVsdFZhbHVlKSAKIApAQCAtMjk5LDE2NCArMjkwLDUgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgRk9SX0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJFTkNF
X05PVF9JTl9XRUJDT1JFKG1hY3JvKSBcCiAgICAgXAogCi1uYW1lc3BhY2UgV2ViUHJlZmVyZW5j
ZXNLZXkgewotCi0jZGVmaW5lIERFQ0xBUkVfS0VZX0dFVFRFUlMoS2V5VXBwZXIsIEtleUxvd2Vy
LCBUeXBlTmFtZSwgVHlwZSwgRGVmYXVsdFZhbHVlKSBjb25zdCBTdHJpbmcmIEtleUxvd2VyIyNL
ZXkoKTsKLQotRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVDTEFSRV9LRVlfR0VUVEVSUykK
LQotI3VuZGVmIERFQ0xBUkVfS0VZX0dFVFRFUlMKLQotfSAvLyBuYW1lc3BhY2UgV2ViUHJlZmVy
ZW5jZXNLZXkKLQotc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewotICAgIFdlYlByZWZlcmVu
Y2VzU3RvcmUoKTsKLQotICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJikgY29u
c3Q7Ci0gICAgc3RhdGljIGJvb2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYpOwotCi0gICAgLy8gTk9URTogVGhlIGdldHRlcnMgaW4gdGhpcyBjbGFz
cyBoYXZlIG5vbi1zdGFuZGFyZCBuYW1lcyB0byBhaWQgaW4gdGhlIHVzZSBvZiB0aGUgcHJlZmVy
ZW5jZSBtYWNyb3MuCi0KLSAgICBib29sIHNldFN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5LCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKLSAgICBTdHJpbmcgZ2V0U3RyaW5nVmFsdWVG
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OwotCi0gICAgYm9vbCBzZXRCb29sVmFsdWVG
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOwotICAgIGJvb2wgZ2V0Qm9vbFZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKLQotICAgIGJvb2wgc2V0VUludDMy
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKTsKLSAgICB1aW50
MzJfdCBnZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3Q7Ci0KLSAg
ICBib29sIHNldERvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBkb3VibGUgdmFs
dWUpOwotICAgIGRvdWJsZSBnZXREb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSkg
Y29uc3Q7Ci0KLSAgICB2b2lkIHNldE92ZXJyaWRlRGVmYXVsdHNTdHJpbmdWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmIGtleSwgU3RyaW5nIHZhbHVlKTsKLSAgICB2b2lkIHNldE92ZXJyaWRlRGVm
YXVsdHNCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgdmFsdWUpOwotICAg
IHZvaWQgc2V0T3ZlcnJpZGVEZWZhdWx0c1VJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCB1aW50MzJfdCB2YWx1ZSk7Ci0gICAgdm9pZCBzZXRPdmVycmlkZURlZmF1bHRzRG91Ymxl
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSB2YWx1ZSk7Ci0KLSAgICAvLyBG
b3IgV2ViS2l0VGVzdFJ1bm5lciB1c2FnZS4KLSAgICBzdGF0aWMgdm9pZCBvdmVycmlkZUJvb2xW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSk7Ci0gICAgc3RhdGljIHZv
aWQgcmVtb3ZlVGVzdFJ1bm5lck92ZXJyaWRlcygpOwotCi0gICAgc3RydWN0IFZhbHVlIHsKLSAg
ICAgICAgZW51bSBjbGFzcyBUeXBlIHsKLSAgICAgICAgICAgIE5vbmUsCi0gICAgICAgICAgICBT
dHJpbmcsCi0gICAgICAgICAgICBCb29sLAotICAgICAgICAgICAgVUludDMyLAotICAgICAgICAg
ICAgRG91YmxlLAotICAgICAgICB9OwotCi0gICAgICAgIHZvaWQgZW5jb2RlKElQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7Ci0gICAgICAgIHN0YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIFZhbHVlJik7Ci0KLSAgICAgICAgZXhwbGljaXQgVmFsdWUoKSA6IG1fdHlw
ZShUeXBlOjpOb25lKSB7IH0KLSAgICAgICAgZXhwbGljaXQgVmFsdWUoY29uc3QgU3RyaW5nJiB2
YWx1ZSkgOiBtX3R5cGUoVHlwZTo6U3RyaW5nKSwgbV9zdHJpbmcodmFsdWUpIHsgfQotICAgICAg
ICBleHBsaWNpdCBWYWx1ZShib29sIHZhbHVlKSA6IG1fdHlwZShUeXBlOjpCb29sKSwgbV9ib29s
KHZhbHVlKSB7IH0KLSAgICAgICAgZXhwbGljaXQgVmFsdWUodWludDMyX3QgdmFsdWUpIDogbV90
eXBlKFR5cGU6OlVJbnQzMiksIG1fdWludDMyKHZhbHVlKSB7IH0KLSAgICAgICAgZXhwbGljaXQg
VmFsdWUoZG91YmxlIHZhbHVlKSA6IG1fdHlwZShUeXBlOjpEb3VibGUpLCBtX2RvdWJsZSh2YWx1
ZSkgeyB9Ci0KLSAgICAgICAgVmFsdWUoVmFsdWUmJiB2YWx1ZSkKLSAgICAgICAgICAgIDogbV90
eXBlKHZhbHVlLm1fdHlwZSkKLSAgICAgICAgewotICAgICAgICAgICAgc3dpdGNoIChtX3R5cGUp
IHsKLSAgICAgICAgICAgIGNhc2UgVHlwZTo6Tm9uZToKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgVHlwZTo6U3RyaW5nOgotICAgICAgICAgICAgICAgIG5ldyAoJm1f
c3RyaW5nKSBTdHJpbmcoc3RkOjptb3ZlKHZhbHVlLm1fc3RyaW5nKSk7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OkJvb2w6Ci0gICAgICAgICAgICAgICAg
bV9ib29sID0gdmFsdWUubV9ib29sOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBUeXBlOjpVSW50MzI6Ci0gICAgICAgICAgICAgICAgbV91aW50MzIgPSB2YWx1ZS5t
X3VpbnQzMjsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgVHlwZTo6
RG91YmxlOgotICAgICAgICAgICAgICAgIG1fZG91YmxlID0gdmFsdWUubV9kb3VibGU7Ci0gICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBW
YWx1ZSYgb3BlcmF0b3I9KGNvbnN0IFZhbHVlJiBvdGhlcikKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKHRoaXMgPT0gJm90aGVyKQotICAgICAgICAgICAgICAgIHJldHVybiAqdGhpczsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGRlc3Ryb3koKTsKLQotICAgICAgICAgICAgbV90
eXBlID0gb3RoZXIubV90eXBlOwotICAgICAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICAg
ICAgICAgIGNhc2UgVHlwZTo6Tm9uZToKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgVHlwZTo6U3RyaW5nOgotICAgICAgICAgICAgICAgIG5ldyAoJm1fc3RyaW5nKSBT
dHJpbmcob3RoZXIubV9zdHJpbmcpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBUeXBlOjpCb29sOgotICAgICAgICAgICAgICAgIG1fYm9vbCA9IG90aGVyLm1fYm9v
bDsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgVHlwZTo6VUludDMy
OgotICAgICAgICAgICAgICAgIG1fdWludDMyID0gb3RoZXIubV91aW50MzI7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OkRvdWJsZToKLSAgICAgICAgICAg
ICAgICBtX2RvdWJsZSA9IG90aGVyLm1fZG91YmxlOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgfQotICAgIAotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9
Ci0KLSAgICAgICAgflZhbHVlKCkKLSAgICAgICAgewotICAgICAgICAgICAgZGVzdHJveSgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9
Ci0KLSAgICAgICAgU3RyaW5nIGFzU3RyaW5nKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAg
ICAgQVNTRVJUKG1fdHlwZSA9PSBUeXBlOjpTdHJpbmcpOwotICAgICAgICAgICAgcmV0dXJuIG1f
c3RyaW5nOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBhc0Jvb2woKSBjb25zdAotICAgICAg
ICB7Ci0gICAgICAgICAgICBBU1NFUlQobV90eXBlID09IFR5cGU6OkJvb2wpOwotICAgICAgICAg
ICAgcmV0dXJuIG1fYm9vbDsKLSAgICAgICAgfQotCi0gICAgICAgIHVpbnQzMl90IGFzVUludDMy
KCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBUeXBlOjpV
SW50MzIpOwotICAgICAgICAgICAgcmV0dXJuIG1fdWludDMyOwotICAgICAgICB9Ci0KLSAgICAg
ICAgZG91YmxlIGFzRG91YmxlKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBUeXBlOjpEb3VibGUpOwotICAgICAgICAgICAgcmV0dXJuIG1fZG91YmxlOwot
ICAgICAgICB9Ci0KLSAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGRlc3Ryb3koKQotICAgICAg
ICB7Ci0gICAgICAgICAgICBpZiAobV90eXBlID09IFR5cGU6OlN0cmluZykKLSAgICAgICAgICAg
ICAgICBtX3N0cmluZy5+U3RyaW5nKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBUeXBlIG1fdHlw
ZTsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgU3RyaW5nIG1fc3RyaW5nOwotICAgICAg
ICAgICAgYm9vbCBtX2Jvb2w7Ci0gICAgICAgICAgICB1aW50MzJfdCBtX3VpbnQzMjsKLSAgICAg
ICAgICAgIGRvdWJsZSBtX2RvdWJsZTsKLSAgICAgICAgfTsKLSAgICB9OwotCi0gICAgdHlwZWRl
ZiBIYXNoTWFwPFN0cmluZywgVmFsdWU+IFZhbHVlTWFwOwotICAgIFZhbHVlTWFwIG1fdmFsdWVz
OwotICAgIFZhbHVlTWFwIG1fb3ZlcnJpZGVuRGVmYXVsdHM7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAotI2VuZGlmIC8vIFdlYlByZWZlcmVuY2VzU3RvcmVfaAorI2VuZGlmIC8vIFdl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnNfaApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzS2V5cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzS2V5cy5jcHAJKHJldmlzaW9uIDE2OTM1NikJKGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwOjE2OTM1NikKKysrIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKworI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdM
ZXZlbC5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKworI2lm
IFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZUlPUy5oPgorI2Vu
ZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworCituYW1lc3BhY2UgV2ViUHJlZmVyZW5jZXNLZXkg
eworCisjZGVmaW5lIERFRklORV9LRVlfR0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVO
YW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUpIFwKKyAgICAgICAgY29uc3QgU3RyaW5nJiBLZXlMb3dl
ciMjS2V5KCkgXAorICAgICAgICB7IFwKKyAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IGtleShBU0NJSUxpdGVyYWwoI0tleVVwcGVyKSk7IFwKKyAgICAgICAgICAgIHJl
dHVybiBrZXk7IFwKKyAgICAgICAgfQorCisgICAgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0Uo
REVGSU5FX0tFWV9HRVRURVJTKQorCisjdW5kZWYgREVGSU5FX0tFWV9HRVRURVJTCisKK30gLy8g
bmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5CisKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGJv
b2w+IEJvb2xPdmVycmlkZXNNYXA7CisKK3N0YXRpYyBCb29sT3ZlcnJpZGVzTWFwJiBib29sVGVz
dFJ1bm5lck92ZXJyaWRlc01hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEJvb2xP
dmVycmlkZXNNYXA+IG1hcDsKKyAgICByZXR1cm4gbWFwOworfQorCit2b2lkIFdlYlByZWZlcmVu
Y2VzU3RvcmU6OlZhbHVlOjplbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CisgICAgCisgICAgc3dpdGNo
IChtX3R5cGUpIHsKKyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVHlwZTo6U3RyaW5nOgorICAgICAgICBlbmNvZGVyIDw8IG1fc3RyaW5nOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFR5cGU6OkJvb2w6CisgICAgICAgIGVuY29kZXIgPDwgbV9ib29sOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFR5cGU6OlVJbnQzMjoKKyAgICAgICAgZW5jb2RlciA8
PCBtX3VpbnQzMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBUeXBlOjpEb3VibGU6CisgICAg
ICAgIGVuY29kZXIgPDwgbV9kb3VibGU7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworYm9v
bCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBWYWx1ZSYgcmVzdWx0KQoreworICAgIFZhbHVlOjpUeXBlIHR5cGU7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFR5cGU6Ok5vbmU6CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVHlwZTo6U3RyaW5nOiB7CisgICAgICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJlc3VsdCA9IFZhbHVlKHZhbHVlKTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgVHlwZTo6Qm9vbDogeworICAgICAgICBib29sIHZhbHVlOworICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmVzdWx0ID0gVmFsdWUodmFsdWUpOworICAgICAgICBicmVhazsKKyAgICB9CisgICAg
Y2FzZSBUeXBlOjpVSW50MzI6IHsKKyAgICAgICAgdWludDMyX3QgdmFsdWU7CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXN1bHQgPSBWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBj
YXNlIFR5cGU6OkRvdWJsZTogeworICAgICAgICBkb3VibGUgdmFsdWU7CisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUodmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICByZXN1bHQgPSBWYWx1ZSh2YWx1ZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkZWZh
dWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9
CisKK1dlYlByZWZlcmVuY2VzU3RvcmU6OldlYlByZWZlcmVuY2VzU3RvcmUoKQoreworfQorCit2
b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IG1fdmFsdWVzOworICAgIGVuY29kZXIgPDwg
bV9vdmVycmlkZW5EZWZhdWx0czsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFdlYlByZWZlcmVuY2VzU3RvcmUmIHJl
c3VsdCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3ZhbHVlcykpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX292ZXJy
aWRlbkRlZmF1bHRzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6Om92ZXJyaWRlQm9vbFZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQoreworICAgIGJvb2xUZXN0UnVubmVyT3ZlcnJp
ZGVzTWFwKCkuc2V0KGtleSwgdmFsdWUpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6
OnJlbW92ZVRlc3RSdW5uZXJPdmVycmlkZXMoKQoreworICAgIGJvb2xUZXN0UnVubmVyT3ZlcnJp
ZGVzTWFwKCkuY2xlYXIoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBUb1R5
cGUgeyB9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBUb1R5cGU8U3RyaW5nPiB7IHN0YXRpYyBjb25z
dCBhdXRvIHZhbHVlID0gV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWU6OlR5cGU6OlN0cmluZzsg
fTsKK3RlbXBsYXRlPD4gc3RydWN0IFRvVHlwZTxib29sPiB7IHN0YXRpYyBjb25zdCBhdXRvIHZh
bHVlID0gV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWU6OlR5cGU6OkJvb2w7IH07Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBUb1R5cGU8dWludDMyX3Q+IHsgc3RhdGljIGNvbnN0IGF1dG8gdmFsdWUgPSBX
ZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6VHlwZTo6VUludDMyOyB9OwordGVtcGxhdGU8PiBz
dHJ1Y3QgVG9UeXBlPGRvdWJsZT4geyBzdGF0aWMgY29uc3QgYXV0byB2YWx1ZSA9IFdlYlByZWZl
cmVuY2VzU3RvcmU6OlZhbHVlOjpUeXBlOjpEb3VibGU7IH07CisKKwordGVtcGxhdGU8dHlwZW5h
bWUgTWFwcGVkVHlwZT4gTWFwcGVkVHlwZSBhcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpW
YWx1ZSYpOworCit0ZW1wbGF0ZTw+IFN0cmluZyBhczxTdHJpbmc+KGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmU6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuYXNTdHJpbmcoKTsgfQordGVt
cGxhdGU8PiBib29sIGFzPGJvb2w+KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlJiB2
YWx1ZSkgeyByZXR1cm4gdmFsdWUuYXNCb29sKCk7IH0KK3RlbXBsYXRlPD4gdWludDMyX3QgYXM8
dWludDMyX3Q+KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlJiB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUuYXNVSW50MzIoKTsgfQordGVtcGxhdGU8PiBkb3VibGUgYXM8ZG91YmxlPihjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmFzRG91
YmxlKCk7IH0KKworCitzdGF0aWMgV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXAmIGRlZmF1
bHRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8V2ViUHJlZmVyZW5jZXNTdG9yZTo6
VmFsdWVNYXA+IGRlZmF1bHRzOworICAgIGlmIChkZWZhdWx0cy5nZXQoKS5pc0VtcHR5KCkpIHsK
KyNkZWZpbmUgREVGSU5FX0RFRkFVTFRTKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5
cGUsIERlZmF1bHRWYWx1ZSkgZGVmYXVsdHMuZ2V0KCkuc2V0KFdlYlByZWZlcmVuY2VzS2V5OjpL
ZXlMb3dlciMjS2V5KCksIFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKChUeXBlKURlZmF1bHRW
YWx1ZSkpOworICAgICAgICBGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShERUZJTkVfREVGQVVM
VFMpCisjdW5kZWYgREVGSU5FX0RFRkFVTFRTCisgICAgfQorCisgICAgcmV0dXJuIGRlZmF1bHRz
OworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBwZWRUeXBlPgorc3RhdGljIE1hcHBlZFR5cGUg
dmFsdWVGb3JLZXkoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXAmIHZhbHVlcywg
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXAmIG92ZXJyaWRlbkRlZmF1bHRzLCBj
b25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICBhdXRvIHZhbHVlc0l0ID0gdmFsdWVzLmZpbmQoa2V5
KTsKKyAgICBpZiAodmFsdWVzSXQgIT0gdmFsdWVzLmVuZCgpICYmIHZhbHVlc0l0LT52YWx1ZS50
eXBlKCkgPT0gVG9UeXBlPE1hcHBlZFR5cGU+Ojp2YWx1ZSkKKyAgICAgICAgcmV0dXJuIGFzPE1h
cHBlZFR5cGU+KHZhbHVlc0l0LT52YWx1ZSk7CisKKyAgICBhdXRvIG92ZXJyaWRlbkRlZmF1bHRz
SXQgPSBvdmVycmlkZW5EZWZhdWx0cy5maW5kKGtleSk7CisgICAgaWYgKG92ZXJyaWRlbkRlZmF1
bHRzSXQgIT0gb3ZlcnJpZGVuRGVmYXVsdHMuZW5kKCkgJiYgb3ZlcnJpZGVuRGVmYXVsdHNJdC0+
dmFsdWUudHlwZSgpID09IFRvVHlwZTxNYXBwZWRUeXBlPjo6dmFsdWUpCisgICAgICAgIHJldHVy
biBhczxNYXBwZWRUeXBlPihvdmVycmlkZW5EZWZhdWx0c0l0LT52YWx1ZSk7CisKKyAgICBhdXRv
IGRlZmF1bHRzTWFwID0gZGVmYXVsdHMoKTsKKyAgICBhdXRvIGRlZmF1bHRzSXQgPSBkZWZhdWx0
c01hcC5maW5kKGtleSk7CisgICAgaWYgKGRlZmF1bHRzSXQgIT0gZGVmYXVsdHNNYXAuZW5kKCkg
JiYgZGVmYXVsdHNJdC0+dmFsdWUudHlwZSgpID09IFRvVHlwZTxNYXBwZWRUeXBlPjo6dmFsdWUp
CisgICAgICAgIHJldHVybiBhczxNYXBwZWRUeXBlPihkZWZhdWx0c0l0LT52YWx1ZSk7CisKKyAg
ICByZXR1cm4gTWFwcGVkVHlwZSgpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBNYXBwZWRUeXBl
Pgorc3RhdGljIGJvb2wgc2V0VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVN
YXAmIG1hcCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXAmIG92ZXJyaWRlbkRl
ZmF1bHRzLCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgTWFwcGVkVHlwZSYgdmFsdWUpCit7Cisg
ICAgTWFwcGVkVHlwZSBleGlzdGluZ1ZhbHVlID0gdmFsdWVGb3JLZXk8TWFwcGVkVHlwZT4obWFw
LCBvdmVycmlkZW5EZWZhdWx0cywga2V5KTsKKyAgICBpZiAoZXhpc3RpbmdWYWx1ZSA9PSB2YWx1
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbWFwLnNldChrZXksIFdlYlByZWZlcmVu
Y2VzU3RvcmU6OlZhbHVlKHZhbHVlKSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2Vi
UHJlZmVyZW5jZXNTdG9yZTo6c2V0U3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgcmV0dXJuIHNldFZhbHVlRm9yS2V5PFN0cmlu
Zz4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSwgdmFsdWUpOworfQorCitTdHJp
bmcgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0U3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiBrZXkpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZhbHVlRm9yS2V5PFN0cmluZz4obV92YWx1ZXMs
IG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXNTdG9y
ZTo6c2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQorewor
ICAgIHJldHVybiBzZXRWYWx1ZUZvcktleTxib29sPihtX3ZhbHVlcywgbV9vdmVycmlkZW5EZWZh
dWx0cywga2V5LCB2YWx1ZSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0Qm9v
bFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBF
eHRlbmQgb3ZlcnJpZGluZyB0byBvdGhlciBrZXkgdHlwZXMgdXNlZCBmcm9tIFRlc3RSdW5uZXIu
CisgICAgYXV0byBpdCA9IGJvb2xUZXN0UnVubmVyT3ZlcnJpZGVzTWFwKCkuZmluZChrZXkpOwor
ICAgIGlmIChpdCAhPSBib29sVGVzdFJ1bm5lck92ZXJyaWRlc01hcCgpLmVuZCgpKQorICAgICAg
ICByZXR1cm4gaXQtPnZhbHVlOworCisgICAgcmV0dXJuIHZhbHVlRm9yS2V5PGJvb2w+KG1fdmFs
dWVzLCBtX292ZXJyaWRlbkRlZmF1bHRzLCBrZXkpOworfQorCitib29sIFdlYlByZWZlcmVuY2Vz
U3RvcmU6OnNldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2
YWx1ZSkgCit7CisgICAgcmV0dXJuIHNldFZhbHVlRm9yS2V5PHVpbnQzMl90PihtX3ZhbHVlcywg
bV9vdmVycmlkZW5EZWZhdWx0cywga2V5LCB2YWx1ZSk7Cit9CisKK3VpbnQzMl90IFdlYlByZWZl
cmVuY2VzU3RvcmU6OmdldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25z
dAoreworICAgIHJldHVybiB2YWx1ZUZvcktleTx1aW50MzJfdD4obV92YWx1ZXMsIG1fb3ZlcnJp
ZGVuRGVmYXVsdHMsIGtleSk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6c2V0RG91
YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSB2YWx1ZSkgCit7CisgICAg
cmV0dXJuIHNldFZhbHVlRm9yS2V5PGRvdWJsZT4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVs
dHMsIGtleSwgdmFsdWUpOworfQorCitkb3VibGUgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0RG91
YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZh
bHVlRm9yS2V5PGRvdWJsZT4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSk7Cit9
CisKKy8vIE92ZXJyaWRlbiBEZWZhdWx0cworCit2b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OnNl
dE92ZXJyaWRlRGVmYXVsdHNTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgU3Ry
aW5nIHZhbHVlKQoreworICAgIG1fb3ZlcnJpZGVuRGVmYXVsdHMuc2V0KGtleSwgVmFsdWUodmFs
dWUpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRPdmVycmlkZURlZmF1bHRz
Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQoreworICAgIG1f
b3ZlcnJpZGVuRGVmYXVsdHMuc2V0KGtleSwgVmFsdWUodmFsdWUpKTsKK30KKwordm9pZCBXZWJQ
cmVmZXJlbmNlc1N0b3JlOjpzZXRPdmVycmlkZURlZmF1bHRzVUludDMyVmFsdWVGb3JLZXkoY29u
c3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKQoreworICAgIG1fb3ZlcnJpZGVuRGVmYXVs
dHMuc2V0KGtleSwgVmFsdWUodmFsdWUpKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlc1N0b3Jl
OjpzZXRPdmVycmlkZURlZmF1bHRzRG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXks
IGRvdWJsZSB2YWx1ZSkKK3sKKyAgICBtX292ZXJyaWRlbkRlZmF1bHRzLnNldChrZXksIFZhbHVl
KHZhbHVlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzS2V5cy5jcHAJKHdvcmtpbmcgY29weSkKKysrIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0tleXMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNCwxOSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5o
IgogCi0jaW5jbHVkZSAiRm9udFNtb290aGluZ0xldmVsLmgiCi0jaW5jbHVkZSAiV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogCi0jaWYgUExBVEZPUk0oSU9TKQotI2ltcG9ydCA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlSU9TLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYktpdCB7Ci0K
IG5hbWVzcGFjZSBXZWJQcmVmZXJlbmNlc0tleSB7CiAKICNkZWZpbmUgREVGSU5FX0tFWV9HRVRU
RVJTKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSkgXApA
QCAtNTEsMjMzICs0Myw0IEBAIG5hbWVzcGFjZSBXZWJQcmVmZXJlbmNlc0tleSB7CiAjdW5kZWYg
REVGSU5FX0tFWV9HRVRURVJTCiAKIH0gLy8gbmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5Ci0K
LXR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGJvb2w+IEJvb2xPdmVycmlkZXNNYXA7Ci0KLXN0YXRp
YyBCb29sT3ZlcnJpZGVzTWFwJiBib29sVGVzdFJ1bm5lck92ZXJyaWRlc01hcCgpCi17Ci0gICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEJvb2xPdmVycmlkZXNNYXA+IG1hcDsKLSAgICByZXR1cm4g
bWFwOwotfQotCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlOjplbmNvZGUoSVBDOjpB
cmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVt
KG1fdHlwZSk7Ci0gICAgCi0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICBjYXNlIFR5cGU6Ok5v
bmU6Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6U3RyaW5nOgotICAgICAgICBlbmNv
ZGVyIDw8IG1fc3RyaW5nOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6OkJvb2w6Ci0g
ICAgICAgIGVuY29kZXIgPDwgbV9ib29sOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFR5cGU6
OlVJbnQzMjoKLSAgICAgICAgZW5jb2RlciA8PCBtX3VpbnQzMjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBUeXBlOjpEb3VibGU6Ci0gICAgICAgIGVuY29kZXIgPDwgbV9kb3VibGU7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLX0KLQotYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6
ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBWYWx1ZSYgcmVzdWx0KQotewot
ICAgIFZhbHVlOjpUeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBj
YXNlIFR5cGU6Ok5vbmU6Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVHlwZTo6U3RyaW5nOiB7
Ci0gICAgICAgIFN0cmluZyB2YWx1ZTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1
ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlc3VsdCA9IFZhbHVlKHZh
bHVlKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgVHlwZTo6Qm9vbDogewotICAg
ICAgICBib29sIHZhbHVlOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmVzdWx0ID0gVmFsdWUodmFsdWUpOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBUeXBlOjpVSW50MzI6IHsKLSAgICAgICAg
dWludDMyX3QgdmFsdWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXN1bHQgPSBWYWx1ZSh2YWx1ZSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIFR5cGU6OkRvdWJsZTogewotICAgICAgICBk
b3VibGUgdmFsdWU7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICByZXN1bHQgPSBWYWx1ZSh2YWx1ZSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLVdlYlByZWZlcmVuY2VzU3RvcmU6OldlYlBy
ZWZlcmVuY2VzU3RvcmUoKQotewotfQotCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OmVuY29k
ZShJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8
IG1fdmFsdWVzOwotICAgIGVuY29kZXIgPDwgbV9vdmVycmlkZW5EZWZhdWx0czsKLX0KLQotYm9v
bCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29k
ZXIsIFdlYlByZWZlcmVuY2VzU3RvcmUmIHJlc3VsdCkKLXsKLSAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3ZhbHVlcykpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX292ZXJyaWRlbkRlZmF1bHRzKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6
Om92ZXJyaWRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZhbHVlKQot
ewotICAgIGJvb2xUZXN0UnVubmVyT3ZlcnJpZGVzTWFwKCkuc2V0KGtleSwgdmFsdWUpOwotfQot
Ci12b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OnJlbW92ZVRlc3RSdW5uZXJPdmVycmlkZXMoKQot
ewotICAgIGJvb2xUZXN0UnVubmVyT3ZlcnJpZGVzTWFwKCkuY2xlYXIoKTsKLX0KLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IHN0cnVjdCBUb1R5cGUgeyB9OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBU
b1R5cGU8U3RyaW5nPiB7IHN0YXRpYyBjb25zdCBhdXRvIHZhbHVlID0gV2ViUHJlZmVyZW5jZXNT
dG9yZTo6VmFsdWU6OlR5cGU6OlN0cmluZzsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IFRvVHlwZTxi
b29sPiB7IHN0YXRpYyBjb25zdCBhdXRvIHZhbHVlID0gV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFs
dWU6OlR5cGU6OkJvb2w7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBUb1R5cGU8dWludDMyX3Q+IHsg
c3RhdGljIGNvbnN0IGF1dG8gdmFsdWUgPSBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZTo6VHlw
ZTo6VUludDMyOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgVG9UeXBlPGRvdWJsZT4geyBzdGF0aWMg
Y29uc3QgYXV0byB2YWx1ZSA9IFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlOjpUeXBlOjpEb3Vi
bGU7IH07Ci0KLQotdGVtcGxhdGU8dHlwZW5hbWUgTWFwcGVkVHlwZT4gTWFwcGVkVHlwZSBhcyhj
b25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSYpOwotCi10ZW1wbGF0ZTw+IFN0cmluZyBh
czxTdHJpbmc+KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlJiB2YWx1ZSkgeyByZXR1
cm4gdmFsdWUuYXNTdHJpbmcoKTsgfQotdGVtcGxhdGU8PiBib29sIGFzPGJvb2w+KGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuYXNCb29sKCk7
IH0KLXRlbXBsYXRlPD4gdWludDMyX3QgYXM8dWludDMyX3Q+KGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmU6OlZhbHVlJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuYXNVSW50MzIoKTsgfQotdGVtcGxh
dGU8PiBkb3VibGUgYXM8ZG91YmxlPihjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpWYWx1ZSYg
dmFsdWUpIHsgcmV0dXJuIHZhbHVlLmFzRG91YmxlKCk7IH0KLQotCi1zdGF0aWMgV2ViUHJlZmVy
ZW5jZXNTdG9yZTo6VmFsdWVNYXAmIGRlZmF1bHRzKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXA+IGRlZmF1bHRzOwotICAgIGlmIChk
ZWZhdWx0cy5nZXQoKS5pc0VtcHR5KCkpIHsKLSNkZWZpbmUgREVGSU5FX0RFRkFVTFRTKEtleVVw
cGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSkgZGVmYXVsdHMuZ2V0
KCkuc2V0KFdlYlByZWZlcmVuY2VzS2V5OjpLZXlMb3dlciMjS2V5KCksIFdlYlByZWZlcmVuY2Vz
U3RvcmU6OlZhbHVlKChUeXBlKURlZmF1bHRWYWx1ZSkpOwotICAgICAgICBGT1JfRUFDSF9XRUJL
SVRfUFJFRkVSRU5DRShERUZJTkVfREVGQVVMVFMpCi0jdW5kZWYgREVGSU5FX0RFRkFVTFRTCi0g
ICAgfQotCi0gICAgcmV0dXJuIGRlZmF1bHRzOwotfQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBNYXBw
ZWRUeXBlPgotc3RhdGljIE1hcHBlZFR5cGUgdmFsdWVGb3JLZXkoY29uc3QgV2ViUHJlZmVyZW5j
ZXNTdG9yZTo6VmFsdWVNYXAmIHZhbHVlcywgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFs
dWVNYXAmIG92ZXJyaWRlbkRlZmF1bHRzLCBjb25zdCBTdHJpbmcmIGtleSkKLXsKLSAgICBhdXRv
IHZhbHVlc0l0ID0gdmFsdWVzLmZpbmQoa2V5KTsKLSAgICBpZiAodmFsdWVzSXQgIT0gdmFsdWVz
LmVuZCgpICYmIHZhbHVlc0l0LT52YWx1ZS50eXBlKCkgPT0gVG9UeXBlPE1hcHBlZFR5cGU+Ojp2
YWx1ZSkKLSAgICAgICAgcmV0dXJuIGFzPE1hcHBlZFR5cGU+KHZhbHVlc0l0LT52YWx1ZSk7Ci0K
LSAgICBhdXRvIG92ZXJyaWRlbkRlZmF1bHRzSXQgPSBvdmVycmlkZW5EZWZhdWx0cy5maW5kKGtl
eSk7Ci0gICAgaWYgKG92ZXJyaWRlbkRlZmF1bHRzSXQgIT0gb3ZlcnJpZGVuRGVmYXVsdHMuZW5k
KCkgJiYgb3ZlcnJpZGVuRGVmYXVsdHNJdC0+dmFsdWUudHlwZSgpID09IFRvVHlwZTxNYXBwZWRU
eXBlPjo6dmFsdWUpCi0gICAgICAgIHJldHVybiBhczxNYXBwZWRUeXBlPihvdmVycmlkZW5EZWZh
dWx0c0l0LT52YWx1ZSk7Ci0KLSAgICBhdXRvIGRlZmF1bHRzTWFwID0gZGVmYXVsdHMoKTsKLSAg
ICBhdXRvIGRlZmF1bHRzSXQgPSBkZWZhdWx0c01hcC5maW5kKGtleSk7Ci0gICAgaWYgKGRlZmF1
bHRzSXQgIT0gZGVmYXVsdHNNYXAuZW5kKCkgJiYgZGVmYXVsdHNJdC0+dmFsdWUudHlwZSgpID09
IFRvVHlwZTxNYXBwZWRUeXBlPjo6dmFsdWUpCi0gICAgICAgIHJldHVybiBhczxNYXBwZWRUeXBl
PihkZWZhdWx0c0l0LT52YWx1ZSk7Ci0KLSAgICByZXR1cm4gTWFwcGVkVHlwZSgpOwotfQotCi10
ZW1wbGF0ZTx0eXBlbmFtZSBNYXBwZWRUeXBlPgotc3RhdGljIGJvb2wgc2V0VmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNTdG9yZTo6VmFsdWVNYXAmIG1hcCwgY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZTo6VmFsdWVNYXAmIG92ZXJyaWRlbkRlZmF1bHRzLCBjb25zdCBTdHJpbmcmIGtleSwgY29u
c3QgTWFwcGVkVHlwZSYgdmFsdWUpCi17Ci0gICAgTWFwcGVkVHlwZSBleGlzdGluZ1ZhbHVlID0g
dmFsdWVGb3JLZXk8TWFwcGVkVHlwZT4obWFwLCBvdmVycmlkZW5EZWZhdWx0cywga2V5KTsKLSAg
ICBpZiAoZXhpc3RpbmdWYWx1ZSA9PSB2YWx1ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgbWFwLnNldChrZXksIFdlYlByZWZlcmVuY2VzU3RvcmU6OlZhbHVlKHZhbHVlKSk7Ci0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6c2V0U3RyaW5nVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAg
cmV0dXJuIHNldFZhbHVlRm9yS2V5PFN0cmluZz4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVs
dHMsIGtleSwgdmFsdWUpOwotfQotCi1TdHJpbmcgV2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0U3Ry
aW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHZh
bHVlRm9yS2V5PFN0cmluZz4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSk7Ci19
Ci0KLWJvb2wgV2ViUHJlZmVyZW5jZXNTdG9yZTo6c2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0
cmluZyYga2V5LCBib29sIHZhbHVlKQotewotICAgIHJldHVybiBzZXRWYWx1ZUZvcktleTxib29s
PihtX3ZhbHVlcywgbV9vdmVycmlkZW5EZWZhdWx0cywga2V5LCB2YWx1ZSk7Ci19Ci0KLWJvb2wg
V2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5
KSBjb25zdAotewotICAgIC8vIEZJWE1FOiBFeHRlbmQgb3ZlcnJpZGluZyB0byBvdGhlciBrZXkg
dHlwZXMgdXNlZCBmcm9tIFRlc3RSdW5uZXIuCi0gICAgYXV0byBpdCA9IGJvb2xUZXN0UnVubmVy
T3ZlcnJpZGVzTWFwKCkuZmluZChrZXkpOwotICAgIGlmIChpdCAhPSBib29sVGVzdFJ1bm5lck92
ZXJyaWRlc01hcCgpLmVuZCgpKQotICAgICAgICByZXR1cm4gaXQtPnZhbHVlOwotCi0gICAgcmV0
dXJuIHZhbHVlRm9yS2V5PGJvb2w+KG1fdmFsdWVzLCBtX292ZXJyaWRlbkRlZmF1bHRzLCBrZXkp
OwotfQotCi1ib29sIFdlYlByZWZlcmVuY2VzU3RvcmU6OnNldFVJbnQzMlZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYga2V5LCB1aW50MzJfdCB2YWx1ZSkgCi17Ci0gICAgcmV0dXJuIHNldFZhbHVl
Rm9yS2V5PHVpbnQzMl90PihtX3ZhbHVlcywgbV9vdmVycmlkZW5EZWZhdWx0cywga2V5LCB2YWx1
ZSk7Ci19Ci0KLXVpbnQzMl90IFdlYlByZWZlcmVuY2VzU3RvcmU6OmdldFVJbnQzMlZhbHVlRm9y
S2V5KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAotewotICAgIHJldHVybiB2YWx1ZUZvcktleTx1
aW50MzJfdD4obV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSk7Ci19Ci0KLWJvb2wg
V2ViUHJlZmVyZW5jZXNTdG9yZTo6c2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIGRvdWJsZSB2YWx1ZSkgCi17Ci0gICAgcmV0dXJuIHNldFZhbHVlRm9yS2V5PGRvdWJsZT4o
bV92YWx1ZXMsIG1fb3ZlcnJpZGVuRGVmYXVsdHMsIGtleSwgdmFsdWUpOwotfQotCi1kb3VibGUg
V2ViUHJlZmVyZW5jZXNTdG9yZTo6Z2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXkpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHZhbHVlRm9yS2V5PGRvdWJsZT4obV92YWx1ZXMsIG1f
b3ZlcnJpZGVuRGVmYXVsdHMsIGtleSk7Ci19Ci0KLS8vIE92ZXJyaWRlbiBEZWZhdWx0cwotCi12
b2lkIFdlYlByZWZlcmVuY2VzU3RvcmU6OnNldE92ZXJyaWRlRGVmYXVsdHNTdHJpbmdWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmIGtleSwgU3RyaW5nIHZhbHVlKQotewotICAgIG1fb3ZlcnJpZGVu
RGVmYXVsdHMuc2V0KGtleSwgVmFsdWUodmFsdWUpKTsKLX0KLQotdm9pZCBXZWJQcmVmZXJlbmNl
c1N0b3JlOjpzZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCBib29sIHZhbHVlKQotewotICAgIG1fb3ZlcnJpZGVuRGVmYXVsdHMuc2V0KGtleSwgVmFs
dWUodmFsdWUpKTsKLX0KLQotdm9pZCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRPdmVycmlkZURl
ZmF1bHRzVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVl
KQotewotICAgIG1fb3ZlcnJpZGVuRGVmYXVsdHMuc2V0KGtleSwgVmFsdWUodmFsdWUpKTsKLX0K
LQotdm9pZCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpzZXRPdmVycmlkZURlZmF1bHRzRG91YmxlVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGRvdWJsZSB2YWx1ZSkKLXsKLSAgICBtX292ZXJy
aWRlbkRlZmF1bHRzLnNldChrZXksIFZhbHVlKHZhbHVlKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzS2V5cy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0tleXMu
aAkocmV2aXNpb24gMTY5MzU3KQkoZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oOjE2OTM1NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0tleXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCwgMjAxMSwgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViUHJlZmVyZW5jZXNTdG9yZV9oCisjZGVmaW5lIFdlYlBy
ZWZlcmVuY2VzU3RvcmVfaAorCisjaW5jbHVkZSAiQXJndW1lbnREZWNvZGVyLmgiCisjaW5jbHVk
ZSAiQXJndW1lbnRFbmNvZGVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFz
aC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworLy8gbWFjcm8oS2V5VXBwZXIsIEtleUxvd2VyLCBUeXBlTmFtZVVwcGVyLCBUeXBlTmFt
ZSwgRGVmYXVsdFZhbHVlKSAKKworI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgREVGQVVMVF9X
RUJLSVRfVEFCU1RPTElOS1NfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX1dF
QktJVF9UQUJTVE9MSU5LU19FTkFCTEVEIGZhbHNlCisjZW5kaWYKKworI2lmIEVOQUJMRShTTU9P
VEhfU0NST0xMSU5HKQorI2RlZmluZSBERUZBVUxUX1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5B
QkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX1dFQktJVF9TQ1JPTExfQU5JTUFUT1Jf
RU5BQkxFRCBmYWxzZQorI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA5MAorI2RlZmluZSBERUZBVUxUX1NDUkVFTl9GT05U
X1NVQlNUSVRVVElPTl9FTkFCTEVEIGZhbHNlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX1NDUkVF
Tl9GT05UX1NVQlNUSVRVVElPTl9FTkFCTEVEIHRydWUKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisjZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkdf
RU5BQkxFRCB0cnVlCisjZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfQ1NTX0FOSU1BVElPTl9T
VVNQRU5TSU9OX0VOQUJMRUQgdHJ1ZQorI2RlZmluZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVE
IHRydWUKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9U
VExJTkdfRU5BQkxFRCBmYWxzZQorI2RlZmluZSBERUZBVUxUX0hJRERFTl9QQUdFX0NTU19BTklN
QVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEIGZhbHNlCisjZGVmaW5lIERFRkFVTFRfUERGUExVR0lO
X0VOQUJMRUQgZmFsc2UKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBERUZB
VUxUX0ZSQU1FX0ZMQVRURU5JTkdfRU5BQkxFRCB0cnVlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxE
X1BSSU5UX0JBQ0tHUk9VTkRTIHRydWUKKyNkZWZpbmUgREVGQVVMVF9URVhUX0FSRUFTX0FSRV9S
RVNJWkFCTEUgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRP
V1NfQVVUT01BVElDQUxMWSBmYWxzZQorI2RlZmluZSBERUZBVUxUX1NIT1VMRF9SRVNQRUNUX0lN
QUdFX09SSUVOVEFUSU9OIHRydWUKKyNkZWZpbmUgREVGQVVMVF9NSU5JTVVNX0ZPTlRfWk9PTV9T
SVpFIFdLR2V0TWluaW11bVpvb21Gb250U2l6ZSgpCisjZGVmaW5lIERFRkFVTFRfUEFTU1dPUkRf
RUNIT19FTkFCTEVEIHRydWUKKyNkZWZpbmUgREVGQVVMVF9NRURJQV9QTEFZQkFDS19BTExPV1Nf
SU5MSU5FIGZhbHNlCisjZGVmaW5lIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNfVVNF
Ul9HRVNUVVJFIHRydWUKKyNkZWZpbmUgREVGQVVMVF9URU1QT1JBUllfVElMRV9DT0hPUlRfUkVU
RU5USU9OX0VOQUJMRUQgZmFsc2UKKyNlbHNlCisjZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRF
TklOR19FTkFCTEVEIGZhbHNlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9V
TkRTIGZhbHNlCisjZGVmaW5lIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVTSVpBQkxFIHRydWUK
KyNkZWZpbmUgREVGQVVMVF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1NfQVVUT01BVElDQUxM
WSB0cnVlCisjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT04g
ZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9NSU5JTVVNX0ZPTlRfWk9PTV9TSVpFIDAKKyNkZWZpbmUg
REVGQVVMVF9QQVNTV09SRF9FQ0hPX0VOQUJMRUQgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9NRURJ
QV9QTEFZQkFDS19BTExPV1NfSU5MSU5FIHRydWUKKyNkZWZpbmUgREVGQVVMVF9NRURJQV9QTEFZ
QkFDS19SRVFVSVJFU19VU0VSX0dFU1RVUkUgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9URU1QT1JB
UllfVElMRV9DT0hPUlRfUkVURU5USU9OX0VOQUJMRUQgdHJ1ZQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShJT1MpICYmICFQTEFURk9STShJT1NfU0lNVUxBVE9SKQorI2RlZmluZSBERUZBVUxUX0FD
Q0VMRVJBVEVEX0RSQVdJTkdfRU5BQkxFRCB0cnVlCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0FD
Q0VMRVJBVEVEX0RSQVdJTkdfRU5BQkxFRCBmYWxzZQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJ
T1MpICYmIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpCisjZGVmaW5lIERFRkFVTFRfQ0FOVkFTX1VT
RVNfQUNDRUxFUkFURURfRFJBV0lORyBmYWxzZQorI2Vsc2UKKyNkZWZpbmUgREVGQVVMVF9DQU5W
QVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HIHRydWUKKyNlbmRpZgorCisjZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBtYWNybyhKYXZhU2NyaXB0
RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNy
byhKYXZhU2NyaXB0TWFya3VwRW5hYmxlZCwgamF2YVNjcmlwdE1hcmt1cEVuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHksIGxvYWRz
SW1hZ2VzQXV0b21hdGljYWxseSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKExvYWRz
U2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBsb2Fkc1NpdGVJY29uc0ln
bm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBt
YWNybyhQbHVnaW5zRW5hYmxlZCwgcGx1Z2luc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
CisgICAgbWFjcm8oSmF2YUVuYWJsZWQsIGphdmFFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKEphdmFFbmFibGVkRm9yTG9jYWxGaWxlcywgamF2YUVuYWJsZWRGb3JMb2Nh
bEZpbGVzLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKE9mZmxpbmVXZWJBcHBsaWNh
dGlvbkNhY2hlRW5hYmxlZCwgb2ZmbGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKExvY2FsU3RvcmFnZUVuYWJsZWQsIGxvY2FsU3Rv
cmFnZUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhEYXRhYmFzZXNFbmFi
bGVkLCBkYXRhYmFzZXNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oWFNT
QXVkaXRvckVuYWJsZWQsIHhzc0F1ZGl0b3JFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisg
ICAgbWFjcm8oRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgREVGQVVMVF9GUkFNRV9GTEFUVEVOSU5HX0VOQUJMRUQpIFwKKyAgICBtYWNy
byhEZXZlbG9wZXJFeHRyYXNFbmFibGVkLCBkZXZlbG9wZXJFeHRyYXNFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEphdmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQsIGph
dmFTY3JpcHRFeHBlcmltZW50c0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFj
cm8oUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhUZXh0QXJlYXNBcmVSZXNpemFibGUsIHRleHRBcmVh
c0FyZVJlc2l6YWJsZSwgQm9vbCwgYm9vbCwgREVGQVVMVF9URVhUX0FSRUFTX0FSRV9SRVNJWkFC
TEUpIFwKKyAgICBtYWNybyhKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5LCBq
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5LCBCb29sLCBib29sLCBERUZBVUxU
X0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZKSBcCisgICAgbWFjcm8o
SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkLCBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhOZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oRm9yY2VDb21wb3NpdGluZ01vZGUsIGZvcmNl
Q29tcG9zaXRpbmdNb2RlLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQsIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQsIEJvb2wsIGJvb2ws
IERFRkFVTFRfQUNDRUxFUkFURURfRFJBV0lOR19FTkFCTEVEKSBcCisgICAgbWFjcm8oQ2FudmFz
VXNlc0FjY2VsZXJhdGVkRHJhd2luZywgY2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZywgQm9v
bCwgYm9vbCwgREVGQVVMVF9DQU5WQVNfVVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HKSBcCisgICAg
bWFjcm8oQ29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZSwgY29tcG9zaXRpbmdCb3JkZXJzVmlzaWJs
ZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhDb21wb3NpdGluZ1JlcGFpbnRDb3Vu
dGVyc1Zpc2libGUsIGNvbXBvc2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZSwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKKyAgICBtYWNybyhUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGUsIHRp
bGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBt
YWNybyhXZWJHTEVuYWJsZWQsIHdlYkdMRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAg
IG1hY3JvKE11bHRpdGhyZWFkZWRXZWJHTEVuYWJsZWQsIG11bHRpdGhyZWFkZWRXZWJHTEVuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oRm9yY2VTb2Z0d2FyZVdlYkdMUmVu
ZGVyaW5nLCBmb3JjZVNvZnR3YXJlV2ViR0xSZW5kZXJpbmcsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
CisgICAgbWFjcm8oQWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQsIGFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKENTU1JlZ2lvbnNFbmFi
bGVkLCBjc3NSZWdpb25zRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKENT
U0NvbXBvc2l0aW5nRW5hYmxlZCwgY3NzQ29tcG9zaXRpbmdFbmFibGVkLCBCb29sLCBib29sLCB0
cnVlKSBcCisgICAgbWFjcm8oRm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncywgZm9yY2VGVFBEaXJl
Y3RvcnlMaXN0aW5ncywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhUYWJzVG9MaW5r
cywgdGFic1RvTGlua3MsIEJvb2wsIGJvb2wsIERFRkFVTFRfV0VCS0lUX1RBQlNUT0xJTktTX0VO
QUJMRUQpIFwKKyAgICBtYWNybyhETlNQcmVmZXRjaGluZ0VuYWJsZWQsIGRuc1ByZWZldGNoaW5n
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhXZWJBcmNoaXZlRGVidWdN
b2RlRW5hYmxlZCwgd2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCisgICAgbWFjcm8oTG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgbG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhV
c2VzUGFnZUNhY2hlLCB1c2VzUGFnZUNhY2hlLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFj
cm8oUGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zLCBwYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMsIEJv
b2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCwg
YXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNy
byhQYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQsIHBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxl
ZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhET01QYXN0ZUFsbG93ZWQsIGRvbVBh
c3RlQWxsb3dlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhKYXZhU2NyaXB0Q2Fu
QWNjZXNzQ2xpcGJvYXJkLCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkLCBCb29sLCBib29s
LCBmYWxzZSkgXAorICAgIG1hY3JvKFNob3VsZFByaW50QmFja2dyb3VuZHMsIHNob3VsZFByaW50
QmFja2dyb3VuZHMsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0hPVUxEX1BSSU5UX0JBQ0tHUk9VTkRT
KSBcCisgICAgbWFjcm8oRnVsbFNjcmVlbkVuYWJsZWQsIGZ1bGxTY3JlZW5FbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkLCBhc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKKyAgICBtYWNybyhXZWJTZWN1cml0eUVuYWJsZWQsIHdlYlNlY3VyaXR5RW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzLCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcywgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKKyAgICBtYWNybyhBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIGFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBVkZvdW5kYXRp
b25FbmFibGVkLCBpc0FWRm91bmRhdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAg
ICBtYWNybyhNZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwgbWVkaWFQbGF5YmFja1Jl
cXVpcmVzVXNlckdlc3R1cmUsIEJvb2wsIGJvb2wsIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfUkVR
VUlSRVNfVVNFUl9HRVNUVVJFKSBcCisgICAgbWFjcm8oTWVkaWFQbGF5YmFja0FsbG93c0lubGlu
ZSwgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSwgQm9vbCwgYm9vbCwgREVGQVVMVF9NRURJQV9Q
TEFZQkFDS19BTExPV1NfSU5MSU5FKSBcCisgICAgbWFjcm8oTWVkaWFQbGF5YmFja0FsbG93c0Fp
clBsYXksIG1lZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5LCBCb29sLCBib29sLCB0cnVlKSBcCisg
ICAgbWFjcm8oSW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQsIGluc3BlY3RvclN0YXJ0c0F0dGFjaGVk
LCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oU2hvd3NUb29sVGlwT3ZlclRydW5jYXRl
ZFRleHQsIHNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0LCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKE1vY2tTY3JvbGxiYXJzRW5hYmxlZCwgbW9ja1Njcm9sbGJhcnNFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFdlYkF1ZGlvRW5hYmxlZCwgd2ViQXVk
aW9FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oQXBwbGljYXRpb25DaHJv
bWVNb2RlRW5hYmxlZCwgYXBwbGljYXRpb25DaHJvbWVNb2RlLCBCb29sLCBib29sLCBmYWxzZSkg
XAorICAgIG1hY3JvKFN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZywgc3VwcHJlc3Nlc0lu
Y3JlbWVudGFsUmVuZGVyaW5nLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEJhY2tz
cGFjZUtleU5hdmlnYXRpb25FbmFibGVkLCBiYWNrc3BhY2VLZXlOYXZpZ2F0aW9uRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKENhcmV0QnJvd3NpbmdFbmFibGVkLCBjYXJl
dEJyb3dzaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhTaG91bGRE
aXNwbGF5U3VidGl0bGVzLCBzaG91bGREaXNwbGF5U3VidGl0bGVzLCBCb29sLCBib29sLCBmYWxz
ZSkgXAorICAgIG1hY3JvKFNob3VsZERpc3BsYXlDYXB0aW9ucywgc2hvdWxkRGlzcGxheUNhcHRp
b25zLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNob3VsZERpc3BsYXlUZXh0RGVz
Y3JpcHRpb25zLCBzaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucywgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKKyAgICBtYWNybyhOb3RpZmljYXRpb25zRW5hYmxlZCwgbm90aWZpY2F0aW9uc0VuYWJs
ZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhTaG91bGRSZXNwZWN0SW1hZ2VPcmll
bnRhdGlvbiwgc2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIEJvb2wsIGJvb2wsIERFRkFV
TFRfU0hPVUxEX1JFU1BFQ1RfSU1BR0VfT1JJRU5UQVRJT04pIFwKKyAgICBtYWNybyhXYW50c0Jh
bGFuY2VkU2V0RGVmZXJzTG9hZGluZ0JlaGF2aW9yLCB3YW50c0JhbGFuY2VkU2V0RGVmZXJzTG9h
ZGluZ0JlaGF2aW9yLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFJlcXVlc3RBbmlt
YXRpb25GcmFtZUVuYWJsZWQsIHJlcXVlc3RBbmltYXRpb25GcmFtZUVuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUpIFwKKyAgICBtYWNybyhEaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQsIGRpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBc3luY2hy
b25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQsIGFzeW5jaHJvbm91c1BsdWdpbkluaXRp
YWxpemF0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBc3luY2hy
b25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zLCBhc3luY2hyb25v
dXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWRGb3JBbGxQbHVnaW5zLCBCb29sLCBib29sLCBm
YWxzZSkgXAorICAgIG1hY3JvKEFydGlmaWNpYWxQbHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5h
YmxlZCwgYXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFRhYlRvTGlua3NFbmFibGVkLCB0YWJUb0xpbmtzRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhJbnRlcmFjdGl2ZUZvcm1WYWxp
ZGF0aW9uRW5hYmxlZCwgaW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxl
ZCwgc2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKKyAgICBtYWNybyhTY3JvbGxBbmltYXRvckVuYWJsZWQsIHNjcm9sbEFuaW1hdG9yRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJLSVRfU0NST0xMX0FOSU1BVE9SX0VOQUJMRUQpIFwK
KyAgICBtYWNybyhTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCwgc2NyZWVuRm9udFN1YnN0
aXR1dGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfU0NSRUVOX0ZPTlRfU1VCU1RJVFVU
SU9OX0VOQUJMRUQpIFwKKyAgICBtYWNybyhDb29raWVFbmFibGVkLCBjb29raWVFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oUGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCwg
cGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNy
byhTbmFwc2hvdEFsbFBsdWdJbnMsIHNuYXBzaG90QWxsUGx1Z0lucywgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKKyAgICBtYWNybyhBdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVk
LCBhdXRvc3RhcnRPcmlnaW5QbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkLCBCb29sLCBib29sLCB0
cnVlKSBcCisgICAgbWFjcm8oUHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCwg
cHJpbWFyeVBsdWdJblNuYXBzaG90RGV0ZWN0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkg
XAorICAgIG1hY3JvKFBERlBsdWdpbkVuYWJsZWQsIHBkZlBsdWdpbkVuYWJsZWQsIEJvb2wsIGJv
b2wsIERFRkFVTFRfUERGUExVR0lOX0VOQUJMRUQpIFwKKyAgICBtYWNybyhVc2VzRW5jb2RpbmdE
ZXRlY3RvciwgdXNlc0VuY29kaW5nRGV0ZWN0b3IsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAg
bWFjcm8oVGV4dEF1dG9zaXppbmdFbmFibGVkLCB0ZXh0QXV0b3NpemluZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oQWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVk
LCBhZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisg
ICAgbWFjcm8oVGVtcG9yYXJ5VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQsIHRlbXBvcmFyeVRp
bGVDb2hvcnRSZXRlbnRpb25FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX1RFTVBPUkFSWV9U
SUxFX0NPSE9SVF9SRVRFTlRJT05fRU5BQkxFRCkgXAorICAgIG1hY3JvKFFUS2l0RW5hYmxlZCwg
aXNRVEtpdEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCwgbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29u
c29sZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oUGFnZVZpc2liaWxp
dHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQsIHBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oU21h
cnRJbnNlcnREZWxldGVFbmFibGVkLCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQsIEJvb2wsIGJv
b2wsIHRydWUpIFwKKyAgICBtYWNybyhTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLCBz
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAg
IG1hY3JvKFNob3dzVVJMc0luVG9vbFRpcHNFbmFibGVkLCBzaG93c1VSTHNJblRvb2xUaXBzRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRm9yT3ZlcmZsb3dTY3JvbGxFbmFibGVkLCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yT3Zl
cmZsb3dTY3JvbGxFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEhpZGRl
blBhZ2VET01UaW1lclRocm90dGxpbmdFbmFibGVkLCBoaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRs
aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9ISURERU5fUEFHRV9ET01fVElNRVJfVEhS
T1RUTElOR19FTkFCTEVEKSBcCisgICAgbWFjcm8oSGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3Bl
bnNpb25FbmFibGVkLCBoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQsIEJv
b2wsIGJvb2wsIERFRkFVTFRfSElEREVOX1BBR0VfQ1NTX0FOSU1BVElPTl9TVVNQRU5TSU9OX0VO
QUJMRUQpIFwKKyAgICBtYWNybyhMb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCwg
bG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
CisgICAgbWFjcm8oVGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkLCB0aHJlYWRlZFNjcm9sbGluZ0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhTaW1wbGVMaW5lTGF5b3V0RW5h
YmxlZCwgc2ltcGxlTGluZUxheW91dEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBt
YWNybyhTaW1wbGVMaW5lTGF5b3V0RGVidWdCb3JkZXJzRW5hYmxlZCwgc2ltcGxlTGluZUxheW91
dERlYnVnQm9yZGVyc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oU3Vi
cGl4ZWxDU1NPTUVsZW1lbnRNZXRyaWNzRW5hYmxlZCwgc3VicGl4ZWxDU1NPTUVsZW1lbnRNZXRy
aWNzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEJhY2tncm91bmRTaG91
bGRFeHRlbmRCZXlvbmRQYWdlLCBiYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFnZSwgQm9v
bCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhNZWRpYVN0cmVhbUVuYWJsZWQsIG1lZGlhU3Ry
ZWFtRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAgICBtYWNybyhVc2VMZWdhY3lUZXh0
QWxpZ25Qb3NpdGlvbmVkRWxlbWVudEJlaGF2aW9yLCB1c2VMZWdhY3lUZXh0QWxpZ25Qb3NpdGlv
bmVkRWxlbWVudEJlaGF2aW9yLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZCwgc3BhdGlhbE5hdmlnYXRpb25FbmFibGVkLCBCb29sLCBib29s
LCBmYWxzZSkgXAorICAgIG1hY3JvKE1lZGlhU291cmNlRW5hYmxlZCwgbWVkaWFTb3VyY2VFbmFi
bGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oVmlld0dlc3R1cmVEZWJ1Z2dpbmdF
bmFibGVkLCB2aWV3R2VzdHVyZURlYnVnZ2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
CisgICAgbWFjcm8oU2hvdWxkQ29udmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIHNob3VsZENvbnZl
cnRQb3NpdGlvblN0eWxlT25Db3B5LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFN0
YW5kYWxvbmUsIHN0YW5kYWxvbmUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisgICAgbWFjcm8oVGVs
ZXBob25lTnVtYmVyUGFyc2luZ0VuYWJsZWQsIHRlbGVwaG9uZU51bWJlclBhcnNpbmdFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKEFsd2F5c1VzZUJhc2VsaW5lT2ZQcmlt
YXJ5Rm9udCwgYWx3YXlzVXNlQmFzZWxpbmVPZlByaW1hcnlGb250LCBCb29sLCBib29sLCBmYWxz
ZSkgXAorICAgIG1hY3JvKEFsbG93TXVsdGlFbGVtZW50SW1wbGljaXRTdWJtaXNzaW9uLCBhbGxv
d011bHRpRWxlbWVudEltcGxpY2l0U3VibWlzc2lvbiwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKKyAg
ICBtYWNybyhBbHdheXNVc2VBY2NlbGVyYXRlZE92ZXJmbG93U2Nyb2xsLCBhbHdheXNVc2VBY2Nl
bGVyYXRlZE92ZXJmbG93U2Nyb2xsLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFBh
c3N3b3JkRWNob0VuYWJsZWQsIHBhc3N3b3JkRWNob0VuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFV
TFRfUEFTU1dPUkRfRUNIT19FTkFCTEVEKSBcCisgICAgbWFjcm8oSW1hZ2VDb250cm9sc0VuYWJs
ZWQsIGltYWdlQ29udHJvbHNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3Jv
KEVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVudCwgZW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29t
cG9uZW50LCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFNlcnZpY2VDb250cm9sc0Vu
YWJsZWQsIHNlcnZpY2VDb250cm9sc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCisKKyNk
ZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCisgICAgbWFj
cm8oUERGU2NhbGVGYWN0b3IsIHBkZlNjYWxlRmFjdG9yLCBEb3VibGUsIGRvdWJsZSwgMCkgXAor
ICAgIG1hY3JvKEluY3JlbWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0LCBpbmNyZW1l
bnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCwgRG91YmxlLCBkb3VibGUsIDUpIFwKKyAg
ICBtYWNybyhNaW5pbXVtRm9udFNpemUsIG1pbmltdW1Gb250U2l6ZSwgRG91YmxlLCBkb3VibGUs
IDApIFwKKyAgICBtYWNybyhNaW5pbXVtTG9naWNhbEZvbnRTaXplLCBtaW5pbXVtTG9naWNhbEZv
bnRTaXplLCBEb3VibGUsIGRvdWJsZSwgOSkgXAorICAgIG1hY3JvKE1pbmltdW1ab29tRm9udFNp
emUsIG1pbmltdW1ab29tRm9udFNpemUsIERvdWJsZSwgZG91YmxlLCBERUZBVUxUX01JTklNVU1f
Rk9OVF9aT09NX1NJWkUpIFwKKyAgICBtYWNybyhEZWZhdWx0Rm9udFNpemUsIGRlZmF1bHRGb250
U2l6ZSwgRG91YmxlLCBkb3VibGUsIDE2KSBcCisgICAgbWFjcm8oRGVmYXVsdEZpeGVkRm9udFNp
emUsIGRlZmF1bHRGaXhlZEZvbnRTaXplLCBEb3VibGUsIGRvdWJsZSwgMTMpIFwKKyAgICBtYWNy
byhMYXlvdXRJbnRlcnZhbCwgbGF5b3V0SW50ZXJ2YWwsIERvdWJsZSwgZG91YmxlLCAtMSkgXAor
ICAgIG1hY3JvKE1heFBhcnNlRHVyYXRpb24sIG1heFBhcnNlRHVyYXRpb24sIERvdWJsZSwgZG91
YmxlLCAtMSkgXAorICAgIG1hY3JvKFBhc3N3b3JkRWNob0R1cmF0aW9uLCBwYXNzd29yZEVjaG9E
dXJhdGlvbiwgRG91YmxlLCBkb3VibGUsIDIpIFwKKyAgICBcCisKKyNkZWZpbmUgRk9SX0VBQ0hf
V0VCS0lUX1VJTlQzMl9QUkVGRVJFTkNFKG1hY3JvKSBcCisgICAgbWFjcm8oRm9udFNtb290aGlu
Z0xldmVsLCBmb250U21vb3RoaW5nTGV2ZWwsIFVJbnQzMiwgdWludDMyX3QsIEZvbnRTbW9vdGhp
bmdMZXZlbE1lZGl1bSkgXAorICAgIG1hY3JvKExheW91dEZhbGxiYWNrV2lkdGgsIGxheW91dEZh
bGxiYWNrV2lkdGgsIFVJbnQzMiwgdWludDMyX3QsIDk4MCkgXAorICAgIG1hY3JvKERldmljZVdp
ZHRoLCBkZXZpY2VXaWR0aCwgVUludDMyLCB1aW50MzJfdCwgMCkgXAorICAgIG1hY3JvKERldmlj
ZUhlaWdodCwgZGV2aWNlSGVpZ2h0LCBVSW50MzIsIHVpbnQzMl90LCAwKSBcCisgICAgbWFjcm8o
UERGRGlzcGxheU1vZGUsIHBkZkRpc3BsYXlNb2RlLCBVSW50MzIsIHVpbnQzMl90LCAxKSBcCisg
ICAgbWFjcm8oRWRpdGFibGVMaW5rQmVoYXZpb3IsIGVkaXRhYmxlTGlua0JlaGF2aW9yLCBVSW50
MzIsIHVpbnQzMl90LCBXZWJDb3JlOjpFZGl0YWJsZUxpbmtOZXZlckxpdmUpIFwKKyAgICBtYWNy
byhJbnNwZWN0b3JBdHRhY2hlZEhlaWdodCwgaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQsIFVJbnQz
MiwgdWludDMyX3QsIDMwMCkgXAorICAgIG1hY3JvKEluc3BlY3RvckF0dGFjaGVkV2lkdGgsIGlu
c3BlY3RvckF0dGFjaGVkV2lkdGgsIFVJbnQzMiwgdWludDMyX3QsIDc1MCkgXAorICAgIG1hY3Jv
KEluc3BlY3RvckF0dGFjaG1lbnRTaWRlLCBpbnNwZWN0b3JBdHRhY2htZW50U2lkZSwgVUludDMy
LCB1aW50MzJfdCwgMCkgXAorICAgIG1hY3JvKFN0b3JhZ2VCbG9ja2luZ1BvbGljeSwgc3RvcmFn
ZUJsb2NraW5nUG9saWN5LCBVSW50MzIsIHVpbnQzMl90LCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bjo6QmxvY2tUaGlyZFBhcnR5U3RvcmFnZSkgXAorICAgIFwKKworI2lmIFBMQVRGT1JNKENPQ09B
KQorCisjaWYgUExBVEZPUk0oSU9TKQorI2RlZmluZSBERUZBVUxUX0NVUlNJVkVfRk9OVF9GQU1J
TFkgIlNuZWxsIFJvdW5kaGFuZCIKKyNkZWZpbmUgREVGQVVMVF9QSUNUT0dSQVBIX0ZPTlRfRkFN
SUxZICJBcHBsZUNvbG9yRW1vamkiCisjZWxzZQorI2RlZmluZSBERUZBVUxUX0NVUlNJVkVfRk9O
VF9GQU1JTFkgIkFwcGxlIENoYW5jZXJ5IgorI2RlZmluZSBERUZBVUxUX1BJQ1RPR1JBUEhfRk9O
VF9GQU1JTFkgIkFwcGxlIENvbG9yIEVtb2ppIgorI2VuZGlmCisKKworI2RlZmluZSBGT1JfRUFD
SF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAorICAgIG1hY3JvKFN0YW5k
YXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVz
IikgXAorICAgIG1hY3JvKEN1cnNpdmVGb250RmFtaWx5LCBjdXJzaXZlRm9udEZhbWlseSwgU3Ry
aW5nLCBTdHJpbmcsIERFRkFVTFRfQ1VSU0lWRV9GT05UX0ZBTUlMWSkgXAorICAgIG1hY3JvKEZh
bnRhc3lGb250RmFtaWx5LCBmYW50YXN5Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJQYXB5
cnVzIikgXAorICAgIG1hY3JvKEZpeGVkRm9udEZhbWlseSwgZml4ZWRGb250RmFtaWx5LCBTdHJp
bmcsIFN0cmluZywgIkNvdXJpZXIiKSBcCisgICAgbWFjcm8oU2Fuc1NlcmlmRm9udEZhbWlseSwg
c2Fuc1NlcmlmRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJIZWx2ZXRpY2EiKSBcCisgICAg
bWFjcm8oU2VyaWZGb250RmFtaWx5LCBzZXJpZkZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAi
VGltZXMiKSBcCisgICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250
RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkFwcGxlIENvbG9yIEVtb2ppIikgXAorICAgIFwKKwor
I2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCisKKyNkZWZpbmUgRk9SX0VBQ0hf
V0VCS0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBtYWNybyhTdGFuZGFy
ZEZvbnRGYW1pbHksIHN0YW5kYXJkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIp
IFwKKyAgICBtYWNybyhDdXJzaXZlRm9udEZhbWlseSwgY3Vyc2l2ZUZvbnRGYW1pbHksIFN0cmlu
ZywgU3RyaW5nLCAiQ29taWMgU2FucyBNUyIpIFwKKyAgICBtYWNybyhGYW50YXN5Rm9udEZhbWls
eSwgZmFudGFzeUZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiSW1wYWN0IikgXAorICAgIG1h
Y3JvKEZpeGVkRm9udEZhbWlseSwgZml4ZWRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkNv
dXJpZXIgTmV3IikgXAorICAgIG1hY3JvKFNhbnNTZXJpZkZvbnRGYW1pbHksIHNhbnNTZXJpZkZv
bnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiSGVsdmV0aWNhIikgXAorICAgIG1hY3JvKFNlcmlm
Rm9udEZhbWlseSwgc2VyaWZGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVzIikgXAor
ICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBoRm9udEZhbWlseSwgU3Ry
aW5nLCBTdHJpbmcsICJUaW1lcyIpIFwKKyAgICBcCisKKyNlbmRpZgorCisjZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRShtYWNybykgXAorICAgIEZPUl9FQUNIX1dFQktJ
VF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBcCisgICAgbWFjcm8oRGVmYXVsdFRleHRF
bmNvZGluZ05hbWUsIGRlZmF1bHRUZXh0RW5jb2RpbmdOYW1lLCBTdHJpbmcsIFN0cmluZywgIklT
Ty04ODU5LTEiKSBcCisgICAgbWFjcm8oRlRQRGlyZWN0b3J5VGVtcGxhdGVQYXRoLCBmdHBEaXJl
Y3RvcnlUZW1wbGF0ZVBhdGgsIFN0cmluZywgU3RyaW5nLCAiIikgXAorICAgIFwKKworI2RlZmlu
ZSBGT1JfRUFDSF9XRUJLSVRfU1RSSU5HX1BSRUZFUkVOQ0VfTk9UX0lOX1dFQkNPUkUobWFjcm8p
IFwKKyAgICBtYWNybyhJbnNwZWN0b3JXaW5kb3dGcmFtZSwgaW5zcGVjdG9yV2luZG93RnJhbWUs
IFN0cmluZywgU3RyaW5nLCAiIikgXAorICAgIFwKKworI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRf
UFJFRkVSRU5DRShtYWNybykgXAorICAgIEZPUl9FQUNIX1dFQktJVF9CT09MX1BSRUZFUkVOQ0Uo
bWFjcm8pIFwKKyAgICBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwK
KyAgICBGT1JfRUFDSF9XRUJLSVRfVUlOVDMyX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBGT1Jf
RUFDSF9XRUJLSVRfU1RSSU5HX1BSRUZFUkVOQ0UobWFjcm8pIFwKKyAgICBGT1JfRUFDSF9XRUJL
SVRfU1RSSU5HX1BSRUZFUkVOQ0VfTk9UX0lOX1dFQkNPUkUobWFjcm8pIFwKKyAgICBcCisKK25h
bWVzcGFjZSBXZWJQcmVmZXJlbmNlc0tleSB7CisKKyNkZWZpbmUgREVDTEFSRV9LRVlfR0VUVEVS
UyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBUeXBlLCBEZWZhdWx0VmFsdWUpIGNvbnN0
IFN0cmluZyYgS2V5TG93ZXIjI0tleSgpOworCitGT1JfRUFDSF9XRUJLSVRfUFJFRkVSRU5DRShE
RUNMQVJFX0tFWV9HRVRURVJTKQorCisjdW5kZWYgREVDTEFSRV9LRVlfR0VUVEVSUworCit9IC8v
IG5hbWVzcGFjZSBXZWJQcmVmZXJlbmNlc0tleQorCitzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9y
ZSB7CisgICAgV2ViUHJlZmVyZW5jZXNTdG9yZSgpOworCisgICAgdm9pZCBlbmNvZGUoSVBDOjpB
cmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1
bWVudERlY29kZXImLCBXZWJQcmVmZXJlbmNlc1N0b3JlJik7CisKKyAgICAvLyBOT1RFOiBUaGUg
Z2V0dGVycyBpbiB0aGlzIGNsYXNzIGhhdmUgbm9uLXN0YW5kYXJkIG5hbWVzIHRvIGFpZCBpbiB0
aGUgdXNlIG9mIHRoZSBwcmVmZXJlbmNlIG1hY3Jvcy4KKworICAgIGJvb2wgc2V0U3RyaW5nVmFs
dWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUpOworICAgIFN0
cmluZyBnZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3Q7CisKKyAg
ICBib29sIHNldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCB2YWx1ZSk7
CisgICAgYm9vbCBnZXRCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0Owor
CisgICAgYm9vbCBzZXRVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMy
X3QgdmFsdWUpOworICAgIHVpbnQzMl90IGdldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmlu
ZyYga2V5KSBjb25zdDsKKworICAgIGJvb2wgc2V0RG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiBrZXksIGRvdWJsZSB2YWx1ZSk7CisgICAgZG91YmxlIGdldERvdWJsZVZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYga2V5KSBjb25zdDsKKworICAgIHZvaWQgc2V0T3ZlcnJpZGVEZWZhdWx0
c1N0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcgdmFsdWUpOworICAg
IHZvaWQgc2V0T3ZlcnJpZGVEZWZhdWx0c0Jvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtl
eSwgYm9vbCB2YWx1ZSk7CisgICAgdm9pZCBzZXRPdmVycmlkZURlZmF1bHRzVUludDMyVmFsdWVG
b3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIHVpbnQzMl90IHZhbHVlKTsKKyAgICB2b2lkIHNldE92
ZXJyaWRlRGVmYXVsdHNEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgZG91Ymxl
IHZhbHVlKTsKKworICAgIC8vIEZvciBXZWJLaXRUZXN0UnVubmVyIHVzYWdlLgorICAgIHN0YXRp
YyB2b2lkIG92ZXJyaWRlQm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBib29sIHZh
bHVlKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVUZXN0UnVubmVyT3ZlcnJpZGVzKCk7CisKKyAg
ICBzdHJ1Y3QgVmFsdWUgeworICAgICAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICAgICAg
Tm9uZSwKKyAgICAgICAgICAgIFN0cmluZywKKyAgICAgICAgICAgIEJvb2wsCisgICAgICAgICAg
ICBVSW50MzIsCisgICAgICAgICAgICBEb3VibGUsCisgICAgICAgIH07CisKKyAgICAgICAgdm9p
ZCBlbmNvZGUoSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25zdDsKKyAgICAgICAgc3RhdGljIGJv
b2wgZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiwgVmFsdWUmKTsKKworICAgICAgICBleHBs
aWNpdCBWYWx1ZSgpIDogbV90eXBlKFR5cGU6Ok5vbmUpIHsgfQorICAgICAgICBleHBsaWNpdCBW
YWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSA6IG1fdHlwZShUeXBlOjpTdHJpbmcpLCBtX3N0cmlu
Zyh2YWx1ZSkgeyB9CisgICAgICAgIGV4cGxpY2l0IFZhbHVlKGJvb2wgdmFsdWUpIDogbV90eXBl
KFR5cGU6OkJvb2wpLCBtX2Jvb2wodmFsdWUpIHsgfQorICAgICAgICBleHBsaWNpdCBWYWx1ZSh1
aW50MzJfdCB2YWx1ZSkgOiBtX3R5cGUoVHlwZTo6VUludDMyKSwgbV91aW50MzIodmFsdWUpIHsg
fQorICAgICAgICBleHBsaWNpdCBWYWx1ZShkb3VibGUgdmFsdWUpIDogbV90eXBlKFR5cGU6OkRv
dWJsZSksIG1fZG91YmxlKHZhbHVlKSB7IH0KKworICAgICAgICBWYWx1ZShWYWx1ZSYmIHZhbHVl
KQorICAgICAgICAgICAgOiBtX3R5cGUodmFsdWUubV90eXBlKQorICAgICAgICB7CisgICAgICAg
ICAgICBzd2l0Y2ggKG1fdHlwZSkgeworICAgICAgICAgICAgY2FzZSBUeXBlOjpOb25lOgorICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUeXBlOjpTdHJpbmc6CisgICAg
ICAgICAgICAgICAgbmV3ICgmbV9zdHJpbmcpIFN0cmluZyhzdGQ6Om1vdmUodmFsdWUubV9zdHJp
bmcpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVHlwZTo6Qm9v
bDoKKyAgICAgICAgICAgICAgICBtX2Jvb2wgPSB2YWx1ZS5tX2Jvb2w7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFR5cGU6OlVJbnQzMjoKKyAgICAgICAgICAgICAg
ICBtX3VpbnQzMiA9IHZhbHVlLm1fdWludDMyOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBUeXBlOjpEb3VibGU6CisgICAgICAgICAgICAgICAgbV9kb3VibGUgPSB2
YWx1ZS5tX2RvdWJsZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIFZhbHVlJiBvcGVyYXRvcj0oY29uc3QgVmFsdWUmIG90aGVyKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAodGhpcyA9PSAmb3RoZXIpCisgICAgICAgICAgICAg
ICAgcmV0dXJuICp0aGlzOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZGVzdHJveSgp
OworCisgICAgICAgICAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7CisgICAgICAgICAgICBzd2l0
Y2ggKG1fdHlwZSkgeworICAgICAgICAgICAgY2FzZSBUeXBlOjpOb25lOgorICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBUeXBlOjpTdHJpbmc6CisgICAgICAgICAgICAg
ICAgbmV3ICgmbV9zdHJpbmcpIFN0cmluZyhvdGhlci5tX3N0cmluZyk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFR5cGU6OkJvb2w6CisgICAgICAgICAgICAgICAg
bV9ib29sID0gb3RoZXIubV9ib29sOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBUeXBlOjpVSW50MzI6CisgICAgICAgICAgICAgICAgbV91aW50MzIgPSBvdGhlci5t
X3VpbnQzMjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVHlwZTo6
RG91YmxlOgorICAgICAgICAgICAgICAgIG1fZG91YmxlID0gb3RoZXIubV9kb3VibGU7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgCisgICAgICAgICAgICByZXR1
cm4gKnRoaXM7CisgICAgICAgIH0KKworICAgICAgICB+VmFsdWUoKQorICAgICAgICB7CisgICAg
ICAgICAgICBkZXN0cm95KCk7CisgICAgICAgIH0KKworICAgICAgICBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBtX3R5cGU7IH0KKworICAgICAgICBTdHJpbmcgYXNTdHJpbmcoKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV90eXBlID09IFR5cGU6OlN0cmluZyk7Cisg
ICAgICAgICAgICByZXR1cm4gbV9zdHJpbmc7CisgICAgICAgIH0KKworICAgICAgICBib29sIGFz
Qm9vbCgpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlw
ZTo6Qm9vbCk7CisgICAgICAgICAgICByZXR1cm4gbV9ib29sOworICAgICAgICB9CisKKyAgICAg
ICAgdWludDMyX3QgYXNVSW50MzIoKSBjb25zdAorICAgICAgICB7CisgICAgICAgICAgICBBU1NF
UlQobV90eXBlID09IFR5cGU6OlVJbnQzMik7CisgICAgICAgICAgICByZXR1cm4gbV91aW50MzI7
CisgICAgICAgIH0KKworICAgICAgICBkb3VibGUgYXNEb3VibGUoKSBjb25zdAorICAgICAgICB7
CisgICAgICAgICAgICBBU1NFUlQobV90eXBlID09IFR5cGU6OkRvdWJsZSk7CisgICAgICAgICAg
ICByZXR1cm4gbV9kb3VibGU7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAgICAgIHZv
aWQgZGVzdHJveSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3R5cGUgPT0gVHlwZTo6
U3RyaW5nKQorICAgICAgICAgICAgICAgIG1fc3RyaW5nLn5TdHJpbmcoKTsKKyAgICAgICAgfQor
CisgICAgICAgIFR5cGUgbV90eXBlOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBTdHJp
bmcgbV9zdHJpbmc7CisgICAgICAgICAgICBib29sIG1fYm9vbDsKKyAgICAgICAgICAgIHVpbnQz
Ml90IG1fdWludDMyOworICAgICAgICAgICAgZG91YmxlIG1fZG91YmxlOworICAgICAgICB9Owor
ICAgIH07CisKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWYWx1ZT4gVmFsdWVNYXA7Cisg
ICAgVmFsdWVNYXAgbV92YWx1ZXM7CisgICAgVmFsdWVNYXAgbV9vdmVycmlkZW5EZWZhdWx0czsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViUHJlZmVyZW5jZXNT
dG9yZV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNLZXlzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzS2V5cy5o
CSh3b3JraW5nIGNvcHkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNL
ZXlzLmgJKHdvcmtpbmcgY29weSkKQEAgLTIzLDI4MiArMjMsMTMgQEAKICAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYlByZWZlcmVuY2VzU3RvcmVf
aAotI2RlZmluZSBXZWJQcmVmZXJlbmNlc1N0b3JlX2gKKyNpZm5kZWYgV2ViUHJlZmVyZW5jZXNL
ZXlzX2gKKyNkZWZpbmUgV2ViUHJlZmVyZW5jZXNLZXlzX2gKIAotI2luY2x1ZGUgIkFyZ3VtZW50
RGVjb2Rlci5oIgotI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rlci5oIgotI2luY2x1ZGUgPFdlYkNv
cmUvU2VjdXJpdHlPcmlnaW4uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0RlZmluaXRp
b25zLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewotCi0vLyBtYWNybyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lVXBwZXIsIFR5cGVO
YW1lLCBEZWZhdWx0VmFsdWUpIAotCi0jaWYgUExBVEZPUk0oR1RLKQotI2RlZmluZSBERUZBVUxU
X1dFQktJVF9UQUJTVE9MSU5LU19FTkFCTEVEIHRydWUKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRf
V0VCS0lUX1RBQlNUT0xJTktTX0VOQUJMRUQgZmFsc2UKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFNN
T09USF9TQ1JPTExJTkcpCi0jZGVmaW5lIERFRkFVTFRfV0VCS0lUX1NDUk9MTF9BTklNQVRPUl9F
TkFCTEVEIHRydWUKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRfV0VCS0lUX1NDUk9MTF9BTklNQVRP
Ul9FTkFCTEVEIGZhbHNlCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCi0jZGVmaW5lIERFRkFVTFRfU0NSRUVOX0ZP
TlRfU1VCU1RJVFVUSU9OX0VOQUJMRUQgZmFsc2UKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRfU0NS
RUVOX0ZPTlRfU1VCU1RJVFVUSU9OX0VOQUJMRUQgdHJ1ZQotI2VuZGlmCi0KLSNpZiBQTEFURk9S
TShDT0NPQSkKLSNkZWZpbmUgREVGQVVMVF9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElO
R19FTkFCTEVEIHRydWUKLSNkZWZpbmUgREVGQVVMVF9ISURERU5fUEFHRV9DU1NfQU5JTUFUSU9O
X1NVU1BFTlNJT05fRU5BQkxFRCB0cnVlCi0jZGVmaW5lIERFRkFVTFRfUERGUExVR0lOX0VOQUJM
RUQgdHJ1ZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9ISURERU5fUEFHRV9ET01fVElNRVJfVEhS
T1RUTElOR19FTkFCTEVEIGZhbHNlCi0jZGVmaW5lIERFRkFVTFRfSElEREVOX1BBR0VfQ1NTX0FO
SU1BVElPTl9TVVNQRU5TSU9OX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9QREZQTFVH
SU5fRU5BQkxFRCBmYWxzZQotI2VuZGlmCi0KLSNpZiBQTEFURk9STShJT1MpCi0jZGVmaW5lIERF
RkFVTFRfRlJBTUVfRkxBVFRFTklOR19FTkFCTEVEIHRydWUKLSNkZWZpbmUgREVGQVVMVF9TSE9V
TERfUFJJTlRfQkFDS0dST1VORFMgdHJ1ZQotI2RlZmluZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJF
X1JFU0laQUJMRSBmYWxzZQotI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lO
RE9XU19BVVRPTUFUSUNBTExZIGZhbHNlCi0jZGVmaW5lIERFRkFVTFRfU0hPVUxEX1JFU1BFQ1Rf
SU1BR0VfT1JJRU5UQVRJT04gdHJ1ZQotI2RlZmluZSBERUZBVUxUX01JTklNVU1fRk9OVF9aT09N
X1NJWkUgV0tHZXRNaW5pbXVtWm9vbUZvbnRTaXplKCkKLSNkZWZpbmUgREVGQVVMVF9QQVNTV09S
RF9FQ0hPX0VOQUJMRUQgdHJ1ZQotI2RlZmluZSBERUZBVUxUX01FRElBX1BMQVlCQUNLX0FMTE9X
U19JTkxJTkUgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9NRURJQV9QTEFZQkFDS19SRVFVSVJFU19V
U0VSX0dFU1RVUkUgdHJ1ZQotI2RlZmluZSBERUZBVUxUX1RFTVBPUkFSWV9USUxFX0NPSE9SVF9S
RVRFTlRJT05fRU5BQkxFRCBmYWxzZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9GUkFNRV9GTEFU
VEVOSU5HX0VOQUJMRUQgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dS
T1VORFMgZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9URVhUX0FSRUFTX0FSRV9SRVNJWkFCTEUgdHJ1
ZQotI2RlZmluZSBERUZBVUxUX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNB
TExZIHRydWUKLSNkZWZpbmUgREVGQVVMVF9TSE9VTERfUkVTUEVDVF9JTUFHRV9PUklFTlRBVElP
TiBmYWxzZQotI2RlZmluZSBERUZBVUxUX01JTklNVU1fRk9OVF9aT09NX1NJWkUgMAotI2RlZmlu
ZSBERUZBVUxUX1BBU1NXT1JEX0VDSE9fRU5BQkxFRCBmYWxzZQotI2RlZmluZSBERUZBVUxUX01F
RElBX1BMQVlCQUNLX0FMTE9XU19JTkxJTkUgdHJ1ZQotI2RlZmluZSBERUZBVUxUX01FRElBX1BM
QVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVSRSBmYWxzZQotI2RlZmluZSBERUZBVUxUX1RFTVBP
UkFSWV9USUxFX0NPSE9SVF9SRVRFTlRJT05fRU5BQkxFRCB0cnVlCi0jZW5kaWYKLQotI2lmIFBM
QVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCi0jZGVmaW5lIERFRkFVTFRf
QUNDRUxFUkFURURfRFJBV0lOR19FTkFCTEVEIHRydWUKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRf
QUNDRUxFUkFURURfRFJBV0lOR19FTkFCTEVEIGZhbHNlCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KElPUykgJiYgUExBVEZPUk0oSU9TX1NJTVVMQVRPUikKLSNkZWZpbmUgREVGQVVMVF9DQU5WQVNf
VVNFU19BQ0NFTEVSQVRFRF9EUkFXSU5HIGZhbHNlCi0jZWxzZQotI2RlZmluZSBERUZBVUxUX0NB
TlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RSQVdJTkcgdHJ1ZQotI2VuZGlmCi0KLSNkZWZpbmUgRk9S
X0VBQ0hfV0VCS0lUX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKEphdmFTY3Jp
cHRFbmFibGVkLCBqYXZhU2NyaXB0RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1h
Y3JvKEphdmFTY3JpcHRNYXJrdXBFbmFibGVkLCBqYXZhU2NyaXB0TWFya3VwRW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKExvYWRzSW1hZ2VzQXV0b21hdGljYWxseSwgbG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oTG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UsIGxvYWRzU2l0ZUljb25z
SWdub3JpbmdJbWFnZUxvYWRpbmdQcmVmZXJlbmNlLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAg
IG1hY3JvKFBsdWdpbnNFbmFibGVkLCBwbHVnaW5zRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKLSAgICBtYWNybyhKYXZhRW5hYmxlZCwgamF2YUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCi0gICAgbWFjcm8oSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzLCBqYXZhRW5hYmxlZEZvckxv
Y2FsRmlsZXMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oT2ZmbGluZVdlYkFwcGxp
Y2F0aW9uQ2FjaGVFbmFibGVkLCBvZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oTG9jYWxTdG9yYWdlRW5hYmxlZCwgbG9jYWxT
dG9yYWdlRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKERhdGFiYXNlc0Vu
YWJsZWQsIGRhdGFiYXNlc0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhY
U1NBdWRpdG9yRW5hYmxlZCwgeHNzQXVkaXRvckVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwK
LSAgICBtYWNybyhGcmFtZUZsYXR0ZW5pbmdFbmFibGVkLCBmcmFtZUZsYXR0ZW5pbmdFbmFibGVk
LCBCb29sLCBib29sLCBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkdfRU5BQkxFRCkgXAotICAgIG1h
Y3JvKERldmVsb3BlckV4dHJhc0VuYWJsZWQsIGRldmVsb3BlckV4dHJhc0VuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oSmF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwg
amF2YVNjcmlwdEV4cGVyaW1lbnRzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBt
YWNybyhQcml2YXRlQnJvd3NpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRleHRBcmVhc0FyZVJlc2l6YWJsZSwgdGV4dEFy
ZWFzQXJlUmVzaXphYmxlLCBCb29sLCBib29sLCBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0la
QUJMRSkgXAotICAgIG1hY3JvKEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHks
IGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHksIEJvb2wsIGJvb2wsIERFRkFV
TFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkpIFwKLSAgICBtYWNy
byhIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQsIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCwgQm9v
bCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBuZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhGb3JjZUNvbXBvc2l0aW5nTW9kZSwgZm9y
Y2VDb21wb3NpdGluZ01vZGUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCwgQm9vbCwgYm9v
bCwgREVGQVVMVF9BQ0NFTEVSQVRFRF9EUkFXSU5HX0VOQUJMRUQpIFwKLSAgICBtYWNybyhDYW52
YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nLCBjYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nLCBC
b29sLCBib29sLCBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RSQVdJTkcpIFwKLSAg
ICBtYWNybyhDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlLCBjb21wb3NpdGluZ0JvcmRlcnNWaXNp
YmxlLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKENvbXBvc2l0aW5nUmVwYWludENv
dW50ZXJzVmlzaWJsZSwgY29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlLCBCb29sLCBi
b29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yVmlzaWJsZSwg
dGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAg
IG1hY3JvKFdlYkdMRW5hYmxlZCwgd2ViR0xFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0g
ICAgbWFjcm8oTXVsdGl0aHJlYWRlZFdlYkdMRW5hYmxlZCwgbXVsdGl0aHJlYWRlZFdlYkdMRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhGb3JjZVNvZnR3YXJlV2ViR0xS
ZW5kZXJpbmcsIGZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZywgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKLSAgICBtYWNybyhBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCwgYWNjZWxlcmF0ZWQyZENh
bnZhc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQ1NTUmVnaW9uc0Vu
YWJsZWQsIGNzc1JlZ2lvbnNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8o
Q1NTQ29tcG9zaXRpbmdFbmFibGVkLCBjc3NDb21wb3NpdGluZ0VuYWJsZWQsIEJvb2wsIGJvb2ws
IHRydWUpIFwKLSAgICBtYWNybyhGb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzLCBmb3JjZUZUUERp
cmVjdG9yeUxpc3RpbmdzLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRhYnNUb0xp
bmtzLCB0YWJzVG9MaW5rcywgQm9vbCwgYm9vbCwgREVGQVVMVF9XRUJLSVRfVEFCU1RPTElOS1Nf
RU5BQkxFRCkgXAotICAgIG1hY3JvKEROU1ByZWZldGNoaW5nRW5hYmxlZCwgZG5zUHJlZmV0Y2hp
bmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFdlYkFyY2hpdmVEZWJ1
Z01vZGVFbmFibGVkLCB3ZWJBcmNoaXZlRGVidWdNb2RlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKLSAgICBtYWNybyhMb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBsb2NhbEZp
bGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3Jv
KFVzZXNQYWdlQ2FjaGUsIHVzZXNQYWdlQ2FjaGUsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBt
YWNybyhQYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMsIHBhZ2VDYWNoZVN1cHBvcnRzUGx1Z2lucywg
Qm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
LCBhdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1h
Y3JvKFBhZ2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZCwgcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFi
bGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKERPTVBhc3RlQWxsb3dlZCwgZG9t
UGFzdGVBbGxvd2VkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEphdmFTY3JpcHRD
YW5BY2Nlc3NDbGlwYm9hcmQsIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU2hvdWxkUHJpbnRCYWNrZ3JvdW5kcywgc2hvdWxkUHJp
bnRCYWNrZ3JvdW5kcywgQm9vbCwgYm9vbCwgREVGQVVMVF9TSE9VTERfUFJJTlRfQkFDS0dST1VO
RFMpIFwKLSAgICBtYWNybyhGdWxsU2NyZWVuRW5hYmxlZCwgZnVsbFNjcmVlbkVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQsIGFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxz
ZSkgXAotICAgIG1hY3JvKFdlYlNlY3VyaXR5RW5hYmxlZCwgd2ViU2VjdXJpdHlFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHMsIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxz
ZSkgXAotICAgIG1hY3JvKEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFWRm91bmRh
dGlvbkVuYWJsZWQsIGlzQVZGb3VuZGF0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAot
ICAgIG1hY3JvKE1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJlLCBtZWRpYVBsYXliYWNr
UmVxdWlyZXNVc2VyR2VzdHVyZSwgQm9vbCwgYm9vbCwgREVGQVVMVF9NRURJQV9QTEFZQkFDS19S
RVFVSVJFU19VU0VSX0dFU1RVUkUpIFwKLSAgICBtYWNybyhNZWRpYVBsYXliYWNrQWxsb3dzSW5s
aW5lLCBtZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lLCBCb29sLCBib29sLCBERUZBVUxUX01FRElB
X1BMQVlCQUNLX0FMTE9XU19JTkxJTkUpIFwKLSAgICBtYWNybyhNZWRpYVBsYXliYWNrQWxsb3dz
QWlyUGxheSwgbWVkaWFQbGF5YmFja0FsbG93c0FpclBsYXksIEJvb2wsIGJvb2wsIHRydWUpIFwK
LSAgICBtYWNybyhJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCwgaW5zcGVjdG9yU3RhcnRzQXR0YWNo
ZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhTaG93c1Rvb2xUaXBPdmVyVHJ1bmNh
dGVkVGV4dCwgc2hvd3NUb29sVGlwT3ZlclRydW5jYXRlZFRleHQsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCi0gICAgbWFjcm8oTW9ja1Njcm9sbGJhcnNFbmFibGVkLCBtb2NrU2Nyb2xsYmFyc0VuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oV2ViQXVkaW9FbmFibGVkLCB3ZWJB
dWRpb0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhBcHBsaWNhdGlvbkNo
cm9tZU1vZGVFbmFibGVkLCBhcHBsaWNhdGlvbkNocm9tZU1vZGUsIEJvb2wsIGJvb2wsIGZhbHNl
KSBcCi0gICAgbWFjcm8oU3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nLCBzdXBwcmVzc2Vz
SW5jcmVtZW50YWxSZW5kZXJpbmcsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQmFj
a3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQsIGJhY2tzcGFjZUtleU5hdmlnYXRpb25FbmFibGVk
LCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oQ2FyZXRCcm93c2luZ0VuYWJsZWQsIGNh
cmV0QnJvd3NpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFNob3Vs
ZERpc3BsYXlTdWJ0aXRsZXMsIHNob3VsZERpc3BsYXlTdWJ0aXRsZXMsIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCi0gICAgbWFjcm8oU2hvdWxkRGlzcGxheUNhcHRpb25zLCBzaG91bGREaXNwbGF5Q2Fw
dGlvbnMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU2hvdWxkRGlzcGxheVRleHRE
ZXNjcmlwdGlvbnMsIHNob3VsZERpc3BsYXlUZXh0RGVzY3JpcHRpb25zLCBCb29sLCBib29sLCBm
YWxzZSkgXAotICAgIG1hY3JvKE5vdGlmaWNhdGlvbnNFbmFibGVkLCBub3RpZmljYXRpb25zRW5h
YmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFNob3VsZFJlc3BlY3RJbWFnZU9y
aWVudGF0aW9uLCBzaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbiwgQm9vbCwgYm9vbCwgREVG
QVVMVF9TSE9VTERfUkVTUEVDVF9JTUFHRV9PUklFTlRBVElPTikgXAotICAgIG1hY3JvKFdhbnRz
QmFsYW5jZWRTZXREZWZlcnNMb2FkaW5nQmVoYXZpb3IsIHdhbnRzQmFsYW5jZWRTZXREZWZlcnNM
b2FkaW5nQmVoYXZpb3IsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oUmVxdWVzdEFu
aW1hdGlvbkZyYW1lRW5hYmxlZCwgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZCwgZGlhZ25v
c3RpY0xvZ2dpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFzeW5j
aHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZCwgYXN5bmNocm9ub3VzUGx1Z2luSW5p
dGlhbGl6YXRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFzeW5j
aHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMsIGFzeW5jaHJv
bm91c1BsdWdpbkluaXRpYWxpemF0aW9uRW5hYmxlZEZvckFsbFBsdWdpbnMsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCi0gICAgbWFjcm8oQXJ0aWZpY2lhbFBsdWdpbkluaXRpYWxpemF0aW9uRGVsYXlF
bmFibGVkLCBhcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVGFiVG9MaW5rc0VuYWJsZWQsIHRhYlRvTGlua3NF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEludGVyYWN0aXZlRm9ybVZh
bGlkYXRpb25FbmFibGVkLCBpbnRlcmFjdGl2ZUZvcm1WYWxpZGF0aW9uRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhTY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFi
bGVkLCBzY3JvbGxpbmdQZXJmb3JtYW5jZUxvZ2dpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxz
ZSkgXAotICAgIG1hY3JvKFNjcm9sbEFuaW1hdG9yRW5hYmxlZCwgc2Nyb2xsQW5pbWF0b3JFbmFi
bGVkLCBCb29sLCBib29sLCBERUZBVUxUX1dFQktJVF9TQ1JPTExfQU5JTUFUT1JfRU5BQkxFRCkg
XAotICAgIG1hY3JvKFNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkLCBzY3JlZW5Gb250U3Vi
c3RpdHV0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9TQ1JFRU5fRk9OVF9TVUJTVElU
VVRJT05fRU5BQkxFRCkgXAotICAgIG1hY3JvKENvb2tpZUVuYWJsZWQsIGNvb2tpZUVuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhQbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVk
LCBwbHVnSW5TbmFwc2hvdHRpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1h
Y3JvKFNuYXBzaG90QWxsUGx1Z0lucywgc25hcHNob3RBbGxQbHVnSW5zLCBCb29sLCBib29sLCBm
YWxzZSkgXAotICAgIG1hY3JvKEF1dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJs
ZWQsIGF1dG9zdGFydE9yaWdpblBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQsIEJvb2wsIGJvb2ws
IHRydWUpIFwKLSAgICBtYWNybyhQcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVk
LCBwcmltYXJ5UGx1Z0luU25hcHNob3REZXRlY3Rpb25FbmFibGVkLCBCb29sLCBib29sLCB0cnVl
KSBcCi0gICAgbWFjcm8oUERGUGx1Z2luRW5hYmxlZCwgcGRmUGx1Z2luRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgREVGQVVMVF9QREZQTFVHSU5fRU5BQkxFRCkgXAotICAgIG1hY3JvKFVzZXNFbmNvZGlu
Z0RldGVjdG9yLCB1c2VzRW5jb2RpbmdEZXRlY3RvciwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAg
ICBtYWNybyhUZXh0QXV0b3NpemluZ0VuYWJsZWQsIHRleHRBdXRvc2l6aW5nRW5hYmxlZCwgQm9v
bCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhBZ2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJs
ZWQsIGFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
LSAgICBtYWNybyhUZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9uRW5hYmxlZCwgdGVtcG9yYXJ5
VGlsZUNvaG9ydFJldGVudGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFVTFRfVEVNUE9SQVJZ
X1RJTEVfQ09IT1JUX1JFVEVOVElPTl9FTkFCTEVEKSBcCi0gICAgbWFjcm8oUVRLaXRFbmFibGVk
LCBpc1FUS2l0RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKExvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkLCBsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1D
b25zb2xlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhQYWdlVmlzaWJp
bGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCwgcGFnZVZpc2liaWxpdHlCYXNlZFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQsIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQs
IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0g
ICAgbWFjcm8oU2hvd3NVUkxzSW5Ub29sVGlwc0VuYWJsZWQsIHNob3dzVVJMc0luVG9vbFRpcHNF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JPdmVyZmxvd1Njcm9sbEVuYWJsZWQsIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JP
dmVyZmxvd1Njcm9sbEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oSGlk
ZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQsIGhpZGRlblBhZ2VET01UaW1lclRocm90
dGxpbmdFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0hJRERFTl9QQUdFX0RPTV9USU1FUl9U
SFJPVFRMSU5HX0VOQUJMRUQpIFwKLSAgICBtYWNybyhIaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3Vz
cGVuc2lvbkVuYWJsZWQsIGhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZCwg
Qm9vbCwgYm9vbCwgREVGQVVMVF9ISURERU5fUEFHRV9DU1NfQU5JTUFUSU9OX1NVU1BFTlNJT05f
RU5BQkxFRCkgXAotICAgIG1hY3JvKExvd1Bvd2VyVmlkZW9BdWRpb0J1ZmZlclNpemVFbmFibGVk
LCBsb3dQb3dlclZpZGVvQXVkaW9CdWZmZXJTaXplRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKLSAgICBtYWNybyhUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQsIHRocmVhZGVkU2Nyb2xsaW5n
RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFNpbXBsZUxpbmVMYXlvdXRF
bmFibGVkLCBzaW1wbGVMaW5lTGF5b3V0RW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAg
IG1hY3JvKFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVkLCBzaW1wbGVMaW5lTGF5
b3V0RGVidWdCb3JkZXJzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhT
dWJwaXhlbENTU09NRWxlbWVudE1ldHJpY3NFbmFibGVkLCBzdWJwaXhlbENTU09NRWxlbWVudE1l
dHJpY3NFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oQmFja2dyb3VuZFNo
b3VsZEV4dGVuZEJleW9uZFBhZ2UsIGJhY2tncm91bmRTaG91bGRFeHRlbmRCZXlvbmRQYWdlLCBC
b29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKE1lZGlhU3RyZWFtRW5hYmxlZCwgbWVkaWFT
dHJlYW1FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFVzZUxlZ2FjeVRl
eHRBbGlnblBvc2l0aW9uZWRFbGVtZW50QmVoYXZpb3IsIHVzZUxlZ2FjeVRleHRBbGlnblBvc2l0
aW9uZWRFbGVtZW50QmVoYXZpb3IsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkLCBzcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oTWVkaWFTb3VyY2VFbmFibGVkLCBtZWRpYVNvdXJjZUVu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhWaWV3R2VzdHVyZURlYnVnZ2lu
Z0VuYWJsZWQsIHZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Up
IFwKLSAgICBtYWNybyhTaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9uQ29weSwgc2hvdWxkQ29u
dmVydFBvc2l0aW9uU3R5bGVPbkNvcHksIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8o
U3RhbmRhbG9uZSwgc3RhbmRhbG9uZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhU
ZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCwgdGVsZXBob25lTnVtYmVyUGFyc2luZ0VuYWJs
ZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQWx3YXlzVXNlQmFzZWxpbmVPZlBy
aW1hcnlGb250LCBhbHdheXNVc2VCYXNlbGluZU9mUHJpbWFyeUZvbnQsIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCi0gICAgbWFjcm8oQWxsb3dNdWx0aUVsZW1lbnRJbXBsaWNpdFN1Ym1pc3Npb24sIGFs
bG93TXVsdGlFbGVtZW50SW1wbGljaXRTdWJtaXNzaW9uLCBCb29sLCBib29sLCBmYWxzZSkgXAot
ICAgIG1hY3JvKEFsd2F5c1VzZUFjY2VsZXJhdGVkT3ZlcmZsb3dTY3JvbGwsIGFsd2F5c1VzZUFj
Y2VsZXJhdGVkT3ZlcmZsb3dTY3JvbGwsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8o
UGFzc3dvcmRFY2hvRW5hYmxlZCwgcGFzc3dvcmRFY2hvRW5hYmxlZCwgQm9vbCwgYm9vbCwgREVG
QVVMVF9QQVNTV09SRF9FQ0hPX0VOQUJMRUQpIFwKLSAgICBtYWNybyhJbWFnZUNvbnRyb2xzRW5h
YmxlZCwgaW1hZ2VDb250cm9sc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFj
cm8oRW5hYmxlSW5oZXJpdFVSSVF1ZXJ5Q29tcG9uZW50LCBlbmFibGVJbmhlcml0VVJJUXVlcnlD
b21wb25lbnQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU2VydmljZUNvbnRyb2xz
RW5hYmxlZCwgc2VydmljZUNvbnRyb2xzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLQot
I2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBt
YWNybyhQREZTY2FsZUZhY3RvciwgcGRmU2NhbGVGYWN0b3IsIERvdWJsZSwgZG91YmxlLCAwKSBc
Ci0gICAgbWFjcm8oSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvblRpbWVvdXQsIGluY3Jl
bWVudGFsUmVuZGVyaW5nU3VwcHJlc3Npb25UaW1lb3V0LCBEb3VibGUsIGRvdWJsZSwgNSkgXAot
ICAgIG1hY3JvKE1pbmltdW1Gb250U2l6ZSwgbWluaW11bUZvbnRTaXplLCBEb3VibGUsIGRvdWJs
ZSwgMCkgXAotICAgIG1hY3JvKE1pbmltdW1Mb2dpY2FsRm9udFNpemUsIG1pbmltdW1Mb2dpY2Fs
Rm9udFNpemUsIERvdWJsZSwgZG91YmxlLCA5KSBcCi0gICAgbWFjcm8oTWluaW11bVpvb21Gb250
U2l6ZSwgbWluaW11bVpvb21Gb250U2l6ZSwgRG91YmxlLCBkb3VibGUsIERFRkFVTFRfTUlOSU1V
TV9GT05UX1pPT01fU0laRSkgXAotICAgIG1hY3JvKERlZmF1bHRGb250U2l6ZSwgZGVmYXVsdEZv
bnRTaXplLCBEb3VibGUsIGRvdWJsZSwgMTYpIFwKLSAgICBtYWNybyhEZWZhdWx0Rml4ZWRGb250
U2l6ZSwgZGVmYXVsdEZpeGVkRm9udFNpemUsIERvdWJsZSwgZG91YmxlLCAxMykgXAotICAgIG1h
Y3JvKExheW91dEludGVydmFsLCBsYXlvdXRJbnRlcnZhbCwgRG91YmxlLCBkb3VibGUsIC0xKSBc
Ci0gICAgbWFjcm8oTWF4UGFyc2VEdXJhdGlvbiwgbWF4UGFyc2VEdXJhdGlvbiwgRG91YmxlLCBk
b3VibGUsIC0xKSBcCi0gICAgbWFjcm8oUGFzc3dvcmRFY2hvRHVyYXRpb24sIHBhc3N3b3JkRWNo
b0R1cmF0aW9uLCBEb3VibGUsIGRvdWJsZSwgMikgXAotICAgIFwKLQotI2RlZmluZSBGT1JfRUFD
SF9XRUJLSVRfVUlOVDMyX1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBtYWNybyhGb250U21vb3Ro
aW5nTGV2ZWwsIGZvbnRTbW9vdGhpbmdMZXZlbCwgVUludDMyLCB1aW50MzJfdCwgRm9udFNtb290
aGluZ0xldmVsTWVkaXVtKSBcCi0gICAgbWFjcm8oTGF5b3V0RmFsbGJhY2tXaWR0aCwgbGF5b3V0
RmFsbGJhY2tXaWR0aCwgVUludDMyLCB1aW50MzJfdCwgOTgwKSBcCi0gICAgbWFjcm8oRGV2aWNl
V2lkdGgsIGRldmljZVdpZHRoLCBVSW50MzIsIHVpbnQzMl90LCAwKSBcCi0gICAgbWFjcm8oRGV2
aWNlSGVpZ2h0LCBkZXZpY2VIZWlnaHQsIFVJbnQzMiwgdWludDMyX3QsIDApIFwKLSAgICBtYWNy
byhQREZEaXNwbGF5TW9kZSwgcGRmRGlzcGxheU1vZGUsIFVJbnQzMiwgdWludDMyX3QsIDEpIFwK
LSAgICBtYWNybyhFZGl0YWJsZUxpbmtCZWhhdmlvciwgZWRpdGFibGVMaW5rQmVoYXZpb3IsIFVJ
bnQzMiwgdWludDMyX3QsIFdlYkNvcmU6OkVkaXRhYmxlTGlua05ldmVyTGl2ZSkgXAotICAgIG1h
Y3JvKEluc3BlY3RvckF0dGFjaGVkSGVpZ2h0LCBpbnNwZWN0b3JBdHRhY2hlZEhlaWdodCwgVUlu
dDMyLCB1aW50MzJfdCwgMzAwKSBcCi0gICAgbWFjcm8oSW5zcGVjdG9yQXR0YWNoZWRXaWR0aCwg
aW5zcGVjdG9yQXR0YWNoZWRXaWR0aCwgVUludDMyLCB1aW50MzJfdCwgNzUwKSBcCi0gICAgbWFj
cm8oSW5zcGVjdG9yQXR0YWNobWVudFNpZGUsIGluc3BlY3RvckF0dGFjaG1lbnRTaWRlLCBVSW50
MzIsIHVpbnQzMl90LCAwKSBcCi0gICAgbWFjcm8oU3RvcmFnZUJsb2NraW5nUG9saWN5LCBzdG9y
YWdlQmxvY2tpbmdQb2xpY3ksIFVJbnQzMiwgdWludDMyX3QsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpCbG9ja1RoaXJkUGFydHlTdG9yYWdlKSBcCi0gICAgXAotCi0jaWYgUExBVEZPUk0oQ09D
T0EpCi0KLSNpZiBQTEFURk9STShJT1MpCi0jZGVmaW5lIERFRkFVTFRfQ1VSU0lWRV9GT05UX0ZB
TUlMWSAiU25lbGwgUm91bmRoYW5kIgotI2RlZmluZSBERUZBVUxUX1BJQ1RPR1JBUEhfRk9OVF9G
QU1JTFkgIkFwcGxlQ29sb3JFbW9qaSIKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRfQ1VSU0lWRV9G
T05UX0ZBTUlMWSAiQXBwbGUgQ2hhbmNlcnkiCi0jZGVmaW5lIERFRkFVTFRfUElDVE9HUkFQSF9G
T05UX0ZBTUlMWSAiQXBwbGUgQ29sb3IgRW1vamkiCi0jZW5kaWYKLQotCi0jZGVmaW5lIEZPUl9F
QUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgbWFjcm8oU3Rh
bmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGlt
ZXMiKSBcCi0gICAgbWFjcm8oQ3Vyc2l2ZUZvbnRGYW1pbHksIGN1cnNpdmVGb250RmFtaWx5LCBT
dHJpbmcsIFN0cmluZywgREVGQVVMVF9DVVJTSVZFX0ZPTlRfRkFNSUxZKSBcCi0gICAgbWFjcm8o
RmFudGFzeUZvbnRGYW1pbHksIGZhbnRhc3lGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlBh
cHlydXMiKSBcCi0gICAgbWFjcm8oRml4ZWRGb250RmFtaWx5LCBmaXhlZEZvbnRGYW1pbHksIFN0
cmluZywgU3RyaW5nLCAiQ291cmllciIpIFwKLSAgICBtYWNybyhTYW5zU2VyaWZGb250RmFtaWx5
LCBzYW5zU2VyaWZGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkhlbHZldGljYSIpIFwKLSAg
ICBtYWNybyhTZXJpZkZvbnRGYW1pbHksIHNlcmlmRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcs
ICJUaW1lcyIpIFwKLSAgICBtYWNybyhQaWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFwaEZv
bnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiQXBwbGUgQ29sb3IgRW1vamkiKSBcCi0gICAgXAot
Ci0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLQotI2RlZmluZSBGT1JfRUFD
SF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKFN0YW5k
YXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVz
IikgXAotICAgIG1hY3JvKEN1cnNpdmVGb250RmFtaWx5LCBjdXJzaXZlRm9udEZhbWlseSwgU3Ry
aW5nLCBTdHJpbmcsICJDb21pYyBTYW5zIE1TIikgXAotICAgIG1hY3JvKEZhbnRhc3lGb250RmFt
aWx5LCBmYW50YXN5Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJJbXBhY3QiKSBcCi0gICAg
bWFjcm8oRml4ZWRGb250RmFtaWx5LCBmaXhlZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAi
Q291cmllciBOZXciKSBcCi0gICAgbWFjcm8oU2Fuc1NlcmlmRm9udEZhbWlseSwgc2Fuc1Nlcmlm
Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJIZWx2ZXRpY2EiKSBcCi0gICAgbWFjcm8oU2Vy
aWZGb250RmFtaWx5LCBzZXJpZkZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGltZXMiKSBc
Ci0gICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBT
dHJpbmcsIFN0cmluZywgIlRpbWVzIikgXAotICAgIFwKLQotI2VuZGlmCi0KLSNkZWZpbmUgRk9S
X0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfV0VC
S0lUX0ZPTlRfRkFNSUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBtYWNybyhEZWZhdWx0VGV4
dEVuY29kaW5nTmFtZSwgZGVmYXVsdFRleHRFbmNvZGluZ05hbWUsIFN0cmluZywgU3RyaW5nLCAi
SVNPLTg4NTktMSIpIFwKLSAgICBtYWNybyhGVFBEaXJlY3RvcnlUZW1wbGF0ZVBhdGgsIGZ0cERp
cmVjdG9yeVRlbXBsYXRlUGF0aCwgU3RyaW5nLCBTdHJpbmcsICIiKSBcCi0gICAgXAotCi0jZGVm
aW5lIEZPUl9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRV9OT1RfSU5fV0VCQ09SRShtYWNy
bykgXAotICAgIG1hY3JvKEluc3BlY3RvcldpbmRvd0ZyYW1lLCBpbnNwZWN0b3JXaW5kb3dGcmFt
ZSwgU3RyaW5nLCBTdHJpbmcsICIiKSBcCi0gICAgXAotCi0jZGVmaW5lIEZPUl9FQUNIX1dFQktJ
VF9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfV0VCS0lUX0JPT0xfUFJFRkVSRU5D
RShtYWNybykgXAotICAgIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVfUFJFRkVSRU5DRShtYWNybykg
XAotICAgIEZPUl9FQUNIX1dFQktJVF9VSU5UMzJfUFJFRkVSRU5DRShtYWNybykgXAotICAgIEZP
Ul9FQUNIX1dFQktJVF9TVFJJTkdfUFJFRkVSRU5DRShtYWNybykgXAotICAgIEZPUl9FQUNIX1dF
QktJVF9TVFJJTkdfUFJFRkVSRU5DRV9OT1RfSU5fV0VCQ09SRShtYWNybykgXAotICAgIFwKLQog
bmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5IHsKIAogI2RlZmluZSBERUNMQVJFX0tFWV9HRVRU
RVJTKEtleVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWUsIFR5cGUsIERlZmF1bHRWYWx1ZSkgY29u
c3QgU3RyaW5nJiBLZXlMb3dlciMjS2V5KCk7CkBAIC0zMDgsMTU1ICszOSw2IEBAIEZPUl9FQUNI
X1dFQktJVF9QUkVGRVJFTkNFKERFQ0xBUkVfS0VZX0cKICN1bmRlZiBERUNMQVJFX0tFWV9HRVRU
RVJTCiAKIH0gLy8gbmFtZXNwYWNlIFdlYlByZWZlcmVuY2VzS2V5Ci0KLXN0cnVjdCBXZWJQcmVm
ZXJlbmNlc1N0b3JlIHsKLSAgICBXZWJQcmVmZXJlbmNlc1N0b3JlKCk7Ci0KLSAgICB2b2lkIGVu
Y29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgIHN0YXRpYyBib29sIGRlY29k
ZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKLQotICAgIC8v
IE5PVEU6IFRoZSBnZXR0ZXJzIGluIHRoaXMgY2xhc3MgaGF2ZSBub24tc3RhbmRhcmQgbmFtZXMg
dG8gYWlkIGluIHRoZSB1c2Ugb2YgdGhlIHByZWZlcmVuY2UgbWFjcm9zLgotCi0gICAgYm9vbCBz
ZXRTdHJpbmdWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1
ZSk7Ci0gICAgU3RyaW5nIGdldFN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5KSBj
b25zdDsKLQotICAgIGJvb2wgc2V0Qm9vbFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYga2V5LCBi
b29sIHZhbHVlKTsKLSAgICBib29sIGdldEJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtl
eSkgY29uc3Q7Ci0KLSAgICBib29sIHNldFVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCB1aW50MzJfdCB2YWx1ZSk7Ci0gICAgdWludDMyX3QgZ2V0VUludDMyVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OwotCi0gICAgYm9vbCBzZXREb3VibGVWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmIGtleSwgZG91YmxlIHZhbHVlKTsKLSAgICBkb3VibGUgZ2V0RG91Ymxl
VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0OwotCi0gICAgdm9pZCBzZXRPdmVy
cmlkZURlZmF1bHRzU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBrZXksIFN0cmluZyB2
YWx1ZSk7Ci0gICAgdm9pZCBzZXRPdmVycmlkZURlZmF1bHRzQm9vbFZhbHVlRm9yS2V5KGNvbnN0
IFN0cmluZyYga2V5LCBib29sIHZhbHVlKTsKLSAgICB2b2lkIHNldE92ZXJyaWRlRGVmYXVsdHNV
SW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmIGtleSwgdWludDMyX3QgdmFsdWUpOwotICAg
IHZvaWQgc2V0T3ZlcnJpZGVEZWZhdWx0c0RvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYg
a2V5LCBkb3VibGUgdmFsdWUpOwotCi0gICAgLy8gRm9yIFdlYktpdFRlc3RSdW5uZXIgdXNhZ2Uu
Ci0gICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiBr
ZXksIGJvb2wgdmFsdWUpOwotICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RSdW5uZXJPdmVycmlk
ZXMoKTsKLQotICAgIHN0cnVjdCBWYWx1ZSB7Ci0gICAgICAgIGVudW0gY2xhc3MgVHlwZSB7Ci0g
ICAgICAgICAgICBOb25lLAotICAgICAgICAgICAgU3RyaW5nLAotICAgICAgICAgICAgQm9vbCwK
LSAgICAgICAgICAgIFVJbnQzMiwKLSAgICAgICAgICAgIERvdWJsZSwKLSAgICAgICAgfTsKLQot
ICAgICAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwotICAgICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImLCBWYWx1ZSYpOwotCi0g
ICAgICAgIGV4cGxpY2l0IFZhbHVlKCkgOiBtX3R5cGUoVHlwZTo6Tm9uZSkgeyB9Ci0gICAgICAg
IGV4cGxpY2l0IFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90eXBlKFR5cGU6OlN0cmlu
ZyksIG1fc3RyaW5nKHZhbHVlKSB7IH0KLSAgICAgICAgZXhwbGljaXQgVmFsdWUoYm9vbCB2YWx1
ZSkgOiBtX3R5cGUoVHlwZTo6Qm9vbCksIG1fYm9vbCh2YWx1ZSkgeyB9Ci0gICAgICAgIGV4cGxp
Y2l0IFZhbHVlKHVpbnQzMl90IHZhbHVlKSA6IG1fdHlwZShUeXBlOjpVSW50MzIpLCBtX3VpbnQz
Mih2YWx1ZSkgeyB9Ci0gICAgICAgIGV4cGxpY2l0IFZhbHVlKGRvdWJsZSB2YWx1ZSkgOiBtX3R5
cGUoVHlwZTo6RG91YmxlKSwgbV9kb3VibGUodmFsdWUpIHsgfQotCi0gICAgICAgIFZhbHVlKFZh
bHVlJiYgdmFsdWUpCi0gICAgICAgICAgICA6IG1fdHlwZSh2YWx1ZS5tX3R5cGUpCi0gICAgICAg
IHsKLSAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6
Ok5vbmU6Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OlN0
cmluZzoKLSAgICAgICAgICAgICAgICBuZXcgKCZtX3N0cmluZykgU3RyaW5nKHN0ZDo6bW92ZSh2
YWx1ZS5tX3N0cmluZykpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSBUeXBlOjpCb29sOgotICAgICAgICAgICAgICAgIG1fYm9vbCA9IHZhbHVlLm1fYm9vbDsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgVHlwZTo6VUludDMyOgotICAg
ICAgICAgICAgICAgIG1fdWludDMyID0gdmFsdWUubV91aW50MzI7Ci0gICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OkRvdWJsZToKLSAgICAgICAgICAgICAgICBt
X2RvdWJsZSA9IHZhbHVlLm1fZG91YmxlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgVmFsdWUmIG9wZXJhdG9yPShjb25zdCBWYWx1
ZSYgb3RoZXIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0aGlzID09ICZvdGhlcikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICBkZXN0cm95KCk7Ci0KLSAgICAgICAgICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICAg
ICAgICAgIHN3aXRjaCAobV90eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6Ok5vbmU6Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OlN0cmluZzoKLSAg
ICAgICAgICAgICAgICBuZXcgKCZtX3N0cmluZykgU3RyaW5nKG90aGVyLm1fc3RyaW5nKTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgVHlwZTo6Qm9vbDoKLSAgICAg
ICAgICAgICAgICBtX2Jvb2wgPSBvdGhlci5tX2Jvb2w7Ci0gICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIFR5cGU6OlVJbnQzMjoKLSAgICAgICAgICAgICAgICBtX3VpbnQz
MiA9IG90aGVyLm1fdWludDMyOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBUeXBlOjpEb3VibGU6Ci0gICAgICAgICAgICAgICAgbV9kb3VibGUgPSBvdGhlci5tX2Rv
dWJsZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAKLSAgICAg
ICAgICAgIHJldHVybiAqdGhpczsKLSAgICAgICAgfQotCi0gICAgICAgIH5WYWx1ZSgpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIGRlc3Ryb3koKTsKLSAgICAgICAgfQotCi0gICAgICAgIFR5cGUg
dHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCi0gICAgICAgIFN0cmluZyBhc1N0cmlu
ZygpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6
U3RyaW5nKTsKLSAgICAgICAgICAgIHJldHVybiBtX3N0cmluZzsKLSAgICAgICAgfQotCi0gICAg
ICAgIGJvb2wgYXNCb29sKCkgY29uc3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBUeXBlOjpCb29sKTsKLSAgICAgICAgICAgIHJldHVybiBtX2Jvb2w7Ci0gICAgICAg
IH0KLQotICAgICAgICB1aW50MzJfdCBhc1VJbnQzMigpIGNvbnN0Ci0gICAgICAgIHsKLSAgICAg
ICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6VUludDMyKTsKLSAgICAgICAgICAgIHJldHVy
biBtX3VpbnQzMjsKLSAgICAgICAgfQotCi0gICAgICAgIGRvdWJsZSBhc0RvdWJsZSgpIGNvbnN0
Ci0gICAgICAgIHsKLSAgICAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gVHlwZTo6RG91YmxlKTsK
LSAgICAgICAgICAgIHJldHVybiBtX2RvdWJsZTsKLSAgICAgICAgfQotCi0gICAgcHJpdmF0ZToK
LSAgICAgICAgdm9pZCBkZXN0cm95KCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKG1fdHlw
ZSA9PSBUeXBlOjpTdHJpbmcpCi0gICAgICAgICAgICAgICAgbV9zdHJpbmcuflN0cmluZygpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgVHlwZSBtX3R5cGU7Ci0gICAgICAgIHVuaW9uIHsKLSAgICAg
ICAgICAgIFN0cmluZyBtX3N0cmluZzsKLSAgICAgICAgICAgIGJvb2wgbV9ib29sOwotICAgICAg
ICAgICAgdWludDMyX3QgbV91aW50MzI7Ci0gICAgICAgICAgICBkb3VibGUgbV9kb3VibGU7Ci0g
ICAgICAgIH07Ci0gICAgfTsKLQotICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZhbHVlPiBW
YWx1ZU1hcDsKLSAgICBWYWx1ZU1hcCBtX3ZhbHVlczsKLSAgICBWYWx1ZU1hcCBtX292ZXJyaWRl
bkRlZmF1bHRzOwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBXZWJQ
cmVmZXJlbmNlc1N0b3JlX2gKKyNlbmRpZiAvLyBXZWJQcmVmZXJlbmNlc0tleXNfaApJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmNwcAkocmV2aXNp
b24gMTY5MzYzKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJGb250U21v
b3RoaW5nTGV2ZWwuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNs
dWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAKQEAgLTM3LDIxICszOCw2IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi1uYW1lc3BhY2UgV2ViUHJlZmVyZW5jZXNLZXkgewotCi0j
ZGVmaW5lIERFRklORV9LRVlfR0VUVEVSUyhLZXlVcHBlciwgS2V5TG93ZXIsIFR5cGVOYW1lLCBU
eXBlLCBEZWZhdWx0VmFsdWUpIFwKLSAgICAgICAgY29uc3QgU3RyaW5nJiBLZXlMb3dlciMjS2V5
KCkgXAotICAgICAgICB7IFwKLSAgICAgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IGtleShBU0NJSUxpdGVyYWwoI0tleVVwcGVyKSk7IFwKLSAgICAgICAgICAgIHJldHVybiBr
ZXk7IFwKLSAgICAgICAgfQotCi0gICAgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVGSU5F
X0tFWV9HRVRURVJTKQotCi0jdW5kZWYgREVGSU5FX0tFWV9HRVRURVJTCi0KLX0gLy8gbmFtZXNw
YWNlIFdlYlByZWZlcmVuY2VzS2V5Ci0KIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIGJvb2w+IEJv
b2xPdmVycmlkZXNNYXA7CiAKIHN0YXRpYyBCb29sT3ZlcnJpZGVzTWFwJiBib29sVGVzdFJ1bm5l
ck92ZXJyaWRlc01hcCgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmgJKHJldmlzaW9uIDE2OTM2MykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDI4NyArMjgsMTIgQEAK
IAogI2luY2x1ZGUgIkFyZ3VtZW50RGVjb2Rlci5oIgogI2luY2x1ZGUgIkFyZ3VtZW50RW5jb2Rl
ci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLS8vIG1hY3JvKEtl
eVVwcGVyLCBLZXlMb3dlciwgVHlwZU5hbWVVcHBlciwgVHlwZU5hbWUsIERlZmF1bHRWYWx1ZSkg
Ci0KLSNpZiBQTEFURk9STShHVEspCi0jZGVmaW5lIERFRkFVTFRfV0VCS0lUX1RBQlNUT0xJTktT
X0VOQUJMRUQgdHJ1ZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9XRUJLSVRfVEFCU1RPTElOS1Nf
RU5BQkxFRCBmYWxzZQotI2VuZGlmCi0KLSNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKLSNk
ZWZpbmUgREVGQVVMVF9XRUJLSVRfU0NST0xMX0FOSU1BVE9SX0VOQUJMRUQgdHJ1ZQotI2Vsc2UK
LSNkZWZpbmUgREVGQVVMVF9XRUJLSVRfU0NST0xMX0FOSU1BVE9SX0VOQUJMRUQgZmFsc2UKLSNl
bmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwOTAKLSNkZWZpbmUgREVGQVVMVF9TQ1JFRU5fRk9OVF9TVUJTVElUVVRJT05fRU5B
QkxFRCBmYWxzZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9TQ1JFRU5fRk9OVF9TVUJTVElUVVRJ
T05fRU5BQkxFRCB0cnVlCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JNKENPQ09BKQotI2RlZmluZSBE
RUZBVUxUX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HX0VOQUJMRUQgdHJ1ZQotI2Rl
ZmluZSBERUZBVUxUX0hJRERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVE
IHRydWUKLSNkZWZpbmUgREVGQVVMVF9QREZQTFVHSU5fRU5BQkxFRCB0cnVlCi0jZWxzZQotI2Rl
ZmluZSBERUZBVUxUX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HX0VOQUJMRUQgZmFs
c2UKLSNkZWZpbmUgREVGQVVMVF9ISURERU5fUEFHRV9DU1NfQU5JTUFUSU9OX1NVU1BFTlNJT05f
RU5BQkxFRCBmYWxzZQotI2RlZmluZSBERUZBVUxUX1BERlBMVUdJTl9FTkFCTEVEIGZhbHNlCi0j
ZW5kaWYKLQotI2lmIFBMQVRGT1JNKElPUykKLSNkZWZpbmUgREVGQVVMVF9GUkFNRV9GTEFUVEVO
SU5HX0VOQUJMRUQgdHJ1ZQotI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5E
UyB0cnVlCi0jZGVmaW5lIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVTSVpBQkxFIGZhbHNlCi0j
ZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkg
ZmFsc2UKLSNkZWZpbmUgREVGQVVMVF9TSE9VTERfUkVTUEVDVF9JTUFHRV9PUklFTlRBVElPTiB0
cnVlCi0jZGVmaW5lIERFRkFVTFRfTUlOSU1VTV9GT05UX1pPT01fU0laRSBXS0dldE1pbmltdW1a
b29tRm9udFNpemUoKQotI2RlZmluZSBERUZBVUxUX1BBU1NXT1JEX0VDSE9fRU5BQkxFRCB0cnVl
Ci0jZGVmaW5lIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfQUxMT1dTX0lOTElORSBmYWxzZQotI2Rl
ZmluZSBERUZBVUxUX01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVSRSB0cnVlCi0j
ZGVmaW5lIERFRkFVTFRfVEVNUE9SQVJZX1RJTEVfQ09IT1JUX1JFVEVOVElPTl9FTkFCTEVEIGZh
bHNlCi0jZWxzZQotI2RlZmluZSBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkdfRU5BQkxFRCBmYWxz
ZQotI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUyBmYWxzZQotI2RlZmlu
ZSBERUZBVUxUX1RFWFRfQVJFQVNfQVJFX1JFU0laQUJMRSB0cnVlCi0jZGVmaW5lIERFRkFVTFRf
SkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FMTFkgdHJ1ZQotI2RlZmluZSBE
RUZBVUxUX1NIT1VMRF9SRVNQRUNUX0lNQUdFX09SSUVOVEFUSU9OIGZhbHNlCi0jZGVmaW5lIERF
RkFVTFRfTUlOSU1VTV9GT05UX1pPT01fU0laRSAwCi0jZGVmaW5lIERFRkFVTFRfUEFTU1dPUkRf
RUNIT19FTkFCTEVEIGZhbHNlCi0jZGVmaW5lIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfQUxMT1dT
X0lOTElORSB0cnVlCi0jZGVmaW5lIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfUkVRVUlSRVNfVVNF
Ul9HRVNUVVJFIGZhbHNlCi0jZGVmaW5lIERFRkFVTFRfVEVNUE9SQVJZX1RJTEVfQ09IT1JUX1JF
VEVOVElPTl9FTkFCTEVEIHRydWUKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKSAmJiAhUExB
VEZPUk0oSU9TX1NJTVVMQVRPUikKLSNkZWZpbmUgREVGQVVMVF9BQ0NFTEVSQVRFRF9EUkFXSU5H
X0VOQUJMRUQgdHJ1ZQotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9BQ0NFTEVSQVRFRF9EUkFXSU5H
X0VOQUJMRUQgZmFsc2UKLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oSU9TKSAmJiBQTEFURk9STShJ
T1NfU0lNVUxBVE9SKQotI2RlZmluZSBERUZBVUxUX0NBTlZBU19VU0VTX0FDQ0VMRVJBVEVEX0RS
QVdJTkcgZmFsc2UKLSNlbHNlCi0jZGVmaW5lIERFRkFVTFRfQ0FOVkFTX1VTRVNfQUNDRUxFUkFU
RURfRFJBV0lORyB0cnVlCi0jZW5kaWYKLQotI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfQk9PTF9Q
UkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgbWFjcm8oSmF2YVNjcmlwdEVuYWJsZWQsIGphdmFTY3Jp
cHRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oSmF2YVNjcmlwdE1hcmt1
cEVuYWJsZWQsIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0g
ICAgbWFjcm8oTG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5LCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHksIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhMb2Fkc1NpdGVJY29uc0lnbm9yaW5n
SW1hZ2VMb2FkaW5nUHJlZmVyZW5jZSwgbG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGlu
Z1ByZWZlcmVuY2UsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oUGx1Z2luc0VuYWJs
ZWQsIHBsdWdpbnNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEphdmFF
bmFibGVkLCBqYXZhRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhKYXZh
RW5hYmxlZEZvckxvY2FsRmlsZXMsIGphdmFFbmFibGVkRm9yTG9jYWxGaWxlcywgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKLSAgICBtYWNybyhPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQs
IG9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
LSAgICBtYWNybyhMb2NhbFN0b3JhZ2VFbmFibGVkLCBsb2NhbFN0b3JhZ2VFbmFibGVkLCBCb29s
LCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oRGF0YWJhc2VzRW5hYmxlZCwgZGF0YWJhc2VzRW5h
YmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFhTU0F1ZGl0b3JFbmFibGVkLCB4
c3NBdWRpdG9yRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQsIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIERFRkFV
TFRfRlJBTUVfRkxBVFRFTklOR19FTkFCTEVEKSBcCi0gICAgbWFjcm8oRGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCwgZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAg
ICBtYWNybyhKYXZhU2NyaXB0RXhwZXJpbWVudHNFbmFibGVkLCBqYXZhU2NyaXB0RXhwZXJpbWVu
dHNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFByaXZhdGVCcm93c2lu
Z0VuYWJsZWQsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0g
ICAgbWFjcm8oVGV4dEFyZWFzQXJlUmVzaXphYmxlLCB0ZXh0QXJlYXNBcmVSZXNpemFibGUsIEJv
b2wsIGJvb2wsIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVTSVpBQkxFKSBcCi0gICAgbWFjcm8o
SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSwgamF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSwgQm9vbCwgYm9vbCwgREVGQVVMVF9KQVZBU0NSSVBUX0NBTl9P
UEVOX1dJTkRPV1NfQVVUT01BVElDQUxMWSkgXAotICAgIG1hY3JvKEh5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCwgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0g
ICAgbWFjcm8oTmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtz
LCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkLCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkg
XAotICAgIG1hY3JvKEZvcmNlQ29tcG9zaXRpbmdNb2RlLCBmb3JjZUNvbXBvc2l0aW5nTW9kZSwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
LCBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX0FDQ0VMRVJB
VEVEX0RSQVdJTkdfRU5BQkxFRCkgXAotICAgIG1hY3JvKENhbnZhc1VzZXNBY2NlbGVyYXRlZERy
YXdpbmcsIGNhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcsIEJvb2wsIGJvb2wsIERFRkFVTFRf
Q0FOVkFTX1VTRVNfQUNDRUxFUkFURURfRFJBV0lORykgXAotICAgIG1hY3JvKENvbXBvc2l0aW5n
Qm9yZGVyc1Zpc2libGUsIGNvbXBvc2l0aW5nQm9yZGVyc1Zpc2libGUsIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCi0gICAgbWFjcm8oQ29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlLCBjb21w
b3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAg
bWFjcm8oVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3JWaXNpYmxlLCB0aWxlZFNjcm9sbGluZ0luZGlj
YXRvclZpc2libGUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oV2ViR0xFbmFibGVk
LCB3ZWJHTEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhNdWx0aXRocmVh
ZGVkV2ViR0xFbmFibGVkLCBtdWx0aXRocmVhZGVkV2ViR0xFbmFibGVkLCBCb29sLCBib29sLCBm
YWxzZSkgXAotICAgIG1hY3JvKEZvcmNlU29mdHdhcmVXZWJHTFJlbmRlcmluZywgZm9yY2VTb2Z0
d2FyZVdlYkdMUmVuZGVyaW5nLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKEFjY2Vs
ZXJhdGVkMmRDYW52YXNFbmFibGVkLCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhDU1NSZWdpb25zRW5hYmxlZCwgY3NzUmVnaW9uc0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhDU1NDb21wb3NpdGluZ0VuYWJs
ZWQsIGNzc0NvbXBvc2l0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3Jv
KEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MsIGZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3MsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVGFic1RvTGlua3MsIHRhYnNUb0xpbmtzLCBC
b29sLCBib29sLCBERUZBVUxUX1dFQktJVF9UQUJTVE9MSU5LU19FTkFCTEVEKSBcCi0gICAgbWFj
cm8oRE5TUHJlZmV0Y2hpbmdFbmFibGVkLCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oV2ViQXJjaGl2ZURlYnVnTW9kZUVuYWJsZWQsIHdlYkFy
Y2hpdmVEZWJ1Z01vZGVFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKExv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVXNlc1BhZ2VDYWNoZSwgdXNl
c1BhZ2VDYWNoZSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFBhZ2VDYWNoZVN1cHBv
cnRzUGx1Z2lucywgcGFnZUNhY2hlU3VwcG9ydHNQbHVnaW5zLCBCb29sLCBib29sLCB0cnVlKSBc
Ci0gICAgbWFjcm8oQXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQsIGF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oUGFnaW5hdGVEdXJpbmdM
YXlvdXRFbmFibGVkLCBwYWdpbmF0ZUR1cmluZ0xheW91dEVuYWJsZWQsIEJvb2wsIGJvb2wsIGZh
bHNlKSBcCi0gICAgbWFjcm8oRE9NUGFzdGVBbGxvd2VkLCBkb21QYXN0ZUFsbG93ZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oSmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwg
amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBt
YWNybyhTaG91bGRQcmludEJhY2tncm91bmRzLCBzaG91bGRQcmludEJhY2tncm91bmRzLCBCb29s
LCBib29sLCBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JPVU5EUykgXAotICAgIG1hY3JvKEZ1
bGxTY3JlZW5FbmFibGVkLCBmdWxsU2NyZWVuRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwK
LSAgICBtYWNybyhBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCwgYXN5bmNocm9ub3Vz
U3BlbGxDaGVja2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oV2Vi
U2VjdXJpdHlFbmFibGVkLCB3ZWJTZWN1cml0eUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwK
LSAgICBtYWNybyhBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcywgYWxsb3dVbml2ZXJz
YWxBY2Nlc3NGcm9tRmlsZVVSTHMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQWxs
b3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzLCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMsIEJv
b2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQVZGb3VuZGF0aW9uRW5hYmxlZCwgaXNBVkZv
dW5kYXRpb25FbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oTWVkaWFQbGF5
YmFja1JlcXVpcmVzVXNlckdlc3R1cmUsIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJl
LCBCb29sLCBib29sLCBERUZBVUxUX01FRElBX1BMQVlCQUNLX1JFUVVJUkVTX1VTRVJfR0VTVFVS
RSkgXAotICAgIG1hY3JvKE1lZGlhUGxheWJhY2tBbGxvd3NJbmxpbmUsIG1lZGlhUGxheWJhY2tB
bGxvd3NJbmxpbmUsIEJvb2wsIGJvb2wsIERFRkFVTFRfTUVESUFfUExBWUJBQ0tfQUxMT1dTX0lO
TElORSkgXAotICAgIG1hY3JvKE1lZGlhUGxheWJhY2tBbGxvd3NBaXJQbGF5LCBtZWRpYVBsYXli
YWNrQWxsb3dzQWlyUGxheSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKEluc3BlY3Rv
clN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFydHNBdHRhY2hlZCwgQm9vbCwgYm9vbCwgdHJ1
ZSkgXAotICAgIG1hY3JvKFNob3dzVG9vbFRpcE92ZXJUcnVuY2F0ZWRUZXh0LCBzaG93c1Rvb2xU
aXBPdmVyVHJ1bmNhdGVkVGV4dCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWQsIG1vY2tTY3JvbGxiYXJzRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKLSAgICBtYWNybyhXZWJBdWRpb0VuYWJsZWQsIHdlYkF1ZGlvRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKEFwcGxpY2F0aW9uQ2hyb21lTW9kZUVuYWJsZWQsIGFw
cGxpY2F0aW9uQ2hyb21lTW9kZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhTdXBw
cmVzc2VzSW5jcmVtZW50YWxSZW5kZXJpbmcsIHN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmlu
ZywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhCYWNrc3BhY2VLZXlOYXZpZ2F0aW9u
RW5hYmxlZCwgYmFja3NwYWNlS2V5TmF2aWdhdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUp
IFwKLSAgICBtYWNybyhDYXJldEJyb3dzaW5nRW5hYmxlZCwgY2FyZXRCcm93c2luZ0VuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU2hvdWxkRGlzcGxheVN1YnRpdGxlcywg
c2hvdWxkRGlzcGxheVN1YnRpdGxlcywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhT
aG91bGREaXNwbGF5Q2FwdGlvbnMsIHNob3VsZERpc3BsYXlDYXB0aW9ucywgQm9vbCwgYm9vbCwg
ZmFsc2UpIFwKLSAgICBtYWNybyhTaG91bGREaXNwbGF5VGV4dERlc2NyaXB0aW9ucywgc2hvdWxk
RGlzcGxheVRleHREZXNjcmlwdGlvbnMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8o
Tm90aWZpY2F0aW9uc0VuYWJsZWQsIG5vdGlmaWNhdGlvbnNFbmFibGVkLCBCb29sLCBib29sLCB0
cnVlKSBcCi0gICAgbWFjcm8oU2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRpb24sIHNob3VsZFJl
c3BlY3RJbWFnZU9yaWVudGF0aW9uLCBCb29sLCBib29sLCBERUZBVUxUX1NIT1VMRF9SRVNQRUNU
X0lNQUdFX09SSUVOVEFUSU9OKSBcCi0gICAgbWFjcm8oV2FudHNCYWxhbmNlZFNldERlZmVyc0xv
YWRpbmdCZWhhdmlvciwgd2FudHNCYWxhbmNlZFNldERlZmVyc0xvYWRpbmdCZWhhdmlvciwgQm9v
bCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVk
LCByZXF1ZXN0QW5pbWF0aW9uRnJhbWVFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAg
bWFjcm8oRGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkLCBkaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkLCBhc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbkVuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlh
bGl6YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucywgYXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6
YXRpb25FbmFibGVkRm9yQWxsUGx1Z2lucywgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNy
byhBcnRpZmljaWFsUGx1Z2luSW5pdGlhbGl6YXRpb25EZWxheUVuYWJsZWQsIGFydGlmaWNpYWxQ
bHVnaW5Jbml0aWFsaXphdGlvbkRlbGF5RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAg
ICBtYWNybyhUYWJUb0xpbmtzRW5hYmxlZCwgdGFiVG9MaW5rc0VuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCi0gICAgbWFjcm8oSW50ZXJhY3RpdmVGb3JtVmFsaWRhdGlvbkVuYWJsZWQsIGlu
dGVyYWN0aXZlRm9ybVZhbGlkYXRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAg
IG1hY3JvKFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWQsIHNjcm9sbGluZ1BlcmZv
cm1hbmNlTG9nZ2luZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU2Ny
b2xsQW5pbWF0b3JFbmFibGVkLCBzY3JvbGxBbmltYXRvckVuYWJsZWQsIEJvb2wsIGJvb2wsIERF
RkFVTFRfV0VCS0lUX1NDUk9MTF9BTklNQVRPUl9FTkFCTEVEKSBcCi0gICAgbWFjcm8oU2NyZWVu
Rm9udFN1YnN0aXR1dGlvbkVuYWJsZWQsIHNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkLCBC
b29sLCBib29sLCBERUZBVUxUX1NDUkVFTl9GT05UX1NVQlNUSVRVVElPTl9FTkFCTEVEKSBcCi0g
ICAgbWFjcm8oQ29va2llRW5hYmxlZCwgY29va2llRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkg
XAotICAgIG1hY3JvKFBsdWdJblNuYXBzaG90dGluZ0VuYWJsZWQsIHBsdWdJblNuYXBzaG90dGlu
Z0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oU25hcHNob3RBbGxQbHVn
SW5zLCBzbmFwc2hvdEFsbFBsdWdJbnMsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8o
QXV0b3N0YXJ0T3JpZ2luUGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCwgYXV0b3N0YXJ0T3JpZ2lu
UGx1Z0luU25hcHNob3R0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3Jv
KFByaW1hcnlQbHVnSW5TbmFwc2hvdERldGVjdGlvbkVuYWJsZWQsIHByaW1hcnlQbHVnSW5TbmFw
c2hvdERldGVjdGlvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhQREZQ
bHVnaW5FbmFibGVkLCBwZGZQbHVnaW5FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX1BERlBM
VUdJTl9FTkFCTEVEKSBcCi0gICAgbWFjcm8oVXNlc0VuY29kaW5nRGV0ZWN0b3IsIHVzZXNFbmNv
ZGluZ0RldGVjdG9yLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRleHRBdXRvc2l6
aW5nRW5hYmxlZCwgdGV4dEF1dG9zaXppbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAot
ICAgIG1hY3JvKEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZCwgYWdncmVzc2l2ZVRpbGVS
ZXRlbnRpb25FbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRlbXBvcmFy
eVRpbGVDb2hvcnRSZXRlbnRpb25FbmFibGVkLCB0ZW1wb3JhcnlUaWxlQ29ob3J0UmV0ZW50aW9u
RW5hYmxlZCwgQm9vbCwgYm9vbCwgREVGQVVMVF9URU1QT1JBUllfVElMRV9DT0hPUlRfUkVURU5U
SU9OX0VOQUJMRUQpIFwKLSAgICBtYWNybyhRVEtpdEVuYWJsZWQsIGlzUVRLaXRFbmFibGVkLCBC
b29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oTG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29u
c29sZUVuYWJsZWQsIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkLCBCb29s
LCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkLCBwYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAotICAgIG1hY3JvKFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCwgc21hcnRJbnNlcnREZWxldGVFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAg
bWFjcm8oU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCwgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhTaG93c1VSTHNJ
blRvb2xUaXBzRW5hYmxlZCwgc2hvd3NVUkxzSW5Ub29sVGlwc0VuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCi0gICAgbWFjcm8oQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Ny
b2xsRW5hYmxlZCwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zvck92ZXJmbG93U2Nyb2xsRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhIaWRkZW5QYWdlRE9NVGltZXJUaHJv
dHRsaW5nRW5hYmxlZCwgaGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGluZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIERFRkFVTFRfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkdfRU5BQkxFRCkg
XAotICAgIG1hY3JvKEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZCwgaGlk
ZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxU
X0hJRERFTl9QQUdFX0NTU19BTklNQVRJT05fU1VTUEVOU0lPTl9FTkFCTEVEKSBcCi0gICAgbWFj
cm8oTG93UG93ZXJWaWRlb0F1ZGlvQnVmZmVyU2l6ZUVuYWJsZWQsIGxvd1Bvd2VyVmlkZW9BdWRp
b0J1ZmZlclNpemVFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRocmVh
ZGVkU2Nyb2xsaW5nRW5hYmxlZCwgdGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkLCBCb29sLCBib29s
LCB0cnVlKSBcCi0gICAgbWFjcm8oU2ltcGxlTGluZUxheW91dEVuYWJsZWQsIHNpbXBsZUxpbmVM
YXlvdXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCi0gICAgbWFjcm8oU2ltcGxlTGluZUxh
eW91dERlYnVnQm9yZGVyc0VuYWJsZWQsIHNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFi
bGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFN1YnBpeGVsQ1NTT01FbGVtZW50
TWV0cmljc0VuYWJsZWQsIHN1YnBpeGVsQ1NTT01FbGVtZW50TWV0cmljc0VuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUpIFwKLSAgICBtYWNybyhCYWNrZ3JvdW5kU2hvdWxkRXh0ZW5kQmV5b25kUGFn
ZSwgYmFja2dyb3VuZFNob3VsZEV4dGVuZEJleW9uZFBhZ2UsIEJvb2wsIGJvb2wsIGZhbHNlKSBc
Ci0gICAgbWFjcm8oTWVkaWFTdHJlYW1FbmFibGVkLCBtZWRpYVN0cmVhbUVuYWJsZWQsIEJvb2ws
IGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oVXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVs
ZW1lbnRCZWhhdmlvciwgdXNlTGVnYWN5VGV4dEFsaWduUG9zaXRpb25lZEVsZW1lbnRCZWhhdmlv
ciwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQsIHNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBt
YWNybyhNZWRpYVNvdXJjZUVuYWJsZWQsIG1lZGlhU291cmNlRW5hYmxlZCwgQm9vbCwgYm9vbCwg
dHJ1ZSkgXAotICAgIG1hY3JvKFZpZXdHZXN0dXJlRGVidWdnaW5nRW5hYmxlZCwgdmlld0dlc3R1
cmVEZWJ1Z2dpbmdFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFNob3Vs
ZENvbnZlcnRQb3NpdGlvblN0eWxlT25Db3B5LCBzaG91bGRDb252ZXJ0UG9zaXRpb25TdHlsZU9u
Q29weSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhTdGFuZGFsb25lLCBzdGFuZGFs
b25lLCBCb29sLCBib29sLCBmYWxzZSkgXAotICAgIG1hY3JvKFRlbGVwaG9uZU51bWJlclBhcnNp
bmdFbmFibGVkLCB0ZWxlcGhvbmVOdW1iZXJQYXJzaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UpIFwKLSAgICBtYWNybyhBbHdheXNVc2VCYXNlbGluZU9mUHJpbWFyeUZvbnQsIGFsd2F5c1Vz
ZUJhc2VsaW5lT2ZQcmltYXJ5Rm9udCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhB
bGxvd011bHRpRWxlbWVudEltcGxpY2l0U3VibWlzc2lvbiwgYWxsb3dNdWx0aUVsZW1lbnRJbXBs
aWNpdFN1Ym1pc3Npb24sIEJvb2wsIGJvb2wsIGZhbHNlKSBcCi0gICAgbWFjcm8oQWx3YXlzVXNl
QWNjZWxlcmF0ZWRPdmVyZmxvd1Njcm9sbCwgYWx3YXlzVXNlQWNjZWxlcmF0ZWRPdmVyZmxvd1Nj
cm9sbCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhQYXNzd29yZEVjaG9FbmFibGVk
LCBwYXNzd29yZEVjaG9FbmFibGVkLCBCb29sLCBib29sLCBERUZBVUxUX1BBU1NXT1JEX0VDSE9f
RU5BQkxFRCkgXAotICAgIG1hY3JvKEltYWdlQ29udHJvbHNFbmFibGVkLCBpbWFnZUNvbnRyb2xz
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKLSAgICBtYWNybyhFbmFibGVJbmhlcml0VVJJ
UXVlcnlDb21wb25lbnQsIGVuYWJsZUluaGVyaXRVUklRdWVyeUNvbXBvbmVudCwgQm9vbCwgYm9v
bCwgZmFsc2UpIFwKLSAgICBtYWNybyhTZXJ2aWNlQ29udHJvbHNFbmFibGVkLCBzZXJ2aWNlQ29u
dHJvbHNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAotCi0jZGVmaW5lIEZPUl9FQUNIX1dF
QktJVF9ET1VCTEVfUFJFRkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKFBERlNjYWxlRmFjdG9y
LCBwZGZTY2FsZUZhY3RvciwgRG91YmxlLCBkb3VibGUsIDApIFwKLSAgICBtYWNybyhJbmNyZW1l
bnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uVGltZW91dCwgaW5jcmVtZW50YWxSZW5kZXJpbmdTdXBw
cmVzc2lvblRpbWVvdXQsIERvdWJsZSwgZG91YmxlLCA1KSBcCi0gICAgbWFjcm8oTWluaW11bUZv
bnRTaXplLCBtaW5pbXVtRm9udFNpemUsIERvdWJsZSwgZG91YmxlLCAwKSBcCi0gICAgbWFjcm8o
TWluaW11bUxvZ2ljYWxGb250U2l6ZSwgbWluaW11bUxvZ2ljYWxGb250U2l6ZSwgRG91YmxlLCBk
b3VibGUsIDkpIFwKLSAgICBtYWNybyhNaW5pbXVtWm9vbUZvbnRTaXplLCBtaW5pbXVtWm9vbUZv
bnRTaXplLCBEb3VibGUsIGRvdWJsZSwgREVGQVVMVF9NSU5JTVVNX0ZPTlRfWk9PTV9TSVpFKSBc
Ci0gICAgbWFjcm8oRGVmYXVsdEZvbnRTaXplLCBkZWZhdWx0Rm9udFNpemUsIERvdWJsZSwgZG91
YmxlLCAxNikgXAotICAgIG1hY3JvKERlZmF1bHRGaXhlZEZvbnRTaXplLCBkZWZhdWx0Rml4ZWRG
b250U2l6ZSwgRG91YmxlLCBkb3VibGUsIDEzKSBcCi0gICAgbWFjcm8oTGF5b3V0SW50ZXJ2YWws
IGxheW91dEludGVydmFsLCBEb3VibGUsIGRvdWJsZSwgLTEpIFwKLSAgICBtYWNybyhNYXhQYXJz
ZUR1cmF0aW9uLCBtYXhQYXJzZUR1cmF0aW9uLCBEb3VibGUsIGRvdWJsZSwgLTEpIFwKLSAgICBt
YWNybyhQYXNzd29yZEVjaG9EdXJhdGlvbiwgcGFzc3dvcmRFY2hvRHVyYXRpb24sIERvdWJsZSwg
ZG91YmxlLCAyKSBcCi0gICAgXAotCi0jZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9VSU5UMzJfUFJF
RkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKEZvbnRTbW9vdGhpbmdMZXZlbCwgZm9udFNtb290
aGluZ0xldmVsLCBVSW50MzIsIHVpbnQzMl90LCBGb250U21vb3RoaW5nTGV2ZWxNZWRpdW0pIFwK
LSAgICBtYWNybyhMYXlvdXRGYWxsYmFja1dpZHRoLCBsYXlvdXRGYWxsYmFja1dpZHRoLCBVSW50
MzIsIHVpbnQzMl90LCA5ODApIFwKLSAgICBtYWNybyhEZXZpY2VXaWR0aCwgZGV2aWNlV2lkdGgs
IFVJbnQzMiwgdWludDMyX3QsIDApIFwKLSAgICBtYWNybyhEZXZpY2VIZWlnaHQsIGRldmljZUhl
aWdodCwgVUludDMyLCB1aW50MzJfdCwgMCkgXAotICAgIG1hY3JvKFBERkRpc3BsYXlNb2RlLCBw
ZGZEaXNwbGF5TW9kZSwgVUludDMyLCB1aW50MzJfdCwgMSkgXAotICAgIG1hY3JvKEVkaXRhYmxl
TGlua0JlaGF2aW9yLCBlZGl0YWJsZUxpbmtCZWhhdmlvciwgVUludDMyLCB1aW50MzJfdCwgV2Vi
Q29yZTo6RWRpdGFibGVMaW5rTmV2ZXJMaXZlKSBcCi0gICAgbWFjcm8oSW5zcGVjdG9yQXR0YWNo
ZWRIZWlnaHQsIGluc3BlY3RvckF0dGFjaGVkSGVpZ2h0LCBVSW50MzIsIHVpbnQzMl90LCAzMDAp
IFwKLSAgICBtYWNybyhJbnNwZWN0b3JBdHRhY2hlZFdpZHRoLCBpbnNwZWN0b3JBdHRhY2hlZFdp
ZHRoLCBVSW50MzIsIHVpbnQzMl90LCA3NTApIFwKLSAgICBtYWNybyhJbnNwZWN0b3JBdHRhY2ht
ZW50U2lkZSwgaW5zcGVjdG9yQXR0YWNobWVudFNpZGUsIFVJbnQzMiwgdWludDMyX3QsIDApIFwK
LSAgICBtYWNybyhTdG9yYWdlQmxvY2tpbmdQb2xpY3ksIHN0b3JhZ2VCbG9ja2luZ1BvbGljeSwg
VUludDMyLCB1aW50MzJfdCwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OkJsb2NrVGhpcmRQYXJ0
eVN0b3JhZ2UpIFwKLSAgICBcCi0KLSNpZiBQTEFURk9STShDT0NPQSkKLQotI2lmIFBMQVRGT1JN
KElPUykKLSNkZWZpbmUgREVGQVVMVF9DVVJTSVZFX0ZPTlRfRkFNSUxZICJTbmVsbCBSb3VuZGhh
bmQiCi0jZGVmaW5lIERFRkFVTFRfUElDVE9HUkFQSF9GT05UX0ZBTUlMWSAiQXBwbGVDb2xvckVt
b2ppIgotI2Vsc2UKLSNkZWZpbmUgREVGQVVMVF9DVVJTSVZFX0ZPTlRfRkFNSUxZICJBcHBsZSBD
aGFuY2VyeSIKLSNkZWZpbmUgREVGQVVMVF9QSUNUT0dSQVBIX0ZPTlRfRkFNSUxZICJBcHBsZSBD
b2xvciBFbW9qaSIKLSNlbmRpZgotCi0KLSNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFN
SUxZX1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0
YW5kYXJkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIpIFwKLSAgICBtYWNybyhD
dXJzaXZlRm9udEZhbWlseSwgY3Vyc2l2ZUZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCBERUZB
VUxUX0NVUlNJVkVfRk9OVF9GQU1JTFkpIFwKLSAgICBtYWNybyhGYW50YXN5Rm9udEZhbWlseSwg
ZmFudGFzeUZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiUGFweXJ1cyIpIFwKLSAgICBtYWNy
byhGaXhlZEZvbnRGYW1pbHksIGZpeGVkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJDb3Vy
aWVyIikgXAotICAgIG1hY3JvKFNhbnNTZXJpZkZvbnRGYW1pbHksIHNhbnNTZXJpZkZvbnRGYW1p
bHksIFN0cmluZywgU3RyaW5nLCAiSGVsdmV0aWNhIikgXAotICAgIG1hY3JvKFNlcmlmRm9udEZh
bWlseSwgc2VyaWZGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRpbWVzIikgXAotICAgIG1h
Y3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0b2dyYXBoRm9udEZhbWlseSwgU3RyaW5nLCBT
dHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIpIFwKLSAgICBcCi0KLSNlbGlmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQotCi0jZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlM
WV9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFu
ZGFyZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGltZXMiKSBcCi0gICAgbWFjcm8oQ3Vy
c2l2ZUZvbnRGYW1pbHksIGN1cnNpdmVGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIkNvbWlj
IFNhbnMgTVMiKSBcCi0gICAgbWFjcm8oRmFudGFzeUZvbnRGYW1pbHksIGZhbnRhc3lGb250RmFt
aWx5LCBTdHJpbmcsIFN0cmluZywgIkltcGFjdCIpIFwKLSAgICBtYWNybyhGaXhlZEZvbnRGYW1p
bHksIGZpeGVkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJDb3VyaWVyIE5ldyIpIFwKLSAg
ICBtYWNybyhTYW5zU2VyaWZGb250RmFtaWx5LCBzYW5zU2VyaWZGb250RmFtaWx5LCBTdHJpbmcs
IFN0cmluZywgIkhlbHZldGljYSIpIFwKLSAgICBtYWNybyhTZXJpZkZvbnRGYW1pbHksIHNlcmlm
Rm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIpIFwKLSAgICBtYWNybyhQaWN0b2dy
YXBoRm9udEZhbWlseSwgcGljdG9ncmFwaEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGlt
ZXMiKSBcCi0gICAgXAotCi0jZW5kaWYKLQotI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfU1RSSU5H
X1BSRUZFUkVOQ0UobWFjcm8pIFwKLSAgICBGT1JfRUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJF
RkVSRU5DRShtYWNybykgXAotICAgIG1hY3JvKERlZmF1bHRUZXh0RW5jb2RpbmdOYW1lLCBkZWZh
dWx0VGV4dEVuY29kaW5nTmFtZSwgU3RyaW5nLCBTdHJpbmcsICJJU08tODg1OS0xIikgXAotICAg
IG1hY3JvKEZUUERpcmVjdG9yeVRlbXBsYXRlUGF0aCwgZnRwRGlyZWN0b3J5VGVtcGxhdGVQYXRo
LCBTdHJpbmcsIFN0cmluZywgIiIpIFwKLSAgICBcCi0KLSNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lU
X1NUUklOR19QUkVGRVJFTkNFX05PVF9JTl9XRUJDT1JFKG1hY3JvKSBcCi0gICAgbWFjcm8oSW5z
cGVjdG9yV2luZG93RnJhbWUsIGluc3BlY3RvcldpbmRvd0ZyYW1lLCBTdHJpbmcsIFN0cmluZywg
IiIpIFwKLSAgICBcCi0KLSNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UobWFjcm8p
IFwKLSAgICBGT1JfRUFDSF9XRUJLSVRfQk9PTF9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9S
X0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfV0VC
S0lUX1VJTlQzMl9QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfV0VCS0lUX1NUUklO
R19QUkVGRVJFTkNFKG1hY3JvKSBcCi0gICAgRk9SX0VBQ0hfV0VCS0lUX1NUUklOR19QUkVGRVJF
TkNFX05PVF9JTl9XRUJDT1JFKG1hY3JvKSBcCi0gICAgXAotCi1uYW1lc3BhY2UgV2ViUHJlZmVy
ZW5jZXNLZXkgewotCi0jZGVmaW5lIERFQ0xBUkVfS0VZX0dFVFRFUlMoS2V5VXBwZXIsIEtleUxv
d2VyLCBUeXBlTmFtZSwgVHlwZSwgRGVmYXVsdFZhbHVlKSBjb25zdCBTdHJpbmcmIEtleUxvd2Vy
IyNLZXkoKTsKLQotRk9SX0VBQ0hfV0VCS0lUX1BSRUZFUkVOQ0UoREVDTEFSRV9LRVlfR0VUVEVS
UykKLQotI3VuZGVmIERFQ0xBUkVfS0VZX0dFVFRFUlMKLQotfSAvLyBuYW1lc3BhY2UgV2ViUHJl
ZmVyZW5jZXNLZXkKLQogc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewogICAgIFdlYlByZWZl
cmVuY2VzU3RvcmUoKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByZWZl
cmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJl
ZmVyZW5jZXMuY3BwCShyZXZpc2lvbiAxNjkzNjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUHJlZmVyZW5jZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5j
bHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZ1ByaW1p
dGl2ZXMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAkocmV2aXNpb24gMTY5MzYzKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdM
ZXZlbC5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCIKICNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViQ29udGV4dE1hYy5tbQkocmV2aXNpb24gMTY5MzYzKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2
ICszMyw3IEBACiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldl
Yk1lbW9yeVByZXNzdXJlSGFuZGxlcklPUy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCisj
aW1wb3J0ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAi
V2luZG93U2VydmVyQ29ubmVjdGlvbi5oIgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQcmVmZXJlbmNlc01hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2VzTWFjLm1tCShyZXZpc2lvbiAxNjkzNjMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByZWZlcmVuY2VzTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgogCiAj
aW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldlYlByZWZlcmVuY2VzS2V5cy5o
IgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4KIAogbmFtZXNwYWNlIFdl
YktpdCB7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94
eU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBy
b2Nlc3NQcm94eU1hYy5tbQkocmV2aXNpb24gMTY5MzYzKQorKysgU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMwLDcg
KzMwLDYgQEAKIAogI2ltcG9ydCAiV2ViQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3Vw
LmgiCi0jaW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCIKIApJbmRleDog
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTY5MzYzKQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAyLDYgKzEwMDIsOSBAQAogCQk3QzNG
OEM5MTE3M0FGNTJEMDA3QjdGMzkgLyogUGx1Z2luSW5mb3JtYXRpb24uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDM0Y4QzhGMTczQUY1MkQwMDdCN0Yz
OSAvKiBQbHVnaW5JbmZvcm1hdGlvbi5oICovOyB9OwogCQk3QzZEMzdGQzE3MkY1NTVGMDA5RDI4
NDcgLyogUGFnZUJhbm5lck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDdDNkQzN0ZBMTcyRjU1NUYwMDlEMjg0NyAvKiBQYWdlQmFubmVyTWFjLm1t
ICovOyB9OwogCQk3QzZFNzBGQjE4QjJEQzdBMDBGMjRFMkUgLyogV2ViUHJvY2Vzc0NvY29hLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2RTcwRjkx
OEIyRDRBMDAwRjI0RTJFIC8qIFdlYlByb2Nlc3NDb2NvYS5tbSAqLzsgfTsKKwkJN0M4NUZEN0Mx
OTM0MTVBODAwMDE3N0M0IC8qIFdlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDODVGRDdCMTkzNDE1QTgwMDAx
NzdDNCAvKiBXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggKi87IH07CisJCTdDODVGRDdGMTkz
NDE2NjUwMDAxNzdDNCAvKiBXZWJQcmVmZXJlbmNlc0tleXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M4NUZEN0QxOTM0MTY2NTAwMDE3N0M0IC8q
IFdlYlByZWZlcmVuY2VzS2V5cy5jcHAgKi87IH07CisJCTdDODVGRDgwMTkzNDE2NjUwMDAxNzdD
NCAvKiBXZWJQcmVmZXJlbmNlc0tleXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDODVGRDdFMTkzNDE2NjUwMDAxNzdDNCAvKiBXZWJQcmVmZXJlbmNl
c0tleXMuaCAqLzsgfTsKIAkJN0M4RUIxMTcxOERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5j
ZXNQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzhFQjExNjE4REI2QTE5MDA3OTE3QzIgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3QzlEMTUzNzE4
NDU4NERBMDA5RDM5MTggLyogV0tCcm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzlEMTUzNjE4NDU4NERB
MDA5RDM5MTggLyogV0tCcm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmggKi87IH07CiAJCTdD
QTI1NEVCMTgyOTkzQ0UwMEZDOEE0MSAvKiBXS0Jyb3dzaW5nQ29udGV4dFBvbGljeURlbGVnYXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0EyNTRF
QTE4Mjk5M0NFMDBGQzhBNDEgLyogV0tCcm93c2luZ0NvbnRleHRQb2xpY3lEZWxlZ2F0ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yOTk5LDYg
KzMwMDIsOSBAQAogCQk3QzNGOEM4RjE3M0FGNTJEMDA3QjdGMzkgLyogUGx1Z2luSW5mb3JtYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGx1Z2luSW5mb3JtYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M2RDM3RkExNzJGNTU1RjAwOUQyODQ3
IC8qIFBhZ2VCYW5uZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBQYWdlQmFubmVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QzZF
NzBGOTE4QjJENEEwMDBGMjRFMkUgLyogV2ViUHJvY2Vzc0NvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJvY2Vzc0NvY29hLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk3Qzg1RkQ3QjE5MzQxNUE4MDAwMTc3QzQgLyogV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdD
ODVGRDdEMTkzNDE2NjUwMDAxNzdDNCAvKiBXZWJQcmVmZXJlbmNlc0tleXMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJlZmVyZW5jZXNLZXlzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0M4NUZEN0UxOTM0MTY2NTAwMDE3N0M0IC8qIFdl
YlByZWZlcmVuY2VzS2V5cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQ
cmVmZXJlbmNlc0tleXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0M4RUIxMTYx
OERCNkExOTAwNzkxN0MyIC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLUHJlZmVyZW5jZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTdDOUQxNTM2MTg0NTg0REEwMDlEMzkxOCAvKiBXS0Jyb3dzaW5nQ29u
dGV4dEdyb3VwSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tC
cm93c2luZ0NvbnRleHRHcm91cEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTdDQTI1NEVBMTgyOTkzQ0UwMEZDOEE0MSAvKiBXS0Jyb3dzaW5nQ29udGV4dFBvbGljeURl
bGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnJvd3NpbmdDb250
ZXh0UG9saWN5RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQzOTUs
NiArNDQwMSw5IEBACiAJCQkJQzAzMzdEREMxMjdBNTIxQzAwOEZGNEY0IC8qIFdlYlBsYXRmb3Jt
VG91Y2hQb2ludC5jcHAgKi8sCiAJCQkJQkM1NzQ0RUQxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBv
cHVwSXRlbS5jcHAgKi8sCiAJCQkJQkM1NzQ0RUUxMjYzOEZCMzAwNkYwRjEyIC8qIFdlYlBvcHVw
SXRlbS5oICovLAorCQkJCTdDODVGRDdCMTkzNDE1QTgwMDAxNzdDNCAvKiBXZWJQcmVmZXJlbmNl
c0RlZmluaXRpb25zLmggKi8sCisJCQkJN0M4NUZEN0QxOTM0MTY2NTAwMDE3N0M0IC8qIFdlYlBy
ZWZlcmVuY2VzS2V5cy5jcHAgKi8sCisJCQkJN0M4NUZEN0UxOTM0MTY2NTAwMDE3N0M0IC8qIFdl
YlByZWZlcmVuY2VzS2V5cy5oICovLAogCQkJCUJDRDU5OEFCMTEyQjdGREYwMEVDOEMyMyAvKiBX
ZWJQcmVmZXJlbmNlc1N0b3JlLmNwcCAqLywKIAkJCQlCQ0Q1OThBQTExMkI3RkRGMDBFQzhDMjMg
LyogV2ViUHJlZmVyZW5jZXNTdG9yZS5oICovLAogCQkJCUJDMzA2ODIzMTI1QTZCOTQwMEU3MTI3
OCAvKiBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKQEAgLTY5MDYsNiArNjkx
NSw3IEBACiAJCQkJMUE1QjFDNTUxODk4N0VERjAwNEZDRjlCIC8qIFdlYkRvY3VtZW50TG9hZGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUEzMTczMjEzNENFQTZDMDA3QzlBNEYgLyogQXR0cmli
dXRlZFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFCQTI0NDQxODU4RUUzMDAwRUEyODEx
IC8qIEFzeW5jVGFzay5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0M4NUZEODAxOTM0MTY2NTAwMDE3
N0M0IC8qIFdlYlByZWZlcmVuY2VzS2V5cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OTcx
MkE4ODM4ODAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBNDQ1QjlGMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyRjU4OTkxMkE4ODM4ODAwNjI5
NTMwIC8qIEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCkBA
IC03MTA3LDYgKzcxMTcsNyBAQAogCQkJCUUxNTI1NTFCMTcwMTE4MTkwMDNEN0FEQiAvKiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFDQkJBMTAx
NjUyMTlCNjAwNUJFOEZEIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMURGNjMxMzE4RTBCN0M4MDAzQTNFMkEgLyogRG93bmxvYWRDbGllbnQu
aCBpbiBIZWFkZXJzICovLAorCQkJCTdDODVGRDdDMTkzNDE1QTgwMDAxNzdDNCAvKiBXZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTgyOURBNjE2MzdDNzBD
MDAwOTUzRDYgLyogTmV0d29ya1Jlc291cmNlTG9hZFNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFBMkVDNTYxNDg5OUMwOTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTMxMjYxRjE0OEZGODJDMDBCQTJBMzkgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAg
LTg1ODIsNiArODU5Myw3IEBACiAJCQkJMUEyRDk1NzAxMjg0ODU2NDAwMUVCOTYyIC8qIENoaWxk
UHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzgyODM3QjE2QjM2QTRGMDBBMjc4RkUg
LyogQ2hpbGRQcm9jZXNzRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTlGNTRGODhG
MTY0ODhFODcwMDdERjgxQSAvKiBDaGlsZFByb2Nlc3NNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQk3Qzg1RkQ3RjE5MzQxNjY1MDAwMTc3QzQgLyogV2ViUHJlZmVyZW5jZXNLZXlzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBQTJFNTY2MThENzc1MDgwMDM4MTRCRCAvKiBXS1dlYlByb2Nlc3NC
dW5kbGVQYXJhbWV0ZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1MTNDNjYxNjZFQUJCMjAw
MTQ5RkNCIC8qIENoaWxkUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkE0
QjBFMTU4NkEyMjQwMDkwQzlFOSAvKiBDb2xvclNwYWNlRGF0YS5tbSBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAx
NjkzNjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MSw3ICs1MSw2IEBACiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VHcm91cFByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKLSNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0
b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMTY5MzYzKQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJXZWJGcmFtZS5o
IgogI2luY2x1ZGUgIldlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJXZWJQ
YWdlLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW5jbHVkZSAiV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CShyZXZpc2lvbiAxNjkzNjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYg
QEAKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKLSNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU2VhcmNoUG9wdXBN
ZW51LmgiCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCShyZXZpc2lvbiAxNjkzNjMpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDYgKzg3LDggQEAKICNpbmNs
dWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBsdWdJbkNsaWVudC5o
IgogI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzRGVm
aW5pdGlvbnMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKICNpbmNsdWRlICJX
ZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCg==
</data>
<flag name="review"
          id="256620"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>