<?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>238417</bug_id>
          
          <creation_ts>2022-03-26 07:29:15 -0700</creation_ts>
          <short_desc>Use static_assert instead of COMPILE_ASSERT</short_desc>
          <delta_ts>2022-03-26 15:21:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>bburg</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>kangil.han</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>saam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1855384</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 07:29:15 -0700</bug_when>
    <thetext>Use static_assert instead of COMPILE_ASSERT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855385</commentid>
    <comment_count>1</comment_count>
      <attachid>455847</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-03-26 07:30:45 -0700</bug_when>
    <thetext>Created attachment 455847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855386</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-03-26 07:32:03 -0700</bug_when>
    <thetext>This patch modifies the inspector protocol generator. Please ensure that you have rebaselined any generator test results (i.e., by running `Tools/Scripts/run-inspector-generator-tests --reset-results`)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855399</commentid>
    <comment_count>3</comment_count>
      <attachid>455847</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2022-03-26 09:51:33 -0700</bug_when>
    <thetext>Comment on attachment 455847
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855419</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-26 15:20:38 -0700</bug_when>
    <thetext>Committed r291946 (248913@main): &lt;https://commits.webkit.org/248913@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 455847.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855420</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-26 15:21:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/90882614&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455847</attachid>
            <date>2022-03-26 07:30:45 -0700</date>
            <delta_ts>2022-03-26 15:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238417-20220326073044.patch</filename>
            <type>text/plain</type>
            <size>118031</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NjBhNzhiODI1OTMxMzI5NjYwNTdjMzhkMjVmNTRkMGUzNGU3YmZlLi5iYzBjM2Y3ZWUzOTljMzYw
MjdhYzQxOGUyYWYzYmY5ODQ5ZDQ5ZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMi0wMy0yNiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgorCisgICAgICAgIFVzZSBzdGF0aWNfYXNzZXJ0IGluc3RlYWQgb2YgQ09NUElMRV9BU1NFUlQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODQxNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYXNzZW1i
bGVyL0FSTTY0QXNzZW1ibGVyLmg6CisgICAgICAgICogYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVy
Lmg6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAg
ICAgICogYnl0ZWNvZGUvT3Bjb2RlLmg6CisgICAgICAgICogYnl0ZWNvZGUvVmlydHVhbFJlZ2lz
dGVyLmg6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpub25TcGVjdWxhdGl2ZU5vblBlZXBob2xlQ29t
cGFyZU51bGxPclVuZGVmaW5lZCk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6
Om5vblNwZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxsT3JVbmRlZmluZWQpOgorICAgICAgICAo
SlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVG9Cb29sZWFuT2JqZWN0T3JPdGhlcik6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmVtaXRPYmplY3RPck90aGVyQnJh
bmNoKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yUHJvdG9jb2xUeXBlcy5oOgorICAg
ICAgICAoSW5zcGVjdG9yOjpQcm90b2NvbDo6QmluZGluZ1RyYWl0czxKU09OOjpBcnJheU9mPFQ+
Pjo6cnVudGltZUNhc3QpOgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vY3Bw
X2dlbmVyYXRvcl90ZW1wbGF0ZXMucHk6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvY29k
ZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5OgorICAgICAgICAqIGlu
c3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmli
dXRlLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVj
dGVkL2NvbW1hbmRzLXdpdGgtb3B0aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJl
c3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9kZWZpbml0
aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpz
b24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dl
bmVyYXRlLWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdDoKKyAgICAgICAg
KiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10eXBl
LXNldHRlcnMuanNvbi1yZXN1bHQ6CisgICAgICAgICogaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMv
ZXhwZWN0ZWQvdHlwZS1kZWNsYXJhdGlvbi1vYmplY3QtdHlwZS5qc29uLXJlc3VsdDoKKyAgICAg
ICAgKiBpbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLXJlcXVpcmluZy1ydW50
aW1lLWNhc3RzLmpzb24tcmVzdWx0OgorICAgICAgICAqIGluc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL3R5cGUtd2l0aC1vcGVuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQ6CisgICAgICAg
ICogaml0L0ZQUkluZm8uaDoKKyAgICAgICAgKiBqaXQvR1BSSW5mby5oOgorICAgICAgICAqIHBh
cnNlci9QYXJzZXIuaDoKKyAgICAgICAgKiBydW50aW1lL0pTQ2VsbC5jcHA6CisgICAgICAgICog
cnVudGltZS9KU09iamVjdC5oOgorICAgICAgICAqIHJ1bnRpbWUvU21hbGxTdHJpbmdzLmNwcDoK
KyAgICAgICAgKEpTQzo6U21hbGxTdHJpbmdzOjpTbWFsbFN0cmluZ3MpOgorICAgICAgICAqIHJ1
bnRpbWUvU3RydWN0dXJlLmg6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6b3V0T2ZMaW5lQ2Fw
YWNpdHkpOgorICAgICAgICAqIHlhcnIvWWFyckludGVycHJldGVyLmNwcDoKKwogMjAyMi0wMy0y
NiAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0NdIElu
Y2x1ZGUgYXJndW1lbnRSZWdpc3RlcnMgaW4gaWRlbnRpdHkgb2YgU2xvd1BhdGhDYWxsS2V5IHdo
ZW4gY2xvYmJlckFsbFJlZ3NJbkZUTElDU2xvd1BhdGggaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA0N2YyMDRl
OWJjNDU3NGM0MjI0NTcxNjFhNTBiNjUxMGM4MzZjYjVlLi5lOGY3NmRhMzI4OTQzZmZlMzMyZDJh
ZDE5ODNkYTE1OGQ4YWRkNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAzLTI2ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHN0YXRpY19hc3Nl
cnQgaW5zdGVhZCBvZiBDT01QSUxFX0FTU0VSVAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NDE3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIEMrKyBzdGF0aWNfYXNzZXJ0IGluc3RlYWQgb2YgQ09N
UElMRV9BU1NFUlQuCisgICAgICAgIEN1cnJlbnRseSBrZWVwaW5nIGl0IHNpbmNlIGl0IHdhcyBh
bHNvIHVzZWQgaW4gSW50ZXJuYWwgY29kZSB0b28uCisKKyAgICAgICAgKiB3dGYvQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwOgorICAgICAgICAqIHd0Zi9KU09OVmFsdWVzLmNwcDoKKyAgICAgICAgKFdU
Rjo6SlNPTkltcGw6Ok9iamVjdEJhc2U6OmFzT2JqZWN0KToKKyAgICAgICAgKFdURjo6SlNPTklt
cGw6Ok9iamVjdEJhc2U6OmFzT2JqZWN0IGNvbnN0KToKKyAgICAgICAgKFdURjo6SlNPTkltcGw6
OkFycmF5QmFzZTo6YXNBcnJheSk6CisgICAgICAgICogd3RmL0pTT05WYWx1ZXMuaDoKKyAgICAg
ICAgKiB3dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0
ZW1JbXBsOjpsb2NrRmlsZSk6CisgICAgICAgICogd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5j
cHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpsb2NrRmlsZSk6CisgICAgICAgICog
d3RmL3RleHQvQXRvbVN0cmluZy5oOgorCiAyMDIyLTAzLTI1ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgVXNlIFN0cmluZ1ZpZXc6OnNwbGl0KCkgaW5zdGVhZCBv
ZiBTdHJpbmc6OnNwbGl0KCkgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZGQ0MDU3ZjQ4
MDI3MWRkODc2MGU4MDZkZmYwOTU5ZjU3ZDYxODEwLi5kMDY0MTE0ZTA4MGQzOTYzNzA1ODhiZjZh
OTM4ODllODAwNTNjMDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjItMDMtMjYg
IFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3RhdGlj
X2Fzc2VydCBpbnN0ZWFkIG9mIENPTVBJTEVfQVNTRVJUCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcm9wZXJ0eUFuaW1hdGlvbldyYXBwZXJNYXA6
OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCk6CisgICAgICAgICogY29udGVudGV4dGVu
c2lvbnMvREZBTm9kZS5oOgorICAgICAgICAqIGNzcy9DU1NCYXNpY1NoYXBlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZFBvbHlnb25TdHJpbmcpOgorICAgICAgICAqIGNzcy9DU1NQcm9w
ZXJ0eS5jcHA6CisgICAgICAgICogY3NzL0NTU1J1bGUuY3BwOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZS5jcHA6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6CisgICAgICAgICog
Y3NzL1N0eWxlUnVsZS5jcHA6CisgICAgICAgICogY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c29ydGluZ0NhdGVnb3J5Rm9yVHlwZSk6CisgICAg
ICAgICogZG9tL0VsZW1lbnREYXRhLmNwcDoKKyAgICAgICAgKiBkb20vTm9kZVJhcmVEYXRhLmNw
cDoKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdC5jcHA6CisgICAgICAgICogZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuY3BwOgorICAgICAgICAqIGRvbS9TdHlsZWRFbGVtZW50LmNwcDoKKyAgICAgICAg
KiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0
KToKKyAgICAgICAgKiBodG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwOgorICAgICAgICAqIGh0bWwv
dHJhY2svVlRUQ3VlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9MZW5ndGguY3BwOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Vc2Vy
QWdlbnRRdWlya3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJBZ2VudFF1aXJrczo6VXNlckFn
ZW50UXVpcmtzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2Ny
aXB0aW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVnaW9uOjpTaGFwZTo6c2hhcGVPcGVyYXRpb24pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
QmlkaUNvbnRleHQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL0ltcG9ydGVkRnVuY3Rpb25zRW51bWVyYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbXBvcnRlZEZ1bmN0aW9uc0VudW1lcmF0b3I6OmFkZHJlc3NPZkN1
cnJlbnRGdW5jdGlvblBvaW50ZXIgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9CcmVha0xp
bmVzLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcv
TGVnYWN5SW5saW5lRmxvd0JveC5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL0xlZ2FjeUlubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9MZWdhY3lSb290SW5saW5lQm94LmNw
cDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
Y3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUJveERhdGEuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvV2lsbENo
YW5nZURhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3Bw
OgorICAgICAgICAqIHN0eWxlL1J1bGVEYXRhLmNwcDoKKyAgICAgICAgKiBzdmcvR3JhZGllbnRB
dHRyaWJ1dGVzLmg6CisKIDIwMjItMDMtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBTaW1wbGlmeSAvIE9wdGltaXplIEpTTm9kZU93bmVyOjppc1JlYWNoYWJs
ZUZyb21PcGFxdWVSb290cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlZGQxMmZkODA5NTFiOTg5YjMxNjgzYmRj
NGMxYTI3ZjIxNGU4ZmMuLjViMDE5YzMzNzVjYWM4NmM1YTI5OTA0YTU5ZTk3ZGZjYWY5OGI1NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5
c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc3RhdGljX2Fzc2VydCBpbnN0ZWFkIG9m
IENPTVBJTEVfQVNTRVJUCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzg0MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmg6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OnNlbmQpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kV2l0aEFzeW5jUmVw
bHkpOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpzZW5kU3luYyk6CisgICAgICAgICogUGxh
dGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnNlbmRPdXRnb2lu
Z01lc3NhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kKToKKyAgICAgICAg
KFdlYktpdDo6QXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpzZW5kU3luYyk6CisgICAgICAgIChXZWJL
aXQ6OkF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZFdpdGhBc3luY1JlcGx5KToKKwogMjAyMi0w
My0yNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBU
ZW1wb3JhcmlseSBkaXNhYmxlIGFzc2VydGlvbiBpbiBNZXNzYWdlUmVjZWl2ZVF1ZXVlTWFwOjph
ZGRJbXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBmZTIyNmYzMmI4YzhmOTFi
OGE3MTQ2YWI1ZDZiZWZkMTQ4MjNmMTAxLi41NGYwNDVhNzE4OWRlMzM5YjVjZDE2MGY4MmQ5NDFi
MTBkNDU4NGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMjItMDMtMjYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtpQGFwcGxlLmNvbT4KKworICAgICAg
ICBVc2Ugc3RhdGljX2Fzc2VydCBpbnN0ZWFkIG9mIENPTVBJTEVfQVNTRVJUCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg0MTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvV2ViQmFzZVBs
dWdpblBhY2thZ2UubW06CisgICAgICAgICgtW1dlYkJhc2VQbHVnaW5QYWNrYWdlIGlzTmF0aXZl
TGlicmFyeURhdGE6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJEeW5hbWljU2Nyb2xsQmFyc1Zp
ZXcubW06CisKIDIwMjItMDMtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYXNzZW1ibGVyL0FSTTY0QXNzZW1ibGVyLmgKaW5kZXggNmU5MWQ5MjMwYTM5Y2U1NzhkZTdm
YTc2NWFjYmRkZTMyNTMzMDkyMS4uNDkyYjZjMjk0MDU4ZjlhMWVmNzAyNGRjYTk4ODM4NjgxNTY0
OTFjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk02NEFz
c2VtYmxlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNNjRBc3Nl
bWJsZXIuaApAQCAtNDM3LDcgKzQzNyw3IEBAIGNsYXNzIEFSTTY0QXNzZW1ibGVyIHsKICAgICAg
ICAgICAgIHN0cnVjdCBDb3B5VHlwZXMgewogICAgICAgICAgICAgICAgIHVpbnQ2NF90IGNvbnRl
bnRbM107CiAgICAgICAgICAgICB9IGNvcHlUeXBlczsKLSAgICAgICAgICAgIENPTVBJTEVfQVNT
RVJUKHNpemVvZihSZWFsVHlwZXMpID09IHNpemVvZihDb3B5VHlwZXMpLCBMaW5rUmVjb3JkQ29w
eVN0cnVjdFNpemVFcXVhbHNSZWFsU3RydWN0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQo
c2l6ZW9mKFJlYWxUeXBlcykgPT0gc2l6ZW9mKENvcHlUeXBlcyksICJMaW5rUmVjb3JkJ3MgQ29w
eVN0cnVjdCBzaXplIGVxdWFscyB0byBSZWFsU3RydWN0Iik7CiAgICAgICAgIH0gZGF0YTsKICAg
ICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3
QXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1i
bGVyLmgKaW5kZXggYWNhZGRkMmQ1NmEyMGRiYTc2NDFlMmMzMTQ0ODJlMTBkYTI1M2VhNy4uNmQx
OGJlOGQ2NjBmODhmOTczNDdlMjljNjk1YjEyZmM4OGNkNjg4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BUk12N0Fzc2VtYmxlci5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaApAQCAtNDc3LDcgKzQ3Nyw3
IEBAIGNsYXNzIEFSTXY3QXNzZW1ibGVyIHsKICAgICAgICAgICAgIHN0cnVjdCBDb3B5VHlwZXMg
ewogICAgICAgICAgICAgICAgIHVpbnQzMl90IGNvbnRlbnRbM107CiAgICAgICAgICAgICB9IGNv
cHlUeXBlczsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihSZWFsVHlwZXMpID09
IHNpemVvZihDb3B5VHlwZXMpLCBMaW5rUmVjb3JkQ29weVN0cnVjdFNpemVFcXVhbHNSZWFsU3Ry
dWN0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFJlYWxUeXBlcykgPT0gc2l6
ZW9mKENvcHlUeXBlcyksICJMaW5rUmVjb3JkJ3MgQ29weVN0cnVjdCBzaXplIGVxdWFscyB0byBS
ZWFsU3RydWN0Iik7CiAgICAgICAgIH0gZGF0YTsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgK
aW5kZXggMzBjYzRlNGJjYWZmZmRiOTRjZmY4MDQ2YzA1MWUxZjJlOTg4NzBkOS4uY2ExNDUxNTJj
YzVlNDM2MzQ0YWE0OGExYWExYzEyYzlmNjM4YzgyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaApAQCAt
MTAxLDkgKzEwMSw5IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIDogcHVibGljIEFi
c3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAgIERvdWJsZUxlc3NUaGFu
T3JVbm9yZGVyZWQgPSBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkIsCiAgICAgICAgIERvdWJsZUxl
c3NUaGFuT3JFcXVhbE9yVW5vcmRlcmVkID0gWDg2QXNzZW1ibGVyOjpDb25kaXRpb25CRSwKICAg
ICB9OwotICAgIENPTVBJTEVfQVNTRVJUKAorICAgIHN0YXRpY19hc3NlcnQoCiAgICAgICAgICEo
KFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uRSB8IFg4NkFzc2VtYmxlcjo6Q29uZGl0aW9uTkUgfCBY
ODZBc3NlbWJsZXI6OkNvbmRpdGlvbkEgfCBYODZBc3NlbWJsZXI6OkNvbmRpdGlvbkFFIHwgWDg2
QXNzZW1ibGVyOjpDb25kaXRpb25CIHwgWDg2QXNzZW1ibGVyOjpDb25kaXRpb25CRSkgJiBEb3Vi
bGVDb25kaXRpb25CaXRzKSwKLSAgICAgICAgRG91YmxlQ29uZGl0aW9uQml0c19zaG91bGRfbm90
X2ludGVyZmVyZV93aXRoX1g4NkFzc2VtYmxlcl9Db25kaXRpb25fY29kZXMpOworICAgICAgICAi
RG91YmxlQ29uZGl0aW9uQml0cyBzaG91bGQgbm90IGludGVyZmVyZSB3aXRoIFg4NkFzc2VtYmxl
ciBDb25kaXRpb24gY29kZXMiKTsKIAogICAgIHN0YXRpYyBjb25zdGV4cHIgUmVnaXN0ZXJJRCBz
dGFja1BvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZXNwOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgUmVnaXN0ZXJJRCBmcmFtZVBvaW50ZXJSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL09wY29kZS5oCmluZGV4IDlkMTRjMjhmODdk
ZjE1YzJmY2Y0ZDVjYmUzOGFhMTk4MmE2MWU5MTYuLjA1ZDAyYzhlMzk5MTlkZjYxMzY0MjM3OWJm
NjY2NWZjY2U0YzhmYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9PcGNvZGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvT3Bjb2RlLmgK
QEAgLTE3Niw3ICsxNzYsNyBAQCBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIGJpdFdpZHRoRm9y
TWF4Qnl0ZWNvZGVTdHJ1Y3RMZW5ndGggPSBXVEY6OmdldE1TQlNldENvbgogCiBJR05PUkVfV0FS
TklOR1NfQkVHSU4oInR5cGUtbGltaXRzIikKIAotI2RlZmluZSBWRVJJRllfT1BDT0RFX0lEKGlk
LCBzaXplKSBDT01QSUxFX0FTU0VSVChpZCA8PSBudW1PcGNvZGVJRHMsIEFTU0VSVF9USEFUX0pT
X09QQ09ERV9JRFNfQVJFX1ZBTElEKTsKKyNkZWZpbmUgVkVSSUZZX09QQ09ERV9JRChpZCwgc2l6
ZSkgc3RhdGljX2Fzc2VydChpZCA8PSBudW1PcGNvZGVJRHMsICJBU1NFUlQgdGhhdCBKUyBPcGNv
ZGUgSUQgaXMgdmFsaWQiKTsKICAgICBGT1JfRUFDSF9PUENPREVfSUQoVkVSSUZZX09QQ09ERV9J
RCk7CiAjdW5kZWYgVkVSSUZZX09QQ09ERV9JRAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvVmlydHVhbFJlZ2lzdGVyLmgKaW5kZXggZmI5MWFmMTkwMmIxNjE3ODRjYWNm
YWFiYmYzNDY2NjJkZGZhNjQ3NS4uODAxNmIwNmE3ZDdjZjQ4ZDNlMzk3MjA2NWIzODI0NDkwZWI3
ZGUxOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1ZpcnR1YWxS
ZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9WaXJ0dWFsUmVn
aXN0ZXIuaApAQCAtMTIxLDcgKzEyMSw3IEBAIGNsYXNzIFZpcnR1YWxSZWdpc3RlciB7CiAgICAg
aW50IG1fdmlydHVhbFJlZ2lzdGVyOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFZpcnR1
YWxSZWdpc3RlcikgPT0gc2l6ZW9mKGludCksIFZpcnR1YWxSZWdpc3Rlcl9pc18zMmJpdCk7Citz
dGF0aWNfYXNzZXJ0KHNpemVvZihWaXJ0dWFsUmVnaXN0ZXIpID09IHNpemVvZihpbnQpLCAiVmly
dHVhbFJlZ2lzdGVyIGlzIDMyYml0Iik7CiAKIGlubGluZSBWaXJ0dWFsUmVnaXN0ZXIgdmlydHVh
bFJlZ2lzdGVyRm9yTG9jYWwoaW50IGxvY2FsKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggY2QzNzQ2MjdlMGJk
NTU2MWIyZWFlYTY5NzRmZWM1OTIyNmQ4ZGM1Ni4uM2NlNmFjNjMwMDJmZDU5ZWFiZjQzNzY2NjY5
ZmZlODVlOTBmOGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zMTQsNyArMzE0LDcgQEAgdm9pZCBTcGVjdWxh
dGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVOb25QZWVwaG9sZUNvbXBhcmVOdWxsT3JVbmRlZmluZWQo
RWRnZSBvcGVyYW4KICAgICAgICAgCiAgICAgICAgIG5vdENlbGwubGluaygmbV9qaXQpOwogICAg
ICAgICAvLyBudWxsIG9yIHVuZGVmaW5lZD8KLSAgICAgICAgQ09NUElMRV9BU1NFUlQoKEpTVmFs
dWU6OlVuZGVmaW5lZFRhZyB8IDEpID09IEpTVmFsdWU6Ok51bGxUYWcsIFVuZGVmaW5lZFRhZ19P
Ul8xX0VRVUFMU19OdWxsVGFnKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoSlNWYWx1ZTo6VW5k
ZWZpbmVkVGFnIHwgMSkgPT0gSlNWYWx1ZTo6TnVsbFRhZywgIlVuZGVmaW5lZFRhZyBPUiAxIGVx
dWFscyB0byBOdWxsVGFnIik7CiAgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMyKDEpLCBh
cmdUYWdHUFIsIHJlc3VsdFBheWxvYWRHUFIpOwogICAgICAgICBtX2ppdC5jb21wYXJlMzIoSklU
Q29tcGlsZXI6OkVxdWFsLCByZXN1bHRQYXlsb2FkR1BSLCBUcnVzdGVkSW1tMzIoSlNWYWx1ZTo6
TnVsbFRhZyksIHJlc3VsdFBheWxvYWRHUFIpOwogCkBAIC0zNzgsNyArMzc4LDcgQEAgdm9pZCBT
cGVjdWxhdGl2ZUpJVDo6bm9uU3BlY3VsYXRpdmVQZWVwaG9sZUJyYW5jaE51bGxPclVuZGVmaW5l
ZChFZGdlIG9wZXJhbmQsIE4KICAgICAgICAgCiAgICAgICAgIG5vdENlbGwubGluaygmbV9qaXQp
OwogICAgICAgICAvLyBudWxsIG9yIHVuZGVmaW5lZD8KLSAgICAgICAgQ09NUElMRV9BU1NFUlQo
KEpTVmFsdWU6OlVuZGVmaW5lZFRhZyB8IDEpID09IEpTVmFsdWU6Ok51bGxUYWcsIFVuZGVmaW5l
ZFRhZ19PUl8xX0VRVUFMU19OdWxsVGFnKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoSlNWYWx1
ZTo6VW5kZWZpbmVkVGFnIHwgMSkgPT0gSlNWYWx1ZTo6TnVsbFRhZywgIlVuZGVmaW5lZFRhZyBP
UiAxIGVxdWFscyB0byBOdWxsVGFnIik7CiAgICAgICAgIG1faml0Lm9yMzIoVHJ1c3RlZEltbTMy
KDEpLCBhcmdUYWdHUFIsIHJlc3VsdEdQUik7CiAgICAgICAgIGJyYW5jaDMyKGludmVydCA/IEpJ
VENvbXBpbGVyOjpOb3RFcXVhbCA6IEpJVENvbXBpbGVyOjpFcXVhbCwgcmVzdWx0R1BSLCBKSVRD
b21waWxlcjo6VHJ1c3RlZEltbTMyKEpTVmFsdWU6Ok51bGxUYWcpLCB0YWtlbik7CiAgICAgfQpA
QCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVRvQm9vbGVh
bk9iamVjdE9yT3RoZXIoRWRnZSBub2RlVXNlLCBib29sIGludmVydCkKICAgICAKICAgICBub3RD
ZWxsLmxpbmsoJm1faml0KTsKICAKLSAgICBDT01QSUxFX0FTU0VSVCgoSlNWYWx1ZTo6VW5kZWZp
bmVkVGFnIHwgMSkgPT0gSlNWYWx1ZTo6TnVsbFRhZywgVW5kZWZpbmVkVGFnX09SXzFfRVFVQUxT
X051bGxUYWcpOworICAgIHN0YXRpY19hc3NlcnQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyB8IDEp
ID09IEpTVmFsdWU6Ok51bGxUYWcsICJVbmRlZmluZWRUYWcgT1IgMSBlcXVhbHMgdG8gTnVsbFRh
ZyIpOwogICAgIGlmIChuZWVkc1R5cGVDaGVjayhub2RlVXNlLCBTcGVjQ2VsbCB8IFNwZWNPdGhl
cikpIHsKICAgICAgICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoMSksIHZhbHVlVGFnR1BSLCBy
ZXN1bHRQYXlsb2FkR1BSKTsKICAgICAgICAgdHlwZUNoZWNrKApAQCAtMTYzOCw3ICsxNjM4LDcg
QEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6ZW1pdE9iamVjdE9yT3RoZXJCcmFuY2goRWRnZSBub2Rl
VXNlLCBCYXNpY0Jsb2NrKiB0YWtlbiwgQmEKICAgICAKICAgICBub3RDZWxsLmxpbmsoJm1faml0
KTsKICAgICAKLSAgICBDT01QSUxFX0FTU0VSVCgoSlNWYWx1ZTo6VW5kZWZpbmVkVGFnIHwgMSkg
PT0gSlNWYWx1ZTo6TnVsbFRhZywgVW5kZWZpbmVkVGFnX09SXzFfRVFVQUxTX051bGxUYWcpOwor
ICAgIHN0YXRpY19hc3NlcnQoKEpTVmFsdWU6OlVuZGVmaW5lZFRhZyB8IDEpID09IEpTVmFsdWU6
Ok51bGxUYWcsICJVbmRlZmluZWRUYWcgT1IgMSBlcXVhbHMgdG8gTnVsbFRhZyIpOwogICAgIGlm
IChuZWVkc1R5cGVDaGVjayhub2RlVXNlLCBTcGVjQ2VsbCB8IFNwZWNPdGhlcikpIHsKICAgICAg
ICAgbV9qaXQub3IzMihUcnVzdGVkSW1tMzIoMSksIHZhbHVlVGFnR1BSLCBzY3JhdGNoR1BSKTsK
ICAgICAgICAgdHlwZUNoZWNrKApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JQcm90b2NvbFR5cGVzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvclByb3RvY29sVHlwZXMuaAppbmRleCA1ODc3ZTBkNzQxMDgyZjcx
MWE1ZmZlZDQzNWNlZmMwZjIxMzEzMzVlLi41ZDcxY2E3N2JjZWMyN2Y0NWFjZTY5ODkyYmFkOTcx
OGYzOTdlYzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvclByb3RvY29sVHlwZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb3RvY29sVHlwZXMuaApAQCAtNTUsNyArNTUsNyBAQCB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBzdHJ1Y3QgQmluZGluZ1RyYWl0czxKU09OOjpBcnJheU9mPFQ+PiB7CiAgICAg
ewogICAgICAgICBhdXRvIGFycmF5ID0gdmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgQmluZGlu
Z1RyYWl0czxKU09OOjpBcnJheU9mPFQ+Pjo6YXNzZXJ0VmFsdWVIYXNFeHBlY3RlZFR5cGUoYXJy
YXkuZ2V0KCkpOwotICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoSlNPTjo6QXJyYXlPZjxU
PikgPT0gc2l6ZW9mKEpTT046OkFycmF5KSwgdHlwZV9jYXN0X3Byb2JsZW0pOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihKU09OOjpBcnJheU9mPFQ+KSA9PSBzaXplb2YoSlNPTjo6QXJy
YXkpLCAidHlwZSBjYXN0IHByb2JsZW0iKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVu
Y2VfY2FzdDxKU09OOjpBcnJheU9mPFQ+PihzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SlNPTjo6QXJy
YXlCYXNlPihhcnJheS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvY29kZWdlbi9jcHBfZ2VuZXJh
dG9yX3RlbXBsYXRlcy5weSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0
cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CmluZGV4IDllYWI1ZDM3YzkxMDA3
MWVhYTYzZWY1Njc3NjExYjE3MTEwYWFiNTAuLmNiNjVmMDFjOTlmNGE1Njk2MDdjZTNmMGUzZTE2
OGU4MTUxMmM2YmYgMTAwNzU1Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVtcGxhdGVzLnB5CisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2NwcF9nZW5lcmF0b3JfdGVt
cGxhdGVzLnB5CkBAIC0yMDcsNyArMjA3LDcgQEAgY2xhc3MgQnVpbGRlciB7CiAgICAgICAgIEJ1
aWxkZXIoUmVmPC8qJHtvYmplY3RUeXBlfSovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAg
ICAgICAgIDogbV9yZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2lu
X25vbl9pbml0X3N0YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9G
aWVsZHNTZXQsICJidWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAg
fQogICAgICAgICBmcmllbmQgY2xhc3MgJHtvYmplY3RUeXBlfTsKICAgICBwdWJsaWM6IiIiKQpA
QCAtMjE2LDggKzIxNiw4IEBAIGNsYXNzIEJ1aWxkZXIgewogIiIiCiAgICAgICAgIFJlZjwke29i
amVjdFR5cGV9PiByZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5KTsKLSAgICAgICAg
ICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZigke29iamVjdFR5cGV9KSA9PSBzaXplb2YoSlNPTjo6
T2JqZWN0KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChTVEFURSA9
PSBBbGxGaWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAgICAgICAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZigke29iamVjdFR5cGV9KSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwg
ImNhbm5vdCBjYXN0Iik7CiAKICAgICAgICAgICAgIFJlZjxKU09OOjpPYmplY3Q+IGpzb25SZXN1
bHQgPSBtX3Jlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAgICAgYXV0byByZXN1bHQg
PSBXVEZNb3ZlKCpyZWludGVycHJldF9jYXN0PFJlZjwke29iamVjdFR5cGV9Pio+KCZqc29uUmVz
dWx0KSk7CkBAIC0yMzksNyArMjM5LDcgQEAgY2xhc3MgQnVpbGRlciB7CiB7CiAgICAgYXV0byBy
ZXN1bHQgPSB2YWx1ZS0+YXNPYmplY3QoKTsKICAgICBCaW5kaW5nVHJhaXRzPCR7b2JqZWN0VHlw
ZX0+Ojphc3NlcnRWYWx1ZUhhc0V4cGVjdGVkVHlwZShyZXN1bHQuZ2V0KCkpOwotICAgIENPTVBJ
TEVfQVNTRVJUKHNpemVvZigke29iamVjdFR5cGV9KSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0QmFz
ZSksIHR5cGVfY2FzdF9wcm9ibGVtKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZigke29iamVj
dFR5cGV9KSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0QmFzZSksICJ0eXBlIGNhc3QgcHJvYmxlbSIp
OwogICAgIHJldHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8JHtvYmplY3RUeXBlfT4oc3RhdGlj
X3JlZmVyZW5jZV9jYXN0PEpTT046Ok9iamVjdEJhc2U+KHJlc3VsdC5yZWxlYXNlTm9uTnVsbCgp
KSk7CiB9CiAiIiIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvY29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5IGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL2NvZGVnZW4vZ2VuZXJhdGVf
Y3BwX3Byb3RvY29sX3R5cGVzX2hlYWRlci5weQppbmRleCAzYzlmYWQ3YjlmMzI4NWQ0OWVlYTY0
YWMyMDY3NWUxYTA1YjcxMTI5Li4yMzcwOTQzNzA0MWQ0MmY4NDZmZWZiZWJjMWI5YzZjYzZjNzEy
ZTZkIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMv
Y29kZWdlbi9nZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5CisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy9jb2RlZ2VuL2dlbmVyYXRlX2NwcF9w
cm90b2NvbF90eXBlc19oZWFkZXIucHkKQEAgLTM0Nyw3ICszNDcsNyBAQCBkZWYgX2dlbmVyYXRl
X2J1aWxkZXJfc2V0dGVyX2Zvcl9tZW1iZXIoc2VsZiwgdHlwZV9tZW1iZXIsIGRvbWFpbik6CiAg
ICAgICAgIGxpbmVzLmFwcGVuZCgnJykKICAgICAgICAgbGluZXMuYXBwZW5kKCcgICAgICAgIEJ1
aWxkZXI8U1RBVEUgfCAlKGNhbWVsTmFtZSlzU2V0PiYgc2V0JShjYW1lbE5hbWUpcyglKG1lbWJl
clR5cGUpcyAlKG1lbWJlck5hbWUpcyknICUgc2V0dGVyX2FyZ3MpCiAgICAgICAgIGxpbmVzLmFw
cGVuZCgnICAgICAgICB7JykKLSAgICAgICAgbGluZXMuYXBwZW5kKCcgICAgICAgICAgICBDT01Q
SUxFX0FTU0VSVCghKFNUQVRFICYgJShjYW1lbE5hbWUpc1NldCksIHByb3BlcnR5XyUobWVtYmVy
S2V5KXNfYWxyZWFkeV9zZXQpOycgJSBzZXR0ZXJfYXJncykKKyAgICAgICAgbGluZXMuYXBwZW5k
KCcgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiAlKGNhbWVsTmFtZSlzU2V0KSwg
InByb3BlcnR5ICUobWVtYmVyS2V5KXMgYWxyZWFkeSBzZXQiKTsnICUgc2V0dGVyX2FyZ3MpCiAg
ICAgICAgIGxpbmVzLmFwcGVuZCgnICAgICAgICAgICAgbV9yZXN1bHQtPiUoc2V0dGVyKXMoIiUo
bWVtYmVyS2V5KXMiX3MsICUobWVtYmVyVmFsdWUpcyk7JyAlIHNldHRlcl9hcmdzKQogICAgICAg
ICBsaW5lcy5hcHBlbmQoJyAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8JShjYW1lbE5hbWUp
c1NldD4oKTsnICUgc2V0dGVyX2FyZ3MpCiAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgICAgICB9
JykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9j
b21tYW5kcy13aXRoLWFzeW5jLWF0dHJpYnV0ZS5qc29uLXJlc3VsdAppbmRleCA4NDA5ZDllZjQy
ZWY1MjJkMjgxYmU5OWI5ZTAxYmY4ZWNkYjA5NDVmLi4xNTI4MjBjYmEyYzI4YTE3MWNlYTAxZmU2
NWIzZTRiMzNhYTYwNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1hc3luYy1hdHRyaWJ1dGUu
anNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtYXN5bmMtYXR0cmlidXRlLmpzb24tcmVzdWx0
CkBAIC02MzUsMjkgKzYzNSwyOSBAQCBwdWJsaWM6CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qRXJy
b3IqL0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAgICA6IG1fcmVzdWx0KFdURk1v
dmUob2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUg
PT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25faW5pdF9zdGF0ZSk7CisgICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRzU2V0LCAiYnVpbGRlciBjcmVh
dGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAgICAgICAgZnJpZW5kIGNsYXNz
IEVycm9yOwogICAgIHB1YmxpYzoKIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgTWVzc2FnZVNl
dD4mIHNldE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBpbl9tZXNzYWdlKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgTWVzc2FnZVNldCksIHByb3BlcnR5X21l
c3NhZ2VfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYg
TWVzc2FnZVNldCksICJwcm9wZXJ0eSBtZXNzYWdlIGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAg
ICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJtZXNzYWdlIl9zLCBpbl9tZXNzYWdlKTsKICAgICAgICAg
ICAgIHJldHVybiBjYXN0U3RhdGU8TWVzc2FnZVNldD4oKTsKICAgICAgICAgfQogCiAgICAgICAg
IEJ1aWxkZXI8U1RBVEUgfCBDb2RlU2V0PiYgc2V0Q29kZShpbnQgaW5fY29kZSkKICAgICAgICAg
ewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIENvZGVTZXQpLCBwcm9wZXJ0
eV9jb2RlX2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAm
IENvZGVTZXQpLCAicHJvcGVydHkgY29kZSBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9y
ZXN1bHQtPnNldEludGVnZXIoImNvZGUiX3MsIGluX2NvZGUpOwogICAgICAgICAgICAgcmV0dXJu
IGNhc3RTdGF0ZTxDb2RlU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgUmVmPEVycm9yPiBy
ZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0g
QWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5KTsKLSAgICAgICAgICAgIENPTVBJTEVf
QVNTRVJUKHNpemVvZihFcnJvcikgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksIGNhbm5vdF9jYXN0
KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCAicmVz
dWx0IGlzIG5vdCByZWFkeSIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoRXJy
b3IpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fubm90IGNhc3QiKTsKIAogICAgICAgICAg
ICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9IG1fcmVzdWx0LnJlbGVhc2VOb25OdWxs
KCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdURk1vdmUoKnJlaW50ZXJwcmV0X2Nhc3Q8
UmVmPEVycm9yPio+KCZqc29uUmVzdWx0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRp
b25hbC1jYWxsLXJldHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2NvbW1hbmRzLXdpdGgtb3B0
aW9uYWwtY2FsbC1yZXR1cm4tcGFyYW1ldGVycy5qc29uLXJlc3VsdAppbmRleCAxMTQ1NTA3MGRl
NjMyZmNiODk5N2FjNTBjODA3OTMxNjMwNGQ2MjgwLi43ZjIzMDk4NDc0N2YwOThmMDk5N2Q4ZWMz
MTY5ZGY3ODg1YjY0ZmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvY29tbWFuZHMtd2l0aC1vcHRpb25hbC1jYWxsLXJl
dHVybi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9jb21tYW5kcy13aXRoLW9wdGlvbmFsLWNh
bGwtcmV0dXJuLXBhcmFtZXRlcnMuanNvbi1yZXN1bHQKQEAgLTU0OCwyOSArNTQ4LDI5IEBAIHB1
YmxpYzoKICAgICAgICAgQnVpbGRlcihSZWY8LypFcnJvciovSlNPTjo6T2JqZWN0PiYmIG9iamVj
dCkKICAgICAgICAgICAgIDogbV9yZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9j
cmVhdGVkX2luX25vbl9pbml0X3N0YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RB
VEUgPT0gTm9GaWVsZHNTZXQsICJidWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsK
ICAgICAgICAgfQogICAgICAgICBmcmllbmQgY2xhc3MgRXJyb3I7CiAgICAgcHVibGljOgogCiAg
ICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBNZXNzYWdlU2V0PiYgc2V0TWVzc2FnZShjb25zdCBTdHJp
bmcmIGluX21lc3NhZ2UpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEo
U1RBVEUgJiBNZXNzYWdlU2V0KSwgcHJvcGVydHlfbWVzc2FnZV9hbHJlYWR5X3NldCk7CisgICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBNZXNzYWdlU2V0KSwgInByb3BlcnR5IG1l
c3NhZ2UgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRTdHJpbmcoIm1l
c3NhZ2UiX3MsIGluX21lc3NhZ2UpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxNZXNz
YWdlU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IENvZGVTZXQ+
JiBzZXRDb2RlKGludCBpbl9jb2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVCghKFNUQVRFICYgQ29kZVNldCksIHByb3BlcnR5X2NvZGVfYWxyZWFkeV9zZXQpOworICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgQ29kZVNldCksICJwcm9wZXJ0eSBjb2Rl
IGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0SW50ZWdlcigiY29kZSJf
cywgaW5fY29kZSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPENvZGVTZXQ+KCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBSZWY8RXJyb3I+IHJlbGVhc2UoKQogICAgICAgICB7Ci0gICAg
ICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxGaWVsZHNTZXQsIHJlc3VsdF9pc19u
b3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEVycm9yKSA9PSBz
aXplb2YoSlNPTjo6T2JqZWN0KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGljX2Fz
c2VydChTVEFURSA9PSBBbGxGaWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihFcnJvcikgPT0gc2l6ZW9mKEpTT046Ok9iamVj
dCksICJjYW5ub3QgY2FzdCIpOwogCiAgICAgICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBqc29u
UmVzdWx0ID0gbV9yZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgIGF1dG8gcmVz
dWx0ID0gV1RGTW92ZSgqcmVpbnRlcnByZXRfY2FzdDxSZWY8RXJyb3I+Kj4oJmpzb25SZXN1bHQp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90
ZXN0cy9leHBlY3RlZC9kZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9k
ZWZpbml0aW9ucy13aXRoLW1hYy1wbGF0Zm9ybS5qc29uLXJlc3VsdAppbmRleCAwMDI5YjFhMDM0
OThiNDE0YmRjYjIwNjNjMzVhOTI0YTE4MzM0ZTU1Li5jZjU2YzZiNWQ0NDIxZTQxZmU3NDQ4ZDNh
ZDRkMDg3YTQ2YTNhMGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZGVmaW5pdGlvbnMtd2l0aC1tYWMtcGxhdGZvcm0u
anNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRz
L3Rlc3RzL2V4cGVjdGVkL2RlZmluaXRpb25zLXdpdGgtbWFjLXBsYXRmb3JtLmpzb24tcmVzdWx0
CkBAIC00ODMsMjkgKzQ4MywyOSBAQCBwdWJsaWM6CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qTmV0
d29ya0Vycm9yKi9KU09OOjpPYmplY3Q+JiYgb2JqZWN0KQogICAgICAgICAgICAgOiBtX3Jlc3Vs
dChXVEZNb3ZlKG9iamVjdCkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJU
KFNUQVRFID09IE5vRmllbGRzU2V0LCBidWlsZGVyX2NyZWF0ZWRfaW5fbm9uX2luaXRfc3RhdGUp
OworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChTVEFURSA9PSBOb0ZpZWxkc1NldCwgImJ1aWxk
ZXIgY3JlYXRlZCBpbiBub24gaW5pdCBzdGF0ZSIpOwogICAgICAgICB9CiAgICAgICAgIGZyaWVu
ZCBjbGFzcyBOZXR3b3JrRXJyb3I7CiAgICAgcHVibGljOgogCiAgICAgICAgIEJ1aWxkZXI8U1RB
VEUgfCBNZXNzYWdlU2V0PiYgc2V0TWVzc2FnZShjb25zdCBTdHJpbmcmIGluX21lc3NhZ2UpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBNZXNzYWdlU2V0
KSwgcHJvcGVydHlfbWVzc2FnZV9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KCEoU1RBVEUgJiBNZXNzYWdlU2V0KSwgInByb3BlcnR5IG1lc3NhZ2UgYWxyZWFkeSBzZXQi
KTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRTdHJpbmcoIm1lc3NhZ2UiX3MsIGluX21lc3Nh
Z2UpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxNZXNzYWdlU2V0PigpOwogICAgICAg
ICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IENvZGVTZXQ+JiBzZXRDb2RlKGludCBpbl9j
b2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgQ29k
ZVNldCksIHByb3BlcnR5X2NvZGVfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fz
c2VydCghKFNUQVRFICYgQ29kZVNldCksICJwcm9wZXJ0eSBjb2RlIGFscmVhZHkgc2V0Iik7CiAg
ICAgICAgICAgICBtX3Jlc3VsdC0+c2V0SW50ZWdlcigiY29kZSJfcywgaW5fY29kZSk7CiAgICAg
ICAgICAgICByZXR1cm4gY2FzdFN0YXRlPENvZGVTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAg
ICBSZWY8TmV0d29ya0Vycm9yPiByZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAgQ09N
UElMRV9BU1NFUlQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5KTsK
LSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihOZXR3b3JrRXJyb3IpID09IHNpemVv
ZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0
KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3VsdCBpcyBub3QgcmVhZHkiKTsKKyAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE5ldHdvcmtFcnJvcikgPT0gc2l6ZW9mKEpTT046Ok9i
amVjdCksICJjYW5ub3QgY2FzdCIpOwogCiAgICAgICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBq
c29uUmVzdWx0ID0gbV9yZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgIGF1dG8g
cmVzdWx0ID0gV1RGTW92ZSgqcmVpbnRlcnByZXRfY2FzdDxSZWY8TmV0d29ya0Vycm9yPio+KCZq
c29uUmVzdWx0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZXZlbnRzLXdpdGgtb3B0aW9uYWwtcGFyYW1ldGVycy5q
c29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0Cmlu
ZGV4IGFkYjVkMjYxMGRmNjlhMjRkNmM1NTU4NTFlODhkNzIwMTRkYTRkMDguLmZlNDdhNzkzNGZm
OTdkMWFiY2ZjMzY4M2E0MWE1NWZjOWZkMTMwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRp
b25hbC1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9ldmVudHMtd2l0aC1vcHRpb25hbC1wYXJh
bWV0ZXJzLmpzb24tcmVzdWx0CkBAIC00MTMsMjkgKzQxMywyOSBAQCBwdWJsaWM6CiAgICAgICAg
IEJ1aWxkZXIoUmVmPC8qRXJyb3IqL0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAg
ICA6IG1fcmVzdWx0KFdURk1vdmUob2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09N
UElMRV9BU1NFUlQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25f
aW5pdF9zdGF0ZSk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRz
U2V0LCAiYnVpbGRlciBjcmVhdGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAg
ICAgICAgZnJpZW5kIGNsYXNzIEVycm9yOwogICAgIHB1YmxpYzoKIAogICAgICAgICBCdWlsZGVy
PFNUQVRFIHwgTWVzc2FnZVNldD4mIHNldE1lc3NhZ2UoY29uc3QgU3RyaW5nJiBpbl9tZXNzYWdl
KQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgTWVzc2Fn
ZVNldCksIHByb3BlcnR5X21lc3NhZ2VfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydCghKFNUQVRFICYgTWVzc2FnZVNldCksICJwcm9wZXJ0eSBtZXNzYWdlIGFscmVhZHkg
c2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJtZXNzYWdlIl9zLCBpbl9t
ZXNzYWdlKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8TWVzc2FnZVNldD4oKTsKICAg
ICAgICAgfQogCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBDb2RlU2V0PiYgc2V0Q29kZShpbnQg
aW5fY29kZSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAm
IENvZGVTZXQpLCBwcm9wZXJ0eV9jb2RlX2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRp
Y19hc3NlcnQoIShTVEFURSAmIENvZGVTZXQpLCAicHJvcGVydHkgY29kZSBhbHJlYWR5IHNldCIp
OwogICAgICAgICAgICAgbV9yZXN1bHQtPnNldEludGVnZXIoImNvZGUiX3MsIGluX2NvZGUpOwog
ICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxDb2RlU2V0PigpOwogICAgICAgICB9CiAKICAg
ICAgICAgUmVmPEVycm9yPiByZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElM
RV9BU1NFUlQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5KTsKLSAg
ICAgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihFcnJvcikgPT0gc2l6ZW9mKEpTT046Ok9i
amVjdCksIGNhbm5vdF9jYXN0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0g
QWxsRmllbGRzU2V0LCAicmVzdWx0IGlzIG5vdCByZWFkeSIpOworICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChzaXplb2YoRXJyb3IpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fubm90IGNh
c3QiKTsKIAogICAgICAgICAgICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9IG1fcmVz
dWx0LnJlbGVhc2VOb25OdWxsKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdURk1vdmUo
KnJlaW50ZXJwcmV0X2Nhc3Q8UmVmPEVycm9yPio+KCZqc29uUmVzdWx0KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQv
Z2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUtZ3VhcmRzLmpzb24tcmVzdWx0IGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL2dlbmVyYXRl
LWRvbWFpbnMtd2l0aC1mZWF0dXJlLWd1YXJkcy5qc29uLXJlc3VsdAppbmRleCAxNTlmY2U0OTQ3
Y2U4MDYyMTE3ZDYzYWJhZmU2ZmE0ZDc1YjZjNmNlLi45ZTIxNTY2MTVlZmJjYTYxZTRkYzVhYWUy
MjJhYTdjZjQ4NTQwYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVj
dG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvZ2VuZXJhdGUtZG9tYWlucy13aXRoLWZlYXR1cmUt
Z3VhcmRzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
c2NyaXB0cy90ZXN0cy9leHBlY3RlZC9nZW5lcmF0ZS1kb21haW5zLXdpdGgtZmVhdHVyZS1ndWFy
ZHMuanNvbi1yZXN1bHQKQEAgLTQ0NSwyOSArNDQ1LDI5IEBAIHB1YmxpYzoKICAgICAgICAgQnVp
bGRlcihSZWY8LypOZXR3b3JrRXJyb3IqL0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAg
ICAgICA6IG1fcmVzdWx0KFdURk1vdmUob2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9u
b25faW5pdF9zdGF0ZSk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmll
bGRzU2V0LCAiYnVpbGRlciBjcmVhdGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0K
ICAgICAgICAgZnJpZW5kIGNsYXNzIE5ldHdvcmtFcnJvcjsKICAgICBwdWJsaWM6CiAKICAgICAg
ICAgQnVpbGRlcjxTVEFURSB8IE1lc3NhZ2VTZXQ+JiBzZXRNZXNzYWdlKGNvbnN0IFN0cmluZyYg
aW5fbWVzc2FnZSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFU
RSAmIE1lc3NhZ2VTZXQpLCBwcm9wZXJ0eV9tZXNzYWdlX2FscmVhZHlfc2V0KTsKKyAgICAgICAg
ICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIE1lc3NhZ2VTZXQpLCAicHJvcGVydHkgbWVzc2Fn
ZSBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9yZXN1bHQtPnNldFN0cmluZygibWVzc2Fn
ZSJfcywgaW5fbWVzc2FnZSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPE1lc3NhZ2VT
ZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgQ29kZVNldD4mIHNl
dENvZGUoaW50IGluX2NvZGUpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJU
KCEoU1RBVEUgJiBDb2RlU2V0KSwgcHJvcGVydHlfY29kZV9hbHJlYWR5X3NldCk7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBDb2RlU2V0KSwgInByb3BlcnR5IGNvZGUgYWxy
ZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRJbnRlZ2VyKCJjb2RlIl9zLCBp
bl9jb2RlKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8Q29kZVNldD4oKTsKICAgICAg
ICAgfQogCiAgICAgICAgIFJlZjxOZXR3b3JrRXJyb3I+IHJlbGVhc2UoKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxGaWVsZHNTZXQsIHJlc3VsdF9p
c19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKE5ldHdvcmtF
cnJvcikgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksIGNhbm5vdF9jYXN0KTsKKyAgICAgICAgICAg
IHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCAicmVzdWx0IGlzIG5vdCByZWFk
eSIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoTmV0d29ya0Vycm9yKSA9PSBz
aXplb2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBjYXN0Iik7CiAKICAgICAgICAgICAgIFJlZjxK
U09OOjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOwogICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3ZlKCpyZWludGVycHJldF9jYXN0PFJlZjxOZXR3
b3JrRXJyb3I+Kj4oJmpzb25SZXN1bHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9zaGFkb3dlZC1vcHRpb25hbC10
eXBlLXNldHRlcnMuanNvbi1yZXN1bHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvc2hhZG93ZWQtb3B0aW9uYWwtdHlwZS1zZXR0ZXJzLmpz
b24tcmVzdWx0CmluZGV4IDEwMDZiM2ZhNDRhZDUwMGVmYjIwMThiOGExYjUyYWNlZTM0ZTczNDMu
LjVlODEyNGY4MzFkNjRiMTdhZDQzMTAwZDg4OGUwYjViMWEwNTliMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC9zaGFk
b3dlZC1vcHRpb25hbC10eXBlLXNldHRlcnMuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3NoYWRvd2VkLW9wdGlv
bmFsLXR5cGUtc2V0dGVycy5qc29uLXJlc3VsdApAQCAtMzU5LDIyICszNTksMjIgQEAgcHVibGlj
OgogICAgICAgICBCdWlsZGVyKFJlZjwvKktleVBhdGgqL0pTT046Ok9iamVjdD4mJiBvYmplY3Qp
CiAgICAgICAgICAgICA6IG1fcmVzdWx0KFdURk1vdmUob2JqZWN0KSkKICAgICAgICAgewotICAg
ICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3Jl
YXRlZF9pbl9ub25faW5pdF9zdGF0ZSk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRF
ID09IE5vRmllbGRzU2V0LCAiYnVpbGRlciBjcmVhdGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAg
ICAgICAgIH0KICAgICAgICAgZnJpZW5kIGNsYXNzIEtleVBhdGg7CiAgICAgcHVibGljOgogCiAg
ICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBUeXBlU2V0PiYgc2V0VHlwZShUeXBlIGluX3R5cGUpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBUeXBlU2V0KSwg
cHJvcGVydHlfdHlwZV9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEo
U1RBVEUgJiBUeXBlU2V0KSwgInByb3BlcnR5IHR5cGUgYWxyZWFkeSBzZXQiKTsKICAgICAgICAg
ICAgIG1fcmVzdWx0LT5zZXRTdHJpbmcoInR5cGUiX3MsIFByb3RvY29sOjpUZXN0SGVscGVyczo6
Z2V0RW51bUNvbnN0YW50VmFsdWUoaW5fdHlwZSkpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RT
dGF0ZTxUeXBlU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgUmVmPEtleVBhdGg+IHJlbGVh
c2UoKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxG
aWVsZHNTZXQsIHJlc3VsdF9pc19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKEtleVBhdGgpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7
CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3Vs
dCBpcyBub3QgcmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEtleVBh
dGgpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fubm90IGNhc3QiKTsKIAogICAgICAgICAg
ICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9IG1fcmVzdWx0LnJlbGVhc2VOb25OdWxs
KCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdURk1vdmUoKnJlaW50ZXJwcmV0X2Nhc3Q8
UmVmPEtleVBhdGg+Kj4oJmpzb25SZXN1bHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLWRlY2xhcmF0aW9u
LW9iamVjdC10eXBlLmpzb24tcmVzdWx0IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNv
bi1yZXN1bHQKaW5kZXggNjI2ODM3NWVlY2FmMDM3NzI1ZTc1MzYzNmM3Zjk4ZWYyNGY1YmQ4OC4u
ZTY5OTBkMjYzZDczMGQ2MmQzY2I3MTE1MmU4NzFmZDQ4OWExNjAxMSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUt
ZGVjbGFyYXRpb24tb2JqZWN0LXR5cGUuanNvbi1yZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtZGVjbGFyYXRpb24t
b2JqZWN0LXR5cGUuanNvbi1yZXN1bHQKQEAgLTM3MywyOSArMzczLDI5IEBAIHB1YmxpYzoKICAg
ICAgICAgQnVpbGRlcihSZWY8LypFcnJvciovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAg
ICAgICAgIDogbV9yZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAg
ICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2lu
X25vbl9pbml0X3N0YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9G
aWVsZHNTZXQsICJidWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAg
fQogICAgICAgICBmcmllbmQgY2xhc3MgRXJyb3I7CiAgICAgcHVibGljOgogCiAgICAgICAgIEJ1
aWxkZXI8U1RBVEUgfCBNZXNzYWdlU2V0PiYgc2V0TWVzc2FnZShjb25zdCBTdHJpbmcmIGluX21l
c3NhZ2UpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBN
ZXNzYWdlU2V0KSwgcHJvcGVydHlfbWVzc2FnZV9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBNZXNzYWdlU2V0KSwgInByb3BlcnR5IG1lc3NhZ2UgYWxy
ZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRTdHJpbmcoIm1lc3NhZ2UiX3Ms
IGluX21lc3NhZ2UpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxNZXNzYWdlU2V0Pigp
OwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IENvZGVTZXQ+JiBzZXRDb2Rl
KGludCBpbl9jb2RlKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNU
QVRFICYgQ29kZVNldCksIHByb3BlcnR5X2NvZGVfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAg
c3RhdGljX2Fzc2VydCghKFNUQVRFICYgQ29kZVNldCksICJwcm9wZXJ0eSBjb2RlIGFscmVhZHkg
c2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0SW50ZWdlcigiY29kZSJfcywgaW5fY29k
ZSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPENvZGVTZXQ+KCk7CiAgICAgICAgIH0K
IAogICAgICAgICBSZWY8RXJyb3I+IHJlbGVhc2UoKQogICAgICAgICB7Ci0gICAgICAgICAgICBD
T01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxGaWVsZHNTZXQsIHJlc3VsdF9pc19ub3RfcmVhZHkp
OwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEVycm9yKSA9PSBzaXplb2YoSlNP
Tjo6T2JqZWN0KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChTVEFU
RSA9PSBBbGxGaWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KHNpemVvZihFcnJvcikgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksICJjYW5u
b3QgY2FzdCIpOwogCiAgICAgICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBqc29uUmVzdWx0ID0g
bV9yZXN1bHQucmVsZWFzZU5vbk51bGwoKTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gV1RG
TW92ZSgqcmVpbnRlcnByZXRfY2FzdDxSZWY8RXJyb3I+Kj4oJmpzb25SZXN1bHQpKTsKQEAgLTQ1
MCwxNSArNDUwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgQnVpbGRlcihSZWY8LypPcHRpb25hbFBh
cmFtZXRlckJ1bmRsZSovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAgICAgICAgIDogbV9y
ZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0
YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJi
dWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAgfQogICAgICAgICBm
cmllbmQgY2xhc3MgT3B0aW9uYWxQYXJhbWV0ZXJCdW5kbGU7CiAgICAgcHVibGljOgogCiAgICAg
ICAgIFJlZjxPcHRpb25hbFBhcmFtZXRlckJ1bmRsZT4gcmVsZWFzZSgpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIENPTVBJTEVfQVNTRVJUKFNUQVRFID09IEFsbEZpZWxkc1NldCwgcmVzdWx0X2lz
X25vdF9yZWFkeSk7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoT3B0aW9uYWxQ
YXJhbWV0ZXJCdW5kbGUpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7Cisg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3VsdCBp
cyBub3QgcmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE9wdGlvbmFs
UGFyYW1ldGVyQnVuZGxlKSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBjYXN0Iik7
CiAKICAgICAgICAgICAgIFJlZjxKU09OOjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jlc3VsdC5y
ZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3ZlKCpyZWlu
dGVycHJldF9jYXN0PFJlZjxPcHRpb25hbFBhcmFtZXRlckJ1bmRsZT4qPigmanNvblJlc3VsdCkp
OwpAQCAtNTU3LDc4ICs1NTcsNzggQEAgcHVibGljOgogICAgICAgICBCdWlsZGVyKFJlZjwvKlBh
cmFtZXRlckJ1bmRsZSovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAgICAgICAgIDogbV9y
ZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0
YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJi
dWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAgfQogICAgICAgICBm
cmllbmQgY2xhc3MgUGFyYW1ldGVyQnVuZGxlOwogICAgIHB1YmxpYzoKIAogICAgICAgICBCdWls
ZGVyPFNUQVRFIHwgQ29sdW1uTmFtZXNTZXQ+JiBzZXRDb2x1bW5OYW1lcyhSZWY8SlNPTjo6QXJy
YXlPZjxTdHJpbmc+PiYmIGluX2NvbHVtbk5hbWVzKQogICAgICAgICB7Ci0gICAgICAgICAgICBD
T01QSUxFX0FTU0VSVCghKFNUQVRFICYgQ29sdW1uTmFtZXNTZXQpLCBwcm9wZXJ0eV9jb2x1bW5O
YW1lc19hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBD
b2x1bW5OYW1lc1NldCksICJwcm9wZXJ0eSBjb2x1bW5OYW1lcyBhbHJlYWR5IHNldCIpOwogICAg
ICAgICAgICAgbV9yZXN1bHQtPnNldEFycmF5KCJjb2x1bW5OYW1lcyJfcywgV1RGTW92ZShpbl9j
b2x1bW5OYW1lcykpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxDb2x1bW5OYW1lc1Nl
dD4oKTsKICAgICAgICAgfQogCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBCdXR0b25zU2V0PiYg
c2V0QnV0dG9ucyhSZWY8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6RGF0YWJhc2U6Ok1vdXNlQnV0
dG9uPj4mJiBpbl9idXR0b25zKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VS
VCghKFNUQVRFICYgQnV0dG9uc1NldCksIHByb3BlcnR5X2J1dHRvbnNfYWxyZWFkeV9zZXQpOwor
ICAgICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgQnV0dG9uc1NldCksICJwcm9wZXJ0
eSBidXR0b25zIGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0QXJyYXko
ImJ1dHRvbnMiX3MsIFdURk1vdmUoaW5fYnV0dG9ucykpOwogICAgICAgICAgICAgcmV0dXJuIGNh
c3RTdGF0ZTxCdXR0b25zU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFU
RSB8IERpcmVjdGlvbmFsaXR5U2V0PiYgc2V0RGlyZWN0aW9uYWxpdHkoRGlyZWN0aW9uYWxpdHkg
aW5fZGlyZWN0aW9uYWxpdHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJU
KCEoU1RBVEUgJiBEaXJlY3Rpb25hbGl0eVNldCksIHByb3BlcnR5X2RpcmVjdGlvbmFsaXR5X2Fs
cmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIERpcmVjdGlv
bmFsaXR5U2V0KSwgInByb3BlcnR5IGRpcmVjdGlvbmFsaXR5IGFscmVhZHkgc2V0Iik7CiAgICAg
ICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJkaXJlY3Rpb25hbGl0eSJfcywgUHJvdG9jb2w6
OlRlc3RIZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShpbl9kaXJlY3Rpb25hbGl0eSkpOwog
ICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxEaXJlY3Rpb25hbGl0eVNldD4oKTsKICAgICAg
ICAgfQogCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBOb3Rlc1NldD4mIHNldE5vdGVzKGNvbnN0
IFN0cmluZyYgaW5fbm90ZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJU
KCEoU1RBVEUgJiBOb3Rlc1NldCksIHByb3BlcnR5X25vdGVzX2FscmVhZHlfc2V0KTsKKyAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIE5vdGVzU2V0KSwgInByb3BlcnR5IG5vdGVz
IGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJub3RlcyJf
cywgaW5fbm90ZXMpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxOb3Rlc1NldD4oKTsK
ICAgICAgICAgfQogCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBUaW1lc3RhbXBTZXQ+JiBzZXRU
aW1lc3RhbXAoZG91YmxlIGluX3RpbWVzdGFtcCkKICAgICAgICAgewotICAgICAgICAgICAgQ09N
UElMRV9BU1NFUlQoIShTVEFURSAmIFRpbWVzdGFtcFNldCksIHByb3BlcnR5X3RpbWVzdGFtcF9h
bHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBUaW1lc3Rh
bXBTZXQpLCAicHJvcGVydHkgdGltZXN0YW1wIGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBt
X3Jlc3VsdC0+c2V0RG91YmxlKCJ0aW1lc3RhbXAiX3MsIGluX3RpbWVzdGFtcCk7CiAgICAgICAg
ICAgICByZXR1cm4gY2FzdFN0YXRlPFRpbWVzdGFtcFNldD4oKTsKICAgICAgICAgfQogCiAgICAg
ICAgIEJ1aWxkZXI8U1RBVEUgfCBWYWx1ZXNTZXQ+JiBzZXRWYWx1ZXMoUmVmPEpTT046Ok9iamVj
dD4mJiBpbl92YWx1ZXMpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEo
U1RBVEUgJiBWYWx1ZXNTZXQpLCBwcm9wZXJ0eV92YWx1ZXNfYWxyZWFkeV9zZXQpOworICAgICAg
ICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgVmFsdWVzU2V0KSwgInByb3BlcnR5IHZhbHVl
cyBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9yZXN1bHQtPnNldE9iamVjdCgidmFsdWVz
Il9zLCBXVEZNb3ZlKGluX3ZhbHVlcykpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxW
YWx1ZXNTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgUGF5bG9h
ZFNldD4mIHNldFBheWxvYWQoUmVmPEpTT046OlZhbHVlPiYmIGluX3BheWxvYWQpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBQYXlsb2FkU2V0KSwgcHJv
cGVydHlfcGF5bG9hZF9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEo
U1RBVEUgJiBQYXlsb2FkU2V0KSwgInByb3BlcnR5IHBheWxvYWQgYWxyZWFkeSBzZXQiKTsKICAg
ICAgICAgICAgIG1fcmVzdWx0LT5zZXRWYWx1ZSgicGF5bG9hZCJfcywgV1RGTW92ZShpbl9wYXls
b2FkKSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPFBheWxvYWRTZXQ+KCk7CiAgICAg
ICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgRXJyb3JTZXQ+JiBzZXRFcnJvcihSZWY8
UHJvdG9jb2w6OkRhdGFiYXNlOjpFcnJvcj4mJiBpbl9lcnJvcikKICAgICAgICAgewotICAgICAg
ICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIEVycm9yU2V0KSwgcHJvcGVydHlfZXJyb3Jf
YWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgRXJyb3JT
ZXQpLCAicHJvcGVydHkgZXJyb3IgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0
LT5zZXRPYmplY3QoImVycm9yIl9zLCBXVEZNb3ZlKGluX2Vycm9yKSk7CiAgICAgICAgICAgICBy
ZXR1cm4gY2FzdFN0YXRlPEVycm9yU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRl
cjxTVEFURSB8IEVycm9yTGlzdFNldD4mIHNldEVycm9yTGlzdChSZWY8UHJvdG9jb2w6OkRhdGFi
YXNlOjpFcnJvckxpc3Q+JiYgaW5fZXJyb3JMaXN0KQogICAgICAgICB7Ci0gICAgICAgICAgICBD
T01QSUxFX0FTU0VSVCghKFNUQVRFICYgRXJyb3JMaXN0U2V0KSwgcHJvcGVydHlfZXJyb3JMaXN0
X2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIEVycm9y
TGlzdFNldCksICJwcm9wZXJ0eSBlcnJvckxpc3QgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAg
IG1fcmVzdWx0LT5zZXRBcnJheSgiZXJyb3JMaXN0Il9zLCBXVEZNb3ZlKGluX2Vycm9yTGlzdCkp
OwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxFcnJvckxpc3RTZXQ+KCk7CiAgICAgICAg
IH0KIAogICAgICAgICBSZWY8UGFyYW1ldGVyQnVuZGxlPiByZWxlYXNlKCkKICAgICAgICAgewot
ICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCByZXN1bHRf
aXNfbm90X3JlYWR5KTsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihQYXJhbWV0
ZXJCdW5kbGUpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3VsdCBpcyBub3Qg
cmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFBhcmFtZXRlckJ1bmRs
ZSkgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksICJjYW5ub3QgY2FzdCIpOwogCiAgICAgICAgICAg
ICBSZWY8SlNPTjo6T2JqZWN0PiBqc29uUmVzdWx0ID0gbV9yZXN1bHQucmVsZWFzZU5vbk51bGwo
KTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gV1RGTW92ZSgqcmVpbnRlcnByZXRfY2FzdDxS
ZWY8UGFyYW1ldGVyQnVuZGxlPio+KCZqc29uUmVzdWx0KSk7CkBAIC02ODIsNTAgKzY4Miw1MCBA
QCBwdWJsaWM6CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qT2JqZWN0V2l0aFByb3BlcnR5TmFtZUNv
bmZsaWN0cyovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAgICAgICAgIDogbV9yZXN1bHQo
V1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChT
VEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0YXRlKTsK
KyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJidWlsZGVy
IGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAgfQogICAgICAgICBmcmllbmQg
Y2xhc3MgT2JqZWN0V2l0aFByb3BlcnR5TmFtZUNvbmZsaWN0czsKICAgICBwdWJsaWM6CiAKICAg
ICAgICAgQnVpbGRlcjxTVEFURSB8IEludGVnZXJTZXQ+JiBzZXRJbnRlZ2VyKGNvbnN0IFN0cmlu
ZyYgaW5faW50ZWdlcikKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShT
VEFURSAmIEludGVnZXJTZXQpLCBwcm9wZXJ0eV9pbnRlZ2VyX2FscmVhZHlfc2V0KTsKKyAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIEludGVnZXJTZXQpLCAicHJvcGVydHkgaW50
ZWdlciBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9yZXN1bHQtPnNldFN0cmluZygiaW50
ZWdlciJfcywgaW5faW50ZWdlcik7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPEludGVn
ZXJTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgQXJyYXlTZXQ+
JiBzZXRBcnJheShjb25zdCBTdHJpbmcmIGluX2FycmF5KQogICAgICAgICB7Ci0gICAgICAgICAg
ICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgQXJyYXlTZXQpLCBwcm9wZXJ0eV9hcnJheV9hbHJl
YWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBBcnJheVNldCks
ICJwcm9wZXJ0eSBhcnJheSBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9yZXN1bHQtPnNl
dFN0cmluZygiYXJyYXkiX3MsIGluX2FycmF5KTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3Rh
dGU8QXJyYXlTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgU3Ry
aW5nU2V0PiYgc2V0U3RyaW5nKGNvbnN0IFN0cmluZyYgaW5fc3RyaW5nKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgU3RyaW5nU2V0KSwgcHJvcGVydHlf
c3RyaW5nX2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAm
IFN0cmluZ1NldCksICJwcm9wZXJ0eSBzdHJpbmcgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAg
IG1fcmVzdWx0LT5zZXRTdHJpbmcoInN0cmluZyJfcywgaW5fc3RyaW5nKTsKICAgICAgICAgICAg
IHJldHVybiBjYXN0U3RhdGU8U3RyaW5nU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVp
bGRlcjxTVEFURSB8IFZhbHVlU2V0PiYgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiBpbl92YWx1ZSkK
ICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIFZhbHVlU2V0
KSwgcHJvcGVydHlfdmFsdWVfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fzc2Vy
dCghKFNUQVRFICYgVmFsdWVTZXQpLCAicHJvcGVydHkgdmFsdWUgYWxyZWFkeSBzZXQiKTsKICAg
ICAgICAgICAgIG1fcmVzdWx0LT5zZXRTdHJpbmcoInZhbHVlIl9zLCBpbl92YWx1ZSk7CiAgICAg
ICAgICAgICByZXR1cm4gY2FzdFN0YXRlPFZhbHVlU2V0PigpOwogICAgICAgICB9CiAKICAgICAg
ICAgQnVpbGRlcjxTVEFURSB8IE9iamVjdFNldD4mIHNldE9iamVjdChjb25zdCBTdHJpbmcmIGlu
X29iamVjdCkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAm
IE9iamVjdFNldCksIHByb3BlcnR5X29iamVjdF9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBz
dGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBPYmplY3RTZXQpLCAicHJvcGVydHkgb2JqZWN0IGFscmVh
ZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJvYmplY3QiX3MsIGlu
X29iamVjdCk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPE9iamVjdFNldD4oKTsKICAg
ICAgICAgfQogCiAgICAgICAgIFJlZjxPYmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzPiBy
ZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0g
QWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5KTsKLSAgICAgICAgICAgIENPTVBJTEVf
QVNTRVJUKHNpemVvZihPYmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzKSA9PSBzaXplb2Yo
SlNPTjo6T2JqZWN0KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChT
VEFURSA9PSBBbGxGaWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAgICAgICAg
ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihPYmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzKSA9
PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBjYXN0Iik7CiAKICAgICAgICAgICAgIFJl
ZjxKU09OOjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOwog
ICAgICAgICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3ZlKCpyZWludGVycHJldF9jYXN0PFJlZjxP
YmplY3RXaXRoUHJvcGVydHlOYW1lQ29uZmxpY3RzPio+KCZqc29uUmVzdWx0KSk7CkBAIC03NzAs
MTUgKzc3MCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qRHVtbXlPYmplY3Qq
L0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAgICA6IG1fcmVzdWx0KFdURk1vdmUo
b2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0g
Tm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25faW5pdF9zdGF0ZSk7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRzU2V0LCAiYnVpbGRlciBjcmVhdGVk
IGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAgICAgICAgZnJpZW5kIGNsYXNzIER1
bW15T2JqZWN0OwogICAgIHB1YmxpYzoKIAogICAgICAgICBSZWY8RHVtbXlPYmplY3Q+IHJlbGVh
c2UoKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxG
aWVsZHNTZXQsIHJlc3VsdF9pc19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKER1bW15T2JqZWN0KSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgY2Fubm90X2Nh
c3QpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChTVEFURSA9PSBBbGxGaWVsZHNTZXQsICJy
ZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihE
dW1teU9iamVjdCkgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksICJjYW5ub3QgY2FzdCIpOwogCiAg
ICAgICAgICAgICBSZWY8SlNPTjo6T2JqZWN0PiBqc29uUmVzdWx0ID0gbV9yZXN1bHQucmVsZWFz
ZU5vbk51bGwoKTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gV1RGTW92ZSgqcmVpbnRlcnBy
ZXRfY2FzdDxSZWY8RHVtbXlPYmplY3Q+Kj4oJmpzb25SZXN1bHQpKTsKQEAgLTgzNSw3MSArODM1
LDcxIEBAIHB1YmxpYzoKICAgICAgICAgQnVpbGRlcihSZWY8LypQYXJhbWV0ZXJCdW5kbGUqL0pT
T046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAgICA6IG1fcmVzdWx0KFdURk1vdmUob2Jq
ZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RBVEUgPT0gTm9G
aWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25faW5pdF9zdGF0ZSk7CisgICAgICAgICAg
ICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRzU2V0LCAiYnVpbGRlciBjcmVhdGVkIGlu
IG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAgICAgICAgZnJpZW5kIGNsYXNzIFBhcmFt
ZXRlckJ1bmRsZTsKICAgICBwdWJsaWM6CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IERpcmVj
dGlvbmFsaXR5U2V0PiYgc2V0RGlyZWN0aW9uYWxpdHkoRGlyZWN0aW9uYWxpdHkgaW5fZGlyZWN0
aW9uYWxpdHkpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RBVEUg
JiBEaXJlY3Rpb25hbGl0eVNldCksIHByb3BlcnR5X2RpcmVjdGlvbmFsaXR5X2FscmVhZHlfc2V0
KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIERpcmVjdGlvbmFsaXR5U2V0
KSwgInByb3BlcnR5IGRpcmVjdGlvbmFsaXR5IGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBt
X3Jlc3VsdC0+c2V0U3RyaW5nKCJkaXJlY3Rpb25hbGl0eSJfcywgUHJvdG9jb2w6OlRlc3RIZWxw
ZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShpbl9kaXJlY3Rpb25hbGl0eSkpOwogICAgICAgICAg
ICAgcmV0dXJuIGNhc3RTdGF0ZTxEaXJlY3Rpb25hbGl0eVNldD4oKTsKICAgICAgICAgfQogCiAg
ICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBCdXR0b25zU2V0PiYgc2V0QnV0dG9ucyhSZWY8SlNPTjo6
QXJyYXlPZjxQcm90b2NvbDo6RGF0YWJhc2U6Ok1vdXNlQnV0dG9uPj4mJiBpbl9idXR0b25zKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgQnV0dG9uc1Nl
dCksIHByb3BlcnR5X2J1dHRvbnNfYWxyZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fz
c2VydCghKFNUQVRFICYgQnV0dG9uc1NldCksICJwcm9wZXJ0eSBidXR0b25zIGFscmVhZHkgc2V0
Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0QXJyYXkoImJ1dHRvbnMiX3MsIFdURk1vdmUo
aW5fYnV0dG9ucykpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxCdXR0b25zU2V0Pigp
OwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IENvbHVtbk5hbWVzU2V0PiYg
c2V0Q29sdW1uTmFtZXMoUmVmPEpTT046OkFycmF5T2Y8U3RyaW5nPj4mJiBpbl9jb2x1bW5OYW1l
cykKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIENvbHVt
bk5hbWVzU2V0KSwgcHJvcGVydHlfY29sdW1uTmFtZXNfYWxyZWFkeV9zZXQpOworICAgICAgICAg
ICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgQ29sdW1uTmFtZXNTZXQpLCAicHJvcGVydHkgY29s
dW1uTmFtZXMgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRBcnJheSgi
Y29sdW1uTmFtZXMiX3MsIFdURk1vdmUoaW5fY29sdW1uTmFtZXMpKTsKICAgICAgICAgICAgIHJl
dHVybiBjYXN0U3RhdGU8Q29sdW1uTmFtZXNTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBC
dWlsZGVyPFNUQVRFIHwgTm90ZXNTZXQ+JiBzZXROb3Rlcyhjb25zdCBTdHJpbmcmIGluX25vdGVz
KQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgTm90ZXNT
ZXQpLCBwcm9wZXJ0eV9ub3Rlc19hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KCEoU1RBVEUgJiBOb3Rlc1NldCksICJwcm9wZXJ0eSBub3RlcyBhbHJlYWR5IHNldCIpOwog
ICAgICAgICAgICAgbV9yZXN1bHQtPnNldFN0cmluZygibm90ZXMiX3MsIGluX25vdGVzKTsKICAg
ICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8Tm90ZXNTZXQ+KCk7CiAgICAgICAgIH0KIAogICAg
ICAgICBCdWlsZGVyPFNUQVRFIHwgVGltZXN0YW1wU2V0PiYgc2V0VGltZXN0YW1wKGRvdWJsZSBp
bl90aW1lc3RhbXApCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKCEoU1RB
VEUgJiBUaW1lc3RhbXBTZXQpLCBwcm9wZXJ0eV90aW1lc3RhbXBfYWxyZWFkeV9zZXQpOworICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgVGltZXN0YW1wU2V0KSwgInByb3BlcnR5
IHRpbWVzdGFtcCBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9yZXN1bHQtPnNldERvdWJs
ZSgidGltZXN0YW1wIl9zLCBpbl90aW1lc3RhbXApOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RT
dGF0ZTxUaW1lc3RhbXBTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRF
IHwgVmFsdWVzU2V0PiYgc2V0VmFsdWVzKFJlZjxKU09OOjpPYmplY3Q+JiYgaW5fdmFsdWVzKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgVmFsdWVzU2V0
KSwgcHJvcGVydHlfdmFsdWVzX2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoIShTVEFURSAmIFZhbHVlc1NldCksICJwcm9wZXJ0eSB2YWx1ZXMgYWxyZWFkeSBzZXQiKTsK
ICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRPYmplY3QoInZhbHVlcyJfcywgV1RGTW92ZShpbl92
YWx1ZXMpKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8VmFsdWVzU2V0PigpOwogICAg
ICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IFBheWxvYWRTZXQ+JiBzZXRQYXlsb2Fk
KFJlZjxKU09OOjpWYWx1ZT4mJiBpbl9wYXlsb2FkKQogICAgICAgICB7Ci0gICAgICAgICAgICBD
T01QSUxFX0FTU0VSVCghKFNUQVRFICYgUGF5bG9hZFNldCksIHByb3BlcnR5X3BheWxvYWRfYWxy
ZWFkeV9zZXQpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgUGF5bG9hZFNl
dCksICJwcm9wZXJ0eSBwYXlsb2FkIGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3Vs
dC0+c2V0VmFsdWUoInBheWxvYWQiX3MsIFdURk1vdmUoaW5fcGF5bG9hZCkpOwogICAgICAgICAg
ICAgcmV0dXJuIGNhc3RTdGF0ZTxQYXlsb2FkU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAg
QnVpbGRlcjxTVEFURSB8IEVycm9yU2V0PiYgc2V0RXJyb3IoUmVmPFByb3RvY29sOjpEYXRhYmFz
ZTo6RXJyb3I+JiYgaW5fZXJyb3IpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNT
RVJUKCEoU1RBVEUgJiBFcnJvclNldCksIHByb3BlcnR5X2Vycm9yX2FscmVhZHlfc2V0KTsKKyAg
ICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIEVycm9yU2V0KSwgInByb3BlcnR5IGVy
cm9yIGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0T2JqZWN0KCJlcnJv
ciJfcywgV1RGTW92ZShpbl9lcnJvcikpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxF
cnJvclNldD4oKTsKICAgICAgICAgfQogCiAgICAgICAgIFJlZjxQYXJhbWV0ZXJCdW5kbGU+IHJl
bGVhc2UoKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBB
bGxGaWVsZHNTZXQsIHJlc3VsdF9pc19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKFBhcmFtZXRlckJ1bmRsZSkgPT0gc2l6ZW9mKEpTT046Ok9iamVjdCksIGNh
bm5vdF9jYXN0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gQWxsRmllbGRz
U2V0LCAicmVzdWx0IGlzIG5vdCByZWFkeSIpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChz
aXplb2YoUGFyYW1ldGVyQnVuZGxlKSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBj
YXN0Iik7CiAKICAgICAgICAgICAgIFJlZjxKU09OOjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jl
c3VsdC5yZWxlYXNlTm9uTnVsbCgpOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3Zl
KCpyZWludGVycHJldF9jYXN0PFJlZjxQYXJhbWV0ZXJCdW5kbGU+Kj4oJmpzb25SZXN1bHQpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC90eXBlLXJlcXVpcmluZy1ydW50aW1lLWNhc3RzLmpzb24tcmVzdWx0IGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUt
cmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1yZXN1bHQKaW5kZXggMjg4ZTIyNjU4NmExYzQ4
MjAxNTFhMWJhYTg5YTBkZDJiNzBkMmQ5NC4uZDAzYjAwZWY0MGE3NmJkMmQ1OTljMDdkZDQ4NWMw
NWFlNTUzNzdmZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9z
Y3JpcHRzL3Rlc3RzL2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1y
ZXN1bHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9zY3JpcHRzL3Rlc3Rz
L2V4cGVjdGVkL3R5cGUtcmVxdWlyaW5nLXJ1bnRpbWUtY2FzdHMuanNvbi1yZXN1bHQKQEAgLTM3
MSw1MCArMzcxLDUwIEBAIHB1YmxpYzoKICAgICAgICAgQnVpbGRlcihSZWY8LypUeXBlTmVlZGlu
Z0Nhc3QqL0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAgICA6IG1fcmVzdWx0KFdU
Rk1vdmUob2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoU1RB
VEUgPT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25faW5pdF9zdGF0ZSk7Cisg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRzU2V0LCAiYnVpbGRlciBj
cmVhdGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAgICAgICAgZnJpZW5kIGNs
YXNzIFR5cGVOZWVkaW5nQ2FzdDsKICAgICBwdWJsaWM6CiAKICAgICAgICAgQnVpbGRlcjxTVEFU
RSB8IFN0cmluZ1NldD4mIHNldFN0cmluZyhjb25zdCBTdHJpbmcmIGluX3N0cmluZykKICAgICAg
ICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIFN0cmluZ1NldCksIHBy
b3BlcnR5X3N0cmluZ19hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEo
U1RBVEUgJiBTdHJpbmdTZXQpLCAicHJvcGVydHkgc3RyaW5nIGFscmVhZHkgc2V0Iik7CiAgICAg
ICAgICAgICBtX3Jlc3VsdC0+c2V0U3RyaW5nKCJzdHJpbmciX3MsIGluX3N0cmluZyk7CiAgICAg
ICAgICAgICByZXR1cm4gY2FzdFN0YXRlPFN0cmluZ1NldD4oKTsKICAgICAgICAgfQogCiAgICAg
ICAgIEJ1aWxkZXI8U1RBVEUgfCBOdW1iZXJTZXQ+JiBzZXROdW1iZXIoaW50IGluX251bWJlcikK
ICAgICAgICAgewotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIE51bWJlclNl
dCksIHByb3BlcnR5X251bWJlcl9hbHJlYWR5X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KCEoU1RBVEUgJiBOdW1iZXJTZXQpLCAicHJvcGVydHkgbnVtYmVyIGFscmVhZHkgc2V0Iik7
CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0SW50ZWdlcigibnVtYmVyIl9zLCBpbl9udW1iZXIp
OwogICAgICAgICAgICAgcmV0dXJuIGNhc3RTdGF0ZTxOdW1iZXJTZXQ+KCk7CiAgICAgICAgIH0K
IAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwgQW5pbWFsc1NldD4mIHNldEFuaW1hbHMoUHJvdG9j
b2w6OlRlc3Q6OkNhc3RlZEFuaW1hbHMgaW5fYW5pbWFscykKICAgICAgICAgewotICAgICAgICAg
ICAgQ09NUElMRV9BU1NFUlQoIShTVEFURSAmIEFuaW1hbHNTZXQpLCBwcm9wZXJ0eV9hbmltYWxz
X2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIEFuaW1h
bHNTZXQpLCAicHJvcGVydHkgYW5pbWFscyBhbHJlYWR5IHNldCIpOwogICAgICAgICAgICAgbV9y
ZXN1bHQtPnNldFN0cmluZygiYW5pbWFscyJfcywgUHJvdG9jb2w6OlRlc3RIZWxwZXJzOjpnZXRF
bnVtQ29uc3RhbnRWYWx1ZShpbl9hbmltYWxzKSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0
YXRlPEFuaW1hbHNTZXQ+KCk7CiAgICAgICAgIH0KIAogICAgICAgICBCdWlsZGVyPFNUQVRFIHwg
SWRTZXQ+JiBzZXRJZChpbnQgaW5faWQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVf
QVNTRVJUKCEoU1RBVEUgJiBJZFNldCksIHByb3BlcnR5X2lkX2FscmVhZHlfc2V0KTsKKyAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIElkU2V0KSwgInByb3BlcnR5IGlkIGFscmVh
ZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0SW50ZWdlcigiaWQiX3MsIGluX2lk
KTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8SWRTZXQ+KCk7CiAgICAgICAgIH0KIAog
ICAgICAgICBCdWlsZGVyPFNUQVRFIHwgVHJlZVNldD4mIHNldFRyZWUoUmVmPFByb3RvY29sOjpU
ZXN0OjpSZWN1cnNpdmVPYmplY3QxPiYmIGluX3RyZWUpCiAgICAgICAgIHsKLSAgICAgICAgICAg
IENPTVBJTEVfQVNTRVJUKCEoU1RBVEUgJiBUcmVlU2V0KSwgcHJvcGVydHlfdHJlZV9hbHJlYWR5
X3NldCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KCEoU1RBVEUgJiBUcmVlU2V0KSwgInBy
b3BlcnR5IHRyZWUgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXRPYmpl
Y3QoInRyZWUiX3MsIFdURk1vdmUoaW5fdHJlZSkpOwogICAgICAgICAgICAgcmV0dXJuIGNhc3RT
dGF0ZTxUcmVlU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgUmVmPFR5cGVOZWVkaW5nQ2Fz
dD4gcmVsZWFzZSgpCiAgICAgICAgIHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKFNUQVRF
ID09IEFsbEZpZWxkc1NldCwgcmVzdWx0X2lzX25vdF9yZWFkeSk7Ci0gICAgICAgICAgICBDT01Q
SUxFX0FTU0VSVChzaXplb2YoVHlwZU5lZWRpbmdDYXN0KSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0
KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGljX2Fzc2VydChTVEFURSA9PSBBbGxG
aWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7CisgICAgICAgICAgICBzdGF0aWNfYXNz
ZXJ0KHNpemVvZihUeXBlTmVlZGluZ0Nhc3QpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fu
bm90IGNhc3QiKTsKIAogICAgICAgICAgICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9
IG1fcmVzdWx0LnJlbGVhc2VOb25OdWxsKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdU
Rk1vdmUoKnJlaW50ZXJwcmV0X2Nhc3Q8UmVmPFR5cGVOZWVkaW5nQ2FzdD4qPigmanNvblJlc3Vs
dCkpOwpAQCAtNDcyLDE1ICs0NzIsMTUgQEAgcHVibGljOgogICAgICAgICBCdWlsZGVyKFJlZjwv
KlJlY3Vyc2l2ZU9iamVjdDEqL0pTT046Ok9iamVjdD4mJiBvYmplY3QpCiAgICAgICAgICAgICA6
IG1fcmVzdWx0KFdURk1vdmUob2JqZWN0KSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElM
RV9BU1NFUlQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsIGJ1aWxkZXJfY3JlYXRlZF9pbl9ub25faW5p
dF9zdGF0ZSk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IE5vRmllbGRzU2V0
LCAiYnVpbGRlciBjcmVhdGVkIGluIG5vbiBpbml0IHN0YXRlIik7CiAgICAgICAgIH0KICAgICAg
ICAgZnJpZW5kIGNsYXNzIFJlY3Vyc2l2ZU9iamVjdDE7CiAgICAgcHVibGljOgogCiAgICAgICAg
IFJlZjxSZWN1cnNpdmVPYmplY3QxPiByZWxlYXNlKCkKICAgICAgICAgewotICAgICAgICAgICAg
Q09NUElMRV9BU1NFUlQoU1RBVEUgPT0gQWxsRmllbGRzU2V0LCByZXN1bHRfaXNfbm90X3JlYWR5
KTsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihSZWN1cnNpdmVPYmplY3QxKSA9
PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgY2Fubm90X2Nhc3QpOworICAgICAgICAgICAgc3RhdGlj
X2Fzc2VydChTVEFURSA9PSBBbGxGaWVsZHNTZXQsICJyZXN1bHQgaXMgbm90IHJlYWR5Iik7Cisg
ICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihSZWN1cnNpdmVPYmplY3QxKSA9PSBzaXpl
b2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBjYXN0Iik7CiAKICAgICAgICAgICAgIFJlZjxKU09O
OjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jlc3VsdC5yZWxlYXNlTm9uTnVsbCgpOwogICAgICAg
ICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3ZlKCpyZWludGVycHJldF9jYXN0PFJlZjxSZWN1cnNp
dmVPYmplY3QxPio+KCZqc29uUmVzdWx0KSk7CkBAIC01MjQsMTUgKzUyNCwxNSBAQCBwdWJsaWM6
CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qUmVjdXJzaXZlT2JqZWN0MiovSlNPTjo6T2JqZWN0PiYm
IG9iamVjdCkKICAgICAgICAgICAgIDogbV9yZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVp
bGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3Nl
cnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJidWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3Rh
dGUiKTsKICAgICAgICAgfQogICAgICAgICBmcmllbmQgY2xhc3MgUmVjdXJzaXZlT2JqZWN0MjsK
ICAgICBwdWJsaWM6CiAKICAgICAgICAgUmVmPFJlY3Vyc2l2ZU9iamVjdDI+IHJlbGVhc2UoKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxGaWVsZHNT
ZXQsIHJlc3VsdF9pc19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKFJlY3Vyc2l2ZU9iamVjdDIpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2Fz
dCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJl
c3VsdCBpcyBub3QgcmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKFJl
Y3Vyc2l2ZU9iamVjdDIpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fubm90IGNhc3QiKTsK
IAogICAgICAgICAgICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9IG1fcmVzdWx0LnJl
bGVhc2VOb25OdWxsKCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdURk1vdmUoKnJlaW50
ZXJwcmV0X2Nhc3Q8UmVmPFJlY3Vyc2l2ZU9iamVjdDI+Kj4oJmpzb25SZXN1bHQpKTsKQEAgLTc0
NSw3ICs3NDUsNyBAQCBSZWY8UHJvdG9jb2w6OlRlc3Q6OlR5cGVOZWVkaW5nQ2FzdD4gQmluZGlu
Z1RyYWl0czxQcm90b2NvbDo6VGVzdDo6VHlwZU5lZWRpbmdDYQogewogICAgIGF1dG8gcmVzdWx0
ID0gdmFsdWUtPmFzT2JqZWN0KCk7CiAgICAgQmluZGluZ1RyYWl0czxQcm90b2NvbDo6VGVzdDo6
VHlwZU5lZWRpbmdDYXN0Pjo6YXNzZXJ0VmFsdWVIYXNFeHBlY3RlZFR5cGUocmVzdWx0LmdldCgp
KTsKLSAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoUHJvdG9jb2w6OlRlc3Q6OlR5cGVOZWVkaW5n
Q2FzdCkgPT0gc2l6ZW9mKEpTT046Ok9iamVjdEJhc2UpLCB0eXBlX2Nhc3RfcHJvYmxlbSk7Cisg
ICAgc3RhdGljX2Fzc2VydChzaXplb2YoUHJvdG9jb2w6OlRlc3Q6OlR5cGVOZWVkaW5nQ2FzdCkg
PT0gc2l6ZW9mKEpTT046Ok9iamVjdEJhc2UpLCAidHlwZSBjYXN0IHByb2JsZW0iKTsKICAgICBy
ZXR1cm4gc3RhdGljX3JlZmVyZW5jZV9jYXN0PFByb3RvY29sOjpUZXN0OjpUeXBlTmVlZGluZ0Nh
c3Q+KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxKU09OOjpPYmplY3RCYXNlPihyZXN1bHQucmVsZWFz
ZU5vbk51bGwoKSkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL3NjcmlwdHMvdGVzdHMvZXhwZWN0ZWQvdHlwZS13aXRoLW9wZW4tcGFyYW1ldGVycy5q
c29uLXJlc3VsdCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0
cy9leHBlY3RlZC90eXBlLXdpdGgtb3Blbi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0CmluZGV4IDFm
ZjYzM2E0NWY5NGM3MTQwZDM3N2Q5ZmZkMjA2MzY2MjRlNTY4YzQuLmE4ODY0OWZiNzI5N2I5YmEz
YTI5N2U1N2I2YWVmOGZiMGI0NDM5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3Ivc2NyaXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLXdpdGgtb3Blbi1wYXJhbWV0
ZXJzLmpzb24tcmVzdWx0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Ivc2Ny
aXB0cy90ZXN0cy9leHBlY3RlZC90eXBlLXdpdGgtb3Blbi1wYXJhbWV0ZXJzLmpzb24tcmVzdWx0
CkBAIC0zNDIsMjkgKzM0MiwyOSBAQCBwdWJsaWM6CiAgICAgICAgIEJ1aWxkZXIoUmVmPC8qTm9P
cGVuUGFyYW1ldGVycyovSlNPTjo6T2JqZWN0PiYmIG9iamVjdCkKICAgICAgICAgICAgIDogbV9y
ZXN1bHQoV1RGTW92ZShvYmplY3QpKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVChTVEFURSA9PSBOb0ZpZWxkc1NldCwgYnVpbGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0
YXRlKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJi
dWlsZGVyIGNyZWF0ZWQgaW4gbm9uIGluaXQgc3RhdGUiKTsKICAgICAgICAgfQogICAgICAgICBm
cmllbmQgY2xhc3MgTm9PcGVuUGFyYW1ldGVyczsKICAgICBwdWJsaWM6CiAKICAgICAgICAgQnVp
bGRlcjxTVEFURSB8IE9uZVNldD4mIHNldE9uZShkb3VibGUgaW5fb25lKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVCghKFNUQVRFICYgT25lU2V0KSwgcHJvcGVydHlfb25l
X2FscmVhZHlfc2V0KTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIE9uZVNl
dCksICJwcm9wZXJ0eSBvbmUgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5z
ZXREb3VibGUoIm9uZSJfcywgaW5fb25lKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8
T25lU2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IFR3b1NldD4m
IHNldFR3byhkb3VibGUgaW5fdHdvKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVCghKFNUQVRFICYgVHdvU2V0KSwgcHJvcGVydHlfdHdvX2FscmVhZHlfc2V0KTsKKyAgICAg
ICAgICAgIHN0YXRpY19hc3NlcnQoIShTVEFURSAmIFR3b1NldCksICJwcm9wZXJ0eSB0d28gYWxy
ZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXREb3VibGUoInR3byJfcywgaW5f
dHdvKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8VHdvU2V0PigpOwogICAgICAgICB9
CiAKICAgICAgICAgUmVmPE5vT3BlblBhcmFtZXRlcnM+IHJlbGVhc2UoKQogICAgICAgICB7Ci0g
ICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBBbGxGaWVsZHNTZXQsIHJlc3VsdF9p
c19ub3RfcmVhZHkpOwotICAgICAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKE5vT3BlblBh
cmFtZXRlcnMpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7CisgICAgICAg
ICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3VsdCBpcyBub3Qg
cmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE5vT3BlblBhcmFtZXRl
cnMpID09IHNpemVvZihKU09OOjpPYmplY3QpLCAiY2Fubm90IGNhc3QiKTsKIAogICAgICAgICAg
ICAgUmVmPEpTT046Ok9iamVjdD4ganNvblJlc3VsdCA9IG1fcmVzdWx0LnJlbGVhc2VOb25OdWxs
KCk7CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IFdURk1vdmUoKnJlaW50ZXJwcmV0X2Nhc3Q8
UmVmPE5vT3BlblBhcmFtZXRlcnM+Kj4oJmpzb25SZXN1bHQpKTsKQEAgLTQwNywyOSArNDA3LDI5
IEBAIHB1YmxpYzoKICAgICAgICAgQnVpbGRlcihSZWY8LypPcGVuUGFyYW1ldGVycyovSlNPTjo6
T2JqZWN0PiYmIG9iamVjdCkKICAgICAgICAgICAgIDogbV9yZXN1bHQoV1RGTW92ZShvYmplY3Qp
KQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChTVEFURSA9PSBOb0ZpZWxk
c1NldCwgYnVpbGRlcl9jcmVhdGVkX2luX25vbl9pbml0X3N0YXRlKTsKKyAgICAgICAgICAgIHN0
YXRpY19hc3NlcnQoU1RBVEUgPT0gTm9GaWVsZHNTZXQsICJidWlsZGVyIGNyZWF0ZWQgaW4gbm9u
IGluaXQgc3RhdGUiKTsKICAgICAgICAgfQogICAgICAgICBmcmllbmQgY2xhc3MgT3BlblBhcmFt
ZXRlcnM7CiAgICAgcHVibGljOgogCiAgICAgICAgIEJ1aWxkZXI8U1RBVEUgfCBBbHBoYVNldD4m
IHNldEFscGhhKGRvdWJsZSBpbl9hbHBoYSkKICAgICAgICAgewotICAgICAgICAgICAgQ09NUElM
RV9BU1NFUlQoIShTVEFURSAmIEFscGhhU2V0KSwgcHJvcGVydHlfYWxwaGFfYWxyZWFkeV9zZXQp
OworICAgICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgQWxwaGFTZXQpLCAicHJvcGVy
dHkgYWxwaGEgYWxyZWFkeSBzZXQiKTsKICAgICAgICAgICAgIG1fcmVzdWx0LT5zZXREb3VibGUo
ImFscGhhIl9zLCBpbl9hbHBoYSk7CiAgICAgICAgICAgICByZXR1cm4gY2FzdFN0YXRlPEFscGhh
U2V0PigpOwogICAgICAgICB9CiAKICAgICAgICAgQnVpbGRlcjxTVEFURSB8IEJldGFTZXQ+JiBz
ZXRCZXRhKGRvdWJsZSBpbl9iZXRhKQogICAgICAgICB7Ci0gICAgICAgICAgICBDT01QSUxFX0FT
U0VSVCghKFNUQVRFICYgQmV0YVNldCksIHByb3BlcnR5X2JldGFfYWxyZWFkeV9zZXQpOworICAg
ICAgICAgICAgc3RhdGljX2Fzc2VydCghKFNUQVRFICYgQmV0YVNldCksICJwcm9wZXJ0eSBiZXRh
IGFscmVhZHkgc2V0Iik7CiAgICAgICAgICAgICBtX3Jlc3VsdC0+c2V0RG91YmxlKCJiZXRhIl9z
LCBpbl9iZXRhKTsKICAgICAgICAgICAgIHJldHVybiBjYXN0U3RhdGU8QmV0YVNldD4oKTsKICAg
ICAgICAgfQogCiAgICAgICAgIFJlZjxPcGVuUGFyYW1ldGVycz4gcmVsZWFzZSgpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIENPTVBJTEVfQVNTRVJUKFNUQVRFID09IEFsbEZpZWxkc1NldCwgcmVz
dWx0X2lzX25vdF9yZWFkeSk7Ci0gICAgICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YoT3Bl
blBhcmFtZXRlcnMpID09IHNpemVvZihKU09OOjpPYmplY3QpLCBjYW5ub3RfY2FzdCk7CisgICAg
ICAgICAgICBzdGF0aWNfYXNzZXJ0KFNUQVRFID09IEFsbEZpZWxkc1NldCwgInJlc3VsdCBpcyBu
b3QgcmVhZHkiKTsKKyAgICAgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE9wZW5QYXJhbWV0
ZXJzKSA9PSBzaXplb2YoSlNPTjo6T2JqZWN0KSwgImNhbm5vdCBjYXN0Iik7CiAKICAgICAgICAg
ICAgIFJlZjxKU09OOjpPYmplY3Q+IGpzb25SZXN1bHQgPSBtX3Jlc3VsdC5yZWxlYXNlTm9uTnVs
bCgpOwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBXVEZNb3ZlKCpyZWludGVycHJldF9jYXN0
PFJlZjxPcGVuUGFyYW1ldGVycz4qPigmanNvblJlc3VsdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9GUFJJbmZvLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0ZQUkluZm8uaAppbmRleCAyZTE3MmZlNTA0MzA1YzY5ZTE0ODgyOTJjM2E2MjExYjk1YTc4NGE3
Li43NjYwZGNmMDk2NDQ0YWVkNmYzMGJhNmJiMWQ1YWM5MjUyMzllMzI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0ZQUkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0ZQUkluZm8uaApAQCAtNjcsMTIgKzY3LDEyIEBAIGNsYXNzIEZQUkluZm8gewog
CiAgICAgLy8gRlBSUmVnIG1hcHBpbmcgaXMgZGlyZWN0LCB0aGUgbWFjaGluZSByZWdzaXRlciBu
dW1iZXJzIGNhbgogICAgIC8vIGJlIHVzZWQgZGlyZWN0bHkgYXMgaW5kaWNlcyBpbnRvIHRoZSBG
UFIgUmVnaXN0ZXJCYW5rLgotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tMCA9
PSAwLCB4bW0wX2lzXzApOwotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tMSA9
PSAxLCB4bW0xX2lzXzEpOwotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tMiA9
PSAyLCB4bW0yX2lzXzIpOwotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tMyA9
PSAzLCB4bW0zX2lzXzMpOwotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tNCA9
PSA0LCB4bW00X2lzXzQpOwotICAgIENPTVBJTEVfQVNTRVJUKFg4NlJlZ2lzdGVyczo6eG1tNSA9
PSA1LCB4bW01X2lzXzUpOworICAgIHN0YXRpY19hc3NlcnQoWDg2UmVnaXN0ZXJzOjp4bW0wID09
IDApOworICAgIHN0YXRpY19hc3NlcnQoWDg2UmVnaXN0ZXJzOjp4bW0xID09IDEpOworICAgIHN0
YXRpY19hc3NlcnQoWDg2UmVnaXN0ZXJzOjp4bW0yID09IDIpOworICAgIHN0YXRpY19hc3NlcnQo
WDg2UmVnaXN0ZXJzOjp4bW0zID09IDMpOworICAgIHN0YXRpY19hc3NlcnQoWDg2UmVnaXN0ZXJz
Ojp4bW00ID09IDQpOworICAgIHN0YXRpY19hc3NlcnQoWDg2UmVnaXN0ZXJzOjp4bW01ID09IDUp
OwogICAgIHN0YXRpYyBGUFJSZWcgdG9SZWdpc3Rlcih1bnNpZ25lZCBpbmRleCkKICAgICB7CiAg
ICAgICAgIHJldHVybiAoRlBSUmVnKWluZGV4OwpAQCAtMTM0LDEyICsxMzQsMTIgQEAgY2xhc3Mg
RlBSSW5mbyB7CiAKICAgICAvLyBGUFJSZWcgbWFwcGluZyBpcyBkaXJlY3QsIHRoZSBtYWNoaW5l
IHJlZ3NpdGVyIG51bWJlcnMgY2FuCiAgICAgLy8gYmUgdXNlZCBkaXJlY3RseSBhcyBpbmRpY2Vz
IGludG8gdGhlIEZQUiBSZWdpc3RlckJhbmsuCi0gICAgQ09NUElMRV9BU1NFUlQoQVJNUmVnaXN0
ZXJzOjpkMCA9PSAwLCBkMF9pc18wKTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk1SZWdpc3RlcnM6
OmQxID09IDEsIGQxX2lzXzEpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTVJlZ2lzdGVyczo6ZDIg
PT0gMiwgZDJfaXNfMik7Ci0gICAgQ09NUElMRV9BU1NFUlQoQVJNUmVnaXN0ZXJzOjpkMyA9PSAz
LCBkM19pc18zKTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk1SZWdpc3RlcnM6OmQ0ID09IDQsIGQ0
X2lzXzQpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTVJlZ2lzdGVyczo6ZDUgPT0gNSwgZDVfaXNf
NSk7CisgICAgc3RhdGljX2Fzc2VydChBUk1SZWdpc3RlcnM6OmQwID09IDApOworICAgIHN0YXRp
Y19hc3NlcnQoQVJNUmVnaXN0ZXJzOjpkMSA9PSAxKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEFSTVJl
Z2lzdGVyczo6ZDIgPT0gMik7CisgICAgc3RhdGljX2Fzc2VydChBUk1SZWdpc3RlcnM6OmQzID09
IDMpOworICAgIHN0YXRpY19hc3NlcnQoQVJNUmVnaXN0ZXJzOjpkNCA9PSA0KTsKKyAgICBzdGF0
aWNfYXNzZXJ0KEFSTVJlZ2lzdGVyczo6ZDUgPT0gNSk7CiAgICAgc3RhdGljIEZQUlJlZyB0b1Jl
Z2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKICAgICAgICAgcmV0dXJuIChGUFJSZWcpaW5k
ZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0dQUkluZm8uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCmluZGV4IDAwMjJiZDliOTg1OTVhODMw
YzFlZTA5NTZmODEwODNlZDQ3ODFlODYuLmYxOTAyZDI1MDA2YThkYzY0MTZhMjQ5ZDM1ZjA3YTY4
YjdlZjkyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5oCkBAIC02ODUsMjIgKzY4
NSwyMiBAQCBjbGFzcyBHUFJJbmZvIHsKIAogICAgIC8vIEdQUlJlZyBtYXBwaW5nIGlzIGRpcmVj
dCwgdGhlIG1hY2hpbmUgcmVnaXN0ZXIgbnVtYmVycyBjYW4KICAgICAvLyBiZSB1c2VkIGRpcmVj
dGx5IGFzIGluZGljZXMgaW50byB0aGUgR1BSIFJlZ2lzdGVyQmFuay4KLSAgICBDT01QSUxFX0FT
U0VSVChBUk02NFJlZ2lzdGVyczo6cTAgPT0gMCwgcTBfaXNfMCk7Ci0gICAgQ09NUElMRV9BU1NF
UlQoQVJNNjRSZWdpc3RlcnM6OnExID09IDEsIHExX2lzXzEpOwotICAgIENPTVBJTEVfQVNTRVJU
KEFSTTY0UmVnaXN0ZXJzOjpxMiA9PSAyLCBxMl9pc18yKTsKLSAgICBDT01QSUxFX0FTU0VSVChB
Uk02NFJlZ2lzdGVyczo6cTMgPT0gMywgcTNfaXNfMyk7Ci0gICAgQ09NUElMRV9BU1NFUlQoQVJN
NjRSZWdpc3RlcnM6OnE0ID09IDQsIHE0X2lzXzQpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0
UmVnaXN0ZXJzOjpxNSA9PSA1LCBxNV9pc181KTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk02NFJl
Z2lzdGVyczo6cTYgPT0gNiwgcTZfaXNfNik7Ci0gICAgQ09NUElMRV9BU1NFUlQoQVJNNjRSZWdp
c3RlcnM6OnE3ID09IDcsIHE3X2lzXzcpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0
ZXJzOjpxOCA9PSA4LCBxOF9pc184KTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk02NFJlZ2lzdGVy
czo6cTkgPT0gOSwgcTlfaXNfOSk7Ci0gICAgQ09NUElMRV9BU1NFUlQoQVJNNjRSZWdpc3RlcnM6
OnExMCA9PSAxMCwgcTEwX2lzXzEwKTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk02NFJlZ2lzdGVy
czo6cTExID09IDExLCBxMTFfaXNfMTEpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0UmVnaXN0
ZXJzOjpxMTIgPT0gMTIsIHExMl9pc18xMik7Ci0gICAgQ09NUElMRV9BU1NFUlQoQVJNNjRSZWdp
c3RlcnM6OnExMyA9PSAxMywgcTEzX2lzXzEzKTsKLSAgICBDT01QSUxFX0FTU0VSVChBUk02NFJl
Z2lzdGVyczo6cTE0ID09IDE0LCBxMTRfaXNfMTQpOwotICAgIENPTVBJTEVfQVNTRVJUKEFSTTY0
UmVnaXN0ZXJzOjpxMTUgPT0gMTUsIHExNV9pc18xNSk7CisgICAgc3RhdGljX2Fzc2VydChBUk02
NFJlZ2lzdGVyczo6cTAgPT0gMCk7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6
cTEgPT0gMSk7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTIgPT0gMik7Cisg
ICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTMgPT0gMyk7CisgICAgc3RhdGljX2Fz
c2VydChBUk02NFJlZ2lzdGVyczo6cTQgPT0gNCk7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJl
Z2lzdGVyczo6cTUgPT0gNSk7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTYg
PT0gNik7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTcgPT0gNyk7CisgICAg
c3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTggPT0gOCk7CisgICAgc3RhdGljX2Fzc2Vy
dChBUk02NFJlZ2lzdGVyczo6cTkgPT0gOSk7CisgICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lz
dGVyczo6cTEwID09IDEwKTsKKyAgICBzdGF0aWNfYXNzZXJ0KEFSTTY0UmVnaXN0ZXJzOjpxMTEg
PT0gMTEpOworICAgIHN0YXRpY19hc3NlcnQoQVJNNjRSZWdpc3RlcnM6OnExMiA9PSAxMik7Cisg
ICAgc3RhdGljX2Fzc2VydChBUk02NFJlZ2lzdGVyczo6cTEzID09IDEzKTsKKyAgICBzdGF0aWNf
YXNzZXJ0KEFSTTY0UmVnaXN0ZXJzOjpxMTQgPT0gMTQpOworICAgIHN0YXRpY19hc3NlcnQoQVJN
NjRSZWdpc3RlcnM6OnExNSA9PSAxNSk7CiAgICAgc3RhdGljIEdQUlJlZyB0b1JlZ2lzdGVyKHVu
c2lnbmVkIGluZGV4KQogICAgIHsKICAgICAgICAgcmV0dXJuIChHUFJSZWcpaW5kZXg7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCAzMzhmYzBiMmE3MWFlZDc2MmVlYjkx
MTE0NmI3ZmRhZTQxMTYwZWI3Li5lMmE2MDg3N2VhOWE3NjBmNzc4ZGVhMTFhZDlhYTkyMTczNDAy
ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTY2LDcgKzY2LDcg
QEAgc3RydWN0IERlYnVnZ2VyUGFyc2VEYXRhOwogI2RlZmluZSBUcmVlUHJvcGVydHlMaXN0IHR5
cGVuYW1lIFRyZWVCdWlsZGVyOjpQcm9wZXJ0eUxpc3QKICNkZWZpbmUgVHJlZURlc3RydWN0dXJp
bmdQYXR0ZXJuIHR5cGVuYW1lIFRyZWVCdWlsZGVyOjpEZXN0cnVjdHVyaW5nUGF0dGVybgogCi1D
T01QSUxFX0FTU0VSVChMYXN0VW50YWdnZWRUb2tlbiA8IDY0LCBMZXNzVGhhbjY0VW50YWdnZWRU
b2tlbnMpOworc3RhdGljX2Fzc2VydChMYXN0VW50YWdnZWRUb2tlbiA8IDY0LCAiTGVzcyB0aGFu
IDY0IHVudGFnZ2VkIHRva2VucyIpOwogCiBlbnVtIFNvdXJjZUVsZW1lbnRzTW9kZSB7IENoZWNr
Rm9yU3RyaWN0TW9kZSwgRG9udENoZWNrRm9yU3RyaWN0TW9kZSB9OwogZW51bSBGdW5jdGlvbkJv
ZHlUeXBlIHsgQXJyb3dGdW5jdGlvbkJvZHlFeHByZXNzaW9uLCBBcnJvd0Z1bmN0aW9uQm9keUJs
b2NrLCBTdGFuZGFyZEZ1bmN0aW9uQm9keUJsb2NrIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDZWxsLmNwcAppbmRleCAxNjU1NDQ4Yzg5YmI5ZTNkODIyY2VhMWY0MTZiNWQ2YThi
OGE3OTdlLi4xZmQzN2Q2MDQ3ZmM5NDE1NTVlYTc1YmJmMDNhZjAyOTVkZTdjNWE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIAog
bmFtZXNwYWNlIEpTQyB7CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihKU0NlbGwpID09IHNpemVv
Zih1aW50NjRfdCksIGpzY2VsbF9pc19laWdodF9ieXRlcyk7CitzdGF0aWNfYXNzZXJ0KHNpemVv
ZihKU0NlbGwpID09IHNpemVvZih1aW50NjRfdCksICJqc2NlbGwgaXMgZWlnaHQgYnl0ZXMiKTsK
IFNUQVRJQ19BU1NFUlRfSVNfVFJJVklBTExZX0RFU1RSVUNUSUJMRShKU0NlbGwpOwogCiB2b2lk
IEpTQ2VsbDo6ZGVzdHJveShKU0NlbGwqIGNlbGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaAppbmRleCBkMzNiNzIyODY0YTg4N2M2M2Y0N2M5NDA0MzkwZGY1MGEwMDU2
NTU5Li4yYmYwMjc0ZDc2YzZiZGU4NTI2NDE4NzUwMzQzZjk4MGJkMWFhNDAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmgKQEAgLTE2NjYsNyArMTY2Niw3IEBAIGlu
bGluZSBzaXplX3QgbWF4T2Zmc2V0UmVsYXRpdmVUb0Jhc2UoUHJvcGVydHlPZmZzZXQgb2Zmc2V0
KQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxzaXplX3Q+KGFkZHJlc3NPZmZzZXQpOwogfQogCi1D
T01QSUxFX0FTU0VSVCghKHNpemVvZihKU09iamVjdCkgJSBzaXplb2YoV3JpdGVCYXJyaWVyQmFz
ZTxVbmtub3duPikpLCBKU09iamVjdF9pbmxpbmVfc3RvcmFnZV9oYXNfY29ycmVjdF9hbGlnbm1l
bnQpOworc3RhdGljX2Fzc2VydCghKHNpemVvZihKU09iamVjdCkgJSBzaXplb2YoV3JpdGVCYXJy
aWVyQmFzZTxVbmtub3duPikpLCAiSlNPYmplY3QgaW5saW5lIHN0b3JhZ2UgaGFzIGNvcnJlY3Qg
YWxpZ25tZW50Iik7CiAKIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlcnNDb3VudD4KIEFMV0FZ
U19JTkxJTkUgSWRlbnRpZmllciBtYWtlSWRlbnRpZmllcihWTSYgdm0sIGNvbnN0IGNoYXIgKCZj
aGFyYWN0ZXJzKVtjaGFyYWN0ZXJzQ291bnRdKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1NtYWxsU3RyaW5ncy5jcHAKaW5kZXggZTljZTAzNTgxZTE3MDRmODdlOTMwOThiZDU1
OWM1NTIzYzhmNjMwMy4uNTdkMGNmODVlN2JjNDYwNmE5NzZkNjljNzZhNTU0NDY3YzA4MzAxNiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU21hbGxTdHJpbmdzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TbWFsbFN0cmluZ3MuY3BwCkBA
IC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiBTbWFsbFN0cmluZ3M6OlNtYWxsU3Ry
aW5ncygpCiB7Ci0gICAgQ09NUElMRV9BU1NFUlQoc2luZ2xlQ2hhcmFjdGVyU3RyaW5nQ291bnQg
PT0gc2l6ZW9mKG1fc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncykgLyBzaXplb2YobV9zaW5nbGVDaGFy
YWN0ZXJTdHJpbmdzWzBdKSwgSXNOdW1DaGFyYWN0ZXJzQ29uc3RJblN5bmNXaXRoQ2xhc3NVc2Fn
ZSk7CisgICAgc3RhdGljX2Fzc2VydChzaW5nbGVDaGFyYWN0ZXJTdHJpbmdDb3VudCA9PSBzaXpl
b2YobV9zaW5nbGVDaGFyYWN0ZXJTdHJpbmdzKSAvIHNpemVvZihtX3NpbmdsZUNoYXJhY3RlclN0
cmluZ3NbMF0pLCAiY2hhcmFjdGVycyBjb3VudCBpcyBpbiBzeW5jIHdpdGggY2xhc3MgdXNhZ2Ui
KTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdD
b3VudDsgKytpKQogICAgICAgICBtX3NpbmdsZUNoYXJhY3RlclN0cmluZ3NbaV0gPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmUuaAppbmRleCBkYWQ4NDVk
OTgyNjExYzQ0ZGYxZWFiNzg4MmE0ODVjZTQyYmY0NmVjLi42NWYwOWQ3ZDZiYjQyODA0MGVjNGY3
MWRlOGU0NDU0NjE2MjVlZmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJ1Y3R1cmUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1
Y3R1cmUuaApAQCAtNDQ0LDcgKzQ0NCw3IEBAIGNsYXNzIFN0cnVjdHVyZSA6IHB1YmxpYyBKU0Nl
bGwgewogICAgICAgICAgICAgcmV0dXJuIGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eTsKIAogICAg
ICAgICBBU1NFUlQob3V0T2ZMaW5lU2l6ZSA+IGluaXRpYWxPdXRPZkxpbmVDYXBhY2l0eSk7Ci0g
ICAgICAgIENPTVBJTEVfQVNTRVJUKG91dE9mTGluZUdyb3d0aEZhY3RvciA9PSAyLCBvdXRPZkxp
bmVHcm93dGhGYWN0b3JfaXNfdHdvKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChvdXRPZkxpbmVH
cm93dGhGYWN0b3IgPT0gMik7CiAgICAgICAgIHJldHVybiBXVEY6OnJvdW5kVXBUb1Bvd2VyT2ZU
d28ob3V0T2ZMaW5lU2l6ZSk7CiAgICAgfQogICAgIApAQCAtODg4LDcgKzg4OCw3IEBAIGNsYXNz
IFN0cnVjdHVyZSA6IHB1YmxpYyBKU0NlbGwgewogCiAgICAgbXV0YWJsZSBJbmxpbmVXYXRjaHBv
aW50U2V0IG1fdHJhbnNpdGlvbldhdGNocG9pbnRTZXQ7CiAKLSAgICBDT01QSUxFX0FTU0VSVChm
aXJzdE91dE9mTGluZU9mZnNldCA8IDI1NiwgZmlyc3RPdXRPZkxpbmVPZmZzZXRfZml0cyk7Cisg
ICAgc3RhdGljX2Fzc2VydChmaXJzdE91dE9mTGluZU9mZnNldCA8IDI1Nik7CiAKICAgICB1aW50
MTZfdCBtX3RyYW5zaXRpb25PZmZzZXQ7CiAgICAgdWludDE2X3QgbV9tYXhPZmZzZXQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUveWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3lhcnIvWWFyckludGVycHJldGVyLmNwcAppbmRleCBhYjAx
NjFlZTdlOGYwZjcwNmMzMmFhYjU5M2I1MjllODhmM2NmNzg4Li5jYTI5ZmRjOTcyYjQwNGU1MTJm
YThmMjQ4MjIzYzA3NGY1NTgxODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
eWFyci9ZYXJySW50ZXJwcmV0ZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJy
L1lhcnJJbnRlcnByZXRlci5jcHAKQEAgLTI0NzcsMTMgKzI0NzcsMTMgQEAgdW5zaWduZWQgaW50
ZXJwcmV0KEJ5dGVjb2RlUGF0dGVybiogYnl0ZWNvZGUsIGNvbnN0IFVDaGFyKiBpbnB1dCwgdW5z
aWduZWQgbGVuZ3QKIH0KIAogLy8gVGhlc2Ugc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBib3RoIFVD
aGFyICYgTENoYXIuCi1DT01QSUxFX0FTU0VSVChzaXplb2YoQmFja1RyYWNrSW5mb1BhdHRlcm5D
aGFyYWN0ZXIpID09IChZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXR0ZXJuQ2hhcmFj
dGVyICogc2l6ZW9mKHVpbnRwdHJfdCkpLCBDaGVja1lhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNr
SW5mb1BhdHRlcm5DaGFyYWN0ZXIpOwotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEJhY2tUcmFja0lu
Zm9DaGFyYWN0ZXJDbGFzcykgPT0gKFlhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb0NoYXJh
Y3RlckNsYXNzICogc2l6ZW9mKHVpbnRwdHJfdCkpLCBDaGVja1lhcnJTdGFja1NwYWNlRm9yQmFj
a1RyYWNrSW5mb0NoYXJhY3RlckNsYXNzKTsKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihCYWNrVHJh
Y2tJbmZvQmFja1JlZmVyZW5jZSkgPT0gKFlhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb0Jh
Y2tSZWZlcmVuY2UgKiBzaXplb2YodWludHB0cl90KSksIENoZWNrWWFyclN0YWNrU3BhY2VGb3JC
YWNrVHJhY2tJbmZvQmFja1JlZmVyZW5jZSk7Ci1DT01QSUxFX0FTU0VSVChzaXplb2YoQmFja1Ry
YWNrSW5mb0FsdGVybmF0aXZlKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvQWx0
ZXJuYXRpdmUgKiBzaXplb2YodWludHB0cl90KSksIENoZWNrWWFyclN0YWNrU3BhY2VGb3JCYWNr
VHJhY2tJbmZvQWx0ZXJuYXRpdmUpOwotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEJhY2tUcmFja0lu
Zm9QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJ
bmZvUGFyZW50aGV0aWNhbEFzc2VydGlvbiAqIHNpemVvZih1aW50cHRyX3QpKSwgQ2hlY2tZYXJy
U3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uKTsKLUNPTVBJ
TEVfQVNTRVJUKHNpemVvZihCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXNPbmNlKSA9PSAoWWFyclN0
YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXNPbmNlICogc2l6ZW9mKHVpbnRwdHJf
dCkpLCBDaGVja1lhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhcmVudGhlc2VzT25jZSk7
Ci1DT01QSUxFX0FTU0VSVChzaXplb2YoSW50ZXJwcmV0ZXI8VUNoYXI+OjpCYWNrVHJhY2tJbmZv
UGFyZW50aGVzZXMpIDw9IChZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0luZm9QYXJlbnRoZXNl
cyAqIHNpemVvZih1aW50cHRyX3QpKSwgQ2hlY2tZYXJyU3RhY2tTcGFjZUZvckJhY2tUcmFja0lu
Zm9QYXJlbnRoZXNlcyk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihCYWNrVHJhY2tJbmZvUGF0dGVy
bkNoYXJhY3RlcikgPT0gKFlhcnJTdGFja1NwYWNlRm9yQmFja1RyYWNrSW5mb1BhdHRlcm5DaGFy
YWN0ZXIgKiBzaXplb2YodWludHB0cl90KSkpOworc3RhdGljX2Fzc2VydChzaXplb2YoQmFja1Ry
YWNrSW5mb0NoYXJhY3RlckNsYXNzKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZv
Q2hhcmFjdGVyQ2xhc3MgKiBzaXplb2YodWludHB0cl90KSkpOworc3RhdGljX2Fzc2VydChzaXpl
b2YoQmFja1RyYWNrSW5mb0JhY2tSZWZlcmVuY2UpID09IChZYXJyU3RhY2tTcGFjZUZvckJhY2tU
cmFja0luZm9CYWNrUmVmZXJlbmNlICogc2l6ZW9mKHVpbnRwdHJfdCkpKTsKK3N0YXRpY19hc3Nl
cnQoc2l6ZW9mKEJhY2tUcmFja0luZm9BbHRlcm5hdGl2ZSkgPT0gKFlhcnJTdGFja1NwYWNlRm9y
QmFja1RyYWNrSW5mb0FsdGVybmF0aXZlICogc2l6ZW9mKHVpbnRwdHJfdCkpKTsKK3N0YXRpY19h
c3NlcnQoc2l6ZW9mKEJhY2tUcmFja0luZm9QYXJlbnRoZXRpY2FsQXNzZXJ0aW9uKSA9PSAoWWFy
clN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGV0aWNhbEFzc2VydGlvbiAqIHNpemVv
Zih1aW50cHRyX3QpKSk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihCYWNrVHJhY2tJbmZvUGFyZW50
aGVzZXNPbmNlKSA9PSAoWWFyclN0YWNrU3BhY2VGb3JCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXNP
bmNlICogc2l6ZW9mKHVpbnRwdHJfdCkpKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKEludGVycHJl
dGVyPFVDaGFyPjo6QmFja1RyYWNrSW5mb1BhcmVudGhlc2VzKSA8PSAoWWFyclN0YWNrU3BhY2VG
b3JCYWNrVHJhY2tJbmZvUGFyZW50aGVzZXMgKiBzaXplb2YodWludHB0cl90KSkpOwogCiAKIH0g
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwIGIvU291
cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCmluZGV4IGZmMDJhZDgzNmEzYjFjMmEx
NzM0ZWU5ODFkZTg5NWVhODc5YTg1OTguLjE3ZDk3MWFkYTU2MzJlNGJkMGM4ZjlmNmY1YjU1Njkz
ZTk3MzlhNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkQ29waWVyLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZENvcGllci5jcHAKQEAgLTM0LDE1ICsz
NCwxNSBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotLy8gVGVzdCBDcm9zc1RocmVhZENvcGllciB1
c2luZyBDT01QSUxFX0FTU0VSVC4KKy8vIFRlc3QgQ3Jvc3NUaHJlYWRDb3BpZXIgdXNpbmcgc3Rh
dGljX2Fzc2VydC4KIAogLy8gVmVyaWZ5IHRoYXQgVGhyZWFkU2FmZVJlZkNvdW50ZWQgb2JqZWN0
cyBnZXQgaGFuZGxlZCBjb3JyZWN0bHkuCiBjbGFzcyBDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRl
ZFRlc3QgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8Q29waWVyVGhyZWFkU2FmZVJlZkNv
dW50ZWRUZXN0PiB7CiB9OwogCi1DT01QSUxFX0FTU0VSVCgoc3RkOjppc19zYW1lPFJlZlB0cjxD
b3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LCBDcm9zc1RocmVhZENvcGllcjxSZWZQdHI8
Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSksIFJlZlB0clRl
c3QpOwotQ09NUElMRV9BU1NFUlQoKHN0ZDo6aXNfc2FtZTxSZWZQdHI8Q29waWVyVGhyZWFkU2Fm
ZVJlZkNvdW50ZWRUZXN0PiwgQ3Jvc3NUaHJlYWRDb3BpZXI8Q29waWVyVGhyZWFkU2FmZVJlZkNv
dW50ZWRUZXN0Kj46OlR5cGU+Ojp2YWx1ZSksIFJhd1BvaW50ZXJUZXN0KTsKLUNPTVBJTEVfQVNT
RVJUKChzdGQ6OmlzX3NhbWU8UmVmPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sIENy
b3NzVGhyZWFkQ29waWVyPFJlZjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+Pjo6VHlw
ZT46OnZhbHVlKSwgUmF3UG9pbnRlclRlc3QpOworc3RhdGljX2Fzc2VydCgoc3RkOjppc19zYW1l
PFJlZlB0cjxDb3BpZXJUaHJlYWRTYWZlUmVmQ291bnRlZFRlc3Q+LCBDcm9zc1RocmVhZENvcGll
cjxSZWZQdHI8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50ZWRUZXN0Pj46OlR5cGU+Ojp2YWx1ZSks
ICJSZWZQdHJUZXN0Iik7CitzdGF0aWNfYXNzZXJ0KChzdGQ6OmlzX3NhbWU8UmVmUHRyPENvcGll
clRocmVhZFNhZmVSZWZDb3VudGVkVGVzdD4sIENyb3NzVGhyZWFkQ29waWVyPENvcGllclRocmVh
ZFNhZmVSZWZDb3VudGVkVGVzdCo+OjpUeXBlPjo6dmFsdWUpLCAiUmF3UG9pbnRlclRlc3QiKTsK
K3N0YXRpY19hc3NlcnQoKHN0ZDo6aXNfc2FtZTxSZWY8Q29waWVyVGhyZWFkU2FmZVJlZkNvdW50
ZWRUZXN0PiwgQ3Jvc3NUaHJlYWRDb3BpZXI8UmVmPENvcGllclRocmVhZFNhZmVSZWZDb3VudGVk
VGVzdD4+OjpUeXBlPjo6dmFsdWUpLCAiUmF3UG9pbnRlclRlc3QiKTsKIAogLy8gQWRkIHNwZWNp
YWxpemF0aW9ucyBmb3IgUmVmQ291bnRlZCB0eXBlcyB3aGljaCB3aWxsIGxldCB1cyB2ZXJpZnkg
dGhhdCBubyBvdGhlciB0ZW1wbGF0ZSBtYXRjaGVzLgogdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3Ry
dWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIFJlZlB0cjxUPj4gewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvSlNPTlZhbHVlcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9K
U09OVmFsdWVzLmNwcAppbmRleCA1M2Q1NmNjNzMyMmE0MmY3NmNmNGEwOTViMGZkMmUzMmI0MTgx
MjIxLi5jYWFkOWYzOTliZWIwOWMyZTU4MzBiY2U5NTIzZDI1MDJjZmNmMDhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9KU09O
VmFsdWVzLmNwcApAQCAtNjYyLDEzICs2NjIsMTMgQEAgT2JqZWN0QmFzZTo6fk9iamVjdEJhc2Uo
KQogCiBSZWZQdHI8T2JqZWN0PiBPYmplY3RCYXNlOjphc09iamVjdCgpCiB7Ci0gICAgQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKE9iamVjdCkgPT0gc2l6ZW9mKE9iamVjdEJhc2UpLCBjYW5ub3RfY2Fz
dCk7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoT2JqZWN0KSA9PSBzaXplb2YoT2JqZWN0QmFz
ZSksICJjYW5ub3QgY2FzdCIpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxPYmplY3QqPih0aGlz
KTsKIH0KIAogUmVmUHRyPGNvbnN0IE9iamVjdD4gT2JqZWN0QmFzZTo6YXNPYmplY3QoKSBjb25z
dAogewotICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihPYmplY3QpID09IHNpemVvZihPYmplY3RC
YXNlKSwgY2Fubm90X2Nhc3QpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKE9iamVjdCkgPT0g
c2l6ZW9mKE9iamVjdEJhc2UpLCAiY2Fubm90IGNhc3QiKTsKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8Y29uc3QgT2JqZWN0Kj4odGhpcyk7CiB9CiAKQEAgLTc2OCw3ICs3NjgsNyBAQCBBcnJheUJh
c2U6On5BcnJheUJhc2UoKQogCiBSZWZQdHI8QXJyYXk+IEFycmF5QmFzZTo6YXNBcnJheSgpCiB7
Ci0gICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEFycmF5QmFzZSkgPT0gc2l6ZW9mKEFycmF5KSwg
Y2Fubm90X2Nhc3QpOworICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEFycmF5QmFzZSkgPT0gc2l6
ZW9mKEFycmF5KSwgImNhbm5vdCBjYXN0Iik7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEFycmF5
Kj4odGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaCBi
L1NvdXJjZS9XVEYvd3RmL0pTT05WYWx1ZXMuaAppbmRleCBkYmE1NzcyM2NmZTgzYjAwNWVhODVm
ZGYwOWU0NDQ4OGJlY2QyOGQ1Li43ZTk1ZWYwMDNkMzNhNTIxM2ZkMTg1YTE2ODA4MGIzOTU5MDQx
ODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9KU09OVmFsdWVzLmgKKysrIGIvU291cmNl
L1dURi93dGYvSlNPTlZhbHVlcy5oCkBAIC00MDQsNyArNDA0LDcgQEAgY2xhc3MgQXJyYXlPZiBm
aW5hbCA6IHB1YmxpYyBBcnJheUJhc2UgewogCiAgICAgQXJyYXkmIGNhc3RlZEFycmF5KCkKICAg
ICB7Ci0gICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihBcnJheSkgPT0gc2l6ZW9mKEFycmF5
T2Y8VD4pLCBjYW5ub3RfY2FzdCk7CisgICAgICAgIHN0YXRpY19hc3NlcnQoc2l6ZW9mKEFycmF5
KSA9PSBzaXplb2YoQXJyYXlPZjxUPiksICJjYW5ub3QgY2FzdCIpOwogICAgICAgICByZXR1cm4g
KnN0YXRpY19jYXN0PEFycmF5Kj4oc3RhdGljX2Nhc3Q8QXJyYXlCYXNlKj4odGhpcykpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCAxMGRlZmVjZjAx
ODUxYmFmNzM4MjhjZWQwMDNjZmRlYTI0OTAxNjAzLi5jZDE5NDc3YWM1MWE1NGIwNDkwMWVlYWYz
N2ZkZjBjZWJhMzhhZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0
ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApA
QCAtMjY1LDkgKzI2NSw5IEBAIHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IHZvbHVtZUZpbGVCbG9j
a1NpemUoY29uc3QgU3RyaW5nJikKICNpZiBVU0UoRklMRV9MT0NLKQogYm9vbCBsb2NrRmlsZShQ
bGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBPcHRpb25TZXQ8RmlsZUxvY2tNb2RlPiBsb2NrTW9k
ZSkKIHsKLSAgICBDT01QSUxFX0FTU0VSVChMT0NLX1NIID09IFdURjo6ZW51bVRvVW5kZXJseWlu
Z1R5cGUoRmlsZUxvY2tNb2RlOjpTaGFyZWQpLCBMb2NrU2hhcmVkRW5jb2RpbmdJc0FzRXhwZWN0
ZWQpOwotICAgIENPTVBJTEVfQVNTRVJUKExPQ0tfRVggPT0gV1RGOjplbnVtVG9VbmRlcmx5aW5n
VHlwZShGaWxlTG9ja01vZGU6OkV4Y2x1c2l2ZSksIExvY2tFeGNsdXNpdmVFbmNvZGluZ0lzQXNF
eHBlY3RlZCk7Ci0gICAgQ09NUElMRV9BU1NFUlQoTE9DS19OQiA9PSBXVEY6OmVudW1Ub1VuZGVy
bHlpbmdUeXBlKEZpbGVMb2NrTW9kZTo6Tm9uYmxvY2tpbmcpLCBMb2NrTm9uYmxvY2tpbmdFbmNv
ZGluZ0lzQXNFeHBlY3RlZCk7CisgICAgc3RhdGljX2Fzc2VydChMT0NLX1NIID09IFdURjo6ZW51
bVRvVW5kZXJseWluZ1R5cGUoRmlsZUxvY2tNb2RlOjpTaGFyZWQpLCAiTG9ja1NoYXJlZEVuY29k
aW5nIGlzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChMT0NLX0VYID09IFdURjo6
ZW51bVRvVW5kZXJseWluZ1R5cGUoRmlsZUxvY2tNb2RlOjpFeGNsdXNpdmUpLCAiTG9ja0V4Y2x1
c2l2ZUVuY29kaW5nIGlzIGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChMT0NLX05C
ID09IFdURjo6ZW51bVRvVW5kZXJseWluZ1R5cGUoRmlsZUxvY2tNb2RlOjpOb25ibG9ja2luZyks
ICJMb2NrTm9uYmxvY2tpbmdFbmNvZGluZyBpcyBhcyBleHBlY3RlZCIpOwogICAgIGF1dG8qIGlu
cHV0U3RyZWFtID0gZ19pb19zdHJlYW1fZ2V0X2lucHV0X3N0cmVhbShHX0lPX1NUUkVBTShoYW5k
bGUpKTsKICAgICBpbnQgcmVzdWx0ID0gZmxvY2soZ19maWxlX2Rlc2NyaXB0b3JfYmFzZWRfZ2V0
X2ZkKEdfRklMRV9ERVNDUklQVE9SX0JBU0VEKGlucHV0U3RyZWFtKSksIGxvY2tNb2RlLnRvUmF3
KCkpOwogICAgIHJldHVybiByZXN1bHQgIT0gLTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwIGIvU291cmNlL1dURi93dGYvcG9zaXgvRmlsZVN5
c3RlbVBPU0lYLmNwcAppbmRleCAzZTY3NjliNmM1ZjFlNGEzOWYyMTZkYTI5MzRkOWQ3MGY2OGZm
NjFjLi40Mjc2Zjc3ZTIxOGQxZjRhYjFlZmU1ZTI4MTMwYjkwNTUwY2M2YjQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9wb3NpeC9GaWxlU3lzdGVtUE9TSVguY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3Bvc2l4L0ZpbGVTeXN0ZW1QT1NJWC5jcHAKQEAgLTE0Nyw5ICsxNDcsOSBAQCBpbnQg
cmVhZEZyb21GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIHZvaWQqIGRhdGEsIGludCBs
ZW5ndGgpCiAjaWYgVVNFKEZJTEVfTE9DSykKIGJvb2wgbG9ja0ZpbGUoUGxhdGZvcm1GaWxlSGFu
ZGxlIGhhbmRsZSwgT3B0aW9uU2V0PEZpbGVMb2NrTW9kZT4gbG9ja01vZGUpCiB7Ci0gICAgQ09N
UElMRV9BU1NFUlQoTE9DS19TSCA9PSBXVEY6OmVudW1Ub1VuZGVybHlpbmdUeXBlKEZpbGVMb2Nr
TW9kZTo6U2hhcmVkKSwgTG9ja1NoYXJlZEVuY29kaW5nSXNBc0V4cGVjdGVkKTsKLSAgICBDT01Q
SUxFX0FTU0VSVChMT0NLX0VYID09IFdURjo6ZW51bVRvVW5kZXJseWluZ1R5cGUoRmlsZUxvY2tN
b2RlOjpFeGNsdXNpdmUpLCBMb2NrRXhjbHVzaXZlRW5jb2RpbmdJc0FzRXhwZWN0ZWQpOwotICAg
IENPTVBJTEVfQVNTRVJUKExPQ0tfTkIgPT0gV1RGOjplbnVtVG9VbmRlcmx5aW5nVHlwZShGaWxl
TG9ja01vZGU6Ok5vbmJsb2NraW5nKSwgTG9ja05vbmJsb2NraW5nRW5jb2RpbmdJc0FzRXhwZWN0
ZWQpOworICAgIHN0YXRpY19hc3NlcnQoTE9DS19TSCA9PSBXVEY6OmVudW1Ub1VuZGVybHlpbmdU
eXBlKEZpbGVMb2NrTW9kZTo6U2hhcmVkKSwgIkxvY2tTaGFyZWRFbmNvZGluZyBpcyBhcyBleHBl
Y3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoTE9DS19FWCA9PSBXVEY6OmVudW1Ub1VuZGVybHlp
bmdUeXBlKEZpbGVMb2NrTW9kZTo6RXhjbHVzaXZlKSwgIkxvY2tFeGNsdXNpdmVFbmNvZGluZyBp
cyBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoTE9DS19OQiA9PSBXVEY6OmVudW1U
b1VuZGVybHlpbmdUeXBlKEZpbGVMb2NrTW9kZTo6Tm9uYmxvY2tpbmcpLCAiTG9ja05vbmJsb2Nr
aW5nRW5jb2RpbmcgaXMgYXMgZXhwZWN0ZWQiKTsKICAgICBpbnQgcmVzdWx0ID0gZmxvY2soaGFu
ZGxlLCBsb2NrTW9kZS50b1JhdygpKTsKICAgICByZXR1cm4gKHJlc3VsdCAhPSAtMSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmcuaCBiL1NvdXJjZS9XVEYv
d3RmL3RleHQvQXRvbVN0cmluZy5oCmluZGV4IDEzNmFjNjIzNjc2OTQ1MzU5ODI0ZTY3MmMzN2M3
YzhlOWQ0Zjc2YTUuLjM1MDYzOWRjNWQ2ZmEyODMxNzRlNWMxNDYxYjdkNDVjYjQyMDU3NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvQXRvbVN0cmluZy5oCkBAIC02OSw4ICs2OSw4IEBAIGNsYXNzIEF0b21TdHJp
bmcgZmluYWwgewogICAgIHRlbXBsYXRlPHVuc2lnbmVkIGNoYXJhY3RlckNvdW50PiBBTFdBWVNf
SU5MSU5FIEF0b21TdHJpbmcoY29uc3QgY2hhciAoJmNoYXJhY3RlcnMpW2NoYXJhY3RlckNvdW50
XSwgQ29uc3RydWN0RnJvbUxpdGVyYWxUYWcpCiAgICAgICAgIDogbV9zdHJpbmcoQXRvbVN0cmlu
Z0ltcGw6OmFkZExpdGVyYWwoY2hhcmFjdGVycywgY2hhcmFjdGVyQ291bnQgLSAxKSkKICAgICB7
Ci0gICAgICAgIENPTVBJTEVfQVNTRVJUKGNoYXJhY3RlckNvdW50ID4gMSwgQXRvbVN0cmluZ0Zy
b21MaXRlcmFsTm90RW1wdHkpOwotICAgICAgICBDT01QSUxFX0FTU0VSVCgoY2hhcmFjdGVyQ291
bnQgLSAxIDw9ICgodW5zaWduZWQofjApIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihM
Q2hhcikpKSwgQXRvbVN0cmluZ0Zyb21MaXRlcmFsQ2Fubm90T3ZlcmZsb3cpOworICAgICAgICBz
dGF0aWNfYXNzZXJ0KGNoYXJhY3RlckNvdW50ID4gMSwgIkF0b21TdHJpbmdGcm9tTGl0ZXJhbCBp
cyBub3QgZW1wdHkiKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydCgoY2hhcmFjdGVyQ291bnQgLSAx
IDw9ICgodW5zaWduZWQofjApIC0gc2l6ZW9mKFN0cmluZ0ltcGwpKSAvIHNpemVvZihMQ2hhcikp
KSwgIkF0b21TdHJpbmdGcm9tTGl0ZXJhbCBjYW5ub3Qgb3ZlcmZsb3ciKTsKICAgICB9CiAKICAg
ICBBdG9tU3RyaW5nKEFTQ0lJTGl0ZXJhbCBsaXRlcmFsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggNmY3NGM5ZjM0ODBiZTI3
OWQ4ZGZjODlkMDQxYWVjZDI4OWZmOWZkZS4uYmFiMGE3MzM5MTQ4NTM1NjkwYzA4ZTRmZjZiMzE4
NGRjMGE4MjU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU1Byb3Bl
cnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCkBAIC0zMzIxLDcgKzMzMjEsNyBAQCBDU1NQcm9wZXJ0eUFuaW1hdGlv
bldyYXBwZXJNYXA6OkNTU1Byb3BlcnR5QW5pbWF0aW9uV3JhcHBlck1hcCgpCiAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBudW1DU1NQcm9wZXJ0aWVzOyArK2kpCiAgICAgICAgIG1fcHJvcGVydHlU
b0lkTWFwW2ldID0gY0ludmFsaWRQcm9wZXJ0eVdyYXBwZXJJbmRleDsKIAotICAgIENPTVBJTEVf
QVNTRVJUKGFuaW1hdGFibGVMb25naGFuZFByb3BlcnRpZXNDb3VudCArIGFuaW1hdGFibGVTaG9y
dGhhbmRQcm9wZXJ0aWVzQ291bnQgPCBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVkIHNob3J0
Pjo6bWF4KCksIG51bWJlck9mQW5pbWF0YWJsZVByb3BlcnRpZXNNdXN0QmVMZXNzVGhhblVTaHJ0
TWF4KTsKKyAgICBzdGF0aWNfYXNzZXJ0KGFuaW1hdGFibGVMb25naGFuZFByb3BlcnRpZXNDb3Vu
dCArIGFuaW1hdGFibGVTaG9ydGhhbmRQcm9wZXJ0aWVzQ291bnQgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPHVuc2lnbmVkIHNob3J0Pjo6bWF4KCksICJudW1iZXIgb2YgQW5pbWF0YWJsZVByb3BlcnRp
ZXMgbXVzdCBiZSBsZXNzIHRoYW4gVVNocnRNYXgiKTsKICAgICBtX3Byb3BlcnR5V3JhcHBlcnMu
cmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShhbmltYXRhYmxlTG9uZ2hhbmRQcm9wZXJ0aWVzQ291bnQg
KyBhbmltYXRhYmxlU2hvcnRoYW5kUHJvcGVydGllc0NvdW50KTsKIAogICAgIC8vIEZpcnN0IHdl
IHB1dCB0aGUgbm9uLXNob3J0aGFuZCBwcm9wZXJ0eSB3cmFwcGVycyBpbnRvIHRoZSBtYXAsIHNv
IHRoZSBzaG9ydGhhbmQtYnVpbGRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0RGQU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0RGQU5vZGUuaAppbmRleCBlYTZjNDdjMDdiMmQ3OWUwZGE2NTBiM2VlMjIyYjQzMjdhNTYzMzg2
Li42MjllOGMwNTJlNjcyYzdlOGM1OTA5ZjAxNzhkZTA3ZjA5N2FlNTM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBTm9kZS5oCkBAIC0xNjYsNyArMTY2LDcgQEAgY2xh
c3MgREZBTm9kZSB7CiAgICAgY29uc3QgdWludDhfdCBJc0tpbGxlZCA9IDB4MDE7CiB9OwogCi1D
T01QSUxFX0FTU0VSVChzaXplb2YoREZBTm9kZSkgPD0gMTYsIEtlZXAgdGhlIERGQU5vZGVzIHNt
YWxsKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKERGQU5vZGUpIDw9IDE2LCAiS2VlcCB0aGUgREZB
Tm9kZXMgc21hbGwiKTsKIAogfSAvLyBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NCYXNp
Y1NoYXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQmFzaWNTaGFwZXMuY3BwCmluZGV4
IGUyODU1MWU3YjJmNDQ3NjIxOTcxYmIwYjRiZjIzYTk5ZjJiNWM3MjUuLjg5ZTA5ZjU3MmMzNTE2
MzgzZjdiMjYyZDU0MGMwM2RlMDJlODQ4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NCYXNpY1NoYXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Jhc2ljU2hh
cGVzLmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIHN0YXRpYyBTdHJpbmcgYnVpbGRQb2x5Z29uU3Ry
aW5nKGNvbnN0IFdpbmRSdWxlJiB3aW5kUnVsZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mCiAgICAg
Y2hhciBldmVuT2RkT3BlbmluZ1tdID0gInBvbHlnb24oZXZlbm9kZCwgIjsKICAgICBjaGFyIG5v
blplcm9PcGVuaW5nW10gPSAicG9seWdvbigiOwogICAgIGNoYXIgY29tbWFTZXBhcmF0b3JbXSA9
ICIsICI7Ci0gICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKGV2ZW5PZGRPcGVuaW5nKSA+PSBzaXpl
b2Yobm9uWmVyb09wZW5pbmcpLCBwb2x5Z29uX2V2ZW5vZGRfaXNfbG9uZ2VzdF9zdHJpbmdfb3Bl
bmluZyk7CisgICAgc3RhdGljX2Fzc2VydChzaXplb2YoZXZlbk9kZE9wZW5pbmcpID49IHNpemVv
Zihub25aZXJvT3BlbmluZyksICJwb2x5Z29uIGV2ZW5vZGQgaXMgbG9uZ2VzdCBzdHJpbmcgb3Bl
bmluZyIpOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgcmVxdWlyZWQgY2FwYWNpdHkgaW4gYWR2YW5j
ZSB0byByZWR1Y2UgYWxsb2NhdGlvbnMuCiAgICAgc2l6ZV90IGxlbmd0aCA9IHNpemVvZihldmVu
T2RkT3BlbmluZykgLSAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3Bl
cnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eS5jcHAKaW5kZXggYjg1NzFi
MGEwMWM5NTZmY2E0NzI4M2NiYTQxMTU5ZGYxNTRiNjZkZi4uNGQzZGNhNTkxNDE3OWJhMGE3NzZl
NjBiMmU2NGFkNGViMmE5NTVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
b3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHkuY3BwCkBAIC0z
Miw3ICszMiw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTUHJvcGVydHkgewogICAgIHZvaWQqIHZh
bHVlOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENTU1Byb3BlcnR5KSA9PSBzaXplb2Yo
U2FtZVNpemVBc0NTU1Byb3BlcnR5KSwgQ1NTUHJvcGVydHlfc2hvdWxkX3N0YXlfc21hbGwpOwor
c3RhdGljX2Fzc2VydChzaXplb2YoQ1NTUHJvcGVydHkpID09IHNpemVvZihTYW1lU2l6ZUFzQ1NT
UHJvcGVydHkpLCAiQ1NTUHJvcGVydHkgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogQ1NTUHJvcGVy
dHlJRCBTdHlsZVByb3BlcnR5TWV0YWRhdGE6OnNob3J0aGFuZElEKCkgY29uc3QKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NSdWxlLmNwcAppbmRleCA0MGYyY2E4OWUxYmYyYzlkZWM0ODM1YzhiOTYzZjg2OTdiMmZh
ODUyLi5iMzM2MmE2ZmVmOGI5ZGQ0MGRiZjY1ZDk0NmY4ODMzYjAzOGQ3ZDQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1J1bGUuY3BwCkBAIC0zNCw3ICszNCw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTUnVsZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFNhbWVTaXplQXNDU1NSdWxlPiB7CiAgICAgdm9pZCogcG9pbnRl
clVuaW9uOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKENTU1J1bGUpID09IHNpemVvZihT
YW1lU2l6ZUFzQ1NTUnVsZSksIENTU1J1bGVfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fz
c2VydChzaXplb2YoQ1NTUnVsZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NSdWxlKSwgIkNTU1J1
bGUgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogRXhjZXB0aW9uT3I8dm9pZD4gQ1NTUnVsZTo6c2V0
Q3NzVGV4dChjb25zdCBTdHJpbmcmKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggY2Vk
MTM5NDI5MTZiYWVjNTc4YjM4ZDNlNzg5NTc3NDAwZDc4YWE0ZS4uZDU3ODM0NDc2OTEyMjE1NGM3
MzBjZjZiNDdjMTcxNmU4ZDc3NmJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCkBAIC04MSw3
ICs4MSw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzQ1NTVmFsdWUgewogICAgIHVpbnQzMl90IGJpdGZp
ZWxkczsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihDU1NWYWx1ZSkgPT0gc2l6ZW9mKFNh
bWVTaXplQXNDU1NWYWx1ZSksIENTU192YWx1ZV9zaG91bGRfc3RheV9zbWFsbCk7CitzdGF0aWNf
YXNzZXJ0KHNpemVvZihDU1NWYWx1ZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNDU1NWYWx1ZSksICJD
U1MgdmFsdWUgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hF
QVBfSURFTlRJRklFUihDU1NWYWx1ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGll
cy5jcHAKaW5kZXggYTkyM2M3YTRmOTRmY2YzMmIwN2Y4MTEzYTJjYmVhMjRiOWRmODkwNC4uOTI1
MTZhYWVkMmQ1NTlmNmIyNDlkZGJiOWEzM2Y2MjdlOGNkNTU0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTE4NDIsNyArMTg0Miw3IEBAIHVuc2lnbmVkIFN0eWxl
UHJvcGVydGllczo6YXZlcmFnZVNpemVJbkJ5dGVzKCkKIHN0cnVjdCBTYW1lU2l6ZUFzU3R5bGVQ
cm9wZXJ0aWVzIDogcHVibGljIFJlZkNvdW50ZWQ8U2FtZVNpemVBc1N0eWxlUHJvcGVydGllcz4g
ewogICAgIHVuc2lnbmVkIGJpdGZpZWxkOwogfTsKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihTdHls
ZVByb3BlcnRpZXMpID09IHNpemVvZihTYW1lU2l6ZUFzU3R5bGVQcm9wZXJ0aWVzKSwgc3R5bGVf
cHJvcGVydHlfc2V0X3Nob3VsZF9zdGF5X3NtYWxsKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFN0
eWxlUHJvcGVydGllcykgPT0gc2l6ZW9mKFNhbWVTaXplQXNTdHlsZVByb3BlcnRpZXMpLCAic3R5
bGUgcHJvcGVydHkgc2V0IHNob3VsZCBzdGF5IHNtYWxsIik7CiAKICNpZm5kZWYgTkRFQlVHCiB2
b2lkIFN0eWxlUHJvcGVydGllczo6c2hvd1N0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5jcHAK
aW5kZXggNmYxMDcwZDExMDRjNGYzZTQ1NjY0ZTc5OTc3NzdjNjU0MjhhZTcwNC4uZWEzZmExZjMz
YjgxNTI1NjQ3Yzg4Y2UyODUwMjg0ZWEyNWExNjY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUnVsZS5j
cHAKQEAgLTQ2LDcgKzQ2LDcgQEAgc3RydWN0IFNhbWVTaXplQXNTdHlsZVJ1bGVCYXNlIDogcHVi
bGljIFdURjo6UmVmQ291bnRlZEJhc2UgewogICAgIHVuc2lnbmVkIGJpdGZpZWxkcyA6IDU7CiB9
OwogCi1DT01QSUxFX0FTU0VSVChzaXplb2YoU3R5bGVSdWxlQmFzZSkgPT0gc2l6ZW9mKFNhbWVT
aXplQXNTdHlsZVJ1bGVCYXNlKSwgU3R5bGVSdWxlQmFzZV9zaG91bGRfc3RheV9zbWFsbCk7Citz
dGF0aWNfYXNzZXJ0KHNpemVvZihTdHlsZVJ1bGVCYXNlKSA9PSBzaXplb2YoU2FtZVNpemVBc1N0
eWxlUnVsZUJhc2UpLCAiU3R5bGVSdWxlQmFzZSBzaG91bGQgc3RheSBzbWFsbCIpOwogCiBERUZJ
TkVfQUxMT0NBVE9SX1dJVEhfSEVBUF9JREVOVElGSUVSKFN0eWxlUnVsZUJhc2UpOwogREVGSU5F
X0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHlsZVJ1bGUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL2NhbGMvQ1NTQ2FsY09wZXJhdGlvbk5vZGUuY3BwCmluZGV4IGUzNDFhNDc0
ODYzZTk5Y2Q1OWYyMzM3MjE2YWIyNGU1ZWFmYzc2NGMuLjIwNWM1NDc5YjNkNjJjMWFlNjVjM2Jh
YjZmM2I5ZjgyNzk3ZTU4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9jYWxjL0NT
U0NhbGNPcGVyYXRpb25Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvY2FsYy9DU1ND
YWxjT3BlcmF0aW9uTm9kZS5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0aWMgU29ydGluZ0Nh
dGVnb3J5IHNvcnRpbmdDYXRlZ29yeUZvclR5cGUoQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiAgICAg
ICAgIFNvcnRpbmdDYXRlZ29yeTo6T3RoZXIsICAgICAgICAgLy8gVU90aGVyCiAgICAgfTsKIAot
ICAgIENPTVBJTEVfQVNTRVJUKEFSUkFZX1NJWkUoc29ydE9yZGVyKSA9PSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oQ2FsY3VsYXRpb25DYXRlZ29yeTo6T3RoZXIpICsgMSwgc29ydE9yZGVyX3NpemVf
c2hvdWxkX21hdGNoX1VuaXRDYXRlZ29yeSk7CisgICAgc3RhdGljX2Fzc2VydChBUlJBWV9TSVpF
KHNvcnRPcmRlcikgPT0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KENhbGN1bGF0aW9uQ2F0ZWdvcnk6
Ok90aGVyKSArIDEsICJzb3J0T3JkZXIgc2l6ZSBzaG91bGQgbWF0Y2ggVW5pdENhdGVnb3J5Iik7
CiAgICAgcmV0dXJuIHNvcnRPcmRlcltzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FsY1VuaXRDYXRl
Z29yeSh1bml0VHlwZSkpXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50RGF0YS5jcHAKaW5kZXgg
Nzc2MzIyZjAzYjViNDgwYzRiODQ0Nzk3ODA2Zjg4MWU3M2Q4NzMzNS4uYjNiNjg3MWE4MDE4NWRl
MjQ3YzU3NTExNDVjZWQzMTE4NWIyNTNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudERhdGEuY3Bw
CkBAIC01OSw3ICs1OSw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzRWxlbWVudERhdGEgOiBwdWJsaWMg
UmVmQ291bnRlZDxTYW1lU2l6ZUFzRWxlbWVudERhdGE+IHsKICAgICB2b2lkKiByZWZQdHJzWzNd
OwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEVsZW1lbnREYXRhKSA9PSBzaXplb2YoU2Ft
ZVNpemVBc0VsZW1lbnREYXRhKSwgZWxlbWVudF9hdHRyaWJ1dGVfZGF0YV9zaG91bGRfc3RheV9z
bWFsbCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihFbGVtZW50RGF0YSkgPT0gc2l6ZW9mKFNhbWVT
aXplQXNFbGVtZW50RGF0YSksICJlbGVtZW50IGF0dHJpYnV0ZSBkYXRhIHNob3VsZCBzdGF5IHNt
YWxsIik7CiAKIHN0YXRpYyBzaXplX3Qgc2l6ZUZvclNoYXJlYWJsZUVsZW1lbnREYXRhV2l0aEF0
dHJpYnV0ZUNvdW50KHVuc2lnbmVkIGNvdW50KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSYXJlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRh
LmNwcAppbmRleCA5MjhkYTQzNmU3ZjAyZWI2ZTM2NjEwYWUyMjc1OWMxNmEzZWIwZDk4Li43MzI1
MDBkNzRmNTA0NjA4YmY2YzYxOTVkMDI3OTY2NzdlYzRhNDk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJhcmVEYXRhLmNwcApAQCAtNDEsNyArNDEsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc05vZGVSYXJl
RGF0YSB7CiAgICAgdm9pZCogbV9wb2ludGVyWzJdOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKE5vZGVSYXJlRGF0YSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNOb2RlUmFyZURhdGEpLCBOb2Rl
UmFyZURhdGFTaG91bGRTdGF5U21hbGwpOworc3RhdGljX2Fzc2VydChzaXplb2YoTm9kZVJhcmVE
YXRhKSA9PSBzaXplb2YoU2FtZVNpemVBc05vZGVSYXJlRGF0YSksICJOb2RlUmFyZURhdGEgc2hv
dWxkIHN0YXkgc21hbGwiKTsKIAogLy8gRW5zdXJlIHRoZSAxMCBiaXRzIHJlc2VydmVkIGZvciB0
aGUgbV9jb25uZWN0ZWRGcmFtZUNvdW50IGNhbm5vdCBvdmVyZmxvdwogc3RhdGljX2Fzc2VydChQ
YWdlOjptYXhOdW1iZXJPZkZyYW1lcyA8IDEwMjQsICJGcmFtZSBsaW1pdCBzaG91bGQgZml0IGlu
IHJhcmUgZGF0YSBjb3VudCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCmluZGV4IGEzMjJk
ZWM0MWRkZjRiMzViZTE4MzE2ZjlhZjA0ZTI1MGNiNmVhOWIuLmE2NGEzYzE3MGY0NzgyNTYzZjk3
YTU2ZWM2NTViM2JjNmQxMmM3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFk
b3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKQEAgLTYx
LDkgKzYxLDkgQEAgc3RydWN0IFNhbWVTaXplQXNTaGFkb3dSb290IDogcHVibGljIERvY3VtZW50
RnJhZ21lbnQsIHB1YmxpYyBUcmVlU2NvcGUgewogICAgIHN0ZDo6b3B0aW9uYWw8SGFzaE1hcDxB
dG9tU3RyaW5nLCBBdG9tU3RyaW5nPj4gcGFydE1hcHBpbmdzOwogfTsKIAotQ09NUElMRV9BU1NF
UlQoc2l6ZW9mKFNoYWRvd1Jvb3QpID09IHNpemVvZihTYW1lU2l6ZUFzU2hhZG93Um9vdCksIHNo
YWRvd3Jvb3Rfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fzc2VydChzaXplb2YoU2hhZG93
Um9vdCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNTaGFkb3dSb290KSwgInNoYWRvd3Jvb3Qgc2hvdWxk
IHN0YXkgc21hbGwiKTsKICNpZiAhQVNTRVJUX0VOQUJMRUQKLUNPTVBJTEVfQVNTRVJUKHNpemVv
ZihXZWFrUHRyPEVsZW1lbnQ+KSA9PSBzaXplb2Yodm9pZCopLCBXZWFrUHRyX3Nob3VsZF9iZV9z
YW1lX3NpemVfYXNfcmF3X3BvaW50ZXIpOworc3RhdGljX2Fzc2VydChzaXplb2YoV2Vha1B0cjxF
bGVtZW50PikgPT0gc2l6ZW9mKHZvaWQqKSwgIldlYWtQdHIgc2hvdWxkIGJlIHNhbWUgc2l6ZSBh
cyByYXcgcG9pbnRlciIpOwogI2VuZGlmCiAKIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1l
bnQmIGRvY3VtZW50LCBTaGFkb3dSb290TW9kZSB0eXBlLCBEZWxlZ2F0ZXNGb2N1cyBkZWxlZ2F0
ZXNGb2N1cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5n
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcAppbmRleCBhYTVi
MzViOTlmNTZlYjc4NDhkNTU2ZTMxZjZkMjJkMzQ1NmI0ZWM2Li5jM2YxMWIzZmQ2YWNkYTRmOGEw
Y2EzZDQzZTM1NWUwYzUyY2ZkZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU3Bh
Y2VTcGxpdFN0cmluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NwYWNlU3BsaXRTdHJp
bmcuY3BwCkBAIC0yOCw3ICsyOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ09NUElM
RV9BU1NFUlQoIShzaXplb2YoU3BhY2VTcGxpdFN0cmluZ0RhdGEpICUgc2l6ZW9mKHVpbnRwdHJf
dCkpLCBTcGFjZVNwbGl0U3RyaW5nRGF0YVRhaWxJc0FsaWduZWRUb1dvcmRTaXplKTsKK3N0YXRp
Y19hc3NlcnQoIShzaXplb2YoU3BhY2VTcGxpdFN0cmluZ0RhdGEpICUgc2l6ZW9mKHVpbnRwdHJf
dCkpLCAiU3BhY2VTcGxpdFN0cmluZ0RhdGFUYWlsIGlzIGFsaWduZWQgdG8gV29yZFNpemUiKTsK
IAogdGVtcGxhdGUgPHR5cGVuYW1lIENoYXJhY3RlclR5cGUsIHR5cGVuYW1lIFRva2VuUHJvY2Vz
c29yPgogc3RhdGljIGlubGluZSB2b2lkIHRva2VuaXplU3BhY2VTcGxpdFN0cmluZyhUb2tlblBy
b2Nlc3NvciYgdG9rZW5Qcm9jZXNzb3IsIGNvbnN0IENoYXJhY3RlclR5cGUqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmNwcAppbmRleCBl
NzcyM2U1NTk3YmQxZmExYzg0ODMzZTk5OGJmYzMwOWVhNWUyMTRlLi45OWQwYWY1YjViNWRjNWQz
MWE5MTkzNzUwY2U5NDBiNWE4NGE4YmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U3R5bGVkRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTVBMKFN0eWxlZEVsZW1lbnQpOwogCi1DT01QSUxFX0FTU0VSVChzaXplb2Yo
U3R5bGVkRWxlbWVudCkgPT0gc2l6ZW9mKEVsZW1lbnQpLCBzdHlsZWRlbGVtZW50X3Nob3VsZF9y
ZW1haW5fc2FtZV9zaXplX2FzX2VsZW1lbnQpOworc3RhdGljX2Fzc2VydChzaXplb2YoU3R5bGVk
RWxlbWVudCkgPT0gc2l6ZW9mKEVsZW1lbnQpLCAic3R5bGVkZWxlbWVudCBzaG91bGQgcmVtYWlu
IHNhbWUgc2l6ZSBhcyBlbGVtZW50Iik7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggZTI5Njc2MTMzNDZjYTFhN2RmZmUzNzMzM2Mw
ZWY2ZDU1NDRlZTNkNy4uZmVlOTk2MjM5MjM4MzZiY2Q4ZGM2M2QwZmUxMTFlYTYyZTdlOGZlZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgc3RydWN0IFNhbWVT
aXplQXNUcmVlU2NvcGUgewogICAgIHZvaWQqIHBvaW50ZXJzWzEwXTsKIH07CiAKLUNPTVBJTEVf
QVNTRVJUKHNpemVvZihUcmVlU2NvcGUpID09IHNpemVvZihTYW1lU2l6ZUFzVHJlZVNjb3BlKSwg
dHJlZXNjb3BlX3Nob3VsZF9zdGF5X3NtYWxsKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFRyZWVT
Y29wZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNUcmVlU2NvcGUpLCAidHJlZXNjb3BlIHNob3VsZCBz
dGF5IHNtYWxsIik7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAppbmRleCA3M2QxYzNmMmM2YmZkMzgxYmZi
OTNhMWFiNDVlM2Q3ZGRkNDc2N2FlLi44MDhkNDllYWMyNTk4YmQ2MWYxMGQ3YzVhOTc3NWViZGYz
OGE1MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5n
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCkBA
IC00MSw3ICs0MSw3IEBAIFN0cmluZyBjb252ZXJ0SFRNTFRleHRUb0ludGVyY2hhbmdlRm9ybWF0
KGNvbnN0IFN0cmluZyYgaW4sIGNvbnN0IFRleHQqIG5vZGUpCiAgICAgICAgIHJldHVybiBpbjsK
IAogICAgIGNvbnN0IGNoYXIgY29udmVydGVkU3BhY2VTdHJpbmdbXSA9ICI8c3BhbiBjbGFzcz1c
IiIgQXBwbGVDb252ZXJ0ZWRTcGFjZSAiXCI+XHhBMDwvc3Bhbj4iOwotICAgIENPTVBJTEVfQVNT
RVJUKChzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyPignXHhBMCcpID09IG5vQnJlYWtTcGFjZSks
IENvbnZlcnRlZFNwYWNlU3RyaW5nU3BhY2VJc05vQnJlYWtTcGFjZSk7CisgICAgc3RhdGljX2Fz
c2VydCgoc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4oJ1x4QTAnKSA9PSBub0JyZWFrU3BhY2Up
LCAiQ29udmVydGVkU3BhY2VTdHJpbmdTcGFjZSBpcyBOb0JyZWFrU3BhY2UiKTsKIAogICAgIFN0
cmluZ0J1aWxkZXIgczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJh
Y2tFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAK
aW5kZXggMTM5ZjRlZTZmZjkyY2M4Y2JjNDA4YjNjYmVhYjlmOTAyOGQxZTBhNi4uZTQ3YTViZDhi
MzczZDViZDI1YTA0MjYwNmI2OWI0NDQ5OWU0MTc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUcmFja0VsZW1lbnQuY3BwCkBAIC0yNjUsMTAgKzI2NSwxMCBAQCB2b2lkIEhUTUxUcmFja0Vs
ZW1lbnQ6OmRpZENvbXBsZXRlTG9hZChMb2FkU3RhdHVzIHN0YXR1cykKIH0KIAogLy8gTk9URTog
VGhlIHZhbHVlcyBpbiB0aGUgVGV4dFRyYWNrOjpSZWFkaW5lc3NTdGF0ZSBlbnVtIG11c3Qgc3Rh
eSBpbiBzeW5jIHdpdGggdGhvc2UgaW4gSFRNTFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0ZS4KLUNP
TVBJTEVfQVNTRVJUKEhUTUxUcmFja0VsZW1lbnQ6Ok5PTkUgPT0gc3RhdGljX2Nhc3Q8SFRNTFRy
YWNrRWxlbWVudDo6UmVhZHlTdGF0ZT4oVGV4dFRyYWNrOjpOb3RMb2FkZWQpLCBUZXh0VHJhY2tF
bnVtTm90TG9hZGVkX0lzX1dyb25nX1Nob3VsZF9CZV9IVE1MVHJhY2tFbGVtZW50RW51bU5PTkUp
OwotQ09NUElMRV9BU1NFUlQoSFRNTFRyYWNrRWxlbWVudDo6TE9BRElORyA9PSBzdGF0aWNfY2Fz
dDxIVE1MVHJhY2tFbGVtZW50OjpSZWFkeVN0YXRlPihUZXh0VHJhY2s6OkxvYWRpbmcpLCBUZXh0
VHJhY2tFbnVtTG9hZGluZ0lzV3JvbmdfU2hvdWxkQmVfSFRNTFRyYWNrRWxlbWVudEVudW1MT0FE
SU5HKTsKLUNPTVBJTEVfQVNTRVJUKEhUTUxUcmFja0VsZW1lbnQ6OkxPQURFRCA9PSBzdGF0aWNf
Y2FzdDxIVE1MVHJhY2tFbGVtZW50OjpSZWFkeVN0YXRlPihUZXh0VHJhY2s6OkxvYWRlZCksIFRl
eHRUcmFja0VudW1Mb2FkZWRfSXNfV3JvbmdfU2hvdWxkX0JlX0hUTUxUcmFja0VsZW1lbnRFbnVt
TE9BREVEKTsKLUNPTVBJTEVfQVNTRVJUKEhUTUxUcmFja0VsZW1lbnQ6OlRSQUNLX0VSUk9SID09
IHN0YXRpY19jYXN0PEhUTUxUcmFja0VsZW1lbnQ6OlJlYWR5U3RhdGU+KFRleHRUcmFjazo6RmFp
bGVkVG9Mb2FkKSwgVGV4dFRyYWNrRW51bUZhaWxlZFRvTG9hZF9Jc19Xcm9uZ19TaG91bGRfQmVf
SFRNTFRyYWNrRWxlbWVudEVudW1UUkFDS19FUlJPUik7CitzdGF0aWNfYXNzZXJ0KEhUTUxUcmFj
a0VsZW1lbnQ6Ok5PTkUgPT0gc3RhdGljX2Nhc3Q8SFRNTFRyYWNrRWxlbWVudDo6UmVhZHlTdGF0
ZT4oVGV4dFRyYWNrOjpOb3RMb2FkZWQpLCAiVGV4dFRyYWNrRW51bU5vdExvYWRlZCBpcyB3cm9u
Zy4gU2hvdWxkIGJlIEhUTUxUcmFja0VsZW1lbnRFbnVtTk9ORSIpOworc3RhdGljX2Fzc2VydChI
VE1MVHJhY2tFbGVtZW50OjpMT0FESU5HID09IHN0YXRpY19jYXN0PEhUTUxUcmFja0VsZW1lbnQ6
OlJlYWR5U3RhdGU+KFRleHRUcmFjazo6TG9hZGluZyksICJUZXh0VHJhY2tFbnVtTG9hZGluZyBp
cyB3cm9uZy4gU2hvdWxkIGJlIEhUTUxUcmFja0VsZW1lbnRFbnVtTE9BRElORyIpOworc3RhdGlj
X2Fzc2VydChIVE1MVHJhY2tFbGVtZW50OjpMT0FERUQgPT0gc3RhdGljX2Nhc3Q8SFRNTFRyYWNr
RWxlbWVudDo6UmVhZHlTdGF0ZT4oVGV4dFRyYWNrOjpMb2FkZWQpLCAiVGV4dFRyYWNrRW51bUxv
YWRlZCBpcyB3cm9uZy4gU2hvdWxkIGJlIEhUTUxUcmFja0VsZW1lbnRFbnVtTE9BREVEIik7Citz
dGF0aWNfYXNzZXJ0KEhUTUxUcmFja0VsZW1lbnQ6OlRSQUNLX0VSUk9SID09IHN0YXRpY19jYXN0
PEhUTUxUcmFja0VsZW1lbnQ6OlJlYWR5U3RhdGU+KFRleHRUcmFjazo6RmFpbGVkVG9Mb2FkKSwg
IlRleHRUcmFja0VudW1GYWlsZWRUb0xvYWQgaXMgd3JvbmcuIFNob3VsZCBiZSBIVE1MVHJhY2tF
bGVtZW50RW51bVRSQUNLX0VSUk9SIik7CiAKIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6c2V0UmVh
ZHlTdGF0ZShSZWFkeVN0YXRlIHN0YXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9WVFRDdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WVFRDdWUu
Y3BwCmluZGV4IDAwODhiZmFlMDkzNGM5YjRhY2YwZDA0MmUxOTIwMzU0NDUyMGMwMGQuLmI5YmRj
OTNlMjdlMTI4OWQ1ODMwNDQxY2JjYzIzYWViNzA5YzNjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVlRUQ3VlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3Ry
YWNrL1ZUVEN1ZS5jcHAKQEAgLTcxLDEyICs3MSwxMiBAQCBjb25zdGV4cHIgZG91YmxlIERFRkFV
TFRDQVBUSU9ORk9OVFNJWkVQRVJDRU5UQUdFID0gNTsKIHN0YXRpYyBjb25zdCBDU1NWYWx1ZUlE
IGRpc3BsYXlXcml0aW5nTW9kZU1hcFtdID0gewogICAgIENTU1ZhbHVlSG9yaXpvbnRhbFRiLCBD
U1NWYWx1ZVZlcnRpY2FsUmwsIENTU1ZhbHVlVmVydGljYWxMcgogfTsKLUNPTVBJTEVfQVNTRVJU
KFdURl9BUlJBWV9MRU5HVEgoZGlzcGxheVdyaXRpbmdNb2RlTWFwKSA9PSBWVFRDdWU6Ok51bWJl
ck9mV3JpdGluZ0RpcmVjdGlvbnMsIGRpc3BsYXlXcml0aW5nTW9kZU1hcF9oYXNfd3Jvbmdfc2l6
ZSk7CitzdGF0aWNfYXNzZXJ0KFdURl9BUlJBWV9MRU5HVEgoZGlzcGxheVdyaXRpbmdNb2RlTWFw
KSA9PSBWVFRDdWU6Ok51bWJlck9mV3JpdGluZ0RpcmVjdGlvbnMsICJkaXNwbGF5V3JpdGluZ01v
ZGVNYXAgaGFzIHdyb25nIHNpemUiKTsKIAogc3RhdGljIGNvbnN0IENTU1ZhbHVlSUQgZGlzcGxh
eUFsaWdubWVudE1hcFtdID0gewogICAgIENTU1ZhbHVlU3RhcnQsIENTU1ZhbHVlQ2VudGVyLCBD
U1NWYWx1ZUVuZCwgQ1NTVmFsdWVMZWZ0LCBDU1NWYWx1ZVJpZ2h0CiB9OwotQ09NUElMRV9BU1NF
UlQoV1RGX0FSUkFZX0xFTkdUSChkaXNwbGF5QWxpZ25tZW50TWFwKSA9PSBWVFRDdWU6Ok51bWJl
ck9mQWxpZ25tZW50cywgZGlzcGxheUFsaWdubWVudE1hcF9oYXNfd3Jvbmdfc2l6ZSk7CitzdGF0
aWNfYXNzZXJ0KFdURl9BUlJBWV9MRU5HVEgoZGlzcGxheUFsaWdubWVudE1hcCkgPT0gVlRUQ3Vl
OjpOdW1iZXJPZkFsaWdubWVudHMsICJkaXNwbGF5QWxpZ25tZW50TWFwIGhhcyB3cm9uZyBzaXpl
Iik7CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHN0YXJ0S2V5d29yZCgpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTGVuZ3RoLmNwcAppbmRleCBjOTk2OWNlNzljNjk4YTRjOTAzZTBlODk2OGQ4ODM0NDg5
OTQyMzI0Li42ZGQ3N2U5MDU1ZGRlY2UxOWZjN2JjYjE3YTUzZGI5ODAwYzJhMjc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGguY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aC5jcHAKQEAgLTM1OSw3ICszNTksNyBAQCBzdHJ1Y3QgU2FtZVNp
emVBc0xlbmd0aCB7CiAgICAgaW50MzJfdCB2YWx1ZTsKICAgICBpbnQzMl90IG1ldGFEYXRhOwog
fTsKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihMZW5ndGgpID09IHNpemVvZihTYW1lU2l6ZUFzTGVu
Z3RoKSwgbGVuZ3RoX3Nob3VsZF9zdGF5X3NtYWxsKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKExl
bmd0aCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZW5ndGgpLCAibGVuZ3RoIHNob3VsZCBzdGF5IHNt
YWxsIik7CiAKIHN0YXRpYyBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBM
ZW5ndGhUeXBlIHR5cGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJl
YS5jcHAKaW5kZXggOWU2MWJkN2VlZGZjNTA0ZmM2YzhlZWIxMTI1ODI2NDViNjBkMWJjZi4uZGY1
ZDk5MzliZDZmNzM3YzI0YzExYWMxOGNlNzE0OTk5ZDNkYTQxOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgU2Ft
ZVNpemVBc1Njcm9sbGFibGVBcmVhIHsKICAgICBib29sIGJ5dGVzWzldOwogfTsKIAotQ09NUElM
RV9BU1NFUlQoc2l6ZW9mKFNjcm9sbGFibGVBcmVhKSA9PSBzaXplb2YoU2FtZVNpemVBc1Njcm9s
bGFibGVBcmVhKSwgU2Nyb2xsYWJsZUFyZWFfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fz
c2VydChzaXplb2YoU2Nyb2xsYWJsZUFyZWEpID09IHNpemVvZihTYW1lU2l6ZUFzU2Nyb2xsYWJs
ZUFyZWEpLCAiU2Nyb2xsYWJsZUFyZWEgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogU2Nyb2xsYWJs
ZUFyZWE6OlNjcm9sbGFibGVBcmVhKCkgPSBkZWZhdWx0OwogU2Nyb2xsYWJsZUFyZWE6On5TY3Jv
bGxhYmxlQXJlYSgpID0gZGVmYXVsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1VzZXJBZ2VudFF1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVXNlckFnZW50
UXVpcmtzLmgKaW5kZXggMjcxOTA1ZGY0ZDFkMjYzNzk5ZTE2Y2EzM2E2MWM2OGQ1ZTY3ZjRjNi4u
YTkyY2Y3NDRiNWYxNzk4MTM4ZGI3YzgyMWZhMjJhNDk2YWI1N2Y0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vVXNlckFnZW50UXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVXNlckFnZW50UXVpcmtzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgVXNl
ckFnZW50UXVpcmtzIHsKICAgICBVc2VyQWdlbnRRdWlya3MoKQogICAgICAgICA6IG1fcXVpcmtz
KDApCiAgICAgewotICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YobV9xdWlya3MpICogOCA+
PSBOdW1Vc2VyQWdlbnRRdWlya3MsIG5vdF9lbm91Z2hfcm9vbV9mb3JfcXVpcmtzKTsKKyAgICAg
ICAgc3RhdGljX2Fzc2VydChzaXplb2YobV9xdWlya3MpICogOCA+PSBOdW1Vc2VyQWdlbnRRdWly
a3MsICJub3QgZW5vdWdoIHJvb20gZm9yIHF1aXJrcyIpOwogICAgIH0KIAogICAgIHZvaWQgYWRk
KFVzZXJBZ2VudFF1aXJrIHF1aXJrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcAppbmRleCA4NjVjNGFl
NmE5YzMzMDVkYjY0MTVkNjhjNDdlZjY2YmJlNTdiMmE3Li5hZWMwMTAwNjI4OWVlMTY4YTEwYWM1
MmE4MjdhYjIxYjFlNzExZDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmNwcApAQCAtNDksNyArNDks
NyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24gewogICAgIHVuc2ln
bmVkIGJpdGZpZWxkczMgOiAxMDsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uKSA9PSBzaXplb2YoU2FtZVNpemVBc0ZvbnRDYXNjYWRlRGVzY3JpcHRp
b24pLCBGb250Q2FzY2FkZURlc2NyaXB0aW9uX3Nob3VsZF9zdGF5X3NtYWxsKTsKK3N0YXRpY19h
c3NlcnQoc2l6ZW9mKEZvbnRDYXNjYWRlRGVzY3JpcHRpb24pID09IHNpemVvZihTYW1lU2l6ZUFz
Rm9udENhc2NhZGVEZXNjcmlwdGlvbiksICJGb250Q2FzY2FkZURlc2NyaXB0aW9uIHNob3VsZCBz
dGF5IHNtYWxsIik7CiAKIEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OkZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24oKQogICAgIDogbV9mYW1pbGllcyhSZWZDb3VudGVkRml4ZWRWZWN0b3I8QXRvbVN0cmlu
Zz46OmNyZWF0ZSgxKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1JlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZWdpb24u
Y3BwCmluZGV4IDkzZmM5NzE5YWNjZGI2NWU2NTVjMjZiNzdlMzE3M2Y5MTg1M2MzNDQuLmEyZTY2
ZTUwNzRlYTQ4NTM4ZDZmYjE3N2U5ZWM1ZWZmYjIzZTM1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVnaW9uLmNwcApAQCAtNDIxLDggKzQyMSw4IEBAIGVudW0gewog
dGVtcGxhdGU8dHlwZW5hbWUgT3BlcmF0aW9uPgogUmVnaW9uOjpTaGFwZSBSZWdpb246OlNoYXBl
OjpzaGFwZU9wZXJhdGlvbihjb25zdCBTaGFwZSYgc2hhcGUxLCBjb25zdCBTaGFwZSYgc2hhcGUy
KQogewotICAgIENPTVBJTEVfQVNTRVJUKCEoIU9wZXJhdGlvbjo6c2hvdWxkQWRkUmVtYWluaW5n
U2VnbWVudHNGcm9tU3BhbjEgJiYgT3BlcmF0aW9uOjpzaG91bGRBZGRSZW1haW5pbmdTZWdtZW50
c0Zyb21TcGFuMiksIGludmFsaWRfc2VnbWVudF9jb21iaW5hdGlvbik7Ci0gICAgQ09NUElMRV9B
U1NFUlQoISghT3BlcmF0aW9uOjpzaG91bGRBZGRSZW1haW5pbmdTcGFuc0Zyb21TaGFwZTEgJiYg
T3BlcmF0aW9uOjpzaG91bGRBZGRSZW1haW5pbmdTcGFuc0Zyb21TaGFwZTIpLCBpbnZhbGlkX3Nw
YW5fY29tYmluYXRpb24pOworICAgIHN0YXRpY19hc3NlcnQoISghT3BlcmF0aW9uOjpzaG91bGRB
ZGRSZW1haW5pbmdTZWdtZW50c0Zyb21TcGFuMSAmJiBPcGVyYXRpb246OnNob3VsZEFkZFJlbWFp
bmluZ1NlZ21lbnRzRnJvbVNwYW4yKSwgImludmFsaWQgc2VnbWVudCBjb21iaW5hdGlvbiIpOwor
ICAgIHN0YXRpY19hc3NlcnQoISghT3BlcmF0aW9uOjpzaG91bGRBZGRSZW1haW5pbmdTcGFuc0Zy
b21TaGFwZTEgJiYgT3BlcmF0aW9uOjpzaG91bGRBZGRSZW1haW5pbmdTcGFuc0Zyb21TaGFwZTIp
LCAiaW52YWxpZCBzcGFuIGNvbWJpbmF0aW9uIik7CiAKICAgICBTaGFwZSByZXN1bHQ7CiAgICAg
aWYgKE9wZXJhdGlvbjo6dHJ5U2ltcGxlT3BlcmF0aW9uKHNoYXBlMSwgc2hhcGUyLCByZXN1bHQp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcAppbmRleCA2
M2U2NjM4MDk1ZDBiZjRiMTBlYzNmN2U2MmEwMmU0MWY1NGY2ZTRjLi44NjNkMzM1OGQ1Y2IxZGJk
M2JiMzM5NWZjYjYyYWM0ZWVjMWVlZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UZXh0UnVuLmNwcApAQCAtMzcsNiArMzcsNiBAQCBzdHJ1Y3QgRXhwZWN0ZWRUZXh0
UnVuU2l6ZSB7CiAgICAgdW5zaWduZWQgYml0ZmllbGRzIDogOTsKIH07CiAKLUNPTVBJTEVfQVNT
RVJUKHNpemVvZihUZXh0UnVuKSA9PSBzaXplb2YoRXhwZWN0ZWRUZXh0UnVuU2l6ZSksIFRleHRS
dW5faXNfbm90X29mX2V4cGVjdGVkX3NpemUpOworc3RhdGljX2Fzc2VydChzaXplb2YoVGV4dFJ1
bikgPT0gc2l6ZW9mKEV4cGVjdGVkVGV4dFJ1blNpemUpLCAiVGV4dFJ1biBpcyBub3Qgb2YgZXhw
ZWN0ZWQgc2l6ZSIpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0JpZGlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNv
bnRleHQuY3BwCmluZGV4IDQ1Y2QxMGJmMzQ4NjJjOGVlZWEyYjg0MWM3NWM3ZmRkYTk2ZjlkZmYu
Ljg3ZTA4MWZkNzc0YzI2Yjk5MTg2MzI5YWRiYWU0MzBhMmZjMjQ0MDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvQmlkaUNvbnRleHQuY3BwCkBAIC0zMyw3ICszMyw3IEBAIHN0
cnVjdCBTYW1lU2l6ZUFzQmlkaUNvbnRleHQgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
U2FtZVNpemVBc0JpZGlDb250ZXh0CiAgICAgdm9pZCogcGFyZW50OwogfTsKIAotQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKEJpZGlDb250ZXh0KSA9PSBzaXplb2YoU2FtZVNpemVBc0JpZGlDb250ZXh0
KSwgQmlkaUNvbnRleHRfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fzc2VydChzaXplb2Yo
QmlkaUNvbnRleHQpID09IHNpemVvZihTYW1lU2l6ZUFzQmlkaUNvbnRleHQpLCAiQmlkaUNvbnRl
eHQgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogaW5saW5lIEJpZGlDb250ZXh0OjpCaWRpQ29udGV4
dCh1bnNpZ25lZCBjaGFyIGxldmVsLCBVQ2hhckRpcmVjdGlvbiBkaXJlY3Rpb24sIGJvb2wgb3Zl
cnJpZGUsIEJpZGlFbWJlZGRpbmdTb3VyY2Ugc291cmNlLCBCaWRpQ29udGV4dCogcGFyZW50KQog
ICAgIDogbV9sZXZlbChsZXZlbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEZsYWdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFn
cy5oCmluZGV4IDI0ZDAyODhmOTI1MzIwODhiNGRhYjE1MTFjYWIwNGJmMTI3OGJiZDUuLjQxM2Q3
YmM3MjdmNzhhYzBmMDFiZWMzMDQzZTllZTQ4NDIwNTExMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0RmxhZ3MuaApAQCAtNTc3LDcgKzU3Nyw3IEBAIGVudW0gY2xhc3MgRm9u
dFdpZHRoVmFyaWFudCA6IHVpbnQ4X3QgewogCiBjb25zdCB1bnNpZ25lZCBGb250V2lkdGhWYXJp
YW50V2lkdGggPSAyOwogCi1DT01QSUxFX0FTU0VSVCghKHN0YXRpY19jYXN0PHVuc2lnbmVkPihG
b250V2lkdGhWYXJpYW50OjpMYXN0Rm9udFdpZHRoVmFyaWFudCkgPj4gRm9udFdpZHRoVmFyaWFu
dFdpZHRoKSwgRm9udFdpZHRoVmFyaWFudFdpZHRoX2lzX2NvcnJlY3QpOworc3RhdGljX2Fzc2Vy
dCghKHN0YXRpY19jYXN0PHVuc2lnbmVkPihGb250V2lkdGhWYXJpYW50OjpMYXN0Rm9udFdpZHRo
VmFyaWFudCkgPj4gRm9udFdpZHRoVmFyaWFudFdpZHRoKSwgIkZvbnRXaWR0aFZhcmlhbnRXaWR0
aCBpcyBjb3JyZWN0Iik7CiAKIGVudW0gY2xhc3MgRm9udFNtYWxsQ2FwcyA6IHVpbnQ4X3Qgewog
ICAgIE9mZiA9IDAsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vSW1w
b3J0ZWRGdW5jdGlvbnNFbnVtZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9JbXBvcnRlZEZ1bmN0aW9uc0VudW1lcmF0b3IuY3BwCmluZGV4IGYxMTAwYmJlZGRlNjlmZWUx
OTRmZmIwN2ZlMTM1Yjk0ZGFiN2Q4YjIuLmVhOTFhZDY5MjQ3YWFiODZhOTgxYTE5YTU2MzUxMzc3
YzQ2MzFjMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9JbXBvcnRl
ZEZ1bmN0aW9uc0VudW1lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9JbXBvcnRlZEZ1bmN0aW9uc0VudW1lcmF0b3IuY3BwCkBAIC02OCw3ICs2OCw3IEBAIGNvbnN0
IGNoYXIqIEltcG9ydGVkRnVuY3Rpb25zRW51bWVyYXRvcjo6Y3VycmVudEZ1bmN0aW9uTmFtZSgp
IGNvbnN0CiBjb25zdCB2b2lkKiBjb25zdCogSW1wb3J0ZWRGdW5jdGlvbnNFbnVtZXJhdG9yOjph
ZGRyZXNzT2ZDdXJyZW50RnVuY3Rpb25Qb2ludGVyKCkgY29uc3QKIHsKICAgICBBU1NFUlQobV9h
ZGRyZXNzVGFibGVFbnRyeSk7Ci0gICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKHZvaWQqKSA9PSBz
aXplb2YobV9hZGRyZXNzVGFibGVFbnRyeS0+dTEuRnVuY3Rpb24pLCBGdW5jdGlvbkFkZHJlc3NT
aXplTWF0Y2hlc1BvaW50ZXJTaXplKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikg
PT0gc2l6ZW9mKG1fYWRkcmVzc1RhYmxlRW50cnktPnUxLkZ1bmN0aW9uKSwgIkZ1bmN0aW9uQWRk
cmVzcyBzaXplIG1hdGNoZXMgcG9pbnRlciBzaXplIik7CiAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3Qgdm9pZCogY29uc3QqPigmbV9hZGRyZXNzVGFibGVFbnRyeS0+dTEuRnVuY3Rp
b24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQnJlYWtMaW5l
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQnJlYWtMaW5lcy5jcHAKaW5kZXggZDhm
YzM4MTVkMGViZTM2ZDQ1YjFmYmE1ODVjZTkxNTU1NTQ3YjYzOS4uMDU0ZTE5YTc2MTYzNTE5ZGE0
NjBjNzc1MTU2OTIwOWVkYmU0MTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0JyZWFrTGluZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9CcmVha0xp
bmVzLmNwcApAQCAtOTUsNiArOTUsNiBAQCBjb25zdCB1bnNpZ25lZCBjaGFyIGxpbmVCcmVha1Rh
YmxlW11bbGluZUJyZWFrVGFibGVDb2x1bW5Db3VudF0gPSB7CiAjdW5kZWYgREkKICN1bmRlZiBB
TAogCi1DT01QSUxFX0FTU0VSVChXVEZfQVJSQVlfTEVOR1RIKGxpbmVCcmVha1RhYmxlKSA9PSBs
aW5lQnJlYWtUYWJsZUxhc3RDaGFyYWN0ZXIgLSBsaW5lQnJlYWtUYWJsZUZpcnN0Q2hhcmFjdGVy
ICsgMSwgVGVzdExpbmVCcmVha1RhYmxlQ29uc2lzdGVuY3kpOworc3RhdGljX2Fzc2VydChXVEZf
QVJSQVlfTEVOR1RIKGxpbmVCcmVha1RhYmxlKSA9PSBsaW5lQnJlYWtUYWJsZUxhc3RDaGFyYWN0
ZXIgLSBsaW5lQnJlYWtUYWJsZUZpcnN0Q2hhcmFjdGVyICsgMSwgIlRlc3QgTGluZUJyZWFrVGFi
bGUgY29uc2lzdGVuY3kiKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb2F0aW5nT2JqZWN0cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3RzLmNwcAppbmRleCBhODJjNmNkMjgwNmJmYzAx
ZjExNTM0YWY0NTIyMTQyZDcxODFhYjlkLi4wZDEzYzMyMWFhOGEyNGZiZGRiNGRkMGZkMjRiYzRj
ZjExZWJjMDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdP
YmplY3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvYXRpbmdPYmplY3Rz
LmNwcApAQCAtNDIsMTAgKzQyLDEwIEBAIHN0cnVjdCBTYW1lU2l6ZUFzRmxvYXRpbmdPYmplY3Qg
ewogICAgIHVpbnQzMl90IGJpdGZpZWxkcyA6IDg7CiB9OwogCi1DT01QSUxFX0FTU0VSVChzaXpl
b2YoRmxvYXRpbmdPYmplY3QpID09IHNpemVvZihTYW1lU2l6ZUFzRmxvYXRpbmdPYmplY3QpLCBG
bG9hdGluZ09iamVjdF9zaG91bGRfc3RheV9zbWFsbCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihG
bG9hdGluZ09iamVjdCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNGbG9hdGluZ09iamVjdCksICJGbG9h
dGluZ09iamVjdCBzaG91bGQgc3RheSBzbWFsbCIpOwogI2lmICFBU1NFUlRfRU5BQkxFRAotQ09N
UElMRV9BU1NFUlQoc2l6ZW9mKFdlYWtQdHI8UmVuZGVyQm94PikgPT0gc2l6ZW9mKHZvaWQqKSwg
V2Vha1B0cl9zaG91bGRfYmVfc2FtZV9zaXplX2FzX3Jhd19wb2ludGVyKTsKLUNPTVBJTEVfQVNT
RVJUKHNpemVvZihXZWFrUHRyPExlZ2FjeVJvb3RJbmxpbmVCb3g+KSA9PSBzaXplb2Yodm9pZCop
LCBXZWFrUHRyX3Nob3VsZF9iZV9zYW1lX3NpemVfYXNfcmF3X3BvaW50ZXIpOworc3RhdGljX2Fz
c2VydChzaXplb2YoV2Vha1B0cjxSZW5kZXJCb3g+KSA9PSBzaXplb2Yodm9pZCopLCAiV2Vha1B0
ciBzaG91bGQgYmUgc2FtZSBzaXplIGFzIHJhdyBwb2ludGVyIik7CitzdGF0aWNfYXNzZXJ0KHNp
emVvZihXZWFrUHRyPExlZ2FjeVJvb3RJbmxpbmVCb3g+KSA9PSBzaXplb2Yodm9pZCopLCAiV2Vh
a1B0ciBzaG91bGQgYmUgc2FtZSBzaXplIGFzIHJhdyBwb2ludGVyIik7CiAjZW5kaWYKIAogRmxv
YXRpbmdPYmplY3Q6OkZsb2F0aW5nT2JqZWN0KFJlbmRlckJveCYgcmVuZGVyZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lQm94LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVCb3guY3BwCmluZGV4IDBlMzA0NjE2MWY3
YWJjYWIyMDM5ZTY0NzYwYWZlMDc0MzhkMGFlMmYuLmU3OTMyOTQwZmY2Y2YwM2ZlOGIzMDI2MTEz
OWJjZjc4YTIxZDMwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdh
Y3lJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxp
bmVCb3guY3BwCkBAIC01Miw3ICs1Miw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzTGVnYWN5SW5saW5l
Qm94IHsKICNlbmRpZgogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKExlZ2FjeUlubGluZUJv
eCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZWdhY3lJbmxpbmVCb3gpLCBMZWdhY3lJbmxpbmVCb3hf
c2l6ZV9ndWFyZCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihMZWdhY3lJbmxpbmVCb3gpID09IHNp
emVvZihTYW1lU2l6ZUFzTGVnYWN5SW5saW5lQm94KSwgIkxlZ2FjeUlubGluZUJveCBzaXplIGd1
YXJkIik7CiAKICNpZiAhQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT05fRElTQUJMRUQK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xlZ2FjeUlubGluZUZsb3dCb3guY3Bw
CmluZGV4IGRkZjAxZjFlOGNkMTcwMTY2NmJlMjA3ODdlZGEzZjNiOGZiODA2NzMuLjdjMGQwZDg0
MGQxOWExYTNmZGVhODVjOTc1Mzc4NjlhYjExNzU3OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVGbG93Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5SW5saW5lRmxvd0JveC5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgc3Ry
dWN0IFNhbWVTaXplQXNMZWdhY3lJbmxpbmVGbG93Qm94IDogcHVibGljIExlZ2FjeUlubGluZUJv
eCB7CiAgICAgdm9pZCogcG9pbnRlcnNbNV07CiB9OwogCi1DT01QSUxFX0FTU0VSVChzaXplb2Yo
TGVnYWN5SW5saW5lRmxvd0JveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZWdhY3lJbmxpbmVGbG93
Qm94KSwgTGVnYWN5SW5saW5lRmxvd0JveF9zaG91bGRfc3RheV9zbWFsbCk7CitzdGF0aWNfYXNz
ZXJ0KHNpemVvZihMZWdhY3lJbmxpbmVGbG93Qm94KSA9PSBzaXplb2YoU2FtZVNpemVBc0xlZ2Fj
eUlubGluZUZsb3dCb3gpLCAiTGVnYWN5SW5saW5lRmxvd0JveCBzaG91bGQgc3RheSBzbWFsbCIp
OwogCiAjaWYgIUFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OX0RJU0FCTEVECiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lJbmxpbmVUZXh0Qm94LmNwcAppbmRl
eCA5NjUwZDk0YzJhMWY3ZDFkMDFmZmFkMDQ4Y2ZhYWYwZTc1YzU5ODYzLi5iZWUxMTQ3ZmVhMzVj
MmFiNTdkZmY4YjMxYmI4M2RmNzExNDBjNTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5SW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0xlZ2FjeUlubGluZVRleHRCb3guY3BwCkBAIC03NCw3ICs3NCw3IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzTGVnYWN5SW5saW5lVGV4dEJveCA6IHB1YmxpYyBMZWdhY3lJbmxpbmVCb3ggewog
ICAgIHVuc2lnbmVkIHNob3J0IHZhcmlhYmxlczI7CiB9OwogCi1DT01QSUxFX0FTU0VSVChzaXpl
b2YoTGVnYWN5SW5saW5lVGV4dEJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNMZWdhY3lJbmxpbmVU
ZXh0Qm94KSwgTGVnYWN5SW5saW5lVGV4dEJveF9zaG91bGRfc3RheV9zbWFsbCk7CitzdGF0aWNf
YXNzZXJ0KHNpemVvZihMZWdhY3lJbmxpbmVUZXh0Qm94KSA9PSBzaXplb2YoU2FtZVNpemVBc0xl
Z2FjeUlubGluZVRleHRCb3gpLCAiTGVnYWN5SW5saW5lVGV4dEJveCBzaG91bGQgc3RheSBzbWFs
bCIpOwogCiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgTGVnYWN5SW5saW5lVGV4dEJveCosIExheW91
dFJlY3Q+IExlZ2FjeUlubGluZVRleHRCb3hPdmVyZmxvd01hcDsKIHN0YXRpYyBMZWdhY3lJbmxp
bmVUZXh0Qm94T3ZlcmZsb3dNYXAqIGdUZXh0Qm94ZXNXaXRoT3ZlcmZsb3c7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5Um9vdElubGluZUJveC5jcHAKaW5kZXggNWViMjlh
Mjg1MjBjNTFhNWI2MDRjNTNmNmQyOGEwYzg2YmE4ODBjMi4uZTgzYjUyZjA5MmVmMDYyNjRkY2M0
NzZkMDQyYzM3Zjg4ZDRlN2MyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xlZ2FjeVJvb3RJbmxpbmVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9M
ZWdhY3lSb290SW5saW5lQm94LmNwcApAQCAtNTEsOSArNTEsOSBAQCBzdHJ1Y3QgU2FtZVNpemVB
c0xlZ2FjeVJvb3RJbmxpbmVCb3ggOiBwdWJsaWMgTGVnYWN5SW5saW5lRmxvd0JveCwgcHVibGlj
IENhbk1hawogICAgIHZvaWQqIHBvaW50ZXJzWzJdOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6
ZW9mKExlZ2FjeVJvb3RJbmxpbmVCb3gpID09IHNpemVvZihTYW1lU2l6ZUFzTGVnYWN5Um9vdElu
bGluZUJveCksIExlZ2FjeVJvb3RJbmxpbmVCb3hfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGlj
X2Fzc2VydChzaXplb2YoTGVnYWN5Um9vdElubGluZUJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNM
ZWdhY3lSb290SW5saW5lQm94KSwgIkxlZ2FjeVJvb3RJbmxpbmVCb3ggc2hvdWxkIHN0YXkgc21h
bGwiKTsKICNpZiAhQVNTRVJUX0VOQUJMRUQKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihXZWFrUHRy
PFJlbmRlck9iamVjdD4pID09IHNpemVvZih2b2lkKiksIFdlYWtQdHJfc2hvdWxkX2JlX3NhbWVf
c2l6ZV9hc19yYXdfcG9pbnRlcik7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihXZWFrUHRyPFJlbmRl
ck9iamVjdD4pID09IHNpemVvZih2b2lkKiksICJXZWFrUHRyIHNob3VsZCBiZSBzYW1lIHNpemUg
YXMgcmF3IHBvaW50ZXIiKTsKICNlbmRpZgogCiB0eXBlZGVmIEhhc2hNYXA8Y29uc3QgTGVnYWN5
Um9vdElubGluZUJveCosIHN0ZDo6dW5pcXVlX3B0cjxMZWdhY3lFbGxpcHNpc0JveD4+IEVsbGlw
c2lzQm94TWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXgg
NWU2ZGYwYmQ2MDBkMzBkNWRlOTVjMTNmZDA5MTNkNGJkNTE1ZWU3Ny4uMjhlYzY2NmRjYjhkM2Q2
Njc0OTNiZGMwYjI5ZDcxZTgxMTJlZmI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC05MSw3ICs5MSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1Q
TChSZW5kZXJCbG9jayk7CiBzdHJ1Y3QgU2FtZVNpemVBc1JlbmRlckJsb2NrIDogcHVibGljIFJl
bmRlckJveCB7CiB9OwogCi1DT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyQmxvY2spID09IHNp
emVvZihTYW1lU2l6ZUFzUmVuZGVyQmxvY2spLCBSZW5kZXJCbG9ja19zaG91bGRfc3RheV9zbWFs
bCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihSZW5kZXJCbG9jaykgPT0gc2l6ZW9mKFNhbWVTaXpl
QXNSZW5kZXJCbG9jayksICJSZW5kZXJCbG9jayBzaG91bGQgc3RheSBzbWFsbCIpOwogCiB0eXBl
ZGVmIEhhc2hNYXA8Y29uc3QgUmVuZGVyQmxvY2sqLCBzdGQ6OnVuaXF1ZV9wdHI8VHJhY2tlZFJl
bmRlcmVyTGlzdEhhc2hTZXQ+PiBUcmFja2VkRGVzY2VuZGFudHNNYXA7CiB0eXBlZGVmIEhhc2hN
YXA8Y29uc3QgUmVuZGVyQm94Kiwgc3RkOjp1bmlxdWVfcHRyPEhhc2hTZXQ8Y29uc3QgUmVuZGVy
QmxvY2sqPj4+IFRyYWNrZWRDb250YWluZXJNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDYwMjBmZDJhZDE1OWFlMjc4MDY3NDcwODI1MzYw
ZjMxOGRlOWMzNjYuLjk1YWRjODZkY2U5OWYwNmM1NTg2MDcxZmM5YjQ1YjhkNmM2MDAzYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC04Myw4
ICs4Myw4IEBAIHN0cnVjdCBTYW1lU2l6ZUFzTWFyZ2luSW5mbyB7CiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5zWzJdOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlckJsb2NrRmxvdzo6
TWFyZ2luVmFsdWVzKSA9PSBzaXplb2YoTGF5b3V0VW5pdFs0XSksIE1hcmdpblZhbHVlc19zaG91
bGRfc3RheV9zbWFsbCk7Ci1DT01QSUxFX0FTU0VSVChzaXplb2YoUmVuZGVyQmxvY2tGbG93OjpN
YXJnaW5JbmZvKSA9PSBzaXplb2YoU2FtZVNpemVBc01hcmdpbkluZm8pLCBNYXJnaW5JbmZvX3No
b3VsZF9zdGF5X3NtYWxsKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFJlbmRlckJsb2NrRmxvdzo6
TWFyZ2luVmFsdWVzKSA9PSBzaXplb2YoTGF5b3V0VW5pdFs0XSksICJNYXJnaW5WYWx1ZXMgc2hv
dWxkIHN0YXkgc21hbGwiKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFJlbmRlckJsb2NrRmxvdzo6
TWFyZ2luSW5mbykgPT0gc2l6ZW9mKFNhbWVTaXplQXNNYXJnaW5JbmZvKSwgIk1hcmdpbkluZm8g
c2hvdWxkIHN0YXkgc21hbGwiKTsKIAogLy8gT3VyIE1hcmdpbkluZm8gc3RhdGUgdXNlZCB3aGVu
IGxheWluZyBvdXQgYmxvY2sgY2hpbGRyZW4uCiBSZW5kZXJCbG9ja0Zsb3c6Ok1hcmdpbkluZm86
Ok1hcmdpbkluZm8oY29uc3QgUmVuZGVyQmxvY2tGbG93JiBibG9jaywgTGF5b3V0VW5pdCBiZWZv
cmVCb3JkZXJQYWRkaW5nLCBMYXlvdXRVbml0IGFmdGVyQm9yZGVyUGFkZGluZykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYzQ4NGQxNDViZTc1M2EwZmM0NDljZTc1
YzBlNTJhNmVkM2IxNjYwMy4uOTdlMjgyZjQwZjNlZWY1ZmY5ZWM0YWY0NDIwMDFlOTFhMjcwZDQz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTk4LDcgKzk4LDcg
QEAgc3RydWN0IFNhbWVTaXplQXNSZW5kZXJCb3ggOiBwdWJsaWMgUmVuZGVyQm94TW9kZWxPYmpl
Y3QgewogICAgIHZvaWQqIHBvaW50ZXJzWzJdOwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9m
KFJlbmRlckJveCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJCb3gpLCBSZW5kZXJCb3hfc2hv
dWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fzc2VydChzaXplb2YoUmVuZGVyQm94KSA9PSBzaXpl
b2YoU2FtZVNpemVBc1JlbmRlckJveCksICJSZW5kZXJCb3ggc2hvdWxkIHN0YXkgc21hbGwiKTsK
IAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAppbmRleCAxNTkwZDIwZGQwYjJiMmQ4YzRmYzZjYmIzOTQ0OGY0ZTRh
ZDUwMDRkLi4xNWFjMTdiMzgzNTg2OWI0ZTI5OWZlYTRjM2ExNjVkNTYyYjFiODcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTE5LDcgKzExOSw3IEBA
IHN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyT2JqZWN0IHsKICAgICB1bnNpZ25lZCBtX2JpdGZpZWxk
czsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihSZW5kZXJPYmplY3QpID09IHNpemVvZihT
YW1lU2l6ZUFzUmVuZGVyT2JqZWN0KSwgUmVuZGVyT2JqZWN0X3Nob3VsZF9zdGF5X3NtYWxsKTsK
K3N0YXRpY19hc3NlcnQoc2l6ZW9mKFJlbmRlck9iamVjdCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNS
ZW5kZXJPYmplY3QpLCAiUmVuZGVyT2JqZWN0IHNob3VsZCBzdGF5IHNtYWxsIik7CiAKIERFRklO
RV9ERUJVR19PTkxZX0dMT0JBTChXVEY6OlJlZkNvdW50ZWRMZWFrQ291bnRlciwgcmVuZGVyT2Jq
ZWN0Q291bnRlciwgKCJSZW5kZXJPYmplY3QiKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggZjhhMTkxMGM1YjZjN2ExYTEzZTgwYTUyYjUy
MzkxZmMwNjVmNjJlNS4uY2U5MTQwY2Y5MGU5NTg0YmJiMGQ2MjUwZDA2ZDFhYzljNjU4ZTczYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKQEAgLTU3
LDggKzU3LDggQEAgc3RydWN0IFNhbWVTaXplQXNSZW5kZXJUYWJsZUNlbGwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2tGbG93IHsKICAgICBMYXlvdXRVbml0IHBhZGRpbmdbMl07CiB9OwogCi1DT01QSUxF
X0FTU0VSVChzaXplb2YoUmVuZGVyVGFibGVDZWxsKSA9PSBzaXplb2YoU2FtZVNpemVBc1JlbmRl
clRhYmxlQ2VsbCksIFJlbmRlclRhYmxlQ2VsbF9zaG91bGRfc3RheV9zbWFsbCk7Ci1DT01QSUxF
X0FTU0VSVChzaXplb2YoQ29sbGFwc2VkQm9yZGVyVmFsdWUpIDw9IDI0LCBDb2xsYXBzZWRCb3Jk
ZXJWYWx1ZV9zaG91bGRfc3RheV9zbWFsbCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihSZW5kZXJU
YWJsZUNlbGwpID09IHNpemVvZihTYW1lU2l6ZUFzUmVuZGVyVGFibGVDZWxsKSwgIlJlbmRlclRh
YmxlQ2VsbCBzaG91bGQgc3RheSBzbWFsbCIpOworc3RhdGljX2Fzc2VydChzaXplb2YoQ29sbGFw
c2VkQm9yZGVyVmFsdWUpIDw9IDI0LCAiQ29sbGFwc2VkQm9yZGVyVmFsdWUgc2hvdWxkIHN0YXkg
c21hbGwiKTsKIAogUmVuZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJsZUNlbGwoRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50
LCBXVEZNb3ZlKHN0eWxlKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApp
bmRleCAxOTkxMTk2ODExMmE4NjNkOTFiZmUxNDk2ZjA0MzgyMDFlYTg3NjdiLi42M2MwZDk2MzU1
YjFiNWQ2OGM3NzViODRmZDUyOGNiOWUzMTllM2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0cnVjdCBTYW1lU2l6ZUFzUmVuZGVy
VGV4dCA6IHB1YmxpYyBSZW5kZXJPYmplY3QgewogICAgIFN0cmluZyB0ZXh0OwogfTsKIAotQ09N
UElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlclRleHQpID09IHNpemVvZihTYW1lU2l6ZUFzUmVuZGVy
VGV4dCksIFJlbmRlclRleHRfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fzc2VydChzaXpl
b2YoUmVuZGVyVGV4dCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJUZXh0KSwgIlJlbmRlclRl
eHQgc2hvdWxkIHN0YXkgc21hbGwiKTsKIAogY2xhc3MgU2VjdXJlVGV4dFRpbWVyIGZpbmFsIDog
cHJpdmF0ZSBUaW1lckJhc2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0ZpbGxMYXllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmlsbExheWVyLmNwcAppbmRleCA3ZTM2ZjAyMGZi
MjA2NzMzOTQxY2VkNTE0OWEwYzM0NjkzYWVkMTg1Li5lNTlhOWQzMDg1YTAzZmU5MTk0YTdlZTk1
ODc4ZDVlM2QxNjAyY2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvRmlsbExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvRmls
bExheWVyLmNwcApAQCAtNDEsNyArNDEsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0ZpbGxMYXllciA6
IFJlZkNvdW50ZWQ8U2FtZVNpemVBc0ZpbGxMYXllcj4gewogICAgIHVuc2lnbmVkIGJpdGZpZWxk
czIgOiAxMTsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihGaWxsTGF5ZXIpID09IHNpemVv
ZihTYW1lU2l6ZUFzRmlsbExheWVyKSwgRmlsbExheWVyX3Nob3VsZF9zdGF5X3NtYWxsKTsKK3N0
YXRpY19hc3NlcnQoc2l6ZW9mKEZpbGxMYXllcikgPT0gc2l6ZW9mKFNhbWVTaXplQXNGaWxsTGF5
ZXIpLCAiRmlsbExheWVyIHNob3VsZCBzdGF5IHNtYWxsIik7CiAKIFJlZjxGaWxsTGF5ZXI+IEZp
bGxMYXllcjo6Y3JlYXRlKEZpbGxMYXllclR5cGUgdHlwZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDc3OTcwZjZlNzU5Nzc2MjA3
NGUxOWY2ZjgxOTk2YzdlZmE4MTk1NjQuLmIxZWQyOGIxMjc1YjkzNDViNDNkOGE1MmVkNjVjNGU5
YjRiNThiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtNjgsNyArNjgsNyBAQCBzdHJ1Y3QgU2FtZVNpemVBc0JvcmRlclZhbHVlIHsK
ICAgICBpbnQgbV9yZXN0Qml0czsKIH07CiAKLUNPTVBJTEVfQVNTRVJUKHNpemVvZihCb3JkZXJW
YWx1ZSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNCb3JkZXJWYWx1ZSksIEJvcmRlclZhbHVlX3Nob3Vs
ZF9ub3RfZ3Jvdyk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihCb3JkZXJWYWx1ZSkgPT0gc2l6ZW9m
KFNhbWVTaXplQXNCb3JkZXJWYWx1ZSksICJCb3JkZXJWYWx1ZSBzaG91bGQgbm90IGdyb3ciKTsK
IAogc3RydWN0IFNhbWVTaXplQXNSZW5kZXJTdHlsZSB7CiAgICAgdm9pZCogZGF0YVJlZnNbN107
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCmlu
ZGV4IGRiOTc3YTgzMzNjMDU4NDkzMzg5MjMzYTUzNDMzODhhNTkzZDhiODMuLjAzODgzNGE1ZTdj
NGJlNGVjMDI5NzEwMGYzNTk4OTE2NGJjZTA1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCkBAIC0zMyw3ICszMyw3IEBAIHN0cnVjdCBT
YW1lU2l6ZUFzU3R5bGVCb3hEYXRhIDogcHVibGljIFJlZkNvdW50ZWQ8U2FtZVNpemVBc1N0eWxl
Qm94RGF0YT4gewogICAgIHVpbnQzMl90IGJpdGZpZWxkczsKIH07CiAKLUNPTVBJTEVfQVNTRVJU
KHNpemVvZihTdHlsZUJveERhdGEpID09IHNpemVvZihTYW1lU2l6ZUFzU3R5bGVCb3hEYXRhKSwg
U3R5bGVCb3hEYXRhX3Nob3VsZF9ub3RfZ3Jvdyk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihTdHls
ZUJveERhdGEpID09IHNpemVvZihTYW1lU2l6ZUFzU3R5bGVCb3hEYXRhKSwgIlN0eWxlQm94RGF0
YSBzaG91bGQgbm90IGdyb3ciKTsKIAogREVGSU5FX0FMTE9DQVRPUl9XSVRIX0hFQVBfSURFTlRJ
RklFUihTdHlsZUJveERhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMWMxMTZmODc5ZDNi
M2JkOTkyNjFmZGQwNTkxOGFhYmRjNjYyYjYzZi4uMzg2MzM3YzdjYzA3YjRlMzkzZDQ5ZmI3YTE5
MDY0MWEwNjUyZDU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtNzEsNyArNzEsNyBAQCBzdHJ1
Y3QgR3JlYXRlclRoYW5PclNhbWVTaXplQXNTdHlsZVJhcmVJbmhlcml0ZWREYXRhIDogcHVibGlj
IFJlZkNvdW50ZWQ8R3JlYXRlcgogI2VuZGlmCiB9OwogCi1DT01QSUxFX0FTU0VSVChzaXplb2Yo
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSkgPD0gc2l6ZW9mKEdyZWF0ZXJUaGFuT3JTYW1lU2l6ZUFz
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSksIFN0eWxlUmFyZUluaGVyaXRlZERhdGFfc2hvdWxkX2Jp
dF9wYWNrKTsKK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpIDw9
IHNpemVvZihHcmVhdGVyVGhhbk9yU2FtZVNpemVBc1N0eWxlUmFyZUluaGVyaXRlZERhdGEpLCAi
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSBzaG91bGQgYml0IHBhY2siKTsKIAogREVGSU5FX0FMTE9D
QVRPUl9XSVRIX0hFQVBfSURFTlRJRklFUihTdHlsZVJhcmVJbmhlcml0ZWREYXRhKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1dpbGxDaGFuZ2VEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvV2lsbENoYW5nZURhdGEuaAppbmRleCBk
OWYwZGQzYWQ5NzVlMGUzM2RmZjYzMzc3YTBmYjk4NTM5NjNhZjViLi5mZTBkNzc0YTc3MzhiMzkw
NDAzYzQ4OWNkNTgzZDRkNmYwZmUyZGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvV2lsbENoYW5nZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvV2lsbENoYW5nZURhdGEuaApAQCAtNzksNyArNzksNyBAQCBjbGFzcyBXaWxsQ2hh
bmdlRGF0YSA6IHB1YmxpYyBSZWZDb3VudGVkPFdpbGxDaGFuZ2VEYXRhPiB7CiAKICAgICBzdHJ1
Y3QgQW5pbWF0YWJsZUZlYXR1cmUgewogICAgICAgICBzdGF0aWMgY29uc3QgaW50IG51bUNTU1By
b3BlcnR5SURCaXRzID0gMTQ7Ci0gICAgICAgIENPTVBJTEVfQVNTRVJUKG51bUNTU1Byb3BlcnRp
ZXMgPCAoMSA8PCBudW1DU1NQcm9wZXJ0eUlEQml0cyksIENTU1Byb3BlcnR5SURfc2hvdWxkX2Zp
dF9pbl8xNF9iaXRzKTsKKyAgICAgICAgc3RhdGljX2Fzc2VydChudW1DU1NQcm9wZXJ0aWVzIDwg
KDEgPDwgbnVtQ1NTUHJvcGVydHlJREJpdHMpLCAiQ1NTUHJvcGVydHlJRCBzaG91bGQgZml0IGlu
IDE0X2JpdHMiKTsKIAogICAgICAgICB1bnNpZ25lZCBtX2ZlYXR1cmUgOiAyOwogICAgICAgICB1
bnNpZ25lZCBtX2Nzc1Byb3BlcnR5SUQgOiBudW1DU1NQcm9wZXJ0eUlEQml0czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR0lubGluZVRleHRCb3guY3BwCmluZGV4IGZi
NDM4MjM4OTQ3YmM2ZjBkNDIxNzIyY2VmNGI4NGZhZDBiZmIzOTkuLmQwMDNmZGQzZTFjZjQwZWI3
NDViZjVjZGVhOGNkMmQzMjRlMWRjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvU1ZHSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdJbmxpbmVUZXh0Qm94LmNwcApAQCAtNTIsNyArNTIsNyBAQCBzdHJ1Y3QgRXhw
ZWN0ZWRTVkdJbmxpbmVUZXh0Qm94U2l6ZSA6IHB1YmxpYyBMZWdhY3lJbmxpbmVUZXh0Qm94IHsK
ICAgICBWZWN0b3I8U1ZHVGV4dEZyYWdtZW50PiB2ZWN0b3I7CiB9OwogCi1DT01QSUxFX0FTU0VS
VChzaXplb2YoU1ZHSW5saW5lVGV4dEJveCkgPT0gc2l6ZW9mKEV4cGVjdGVkU1ZHSW5saW5lVGV4
dEJveFNpemUpLCBTVkdJbmxpbmVUZXh0Qm94X2lzX25vdF9vZl9leHBlY3RlZF9zaXplKTsKK3N0
YXRpY19hc3NlcnQoc2l6ZW9mKFNWR0lubGluZVRleHRCb3gpID09IHNpemVvZihFeHBlY3RlZFNW
R0lubGluZVRleHRCb3hTaXplKSwgIlNWR0lubGluZVRleHRCb3ggaXMgbm90IG9mIGV4cGVjdGVk
IHNpemUiKTsKIAogU1ZHSW5saW5lVGV4dEJveDo6U1ZHSW5saW5lVGV4dEJveChSZW5kZXJTVkdJ
bmxpbmVUZXh0JiByZW5kZXJlcikKICAgICA6IExlZ2FjeUlubGluZVRleHRCb3gocmVuZGVyZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9SdWxlRGF0YS5jcHAKaW5kZXggNDNhNGZjMDNiOTEyMzQxOTk3NzYzZjFh
ZGY5NmYzMjE0ZWNmMDhhYy4uZDYwMDBhNjQyMmM3YThjMmU2ZjUyOWQzZTY0ZTU3NzQ0MDg3Njg3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVEYXRhLmNwcApAQCAtNTYsNyArNTYsNyBAQCBzdHJ1Y3Qg
U2FtZVNpemVBc1J1bGVEYXRhIHsKICAgICB1bnNpZ25lZCBkWzRdOwogfTsKIAotQ09NUElMRV9B
U1NFUlQoc2l6ZW9mKFJ1bGVEYXRhKSA9PSBzaXplb2YoU2FtZVNpemVBc1J1bGVEYXRhKSwgUnVs
ZURhdGFfc2hvdWxkX3N0YXlfc21hbGwpOworc3RhdGljX2Fzc2VydChzaXplb2YoUnVsZURhdGEp
ID09IHNpemVvZihTYW1lU2l6ZUFzUnVsZURhdGEpLCAiUnVsZURhdGEgc2hvdWxkIHN0YXkgc21h
bGwiKTsKIAogc3RhdGljIGlubGluZSBNYXRjaEJhc2VkT25SdWxlSGFzaCBjb21wdXRlTWF0Y2hC
YXNlZE9uUnVsZUhhc2goY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yKQogewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL0dyYWRpZW50QXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL0dyYWRpZW50QXR0cmlidXRlcy5oCmluZGV4IDNjMDU1YjU0ZWRmMTViODcxYzkzYThk
OGFkNWE4NWI4ODJkMTIyODEuLmNkNWMzZTVjYjc1MTIzNzkxZWMxM2U2YWEyNjA4NGNiM2M4ODI0
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9HcmFkaWVudEF0dHJpYnV0ZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvR3JhZGllbnRBdHRyaWJ1dGVzLmgKQEAgLTg3LDYgKzg3
LDYgQEAgc3RydWN0IFNhbWVTaXplQXNHcmFkaWVudEF0dHJpYnV0ZXMgewogICAgIHVuc2lnbmVk
IGMgOiA3OwogfTsKIAotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKEdyYWRpZW50QXR0cmlidXRlcykg
PT0gc2l6ZW9mKFNhbWVTaXplQXNHcmFkaWVudEF0dHJpYnV0ZXMpLCBHcmFkaWVudEF0dHJpYnV0
ZXNfc2l6ZV9ndWFyZCk7CitzdGF0aWNfYXNzZXJ0KHNpemVvZihHcmFkaWVudEF0dHJpYnV0ZXMp
ID09IHNpemVvZihTYW1lU2l6ZUFzR3JhZGllbnRBdHRyaWJ1dGVzKSk7CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCBj
NWM3OGE4NTU5MGY4NmRmMjM1NGU4ZjM4N2UzZTEwMjYyNDJjOTZhLi45NGY4ZDc5Njc5M2VlM2Y2
YzNhYTY1YTlhNDFkNzg3ZTgxMTg3YTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCkBAIC01MjAsNyArNTIwLDcgQEAgY2xhc3MgQ29ubmVjdGlvbiA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxDb25uZWN0aW9uLCBXVEY6OkRlc3RydWN0aW9uVGhyZWEKIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CiBib29sIENvbm5lY3Rpb246OnNlbmQoVCYmIG1lc3NhZ2UsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQsIE9wdGlvblNldDxTZW5kT3B0aW9uPiBzZW5kT3B0aW9ucywg
c3RkOjpvcHRpb25hbDxUaHJlYWQ6OlFPUz4gcW9zKQogewotICAgIENPTVBJTEVfQVNTRVJUKCFU
Ojppc1N5bmMsIEFzeW5jTWVzc2FnZUV4cGVjdGVkKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFUOjpp
c1N5bmMsICJBc3luYyBtZXNzYWdlIGV4cGVjdGVkIik7CiAKICAgICBhdXRvIGVuY29kZXIgPSBt
YWtlVW5pcXVlUmVmPEVuY29kZXI+KFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CiAgICAgZW5j
b2Rlci5nZXQoKSA8PCBtZXNzYWdlLmFyZ3VtZW50cygpOwpAQCAtNTQ1LDcgKzU0NSw3IEBAIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRGVjb2RlciopPiB0YWtlQXN5bmNSZXBseUhhbmRsZXIoQ29u
bmVjdGlvbiYsIHVpbnQ2NF90KTsKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEM+CiB1
aW50NjRfdCBDb25uZWN0aW9uOjpzZW5kV2l0aEFzeW5jUmVwbHkoVCYmIG1lc3NhZ2UsIEMmJiBj
b21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgT3B0aW9uU2V0PFNlbmRP
cHRpb24+IHNlbmRPcHRpb25zKQogewotICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFz
eW5jTWVzc2FnZUV4cGVjdGVkKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFUOjppc1N5bmMsICJBc3lu
YyBtZXNzYWdlIGV4cGVjdGVkIik7CiAKICAgICBpZiAoIWlzVmFsaWQoKSkgewogICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBtb3Zl
VHVwbGUoc3RkOjp0dXBsZTxBLi4uPiYmIGEsIHN0ZDo6dHVwbGU8Qi4uLj4mIGIpCiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IENvbm5lY3Rpb246OlNlbmRTeW5jUmVzdWx0IENvbm5lY3Rpb246OnNl
bmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50NjRfdCBk
ZXN0aW5hdGlvbklELCBUaW1lb3V0IHRpbWVvdXQsIE9wdGlvblNldDxTZW5kU3luY09wdGlvbj4g
c2VuZFN5bmNPcHRpb25zKQogewotICAgIENPTVBJTEVfQVNTRVJUKFQ6OmlzU3luYywgU3luY01l
c3NhZ2VFeHBlY3RlZCk7CisgICAgc3RhdGljX2Fzc2VydChUOjppc1N5bmMsICJTeW5jIG1lc3Nh
Z2UgZXhwZWN0ZWQiKTsKICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
ICAgICBTeW5jUmVxdWVzdElEIHN5bmNSZXF1ZXN0SUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9NZXNzYWdlU2VuZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9NZXNzYWdlU2VuZGVyLmgKaW5kZXggYmY2MWZhODc2NzliZDA3NjM3NTNiNDc5NzcwOWFi
MTQ4ODJmZWQ2Yy4uNzNmMDI5ZjI1ZTBkZTg1MzQxZWQ3OWUxMGU3YzM0ZjEwNmYwZDZhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZVNlbmRlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01lc3NhZ2VTZW5kZXIuaApAQCAtODksNyArODks
NyBAQCBjbGFzcyBNZXNzYWdlU2VuZGVyIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBDPgogICAgIHVpbnQ2NF90IHNlbmRXaXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQyYm
IGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBPcHRpb25TZXQ8U2Vu
ZE9wdGlvbj4gc2VuZE9wdGlvbnMgPSB7IH0pCiAgICAgewotICAgICAgICBDT01QSUxFX0FTU0VS
VCghVDo6aXNTeW5jLCBBc3luY01lc3NhZ2VFeHBlY3RlZCk7CisgICAgICAgIHN0YXRpY19hc3Nl
cnQoIVQ6OmlzU3luYywgIkFzeW5jIG1lc3NhZ2UgZXhwZWN0ZWQiKTsKIAogICAgICAgICBhdXRv
IGVuY29kZXIgPSBtYWtlVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4oVDo6bmFtZSgpLCBkZXN0aW5h
dGlvbklEKTsKICAgICAgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IElQQzo6bmV4dEFzeW5jUmVw
bHlIYW5kbGVySUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3Vu
aXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAKaW5kZXggNzQ2ZjNmNmZkN2ZiYmEwOGJjMDk1MTE0N2MwNjIzNjRh
YmUyMWRlYS4uMTFkMzZhM2I3ZDUyNDUyNjc1YzRiNGU0NDNhYTQ0YmFlZDdiZTljMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAK
QEAgLTQzNCw3ICs0MzQsNyBAQCBib29sIENvbm5lY3Rpb246OnBsYXRmb3JtQ2FuU2VuZE91dGdv
aW5nTWVzc2FnZXMoKSBjb25zdAogCiBib29sIENvbm5lY3Rpb246OnNlbmRPdXRnb2luZ01lc3Nh
Z2UoVW5pcXVlUmVmPEVuY29kZXI+JiYgZW5jb2RlcikKIHsKLSAgICBDT01QSUxFX0FTU0VSVChz
aXplb2YoTWVzc2FnZUluZm8pICsgYXR0YWNobWVudE1heEFtb3VudCAqIHNpemVvZihzaXplX3Qp
IDw9IG1lc3NhZ2VNYXhTaXplLCBBdHRhY2htZW50c0ZpdFRvTWVzc2FnZUlubGluZSk7CisgICAg
c3RhdGljX2Fzc2VydChzaXplb2YoTWVzc2FnZUluZm8pICsgYXR0YWNobWVudE1heEFtb3VudCAq
IHNpemVvZihzaXplX3QpIDw9IG1lc3NhZ2VNYXhTaXplLCAiQXR0YWNobWVudHMgZml0IHRvIG1l
c3NhZ2UgaW5saW5lIik7CiAKICAgICBVbml4TWVzc2FnZSBvdXRwdXRNZXNzYWdlKGVuY29kZXIu
Z2V0KCkpOwogICAgIGlmIChvdXRwdXRNZXNzYWdlLmF0dGFjaG1lbnRzKCkuc2l6ZSgpID4gKGF0
dGFjaG1lbnRNYXhBbW91bnQgLSAxKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXhpbGlhcnlQcm9jZXNzUHJveHkuaAppbmRleCA5OGI5OWMyOTliN2E4OTJlOTM5ZTA2Y2I1MDdj
ZTYyYmU4NTA5NDBlLi5kM2NmODU1NjY4YTJhNDI0NWRhNjM3MDdmNDEzMTBjOGFmOWY1NjJlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXhpbGlhcnlQcm9jZXNzUHJveHkuaApA
QCAtMTkyLDcgKzE5Miw3IEBAIGNsYXNzIEF1eGlsaWFyeVByb2Nlc3NQcm94eSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxBdXhpbGlhcnlQcm9jZXNzUHJveHksCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogYm9vbCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmQoVCYmIG1lc3NhZ2UsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQsIE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+IHNlbmRPcHRp
b25zKQogewotICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4cGVj
dGVkKTsKKyAgICBzdGF0aWNfYXNzZXJ0KCFUOjppc1N5bmMsICJBc3luYyBtZXNzYWdlIGV4cGVj
dGVkIik7CiAKICAgICBhdXRvIGVuY29kZXIgPSBtYWtlVW5pcXVlUmVmPElQQzo6RW5jb2Rlcj4o
VDo6bmFtZSgpLCBkZXN0aW5hdGlvbklEKTsKICAgICBlbmNvZGVyLmdldCgpIDw8IG1lc3NhZ2Uu
YXJndW1lbnRzKCk7CkBAIC0yMDMsNyArMjAzLDcgQEAgYm9vbCBBdXhpbGlhcnlQcm9jZXNzUHJv
eHk6OnNlbmQoVCYmIG1lc3NhZ2UsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIE9wdGlvblNldDwK
IHRlbXBsYXRlPHR5cGVuYW1lIFU+IAogQXV4aWxpYXJ5UHJvY2Vzc1Byb3h5OjpTZW5kU3luY1Jl
c3VsdCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OnNlbmRTeW5jKFUmJiBtZXNzYWdlLCB0eXBlbmFt
ZSBVOjpSZXBseSYmIHJlcGx5LCB1aW50NjRfdCBkZXN0aW5hdGlvbklELCBJUEM6OlRpbWVvdXQg
dGltZW91dCwgT3B0aW9uU2V0PElQQzo6U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucykK
IHsKLSAgICBDT01QSUxFX0FTU0VSVChVOjppc1N5bmMsIFN5bmNNZXNzYWdlRXhwZWN0ZWQpOwor
ICAgIHN0YXRpY19hc3NlcnQoVTo6aXNTeW5jLCAiU3luYyBtZXNzYWdlIGV4cGVjdGVkIik7CiAK
ICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTIxNiw3ICsy
MTYsNyBAQCBBdXhpbGlhcnlQcm9jZXNzUHJveHk6OlNlbmRTeW5jUmVzdWx0IEF1eGlsaWFyeVBy
b2Nlc3NQcm94eTo6c2VuZFN5bmMoVSYmIG1lc3NhZwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlw
ZW5hbWUgQz4KIHVpbnQ2NF90IEF1eGlsaWFyeVByb2Nlc3NQcm94eTo6c2VuZFdpdGhBc3luY1Jl
cGx5KFQmJiBtZXNzYWdlLCBDJiYgY29tcGxldGlvbkhhbmRsZXIsIHVpbnQ2NF90IGRlc3RpbmF0
aW9uSUQsIE9wdGlvblNldDxJUEM6OlNlbmRPcHRpb24+IHNlbmRPcHRpb25zLCBTaG91bGRTdGFy
dFByb2Nlc3NUaHJvdHRsZXJBY3Rpdml0eSBzaG91bGRTdGFydFByb2Nlc3NUaHJvdHRsZXJBY3Rp
dml0eSkKIHsKLSAgICBDT01QSUxFX0FTU0VSVCghVDo6aXNTeW5jLCBBc3luY01lc3NhZ2VFeHBl
Y3RlZCk7CisgICAgc3RhdGljX2Fzc2VydCghVDo6aXNTeW5jLCAiQXN5bmMgbWVzc2FnZSBleHBl
Y3RlZCIpOwogCiAgICAgYXV0byBlbmNvZGVyID0gbWFrZVVuaXF1ZVJlZjxJUEM6OkVuY29kZXI+
KFQ6Om5hbWUoKSwgZGVzdGluYXRpb25JRCk7CiAgICAgdWludDY0X3QgbGlzdGVuZXJJRCA9IElQ
Qzo6bmV4dEFzeW5jUmVwbHlIYW5kbGVySUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1BsdWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9QbHVnaW5zL1dlYkJhc2VQbHVnaW5QYWNrYWdlLm1tCmluZGV4IDRjMTQ3NWMz
NjI2NWU4NWEwN2NjZDgzMjM4NzkxNmVjMDhiMTlhOWYuLjdkMzllZWUyY2VhOTZiM2QyOTBkZTNm
OWI1ZGU2M2I4NTI3YTdkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1Bs
dWdpbnMvV2ViQmFzZVBsdWdpblBhY2thZ2UubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvUGx1Z2lucy9XZWJCYXNlUGx1Z2luUGFja2FnZS5tbQpAQCAtMzA2LDcgKzMwNiw3IEBAIC0g
KEJPT0wpaXNOYXRpdmVMaWJyYXJ5RGF0YTooTlNEYXRhICopZGF0YQogICAgICAgICAgICAgaWYg
KG1hZ2ljID09IEZBVF9DSUdBTSkKICAgICAgICAgICAgICAgICBzd2FwSW50c0luSGVhZGVyKHJh
d0RhdGEuZGF0YSgpLCByYXdEYXRhLnNpemUoKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAg
IENPTVBJTEVfQVNTRVJUKHNpemVvZihzdHJ1Y3QgZmF0X2hlYWRlcikgJSBzaXplb2YodWludDMy
X3QpID09IDAsIHN0cnVjdF9mYXRfaGVhZGVyX211c3RfYmVfaW50ZWdyYWxfc2l6ZV9vZl91aW50
MzJfdCk7CisgICAgICAgICAgICBzdGF0aWNfYXNzZXJ0KHNpemVvZihzdHJ1Y3QgZmF0X2hlYWRl
cikgJSBzaXplb2YodWludDMyX3QpID09IDAsICJzdHJ1Y3QgZmF0IGhlYWRlciBtdXN0IGJlIGlu
dGVncmFsIHNpemUgb2YgdWludDMyX3QiKTsKICAgICAgICAgICAgIGFyY2hzID0gcmVpbnRlcnBy
ZXRfY2FzdDxzdHJ1Y3QgZmF0X2FyY2gqPihyYXdEYXRhLmRhdGEoKSArIHNpemVvZihzdHJ1Y3Qg
ZmF0X2hlYWRlcikgLyBzaXplb2YodWludDMyX3QpKTsKICAgICAgICAgICAgIG51bUFyY2hzID0g
cmVpbnRlcnByZXRfY2FzdDxzdHJ1Y3QgZmF0X2hlYWRlcio+KHJhd0RhdGEuZGF0YSgpKS0+bmZh
dF9hcmNoOwogICAgICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCmluZGV4IDAzOGE5Yzc2
NTE0NzJmNWQ3Y2YzMDhjOTUzN2VlNTc0MWYxNDM4MDIuLmEwNjUwNWI3Y2E3ZDIwNTM1YWRhZmNj
ZTJmYWFiNzg5NTkwYzc0NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCkBAIC0zOCw3ICszOCw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAjaWZuZGVmIF9fT0JKQzJfXwogLy8gSW4g
PHJkYXI6Ly9wcm9ibGVtLzc4MTQ4OTk+IHdlIHNhdyBjcmFzaGVzIGJlY2F1c2UgV2ViRHluYW1p
Y1Njcm9sbEJhcnNWaWV3IGluY3JlYXNlZCBpbiBzaXplLCBicmVha2luZyBBQkkgY29tcGF0aWJs
aXR5LgotQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFdlYkR5bmFtaWNTY3JvbGxCYXJzVmlldykgPT0g
MHg4YywgV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3X2lzX2V4cGVjdGVkX3NpemUpOworc3RhdGlj
X2Fzc2VydChzaXplb2YoV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3KSA9PSAweDhjLCAiV2ViRHlu
YW1pY1Njcm9sbEJhcnNWaWV3IGlzIGV4cGVjdGVkIHNpemUiKTsKICNlbmRpZgogCiBAaW50ZXJm
YWNlIE5TU2Nyb2xsVmlldyhXZWJOU1Njcm9sbFZpZXdEZXRhaWxzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>