<?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>101730</bug_id>
          
          <creation_ts>2012-11-09 01:57:27 -0800</creation_ts>
          <short_desc>MediaStream API: Deleting all files relating to the deprecated PeerConnection00</short_desc>
          <delta_ts>2012-11-09 10:22:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>56459</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tommy Widenflycht">tommyw</reporter>
          <assigned_to name="Tommy Widenflycht">tommyw</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fishd</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762722</commentid>
    <comment_count>0</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-11-09 01:57:27 -0800</bug_when>
    <thetext>A major patch, but it only contains deleted code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762734</commentid>
    <comment_count>1</comment_count>
      <attachid>173244</attachid>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-11-09 02:03:26 -0800</bug_when>
    <thetext>Created attachment 173244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762741</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 02:09:00 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763095</commentid>
    <comment_count>3</comment_count>
      <attachid>173244</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-09 09:38:13 -0800</bug_when>
    <thetext>Comment on attachment 173244
Patch

Thanks Tommy!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763135</commentid>
    <comment_count>4</comment_count>
      <attachid>173244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 10:22:42 -0800</bug_when>
    <thetext>Comment on attachment 173244
Patch

Clearing flags on attachment: 173244

Committed r134084: &lt;http://trac.webkit.org/changeset/134084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763136</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 10:22:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173244</attachid>
            <date>2012-11-09 02:03:26 -0800</date>
            <delta_ts>2012-11-09 10:22:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101730-20121109110133.patch</filename>
            <type>text/plain</type>
            <size>233646</size>
            <attacher name="Tommy Widenflycht">tommyw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCBhNWNiMjg3MzAyNGM1
MjUwZjEzZjE3NDFiYjY2MDg5YzlhNmUwZWNjLi4yODdhNzJkYTUyMTU0NjliOGMyNGFkMjg4Nzk1
MTg3NWY4MzFhYTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0xMS0wOSAg
VG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0
cmVhbSBBUEk6IERlbGV0aW5nIGFsbCBmaWxlcyByZWxhdGluZyB0byB0aGUgZGVwcmVjYXRlZCBQ
ZWVyQ29ubmVjdGlvbjAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTaW5jZSBSVENQZWVyQ29uZW5jdGlvbiBoYXMgc3VwZXJzZWVkZWQgUGVlckNvbm5l
Y3Rpb24wMCB0aGlzIHBhdGNoIHJlbW92ZXMgYWxsCisgICAgICAgIGZpbGVzIHJlbGF0aW5nIHRv
IHRoZSBvbGQgQVBJLgorCisgICAgICAgICogUGxhdGZvcm0uZ3lwaToKKyAgICAgICAgKiBjaHJv
bWl1bS9wdWJsaWMvUGxhdGZvcm0uaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQbGF0
Zm9ybSk6CisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0
b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViSUNFT3B0aW9ucy5o
OiBSZW1vdmVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJNZWRpYUhpbnRzLmg6IFJl
bW92ZWQuCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYk1lZGlhU3RyZWFtQ2VudGVyLmg6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTWVkaWFTdHJlYW1DZW50ZXIpOgorICAg
ICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oOiBSZW1v
dmVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ckNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29u
bmVjdGlvbkhhbmRsZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2Vi
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg6IFJlbW92ZWQuCisgICAgICAgICogY2hyb21p
dW0vcHVibGljL1dlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaDogUmVtb3ZlZC4KKwog
MjAxMi0xMS0wOCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBJbnRyb2R1Y2UgV2ViU2NyZWVuSW5mby5kZXZpY2VTY2FsZUZhY3RvcgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDg0MDRjYTYyNDliYjljYzhkZjg4OWE0ZGExY2M1NjQyMGIzZDkwZGYuLmY2MzI2NjIwNWE1
NWQ1MWVhNDdhZDgyMjE4NTJkZGI3NTNmMzZkZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OCBA
QAorMjAxMi0xMS0wOSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IERlbGV0aW5nIGFsbCBmaWxlcyByZWxhdGluZyB0byB0
aGUgZGVwcmVjYXRlZCBQZWVyQ29ubmVjdGlvbjAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBSVENQZWVyQ29uZW5jdGlvbiBoYXMgc3VwZXJz
ZWVkZWQgUGVlckNvbm5lY3Rpb24wMCB0aGlzIHBhdGNoIHJlbW92ZXMgYWxsCisgICAgICAgIGZp
bGVzIHJlbGF0aW5nIHRvIHRoZSBvbGQgQVBJLgorCisgICAgICAgIE5vIHRlc3RpbmcgbmVlZGVk
LCB0aGUgcmVtYWluaW5nIHRlc3RzIG1ha2VzIHN1cmUgdGhhdCBub3RoaW5nIGVsc2UgYnJlYWtz
LgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUubGlz
dC5hbToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFt
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYWxsYmFjay5pZGw6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmg6IFJlbW92
ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuaWRsOiBSZW1v
dmVkLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAw
Lmg6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlv
bjAwLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25E
ZXNjcmlwdGlvbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9T
ZXNzaW9uRGVzY3JpcHRpb24uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGw6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29yZS5n
eXBpOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMpOgor
ICAgICAgICAqIGRvbS9FdmVudFRhcmdldEZhY3RvcnkuaW46CisgICAgICAgICogcGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYklDRU9wdGlvbnMuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVkaWFIaW50
cy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlk
YXRlRGVzY3JpcHRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL0ljZU9wdGlvbnMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL0ljZU9wdGlvbnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUhpbnRzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9NZWRpYUhpbnRzLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoTWVkaWFTdHJlYW1DZW50ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1Bl
ZXJDb25uZWN0aW9uMDBIYW5kbGVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFt
Q2VudGVyQmxhY2tCZXJyeS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYVN0
cmVhbUNlbnRlckJsYWNrQmVycnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2No
cm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uaDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bSk6CisgICAg
ICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUGVlckNvbm5lY3Rpb24wMEhhbmRs
ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVt
L1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50
ZXJuYWwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFt
ZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lci5oOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1lcik6CisKIDIw
MTItMTEtMDggIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhcy5idWdAZ21haWwuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFRpbWVsaW5lOiAiU2VuZCBSZXF1ZXN0IiBldmVudHMgYXJl
IHNob3duIG91dCBvZiBvcmRlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZDU4NmZi
YTQzMjIzOTJkZWNiYjc1M2NjNGRjMGI0YTAwMTQ4MWFkYi4uMGI3MmNiODNjMTE5ZmRiZjI5YTE0
OTE3NzUwZmNhMjZmODljZGQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAxMi0xMS0wOSAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNv
bT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IERlbGV0aW5nIGFsbCBmaWxlcyByZWxhdGlu
ZyB0byB0aGUgZGVwcmVjYXRlZCBQZWVyQ29ubmVjdGlvbjAwCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW5jZSBSVENQZWVyQ29uZW5jdGlvbiBoYXMg
c3VwZXJzZWVkZWQgUGVlckNvbm5lY3Rpb24wMCB0aGlzIHBhdGNoIHJlbW92ZXMgYWxsCisgICAg
ICAgIGZpbGVzIHJlbGF0aW5nIHRvIHRoZSBvbGQgQVBJLgorCisgICAgICAgICogV2ViS2l0Lmd5
cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmg6CisgICAgICAgIChXZWJS
dW50aW1lRmVhdHVyZXMpOgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJJQ0VDYW5kaWRh
dGVEZXNjcmlwdG9yLmg6IFJlbW92ZWQuCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYklD
RU9wdGlvbnMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViTWVkaWFI
aW50cy5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVj
dGlvbjAwSGFuZGxlci5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJQ
ZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudC5oOiBSZW1vdmVkLgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50Lmg6IFJlbW92
ZWQuCisgICAgICAgICogcHVibGljL3BsYXRmb3JtL1dlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3IuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHA6
CisgICAgICAgICogc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlJ1bnRpbWVGZWF0dXJlczo6aXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQpOgorICAgICAgICAq
IHNyYy9XZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcDogUmVtb3ZlZC4KKwogMjAx
Mi0xMS0wOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzNDAxMC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9QbGF0Zm9ybS9QbGF0Zm9ybS5neXBpIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkK
aW5kZXggZGQyNmU2YTU5ZjgxYjBhMjNkNjczM2UxNWYwZmI3NDgxMTU4ODU4Ny4uM2JkMTY1M2Y2
NjYxMDRlZDQwYTFhMjhlYWE3M2UzYzQzNTMzZmE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL1BsYXRmb3JtLmd5cGkKKysrIGIvU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkKQEAg
LTc3LDggKzc3LDYgQEAKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViSFRUUEJvZHku
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYkhUVFBIZWFkZXJWaXNpdG9yLmgn
LAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJIVFRQTG9hZEluZm8uaCcsCi0gICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaCcsCi0g
ICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYklDRU9wdGlvbnMuaCcsCiAgICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYkltYWdlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJJbWFnZUxheWVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJJ
T1N1cmZhY2VMYXllci5oJywKQEAgLTg4LDcgKzg2LDYgQEAKICAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oJywKICAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViTG9jYWxpemVkU3RyaW5nLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJNZWRpYUNvbnN0cmFpbnRzLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1Ymxp
Yy9XZWJNZWRpYUhpbnRzLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YVN0cmVhbUNlbnRlci5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFT
dHJlYW1DZW50ZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYk1l
ZGlhU3RyZWFtQ29tcG9uZW50LmgnLApAQCAtOTksMTAgKzk2LDYgQEAKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViTWVzc2FnZVBvcnRDaGFubmVsQ2xpZW50LmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJNaW1lUmVnaXN0cnkuaCcsCiAgICAgICAgICAgICAnY2hy
b21pdW0vcHVibGljL1dlYk5vbkNvcHlhYmxlLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oJywKLSAgICAgICAgICAgICdjaHJvbWl1
bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCcsCi0gICAgICAgICAg
ICAnY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlci5oJywKLSAgICAgICAg
ICAgICdjaHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJQb2ludC5oJywKICAgICAgICAgICAgICdj
aHJvbWl1bS9wdWJsaWMvV2ViUHJlcmVuZGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1
YmxpYy9XZWJQcmVyZW5kZXJpbmdTdXBwb3J0LmgnLApAQCAtMTI2LDcgKzExOSw2IEBACiAgICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNjcm9sbGJhckxheWVyLmgnLAogICAgICAgICAg
ICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3JvbGxiYXJUaGVtZUdlb21ldHJ5LmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTY3JvbGxiYXJUaGVtZVBhaW50ZXIuaCcsCi0gICAg
ICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
aCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL1dlYlNoYXJlZEdyYXBoaWNzQ29udGV4
dDNELmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTaXplLmgnLAogICAgICAg
ICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJTb2NrZXRTdHJlYW1FcnJvci5oJywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaCBiL1NvdXJjZS9Q
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvUGxhdGZvcm0uaAppbmRleCA0YTEwYWFhOTBjMjU5M2I3
OWE1ZjdhNDYwMDIwMWNhYzI3NmQxMGJjLi44ZGFhYmUzY2ZmN2MxMDhkNDk4NTdmYjY4MmU1OWZj
ODE4MzRkODcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1Bs
YXRmb3JtLmgKKysrIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9QbGF0Zm9ybS5o
CkBAIC02MCw4ICs2MCw2IEBAIGNsYXNzIFdlYk1lZGlhU3RyZWFtQ2VudGVyOwogY2xhc3MgV2Vi
TWVkaWFTdHJlYW1DZW50ZXJDbGllbnQ7CiBjbGFzcyBXZWJNZXNzYWdlUG9ydENoYW5uZWw7CiBj
bGFzcyBXZWJNaW1lUmVnaXN0cnk7Ci1jbGFzcyBXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjsK
LWNsYXNzIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50OwogY2xhc3MgV2ViUlRDUGVl
ckNvbm5lY3Rpb25IYW5kbGVyOwogY2xhc3MgV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xp
ZW50OwogY2xhc3MgV2ViU2FuZGJveFN1cHBvcnQ7CkBAIC00MjYsMTIgKzQyNCw2IEBAIHB1Ymxp
YzoKIAogICAgIC8vIFdlYlJUQyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLSAgICAvLyBERVBSRUNBVEVECi0gICAgLy8gQ3JlYXRl
cyBhbiBXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlciBmb3IgUGVlckNvbm5lY3Rpb24wMC4KLSAg
ICAvLyBUaGlzIGlzIGFuIGhpZ2hseSBleHBlcmltZW50YWwgZmVhdHVyZSBub3QgeWV0IGluIHRo
ZSBXZWJSVEMgc3RhbmRhcmQuCi0gICAgLy8gTWF5IHJldHVybiBudWxsIGlmIFdlYlJUQyBmdW5j
dGlvbmFsaXR5IGlzIG5vdCBhdmFsaWFibGUgb3Igb3V0IG9mIHJlc291cmNlcy4KLSAgICB2aXJ0
dWFsIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKiBjcmVhdGVQZWVyQ29ubmVjdGlvbjAwSGFu
ZGxlcihXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudCopIHsgcmV0dXJuIDA7IH0KLQog
ICAgIC8vIENyZWF0ZXMgYW4gV2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyIGZvciBSVENQZWVy
Q29ubmVjdGlvbi4KICAgICAvLyBNYXkgcmV0dXJuIG51bGwgaWYgV2ViUlRDIGZ1bmN0aW9uYWxp
dHkgaXMgbm90IGF2YWxpYWJsZSBvciBvdXQgb2YgcmVzb3VyY2VzLgogICAgIHZpcnR1YWwgV2Vi
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyKiBjcmVhdGVSVENQZWVyQ29ubmVjdGlvbkhhbmRsZXIo
V2ViUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50KikgeyByZXR1cm4gMDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJJQ0VDYW5kaWRhdGVEZXNj
cmlwdG9yLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYklDRUNhbmRpZGF0
ZURlc2NyaXB0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmE0ODY3ZjIyNmE3
MDUxZTk0OTRhZWUyMjAwMWNhZjcwYjczZWI4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYklD
RUNhbmRpZGF0ZURlc2NyaXB0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDgyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICog
ZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3JfaAotI2RlZmluZSBXZWJJQ0VDYW5kaWRhdGVE
ZXNjcmlwdG9yX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUgIldlYlByaXZh
dGVQdHIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgSWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvcjsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYlN0cmluZzsKLQotY2xh
c3MgV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciB7Ci1wdWJsaWM6Ci0gICAgV2ViSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvcigpIHsgfQotICAgIFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IoY29uc3Qg
V2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYgb3RoZXIpIHsgYXNzaWduKG90aGVyKTsgfQotICAg
IH5XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yKCkgeyByZXNldCgpOyB9Ci0KLSAgICBXZWJJQ0VD
YW5kaWRhdGVEZXNjcmlwdG9yJiBvcGVyYXRvcj0oY29uc3QgV2ViSUNFQ2FuZGlkYXRlRGVzY3Jp
cHRvciYgb3RoZXIpCi0gICAgewotICAgICAgICBhc3NpZ24ob3RoZXIpOwotICAgICAgICByZXR1
cm4gKnRoaXM7Ci0gICAgfQotCi0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIGFzc2lnbihjb25zdCBX
ZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yJik7Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgaW5p
dGlhbGl6ZShjb25zdCBXZWJTdHJpbmcmIGxhYmVsLCBjb25zdCBXZWJTdHJpbmcmIGNhbmRpZGF0
ZUxpbmUpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwotICAgIGJvb2wgaXNOdWxs
KCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9Ci0KLSAgICAvLyBUaGUgU0RQ
IG09IGxpbmUgdGhpcyBjYW5kaWRhdGUgaXMgYXNzb2NpYXRlZCB3aXRoLgotICAgIFdFQktJVF9F
WFBPUlQgV2ViU3RyaW5nIGxhYmVsKCkgY29uc3Q7Ci0KLSAgICAvLyBUaGUgYWN0dWFsIFNEUCBj
YW5kaWRhdGUuCi0gICAgV0VCS0lUX0VYUE9SVCBXZWJTdHJpbmcgY2FuZGlkYXRlTGluZSgpIGNv
bnN0OwotCi0jaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCi0gICAgV2ViSUNFQ2FuZGlkYXRlRGVz
Y3JpcHRvcihXZWJDb3JlOjpJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKik7Ci0gICAgV2ViSUNFQ2Fu
ZGlkYXRlRGVzY3JpcHRvcihXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6SWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcj4pOwotCi0gICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkljZUNh
bmRpZGF0ZURlc2NyaXB0b3I+KCkgY29uc3Q7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXZWJQ
cml2YXRlUHRyPFdlYkNvcmU6OkljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IG1fcHJpdmF0ZTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViSUNFQ2FuZGlkYXRlRGVz
Y3JpcHRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YklDRU9wdGlvbnMuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViSUNFT3B0
aW9ucy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNzQxMzZmZmY4ZDgxMDQ1ZTJl
MjIzNTViODM1YmFjZTFjYjM5NWFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViSUNFT3B0aW9u
cy5oCisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViSUNFT3B0aW9uc19o
Ci0jZGVmaW5lIFdlYklDRU9wdGlvbnNfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5j
bHVkZSAiV2ViTm9uQ29weWFibGUuaCIKLSNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIEljZU9wdGlvbnM7Ci19Ci0KLW5hbWVzcGFjZSBXZWJL
aXQgewotCi1jbGFzcyBXZWJTdHJpbmc7Ci0KLWNsYXNzIFdlYklDRU9wdGlvbnMgewotcHVibGlj
OgotICAgIGVudW0gQ2FuZGlkYXRlVHlwZSB7Ci0gICAgICAgIENhbmRpZGF0ZVR5cGVBbGwsCi0g
ICAgICAgIENhbmRpZGF0ZVR5cGVOb1JlbGF5LAotICAgICAgICBDYW5kaWRhdGVUeXBlT25seVJl
bGF5LAotICAgIH07Ci0KLSAgICBXZWJJQ0VPcHRpb25zKCkgeyB9Ci0gICAgV2ViSUNFT3B0aW9u
cyhjb25zdCBXZWJJQ0VPcHRpb25zJiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9Ci0gICAgfldl
YklDRU9wdGlvbnMoKSB7IHJlc2V0KCk7IH0KLQotICAgIFdlYklDRU9wdGlvbnMmIG9wZXJhdG9y
PShjb25zdCBXZWJJQ0VPcHRpb25zJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGFzc2lnbihvdGhl
cik7Ci0gICAgICAgIHJldHVybiAqdGhpczsKLSAgICB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZv
aWQgYXNzaWduKGNvbnN0IFdlYklDRU9wdGlvbnMmKTsKLQotICAgIFdFQktJVF9FWFBPUlQgdm9p
ZCBpbml0aWFsaXplKENhbmRpZGF0ZVR5cGUpOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNl
dCgpOwotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgp
OyB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIENhbmRpZGF0ZVR5cGUgY2FuZGlkYXRlVHlwZVRvVXNl
KCkgY29uc3Q7Ci0KLSNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KLSAgICBXZWJJQ0VPcHRpb25z
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJY2VPcHRpb25zPiYpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpJY2VPcHRpb25zPiBtX3ByaXZh
dGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYklDRU9wdGlv
bnNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRp
YUhpbnRzLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhSGludHMu
aApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZlM2ExYWQ0ZGE5ZTk2MWRmZjUyNmMx
MGE1OTliMGQ2MjE5NzYwMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYk1lZGlhSGludHMuaAor
KysgL2Rldi9udWxsCkBAIC0xLDc3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYk1lZGlhSGludHNfaAotI2Rl
ZmluZSBXZWJNZWRpYUhpbnRzX2gKLQotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgotI2luY2x1ZGUg
IldlYk5vbkNvcHlhYmxlLmgiCi0jaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci1jbGFzcyBNZWRpYUhpbnRzOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgV2ViU3RyaW5nOwotCi1jbGFzcyBXZWJNZWRpYUhpbnRzIHsKLXB1YmxpYzoKLSAg
ICBXZWJNZWRpYUhpbnRzKCkgeyB9Ci0gICAgV2ViTWVkaWFIaW50cyhjb25zdCBXZWJNZWRpYUhp
bnRzJiBvdGhlcikgeyBhc3NpZ24ob3RoZXIpOyB9Ci0gICAgfldlYk1lZGlhSGludHMoKSB7IHJl
c2V0KCk7IH0KLQotICAgIFdlYk1lZGlhSGludHMmIG9wZXJhdG9yPShjb25zdCBXZWJNZWRpYUhp
bnRzJiBvdGhlcikKLSAgICB7Ci0gICAgICAgIGFzc2lnbihvdGhlcik7Ci0gICAgICAgIHJldHVy
biAqdGhpczsKLSAgICB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHZvaWQgYXNzaWduKGNvbnN0IFdl
Yk1lZGlhSGludHMmKTsKLQotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBpbml0aWFsaXplKGJvb2wg
YXVkaW8sIGJvb2wgdmlkZW8pOwotICAgIFdFQktJVF9FWFBPUlQgdm9pZCByZXNldCgpOwotICAg
IGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4gbV9wcml2YXRlLmlzTnVsbCgpOyB9Ci0KLSAg
ICBXRUJLSVRfRVhQT1JUIGJvb2wgYXVkaW8oKSBjb25zdDsKLSAgICBXRUJLSVRfRVhQT1JUIGJv
b2wgdmlkZW8oKSBjb25zdDsKLQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIFdlYk1l
ZGlhSGludHMoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6Ok1lZGlhSGludHM+Jik7Ci0j
ZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXZWJQcml2YXRlUHRyPFdlYkNvcmU6Ok1lZGlhSGludHM+
IG1fcHJpdmF0ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2Vi
TWVkaWFIaW50c19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhU3RyZWFtQ2VudGVyLmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGlj
L1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKaW5kZXggYjM5OTEwNWE3MTI5ZTdmYmQ0MDY1NDc2YzVk
OWVhZDU3ZWVmMWVkYi4uOWU3ZDI5ZDA2YTU2ZmY4ODEyMzMyNWEwZjJhNTA5MDE2OTg2MzdiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJNZWRpYVN0cmVh
bUNlbnRlci5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTWVkaWFT
dHJlYW1DZW50ZXIuaApAQCAtMzQsMTEgKzM0LDkgQEAKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7Ci1jbGFzcyBXZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yOwog
Y2xhc3MgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQ7CiBjbGFzcyBXZWJNZWRpYVN0cmVhbURlc2Ny
aXB0b3I7CiBjbGFzcyBXZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1ZXN0OwotY2xhc3MgV2ViU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKIAogY2xhc3MgV2ViTWVkaWFTdHJlYW1DZW50ZXIg
ewogcHVibGljOgpAQCAtNTEsOCArNDksNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRp
ZFJlbW92ZU1lZGlhU3RyZWFtVHJhY2soY29uc3QgV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwg
Y29uc3QgV2ViTWVkaWFTdHJlYW1Db21wb25lbnQmKSB7IHJldHVybiBmYWxzZTsgfTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oY29uc3QgV2ViTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNZWRpYVN0cmVhbShX
ZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgY29u
c3RydWN0U0RQKGNvbnN0IFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3ImKSB7IHJldHVybiBXZWJT
dHJpbmcoKTsgfQotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGNvbnN0cnVjdFNEUChjb25zdCBXZWJT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yJikgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2No
cm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTk1NWYyNDY0Mjc1NmMwMTk4NWRlZGFiOThkZjUzMDQ5
NGRkOWMyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIu
aAorKysgL2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlBlZXJDb25uZWN0aW9u
MDBIYW5kbGVyX2gKLSNkZWZpbmUgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJfaAotCi0jaW5j
bHVkZSAiV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViVmVjdG9yLmgiCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1jbGFzcyBXZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yOwotY2xhc3MgV2ViSUNF
T3B0aW9uczsKLWNsYXNzIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50OwotY2xhc3Mg
V2ViTWVkaWFIaW50czsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKLWNsYXNzIFdl
YlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7Ci0KLWNsYXNzIFdlYlBlZXJDb25uZWN0aW9u
MDBIYW5kbGVyIHsKLXB1YmxpYzoKLSAgICBlbnVtIEFjdGlvbiB7Ci0gICAgICAgIEFjdGlvblNE
UE9mZmVyID0gMHgxMDAsCi0gICAgICAgIEFjdGlvblNEUFBSYW5zd2VyID0gMHgyMDAsCi0gICAg
ICAgIEFjdGlvblNEUEFuc3dlciA9IDB4MzAwCi0gICAgfTsKLQotICAgIHZpcnR1YWwgfldlYlBl
ZXJDb25uZWN0aW9uMDBIYW5kbGVyKCkgeyB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6
ZShjb25zdCBXZWJTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIGNvbnN0IFdlYlN0cmluZyYg
dXNlcm5hbWUpID0gMDsKLQotICAgIHZpcnR1YWwgV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvciBjcmVhdGVPZmZlcihjb25zdCBXZWJNZWRpYUhpbnRzJikgPSAwOwotICAgIHZpcnR1YWwg
V2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciBjcmVhdGVBbnN3ZXIoY29uc3QgV2ViU3Ry
aW5nJiBvZmZlciwgY29uc3QgV2ViTWVkaWFIaW50cyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wg
c2V0TG9jYWxEZXNjcmlwdGlvbihBY3Rpb24sIGNvbnN0IFdlYlNlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHNldFJlbW90ZURlc2NyaXB0aW9uKEFj
dGlvbiwgY29uc3QgV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpID0gMDsKLSAgICB2
aXJ0dWFsIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgbG9jYWxEZXNjcmlwdGlvbigp
ID0gMDsKLSAgICB2aXJ0dWFsIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IgcmVtb3Rl
RGVzY3JpcHRpb24oKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHN0YXJ0SWNlKGNvbnN0IFdlYklD
RU9wdGlvbnMmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHByb2Nlc3NJY2VNZXNzYWdlKGNvbnN0
IFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZFN0
cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHJlbW92ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgc3RvcCgpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktp
dAotCi0jZW5kaWYgLy8gV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJfaApkaWZmIC0tZ2l0IGEv
U291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ckNsaWVudC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVj
dGlvbjAwSGFuZGxlckNsaWVudC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjYx
ZmQ5ODkzN2NmYjJmYzI3OTVhNDcyY2NlMTA5MThjYTBlYTk5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaAorKysgL2Rldi9udWxsCkBAIC0x
LDcyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50X2gKLSNk
ZWZpbmUgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnRfaAotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLWNsYXNzIFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3I7Ci1jbGFzcyBXZWJNZWRpYVN0
cmVhbURlc2NyaXB0b3I7Ci1jbGFzcyBXZWJTdHJpbmc7Ci0KLWNsYXNzIFdlYlBlZXJDb25uZWN0
aW9uMDBIYW5kbGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICBlbnVtIFJlYWR5U3RhdGUgewotICAg
ICAgICBSZWFkeVN0YXRlTmV3ID0gMCwKLSAgICAgICAgUmVhZHlTdGF0ZU9wZW5pbmcgPSAxLAot
ICAgICAgICBSZWFkeVN0YXRlQWN0aXZlID0gMiwKLSAgICAgICAgUmVhZHlTdGF0ZUNsb3NlZCA9
IDMsCi0KLSAgICAgICAgLy8gREVQUkVDQVRFRAotICAgICAgICBSZWFkeVN0YXRlTmVnb3RpYXRp
bmcgPSAxLAotICAgIH07Ci0KLSAgICBlbnVtIElDRVN0YXRlIHsKLSAgICAgICAgSUNFU3RhdGVH
YXRoZXJpbmcgPSAweDEwMCwKLSAgICAgICAgSUNFU3RhdGVXYWl0aW5nID0gMHgyMDAsCi0gICAg
ICAgIElDRVN0YXRlQ2hlY2tpbmcgPSAweDMwMCwKLSAgICAgICAgSUNFU3RhdGVDb25uZWN0ZWQg
PSAweDQwMCwKLSAgICAgICAgSUNFU3RhdGVDb21wbGV0ZWQgPSAweDUwMCwKLSAgICAgICAgSUNF
U3RhdGVGYWlsZWQgPSAweDYwMCwKLSAgICAgICAgSUNFU3RhdGVDbG9zZWQgPSAweDcwMAotICAg
IH07Ci0KLSAgICB2aXJ0dWFsIH5XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudCgpIHsg
fQotCi0gICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlSUNFQ2FuZGlkYXRlKGNvbnN0IFdlYklD
RUNhbmRpZGF0ZURlc2NyaXB0b3ImLCBib29sIG1vcmVUb0ZvbGxvdykgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VSZWFkeVN0YXRlKFJlYWR5U3RhdGUpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQ2hhbmdlSUNFU3RhdGUoSUNFU3RhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQWRkUmVtb3RlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCBi
L1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVy
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0NjZkZDIyMjU1YTQxMTI2YmE5MDU4
N2I2ZjE3YzQ4MjUxMTFiN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlv
bkhhbmRsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9u
LgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYlBlZXJD
b25uZWN0aW9uSGFuZGxlcl9oCi0jZGVmaW5lIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcl9oCi0K
LSNpbmNsdWRlICJXZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJWZWN0b3IuaCIKLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKLWNsYXNzIFdl
YlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDsKLQotLy8gTm90ZToKLS8vIFNEUCBzdGFuZHMg
Zm9yIFNlc3Npb24gRGVzY3JpcHRpb24gUHJvdG9jb2wsIHdoaWNoIGlzIGludGVuZGVkIGZvciBk
ZXNjcmliaW5nCi0vLyBtdWx0aW1lZGlhIHNlc3Npb25zIGZvciB0aGUgcHVycG9zZXMgb2Ygc2Vz
c2lvbiBhbm5vdW5jZW1lbnQsIHNlc3Npb24KLS8vIGludml0YXRpb24sIGFuZCBvdGhlciBmb3Jt
cyBvZiBtdWx0aW1lZGlhIHNlc3Npb24gaW5pdGlhdGlvbi4KLS8vCi0vLyBNb3JlIGluZm9ybWF0
aW9uIGNhbiBiZSBmb3VuZCBoZXJlOgotLy8gaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZj
NDU2NgotLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TZXNzaW9uX0Rlc2NyaXB0aW9u
X1Byb3RvY29sCi0KLQotY2xhc3MgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyIHsKLXB1YmxpYzoK
LSAgICB2aXJ0dWFsIH5XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKSB7IH0KLQotICAgIHZpcnR1
YWwgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwg
Y29uc3QgV2ViU3RyaW5nJiB1c2VybmFtZSkgeyB9OwotCi0gICAgdmlydHVhbCB2b2lkIHByb2R1
Y2VJbml0aWFsT2ZmZXIoY29uc3QgV2ViVmVjdG9yPFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcj4m
IHBlbmRpbmdBZGRTdHJlYW1zKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZUluaXRpYWxP
ZmZlcihjb25zdCBXZWJTdHJpbmcmIHNkcCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNz
U0RQKGNvbnN0IFdlYlN0cmluZyYgc2RwKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHByb2Nlc3NQ
ZW5kaW5nU3RyZWFtcyhjb25zdCBXZWJWZWN0b3I8V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yPiYg
cGVuZGluZ0FkZFN0cmVhbXMsIGNvbnN0IFdlYlZlY3RvcjxXZWJNZWRpYVN0cmVhbURlc2NyaXB0
b3I+JiBwZW5kaW5nUmVtb3ZlU3RyZWFtcykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZW5kRGF0
YVN0cmVhbU1lc3NhZ2UoY29uc3QgY2hhciogZGF0YSwgc2l6ZV90IGxlbmd0aCkgPSAwOwotCi0g
ICAgdmlydHVhbCB2b2lkIHN0b3AoKSA9IDA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
LQotI2VuZGlmIC8vIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVu
dC5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhh
bmRsZXJDbGllbnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjJiMWQzMjk3YzY4
OTMyNzRmNzNhNDMyNTc0MzA1OTBjODM0NzRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlBl
ZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTIgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50X2gKLSNkZWZpbmUgV2ViUGVl
ckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50X2gKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNsYXNz
IFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKLWNsYXNzIFdlYlN0cmluZzsKLQotY2xhc3MgV2Vi
UGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5XZWJQ
ZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQoKSB7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21wbGV0ZUlDRVByb2Nlc3NpbmcoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRl
U0RQKGNvbnN0IFdlYlN0cmluZyYgc2RwKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2Vp
dmVEYXRhU3RyZWFtTWVzc2FnZShjb25zdCBjaGFyKiBkYXRhLCBzaXplX3QgbGVuZ3RoKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZFJlbW90ZVN0cmVhbShjb25zdCBXZWJNZWRpYVN0cmVh
bURlc2NyaXB0b3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZVJlbW90ZVN0cmVh
bShjb25zdCBXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKSA9IDA7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlNlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAyYmVlNDUzMTlmNWFhZTgyYzQ5OWM0ZGMyYTMwZTYyNDQwYjBlZjMxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCisrKyAvZGV2
L251bGwKQEAgLTEsOTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcl9oCi0jZGVmaW5lIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3JfaAotCi0jaW5j
bHVkZSAiV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViTm9uQ29weWFibGUuaCIKLSNpbmNsdWRl
ICJXZWJQcml2YXRlUHRyLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFNlc3Npb25E
ZXNjcmlwdGlvbkRlc2NyaXB0b3I7Ci19Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotY2xhc3MgV2Vi
U3RyaW5nOwotY2xhc3MgV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjsKLQotLyoKLSAqICBJbiBv
cmRlciB0byBlc3RhYmxpc2ggdGhlIG1lZGlhIHBsYW5lLCBQZWVyQ29ubmVjdGlvbiBuZWVkcyBz
cGVjaWZpYwotICogIHBhcmFtZXRlcnMgdG8gaW5kaWNhdGUgd2hhdCB0byB0cmFuc21pdCB0byB0
aGUgcmVtb3RlIHNpZGUsIGFzIHdlbGwKLSAqICBhcyBob3cgdG8gaGFuZGxlIHRoZSBtZWRpYSB0
aGF0IGlzIHJlY2VpdmVkLiBUaGVzZSBwYXJhbWV0ZXJzIGFyZQotICogIGRldGVybWluZWQgYnkg
dGhlIGV4Y2hhbmdlIG9mIHNlc3Npb24gZGVzY3JpcHRpb25zIGluIG9mZmVycyBhbmQKLSAqICBh
bnN3ZXJzLCBhbmQgdGhlcmUgYXJlIGNlcnRhaW4gZGV0YWlscyB0byB0aGlzIHByb2Nlc3MgdGhh
dCBtdXN0IGJlCi0gKiAgaGFuZGxlZCBpbiB0aGUgSlNFUCBBUElzLgotCi0gKiAgV2hldGhlciBh
IHNlc3Npb24gZGVzY3JpcHRpb24gd2FzIHNlbnQgb3IgcmVjZWl2ZWQgYWZmZWN0cyB0aGUKLSAq
ICBtZWFuaW5nIG9mIHRoYXQgZGVzY3JpcHRpb24uIEZvciBleGFtcGxlLCB0aGUgbGlzdCBvZiBj
b2RlY3Mgc2VudCB0bwotICogIGEgcmVtb3RlIHBhcnR5IGluZGljYXRlcyB3aGF0IHRoZSBsb2Nh
bCBzaWRlIGlzIHdpbGxpbmcgdG8gZGVjb2RlLAotICogIGFuZCB3aGF0IHRoZSByZW1vdGUgcGFy
dHkgc2hvdWxkIHNlbmQuCi0gKi8KLWNsYXNzIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IgewotcHVibGljOgotICAgIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoKSB7IH0K
LSAgICBXZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFdlYlNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3ImIG90aGVyKSB7IGFzc2lnbihvdGhlcik7IH0KLSAgICB+V2ViU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigpIHsgcmVzZXQoKTsgfQotCi0gICAgV2ViU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvciYgb3BlcmF0b3I9KGNvbnN0IFdlYlNlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3ImIG90aGVyKQotICAgIHsKLSAgICAgICAgYXNzaWduKG90aGVyKTsKLSAg
ICAgICAgcmV0dXJuICp0aGlzOwotICAgIH0KLQotICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3Np
Z24oY29uc3QgV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpOwotCi0gICAgV0VCS0lU
X0VYUE9SVCB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBzZHApOwotICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCByZXNldCgpOwotICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyByZXR1cm4g
bV9wcml2YXRlLmlzTnVsbCgpOyB9Ci0KLSAgICBXRUJLSVRfRVhQT1JUIHNpemVfdCBudW1iZXJP
ZkFkZGVkQ2FuZGlkYXRlcygpIGNvbnN0OwotICAgIFdFQktJVF9FWFBPUlQgV2ViSUNFQ2FuZGlk
YXRlRGVzY3JpcHRvciBjYW5kaWRhdGUoc2l6ZV90IGluZGV4KSBjb25zdDsKLSAgICBXRUJLSVRf
RVhQT1JUIFdlYlN0cmluZyBpbml0aWFsU0RQKCkgY29uc3Q7Ci0KLSNpZiBXRUJLSVRfSU1QTEVN
RU5UQVRJT04KLSAgICBXZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFdURjo6
UGFzc1JlZlB0cjxXZWJDb3JlOjpTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiYpOwotCi0g
ICAgb3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlNlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3I+KCk7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBXZWJQcml2YXRlUHRyPFdlYkNv
cmU6OlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IG1fcHJpdmF0ZTsKLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQwZDU2ODgzY2RhYTRlNzgxYjVlMjM3YzQy
Mzc1ZTlmNWI1MzVhMGEuLjJhZTJkZWE4MTQ0NmYyMGJiYmE0ZDViMTlmNzU0YTlmMzc4MjQ5Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yMTAsOCArMjEwLDYgQEAgU0VUKFdlYkNvcmVfSURM
X0ZJTEVTCiAgICAgTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbAogCiAg
ICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwKLSAgICBNb2R1
bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmlkbAotICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0v
SWNlQ2FuZGlkYXRlLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVh
bS5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5pZGwKQEAgLTIyMyw3ICsyMjEsNiBAQCBT
RVQoV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYUVycm9yLmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3JDYWxsYmFjay5pZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVz
ZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uMDAuaWRsCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5p
ZGwKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaWRsCiAgICAg
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENFcnJvckNhbGxiYWNrLmlkbApAQCAtMjM2LDcgKzIzMyw2
IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3Rh
dHNFbGVtZW50LmlkbAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXBvcnQuaWRs
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbAotICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAogCiAgICAgTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbAogCkBAIC04NTAsNyAr
ODQ2LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291
cmNlQnVmZmVyLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5j
cHAKIAotICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlLmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5jcHAKICAgICBNb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhQ29uc3RyYWludHNJbXBsLmNwcAogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW0uY3BwCkBAIC04NjEsNyArODU2LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAg
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcAogICAgIE1vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0xpc3QuY3BwCiAgICAgTW9kdWxlcy9tZWRp
YXN0cmVhbS9OYXZpZ2F0b3JNZWRpYVN0cmVhbS5jcHAKLSAgICBNb2R1bGVzL21lZGlhc3RyZWFt
L1BlZXJDb25uZWN0aW9uMDAuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuY3Bw
CiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCkBAIC04NzQsNyAr
ODY4LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRD
U3RhdHNSZXF1ZXN0SW1wbC5jcHAKICAgICBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1N0YXRzUmVz
cG9uc2UuY3BwCiAgICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3Bw
Ci0gICAgTW9kdWxlcy9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwCiAgICAgTW9k
dWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFDb250cm9sbGVyLmNwcAogICAgIE1vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKIApAQCAtMTk2OCwxNyArMTk2MSwxMiBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCVHJhbnNhY3Rp
b24uY3BwCiAgICAgcGxhdGZvcm0vbGV2ZWxkYi9MZXZlbERCV3JpdGVCYXRjaC5jcHAKIAotICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwCi0gICAgcGxh
dGZvcm0vbWVkaWFzdHJlYW0vSWNlT3B0aW9ucy5jcHAKLSAgICBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYUhpbnRzLmNwcAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2Vu
dGVyLmNwcAogICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcAot
ICAgIHBsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmNwcAogICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRGVzY3JpcHRvci5jcHAKICAgICBw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcAogICAgIHBs
YXRmb3JtL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uSGFuZGxlci5jcHAKICAgICBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SVENTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcAotICAg
IHBsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwCiAK
ICAgICBwbGF0Zm9ybS9tb2NrL0RldmljZU1vdGlvbkNsaWVudE1vY2suY3BwCiAgICAgcGxhdGZv
cm0vbW9jay9EZXZpY2VPcmllbnRhdGlvbkNsaWVudE1vY2suY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQppbmRleCAzZGY5ZGQ5MTAwMWQxMGJmZWVmOGQ0ZTI1OGI1MTkwZjk1ZDgwMTAy
Li42YTdlYThiYzFmOTU0OTY3NmM3OTJhMTJhMDE5NTRkNjdkNjRkYWNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KQEAgLTQ0MSwxMCArNDQxLDYgQEAgd2ViY29yZV9idWlsdF9zb3Vy
Y2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFVMaXN0RWxlbWVudC5oIFwK
IAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSFRNTFZpZGVvRWxlbWVudC5jcHAgXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNIVE1MVmlkZW9FbGVtZW50LmggXAotCURlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNJY2VDYWxsYmFjay5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNJ
Y2VDYWxsYmFjay5oIFwKLQlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSWNlQ2FuZGlkYXRlLmNw
cCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ljZUNhbmRpZGF0ZS5oIFwKIAlEZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTSURCQW55LmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0lEQkFueS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTSURCQ3Vyc29yLmNwcCBcCkBA
IC01ODcsOCArNTgzLDYgQEAgd2ViY29yZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTT3ZlcmZsb3dFdmVudC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTUGFnZVRyYW5zaXRpb25FdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQ
YWdlVHJhbnNpdGlvbkV2ZW50LmggXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQZWVyQ29u
bmVjdGlvbjAwLmNwcCBcCi0JRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlZXJDb25uZWN0aW9u
MDAuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmZvcm1hbmNlLmNwcCBcCiAJRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BlcmZvcm1hbmNlLmggXAogCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNQZXJmb3JtYW5jZUVudHJ5LmNwcCBcCkBAIC02NjEsOCArNjU1LDYgQEAgd2ViY29y
ZV9idWlsdF9zb3VyY2VzICs9IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJv
ZmlsZS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuY3Bw
IFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2NyaXB0UHJvZmlsZU5vZGUuaCBcCi0JRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAotCURlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNTZXNzaW9uRGVzY3JpcHRpb24uaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1NoYWRvd1Jvb3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hh
ZG93Um9vdC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTU2hhcmVkV29ya2VyQ29udGV4
dC5jcHAgXApAQCAtMTIyOCw4ICsxMjIwLDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5pZGwgXAogCSQoV2ViQ29y
ZSkvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFtLmlkbCBcCi0JJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmlkbCBcCi0JJChXZWJDb3JlKS9N
b2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Mb2NhbE1lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsIFwKQEAgLTEyNDEsNyArMTIzMSw2IEBAIGRvbV9i
aW5kaW5nX2lkbHMgKz0gXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0
b3JVc2VyTWVkaWFFcnJvci5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9O
YXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNrLmlkbCBcCiAJJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwgXAotCSQo
V2ViQ29yZSkvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbCBcCiAJJChX
ZWJDb3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsLmlkbCBcCiAJJChXZWJD
b3JlKS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaWRsIFwKIAkkKFdl
YkNvcmUpL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRXJyb3JDYWxsYmFjay5pZGwgXApAQCAtMTI1
NCw3ICsxMjQzLDYgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3JlKS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1N0YXRzRWxlbWVudC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmlkbCBcCi0JJChXZWJDb3JlKS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5pZGwgXAogCSQoV2ViQ29yZSkvTW9kdWxlcy9uYXZp
Z2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29udGVudFV0aWxzLmlkbCBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmlkbCBcCiAJJChXZWJDb3JlKS9N
b2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2VudGVyLmlkbCBcCkBAIC0xOTE1LDkg
KzE5MDMsNiBAQCB3ZWJjb3JlX21vZHVsZXNfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmggXAotCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaCBcCi0JU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL0xvY2FsTWVkaWFTdHJlYW0uaCBcCiAJU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzSW1wbC5jcHAgXApAQCAtMTk0MSw4ICsx
OTI2LDYgQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3IuaCBcCiAJU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvckNhbGxiYWNr
LmggXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1l
ZGlhU3VjY2Vzc0NhbGxiYWNrLmggXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUGVlckNvbm5lY3Rpb24wMC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuY3BwIFwKQEAgLTE5NzAsOCArMTk1Myw2IEBAIHdl
YmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1N0YXRzUmVzcG9uc2UuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ1ZvaWRSZXF1ZXN0SW1wbC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5jcHAgXAotCVNvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ2xpZW50LmggXAogCVNvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhQ29udHJvbGxlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwIFwKQEAg
LTQ2MzMsMTMgKzQ2MTQsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xheW91dFRlc3RTdXBwb3J0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xpbnV4L0dhbWVwYWREZXZpY2VMaW51eC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2xpbnV4L0dhbWVwYWREZXZpY2VMaW51eC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCBcCi0JU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIFwKLQlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9JY2VPcHRpb25zLmNwcCBcCi0JU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlT3B0aW9ucy5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmggXAotCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhSGludHMuY3BwIFwKLQlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYUhpbnRzLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2VudGVyLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1DZW50ZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Db21wb25lbnQuaCBcCkBAIC00
NjQ3LDkgKzQ2MjIsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtU291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCBcCiAJU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQu
aCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24w
MEhhbmRsZXIuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbjAwSGFuZGxlci5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENDb25maWd1cmF0aW9uLmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRGVzY3JpcHRvci5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRGVzY3JpcHRv
ci5oIFwKQEAgLTQ2NjMsOCArNDYzNSw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENTdGF0c1Jl
cXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDVm9pZFJl
cXVlc3QuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvci5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVy
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFtLmlkbAppbmRl
eCA4ZWI5OWQ1NDk0MzI1ZTQ0OTM3YzE2MmJmZGY2OTUzNGY2MzFlM2RjLi5iN2ViOTFlZjhjZDI5
ZDQ5NzIyZmEzZjBkNmYzZGJlODZkMzFkN2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFtLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0RPTVdpbmRvd01lZGlhU3RyZWFtLmlkbApAQCAt
MjksMTEgKzI5LDggQEAKICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CiBdIGludGVyZmFjZSBE
T01XaW5kb3dNZWRpYVN0cmVhbSB7CiAgICAgW1Y4RW5hYmxlZEF0UnVudGltZV0gYXR0cmlidXRl
IE1lZGlhU3RyZWFtQ29uc3RydWN0b3Igd2Via2l0TWVkaWFTdHJlYW07Ci0gICAgW1Y4RW5hYmxl
ZEF0UnVudGltZV0gYXR0cmlidXRlIFBlZXJDb25uZWN0aW9uMDBDb25zdHJ1Y3RvciB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbjAwOwogICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIGF0dHJpYnV0ZSBSVENQ
ZWVyQ29ubmVjdGlvbkNvbnN0cnVjdG9yIHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uOwotICAgIGF0
dHJpYnV0ZSBTZXNzaW9uRGVzY3JpcHRpb25Db25zdHJ1Y3RvciBTZXNzaW9uRGVzY3JpcHRpb247
CiAgICAgYXR0cmlidXRlIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbkNvbnN0cnVjdG9yIFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbjsKLSAgICBhdHRyaWJ1dGUgSWNlQ2FuZGlkYXRlQ29uc3RydWN0b3IgSWNl
Q2FuZGlkYXRlOwogICAgIGF0dHJpYnV0ZSBSVENJY2VDYW5kaWRhdGVDb25zdHJ1Y3RvciBSVENJ
Y2VDYW5kaWRhdGU7CiAgICAgYXR0cmlidXRlIE1lZGlhU3RyZWFtRXZlbnRDb25zdHJ1Y3RvciBN
ZWRpYVN0cmVhbUV2ZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FsbGJhY2suaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDliYjUy
MGJjN2ZiYmFjMDQzY2M5MTlhNTllOThlMDg3ZjBjNDc1Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL0ljZUNhbGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAg
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBJY2VDYWxsYmFja19oCi0jZGVmaW5lIEljZUNhbGxiYWNrX2gKLQotI2lmIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEljZUNhbmRpZGF0ZTsKLWNsYXNzIFBlZXJDb25uZWN0aW9u
MDA7Ci0KLWNsYXNzIEljZUNhbGxiYWNrIDogcHVibGljIFJlZkNvdW50ZWQ8SWNlQ2FsbGJhY2s+
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JY2VDYWxsYmFjaygpIHsgfQotICAgIHZpcnR1YWwg
Ym9vbCBoYW5kbGVFdmVudChJY2VDYW5kaWRhdGUqLCBib29sIG1vcmVUb0ZvbGxvdywgUGVlckNv
bm5lY3Rpb24wMCopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBJY2VDYWxsYmFja19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaWRsCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YjMyZDdlYmZjMzVkZWJiMDFlNzg1ODdkYTc0
MzRmOGJiMjBmN2ZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaWRsCisr
KyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKiAz
LiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNv
bnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDb25kaXRpb25hbD1N
RURJQV9TVFJFQU0sCi0gICAgQ2FsbGJhY2sKLV0gaW50ZXJmYWNlIEljZUNhbGxiYWNrIHsKLSAg
ICBib29sZWFuIGhhbmRsZUV2ZW50KGluIEljZUNhbmRpZGF0ZSBjYW5kaWRhdGUsIGluIGJvb2xl
YW4gbW9yZVRvRm9sbG93LCBpbiBQZWVyQ29ubmVjdGlvbjAwIHNvdXJjZSk7Ci19OwotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNmOWFiY2JlMjY5NDQxMzUyNzcyNTcwMzg2
ZDAwZjUyMGI0ZTU2MTguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGUuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsODIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0g
KiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
IGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJJY2VDYW5kaWRhdGUu
aCIKLQotI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1QYXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gSWNlQ2FuZGlkYXRlOjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKQotewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgSWNlQ2FuZGlkYXRlKEljZUNhbmRpZGF0ZURlc2NyaXB0b3I6
OmNyZWF0ZShsYWJlbCwgY2FuZGlkYXRlTGluZSkpKTsKLX0KLQotUGFzc1JlZlB0cjxJY2VDYW5k
aWRhdGU+IEljZUNhbmRpZGF0ZTo6Y3JlYXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3Jp
cHRvcj4gZGVzY3JpcHRvcikKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRpZGF0
ZShkZXNjcmlwdG9yKSk7Ci19Ci0KLUljZUNhbmRpZGF0ZTo6SWNlQ2FuZGlkYXRlKFBhc3NSZWZQ
dHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gZGVzY3JpcHRvcikKLSAgICA6IG1fZGVzY3JpcHRv
cihkZXNjcmlwdG9yKQotewotfQotCi1JY2VDYW5kaWRhdGU6On5JY2VDYW5kaWRhdGUoKQotewot
fQotCi1jb25zdCBTdHJpbmcmIEljZUNhbmRpZGF0ZTo6bGFiZWwoKQotewotICAgIHJldHVybiBt
X2Rlc2NyaXB0b3ItPmxhYmVsKCk7Ci19Ci0KLWNvbnN0IFN0cmluZyYgSWNlQ2FuZGlkYXRlOjpj
YW5kaWRhdGVMaW5lKCkKLXsKLSAgICByZXR1cm4gbV9kZXNjcmlwdG9yLT5jYW5kaWRhdGVMaW5l
KCk7Ci19Ci0KLVN0cmluZyBJY2VDYW5kaWRhdGU6OnRvU2RwKCkKLXsKLSAgICByZXR1cm4gbV9k
ZXNjcmlwdG9yLT50b1NEUCgpOwotfQotCi1JY2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBJY2VDYW5k
aWRhdGU6OmRlc2NyaXB0b3IoKQotewotICAgIHJldHVybiBtX2Rlc2NyaXB0b3IuZ2V0KCk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJF
QU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNh
bmRpZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VDYW5kaWRh
dGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODEwYmViNTJkOTAyNDNkYWI1MGJh
OWVjYzdlZThjY2M5MDI3NzZiMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24u
Ci0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSWNlQ2Fu
ZGlkYXRlX2gKLSNkZWZpbmUgSWNlQ2FuZGlkYXRlX2gKLQotI2lmIEVOQUJMRShNRURJQV9TVFJF
QU0pCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I7Ci0KLWNsYXNzIEljZUNhbmRpZGF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEljZUNhbmRp
ZGF0ZT4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlTGluZSk7Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlPiBjcmVhdGUoUGFzc1JlZlB0cjxJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yPik7Ci0gICAgdmlydHVhbCB+SWNlQ2FuZGlkYXRlKCk7Ci0KLSAg
ICBjb25zdCBTdHJpbmcmIGxhYmVsKCk7Ci0gICAgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5l
KCk7Ci0KLSAgICBTdHJpbmcgdG9TZHAoKTsKLQotICAgIEljZUNhbmRpZGF0ZURlc2NyaXB0b3Iq
IGRlc2NyaXB0b3IoKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJY2VDYW5kaWRhdGUoUGFz
c1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik7Ci0KLSAgICBSZWZQdHI8SWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcj4gbV9kZXNjcmlwdG9yOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEljZUNhbmRp
ZGF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0lj
ZUNhbmRpZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNh
bmRpZGF0ZS5pZGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxZWE0ZDc4YjhhZThk
YTljOWVlYzE5NjgzZjViZTI2NTU1NDQyMTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9JY2VD
YW5kaWRhdGUuaWRsCisrKyAvZGV2L251bGwKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0
cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAg
ICBDb25kaXRpb25hbD1NRURJQV9TVFJFQU0sCi0gICAgQ29uc3RydWN0b3IoaW4gRE9NU3RyaW5n
IGxhYmVsLCBpbiBET01TdHJpbmcgY2FuZGlkYXRlTGluZSkKLV0gaW50ZXJmYWNlIEljZUNhbmRp
ZGF0ZSB7Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKLQotICAgIERP
TVN0cmluZyB0b1NkcCgpOwotfTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg5ZmM2MDdmYTFhNWE2NmQ2YzJhYmE5NjIwM2M1MThkMjdmZTEyN2UuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDQ5NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0g
KiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxF
KE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uMDAuaCIKLQotI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJJY2VDYWxsYmFjay5oIgotI2luY2x1ZGUg
IkljZUNhbmRpZGF0ZS5oIgotI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKLSNp
bmNsdWRlICJJY2VPcHRpb25zLmgiCi0jaW5jbHVkZSAiTWVkaWFIaW50cy5oIgotI2luY2x1ZGUg
Ik1lZGlhU3RyZWFtRXZlbnQuaCIKLSNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKLSNpbmNsdWRl
ICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
LSNpbmNsdWRlICJTZXNzaW9uRGVzY3JpcHRpb24uaCIKLSNpbmNsdWRlICJTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFzc1JlZlB0cjxQ
ZWVyQ29ubmVjdGlvbjAwPiBQZWVyQ29ubmVjdGlvbjAwOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBzZXJ2ZXJDb25maWd1cmF0aW9uLCBQYXNz
UmVmUHRyPEljZUNhbGxiYWNrPiBpY2VDYWxsYmFjaywgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0g
ICAgaWYgKCFpY2VDYWxsYmFjaykgewotICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwot
ICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0gICAgUmVmUHRyPFBlZXJDb25uZWN0aW9uMDA+IHBl
ZXJDb25uZWN0aW9uID0gYWRvcHRSZWYobmV3IFBlZXJDb25uZWN0aW9uMDAoY29udGV4dCwgc2Vy
dmVyQ29uZmlndXJhdGlvbiwgaWNlQ2FsbGJhY2spKTsKLSAgICBwZWVyQ29ubmVjdGlvbi0+c3Vz
cGVuZElmTmVlZGVkKCk7Ci0gICAgcmV0dXJuIHBlZXJDb25uZWN0aW9uLnJlbGVhc2UoKTsKLX0K
LQotUGVlckNvbm5lY3Rpb24wMDo6UGVlckNvbm5lY3Rpb24wMChTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQ
dHI8SWNlQ2FsbGJhY2s+IGljZUNhbGxiYWNrKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRl
eHQsIHRoaXMpCi0gICAgLCBtX2ljZUNhbGxiYWNrKGljZUNhbGxiYWNrKQotICAgICwgbV9yZWFk
eVN0YXRlKE5FVykKLSAgICAsIG1faWNlU3RhdGUoSUNFX0NMT1NFRCkKLSAgICAsIG1fbG9jYWxT
dHJlYW1zKE1lZGlhU3RyZWFtTGlzdDo6Y3JlYXRlKCkpCi0gICAgLCBtX3JlbW90ZVN0cmVhbXMo
TWVkaWFTdHJlYW1MaXN0OjpjcmVhdGUoKSkKLSAgICAsIG1fcGVlckhhbmRsZXIoUGVlckNvbm5l
Y3Rpb24wMEhhbmRsZXI6OmNyZWF0ZSh0aGlzLCBzZXJ2ZXJDb25maWd1cmF0aW9uLCBjb250ZXh0
LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKSkKLXsKLX0KLQotUGVlckNvbm5lY3Rpb24w
MDo6flBlZXJDb25uZWN0aW9uMDAoKQotewotfQotCi1ib29sIFBlZXJDb25uZWN0aW9uMDA6Omhh
c0xvY2FsQXVkaW9UcmFjaygpCi17Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xvY2Fs
U3RyZWFtcy0+bGVuZ3RoKCk7ICsraSkgewotICAgICAgICBNZWRpYVN0cmVhbSogY3VyciA9IG1f
bG9jYWxTdHJlYW1zLT5pdGVtKGkpOwotICAgICAgICBpZiAoY3Vyci0+YXVkaW9UcmFja3MoKS0+
bGVuZ3RoKCkgPiAwKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotYm9vbCBQZWVyQ29ubmVjdGlvbjAwOjpoYXNMb2NhbFZpZGVvVHJhY2so
KQotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9sb2NhbFN0cmVhbXMtPmxlbmd0aCgp
OyArK2kpIHsKLSAgICAgICAgTWVkaWFTdHJlYW0qIGN1cnIgPSBtX2xvY2FsU3RyZWFtcy0+aXRl
bShpKTsKLSAgICAgICAgaWYgKGN1cnItPnZpZGVvVHJhY2tzKCktPmxlbmd0aCgpID4gMCkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLVBh
c3NSZWZQdHI8TWVkaWFIaW50cz4gUGVlckNvbm5lY3Rpb24wMDo6Y3JlYXRlTWVkaWFIaW50cyhj
b25zdCBEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5KQotewotICAgIGJvb2wgYXVkaW8gPSBoYXNMb2Nh
bEF1ZGlvVHJhY2soKTsKLSAgICBib29sIHZpZGVvID0gaGFzTG9jYWxWaWRlb1RyYWNrKCk7Ci0g
ICAgZGljdGlvbmFyeS5nZXQoImhhc19hdWRpbyIsIGF1ZGlvKTsKLSAgICBkaWN0aW9uYXJ5Lmdl
dCgiaGFzX3ZpZGVvIiwgdmlkZW8pOwotICAgIHJldHVybiBNZWRpYUhpbnRzOjpjcmVhdGUoYXVk
aW8sIHZpZGVvKTsKLX0KLQotUGFzc1JlZlB0cjxNZWRpYUhpbnRzPiBQZWVyQ29ubmVjdGlvbjAw
OjpjcmVhdGVNZWRpYUhpbnRzKCkKLXsKLSAgICBib29sIGF1ZGlvID0gaGFzTG9jYWxBdWRpb1Ry
YWNrKCk7Ci0gICAgYm9vbCB2aWRlbyA9IGhhc0xvY2FsVmlkZW9UcmFjaygpOwotICAgIHJldHVy
biBNZWRpYUhpbnRzOjpjcmVhdGUoYXVkaW8sIHZpZGVvKTsKLX0KLQotUGFzc1JlZlB0cjxTZXNz
aW9uRGVzY3JpcHRpb24+IFBlZXJDb25uZWN0aW9uMDA6OmNyZWF0ZU9mZmVyKEV4Y2VwdGlvbkNv
ZGUmIGVjKQotewotICAgIHJldHVybiBjcmVhdGVPZmZlcihjcmVhdGVNZWRpYUhpbnRzKCksIGVj
KTsKLX0KLQotUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb24+IFBlZXJDb25uZWN0aW9uMDA6
OmNyZWF0ZU9mZmVyKGNvbnN0IERpY3Rpb25hcnkmIGRpY3Rpb25hcnksIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIHJldHVybiBjcmVhdGVPZmZlcihjcmVhdGVNZWRpYUhpbnRzKGRpY3Rpb25h
cnkpLCBlYyk7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBQZWVyQ29ubmVj
dGlvbjAwOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPE1lZGlhSGludHM+IG1lZGlhSGludHMsIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFJlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlw
dG9yPiBkZXNjcmlwdG9yID0gbV9wZWVySGFuZGxlci0+Y3JlYXRlT2ZmZXIobWVkaWFIaW50cyk7
Ci0gICAgaWYgKCFkZXNjcmlwdG9yKSB7Ci0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIFNlc3Npb25EZXNjcmlwdGlvbjo6Y3Jl
YXRlKGRlc2NyaXB0b3IucmVsZWFzZSgpKTsKLX0KLQotUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3Jp
cHRpb24+IFBlZXJDb25uZWN0aW9uMDA6OmNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcmIG9mZmVy
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICByZXR1cm4gY3JlYXRlQW5zd2VyKG9mZmVyLCBj
cmVhdGVNZWRpYUhpbnRzKCksIGVjKTsKLX0KLQotUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRp
b24+IFBlZXJDb25uZWN0aW9uMDA6OmNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcmIG9mZmVyLCBj
b25zdCBEaWN0aW9uYXJ5JiBkaWN0aW9uYXJ5LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBy
ZXR1cm4gY3JlYXRlQW5zd2VyKG9mZmVyLCBjcmVhdGVNZWRpYUhpbnRzKGRpY3Rpb25hcnkpLCBl
Yyk7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBQZWVyQ29ubmVjdGlvbjAw
OjpjcmVhdGVBbnN3ZXIoY29uc3QgU3RyaW5nJiBvZmZlciwgUGFzc1JlZlB0cjxNZWRpYUhpbnRz
PiBoaW50cywgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgUmVmUHRyPFNlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBtX3BlZXJIYW5kbGVyLT5jcmVhdGVBbnN3ZXIo
b2ZmZXIsIGhpbnRzKTsKLSAgICBpZiAoIWRlc2NyaXB0b3IpIHsKLSAgICAgICAgZWMgPSBTWU5U
QVhfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4gU2Vzc2lvbkRl
c2NyaXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRvci5yZWxlYXNlKCkpOwotfQotCi12b2lkIFBlZXJD
b25uZWN0aW9uMDA6OnNldExvY2FsRGVzY3JpcHRpb24oaW50IGFjdGlvbiwgUGFzc1JlZlB0cjxT
ZXNzaW9uRGVzY3JpcHRpb24+IHNlc3Npb25EZXNjcmlwdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpIHsKLSAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN3aXRjaCAoYWN0
aW9uKSB7Ci0gICAgY2FzZSBTRFBfT0ZGRVI6Ci0gICAgY2FzZSBTRFBfUFJBTlNXRVI6Ci0gICAg
Y2FzZSBTRFBfQU5TV0VSOgotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBl
YyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXNlc3Np
b25EZXNjcmlwdGlvbikgewotICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJSOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgYm9vbCB2YWxpZCA9IG1fcGVlckhhbmRsZXItPnNldExv
Y2FsRGVzY3JpcHRpb24oYWN0aW9uLCBzZXNzaW9uRGVzY3JpcHRpb24tPmRlc2NyaXB0b3IoKSk7
Ci0gICAgaWYgKCF2YWxpZCkKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotfQotCi12b2lkIFBl
ZXJDb25uZWN0aW9uMDA6OnNldFJlbW90ZURlc2NyaXB0aW9uKGludCBhY3Rpb24sIFBhc3NSZWZQ
dHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBzZXNzaW9uRGVzY3JpcHRpb24sIEV4Y2VwdGlvbkNvZGUm
IGVjKQotewotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKSB7Ci0gICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzd2l0Y2gg
KGFjdGlvbikgewotICAgIGNhc2UgU0RQX09GRkVSOgotICAgIGNhc2UgU0RQX1BSQU5TV0VSOgot
ICAgIGNhc2UgU0RQX0FOU1dFUjoKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFz
ZXNzaW9uRGVzY3JpcHRpb24pIHsKLSAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGJvb2wgdmFsaWQgPSBtX3BlZXJIYW5kbGVyLT5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihhY3Rpb24sIHNlc3Npb25EZXNjcmlwdGlvbi0+ZGVzY3JpcHRv
cigpKTsKLSAgICBpZiAoIXZhbGlkKQotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci19Ci0KLVBh
c3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBQZWVyQ29ubmVjdGlvbjAwOjpsb2NhbERlc2Ny
aXB0aW9uKCkKLXsKLSAgICBSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gZGVz
Y3JpcHRvciA9IG1fcGVlckhhbmRsZXItPmxvY2FsRGVzY3JpcHRpb24oKTsKLSAgICBpZiAoIWRl
c2NyaXB0b3IpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgUmVmUHRyPFNlc3Npb25EZXNjcmlw
dGlvbj4gZGVzYyA9IFNlc3Npb25EZXNjcmlwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0b3IucmVsZWFz
ZSgpKTsKLSAgICByZXR1cm4gZGVzYy5yZWxlYXNlKCk7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lv
bkRlc2NyaXB0aW9uPiBQZWVyQ29ubmVjdGlvbjAwOjpyZW1vdGVEZXNjcmlwdGlvbigpCi17Ci0g
ICAgUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IGRlc2NyaXB0b3IgPSBtX3Bl
ZXJIYW5kbGVyLT5yZW1vdGVEZXNjcmlwdGlvbigpOwotICAgIGlmICghZGVzY3JpcHRvcikKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBkZXNjID0g
U2Vzc2lvbkRlc2NyaXB0aW9uOjpjcmVhdGUoZGVzY3JpcHRvci5yZWxlYXNlKCkpOwotICAgIHJl
dHVybiBkZXNjLnJlbGVhc2UoKTsKLX0KLQotUGFzc1JlZlB0cjxJY2VPcHRpb25zPiBQZWVyQ29u
bmVjdGlvbjAwOjpjcmVhdGVJY2VPcHRpb25zKGNvbnN0IERpY3Rpb25hcnkmIGRpY3Rpb25hcnks
IEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIFN0cmluZyB1c2VDYW5kaWRhdGVzID0gZW1wdHlT
dHJpbmcoKTsKLSAgICBkaWN0aW9uYXJ5LmdldCgidXNlX2NhbmRpZGF0ZXMiLCB1c2VDYW5kaWRh
dGVzKTsKLQotICAgIEljZU9wdGlvbnM6OlVzZUNhbmRpZGF0ZXNPcHRpb24gb3B0aW9uOwotICAg
IGlmICh1c2VDYW5kaWRhdGVzID09ICIiIHx8IHVzZUNhbmRpZGF0ZXMgPT0gImFsbCIpCi0gICAg
ICAgIG9wdGlvbiA9IEljZU9wdGlvbnM6OkFMTDsKLSAgICBlbHNlIGlmICh1c2VDYW5kaWRhdGVz
ID09ICJub19yZWxheSIpCi0gICAgICAgIG9wdGlvbiA9IEljZU9wdGlvbnM6Ok5PX1JFTEFZOwot
ICAgIGVsc2UgaWYgKHVzZUNhbmRpZGF0ZXMgPT0gIm9ubHlfcmVsYXkiKQotICAgICAgICBvcHRp
b24gPSBJY2VPcHRpb25zOjpPTkxZX1JFTEFZOwotICAgIGVsc2UgewotICAgICAgICBlYyA9IFRZ
UEVfTUlTTUFUQ0hfRVJSOwotICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICByZXR1cm4g
SWNlT3B0aW9uczo6Y3JlYXRlKG9wdGlvbik7Ci19Ci0KLVBhc3NSZWZQdHI8SWNlT3B0aW9ucz4g
UGVlckNvbm5lY3Rpb24wMDo6Y3JlYXRlRGVmYXVsdEljZU9wdGlvbnMoKQotewotICAgIHJldHVy
biBJY2VPcHRpb25zOjpjcmVhdGUoSWNlT3B0aW9uczo6QUxMKTsKLX0KLQotdm9pZCBQZWVyQ29u
bmVjdGlvbjAwOjpzdGFydEljZShFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBzdGFydEljZShj
cmVhdGVEZWZhdWx0SWNlT3B0aW9ucygpLCBlYyk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24w
MDo6c3RhcnRJY2UoY29uc3QgRGljdGlvbmFyeSYgZGljdGlvbmFyeSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCi17Ci0gICAgUmVmUHRyPEljZU9wdGlvbnM+IGljZU9wdGlvbnMgPSBjcmVhdGVJY2VPcHRp
b25zKGRpY3Rpb25hcnksIGVjKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IHN0YXJ0SWNlKGljZU9wdGlvbnMucmVsZWFzZSgpLCBlYyk7Ci19Ci0KLXZvaWQgUGVlckNvbm5l
Y3Rpb24wMDo6c3RhcnRJY2UoUGFzc1JlZlB0cjxJY2VPcHRpb25zPiBpY2VPcHRpb25zLCBFeGNl
cHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkgewotICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgYm9vbCB2YWxpZCA9IG1fcGVlckhhbmRsZXItPnN0YXJ0SWNlKGljZU9wdGlvbnMpOwotICAg
IGlmICghdmFsaWQpCi0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLX0KLQotdm9pZCBQZWVyQ29u
bmVjdGlvbjAwOjpwcm9jZXNzSWNlTWVzc2FnZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZT4gcHJw
SWNlQ2FuZGlkYXRlLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAobV9yZWFkeVN0YXRl
ID09IENMT1NFRCkgewotICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgUmVmUHRyPEljZUNhbmRpZGF0ZT4gaWNlQ2FuZGlkYXRlID0g
cHJwSWNlQ2FuZGlkYXRlOwotICAgIGlmICghaWNlQ2FuZGlkYXRlKSB7Ci0gICAgICAgIGVjID0g
VFlQRV9NSVNNQVRDSF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBib29sIHZh
bGlkID0gbV9wZWVySGFuZGxlci0+cHJvY2Vzc0ljZU1lc3NhZ2UoaWNlQ2FuZGlkYXRlLT5kZXNj
cmlwdG9yKCkpOwotICAgIGlmICghdmFsaWQpCi0gICAgICAgIGVjID0gU1lOVEFYX0VSUjsKLX0K
LQotUGVlckNvbm5lY3Rpb24wMDo6UmVhZHlTdGF0ZSBQZWVyQ29ubmVjdGlvbjAwOjpyZWFkeVN0
YXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwotfQotCi1QZWVyQ29ubmVj
dGlvbjAwOjpJY2VTdGF0ZSBQZWVyQ29ubmVjdGlvbjAwOjppY2VTdGF0ZSgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1faWNlU3RhdGU7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMDo6YWRkU3Ry
ZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0+IHBycFN0cmVhbSwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBwcnBTdHJlYW07Ci0gICAgaWYg
KCFzdHJlYW0pIHsKLSAgICAgICAgZWMgPSAgVFlQRV9NSVNNQVRDSF9FUlI7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkgewotICAgICAg
ICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
aWYgKG1fbG9jYWxTdHJlYW1zLT5jb250YWlucyhzdHJlYW0uZ2V0KCkpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBtX2xvY2FsU3RyZWFtcy0+YXBwZW5kKHN0cmVhbSk7Ci0KLSAgICBtX3BlZXJI
YW5kbGVyLT5hZGRTdHJlYW0oc3RyZWFtLT5kZXNjcmlwdG9yKCkpOwotfQotCi12b2lkIFBlZXJD
b25uZWN0aW9uMDA6OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0sIGNv
bnN0IERpY3Rpb25hcnkmIG1lZGlhU3RyZWFtSGludHMsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewot
ICAgIC8vIEZJWE1FOiBXaGVuIHRoZSBzcGVjIHNheXMgd2hhdCB0aGUgbWVkaWFTdHJlYW1IaW50
cyBzaG91bGQgbG9vayBsaWtlIHVzZSBpdC4KLSAgICBhZGRTdHJlYW0oc3RyZWFtLCBlYyk7Ci19
Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMDo6cmVtb3ZlU3RyZWFtKE1lZGlhU3RyZWFtKiBzdHJl
YW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VE
KSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAoIXN0cmVhbSkgewotICAgICAgICBlYyA9IFRZUEVfTUlTTUFUQ0hfRVJS
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX2xvY2FsU3RyZWFtcy0+Y29u
dGFpbnMoc3RyZWFtKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sb2NhbFN0cmVhbXMtPnJl
bW92ZShzdHJlYW0pOwotCi0gICAgbV9wZWVySGFuZGxlci0+cmVtb3ZlU3RyZWFtKHN0cmVhbS0+
ZGVzY3JpcHRvcigpKTsKLX0KLQotTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjAwOjps
b2NhbFN0cmVhbXMoKSBjb25zdAotewotICAgIHJldHVybiBtX2xvY2FsU3RyZWFtcy5nZXQoKTsK
LX0KLQotTWVkaWFTdHJlYW1MaXN0KiBQZWVyQ29ubmVjdGlvbjAwOjpyZW1vdGVTdHJlYW1zKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9yZW1vdGVTdHJlYW1zLmdldCgpOwotfQotCi12b2lkIFBl
ZXJDb25uZWN0aW9uMDA6OmNsb3NlKEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmIChtX3Jl
YWR5U3RhdGUgPT0gQ0xPU0VEKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzdG9wKCk7Ci19Ci0KLXZvaWQgUGVlckNvbm5l
Y3Rpb24wMDo6ZGlkR2VuZXJhdGVJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVE
ZXNjcmlwdG9yPiBpY2VDYW5kaWRhdGVEZXNjcmlwdG9yLCBib29sIG1vcmVUb0ZvbGxvdykKLXsK
LSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRUaHJlYWQoKSk7
Ci0gICAgaWYgKCFpY2VDYW5kaWRhdGVEZXNjcmlwdG9yKQotICAgICAgICBtX2ljZUNhbGxiYWNr
LT5oYW5kbGVFdmVudCgwLCBtb3JlVG9Gb2xsb3csIHRoaXMpOwotICAgIGVsc2UgewotICAgICAg
ICBSZWZQdHI8SWNlQ2FuZGlkYXRlPiBpY2VDYW5kaWRhdGUgPSBJY2VDYW5kaWRhdGU6OmNyZWF0
ZShpY2VDYW5kaWRhdGVEZXNjcmlwdG9yKTsKLSAgICAgICAgbV9pY2VDYWxsYmFjay0+aGFuZGxl
RXZlbnQoaWNlQ2FuZGlkYXRlLmdldCgpLCBtb3JlVG9Gb2xsb3csIHRoaXMpOwotICAgIH0KLX0K
LQotdm9pZCBQZWVyQ29ubmVjdGlvbjAwOjpkaWRDaGFuZ2VSZWFkeVN0YXRlKHVpbnQzMl90IG5l
d1N0YXRlKQotewotICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzQ29udGV4
dFRocmVhZCgpKTsKLSAgICBjaGFuZ2VSZWFkeVN0YXRlKHN0YXRpY19jYXN0PFJlYWR5U3RhdGU+
KG5ld1N0YXRlKSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMDo6ZGlkQ2hhbmdlSWNlU3Rh
dGUodWludDMyX3QgbmV3U3RhdGUpCi17Ci0gICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGNoYW5nZUljZVN0YXRlKHN0YXRpY19jYXN0
PEljZVN0YXRlPihuZXdTdGF0ZSkpOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9uMDA6OmRpZEFk
ZFJlbW90ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gc3RyZWFtRGVz
Y3JpcHRvcikKLXsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRl
eHRUaHJlYWQoKSk7Ci0KLSAgICBpZiAobV9yZWFkeVN0YXRlID09IENMT1NFRCkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtPiBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6
Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgc3RyZWFtRGVzY3JpcHRvcik7Ci0gICAg
bV9yZW1vdGVTdHJlYW1zLT5hcHBlbmQoc3RyZWFtKTsKLQotICAgIGRpc3BhdGNoRXZlbnQoTWVk
aWFTdHJlYW1FdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5hZGRzdHJlYW1FdmVudCwgZmFsc2Us
IGZhbHNlLCBzdHJlYW0ucmVsZWFzZSgpKSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMDo6
ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciogc3RyZWFtRGVzY3Jp
cHRvcikKLXsKLSAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc0NvbnRleHRU
aHJlYWQoKSk7Ci0gICAgQVNTRVJUKHN0cmVhbURlc2NyaXB0b3ItPmNsaWVudCgpKTsKLQotICAg
IFJlZlB0cjxNZWRpYVN0cmVhbT4gc3RyZWFtID0gc3RhdGljX2Nhc3Q8TWVkaWFTdHJlYW0qPihz
dHJlYW1EZXNjcmlwdG9yLT5jbGllbnQoKSk7Ci0gICAgc3RyZWFtLT5zdHJlYW1FbmRlZCgpOwot
Ci0gICAgaWYgKG1fcmVhZHlTdGF0ZSA9PSBDTE9TRUQpCi0gICAgICAgIHJldHVybjsKLQotICAg
IEFTU0VSVChtX3JlbW90ZVN0cmVhbXMtPmNvbnRhaW5zKHN0cmVhbS5nZXQoKSkpOwotICAgIG1f
cmVtb3RlU3RyZWFtcy0+cmVtb3ZlKHN0cmVhbS5nZXQoKSk7Ci0KLSAgICBkaXNwYXRjaEV2ZW50
KE1lZGlhU3RyZWFtRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucmVtb3Zlc3RyZWFtRXZlbnQs
IGZhbHNlLCBmYWxzZSwgc3RyZWFtLnJlbGVhc2UoKSkpOwotfQotCi1jb25zdCBBdG9taWNTdHJp
bmcmIFBlZXJDb25uZWN0aW9uMDA6OmludGVyZmFjZU5hbWUoKSBjb25zdAotewotICAgIHJldHVy
biBldmVudE5hbWVzKCkuaW50ZXJmYWNlRm9yUGVlckNvbm5lY3Rpb24wMDsKLX0KLQotU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogUGVlckNvbm5lY3Rpb24wMDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9uMDA6OnN0b3AoKQotewotICAgIGlm
IChtX3JlYWR5U3RhdGUgPT0gQ0xPU0VEKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAobV9w
ZWVySGFuZGxlcikKLSAgICAgICAgbV9wZWVySGFuZGxlci0+c3RvcCgpOwotICAgIG1fcGVlckhh
bmRsZXIuY2xlYXIoKTsKLQotICAgIGNoYW5nZVJlYWR5U3RhdGUoQ0xPU0VEKTsKLSAgICBjaGFu
Z2VJY2VTdGF0ZShJQ0VfQ0xPU0VEKTsKLX0KLQotRXZlbnRUYXJnZXREYXRhKiBQZWVyQ29ubmVj
dGlvbjAwOjpldmVudFRhcmdldERhdGEoKQotewotICAgIHJldHVybiAmbV9ldmVudFRhcmdldERh
dGE7Ci19Ci0KLUV2ZW50VGFyZ2V0RGF0YSogUGVlckNvbm5lY3Rpb24wMDo6ZW5zdXJlRXZlbnRU
YXJnZXREYXRhKCkKLXsKLSAgICByZXR1cm4gJm1fZXZlbnRUYXJnZXREYXRhOwotfQotCi12b2lk
IFBlZXJDb25uZWN0aW9uMDA6OmNoYW5nZVJlYWR5U3RhdGUoUmVhZHlTdGF0ZSByZWFkeVN0YXRl
KQotewotICAgIGlmIChyZWFkeVN0YXRlID09IG1fcmVhZHlTdGF0ZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV9yZWFkeVN0YXRlID0gcmVhZHlTdGF0ZTsKLQotICAgIHN3aXRjaCAobV9yZWFk
eVN0YXRlKSB7Ci0gICAgY2FzZSBPUEVOSU5HOgotICAgICAgICBkaXNwYXRjaEV2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLmNvbm5lY3RpbmdFdmVudCwgZmFsc2UsIGZhbHNlKSk7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgQUNUSVZFOgotICAgICAgICBkaXNwYXRjaEV2ZW50KEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9wZW5FdmVudCwgZmFsc2UsIGZhbHNlKSk7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgQ0xPU0VEOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5F
VzoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LQotICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc3RhdGVjaGFu
Z2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMDo6Y2hh
bmdlSWNlU3RhdGUoSWNlU3RhdGUgaWNlU3RhdGUpCi17Ci0gICAgaWYgKGljZVN0YXRlID09IG1f
aWNlU3RhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1faWNlU3RhdGUgPSBpY2VTdGF0ZTsK
LSAgICBkaXNwYXRjaEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnN0YXRlY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTA3OGM0ZDcwNTdjM2Y5N2UwNzk5YTBlZWQyM2Y2NDcyYmViNWRjMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDAuaAorKysgL2Rldi9udWxsCkBA
IC0xLDE3OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0g
KiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQZWVyQ29ubmVjdGlvbjAwX2gKLSNkZWZp
bmUgUGVlckNvbm5lY3Rpb24wMF9oCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5j
bHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCi0jaW5jbHVkZSAiRGljdGlvbmFyeS5oIgotI2luY2x1
ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQmFzZS5oIgotI2luY2x1ZGUg
IkljZUNhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKLSNpbmNsdWRlICJNZWRp
YVN0cmVhbUxpc3QuaCIKLSNpbmNsdWRlICJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oIgotI2lu
Y2x1ZGUgIlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2Vzc2lv
bkRlc2NyaXB0aW9uLmgiCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1jbGFzcyBNZWRpYUhpbnRzOwotY2xhc3MgSWNlT3B0aW9uczsKLQotLy8gTm90ZToKLS8vIFNE
UCBzdGFuZHMgZm9yIFNlc3Npb24gRGVzY3JpcHRpb24gUHJvdG9jb2wsIHdoaWNoIGlzIGludGVu
ZGVkIGZvciBkZXNjcmliaW5nCi0vLyBtdWx0aW1lZGlhIHNlc3Npb25zIGZvciB0aGUgcHVycG9z
ZXMgb2Ygc2Vzc2lvbiBhbm5vdW5jZW1lbnQsIHNlc3Npb24KLS8vIGludml0YXRpb24sIGFuZCBv
dGhlciBmb3JtcyBvZiBtdWx0aW1lZGlhIHNlc3Npb24gaW5pdGlhdGlvbi4KLS8vCi0vLyBNb3Jl
IGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBoZXJlOgotLy8gaHR0cDovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvcmZjNDU2NgotLy8gaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9TZXNzaW9uX0Rl
c2NyaXB0aW9uX1Byb3RvY29sCi0KLWNsYXNzIFBlZXJDb25uZWN0aW9uMDAgOiBwdWJsaWMgUmVm
Q291bnRlZDxQZWVyQ29ubmVjdGlvbjAwPiwgcHVibGljIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVy
Q2xpZW50LCBwdWJsaWMgRXZlbnRUYXJnZXQsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgewotcHVi
bGljOgotICAgIGVudW0gUmVhZHlTdGF0ZSB7Ci0gICAgICAgIE5FVyA9IDAsCi0gICAgICAgIE9Q
RU5JTkcgPSAxLAotICAgICAgICBBQ1RJVkUgPSAyLAotICAgICAgICBDTE9TRUQgPSAzCi0gICAg
fTsKLQotICAgIGVudW0gQWN0aW9uIHsKLSAgICAgICAgU0RQX09GRkVSID0gMHgxMDAsCi0gICAg
ICAgIFNEUF9QUkFOU1dFUiA9IDB4MjAwLAotICAgICAgICBTRFBfQU5TV0VSID0gMHgzMDAKLSAg
ICB9OwotCi0gICAgZW51bSBJY2VTdGF0ZSB7Ci0gICAgICAgIElDRV9HQVRIRVJJTkcgPSAweDEw
MCwKLSAgICAgICAgSUNFX1dBSVRJTkcgPSAweDIwMCwKLSAgICAgICAgSUNFX0NIRUNLSU5HID0g
MHgzMDAsCi0gICAgICAgIElDRV9DT05ORUNURUQgPSAweDQwMCwKLSAgICAgICAgSUNFX0NPTVBM
RVRFRCA9IDB4NTAwLAotICAgICAgICBJQ0VfRkFJTEVEID0gMHg2MDAsCi0gICAgICAgIElDRV9D
TE9TRUQgPSAweDcwMAotICAgIH07Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQZWVyQ29ubmVj
dGlvbjAwPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgc2Vy
dmVyQ29uZmlndXJhdGlvbiwgUGFzc1JlZlB0cjxJY2VDYWxsYmFjaz4sIEV4Y2VwdGlvbkNvZGUm
KTsKLSAgICB+UGVlckNvbm5lY3Rpb24wMCgpOwotCi0gICAgUGFzc1JlZlB0cjxTZXNzaW9uRGVz
Y3JpcHRpb24+IGNyZWF0ZU9mZmVyKEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPFNl
c3Npb25EZXNjcmlwdGlvbj4gY3JlYXRlT2ZmZXIoY29uc3QgRGljdGlvbmFyeSYgbWVkaWFIaW50
cywgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBj
cmVhdGVBbnN3ZXIoY29uc3QgU3RyaW5nJiBvZmZlciwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBh
c3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBjcmVhdGVBbnN3ZXIoY29uc3QgU3RyaW5nJiBv
ZmZlciwgY29uc3QgRGljdGlvbmFyeSYgbWVkaWFIaW50cywgRXhjZXB0aW9uQ29kZSYpOwotCi0g
ICAgdm9pZCBzZXRMb2NhbERlc2NyaXB0aW9uKGludCBhY3Rpb24sIFBhc3NSZWZQdHI8U2Vzc2lv
bkRlc2NyaXB0aW9uPiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc2V0UmVtb3RlRGVzY3Jp
cHRpb24oaW50IGFjdGlvbiwgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb24+LCBFeGNlcHRp
b25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb24+IGxvY2FsRGVzY3Jp
cHRpb24oKTsKLSAgICBQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4gcmVtb3RlRGVzY3Jp
cHRpb24oKTsKLQotICAgIHZvaWQgc3RhcnRJY2UoRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQg
c3RhcnRJY2UoY29uc3QgRGljdGlvbmFyeSYgaWNlT3B0aW9ucywgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIHZvaWQgcHJvY2Vzc0ljZU1lc3NhZ2UoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGU+LCBFeGNl
cHRpb25Db2RlJik7Ci0KLSAgICBJY2VTdGF0ZSBpY2VTdGF0ZSgpIGNvbnN0OwotICAgIFJlYWR5
U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwotCi0gICAgdm9pZCBhZGRTdHJlYW0oY29uc3QgUGFz
c1JlZlB0cjxNZWRpYVN0cmVhbT4sIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIGFkZFN0cmVh
bShjb25zdCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtPiwgY29uc3QgRGljdGlvbmFyeSYgbWVkaWFT
dHJlYW1IaW50cywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgcmVtb3ZlU3RyZWFtKE1lZGlh
U3RyZWFtKiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIE1lZGlhU3RyZWFtTGlzdCogbG9jYWxTdHJl
YW1zKCkgY29uc3Q7Ci0gICAgTWVkaWFTdHJlYW1MaXN0KiByZW1vdGVTdHJlYW1zKCkgY29uc3Q7
Ci0KLSAgICB2b2lkIGNsb3NlKEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIERFRklORV9BVFRSSUJV
VEVfRVZFTlRfTElTVEVORVIoY29ubmVjdGluZyk7Ci0gICAgREVGSU5FX0FUVFJJQlVURV9FVkVO
VF9MSVNURU5FUihvcGVuKTsKLSAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKHN0
YXRlY2hhbmdlKTsKLSAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGFkZHN0cmVh
bSk7Ci0gICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihyZW1vdmVzdHJlYW0pOwot
Ci0gICAgLy8gUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkR2VuZXJhdGVJY2VDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
PiwgYm9vbCBtb3JlVG9Gb2xsb3cpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VSZWFkeVN0YXRlKHVpbnQzMl90IHN0YXRlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlSWNlU3RhdGUodWludDMyX3Qgc3RhdGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRSZW1vdGVTdHJlYW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlh
U3RyZWFtRGVzY3JpcHRvciopIE9WRVJSSURFOwotCi0gICAgLy8gRXZlbnRUYXJnZXQKLSAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgaW50ZXJmYWNlTmFtZSgpIGNvbnN0IE9WRVJSSURF
OwotICAgIHZpcnR1YWwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpIGNvbnN0IE9WRVJSSURFOwotCi0gICAgLy8gQWN0aXZlRE9NT2JqZWN0Ci0gICAgdmly
dHVhbCB2b2lkIHN0b3AoKSBPVkVSUklERTsKLQotICAgIHVzaW5nIFJlZkNvdW50ZWQ8UGVlckNv
bm5lY3Rpb24wMD46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPFBlZXJDb25uZWN0aW9uMDA+
OjpkZXJlZjsKLQotcHJpdmF0ZToKLSAgICBQZWVyQ29ubmVjdGlvbjAwKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqLCBjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24sIFBhc3NSZWZQdHI8
SWNlQ2FsbGJhY2s+KTsKLQotICAgIC8vIEV2ZW50VGFyZ2V0IGltcGxlbWVudGF0aW9uLgotICAg
IHZpcnR1YWwgRXZlbnRUYXJnZXREYXRhKiBldmVudFRhcmdldERhdGEoKTsKLSAgICB2aXJ0dWFs
IEV2ZW50VGFyZ2V0RGF0YSogZW5zdXJlRXZlbnRUYXJnZXREYXRhKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHJlZkV2ZW50VGFyZ2V0KCkgeyByZWYoKTsgfQotICAgIHZpcnR1YWwgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgeyBkZXJlZigpOyB9Ci0gICAgRXZlbnRUYXJnZXREYXRhIG1fZXZlbnRUYXJn
ZXREYXRhOwotCi0gICAgdm9pZCBjaGFuZ2VSZWFkeVN0YXRlKFJlYWR5U3RhdGUpOwotICAgIHZv
aWQgY2hhbmdlSWNlU3RhdGUoSWNlU3RhdGUpOwotCi0gICAgYm9vbCBoYXNMb2NhbEF1ZGlvVHJh
Y2soKTsKLSAgICBib29sIGhhc0xvY2FsVmlkZW9UcmFjaygpOwotICAgIFBhc3NSZWZQdHI8TWVk
aWFIaW50cz4gY3JlYXRlTWVkaWFIaW50cyhjb25zdCBEaWN0aW9uYXJ5Jik7Ci0gICAgUGFzc1Jl
ZlB0cjxNZWRpYUhpbnRzPiBjcmVhdGVNZWRpYUhpbnRzKCk7Ci0gICAgUGFzc1JlZlB0cjxJY2VP
cHRpb25zPiBjcmVhdGVJY2VPcHRpb25zKGNvbnN0IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2Rl
Jik7Ci0gICAgUGFzc1JlZlB0cjxJY2VPcHRpb25zPiBjcmVhdGVEZWZhdWx0SWNlT3B0aW9ucygp
OwotICAgIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBjcmVhdGVPZmZlcihQYXNzUmVm
UHRyPE1lZGlhSGludHM+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9u
RGVzY3JpcHRpb24+IGNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcmIG9mZmVyLCBQYXNzUmVmUHRy
PE1lZGlhSGludHM+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzdGFydEljZShQYXNzUmVm
UHRyPEljZU9wdGlvbnM+LCBFeGNlcHRpb25Db2RlJik7Ci0KLSAgICBSZWZQdHI8SWNlQ2FsbGJh
Y2s+IG1faWNlQ2FsbGJhY2s7Ci0KLSAgICBSZWFkeVN0YXRlIG1fcmVhZHlTdGF0ZTsKLSAgICBJ
Y2VTdGF0ZSBtX2ljZVN0YXRlOwotCi0gICAgUmVmUHRyPE1lZGlhU3RyZWFtTGlzdD4gbV9sb2Nh
bFN0cmVhbXM7Ci0gICAgUmVmUHRyPE1lZGlhU3RyZWFtTGlzdD4gbV9yZW1vdGVTdHJlYW1zOwot
Ci0gICAgT3duUHRyPFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyPiBtX3BlZXJIYW5kbGVyOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2VuZGlmIC8vIFBlZXJDb25uZWN0aW9uMDBfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4ZGQxYzc5MDZhNzg3NTI0N2UzMmY3OTU1OTViNTg3ZGRj
ZWVjNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwLmlkbAorKysg
L2Rldi9udWxsCkBAIC0xLDEwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMu
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29u
dHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0g
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIENvbmRpdGlvbmFsPU1F
RElBX1NUUkVBTSwKLSAgICBBY3RpdmVET01PYmplY3QsCi0gICAgQ29uc3RydWN0b3IoaW4gRE9N
U3RyaW5nIHNlcnZlckNvbmZpZ3VyYXRpb24sIGluIFtDYWxsYmFja10gSWNlQ2FsbGJhY2sgaWNl
Q2FsbGJhY2spLAotICAgIENhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsCi0gICAgQ29u
c3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCi0gICAgRXZlbnRUYXJnZXQKLV0gaW50ZXJmYWNlIFBl
ZXJDb25uZWN0aW9uMDAgewotICAgIFNlc3Npb25EZXNjcmlwdGlvbiBjcmVhdGVPZmZlcihpbiBb
T3B0aW9uYWxdIERpY3Rpb25hcnkgbWVkaWFIaW50cykKLSAgICAgICAgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7Ci0gICAgU2Vzc2lvbkRlc2NyaXB0aW9uIGNyZWF0ZUFuc3dlcihpbiBET01TdHJpbmcg
b2ZmZXIsIGluIFtPcHRpb25hbF0gRGljdGlvbmFyeSBtZWRpYUhpbnRzKQotICAgICAgICByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLQotICAgIC8vIEFjdGlvbnMsIGZvciBzZXRMb2NhbERlc2NyaXB0
aW9uL3NldFJlbW90ZURlc2NyaXB0aW9uLgotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNEUF9P
RkZFUiA9IDB4MTAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNEUF9QUkFOU1dFUiA9IDB4
MjAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNEUF9BTlNXRVIgPSAweDMwMDsKLQotICAg
IHZvaWQgc2V0TG9jYWxEZXNjcmlwdGlvbihpbiB1bnNpZ25lZCBzaG9ydCBhY3Rpb24sIGluIFNl
c3Npb25EZXNjcmlwdGlvbiBkZXNjKQotICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAg
ICB2b2lkIHNldFJlbW90ZURlc2NyaXB0aW9uKGluIHVuc2lnbmVkIHNob3J0IGFjdGlvbiwgaW4g
U2Vzc2lvbkRlc2NyaXB0aW9uIGRlc2MpCi0gICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwot
Ci0gICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlc3Npb25EZXNjcmlwdGlvbiBsb2NhbERlc2NyaXB0
aW9uOwotICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXNzaW9uRGVzY3JpcHRpb24gcmVtb3RlRGVz
Y3JpcHRpb247Ci0KLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBORVcgPSAwOwotICAgIGNvbnN0
IHVuc2lnbmVkIHNob3J0IE9QRU5JTkcgPSAxOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IEFD
VElWRSA9IDI7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ0xPU0VEID0gMzsKLSAgICByZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgcmVhZHlTdGF0ZTsKLQotICAgIHZvaWQgc3Rh
cnRJY2UoaW4gW09wdGlvbmFsXSBEaWN0aW9uYXJ5IGljZU9wdGlvbnMpCi0gICAgICAgIHJhaXNl
cyhET01FeGNlcHRpb24pOwotCi0gICAgdm9pZCBwcm9jZXNzSWNlTWVzc2FnZShpbiBJY2VDYW5k
aWRhdGUgY2FuZGlkYXRlKQotICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLQotICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IElDRV9HQVRIRVJJTkcgPSAweDEwMDsKLSAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBJQ0VfV0FJVElORyA9IDB4MjAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0
IElDRV9DSEVDS0lORyA9IDB4MzAwOwotICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IElDRV9DT05O
RUNURUQgPSAweDQwMDsKLSAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBJQ0VfQ09NUExFVEVEID0g
MHg1MDA7Ci0gICAgY29uc3QgdW5zaWduZWQgc2hvcnQgSUNFX0ZBSUxFRCA9IDB4NjAwOwotICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IElDRV9DTE9TRUQgPSAweDcwMDsKLSAgICByZWFkb25seSBh
dHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgaWNlU3RhdGU7Ci0KLSAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkIGFkZFN0cmVhbShpbiBNZWRpYVN0cmVhbSBzdHJlYW0sIGluIFtPcHRpb25hbF0g
RGljdGlvbmFyeSBtZWRpYVN0cmVhbUhpbnRzKQotICAgICAgICByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlbW92ZVN0cmVhbShpbiBNZWRpYVN0
cmVhbSBzdHJlYW0pCi0gICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgcmVhZG9u
bHkgYXR0cmlidXRlIE1lZGlhU3RyZWFtTGlzdCBsb2NhbFN0cmVhbXM7Ci0gICAgcmVhZG9ubHkg
YXR0cmlidXRlIE1lZGlhU3RyZWFtTGlzdCByZW1vdGVTdHJlYW1zOwotCi0gICAgdm9pZCBjbG9z
ZSgpCi0gICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0gICAgYXR0cmlidXRlIEV2ZW50
TGlzdGVuZXIgb25jb25uZWN0aW5nOwotICAgIGF0dHJpYnV0ZSBFdmVudExpc3RlbmVyIG9ub3Bl
bjsKLSAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbnN0YXRlY2hhbmdlOwotICAgIGF0dHJp
YnV0ZSBFdmVudExpc3RlbmVyIG9uYWRkc3RyZWFtOwotICAgIGF0dHJpYnV0ZSBFdmVudExpc3Rl
bmVyIG9ucmVtb3Zlc3RyZWFtOwotCi0gICAgLy8gRXZlbnRUYXJnZXQgaW50ZXJmYWNlCi0gICAg
dm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgdm9pZCByZW1v
dmVFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBFdmVudExpc3RlbmVyIGxpc3RlbmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbiBbT3B0aW9uYWxdIGJvb2xlYW4gdXNlQ2FwdHVyZSk7Ci0gICAgYm9vbGVhbiBk
aXNwYXRjaEV2ZW50KGluIEV2ZW50IGV2ZW50KQotICAgICAgICByYWlzZXMoRXZlbnRFeGNlcHRp
b24pOwotfTsKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxYjJkNjRhMWZhMGFkNGQyMmVkY2Y4ZjU0ZGE5Nzk4OTc1M2I0ZjA4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDg3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgot
ICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhp
cwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jaW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uLmgiCi0KLSNpbmNsdWRlICJF
eGNlcHRpb25Db2RlLmgiCi0jaW5jbHVkZSAiSWNlQ2FuZGlkYXRlLmgiCi0jaW5jbHVkZSAiSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtQ2VudGVyLmgiCi0j
aW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBTZXNzaW9uRGVzY3JpcHRp
b246OmNyZWF0ZShjb25zdCBTdHJpbmcmIHNkcCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFNlc3Npb25EZXNjcmlwdGlvbihTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpjcmVhdGUo
c2RwKSkpOwotfQotCi1QYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4gU2Vzc2lvbkRlc2Ny
aXB0aW9uOjpjcmVhdGUoUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBk
ZXNjcmlwdG9yKQotewotICAgIEFTU0VSVCghIWRlc2NyaXB0b3IpOwotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2Vzc2lvbkRlc2NyaXB0aW9uKGRlc2NyaXB0b3IpKTsKLX0KLQotU2Vzc2lvbkRl
c2NyaXB0aW9uOjpTZXNzaW9uRGVzY3JpcHRpb24oUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yPiBkZXNjcmlwdG9yKQotICAgIDogbV9kZXNjcmlwdG9yKGRlc2NyaXB0b3Ip
Ci17Ci19Ci0KLVNlc3Npb25EZXNjcmlwdGlvbjo6flNlc3Npb25EZXNjcmlwdGlvbigpCi17Ci19
Ci0KLXZvaWQgU2Vzc2lvbkRlc2NyaXB0aW9uOjphZGRDYW5kaWRhdGUoUGFzc1JlZlB0cjxJY2VD
YW5kaWRhdGU+IGNhbmRpZGF0ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFjYW5k
aWRhdGUpIHsKLSAgICAgICAgZWMgPSBUWVBFX01JU01BVENIX0VSUjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIG1fZGVzY3JpcHRvci0+YWRkQ2FuZGlkYXRlKGNhbmRpZGF0ZS0+ZGVz
Y3JpcHRvcigpKTsKLX0KLQotU3RyaW5nIFNlc3Npb25EZXNjcmlwdGlvbjo6dG9TZHAoKQotewot
ICAgIHJldHVybiBtX2Rlc2NyaXB0b3ItPnRvU0RQKCk7Ci19Ci0KLVNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IqIFNlc3Npb25EZXNjcmlwdGlvbjo6ZGVzY3JpcHRvcigpCi17Ci0gICAgcmV0
dXJuIG1fZGVzY3JpcHRvci5nZXQoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBmOGY5MmNiYTk2MzhjZTg3MjE0OWFkYzU5MWMxMTFhZTBhODlkMzVi
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0
b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBTZXNzaW9uRGVzY3JpcHRpb25f
aAotI2RlZmluZSBTZXNzaW9uRGVzY3JpcHRpb25faAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkJhc2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSWNlQ2FuZGlkYXRlOwot
Y2xhc3MgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjsKLQotY2xhc3MgU2Vzc2lvbkRlc2Ny
aXB0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvbkRlc2NyaXB0aW9uPiB7Ci1wdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBzZHApOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbj4g
Y3JlYXRlKFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pOwotICAgIHZp
cnR1YWwgflNlc3Npb25EZXNjcmlwdGlvbigpOwotCi0gICAgdm9pZCBhZGRDYW5kaWRhdGUoUGFz
c1JlZlB0cjxJY2VDYW5kaWRhdGU+LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgU3RyaW5nIHRvU2Rw
KCk7Ci0KLSAgICBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKiBkZXNjcmlwdG9yKCk7Ci0K
LXByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Vzc2lvbkRlc2NyaXB0aW9uKFBhc3NSZWZQdHI8U2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pOwotCi0gICAgUmVmUHRyPFNlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3I+IG1fZGVzY3JpcHRvcjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBTZXNzaW9u
RGVzY3JpcHRpb25faApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA2MDFkOTc4NTQ4MmI0MzE0N2U0MzA5YjQzZTU1NmFiMjY0MGM0MTFjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbAorKysgL2Rldi9udWxsCkBAIC0x
LDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAg
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20g
dGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
ICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQ29uZGl0aW9uYWw9TUVESUFfU1RSRUFNLAotICAg
IENvbnN0cnVjdG9yKGluIERPTVN0cmluZyBzZHApCi1dIGludGVyZmFjZSBTZXNzaW9uRGVzY3Jp
cHRpb24gewotICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgYWRkQ2FuZGlkYXRlKGluIElj
ZUNhbmRpZGF0ZSBjYW5kaWRhdGUpCi0gICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwotCi0g
ICAgRE9NU3RyaW5nIHRvU2RwKCk7Ci19OwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggOGJkMWZjNGNk
YzNjZTRhMzVmNjYzYmZhYjg0NWE1ZmI5ZmE1NmVkNy4uNTdlNWE4OGNhNjVlOTBiNmEyMjYzM2Fk
NDlhNzAyNDdmMzdiYjBlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDQzLDIxICs0NDMsMTMgQEAK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9tYWMvV2ViQ29yZVZpZXcuaCcsCiAgICAgICAgICAgICAncGxh
dGZvcm0vbWFjL1dlYkZvbnRDYWNoZS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
bWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oJywKLSAgICAgICAgICAgICdwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9JY2VPcHRpb25zLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
bWVkaWFzdHJlYW0vSWNlT3B0aW9ucy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9NZWRpYUNvbnN0cmFpbnRzLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhSGludHMuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYUhpbnRzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtQ2VudGVyLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1DZW50ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1Db21wb25lbnQuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtU291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFTdHJlYW1Tb3VyY2UuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbWVk
aWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCcsCiAgICAgICAgICAgICAn
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUlRDQ29uZmlndXJhdGlvbi5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbERlc2NyaXB0b3IuY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbERlc2NyaXB0b3IuaCcs
CkBAIC00NzAsMTMgKzQ2Miw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0v
UlRDU2Vzc2lvbkRlc2NyaXB0aW9uUmVxdWVzdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SVENTdGF0c1JlcXVlc3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3QuaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFz
dHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAnLAotICAgICAgICAgICAgJ3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJD
aHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVt
L01lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0uaCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbWVk
aWFzdHJlYW0vY2hyb21pdW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuY3BwJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ckludGVybmFsLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbC5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9SVENQZWVyQ29ubmVjdGlvbkhhbmRsZXJDaHJvbWl1
bS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1JUQ1Bl
ZXJDb25uZWN0aW9uSGFuZGxlckNocm9taXVtLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21v
Y2svRGV2aWNlTW90aW9uQ2xpZW50TW9jay5oJywKQEAgLTg1Niw4ICs4NDMsNiBAQAogICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXJMaXN0LmlkbCcsCiAgICAgICAgICAg
ICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9ET01XaW5kb3dNZWRpYVN0cmVhbS5pZGwnLAotICAgICAg
ICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vSWNlQ2FsbGJhY2suaWRsJywKLSAgICAgICAgICAg
ICdNb2R1bGVzL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZS5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vTG9jYWxNZWRpYVN0cmVhbS5pZGwnLAogICAgICAgICAgICAgJ01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uaWRsJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuaWRsJywKQEAgLTg2OSw3ICs4NTQsNiBAQAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTmF2aWdhdG9yVXNlck1lZGlhRXJyb3Iu
aWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRp
YUVycm9yQ2FsbGJhY2suaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05h
dmlnYXRvclVzZXJNZWRpYVN1Y2Nlc3NDYWxsYmFjay5pZGwnLAotICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMC5pZGwnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0RhdGFDaGFubmVsRXZlbnQuaWRsJywKICAgICAgICAgICAgICdNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ0Vycm9yQ2FsbGJhY2suaWRsJywKQEAgLTg4Miw3ICs4NjYsNiBA
QAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNFbGVtZW50LmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENTdGF0c1JlcG9ydC5pZGwnLAog
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDU3RhdHNSZXNwb25zZS5pZGwnLAot
ICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLmlkbCcs
CiAgICAgICAgICAgICAnTW9kdWxlcy9uYXZpZ2F0b3Jjb250ZW50dXRpbHMvTmF2aWdhdG9yQ29u
dGVudFV0aWxzLmlkbCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdp
bmRvd05vdGlmaWNhdGlvbnMuaWRsJywKICAgICAgICAgICAgICdNb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmlkbCcsCkBAIC0xNTg5LDkgKzE1NzIsNiBAQAogICAgICAgICAgICAg
J01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5jcHAnLAogICAgICAgICAgICAgJ01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyTGlzdC5oJywKLSAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL0ljZUNhbGxiYWNrLmgnLAotICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFz
dHJlYW0vSWNlQ2FuZGlkYXRlLmNwcCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVh
bS9JY2VDYW5kaWRhdGUuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9Mb2Nh
bE1lZGlhU3RyZWFtLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9Mb2Nh
bE1lZGlhU3RyZWFtLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFD
b25zdHJhaW50c0ltcGwuY3BwJywKQEAgLTE2MTUsOCArMTU5NSw2IEBACiAgICAgICAgICAgICAn
TW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFFcnJvci5oJywKICAgICAgICAg
ICAgICdNb2R1bGVzL21lZGlhc3RyZWFtL05hdmlnYXRvclVzZXJNZWRpYUVycm9yQ2FsbGJhY2su
aCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9OYXZpZ2F0b3JVc2VyTWVkaWFT
dWNjZXNzQ2FsbGJhY2suaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbjAwLmNwcCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9QZWVy
Q29ubmVjdGlvbjAwLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0
YUNoYW5uZWwuaCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbC5jcHAnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5u
ZWxFdmVudC5oJywKQEAgLTE2NDMsOCArMTYyMSw2IEBACiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENTdGF0c1Jlc3BvbnNlLmgnLAogICAgICAgICAgICAgJ01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDVm9pZFJlcXVlc3RJbXBsLmNwcCcsCiAgICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENWb2lkUmVxdWVzdEltcGwuaCcsCi0gICAgICAgICAgICAnTW9kdWxlcy9t
ZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24uY3BwJywKLSAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5oJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNsaWVudC5oJywKICAgICAgICAgICAgICdNb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuY3BwJywKICAgICAgICAgICAgICdNb2R1bGVz
L21lZGlhc3RyZWFtL1VzZXJNZWRpYUNvbnRyb2xsZXIuaCcsCkBAIC04NDExLDEwICs4Mzg3LDcg
QEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkZsaW5nQW5pbWF0
b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViSFRUUExvYWRJbmZvLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCcsCi0gICAgICAg
ICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJJQ0VPcHRpb25zLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNw
cCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUhpbnRz
LmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0
cmVhbUNvbXBvbmVudC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
Y2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYVN0cmVhbVNvdXJjZS5jcHAnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5jcHAKaW5kZXggMDIwYTc1NmFiZTk3ODg3NzU3YTY0ZWJkNTYzNWY1Mjc3N2MwMjk5Ni4uZDZh
NWY5MmM5MzMzNjUzMDQyYjNhNDgwYzIxMTFlNTA2MDEzNzMwMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwCkBAIC02NCw3ICs2NCw2IEBAIGJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNTY3Jp
cHRlZFNwZWVjaEVuYWJsZWQgPSBmYWxzZTsKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogYm9v
bCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc01lZGlhU3RyZWFtRW5hYmxlZCA9IHRydWU7CiBi
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzUGVlckNvbm5lY3Rpb25FbmFibGVkID0gdHJ1
ZTsKLWJvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6aXNEZXByZWNhdGVkUGVlckNvbm5lY3Rp
b25FbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShHQU1FUEFEKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaAppbmRleCBiZGNkNzQwNDRhMzMwM2M4MDE5NGY0OTJjMzE4NDhkOWFjY2Y0MjE4Li4y
YzI0ODY5ZWIyMjc3NGY3OGNjNjAxMzBkY2Q4MzMzNGIyZDY5MjJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aApAQCAtMTc2LDkgKzE3Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBib29sIHBlZXJDb25u
ZWN0aW9uRW5hYmxlZCgpIHsgcmV0dXJuIGlzTWVkaWFTdHJlYW1FbmFibGVkICYmIGlzUGVlckNv
bm5lY3Rpb25FbmFibGVkOyB9CiAgICAgc3RhdGljIHZvaWQgc2V0UGVlckNvbm5lY3Rpb25FbmFi
bGVkKGJvb2wgaXNFbmFibGVkKSB7IGlzUGVlckNvbm5lY3Rpb25FbmFibGVkID0gaXNFbmFibGVk
OyB9Ci0gICAgc3RhdGljIGJvb2wgZGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uRW5hYmxlZCgpIHsg
cmV0dXJuIGlzTWVkaWFTdHJlYW1FbmFibGVkICYmIGlzRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9u
RW5hYmxlZDsgfQotICAgIHN0YXRpYyB2b2lkIHNldERlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkVu
YWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNEZXByZWNhdGVkUGVlckNvbm5lY3Rpb25FbmFibGVk
ID0gaXNFbmFibGVkOyB9Ci0gICAgc3RhdGljIGJvb2wgd2Via2l0UGVlckNvbm5lY3Rpb24wMEVu
YWJsZWQoKSB7IHJldHVybiBkZXByZWNhdGVkUGVlckNvbm5lY3Rpb25FbmFibGVkKCk7IH0KICAg
ICBzdGF0aWMgYm9vbCB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbkVuYWJsZWQoKSB7IHJldHVybiBw
ZWVyQ29ubmVjdGlvbkVuYWJsZWQoKTsgfQogI2VuZGlmCiAKQEAgLTI5Nyw3ICsyOTQsNiBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAgICAgc3RhdGljIGJvb2wgaXNNZWRp
YVN0cmVhbUVuYWJsZWQ7CiAgICAgc3RhdGljIGJvb2wgaXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQ7
Ci0gICAgc3RhdGljIGJvb2wgaXNEZXByZWNhdGVkUGVlckNvbm5lY3Rpb25FbmFibGVkOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoR0FNRVBBRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FdmVudFRhcmdldEZhY3RvcnkuaW4gYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZlbnRUYXJnZXRG
YWN0b3J5LmluCmluZGV4IDdlODhlYTQwOWIyMTM2ZGIwOGU0OGUwYzQ0NjRjYjE2MDgyYzU5YTcu
LmY5MGM4YmI1ZTM2NmRiYmM0NzJjM2Y5YzQ3NDNhM2I4OTJkY2U0ZDkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FdmVudFRhcmdldEZhY3RvcnkuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0V2ZW50VGFyZ2V0RmFjdG9yeS5pbgpAQCAtMjQsNyArMjQsNiBAQCBNZXNzYWdlUG9y
dAogTmV0d29ya0luZm9Db25uZWN0aW9uIGNvbmRpdGlvbmFsPU5FVFdPUktfSU5GTwogTm9kZQog
Tm90aWZpY2F0aW9uIGNvbmRpdGlvbmFsPU5PVElGSUNBVElPTlN8TEVHQUNZX05PVElGSUNBVElP
TlMKLVBlZXJDb25uZWN0aW9uMDAgY29uZGl0aW9uYWw9TUVESUFfU1RSRUFNCiBQZXJmb3JtYW5j
ZSBjb25kaXRpb25hbD1XRUJfVElNSU5HCiBSVENEYXRhQ2hhbm5lbCBjb25kaXRpb25hbD1NRURJ
QV9TVFJFQU0KIFJUQ1BlZXJDb25uZWN0aW9uIGNvbmRpdGlvbmFsPU1FRElBX1NUUkVBTQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJJQ0VD
YW5kaWRhdGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L3N1cHBvcnQvV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDA0Yjg3YjQ0MGMzMjNmZWFhNWU0NjVkODk4ZmVmZTcxNTVhMWMwOTkuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDg5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8cHVibGljL1dlYklDRUNhbmRpZGF0
ZURlc2NyaXB0b3IuaD4KLQotI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKLSNp
bmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwot
Ci1uYW1lc3BhY2UgV2ViS2l0IHsKLQotV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjo6V2ViSUNF
Q2FuZGlkYXRlRGVzY3JpcHRvcihJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBpY2VDYW5kaWRhdGUp
Ci0gICAgOiBtX3ByaXZhdGUoaWNlQ2FuZGlkYXRlKQotewotfQotCi1XZWJJQ0VDYW5kaWRhdGVE
ZXNjcmlwdG9yOjpXZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yKFBhc3NSZWZQdHI8SWNlQ2FuZGlk
YXRlRGVzY3JpcHRvcj4gaWNlQ2FuZGlkYXRlKQotICAgIDogbV9wcml2YXRlKGljZUNhbmRpZGF0
ZSkKLXsKLX0KLQotdm9pZCBXZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yOjphc3NpZ24oY29uc3Qg
V2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYgb3RoZXIpCi17Ci0gICAgbV9wcml2YXRlID0gb3Ro
ZXIubV9wcml2YXRlOwotfQotCi12b2lkIFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3I6OnJlc2V0
KCkKLXsKLSAgICBtX3ByaXZhdGUucmVzZXQoKTsKLX0KLQotdm9pZCBXZWJJQ0VDYW5kaWRhdGVE
ZXNjcmlwdG9yOjppbml0aWFsaXplKGNvbnN0IFdlYlN0cmluZyYgbGFiZWwsIGNvbnN0IFdlYlN0
cmluZyYgY2FuZGlkYXRlTGluZSkKLXsKLSAgICBtX3ByaXZhdGUgPSBJY2VDYW5kaWRhdGVEZXNj
cmlwdG9yOjpjcmVhdGUobGFiZWwsIGNhbmRpZGF0ZUxpbmUpOwotfQotCi1XZWJJQ0VDYW5kaWRh
dGVEZXNjcmlwdG9yOjpvcGVyYXRvciBQYXNzUmVmUHRyPFdlYkNvcmU6OkljZUNhbmRpZGF0ZURl
c2NyaXB0b3I+KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwotfQotCi1X
ZWJTdHJpbmcgV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjo6bGFiZWwoKSBjb25zdAotewotICAg
IEFTU0VSVCghbV9wcml2YXRlLmlzTnVsbCgpKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgp
LT5sYWJlbCgpOwotfQotCi1XZWJTdHJpbmcgV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvcjo6Y2Fu
ZGlkYXRlTGluZSgpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUuaXNOdWxsKCkpOwot
ICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPmNhbmRpZGF0ZUxpbmUoKTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYklDRU9w
dGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJJ
Q0VPcHRpb25zLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTgwODA5YTIwZTU0
YzI5YWRmMjA1ZDk0Nzc0NGI0MjNlYmFmZGMxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYklDRU9wdGlvbnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBk
aXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDxw
dWJsaWMvV2ViSUNFT3B0aW9ucy5oPgotCi0jaW5jbHVkZSAiSWNlT3B0aW9ucy5oIgotCi11c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYklDRU9wdGlv
bnM6OldlYklDRU9wdGlvbnMoY29uc3QgUGFzc1JlZlB0cjxJY2VPcHRpb25zPiYgbWVkaWFIaW50
cykKLSAgICA6IG1fcHJpdmF0ZShtZWRpYUhpbnRzKQotewotfQotCi12b2lkIFdlYklDRU9wdGlv
bnM6OmFzc2lnbihjb25zdCBXZWJJQ0VPcHRpb25zJiBvdGhlcikKLXsKLSAgICBtX3ByaXZhdGUg
PSBvdGhlci5tX3ByaXZhdGU7Ci19Ci0KLXZvaWQgV2ViSUNFT3B0aW9uczo6aW5pdGlhbGl6ZShD
YW5kaWRhdGVUeXBlIGNhbmRpZGF0ZVR5cGUpCi17Ci0gICAgQVNTRVJUKGlzTnVsbCgpKTsKLSAg
ICBtX3ByaXZhdGUgPSBJY2VPcHRpb25zOjpjcmVhdGUoc3RhdGljX2Nhc3Q8SWNlT3B0aW9uczo6
VXNlQ2FuZGlkYXRlc09wdGlvbj4oY2FuZGlkYXRlVHlwZSkpOwotfQotCi12b2lkIFdlYklDRU9w
dGlvbnM6OnJlc2V0KCkKLXsKLSAgICBtX3ByaXZhdGUucmVzZXQoKTsKLX0KLQotV2ViSUNFT3B0
aW9uczo6Q2FuZGlkYXRlVHlwZSBXZWJJQ0VPcHRpb25zOjpjYW5kaWRhdGVUeXBlVG9Vc2UoKSBj
b25zdAotewotICAgIEFTU0VSVCghaXNOdWxsKCkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
YW5kaWRhdGVUeXBlPihtX3ByaXZhdGUtPnVzZUNhbmRpZGF0ZXMoKSk7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9XZWJNZWRpYUhp
bnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViTWVk
aWFIaW50cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlOTcyN2FiMTI3YThk
MzI2OGQ0MzJjMGQyZGIwNWQwNTQ1NWQ4Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJNZWRpYUhpbnRzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc5ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1ldDoKLSAqCi0gKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogaW4gdGhlIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogZGlz
dHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
ICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8cHVi
bGljL1dlYk1lZGlhSGludHMuaD4KLQotI2luY2x1ZGUgIk1lZGlhSGludHMuaCIKLQotdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1XZWJNZWRpYUhpbnRz
OjpXZWJNZWRpYUhpbnRzKGNvbnN0IFBhc3NSZWZQdHI8TWVkaWFIaW50cz4mIG1lZGlhSGludHMp
Ci0gICAgOiBtX3ByaXZhdGUobWVkaWFIaW50cykKLXsKLX0KLQotdm9pZCBXZWJNZWRpYUhpbnRz
Ojphc3NpZ24oY29uc3QgV2ViTWVkaWFIaW50cyYgb3RoZXIpCi17Ci0gICAgbV9wcml2YXRlID0g
b3RoZXIubV9wcml2YXRlOwotfQotCi12b2lkIFdlYk1lZGlhSGludHM6OmluaXRpYWxpemUoYm9v
bCBhdWRpbywgYm9vbCB2aWRlbykKLXsKLSAgICBBU1NFUlQoaXNOdWxsKCkpOwotICAgIG1fcHJp
dmF0ZSA9IE1lZGlhSGludHM6OmNyZWF0ZShhdWRpbywgdmlkZW8pOwotfQotCi12b2lkIFdlYk1l
ZGlhSGludHM6OnJlc2V0KCkKLXsKLSAgICBtX3ByaXZhdGUucmVzZXQoKTsKLX0KLQotYm9vbCBX
ZWJNZWRpYUhpbnRzOjphdWRpbygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7Ci0g
ICAgcmV0dXJuIG1fcHJpdmF0ZS0+YXVkaW8oKTsKLX0KLQotYm9vbCBXZWJNZWRpYUhpbnRzOjp2
aWRlbygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFpc051bGwoKSk7Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZS0+dmlkZW8oKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9JY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3IuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMWYxYzYwZWI5NDk2NmY3YTkyYjFjZThiMmRmNTVkNjcx
ZWMxNWI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0ZURlc2NyaXB0b3Iu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24u
Ci0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yLmgiCi0KLSNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlci5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gSWNl
Q2FuZGlkYXRlRGVzY3JpcHRvcjo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbGFiZWwsIGNvbnN0IFN0
cmluZyYgY2FuZGlkYXRlTGluZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEljZUNhbmRp
ZGF0ZURlc2NyaXB0b3IobGFiZWwsIGNhbmRpZGF0ZUxpbmUpKTsKLX0KLQotSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvcjo6SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcmIGxhYmVsLCBj
b25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUpCi0gICAgOiBtX2xhYmVsKGxhYmVsKQotICAgICwg
bV9jYW5kaWRhdGVMaW5lKGNhbmRpZGF0ZUxpbmUpCi17Ci19Ci0KLUljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I6On5JY2VDYW5kaWRhdGVEZXNjcmlwdG9yKCkKLXsKLX0KLQotU3RyaW5nIEljZUNhbmRp
ZGF0ZURlc2NyaXB0b3I6OnRvU0RQKCkKLXsKLSAgICByZXR1cm4gTWVkaWFTdHJlYW1DZW50ZXI6
Omluc3RhbmNlKCkuY29uc3RydWN0U0RQKHRoaXMpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vSWNlQ2FuZGlkYXRlRGVzY3JpcHRv
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzc1NDkwN2EzNTUwOTRjZTdjNjdl
NzM0ZTM3YTEwMGE0ZDg5YWZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0ljZUNhbmRpZGF0
ZURlc2NyaXB0b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDYzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlz
dHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIEljZUNhbmRpZGF0ZURlc2NyaXB0b3JfaAotI2RlZmluZSBJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yX2gKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSWNlQ2FuZGlkYXRl
RGVzY3JpcHRvciA6IHB1YmxpYyBSZWZDb3VudGVkPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+IHsK
LXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiBsYWJlbCwgY29uc3QgU3RyaW5nJiBjYW5kaWRhdGVMaW5lKTsK
LSAgICB2aXJ0dWFsIH5JY2VDYW5kaWRhdGVEZXNjcmlwdG9yKCk7Ci0KLSAgICBjb25zdCBTdHJp
bmcmIGxhYmVsKCkgeyByZXR1cm4gbV9sYWJlbDsgfQotICAgIGNvbnN0IFN0cmluZyYgY2FuZGlk
YXRlTGluZSgpIHsgcmV0dXJuIG1fY2FuZGlkYXRlTGluZTsgfQotCi0gICAgU3RyaW5nIHRvU0RQ
KCk7Ci0KLXByaXZhdGU6Ci0gICAgSWNlQ2FuZGlkYXRlRGVzY3JpcHRvcihjb25zdCBTdHJpbmcm
IGxhYmVsLCBjb25zdCBTdHJpbmcmIGNhbmRpZGF0ZUxpbmUpOwotCi0gICAgU3RyaW5nIG1fbGFi
ZWw7Ci0gICAgU3RyaW5nIG1fY2FuZGlkYXRlTGluZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBJY2VD
YW5kaWRhdGVEZXNjcmlwdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL0ljZU9wdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vSWNlT3B0aW9ucy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVl
M2QyOWViYzgxM2RmYTUwNDIyOTE4ZGNjZmEzMjIzODQwMTgyOWMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vSWNlT3B0aW9ucy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUK
LSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2luY2x1ZGUgIkljZU9wdGlvbnMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzUmVm
UHRyPEljZU9wdGlvbnM+IEljZU9wdGlvbnM6OmNyZWF0ZShVc2VDYW5kaWRhdGVzT3B0aW9uIHVz
ZUNhbmRpZGF0ZXMpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJY2VPcHRpb25zKHVzZUNh
bmRpZGF0ZXMpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL0ljZU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL0ljZU9wdGlvbnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODdiNWRiMTgw
OGYwZmM2MDVkZGM2OGY4ODg1ZjFkMDI0ZDVmYjk4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9JY2VPcHRpb25zLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSAqICAgIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSAqICAgIGRp
c3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAgICBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKLSAqICAgIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0g
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBJY2VPcHRpb25zX2gKLSNkZWZpbmUgSWNlT3B0aW9uc19oCi0KLSNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEljZU9wdGlvbnMg
OiBwdWJsaWMgUmVmQ291bnRlZDxJY2VPcHRpb25zPiB7Ci1wdWJsaWM6Ci0gICAgZW51bSBVc2VD
YW5kaWRhdGVzT3B0aW9uIHsKLSAgICAgICAgQUxMLAotICAgICAgICBOT19SRUxBWSwKLSAgICAg
ICAgT05MWV9SRUxBWSwKLSAgICB9OwotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SWNlT3B0aW9u
cz4gY3JlYXRlKFVzZUNhbmRpZGF0ZXNPcHRpb24pOwotICAgIHZpcnR1YWwgfkljZU9wdGlvbnMo
KSB7IH0KLQotICAgIFVzZUNhbmRpZGF0ZXNPcHRpb24gdXNlQ2FuZGlkYXRlcygpIHsgcmV0dXJu
IG1fdXNlQ2FuZGlkYXRlczsgfQotCi0gcHJpdmF0ZToKLSAgICBleHBsaWNpdCBJY2VPcHRpb25z
KFVzZUNhbmRpZGF0ZXNPcHRpb24gdXNlQ2FuZGlkYXRlcykgOiBtX3VzZUNhbmRpZGF0ZXModXNl
Q2FuZGlkYXRlcykgeyB9Ci0KLSAgICBVc2VDYW5kaWRhdGVzT3B0aW9uIG1fdXNlQ2FuZGlkYXRl
czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBJY2VPcHRpb25zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhSGludHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFIaW50cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDRiYzU2OTVkOGNjYjZlZGY1OTlmOWE2OWI0ODdhZGViNzI2MTdhNTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFIaW50cy5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqICAgIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSAqICAgIGRpc3RyaWJ1dGlvbi4KLSAqIDMuIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCi0gKiAg
ICBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
IHRoaXMKLSAqICAgIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1F
RElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhSGludHMuaCIKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1QYXNzUmVmUHRyPE1lZGlhSGludHM+IE1lZGlhSGludHM6OmNyZWF0ZShib29sIGF1
ZGlvLCBib29sIHZpZGVvKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFIaW50cyhh
dWRpbywgdmlkZW8pKTsKLX0KLQotYm9vbCBNZWRpYUhpbnRzOjphdWRpbygpCi17Ci0gICAgcmV0
dXJuIG1fYXVkaW87Ci19Ci0KLWJvb2wgTWVkaWFIaW50czo6dmlkZW8oKQotewotICAgIHJldHVy
biBtX3ZpZGVvOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vTWVkaWFIaW50cy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vTWVkaWFIaW50cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDU1ZWI2ZGQ2
MWI3YjVmYjMxZWQ3NTVkZjkyZjM5NDkzMDI0YTAwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhSGludHMuaAorKysgL2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlz
dHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIE1lZGlhSGludHNfaAotI2RlZmluZSBNZWRpYUhpbnRzX2gKLQotI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgTWVkaWFIaW50cyA6
IHB1YmxpYyBSZWZDb3VudGVkPE1lZGlhSGludHM+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUhpbnRzPiBjcmVhdGUoYm9vbCBhdWRpbywgYm9vbCB2aWRlbyk7Ci0gICAg
dmlydHVhbCB+TWVkaWFIaW50cygpIHsgfQotCi0gICAgYm9vbCBhdWRpbygpOwotICAgIGJvb2wg
dmlkZW8oKTsKLQotIHByaXZhdGU6Ci0gICAgTWVkaWFIaW50cyhib29sIGF1ZGlvLCBib29sIHZp
ZGVvKSA6IG1fYXVkaW8oYXVkaW8pLCBtX3ZpZGVvKHZpZGVvKSB7IH0KLQotICAgIGJvb2wgbV9h
dWRpbzsKLSAgICBib29sIG1fdmlkZW87Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTWVkaWFIaW50c19o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1DZW50ZXIuaAppbmRleCA3NTUzNWRlYWI0NzkwMmM3ZWFhZWMyMjc0YWIzZDFhNWNjNGVk
Njc3Li5jMmMyMjFjOGM4MTA1M2M3YWZiMDgyYzZhZWFmNzEwMzczZDExZjk5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUNlbnRlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtQ2Vu
dGVyLmgKQEAgLTM5LDExICszOSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcjsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xh
c3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlD
bGllbnQ7Ci1jbGFzcyBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOwogCiBjbGFzcyBNZWRp
YVN0cmVhbUNlbnRlciB7CiBwdWJsaWM6CkBAIC02MSw4ICs1OSw2IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgZGlkUmVtb3ZlTWVkaWFTdHJlYW1UcmFjayhNZWRpYVN0cmVhbURlc2NyaXB0
b3IqLCBNZWRpYVN0cmVhbUNvbXBvbmVudCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3Rv
cExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1EZXNjcmlwdG9yKikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKSA9IDA7
Ci0gICAgdmlydHVhbCBTdHJpbmcgY29uc3RydWN0U0RQKEljZUNhbmRpZGF0ZURlc2NyaXB0b3Iq
KSA9IDA7Ci0gICAgdmlydHVhbCBTdHJpbmcgY29uc3RydWN0U0RQKFNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IqKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBNZWRpYVN0cmVhbUNlbnRlcigp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNv
bm5lY3Rpb24wMEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNjQ2ZTI3ZWEyYmU5ZTEwMTI4YzMyY2U0N2EwMmE4OTNkOTI1MDljLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDExNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBBQi4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRvcnMK
LSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCIK
LQotI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKLSNpbmNsdWRlICJJY2VPcHRp
b25zLmgiCi0jaW5jbHVkZSAiTWVkaWFIaW50cy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFtRGVz
Y3JpcHRvci5oIgotI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50LmgiCi0j
aW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLS8vIER1bW15IGltcGxlbWVudGF0aW9ucyBiZWxvdyBmb3IgcG9ydHMgdGhhdCBi
dWlsZCB3aXRoIE1FRElBX1NUUkVBTSBlbmFibGVkIGJ5IGRlZmF1bHQuCi0KLVBhc3NPd25QdHI8
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXI+IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyOjpjcmVhdGUo
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQqIGNsaWVudCwgY29uc3QgU3RyaW5nJiBzZXJ2
ZXJDb25maWd1cmF0aW9uLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKQotewotICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIoY2xpZW50LCBzZXJ2ZXJDb25maWd1
cmF0aW9uLCB1c2VybmFtZSkpOwotfQotCi1QZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjo6UGVlckNv
bm5lY3Rpb24wMEhhbmRsZXIoUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKLSAgICA6IG1fY2xpZW50KGNsaWVudCkKLXsK
LX0KLQotUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6On5QZWVyQ29ubmVjdGlvbjAwSGFuZGxlcigp
Ci17Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUGVlckNv
bm5lY3Rpb24wMEhhbmRsZXI6OmNyZWF0ZU9mZmVyKFBhc3NSZWZQdHI8TWVkaWFIaW50cz4pCi17
Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4gUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OmNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcm
LCBQYXNzUmVmUHRyPE1lZGlhSGludHM+KQotewotICAgIHJldHVybiAwOwotfQotCi1ib29sIFBl
ZXJDb25uZWN0aW9uMDBIYW5kbGVyOjpzZXRMb2NhbERlc2NyaXB0aW9uKGludCwgUGFzc1JlZlB0
cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KLWJvb2wgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OnNldFJlbW90ZURlc2NyaXB0aW9uKGlu
dCwgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPikKLXsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4g
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OmxvY2FsRGVzY3JpcHRpb24oKQotewotICAgIHJldHVy
biAwOwotfQotCi1QYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFBlZXJD
b25uZWN0aW9uMDBIYW5kbGVyOjpyZW1vdGVEZXNjcmlwdGlvbigpCi17Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWJvb2wgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OnN0YXJ0SWNlKFBhc3NSZWZQdHI8
SWNlT3B0aW9ucz4pCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFBlZXJDb25uZWN0
aW9uMDBIYW5kbGVyOjpwcm9jZXNzSWNlTWVzc2FnZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURl
c2NyaXB0b3I+KQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlv
bjAwSGFuZGxlcjo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikK
LXsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjo6cmVtb3ZlU3RyZWFtKFBhc3NS
ZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPikKLXsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlv
bjAwSGFuZGxlcjo6c3RvcCgpCi17Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTcwZjA2MjQ2YmIyMWNkZmYxNjcxZGYyMTgxYmQz
Y2M4NDUxZjdlOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9QZWVyQ29ubmVjdGlvbjAwSGFu
ZGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsODYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRp
b24uCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGVl
ckNvbm5lY3Rpb24wMEhhbmRsZXJfaAotI2RlZmluZSBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcl9o
Ci0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1EZXNj
cmlwdG9yLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwotY2xhc3MgSWNlT3B0aW9uczsKLWNs
YXNzIE1lZGlhSGludHM7Ci1jbGFzcyBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDsKLWNs
YXNzIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7Ci0KLSNpZiBQTEFURk9STShDSFJPTUlV
TSkKLWNsYXNzIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWw7Ci0jZW5kaWYKLQotY2xh
c3MgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBl
ZXJDb25uZWN0aW9uMDBIYW5kbGVyKTsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcj4gY3Jl
YXRlKFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50KiwgY29uc3QgU3RyaW5nJiBzZXJ2ZXJD
b25maWd1cmF0aW9uLCBjb25zdCBTdHJpbmcmIHVzZXJuYW1lKTsKLSAgICB+UGVlckNvbm5lY3Rp
b24wMEhhbmRsZXIoKTsKLQotICAgIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4gY3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxNZWRpYUhpbnRzPik7Ci0gICAgUGFzc1JlZlB0
cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBjcmVhdGVBbnN3ZXIoY29uc3QgU3RyaW5n
JiBvZmZlciwgUGFzc1JlZlB0cjxNZWRpYUhpbnRzPik7Ci0gICAgYm9vbCBzZXRMb2NhbERlc2Ny
aXB0aW9uKGludCBhY3Rpb24sIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cj4pOwotICAgIGJvb2wgc2V0UmVtb3RlRGVzY3JpcHRpb24oaW50IGFjdGlvbiwgUGFzc1JlZlB0
cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPik7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yPiBsb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgUGFzc1JlZlB0
cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpOwotICAg
IGJvb2wgc3RhcnRJY2UoUGFzc1JlZlB0cjxJY2VPcHRpb25zPik7Ci0gICAgYm9vbCBwcm9jZXNz
SWNlTWVzc2FnZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKLSAgICB2b2lk
IGFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pOwotICAgIHZvaWQg
cmVtb3ZlU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPik7Ci0gICAgdm9p
ZCBzdG9wKCk7Ci0KLXByaXZhdGU6Ci0gICAgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIoUGVlckNv
bm5lY3Rpb24wMEhhbmRsZXJDbGllbnQqLCBjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRp
b24sIGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpOwotCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0g
ICAgT3duUHRyPFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWw+IG1fcHJpdmF0ZTsKLSNl
bHNlCi0gICAgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQqIG1fY2xpZW50OwotI2VuZGlm
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jZW5kaWYgLy8gUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhh
bmRsZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1BlZXJD
b25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDYxMDM4MWI5ZWYxNjQ1MDgwMDBkMDdmZjE1ZGJlYmM1ODAzMTAyODQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaAorKysgL2Rldi9udWxs
CkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEFCLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwot
ICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJD
bGllbnRfaAotI2RlZmluZSBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudF9oCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFz
cyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwotY2xhc3MgTWVkaWFTdHJlYW1EZXNjcmlwdG9yOwot
Ci1jbGFzcyBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudCB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQoKSB7IH0KLQotICAgIHZpcnR1YWwg
dm9pZCBkaWRHZW5lcmF0ZUljZUNhbmRpZGF0ZShQYXNzUmVmUHRyPEljZUNhbmRpZGF0ZURlc2Ny
aXB0b3I+LCBib29sIG1vcmVUb0ZvbGxvdykgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFu
Z2VSZWFkeVN0YXRlKHVpbnQzMl90IHN0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZUljZVN0YXRlKHVpbnQzMl90IHN0YXRlKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFk
ZFJlbW90ZVN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRv
ciopID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVu
dF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNz
aW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuY3BwCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0OGM2MDk1NzAzYWI4ZDc5Y2I0NTNjYmZhNjk5MjVmNWFmYjE5M2Qw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Iu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiAgICBkaXN0cmlidXRpb24u
Ci0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0g
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNpbmNsdWRlICJTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yLmgiCi0KLSNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9y
LmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXIuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1QYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I6OmNyZWF0ZShjb25zdCBTdHJpbmcmIHNkcCkKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3Ioc2RwKSk7Ci19Ci0K
LVNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0
b3IoY29uc3QgU3RyaW5nJiBzZHApCi0gICAgOiBtX2luaXRpYWxTRFAoc2RwKQotewotfQotCi1T
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjp+U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRv
cigpCi17Ci19Ci0KLXZvaWQgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6YWRkQ2FuZGlk
YXRlKFBhc3NSZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gY2FuZGlkYXRlKQotewotICAg
IG1fY2FuZGlkYXRlcy5hcHBlbmQoY2FuZGlkYXRlKTsKLX0KLQotU3RyaW5nIFNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I6OnRvU0RQKCkKLXsKLSAgICByZXR1cm4gTWVkaWFTdHJlYW1DZW50
ZXI6Omluc3RhbmNlKCkuY29uc3RydWN0U0RQKHRoaXMpOwotfQotCi1zaXplX3QgU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcjo6bnVtYmVyT2ZBZGRlZENhbmRpZGF0ZXMoKSBjb25zdAotewot
ICAgIHJldHVybiBtX2NhbmRpZGF0ZXMuc2l6ZSgpOwotfQotCi1JY2VDYW5kaWRhdGVEZXNjcmlw
dG9yKiBTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpjYW5kaWRhdGUoc2l6ZV90IGluZGV4
KSBjb25zdAotewotICAgIHJldHVybiBtX2NhbmRpZGF0ZXNbaW5kZXhdLmdldCgpOwotfQotCi1j
b25zdCBTdHJpbmcmIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmluaXRpYWxTRFAoKQot
ewotICAgIHJldHVybiBtX2luaXRpYWxTRFA7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ1MTI4NDMyYTQ4YTg5
OTY1ZjdmMGMwZmU5MTlmZWQyNDVmZDY4NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiAgICBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0gKiAgICBkaXN0cmlidXRpb24uCi0gKiAzLiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRyaWJ1dG9ycwotICogICAgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzCi0gKiAg
ICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpZm5kZWYgU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcl9oCi0jZGVmaW5l
IFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3JfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi1jbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwotCi1jbGFzcyBTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yIDogcHVibGljIFJlZkNvdW50ZWQ8U2Vzc2lvbkRlc2NyaXB0aW9u
RGVzY3JpcHRvcj4gewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHNkcCk7Ci0gICAgdmlydHVh
bCB+U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcigpOwotCi0gICAgdm9pZCBhZGRDYW5kaWRh
dGUoUGFzc1JlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlwdG9yPik7Ci0gICAgU3RyaW5nIHRvU0RQ
KCk7Ci0KLSAgICBzaXplX3QgbnVtYmVyT2ZBZGRlZENhbmRpZGF0ZXMoKSBjb25zdDsKLSAgICBJ
Y2VDYW5kaWRhdGVEZXNjcmlwdG9yKiBjYW5kaWRhdGUoc2l6ZV90IGluZGV4KSBjb25zdDsKLSAg
ICBjb25zdCBTdHJpbmcmIGluaXRpYWxTRFAoKTsKLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKGNvbnN0IFN0cmluZyYgc2RwKTsKLQotICAgIFN0
cmluZyBtX2luaXRpYWxTRFA7Ci0gICAgVmVjdG9yPFJlZlB0cjxJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yPiA+IG1fY2FuZGlkYXRlczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBTZXNzaW9uRGVzY3JpcHRp
b25EZXNjcmlwdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50
ZXJCbGFja0JlcnJ5LmNwcAppbmRleCBmOGI4ODAyMTU5M2FkYTAxZDdlZTAyY2M5MmJjNzk1MjMz
NGEzM2ZjLi5kOTFlZjExMzgwMTNlNzZmYjc3MjIwMDdmNWJkY2NiYjlhYWUwYmU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlh
U3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnkuY3BwCkBA
IC0zNSwxMCArMzUsOCBAQAogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5
LmgiCiAKLSNpbmNsdWRlICJJY2VDYW5kaWRhdGVEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiTWVk
aWFTdHJlYW1EZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlD
bGllbnQuaCIKLSNpbmNsdWRlICJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODYsMTYg
Kzg0LDYgQEAgdm9pZCBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVycnk6OmRpZENyZWF0ZU1lZGlh
U3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopCiB7CiB9CiAKLVN0cmluZyBNZWRpYVN0cmVh
bUNlbnRlckJsYWNrQmVycnk6OmNvbnN0cnVjdFNEUChJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKikK
LXsKLSAgICByZXR1cm4gIiI7Ci19Ci0KLVN0cmluZyBNZWRpYVN0cmVhbUNlbnRlckJsYWNrQmVy
cnk6OmNvbnN0cnVjdFNEUChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKikKLXsKLSAgICBy
ZXR1cm4gIiI7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3RyZWFtQ2VudGVyQmxhY2tCZXJyeS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vYmxhY2tiZXJyeS9NZWRpYVN0cmVhbUNlbnRl
ckJsYWNrQmVycnkuaAppbmRleCBlOTcxYzExZTY3Y2ZlMWZmZjY1NzIwOTZkM2MxOWMxZDdjN2Iw
NzhkLi5lNTEwYWQ5YjFjM2Y0NDRlNjYyY2ZjNjk1ZmNkMDEzNjRmYmJmNTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9ibGFja2JlcnJ5L01lZGlhU3Ry
ZWFtQ2VudGVyQmxhY2tCZXJyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL2JsYWNrYmVycnkvTWVkaWFTdHJlYW1DZW50ZXJCbGFja0JlcnJ5LmgKQEAgLTQxLDEx
ICs0MSw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSWNlQ2FuZGlkYXRlRGVz
Y3JpcHRvcjsKIGNsYXNzIE1lZGlhU3RyZWFtQ29tcG9uZW50OwogY2xhc3MgTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Tb3VyY2VzUXVlcnlDbGllbnQ7Ci1jbGFzcyBT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOwogCiBjbGFzcyBNZWRpYVN0cmVhbUNlbnRlckJs
YWNrQmVycnkgOiBwdWJsaWMgTWVkaWFTdHJlYW1DZW50ZXIgewogcHVibGljOgpAQCAtNTksOCAr
NTcsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGRpZFJlbW92ZU1lZGlhU3RyZWFtVHJh
Y2soTWVkaWFTdHJlYW1EZXNjcmlwdG9yKiwgTWVkaWFTdHJlYW1Db21wb25lbnQqKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RvcExvY2FsTWVkaWFTdHJlYW0oTWVkaWFTdHJlYW1E
ZXNjcmlwdG9yKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZU1lZGlhU3Ry
ZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5n
IGNvbnN0cnVjdFNEUChJY2VDYW5kaWRhdGVEZXNjcmlwdG9yKikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCBTdHJpbmcgY29uc3RydWN0U0RQKFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IqKSBP
VkVSUklERTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2VudGVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21p
dW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAKaW5kZXggYzUzNTcyYmU3MGZiYWY4MjMz
Mzc1OTUzYjgxOTIxODc4ZTk3ODViYy4uMGU0NWJlZTllOWU1MDdmOGNlODMxYzhmODJhYWI5MWJj
OTY0YWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
Y2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1
bS5jcHAKQEAgLTM0LDE3ICszNCwxMyBAQAogCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1DZW50ZXJD
aHJvbWl1bS5oIgogCi0jaW5jbHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
c1F1ZXJ5Q2xpZW50LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJJQ0VD
YW5kaWRhdGVEZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtQ2Vu
dGVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtQ29tcG9uZW50Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJNZWRpYVN0cmVhbVNvdXJjZXNSZXF1ZXN0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYlNl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKQEAgLTExMCwxNiArMTA2LDYgQEAgdm9p
ZCBNZWRpYVN0cmVhbUNlbnRlckNocm9taXVtOjpkaWRDcmVhdGVNZWRpYVN0cmVhbShNZWRpYVN0
cmVhbURlc2NyaXB0b3IqIHN0cmUKICAgICB9CiB9CiAKLVN0cmluZyBNZWRpYVN0cmVhbUNlbnRl
ckNocm9taXVtOjpjb25zdHJ1Y3RTRFAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciogaWNlQ2FuZGlk
YXRlKQotewotICAgIHJldHVybiBtX3ByaXZhdGUgPyBtX3ByaXZhdGUtPmNvbnN0cnVjdFNEUChX
ZWJLaXQ6OldlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IoaWNlQ2FuZGlkYXRlKSkgOiAiIjsKLX0K
LQotU3RyaW5nIE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06OmNvbnN0cnVjdFNEUChTZXNzaW9u
RGVzY3JpcHRpb25EZXNjcmlwdG9yKiBzZXNzaW9uRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0dXJu
IG1fcHJpdmF0ZSA/IG1fcHJpdmF0ZS0+Y29uc3RydWN0U0RQKFdlYktpdDo6V2ViU2Vzc2lvbkRl
c2NyaXB0aW9uRGVzY3JpcHRvcihzZXNzaW9uRGVzY3JpcHRpb24pKSA6ICIiOwotfQotCiB2b2lk
IE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW06OnN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFdl
YktpdDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiBzdHJlYW0pCiB7CiAgICAgZW5kTG9jYWxN
ZWRpYVN0cmVhbShzdHJlYW0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJDaHJvbWl1bS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vTWVkaWFTdHJlYW1DZW50ZXJD
aHJvbWl1bS5oCmluZGV4IDIwNDE3ODZiMmFmMDQwYzJmY2QzMjVjZDdlYTQ5NmFmYjIwODU1Y2Iu
LmNjMDdhZDE0MmFjNzE1ZmU0NTMzYzVmOGFiZjQ2YTc1NDE3YjliODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL01lZGlhU3RyZWFtQ2Vu
dGVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
aHJvbWl1bS9NZWRpYVN0cmVhbUNlbnRlckNocm9taXVtLmgKQEAgLTQ4LDExICs0OCw5IEBAIGNs
YXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
bGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlwdG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7
CiBjbGFzcyBNZWRpYVN0cmVhbURlc2NyaXB0b3I7CiBjbGFzcyBNZWRpYVN0cmVhbVNvdXJjZXNR
dWVyeUNsaWVudDsKLWNsYXNzIFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiAKIGNsYXNz
IE1lZGlhU3RyZWFtQ2VudGVyQ2hyb21pdW0gOiBwdWJsaWMgTWVkaWFTdHJlYW1DZW50ZXIsIHB1
YmxpYyBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTY2
LDggKzY0LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVh
bVRyYWNrKE1lZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0b3BMb2NhbE1lZGlhU3RyZWFtKE1lZGlhU3Ry
ZWFtRGVzY3JpcHRvciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNZWRp
YVN0cmVhbShNZWRpYVN0cmVhbURlc2NyaXB0b3IqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0
cmluZyBjb25zdHJ1Y3RTRFAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopIE9WRVJSSURFOwotICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnN0cnVjdFNEUChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
KikgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtQ2VudGVyQ2xpZW50
CiAgICAgdmlydHVhbCB2b2lkIHN0b3BMb2NhbE1lZGlhU3RyZWFtKGNvbnN0IFdlYktpdDo6V2Vi
TWVkaWFTdHJlYW1EZXNjcmlwdG9yJikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVy
Q29ubmVjdGlvbjAwSGFuZGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIw
NGUwYTgzNzU5ZGVkMmNjYTEyMWIzNjlmYWRiYmEwY2I2NzBjZmEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vY2hyb21pdW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsMTE4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lcgotICogICAgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotICogICAgZGlzdHJpYnV0aW9uLgotICogMy4gTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cyBjb250cmlidXRv
cnMKLSAqICAgIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20gdGhpcwotICogICAgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0gKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIu
aCIKLQotI2luY2x1ZGUgIkljZUNhbmRpZGF0ZURlc2NyaXB0b3IuaCIKLSNpbmNsdWRlICJJY2VP
cHRpb25zLmgiCi0jaW5jbHVkZSAiTWVkaWFIaW50cy5oIgotI2luY2x1ZGUgIk1lZGlhU3RyZWFt
RGVzY3JpcHRvci5oIgotI2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50Lmgi
Ci0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbC5oIgotI2luY2x1ZGUg
IlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1QYXNzT3duUHRyPFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyPiBQZWVyQ29ubmVjdGlvbjAwSGFu
ZGxlcjo6Y3JlYXRlKFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50KiBjbGllbnQsIGNvbnN0
IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgY29uc3QgU3RyaW5nJiB1c2VybmFtZSkKLXsK
LSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKGNsaWVudCwg
c2VydmVyQ29uZmlndXJhdGlvbiwgdXNlcm5hbWUpKTsKLX0KLQotUGVlckNvbm5lY3Rpb24wMEhh
bmRsZXI6OlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xp
ZW50KiBjbGllbnQsIGNvbnN0IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgY29uc3QgU3Ry
aW5nJiB1c2VybmFtZSkKLSAgICA6IG1fcHJpdmF0ZShhZG9wdFB0cihuZXcgUGVlckNvbm5lY3Rp
b24wMEhhbmRsZXJJbnRlcm5hbChjbGllbnQsIHNlcnZlckNvbmZpZ3VyYXRpb24sIHVzZXJuYW1l
KSkpCi17Ci19Ci0KLVBlZXJDb25uZWN0aW9uMDBIYW5kbGVyOjp+UGVlckNvbm5lY3Rpb24wMEhh
bmRsZXIoKQotewotfQotCi1QYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+
IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyOjpjcmVhdGVPZmZlcihQYXNzUmVmUHRyPE1lZGlhSGlu
dHM+IG1lZGlhSGludHMpCi17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+Y3JlYXRlT2ZmZXIobWVk
aWFIaW50cyk7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4g
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OmNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcmIG9mZmVy
LCBQYXNzUmVmUHRyPE1lZGlhSGludHM+IG1lZGlhSGludHMpCi17Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZS0+Y3JlYXRlQW5zd2VyKG9mZmVyLCBtZWRpYUhpbnRzKTsKLX0KLQotYm9vbCBQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlcjo6c2V0TG9jYWxEZXNjcmlwdGlvbihpbnQgYWN0aW9uLCBQYXNzUmVm
UHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHNlc3Npb25EZXNjcmlwdGlvbikKLXsK
LSAgICByZXR1cm4gbV9wcml2YXRlLT5zZXRMb2NhbERlc2NyaXB0aW9uKGFjdGlvbiwgc2Vzc2lv
bkRlc2NyaXB0aW9uKTsKLX0KLQotYm9vbCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjo6c2V0UmVt
b3RlRGVzY3JpcHRpb24oaW50IGFjdGlvbiwgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25E
ZXNjcmlwdG9yPiBzZXNzaW9uRGVzY3JpcHRpb24pCi17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+
c2V0UmVtb3RlRGVzY3JpcHRpb24oYWN0aW9uLCBzZXNzaW9uRGVzY3JpcHRpb24pOwotfQotCi1Q
YXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFBlZXJDb25uZWN0aW9uMDBI
YW5kbGVyOjpsb2NhbERlc2NyaXB0aW9uKCkKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5sb2Nh
bERlc2NyaXB0aW9uKCk7Ci19Ci0KLVBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3Jp
cHRvcj4gUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OnJlbW90ZURlc2NyaXB0aW9uKCkKLXsKLSAg
ICByZXR1cm4gbV9wcml2YXRlLT5yZW1vdGVEZXNjcmlwdGlvbigpOwotfQotCi1ib29sIFBlZXJD
b25uZWN0aW9uMDBIYW5kbGVyOjpzdGFydEljZShQYXNzUmVmUHRyPEljZU9wdGlvbnM+IGljZU9w
dGlvbnMpCi17Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3RhcnRJY2UoaWNlT3B0aW9ucyk7Ci19
Ci0KLWJvb2wgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OnByb2Nlc3NJY2VNZXNzYWdlKFBhc3NS
ZWZQdHI8SWNlQ2FuZGlkYXRlRGVzY3JpcHRvcj4gaWNlQ2FuZGlkYXRlKQotewotICAgIHJldHVy
biBtX3ByaXZhdGUtPnByb2Nlc3NJY2VNZXNzYWdlKGljZUNhbmRpZGF0ZSk7Ci19Ci0KLXZvaWQg
UGVlckNvbm5lY3Rpb24wMEhhbmRsZXI6OmFkZFN0cmVhbShQYXNzUmVmUHRyPE1lZGlhU3RyZWFt
RGVzY3JpcHRvcj4gbWVkaWFTdHJlYW0pCi17Ci0gICAgbV9wcml2YXRlLT5hZGRTdHJlYW0obWVk
aWFTdHJlYW0pOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVyOjpyZW1vdmVTdHJl
YW0oUGFzc1JlZlB0cjxNZWRpYVN0cmVhbURlc2NyaXB0b3I+IG1lZGlhU3RyZWFtKQotewotICAg
IG1fcHJpdmF0ZS0+cmVtb3ZlU3RyZWFtKG1lZGlhU3RyZWFtKTsKLX0KLQotdm9pZCBQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlcjo6c3RvcCgpCi17Ci0gICAgbV9wcml2YXRlLT5zdG9wKCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1
bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVtL1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJu
YWwuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTkwYmYxOGU5NTAxNWQyYmE2
MGEzYTE1Y2E1MDkxNzhhMDdmNGY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2Nocm9taXVt
L1BlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSAqIG1l
dDoKLSAqCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotICogY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgotICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotICogZGlzdHJpYnV0aW9uLgotICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotICogQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0gKiBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQotCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbC5oIgotCi0jaW5j
bHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgIkljZU9wdGlvbnMuaCIK
LSNpbmNsdWRlICJNZWRpYUhpbnRzLmgiCi0jaW5jbHVkZSAiUGVlckNvbm5lY3Rpb24wMC5oIgot
I2luY2x1ZGUgIlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiU2Vz
c2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJJQ0VDYW5kaWRhdGVEZXNjcmlwdG9yLmg+Ci0jaW5jbHVk
ZSA8cHVibGljL1dlYklDRU9wdGlvbnMuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFIaW50
cy5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJNZWRpYVN0cmVhbURlc2NyaXB0b3IuaD4KLSNpbmNs
dWRlIDxwdWJsaWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaD4KLSNpbmNsdWRlIDxwdWJs
aWMvV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaD4KLSNpbmNsdWRlIDxwdWJsaWMv
V2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJ
bnRlcm5hbDo6UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbChQZWVyQ29ubmVjdGlvbjAw
SGFuZGxlckNsaWVudCogY2xpZW50LCBjb25zdCBTdHJpbmcmIHNlcnZlckNvbmZpZ3VyYXRpb24s
IGNvbnN0IFN0cmluZyYgdXNlcm5hbWUpCi0gICAgOiBtX2NsaWVudChjbGllbnQpCi17Ci0gICAg
QVNTRVJUKG1fY2xpZW50KTsKLSAgICBtX3dlYkhhbmRsZXIgPSBhZG9wdFB0cihXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVBlZXJDb25uZWN0aW9uMDBIYW5kbGVyKHRoaXMpKTsK
LSAgICAvLyBGSVhNRTogV2hlbiB0aGVyZSBpcyBzb21lIGVycm9yIHJlcG9ydGluZyBhdmFsaWFi
bGUgaW4gdGhlIFBlZXJDb25uZWN0aW9uIG9iamVjdCByZXBvcnQKLSAgICAvLyBpZiB3ZSBkaWRu
J3QgZ2V0IGEgV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIgaW5zdGFuY2UuCi0KLSAgICBpZiAo
bV93ZWJIYW5kbGVyKQotICAgICAgICBtX3dlYkhhbmRsZXItPmluaXRpYWxpemUoc2VydmVyQ29u
ZmlndXJhdGlvbiwgdXNlcm5hbWUpOwotfQotCi1QZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVy
bmFsOjp+UGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbCgpCi17Ci19Ci0KLVBhc3NSZWZQ
dHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJ
bnRlcm5hbDo6Y3JlYXRlT2ZmZXIoUGFzc1JlZlB0cjxNZWRpYUhpbnRzPiBtZWRpYUhpbnRzKQot
ewotICAgIGlmICghbV93ZWJIYW5kbGVyKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHJldHVy
biBtX3dlYkhhbmRsZXItPmNyZWF0ZU9mZmVyKG1lZGlhSGludHMpOwotfQotCi1QYXNzUmVmUHRy
PFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50
ZXJuYWw6OmNyZWF0ZUFuc3dlcihjb25zdCBTdHJpbmcmIG9mZmVyLCBQYXNzUmVmUHRyPE1lZGlh
SGludHM+IG1lZGlhSGludHMpCi17Ci0gICAgaWYgKCFtX3dlYkhhbmRsZXIpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgcmV0dXJuIG1fd2ViSGFuZGxlci0+Y3JlYXRlQW5zd2VyKG9mZmVyLCBt
ZWRpYUhpbnRzKTsKLX0KLQotYm9vbCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsOjpz
ZXRMb2NhbERlc2NyaXB0aW9uKGludCBhY3Rpb24sIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0
aW9uRGVzY3JpcHRvcj4gc2Vzc2lvbkRlc2NyaXB0aW9uKQotewotICAgIGlmICghbV93ZWJIYW5k
bGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gbV93ZWJIYW5kbGVyLT5z
ZXRMb2NhbERlc2NyaXB0aW9uKHN0YXRpY19jYXN0PFdlYktpdDo6V2ViUGVlckNvbm5lY3Rpb24w
MEhhbmRsZXI6OkFjdGlvbj4oYWN0aW9uKSwgc2Vzc2lvbkRlc2NyaXB0aW9uKTsKLX0KLQotYm9v
bCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsOjpzZXRSZW1vdGVEZXNjcmlwdGlvbihp
bnQgYWN0aW9uLCBQYXNzUmVmUHRyPFNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I+IHNlc3Np
b25EZXNjcmlwdGlvbikKLXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgcmV0dXJuIG1fd2ViSGFuZGxlci0+c2V0UmVtb3RlRGVzY3JpcHRpb24o
c3RhdGljX2Nhc3Q8V2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlcjo6QWN0aW9uPihh
Y3Rpb24pLCBzZXNzaW9uRGVzY3JpcHRpb24pOwotfQotCi1QYXNzUmVmUHRyPFNlc3Npb25EZXNj
cmlwdGlvbkRlc2NyaXB0b3I+IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWw6OmxvY2Fs
RGVzY3JpcHRpb24oKQotewotICAgIGlmICghbV93ZWJIYW5kbGVyKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIHJldHVybiBtX3dlYkhhbmRsZXItPmxvY2FsRGVzY3JpcHRpb24oKTsKLX0KLQot
UGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiBQZWVyQ29ubmVjdGlvbjAw
SGFuZGxlckludGVybmFsOjpyZW1vdGVEZXNjcmlwdGlvbigpCi17Ci0gICAgaWYgKCFtX3dlYkhh
bmRsZXIpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgcmV0dXJuIG1fd2ViSGFuZGxlci0+cmVt
b3RlRGVzY3JpcHRpb24oKTsKLX0KLQotYm9vbCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVy
bmFsOjpzdGFydEljZShQYXNzUmVmUHRyPEljZU9wdGlvbnM+IGljZU9wdGlvbnMpCi17Ci0gICAg
aWYgKCFtX3dlYkhhbmRsZXIpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIG1f
d2ViSGFuZGxlci0+c3RhcnRJY2UoaWNlT3B0aW9ucyk7Ci19Ci0KLWJvb2wgUGVlckNvbm5lY3Rp
b24wMEhhbmRsZXJJbnRlcm5hbDo6cHJvY2Vzc0ljZU1lc3NhZ2UoUGFzc1JlZlB0cjxJY2VDYW5k
aWRhdGVEZXNjcmlwdG9yPiBpY2VDYW5kaWRhdGUpCi17Ci0gICAgaWYgKCFtX3dlYkhhbmRsZXIp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBtX3dlYkhhbmRsZXItPnByb2Nl
c3NJY2VNZXNzYWdlKGljZUNhbmRpZGF0ZSk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMEhh
bmRsZXJJbnRlcm5hbDo6YWRkU3RyZWFtKFBhc3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9y
PiBtZWRpYVN0cmVhbSkKLXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbV93ZWJIYW5kbGVyLT5hZGRTdHJlYW0obWVkaWFTdHJlYW0pOwotfQotCi12b2lk
IFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWw6OnJlbW92ZVN0cmVhbShQYXNzUmVmUHRy
PE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4gbWVkaWFTdHJlYW0pCi17Ci0gICAgaWYgKCFtX3dlYkhh
bmRsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fd2ViSGFuZGxlci0+cmVtb3ZlU3RyZWFt
KG1lZGlhU3RyZWFtKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFs
OjpzdG9wKCkKLXsKLSAgICBpZiAoIW1fd2ViSGFuZGxlcikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgbV93ZWJIYW5kbGVyLT5zdG9wKCk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMEhhbmRs
ZXJJbnRlcm5hbDo6ZGlkR2VuZXJhdGVJQ0VDYW5kaWRhdGUoY29uc3QgV2ViS2l0OjpXZWJJQ0VD
YW5kaWRhdGVEZXNjcmlwdG9yJiBpY2VDYW5kaWRhdGUsIGJvb2wgbW9yZVRvRm9sbG93KQotewot
ICAgIG1fY2xpZW50LT5kaWRHZW5lcmF0ZUljZUNhbmRpZGF0ZShpY2VDYW5kaWRhdGUsIG1vcmVU
b0ZvbGxvdyk7Ci19Ci0KLXZvaWQgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbDo6ZGlk
Q2hhbmdlUmVhZHlTdGF0ZShSZWFkeVN0YXRlIHN0YXRlKQotewotICAgIG1fY2xpZW50LT5kaWRD
aGFuZ2VSZWFkeVN0YXRlKHN0YXRlKTsKLX0KLQotdm9pZCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ckludGVybmFsOjpkaWRDaGFuZ2VJQ0VTdGF0ZShJQ0VTdGF0ZSBzdGF0ZSkKLXsKLSAgICBtX2Ns
aWVudC0+ZGlkQ2hhbmdlSWNlU3RhdGUoc3RhdGUpOwotfQotCi12b2lkIFBlZXJDb25uZWN0aW9u
MDBIYW5kbGVySW50ZXJuYWw6OmRpZEFkZFJlbW90ZVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1l
ZGlhU3RyZWFtRGVzY3JpcHRvciYgd2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKQotewotICAgIG1f
Y2xpZW50LT5kaWRBZGRSZW1vdGVTdHJlYW0od2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yKTsKLX0K
LQotdm9pZCBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsOjpkaWRSZW1vdmVSZW1vdGVT
dHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImIHdlYk1lZGlhU3Ry
ZWFtRGVzY3JpcHRvcikKLXsKLSAgICBtX2NsaWVudC0+ZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKHdl
Yk1lZGlhU3RyZWFtRGVzY3JpcHRvcik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9QZWVyQ29ubmVjdGlvbjAwSGFuZGxlcklu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9jaHJvbWl1bS9Q
ZWVyQ29ubmVjdGlvbjAwSGFuZGxlckludGVybmFsLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIxNTFlZGY1ZDE2ZTk5YjljZmIxNTRlMzVhMzI4YzE3ODYwNmVkNTcuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vY2hyb21pdW0vUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5h
bC5oCisrKyAvZGV2L251bGwKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
Ci0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgUGVlckNvbm5lY3Rpb24w
MEhhbmRsZXJJbnRlcm5hbF9oCi0jZGVmaW5lIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJu
YWxfaAotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2luY2x1ZGUgIk1lZGlhU3RyZWFt
RGVzY3JpcHRvci5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxl
ckNsaWVudC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLWNsYXNzIFdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3I7Ci1jbGFzcyBXZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlcjsKLWNsYXNzIFdlYk1lZGlhU3RyZWFtRGVzY3JpcHRvcjsKLWNsYXNz
IFdlYlN0cmluZzsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJY2VDYW5kaWRh
dGVEZXNjcmlwdG9yOwotY2xhc3MgSWNlT3B0aW9uczsKLWNsYXNzIE1lZGlhSGludHM7Ci1jbGFz
cyBQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDsKLWNsYXNzIFNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3I7Ci0KLWNsYXNzIFBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwgOiBw
dWJsaWMgV2ViS2l0OjpXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudCB7Ci1wdWJsaWM6
Ci0gICAgUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbChQZWVyQ29ubmVjdGlvbjAwSGFu
ZGxlckNsaWVudCosIGNvbnN0IFN0cmluZyYgc2VydmVyQ29uZmlndXJhdGlvbiwgY29uc3QgU3Ry
aW5nJiB1c2VybmFtZSk7Ci0gICAgflBlZXJDb25uZWN0aW9uMDBIYW5kbGVySW50ZXJuYWwoKTsK
LQotICAgIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4gY3JlYXRlT2Zm
ZXIoUGFzc1JlZlB0cjxNZWRpYUhpbnRzPik7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPiBjcmVhdGVBbnN3ZXIoY29uc3QgU3RyaW5nJiBvZmZlciwgUGFzc1Jl
ZlB0cjxNZWRpYUhpbnRzPik7Ci0gICAgYm9vbCBzZXRMb2NhbERlc2NyaXB0aW9uKGludCBhY3Rp
b24sIFBhc3NSZWZQdHI8U2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcj4pOwotICAgIGJvb2wg
c2V0UmVtb3RlRGVzY3JpcHRpb24oaW50IGFjdGlvbiwgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPik7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3JpcHRpb25EZXNj
cmlwdG9yPiBsb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgUGFzc1JlZlB0cjxTZXNzaW9uRGVzY3Jp
cHRpb25EZXNjcmlwdG9yPiByZW1vdGVEZXNjcmlwdGlvbigpOwotICAgIGJvb2wgc3RhcnRJY2Uo
UGFzc1JlZlB0cjxJY2VPcHRpb25zPik7Ci0gICAgYm9vbCBwcm9jZXNzSWNlTWVzc2FnZShQYXNz
UmVmUHRyPEljZUNhbmRpZGF0ZURlc2NyaXB0b3I+KTsKLSAgICB2b2lkIGFkZFN0cmVhbShQYXNz
UmVmUHRyPE1lZGlhU3RyZWFtRGVzY3JpcHRvcj4pOwotICAgIHZvaWQgcmVtb3ZlU3RyZWFtKFBh
c3NSZWZQdHI8TWVkaWFTdHJlYW1EZXNjcmlwdG9yPik7Ci0gICAgdm9pZCBzdG9wKCk7Ci0KLSAg
ICAvLyBXZWJLaXQ6OldlYkpTRVBQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQgaW1wbGVtZW50
YXRpb24uCi0gICAgdmlydHVhbCB2b2lkIGRpZEdlbmVyYXRlSUNFQ2FuZGlkYXRlKGNvbnN0IFdl
YktpdDo6V2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYsIGJvb2wgbW9yZVRvRm9sbG93KTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlUmVhZHlTdGF0ZShSZWFkeVN0YXRlKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlSUNFU3RhdGUoSUNFU3RhdGUpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRSZW1vdGVTdHJlYW0oY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3Im
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVtb3ZlUmVtb3RlU3RyZWFtKGNvbnN0IFdlYktpdDo6
V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJik7Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyPFdlYktp
dDo6V2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXI+IG1fd2ViSGFuZGxlcjsKLSAgICBQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlckNsaWVudCogbV9jbGllbnQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gUGVl
ckNvbm5lY3Rpb24wMEhhbmRsZXJJbnRlcm5hbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01l
ZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmNwcAppbmRleCA4MzA4NGUxMjk2NTcwM2I5N2QyOTg1
ZTg0NGY3YTQyY2ExMjg2ZGI1Li5mMTg0MmNiNWQ1MGJlYzU2ODExZTYxNzBiZTU0ZDExNjkxNDE5
MDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3Ry
ZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2dzdHJlYW1lci9NZWRpYVN0cmVhbUNlbnRlckdTdHJlYW1l
ci5jcHAKQEAgLTM1LDEwICszNSw4IEBACiAKICNpbmNsdWRlICJNZWRpYVN0cmVhbUNlbnRlckdT
dHJlYW1lci5oIgogCi0jaW5jbHVkZSAiSWNlQ2FuZGlkYXRlRGVzY3JpcHRvci5oIgogI2luY2x1
ZGUgIk1lZGlhU3RyZWFtRGVzY3JpcHRvci5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtU291cmNl
c1F1ZXJ5Q2xpZW50LmgiCi0jaW5jbHVkZSAiU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTg2LDE2ICs4NCw2IEBAIHZvaWQgTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXI6OmRpZENyZWF0
ZU1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3JpcHRvciopCiB7CiB9CiAKLVN0cmluZyBNZWRp
YVN0cmVhbUNlbnRlckdTdHJlYW1lcjo6Y29uc3RydWN0U0RQKEljZUNhbmRpZGF0ZURlc2NyaXB0
b3IqKQotewotICAgIHJldHVybiAiIjsKLX0KLQotU3RyaW5nIE1lZGlhU3RyZWFtQ2VudGVyR1N0
cmVhbWVyOjpjb25zdHJ1Y3RTRFAoU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciopCi17Ci0g
ICAgcmV0dXJuICIiOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vZ3N0cmVhbWVyL01lZGlhU3RyZWFtQ2VudGVyR1N0cmVhbWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50
ZXJHU3RyZWFtZXIuaAppbmRleCAxYjI2MDQwNmUxZWFmYzk2MTdmMWEzMmE1ODdlNjk5MzViM2Fm
YzRlLi4zZWM0MDNhNjEyN2Y5NWZkM2ZkZDcxMDdkZmMyOTEwN2RlZmQwOGVmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJl
YW1DZW50ZXJHU3RyZWFtZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9nc3RyZWFtZXIvTWVkaWFTdHJlYW1DZW50ZXJHU3RyZWFtZXIuaApAQCAtNDEsMTEgKzQx
LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBJY2VDYW5kaWRhdGVEZXNjcmlw
dG9yOwogY2xhc3MgTWVkaWFTdHJlYW1Db21wb25lbnQ7CiBjbGFzcyBNZWRpYVN0cmVhbURlc2Ny
aXB0b3I7CiBjbGFzcyBNZWRpYVN0cmVhbVNvdXJjZXNRdWVyeUNsaWVudDsKLWNsYXNzIFNlc3Np
b25EZXNjcmlwdGlvbkRlc2NyaXB0b3I7CiAKIGNsYXNzIE1lZGlhU3RyZWFtQ2VudGVyR1N0cmVh
bWVyIDogcHVibGljIE1lZGlhU3RyZWFtQ2VudGVyIHsKIHB1YmxpYzoKQEAgLTU5LDggKzU3LDYg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKE1l
ZGlhU3RyZWFtRGVzY3JpcHRvciosIE1lZGlhU3RyZWFtQ29tcG9uZW50KikgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZFN0b3BMb2NhbE1lZGlhU3RyZWFtKE1lZGlhU3RyZWFtRGVzY3Jp
cHRvciopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNZWRpYVN0cmVhbShN
ZWRpYVN0cmVhbURlc2NyaXB0b3IqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBjb25z
dHJ1Y3RTRFAoSWNlQ2FuZGlkYXRlRGVzY3JpcHRvciopIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnN0cnVjdFNEUChTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yKikgT1ZFUlJJ
REU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKaW5kZXggNzRlZjliZmNmNTdkOTUyOGNkZDg4M2FmZDJiODg5NTljNmQ0Yzc5Mi4uZmRhNTcw
NWM2MGNlNWEzN2Y2ZDQ5ZjM2MDk5MzEyYWMyNzZjOTU3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2Vi
S2l0Lmd5cApAQCAtNjEyLDcgKzYxMiw2IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZWN1
cml0eVBvbGljeS5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU2VsZWN0RWxlbWVudC5j
cHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCcs
Ci0gICAgICAgICAgICAgICAgJ3NyYy9XZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwJywKICAgICAgICAg
ICAgICAgICAnc3JjL1dlYlNldHRpbmdzSW1wbC5oJywKICAgICAgICAgICAgICAgICAnc3JjL1dl
YlNoYXJlZFdvcmtlckltcGwuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlJ1bnRpbWVGZWF0dXJlcy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViUnVudGltZUZlYXR1cmVzLmgKaW5kZXggYTgwODI2MDZjZTNkNmZlMmZmYzRhMjc2
ZWI0NDdmZjMxODk5YmE0Mi4uMjJkZTk4MTYzNGFiYWM1YmIyODU1NTVjMjRiNjczOGE4MDk2YjNh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZl
YXR1cmVzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUnVudGltZUZl
YXR1cmVzLmgKQEAgLTEwOCw4ICsxMDgsNiBAQCBwdWJsaWM6CiAKICAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyB2b2lkIGVuYWJsZVBlZXJDb25uZWN0aW9uKGJvb2wpOwogICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIGJvb2wgaXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQoKTsKLSAgICBXRUJLSVRfRVhQ
T1JUIHN0YXRpYyB2b2lkIGVuYWJsZURlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbihib29sKTsKLSAg
ICBXRUJLSVRfRVhQT1JUIHN0YXRpYyBib29sIGlzRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uRW5h
YmxlZCgpOwogCiAgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9pZCBlbmFibGVGdWxsU2NyZWVu
QVBJKGJvb2wpOwogICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIGJvb2wgaXNGdWxsU2NyZWVuQVBJ
RW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxh
dGZvcm0vV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvcGxhdGZvcm0vV2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1NmVhOTMxNDZmOWNkMDJhNjZkOGRiNzg2OTZlZTgzMmY3ODNk
NGQxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0
b3IuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiLi4v
Li4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0
b3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYklDRU9wdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYklDRU9wdGlvbnMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGYyZTQ2MDAw
NzEzMGIzNzNlNTdiY2ExOTY0OGY0MjMxNWUwZWUzYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0
Zm9ybS9XZWJJQ0VPcHRpb25zLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAq
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgIi4uLy4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJJQ0VP
cHRpb25zLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0
Zm9ybS9XZWJNZWRpYUhpbnRzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0
Zm9ybS9XZWJNZWRpYUhpbnRzLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyNzgz
NmRiNTRiYzgzOTUzZTQ0MDRhYmFmMzZiYTgwYTRiZmM1YzYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViTWVkaWFIaW50cy5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICIuLi8uLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2Vi
TWVkaWFIaW50cy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
cGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4N2VjOTllN2UzYjg1ODNkYzRhNGEwMzU5YTYwNWQ0
M2I1NDZlZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb24w
MEhhbmRsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMg
Q09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAq
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiLi4vLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlBlZXJDb25uZWN0aW9u
MDBIYW5kbGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9w
bGF0Zm9ybS9XZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGll
bnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTZiYTU2Y2ZjYWZlOTYyOTNhZmUy
YTQ3ZDZmNzRiNmI1YTc4ODYxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJQZWVy
Q29ubmVjdGlvbjAwSGFuZGxlckNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICIuLi8uLi8uLi8uLi9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMv
V2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlci5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rp
b25IYW5kbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU2ODcxMGM5NmUyZGQz
Y2VhZjZlOTI2OTBhNjQ3NzgwMGM0ZmM1NmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0v
V2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2luY2x1ZGUgIi4uLy4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9X
ZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlBlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViUGVlckNvbm5lY3Rpb25I
YW5kbGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZmE2N2M0NWI5
MjhlOTMxZTY1NWI0ZTVhZGQyMWE3ZTA4YmMzZTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSwy
NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
LSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIi4uLy4uLy4uLy4uL1BsYXRmb3JtL2Nocm9taXVt
L3B1YmxpYy9XZWJQZWVyQ29ubmVjdGlvbkhhbmRsZXJDbGllbnQuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYlNlc3Npb25EZXNjcmlwdGlv
bkRlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dl
YlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGIxZDJhMjU1NzEwZGNkMzhkZjRiMjNiNDQwMGM1MGVmZDliMTNlMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgKKysr
IC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIi4uLy4uLy4uLy4u
L1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9y
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGlu
Z0VudW1zLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51
bXMuY3BwCmluZGV4IGYzZTc4NTllZWI5ODUwNjUxZGJjZmU0MTg0NzQ1MjMwZWNjNDc1NmUuLjg0
ZDJiOGE0ZDk1MWY2NmVhZDk2YzkxZDBhZmEzNWUxYTYyOTEzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC01OSwxMyAr
NTksMTEgQEAKICNpbmNsdWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCTWV0YWRhdGEu
aCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkJhY2tlbmRJbnRlcmZhY2UuaCIKLSNpbmNsdWRl
ICJJY2VPcHRpb25zLmgiCiAjaW5jbHVkZSAiSWNvblVSTC5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1Tb3VyY2UuaCIKICNpbmNsdWRlICJOb3RpZmlj
YXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCi0jaW5jbHVk
ZSAiUGVlckNvbm5lY3Rpb24wMC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ3Vyc29yLmgiCiAjaW5j
bHVkZSAiUlRDRGF0YUNoYW5uZWxEZXNjcmlwdG9yLmgiCiAjaW5jbHVkZSAiUlRDUGVlckNvbm5l
Y3Rpb25IYW5kbGVyQ2xpZW50LmgiCkBAIC0xMTksMTAgKzExNyw3IEBACiAjaW5jbHVkZSA8cHVi
bGljL1dlYkNsaXBib2FyZC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWxlU3lzdGVtLmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJJQ0VPcHRpb25zLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlLmg+
Ci0jaW5jbHVkZSA8cHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyLmg+Ci0jaW5jbHVk
ZSA8cHVibGljL1dlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYlJUQ0RhdGFDaGFubmVsLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlJUQ1BlZXJD
b25uZWN0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJSVENQZWVyQ29ubmVjdGlv
bkhhbmRsZXJDbGllbnQuaD4KQEAgLTU2NiwyOCArNTYxLDYgQEAgQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJNZWRpYVN0cmVhbVNvdXJjZTo6UmVhZHlTdGF0ZUxpdmUsIE1lZGlhU3Ry
ZWFtU28KIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViTWVkaWFTdHJlYW1Tb3VyY2U6
OlJlYWR5U3RhdGVNdXRlZCwgTWVkaWFTdHJlYW1Tb3VyY2U6OlJlYWR5U3RhdGVNdXRlZCk7CiBD
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYk1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0
YXRlRW5kZWQsIE1lZGlhU3RyZWFtU291cmNlOjpSZWFkeVN0YXRlRW5kZWQpOwogCi1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklDRU9wdGlvbnM6OkNhbmRpZGF0ZVR5cGVBbGwsIElj
ZU9wdGlvbnM6OkFMTCk7Ci1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklDRU9wdGlv
bnM6OkNhbmRpZGF0ZVR5cGVOb1JlbGF5LCBJY2VPcHRpb25zOjpOT19SRUxBWSk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklDRU9wdGlvbnM6OkNhbmRpZGF0ZVR5cGVPbmx5UmVs
YXksIEljZU9wdGlvbnM6Ok9OTFlfUkVMQVkpOwotCi1DT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyOjpBY3Rpb25TRFBPZmZlciwgUGVlckNvbm5l
Y3Rpb24wMDo6U0RQX09GRkVSKTsKLUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGVl
ckNvbm5lY3Rpb24wMEhhbmRsZXI6OkFjdGlvblNEUFBSYW5zd2VyLCBQZWVyQ29ubmVjdGlvbjAw
OjpTRFBfUFJBTlNXRVIpOwotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29u
bmVjdGlvbjAwSGFuZGxlcjo6QWN0aW9uU0RQQW5zd2VyLCBQZWVyQ29ubmVjdGlvbjAwOjpTRFBf
QU5TV0VSKTsKLQotQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlv
bjAwSGFuZGxlckNsaWVudDo6UmVhZHlTdGF0ZU5ldywgUGVlckNvbm5lY3Rpb24wMDo6TkVXKTsK
LUNPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJD
bGllbnQ6OlJlYWR5U3RhdGVPcGVuaW5nLCBQZWVyQ29ubmVjdGlvbjAwOjpPUEVOSU5HKTsKLUNP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUGVlckNvbm5lY3Rpb24wMEhhbmRsZXJDbGll
bnQ6OlJlYWR5U3RhdGVOZWdvdGlhdGluZywgUGVlckNvbm5lY3Rpb24wMDo6T1BFTklORyk7Ci1D
T01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xp
ZW50OjpSZWFkeVN0YXRlQWN0aXZlLCBQZWVyQ29ubmVjdGlvbjAwOjpBQ1RJVkUpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDo6
UmVhZHlTdGF0ZUNsb3NlZCwgUGVlckNvbm5lY3Rpb24wMDo6Q0xPU0VEKTsKLQotQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDo6SUNF
U3RhdGVHYXRoZXJpbmcsIFBlZXJDb25uZWN0aW9uMDA6OklDRV9HQVRIRVJJTkcpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDo6
SUNFU3RhdGVXYWl0aW5nLCBQZWVyQ29ubmVjdGlvbjAwOjpJQ0VfV0FJVElORyk7Ci1DT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlBlZXJDb25uZWN0aW9uMDBIYW5kbGVyQ2xpZW50OjpJ
Q0VTdGF0ZUNoZWNraW5nLCBQZWVyQ29ubmVjdGlvbjAwOjpJQ0VfQ0hFQ0tJTkcpOwotQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVudDo6
SUNFU3RhdGVDb25uZWN0ZWQsIFBlZXJDb25uZWN0aW9uMDA6OklDRV9DT05ORUNURUQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVu
dDo6SUNFU3RhdGVDb21wbGV0ZWQsIFBlZXJDb25uZWN0aW9uMDA6OklDRV9DT01QTEVURUQpOwot
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNs
aWVudDo6SUNFU3RhdGVGYWlsZWQsIFBlZXJDb25uZWN0aW9uMDA6OklDRV9GQUlMRUQpOwotQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJQZWVyQ29ubmVjdGlvbjAwSGFuZGxlckNsaWVu
dDo6SUNFU3RhdGVDbG9zZWQsIFBlZXJDb25uZWN0aW9uMDA6OklDRV9DTE9TRUQpOwotCiBDT01Q
SUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVu
dDo6UmVhZHlTdGF0ZU5ldywgUlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpSZWFkeVN0
YXRlTmV3KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViUlRDUGVlckNvbm5lY3Rp
b25IYW5kbGVyQ2xpZW50OjpSZWFkeVN0YXRlT3BlbmluZywgUlRDUGVlckNvbm5lY3Rpb25IYW5k
bGVyQ2xpZW50OjpSZWFkeVN0YXRlT3BlbmluZyk7CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19F
TlVNKFdlYlJUQ1BlZXJDb25uZWN0aW9uSGFuZGxlckNsaWVudDo6UmVhZHlTdGF0ZUFjdGl2ZSwg
UlRDUGVlckNvbm5lY3Rpb25IYW5kbGVyQ2xpZW50OjpSZWFkeVN0YXRlQWN0aXZlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJSdW50aW1lRmVhdHVyZXMuY3BwCmluZGV4
IDkwMDlmZjlmYTI5Y2U3NDRlZGMxMTliMjBmODZmNGIxYTcxNDE4NWMuLjA2YmMzMDgyZjU1ZmRj
MDhkNWU2MjBjMzRmMjBkZDhlZDBiNTQ2Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlJ1bnRpbWVGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViUnVudGltZUZlYXR1cmVzLmNwcApAQCAtMzU5LDI0ICszNTksNiBAQCBib29s
IFdlYlJ1bnRpbWVGZWF0dXJlczo6aXNQZWVyQ29ubmVjdGlvbkVuYWJsZWQoKQogI2VuZGlmCiB9
CiAKLXZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVEZXByZWNhdGVkUGVlckNvbm5lY3Rp
b24oYm9vbCBlbmFibGUpCi17Ci0jaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXREZXByZWNhdGVkUGVlckNvbm5lY3Rpb25FbmFibGVkKGVuYWJs
ZSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmFibGUpOwotI2VuZGlmCi19Ci0KLWJvb2wg
V2ViUnVudGltZUZlYXR1cmVzOjppc0RlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoKQot
ewotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0gICAgcmV0dXJuIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OmRlcHJlY2F0ZWRQZWVyQ29ubmVjdGlvbkVuYWJsZWQoKTsKLSNlbHNlCi0gICAgcmV0
dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIHZvaWQgV2ViUnVudGltZUZlYXR1cmVzOjplbmFibGVG
dWxsU2NyZWVuQVBJKGJvb2wgZW5hYmxlKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlc3Npb25EZXNjcmlw
dGlvbkRlc2NyaXB0b3IuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2Vzc2lv
bkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA1Y2ZjZTM2ZDM4ZDhhYzg3NjkxMGEwZDQ1OTU2Y2FiOWFhNDRmYTguLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0gKiBt
ZXQ6Ci0gKgotICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSAqIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLSAqIGRpc3RyaWJ1dGlvbi4KLSAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAqIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gKiB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICog
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2luY2x1ZGUgPHB1YmxpYy9XZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmg+
Ci0KLSNpbmNsdWRlICJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yLmgiCi0jaW5jbHVkZSA8
cHVibGljL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2Vi
U3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi11c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLVdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I6OldlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3IoY29uc3QgUGFzc1JlZlB0cjxT
ZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yPiYgc2Vzc2lvbkRlc2NyaXB0aW9uKQotICAgIDog
bV9wcml2YXRlKHNlc3Npb25EZXNjcmlwdGlvbikKLXsKLX0KLQotdm9pZCBXZWJTZXNzaW9uRGVz
Y3JpcHRpb25EZXNjcmlwdG9yOjphc3NpZ24oY29uc3QgV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVz
Y3JpcHRvciYgb3RoZXIpCi17Ci0gICAgbV9wcml2YXRlID0gb3RoZXIubV9wcml2YXRlOwotfQot
Ci12b2lkIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OnJlc2V0KCkKLXsKLSAgICBt
X3ByaXZhdGUucmVzZXQoKTsKLX0KLQotV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6
b3BlcmF0b3IgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlNlc3Npb25EZXNjcmlwdGlvbkRlc2Ny
aXB0b3I+KCkKLXsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpOwotfQotCi12b2lkIFdlYlNl
c3Npb25EZXNjcmlwdGlvbkRlc2NyaXB0b3I6OmluaXRpYWxpemUoY29uc3QgV2ViU3RyaW5nJiBz
ZHApCi17Ci0gICAgbV9wcml2YXRlID0gU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvcjo6Y3Jl
YXRlKHNkcCk7Ci19Ci0KLXNpemVfdCBXZWJTZXNzaW9uRGVzY3JpcHRpb25EZXNjcmlwdG9yOjpu
dW1iZXJPZkFkZGVkQ2FuZGlkYXRlcygpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKCFtX3ByaXZhdGUu
aXNOdWxsKCkpOwotICAgIHJldHVybiBtX3ByaXZhdGUuZ2V0KCktPm51bWJlck9mQWRkZWRDYW5k
aWRhdGVzKCk7Ci19Ci0KLVdlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IgV2ViU2Vzc2lvbkRlc2Ny
aXB0aW9uRGVzY3JpcHRvcjo6Y2FuZGlkYXRlKHNpemVfdCBpbmRleCkgY29uc3QKLXsKLSAgICBB
U1NFUlQoIW1fcHJpdmF0ZS5pc051bGwoKSk7Ci0gICAgcmV0dXJuIG1fcHJpdmF0ZS5nZXQoKS0+
Y2FuZGlkYXRlKGluZGV4KTsKLX0KLQotV2ViU3RyaW5nIFdlYlNlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3I6OmluaXRpYWxTRFAoKSBjb25zdAotewotICAgIEFTU0VSVCghbV9wcml2YXRlLmlz
TnVsbCgpKTsKLSAgICByZXR1cm4gbV9wcml2YXRlLmdldCgpLT5pbml0aWFsU0RQKCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
LQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYz
NTFkYTc4MWNhODZiNDBkMTFlNzA5OWZiY2YxNmU5YzljYjkyOGEuLjA1NjliZTAwYjlmMTc2ZTQ2
NTlmMTRhZDk4YWU3NGY4NGQ5ZjRlNjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0xMS0wOSAgVG9tbXkgV2lk
ZW5mbHljaHQgIDx0b21teXdAZ29vZ2xlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbSBBUEk6
IERlbGV0aW5nIGFsbCBmaWxlcyByZWxhdGluZyB0byB0aGUgZGVwcmVjYXRlZCBQZWVyQ29ubmVj
dGlvbjAwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDE3MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
aW5jZSBSVENQZWVyQ29uZW5jdGlvbiBoYXMgc3VwZXJzZWVkZWQgUGVlckNvbm5lY3Rpb24wMCB0
aGlzIHBhdGNoIHJlbW92ZXMgYWxsCisgICAgICAgIGZpbGVzIHJlbGF0aW5nIHRvIHRoZSBvbGQg
QVBJLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3Ry
ZWFtQ2VudGVyLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2Vi
TWVkaWFTdHJlYW1DZW50ZXIuaDoKKyAgICAgICAgKE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAg
ICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKwogMjAxMi0xMS0wOCAgU3VkYXJzYW5hIE5hZ2lu
ZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBhYm91
dDpibGFuayBzaG91bGQgZGlzcGxheSB0aGUgYmxhbmsgcGFnZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5jcHAK
aW5kZXggNDQxMGVmMmY5MjEwOTYzYzEwNWEwOGE5NWE3YzE0MTQ0MGVkOTQyMC4uYjcxNzhmMDk5
MTQ2NmJlYWJmMDYwMzY5ZGVjZjU1NTBhNTgxMzBhNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9Nb2NrV2ViTWVkaWFTdHJlYW1DZW50ZXIuY3BwCkBA
IC0zMywxMyArMzMsMTEgQEAKIAogI2luY2x1ZGUgIk1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5o
IgogCi0jaW5jbHVkZSA8cHVibGljL1dlYklDRUNhbmRpZGF0ZURlc2NyaXB0b3IuaD4KICNpbmNs
dWRlIDxwdWJsaWMvV2ViTWVkaWFTdHJlYW1DZW50ZXJDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViTWVkaWFTdHJlYW1Db21wb25lbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTWVkaWFT
dHJlYW1EZXNjcmlwdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNl
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYk1lZGlhU3RyZWFtU291cmNlc1JlcXVlc3QuaD4KLSNp
bmNsdWRlIDxwdWJsaWMvV2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvci5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJWZWN0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTkx
LDI0ICs4OSw0IEBAIHZvaWQgTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpkaWRDcmVhdGVNZWRp
YVN0cmVhbShXZWJNZWRpYVN0cmVhbURlc2NyaXB0b3ImKQogewogfQogCi1XZWJTdHJpbmcgTW9j
a1dlYk1lZGlhU3RyZWFtQ2VudGVyOjpjb25zdHJ1Y3RTRFAoY29uc3QgV2ViSUNFQ2FuZGlkYXRl
RGVzY3JpcHRvciYgaWNlQ2FuZGlkYXRlKQotewotICAgIHN0cmluZzE2IHJlc3VsdCA9IGljZUNh
bmRpZGF0ZS5sYWJlbCgpOwotICAgIHJlc3VsdCArPSBXZWJTdHJpbmcoIjoiKTsKLSAgICByZXN1
bHQgKz0gaWNlQ2FuZGlkYXRlLmNhbmRpZGF0ZUxpbmUoKTsKLSAgICByZXN1bHQgKz0gV2ViU3Ry
aW5nKCI7Iik7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotV2ViU3RyaW5nIE1vY2tXZWJNZWRp
YVN0cmVhbUNlbnRlcjo6Y29uc3RydWN0U0RQKGNvbnN0IFdlYlNlc3Npb25EZXNjcmlwdGlvbkRl
c2NyaXB0b3ImIHNlc3Npb25EZXNjcmlwdGlvbikKLXsKLSAgICBzdHJpbmcxNiByZXN1bHQgPSBz
ZXNzaW9uRGVzY3JpcHRpb24uaW5pdGlhbFNEUCgpOwotICAgIHJlc3VsdCArPSBXZWJTdHJpbmco
IjsiKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNlc3Npb25EZXNjcmlwdGlvbi5udW1i
ZXJPZkFkZGVkQ2FuZGlkYXRlcygpOyArK2kpIHsKLSAgICAgICAgcmVzdWx0ICs9IGNvbnN0cnVj
dFNEUChzZXNzaW9uRGVzY3JpcHRpb24uY2FuZGlkYXRlKGkpKTsKLSAgICAgICAgcmVzdWx0ICs9
IFdlYlN0cmluZygiOyIpOwotICAgIH0KLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiAjZW5kaWYg
Ly8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL01vY2tXZWJNZWRpYVN0cmVhbUNlbnRlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKaW5kZXggMjg2ZGMzZjhkZGYy
ZmNmODRmZDljMzg4ZmJmMmQ3N2E5NmVjNWU4NS4uN2Q1MzJlNzQzN2RmYzViNThhNGY4NTU2NjBh
ZGMzNTMwNjg4Nzk3NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTW9ja1dlYk1lZGlhU3RyZWFtQ2VudGVyLmgKQEAgLTQ5LDggKzQ5LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBkaWRSZW1vdmVNZWRpYVN0cmVhbVRyYWNrKGNvbnN0IFdlYktp
dDo6V2ViTWVkaWFTdHJlYW1EZXNjcmlwdG9yJiwgY29uc3QgV2ViS2l0OjpXZWJNZWRpYVN0cmVh
bUNvbXBvbmVudCYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wTG9jYWxNZWRp
YVN0cmVhbShjb25zdCBXZWJLaXQ6OldlYk1lZGlhU3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDcmVhdGVNZWRpYVN0cmVhbShXZWJLaXQ6OldlYk1lZGlh
U3RyZWFtRGVzY3JpcHRvciYpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJp
bmcgY29uc3RydWN0U0RQKGNvbnN0IFdlYktpdDo6V2ViSUNFQ2FuZGlkYXRlRGVzY3JpcHRvciYp
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgV2ViS2l0OjpXZWJTdHJpbmcgY29uc3RydWN0U0RQKGNv
bnN0IFdlYktpdDo6V2ViU2Vzc2lvbkRlc2NyaXB0aW9uRGVzY3JpcHRvciYpIE9WRVJSSURFOwog
CiBwcml2YXRlOgogICAgIE1vY2tXZWJNZWRpYVN0cmVhbUNlbnRlcigpIHsgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXggMmJjY2I2YTMyYWU3Mzgz
MDE5MDM4ZmJlYjBhYmJiY2UwMDRhNTIyZC4uODYzMjEyN2JlN2EyOTE1N2IzMzQyMTNiODIzYjY5
ZGQ2NjM4YzM2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFNoZWxsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
Y3BwCkBAIC0xMzksNyArMTM5LDYgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoKQogICAgIFdlYlJ1
bnRpbWVGZWF0dXJlczo6ZW5hYmxlRW5jcnlwdGVkTWVkaWEodHJ1ZSk7CiAgICAgV2ViUnVudGlt
ZUZlYXR1cmVzOjplbmFibGVNZWRpYVN0cmVhbSh0cnVlKTsKICAgICBXZWJSdW50aW1lRmVhdHVy
ZXM6OmVuYWJsZVBlZXJDb25uZWN0aW9uKHRydWUpOwotICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6
ZW5hYmxlRGVwcmVjYXRlZFBlZXJDb25uZWN0aW9uKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0
dXJlczo6ZW5hYmxlV2ViQXVkaW8odHJ1ZSk7CiAgICAgV2ViUnVudGltZUZlYXR1cmVzOjplbmFi
bGVWaWRlb1RyYWNrKHRydWUpOwogICAgIFdlYlJ1bnRpbWVGZWF0dXJlczo6ZW5hYmxlR2FtZXBh
ZCh0cnVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBiOWZhNzUyOWIyYWIwZmU3ZjYxNjlmZTY1MzE4ZDA5OGFiNzQ0NzEz
Li4xOGNlNzIxNjE5NWFjNTFhOWRhZGEzYjRkNjViZjY0ZTEyNTlmMDUxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzYgQEAKKzIwMTItMTEtMDkgIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5j
b20+CisKKyAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBEZWxldGluZyBhbGwgZmlsZXMgcmVsYXRp
bmcgdG8gdGhlIGRlcHJlY2F0ZWQgUGVlckNvbm5lY3Rpb24wMAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNzMwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2luY2UgUlRDUGVlckNvbmVuY3Rpb24gaGFz
IHN1cGVyc2VlZGVkIFBlZXJDb25uZWN0aW9uMDAgdGhpcyBwYXRjaCByZW1vdmVzIGFsbAorICAg
ICAgICBmaWxlcyByZWxhdGluZyB0byB0aGUgb2xkIEFQSS4KKworICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBmYXN0L21lZGlhc3RyZWFtL1Nlc3Npb25EZXNjcmlwdGlvbi5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2NvbnN0cnVjdG9ycy5odG1sOgorICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRlcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1
dGVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVj
dGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlv
bi1hcmd1bWVudC10eXBlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24tZXZlbnRsaXN0ZW5lci1vcHRpb25hbC1hcmd1bWVudC1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlv
bi1ldmVudGxpc3RlbmVyLW9wdGlvbmFsLWFyZ3VtZW50Lmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1pY2VvcHRpb25zLWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWlj
ZW9wdGlvbnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJj
b25uZWN0aW9uLW1lZGlhc3RyZWFtbGlzdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1tZWRpYXN0cmVhbWxpc3QuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92
ZXN0cmVhbS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVh
bS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLmpz
OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJj
b25uZWN0aW9uLWFkZHN0cmVhbS5qczogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy5qczogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlv
bi1yZW1vdmVzdHJlYW0uanM6IFJlbW92ZWQuCisKIDIwMTItMTEtMDggIEhheWF0byBJdG8gIDxo
YXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBjaHJvbWl1
bS1tYWMgYmFzZWxpbmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9TZXNzaW9uRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9TZXNzaW9uRGVzY3JpcHRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA3NWQwZjQ4NGVkMzdhMmUyMjJmYTc1N2RjNzU4OWM1M2NjZWVhMjc1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vU2Vzc2lvbkRlc2NyaXB0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE2ICswLDAgQEAKLVRlc3RzIHRoZSBKU0VQIFNlc3Npb25EZXNjcmlwdGlv
bi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc2Vzc2lvbkRlc2NyaXB0
aW9uID0gbmV3IFNlc3Npb25EZXNjcmlwdGlvbignJyk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgotUEFTUyBzZXNzaW9uRGVzY3JpcHRpb24uYWRkQ2FuZGlkYXRlKCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIHNlc3Npb25EZXNjcmlwdGlv
bi5hZGRDYW5kaWRhdGUobnVsbCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENI
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KLVBBU1Mgc2Vzc2lvbkRlc2NyaXB0aW9uLmFkZENhbmRp
ZGF0ZSh1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6
IERPTSBFeGNlcHRpb24gMTcuCi1QQVNTIHNlc3Npb25EZXNjcmlwdGlvbi5hZGRDYW5kaWRhdGUo
NDIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGljZUNhbmRp
ZGF0ZSA9IG5ldyBJY2VDYW5kaWRhdGUoJycsICcnKTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
Ci1QQVNTIHNlc3Npb25EZXNjcmlwdGlvbi5hZGRDYW5kaWRhdGUoaWNlQ2FuZGlkYXRlKSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1Nlc3Npb25EZXNjcmlwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9T
ZXNzaW9uRGVzY3JpcHRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGJk
MmE3MDMyMzBkOGNmOTNiYTE5ZjExYTAzODcyNzRkMjcxZTFlNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L1Nlc3Npb25EZXNjcmlwdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAot
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08
aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyB0
aGUgSlNFUCBTZXNzaW9uRGVzY3JpcHRpb24uIik7Ci0KLXNlc3Npb25EZXNjcmlwdGlvbiA9IG51
bGw7Ci1zaG91bGROb3RUaHJvdygic2Vzc2lvbkRlc2NyaXB0aW9uID0gbmV3IFNlc3Npb25EZXNj
cmlwdGlvbignJyk7Iik7Ci1zaG91bGRUaHJvdygic2Vzc2lvbkRlc2NyaXB0aW9uLmFkZENhbmRp
ZGF0ZSgpIik7Ci1zaG91bGRUaHJvdygic2Vzc2lvbkRlc2NyaXB0aW9uLmFkZENhbmRpZGF0ZShu
dWxsKSIpOwotc2hvdWxkVGhyb3coInNlc3Npb25EZXNjcmlwdGlvbi5hZGRDYW5kaWRhdGUodW5k
ZWZpbmVkKSIpOwotc2hvdWxkVGhyb3coInNlc3Npb25EZXNjcmlwdGlvbi5hZGRDYW5kaWRhdGUo
NDIpIik7Ci1pY2VDYW5kaWRhdGUgPSBudWxsOwotc2hvdWxkTm90VGhyb3coImljZUNhbmRpZGF0
ZSA9IG5ldyBJY2VDYW5kaWRhdGUoJycsICcnKTsiKTsKLXNob3VsZE5vdFRocm93KCJzZXNzaW9u
RGVzY3JpcHRpb24uYWRkQ2FuZGlkYXRlKGljZUNhbmRpZGF0ZSkiKTsKLQotd2luZG93LmpzVGVz
dElzQXN5bmMgPSBmYWxzZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jb25zdHJ1Y3RvcnMtZXhwZWN0ZWQudHh0
CmluZGV4IGNhYTQxYjAzNWFhODQ0ZWFkMzliM2Q4YmRiYmRhMTUwMzE2ZDQwNTguLjgxN2NlY2Jl
OTgxM2JiMDZmYjc4MDI4NDJkMGVhNDgxZDM3NTllNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vY29uc3RydWN0b3JzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL2NvbnN0cnVjdG9ycy1leHBlY3RlZC50eHQKQEAgLTMsMjEg
KzMsMTIgQEAgVGVzdHMgdGhlIEpTRVAgUGVlckNvbm5lY3Rpb24gcmVsYXRlZCBjb25zdHJ1Y3Rv
cnMuCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0eXBlb2Ygd2Via2l0UGVl
ckNvbm5lY3Rpb24wMCA9PT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCi1QQVNTIHR5cGVvZiBTZXNzaW9u
RGVzY3JpcHRpb24gPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQotUEFTUyB0eXBlb2YgSWNlQ2FuZGlk
YXRlID09PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgdHlwZW9mIHdlYmtpdFJUQ1BlZXJDb25u
ZWN0aW9uID09PSAnZnVuY3Rpb24nIGlzIHRydWUKIFBBU1MgdHlwZW9mIFJUQ1Nlc3Npb25EZXNj
cmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCiBQQVNTIHR5cGVvZiBSVENJY2VDYW5kaWRh
dGUgPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQotUEFTUyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3Qg
YmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uLgotUEFTUyBTZXNzaW9uRGVzY3JpcHRpb24oKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBj
YWxsZWQgYXMgYSBmdW5jdGlvbi4uCi1QQVNTIEljZUNhbmRpZGF0ZSgpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBh
IGZ1bmN0aW9uLi4KIFBBU1Mgd2Via2l0UlRDUGVlckNvbm5lY3Rpb24oKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMg
YSBmdW5jdGlvbi4uCiBQQVNTIFJUQ1Nlc3Npb25EZXNjcmlwdGlvbigpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IERPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBh
IGZ1bmN0aW9uLi4KIFBBU1MgUlRDSWNlQ2FuZGlkYXRlKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rp
b24uLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgnU1RVTiBmb29iYXIuY29tOjEy
MzQ1JywgZnVuY3Rpb24oKXt9KTsgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5ldyBT
ZXNzaW9uRGVzY3JpcHRpb24oJycpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmV3
IEljZUNhbmRpZGF0ZSgnJywgJycpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmV3
IHdlYmtpdFJUQ1BlZXJDb25uZWN0aW9uKHtpY2VTZXJ2ZXJzOlt7dXJsOidzdHVuOi8vZm9vYmFy
LmNvbToxMjM0NSd9XX0sIG51bGwpOyBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmV3
IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbih7dHlwZTonb2ZmZXInLHNkcDonZm9vYmFyJ30pOyBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KIFBBU1MgbmV3IFJUQ0ljZUNhbmRpZGF0ZSh7Y2FuZGlkYXRl
Oidmb28nfSk7IGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9jb25zdHJ1Y3RvcnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vY29uc3RydWN0b3JzLmh0bWwKaW5kZXggOGIxZjA4YTA1NmMzOTRhNjdmOGFi
YmVjZmFkNmUwMTM4YzgxZTEyYS4uNTM0YmFkOGVmMGRlNjYyMGE4MTcwYWQxZmM3NTA5MWE3MDI3
NWFiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9jb25zdHJ1Y3Rv
cnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2NvbnN0cnVjdG9ycy5o
dG1sCkBAIC0xMCwyMyArMTAsMTQgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVzdHMgdGhl
IEpTRVAgUGVlckNvbm5lY3Rpb24gcmVsYXRlZCBjb25zdHJ1Y3RvcnMuIik7CiAKLXNob3VsZEJl
VHJ1ZSgidHlwZW9mIHdlYmtpdFBlZXJDb25uZWN0aW9uMDAgPT09ICdmdW5jdGlvbiciKTsKLXNo
b3VsZEJlVHJ1ZSgidHlwZW9mIFNlc3Npb25EZXNjcmlwdGlvbiA9PT0gJ2Z1bmN0aW9uJyIpOwot
c2hvdWxkQmVUcnVlKCJ0eXBlb2YgSWNlQ2FuZGlkYXRlID09PSAnZnVuY3Rpb24nIik7CiBzaG91
bGRCZVRydWUoInR5cGVvZiB3ZWJraXRSVENQZWVyQ29ubmVjdGlvbiA9PT0gJ2Z1bmN0aW9uJyIp
Owogc2hvdWxkQmVUcnVlKCJ0eXBlb2YgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uID09PSAnZnVuY3Rp
b24nIik7CiBzaG91bGRCZVRydWUoInR5cGVvZiBSVENJY2VDYW5kaWRhdGUgPT09ICdmdW5jdGlv
biciKTsKIAotc2hvdWxkVGhyb3coIndlYmtpdFBlZXJDb25uZWN0aW9uMDAoKSIpOwotc2hvdWxk
VGhyb3coIlNlc3Npb25EZXNjcmlwdGlvbigpIik7Ci1zaG91bGRUaHJvdygiSWNlQ2FuZGlkYXRl
KCkiKTsKIHNob3VsZFRocm93KCJ3ZWJraXRSVENQZWVyQ29ubmVjdGlvbigpIik7CiBzaG91bGRU
aHJvdygiUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKCkiKTsKIHNob3VsZFRocm93KCJSVENJY2VDYW5k
aWRhdGUoKSIpOwogCi1zaG91bGROb3RUaHJvdygibmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAo
J1NUVU4gZm9vYmFyLmNvbToxMjM0NScsIGZ1bmN0aW9uKCl7fSk7Iik7Ci1zaG91bGROb3RUaHJv
dygibmV3IFNlc3Npb25EZXNjcmlwdGlvbignJyk7Iik7Ci1zaG91bGROb3RUaHJvdygibmV3IElj
ZUNhbmRpZGF0ZSgnJywgJycpOyIpOwogc2hvdWxkTm90VGhyb3coIm5ldyB3ZWJraXRSVENQZWVy
Q29ubmVjdGlvbih7aWNlU2VydmVyczpbe3VybDonc3R1bjovL2Zvb2Jhci5jb206MTIzNDUnfV19
LCBudWxsKTsiKTsKIHNob3VsZE5vdFRocm93KCJuZXcgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uKHt0
eXBlOidvZmZlcicsc2RwOidmb29iYXInfSk7Iik7CiBzaG91bGROb3RUaHJvdygibmV3IFJUQ0lj
ZUNhbmRpZGF0ZSh7Y2FuZGlkYXRlOidmb28nfSk7Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVz
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzA1YTE5ZTk5MGZh
ZGUzN2ViNGRmMGI3NzJmZGQ3YTEwMmQzNmRhZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25u
ZWN0aW9uLUF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAs
MCBAQAotVGVzdHMgUGVlckNvbm5lY3Rpb24wMCByZWxhdGVkIGF0dHJpYnV0ZXMgYWNjb3JkaW5n
IHRvIGh0dHA6Ly93d3cudzMub3JnL1RSL3dlYnJ0Yy8KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVBBU1MgdHlwZW9mIHBjLmFkZFN0cmVhbSA9PT0gJ2Z1bmN0aW9uJyBpcyB0cnVl
Ci1QQVNTIHR5cGVvZiBwYy5yZW1vdmVTdHJlYW0gPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQotUEFT
UyB0eXBlb2YgcGMuY2xvc2UgPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQotUEFTUyBwYy5ORVcgPT09
IDAgaXMgdHJ1ZQotUEFTUyBwYy5PUEVOSU5HID09PSAxIGlzIHRydWUKLVBBU1MgcGMuQUNUSVZF
ID09PSAyIGlzIHRydWUKLVBBU1MgcGMuQ0xPU0VEID09PSAzIGlzIHRydWUKLVBBU1MgcGMuSUNF
X0dBVEhFUklORyA9PT0gMHgxMDAgaXMgdHJ1ZQotUEFTUyBwYy5JQ0VfV0FJVElORyA9PT0gMHgy
MDAgaXMgdHJ1ZQotUEFTUyBwYy5JQ0VfQ0hFQ0tJTkcgPT09IDB4MzAwIGlzIHRydWUKLVBBU1Mg
cGMuSUNFX0NPTk5FQ1RFRCA9PT0gMHg0MDAgaXMgdHJ1ZQotUEFTUyBwYy5JQ0VfQ09NUExFVEVE
ID09PSAweDUwMCBpcyB0cnVlCi1QQVNTIHBjLklDRV9GQUlMRUQgPT09IDB4NjAwIGlzIHRydWUK
LVBBU1MgcGMuSUNFX0NMT1NFRCA9PT0gMHg3MDAgaXMgdHJ1ZQotUEFTUyBwYy5TRFBfT0ZGRVIg
PT09IDB4MTAwIGlzIHRydWUKLVBBU1MgcGMuU0RQX1BSQU5TV0VSID09PSAweDIwMCBpcyB0cnVl
Ci1QQVNTIHBjLlNEUF9BTlNXRVIgPT09ICAweDMwMCBpcyB0cnVlCi1QQVNTIHR5cGVvZiBwYy5s
b2NhbFN0cmVhbXMgPT09ICdvYmplY3QnIGlzIHRydWUKLVBBU1MgdHlwZW9mIHBjLnJlbW90ZVN0
cmVhbXMgPT09ICdvYmplY3QnIGlzIHRydWUKLVBBU1MgdHlwZW9mIHBjLm9uYWRkc3RyZWFtID09
PSAnb2JqZWN0JyBpcyB0cnVlCi1QQVNTIHR5cGVvZiBwYy5vbnJlbW92ZXN0cmVhbSA9PT0gJ29i
amVjdCcgaXMgdHJ1ZQotUEFTUyB0eXBlb2YgcGMub25jb25uZWN0aW5nID09PSAnb2JqZWN0JyBp
cyB0cnVlCi1QQVNTIHR5cGVvZiBwYy5vbm9wZW4gPT09ICdvYmplY3QnIGlzIHRydWUKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXMu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmli
dXRlcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MGZkYjNkMGJiMDY4NGNl
NmRjOWNlM2Y5NzYyYzI0OTIyZjYxNmQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rp
b24tQXR0cmlidXRlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NU
WVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4K
LTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wZWVyY29ubmVj
dGlvbi1BdHRyaWJ1dGVzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFt
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rp
b24tYWRkc3RyZWFtLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YjNkNDRhZmQyMDgxZjg2NTE2ZDdkNmQ0MzEyOTE0M2VjYjlmZjQzYS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxNyArMCwwIEBACi1UZXN0cyBQZWVyQ29ubmVjdGlvbjAwOjphZGRTdHJlYW0oKS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcGMuYWRkU3RyZWFtKCkgdGhyZXcg
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cwotUEFTUyBwYy5hZGRTdHJlYW0odW5kZWZp
bmVkKSB0aHJldyBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKLVBB
U1MgcGMuYWRkU3RyZWFtKG51bGwpIHRocmV3IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNwotUEFTUyBwYy5hZGRTdHJlYW0obmV3IEFycmF5KCkpIHRocmV3IFR5cGVF
cnJvcjogVHlwZSBlcnJvcgotUEFTUyBwYy5hZGRTdHJlYW0oe30pIHRocmV3VHlwZUVycm9yOiBU
eXBlIGVycm9yCi1QQVNTIHBjLmFkZFN0cmVhbSg0MikgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJy
b3IKLVBBU1MgcGMuYWRkU3RyZWFtKEluZmluaXR5KSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJv
cgotUEFTUyBwYy5hZGRTdHJlYW0oLUluZmluaXR5KSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJv
cgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRk
c3RyZWFtLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9u
LWFkZHN0cmVhbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhN2JlOTBmZDgz
ZjZmYmRlNzdlZDQxNjk1ODUyZTgzZWFjYjAwNWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNv
bm5lY3Rpb24tYWRkc3RyZWFtLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi08
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxo
ZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BlZXJj
b25uZWN0aW9uLWFkZHN0cmVhbS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3Vt
ZW50LXR5cGVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVl
cmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlM2QxYzJkZDcxYzlkYWNlMWM2MGQyNTM4MzFlMzQ1NDJmZjY0NzE4Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAotVGVzdHMgdGhlIGFjY2VwdGFibGUg
dHlwZXMgZm9yIGFyZ3VtZW50cyB0byBtZXRob2QgZm9yIFBlZXJDb25uZWN0aW9uMDAgZGVmaW5h
dGlvbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgdHlwZW9mIHdlYmtp
dFBlZXJDb25uZWN0aW9uMDAgPT09ICdmdW5jdGlvbicgaXMgdHJ1ZQotUEFTUyBuZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24wMCgpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiU1RVTiAyMDMuMC4x
MTMuMjoyNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOIHJlbGF5LmV4YW1wbGUu
bmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU4gZXhhbXBsZS5uZXQiKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU5TIDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uMDAoIlNUVU5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uMDAoIlNUVU5TIGV4YW1wbGUubmV0IikgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbjAwKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAo
IlRVUk4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgi
VFVSTiBleGFtcGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVSTlMgMjAzLjAu
MTEzLjI6MjQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVSTlMgcmVsYXkuZXhhbXBs
ZS5uZXQ6MzQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVSTlMgZXhhbXBsZS5uZXQi
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1Mg
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk4gTk9ORSIpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24wMCgiVFVSTlMgTk9ORSIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiU1RVTiBOT05F
IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNT
IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyBOT05FIikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbjAwKCJ1bmRlZmluZWQiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIm51bGwiKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoe30pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCg0Mikg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIG5l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
MDAoLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoZW1wdHlGdW5jdGlvbikgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIG5ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rp
b24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24wMCgiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU4g
ZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFT
UyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1w
dHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbjAwKCJTVFVOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0eUZ1bmN0aW9u
KSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
MDAoIlNUVU5TIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KLVBBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk4gMjAzLjAuMTEzLjI6
MjQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIG5ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5
RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24wMCgiVFVSTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOUyAyMDMu
MC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBB
U1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0
NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24wMCgiVFVSTlMgZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgi
VFVSTiBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mg
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk5TIE5PTkUiLGVtcHR5RnVuY3Rpb24pIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgi
U1RVTiBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KLVBBU1Mg
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU5TIE5PTkUiLGVtcHR5RnVuY3Rpb24pIGRp
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLgotUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgi
VFVSTiBOT05FIix1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOUyBOT05FIix7fSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uMDAoIlNUVU4gTk9ORSIsNDIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5
cGUgZXJyb3IuCi1QQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyBOT05FIixJ
bmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU5TIE5PTkUiLC1JbmZpbml0eSkgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmh0bWwKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI0NjhiYWI2YjMwZGMxOWY5NGYxZWYxZDY2ZTc3
YmViMjhiZGYzMmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10
eXBlcy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
LTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hcmd1
bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWV2ZW50bGlzdGVuZXIt
b3B0aW9uYWwtYXJndW1lbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9wZWVyY29ubmVjdGlvbi1ldmVudGxpc3RlbmVyLW9wdGlvbmFsLWFyZ3VtZW50LWV4cGVj
dGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRhYzFhYjgwNmNhYWQ1NDRm
ZDVhMmFmODkzMWE2Njk5NjdmZWVhMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9u
LWV2ZW50bGlzdGVuZXItb3B0aW9uYWwtYXJndW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMTUgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIGlmIHRoZSB0aGlyZCBhcmd1
bWVudCBvZiBhZGRFdmVudExpc3RlbmVyKCkgYW5kIHJlbW92ZUV2ZW50TGlzdGVuZXIoKSBpcyBv
cHRpb25hbC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcGMuYWRkRXZl
bnRMaXN0ZW5lcigiZm9vIiwgZnVuY3Rpb24oKSB7fSkgaXMgdW5kZWZpbmVkCi1QQVNTIHBjLmFk
ZEV2ZW50TGlzdGVuZXIoImZvbyIsIGZ1bmN0aW9uKCkge30sIGZhbHNlKSBpcyB1bmRlZmluZWQK
LVBBU1MgcGMuYWRkRXZlbnRMaXN0ZW5lcigiZm9vIiwgZnVuY3Rpb24oKSB7fSwgdHJ1ZSkgaXMg
dW5kZWZpbmVkCi1QQVNTIHBjLnJlbW92ZUV2ZW50TGlzdGVuZXIoImZvbyIsIGZ1bmN0aW9uKCkg
e30pIGlzIHVuZGVmaW5lZAotUEFTUyBwYy5yZW1vdmVFdmVudExpc3RlbmVyKCJmb28iLCBmdW5j
dGlvbigpIHt9LCBmYWxzZSkgaXMgdW5kZWZpbmVkCi1QQVNTIHBjLnJlbW92ZUV2ZW50TGlzdGVu
ZXIoImZvbyIsIGZ1bmN0aW9uKCkge30sIHRydWUpIGlzIHVuZGVmaW5lZAotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tZXZlbnRsaXN0ZW5lci1vcHRp
b25hbC1hcmd1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29u
bmVjdGlvbi1ldmVudGxpc3RlbmVyLW9wdGlvbmFsLWFyZ3VtZW50Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQzYWQxNDkxOTM3MDMxMTdlNDU4NGQ3ZTA1Y2YxMDZmNTMyNGZh
ODQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1ldmVudGxpc3RlbmVyLW9wdGlv
bmFsLWFyZ3VtZW50Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi08IURPQ1RZ
UEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci08L2JvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjb25m
aXJtcyBpZiB0aGUgdGhpcmQgYXJndW1lbnQgb2YgYWRkRXZlbnRMaXN0ZW5lcigpIGFuZCByZW1v
dmVFdmVudExpc3RlbmVyKCkgaXMgb3B0aW9uYWwuIik7Ci0KLXZhciBwYyA9IG5ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbjAwKCJzb21lLnNlcnZlci5jb20iLCBmdW5jdGlvbigpIHt9KTsKLXNob3Vs
ZEJlKCdwYy5hZGRFdmVudExpc3RlbmVyKCJmb28iLCBmdW5jdGlvbigpIHt9KScsICd1bmRlZmlu
ZWQnKTsKLXNob3VsZEJlKCdwYy5hZGRFdmVudExpc3RlbmVyKCJmb28iLCBmdW5jdGlvbigpIHt9
LCBmYWxzZSknLCAndW5kZWZpbmVkJyk7Ci1zaG91bGRCZSgncGMuYWRkRXZlbnRMaXN0ZW5lcigi
Zm9vIiwgZnVuY3Rpb24oKSB7fSwgdHJ1ZSknLCAndW5kZWZpbmVkJyk7Ci1zaG91bGRCZSgncGMu
cmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9vIiwgZnVuY3Rpb24oKSB7fSknLCAndW5kZWZpbmVkJyk7
Ci1zaG91bGRCZSgncGMucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9vIiwgZnVuY3Rpb24oKSB7fSwg
ZmFsc2UpJywgJ3VuZGVmaW5lZCcpOwotc2hvdWxkQmUoJ3BjLnJlbW92ZUV2ZW50TGlzdGVuZXIo
ImZvbyIsIGZ1bmN0aW9uKCkge30sIHRydWUpJywgJ3VuZGVmaW5lZCcpOwotCi13aW5kb3cuc3Vj
Y2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWljZW9wdGlvbnMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlv
bi1pY2VvcHRpb25zLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MzNlZmNlYWIwNGVhNWY4ODNhNTIzNTYwNzhmOGZmYTcwOWM2OTY3Yy4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3BlZXJjb25uZWN0aW9uLWljZW9wdGlvbnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTYgKzAsMCBAQAotVGVzdHMgUGVlckNvbmVuY3Rpb24wMDo6c3RhcnRJY2UoKS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcGMuc3RhcnRJY2UoKSBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4KLVBBU1MgcGMuc3RhcnRJY2UoNSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGFuIG9iamVjdC4uCi1QQVNTIHBjLnN0YXJ0SWNlKG51bGwpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgotUEFTUyBwYy5zdGFydEljZSh1bmRlZmluZWQpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgotUEFTUyBwYy5zdGFydEljZSh7fSkgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCi1QQVNTIHBjLnN0YXJ0SWNlKHsidXNlX2NhbmRpZGF0ZXMiOiJhbGwifSkgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCi1QQVNTIHBjLnN0YXJ0SWNlKHsidXNlX2NhbmRpZGF0ZXMiOiJmb29i
YXIifSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNy4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0
aW9uLWljZW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNv
bm5lY3Rpb24taWNlb3B0aW9ucy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAz
Y2U0OTgyNDU3NmFlMGJmNDAwZWI0ODVhZTFlMGUxMzE5NGM2ZmJhLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24taWNlb3B0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgot
PGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPC9ib2R5PgotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0cyBQZWVyQ29uZW5jdGlvbjAwOjpzdGFydEljZSgpLiIpOwotCi1mdW5j
dGlvbiB0ZXN0KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91bGRUaHJvdywgZXhwZWN0ZWRFeGNl
cHRpb24pIHsKLSAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRocm93KSB7Ci0gICAgICAgIGlmIChl
eHBlY3RlZEV4Y2VwdGlvbikKLSAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICco
ZnVuY3Rpb24oKSB7IHJldHVybiAiJyArIGV4cGVjdGVkRXhjZXB0aW9uICsgJyI7IH0pKCk7Jyk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICcoZnVu
Y3Rpb24oKSB7IHJldHVybiAiRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9u
IDE3IjsgfSkoKTsnKTsKLSAgICB9IGVsc2UgewotICAgICAgICBzaG91bGROb3RUaHJvdyhleHBy
ZXNzaW9uKTsKLSAgICB9Ci19Ci0KLXZhciBwYyA9IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAw
KCIiLCBmdW5jdGlvbigpIHt9KTsKLQotdGVzdCgncGMuc3RhcnRJY2UoKScsIGZhbHNlKTsKLXRl
c3QoJ3BjLnN0YXJ0SWNlKDUpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGFuIG9iamVjdC4nKTsK
LXRlc3QoJ3BjLnN0YXJ0SWNlKG51bGwpJywgZmFsc2UpOwotdGVzdCgncGMuc3RhcnRJY2UodW5k
ZWZpbmVkKScsIGZhbHNlKTsKLXRlc3QoJ3BjLnN0YXJ0SWNlKHt9KScsIGZhbHNlKTsKLXRlc3Qo
J3BjLnN0YXJ0SWNlKHsidXNlX2NhbmRpZGF0ZXMiOiJhbGwifSknLCBmYWxzZSk7Ci10ZXN0KCdw
Yy5zdGFydEljZSh7InVzZV9jYW5kaWRhdGVzIjoiZm9vYmFyIn0pJywgdHJ1ZSk7Ci0KLXdpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLW1lZGlhc3Ry
ZWFtbGlzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJj
b25uZWN0aW9uLW1lZGlhc3RyZWFtbGlzdC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDkwNGVjMTQ2YWNmYjA5M2M1NWI1NjA2MTk4ZDcwYzcwZDVhYmJlYTEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1tZWRpYXN0cmVhbWxpc3QtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotVGhpcyB0ZXN0IGNvbmZpcm1zIHRo
YXQgb3V0LW9mLWJvdW5kcyBhY2Nlc3Mgb2YgTWVkaWFTdHJlYW1MaXN0IHJldHVybnMgdW5kZWZp
bmVkLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBwYy5sb2NhbFN0cmVh
bXNbMHhiYWRjMGRlZF0gaXMgdW5kZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tbWVkaWFzdHJlYW1saXN0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLW1lZGlhc3RyZWFtbGlzdC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNjdiZmQ3ODBiYzRlODcyMjY3YWU1Y2QzNDk2
Yjg5NzdjYWZiN2ZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tbWVkaWFzdHJl
YW1saXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsg
cmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3Mi
PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBj
b25maXJtcyB0aGF0IG91dC1vZi1ib3VuZHMgYWNjZXNzIG9mIE1lZGlhU3RyZWFtTGlzdCByZXR1
cm5zIHVuZGVmaW5lZC4iKTsKLQotdmFyIHBjID0gbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAo
IiIsIGZ1bmN0aW9uKCkge30pOwotCi1zaG91bGRCZVVuZGVmaW5lZCgncGMubG9jYWxTdHJlYW1z
WzB4YmFkYzBkZWRdJyk7Ci0KLXdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQ3MzkyMmM3MzlmZTM1MThjMGYwMjNj
ZmY3YmY3YzEzNTI2MjBhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92
ZXN0cmVhbS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UZXN0
cyBQZWVyQ29ubmVjdGlvbjAwOjpyZW1vdmVTdHJlYW0oKS4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgcGMucmVtb3ZlU3RyZWFtKCk7IHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgotUEFTUyBwYy5yZW1vdmVTdHJlYW0odW5kZWZp
bmVkKTsgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNy4KLVBBU1MgcGMucmVtb3ZlU3RyZWFtKG51bGwpOyB0aHJldyBleGNlcHRpb24gRXJy
b3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3LgotUEFTUyBwYy5yZW1vdmVT
dHJlYW0obmV3IEFycmF5KCkpOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9y
LgotUEFTUyBwYy5yZW1vdmVTdHJlYW0oe30pOyB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBU
eXBlIGVycm9yLgotUEFTUyBwYy5yZW1vdmVTdHJlYW0oNDIpOyB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBwYy5yZW1vdmVTdHJlYW0oSW5maW5pdHkpOyB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBwYy5yZW1vdmVTdHJlYW0o
LUluZmluaXR5KTsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVh
bS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1v
dmVzdHJlYW0uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ0YWI3OTFlODEz
OWZiYWNiNmRlNDMwNDVhZmVmMDVkMzE3YzBjYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25u
ZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgotPGh0bWw+Ci08
aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRl
c3Qtc3R5bGUuY3NzIj4KLTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wZWVy
Y29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pz
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVl
cmNvbm5lY3Rpb24tQXR0cmlidXRlcy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
c2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXMuanMKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDg2NjY0NzNkMmE1M2M4YzY1NTM2ZDZjODA0ODFhODEyYzM1MDkwZjYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRl
cy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyBQ
ZWVyQ29ubmVjdGlvbjAwIHJlbGF0ZWQgYXR0cmlidXRlcyBhY2NvcmRpbmcgdG8gaHR0cDovL3d3
dy53My5vcmcvVFIvd2VicnRjLyIpOwotCi1wYyA9IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAw
KCJTVFVOIE5PTkUiLCBmdW5jdGlvbigpIHt9KTsKLQotLy8gTWV0aG9kcwotc2hvdWxkQmVUcnVl
KCJ0eXBlb2YgcGMuYWRkU3RyZWFtID09PSAnZnVuY3Rpb24nIik7Ci1zaG91bGRCZVRydWUoInR5
cGVvZiBwYy5yZW1vdmVTdHJlYW0gPT09ICdmdW5jdGlvbiciKTsKLXNob3VsZEJlVHJ1ZSgidHlw
ZW9mIHBjLmNsb3NlID09PSAnZnVuY3Rpb24nIik7Ci0KLS8vIFBlZXJDb25uZWN0aW9uIHJlYWR5
U3RhdGUKLXNob3VsZEJlVHJ1ZSgicGMuTkVXID09PSAwIik7Ci1zaG91bGRCZVRydWUoInBjLk9Q
RU5JTkcgPT09IDEiKTsKLXNob3VsZEJlVHJ1ZSgicGMuQUNUSVZFID09PSAyIik7Ci1zaG91bGRC
ZVRydWUoInBjLkNMT1NFRCA9PT0gMyIpOwotCi0vLyBJY2VTdGF0ZQotc2hvdWxkQmVUcnVlKCJw
Yy5JQ0VfR0FUSEVSSU5HID09PSAweDEwMCIpOwotc2hvdWxkQmVUcnVlKCJwYy5JQ0VfV0FJVElO
RyA9PT0gMHgyMDAiKTsKLXNob3VsZEJlVHJ1ZSgicGMuSUNFX0NIRUNLSU5HID09PSAweDMwMCIp
Owotc2hvdWxkQmVUcnVlKCJwYy5JQ0VfQ09OTkVDVEVEID09PSAweDQwMCIpOwotc2hvdWxkQmVU
cnVlKCJwYy5JQ0VfQ09NUExFVEVEID09PSAweDUwMCIpOwotc2hvdWxkQmVUcnVlKCJwYy5JQ0Vf
RkFJTEVEID09PSAweDYwMCIpOwotc2hvdWxkQmVUcnVlKCJwYy5JQ0VfQ0xPU0VEID09PSAweDcw
MCIpOwotCi0vLyBTRFAgc3RhdGUKLXNob3VsZEJlVHJ1ZSgicGMuU0RQX09GRkVSID09PSAweDEw
MCIpOwotc2hvdWxkQmVUcnVlKCJwYy5TRFBfUFJBTlNXRVIgPT09IDB4MjAwIik7Ci1zaG91bGRC
ZVRydWUoInBjLlNEUF9BTlNXRVIgPT09ICAweDMwMCIpOwotCi0vL01lZGlhU3RyZWFtW10gYXR0
cmlidXRlCi1zaG91bGRCZVRydWUoInR5cGVvZiBwYy5sb2NhbFN0cmVhbXMgPT09ICdvYmplY3Qn
Iik7Ci1zaG91bGRCZVRydWUoInR5cGVvZiBwYy5yZW1vdGVTdHJlYW1zID09PSAnb2JqZWN0JyIp
OwotCi0vL2NhbGxiYWNrIGZ1bmN0aW9uIGRlZmluaXRpb24KLXNob3VsZEJlVHJ1ZSgidHlwZW9m
IHBjLm9uYWRkc3RyZWFtID09PSAnb2JqZWN0JyIpOwotc2hvdWxkQmVUcnVlKCJ0eXBlb2YgcGMu
b25yZW1vdmVzdHJlYW0gPT09ICdvYmplY3QnIik7Ci1zaG91bGRCZVRydWUoInR5cGVvZiBwYy5v
bmNvbm5lY3RpbmcgPT09ICdvYmplY3QnIik7Ci1zaG91bGRCZVRydWUoInR5cGVvZiBwYy5vbm9w
ZW4gPT09ICdvYmplY3QnIik7Ci0KLXdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29u
bmVjdGlvbi1hZGRzdHJlYW0uanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Njcmlw
dC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0uanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDA2MjJkMGUwODIyZDAyZjdmMGJjZmZmNDk2MmNlZDFhMTY1YzkwNjQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzCisr
KyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3RzIFBlZXJDb25u
ZWN0aW9uMDA6OmFkZFN0cmVhbSgpLiIpOwotCi12YXIgcGMgPSBuZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24wMCgiU1RVTiBzb21lLnNlcnZlci5jb20iLCBmdW5jdGlvbigpIHt9KTsKLQotdHJ5IHsK
LSAgICBwYy5hZGRTdHJlYW0oKTsKLX0gY2F0Y2goZSkgewotICAgIHRlc3RQYXNzZWQoJ3BjLmFk
ZFN0cmVhbSgpIHRocmV3ICcgKyBlKTsKLX0KLQotdHJ5IHsKLSAgICBwYy5hZGRTdHJlYW0odW5k
ZWZpbmVkKTsKLX0gY2F0Y2goZSkgewotICAgIHRlc3RQYXNzZWQoJ3BjLmFkZFN0cmVhbSh1bmRl
ZmluZWQpIHRocmV3ICcgKyBlKTsKLX0KLQotdHJ5IHsKLSAgICBwYy5hZGRTdHJlYW0obnVsbCk7
Ci19IGNhdGNoKGUpIHsKLSAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0obnVsbCkgdGhyZXcg
JyArIGUpOwotfQotCi10cnkgewotICAgIHBjLmFkZFN0cmVhbShuZXcgQXJyYXkoKSk7Ci19IGNh
dGNoKGUpIHsKLSAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0obmV3IEFycmF5KCkpIHRocmV3
ICcgKyBlKTsKLX0KLXRyeSB7Ci0gICAgcGMuYWRkU3RyZWFtKHt9KTsKLX0gY2F0Y2goZSkgewot
ICAgIHRlc3RQYXNzZWQoJ3BjLmFkZFN0cmVhbSh7fSkgdGhyZXcnICsgZSk7Ci19Ci10cnkgewot
ICAgIHBjLmFkZFN0cmVhbSg0Mik7Ci19IGNhdGNoKGUpIHsKLSAgICB0ZXN0UGFzc2VkKCdwYy5h
ZGRTdHJlYW0oNDIpIHRocmV3JyArIGUpOwotfQotdHJ5IHsKLSAgICBwYy5hZGRTdHJlYW0oSW5m
aW5pdHkpOwotfSBjYXRjaChlKSB7Ci0gICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKEluZmlu
aXR5KSB0aHJldycgKyBlKTsKLX0KLXRyeSB7Ci0gICAgcGMuYWRkU3RyZWFtKC1JbmZpbml0eSk7
Ci19IGNhdGNoKGUpIHsKLSAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0oLUluZmluaXR5KSB0
aHJldycgKyBlKTsKLX0KLQotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJj
b25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVh
bS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMuanMKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxMTk3ZTk1NjMyOWYzYjliMTNhNDY3YTk0YmJhN2RkNDhm
MTY3ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYXJn
dW1lbnQtdHlwZXMuanMKKysrIC9kZXYvbnVsbApAQCAtMSw3NyArMCwwIEBACi1kZXNjcmlwdGlv
bigiVGVzdHMgdGhlIGFjY2VwdGFibGUgdHlwZXMgZm9yIGFyZ3VtZW50cyB0byBtZXRob2QgZm9y
IFBlZXJDb25uZWN0aW9uMDAgZGVmaW5hdGlvbi4iKTsKLQotZnVuY3Rpb24gdGVzdChleHByZXNz
aW9uLCBleHByZXNzaW9uU2hvdWxkVGhyb3csIGV4cGVjdGVkRXhjZXB0aW9uKSB7Ci0gICAgaWYg
KGV4cHJlc3Npb25TaG91bGRUaHJvdykgewotICAgICAgICBpZiAoZXhwZWN0ZWRFeGNlcHRpb24p
Ci0gICAgICAgICAgICBzaG91bGRUaHJvdyhleHByZXNzaW9uLCAnIicgKyBleHBlY3RlZEV4Y2Vw
dGlvbiArICciJyk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJl
c3Npb24sICciVHlwZUVycm9yOiBUeXBlIGVycm9yIicpOwotICAgIH0gZWxzZSB7Ci0gICAgICAg
IHNob3VsZE5vdFRocm93KGV4cHJlc3Npb24pOwotICAgIH0KLX0KLQotdmFyIHRvU3RyaW5nRXJy
b3IgPSBuZXcgRXJyb3IoJ3RvU3RyaW5nIHRocmV3IGV4Y2VwdGlvbicpOwotdmFyIG5vdFN1cHBv
cnRlZEVycm9yID0gbmV3IEVycm9yKCdOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5
Jyk7Ci12YXIgZW1wdHlGdW5jdGlvbiA9IGZ1bmN0aW9uKCkge307Ci0KLWZ1bmN0aW9uIE9iamVj
dFRocm93aW5nRXhjZXB0aW9uKCkge307Ci1PYmplY3RUaHJvd2luZ0V4Y2VwdGlvbi5wcm90b3R5
cGUudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsKLSAgICB0aHJvdyB0b1N0cmluZ0Vycm9yOwotfQot
dmFyIG9iamVjdFRocm93aW5nRXhjZXB0aW9uID0gbmV3IE9iamVjdFRocm93aW5nRXhjZXB0aW9u
KCk7Ci0KLXNob3VsZEJlVHJ1ZSgidHlwZW9mIHdlYmtpdFBlZXJDb25uZWN0aW9uMDAgPT09ICdm
dW5jdGlvbiciKTsKLQotLy8gMCBBcmd1bWVudAotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uMDAoKScsIHRydWUsJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKLQotLy8g
MSBBcmd1bWVudCAobmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAgcmVxdWlyZXMgYXQgbGVhc3Qg
MiBhcmd1bWVudHMpLgotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU4gMjAz
LjAuMTEzLjI6MjQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMn
KTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOIHJlbGF5LmV4YW1wbGUu
bmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Ci10
ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiU1RVTiBleGFtcGxlLm5ldCIpJywgdHJ1
ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uMDAoIlNUVU5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24w
MCgiU1RVTlMgZXhhbXBsZS5uZXQiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzJyk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVSTiAyMDMuMC4x
MTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwot
dGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk4gcmVsYXkuZXhhbXBsZS5uZXQ6
MzQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKLXRlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIGV4YW1wbGUubmV0IiknLCB0cnVlLCAn
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uMDAoIlRVUk5TIDIwMy4wLjExMy4yOjI0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24w
MCgiVFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJU
VVJOUyBleGFtcGxlLm5ldCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIE5PTkUiKScsIHRy
dWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Ci10ZXN0KCduZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24wMCgiVFVSTlMgTk9ORSIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVO
IE5PTkUiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Ci10ZXN0
KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiU1RVTlMgTk9ORSIpJywgdHJ1ZSwgJ1R5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbjAwKCJ1bmRlZmluZWQiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzJyk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgibnVsbCIpJywgdHJ1ZSwg
J1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbjAwKHt9KScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
Jyk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCg0MiknLCB0cnVlLCAnVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uMDAoSW5maW5pdHkpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMn
KTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKC1JbmZpbml0eSknLCB0cnVlLCAn
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uMDAoZW1wdHlGdW5jdGlvbiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cycpOwotCi0vLzIgQXJndW1lbnQKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbjAwKCJTVFVOIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwot
dGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU4gcmVsYXkuZXhhbXBsZS5uZXQ6
MzQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24wMCgiU1RVTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbiknLGZhbHNlKTsKLXRlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyAyMDMuMC4xMTMuMjoyNDc4IixlbXB0
eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJT
VFVOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRl
c3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyBleGFtcGxlLm5ldCIsZW1wdHlG
dW5jdGlvbiknLCBmYWxzZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVS
TiAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3QoJ25ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5
RnVuY3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRV
Uk4gZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uMDAoIlRVUk5TIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24p
JywgZmFsc2UpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk5TIHJlbGF5
LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uMDAoIlRVUk5TIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKScs
IGZhbHNlKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIE5PTkUiLGVt
cHR5RnVuY3Rpb24pJywgZmFsc2UpOwotdGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAo
IlRVUk5TIE5PTkUiLGVtcHR5RnVuY3Rpb24pJyxmYWxzZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24wMCgiU1RVTiBOT05FIixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKLXRlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJTVFVOUyBOT05FIixlbXB0eUZ1bmN0aW9uKScs
IGZhbHNlKTsKLXRlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbjAwKCJUVVJOIE5PTkUiLHVu
ZGVmaW5lZCknLCAgdHJ1ZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgiVFVS
TlMgTk9ORSIse30pJywgdHJ1ZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24wMCgi
U1RVTiBOT05FIiw0MiknLCAgdHJ1ZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24w
MCgiU1RVTlMgTk9ORSIsSW5maW5pdHkpJywgdHJ1ZSk7Ci10ZXN0KCduZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24wMCgiU1RVTlMgTk9ORSIsLUluZmluaXR5KScsIHRydWUpOwotCi13aW5kb3cuanNU
ZXN0SXNBc3luYyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmpzIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zl
c3RyZWFtLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NjdlOGE4YzBmZDdkZjdm
NjU1ZmQ0Mjc0MjQxNjliOGZjNmRiOTQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3Rz
L3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5qcworKysgL2Rldi9udWxsCkBAIC0xLDE1ICsw
LDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0cyBQZWVyQ29ubmVjdGlvbjAwOjpyZW1vdmVTdHJlYW0o
KS4iKTsKLQotdmFyIHBjID0gbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uMDAoIlNUVU4gc29tZS5z
ZXJ2ZXIuY29tIiwgZnVuY3Rpb24oKSB7fSk7Ci0KLXNob3VsZFRocm93KCdwYy5yZW1vdmVTdHJl
YW0oKTsnKTsKLXNob3VsZFRocm93KCdwYy5yZW1vdmVTdHJlYW0odW5kZWZpbmVkKTsnKTsKLXNo
b3VsZFRocm93KCdwYy5yZW1vdmVTdHJlYW0obnVsbCk7Jyk7Ci1zaG91bGRUaHJvdygncGMucmVt
b3ZlU3RyZWFtKG5ldyBBcnJheSgpKTsnKTsKLXNob3VsZFRocm93KCdwYy5yZW1vdmVTdHJlYW0o
e30pOycpOwotc2hvdWxkVGhyb3coJ3BjLnJlbW92ZVN0cmVhbSg0Mik7Jyk7Ci1zaG91bGRUaHJv
dygncGMucmVtb3ZlU3RyZWFtKEluZmluaXR5KTsnKTsKLXNob3VsZFRocm93KCdwYy5yZW1vdmVT
dHJlYW0oLUluZmluaXR5KTsnKTsKLQotd2luZG93LnN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7
Ci0K
</data>

          </attachment>
      

    </bug>

</bugzilla>