<?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>232634</bug_id>
          
          <creation_ts>2021-11-02 12:10:13 -0700</creation_ts>
          <short_desc>[Payment Request] Add a new payment method for showing AMS UI</short_desc>
          <delta_ts>2021-11-08 16:34:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>aestes</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811215</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-02 12:10:13 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811216</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-02 12:10:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/79024227&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811217</commentid>
    <comment_count>2</comment_count>
      <attachid>443119</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-02 12:20:42 -0700</bug_when>
    <thetext>Created attachment 443119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811225</commentid>
    <comment_count>3</comment_count>
      <attachid>443122</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-02 12:41:31 -0700</bug_when>
    <thetext>Created attachment 443122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811360</commentid>
    <comment_count>4</comment_count>
      <attachid>443162</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-02 19:26:45 -0700</bug_when>
    <thetext>Created attachment 443162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811547</commentid>
    <comment_count>5</comment_count>
      <attachid>443216</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-03 11:21:51 -0700</bug_when>
    <thetext>Created attachment 443216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812857</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-08 14:57:47 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 443216 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812870</commentid>
    <comment_count>7</comment_count>
      <attachid>443614</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-11-08 15:09:42 -0800</bug_when>
    <thetext>Created attachment 443614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812922</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-08 16:34:32 -0800</bug_when>
    <thetext>Committed r285444 (243997@main): &lt;https://commits.webkit.org/243997@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443614.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443119</attachid>
            <date>2021-11-02 12:20:42 -0700</date>
            <delta_ts>2021-11-02 12:41:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232634-20211102122041.patch</filename>
            <type>text/plain</type>
            <size>86201</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMTViZDNkN2JmY2ZlNGMwYWNkZDlkZjZmMWJmNmJmMTNlNDdmZDNiLi43
N2QwNWVlZGQ5MWY5MzU4ZDU2NzZjM2Y1NTY3NjJlMGE4NmNlNjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTkgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2UgdGhl
IFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFzIGEgd2F5IGZvciBBcHBsZSBkb21haW5zIHRvIHNo
b3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAgICBwYXltZW50IFVJcyB3aXRob3V0IGhhdmluZyB0
byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMgKGUuZy4gQXBwbGUgUGF5IEpTKS4gVGhpcyBuZXcg
cGF5bWVudAorICAgICAgICBtZXRob2QgaXMgcXVpdGUgYmFyZS1ib25lcyBpbiB0aGF0IGl0IGp1
c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNzZXMgaXQgdG8gQU1TLCB3aGljaCB0aGVuCisgICAg
ICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHRoYXQuIE5vIGRhdGEgaXMgZXhw
b3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVyIHRoYW4gZWl0aGVyCisgICAgICAgIGFuIGVycm9y
IG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIgdGhlIHBheW1lbnQgd2FzIHN1Y2Nlc3NmdWwuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1
ZXN0Lmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dEFQSVZlcnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9u
OjpjdXJyZW50KToKKyAgICAgICAgQnVtcCB0aGUgY3VycmVudCBBcHBsZSBQYXkgdmVyc2lvbi4K
KworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
ZmluaXNoU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6cGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNV
cGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIEFkZCBhIG5ldyBwYXltZW50
IG1ldGhvZCB0aGF0IHVzZXMgQU1TIHRvIHByZXNlbnQgVUkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Q6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZGVjb2RlKToKKyAgICAg
ICAgSURMIGBkaWN0aW9uYXJ5YCB0aGF0IHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgYG9iamVjdCBk
YXRhYCBpbiBgUGF5bWVudE1ldGhvZERhdGFgIHdoZW4gdGhlCisgICAgICAgIEFwcGxlIFBheSBB
TVMgVUkgcGF5bWVudCBtZXRob2QgaXMgdXNlZC4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbik6
CisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIGFsbG93IGZvciB0aGVyZSB0byBiZSBtb3Jl
IHRoYW4gb25lIHBheW1lbnQgbWV0aG9kIGltcGxlbWV0ZWQgYXQgb25jZS4KKworICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBheW1lbnRSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVz
dDo6YWNjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpyZWplY3QpOgor
ICAgICAgICBUaGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkgZG9lc24ndCByZXF1aXJlIHRoYXQg
cGF5bWVudCBtZXRob2RzIGJlIGFib3J0YWJsZS4gQXMgc3VjaCwgYWRkCisgICAgICAgIHNvbWUg
bG9naWMgdGhhdCBjaGVja3Mgd2l0aCB0aGUgYWN0aXZlIGBQYXltZW50SGFuZGxlcmAgdG8gc2Vl
IGlmIGl0IGNhbiBiZSBhYm9ydGVkIGJlZm9yZQorICAgICAgICBhY3R1YWxseSBkb2luZyBzby4g
QWxzbyBjcmVhdGUgc29tZSBwdWJsaWMgaGVscGVyIG1ldGhvZHMgdGhhdCBhbGxvdyB0aGUgcGF5
bWVudCByZXF1ZXN0IHRvCisgICAgICAgIGJlIGFjY2VwdGVkIHdpdGhvdXQgcHJvdmlkaW5nIHNo
aXBwaW5nIGluZm9ybWF0aW9uIGFuZCBiZSBkaXJlY3RseSByZWplY3RlZCB3aXRoIGFuIGVycm9y
LgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNB
Y3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdGFydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphYm9ydEFwcGxlUGF5QU1TVUlT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIEFkZCBwbHVtYmluZyBiZXR3ZWVuIFdlYkNvcmUvV2ViUHJv
Y2VzcyBhbmQgVUlQcm9jZXNzLiBBbHNvIG1haW50YWluIHN0YXRlIGFib3V0IGlmIHRoZXJlJ3MK
KyAgICAgICAgYWxyZWFkeSBhbiBhY3RpdmUgQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IHNlc3Np
b24gKG5lZWRlZCBieSB0aGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkpLgorCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgaGVscGVyIGBQbGF0Zm9ybVZpZXdDb250cm9sbGVyYCB0aGF0IHdpbGwgZG8gdGhl
IHJpZ2h0IHRoaW5nIG9uIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVl
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b252ZXJ0RGF0YSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgdGhlIGBjb252ZXJ0QW5kVmFs
aWRhdGVgIHRoYXQgdGFrZXMgYEpTQzo6SlNWYWx1ZWAgdG8gYGNvbnZlcnRBbmRWYWxpZGF0ZUFw
cGxlUGF5UmVxdWVzdGAKKyAgICAgICAgc28gdGhhdCB0aGVyZSBpc24ndCBhIG5hbWluZyBjb25m
bGljdCBpbiBvdGhlciBmaWxlcyB0aGF0IG1heSB3YW50IHRvIGRvIGEgc2ltaWxhciB0aGluZy4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAg
IERyaXZlLWJ5OiBVbmlmaWVkIHNvdXJjZXMgZml4LgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAxICBEYW5pZWwgS29s
ZXNhICA8ZGtvbGVzYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIEZpeCBidWlsZCB3aXRoIEdDQyA4
LjQgb24gVWJ1bnR1IDE4LjA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU2Mzc1ODk5ZWU2YzE4OTZiNWJkOGJlOTcx
ODg1ZGM3NmExODNhYTAuLmU4N2RkNzg4ZTU3Zjc5NzkxNWI3MDM2OTkzYWEzYjE3NTM1OGRkM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBw
YXltZW50IG1ldGhvZCBmb3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzkwMjQyMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTGV2ZXJhZ2UgdGhlIFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFzIGEgd2F5IGZvciBBcHBs
ZSBkb21haW5zIHRvIHNob3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAgICBwYXltZW50IFVJcyB3
aXRob3V0IGhhdmluZyB0byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMgKGUuZy4gQXBwbGUgUGF5
IEpTKS4gVGhpcyBuZXcgcGF5bWVudAorICAgICAgICBtZXRob2QgaXMgcXVpdGUgYmFyZS1ib25l
cyBpbiB0aGF0IGl0IGp1c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNzZXMgaXQgdG8gQU1TLCB3
aGljaCB0aGVuCisgICAgICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHRoYXQu
IE5vIGRhdGEgaXMgZXhwb3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVyIHRoYW4gZWl0aGVyCisg
ICAgICAgIGFuIGVycm9yIG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIgdGhlIHBheW1lbnQgd2Fz
IHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdGFydEFw
cGxlUGF5QU1TVUlTZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgorICAgICAgICBBZGQgcGx1
bWJpbmcgYmV0d2VlbiBXZWJDb3JlL1dlYlByb2Nlc3MgYW5kIFVJUHJvY2Vzcy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFydEFwcGxlUGF5
QU1TVUlTZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWJv
cnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgorICAgICAgICBVc2UgQU1TIHRvIHByZXNl
bnQgVUkgZm9yIHRoZSBnaXZlbiBlbmdhZ2VtZW50IHJlcXVlc3QgZGF0YSBhbmQgb3JpZ2luYXRp
bmcgVVJMLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpVSUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9VSURl
bGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVzZW50aW5nVmlld0NvbnRy
b2xsZXIpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYC1bV0tVSURlbGVnYXRlUHJpdmF0ZSBf
cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzpdYCBvbiBtYWNPUyB0b28uCisKKyAg
ICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmg6IEFkZGVk
LgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNVSVNQSS5o
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMS0xMS0wMSAgRGFuaWVsIEtvbGVzYSAgPGRrb2xlc2FAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBGaXggYnVpbGQgd2l0aCBHQ0MgOC40IG9uIFVidW50dSAxOC4wNApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDQyYzE0NTAyMjg1Njk0
MWY4MzRiZjdmZDE3ZDkwNzZiMDZkNGJkNi4uYzRmYThlYzI2YWEyZmRmZmQ3OGQ4OWU5Y2JiNGFm
ZGM0OWNjMGYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0CkBAIC02OSw2ICs2OSw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UmVxdWVzdC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxl
UGF5QU1TVUlSZXF1ZXN0LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9h
cmQvQ2xpcGJvYXJkLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQv
Q2xpcGJvYXJkSXRlbS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJk
L05hdmlnYXRvcitDbGlwYm9hcmQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGYzMDQ4ZmVjY2YzYzQ2Yzg4YjUwZWQxNDQ3OTU5
Zjc0NmRmMjIyZmYuLjE3ZDkxNjU0ODdjZDc3ODZhOWExNjI1NTU3YWQzZTczNGMxOTA3OGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC03Niw2ICs3Niw4IEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9u
VGltZWxpbmUuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0FuaW1hdGlvblRpbWVsaW5lLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlBTVNVSVJlcXVlc3QuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5j
ZWxFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXBwbGVQYXlDYW5jZWxFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKaW5kZXggYmFhZGE3NjM2ZmJiOTNlNjI1NDcyZDc5ZWVlYmU2OGIxOGFkZmNi
Yi4uYWZhMmMwMTM3ZTQ4ZTJlM2UyNmVjN2JmM2YyY2RmYzJhOGNhMDAxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDEsNiArMTAxLDcgQEAgSlNfQklORElOR19JRExTIDo9
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNo
YW50RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsIFwKKyAgICAkKFdlYkNvcmUp
L01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBcCiAgICAg
JChXZWJDb3JlKS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW0uaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlwYm9hcmQu
aWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVp
L0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmNlNDRjNzc5ZjgyM2EyZTM4ZWY4MDYzZjRhYTQ1NWMyNTA4MjQ5ZmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5o
IgorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVF
U1QpCisKKyNpbmNsdWRlICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiSlNBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpT
RE9NQ29udmVydC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxp
ZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0
YS4iIH07CisKKyAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGNvbnRl
eHQudm0oKSk7CisgICAgYXV0byBhcHBsZVBheUFNU1VJUmVxdWVzdCA9IGNvbnZlcnREaWN0aW9u
YXJ5PEFwcGxlUGF5QU1TVUlSZXF1ZXN0PigqY29udGV4dC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7
CisgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisKKyAgICBpZiAoIWFwcGxlUGF5QU1TVUlS
ZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0LnN0YXJ0c1dpdGgoJ3snKSkKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdh
Z2VtZW50UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxl
IG9iamVjdCJfcyB9OworCisgICAgcmV0dXJuIFdURk1vdmUoYXBwbGVQYXlBTVNVSVJlcXVlc3Qp
OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YShEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAg
IGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNV
SVJlcXVlc3QoZG9jdW1lbnQsIGRhdGEpOworICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFz
RXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4
Y2VwdGlvbigpOworCisgICAgcmV0dXJuIHsgfTsKK30KKworYm9vbCBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGNvbnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRo
b2RJZGVudGlmaWVyJiBpZGVudGlmaWVyKQoreworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5h
dGl2ZTxVUkw+KGlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRv
JiB1cmwgPSBzdGQ6OmdldDxVUkw+KGlkZW50aWZpZXIpOworICAgIHJldHVybiB1cmwuaG9zdCgp
ID09ICJhcHBsZS5jb20iICYmIHVybC5wYXRoKCkgPT0gIi9hbXMtdWkiOworfQorCitib29sIEFw
cGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9j
dW1lbnQpCit7CisgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICByZXR1cm4g
cGFnZSAmJiBwYWdlLT5oYXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbigpOworfQorCit2b2lk
IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6ZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYgcmVzdWx0KQoreworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fcGF5bWVu
dFJlcXVlc3QtPnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9wYXltZW50UmVxdWVzdC0+YWNjZXB0KHN0ZDo6Z2V0PFVSTD4o
bV9pZGVudGlmaWVyKS5zdHJpbmcoKSwgW3N1Y2Nlc3MgPSAqcmVzdWx0XSAoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCkgLT4gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVj
dD4geworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgJmxleGljYWxHbG9iYWxPYmpl
Y3QgfTsKKworICAgICAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsK
KyAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAg
ICAgICAgYXV0byogb2JqZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJmxleGljYWxHbG9iYWxP
YmplY3QpOworICAgICAgICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHZtLCAic3VjY2VzcyIpLCBKU0M6OmpzQm9vbGVhbihzdWNjZXNzKSk7CisKKyAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworCisgICAgICAgIHJl
dHVybiB7IHZtLCBvYmplY3QgfTsKKyAgICB9KTsKK30KKworQXBwbGVQYXlBTVNVSVBheW1lbnRI
YW5kbGVyOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBj
b25zdCBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYgaWRlbnRpZmllciwgUGF5bWVu
dFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2
ZXIgeyAmZG9jdW1lbnQgfQorICAgICwgbV9pZGVudGlmaWVyIHsgaWRlbnRpZmllciB9CisgICAg
LCBtX3BheW1lbnRSZXF1ZXN0IHsgcGF5bWVudFJlcXVlc3QgfQoreworICAgIEFTU0VSVChoYW5k
bGVzSWRlbnRpZmllcihtX2lkZW50aWZpZXIpKTsKK30KKworRG9jdW1lbnQmIEFwcGxlUGF5QU1T
VUlQYXltZW50SGFuZGxlcjo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIEFTU0VSVChpczxEb2N1
bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERv
Y3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworUGFnZSYgQXBwbGVQYXlB
TVNVSVBheW1lbnRIYW5kbGVyOjpwYWdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQo
KS5wYWdlKCkpOworICAgIHJldHVybiAqZG9jdW1lbnQoKS5wYWdlKCk7Cit9CisKK0V4Y2VwdGlv
bk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEoSlNDOjpK
U1ZhbHVlIGRhdGEpCit7CisgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5k
VmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBk
YXRhKTsKKyAgICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gcmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIG1f
YXBwbGVQYXlBTVNVSVJlcXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZh
bHVlKCk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlB
TVNVSVBheW1lbnRIYW5kbGVyOjpzaG93KERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBBU1NF
UlQobV9hcHBsZVBheUFNU1VJUmVxdWVzdCk7CisKKyAgICBpZiAoIXBhZ2UoKS5zdGFydEFwcGxl
UGF5QU1TVUlTZXNzaW9uKGRvY3VtZW50LCAqdGhpcywgKm1fYXBwbGVQYXlBTVNVSVJlcXVlc3Qp
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9OworCisgICAgcmV0dXJu
IHsgfTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUoKQorewor
ICAgIHBhZ2UoKS5hYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCp0aGlzKTsKK30KKwordm9pZCBB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1
bWVudCwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBh
dXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2Ug
JiYgIXBhZ2UtPmhhc0FjdGl2ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCkpOworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNVcGRhdGVkKFBh
eW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24sIFN0cmluZyYmIC8qIGVycm9yICovLCBBZGRyZXNz
RXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogLyogcGF5bWVudE1l
dGhvZEVycm9ycyAqLykKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBzaGlwcGluZy9wYXltZW50
IGluZm8iKTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXI6Om1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpT
VmFsdWUmJiAvKiBtZXJjaGFudFNlc3Npb25WYWx1ZSAqLykKK3sKKyAgICBBU1NFUlRfTk9UX1JF
QUNIRURfV0lUSF9NRVNTQUdFKCJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgZG9lcyBub3Qg
bmVlZCBtZXJjaGFudCB2YWxpZGF0aW9uIik7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVu
dENvbXBsZXRlPiYmKQoreworICAgIGhpZGUoKTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBw
bGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYm
KQoreworICAgIHJldHVybiBzaG93KGRvY3VtZW50KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9S
RVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMt
dWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40NDc0NjkxY2EzZjE5YTU5MDUyNjAxMTVjZjQzY2RhODM0Yjc4NmQxCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JF
UVVFU1QpCisKKyNpbmNsdWRlICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNp
bmNsdWRlICJQYXltZW50SGFuZGxlci5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCisj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIEpTQyB7CitjbGFzcyBKU09iamVjdDsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitzdHJ1Y3QgQWRk
cmVzc0Vycm9yczsKK3N0cnVjdCBQYXllckVycm9yRmllbGRzOworCitlbnVtIGNsYXNzIFBheW1l
bnRDb21wbGV0ZTsKKworY2xhc3MgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyIGZpbmFsIDog
cHVibGljIFBheW1lbnRIYW5kbGVyLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVEYXRhKERv
Y3VtZW50JiwgSlNDOjpKU1ZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBoYW5kbGVzSWRlbnRpZmll
cihjb25zdCBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBi
b29sIGhhc0FjdGl2ZVNlc3Npb24oRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZmluaXNoU2Vzc2lv
bihzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQ
YXltZW50SGFuZGxlcjsKKyAgICBleHBsaWNpdCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIo
RG9jdW1lbnQmLCBjb25zdCBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYsIFBheW1l
bnRSZXF1ZXN0Jik7CisKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKKyAgICBQYWdl
JiBwYWdlKCkgY29uc3Q7CisKKyAgICAvLyBQYXltZW50SGFuZGxlcgorICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IGNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSkgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2hvdyhEb2N1bWVudCYpIGZpbmFsOworICAgIGJvb2wgY2FuQWJvcnRTZXNzaW9uKCkg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIGhpZGUoKSBmaW5hbDsKKyAgICB2b2lk
IGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQo
UGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJv
cnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJy
b3JzKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21w
bGV0ZWQoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRp
b25hbDxQYXltZW50Q29tcGxldGU+JiYpIGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJl
dHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYpIGZpbmFsOworCisgICAgUGF5bWVudFJlcXVl
c3Q6Ok1ldGhvZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxQYXltZW50UmVxdWVz
dD4gbV9wYXltZW50UmVxdWVzdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5QU1TVUlSZXF1
ZXN0PiBtX2FwcGxlUGF5QU1TVUlSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVT
VCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0Fw
cGxlUGF5QU1TVUlSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0M2E3ZTQ1NDU5NmVmMDY1
M2NkYzYxMGNkZGZmNDZkOGY3Zjk0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9Q
QVlfQU1TX1VJKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSA8b3B0aW9u
YWw+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdCB7
CisgICAgU3RyaW5nIGVuZ2FnZW1lbnRSZXF1ZXN0OyAvLyByZXF1aXJlZCBKU09OCisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNV
SVJlcXVlc3Q+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0Cit7CisgICAgZW5jb2RlciA8PCBlbmdhZ2VtZW50UmVxdWVzdDsKK30KKwordGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IEFwcGxl
UGF5QU1TVUlSZXF1ZXN0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gZW5nYWdlbWVudFJlcXVlc3Q7CisgICAgZGVjb2RlciA+PiBlbmdhZ2Vt
ZW50UmVxdWVzdDsKKyAgICBpZiAoIWVuZ2FnZW1lbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCplbmdhZ2VtZW50UmVxdWVz
dCkgfSB9OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1
ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlSZXF1ZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTM4ZTBmZGJjMDdlOTQ1Y2Y0YzkwMTYwNTBi
MGI5MDc2NTZhZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0FNU19VSSZQQVlNRU5U
X1JFUVVFU1QsCitdIGRpY3Rpb25hcnkgQXBwbGVQYXlBTVNVSVJlcXVlc3QgeworICAgIHJlcXVp
cmVkIEpTT04gZW5nYWdlbWVudFJlcXVlc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29h
Lm1tCmluZGV4IDg3Mjc2ZTg1MzU0YTA5N2U2MGI1OGRkYjBiNThkNzY0Y2VmZjkwYjkuLmNkYTAz
ODk3Yjc4MzFmOTc2MGU4YWJiNmI0ZGNmNzNlNTlkN2I0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJz
aW9uQ29jb2EubW0KQEAgLTM1LDcgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWdu
ZWQgUGF5bWVudEFQSVZlcnNpb246OmN1cnJlbnQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBj
dXJyZW50ID0gW10gewotI2lmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpIHx8IEVOQUJM
RShBUFBMRV9QQVlfU0hJUFBJTkdfQ09OVEFDVF9FRElUSU5HX01PREUpIHx8IEVOQUJMRShBUFBM
RV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9M
SU5FX0lURU0pIHx8IEVOQUJMRShBUFBMRV9QQVlfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9O
RU5UU19SQU5HRSkKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKSB8
fCBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICAgICAgcmV0dXJuIDEzOworI2VsaWYgRU5B
QkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19D
T05UQUNUX0VESVRJTkdfTU9ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9J
VEVNKSB8fCBFTkFCTEUoQVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQ
UExFX1BBWV9TSElQUElOR19NRVRIT0RfREFURV9DT01QT05FTlRTX1JBTkdFKQogICAgICAgICBy
ZXR1cm4gMTI7CiAjZWxpZiBFTkFCTEUoQVBQTEVfUEFZX1NFU1NJT05fVjExKQogICAgICAgICBy
ZXR1cm4gMTE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNw
cAppbmRleCA1MzBhYzkyMmUyMzA2NWQ5NGFjNDliNGIxZTU1ODYxMGVmODQ0MGQ3Li4xMDY0YjU3
Zjg1OTdmZjYwYWE3OTcxNjIwZWU2NWNmNDdhNTRjM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVl
c3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252
ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1Zh
bHVlIGRhdGEpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5k
VmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
SlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRh
LiIgfTsKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVz
dD4gY29udmVydEFuZFZhbGlkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGMKIAogRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50
JiBkb2N1bWVudCwgSlNDOjpKU1ZhbHVlIGRhdGEpCiB7Ci0gICAgYXV0byByZXF1ZXN0T3JFeGNl
cHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIGRhdGEpOworICAgIGF1dG8gcmVx
dWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KGRvY3Vt
ZW50LCBkYXRhKTsKICAgICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICByZXR1cm4gcmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIApA
QCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBwaW5nTWV0
aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwCiAKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBk
YXRhKQogewotICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRl
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhj
ZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGRhdGEpOwogICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlv
bigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4
IDdiZmVjZmU5NTVlMDhjNTlhN2M4YjJkOGVjNDE4OTM3YTlhM2RlZWYuLjk3MzE0MThjNTU3ZTZm
ZTE3NGY2Mzg0OTRkMzQ1NjEwMjliMGE1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQ
YXlQYXltZW50SGFuZGxlci5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gUGF5
bWVudEhhbmRsZXIKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFs
dWUpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSBmaW5hbDsK
KyAgICBib29sIGNhbkFib3J0U2Vzc2lvbigpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
b2lkIGhpZGUoKSBmaW5hbDsKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVu
Y3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0
aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwg
U3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6
OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDI4MDk5MjVmNWQy
MWYzZTNmMzQ3N2ExZTQ1MjQzODUwNzg1ZDRmYWQuLjUyMGMwNzc1Njk2YTJmMGUyZTczMDA3MzVl
OGM5Nzc0OTVmMWE2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNv
dXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgi
CiAjaW5jbHVkZSAiVmlkZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxw
ZXIuaD4KKyNpbmNsdWRlIDx3dGYvT2JzZXJ2ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudEhhbmRsZXIuY3BwCmluZGV4IGY1NWRhMjVjNjBmNTAzOGJlODlmMjg2YjdjMTAxODJjZDkx
MGQ2NmEuLjkxYzk0YTcwODE4YThkY2RkOGI5NDEyMWI0MDBkNGU3NzExYzA5YjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhh
bmRsZXIuY3BwCkBAIC0yNiwxMSArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJQYXltZW50SGFuZGxlci5oIgogCi0jaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKLQot
I2lmIEVOQUJMRShBUFBMRV9QQVkpCisjaW5jbHVkZSAiQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50SGFuZGxlci5oIgotI2VuZGlmCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5
LDEyICszOCwxNiBAQCBSZWZQdHI8UGF5bWVudEhhbmRsZXI+IFBheW1lbnRIYW5kbGVyOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXltZW50UmVxdWVzdAogI2lmIEVOQUJMRShBUFBMRV9Q
QVkpCiAgICAgaWYgKEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlk
ZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxlUGF5UGF5bWVudEhh
bmRsZXIoZG9jdW1lbnQsIGlkZW50aWZpZXIsIHBheW1lbnRSZXF1ZXN0KSk7Ci0jZWxzZQorI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBpZiAoQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyOjpoYW5kbGVzSWRlbnRpZmllcihpZGVudGlmaWVyKSkKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoZG9jdW1lbnQs
IGlkZW50aWZpZXIsIHBheW1lbnRSZXF1ZXN0KSk7CisjZW5kaWYKKwogICAgIFVOVVNFRF9QQVJB
TShkb2N1bWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKHBheW1lbnRSZXF1ZXN0KTsKICAgICBVTlVT
RURfUEFSQU0oaWRlbnRpZmllcik7Ci0jZW5kaWYKLQogICAgIHJldHVybiBudWxscHRyOwogfQog
CkBAIC02NiwxMiArNjksMTYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YShEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZQogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAgICAgaWYgKEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlm
aWVyKGlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
dmFsaWRhdGVEYXRhKGRvY3VtZW50LCBkYXRhKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIEVOQUJM
RShBUFBMRV9QQVlfQU1TX1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6
OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gQXBwbGVQYXlB
TVNVSVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEoZG9jdW1lbnQsIGRhdGEpOworI2VuZGlm
CisKICAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTShkYXRhKTsK
ICAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Ci0jZW5kaWYKLQogICAgIHJldHVybiB7IH07
CiB9CiAKQEAgLTg4LDExICs5NSwxNyBAQCBib29sIFBheW1lbnRIYW5kbGVyOjplbmFibGVkRm9y
Q29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogYm9vbCBQYXltZW50SGFu
ZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxF
KEFQUExFX1BBWSkKLSAgICByZXR1cm4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZl
U2Vzc2lvbihkb2N1bWVudCk7Ci0jZWxzZQorICAgIGlmIChBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpoYXNBY3RpdmVTZXNzaW9uKGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5k
aWYKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2ZVNlc3Npb24oZG9jdW1lbnQpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyNlbmRpZgorCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICByZXR1
cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5o
CmluZGV4IDdmODZlYmQwZjI3MGZhNjMzNmMwMmQ4N2Q1ZjQ0Yzg3NTI2NjlhN2EuLmFmNDYzNTgx
ZDYxYWU1MzNkMzVkYjFmODBkZDZmNTRhNmM2MWE1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKQEAgLTUyLDYg
KzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0
RGF0YShKU0M6OkpTVmFsdWUpID0gMDsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNo
b3coRG9jdW1lbnQmKSA9IDA7CisgICAgdmlydHVhbCBib29sIGNhbkFib3J0U2Vzc2lvbigpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuTWFr
ZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKSA9IDA7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQ
YXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9y
cyYmLCBQYXllckVycm9yRmllbGRzJiYsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJv
cnMpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggMDYzY2ZmN2UwOTA3YjVlMzdjNGZmMjQxNDA0
ZDhkM2I5MzgxMmJkYi4uNWIxZGM3ODliMzRlOTE3YTI5MzNlZDVmYTYzMGFlYTZjODcwNGUzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5jcHAKQEAgLTQ5NCw2ICs0OTQsMTEgQEAgdm9pZCBQYXltZW50UmVxdWVz
dDo6YWJvcnQoQWJvcnRQcm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAorICAgIGlmIChtX2FjdGl2ZVBheW1lbnRIYW5kbGVyICYmICFhY3RpdmVQYXltZW50SGFuZGxl
cigpLT5jYW5BYm9ydFNlc3Npb24oKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgIHByb21p
c2UucmVzb2x2ZSgpOwogfQpAQCAtNjk3LDYgKzcwMiwzNSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0
Ojp3aGVuRGV0YWlsc1NldHRsZWQoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAg
ICAgfSk7CiB9CiAKK3ZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1l
dGhvZE5hbWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0
aW9uKQoreworICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9
PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOworCisgICAgYm9vbCBpc1JldHJ5ID0gbV9yZXNwb25zZTsK
KyAgICBpZiAoIWlzUmV0cnkpIHsKKyAgICAgICAgbV9yZXNwb25zZSA9IFBheW1lbnRSZXNwb25z
ZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpOworICAgICAgICBtX3Jl
c3BvbnNlLT5zZXRSZXF1ZXN0SWQobV9kZXRhaWxzLmlkKTsKKyAgICB9CisKKyAgICBtX3Jlc3Bv
bnNlLT5zZXRNZXRob2ROYW1lKG1ldGhvZE5hbWUpOworICAgIG1fcmVzcG9uc2UtPnNldERldGFp
bHNGdW5jdGlvbihXVEZNb3ZlKGRldGFpbHNGdW5jdGlvbikpOworICAgIG1fcmVzcG9uc2UtPnNl
dFNoaXBwaW5nQWRkcmVzcyhudWxscHRyKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRTaGlwcGluZ09w
dGlvbihudWxsU3RyaW5nKCkpOworICAgIG1fcmVzcG9uc2UtPnNldFBheWVyTmFtZShudWxsU3Ry
aW5nKCkpOworICAgIG1fcmVzcG9uc2UtPnNldFBheWVyRW1haWwobnVsbFN0cmluZygpKTsKKyAg
ICBtX3Jlc3BvbnNlLT5zZXRQYXllclBob25lKG51bGxTdHJpbmcoKSk7CisKKyAgICBpZiAoIWlz
UmV0cnkpCisgICAgICAgIHNldHRsZVNob3dQcm9taXNlKCptX3Jlc3BvbnNlKTsKKyAgICBlbHNl
IHsKKyAgICAgICAgQVNTRVJUKG1fcmVzcG9uc2UtPmhhc1JldHJ5UHJvbWlzZSgpKTsKKyAgICAg
ICAgbV9yZXNwb25zZS0+c2V0dGxlUmV0cnlQcm9taXNlKCk7CisgICAgfQorCisgICAgbV9zdGF0
ZSA9IFN0YXRlOjpDbG9zZWQ7Cit9CisKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25z
dCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYg
ZGV0YWlsc0Z1bmN0aW9uLCBSZWY8UGF5bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBj
b25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3RyaW5nJiBwYXllckVtYWlsLCBjb25zdCBT
dHJpbmcmIHBheWVyUGhvbmUpCiB7CiAgICAgQVNTRVJUKCFtX2lzVXBkYXRpbmcpOwpAQCAtNzI2
LDYgKzc2MCwxMSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjphY2NlcHQoY29uc3QgU3RyaW5nJiBt
ZXRob2ROYW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNGdQogICAgIG1fc3RhdGUgPSBTdGF0
ZTo6Q2xvc2VkOwogfQogCit2b2lkIFBheW1lbnRSZXF1ZXN0OjpyZWplY3QoRXhjZXB0aW9uJiYg
ZXhjZXB0aW9uKQoreworICAgIGFib3J0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlvbikp
OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6Y29tcGxldGUoc3RkOjpv
cHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQogewogICAgIEFTU0VSVChtX3N0YXRl
ID09IFN0YXRlOjpDbG9zZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4IDE5MTU5NzY5MDk4MTY0NDNkY2Q2
ZDNkY2IyZGVkOGY0MmQ3OTk3YWQuLmViYmQ1NDI2YTU3OGI3Yjc1NzkyM2MwMzZkOWIxNGUxN2Q1
NDY3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTk2LDcgKzk2LDkgQEAgcHVibGljOgogICAgIHZvaWQg
cGF5bWVudE1ldGhvZENoYW5nZWQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50TWV0
aG9kQ2hhbmdlRXZlbnQ6Ok1ldGhvZERldGFpbHNGdW5jdGlvbiYmKTsKICAgICBFeGNlcHRpb25P
cjx2b2lkPiB1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbiwgUmVmPERPTVByb21pc2U+JiYpOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiwgUmVm
PERPTVByb21pc2U+JiYpOworICAgIHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFt
ZSwgUGF5bWVudFJlc3BvbnNlOjpEZXRhaWxzRnVuY3Rpb24mJik7CiAgICAgdm9pZCBhY2NlcHQo
Y29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNGdW5jdGlv
biYmLCBSZWY8UGF5bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcm
IHBheWVyTmFtZSwgY29uc3QgU3RyaW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVy
UGhvbmUpOworICAgIHZvaWQgcmVqZWN0KEV4Y2VwdGlvbiYmKTsKICAgICBFeGNlcHRpb25Pcjx2
b2lkPiBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gcmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJik7CiAgICAgdm9p
ZCBjYW5jZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtl
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggMjRmMWFjYmNkMDdiYWI5
YmJkY2U1MzVlMWZhZDljY2U0MWUzNGI0Zi4uNDg0MDI5ZDFjYjlhNmQ3NDczZGMyNWYxNjA1Mzc4
NDAxOTg2MzljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTU5MCw2ICs1OTAsNyBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0
Zm9ybS9jb2NvYS9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2Nv
Y29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9Q
bGF0Zm9ybVZpZXcuaAorICAgIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIu
aAogICAgIHBsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsLmgKICAgICBwbGF0Zm9y
bS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCiAgICAgcGxhdGZvcm0v
Y29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5oCkBAIC03OTUsNiArNzk2LDggQEAgbGlzdChBUFBF
TkQgV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVJlcXVlc3QuaWRsCiAKKyAgICBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUmVxdWVzdC5pZGwKKwogICAgIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVn
aW5SZXBsYWNlbWVudC5pZGwKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggODdiMDlh
MjlmOTc4ODc1ZWQ4YTA1M2ZhZDU1NDFkZTQ5NmEyMTFkZS4uMGQzNDM4ZTg3Y2U5ZDdhNGM0OTVi
ZjE3ZDQ2MjA3NDgwMDY2ZjQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMSw2ICsy
MSw3IEBACiAvLyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAKK0pTQXBwbGVQYXlBTVNVSVJlcXVlc3QuY3BwCiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQu
Y3BwCiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFu
Z2VkRXZlbnQuY3BwCkBAIC05Niw2ICs5Nyw3IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5
bWVudE1ldGhvZENvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTZXNzaW9u
RXJyb3JDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1z
Q29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50
SGFuZGxlci5jcHAKK01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5jcHAKIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL2lvcy9DbGlwYm9hcmRJbWFnZVJl
YWRlcklPUy5tbQogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvbWFjL0NsaXBib2FyZEltYWdlUmVh
ZGVyTWFjLm1tCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29j
b2EuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggODQwYTRlM2IzN2YxMzE3YzgwN2QwNDM1YTE2ODZhZTcxMmUzMjM1My4uNGRj
MjZjODg0ZDMzMjhlZGQzYTUzZjE5ZDQ1YzRhMTA2MmU5MmYyNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzA1Nyw2ICszMDU3
LDcgQEAKIAkJOTU5NkI5MzgyNURFRUYwMzAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2Rl
Q2hhbmdlZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NTk2QjkzNjI1REVFRjAyMDBFRDJDRkEgLyogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFu
Z2VkRXZlbnQuaCAqLzsgfTsKIAkJOTVBMUUyRTkyNUNDNzVBOTAwMjY4QzhFIC8qIE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29u
dGV4dE1lbnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTVBQTU3MTAyNUVFRUQzMjAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxU
cmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
QUE1NzBFMjVFRUVEMzEwMDRFOTI4MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggKi87
IH07CisJCTk1QkE0RkFEMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUJBNEZB
QjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1REY5RDI1MjUyQkVEQjIw
MDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9p
bnRlckNoYXJhY3RlcmlzdGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk1RUFENTYzMjY2RUYyREIwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBv
bkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk1RUFENTVGMjY2RUYyREEwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVD
aGFuZ2VkRXZlbnQuaCAqLzsgfTsKIAkJOTVFQUQ1NkEyNjZFRjJGQTAwNEI5Q0YxIC8qIEFwcGxl
UGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTVFQUQ1NjYyNjZFRjJGODAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNv
bXBvbmVudHNSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0zMDczLDYgKzMwNzQsOCBAQAogCQk5NUVBRDU5NDI2NkVGNUQ0MDA0QjlDRjEg
LyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFQzFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBh
eVBheW1lbnRSZXF1ZXN0LmggKi87IH07CiAJCTk1RUFENTk3MjY2RUY2MEIwMDRCOUNGMSAvKiBK
U0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFENTk1MjY2RUY2MDkwMDRCOUNGMSAvKiBK
U0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUuaCAqLzsgfTsKIAkJOTVGNDVEMjcy
NjRERkJGMTAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RjQ1RDI2MjY0REZCRUIwMEQwQjhCOCAvKiBQ
YWdlQ29sb3JTYW1wbGVyLmggKi87IH07CisJCTk1RkI2NjI1MjZENzAzM0MwMDY4QUM2NyAvKiBB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1RkI2NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuaCAqLzsgfTsKKwkJOTVGQjY2MjYyNkQ3MDMzQzAwNjhBQzY3IC8q
IEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUZCNjYyMjI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJl
cXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUw
QTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZh
Y2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBC
NzI4OTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAw
QTM3IC8qIEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICov
OyB9OwpAQCAtMTIyMzcsNiArMTIyNDAsNyBAQAogCQk5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUg
LyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk1QUE1NzBEMjVFRUVEMzAwMDRFOTI4MyAvKiBJbnNwZWN0b3JDYW52
YXNDYWxsVHJhY2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElu
c3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NUFBNTcwRTI1RUVFRDMxMDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNDYWxsVHJh
Y2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1QkE0RkFCMjZEOTgxQUEwMDJB
MEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3Rp
Y3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NUVBRDU1RjI2NkVGMkRBMDA0QjlDRjEgLyogQXBwbGVQYXlD
b3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUVBRDU2MTI2NkVGMkRBMDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hh
bmdlZEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUNvdXBvbkNvZGVD
aGFuZ2VkRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyNjcsNiAr
MTIyNzEsMTAgQEAKIAkJOTVFQUQ1OTYyNjZFRjYwQTAwNEI5Q0YxIC8qIEpTQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RFZGl0aW5nTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NUY0NUQyNDI2NERGQkVCMDBEMEI4QjggLyogUGFnZUNv
bG9yU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29sb3JTYW1wbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVGNDVEMjYyNjRERkJFQjAwRDBCOEI4IC8q
IFBhZ2VDb2xvclNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNvbG9yU2FtcGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NUZCNjYyMDI2RDcwMzNCMDA2OEFDNjcgLyog
QXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5
QU1TVUlSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVGQjY2MjEy
NkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVGQjY2MjIyNkQ3MDMzQjAwNjhBQzY3IC8q
IEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
RkI2NjIzMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5NzUxMDdE
OTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJm
YWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFdmVudEludGVyZmFjZXMu
aDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJj
ZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0xODY0NCwxMSArMTg2NTIsMTEgQEAK
IAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUE1NjlDRTIwRDdFMkI4MjAwN0MzOTgzIC8q
IG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRnZS5oICovLAog
CQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNwcCAqLywKIAkJ
CQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICovLAogCQkJCTU5
QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCi0JCQkJMUE1NjlDRTIwRDdFMkI4MjAw
N0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJMUE1NjlDRUYwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRp
bWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3RTJCODIwMDdDMzk4MyAvKiBydW50aW1l
X2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0
aG9kLmNwcCAqLywKQEAgLTI0NDIzLDExICsyNDQzMSwyMyBAQAogCQkJbmFtZSA9IHBhcnNlcjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTk1RkI2NjFGMjZENzAzM0IwMDY4
QUM2NyAvKiBhcHBsZXBheS1hbXMtdWkgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNo
aWxkcmVuID0gKAorCQkJCTk1RkI2NjIzMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXIuY3BwICovLAorCQkJCTk1RkI2NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCAqLywKKwkJCQk5NUZCNjYyMjI2RDcwMzNCMDA2
OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCAqLywKKwkJCQk5NUZCNjYyMDI2RDcwMzNC
MDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsICovLAorCQkJKTsKKwkJCXBhdGgg
PSAiYXBwbGVwYXktYW1zLXVpIjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1bGVzICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDRTI2MTY5RDE4N0U2NTU0MDA3OTU1RjMgLyog
YWlycGxheSAqLywKIAkJCQkxQTU4RTg2MTFEMTlEMzczMDBDMEVBNzMgLyogYXBwbGVwYXkgKi8s
CisJCQkJOTVGQjY2MUYyNkQ3MDMzQjAwNjhBQzY3IC8qIGFwcGxlcGF5LWFtcy11aSAqLywKIAkJ
CQk2M0JENEE1QzFGNzc4RTg0MDA0Mzg3MjIgLyogYXBwbGljYXRpb25tYW5pZmVzdCAqLywKIAkJ
CQlGNDQwRTc2QTIzM0Q5M0M4MDA2M0Y5QUIgLyogYXN5bmMtY2xpcGJvYXJkICovLAogCQkJCTgz
MjE1MDc5MUYyN0U5NkIwMDk1QjEzNiAvKiBiZWFjb24gKi8sCkBAIC0yNTIxMiw2ICsyNTIzMiw3
IEBACiAJCQkJRjRGQjM1MDAyMzUwQzk2MjAwRjAwOTRBIC8qIFBhc3RlYm9hcmRDdXN0b21EYXRh
Q29jb2EubW0gKi8sCiAJCQkJRjQ2MjhBOUUyMzREM0JCRjAwQkM4ODRDIC8qIFBsYXRmb3JtUGFz
dGVib2FyZENvY29hLm1tICovLAogCQkJCTUyQjBENEJEMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0
Zm9ybVZpZXcuaCAqLywKKwkJCQk5NUJBNEZBQjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1W
aWV3Q29udHJvbGxlci5oICovLAogCQkJCUNEQTI5QTBBMUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5
YmFja1Nlc3Npb25Nb2RlbC5oICovLAogCQkJCUNEQTI5QTBEMUNCRDlDRkUwMDkwMUNDRiAvKiBQ
bGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oICovLAogCQkJCUNEQTI5QTBDMUNCRDlD
RkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5tbSAqLywKQEAg
LTMxNjkyLDYgKzMxNzEzLDggQEAKIAkJCQk0NDUyMTBERjI1RDYxRjAwMDAzQTJFRDggLyogQXBw
SGlnaGxpZ2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NEFFMDQ1QzI1NzlDRkZCMDBDNDJFNjUg
LyogQXBwSGlnaGxpZ2h0UmFuZ2VEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDI1MDcwOTI1
ODI5QTI3MDBDMDkzNjggLyogQXBwSGlnaGxpZ2h0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTVGQjY2MjUyNkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVGQjY2MjYyNkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxl
UGF5QU1TVUlSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTEzRTAyRTIzMzFBMTM0MDA5
QzMzQTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVB
OTQxRjdFQzQzMjAwNThBNDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5NUVBRDU2MzI2NkVGMkRCMDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hh
bmdlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM0ODI2LDYgKzM0ODQ5LDcgQEAKIAkJCQkw
RjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxhdGZvcm1UZXh0VHJhY2suaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9y
bVZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1QkE0RkFEMjZEOTgxQUEwMDJBMEU2MiAvKiBQ
bGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVDNDc2QjA5QUM0
RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlF
MUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZvcm1YUi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTI3M0NDNzcyNTYxMDNDRjAwODUwMDA3IC8qIFBsYXRmb3JtWFJDb2NvYS5oIGluIEhlYWRl
cnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAyM2E1OGJmOGI4M2NlMmY1
NmJlMDIxNjJkYjU3ODRiYTczODFmM2UwLi41ZjZkNWI0ZjJlYzUwZWIxNzI2Mzk5OTA5NmQ3NWNm
MTUzNTk3MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyNCw2ICsxMjQs
NyBAQCBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFj
azsKICNlbmRpZgogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0Oworc3RydWN0IEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0Owogc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVM
aXN0UmVzdWx0czsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JFbGVtZW50SW5mbzsKQEAgLTYxMSw2ICs2
MTIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQ
cmV2aWV3KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKSBjb25zdCB7IH07CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIHZpcnR1YWwgdm9pZCBzdGFydEFwcGxlUGF5
QU1TVUlTZXNzaW9uKGNvbnN0IFVSTCYsIGNvbnN0IEFwcGxlUGF5QU1TVUlSZXF1ZXN0JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpIHsgfQorI2VuZGlmCisKIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSA9IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKaW5kZXggODE0NmNiNTlmY2I3MWM3MTBlNmY3MjJhYzZkNWNlNTU5ZjY0OTMzNy4uOTk5
MjlmMDkwMWI4ZDk2ZmM4NzVmY2RhZTY3ZjVjY2Y4NmZmMWI4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiQWx0ZXJuYXRpdmVUZXh0Q2xpZW50LmgiCiAj
aW5jbHVkZSAiQW5pbWF0aW9uRnJhbWVSYXRlLmgiCiAjaW5jbHVkZSAiQXBwSGlnaGxpZ2h0U3Rv
cmFnZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDYWNoZS5oIgpAQCAtMzQ4NCw2ICsz
NDg1LDQyIEBAIHZvaWQgUGFnZTo6c2V0UGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0
cjxQYXltZW50Q29vcmRpbmF0b3I+JiYgcGF5bWVudENvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShBUFBMRV9QQVlfQU1TX1VJKQorCitib29sIFBhZ2U6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Np
b24oRG9jdW1lbnQmIGRvY3VtZW50LCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXImIHBheW1l
bnRIYW5kbGVyLCBjb25zdCBBcHBsZVBheUFNU1VJUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBp
ZiAoaGFzQWN0aXZlQXBwbGVQYXlBTVNVSVNlc3Npb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgbV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgPSAmcGF5bWVudEhh
bmRsZXI7CisKKyAgICBjaHJvbWUoKS5jbGllbnQoKS5zdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9u
KGRvY3VtZW50LnVybCgpLCByZXF1ZXN0LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
cGF5bWVudEhhbmRsZXJQdHIgPSAmcGF5bWVudEhhbmRsZXJdIChzdGQ6Om9wdGlvbmFsPGJvb2w+
JiYgcmVzdWx0KSB7CisgICAgICAgIGF1dG8gc3Ryb25nVGhpcyA9IHdlYWtUaGlzLmdldCgpOwor
ICAgICAgICBpZiAoIXN0cm9uZ1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
aWYgKHBheW1lbnRIYW5kbGVyUHRyICE9IHN0cm9uZ1RoaXMtPm1fYWN0aXZlQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChhdXRv
IGFjdGl2ZVBheW1lbnRIYW5kbGVyID0gc3RkOjpleGNoYW5nZShzdHJvbmdUaGlzLT5tX2FjdGl2
ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgICAgICBhY3Rp
dmVQYXltZW50SGFuZGxlci0+ZmluaXNoU2Vzc2lvbihXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0p
OworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBhZ2U6OmFib3J0QXBwbGVQYXlBTVNVSVNl
c3Npb24oQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyJiBwYXltZW50SGFuZGxlcikKK3sKKyAg
ICBpZiAoJnBheW1lbnRIYW5kbGVyICE9IG1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBjaHJvbWUoKS5jbGllbnQoKS5hYm9ydEFwcGxl
UGF5QU1TVUlTZXNzaW9uKCk7CisKKyAgICBpZiAoYXV0byBhY3RpdmVQYXltZW50SGFuZGxlciA9
IHN0ZDo6ZXhjaGFuZ2UobV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIsIG51bGxw
dHIpKQorICAgICAgICBhY3RpdmVQYXltZW50SGFuZGxlci0+ZmluaXNoU2Vzc2lvbihzdGQ6Om51
bGxvcHQpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTl9DT09SRElOQVRPUikKIHZvaWQgUGFnZTo6c2V0TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBtZWRp
YVNlc3Npb25Db29yZGluYXRvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMjYzN2EyOWRiZjU0YjM4
ZjljZDYyOGNlZWY4MWUyZWQ3YTMwYTA1Yi4uMWRlY2FmZWY0ZGJiYTc1Y2RlOTJiMDk0MjU3OGE0
YTQ0ZDRjZmQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTkxLDYgKzkxLDcgQEAgbmFtZXNwYWNlIElE
QkNsaWVudCB7CiBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXI7CiB9CiAKK2NsYXNzIEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjsKIGNsYXNzIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZl
cjsKIGNsYXNzIEFsdGVybmF0aXZlVGV4dENsaWVudDsKIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOwpAQCAtMTY3LDYgKzE2OCw3IEBAIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogY2xh
c3MgV2hlZWxFdmVudERlbHRhRmlsdGVyOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwog
CitzdHJ1Y3QgQXBwbGVQYXlBTVNVSVJlcXVlc3Q7CiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiBzdHJ1
Y3QgVGV4dFJlY29nbml0aW9uUmVzdWx0OwogCkBAIC01NDEsNiArNTQzLDEyIEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFBheW1lbnRDb29yZGluYXRvcihzdGQ6OnVuaXF1
ZV9wdHI8UGF5bWVudENvb3JkaW5hdG9yPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExF
X1BBWV9BTVNfVUkpCisgICAgYm9vbCBoYXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOyB9CisgICAg
Ym9vbCBzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKERvY3VtZW50JiwgQXBwbGVQYXlBTVNVSVBh
eW1lbnRIYW5kbGVyJiwgY29uc3QgQXBwbGVQYXlBTVNVSVJlcXVlc3QmKTsKKyAgICB2b2lkIGFi
b3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyJik7Cisj
ZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yJiBhdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IoKSB7IHJldHVybiBtX2F1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5nZXQoKTsgfQogI2VuZGlmCkBAIC0xMTg3LDYgKzExOTUsMTAgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudENvb3JkaW5hdG9yPiBtX3BheW1lbnRDb29y
ZGluYXRvcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgUmVm
UHRyPEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcj4gbV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI7CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgVW5pcXVl
UmVmPEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcj4gbV9hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRm
b3JtVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRm
b3JtVmlld0NvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzJjZDQ0ZjVlNDcxNTRkMzAzMjNhM2Nh
MmVjNjU0ZmJmOTYwZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3Jt
Vmlld0NvbnRyb2xsZXJfaAorI2RlZmluZSBQbGF0Zm9ybVZpZXdDb250cm9sbGVyX2gKKworI2lm
IFBMQVRGT1JNKENPQ09BKQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK09CSkNfQ0xBU1Mg
VUlWaWV3Q29udHJvbGxlcjsKK3R5cGVkZWYgVUlWaWV3Q29udHJvbGxlciBQbGF0Zm9ybVZpZXdD
b250cm9sbGVyOworI2Vsc2UKK09CSkNfQ0xBU1MgTlNWaWV3Q29udHJvbGxlcjsKK3R5cGVkZWYg
TlNWaWV3Q29udHJvbGxlciBQbGF0Zm9ybVZpZXdDb250cm9sbGVyOworI2VuZGlmCisKKyNlbmRp
ZiAvLyBQTEFURk9STShDT0NPQSkKKworI2VuZGlmIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXJf
aCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVN
ZWRpYVNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBs
ZU1lZGlhU2VydmljZXNTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZGI3NjY3ZDcyMjgwNjRlZTYwMzI4NzJi
NjVkYTY5ZDJlZDQ5NDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBsZU1lZGlhU2Vydmlj
ZXMvQU1TQmFnLmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TQmFnQ29uc3VtZXIu
aD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNCYWdQcm90b2NvbC5oPgorI2ltcG9y
dCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FNU0VuZ2FnZW1lbnRSZXF1ZXN0Lmg+CisjaW1wb3J0IDxB
cHBsZU1lZGlhU2VydmljZXMvQU1TRW5nYWdlbWVudFJlc3VsdC5oPgorI2ltcG9ydCA8QXBwbGVN
ZWRpYVNlcnZpY2VzL0FNU1Byb21pc2UuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9B
TVNUYXNrLmg+CisKKyNlbHNlIC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50
ZXJmYWNlIEFNU1Byb21pc2U8UmVzdWx0VHlwZT4gOiBOU09iamVjdAorLSAodm9pZClhZGRGaW5p
c2hCbG9jazoodm9pZCheKShSZXN1bHRUeXBlIF9OdWxsYWJsZSByZXN1bHQsIE5TRXJyb3IgKiBf
TnVsbGFibGUgZXJyb3IpKWZpbmlzaEJsb2NrOworQGVuZAorCitAcHJvdG9jb2wgQU1TQmFnUHJv
dG9jb2wgPE5TT2JqZWN0PgorQGVuZAorCitAaW50ZXJmYWNlIEFNU0JhZyA6IE5TT2JqZWN0IDxB
TVNCYWdQcm90b2NvbD4KK0BlbmQKKworQHByb3RvY29sIEFNU0JhZ0NvbnN1bWVyIDxOU09iamVj
dD4KK0BvcHRpb25hbAorKyAoQU1TQmFnICopY3JlYXRlQmFnRm9yU3ViUHJvZmlsZTsKK0BlbmQK
KworQGludGVyZmFjZSBBTVNFbmdhZ2VtZW50UmVxdWVzdCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNv
ZGluZz4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJlcXVlc3REaWN0aW9uYXJ5OihOU0RpY3Rp
b25hcnkgKilkaWN0aW9uYXJ5CitAcHJvcGVydHkgKE5TX05PTkFUT01JQ19JT1NPTkxZLCBzdHJv
bmcsIG51bGxhYmxlKSBOU1VSTCAqb3JpZ2luYXRpbmdVUkw7CitAZW5kCisKK0BpbnRlcmZhY2Ug
QU1TRW5nYWdlbWVudFJlc3VsdCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKwor
QGludGVyZmFjZSBBTVNUYXNrIDogTlNPYmplY3QKKy0gKEJPT0wpY2FuY2VsOworQGVuZAorCisj
ZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQ
TEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0Nv
Y29hL0FwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3Nw
aS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkN2NjNGY4NWQ0
MjE5MDE0YTM1Y2ViYjYyZTI2OTE2MWUzOGE1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oCkBAIC0w
LDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBM
RV9QQVlfQU1TX1VJKQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8
QXBwbGVNZWRpYVNlcnZpY2VzVUkvQU1TVUlFbmdhZ2VtZW50VGFzay5oPgorCisjZWxzZSAvLyBp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgIkFwcGxlTWVkaWFTZXJ2aWNl
c1NQSS5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK09CSkNfQ0xBU1MgVUlWaWV3Q29u
dHJvbGxlcjsKK3R5cGVkZWYgVUlWaWV3Q29udHJvbGxlciBBTVNVSVZpZXdDb250cm9sbGVyOwor
I2Vsc2UKK09CSkNfQ0xBU1MgTlNWaWV3Q29udHJvbGxlcjsKK3R5cGVkZWYgTlNWaWV3Q29udHJv
bGxlciBBTVNVSVZpZXdDb250cm9sbGVyOworI2VuZGlmCisKK0BpbnRlcmZhY2UgQU1TVUlFbmdh
Z2VtZW50VGFzayA6IEFNU1Rhc2sgPEFNU0JhZ0NvbnN1bWVyPgorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoUmVxdWVzdDooQU1TRW5nYWdlbWVudFJlcXVlc3QgKilyZXF1ZXN0IGJhZzooaWQ8QU1T
QmFnUHJvdG9jb2w+KWJhZyBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXI6KEFNU1VJVmlld0NvbnRy
b2xsZXIgKil2aWV3Q29udHJvbGxlcjsKK0Bwcm9wZXJ0eSAoTlNfTk9OQVRPTUlDX0lPU09OTFks
IGFzc2lnbikgQk9PTCByZW1vdGVQcmVzZW50YXRpb247CistIChBTVNQcm9taXNlPEFNU0VuZ2Fn
ZW1lbnRSZXN1bHQgKj4gKilwcmVzZW50RW5nYWdlbWVudDsKK0BlbmQKKworI2VuZGlmIC8vICFV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNf
VUkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDY1OGNl
YmMzYzI4NWFhNmQ4OTgyNjk5NTBiZWJkZmRjZmIxYzk3Y2YuLjJjYWIzOTI1ZGYwYmJiODRjM2Yw
M2EzMDE0MzFhMmNmMmEwZWFiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElV
SUNsaWVudC5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERh
dGEuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0
UmVjdC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKQEAgLTE2MSw5ICsxNjIsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJldGFp
blB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
LCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIGRlZmF1bHRBY3Rp
b25zOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSB7IH0KLSAgICB2aXJ0dWFsIFVJVmlld0NvbnRyb2xsZXIgKnByZXNl
bnRpbmdWaWV3Q29udHJvbGxlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgUGxhdGZvcm1WaWV3Q29udHJvbGxlciAqcHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgTlNE
aWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBmNjZhMWJhM2U4OTIyNTNmMTc2MzNjMzQyYzIyOWFk
ZmFhYjIxMzIxLi5jNzM2OWYzNzBhMGVlOWQzNWQ2NzgwOGYzZDAwNjg3YjkxZDU3OTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgKQEAgLTIyNiw2ICsyMjYsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAj
ZWxzZSAvLyAhVEFSR0VUX09TX0lQSE9ORQogCistIChOU1ZpZXdDb250cm9sbGVyICopX3ByZXNl
bnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CisKIC0gKHZvaWQpX3ByZXBhcmVGb3JJbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAppbmRleCA1Y2JjYTc3YTEwMGY0MDhiYTU2NTQ1YmU5YjA5OWZiZTg4ODQ3NmQ5Li45ZDVlZjI4
NDM0MzViZjBhNjgxY2ZjMGNlMWIxMGIxMjJiNGYwNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgIkFQ
SUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgorI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+
CkBAIC0xNDgsOCArMTQ5LDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICBSZXRhaW5QdHI8
TlNBcnJheT4gYWN0aW9uc0ZvckVsZW1lbnQoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0
YWluUHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rpb25zKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRO
b3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7Ci0gICAg
ICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpIGZpbmFsOwog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFBsYXRmb3JtVmlld0NvbnRy
b2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpIGZpbmFsOwogCiAgICAgICAgIE5TRGlj
dGlvbmFyeSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSBmaW5hbDsKIApAQCAtMjQxLDggKzI0Miw4
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3QWN0aW9uc0ZvckVsZW1l
bnREZWZhdWx0QWN0aW9ucyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50IDogMTsKLSAgICAgICAgYm9vbCBwcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3IDogMTsKICNlbmRpZgorICAgICAgICBib29sIHByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlckZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIGRhdGFEZXRlY3Rpb25Db250ZXh0
Rm9yV2ViVmlldyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0ltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQgOiAxOwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhMDA0YTE1ZGI5NzExOTI3ZTI1
ODdjNjFiMTdhN2MxOTNjYjBlOGUyLi4xY2Q1ZDBjYzliMzg5YTgzNTI5ZmMxZDViNzRiODIzY2Nh
NTA3M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTE2Miw4ICsxNjIsOCBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJ
RGVsZWdhdGU+IGRlbGVnYXRlKQogI2VuZGlmCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzphY3Rpb25zRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9u
czopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlj
a0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9k
cy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6
KV07CiAjZW5kaWYKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6KV07CiAKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzptZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZTopXTsKQEAgLTEzOTIsNyArMTM5Miw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvaW50CiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oZGVsZWdh
dGUpIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2tBdFBvaW50OnBvaW50XTsKIH0KIAotVUlWaWV3Q29udHJvbGxlciAqVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworUGxhdGZvcm1WaWV3Q29udHJvbGxlciAqVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQwNyw4ICsxNDA5LDYgQEAg
VUlWaWV3Q29udHJvbGxlciAqVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlcigpCiAgICAgcmV0dXJuIFtzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+KGRlbGVnYXRlKSBfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzptX3VpRGVs
ZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKLSNlbmRpZgotCiBOU0RpY3Rpb25h
cnkgKlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpCiB7CiAgICAg
aWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDkxNWI3ZjRjNjQ4ZTJmZTAxOThlZmQxNWI1NWZm
NDUxMTgxYWQ2ZjcuLjZhNTBhMDgxMDMzOTU4NjU4MzlmZmE3ODBlODM1Yjc1ODMzNWZhYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0
ICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKKyNpbXBv
cnQgIkFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmgiCiAjaW1wb3J0ICJDb2NvYUltYWdlLmgiCiAj
aW1wb3J0ICJDb25uZWN0aW9uLmgiCiAjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uUmVzdWx0LmgiCkBA
IC01MSw2ICs1Miw3IEBACiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW1wb3J0ICJX
S0Vycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RyYWdJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hpZ2hsaWdodFZpc2liaWxpdHkuaD4KQEAgLTg4LDYgKzkwLDE0IEBAIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5hbHlzaXMpOwogU09GVF9MSU5L
X0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdP
UktfT1BUSU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFM
KEFwcGxlTWVkaWFTZXJ2aWNlcywgQU1TRW5nYWdlbWVudFJlcXVlc3QpCisKK1NPRlRfTElOS19Q
UklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXNVSSkKK1NPRlRfTElO
S19DTEFTU19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXNVSSwgQU1TVUlFbmdhZ2VtZW50VGFz
aykKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NI
RUNLX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpKQogI2RlZmluZSBNRVNT
QUdFX0NIRUNLX0NPTVBMRVRJT04oYXNzZXJ0aW9uLCBjb21wbGV0aW9uKSBNRVNTQUdFX0NIRUNL
X0NPTVBMRVRJT05fQkFTRShhc3NlcnRpb24sIHByb2Nlc3MoKS5jb25uZWN0aW9uKCksIGNvbXBs
ZXRpb24pCiAKQEAgLTYyOCw2ICs2MzgsNDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVwSGln
aGxpZ2h0c09ic2VydmVyKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkKKwordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oVVJMJiYg
b3JpZ2luYXRpbmdVUkwsIEFwcGxlUGF5QU1TVUlSZXF1ZXN0JiYgcmVxdWVzdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGlmICghQXBwbGVNZWRpYVNlcnZpY2VzVUlMaWJyYXJ5KCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlciA9
IHVpQ2xpZW50KCkucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCk7CisgICAgaWYgKCFwcmVzZW50
aW5nVmlld0NvbnRyb2xsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxs
b3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYW1zUmVxdWVzdCA9IGFk
b3B0TlMoW2FsbG9jQU1TRW5nYWdlbWVudFJlcXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVz
dERpY3Rpb25hcnk6ZHluYW1pY19vYmpjX2Nhc3Q8TlNEaWN0aW9uYXJ5PihbTlNKU09OU2VyaWFs
aXphdGlvbiBKU09OT2JqZWN0V2l0aERhdGE6W1dURk1vdmUocmVxdWVzdC5lbmdhZ2VtZW50UmVx
dWVzdCkgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIG9wdGlvbnM6MCBl
cnJvcjpuaWxdKV0pOworICAgIFthbXNSZXF1ZXN0IHNldE9yaWdpbmF0aW5nVVJMOldURk1vdmUo
b3JpZ2luYXRpbmdVUkwpXTsKKworICAgIGF1dG8gYW1zQmFnID0gcmV0YWluUHRyKFtnZXRBTVNV
SUVuZ2FnZW1lbnRUYXNrQ2xhc3MoKSBjcmVhdGVCYWdGb3JTdWJQcm9maWxlXSk7CisKKyAgICBt
X2FwcGxlUGF5QU1TVUlTZXNzaW9uID0gYWRvcHROUyhbYWxsb2NBTVNVSUVuZ2FnZW1lbnRUYXNr
SW5zdGFuY2UoKSBpbml0V2l0aFJlcXVlc3Q6YW1zUmVxdWVzdC5nZXQoKSBiYWc6YW1zQmFnLmdl
dCgpIHByZXNlbnRpbmdWaWV3Q29udHJvbGxlcjpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJdKTsK
KyAgICBbbV9hcHBsZVBheUFNU1VJU2Vzc2lvbiBzZXRSZW1vdGVQcmVzZW50YXRpb246WUVTXTsK
KworICAgIGF1dG8gYW1zUmVzdWx0ID0gcmV0YWluUHRyKFttX2FwcGxlUGF5QU1TVUlTZXNzaW9u
IHByZXNlbnRFbmdhZ2VtZW50XSk7CisgICAgW2Ftc1Jlc3VsdCBhZGRGaW5pc2hCbG9jazptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChBTVNFbmdhZ2VtZW50UmVzdWx0ICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6
Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIocmVzdWx0KTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCkKK3sKKyAgICBbc3RkOjpleGNoYW5n
ZShtX2FwcGxlUGF5QU1TVUlTZXNzaW9uLCBudWxscHRyKSBjYW5jZWxdOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKIFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
aW9ucyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBmN2U1ZGRh
Njk1Mzg3ZDFlNzE2OWM1N2M0Y2Q1Y2E5YzlhNTlmOTBlLi5hNzE2YTYyMTQwZTBhOTU2Y2FjYmMz
ZjczYTMzOTNlZWE1YjAxOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMjMwLDYgKzIzMCw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgQU1TVUlFbmdhZ2VtZW50VGFzazsKIE9CSkNfQ0xB
U1MgTlNGaWxlV3JhcHBlcjsKIE9CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU1RleHRB
bHRlcm5hdGl2ZXM7CkBAIC01OTMsNiArNTk0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG1vZGVs
RWxlbWVudFByZXZpZXdEaWRPYnRhaW5Db250ZXh0SWQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQmLCBjb25zdCBTdHJpbmcmLCB1aW50MzJfdCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShB
UFBMRV9QQVlfQU1TX1VJKQorICAgIHZvaWQgc3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihVUkwm
JiwgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3QmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKTsKKyAgICB2b2lkIGFib3J0QXBwbGVQYXlBTVNV
SVNlc3Npb24oKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQVBJ
OjpDb250ZXh0TWVudUNsaWVudCYgY29udGV4dE1lbnVDbGllbnQoKSB7IHJldHVybiAqbV9jb250
ZXh0TWVudUNsaWVudDsgfQogICAgIHZvaWQgc2V0Q29udGV4dE1lbnVDbGllbnQoc3RkOjp1bmlx
dWVfcHRyPEFQSTo6Q29udGV4dE1lbnVDbGllbnQ+JiYpOwpAQCAtMjY1NCw2ICsyNjYwLDEwIEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1vZGVsRWxlbWVudENvbnRyb2xsZXI+IG1f
bW9kZWxFbGVtZW50Q29udHJvbGxlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9B
TVNfVUkpCisgICAgUmV0YWluUHRyPEFNU1VJRW5nYWdlbWVudFRhc2s+IG1fYXBwbGVQYXlBTVNV
SVNlc3Npb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5PiBtX2NyZWRlbnRpYWxzTWVz
c2VuZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNTZlOGExZGNlODE4YzYzOTBjYTA2MjJlM2I0NGE1YzFlZDEw
ZWYxMS4uYmEzNzRjMDAyMmY1MmIxNDY0MzZmMmNmMWUzYjNiYzhjNmI4ZTcwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTkx
LDQgKzU5MSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgIHJl
cXVlc3RQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1
Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5jCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKKyAgICBTdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCBvcmln
aW5hdGluZ1VSTCwgc3RydWN0IFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0IHJlcXVlc3Qp
IC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKKyAgICBBYm9ydEFwcGxlUGF5
QU1TVUlTZXNzaW9uKCkKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGM5MGU3MTE0MTE5NWQzZTk0OGU3ODM2YWMyZDhj
MGM1MjU4MmM1Mi4uZTI0MGI1NmJjZTExZjdkNGQyNWIzZGU3ZWZkM2YxMzY4OWFkZmEwZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDU5LDYgKzE0NTksOCBAQAogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVz
dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZp
Y2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICov
OyB9OworCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTY1MDgz
NzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi87IH07CisJCTk1
NjUwODNBMjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4MzgyNkQ4N0Ey
QjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi87IH07CiAJCTk1OTM2NzVG
MjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTkzNjc1RDI1MkU1RTMwMDBEM0Yw
QTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovOyB9OwogCQk5NUM5NDM5MTI1MjNDMEQw
MDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJ
LmggKi87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1
Z2dhYmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdn
YWJsZUluZm9JbnRlcm5hbC5oICovOyB9OwpAQCAtNDg2MSw2ICs0ODYzLDggQEAKIAkJOTNGNTQ5
QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdGMjUyNDE0RUEw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBw
YXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBC
YXNlQm9hcmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJk
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03NzY5LDYgKzc3NzMsOCBAQAog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2li
aWxpdHlTdXBwb3J0U1BJLmggKi8sCiAJCQkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFw
cEF0dGVzdFNQSS5oICovLAorCQkJCTk1NjUwODM3MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1l
ZGlhU2VydmljZXNTUEkuaCAqLywKKwkJCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLywKIAkJCQk1N0ZBQkIwRTI1ODE3Q0YwMDA1OURDOTUg
LyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLywKIAkJCQkxQTU3MDUxMDFCRTQx
MEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKIAkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMw
OTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAtMTE4MjksNiArMTE4MzUsOCBAQAogCQkJCTU3
MkVCQkREMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3NDg3OUI5MjM3M0E5MDkwMEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjQ4RDJBODUyMTU4M0E3RTAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTU2NTA4MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2
aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU2NTA4M0EyNkQ4N0EyQjAwRTE1Q0I3IC8q
IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVDOTRFMzIz
NTZDQzU3MDAwQkI2MTQgLyogQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFENEMxOTMxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVUcmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTMxMDJCRDI2ODNGM0QwMDAyQkI4ODUgLyogQXBwUHJp
dmFjeVJlcG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDBj
OGRhNjY1NzcwYmQ0NzNhZWFhYmFiM2YxNmFmNjAxNjBiMjc1MGYuLjc5MmI4NDhmYTU0NWQwMjgw
OWE5YTM1M2Y4NWQwOTcwOWEzODI2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC02Miw2
ICs2Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJTZWFyY2hQb3B1cE1lbnUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcEhpZ2hsaWdodC5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BWE9i
amVjdENhY2hlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvckNob29zZXIuaD4KQEAgLTE1MzQs
NCArMTUzNSwxOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bW9kZWxFbGVtZW50RGlkQ3JlYXRl
UHJldmlldyhXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50JiBlbAogfQogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnN0YXJ0QXBw
bGVQYXlBTVNVSVNlc3Npb24oY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgQXBwbGVQ
YXlBTVNVSVJlcXVlc3QmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRp
b25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX3BhZ2Uuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0QXBwbGVQYXlBTVNVSVNl
c3Npb24ob3JpZ2luYXRpbmdVUkwsIHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9u
KCkKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpBYm9ydEFwcGxl
UGF5QU1TVUlTZXNzaW9uKCkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNf
VUkpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGI5OTM4
ZjJiZmE2MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQzMjIxNTguLjZjY2EyZDBhODhkNjhjNDg4YThi
ZWQxMmUzYTliYjE4OWViNzk2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTQ2Miw2ICs0NjIs
MTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoV2Vi
Q29yZTo6SFRNTE1vZGVsRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKKyAgICB2b2lkIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oY29u
c3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3QmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYpIGZpbmFsOworICAgIHZvaWQg
YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpIGZpbmFsOworI2VuZGlmCisKICAgICBtdXRhYmxl
IGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyIHsgZmFsc2UgfTsK
ICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhciB7
IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3YjM3ZjQwZWU2MGNkZjczZGQ2MTI1ZWY5YTY3NTEwNTVmYTI5
MWFhLi43MGM1OWZlMWM0NzE5MjQ4NjkxN2VmZjE4Yzg1ODFkM2ZhYzlhMjM2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgor
CiAyMDIxLTEwLTMxICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgog
CiAgICAgICAgIFtXaW5DYWlyb10gVW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZTkxZjQxZTg4MmQ1NmVjMTljNmU1ZjIyMmU5ZjdmNTNlNDZiYjgxZS4uYjY3
ZGRjMmUyMzYxNDRkMmE0Y2QxMTUzN2FjYzg4OGQzMTM2NTk1MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yNjEsNiArMjYxLDcgQEAgZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1hcHBsZS1wYXktYnV0dG9uLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzL3dlYmtpdC1uYW1l
ZC1pbWFnZS9hcHBsZS1wYXktbG9nby1ibGFjayBbIFNraXAgXQogZmFzdC9jc3Mvd2Via2l0LW5h
bWVkLWltYWdlL2FwcGxlLXBheS1sb2dvLXdoaXRlIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NzbC9h
cHBsZXBheS8gWyBTa2lwIF0KK2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS8gWyBTa2lw
IF0KIAogIyBPbmx5IFdLMiBhbGxvd3MgdW5jb25zdHJhaW5lZCBzY3JvbGxpbmcKIGZhc3Qvdmlz
dWFsLXZpZXdwb3J0L3J1YmJlcmJhbmRpbmctdmlld3BvcnQtcmVjdHMuaHRtbCBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1Bh
eW1lbnRSZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDk5OTczY2E0MGY1ZDA0YTU5ZTEyMWMyZTBmOTcwMzcxNDI3OGJjMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9Q
YXltZW50UmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorVGVzdCBi
YXNpYyBjcmVhdGlvbiBvZiBhIFBheW1lbnRSZXF1ZXN0IG9iamVjdCB3aXRoIGFuIEFwcGxlIFBh
eSBBTVMgVUkgcGF5bWVudCBtZXRob2QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitUZXN0aW5nIFBheW1lbnRSZXF1ZXN0CisKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0KG51bGws
IG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIGlzIG5vdCBhIHNlcXVlbmNl
LgorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KKworVGVzdGluZyBBcHBs
ZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdAorCitTRVRVUDogcGF5bWVudE1ldGhv
ZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBkZWxldGUgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2Fn
ZW1lbnRSZXF1ZXN0CitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZh
bGlkUGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFw
cGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0
IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9
IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVl
c3QgPSAnJworUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBh
eW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBh
eUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBh
IEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxp
ZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0g
J2ludmFsaWQnCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlk
UGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxl
UGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJl
IGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZh
bGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3Qg
PSBudWxsCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5
bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5
QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEg
SlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlk
UGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSA3
CitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERl
dGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1z
ZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVu
dE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSBbIF0KK1BB
U1MgbmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWls
cygpKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVl
c3QuZW5nYWdlbWVudFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlh
bGl6YWJsZSBvYmplY3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0
aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IGZhbHNlCitQQVNT
IG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMo
KSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0
LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxp
emFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhv
ZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSB7IH0KK1BBU1MgbmV3
IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MzBlYzBmZDY1MTQ4M2QxMWRmOGZkYWZjN2QwMGVmYTM4OGI0MWYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkt
YW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgYmFzaWMgY3JlYXRpb24gb2YgYSBQYXlt
ZW50UmVxdWVzdCBvYmplY3Qgd2l0aCBhbiBBcHBsZSBQYXkgQU1TIFVJIHBheW1lbnQgbWV0aG9k
LiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHZhbGlkUGF5
bWVudE1ldGhvZCgpIHsKKyAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAn
aHR0cHM6Ly9hcHBsZS5jb20vYW1zLXVpJywKKyAgICAgICAgZGF0YTogeworICAgICAgICAgICAg
ZW5nYWdlbWVudFJlcXVlc3Q6IHsgdmFsdWU6IDQyIH0sCisgICAgICAgIH0sCisgICAgfQorfQor
CitmdW5jdGlvbiB2YWxpZFBheW1lbnREZXRhaWxzKCkgeworICAgIHJldHVybiB7CisgICAgICAg
IHRvdGFsOiB7IGxhYmVsOiAnWW91ciBsYWJlbCcsIGFtb3VudDogeyBjdXJyZW5jeTogJ1VTRCcs
IHZhbHVlOiAnMTAuMDAnIH0gfSwKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGxvZ0FuZFNob3VsZFRo
cm93KHNldHVwLCB0ZXN0KSB7CisgICAgcmV0dXJuIGFjdGl2YXRlVGhlbigoKSA9PiB7CisgICAg
ICAgIGRlYnVnKCJTRVRVUDogIiArIHNldHVwKTsKKyAgICAgICAgZXZhbChzZXR1cCk7CisgICAg
ICAgIHNob3VsZFRocm93KHRlc3QpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgfSk7Cit9CisK
K2Z1bmN0aW9uIGxvZ0FuZFNob3VsZE5vdFRocm93KHNldHVwLCB0ZXN0KSB7CisgICAgcmV0dXJu
IGFjdGl2YXRlVGhlbigoKSA9PiB7CisgICAgICAgIGRlYnVnKCJTRVRVUDogIiArIHNldHVwKTsK
KyAgICAgICAgZXZhbChzZXR1cCk7CisgICAgICAgIHNob3VsZE5vdFRocm93KHRlc3QpOworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdvKCkgeworICAg
IGRlYnVnKCJUZXN0aW5nIFBheW1lbnRSZXF1ZXN0IikKKyAgICBkZWJ1ZygiIikKKyAgICBzaG91
bGRUaHJvdygibmV3IFBheW1lbnRSZXF1ZXN0KG51bGwsIG51bGwpIikKKyAgICBzaG91bGROb3RU
aHJvdygibmV3IFBheW1lbnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5
bWVudERldGFpbHMoKSkiKQorICAgIGRlYnVnKCIiKQorCisgICAgZGVidWcoIlRlc3RpbmcgQXBw
bGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QiKQorICAgIGRlYnVnKCIiKQorICAg
IGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0
aG9kKCk7IGRlbGV0ZSBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QiLCAibmV3
IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIp
CisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1l
bnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gJyciLCAi
bmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygp
KSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBh
eW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gJ2lu
dmFsaWQnIiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVu
dERldGFpbHMoKSkiKQorICAgIGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9k
ID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVx
dWVzdCA9IG51bGwiLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRN
ZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1l
bnRSZXF1ZXN0ID0gNyIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxp
ZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVu
dE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdl
bWVudFJlcXVlc3QgPSBbIF0iLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwg
dmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBh
eW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVu
Z2FnZW1lbnRSZXF1ZXN0ID0gZmFsc2UiLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0
aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkTm90
VGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhv
ZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0geyB9IiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5
bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAgIGRlYnVnKCIiKQorCisg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uIikucmVtb3ZlKCk7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gY2xpY2tFbGVtZW50KGVsZW1lbnQpIHsKKyAgICBs
ZXQgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIDI7CisgICAgbGV0IHkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIDI7CisKKyAgICB2YXIgc3VwcG9ydHNUb3VjaEV2ZW50cyA9ICJUb3VjaEV2ZW50IiBp
biB3aW5kb3c7CisgICAgaWYgKHN1cHBvcnRzVG91Y2hFdmVudHMgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAoZnVuY3Rpb24oKSB7IHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0s
ICR7eX0sIGZ1bmN0aW9uKCkgeyB9KTsgfSkoKTtgLCBmdW5jdGlvbiAoKSB7IH0pOworICAgIH0g
ZWxzZSBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGNsaWNrRWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b24i
KSk7Cit9CisKKzwvc2NyaXB0PgorPGJ1dHRvbiBvbmNsaWNrPSdnbygpJz5HbzwvYnV0dG9uPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443122</attachid>
            <date>2021-11-02 12:41:31 -0700</date>
            <delta_ts>2021-11-02 19:26:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232634-20211102124130.patch</filename>
            <type>text/plain</type>
            <size>86406</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmOTQ5NmNhZjI4YjhjNGZiYTI0ZTIyYjI1NGJhZjk2ZGVjMWU3MzkyLi5i
ODc0MTA0ODk3ODNjZjlkMGExNGM2ODNjNjkwY2Y0ZTViNDdlMGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTkgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2UgdGhl
IFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFzIGEgd2F5IGZvciBBcHBsZSBkb21haW5zIHRvIHNo
b3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAgICBwYXltZW50IFVJcyB3aXRob3V0IGhhdmluZyB0
byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMgKGUuZy4gQXBwbGUgUGF5IEpTKS4gVGhpcyBuZXcg
cGF5bWVudAorICAgICAgICBtZXRob2QgaXMgcXVpdGUgYmFyZS1ib25lcyBpbiB0aGF0IGl0IGp1
c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNzZXMgaXQgdG8gQU1TLCB3aGljaCB0aGVuCisgICAg
ICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHRoYXQuIE5vIGRhdGEgaXMgZXhw
b3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVyIHRoYW4gZWl0aGVyCisgICAgICAgIGFuIGVycm9y
IG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIgdGhlIHBheW1lbnQgd2FzIHN1Y2Nlc3NmdWwuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1
ZXN0Lmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dEFQSVZlcnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9u
OjpjdXJyZW50KToKKyAgICAgICAgQnVtcCB0aGUgY3VycmVudCBBcHBsZSBQYXkgdmVyc2lvbi4K
KworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
ZmluaXNoU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6cGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNV
cGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIEFkZCBhIG5ldyBwYXltZW50
IG1ldGhvZCB0aGF0IHVzZXMgQU1TIHRvIHByZXNlbnQgVUkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Q6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZGVjb2RlKToKKyAgICAg
ICAgSURMIGBkaWN0aW9uYXJ5YCB0aGF0IHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgYG9iamVjdCBk
YXRhYCBpbiBgUGF5bWVudE1ldGhvZERhdGFgIHdoZW4gdGhlCisgICAgICAgIEFwcGxlIFBheSBB
TVMgVUkgcGF5bWVudCBtZXRob2QgaXMgdXNlZC4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbik6
CisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIGFsbG93IGZvciB0aGVyZSB0byBiZSBtb3Jl
IHRoYW4gb25lIHBheW1lbnQgbWV0aG9kIGltcGxlbWV0ZWQgYXQgb25jZS4KKworICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBheW1lbnRSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVz
dDo6YWNjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpyZWplY3QpOgor
ICAgICAgICBUaGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkgZG9lc24ndCByZXF1aXJlIHRoYXQg
cGF5bWVudCBtZXRob2RzIGJlIGFib3J0YWJsZS4gQXMgc3VjaCwgYWRkCisgICAgICAgIHNvbWUg
bG9naWMgdGhhdCBjaGVja3Mgd2l0aCB0aGUgYWN0aXZlIGBQYXltZW50SGFuZGxlcmAgdG8gc2Vl
IGlmIGl0IGNhbiBiZSBhYm9ydGVkIGJlZm9yZQorICAgICAgICBhY3R1YWxseSBkb2luZyBzby4g
QWxzbyBjcmVhdGUgc29tZSBwdWJsaWMgaGVscGVyIG1ldGhvZHMgdGhhdCBhbGxvdyB0aGUgcGF5
bWVudCByZXF1ZXN0IHRvCisgICAgICAgIGJlIGFjY2VwdGVkIHdpdGhvdXQgcHJvdmlkaW5nIHNo
aXBwaW5nIGluZm9ybWF0aW9uIGFuZCBiZSBkaXJlY3RseSByZWplY3RlZCB3aXRoIGFuIGVycm9y
LgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNB
Y3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdGFydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphYm9ydEFwcGxlUGF5QU1TVUlT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIEFkZCBwbHVtYmluZyBiZXR3ZWVuIFdlYkNvcmUvV2ViUHJv
Y2VzcyBhbmQgVUlQcm9jZXNzLiBBbHNvIG1haW50YWluIHN0YXRlIGFib3V0IGlmIHRoZXJlJ3MK
KyAgICAgICAgYWxyZWFkeSBhbiBhY3RpdmUgQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IHNlc3Np
b24gKG5lZWRlZCBieSB0aGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkpLgorCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgaGVscGVyIGBQbGF0Zm9ybVZpZXdDb250cm9sbGVyYCB0aGF0IHdpbGwgZG8gdGhl
IHJpZ2h0IHRoaW5nIG9uIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVl
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b252ZXJ0RGF0YSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgdGhlIGBjb252ZXJ0QW5kVmFs
aWRhdGVgIHRoYXQgdGFrZXMgYEpTQzo6SlNWYWx1ZWAgdG8gYGNvbnZlcnRBbmRWYWxpZGF0ZUFw
cGxlUGF5UmVxdWVzdGAKKyAgICAgICAgc28gdGhhdCB0aGVyZSBpc24ndCBhIG5hbWluZyBjb25m
bGljdCBpbiBvdGhlciBmaWxlcyB0aGF0IG1heSB3YW50IHRvIGRvIGEgc2ltaWxhciB0aGluZy4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAg
IERyaXZlLWJ5OiBVbmlmaWVkIHNvdXJjZXMgZml4LgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUHJv
dmlkZSBiaWRpIHByb3BlcnRpZXMgd2hlbiBjb25zdHJ1Y3RpbmcgVGV4dFJ1bgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA0ZWQ5ODM5ZDkzOTAwNDc5ODYyNjIzNjE4MjE1MWY3OGM2ZjE2MDQyLi5lMjBmYzg3YTc3NzAy
Y2Q1ZjY3NjA2OTIwOGExOWJmOTEyZGMxZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisy
MDIxLTExLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBb
UGF5bWVudCBSZXF1ZXN0XSBBZGQgYSBuZXcgcGF5bWVudCBtZXRob2QgZm9yIHNob3dpbmcgQU1T
IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MDI0MjI3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldmVyYWdlIHRoZSBXM0MgUGF5bWVudCBS
ZXF1ZXN0IEFQSSBhcyBhIHdheSBmb3IgQXBwbGUgZG9tYWlucyB0byBzaG93IGFsdGVybmF0ZSBu
YXRpdmUKKyAgICAgICAgcGF5bWVudCBVSXMgd2l0aG91dCBoYXZpbmcgdG8gYWRkIG5ldyBwcm9w
cmlldGFyeSBBUElzIChlLmcuIEFwcGxlIFBheSBKUykuIFRoaXMgbmV3IHBheW1lbnQKKyAgICAg
ICAgbWV0aG9kIGlzIHF1aXRlIGJhcmUtYm9uZXMgaW4gdGhhdCBpdCBqdXN0IHRha2VzIHNvbWUg
SlNPTiBhbmQgcGFzc2VzIGl0IHRvIEFNUywgd2hpY2ggdGhlbgorICAgICAgICBkZWNpZGVzIHdo
YXQgVUkgdG8gc2hvdyBiYXNlZCBvbiB0aGF0LiBObyBkYXRhIGlzIGV4cG9zZWQgYmFjayB0byB0
aGUgcGFnZSBvdGhlciB0aGFuIGVpdGhlcgorICAgICAgICBhbiBlcnJvciBvciBhIHllcy9ubyBh
cyB0byB3aGV0aGVyIHRoZSBwYXltZW50IHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Np
b24pOiBBZGRlZC4KKyAgICAgICAgQWRkIHBsdW1iaW5nIGJldHdlZW4gV2ViQ29yZS9XZWJQcm9j
ZXNzIGFuZCBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24pOiBBZGRl
ZC4KKyAgICAgICAgVXNlIEFNUyB0byBwcmVzZW50IFVJIGZvciB0aGUgZ2l2ZW4gZW5nYWdlbWVu
dCByZXF1ZXN0IGRhdGEgYW5kIG9yaWdpbmF0aW5nIFVSTC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByZXNlbnRpbmdW
aWV3Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6
VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpV
SUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKToKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIGAtW1dLVUlEZWxlZ2F0ZVByaXZhdGUgX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldl
YlZpZXc6XWAgb24gbWFjT1MgdG9vLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlTWVkaWFTZXJ2aWNlc1NQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29j
b2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTEtMDIgIEthdGUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBTYWZhcmkgb24gaU9TIGFu
ZCBtYWNPUyBhcmUgbm90IHNlbmRpbmcgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVwb3J0cyBmb3Ig
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDQyYzE0NTAyMjg1Njk0MWY4MzRiZjdmZDE3ZDkw
NzZiMDZkNGJkNi4uYzRmYThlYzI2YWEyZmRmZmQ3OGQ4OWU5Y2JiNGFmZGM0OWNjMGYwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC02
OSw2ICs2OSw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbS5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlw
Ym9hcmQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IGYzMDQ4ZmVjY2YzYzQ2Yzg4YjUwZWQxNDQ3OTU5Zjc0NmRmMjIyZmYuLjE3
ZDkxNjU0ODdjZDc3ODZhOWExNjI1NTU3YWQzZTczNGMxOTA3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03Niw2ICs3Niw4IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9u
UGxheWJhY2tFdmVudEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0FuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9uVGltZWxpbmUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FuaW1hdGlvblRp
bWVsaW5lLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXBwbGVQYXlBTVNVSVJlcXVlc3QuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5j
ZWxFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggYmFhZGE3NjM2ZmJiOTNlNjI1NDcyZDc5ZWVlYmU2OGIxOGFkZmNiYi4uYWZhMmMwMTM3ZTQ4
ZTJlM2UyNmVjN2JmM2YyY2RmYzJhOGNhMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0xMDEsNiArMTAxLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlN
b2RpZmllci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVw
YXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlwYm9hcmQuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11
aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNDRjNzc5Zjgy
M2EyZTM4ZWY4MDYzZjRhYTQ1NWMyNTA4MjQ5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXIuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIgorCisjaWYgRU5BQkxF
KEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNsdWRl
ICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiSlNBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgRXhjZXB0
aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1T
VUlSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNWYWx1ZSBk
YXRhKQoreworICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisKKyAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGNvbnRleHQudm0oKSk7CisgICAg
YXV0byBhcHBsZVBheUFNU1VJUmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5QU1T
VUlSZXF1ZXN0PigqY29udGV4dC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7CisgICAgaWYgKHRocm93
U2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4
Y2VwdGlvbkVycm9yIH07CisKKyAgICBpZiAoIWFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1l
bnRSZXF1ZXN0LnN0YXJ0c1dpdGgoJ3snKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBp
cyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCJfcyB9Owor
CisgICAgcmV0dXJuIFdURk1vdmUoYXBwbGVQYXlBTVNVSVJlcXVlc3QpOworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAgIGF1dG8gcmVxdWVzdE9y
RXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QoZG9jdW1l
bnQsIGRhdGEpOworICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisg
ICAgcmV0dXJuIHsgfTsKK30KKworYm9vbCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Omhh
bmRsZXNJZGVudGlmaWVyKGNvbnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxVUkw+KGlkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvJiB1cmwgPSBzdGQ6Omdl
dDxVUkw+KGlkZW50aWZpZXIpOworICAgIHJldHVybiB1cmwuaG9zdCgpID09ICJhcHBsZS5jb20i
ICYmIHVybC5wYXRoKCkgPT0gIi9hbXMtdWkiOworfQorCitib29sIEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAg
YXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5o
YXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbigpOworfQorCit2b2lkIEFwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlcjo6ZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgcmVzdWx0
KQoreworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fcGF5bWVudFJlcXVlc3QtPnJlamVj
dChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9wYXltZW50UmVxdWVzdC0+YWNjZXB0KHN0ZDo6Z2V0PFVSTD4obV9pZGVudGlmaWVyKS5z
dHJpbmcoKSwgW3N1Y2Nlc3MgPSAqcmVzdWx0XSAoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCkgLT4gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4geworICAgICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgJmxleGljYWxHbG9iYWxPYmplY3QgfTsKKworICAgICAg
ICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgYXV0byogb2Jq
ZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAg
ICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
c3VjY2VzcyIpLCBKU0M6OmpzQm9vbGVhbihzdWNjZXNzKSk7CisKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworCisgICAgICAgIHJldHVybiB7IHZtLCBvYmpl
Y3QgfTsKKyAgICB9KTsKK30KKworQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBQYXltZW50UmVx
dWVzdDo6TWV0aG9kSWRlbnRpZmllciYgaWRlbnRpZmllciwgUGF5bWVudFJlcXVlc3QmIHBheW1l
bnRSZXF1ZXN0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeyAmZG9jdW1lbnQg
fQorICAgICwgbV9pZGVudGlmaWVyIHsgaWRlbnRpZmllciB9CisgICAgLCBtX3BheW1lbnRSZXF1
ZXN0IHsgcGF5bWVudFJlcXVlc3QgfQoreworICAgIEFTU0VSVChoYW5kbGVzSWRlbnRpZmllciht
X2lkZW50aWZpZXIpKTsKK30KKworRG9jdW1lbnQmIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
cjo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIEFTU0VSVChpczxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworUGFnZSYgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyOjpwYWdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5wYWdlKCkpOworICAg
IHJldHVybiAqZG9jdW1lbnQoKS5wYWdlKCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEoSlNDOjpKU1ZhbHVlIGRhdGEpCit7
CisgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eUFNU1VJUmVxdWVzdCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhKTsKKyAgICBpZiAo
cmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVxdWVz
dE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIG1fYXBwbGVQYXlBTVNVSVJl
cXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgcmV0
dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyOjpzaG93KERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9hcHBsZVBheUFN
U1VJUmVxdWVzdCk7CisKKyAgICBpZiAoIXBhZ2UoKS5zdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9u
KGRvY3VtZW50LCAqdGhpcywgKm1fYXBwbGVQYXlBTVNVSVJlcXVlc3QpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9OworCisgICAgcmV0dXJuIHsgfTsKK30KKwordm9p
ZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUoKQoreworICAgIHBhZ2UoKS5hYm9y
dEFwcGxlUGF5QU1TVUlTZXNzaW9uKCp0aGlzKTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2UgJiYgIXBhZ2UtPmhhc0Fj
dGl2ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCkpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpV
cGRhdGVSZWFzb24sIFN0cmluZyYmIC8qIGVycm9yICovLCBBZGRyZXNzRXJyb3JzJiYsIFBheWVy
RXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogLyogcGF5bWVudE1ldGhvZEVycm9ycyAqLykK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBzaGlwcGluZy9wYXltZW50IGluZm8iKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6Om1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJiAvKiBtZXJj
aGFudFNlc3Npb25WYWx1ZSAqLykKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBtZXJjaGFudCB2
YWxpZGF0aW9uIik7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKQor
eworICAgIGhpZGUoKTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKQoreworICAgIHJldHVy
biBzaG93KGRvY3VtZW50KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11
aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDc0NjkxY2EzZjE5
YTU5MDUyNjAxMTVjZjQzY2RhODM0Yjc4NmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
LmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNs
dWRlICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQYXltZW50
SGFuZGxlci5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFz
cyBKU09iamVjdDsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitzdHJ1Y3QgQWRkcmVzc0Vycm9yczsKK3N0
cnVjdCBQYXllckVycm9yRmllbGRzOworCitlbnVtIGNsYXNzIFBheW1lbnRDb21wbGV0ZTsKKwor
Y2xhc3MgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyIGZpbmFsIDogcHVibGljIFBheW1lbnRI
YW5kbGVyLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVEYXRhKERvY3VtZW50JiwgSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBoYW5kbGVzSWRlbnRpZmllcihjb25zdCBQYXltZW50
UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBib29sIGhhc0FjdGl2ZVNl
c3Npb24oRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQYXltZW50SGFuZGxlcjsK
KyAgICBleHBsaWNpdCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmLCBjb25z
dCBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYsIFBheW1lbnRSZXF1ZXN0Jik7CisK
KyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKKyAgICBQYWdlJiBwYWdlKCkgY29uc3Q7
CisKKyAgICAvLyBQYXltZW50SGFuZGxlcgorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRE
YXRhKEpTQzo6SlNWYWx1ZSkgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hvdyhEb2N1
bWVudCYpIGZpbmFsOworICAgIGJvb2wgY2FuQWJvcnRTZXNzaW9uKCkgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2b2lkIGhpZGUoKSBmaW5hbDsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50
KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6
OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJv
ckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1Zh
bHVlJiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29t
cGxldGU+JiYpIGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYpIGZpbmFsOworCisgICAgUGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxQYXltZW50UmVxdWVzdD4gbV9wYXltZW50UmVx
dWVzdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5QU1TVUlSZXF1ZXN0PiBtX2FwcGxlUGF5
QU1TVUlSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0M2E3ZTQ1NDU5NmVmMDY1M2NkYzYxMGNkZGZmNDZk
OGY3Zjk0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKSAmJiBF
TkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8
d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdCB7CisgICAgU3RyaW5nIGVu
Z2FnZW1lbnRSZXF1ZXN0OyAvLyByZXF1aXJlZCBKU09OCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBh
eUFNU1VJUmVxdWVzdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBlbmdhZ2VtZW50UmVxdWVzdDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K3N0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IEFwcGxlUGF5QU1TVUlSZXF1ZXN0
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
ZW5nYWdlbWVudFJlcXVlc3Q7CisgICAgZGVjb2RlciA+PiBlbmdhZ2VtZW50UmVxdWVzdDsKKyAg
ICBpZiAoIWVuZ2FnZW1lbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCplbmdhZ2VtZW50UmVxdWVzdCkgfSB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZTM4ZTBmZGJjMDdlOTQ1Y2Y0YzkwMTYwNTBiMGI5MDc2NTZhZDE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkv
QXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0FNU19VSSZQQVlNRU5UX1JFUVVFU1QsCitdIGRp
Y3Rpb25hcnkgQXBwbGVQYXlBTVNVSVJlcXVlc3QgeworICAgIHJlcXVpcmVkIEpTT04gZW5nYWdl
bWVudFJlcXVlc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCmluZGV4IDg3Mjc2
ZTg1MzU0YTA5N2U2MGI1OGRkYjBiNThkNzY0Y2VmZjkwYjkuLmNkYTAzODk3Yjc4MzFmOTc2MGU4
YWJiNmI0ZGNmNzNlNTlkN2I0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0KQEAg
LTM1LDcgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgUGF5bWVudEFQSVZl
cnNpb246OmN1cnJlbnQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBjdXJyZW50ID0gW10gewot
I2lmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfU0hJ
UFBJTkdfQ09OVEFDVF9FRElUSU5HX01PREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5H
X0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pIHx8IEVO
QUJMRShBUFBMRV9QQVlfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9ORU5UU19SQU5HRSkKKyNp
ZiBFTkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKSB8fCBFTkFCTEUoQVBQTEVf
UEFZX0FNU19VSSkKKyAgICAgICAgcmV0dXJuIDEzOworI2VsaWYgRU5BQkxFKEFQUExFX1BBWV9D
T1VQT05fQ09ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19DT05UQUNUX0VESVRJTkdf
TU9ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKSB8fCBFTkFCTEUo
QVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElO
R19NRVRIT0RfREFURV9DT01QT05FTlRTX1JBTkdFKQogICAgICAgICByZXR1cm4gMTI7CiAjZWxp
ZiBFTkFCTEUoQVBQTEVfUEFZX1NFU1NJT05fVjExKQogICAgICAgICByZXR1cm4gMTE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA1MzBhYzky
MmUyMzA2NWQ5NGFjNDliNGIxZTU1ODYxMGVmODQ0MGQ3Li4xMDY0YjU3Zjg1OTdmZjYwYWE3OTcx
NjIwZWU2NWNmNDdhNTRjM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXlt
ZW50SGFuZGxlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRhdGEpCitzdGF0
aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRh
dGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIgfTsKQEAgLTkzLDcg
KzkzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVzdD4gY29udmVydEFuZFZh
bGlkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGMKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50JiBkb2N1bWVudCwgSlND
OjpKU1ZhbHVlIGRhdGEpCiB7Ci0gICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0
QW5kVmFsaWRhdGUoZG9jdW1lbnQsIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9u
ID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KGRvY3VtZW50LCBkYXRhKTsKICAg
ICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
cmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtMjAyLDcgKzIwMiw3
IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5k
VmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBkYXRhKQogewotICAgIGF1
dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVy
dEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRh
dGEpOwogICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4IDdiZmVjZmU5NTVlMDhj
NTlhN2M4YjJkOGVjNDE4OTM3YTlhM2RlZWYuLjk3MzE0MThjNTU3ZTZmZTE3NGY2Mzg0OTRkMzQ1
NjEwMjliMGE1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gUGF5bWVudEhhbmRsZXIKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUpIGZpbmFsOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGNhbkFi
b3J0U2Vzc2lvbigpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGhpZGUoKSBmaW5h
bDsKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0
YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3Is
IEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXlt
ZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDI4MDk5MjVmNWQyMWYzZTNmMzQ3N2ExZTQ1
MjQzODUwNzg1ZDRmYWQuLjUyMGMwNzc1Njk2YTJmMGUyZTczMDA3MzVlOGM5Nzc0OTVmMWE2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlk
ZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT2JzZXJ2ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3Bw
CmluZGV4IGY1NWRhMjVjNjBmNTAzOGJlODlmMjg2YjdjMTAxODJjZDkxMGQ2NmEuLjkxYzk0YTcw
ODE4YThkY2RkOGI5NDEyMWI0MDBkNGU3NzExYzA5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0y
NiwxMSArMjYsMTAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQYXltZW50SGFu
ZGxlci5oIgogCi0jaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKLQotI2lmIEVOQUJMRShBUFBM
RV9QQVkpCisjaW5jbHVkZSAiQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmgiCiAjaW5jbHVk
ZSAiQXBwbGVQYXlQYXltZW50SGFuZGxlci5oIgotI2VuZGlmCisKKyNpZiBFTkFCTEUoUEFZTUVO
VF9SRVFVRVNUKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDEyICszOCwxNiBAQCBS
ZWZQdHI8UGF5bWVudEhhbmRsZXI+IFBheW1lbnRIYW5kbGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRv
Y3VtZW50LCBQYXltZW50UmVxdWVzdAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgaWYgKEFw
cGxlUGF5UGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIpKQogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxlUGF5UGF5bWVudEhhbmRsZXIoZG9jdW1lbnQs
IGlkZW50aWZpZXIsIHBheW1lbnRSZXF1ZXN0KSk7Ci0jZWxzZQorI2VuZGlmCisKKyNpZiBFTkFC
TEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBpZiAoQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
OjpoYW5kbGVzSWRlbnRpZmllcihpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoZG9jdW1lbnQsIGlkZW50aWZpZXIsIHBh
eW1lbnRSZXF1ZXN0KSk7CisjZW5kaWYKKwogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiAg
ICAgVU5VU0VEX1BBUkFNKHBheW1lbnRSZXF1ZXN0KTsKICAgICBVTlVTRURfUEFSQU0oaWRlbnRp
Zmllcik7Ci0jZW5kaWYKLQogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC02NiwxMiArNjks
MTYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAg
aWYgKEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIp
KQogICAgICAgICByZXR1cm4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKGRv
Y3VtZW50LCBkYXRhKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1T
X1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlm
aWVyKGlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyOjp2YWxpZGF0ZURhdGEoZG9jdW1lbnQsIGRhdGEpOworI2VuZGlmCisKICAgICBVTlVTRURf
UEFSQU0oZG9jdW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICAgICBVTlVTRURfUEFS
QU0oaWRlbnRpZmllcik7Ci0jZW5kaWYKLQogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTg4LDEx
ICs5NSwxNyBAQCBib29sIFBheW1lbnRIYW5kbGVyOjplbmFibGVkRm9yQ29udGV4dChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogYm9vbCBQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZl
U2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKLSAg
ICByZXR1cm4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihkb2N1bWVu
dCk7Ci0jZWxzZQorICAgIGlmIChBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNz
aW9uKGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworI2lmIEVOQUJM
RShBUFBMRV9QQVlfQU1TX1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6
Omhhc0FjdGl2ZVNlc3Npb24oZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRp
ZgorCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICByZXR1cm4gZmFsc2U7Ci0jZW5k
aWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCmluZGV4IDdmODZlYmQw
ZjI3MGZhNjMzNmMwMmQ4N2Q1ZjQ0Yzg3NTI2NjlhN2EuLmFmNDYzNTgxZDYxYWU1MzNkMzVkYjFm
ODBkZDZmNTRhNmM2MWE1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFs
dWUpID0gMDsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSA9
IDA7CisgICAgdmlydHVhbCBib29sIGNhbkFib3J0U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgaGlkZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuTWFrZVBheW1lbnQoRG9jdW1l
bnQmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSA9IDA7CiAgICAg
dmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6
VXBkYXRlUmVhc29uLCBTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9y
RmllbGRzJiYsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5jcHAKaW5kZXggMDYzY2ZmN2UwOTA3YjVlMzdjNGZmMjQxNDA0ZDhkM2I5MzgxMmJkYi4u
NWIxZGM3ODliMzRlOTE3YTI5MzNlZDVmYTYzMGFlYTZjODcwNGUzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAKQEAgLTQ5NCw2ICs0OTQsMTEgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6YWJvcnQoQWJvcnRQ
cm9taXNlJiYgcHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtX2Fj
dGl2ZVBheW1lbnRIYW5kbGVyICYmICFhY3RpdmVQYXltZW50SGFuZGxlcigpLT5jYW5BYm9ydFNl
c3Npb24oKSkgeworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGFib3J0V2l0aEV4Y2Vw
dGlvbihFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgIHByb21pc2UucmVzb2x2ZSgpOwog
fQpAQCAtNjk3LDYgKzcwMiwzNSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0Ojp3aGVuRGV0YWlsc1Nl
dHRsZWQoc3RkOjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3Zv
aWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1l
bnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9uKQoreworICAgIEFT
U0VSVCghbV9pc1VwZGF0aW5nKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJh
Y3RpdmUpOworCisgICAgYm9vbCBpc1JldHJ5ID0gbV9yZXNwb25zZTsKKyAgICBpZiAoIWlzUmV0
cnkpIHsKKyAgICAgICAgbV9yZXNwb25zZSA9IFBheW1lbnRSZXNwb25zZTo6Y3JlYXRlKHNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMpOworICAgICAgICBtX3Jlc3BvbnNlLT5zZXRSZXF1
ZXN0SWQobV9kZXRhaWxzLmlkKTsKKyAgICB9CisKKyAgICBtX3Jlc3BvbnNlLT5zZXRNZXRob2RO
YW1lKG1ldGhvZE5hbWUpOworICAgIG1fcmVzcG9uc2UtPnNldERldGFpbHNGdW5jdGlvbihXVEZN
b3ZlKGRldGFpbHNGdW5jdGlvbikpOworICAgIG1fcmVzcG9uc2UtPnNldFNoaXBwaW5nQWRkcmVz
cyhudWxscHRyKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRTaGlwcGluZ09wdGlvbihudWxsU3RyaW5n
KCkpOworICAgIG1fcmVzcG9uc2UtPnNldFBheWVyTmFtZShudWxsU3RyaW5nKCkpOworICAgIG1f
cmVzcG9uc2UtPnNldFBheWVyRW1haWwobnVsbFN0cmluZygpKTsKKyAgICBtX3Jlc3BvbnNlLT5z
ZXRQYXllclBob25lKG51bGxTdHJpbmcoKSk7CisKKyAgICBpZiAoIWlzUmV0cnkpCisgICAgICAg
IHNldHRsZVNob3dQcm9taXNlKCptX3Jlc3BvbnNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNT
RVJUKG1fcmVzcG9uc2UtPmhhc1JldHJ5UHJvbWlzZSgpKTsKKyAgICAgICAgbV9yZXNwb25zZS0+
c2V0dGxlUmV0cnlQcm9taXNlKCk7CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDbG9z
ZWQ7Cit9CisKIHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhv
ZE5hbWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9u
LCBSZWY8UGF5bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBh
eWVyTmFtZSwgY29uc3QgU3RyaW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhv
bmUpCiB7CiAgICAgQVNTRVJUKCFtX2lzVXBkYXRpbmcpOwpAQCAtNzI2LDYgKzc2MCwxMSBAQCB2
b2lkIFBheW1lbnRSZXF1ZXN0OjphY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXlt
ZW50UmVzcG9uc2U6OkRldGFpbHNGdQogICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOwogfQog
Cit2b2lkIFBheW1lbnRSZXF1ZXN0OjpyZWplY3QoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQorewor
ICAgIGFib3J0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlvbikpOworfQorCiBFeGNlcHRp
b25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50
Q29tcGxldGU+JiYgcmVzdWx0KQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpDbG9z
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5oCmluZGV4IDE5MTU5NzY5MDk4MTY0NDNkY2Q2ZDNkY2IyZGVkOGY0MmQ3
OTk3YWQuLmViYmQ1NDI2YTU3OGI3Yjc1NzkyM2MwMzZkOWIxNGUxN2Q1NDY3YmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmgKQEAgLTk2LDcgKzk2LDkgQEAgcHVibGljOgogICAgIHZvaWQgcGF5bWVudE1ldGhvZENo
YW5nZWQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6
Ok1ldGhvZERldGFpbHNGdW5jdGlvbiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGVX
aXRoKFVwZGF0ZVJlYXNvbiwgUmVmPERPTVByb21pc2U+JiYpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYp
OworICAgIHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3Bv
bnNlOjpEZXRhaWxzRnVuY3Rpb24mJik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBt
ZXRob2ROYW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNGdW5jdGlvbiYmLCBSZWY8UGF5bWVu
dEFkZHJlc3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29u
c3QgU3RyaW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOworICAgIHZv
aWQgcmVqZWN0KEV4Y2VwdGlvbiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZShz
dGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggM2EzMmNhM2M5ZDc3YWZkMjRkZTFhM2U3YmM5NWYy
YjI0NDZjNTU1OS4uMTM2ODgwM2JhNDA3ZmRhODE3MDE5OWFmMTBiYjYzZjEzMDBiMzdhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTU4OSw2ICs1ODksNyBAQCBsaXN0KEFQUEVORCBX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9jb2NvYS9Mb2Nh
bEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRl
bnNpb25Db250ZW50RmlsdGVyLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXcuaAor
ICAgIHBsYXRmb3JtL2NvY29hL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIuaAogICAgIHBsYXRmb3Jt
L2NvY29hL1BsYXliYWNrU2Vzc2lvbk1vZGVsLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFj
a1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5oCiAgICAgcGxhdGZvcm0vY29jb2EvUG93ZXJTb3Vy
Y2VOb3RpZmllci5oCkBAIC03OTQsNiArNzk1LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExf
RklMRVMKICAgICBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZp
ZXIuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVJlcXVl
c3QuaWRsCiAKKyAgICBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVz
dC5pZGwKKwogICAgIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5p
ZGwKICkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjNhOGU5YzAyNzEzNTljYzI2MzQ5
MTg1Mjg1ZDQwOGJhNjA5ODBlZS4uMzE5MTZkYmMzZjViNzFjYWIyYjAzYzg4MGYwOWI0OTZmN2Ew
YzEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMSw2ICsyMSw3IEBACiAvLyBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCiAvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK0pTQXBwbGVQ
YXlBTVNVSVJlcXVlc3QuY3BwCiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBKU0FwcGxlUGF5
Q29udGFjdEZpZWxkLmNwcAogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuY3BwCkBA
IC05Niw2ICs5Nyw3IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZENvY29h
Lm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTZXNzaW9uRXJyb3JDb2NvYS5tbQog
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KIE1vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKK01v
ZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKIE1v
ZHVsZXMvYXN5bmMtY2xpcGJvYXJkL2lvcy9DbGlwYm9hcmRJbWFnZVJlYWRlcklPUy5tbQogTW9k
dWxlcy9hc3luYy1jbGlwYm9hcmQvbWFjL0NsaXBib2FyZEltYWdlUmVhZGVyTWFjLm1tCiBNb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU3
NTViYzMzOGU3NmQ4NzkwZDBiNDNjMDdkMmQyYWJmMDYwZTc4NS4uMTkwYzdkMWE4MTA4NmU0OWY2
NWJiOWM1MzA3ZjZjNjM3M2ZmZmZiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzA1Nyw2ICszMDU3LDcgQEAKIAkJOTU5NkI5
MzgyNURFRUYwMzAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2QjkzNjI1
REVFRjAyMDBFRDJDRkEgLyogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsg
fTsKIAkJOTVBMUUyRTkyNUNDNzVBOTAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVu
dUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
QTFFMkU3MjVDQzc1QTgwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTVBQTU3
MTAyNUVFRUQzMjAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUE1NzBFMjVFRUVEMzEw
MDRFOTI4MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggKi87IH07CisJCTk1QkE0RkFE
MjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUJBNEZBQjI2RDk4MUFBMDAyQTBF
NjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0NiAvKiBQb2lu
dGVyQ2hhcmFjdGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3Rlcmlz
dGljcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTk1RUFENTYzMjY2RUYyREIwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFE
NTVGMjY2RUYyREEwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAq
LzsgfTsKIAkJOTVFQUQ1NkEyNjZFRjJGQTAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVu
dHNSYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTVFQUQ1NjYyNjZFRjJGODAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMDcz
LDYgKzMwNzQsOCBAQAogCQk5NUVBRDU5NDI2NkVGNUQ0MDA0QjlDRjEgLyogSlNBcHBsZVBheVBh
eW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzY1NzlFQzFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0
LmggKi87IH07CiAJCTk1RUFENTk3MjY2RUY2MEIwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBp
bmdDb250YWN0RWRpdGluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1RUFENTk1MjY2RUY2MDkwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBp
bmdDb250YWN0RWRpdGluZ01vZGUuaCAqLzsgfTsKIAkJOTVGNDVEMjcyNjRERkJGMTAwRDBCOEI4
IC8qIFBhZ2VDb2xvclNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1RjQ1RDI2MjY0REZCRUIwMEQwQjhCOCAvKiBQYWdlQ29sb3JTYW1wbGVy
LmggKi87IH07CisJCTk1RkI2NjI1MjZENzAzM0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1RkI2NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXIuaCAqLzsgfTsKKwkJOTVGQjY2MjYyNkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NUZCNjYyMjI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEwN0Q5
NzUyMDBBNTBBN0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNo
ZWNrZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5NzBCNzI4QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2MDBG
MDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVh
ZGVycy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcw
QjcyQTUxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTIyMzcs
NiArMTIyNDAsNyBAQAogCQk5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9s
c0NvbnRleHRNZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRp
YUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1QUE1NzBEMjVFRUVEMzAwMDRFOTI4MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0Nh
bGxUcmFjZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUFBNTcwRTI1RUVF
RDMxMDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1QkE0RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9y
bVZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRm
b3JtVmlld0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVERjlE
MjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NUVBRDU1RjI2NkVGMkRBMDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdl
ZEV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5Q291cG9u
Q29kZUNoYW5nZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUVBRDU2
MTI2NkVGMkRBMDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyNjcsNiArMTIyNzEsMTAgQEAKIAkJ
OTVFQUQ1OTYyNjZFRjYwQTAwNEI5Q0YxIC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RFZGl0
aW5nTW9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxl
UGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUY0NUQyNDI2NERGQkVCMDBEMEI4QjggLyogUGFnZUNvbG9yU2FtcGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBQYWdlQ29sb3JTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTVGNDVEMjYyNjRERkJFQjAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBs
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGFnZUNvbG9yU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk5NUZCNjYyMDI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJl
cXVlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVGQjY2MjEyNkQ3MDMzQjAwNjhBQzY3
IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTVGQjY2MjIyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1RkI2NjIzMjZENzAzM0Iw
MDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8q
IFBvbGljeUNoZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UG9saWN5Q2hlY2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2
MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBFdmVudEludGVyZmFjZXMuaDsgcGF0aCA9IERlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CkBAIC0xODY0NCwxMSArMTg2NTIsMTEgQEAKIAkJMUE1NjlDQzQwRDdF
MkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCi0JCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKLQkJCQkx
QTU2OUNFMjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFG
MDBEOTA0RkEgLyogQnJpZGdlLmggKi8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8q
IElkZW50aWZpZXJSZXAuY3BwICovLAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJ
ZGVudGlmaWVyUmVwLmggKi8sCisJCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAq
LywKKwkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQkxQTU2OUNF
RjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjQ0MjMsMTEgKzI0NDMx
LDIzIEBACiAJCQluYW1lID0gcGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJ
fTsKKwkJOTVGQjY2MUYyNkQ3MDMzQjAwNjhBQzY3IC8qIGFwcGxlcGF5LWFtcy11aSAqLyA9IHsK
KwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTVGQjY2MjMyNkQ3MDMz
QjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAgKi8sCisJCQkJOTVG
QjY2MjEyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oICov
LAorCQkJCTk1RkI2NjIyMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVxdWVzdC5o
ICovLAorCQkJCTk1RkI2NjIwMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVxdWVz
dC5pZGwgKi8sCisJCQkpOworCQkJcGF0aCA9ICJhcHBsZXBheS1hbXMtdWkiOworCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5IC8qIE1v
ZHVsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNF
MjYxNjlEMTg3RTY1NTQwMDc5NTVGMyAvKiBhaXJwbGF5ICovLAogCQkJCTFBNThFODYxMUQxOUQz
NzMwMEMwRUE3MyAvKiBhcHBsZXBheSAqLywKKwkJCQk5NUZCNjYxRjI2RDcwMzNCMDA2OEFDNjcg
LyogYXBwbGVwYXktYW1zLXVpICovLAogCQkJCTYzQkQ0QTVDMUY3NzhFODQwMDQzODcyMiAvKiBh
cHBsaWNhdGlvbm1hbmlmZXN0ICovLAogCQkJCUY0NDBFNzZBMjMzRDkzQzgwMDYzRjlBQiAvKiBh
c3luYy1jbGlwYm9hcmQgKi8sCiAJCQkJODMyMTUwNzkxRjI3RTk2QjAwOTVCMTM2IC8qIGJlYWNv
biAqLywKQEAgLTI1MjEyLDYgKzI1MjMyLDcgQEAKIAkJCQlGNEZCMzUwMDIzNTBDOTYyMDBGMDA5
NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywKIAkJCQlGNDYyOEE5RTIzNEQz
QkJGMDBCQzg4NEMgLyogUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0gKi8sCiAJCQkJNTJCMEQ0
QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovLAorCQkJCTk1QkE0RkFCMjZE
OTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJQ0RBMjlB
MEExQ0JEOUE3NDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsLmggKi8sCiAJCQkJQ0RB
MjlBMEQxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFFbGVtZW50
LmggKi8sCiAJCQkJQ0RBMjlBMEMxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1v
ZGVsTWVkaWFFbGVtZW50Lm1tICovLApAQCAtMzE2OTIsNiArMzE3MTMsOCBAQAogCQkJCTQ0NTIx
MERGMjVENjFGMDAwMDNBMkVEOCAvKiBBcHBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ0QUUwNDVDMjU3OUNGRkIwMEM0MkU2NSAvKiBBcHBIaWdobGlnaHRSYW5nZURhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQ0MjUwNzA5MjU4MjlBMjcwMEMwOTM2OCAvKiBBcHBIaWdobGlnaHRT
dG9yYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUZCNjYyNTI2RDcwMzNDMDA2OEFDNjcgLyog
QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUZCNjYy
NjI2RDcwMzNDMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExMTNFMDJFMjMzMUExMzQwMDlDMzNBMCAvKiBBcHBsZVBheUNhbmNlbEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMURGNUE5NDFGN0VDNDMyMDA1OEE0NzcgLyogQXBwbGVQYXlD
b250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1RUFENTYzMjY2RUYyREIwMDRCOUNG
MSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MzQ4MjYsNiArMzQ4NDksNyBAQAogCQkJCTBGN0QwNzMzMTg4NEM1NkMwMEI0QUY4NiAvKiBQbGF0
Zm9ybVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0RTgyQkIxOEE2OUYwRTAwN0VG
NTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJCMEQ0QkUx
QzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVC
QTRGQUQyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTkzNUM0NzZCMDlBQzRENEYwMEE2QUFCNCAvKiBQbGF0Zm9ybVdoZWVsRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjcyMjQxMkIyQTgwMEU3OTRENiAvKiBQbGF0
Zm9ybVhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjczQ0M3NzI1NjEwM0NGMDA4NTAwMDcgLyog
UGxhdGZvcm1YUkNvY29hLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDIzYTU4YmY4YjgzY2UyZjU2YmUwMjE2MmRiNTc4NGJhNzM4MWYzZTAuLjVmNmQ1
YjRmMmVjNTBlYjE3MjYzOTk5MDk2ZDc1Y2YxNTM1OTcwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMTI0LDYgKzEyNCw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdElu
c3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogI2VuZGlmCiAKIHN0cnVjdCBBcHBIaWdobGln
aHQ7CitzdHJ1Y3QgQXBwbGVQYXlBTVNVSVJlcXVlc3Q7CiBzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0
RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzOwogc3RydWN0IERhdGFEZXRlY3Rv
ckVsZW1lbnRJbmZvOwpAQCAtNjExLDYgKzYxMiwxMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYp
IGNvbnN0IHsgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAg
dmlydHVhbCB2b2lkIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oY29uc3QgVVJMJiwgY29uc3Qg
QXBwbGVQYXlBTVNVSVJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8Ym9vbD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoc3Rk
OjpudWxsb3B0KTsgfQorICAgIHZpcnR1YWwgdm9pZCBhYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9u
KCkgeyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNsaWVudCgp
ID0gZGVmYXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4MTQ2Y2I1OWZjYjcxYzcxMGU2
ZjcyMmFjNmQ1Y2U1NTlmNjQ5MzM3Li45OTkyOWYwOTAxYjhkOTZmYzg3NWZjZGFlNjdmNWNjZjg2
ZmYxYjg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJB
bHRlcm5hdGl2ZVRleHRDbGllbnQuaCIKICNpbmNsdWRlICJBbmltYXRpb25GcmFtZVJhdGUuaCIK
ICNpbmNsdWRlICJBcHBIaWdobGlnaHRTdG9yYWdlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCIK
ICNpbmNsdWRlICJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENhY2hlLmgiCkBAIC0zNDg0LDYgKzM0ODUsNDIgQEAgdm9pZCBQYWdlOjpzZXRQYXltZW50
Q29vcmRpbmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4mJiBwYXltZW50
Q28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKK2Jvb2wgUGFn
ZTo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIEFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlciYgcGF5bWVudEhhbmRsZXIsIGNvbnN0IEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChoYXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lv
bigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2FjdGl2ZUFwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlciA9ICZwYXltZW50SGFuZGxlcjsKKworICAgIGNocm9tZSgpLmNsaWVudCgp
LnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oZG9jdW1lbnQudXJsKCksIHJlcXVlc3QsIFt3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwYXltZW50SGFuZGxlclB0ciA9ICZwYXltZW50SGFu
ZGxlcl0gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiByZXN1bHQpIHsKKyAgICAgICAgYXV0byBzdHJv
bmdUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nVGhpcykKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAocGF5bWVudEhhbmRsZXJQdHIgIT0gc3Ryb25n
VGhpcy0+bV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIpCisgICAgICAgICAgICBy
ZXR1cm47CisKKyAgICAgICAgaWYgKGF1dG8gYWN0aXZlUGF5bWVudEhhbmRsZXIgPSBzdGQ6OmV4
Y2hhbmdlKHN0cm9uZ1RoaXMtPm1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLCBu
dWxscHRyKSkKKyAgICAgICAgICAgIGFjdGl2ZVBheW1lbnRIYW5kbGVyLT5maW5pc2hTZXNzaW9u
KFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQg
UGFnZTo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXImIHBheW1lbnRIYW5kbGVyKQoreworICAgIGlmICgmcGF5bWVudEhhbmRsZXIgIT0gbV9hY3Rp
dmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGNo
cm9tZSgpLmNsaWVudCgpLmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKTsKKworICAgIGlmIChh
dXRvIGFjdGl2ZVBheW1lbnRIYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX2FjdGl2ZUFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgIGFjdGl2ZVBheW1lbnRIYW5k
bGVyLT5maW5pc2hTZXNzaW9uKHN0ZDo6bnVsbG9wdCk7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5BVE9S
KQogdm9pZCBQYWdlOjpzZXRNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcml2YXRlPiYmIG1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAppbmRleCAyNjM3YTI5ZGJmNTRiMzhmOWNkNjI4Y2VlZjgxZTJlZDdhMzBhMDViLi4xZGVj
YWZlZjRkYmJhNzVjZGU5MmIwOTQyNTc4YTRhNDRkNGNmZDJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAt
OTEsNiArOTEsNyBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rpb25U
b1NlcnZlcjsKIH0KIAorY2xhc3MgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOwogY2xhc3Mg
QWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xpZW50
OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CkBAIC0xNjcsNiArMTY4LDcgQEAgY2xh
c3MgV2ViR0xTdGF0ZVRyYWNrZXI7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBjbGFz
cyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdDsK
IHN0cnVjdCBTaW1wbGVSYW5nZTsKIHN0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAKQEAg
LTU0MSw2ICs1NDMsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UGF5
bWVudENvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50Q29vcmRpbmF0b3I+JiYpOwog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBib29sIGhhc0FjdGl2
ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXI7IH0KKyAgICBib29sIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24o
RG9jdW1lbnQmLCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXImLCBjb25zdCBBcHBsZVBheUFN
U1VJUmVxdWVzdCYpOworICAgIHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXImKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdFQl9BVVRITikK
ICAgICBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3ImIGF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigp
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmdldCgpOyB9CiAjZW5kaWYKQEAg
LTExODcsNiArMTE5NSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50
Q29vcmRpbmF0b3I+IG1fcGF5bWVudENvb3JkaW5hdG9yOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKKyAgICBSZWZQdHI8QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
PiBtX2FjdGl2ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvckNvb3JkaW5hdG9yPiBt
X2F1dGhlbnRpY2F0b3JDb29yZGluYXRvcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgzMmNkNDRmNWU0NzE1NGQzMDMyM2EzY2EyZWM2NTRmYmY5NjBmYTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXdDb250cm9sbGVy
LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1WaWV3Q29udHJvbGxlcl9oCisjZGVmaW5lIFBsYXRm
b3JtVmlld0NvbnRyb2xsZXJfaAorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQorT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwordHlwZWRlZiBVSVZp
ZXdDb250cm9sbGVyIFBsYXRmb3JtVmlld0NvbnRyb2xsZXI7CisjZWxzZQorT0JKQ19DTEFTUyBO
U1ZpZXdDb250cm9sbGVyOwordHlwZWRlZiBOU1ZpZXdDb250cm9sbGVyIFBsYXRmb3JtVmlld0Nv
bnRyb2xsZXI7CisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorCisjZW5kaWYg
LyogUGxhdGZvcm1WaWV3Q29udHJvbGxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFkYjc2NjdkNzIyODA2NGVlNjAzMjg3MmI2NWRhNjlkMmVkNDk0MWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNT
UEkuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisK
KyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNCYWcuaD4KKyNpbXBvcnQgPEFwcGxlTWVk
aWFTZXJ2aWNlcy9BTVNCYWdDb25zdW1lci5oPgorI2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZpY2Vz
L0FNU0JhZ1Byb3RvY29sLmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TRW5nYWdl
bWVudFJlcXVlc3QuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNFbmdhZ2VtZW50
UmVzdWx0Lmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TUHJvbWlzZS5oPgorI2lt
cG9ydCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FNU1Rhc2suaD4KKworI2Vsc2UgLy8gaWYgIVVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisKK0BpbnRlcmZhY2UgQU1TUHJvbWlzZTxSZXN1bHRUeXBlPiA6
IE5TT2JqZWN0CistICh2b2lkKWFkZEZpbmlzaEJsb2NrOih2b2lkKF4pKFJlc3VsdFR5cGUgX051
bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpZmluaXNoQmxvY2s7CitA
ZW5kCisKK0Bwcm90b2NvbCBBTVNCYWdQcm90b2NvbCA8TlNPYmplY3Q+CitAZW5kCisKK0BpbnRl
cmZhY2UgQU1TQmFnIDogTlNPYmplY3QgPEFNU0JhZ1Byb3RvY29sPgorQGVuZAorCitAcHJvdG9j
b2wgQU1TQmFnQ29uc3VtZXIgPE5TT2JqZWN0PgorQG9wdGlvbmFsCisrIChBTVNCYWcgKiljcmVh
dGVCYWdGb3JTdWJQcm9maWxlOworQGVuZAorCitAaW50ZXJmYWNlIEFNU0VuZ2FnZW1lbnRSZXF1
ZXN0IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
UmVxdWVzdERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkKK0Bwcm9wZXJ0eSAo
TlNfTk9OQVRPTUlDX0lPU09OTFksIHN0cm9uZywgbnVsbGFibGUpIE5TVVJMICpvcmlnaW5hdGlu
Z1VSTDsKK0BlbmQKKworQGludGVyZmFjZSBBTVNFbmdhZ2VtZW50UmVzdWx0IDogTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIEFNU1Rhc2sgOiBOU09iamVjdAor
LSAoQk9PTCljYW5jZWw7CitAZW5kCisKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJ
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNGQ3Y2M0Zjg1ZDQyMTkwMTRhMzVjZWJiNjJlMjY5MTYxZTM4YTUwZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxl
TWVkaWFTZXJ2aWNlc1VJU1BJLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXNVSS9BTVNVSUVuZ2Fn
ZW1lbnRUYXNrLmg+CisKKyNlbHNlIC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisj
aW5jbHVkZSAiQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwordHlwZWRlZiBVSVZpZXdDb250cm9s
bGVyIEFNU1VJVmlld0NvbnRyb2xsZXI7CisjZWxzZQorT0JKQ19DTEFTUyBOU1ZpZXdDb250cm9s
bGVyOwordHlwZWRlZiBOU1ZpZXdDb250cm9sbGVyIEFNU1VJVmlld0NvbnRyb2xsZXI7CisjZW5k
aWYKKworQGludGVyZmFjZSBBTVNVSUVuZ2FnZW1lbnRUYXNrIDogQU1TVGFzayA8QU1TQmFnQ29u
c3VtZXI+CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXF1ZXN0OihBTVNFbmdhZ2VtZW50UmVx
dWVzdCAqKXJlcXVlc3QgYmFnOihpZDxBTVNCYWdQcm90b2NvbD4pYmFnIHByZXNlbnRpbmdWaWV3
Q29udHJvbGxlcjooQU1TVUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyOworQHByb3Bl
cnR5IChOU19OT05BVE9NSUNfSU9TT05MWSwgYXNzaWduKSBCT09MIHJlbW90ZVByZXNlbnRhdGlv
bjsKKy0gKEFNU1Byb21pc2U8QU1TRW5nYWdlbWVudFJlc3VsdCAqPiAqKXByZXNlbnRFbmdhZ2Vt
ZW50OworQGVuZAorCisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKaW5kZXggNjU4Y2ViYzNjMjg1YWE2ZDg5ODI2OTk1MGJlYmRmZGNmYjFj
OTdjZi4uMmNhYjM5MjVkZjBiYmI4NGMzZjAzYTMwMTQzMWEyY2YyYTBlYWI4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybVZpZXdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTYxLDkgKzE2Miw5IEBAIHB1YmxpYzoK
ICNlbmRpZgogICAgIHZpcnR1YWwgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JFbGVtZW50
KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0QWN0
aW9ucykgeyByZXR1cm4gZGVmYXVsdEFjdGlvbnM7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTm90
SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQotICAgIHZpcnR1
YWwgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdmlydHVhbCBQbGF0
Zm9ybVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKSB7IHJldHVybiBu
dWxscHRyOyB9CiAgICAgdmlydHVhbCBOU0RpY3Rpb25hcnkgKmRhdGFEZXRlY3Rpb25Db250ZXh0
KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGY2NmEx
YmEzZTg5MjI1M2YxNzYzM2MzNDJjMjI5YWRmYWFiMjEzMjEuLmM3MzY5ZjM3MGEwZWU5ZDM1ZDY3
ODA4ZjNkMDA2ODdiOTFkNTc5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMjI2LDYgKzIyNiw4IEBA
IHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAKICNlbHNlIC8vICFUQVJHRVRfT1NfSVBIT05FCiAKKy0g
KE5TVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpKTsK
KwogLSAodm9pZClfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAt
ICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClf
Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDVjYmNhNzdhMTAwZjQwOGJhNTY1NDVi
ZTliMDk5ZmJlODg4NDc2ZDkuLjlkNWVmMjg0MzQzNWJmMGE2ODFjZmMwY2UxYjEwYjEyMmI0ZjA2
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTI5
LDYgKzI5LDcgQEAKIAogI2ltcG9ydCAiQVBJQ29udGV4dE1lbnVDbGllbnQuaCIKICNpbXBvcnQg
IkFQSVVJQ2xpZW50LmgiCisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIu
aD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5o
PgogI2ltcG9ydCA8d3RmL1dlYWtQdHIuaD4KQEAgLTE0OCw4ICsxNDksOCBAQCBwcml2YXRlOgog
I2VuZGlmCiAgICAgICAgIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMp
IGZpbmFsOwogICAgICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSBmaW5hbDsKLSAgICAgICAgVUlWaWV3Q29udHJvbGxlciAqcHJlc2VudGlu
Z1ZpZXdDb250cm9sbGVyKCkgZmluYWw7CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkK
KyAgICAgICAgUGxhdGZvcm1WaWV3Q29udHJvbGxlciAqcHJlc2VudGluZ1ZpZXdDb250cm9sbGVy
KCkgZmluYWw7CiAKICAgICAgICAgTlNEaWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgp
IGZpbmFsOwogCkBAIC0yNDEsOCArMjQyLDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICBi
b29sIHdlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRBY3Rpb25zIDogMTsKICAgICAgICAg
Ym9vbCB3ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQgOiAxOwotICAgICAgICBi
b29sIHByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgOiAxOwogI2VuZGlmCisgICAg
ICAgIGJvb2wgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA6IDE7CiAgICAgICAg
IGJvb2wgZGF0YURldGVjdGlvbkNvbnRleHRGb3JXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCB3
ZWJWaWV3SW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZCA6IDE7CiAjaWYgRU5BQkxFKFBP
SU5URVJfTE9DSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1t
CmluZGV4IGEwMDRhMTVkYjk3MTE5MjdlMjU4N2M2MWIxN2E3YzE5M2NiMGU4ZTIuLjFjZDVkMGNj
OWIzODlhODM1MjlmYzFkNWI3NGI4MjNjY2E1MDczYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTYyLDggKzE2Miw4IEBAIHZvaWQgVUlEZWxl
Z2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAjZW5kaWYKICAg
ICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3QWN0aW9uc0ZvckVsZW1lbnREZWZhdWx0QWN0aW9u
cyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmFjdGlv
bnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndl
YlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50
OildOwotICAgIG1fZGVsZWdhdGVNZXRob2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldl
YlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGlu
Z1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzopXTsKICNlbmRpZgorICAgIG1fZGVsZWdhdGVNZXRo
b2RzLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXcgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmll
dzopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3SXNNZWRpYUNhcHR1cmVBdXRob3Jp
emVkRm9yRnJhbWVEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OkBzZWxlY3Rvcihfd2ViVmlldzpjaGVja1VzZXJNZWRpYVBlcm1pc3Npb25Gb3JVUkw6bWFpbkZy
YW1lVVJMOmZyYW1lSWRlbnRpZmllcjpkZWNpc2lvbkhhbmRsZXI6KV0gfHwgW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6aW5jbHVkZVNlbnNpdGl2ZU1lZGlh
RGV2aWNlRGV0YWlsczopXTsKIAogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdNZWRpYUNh
cHR1cmVTdGF0ZURpZENoYW5nZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3Om1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlOildOwpAQCAtMTM5Miw3ICsx
MzkyLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGlkTm90SGFuZGxlVGFwQXNDbGlj
ayhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQKICAgICBbc3RhdGljX2Nhc3Q8aWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+PihkZWxlZ2F0ZSkgX3dlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dl
YlZpZXcuZ2V0KCkuZ2V0KCkgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6cG9pbnRdOwog
fQogCi1VSVZpZXdDb250cm9sbGVyICpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJlc2VudGluZ1Zp
ZXdDb250cm9sbGVyKCkKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorCitQbGF0Zm9y
bVZpZXdDb250cm9sbGVyICpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250
cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0xNDA3LDggKzE0MDksNiBAQCBVSVZpZXdDb250cm9sbGVyICpVSURlbGVnYXRlOjpV
SUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCkKICAgICByZXR1cm4gW3N0YXRpY19j
YXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oZGVsZWdhdGUpIF9wcmVzZW50aW5nVmlld0Nv
bnRyb2xsZXJGb3JXZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpXTsK
IH0KIAotI2VuZGlmCi0KIE5TRGljdGlvbmFyeSAqVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRhdGFE
ZXRlY3Rpb25Db250ZXh0KCkKIHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOTE1
YjdmNGM2NDhlMmZlMDE5OGVmZDE1YjU1ZmY0NTExODFhZDZmNy4uNmE1MGEwODEwMzM5NTg2NTgz
OWZmYTc4MGU4MzViNzU4MzM1ZmFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpbXBvcnQg
IkFQSUF0dGFjaG1lbnQuaCIKICNpbXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1w
b3J0ICJBUElVSUNsaWVudC5oIgorI2ltcG9ydCAiQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCIK
ICNpbXBvcnQgIkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbm5lY3Rpb24uaCIKICNpbXBvcnQg
IkRhdGFEZXRlY3Rpb25SZXN1bHQuaCIKQEAgLTUxLDYgKzUyLDcgQEAKICNpbXBvcnQgIldlYnNp
dGVEYXRhU3RvcmUuaCIKICNpbXBvcnQgIldLRXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCA8Rm91
bmRhdGlvbi9OU1VSTFJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlBTVNVSVJl
cXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0l0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUv
R2VvbWV0cnlVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGlnaGxpZ2h0VmlzaWJpbGl0
eS5oPgpAQCAtODgsNiArOTAsMTQgQEAgU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKFdlYkNv
bnRlbnRBbmFseXNpcyk7CiBTT0ZUX0xJTktfQ0xBU1MoV2ViQ29udGVudEFuYWx5c2lzLCBXZWJG
aWx0ZXJFdmFsdWF0b3IpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkK
K1NPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXMp
CitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzLCBBTVNFbmdhZ2Vt
ZW50UmVxdWVzdCkKKworU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKEFwcGxl
TWVkaWFTZXJ2aWNlc1VJKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFMKEFwcGxlTWVkaWFTZXJ2
aWNlc1VJLCBBTVNVSUVuZ2FnZW1lbnRUYXNrKQorI2VuZGlmCisKICNkZWZpbmUgTUVTU0FHRV9D
SEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRpb24sIHByb2Nlc3MoKS5j
b25uZWN0aW9uKCkpCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTihhc3NlcnRpb24s
IGNvbXBsZXRpb24pIE1FU1NBR0VfQ0hFQ0tfQ09NUExFVElPTl9CQVNFKGFzc2VydGlvbiwgcHJv
Y2VzcygpLmNvbm5lY3Rpb24oKSwgY29tcGxldGlvbikKIApAQCAtNjI4LDYgKzYzOCw0NyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0VXBIaWdobGlnaHRzT2JzZXJ2ZXIoKQogCiAjZW5kaWYKIAor
I2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c3RhcnRB
cHBsZVBheUFNU1VJU2Vzc2lvbihVUkwmJiBvcmlnaW5hdGluZ1VSTCwgQXBwbGVQYXlBTVNVSVJl
cXVlc3QmJiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9v
bD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFBcHBsZU1lZGlhU2Vydmlj
ZXNVSUxpYnJhcnkoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUGxhdGZvcm1WaWV3Q29udHJvbGxlciAq
cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyID0gdWlDbGllbnQoKS5wcmVzZW50aW5nVmlld0NvbnRy
b2xsZXIoKTsKKyAgICBpZiAoIXByZXNlbnRpbmdWaWV3Q29udHJvbGxlcikgeworICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXV0byBhbXNSZXF1ZXN0ID0gYWRvcHROUyhbYWxsb2NBTVNFbmdhZ2VtZW50UmVxdWVz
dEluc3RhbmNlKCkgaW5pdFdpdGhSZXF1ZXN0RGljdGlvbmFyeTpkeW5hbWljX29iamNfY2FzdDxO
U0RpY3Rpb25hcnk+KFtOU0pTT05TZXJpYWxpemF0aW9uIEpTT05PYmplY3RXaXRoRGF0YTpbV1RG
TW92ZShyZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0KSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhT
dHJpbmdFbmNvZGluZ10gb3B0aW9uczowIGVycm9yOm5pbF0pXSk7CisgICAgW2Ftc1JlcXVlc3Qg
c2V0T3JpZ2luYXRpbmdVUkw6V1RGTW92ZShvcmlnaW5hdGluZ1VSTCldOworCisgICAgYXV0byBh
bXNCYWcgPSByZXRhaW5QdHIoW2dldEFNU1VJRW5nYWdlbWVudFRhc2tDbGFzcygpIGNyZWF0ZUJh
Z0ZvclN1YlByb2ZpbGVdKTsKKworICAgIG1fYXBwbGVQYXlBTVNVSVNlc3Npb24gPSBhZG9wdE5T
KFthbGxvY0FNU1VJRW5nYWdlbWVudFRhc2tJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdDphbXNS
ZXF1ZXN0LmdldCgpIGJhZzphbXNCYWcuZ2V0KCkgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyOnBy
ZXNlbnRpbmdWaWV3Q29udHJvbGxlcl0pOworICAgIFttX2FwcGxlUGF5QU1TVUlTZXNzaW9uIHNl
dFJlbW90ZVByZXNlbnRhdGlvbjpZRVNdOworCisgICAgYXV0byBhbXNSZXN1bHQgPSByZXRhaW5Q
dHIoW21fYXBwbGVQYXlBTVNVSVNlc3Npb24gcHJlc2VudEVuZ2FnZW1lbnRdKTsKKyAgICBbYW1z
UmVzdWx0IGFkZEZpbmlzaEJsb2NrOm1ha2VCbG9ja1B0cihbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKEFNU0VuZ2FnZW1lbnRSZXN1bHQgKnJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOworICAgIH0p
LmdldCgpXTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Np
b24oKQoreworICAgIFtzdGQ6OmV4Y2hhbmdlKG1fYXBwbGVQYXlBTVNVSVNlc3Npb24sIG51bGxw
dHIpIGNhbmNlbF07Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKwog
VmVjdG9yPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gV2ViUGFnZVByb3h5OjpjcmVhdGVOZXR3
b3JrRXh0ZW5zaW9uc1NhbmRib3hFeHRlbnNpb25zKFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcykK
IHsKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxURVJJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDUwYzI0M2IyOTEyMTJjZjMyOGVlODJlN2NkM2QwYzE0YzI5NDNm
YjEuLjY5ZWU2MmI2NDRjNzE5MDg3NzIyYjNjZTM5MmYxNGJlYjFkMmFhMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yMzAsNiArMjMwLDcgQEAgY2xhc3MgU2hh
cmVkQnVmZmVyQ29weTsKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBBTVNV
SUVuZ2FnZW1lbnRUYXNrOwogT0JKQ19DTEFTUyBOU0ZpbGVXcmFwcGVyOwogT0JKQ19DTEFTUyBO
U01lbnU7CiBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsKQEAgLTU5Myw2ICs1OTQsMTEg
QEAgcHVibGljOgogICAgIHZvaWQgbW9kZWxFbGVtZW50UHJldmlld0RpZE9idGFpbkNvbnRleHRJ
ZChjb25zdCBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCYsIGNvbnN0IFN0cmluZyYsIHVpbnQzMl90
KTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgdm9pZCBzdGFy
dEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCYmLCBXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVz
dCYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYpOwor
ICAgIHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpOworI2VuZGlmCisKICNpZiBFTkFC
TEUoQ09OVEVYVF9NRU5VUykKICAgICBBUEk6OkNvbnRleHRNZW51Q2xpZW50JiBjb250ZXh0TWVu
dUNsaWVudCgpIHsgcmV0dXJuICptX2NvbnRleHRNZW51Q2xpZW50OyB9CiAgICAgdm9pZCBzZXRD
b250ZXh0TWVudUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpDb250ZXh0TWVudUNsaWVudD4m
Jik7CkBAIC0yNjUzLDYgKzI2NTksMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
TW9kZWxFbGVtZW50Q29udHJvbGxlcj4gbV9tb2RlbEVsZW1lbnRDb250cm9sbGVyOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBSZXRhaW5QdHI8QU1TVUlFbmdh
Z2VtZW50VGFzaz4gbV9hcHBsZVBheUFNU1VJU2Vzc2lvbjsKKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFdFQl9BVVRITikKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk+IG1fY3JlZGVudGlhbHNNZXNzZW5nZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1NmU4YTFkY2U4
MThjNjM5MGNhMDYyMmUzYjQ0YTVjMWVkMTBlZjExLi5iYTM3NGMwMDIyZjUyYjE0NjQzNmYyY2Yx
ZTNiM2JjOGM2YjhlNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC01OTEsNCArNTkxLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZVByb3h5IHsKICNlbmRpZgogCiAgICAgcmVxdWVzdFBlcm1pc3Npb24oc3RydWN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiBvcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpQZXJtaXNzaW9uRGVzY3JpcHRv
ciBkZXNjcmlwdG9yKSAtPiAoZW51bTp1aW50OF90IFdlYkNvcmU6OlBlcm1pc3Npb25TdGF0ZSBz
dGF0ZSkgQXN5bmMKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIFN0YXJ0QXBw
bGVQYXlBTVNVSVNlc3Npb24oVVJMIG9yaWdpbmF0aW5nVVJMLCBzdHJ1Y3QgV2ViQ29yZTo6QXBw
bGVQYXlBTVNVSVJlcXVlc3QgcmVxdWVzdCkgLT4gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcmVzdWx0
KSBBc3luYworICAgIEFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKQorI2VuZGlmCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0Yzkw
ZTcxMTQxMTk1ZDNlOTQ4ZTc4MzZhYzJkOGMwYzUyNTgyYzUyLi5lMjQwYjU2YmNlMTFmN2Q0ZDI1
YjNkZTdlZmQzZjEzNjg5YWRmYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NTksNiArMTQ1OSw4IEBACiAJCTkzRTZBNEVFMUJD
NUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0U2QTRFRDFCQzVERDM5MDBGOEEwRTcgLyogX1dL
SGl0VGVzdFJlc3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTkzRjU0OUI0MUUzMTc0QjcwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNG
NTQ5QjMxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk5NTBGMjg4MDI1MjQx
NEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyog
V0tNb3VzZURldmljZU9ic2VydmVyLmggKi87IH07CisJCTk1NjUwODM5MjZEODdBMkIwMEUxNUNC
NyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM3MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlh
U2VydmljZXNTUEkuaCAqLzsgfTsKKwkJOTU2NTA4M0EyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxl
TWVkaWFTZXJ2aWNlc1VJU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2Vz
VUlTUEkuaCAqLzsgfTsKIAkJOTU5MzY3NUYyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmgg
Ki87IH07CiAJCTk1Qzk0MzkxMjUyM0MwRDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Qzk0MzkwMjUyM0Mw
RDAwMDU0RjNENSAvKiBCYXNlQm9hcmRTUEkuaCAqLzsgfTsKIAkJOTkwMzZBRTIyM0E5NDlDRjAw
MDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5MDM2QUUxMjNBOTQ5Q0UwMDAw
QjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mb0ludGVybmFsLmggKi87IH07CkBAIC00
ODYxLDYgKzQ4NjMsOCBAQAogCQk5M0Y1NDlCNTFFMzE3NERBMDAwRTcyMzkgLyogV0tTbmFwc2hv
dENvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsg
cGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTUwRjI4N0YyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLTW91c2VEZXZp
Y2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1NjUwODM3MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBs
ZU1lZGlhU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
bGVNZWRpYVNlcnZpY2VzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1NjUw
ODM4MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RDI1MkU1RTMwMDBEM0YwQTAgLyogV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBX
S1N0eWx1c0RldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTkzNjc1RTI1MkU1RTMxMDBEM0Yw
QTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3MvV0tT
dHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVD
OTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBCYXNlQm9hcmRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTc3NjksNiArNzc3Myw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlFM0NBQUE0MzI0
MTMyNzhBMDBDRUQyRTIgLyogQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaCAqLywKIAkJCQk1NzJF
QkJEQzI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmggKi8sCisJCQkJOTU2NTA4Mzcy
NkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovLAorCQkJCTk1NjUw
ODM4MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICovLAogCQkJ
CTU3RkFCQjBFMjU4MTdDRjAwMDU5REM5NSAvKiBBdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQ
SS5oICovLAogCQkJCTFBNTcwNTEwMUJFNDEwRTUwMDg3NEFGMSAvKiBCbG9ja1NQSS5oICovLAog
CQkJCUU1MDYyMDkxMjU0MjEwMjAwMEM0MzA5MSAvKiBDb250YWN0c1VJU1BJLmggKi8sCkBAIC0x
MTgyOSw2ICsxMTgzNSw4IEBACiAJCQkJNTcyRUJCREQyNTM5MjE4MTAwMDU1MkIzIC8qIEFwcEF0
dGVzdFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0ODc5QjkyMzczQTkwOTAwRjU2NzhFIC8q
IEFwcEtpdFNvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNDhEMkE4NTIxNTgzQTdFMDBD
Njc1MkIgLyogQXBwS2l0U1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTY1MDgzOTI2RDg3QTJC
MDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0RUM5NEUzMjM1NkNDNTcwMDBCQjYxNCAvKiBBcHBsaWNhdGlvblNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUQ0QzE5MzFCMzlGMzMyMDBBQkMyOEUg
LyogQXBwbGljYXRpb25TdGF0ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5MzEwMkJE
MjY4M0YzRDAwMDJCQjg4NSAvKiBBcHBQcml2YWN5UmVwb3J0LmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKaW5kZXggMGM4ZGE2NjU3NzBiZDQ3M2FlYWFiYWIzZjE2YWY2MDE2
MGIyNzUwZi4uNzkyYjg0OGZhNTQ1ZDAyODA5YTlhMzUzZjg1ZDA5NzA5YTM4MjY0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTYyLDYgKzYyLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNlYXJjaFBvcHVwTWVudS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQXBwSGlnaGxpZ2h0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheUFN
U1VJUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0NvbG9yQ2hvb3Nlci5oPgpAQCAtMTUzNCw0ICsxNTM1LDE4IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojptb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1l
bnQmIGVsCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihjb25zdCBVUkwmIG9y
aWdpbmF0aW5nVVJMLCBjb25zdCBBcHBsZVBheUFNU1VJUmVxdWVzdCYgcmVxdWVzdCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIG1fcGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihvcmlnaW5hdGluZ1VSTCwgcmVxdWVzdCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKQoreworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKSk7Cit9CisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggYjk5MzhmMmJmYTYxMDBiMjk2MjNjZDAzMDVjZTBiMTRjNDMy
MjE1OC4uNmNjYTJkMGE4OGQ2OGM0ODhhOGJlZDEyZTNhOWJiMTg5ZWI3OTY0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtNDYyLDYgKzQ2MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgbW9kZWxF
bGVtZW50RGlkQ3JlYXRlUHJldmlldyhXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50JiwgY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJikgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIHZvaWQgc3Rh
cnRBcHBsZVBheUFNU1VJU2Vzc2lvbihjb25zdCBVUkwmLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eUFNU1VJUmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29s
PiYmKT4mJikgZmluYWw7CisgICAgdm9pZCBhYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCkgZmlu
YWw7CisjZW5kaWYKKwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6
b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9OwogICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5G
cmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyIHsgZmFsc2UgfTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA2MzU5YjdlMWYz
NzViOTRmNWE2YTY4MjQ0YzA3MjI0MDg1ZTUzNTMuLjllNTQwOWY3MjU2NmY4MWIxYTE3ODBiNzVm
NTRmODA2OTAxYTA5MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMS0wMiAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0g
QWRkIGEgbmV3IHBheW1lbnQgbWV0aG9kIGZvciBzaG93aW5nIEFNUyBVSQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNjM0CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS83OTAyNDIyNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVx
dWVzdC5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBh
eS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKworICAg
ICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjEtMTEtMDIgIFR5bGVyIFdpbGNvY2sgIDx0
eWxlcl93QGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogV2ViS2l0IG5lZWRzIHRvIGluY2x1ZGUg
TlNBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5Jbk5hdmlnYXRpb25PcmRlckF0dHJpYnV0ZSBpbiBhY2Nl
c3NpYmlsaXR5QXR0cmlidXRlTmFtZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGU5MWY0MWU4ODJk
NTZlYzE5YzZlNWYyMjJlOWY3ZjUzZTQ2YmI4MWUuLmI2N2RkYzJlMjM2MTQ0ZDJhNGNkMTE1Mzdh
Y2M4ODhkMzEzNjU5NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjYxLDYgKzI2MSw3IEBAIGZh
c3QvY3NzL2dldENvbXB1dGVkU3R5bGUvY29tcHV0ZWQtc3R5bGUtYXBwbGUtcGF5LWJ1dHRvbi5o
dG1sIFsgU2tpcCBdCiBmYXN0L2Nzcy93ZWJraXQtbmFtZWQtaW1hZ2UvYXBwbGUtcGF5LWxvZ28t
YmxhY2sgWyBTa2lwIF0KIGZhc3QvY3NzL3dlYmtpdC1uYW1lZC1pbWFnZS9hcHBsZS1wYXktbG9n
by13aGl0ZSBbIFNraXAgXQogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkvIFsgU2tpcCBdCitodHRw
L3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvIFsgU2tpcCBdCiAKICMgT25seSBXSzIgYWxsb3dz
IHVuY29uc3RyYWluZWQgc2Nyb2xsaW5nCiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9ydWJiZXJiYW5k
aW5nLXZpZXdwb3J0LXJlY3RzLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5
bWVudFJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5OTk3M2NhNDBmNWQw
NGE1OWUxMjFjMmUwZjk3MDM3MTQyNzhiYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDEgQEAKK1Rlc3QgYmFzaWMgY3JlYXRpb24gb2YgYSBQYXlt
ZW50UmVxdWVzdCBvYmplY3Qgd2l0aCBhbiBBcHBsZSBQYXkgQU1TIFVJIHBheW1lbnQgbWV0aG9k
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBQYXltZW50UmVxdWVz
dAorCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChudWxsLCBudWxsKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBWYWx1ZSBpcyBub3QgYSBzZXF1ZW5jZS4KK1BBU1MgbmV3IFBheW1lbnRSZXF1
ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCisKK1Rlc3RpbmcgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdl
bWVudFJlcXVlc3QKKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2Qo
KTsgZGVsZXRlIHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdAorUEFTUyBuZXcg
UGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdh
Z2VtZW50UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxl
IG9iamVjdC4KKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsg
cGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gJycKK1BBU1MgbmV3IFBheW1l
bnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVu
dFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmpl
Y3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1l
bnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9ICdpbnZhbGlkJworUEFTUyBuZXcgUGF5
bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2Vt
ZW50UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9i
amVjdC4KKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5
bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gbnVsbAorUEFTUyBuZXcgUGF5bWVu
dFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50
UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVj
dC4KKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVu
dE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gNworUEFTUyBuZXcgUGF5bWVudFJlcXVl
c3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVz
dCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKwor
U0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhv
ZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gWyBdCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChb
cGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRV
UDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRh
dGEuZW5nYWdlbWVudFJlcXVlc3QgPSBmYWxzZQorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3Bh
eW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBpcyBy
ZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKworU0VUVVA6
IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRh
LmVuZ2FnZW1lbnRSZXF1ZXN0ID0geyB9CitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVu
dE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9Q
YXltZW50UmVxdWVzdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBw
bGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMwZWMw
ZmQ2NTE0ODNkMTFkZjhmZGFmYzdkMDBlZmEzODhiNDFmMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3BheW1lbnQtcmVx
dWVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisKK2Rlc2NyaXB0
aW9uKCJUZXN0IGJhc2ljIGNyZWF0aW9uIG9mIGEgUGF5bWVudFJlcXVlc3Qgb2JqZWN0IHdpdGgg
YW4gQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IG1ldGhvZC4iKTsKKword2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiB2YWxpZFBheW1lbnRNZXRob2QoKSB7CisgICAgcmV0
dXJuIHsKKyAgICAgICAgc3VwcG9ydGVkTWV0aG9kczogJ2h0dHBzOi8vYXBwbGUuY29tL2Ftcy11
aScsCisgICAgICAgIGRhdGE6IHsKKyAgICAgICAgICAgIGVuZ2FnZW1lbnRSZXF1ZXN0OiB7IHZh
bHVlOiA0MiB9LAorICAgICAgICB9LAorICAgIH0KK30KKworZnVuY3Rpb24gdmFsaWRQYXltZW50
RGV0YWlscygpIHsKKyAgICByZXR1cm4geworICAgICAgICB0b3RhbDogeyBsYWJlbDogJ1lvdXIg
bGFiZWwnLCBhbW91bnQ6IHsgY3VycmVuY3k6ICdVU0QnLCB2YWx1ZTogJzEwLjAwJyB9IH0sCisg
ICAgfQorfQorCitmdW5jdGlvbiBsb2dBbmRTaG91bGRUaHJvdyhzZXR1cCwgdGVzdCkgeworICAg
IHJldHVybiBhY3RpdmF0ZVRoZW4oKCkgPT4geworICAgICAgICBkZWJ1ZygiU0VUVVA6ICIgKyBz
ZXR1cCk7CisgICAgICAgIGV2YWwoc2V0dXApOworICAgICAgICBzaG91bGRUaHJvdyh0ZXN0KTsK
KyAgICAgICAgZGVidWcoIiIpOworICAgIH0pOworfQorCitmdW5jdGlvbiBsb2dBbmRTaG91bGRO
b3RUaHJvdyhzZXR1cCwgdGVzdCkgeworICAgIHJldHVybiBhY3RpdmF0ZVRoZW4oKCkgPT4gewor
ICAgICAgICBkZWJ1ZygiU0VUVVA6ICIgKyBzZXR1cCk7CisgICAgICAgIGV2YWwoc2V0dXApOwor
ICAgICAgICBzaG91bGROb3RUaHJvdyh0ZXN0KTsKKyAgICAgICAgZGVidWcoIiIpOworICAgIH0p
OworfQorCithc3luYyBmdW5jdGlvbiBnbygpIHsKKyAgICBkZWJ1ZygiVGVzdGluZyBQYXltZW50
UmVxdWVzdCIpCisgICAgZGVidWcoIiIpCisgICAgc2hvdWxkVGhyb3coIm5ldyBQYXltZW50UmVx
dWVzdChudWxsLCBudWxsKSIpCisgICAgc2hvdWxkTm90VGhyb3coIm5ldyBQYXltZW50UmVxdWVz
dChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBk
ZWJ1ZygiIikKKworICAgIGRlYnVnKCJUZXN0aW5nIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2Fn
ZW1lbnRSZXF1ZXN0IikKKyAgICBkZWJ1ZygiIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJv
dygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBkZWxldGUgcGF5bWVudE1l
dGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0IiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVu
dE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAgIGF3YWl0IGxvZ0FuZFNob3Vs
ZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRo
b2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9ICcnIiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5
bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAgIGF3YWl0IGxvZ0FuZFNo
b3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRN
ZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9ICdpbnZhbGlkJyIsICJuZXcgUGF5bWVudFJl
cXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2Fp
dCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgp
OyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSBudWxsIiwgIm5ldyBQYXlt
ZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAg
IGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0
aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IDciLCAibmV3IFBh
eW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisg
ICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRN
ZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gWyBdIiwgIm5l
dyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSki
KQorICAgIGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXlt
ZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IGZhbHNl
IiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFp
bHMoKSkiKQorICAgIGF3YWl0IGxvZ0FuZFNob3VsZE5vdFRocm93KCJwYXltZW50TWV0aG9kID0g
dmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVz
dCA9IHsgfSIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1l
bnREZXRhaWxzKCkpIikKKyAgICBkZWJ1ZygiIikKKworICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImJ1dHRvbiIpLnJlbW92ZSgpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0
aW9uIGNsaWNrRWxlbWVudChlbGVtZW50KSB7CisgICAgbGV0IHggPSBlbGVtZW50Lm9mZnNldExl
ZnQgKyAyOworICAgIGxldCB5ID0gZWxlbWVudC5vZmZzZXRUb3AgKyAyOworCisgICAgdmFyIHN1
cHBvcnRzVG91Y2hFdmVudHMgPSAiVG91Y2hFdmVudCIgaW4gd2luZG93OworICAgIGlmIChzdXBw
b3J0c1RvdWNoRXZlbnRzICYmIHdpbmRvdy50ZXN0UnVubmVyICYmIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgKGZ1bmN0aW9uKCkgeyB1
aUNvbnRyb2xsZXIuc2luZ2xlVGFwQXRQb2ludCgke3h9LCAke3l9LCBmdW5jdGlvbigpIHsgfSk7
IH0pKCk7YCwgZnVuY3Rpb24gKCkgeyB9KTsKKyAgICB9IGVsc2UgaWYgKHdpbmRvdy5ldmVudFNl
bmRlcikgeworICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
KyAgICB9Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBjbGlja0VsZW1l
bnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uIikpOworfQorCis8L3NjcmlwdD4KKzxi
dXR0b24gb25jbGljaz0nZ28oKSc+R288L2J1dHRvbj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443162</attachid>
            <date>2021-11-02 19:26:45 -0700</date>
            <delta_ts>2021-11-03 11:21:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232634-20211102192644.patch</filename>
            <type>text/plain</type>
            <size>86315</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmOTQ5NmNhZjI4YjhjNGZiYTI0ZTIyYjI1NGJhZjk2ZGVjMWU3MzkyLi5i
ODc0MTA0ODk3ODNjZjlkMGExNGM2ODNjNjkwY2Y0ZTViNDdlMGIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTkgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2UgdGhl
IFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFzIGEgd2F5IGZvciBBcHBsZSBkb21haW5zIHRvIHNo
b3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAgICBwYXltZW50IFVJcyB3aXRob3V0IGhhdmluZyB0
byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMgKGUuZy4gQXBwbGUgUGF5IEpTKS4gVGhpcyBuZXcg
cGF5bWVudAorICAgICAgICBtZXRob2QgaXMgcXVpdGUgYmFyZS1ib25lcyBpbiB0aGF0IGl0IGp1
c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNzZXMgaXQgdG8gQU1TLCB3aGljaCB0aGVuCisgICAg
ICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHRoYXQuIE5vIGRhdGEgaXMgZXhw
b3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVyIHRoYW4gZWl0aGVyCisgICAgICAgIGFuIGVycm9y
IG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIgdGhlIHBheW1lbnQgd2FzIHN1Y2Nlc3NmdWwuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1
ZXN0Lmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dEFQSVZlcnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9u
OjpjdXJyZW50KToKKyAgICAgICAgQnVtcCB0aGUgY3VycmVudCBBcHBsZSBQYXkgdmVyc2lvbi4K
KworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
ZmluaXNoU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6cGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNV
cGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIEFkZCBhIG5ldyBwYXltZW50
IG1ldGhvZCB0aGF0IHVzZXMgQU1TIHRvIHByZXNlbnQgVUkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Q6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZGVjb2RlKToKKyAgICAg
ICAgSURMIGBkaWN0aW9uYXJ5YCB0aGF0IHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgYG9iamVjdCBk
YXRhYCBpbiBgUGF5bWVudE1ldGhvZERhdGFgIHdoZW4gdGhlCisgICAgICAgIEFwcGxlIFBheSBB
TVMgVUkgcGF5bWVudCBtZXRob2QgaXMgdXNlZC4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbik6
CisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIGFsbG93IGZvciB0aGVyZSB0byBiZSBtb3Jl
IHRoYW4gb25lIHBheW1lbnQgbWV0aG9kIGltcGxlbWV0ZWQgYXQgb25jZS4KKworICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBheW1lbnRSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVz
dDo6YWNjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpyZWplY3QpOgor
ICAgICAgICBUaGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkgZG9lc24ndCByZXF1aXJlIHRoYXQg
cGF5bWVudCBtZXRob2RzIGJlIGFib3J0YWJsZS4gQXMgc3VjaCwgYWRkCisgICAgICAgIHNvbWUg
bG9naWMgdGhhdCBjaGVja3Mgd2l0aCB0aGUgYWN0aXZlIGBQYXltZW50SGFuZGxlcmAgdG8gc2Vl
IGlmIGl0IGNhbiBiZSBhYm9ydGVkIGJlZm9yZQorICAgICAgICBhY3R1YWxseSBkb2luZyBzby4g
QWxzbyBjcmVhdGUgc29tZSBwdWJsaWMgaGVscGVyIG1ldGhvZHMgdGhhdCBhbGxvdyB0aGUgcGF5
bWVudCByZXF1ZXN0IHRvCisgICAgICAgIGJlIGFjY2VwdGVkIHdpdGhvdXQgcHJvdmlkaW5nIHNo
aXBwaW5nIGluZm9ybWF0aW9uIGFuZCBiZSBkaXJlY3RseSByZWplY3RlZCB3aXRoIGFuIGVycm9y
LgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNB
Y3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdGFydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphYm9ydEFwcGxlUGF5QU1TVUlT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIEFkZCBwbHVtYmluZyBiZXR3ZWVuIFdlYkNvcmUvV2ViUHJv
Y2VzcyBhbmQgVUlQcm9jZXNzLiBBbHNvIG1haW50YWluIHN0YXRlIGFib3V0IGlmIHRoZXJlJ3MK
KyAgICAgICAgYWxyZWFkeSBhbiBhY3RpdmUgQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IHNlc3Np
b24gKG5lZWRlZCBieSB0aGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkpLgorCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgaGVscGVyIGBQbGF0Zm9ybVZpZXdDb250cm9sbGVyYCB0aGF0IHdpbGwgZG8gdGhl
IHJpZ2h0IHRoaW5nIG9uIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVl
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b252ZXJ0RGF0YSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgdGhlIGBjb252ZXJ0QW5kVmFs
aWRhdGVgIHRoYXQgdGFrZXMgYEpTQzo6SlNWYWx1ZWAgdG8gYGNvbnZlcnRBbmRWYWxpZGF0ZUFw
cGxlUGF5UmVxdWVzdGAKKyAgICAgICAgc28gdGhhdCB0aGVyZSBpc24ndCBhIG5hbWluZyBjb25m
bGljdCBpbiBvdGhlciBmaWxlcyB0aGF0IG1heSB3YW50IHRvIGRvIGEgc2ltaWxhciB0aGluZy4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAg
IERyaXZlLWJ5OiBVbmlmaWVkIHNvdXJjZXMgZml4LgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJbnRlZ3JhdGlvbl0gUHJv
dmlkZSBiaWRpIHByb3BlcnRpZXMgd2hlbiBjb25zdHJ1Y3RpbmcgVGV4dFJ1bgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRl
eCA0ZWQ5ODM5ZDkzOTAwNDc5ODYyNjIzNjE4MjE1MWY3OGM2ZjE2MDQyLi5lMjBmYzg3YTc3NzAy
Y2Q1ZjY3NjA2OTIwOGExOWJmOTEyZGMxZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisy
MDIxLTExLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBb
UGF5bWVudCBSZXF1ZXN0XSBBZGQgYSBuZXcgcGF5bWVudCBtZXRob2QgZm9yIHNob3dpbmcgQU1T
IFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2
MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MDI0MjI3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIExldmVyYWdlIHRoZSBXM0MgUGF5bWVudCBS
ZXF1ZXN0IEFQSSBhcyBhIHdheSBmb3IgQXBwbGUgZG9tYWlucyB0byBzaG93IGFsdGVybmF0ZSBu
YXRpdmUKKyAgICAgICAgcGF5bWVudCBVSXMgd2l0aG91dCBoYXZpbmcgdG8gYWRkIG5ldyBwcm9w
cmlldGFyeSBBUElzIChlLmcuIEFwcGxlIFBheSBKUykuIFRoaXMgbmV3IHBheW1lbnQKKyAgICAg
ICAgbWV0aG9kIGlzIHF1aXRlIGJhcmUtYm9uZXMgaW4gdGhhdCBpdCBqdXN0IHRha2VzIHNvbWUg
SlNPTiBhbmQgcGFzc2VzIGl0IHRvIEFNUywgd2hpY2ggdGhlbgorICAgICAgICBkZWNpZGVzIHdo
YXQgVUkgdG8gc2hvdyBiYXNlZCBvbiB0aGF0LiBObyBkYXRhIGlzIGV4cG9zZWQgYmFjayB0byB0
aGUgcGFnZSBvdGhlciB0aGFuIGVpdGhlcgorICAgICAgICBhbiBlcnJvciBvciBhIHllcy9ubyBh
cyB0byB3aGV0aGVyIHRoZSBwYXltZW50IHdhcyBzdWNjZXNzZnVsLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Np
b24pOiBBZGRlZC4KKyAgICAgICAgQWRkIHBsdW1iaW5nIGJldHdlZW4gV2ViQ29yZS9XZWJQcm9j
ZXNzIGFuZCBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24pOiBBZGRl
ZC4KKyAgICAgICAgVXNlIEFNUyB0byBwcmVzZW50IFVJIGZvciB0aGUgZ2l2ZW4gZW5nYWdlbWVu
dCByZXF1ZXN0IGRhdGEgYW5kIG9yaWdpbmF0aW5nIFVSTC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByZXNlbnRpbmdW
aWV3Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6
VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpV
SUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKToKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIGAtW1dLVUlEZWxlZ2F0ZVByaXZhdGUgX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldl
YlZpZXc6XWAgb24gbWFjT1MgdG9vLgorCisgICAgICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlTWVkaWFTZXJ2aWNlc1NQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29j
b2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDogQWRkZWQuCisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTEtMDIgIEthdGUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBTYWZhcmkgb24gaU9TIGFu
ZCBtYWNPUyBhcmUgbm90IHNlbmRpbmcgYWQgY2xpY2sgYXR0cmlidXRpb24gcmVwb3J0cyBmb3Ig
UHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMDQyYzE0NTAyMjg1Njk0MWY4MzRiZjdmZDE3ZDkw
NzZiMDZkNGJkNi4uYzRmYThlYzI2YWEyZmRmZmQ3OGQ4OWU5Y2JiNGFmZGM0OWNjMGYwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC02
OSw2ICs2OSw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAkKFBST0pFQ1RfRElS
KS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbS5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlw
Ym9hcmQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CmluZGV4IGYzMDQ4ZmVjY2YzYzQ2Yzg4YjUwZWQxNDQ3OTU5Zjc0NmRmMjIyZmYuLjE3
ZDkxNjU0ODdjZDc3ODZhOWExNjI1NTU3YWQzZTczNGMxOTA3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03Niw2ICs3Niw4IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9u
UGxheWJhY2tFdmVudEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViQ29yZS9KU0FuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9uVGltZWxpbmUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FuaW1hdGlvblRp
bWVsaW5lLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QXBwbGVQYXlBTVNVSVJlcXVlc3QuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5j
ZWxFdmVudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5k
ZXggYmFhZGE3NjM2ZmJiOTNlNjI1NDcyZDc5ZWVlYmU2OGIxOGFkZmNiYi4uYWZhMmMwMTM3ZTQ4
ZTJlM2UyNmVjN2JmM2YyY2RmYzJhOGNhMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCkBAIC0xMDEsNiArMTAxLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlN
b2RpZmllci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVw
YXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1
bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZEl0ZW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlwYm9hcmQuaWRsIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11
aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNDRjNzc5Zjgy
M2EyZTM4ZWY4MDYzZjRhYTQ1NWMyNTA4MjQ5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXIuY3BwCkBAIC0wLDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIgorCisjaWYgRU5BQkxF
KEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNsdWRl
ICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVk
ZSAiSlNBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgRXhjZXB0
aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1T
VUlSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNWYWx1ZSBk
YXRhKQoreworICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisKKyAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGNvbnRleHQudm0oKSk7CisgICAg
YXV0byBhcHBsZVBheUFNU1VJUmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5QU1T
VUlSZXF1ZXN0PigqY29udGV4dC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7CisgICAgaWYgKHRocm93
U2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4
Y2VwdGlvbkVycm9yIH07CisKKyAgICBpZiAoIWFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1l
bnRSZXF1ZXN0LnN0YXJ0c1dpdGgoJ3snKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBp
cyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCJfcyB9Owor
CisgICAgcmV0dXJuIFdURk1vdmUoYXBwbGVQYXlBTVNVSVJlcXVlc3QpOworfQorCitFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAgIGF1dG8gcmVxdWVzdE9y
RXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QoZG9jdW1l
bnQsIGRhdGEpOworICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisg
ICAgICAgIHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisg
ICAgcmV0dXJuIHsgfTsKK30KKworYm9vbCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Omhh
bmRsZXNJZGVudGlmaWVyKGNvbnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJiBp
ZGVudGlmaWVyKQoreworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxVUkw+KGlkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvJiB1cmwgPSBzdGQ6Omdl
dDxVUkw+KGlkZW50aWZpZXIpOworICAgIHJldHVybiB1cmwuaG9zdCgpID09ICJhcHBsZS5jb20i
ICYmIHVybC5wYXRoKCkgPT0gIi9hbXMtdWkiOworfQorCitib29sIEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAg
YXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5o
YXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbigpOworfQorCit2b2lkIEFwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlcjo6ZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgcmVzdWx0
KQoreworICAgIGlmICghcmVzdWx0KSB7CisgICAgICAgIG1fcGF5bWVudFJlcXVlc3QtPnJlamVj
dChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgbV9wYXltZW50UmVxdWVzdC0+YWNjZXB0KHN0ZDo6Z2V0PFVSTD4obV9pZGVudGlmaWVyKS5z
dHJpbmcoKSwgW3N1Y2Nlc3MgPSAqcmVzdWx0XSAoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCkgLT4gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4geworICAgICAgICBK
U0M6OkpTTG9ja0hvbGRlciBsb2NrIHsgJmxleGljYWxHbG9iYWxPYmplY3QgfTsKKworICAgICAg
ICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgYXV0byogb2Jq
ZWN0ID0gY29uc3RydWN0RW1wdHlPYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAg
ICBvYmplY3QtPnB1dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAi
c3VjY2VzcyIpLCBKU0M6OmpzQm9vbGVhbihzdWNjZXNzKSk7CisKKyAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCB7IH0pOworCisgICAgICAgIHJldHVybiB7IHZtLCBvYmpl
Y3QgfTsKKyAgICB9KTsKK30KKworQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBQYXltZW50UmVx
dWVzdDo6TWV0aG9kSWRlbnRpZmllciYgaWRlbnRpZmllciwgUGF5bWVudFJlcXVlc3QmIHBheW1l
bnRSZXF1ZXN0KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeyAmZG9jdW1lbnQg
fQorICAgICwgbV9pZGVudGlmaWVyIHsgaWRlbnRpZmllciB9CisgICAgLCBtX3BheW1lbnRSZXF1
ZXN0IHsgcGF5bWVudFJlcXVlc3QgfQoreworICAgIEFTU0VSVChoYW5kbGVzSWRlbnRpZmllciht
X2lkZW50aWZpZXIpKTsKK30KKworRG9jdW1lbnQmIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
cjo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIEFTU0VSVChpczxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKK30KKworUGFnZSYgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyOjpwYWdlKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5wYWdlKCkpOworICAg
IHJldHVybiAqZG9jdW1lbnQoKS5wYWdlKCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEoSlNDOjpKU1ZhbHVlIGRhdGEpCit7
CisgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eUFNU1VJUmVxdWVzdCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhKTsKKyAgICBpZiAo
cmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVxdWVz
dE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIG1fYXBwbGVQYXlBTVNVSVJl
cXVlc3QgPSByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgcmV0
dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyOjpzaG93KERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9hcHBsZVBheUFN
U1VJUmVxdWVzdCk7CisKKyAgICBpZiAoIXBhZ2UoKS5zdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9u
KGRvY3VtZW50LCAqdGhpcywgKm1fYXBwbGVQYXlBTVNVSVJlcXVlc3QpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9OworCisgICAgcmV0dXJuIHsgfTsKK30KKwordm9p
ZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUoKQoreworICAgIHBhZ2UoKS5hYm9y
dEFwcGxlUGF5QU1TVUlTZXNzaW9uKCp0aGlzKTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2UgJiYgIXBhZ2UtPmhhc0Fj
dGl2ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCkpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpV
cGRhdGVSZWFzb24sIFN0cmluZyYmIC8qIGVycm9yICovLCBBZGRyZXNzRXJyb3JzJiYsIFBheWVy
RXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogLyogcGF5bWVudE1ldGhvZEVycm9ycyAqLykK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBzaGlwcGluZy9wYXltZW50IGluZm8iKTsKKyAgICBy
ZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6Om1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJiAvKiBtZXJj
aGFudFNlc3Npb25WYWx1ZSAqLykKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNT
QUdFKCJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBtZXJjaGFudCB2
YWxpZGF0aW9uIik7CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKQor
eworICAgIGhpZGUoKTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKQoreworICAgIHJldHVy
biBzaG93KGRvY3VtZW50KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11
aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDc0NjkxY2EzZjE5
YTU5MDUyNjAxMTVjZjQzY2RhODM0Yjc4NmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
LmgKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNs
dWRlICJBcHBsZVBheUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmgiCisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQYXltZW50
SGFuZGxlci5oIgorI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0Z1
bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFz
cyBKU09iamVjdDsKK2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
Y2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQYWdlOworCitzdHJ1Y3QgQWRkcmVzc0Vycm9yczsKK3N0
cnVjdCBQYXllckVycm9yRmllbGRzOworCitlbnVtIGNsYXNzIFBheW1lbnRDb21wbGV0ZTsKKwor
Y2xhc3MgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyIGZpbmFsIDogcHVibGljIFBheW1lbnRI
YW5kbGVyLCBwcml2YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVEYXRhKERvY3VtZW50JiwgSlNDOjpK
U1ZhbHVlKTsKKyAgICBzdGF0aWMgYm9vbCBoYW5kbGVzSWRlbnRpZmllcihjb25zdCBQYXltZW50
UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBib29sIGhhc0FjdGl2ZVNl
c3Npb24oRG9jdW1lbnQmKTsKKworICAgIHZvaWQgZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYpOworCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQYXltZW50SGFuZGxlcjsK
KyAgICBleHBsaWNpdCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmLCBjb25z
dCBQYXltZW50UmVxdWVzdDo6TWV0aG9kSWRlbnRpZmllciYsIFBheW1lbnRSZXF1ZXN0Jik7CisK
KyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKKyAgICBQYWdlJiBwYWdlKCkgY29uc3Q7
CisKKyAgICAvLyBQYXltZW50SGFuZGxlcgorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnRE
YXRhKEpTQzo6SlNWYWx1ZSkgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hvdyhEb2N1
bWVudCYpIGZpbmFsOworICAgIGJvb2wgY2FuQWJvcnRTZXNzaW9uKCkgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2b2lkIGhpZGUoKSBmaW5hbDsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50
KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6
OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJv
ckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1Zh
bHVlJiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29t
cGxldGU+JiYpIGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYpIGZpbmFsOworCisgICAgUGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOworICAgIFJlZjxQYXltZW50UmVxdWVzdD4gbV9wYXltZW50UmVx
dWVzdDsKKyAgICBzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5QU1TVUlSZXF1ZXN0PiBtX2FwcGxlUGF5
QU1TVUlSZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU0M2E3ZTQ1NDU5NmVmMDY1M2NkYzYxMGNkZGZmNDZk
OGY3Zjk0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKSAmJiBF
TkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8
d3RmL1VSTC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdCB7CisgICAgU3RyaW5nIGVu
Z2FnZW1lbnRSZXF1ZXN0OyAvLyByZXF1aXJlZCBKU09OCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBh
eUFNU1VJUmVxdWVzdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5j
b2RlciA8PCBlbmdhZ2VtZW50UmVxdWVzdDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K3N0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IEFwcGxlUGF5QU1TVUlSZXF1ZXN0
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4g
ZW5nYWdlbWVudFJlcXVlc3Q7CisgICAgZGVjb2RlciA+PiBlbmdhZ2VtZW50UmVxdWVzdDsKKyAg
ICBpZiAoIWVuZ2FnZW1lbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
CisgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKCplbmdhZ2VtZW50UmVxdWVzdCkgfSB9OworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45ZTM4ZTBmZGJjMDdlOTQ1Y2Y0YzkwMTYwNTBiMGI5MDc2NTZhZDE3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkv
QXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0FNU19VSSZQQVlNRU5UX1JFUVVFU1QsCitdIGRp
Y3Rpb25hcnkgQXBwbGVQYXlBTVNVSVJlcXVlc3QgeworICAgIHJlcXVpcmVkIEpTT04gZW5nYWdl
bWVudFJlcXVlc3Q7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCmluZGV4IDg3Mjc2
ZTg1MzU0YTA5N2U2MGI1OGRkYjBiNThkNzY0Y2VmZjkwYjkuLmNkYTAzODk3Yjc4MzFmOTc2MGU4
YWJiNmI0ZGNmNzNlNTlkN2I0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0KQEAg
LTM1LDcgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgUGF5bWVudEFQSVZl
cnNpb246OmN1cnJlbnQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBjdXJyZW50ID0gW10gewot
I2lmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfU0hJ
UFBJTkdfQ09OVEFDVF9FRElUSU5HX01PREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5H
X0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pIHx8IEVO
QUJMRShBUFBMRV9QQVlfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9ORU5UU19SQU5HRSkKKyNp
ZiBFTkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKSB8fCBFTkFCTEUoQVBQTEVf
UEFZX0FNU19VSSkKKyAgICAgICAgcmV0dXJuIDEzOworI2VsaWYgRU5BQkxFKEFQUExFX1BBWV9D
T1VQT05fQ09ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19DT05UQUNUX0VESVRJTkdf
TU9ERSkgfHwgRU5BQkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKSB8fCBFTkFCTEUo
QVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElO
R19NRVRIT0RfREFURV9DT01QT05FTlRTX1JBTkdFKQogICAgICAgICByZXR1cm4gMTI7CiAjZWxp
ZiBFTkFCTEUoQVBQTEVfUEFZX1NFU1NJT05fVjExKQogICAgICAgICByZXR1cm4gMTE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA1MzBhYzky
MmUyMzA2NWQ5NGFjNDliNGIxZTU1ODYxMGVmODQ0MGQ3Li4xMDY0YjU3Zjg1OTdmZjYwYWE3OTcx
NjIwZWU2NWNmNDdhNTRjM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXlt
ZW50SGFuZGxlci5jcHAKQEAgLTc4LDcgKzc4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRhdGEpCitzdGF0
aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRh
dGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIgfTsKQEAgLTkzLDcg
KzkzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVzdD4gY29udmVydEFuZFZh
bGlkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGMKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50JiBkb2N1bWVudCwgSlND
OjpKU1ZhbHVlIGRhdGEpCiB7Ci0gICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0
QW5kVmFsaWRhdGUoZG9jdW1lbnQsIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9u
ID0gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KGRvY3VtZW50LCBkYXRhKTsKICAg
ICBpZiAocmVxdWVzdE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4g
cmVxdWVzdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtMjAyLDcgKzIwMiw3
IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5k
VmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBkYXRhKQogewotICAgIGF1
dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVy
dEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRh
dGEpOwogICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4IDdiZmVjZmU5NTVlMDhj
NTlhN2M4YjJkOGVjNDE4OTM3YTlhM2RlZWYuLjk3MzE0MThjNTU3ZTZmZTE3NGY2Mzg0OTRkMzQ1
NjEwMjliMGE1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5oCkBAIC03Myw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gUGF5bWVudEhhbmRsZXIKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUpIGZpbmFsOwogICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGNhbkFi
b3J0U2Vzc2lvbigpIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGhpZGUoKSBmaW5h
bDsKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0
YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3Is
IEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXlt
ZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5oCmluZGV4IDI4MDk5MjVmNWQyMWYzZTNmMzQ3N2ExZTQ1
MjQzODUwNzg1ZDRmYWQuLjUyMGMwNzc1Njk2YTJmMGUyZTczMDA3MzVlOGM5Nzc0OTVmMWE2MTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZm
ZXIuaApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlk
ZW9UcmFja0NsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRl
IDx3dGYvT2JzZXJ2ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3Bw
CmluZGV4IGY1NWRhMjVjNjBmNTAzOGJlODlmMjg2YjdjMTAxODJjZDkxMGQ2NmEuLjYzMGM2MDk2
YzU3Y2NhODA0ZDFhMWUzMDFkZmQ5Y2Y5MTUwNGRkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0y
OCw2ICsyOCwxMCBAQAogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKIAorI2lmIEVOQUJM
RShBUFBMRV9QQVlfQU1TX1VJKQorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogI2luY2x1ZGUgIkFwcGxlUGF5
UGF5bWVudEhhbmRsZXIuaCIKICNlbmRpZgpAQCAtMzksMTIgKzQzLDE2IEBAIFJlZlB0cjxQYXlt
ZW50SGFuZGxlcj4gUGF5bWVudEhhbmRsZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBh
eW1lbnRSZXF1ZXN0CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBpZiAoQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgQXBwbGVQYXlQYXltZW50SGFuZGxlcihkb2N1bWVudCwgaWRlbnRpZmll
ciwgcGF5bWVudFJlcXVlc3QpKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9Q
QVlfQU1TX1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJ
ZGVudGlmaWVyKGlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcihkb2N1bWVudCwgaWRlbnRpZmllciwgcGF5bWVudFJlcXVl
c3QpKTsKKyNlbmRpZgorCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBVTlVTRURf
UEFSQU0ocGF5bWVudFJlcXVlc3QpOwogICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKLSNl
bmRpZgotCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTY2LDEyICs3NCwxNiBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50JiBkb2N1
bWVudCwgSlNDOjpKU1ZhbHVlCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBpZiAoQXBwbGVQ
YXlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRpZmllcikpCiAgICAgICAg
IHJldHVybiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEoZG9jdW1lbnQsIGRh
dGEpOwotI2Vsc2UKKyNlbmRpZgorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAg
aWYgKEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRp
ZmllcikpCisgICAgICAgIHJldHVybiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZhbGlk
YXRlRGF0YShkb2N1bWVudCwgZGF0YSk7CisjZW5kaWYKKwogICAgIFVOVVNFRF9QQVJBTShkb2N1
bWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKGRhdGEpOwogICAgIFVOVVNFRF9QQVJBTShpZGVudGlm
aWVyKTsKLSNlbmRpZgotCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtODgsMTEgKzEwMCwxNyBA
QCBib29sIFBheW1lbnRIYW5kbGVyOjplbmFibGVkRm9yQ29udGV4dChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KQogYm9vbCBQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihE
b2N1bWVudCYgZG9jdW1lbnQpCiB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKLSAgICByZXR1cm4g
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihkb2N1bWVudCk7Ci0jZWxz
ZQorICAgIGlmIChBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9uKGRvY3Vt
ZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9Q
QVlfQU1TX1VJKQorICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2
ZVNlc3Npb24oZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCiAgICAg
VU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCmluZGV4IDdmODZlYmQwZjI3MGZhNjMz
NmMwMmQ4N2Q1ZjQ0Yzg3NTI2NjlhN2EuLmFmNDYzNTgxZDYxYWU1MzNkMzVkYjFmODBkZDZmNTRh
NmM2MWE1MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUpID0gMDsK
ICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSA9IDA7CisgICAg
dmlydHVhbCBib29sIGNhbkFib3J0U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlk
ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5j
dGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSA9IDA7CiAgICAgdmlydHVhbCBF
eGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVh
c29uLCBTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9yRmllbGRzJiYs
IEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAK
aW5kZXggMDYzY2ZmN2UwOTA3YjVlMzdjNGZmMjQxNDA0ZDhkM2I5MzgxMmJkYi4uNWIxZGM3ODli
MzRlOTE3YTI5MzNlZDVmYTYzMGFlYTZjODcwNGUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTQ5
NCw2ICs0OTQsMTEgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6YWJvcnQoQWJvcnRQcm9taXNlJiYg
cHJvbWlzZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtX2FjdGl2ZVBheW1l
bnRIYW5kbGVyICYmICFhY3RpdmVQYXltZW50SGFuZGxlcigpLT5jYW5BYm9ydFNlc3Npb24oKSkg
eworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNl
cHRpb24geyBBYm9ydEVycm9yIH0pOwogICAgIHByb21pc2UucmVzb2x2ZSgpOwogfQpAQCAtNjk3
LDYgKzcwMiwzNSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0Ojp3aGVuRGV0YWlsc1NldHRsZWQoc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3ZvaWQgUGF5bWVu
dFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1lbnRSZXNwb25z
ZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9uKQoreworICAgIEFTU0VSVCghbV9p
c1VwZGF0aW5nKTsKKyAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOwor
CisgICAgYm9vbCBpc1JldHJ5ID0gbV9yZXNwb25zZTsKKyAgICBpZiAoIWlzUmV0cnkpIHsKKyAg
ICAgICAgbV9yZXNwb25zZSA9IFBheW1lbnRSZXNwb25zZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgKnRoaXMpOworICAgICAgICBtX3Jlc3BvbnNlLT5zZXRSZXF1ZXN0SWQobV9k
ZXRhaWxzLmlkKTsKKyAgICB9CisKKyAgICBtX3Jlc3BvbnNlLT5zZXRNZXRob2ROYW1lKG1ldGhv
ZE5hbWUpOworICAgIG1fcmVzcG9uc2UtPnNldERldGFpbHNGdW5jdGlvbihXVEZNb3ZlKGRldGFp
bHNGdW5jdGlvbikpOworICAgIG1fcmVzcG9uc2UtPnNldFNoaXBwaW5nQWRkcmVzcyhudWxscHRy
KTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRTaGlwcGluZ09wdGlvbihudWxsU3RyaW5nKCkpOworICAg
IG1fcmVzcG9uc2UtPnNldFBheWVyTmFtZShudWxsU3RyaW5nKCkpOworICAgIG1fcmVzcG9uc2Ut
PnNldFBheWVyRW1haWwobnVsbFN0cmluZygpKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRQYXllclBo
b25lKG51bGxTdHJpbmcoKSk7CisKKyAgICBpZiAoIWlzUmV0cnkpCisgICAgICAgIHNldHRsZVNo
b3dQcm9taXNlKCptX3Jlc3BvbnNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fcmVz
cG9uc2UtPmhhc1JldHJ5UHJvbWlzZSgpKTsKKyAgICAgICAgbV9yZXNwb25zZS0+c2V0dGxlUmV0
cnlQcm9taXNlKCk7CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDbG9zZWQ7Cit9CisK
IHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBh
eW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9uLCBSZWY8UGF5
bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwg
Y29uc3QgU3RyaW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpCiB7CiAg
ICAgQVNTRVJUKCFtX2lzVXBkYXRpbmcpOwpAQCAtNzI2LDYgKzc2MCwxMSBAQCB2b2lkIFBheW1l
bnRSZXF1ZXN0OjphY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVzcG9u
c2U6OkRldGFpbHNGdQogICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOwogfQogCit2b2lkIFBh
eW1lbnRSZXF1ZXN0OjpyZWplY3QoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQoreworICAgIGFib3J0
V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlvbikpOworfQorCiBFeGNlcHRpb25Pcjx2b2lk
PiBQYXltZW50UmVxdWVzdDo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+
JiYgcmVzdWx0KQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpDbG9zZWQpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5oCmluZGV4IDE5MTU5NzY5MDk4MTY0NDNkY2Q2ZDNkY2IyZGVkOGY0MmQ3OTk3YWQuLmVi
YmQ1NDI2YTU3OGI3Yjc1NzkyM2MwMzZkOWIxNGUxN2Q1NDY3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAg
LTk2LDcgKzk2LDkgQEAgcHVibGljOgogICAgIHZvaWQgcGF5bWVudE1ldGhvZENoYW5nZWQoY29u
c3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6Ok1ldGhvZERl
dGFpbHNGdW5jdGlvbiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGVXaXRoKFVwZGF0
ZVJlYXNvbiwgUmVmPERPTVByb21pc2U+JiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBs
ZXRlTWVyY2hhbnRWYWxpZGF0aW9uKEV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYpOworICAgIHZv
aWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3BvbnNlOjpEZXRh
aWxzRnVuY3Rpb24mJik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1l
LCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNGdW5jdGlvbiYmLCBSZWY8UGF5bWVudEFkZHJlc3M+
JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3RyaW5n
JiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOworICAgIHZvaWQgcmVqZWN0
KEV4Y2VwdGlvbiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZShzdGQ6Om9wdGlv
bmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmV0cnkoUGF5
bWVudFZhbGlkYXRpb25FcnJvcnMmJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1NYWMuY21ha2UKaW5kZXggM2EzMmNhM2M5ZDc3YWZkMjRkZTFhM2U3YmM5NWYyYjI0NDZjNTU1
OS4uMTM2ODgwM2JhNDA3ZmRhODE3MDE5OWFmMTBiYjYzZjEzMDBiMzdhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKQEAgLTU4OSw2ICs1ODksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9jb2NvYS9Mb2NhbEN1cnJlbnRH
cmFwaGljc0NvbnRleHQuaAogICAgIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250
ZW50RmlsdGVyLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXcuaAorICAgIHBsYXRm
b3JtL2NvY29hL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIuaAogICAgIHBsYXRmb3JtL2NvY29hL1Bs
YXliYWNrU2Vzc2lvbk1vZGVsLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25N
b2RlbE1lZGlhRWxlbWVudC5oCiAgICAgcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmll
ci5oCkBAIC03OTQsNiArNzk1LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAg
ICBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAg
ICAgTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsCiAK
KyAgICBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGwKKwog
ICAgIE1vZHVsZXMvcGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwKICkKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggNjNhOGU5YzAyNzEzNTljYzI2MzQ5MTg1Mjg1ZDQw
OGJhNjA5ODBlZS4uMzE5MTZkYmMzZjViNzFjYWIyYjAzYzg4MGYwOWI0OTZmN2EwYzEzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yMSw2ICsyMSw3IEBACiAvLyBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CiAvLyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK0pTQXBwbGVQYXlBTVNVSVJl
cXVlc3QuY3BwCiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBKU0FwcGxlUGF5Q29udGFjdEZp
ZWxkLmNwcAogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuY3BwCkBAIC05Niw2ICs5
Nyw3IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZENvY29hLm1tCiBNb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTZXNzaW9uRXJyb3JDb2NvYS5tbQogTW9kdWxlcy9h
cHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVw
YXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKK01vZHVsZXMvYXBw
bGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKIE1vZHVsZXMvYXN5
bmMtY2xpcGJvYXJkL2lvcy9DbGlwYm9hcmRJbWFnZVJlYWRlcklPUy5tbQogTW9kdWxlcy9hc3lu
Yy1jbGlwYm9hcmQvbWFjL0NsaXBib2FyZEltYWdlUmVhZGVyTWFjLm1tCiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU3NTViYzMzOGU3
NmQ4NzkwZDBiNDNjMDdkMmQyYWJmMDYwZTc4NS4uNzBhNjYyZDAzYmQ2OTI2NDc4ZTA2NGNlODA4
NzI0MmQxNjEzZjY1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMzA1Nyw2ICszMDU3LDcgQEAKIAkJOTU5NkI5MzgyNURFRUYw
MzAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2QjkzNjI1REVFRjAyMDBF
RDJDRkEgLyogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsgfTsKIAkJOTVB
MUUyRTkyNUNDNzVBOTAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTFFMkU3MjVD
Qzc1QTgwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTVBQTU3MTAyNUVFRUQz
MjAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUE1NzBFMjVFRUVEMzEwMDRFOTI4MyAv
KiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggKi87IH07CisJCTk1QkE0RkFEMjZEOTgxQUEw
MDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUJBNEZBQjI2RDk4MUFBMDAyQTBFNjIgLyogUGxh
dGZvcm1WaWV3Q29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFj
dGVyaXN0aWNzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NURGOUQyMzI1MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1RUFENTYz
MjY2RUYyREIwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFENTVGMjY2RUYy
REEwMDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsgfTsKIAkJ
OTVFQUQ1NkEyNjZFRjJGQTAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVFQUQ1NjYy
NjZFRjJGODAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMDczLDYgKzMwNzQs
OCBAQAogCQk5NUVBRDU5NDI2NkVGNUQ0MDA0QjlDRjEgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1
NzlFQzFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggKi87IH07
CiAJCTk1RUFENTk3MjY2RUY2MEIwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0
RWRpdGluZ01vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1RUFENTk1MjY2RUY2MDkwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0
RWRpdGluZ01vZGUuaCAqLzsgfTsKIAkJOTVGNDVEMjcyNjRERkJGMTAwRDBCOEI4IC8qIFBhZ2VD
b2xvclNhbXBsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1RjQ1RDI2MjY0REZCRUIwMEQwQjhCOCAvKiBQYWdlQ29sb3JTYW1wbGVyLmggKi87IH07
CisJCTk1RkI2NjI1MjZENzAzM0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RkI2
NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCAqLzsg
fTsKKwkJOTVGQjY2MjYyNkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUZCNjYyMjI2
RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBB
N0MgLyogUG9saWN5Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzBCNzI4
QTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2MDBGMDBBMzcgLyog
RXZlbnRJbnRlcmZhY2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJOTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyQTUxNDUw
MDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTIyMzcsNiArMTIyNDAs
NyBAQAogCQk5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xz
Q29udGV4dE1lbnVJdGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QUE1NzBE
MjVFRUVEMzAwMDRFOTI4MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUFBNTcwRTI1RUVFRDMxMDA0RTky
ODMgLyogSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk1QkE0RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250
cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlld0Nv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVERjlEMjMyNTJCRUQ5
OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9p
bnRlckNoYXJhY3RlcmlzdGljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUVB
RDU1RjI2NkVGMkRBMDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5Q291cG9uQ29kZUNoYW5n
ZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUVBRDU2MTI2NkVGMkRB
MDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIyNjcsNiArMTIyNzEsMTAgQEAKIAkJOTVFQUQ1OTYy
NjZFRjYwQTAwNEI5Q0YxIC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RFZGl0aW5nTW9kZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5U2hpcHBp
bmdDb250YWN0RWRpdGluZ01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NUY0NUQyNDI2NERGQkVCMDBEMEI4QjggLyogUGFnZUNvbG9yU2FtcGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBQYWdlQ29sb3JTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTVGNDVEMjYyNjRERkJFQjAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGFnZUNvbG9yU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NUZCNjYyMDI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVGQjY2MjEyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTVGQjY2MjIyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1RkI2NjIzMjZENzAzM0IwMDY4QUM2NyAv
KiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNo
ZWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hl
Y2tlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIw
MEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBvbGljeUNoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcy
ODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IG5hbWUgPSBFdmVudEludGVyZmFjZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvRXZlbnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19E
SVI7IH07CkBAIC0xODY0NCwxMSArMTg2NTIsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0Mz
OTgzIC8qIGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
Ci0JCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBE
N0UyQjgyMDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEg
LyogQnJpZGdlLmggKi8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZp
ZXJSZXAuY3BwICovLAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVy
UmVwLmggKi8sCisJCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkx
QTU2OUNFRjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1
NjlDRjAwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNG
MTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjQ0MjMsMTEg
KzI0NDMxLDIzIEBACiAJCQluYW1lID0gcGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsKIAkJfTsKKwkJOTVGQjY2MUYyNkQ3MDMzQjAwNjhBQzY3IC8qIGFwcGxlcGF5LWFtcy11aSAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTVGQjY2MjMy
NkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAgKi8sCisJ
CQkJOTVGQjY2MjEyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5oICovLAorCQkJCTk1RkI2NjIyMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVx
dWVzdC5oICovLAorCQkJCTk1RkI2NjIwMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJ
UmVxdWVzdC5pZGwgKi8sCisJCQkpOworCQkJcGF0aCA9ICJhcHBsZXBheS1hbXMtdWkiOworCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJOTcxMTQ1RkUxNEVGMDA2RTAwNjc0RkQ5
IC8qIE1vZHVsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCUNFMjYxNjlEMTg3RTY1NTQwMDc5NTVGMyAvKiBhaXJwbGF5ICovLAogCQkJCTFBNThFODYx
MUQxOUQzNzMwMEMwRUE3MyAvKiBhcHBsZXBheSAqLywKKwkJCQk5NUZCNjYxRjI2RDcwMzNCMDA2
OEFDNjcgLyogYXBwbGVwYXktYW1zLXVpICovLAogCQkJCTYzQkQ0QTVDMUY3NzhFODQwMDQzODcy
MiAvKiBhcHBsaWNhdGlvbm1hbmlmZXN0ICovLAogCQkJCUY0NDBFNzZBMjMzRDkzQzgwMDYzRjlB
QiAvKiBhc3luYy1jbGlwYm9hcmQgKi8sCiAJCQkJODMyMTUwNzkxRjI3RTk2QjAwOTVCMTM2IC8q
IGJlYWNvbiAqLywKQEAgLTI1MjEyLDYgKzI1MjMyLDcgQEAKIAkJCQlGNEZCMzUwMDIzNTBDOTYy
MDBGMDA5NEEgLyogUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSAqLywKIAkJCQlGNDYyOEE5
RTIzNEQzQkJGMDBCQzg4NEMgLyogUGxhdGZvcm1QYXN0ZWJvYXJkQ29jb2EubW0gKi8sCiAJCQkJ
NTJCMEQ0QkQxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oICovLAorCQkJCTk1QkE0
RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8sCiAJCQkJ
Q0RBMjlBMEExQ0JEOUE3NDAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsLmggKi8sCiAJ
CQkJQ0RBMjlBMEQxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1vZGVsTWVkaWFF
bGVtZW50LmggKi8sCiAJCQkJQ0RBMjlBMEMxQ0JEOUNGRTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vz
c2lvbk1vZGVsTWVkaWFFbGVtZW50Lm1tICovLApAQCAtMzE2OTIsNiArMzE3MTMsOCBAQAogCQkJ
CTQ0NTIxMERGMjVENjFGMDAwMDNBMkVEOCAvKiBBcHBIaWdobGlnaHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ0QUUwNDVDMjU3OUNGRkIwMEM0MkU2NSAvKiBBcHBIaWdobGlnaHRSYW5nZURhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ0MjUwNzA5MjU4MjlBMjcwMEMwOTM2OCAvKiBBcHBIaWdo
bGlnaHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NUZCNjYyNTI2RDcwMzNDMDA2OEFD
NjcgLyogQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5
NUZCNjYyNjI2RDcwMzNDMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExMTNFMDJFMjMzMUExMzQwMDlDMzNBMCAvKiBBcHBsZVBheUNhbmNlbEV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMURGNUE5NDFGN0VDNDMyMDA1OEE0NzcgLyogQXBw
bGVQYXlDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk1RUFENTYzMjY2RUYyREIw
MDRCOUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBIZWFkZXJzICov
LApAQCAtMzQ4MjYsNiArMzQ4NDksNyBAQAogCQkJCTBGN0QwNzMzMTg4NEM1NkMwMEI0QUY4NiAv
KiBQbGF0Zm9ybVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDc0RTgyQkIxOEE2OUYw
RTAwN0VGNTRDIC8qIFBsYXRmb3JtVGltZVJhbmdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTJC
MEQ0QkUxQzU3RkQxRTAwNzdDRTUzIC8qIFBsYXRmb3JtVmlldy5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTVCQTRGQUQyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTkzNUM0NzZCMDlBQzRENEYwMEE2QUFCNCAvKiBQbGF0Zm9ybVdo
ZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRUU4QjcyMjQxMkIyQTgwMEU3OTRENiAv
KiBQbGF0Zm9ybVhSLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MjczQ0M3NzI1NjEwM0NGMDA4NTAw
MDcgLyogUGxhdGZvcm1YUkNvY29hLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oCmluZGV4IDIzYTU4YmY4YjgzY2UyZjU2YmUwMjE2MmRiNTc4NGJhNzM4MWYzZTAu
LjVmNmQ1YjRmMmVjNTBlYjE3MjYzOTk5MDk2ZDc1Y2YxNTM1OTcwNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaApAQCAtMTI0LDYgKzEyNCw3IEBAIGNsYXNzIE1lZGlhUGxheWVyUmVx
dWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogI2VuZGlmCiAKIHN0cnVjdCBBcHBI
aWdobGlnaHQ7CitzdHJ1Y3QgQXBwbGVQYXlBTVNVSVJlcXVlc3Q7CiBzdHJ1Y3QgQ29udGFjdHNS
ZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzOwogc3RydWN0IERhdGFE
ZXRlY3RvckVsZW1lbnRJbmZvOwpAQCAtNjExLDYgKzYxMiwxMSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoV2ViQ29yZTo6SFRNTE1vZGVs
RWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
U2l6ZSYpIGNvbnN0IHsgfTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkp
CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oY29uc3QgVVJMJiwg
Y29uc3QgQXBwbGVQYXlBTVNVSVJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6
b3B0aW9uYWw8Ym9vbD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoc3RkOjpudWxsb3B0KTsgfQorICAgIHZpcnR1YWwgdm9pZCBhYm9ydEFwcGxlUGF5QU1TVUlT
ZXNzaW9uKCkgeyB9CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkNocm9tZUNs
aWVudCgpID0gZGVmYXVsdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCA4MTQ2Y2I1OWZjYjcx
YzcxMGU2ZjcyMmFjNmQ1Y2U1NTlmNjQ5MzM3Li5kOTc5YTRkY2U3MzliZWVkM2I4YTkyMThjNTc3
ZmFjYWE2YzU4ZjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE2OCw2ICsxNjgsMTAgQEAKICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0
cmVhbS5oPgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisjaW5jbHVkZSAiQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19Q
TEFZQkFDS19UQVJHRVQpCiAjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUg
Ik1lZGlhUGxheWJhY2tUYXJnZXQuaCIKQEAgLTM0ODQsNiArMzQ4OCw0MiBAQCB2b2lkIFBhZ2U6
OnNldFBheW1lbnRDb29yZGluYXRvcihzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVudENvb3JkaW5hdG9y
PiYmIHBheW1lbnRDbwogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkK
KworYm9vbCBQYWdlOjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVu
dCwgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyJiBwYXltZW50SGFuZGxlciwgY29uc3QgQXBw
bGVQYXlBTVNVSVJlcXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKGhhc0FjdGl2ZUFwcGxlUGF5
QU1TVUlTZXNzaW9uKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1fYWN0aXZlQXBw
bGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyID0gJnBheW1lbnRIYW5kbGVyOworCisgICAgY2hyb21l
KCkuY2xpZW50KCkuc3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihkb2N1bWVudC51cmwoKSwgcmVx
dWVzdCwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBheW1lbnRIYW5kbGVyUHRyID0g
JnBheW1lbnRIYW5kbGVyXSAoc3RkOjpvcHRpb25hbDxib29sPiYmIHJlc3VsdCkgeworICAgICAg
ICBhdXRvIHN0cm9uZ1RoaXMgPSB3ZWFrVGhpcy5nZXQoKTsKKyAgICAgICAgaWYgKCFzdHJvbmdU
aGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChwYXltZW50SGFuZGxlclB0
ciAhPSBzdHJvbmdUaGlzLT5tX2FjdGl2ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoYXV0byBhY3RpdmVQYXltZW50SGFuZGxl
ciA9IHN0ZDo6ZXhjaGFuZ2Uoc3Ryb25nVGhpcy0+bV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVu
dEhhbmRsZXIsIG51bGxwdHIpKQorICAgICAgICAgICAgYWN0aXZlUGF5bWVudEhhbmRsZXItPmZp
bmlzaFNlc3Npb24oV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKwordm9pZCBQYWdlOjphYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKEFwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlciYgcGF5bWVudEhhbmRsZXIpCit7CisgICAgaWYgKCZwYXltZW50SGFuZGxl
ciAhPSBtX2FjdGl2ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcikKKyAgICAgICAgcmV0dXJu
OworCisgICAgY2hyb21lKCkuY2xpZW50KCkuYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpOwor
CisgICAgaWYgKGF1dG8gYWN0aXZlUGF5bWVudEhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fYWN0
aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLCBudWxscHRyKSkKKyAgICAgICAgYWN0aXZl
UGF5bWVudEhhbmRsZXItPmZpbmlzaFNlc3Npb24oc3RkOjpudWxsb3B0KTsKK30KKworI2VuZGlm
IC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT05f
Q09PUkRJTkFUT1IpCiB2b2lkIFBhZ2U6OnNldE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKFJlZjxN
ZWRpYVNlc3Npb25Db29yZGluYXRvclByaXZhdGU+JiYgbWVkaWFTZXNzaW9uQ29vcmRpbmF0b3Ip
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDI2MzdhMjlkYmY1NGIzOGY5Y2Q2MjhjZWVmODFlMmVkN2Ez
MGEwNWIuLjFkZWNhZmVmNGRiYmE3NWNkZTkyYjA5NDI1NzhhNGE0NGQ0Y2ZkMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC05MSw2ICs5MSw3IEBAIG5hbWVzcGFjZSBJREJDbGllbnQgewogY2xhc3MgSURC
Q29ubmVjdGlvblRvU2VydmVyOwogfQogCitjbGFzcyBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXI7CiBjbGFzcyBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXI7CiBjbGFzcyBBbHRlcm5hdGl2
ZVRleHRDbGllbnQ7CiBjbGFzcyBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTsKQEAgLTE2Nyw2ICsx
NjgsNyBAQCBjbGFzcyBXZWJHTFN0YXRlVHJhY2tlcjsKIGNsYXNzIFdoZWVsRXZlbnREZWx0YUZp
bHRlcjsKIGNsYXNzIFdoZWVsRXZlbnRUZXN0TW9uaXRvcjsKIAorc3RydWN0IEFwcGxlUGF5QU1T
VUlSZXF1ZXN0Owogc3RydWN0IFNpbXBsZVJhbmdlOwogc3RydWN0IFRleHRSZWNvZ25pdGlvblJl
c3VsdDsKIApAQCAtNTQxLDYgKzU0MywxMiBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXRQYXltZW50Q29vcmRpbmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGlu
YXRvcj4mJik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIGJv
b2wgaGFzQWN0aXZlQXBwbGVQYXlBTVNVSVNlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjsgfQorICAgIGJvb2wgc3RhcnRBcHBsZVBheUFN
U1VJU2Vzc2lvbihEb2N1bWVudCYsIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlciYsIGNvbnN0
IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Jik7CisgICAgdm9pZCBhYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlciYpOworI2VuZGlmCisKICNpZiBFTkFCTEUo
V0VCX0FVVEhOKQogICAgIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvciYgYXV0aGVudGljYXRvckNv
b3JkaW5hdG9yKCkgeyByZXR1cm4gbV9hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuZ2V0KCk7IH0K
ICNlbmRpZgpAQCAtMTE4Nyw2ICsxMTk1LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVf
cHRyPFBheW1lbnRDb29yZGluYXRvcj4gbV9wYXltZW50Q29vcmRpbmF0b3I7CiAjZW5kaWYKIAor
I2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIFJlZlB0cjxBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI+IG1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOworI2VuZGlm
CisKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I+IG1fYXV0aGVudGljYXRvckNvb3JkaW5hdG9yOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODMyY2Q0NGY1ZTQ3MTU0ZDMwMzIzYTNjYTJlYzY1NGZiZjk2MGZhNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtVmll
d0NvbnRyb2xsZXIuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyX2gKKyNk
ZWZpbmUgUGxhdGZvcm1WaWV3Q29udHJvbGxlcl9oCisKKyNpZiBQTEFURk9STShDT0NPQSkKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7Cit0
eXBlZGVmIFVJVmlld0NvbnRyb2xsZXIgUGxhdGZvcm1WaWV3Q29udHJvbGxlcjsKKyNlbHNlCitP
QkpDX0NMQVNTIE5TVmlld0NvbnRyb2xsZXI7Cit0eXBlZGVmIE5TVmlld0NvbnRyb2xsZXIgUGxh
dGZvcm1WaWV3Q29udHJvbGxlcjsKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0Ep
CisKKyNlbmRpZiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyX2ggKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWRiNzY2N2Q3MjI4MDY0ZWU2MDMyODcyYjY1ZGE2OWQyZWQ0OTQxZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVk
aWFTZXJ2aWNlc1NQSS5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKworI2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FNU0JhZy5oPgorI2ltcG9y
dCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FNU0JhZ0NvbnN1bWVyLmg+CisjaW1wb3J0IDxBcHBsZU1l
ZGlhU2VydmljZXMvQU1TQmFnUHJvdG9jb2wuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNl
cy9BTVNFbmdhZ2VtZW50UmVxdWVzdC5oPgorI2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FN
U0VuZ2FnZW1lbnRSZXN1bHQuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNQcm9t
aXNlLmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TVGFzay5oPgorCisjZWxzZSAv
LyBpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworQGludGVyZmFjZSBBTVNQcm9taXNlPFJl
c3VsdFR5cGU+IDogTlNPYmplY3QKKy0gKHZvaWQpYWRkRmluaXNoQmxvY2s6KHZvaWQoXikoUmVz
dWx0VHlwZSBfTnVsbGFibGUgcmVzdWx0LCBOU0Vycm9yICogX051bGxhYmxlIGVycm9yKSlmaW5p
c2hCbG9jazsKK0BlbmQKKworQHByb3RvY29sIEFNU0JhZ1Byb3RvY29sIDxOU09iamVjdD4KK0Bl
bmQKKworQGludGVyZmFjZSBBTVNCYWcgOiBOU09iamVjdCA8QU1TQmFnUHJvdG9jb2w+CitAZW5k
CisKK0Bwcm90b2NvbCBBTVNCYWdDb25zdW1lciA8TlNPYmplY3Q+CitAb3B0aW9uYWwKKysgKEFN
U0JhZyAqKWNyZWF0ZUJhZ0ZvclN1YlByb2ZpbGU7CitAZW5kCisKK0BpbnRlcmZhY2UgQU1TRW5n
YWdlbWVudFJlcXVlc3QgOiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhSZXF1ZXN0RGljdGlvbmFyeTooTlNEaWN0aW9uYXJ5ICopZGljdGlvbmFyeQor
QHByb3BlcnR5IChOU19OT05BVE9NSUNfSU9TT05MWSwgc3Ryb25nLCBudWxsYWJsZSkgTlNVUkwg
Km9yaWdpbmF0aW5nVVJMOworQGVuZAorCitAaW50ZXJmYWNlIEFNU0VuZ2FnZW1lbnRSZXN1bHQg
OiBOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+CitAZW5kCisKK0BpbnRlcmZhY2UgQU1TVGFzayA6
IE5TT2JqZWN0CistIChCT09MKWNhbmNlbDsKK0BlbmQKKworI2VuZGlmIC8vICFVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2Vydmlj
ZXNVSVNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNl
cnZpY2VzVUlTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZDdjYzRmODVkNDIxOTAxNGEzNWNlYmI2MmUyNjkx
NjFlMzhhNTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaApAQCAtMCwwICsxLDU0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlc1VJ
L0FNU1VJRW5nYWdlbWVudFRhc2suaD4KKworI2Vsc2UgLy8gaWYgIVVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisKKyNpbmNsdWRlICJBcHBsZU1lZGlhU2VydmljZXNTUEkuaCIKKworI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCitPQkpDX0NMQVNTIFVJVmlld0NvbnRyb2xsZXI7Cit0eXBlZGVmIFVJ
Vmlld0NvbnRyb2xsZXIgQU1TVUlWaWV3Q29udHJvbGxlcjsKKyNlbHNlCitPQkpDX0NMQVNTIE5T
Vmlld0NvbnRyb2xsZXI7Cit0eXBlZGVmIE5TVmlld0NvbnRyb2xsZXIgQU1TVUlWaWV3Q29udHJv
bGxlcjsKKyNlbmRpZgorCitAaW50ZXJmYWNlIEFNU1VJRW5nYWdlbWVudFRhc2sgOiBBTVNUYXNr
IDxBTVNCYWdDb25zdW1lcj4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFJlcXVlc3Q6KEFNU0Vu
Z2FnZW1lbnRSZXF1ZXN0ICopcmVxdWVzdCBiYWc6KGlkPEFNU0JhZ1Byb3RvY29sPiliYWcgcHJl
c2VudGluZ1ZpZXdDb250cm9sbGVyOihBTVNVSVZpZXdDb250cm9sbGVyICopdmlld0NvbnRyb2xs
ZXI7CitAcHJvcGVydHkgKE5TX05PTkFUT01JQ19JT1NPTkxZLCBhc3NpZ24pIEJPT0wgcmVtb3Rl
UHJlc2VudGF0aW9uOworLSAoQU1TUHJvbWlzZTxBTVNFbmdhZ2VtZW50UmVzdWx0ICo+ICopcHJl
c2VudEVuZ2FnZW1lbnQ7CitAZW5kCisKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA2NThjZWJjM2MyODVhYTZkODk4MjY5OTUw
YmViZGZkY2ZiMWM5N2NmLi4yY2FiMzkyNWRmMGJiYjg0YzNmMDNhMzAxNDMxYTJjZjJhMGVhYjhl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNjEsOSArMTYyLDkg
QEAgcHVibGljOgogI2VuZGlmCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9u
c0ZvckVsZW1lbnQoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0YWluUHRyPE5TQXJyYXk+
IGRlZmF1bHRBY3Rpb25zKSB7IHJldHVybiBkZWZhdWx0QWN0aW9uczsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9
Ci0gICAgdmlydHVhbCBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIo
KSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2
aXJ0dWFsIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigp
IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIE5TRGljdGlvbmFyeSAqZGF0YURldGVj
dGlvbkNvbnRleHQoKSB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgK
aW5kZXggZjY2YTFiYTNlODkyMjUzZjE3NjMzYzM0MmMyMjlhZGZhYWIyMTMyMS4uYzczNjlmMzcw
YTBlZTlkMzVkNjc4MDhmM2QwMDY4N2I5MWQ1Nzk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0yMjYs
NiArMjI2LDggQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIAogI2Vsc2UgLy8gIVRBUkdFVF9PU19J
UEhPTkUKIAorLSAoTlNWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJG
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tf
TUFDX1RCQSkpOworCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEzLjQpKTsKIC0gKHZvaWQpX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZp
ZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7
CiAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggNWNiY2E3N2ExMDBm
NDA4YmE1NjU0NWJlOWIwOTlmYmU4ODg0NzZkOS4uOWQ1ZWYyODQzNDM1YmYwYTY4MWNmYzBjZTFi
MTBiMTIyYjRmMDYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW1wb3J0ICJBUElDb250ZXh0TWVudUNsaWVudC5o
IgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1WaWV3
Q29udHJvbGxlci5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1dl
YWtPYmpDUHRyLmg+CiAjaW1wb3J0IDx3dGYvV2Vha1B0ci5oPgpAQCAtMTQ4LDggKzE0OSw4IEBA
IHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JF
bGVtZW50KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZh
dWx0QWN0aW9ucykgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGZpbmFsOwotICAgICAgICBVSVZpZXdDb250cm9sbGVy
ICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKSBmaW5hbDsKICNlbmRpZiAvLyBQTEFURk9STShJ
T1NfRkFNSUxZKQorICAgICAgICBQbGF0Zm9ybVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmll
d0NvbnRyb2xsZXIoKSBmaW5hbDsKIAogICAgICAgICBOU0RpY3Rpb25hcnkgKmRhdGFEZXRlY3Rp
b25Db250ZXh0KCkgZmluYWw7CiAKQEAgLTI0MSw4ICsyNDIsOCBAQCBwcml2YXRlOgogI2VuZGlm
CiAgICAgICAgIGJvb2wgd2ViVmlld0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgOiAx
OwogICAgICAgICBib29sIHdlYlZpZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA6IDE7
Ci0gICAgICAgIGJvb2wgcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA6IDE7CiAj
ZW5kaWYKKyAgICAgICAgYm9vbCBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3IDog
MTsKICAgICAgICAgYm9vbCBkYXRhRGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdJbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkIDogMTsKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJ
RGVsZWdhdGUubW0KaW5kZXggYTAwNGExNWRiOTcxMTkyN2UyNTg3YzYxYjE3YTdjMTkzY2IwZThl
Mi4uMWNkNWQwY2M5YjM4OWE4MzUyOWZjMWQ1Yjc0YjgyM2NjYTUwNzNhNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0xNjIsOCArMTYyLDggQEAg
dm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkK
ICNlbmRpZgogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERl
ZmF1bHRBY3Rpb25zID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6YWN0aW9uc0ZvckVsZW1lbnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RpZE5vdEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXND
bGlja0F0UG9pbnQ6KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdDb250
cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OildOwogI2VuZGlmCisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3OildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2Fw
dHVyZUF1dGhvcml6ZWRGb3JGcmFtZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZv
clVSTDptYWluRnJhbWVVUkw6ZnJhbWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRlU2Vu
c2l0aXZlTWVkaWFEZXZpY2VEZXRhaWxzOildOwogCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld01lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CkBA
IC0xMzkyLDcgKzEzOTIsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWROb3RIYW5k
bGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludAogICAgIFtzdGF0aWNf
Y2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KGRlbGVnYXRlKSBfd2ViVmlldzptX3VpRGVs
ZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2lu
dDpwb2ludF07CiB9CiAKLVVJVmlld0NvbnRyb2xsZXIgKlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkp
CisKK1BsYXRmb3JtVmlld0NvbnRyb2xsZXIgKlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVzZW50
aW5nVmlld0NvbnRyb2xsZXIoKQogewogICAgIGlmICghbV91aURlbGVnYXRlKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKQEAgLTE0MDcsOCArMTQwOSw2IEBAIFVJVmlld0NvbnRyb2xsZXIgKlVJ
RGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKQogICAgIHJldHVy
biBbc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihkZWxlZ2F0ZSkgX3ByZXNl
bnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0
KCkuZ2V0KCldOwogfQogCi0jZW5kaWYKLQogTlNEaWN0aW9uYXJ5ICpVSURlbGVnYXRlOjpVSUNs
aWVudDo6ZGF0YURldGVjdGlvbkNvbnRleHQoKQogewogICAgIGlmICghbV91aURlbGVnYXRlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bQppbmRleCA5MTViN2Y0YzY0OGUyZmUwMTk4ZWZkMTViNTVmZjQ1MTE4MWFkNmY3Li42YTUwYTA4
MTAzMzk1ODY1ODM5ZmZhNzgwZTgzNWI3NTgzMzVmYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMjksNiArMjksNyBA
QAogI2ltcG9ydCAiQVBJQXR0YWNobWVudC5oIgogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaCIKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCisjaW1wb3J0ICJBcHBsZU1lZGlhU2Vydmlj
ZXNVSVNQSS5oIgogI2ltcG9ydCAiQ29jb2FJbWFnZS5oIgogI2ltcG9ydCAiQ29ubmVjdGlvbi5o
IgogI2ltcG9ydCAiRGF0YURldGVjdGlvblJlc3VsdC5oIgpAQCAtNTEsNiArNTIsNyBAQAogI2lt
cG9ydCAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL05TVVJMUmVxdWVzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBs
ZVBheUFNU1VJUmVxdWVzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnSXRlbS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaWdobGln
aHRWaXNpYmlsaXR5Lmg+CkBAIC04OCw2ICs5MCwxNCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFN
RVdPUksoV2ViQ29udGVudEFuYWx5c2lzKTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5h
bHlzaXMsIFdlYkZpbHRlckV2YWx1YXRvcik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9Q
QVlfQU1TX1VJKQorU09GVF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKEFwcGxlTWVk
aWFTZXJ2aWNlcykKK1NPRlRfTElOS19DTEFTU19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXMs
IEFNU0VuZ2FnZW1lbnRSZXF1ZXN0KQorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BU
SU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzVUkpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQXBw
bGVNZWRpYVNlcnZpY2VzVUksIEFNU1VJRW5nYWdlbWVudFRhc2spCisjZW5kaWYKKwogI2RlZmlu
ZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwg
cHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9O
KGFzc2VydGlvbiwgY29tcGxldGlvbikgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OX0JBU0UoYXNz
ZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpLCBjb21wbGV0aW9uKQogCkBAIC02MjgsNiAr
NjM4LDQ3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRVcEhpZ2hsaWdodHNPYnNlcnZlcigpCiAK
ICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCYmIG9yaWdpbmF0aW5nVVJMLCBBcHBs
ZVBheUFNU1VJUmVxdWVzdCYmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIUFwcGxl
TWVkaWFTZXJ2aWNlc1VJTGlicmFyeSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0
ZDo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVZpZXdD
b250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgPSB1aUNsaWVudCgpLnByZXNlbnRp
bmdWaWV3Q29udHJvbGxlcigpOworICAgIGlmICghcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKSB7
CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBhdXRvIGFtc1JlcXVlc3QgPSBhZG9wdE5TKFthbGxvY0FNU0VuZ2Fn
ZW1lbnRSZXF1ZXN0SW5zdGFuY2UoKSBpbml0V2l0aFJlcXVlc3REaWN0aW9uYXJ5OmR5bmFtaWNf
b2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdp
dGhEYXRhOltXVEZNb3ZlKHJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QpIGRhdGFVc2luZ0VuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXSBvcHRpb25zOjAgZXJyb3I6bmlsXSldKTsKKyAgICBb
YW1zUmVxdWVzdCBzZXRPcmlnaW5hdGluZ1VSTDpXVEZNb3ZlKG9yaWdpbmF0aW5nVVJMKV07CisK
KyAgICBhdXRvIGFtc0JhZyA9IHJldGFpblB0cihbZ2V0QU1TVUlFbmdhZ2VtZW50VGFza0NsYXNz
KCkgY3JlYXRlQmFnRm9yU3ViUHJvZmlsZV0pOworCisgICAgbV9hcHBsZVBheUFNU1VJU2Vzc2lv
biA9IGFkb3B0TlMoW2FsbG9jQU1TVUlFbmdhZ2VtZW50VGFza0luc3RhbmNlKCkgaW5pdFdpdGhS
ZXF1ZXN0OmFtc1JlcXVlc3QuZ2V0KCkgYmFnOmFtc0JhZy5nZXQoKSBwcmVzZW50aW5nVmlld0Nv
bnRyb2xsZXI6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyXSk7CisgICAgW21fYXBwbGVQYXlBTVNV
SVNlc3Npb24gc2V0UmVtb3RlUHJlc2VudGF0aW9uOllFU107CisKKyAgICBhdXRvIGFtc1Jlc3Vs
dCA9IHJldGFpblB0cihbbV9hcHBsZVBheUFNU1VJU2Vzc2lvbiBwcmVzZW50RW5nYWdlbWVudF0p
OworICAgIFthbXNSZXN1bHQgYWRkRmluaXNoQmxvY2s6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoQU1TRW5nYWdlbWVudFJlc3Vs
dCAqcmVzdWx0LCBOU0Vycm9yICplcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikg
eworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3Vs
dCk7CisgICAgfSkuZ2V0KCldOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6YWJvcnRBcHBsZVBh
eUFNU1VJU2Vzc2lvbigpCit7CisgICAgW3N0ZDo6ZXhjaGFuZ2UobV9hcHBsZVBheUFNU1VJU2Vz
c2lvbiwgbnVsbHB0cikgY2FuY2VsXTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlf
QU1TX1VJKQorCiBWZWN0b3I8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBXZWJQYWdlUHJveHk6
OmNyZWF0ZU5ldHdvcmtFeHRlbnNpb25zU2FuZGJveEV4dGVuc2lvbnMoV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzKQogewogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNTBjMjQzYjI5MTIxMmNmMzI4ZWU4MmU3Y2Qz
ZDBjMTRjMjk0M2ZiMS4uNjllZTYyYjY0NGM3MTkwODc3MjJiM2NlMzkyZjE0YmViMWQyYWEwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIzMCw2ICsyMzAsNyBA
QCBjbGFzcyBTaGFyZWRCdWZmZXJDb3B5OwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpD
X0NMQVNTIEFNU1VJRW5nYWdlbWVudFRhc2s7CiBPQkpDX0NMQVNTIE5TRmlsZVdyYXBwZXI7CiBP
QkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwpAQCAtNTkz
LDYgKzU5NCwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBtb2RlbEVsZW1lbnRQcmV2aWV3RGlkT2J0
YWluQ29udGV4dElkKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgU3RyaW5n
JiwgdWludDMyX3QpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAg
ICB2b2lkIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oVVJMJiYsIFdlYkNvcmU6OkFwcGxlUGF5
QU1TVUlSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29s
PiYmKT4mJik7CisgICAgdm9pZCBhYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCk7CisjZW5kaWYK
KwogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogICAgIEFQSTo6Q29udGV4dE1lbnVDbGllbnQm
IGNvbnRleHRNZW51Q2xpZW50KCkgeyByZXR1cm4gKm1fY29udGV4dE1lbnVDbGllbnQ7IH0KICAg
ICB2b2lkIHNldENvbnRleHRNZW51Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkNvbnRleHRN
ZW51Q2xpZW50PiYmKTsKQEAgLTI2NTMsNiArMjY1OSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6
dW5pcXVlX3B0cjxNb2RlbEVsZW1lbnRDb250cm9sbGVyPiBtX21vZGVsRWxlbWVudENvbnRyb2xs
ZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIFJldGFpblB0
cjxBTVNVSUVuZ2FnZW1lbnRUYXNrPiBtX2FwcGxlUGF5QU1TVUlTZXNzaW9uOworI2VuZGlmCisK
ICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eT4gbV9jcmVkZW50aWFsc01lc3NlbmdlcjsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDU2ZThhMWRjZTgxOGM2MzkwY2EwNjIyZTNiNDRhNWMxZWQxMGVmMTEuLmJhMzc0YzAwMjJmNTJi
MTQ2NDM2ZjJjZjFlM2IzYmM4YzZiOGU3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTU5MSw0ICs1OTEsOSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICAgICByZXF1ZXN0UGVybWlzc2lvbihzdHJ1
Y3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBlcm1pc3Np
b25EZXNjcmlwdG9yIGRlc2NyaXB0b3IpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGVybWlz
c2lvblN0YXRlIHN0YXRlKSBBc3luYworCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisg
ICAgU3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihVUkwgb3JpZ2luYXRpbmdVUkwsIHN0cnVjdCBX
ZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RkOjpvcHRpb25hbDxi
b29sPiByZXN1bHQpIEFzeW5jCisgICAgQWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCisjZW5k
aWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDRjOTBlNzExNDExOTVkM2U5NDhlNzgzNmFjMmQ4YzBjNTI1ODJjNTIuLmUyNDBiNTZi
Y2UxMWY3ZDRkMjViM2RlN2VmZDNmMTM2ODlhZGZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQ1OSw2ICsxNDU5LDggQEAKIAkJ
OTNFNkE0RUUxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4
QTBFNyAvKiBfV0tIaXRUZXN0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNo
b3RDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5M0Y1NDlCMzFFMzE3NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1
MEYyODgwMjUyNDE0RUEwMEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTU2NTA4MzkyNkQ4
N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8q
IEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovOyB9OworCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVD
QjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NjUwODM4MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1l
ZGlhU2VydmljZXNVSVNQSS5oICovOyB9OwogCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAgLyog
V0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNl
T2JzZXJ2ZXIuaCAqLzsgfTsKIAkJOTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2Fy
ZFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVD
OTQzOTAyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFF
MjIzQTk0OUNGMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEy
M0E5NDlDRTAwMDBCMDZBIC8qIF9XS0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAq
LzsgfTsKQEAgLTQ4NjEsNiArNDg2Myw4IEBACiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAv
KiBXS1NuYXBzaG90Q29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTBGMjg3RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9i
c2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VEZXZpY2VP
YnNlcnZlci5oOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURl
dmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZl
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU2NTA4MzcyNkQ4N0EyQjAwRTE1
Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBcHBsZU1lZGlhU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJ
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1VJ
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OTM2NzVEMjUyRTVFMzAwMEQz
RjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1c0Rl
dmljZU9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OTM2NzVFMjUy
RTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgcGF0
aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNzc2OSw2ICs3NzczLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CUUzQ0FBQTQzMjQxMzI3OEEwMENFRDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICov
LAogCQkJCTU3MkVCQkRDMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLywKKwkJ
CQk5NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi8s
CisJCQkJOTU2NTA4MzgyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJ
LmggKi8sCiAJCQkJNTdGQUJCMEUyNTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2Vy
dmljZXNDb3JlU1BJLmggKi8sCiAJCQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2Nr
U1BJLmggKi8sCiAJCQkJRTUwNjIwOTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEku
aCAqLywKQEAgLTExODI5LDYgKzExODM1LDggQEAKIAkJCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUy
QjMgLyogQXBwQXR0ZXN0U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzQ4NzlCOTIzNzNBOTA5
MDBGNTY3OEUgLyogQXBwS2l0U29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEQyQTg1
MjE1ODNBN0UwMEM2NzUyQiAvKiBBcHBLaXRTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1NjUw
ODM5MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk1NjUwODNBMjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNV
SVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFw
cGxpY2F0aW9uU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDRDMTkzMUIzOUYz
MzIwMEFCQzI4RSAvKiBBcHBsaWNhdGlvblN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDkzMTAyQkQyNjgzRjNEMDAwMkJCODg1IC8qIEFwcFByaXZhY3lSZXBvcnQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAwYzhkYTY2NTc3MGJkNDczYWVhYWJh
YjNmMTZhZjYwMTYwYjI3NTBmLi4yODY4MTVhODhkM2MzZDMzNjNlNGI1MjI5Y2FhNjk1ZmNlNTA1
ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtOTEsNiArOTEsMTAgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+
CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxl
UGF5QU1TVUlSZXF1ZXN0Lmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8
IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAjaW5j
bHVkZSAiUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIgogI2VuZGlmCkBAIC0xNTM0LDQgKzE1Mzgs
MTggQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXco
V2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudCYgZWwKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQ
UExFX1BBWV9BTVNfVUkpCisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzdGFydEFwcGxlUGF5QU1T
VUlTZXNzaW9uKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0JiByZXF1ZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9v
bD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKG9y
aWdpbmF0aW5nVVJMLCByZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCit7Cisg
ICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QWJvcnRBcHBsZVBheUFNU1VJ
U2Vzc2lvbigpKTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBiOTkzOGYyYmZhNjEw
MGIyOTYyM2NkMDMwNWNlMGIxNGM0MzIyMTU4Li42Y2NhMmQwYTg4ZDY4YzQ4OGE4YmVkMTJlM2E5
YmIxODllYjc5NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC00NjIsNiArNDYyLDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFdlYkNvcmU6OkhU
TUxNb2RlbEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BB
WV9BTVNfVUkpCisgICAgdm9pZCBzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGNvbnN0IFVSTCYs
IGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0JiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0QXBw
bGVQYXlBTVNVSVNlc3Npb24oKSBmaW5hbDsKKyNlbmRpZgorCiAgICAgbXV0YWJsZSBib29sIG1f
Y2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0
YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9
OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDYzNTliN2UxZjM3NWI5NGY1YTZhNjgyNDRjMDcyMjQwODVlNTM1My4uOWU1
NDA5ZjcyNTY2ZjgxYjFhMTc4MGI3NWY1NGY4MDY5MDFhMDkyNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDIxLTExLTAyICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAg
ICAgICBbUGF5bWVudCBSZXF1ZXN0XSBBZGQgYSBuZXcgcGF5bWVudCBtZXRob2QgZm9yIHNob3dp
bmcgQU1TIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzI2MzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc5MDI0MjI3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zc2wvYXBw
bGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0x
MS0wMiAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBX
ZWJLaXQgbmVlZHMgdG8gaW5jbHVkZSBOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkluTmF2aWdhdGlv
bk9yZGVyQXR0cmlidXRlIGluIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVOYW1lcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZTkxZjQxZTg4MmQ1NmVjMTljNmU1ZjIyMmU5ZjdmNTNlNDZiYjgxZS4uYjY3
ZGRjMmUyMzYxNDRkMmE0Y2QxMTUzN2FjYzg4OGQzMTM2NTk1MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CkBAIC0yNjEsNiArMjYxLDcgQEAgZmFzdC9jc3MvZ2V0Q29tcHV0ZWRTdHlsZS9jb21wdXRlZC1z
dHlsZS1hcHBsZS1wYXktYnV0dG9uLmh0bWwgWyBTa2lwIF0KIGZhc3QvY3NzL3dlYmtpdC1uYW1l
ZC1pbWFnZS9hcHBsZS1wYXktbG9nby1ibGFjayBbIFNraXAgXQogZmFzdC9jc3Mvd2Via2l0LW5h
bWVkLWltYWdlL2FwcGxlLXBheS1sb2dvLXdoaXRlIFsgU2tpcCBdCiBodHRwL3Rlc3RzL3NzbC9h
cHBsZXBheS8gWyBTa2lwIF0KK2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS8gWyBTa2lw
IF0KIAogIyBPbmx5IFdLMiBhbGxvd3MgdW5jb25zdHJhaW5lZCBzY3JvbGxpbmcKIGZhc3Qvdmlz
dWFsLXZpZXdwb3J0L3J1YmJlcmJhbmRpbmctdmlld3BvcnQtcmVjdHMuaHRtbCBbIFNraXAgXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1Bh
eW1lbnRSZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDk5OTczY2E0MGY1ZDA0YTU5ZTEyMWMyZTBmOTcwMzcxNDI3OGJjMgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9Q
YXltZW50UmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MSBAQAorVGVzdCBi
YXNpYyBjcmVhdGlvbiBvZiBhIFBheW1lbnRSZXF1ZXN0IG9iamVjdCB3aXRoIGFuIEFwcGxlIFBh
eSBBTVMgVUkgcGF5bWVudCBtZXRob2QuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitUZXN0aW5nIFBheW1lbnRSZXF1ZXN0CisKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0KG51bGws
IG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIGlzIG5vdCBhIHNlcXVlbmNl
LgorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KKworVGVzdGluZyBBcHBs
ZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdAorCitTRVRVUDogcGF5bWVudE1ldGhv
ZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBkZWxldGUgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2Fn
ZW1lbnRSZXF1ZXN0CitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZh
bGlkUGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFw
cGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0
IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9
IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVl
c3QgPSAnJworUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBh
eW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE1lbWJlciBBcHBsZVBh
eUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBh
IEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKworU0VUVVA6IHBheW1lbnRNZXRob2QgPSB2YWxp
ZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0g
J2ludmFsaWQnCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlk
UGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxl
UGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJl
IGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZh
bGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3Qg
PSBudWxsCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5
bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5
QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEg
SlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlk
UGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSA3
CitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERl
dGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlS
ZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1z
ZXJpYWxpemFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVu
dE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSBbIF0KK1BB
U1MgbmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWls
cygpKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVl
c3QuZW5nYWdlbWVudFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlh
bGl6YWJsZSBvYmplY3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0
aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IGZhbHNlCitQQVNT
IG5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMo
KSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0
LmVuZ2FnZW1lbnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxp
emFibGUgb2JqZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhv
ZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSB7IH0KK1BBU1MgbmV3
IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MzBlYzBmZDY1MTQ4M2QxMWRmOGZkYWZjN2QwMGVmYTM4OGI0MWYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXkt
YW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSw5NSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlw
dCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvcGF5bWVudC1yZXF1ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3QgYmFzaWMgY3JlYXRpb24gb2YgYSBQYXlt
ZW50UmVxdWVzdCBvYmplY3Qgd2l0aCBhbiBBcHBsZSBQYXkgQU1TIFVJIHBheW1lbnQgbWV0aG9k
LiIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2Z1bmN0aW9uIHZhbGlkUGF5
bWVudE1ldGhvZCgpIHsKKyAgICByZXR1cm4geworICAgICAgICBzdXBwb3J0ZWRNZXRob2RzOiAn
aHR0cHM6Ly9hcHBsZS5jb20vYW1zLXVpJywKKyAgICAgICAgZGF0YTogeworICAgICAgICAgICAg
ZW5nYWdlbWVudFJlcXVlc3Q6IHsgdmFsdWU6IDQyIH0sCisgICAgICAgIH0sCisgICAgfQorfQor
CitmdW5jdGlvbiB2YWxpZFBheW1lbnREZXRhaWxzKCkgeworICAgIHJldHVybiB7CisgICAgICAg
IHRvdGFsOiB7IGxhYmVsOiAnWW91ciBsYWJlbCcsIGFtb3VudDogeyBjdXJyZW5jeTogJ1VTRCcs
IHZhbHVlOiAnMTAuMDAnIH0gfSwKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGxvZ0FuZFNob3VsZFRo
cm93KHNldHVwLCB0ZXN0KSB7CisgICAgcmV0dXJuIGFjdGl2YXRlVGhlbigoKSA9PiB7CisgICAg
ICAgIGRlYnVnKCJTRVRVUDogIiArIHNldHVwKTsKKyAgICAgICAgZXZhbChzZXR1cCk7CisgICAg
ICAgIHNob3VsZFRocm93KHRlc3QpOworICAgICAgICBkZWJ1ZygiIik7CisgICAgfSk7Cit9CisK
K2Z1bmN0aW9uIGxvZ0FuZFNob3VsZE5vdFRocm93KHNldHVwLCB0ZXN0KSB7CisgICAgcmV0dXJu
IGFjdGl2YXRlVGhlbigoKSA9PiB7CisgICAgICAgIGRlYnVnKCJTRVRVUDogIiArIHNldHVwKTsK
KyAgICAgICAgZXZhbChzZXR1cCk7CisgICAgICAgIHNob3VsZE5vdFRocm93KHRlc3QpOworICAg
ICAgICBkZWJ1ZygiIik7CisgICAgfSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGdvKCkgeworICAg
IGRlYnVnKCJUZXN0aW5nIFBheW1lbnRSZXF1ZXN0IikKKyAgICBkZWJ1ZygiIikKKyAgICBzaG91
bGRUaHJvdygibmV3IFBheW1lbnRSZXF1ZXN0KG51bGwsIG51bGwpIikKKyAgICBzaG91bGROb3RU
aHJvdygibmV3IFBheW1lbnRSZXF1ZXN0KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5
bWVudERldGFpbHMoKSkiKQorICAgIGRlYnVnKCIiKQorCisgICAgZGVidWcoIlRlc3RpbmcgQXBw
bGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QiKQorICAgIGRlYnVnKCIiKQorICAg
IGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0
aG9kKCk7IGRlbGV0ZSBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QiLCAibmV3
IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIp
CisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1l
bnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gJyciLCAi
bmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygp
KSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBh
eW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gJ2lu
dmFsaWQnIiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVu
dERldGFpbHMoKSkiKQorICAgIGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9k
ID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVx
dWVzdCA9IG51bGwiLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQ
YXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRN
ZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1l
bnRSZXF1ZXN0ID0gNyIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxp
ZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVu
dE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdl
bWVudFJlcXVlc3QgPSBbIF0iLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwg
dmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBh
eW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVu
Z2FnZW1lbnRSZXF1ZXN0ID0gZmFsc2UiLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0
aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkTm90
VGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhv
ZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0geyB9IiwgIm5ldyBQYXltZW50UmVxdWVzdChbcGF5
bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAgIGRlYnVnKCIiKQorCisg
ICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiYnV0dG9uIikucmVtb3ZlKCk7CisKKyAgICBmaW5p
c2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gY2xpY2tFbGVtZW50KGVsZW1lbnQpIHsKKyAgICBs
ZXQgeCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIDI7CisgICAgbGV0IHkgPSBlbGVtZW50Lm9mZnNl
dFRvcCArIDI7CisKKyAgICB2YXIgc3VwcG9ydHNUb3VjaEV2ZW50cyA9ICJUb3VjaEV2ZW50IiBp
biB3aW5kb3c7CisgICAgaWYgKHN1cHBvcnRzVG91Y2hFdmVudHMgJiYgd2luZG93LnRlc3RSdW5u
ZXIgJiYgdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgICAgICB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGAoZnVuY3Rpb24oKSB7IHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0s
ICR7eX0sIGZ1bmN0aW9uKCkgeyB9KTsgfSkoKTtgLCBmdW5jdGlvbiAoKSB7IH0pOworICAgIH0g
ZWxzZSBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgIH0KK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgIGNsaWNrRWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b24i
KSk7Cit9CisKKzwvc2NyaXB0PgorPGJ1dHRvbiBvbmNsaWNrPSdnbygpJz5HbzwvYnV0dG9uPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443216</attachid>
            <date>2021-11-03 11:21:51 -0700</date>
            <delta_ts>2021-11-08 15:09:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232634-20211103112150.patch</filename>
            <type>text/plain</type>
            <size>85666</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlMWNkMTczNzZhNTFjOTc2NmZiYjJjNDNmNTU3NjQ1NDZmNGZlMDZhLi42
NjM4YjkyYzhjNmRiZWU5YWMyYjBiZWM0ODBjZWY5ZDkzZjkwNzU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTkgQEAKKzIwMjEtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2UgdGhl
IFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFzIGEgd2F5IGZvciBBcHBsZSBkb21haW5zIHRvIHNo
b3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAgICBwYXltZW50IFVJcyB3aXRob3V0IGhhdmluZyB0
byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMgKGUuZy4gQXBwbGUgUGF5IEpTKS4gVGhpcyBuZXcg
cGF5bWVudAorICAgICAgICBtZXRob2QgaXMgcXVpdGUgYmFyZS1ib25lcyBpbiB0aGF0IGl0IGp1
c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNzZXMgaXQgdG8gQU1TLCB3aGljaCB0aGVuCisgICAg
ICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93IGJhc2VkIG9uIHRoYXQuIE5vIGRhdGEgaXMgZXhw
b3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVyIHRoYW4gZWl0aGVyCisgICAgICAgIGFuIGVycm9y
IG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIgdGhlIHBheW1lbnQgd2FzIHN1Y2Nlc3NmdWwuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1
ZXN0Lmh0dHBzLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dEFQSVZlcnNpb25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9u
OjpjdXJyZW50KToKKyAgICAgICAgQnVtcCB0aGUgY3VycmVudCBBcHBsZSBQYXkgdmVyc2lvbi4K
KworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVT
ZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
ZmluaXNoU2Vzc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXI6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRvY3VtZW50IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6cGFnZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhpZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmRldGFpbHNV
cGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIEFkZCBhIG5ldyBwYXltZW50
IG1ldGhvZCB0aGF0IHVzZXMgQU1TIHRvIHByZXNlbnQgVUkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Q6OmVuY29kZSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZGVjb2RlKToKKyAgICAg
ICAgSURMIGBkaWN0aW9uYXJ5YCB0aGF0IHRha2VzIHRoZSBwbGFjZSBvZiB0aGUgYG9iamVjdCBk
YXRhYCBpbiBgUGF5bWVudE1ldGhvZERhdGFgIHdoZW4gdGhlCisgICAgICAgIEFwcGxlIFBheSBB
TVMgVUkgcGF5bWVudCBtZXRob2QgaXMgdXNlZC4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVy
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbik6
CisgICAgICAgIE1pbm9yIHJlZmFjdG9yaW5nIHRvIGFsbG93IGZvciB0aGVyZSB0byBiZSBtb3Jl
IHRoYW4gb25lIHBheW1lbnQgbWV0aG9kIGltcGxlbWV0ZWQgYXQgb25jZS4KKworICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaDoKKyAgICAgICAgKiBNb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBheW1lbnRSZXF1ZXN0OjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVz
dDo6YWNjZXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpyZWplY3QpOgor
ICAgICAgICBUaGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkgZG9lc24ndCByZXF1aXJlIHRoYXQg
cGF5bWVudCBtZXRob2RzIGJlIGFib3J0YWJsZS4gQXMgc3VjaCwgYWRkCisgICAgICAgIHNvbWUg
bG9naWMgdGhhdCBjaGVja3Mgd2l0aCB0aGUgYWN0aXZlIGBQYXltZW50SGFuZGxlcmAgdG8gc2Vl
IGlmIGl0IGNhbiBiZSBhYm9ydGVkIGJlZm9yZQorICAgICAgICBhY3R1YWxseSBkb2luZyBzby4g
QWxzbyBjcmVhdGUgc29tZSBwdWJsaWMgaGVscGVyIG1ldGhvZHMgdGhhdCBhbGxvdyB0aGUgcGF5
bWVudCByZXF1ZXN0IHRvCisgICAgICAgIGJlIGFjY2VwdGVkIHdpdGhvdXQgcHJvdmlkaW5nIHNo
aXBwaW5nIGluZm9ybWF0aW9uIGFuZCBiZSBkaXJlY3RseSByZWplY3RlZCB3aXRoIGFuIGVycm9y
LgorCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpoYXNB
Y3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbiBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIHBhZ2Uv
UGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpzdGFydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpQYWdlOjphYm9ydEFwcGxlUGF5QU1TVUlT
ZXNzaW9uKTogQWRkZWQuCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKTogQWRkZWQuCisgICAgICAgIEFkZCBwbHVtYmluZyBiZXR3ZWVuIFdlYkNvcmUvV2ViUHJv
Y2VzcyBhbmQgVUlQcm9jZXNzLiBBbHNvIG1haW50YWluIHN0YXRlIGFib3V0IGlmIHRoZXJlJ3MK
KyAgICAgICAgYWxyZWFkeSBhbiBhY3RpdmUgQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IHNlc3Np
b24gKG5lZWRlZCBieSB0aGUgVzNDIFBheW1lbnQgUmVxdWVzdCBBUEkpLgorCisgICAgICAgICog
cGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAg
Q3JlYXRlIGEgaGVscGVyIGBQbGF0Zm9ybVZpZXdDb250cm9sbGVyYCB0aGF0IHdpbGwgZG8gdGhl
IHJpZ2h0IHRoaW5nIG9uIGJvdGggbWFjT1MgYW5kIGlPUy4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVl
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnZh
bGlkYXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b252ZXJ0RGF0YSk6CisgICAgICAgIERyaXZlLWJ5OiBSZW5hbWUgdGhlIGBjb252ZXJ0QW5kVmFs
aWRhdGVgIHRoYXQgdGFrZXMgYEpTQzo6SlNWYWx1ZWAgdG8gYGNvbnZlcnRBbmRWYWxpZGF0ZUFw
cGxlUGF5UmVxdWVzdGAKKyAgICAgICAgc28gdGhhdCB0aGVyZSBpc24ndCBhIG5hbWluZyBjb25m
bGljdCBpbiBvdGhlciBmaWxlcyB0aGF0IG1heSB3YW50IHRvIGRvIGEgc2ltaWxhciB0aGluZy4K
KworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmg6CisgICAgICAg
IERyaXZlLWJ5OiBVbmlmaWVkIHNvdXJjZXMgZml4LgorCisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBsYXRm
b3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBEb24gT2xtc3Rl
YWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQgYnVpbGQg
Zml4ZXMgZWFybHkgTm92ZW1iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE3NmY1NGJhM2Jl
ZDU0NTE3NjRhZTE2NzY2YzZkZWU3NTRiMWQ4NGUuLjQ4NzcxOTY2MWNiZGExNDZlMzc2N2UyOTdi
NzY5NWIyMDU0NzI5YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjEtMTEtMDIgIERl
dmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVl
c3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBmb3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTGV2ZXJhZ2UgdGhlIFczQyBQYXltZW50IFJlcXVlc3QgQVBJIGFz
IGEgd2F5IGZvciBBcHBsZSBkb21haW5zIHRvIHNob3cgYWx0ZXJuYXRlIG5hdGl2ZQorICAgICAg
ICBwYXltZW50IFVJcyB3aXRob3V0IGhhdmluZyB0byBhZGQgbmV3IHByb3ByaWV0YXJ5IEFQSXMg
KGUuZy4gQXBwbGUgUGF5IEpTKS4gVGhpcyBuZXcgcGF5bWVudAorICAgICAgICBtZXRob2QgaXMg
cXVpdGUgYmFyZS1ib25lcyBpbiB0aGF0IGl0IGp1c3QgdGFrZXMgc29tZSBKU09OIGFuZCBwYXNz
ZXMgaXQgdG8gQU1TLCB3aGljaCB0aGVuCisgICAgICAgIGRlY2lkZXMgd2hhdCBVSSB0byBzaG93
IGJhc2VkIG9uIHRoYXQuIE5vIGRhdGEgaXMgZXhwb3NlZCBiYWNrIHRvIHRoZSBwYWdlIG90aGVy
IHRoYW4gZWl0aGVyCisgICAgICAgIGFuIGVycm9yIG9yIGEgeWVzL25vIGFzIHRvIHdoZXRoZXIg
dGhlIHBheW1lbnQgd2FzIHN1Y2Nlc3NmdWwuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgor
ICAgICAgICBBZGQgcGx1bWJpbmcgYmV0d2VlbiBXZWJDb3JlL1dlYlByb2Nlc3MgYW5kIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbik6IEFkZGVkLgorICAgICAgICBV
c2UgQU1TIHRvIHByZXNlbnQgVUkgZm9yIHRoZSBnaXZlbiBlbmdhZ2VtZW50IHJlcXVlc3QgZGF0
YSBhbmQgb3JpZ2luYXRpbmcgVVJMLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVy
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVz
ZW50aW5nVmlld0NvbnRyb2xsZXIpOgorICAgICAgICBBZGQgc3VwcG9ydCBmb3IgYC1bV0tVSURl
bGVnYXRlUHJpdmF0ZSBfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzpdYCBvbiBt
YWNPUyB0b28uCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZp
Y2VzU1BJLmg6IEFkZGVkLgorICAgICAgICAqIFBsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlh
U2VydmljZXNVSVNQSS5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKwogMjAyMS0xMS0wMiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNv
bnkuY29tPgogCiAgICAgICAgIE5vbi11bmlmaWVkIGJ1aWxkIGZpeGVzIGVhcmx5IE5vdmVtYmVy
IDIwMjEgZWRpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3QKaW5kZXggMDQyYzE0NTAyMjg1Njk0MWY4MzRiZjdmZDE3ZDkwNzZiMDZkNGJkNi4u
YzRmYThlYzI2YWEyZmRmZmQ3OGQ4OWU5Y2JiNGFmZGM0OWNjMGYwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC02OSw2ICs2OSw3IEBA
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0
ZU1lcmNoYW50RXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwKKyQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbAogJChQUk9K
RUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkLmlkbAogJChQUk9KRUNU
X0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbS5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL05hdmlnYXRvcitDbGlwYm9hcmQuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlz
dCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4
IGYzMDQ4ZmVjY2YzYzQ2Yzg4YjUwZWQxNDQ3OTU5Zjc0NmRmMjIyZmYuLjE3ZDkxNjU0ODdjZDc3
ODZhOWExNjI1NTU3YWQzZTczNGMxOTA3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC03Niw2ICs3Niw4IEBAICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9uUGxheWJhY2tFdmVu
dEluaXQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0FuaW1hdGlvblBsYXliYWNrRXZlbnRJbml0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9uVGltZWxpbmUuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FuaW1hdGlvblRpbWVsaW5lLmgKKyQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlBTVNV
SVJlcXVlc3QuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5oCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q29u
dGFjdEZpZWxkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYmFhZGE3NjM2
ZmJiOTNlNjI1NDcyZDc5ZWVlYmU2OGIxOGFkZmNiYi4uYWZhMmMwMTM3ZTQ4ZTJlM2UyNmVjN2Jm
M2YyY2RmYzJhOGNhMDAxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMDEs
NiArMTAxLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsIFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVJlcXVlc3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0Fw
cGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FzeW5jLWNs
aXBib2FyZC9DbGlwYm9hcmQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXN5bmMtY2xp
cGJvYXJkL0NsaXBib2FyZEl0ZW0uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXN5bmMt
Y2xpcGJvYXJkL05hdmlnYXRvcitDbGlwYm9hcmQuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNDRjNzc5ZjgyM2EyZTM4ZWY4MDYz
ZjRhYTQ1NWMyNTA4MjQ5ZmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0w
LDAgKzEsMTc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIgorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9B
TVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNsdWRlICJBcHBsZVBheUFN
U1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiSlNBcHBsZVBh
eUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgorI2luY2x1ZGUgIlBh
Z2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQ
YXlBTVNVSVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAg
IGlmIChkYXRhLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisKKyAgICBhdXRvIHRocm93U2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGNvbnRleHQudm0oKSk7CisgICAgYXV0byBhcHBsZVBh
eUFNU1VJUmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5QU1TVUlSZXF1ZXN0Pigq
Y29udGV4dC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7CisgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0
aW9uKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9y
IH07CisKKyAgICBpZiAoIWFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0LnN0
YXJ0c1dpdGgoJ3snKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1l
bWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBpcyByZXF1aXJlZCBh
bmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdCJfcyB9OworCisgICAgcmV0dXJu
IFdURk1vdmUoYXBwbGVQYXlBTVNVSVJlcXVlc3QpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBB
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShEb2N1bWVudCYgZG9jdW1l
bnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQoreworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0g
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QoZG9jdW1lbnQsIGRhdGEpOwor
ICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgcmV0dXJuIHsg
fTsKK30KKworYm9vbCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlm
aWVyKGNvbnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJiBpZGVudGlmaWVyKQor
eworICAgIGlmICghc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxVUkw+KGlkZW50aWZpZXIpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvJiB1cmwgPSBzdGQ6OmdldDxVUkw+KGlkZW50
aWZpZXIpOworICAgIHJldHVybiB1cmwuaG9zdCgpID09ICJhcHBsZS5jb20iICYmIHVybC5wYXRo
KCkgPT0gIi9hbXMtdWkiOworfQorCitib29sIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6
aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgYXV0byogcGFnZSA9
IGRvY3VtZW50LnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5oYXNBY3RpdmVBcHBs
ZVBheUFNU1VJU2Vzc2lvbigpOworfQorCit2b2lkIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
cjo6ZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgcmVzdWx0KQoreworICAgIGlm
ICghcmVzdWx0KSB7CisgICAgICAgIG1fcGF5bWVudFJlcXVlc3QtPnJlamVjdChFeGNlcHRpb24g
eyBBYm9ydEVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wYXltZW50
UmVxdWVzdC0+YWNjZXB0KHN0ZDo6Z2V0PFVSTD4obV9pZGVudGlmaWVyKS5zdHJpbmcoKSwgW3N1
Y2Nlc3MgPSAqcmVzdWx0XSAoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCkgLT4gSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4geworICAgICAgICBKU0M6OkpTTG9ja0hv
bGRlciBsb2NrIHsgJmxleGljYWxHbG9iYWxPYmplY3QgfTsKKworICAgICAgICBKU0M6OlZNJiB2
bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICAgICAgYXV0byogb2JqZWN0ID0gY29uc3Ry
dWN0RW1wdHlPYmplY3QoJmxleGljYWxHbG9iYWxPYmplY3QpOworICAgICAgICBvYmplY3QtPnB1
dERpcmVjdCh2bSwgSlNDOjpJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAic3VjY2VzcyIpLCBK
U0M6OmpzQm9vbGVhbihzdWNjZXNzKSk7CisKKyAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0
aHJvd1Njb3BlLCB7IH0pOworCisgICAgICAgIHJldHVybiB7IHZtLCBvYmplY3QgfTsKKyAgICB9
KTsKK30KKworQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpBcHBsZVBheUFNU1VJUGF5bWVu
dEhhbmRsZXIoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBQYXltZW50UmVxdWVzdDo6TWV0aG9k
SWRlbnRpZmllciYgaWRlbnRpZmllciwgUGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQor
ICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeyAmZG9jdW1lbnQgfQorICAgICwgbV9p
ZGVudGlmaWVyIHsgaWRlbnRpZmllciB9CisgICAgLCBtX3BheW1lbnRSZXF1ZXN0IHsgcGF5bWVu
dFJlcXVlc3QgfQoreworICAgIEFTU0VSVChoYW5kbGVzSWRlbnRpZmllcihtX2lkZW50aWZpZXIp
KTsKK30KKworRG9jdW1lbnQmIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6ZG9jdW1lbnQo
KSBjb25zdAoreworICAgIEFTU0VSVChpczxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKSk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKK30KKworUGFnZSYgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpwYWdlKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoZG9jdW1lbnQoKS5wYWdlKCkpOworICAgIHJldHVybiAqZG9j
dW1lbnQoKS5wYWdlKCk7Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcjo6Y29udmVydERhdGEoSlNDOjpKU1ZhbHVlIGRhdGEpCit7CisgICAgYXV0byBy
ZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVz
dCgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhKTsKKyAgICBpZiAocmVxdWVzdE9yRXhj
ZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gcmVxdWVzdE9yRXhjZXB0aW9u
LnJlbGVhc2VFeGNlcHRpb24oKTsKKworICAgIG1fYXBwbGVQYXlBTVNVSVJlcXVlc3QgPSByZXF1
ZXN0T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgcmV0dXJuIHsgfTsKK30K
KworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpzaG93KERv
Y3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBBU1NFUlQobV9hcHBsZVBheUFNU1VJUmVxdWVzdCk7
CisKKyAgICBpZiAoIXBhZ2UoKS5zdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGRvY3VtZW50LCAq
dGhpcywgKm1fYXBwbGVQYXlBTVNVSVJlcXVlc3QpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgQWJvcnRFcnJvciB9OworCisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXI6OmhpZGUoKQoreworICAgIHBhZ2UoKS5hYm9ydEFwcGxlUGF5QU1T
VUlTZXNzaW9uKCp0aGlzKTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6
OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKHBhZ2UgJiYgIXBhZ2UtPmhhc0FjdGl2ZUFwcGxlUGF5
QU1TVUlTZXNzaW9uKCkpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXI6OmRldGFpbHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24s
IFN0cmluZyYmIC8qIGVycm9yICovLCBBZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMm
JiwgSlNDOjpKU09iamVjdCogLyogcGF5bWVudE1ldGhvZEVycm9ycyAqLykKK3sKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIg
ZG9lcyBub3QgbmVlZCBzaGlwcGluZy9wYXltZW50IGluZm8iKTsKKyAgICByZXR1cm4geyB9Owor
fQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Om1lcmNo
YW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJiAvKiBtZXJjaGFudFNlc3Npb25W
YWx1ZSAqLykKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRURfV0lUSF9NRVNTQUdFKCJBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXIgZG9lcyBub3QgbmVlZCBtZXJjaGFudCB2YWxpZGF0aW9uIik7
CisgICAgcmV0dXJuIHsgfTsKK30KKwordm9pZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6
OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKQoreworICAgIGhpZGUo
KTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpy
ZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKQoreworICAgIHJldHVybiBzaG93KGRvY3Vt
ZW50KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
QVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NDc0NjkxY2EzZjE5YTU5MDUyNjAxMTVj
ZjQzY2RhODM0Yjc4NmQxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmgKQEAgLTAsMCAr
MSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BB
WV9BTVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNsdWRlICJBcHBsZVBh
eUFNU1VJUmVxdWVzdC5oIgorI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgi
CisjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQYXltZW50SGFuZGxlci5oIgor
I2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIEpTQyB7CitjbGFzcyBKU09iamVjdDsK
K2NsYXNzIEpTVmFsdWU7Cit9CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBQYWdlOworCitzdHJ1Y3QgQWRkcmVzc0Vycm9yczsKK3N0cnVjdCBQYXllckVy
cm9yRmllbGRzOworCitlbnVtIGNsYXNzIFBheW1lbnRDb21wbGV0ZTsKKworY2xhc3MgQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyIGZpbmFsIDogcHVibGljIFBheW1lbnRIYW5kbGVyLCBwcml2
YXRlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgRXhj
ZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVEYXRhKERvY3VtZW50JiwgSlNDOjpKU1ZhbHVlKTsKKyAg
ICBzdGF0aWMgYm9vbCBoYW5kbGVzSWRlbnRpZmllcihjb25zdCBQYXltZW50UmVxdWVzdDo6TWV0
aG9kSWRlbnRpZmllciYpOworICAgIHN0YXRpYyBib29sIGhhc0FjdGl2ZVNlc3Npb24oRG9jdW1l
bnQmKTsKKworICAgIHZvaWQgZmluaXNoU2Vzc2lvbihzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpOwor
Citwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBQYXltZW50SGFuZGxlcjsKKyAgICBleHBsaWNp
dCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIoRG9jdW1lbnQmLCBjb25zdCBQYXltZW50UmVx
dWVzdDo6TWV0aG9kSWRlbnRpZmllciYsIFBheW1lbnRSZXF1ZXN0Jik7CisKKyAgICBEb2N1bWVu
dCYgZG9jdW1lbnQoKSBjb25zdDsKKyAgICBQYWdlJiBwYWdlKCkgY29uc3Q7CisKKyAgICAvLyBQ
YXltZW50SGFuZGxlcgorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnREYXRhKEpTQzo6SlNW
YWx1ZSkgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hvdyhEb2N1bWVudCYpIGZpbmFs
OworICAgIGJvb2wgY2FuQWJvcnRTZXNzaW9uKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAg
ICB2b2lkIGhpZGUoKSBmaW5hbDsKKyAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50Jiwg
RnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CisgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNv
biwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBK
U0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVlJiYpIGZpbmFs
OworICAgIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpIGZp
bmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3Jz
JiYpIGZpbmFsOworCisgICAgUGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOworICAgIFJlZjxQYXltZW50UmVxdWVzdD4gbV9wYXltZW50UmVxdWVzdDsKKyAgICBz
dGQ6Om9wdGlvbmFsPEFwcGxlUGF5QU1TVUlSZXF1ZXN0PiBtX2FwcGxlUGF5QU1TVUlSZXF1ZXN0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExF
X1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjU0M2E3ZTQ1NDU5NmVmMDY1M2NkYzYxMGNkZGZmNDZkOGY3Zjk0YzkKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9B
cHBsZVBheUFNU1VJUmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKSAmJiBFTkFCTEUoUEFZTUVO
VF9SRVFVRVNUKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdCB7CisgICAgU3RyaW5nIGVuZ2FnZW1lbnRSZXF1
ZXN0OyAvLyByZXF1aXJlZCBKU09OCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGRlY29kZShEZWNvZGVyJik7
Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheUFNU1VJUmVxdWVz
dDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBlbmdh
Z2VtZW50UmVxdWVzdDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9u
YWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IEFwcGxlUGF5QU1TVUlSZXF1ZXN0OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZW5nYWdlbWVudFJl
cXVlc3Q7CisgICAgZGVjb2RlciA+PiBlbmdhZ2VtZW50UmVxdWVzdDsKKyAgICBpZiAoIWVuZ2Fn
ZW1lbnRSZXF1ZXN0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCplbmdhZ2VtZW50UmVxdWVzdCkgfSB9OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkgJiYgRU5BQkxF
KFBBWU1FTlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZTM4ZTBmZGJjMDdlOTQ1Y2Y0YzkwMTYwNTBiMGI5MDc2NTZhZDE3Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9QVBQTEVfUEFZX0FNU19VSSZQQVlNRU5UX1JFUVVFU1QsCitdIGRpY3Rpb25hcnkgQXBw
bGVQYXlBTVNVSVJlcXVlc3QgeworICAgIHJlcXVpcmVkIEpTT04gZW5nYWdlbWVudFJlcXVlc3Q7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50QVBJVmVyc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCmluZGV4IDg3Mjc2ZTg1MzU0YTA5N2U2
MGI1OGRkYjBiNThkNzY0Y2VmZjkwYjkuLmNkYTAzODk3Yjc4MzFmOTc2MGU4YWJiNmI0ZGNmNzNl
NTlkN2I0ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0KQEAgLTM1LDcgKzM1LDkg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgUGF5bWVudEFQSVZlcnNpb246OmN1cnJl
bnQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBjdXJyZW50ID0gW10gewotI2lmIEVOQUJMRShB
UFBMRV9QQVlfQ09VUE9OX0NPREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfU0hJUFBJTkdfQ09OVEFD
VF9FRElUSU5HX01PREUpIHx8IEVOQUJMRShBUFBMRV9QQVlfUkVDVVJSSU5HX0xJTkVfSVRFTSkg
fHwgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lURU0pIHx8IEVOQUJMRShBUFBMRV9Q
QVlfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9ORU5UU19SQU5HRSkKKyNpZiBFTkFCTEUoQVBQ
TEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKSB8fCBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkK
KyAgICAgICAgcmV0dXJuIDEzOworI2VsaWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkg
fHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19DT05UQUNUX0VESVRJTkdfTU9ERSkgfHwgRU5B
QkxFKEFQUExFX1BBWV9SRUNVUlJJTkdfTElORV9JVEVNKSB8fCBFTkFCTEUoQVBQTEVfUEFZX0RF
RkVSUkVEX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19NRVRIT0RfREFU
RV9DT01QT05FTlRTX1JBTkdFKQogICAgICAgICByZXR1cm4gMTI7CiAjZWxpZiBFTkFCTEUoQVBQ
TEVfUEFZX1NFU1NJT05fVjExKQogICAgICAgICByZXR1cm4gMTE7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA1MzBhYzkyMmUyMzA2NWQ5NGFj
NDliNGIxZTU1ODYxMGVmODQ0MGQ3Li4xMDY0YjU3Zjg1OTdmZjYwYWE3OTcxNjIwZWU2NWNmNDdh
NTRjM2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5j
cHAKQEAgLTc4LDcgKzc4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRhdGEpCitzdGF0aWMgRXhjZXB0aW9u
T3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAg
aWYgKGRhdGEuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIgfTsKQEAgLTkzLDcgKzkzLDcgQEAgc3Rh
dGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGMKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50JiBkb2N1bWVudCwgSlNDOjpKU1ZhbHVlIGRh
dGEpCiB7Ci0gICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGUo
ZG9jdW1lbnQsIGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFu
ZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KGRvY3VtZW50LCBkYXRhKTsKICAgICBpZiAocmVxdWVz
dE9yRXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gcmVxdWVzdE9yRXhj
ZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIApAQCAtMjAyLDcgKzIwMiw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29u
c3QgUGF5bWVudFNoaXBwCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBkYXRhKQogewotICAgIGF1dG8gcmVxdWVzdE9y
RXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCks
IGRhdGEpOworICAgIGF1dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRl
QXBwbGVQYXlSZXF1ZXN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGEpOwogICAgIGlm
IChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiByZXF1
ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhh
bmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3Qv
QXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4IDdiZmVjZmU5NTVlMDhjNTlhN2M4YjJkOGVj
NDE4OTM3YTlhM2RlZWYuLjk3MzE0MThjNTU3ZTZmZTE3NGY2Mzg0OTRkMzQ1NjEwMjliMGE1ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVl
c3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCkBAIC03Myw2
ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgLy8gUGF5bWVudEhhbmRsZXIKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNob3coRG9jdW1lbnQmKSBmaW5hbDsKKyAgICBib29sIGNhbkFib3J0U2Vzc2lvbigp
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGhpZGUoKSBmaW5hbDsKICAgICB2b2lk
IGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQo
UGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJv
cnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJy
b3JzKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3Vy
Y2UvU291cmNlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1Nv
dXJjZUJ1ZmZlci5oCmluZGV4IDI4MDk5MjVmNWQyMWYzZTNmMzQ3N2ExZTQ1MjQzODUwNzg1ZDRm
YWQuLjUyMGMwNzc1Njk2YTJmMGUyZTczMDA3MzVlOGM5Nzc0OTVmMWE2MTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuaApAQCAtNDMs
NiArNDMsNyBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiVmlkZW9UcmFja0NsaWVu
dC5oIgogI2luY2x1ZGUgPHd0Zi9Mb2dnZXJIZWxwZXIuaD4KKyNpbmNsdWRlIDx3dGYvT2JzZXJ2
ZXIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IGY1NWRh
MjVjNjBmNTAzOGJlODlmMjg2YjdjMTAxODJjZDkxMGQ2NmEuLjYzMGM2MDk2YzU3Y2NhODA0ZDFh
MWUzMDFkZmQ5Y2Y5MTUwNGRkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0yOCw2ICsyOCwxMCBA
QAogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlf
QU1TX1VJKQorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIgorI2VuZGlm
CisKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudEhhbmRs
ZXIuaCIKICNlbmRpZgpAQCAtMzksMTIgKzQzLDE2IEBAIFJlZlB0cjxQYXltZW50SGFuZGxlcj4g
UGF5bWVudEhhbmRsZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFBheW1lbnRSZXF1ZXN0
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBpZiAoQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgQXBwbGVQYXlQYXltZW50SGFuZGxlcihkb2N1bWVudCwgaWRlbnRpZmllciwgcGF5bWVudFJl
cXVlc3QpKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQor
ICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlk
ZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcihkb2N1bWVudCwgaWRlbnRpZmllciwgcGF5bWVudFJlcXVlc3QpKTsKKyNlbmRp
ZgorCiAgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBVTlVTRURfUEFSQU0ocGF5bWVu
dFJlcXVlc3QpOwogICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKLSNlbmRpZgotCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTY2LDEyICs3NCwxNiBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKERvY3VtZW50JiBkb2N1bWVudCwgSlNDOjpK
U1ZhbHVlCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICAgICBpZiAoQXBwbGVQYXlQYXltZW50SGFu
ZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybiBBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEoZG9jdW1lbnQsIGRhdGEpOwotI2Vsc2UK
KyNlbmRpZgorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgaWYgKEFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoaWRlbnRpZmllcikpCisgICAg
ICAgIHJldHVybiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShkb2N1
bWVudCwgZGF0YSk7CisjZW5kaWYKKwogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiAgICAg
VU5VU0VEX1BBUkFNKGRhdGEpOwogICAgIFVOVVNFRF9QQVJBTShpZGVudGlmaWVyKTsKLSNlbmRp
ZgotCiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtODgsMTEgKzEwMCwxNyBAQCBib29sIFBheW1l
bnRIYW5kbGVyOjplbmFibGVkRm9yQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0KQogYm9vbCBQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYgZG9j
dW1lbnQpCiB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKLSAgICByZXR1cm4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihkb2N1bWVudCk7Ci0jZWxzZQorICAgIGlmIChB
cHBsZVBheVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9uKGRvY3VtZW50KSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQor
ICAgIGlmIChBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2ZVNlc3Npb24oZG9j
dW1lbnQpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorCiAgICAgVU5VU0VEX1BBUkFN
KGRvY3VtZW50KTsKICAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50SGFuZGxlci5oCmluZGV4IDdmODZlYmQwZjI3MGZhNjMzNmMwMmQ4N2Q1ZjQ0
Yzg3NTI2NjlhN2EuLmFmNDYzNTgxZDYxYWU1MzNkMzVkYjFmODBkZDZmNTRhNmM2MWE1MzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhh
bmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRIYW5kbGVyLmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBFeGNl
cHRpb25Pcjx2b2lkPiBjb252ZXJ0RGF0YShKU0M6OkpTVmFsdWUpID0gMDsKICAgICB2aXJ0dWFs
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNob3coRG9jdW1lbnQmKSA9IDA7CisgICAgdmlydHVhbCBib29s
IGNhbkFib3J0U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaGlkZSgpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSA9IDA7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2
b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBTdHJpbmcm
JiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9yRmllbGRzJiYsIEpTQzo6SlNPYmpl
Y3QqIHBheW1lbnRNZXRob2RFcnJvcnMpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggMDYzY2Zm
N2UwOTA3YjVlMzdjNGZmMjQxNDA0ZDhkM2I5MzgxMmJkYi4uNWIxZGM3ODliMzRlOTE3YTI5MzNl
ZDVmYTYzMGFlYTZjODcwNGUzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTQ5NCw2ICs0OTQsMTEg
QEAgdm9pZCBQYXltZW50UmVxdWVzdDo6YWJvcnQoQWJvcnRQcm9taXNlJiYgcHJvbWlzZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChtX2FjdGl2ZVBheW1lbnRIYW5kbGVyICYm
ICFhY3RpdmVQYXltZW50SGFuZGxlcigpLT5jYW5BYm9ydFNlc3Npb24oKSkgeworICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24geyBBYm9y
dEVycm9yIH0pOwogICAgIHByb21pc2UucmVzb2x2ZSgpOwogfQpAQCAtNjk3LDYgKzcwMiwzNSBA
QCB2b2lkIFBheW1lbnRSZXF1ZXN0Ojp3aGVuRGV0YWlsc1NldHRsZWQoc3RkOjpmdW5jdGlvbjx2
b2lkKCk+JiYgY2FsbGJhY2spCiAgICAgfSk7CiB9CiAKK3ZvaWQgUGF5bWVudFJlcXVlc3Q6OmFj
Y2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1
bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9uKQoreworICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsK
KyAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6SW50ZXJhY3RpdmUpOworCisgICAgYm9vbCBp
c1JldHJ5ID0gbV9yZXNwb25zZTsKKyAgICBpZiAoIWlzUmV0cnkpIHsKKyAgICAgICAgbV9yZXNw
b25zZSA9IFBheW1lbnRSZXNwb25zZTo6Y3JlYXRlKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
KnRoaXMpOworICAgICAgICBtX3Jlc3BvbnNlLT5zZXRSZXF1ZXN0SWQobV9kZXRhaWxzLmlkKTsK
KyAgICB9CisKKyAgICBtX3Jlc3BvbnNlLT5zZXRNZXRob2ROYW1lKG1ldGhvZE5hbWUpOworICAg
IG1fcmVzcG9uc2UtPnNldERldGFpbHNGdW5jdGlvbihXVEZNb3ZlKGRldGFpbHNGdW5jdGlvbikp
OworICAgIG1fcmVzcG9uc2UtPnNldFNoaXBwaW5nQWRkcmVzcyhudWxscHRyKTsKKyAgICBtX3Jl
c3BvbnNlLT5zZXRTaGlwcGluZ09wdGlvbihudWxsU3RyaW5nKCkpOworICAgIG1fcmVzcG9uc2Ut
PnNldFBheWVyTmFtZShudWxsU3RyaW5nKCkpOworICAgIG1fcmVzcG9uc2UtPnNldFBheWVyRW1h
aWwobnVsbFN0cmluZygpKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRQYXllclBob25lKG51bGxTdHJp
bmcoKSk7CisKKyAgICBpZiAoIWlzUmV0cnkpCisgICAgICAgIHNldHRsZVNob3dQcm9taXNlKCpt
X3Jlc3BvbnNlKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQVNTRVJUKG1fcmVzcG9uc2UtPmhhc1Jl
dHJ5UHJvbWlzZSgpKTsKKyAgICAgICAgbV9yZXNwb25zZS0+c2V0dGxlUmV0cnlQcm9taXNlKCk7
CisgICAgfQorCisgICAgbV9zdGF0ZSA9IFN0YXRlOjpDbG9zZWQ7Cit9CisKIHZvaWQgUGF5bWVu
dFJlcXVlc3Q6OmFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1lbnRSZXNwb25z
ZTo6RGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWlsc0Z1bmN0aW9uLCBSZWY8UGF5bWVudEFkZHJlc3M+
JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3RyaW5n
JiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpCiB7CiAgICAgQVNTRVJUKCFt
X2lzVXBkYXRpbmcpOwpAQCAtNzI2LDYgKzc2MCwxMSBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0Ojph
Y2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNG
dQogICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOwogfQogCit2b2lkIFBheW1lbnRSZXF1ZXN0
OjpyZWplY3QoRXhjZXB0aW9uJiYgZXhjZXB0aW9uKQoreworICAgIGFib3J0V2l0aEV4Y2VwdGlv
bihXVEZNb3ZlKGV4Y2VwdGlvbikpOworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVx
dWVzdDo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQog
ewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpDbG9zZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4
IDE5MTU5NzY5MDk4MTY0NDNkY2Q2ZDNkY2IyZGVkOGY0MmQ3OTk3YWQuLmViYmQ1NDI2YTU3OGI3
Yjc1NzkyM2MwMzZkOWIxNGUxN2Q1NDY3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTk2LDcgKzk2LDkg
QEAgcHVibGljOgogICAgIHZvaWQgcGF5bWVudE1ldGhvZENoYW5nZWQoY29uc3QgU3RyaW5nJiBt
ZXRob2ROYW1lLCBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQ6Ok1ldGhvZERldGFpbHNGdW5jdGlv
biYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiB1cGRhdGVXaXRoKFVwZGF0ZVJlYXNvbiwgUmVm
PERPTVByb21pc2U+JiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlTWVyY2hhbnRW
YWxpZGF0aW9uKEV2ZW50JiwgUmVmPERPTVByb21pc2U+JiYpOworICAgIHZvaWQgYWNjZXB0KGNv
bnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3BvbnNlOjpEZXRhaWxzRnVuY3Rpb24m
Jik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVz
cG9uc2U6OkRldGFpbHNGdW5jdGlvbiYmLCBSZWY8UGF5bWVudEFkZHJlc3M+JiYgc2hpcHBpbmdB
ZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3RyaW5nJiBwYXllckVtYWls
LCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOworICAgIHZvaWQgcmVqZWN0KEV4Y2VwdGlvbiYm
KTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRD
b21wbGV0ZT4mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmV0cnkoUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMmJik7CiAgICAgdm9pZCBjYW5jZWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UK
aW5kZXggM2EzMmNhM2M5ZDc3YWZkMjRkZTFhM2U3YmM5NWYyYjI0NDZjNTU1OS4uMTM2ODgwM2Jh
NDA3ZmRhODE3MDE5OWFmMTBiYjYzZjEzMDBiMzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21h
a2UKQEAgLTU4OSw2ICs1ODksNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9jb2NvYS9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQuaAogICAgIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgK
ICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXcuaAorICAgIHBsYXRmb3JtL2NvY29hL1Bs
YXRmb3JtVmlld0NvbnRyb2xsZXIuaAogICAgIHBsYXRmb3JtL2NvY29hL1BsYXliYWNrU2Vzc2lv
bk1vZGVsLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxl
bWVudC5oCiAgICAgcGxhdGZvcm0vY29jb2EvUG93ZXJTb3VyY2VOb3RpZmllci5oCkBAIC03OTQs
NiArNzk1LDggQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9kaWZpZXIuaWRsCiAgICAgTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsCiAKKyAgICBNb2R1bGVz
L2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGwKKwogICAgIE1vZHVsZXMv
cGx1Z2lucy9RdWlja1RpbWVQbHVnaW5SZXBsYWNlbWVudC5pZGwKICkKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXND
b2NvYS50eHQKaW5kZXggNjNhOGU5YzAyNzEzNTljYzI2MzQ5MTg1Mjg1ZDQwOGJhNjA5ODBlZS4u
MzE5MTZkYmMzZjViNzFjYWIyYjAzYzg4MGYwOWI0OTZmN2EwYzEzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CkBAIC0yMSw2ICsyMSw3IEBACiAvLyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCiAvLyBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK0pTQXBwbGVQYXlBTVNVSVJlcXVlc3QuY3BwCiBK
U0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAogSlNB
cHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuY3BwCkBAIC05Niw2ICs5Nyw3IEBAIE1vZHVs
ZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZENvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5
L2NvY29hL1BheW1lbnRTZXNzaW9uRXJyb3JDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKK01vZHVsZXMvYXBwbGVwYXktYW1zLXVp
L0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKIE1vZHVsZXMvYXN5bmMtY2xpcGJvYXJk
L2lvcy9DbGlwYm9hcmRJbWFnZVJlYWRlcklPUy5tbQogTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQv
bWFjL0NsaXBib2FyZEltYWdlUmVhZGVyTWFjLm1tCiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0
cFNGcmFtZVRyYW5zZm9ybWVyQ29jb2EuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU3NTViYzMzOGU3NmQ4NzkwZDBiNDNj
MDdkMmQyYWJmMDYwZTc4NS4uYmIzYWFlODk2ODg1OTlhZWI5N2ZlZmQ4MWI2OWYxYzcwYWM2ZGY2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMzA1Nyw2ICszMDU3LDcgQEAKIAkJOTU5NkI5MzgyNURFRUYwMzAwRUQyQ0ZBIC8q
IEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2QjkzNjI1REVFRjAyMDBFRDJDRkEgLyogSlNB
cHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsgfTsKIAkJOTVBMUUyRTkyNUNDNzVB
OTAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4
RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTVBQTU3MTAyNUVFRUQzMjAwNEU5MjgzIC8q
IEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUE1NzBFMjVFRUVEMzEwMDRFOTI4MyAvKiBJbnNwZWN0b3JD
YW52YXNDYWxsVHJhY2VyLmggKi87IH07CisJCTk1QkE0RkFEMjZEOTgxQUEwMDJBMEU2MiAvKiBQ
bGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUJBNEZBQjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29u
dHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk1REY5RDI1MjUyQkVEQjIwMDBEN0Y0NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NURGOUQyMzI1
MkJFRDk5MDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGljcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1RUFENTYzMjY2RUYyREIwMDRC
OUNGMSAvKiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFENTVGMjY2RUYyREEwMDRCOUNGMSAv
KiBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsgfTsKIAkJOTVFQUQ1NkEyNjZF
RjJGQTAwNEI5Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVFQUQ1NjYyNjZFRjJGODAwNEI5
Q0YxIC8qIEFwcGxlUGF5RGF0ZUNvbXBvbmVudHNSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMDczLDYgKzMwNzQsOCBAQAogCQk5NUVB
RDU5NDI2NkVGNUQ0MDA0QjlDRjEgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFQzFFMDA4NTY2
MDBFM0EyN0EgLyogSlNBcHBsZVBheVBheW1lbnRSZXF1ZXN0LmggKi87IH07CiAJCTk1RUFENTk3
MjY2RUY2MEIwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFENTk1
MjY2RUY2MDkwMDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUu
aCAqLzsgfTsKIAkJOTVGNDVEMjcyNjRERkJGMTAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBsZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RjQ1RDI2
MjY0REZCRUIwMEQwQjhCOCAvKiBQYWdlQ29sb3JTYW1wbGVyLmggKi87IH07CisJCTk1RkI2NjI1
MjZENzAzM0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RkI2NjIxMjZENzAzM0Iw
MDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCAqLzsgfTsKKwkJOTVGQjY2
MjYyNkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUZCNjYyMjI2RDcwMzNCMDA2OEFD
NjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzA1OTk3QTEwN0Q5NzUyMDBBNTBBN0MgLyogUG9saWN5
Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTcwNTk5NzYxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzBCNzI4QTE0NEZGQUM2MDBG
MDBBMzcgLyogRXZlbnRJbnRlcmZhY2VzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzBCNzI4OTE0NEZGQUM2MDBGMDBBMzcgLyogRXZlbnRJbnRlcmZh
Y2VzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTcwQjcyQTYxNDUwMDhFQjAwRjAwQTM3IC8qIEV2ZW50SGVhZGVycy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyQTUxNDUwMDhFQjAwRjAwQTM3
IC8qIEV2ZW50SGVhZGVycy5oICovOyB9OwpAQCAtMTIyMzcsNiArMTIyNDAsNyBAQAogCQk5NUEx
RTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QUE1NzBEMjVFRUVEMzAwMDRF
OTI4MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5NUFBNTcwRTI1RUVFRDMxMDA0RTkyODMgLyogSW5zcGVj
dG9yQ2FudmFzQ2FsbFRyYWNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTk1QkE0RkFCMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVERjlEMjMyNTJCRUQ5OTAwMEQ3RjQ2IC8q
IFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUG9pbnRlckNoYXJhY3Rl
cmlzdGljcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUVBRDU1RjI2NkVGMkRB
MDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUVBRDU2MTI2NkVGMkRBMDA0QjlDRjEgLyog
QXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTIyNjcsNiArMTIyNzEsMTAgQEAKIAkJOTVFQUQ1OTYyNjZFRjYwQTAwNEI5
Q0YxIC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RFZGl0aW5nTW9kZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRp
dGluZ01vZGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUY0NUQyNDI2NERG
QkVCMDBEMEI4QjggLyogUGFnZUNvbG9yU2FtcGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
YWdlQ29sb3JTYW1wbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVGNDVE
MjYyNjRERkJFQjAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UGFnZUNvbG9yU2FtcGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NUZCNjYy
MDI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJOTVGQjY2MjEyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVGQjY2
MjIyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTk1RkI2NjIzMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTcwNTk5NzUxMDdEOTc1MjAwQTUwQTdDIC8qIFBvbGljeUNoZWNrZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9saWN5Q2hlY2tlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQ
b2xpY3lDaGVja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvbGljeUNo
ZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTcwQjcyODkxNDRGRkFDNjAw
RjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBFdmVudEludGVyZmFjZXMuaDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYkNvcmUvRXZl
bnRJbnRlcmZhY2VzLmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CkBAIC0y
NDQyMywxMSArMjQ0MzEsMjMgQEAKIAkJCW5hbWUgPSBwYXJzZXI7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk5NUZCNjYxRjI2RDcwMzNCMDA2OEFDNjcgLyogYXBwbGVwYXkt
YW1zLXVpICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5
NUZCNjYyMzI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNw
cCAqLywKKwkJCQk5NUZCNjYyMTI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyLmggKi8sCisJCQkJOTVGQjY2MjIyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5
QU1TVUlSZXF1ZXN0LmggKi8sCisJCQkJOTVGQjY2MjAyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxl
UGF5QU1TVUlSZXF1ZXN0LmlkbCAqLywKKwkJCSk7CisJCQlwYXRoID0gImFwcGxlcGF5LWFtcy11
aSI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk5NzExNDVGRTE0RUYwMDZF
MDA2NzRGRDkgLyogTW9kdWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJQ0UyNjE2OUQxODdFNjU1NDAwNzk1NUYzIC8qIGFpcnBsYXkgKi8sCiAJCQkJ
MUE1OEU4NjExRDE5RDM3MzAwQzBFQTczIC8qIGFwcGxlcGF5ICovLAorCQkJCTk1RkI2NjFGMjZE
NzAzM0IwMDY4QUM2NyAvKiBhcHBsZXBheS1hbXMtdWkgKi8sCiAJCQkJNjNCRDRBNUMxRjc3OEU4
NDAwNDM4NzIyIC8qIGFwcGxpY2F0aW9ubWFuaWZlc3QgKi8sCiAJCQkJRjQ0MEU3NkEyMzNEOTND
ODAwNjNGOUFCIC8qIGFzeW5jLWNsaXBib2FyZCAqLywKIAkJCQk4MzIxNTA3OTFGMjdFOTZCMDA5
NUIxMzYgLyogYmVhY29uICovLApAQCAtMjUyMTIsNiArMjUyMzIsNyBAQAogCQkJCUY0RkIzNTAw
MjM1MEM5NjIwMEYwMDk0QSAvKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tICovLAogCQkJ
CUY0NjI4QTlFMjM0RDNCQkYwMEJDODg0QyAvKiBQbGF0Zm9ybVBhc3RlYm9hcmRDb2NvYS5tbSAq
LywKIAkJCQk1MkIwRDRCRDFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggKi8sCisJ
CQkJOTVCQTRGQUIyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaCAq
LywKIAkJCQlDREEyOUEwQTFDQkQ5QTc0MDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9kZWwu
aCAqLywKIAkJCQlDREEyOUEwRDFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTW9k
ZWxNZWRpYUVsZW1lbnQuaCAqLywKIAkJCQlDREEyOUEwQzFDQkQ5Q0ZFMDA5MDFDQ0YgLyogUGxh
eWJhY2tTZXNzaW9uTW9kZWxNZWRpYUVsZW1lbnQubW0gKi8sCkBAIC0zMTY5Miw2ICszMTcxMyw4
IEBACiAJCQkJNDQ1MjEwREYyNUQ2MUYwMDAwM0EyRUQ4IC8qIEFwcEhpZ2hsaWdodC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDRBRTA0NUMyNTc5Q0ZGQjAwQzQyRTY1IC8qIEFwcEhpZ2hsaWdodFJh
bmdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQyNTA3MDkyNTgyOUEyNzAwQzA5MzY4IC8q
IEFwcEhpZ2hsaWdodFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1RkI2NjI1MjZENzAz
M0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk1RkI2NjI2MjZENzAzM0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTExM0UwMkUyMzMxQTEzNDAwOUMzM0EwIC8qIEFwcGxlUGF5
Q2FuY2VsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QTk0MUY3RUM0MzIwMDU4QTQ3
NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTVFQUQ1NjMy
NjZFRjJEQjAwNEI5Q0YxIC8qIEFwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zNDgyNiw2ICszNDg0OSw3IEBACiAJCQkJMEY3RDA3MzMxODg0QzU2QzAw
QjRBRjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzRFODJC
QjE4QTY5RjBFMDA3RUY1NEMgLyogUGxhdGZvcm1UaW1lUmFuZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MkIwRDRCRTFDNTdGRDFFMDA3N0NFNTMgLyogUGxhdGZvcm1WaWV3LmggaW4gSGVhZGVy
cyAqLywKKwkJCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJv
bGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NkIwOUFDNEQ0RjAwQTZBQUI0IC8qIFBs
YXRmb3JtV2hlZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFFRThCNzIyNDEyQjJBODAw
RTc5NEQ2IC8qIFBsYXRmb3JtWFIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyNzNDQzc3MjU2MTAz
Q0YwMDg1MDAwNyAvKiBQbGF0Zm9ybVhSQ29jb2EuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMjNhNThiZjhiODNjZTJmNTZiZTAyMTYyZGI1Nzg0YmE3
MzgxZjNlMC4uNWY2ZDViNGYyZWM1MGViMTcyNjM5OTkwOTZkNzVjZjE1MzU5NzA0MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjQsNiArMTI0LDcgQEAgY2xhc3MgTWVkaWFQ
bGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7CiAjZW5kaWYKIAogc3Ry
dWN0IEFwcEhpZ2hsaWdodDsKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVzdDsKIHN0cnVjdCBD
b250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CiBzdHJ1
Y3QgRGF0YURldGVjdG9yRWxlbWVudEluZm87CkBAIC02MTEsNiArNjEyLDExIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgbW9kZWxFbGVtZW50RGlkQ3JlYXRlUHJldmlldyhXZWJDb3JlOjpI
VE1MTW9kZWxFbGVtZW50JiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJikgY29uc3QgeyB9OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZ
X0FNU19VSSkKKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihjb25z
dCBVUkwmLCBjb25zdCBBcHBsZVBheUFNU1VJUmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0
aW9uSGFuZGxlcihzdGQ6Om51bGxvcHQpOyB9CisgICAgdmlydHVhbCB2b2lkIGFib3J0QXBwbGVQ
YXlBTVNVSVNlc3Npb24oKSB7IH0KKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+
Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IDgxNDZj
YjU5ZmNiNzFjNzEwZTZmNzIyYWM2ZDVjZTU1OWY2NDkzMzcuLmQ5NzlhNGRjZTczOWJlZWQzYjhh
OTIxOGM1NzdmYWNhYTZjNThmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMTY4LDYgKzE2OCwx
MCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9UZXh0U3RyZWFtLmg+CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyNpbmNsdWRl
ICJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJ
UkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5YmFja1RhcmdldC5oIgpAQCAtMzQ4NCw2ICszNDg4LDQyIEBAIHZv
aWQgUGFnZTo6c2V0UGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50Q29v
cmRpbmF0b3I+JiYgcGF5bWVudENvCiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlf
QU1TX1VJKQorCitib29sIFBhZ2U6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oRG9jdW1lbnQm
IGRvY3VtZW50LCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXImIHBheW1lbnRIYW5kbGVyLCBj
b25zdCBBcHBsZVBheUFNU1VJUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAoaGFzQWN0aXZl
QXBwbGVQYXlBTVNVSVNlc3Npb24oKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9h
Y3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgPSAmcGF5bWVudEhhbmRsZXI7CisKKyAg
ICBjaHJvbWUoKS5jbGllbnQoKS5zdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGRvY3VtZW50LnVy
bCgpLCByZXF1ZXN0LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGF5bWVudEhhbmRs
ZXJQdHIgPSAmcGF5bWVudEhhbmRsZXJdIChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYgcmVzdWx0KSB7
CisgICAgICAgIGF1dG8gc3Ryb25nVGhpcyA9IHdlYWtUaGlzLmdldCgpOworICAgICAgICBpZiAo
IXN0cm9uZ1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKHBheW1lbnRI
YW5kbGVyUHRyICE9IHN0cm9uZ1RoaXMtPm1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChhdXRvIGFjdGl2ZVBheW1l
bnRIYW5kbGVyID0gc3RkOjpleGNoYW5nZShzdHJvbmdUaGlzLT5tX2FjdGl2ZUFwcGxlUGF5QU1T
VUlQYXltZW50SGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgICAgICBhY3RpdmVQYXltZW50SGFu
ZGxlci0+ZmluaXNoU2Vzc2lvbihXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworICAgIHJldHVy
biB0cnVlOworfQorCit2b2lkIFBhZ2U6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyJiBwYXltZW50SGFuZGxlcikKK3sKKyAgICBpZiAoJnBheW1l
bnRIYW5kbGVyICE9IG1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBjaHJvbWUoKS5jbGllbnQoKS5hYm9ydEFwcGxlUGF5QU1TVUlTZXNz
aW9uKCk7CisKKyAgICBpZiAoYXV0byBhY3RpdmVQYXltZW50SGFuZGxlciA9IHN0ZDo6ZXhjaGFu
Z2UobV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIsIG51bGxwdHIpKQorICAgICAg
ICBhY3RpdmVQYXltZW50SGFuZGxlci0+ZmluaXNoU2Vzc2lvbihzdGQ6Om51bGxvcHQpOworfQor
CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTl9DT09SRElOQVRPUikKIHZvaWQgUGFnZTo6c2V0TWVkaWFTZXNzaW9uQ29vcmRpbmF0
b3IoUmVmPE1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJpdmF0ZT4mJiBtZWRpYVNlc3Npb25Db29y
ZGluYXRvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMjYzN2EyOWRiZjU0YjM4ZjljZDYyOGNlZWY4
MWUyZWQ3YTMwYTA1Yi4uMWRlY2FmZWY0ZGJiYTc1Y2RlOTJiMDk0MjU3OGE0YTQ0ZDRjZmQyZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTkxLDYgKzkxLDcgQEAgbmFtZXNwYWNlIElEQkNsaWVudCB7CiBj
bGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXI7CiB9CiAKK2NsYXNzIEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcjsKIGNsYXNzIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcjsKIGNsYXNzIEFs
dGVybmF0aXZlVGV4dENsaWVudDsKIGNsYXNzIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOwpAQCAt
MTY3LDYgKzE2OCw3IEBAIGNsYXNzIFdlYkdMU3RhdGVUcmFja2VyOwogY2xhc3MgV2hlZWxFdmVu
dERlbHRhRmlsdGVyOwogY2xhc3MgV2hlZWxFdmVudFRlc3RNb25pdG9yOwogCitzdHJ1Y3QgQXBw
bGVQYXlBTVNVSVJlcXVlc3Q7CiBzdHJ1Y3QgU2ltcGxlUmFuZ2U7CiBzdHJ1Y3QgVGV4dFJlY29n
bml0aW9uUmVzdWx0OwogCkBAIC01NDEsNiArNTQzLDEyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFBheW1lbnRDb29yZGluYXRvcihzdGQ6OnVuaXF1ZV9wdHI8UGF5bWVu
dENvb3JkaW5hdG9yPiYmKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkp
CisgICAgYm9vbCBoYXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJu
IG1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOyB9CisgICAgYm9vbCBzdGFydEFw
cGxlUGF5QU1TVUlTZXNzaW9uKERvY3VtZW50JiwgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
JiwgY29uc3QgQXBwbGVQYXlBTVNVSVJlcXVlc3QmKTsKKyAgICB2b2lkIGFib3J0QXBwbGVQYXlB
TVNVSVNlc3Npb24oQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyJik7CisjZW5kaWYKKwogI2lm
IEVOQUJMRShXRUJfQVVUSE4pCiAgICAgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yJiBhdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IoKSB7IHJldHVybiBtX2F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5n
ZXQoKTsgfQogI2VuZGlmCkBAIC0xMTg3LDYgKzExOTUsMTAgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OnVuaXF1ZV9wdHI8UGF5bWVudENvb3JkaW5hdG9yPiBtX3BheW1lbnRDb29yZGluYXRvcjsKICNl
bmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgUmVmUHRyPEFwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlcj4gbV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI7
CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgVW5pcXVlUmVmPEF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvcj4gbV9hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtVmlld0NvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1BsYXRmb3JtVmlld0NvbnRy
b2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44MzJjZDQ0ZjVlNDcxNTRkMzAzMjNhM2NhMmVjNjU0ZmJmOTYw
ZmE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxh
dGZvcm1WaWV3Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtVmlld0NvbnRyb2xs
ZXJfaAorI2RlZmluZSBQbGF0Zm9ybVZpZXdDb250cm9sbGVyX2gKKworI2lmIFBMQVRGT1JNKENP
Q09BKQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK09CSkNfQ0xBU1MgVUlWaWV3Q29udHJv
bGxlcjsKK3R5cGVkZWYgVUlWaWV3Q29udHJvbGxlciBQbGF0Zm9ybVZpZXdDb250cm9sbGVyOwor
I2Vsc2UKK09CSkNfQ0xBU1MgTlNWaWV3Q29udHJvbGxlcjsKK3R5cGVkZWYgTlNWaWV3Q29udHJv
bGxlciBQbGF0Zm9ybVZpZXdDb250cm9sbGVyOworI2VuZGlmCisKKyNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkKKworI2VuZGlmIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXJfaCAqLwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2Vz
U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2Vydmlj
ZXNTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hZGI3NjY3ZDcyMjgwNjRlZTYwMzI4NzJiNjVkYTY5ZDJlZDQ5
NDFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2Ev
QXBwbGVNZWRpYVNlcnZpY2VzU1BJLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TQmFnLmg+
CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TQmFnQ29uc3VtZXIuaD4KKyNpbXBvcnQg
PEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNCYWdQcm90b2NvbC5oPgorI2ltcG9ydCA8QXBwbGVNZWRp
YVNlcnZpY2VzL0FNU0VuZ2FnZW1lbnRSZXF1ZXN0Lmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2Vy
dmljZXMvQU1TRW5nYWdlbWVudFJlc3VsdC5oPgorI2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZpY2Vz
L0FNU1Byb21pc2UuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNUYXNrLmg+CisK
KyNlbHNlIC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCitAaW50ZXJmYWNlIEFNU1By
b21pc2U8UmVzdWx0VHlwZT4gOiBOU09iamVjdAorLSAodm9pZClhZGRGaW5pc2hCbG9jazoodm9p
ZCheKShSZXN1bHRUeXBlIF9OdWxsYWJsZSByZXN1bHQsIE5TRXJyb3IgKiBfTnVsbGFibGUgZXJy
b3IpKWZpbmlzaEJsb2NrOworQGVuZAorCitAcHJvdG9jb2wgQU1TQmFnUHJvdG9jb2wgPE5TT2Jq
ZWN0PgorQGVuZAorCitAaW50ZXJmYWNlIEFNU0JhZyA6IE5TT2JqZWN0IDxBTVNCYWdQcm90b2Nv
bD4KK0BlbmQKKworQHByb3RvY29sIEFNU0JhZ0NvbnN1bWVyIDxOU09iamVjdD4KK0BvcHRpb25h
bAorKyAoQU1TQmFnICopY3JlYXRlQmFnRm9yU3ViUHJvZmlsZTsKK0BlbmQKKworQGludGVyZmFj
ZSBBTVNFbmdhZ2VtZW50UmVxdWVzdCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFJlcXVlc3REaWN0aW9uYXJ5OihOU0RpY3Rpb25hcnkgKilkaWN0
aW9uYXJ5CitAcHJvcGVydHkgKE5TX05PTkFUT01JQ19JT1NPTkxZLCBzdHJvbmcsIG51bGxhYmxl
KSBOU1VSTCAqb3JpZ2luYXRpbmdVUkw7CitAZW5kCisKK0BpbnRlcmZhY2UgQU1TRW5nYWdlbWVu
dFJlc3VsdCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KK0BlbmQKKworQGludGVyZmFjZSBB
TVNUYXNrIDogTlNPYmplY3QKKy0gKEJPT0wpY2FuY2VsOworQGVuZAorCisjZW5kaWYgLy8gIVVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVk
aWFTZXJ2aWNlc1VJU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBs
ZU1lZGlhU2VydmljZXNVSVNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRkN2NjNGY4NWQ0MjE5MDE0YTM1Y2Vi
YjYyZTI2OTE2MWUzOGE1MGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJ
KQorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKworI2ltcG9ydCA8QXBwbGVNZWRpYVNl
cnZpY2VzVUkvQU1TVUlFbmdhZ2VtZW50VGFzay5oPgorCisjZWxzZSAvLyBpZiAhVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKworI2luY2x1ZGUgIkFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oIgorCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK09CSkNfQ0xBU1MgVUlWaWV3Q29udHJvbGxlcjsKK3R5
cGVkZWYgVUlWaWV3Q29udHJvbGxlciBBTVNVSVZpZXdDb250cm9sbGVyOworI2Vsc2UKK09CSkNf
Q0xBU1MgTlNWaWV3Q29udHJvbGxlcjsKK3R5cGVkZWYgTlNWaWV3Q29udHJvbGxlciBBTVNVSVZp
ZXdDb250cm9sbGVyOworI2VuZGlmCisKK0BpbnRlcmZhY2UgQU1TVUlFbmdhZ2VtZW50VGFzayA6
IEFNU1Rhc2sgPEFNU0JhZ0NvbnN1bWVyPgorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVxdWVz
dDooQU1TRW5nYWdlbWVudFJlcXVlc3QgKilyZXF1ZXN0IGJhZzooaWQ8QU1TQmFnUHJvdG9jb2w+
KWJhZyBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXI6KEFNU1VJVmlld0NvbnRyb2xsZXIgKil2aWV3
Q29udHJvbGxlcjsKK0Bwcm9wZXJ0eSAoTlNfTk9OQVRPTUlDX0lPU09OTFksIGFzc2lnbikgQk9P
TCByZW1vdGVQcmVzZW50YXRpb247CistIChBTVNQcm9taXNlPEFNU0VuZ2FnZW1lbnRSZXN1bHQg
Kj4gKilwcmVzZW50RW5nYWdlbWVudDsKK0BlbmQKKworI2VuZGlmIC8vICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDY1OGNlYmMzYzI4NWFhNmQ4
OTgyNjk5NTBiZWJkZmRjZmIxYzk3Y2YuLmRkMDg0ZmZlMGI2MDdmMTM0Mzg3ZTgwMzYzN2U3MmZj
MTc3YmFjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0zMyw2ICszMywxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtVmlld0NvbnRyb2xsZXIuaD4KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIE9CSkNfQ0xBU1MgTlNBcnJheTsKIE9CSkNfQ0xBU1MgX1dLQWN0
aXZhdGVkRWxlbWVudEluZm87CkBAIC0xNjEsOSArMTY1LDkgQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgdmlydHVhbCBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9uc0ZvckVsZW1lbnQoX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKiwgUmV0YWluUHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rpb25zKSB7IHJl
dHVybiBkZWZhdWx0QWN0aW9uczsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RIYW5kbGVUYXBB
c0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Ci0gICAgdmlydHVhbCBVSVZpZXdD
b250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKSB7IHJldHVybiBudWxscHRyOyB9
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKKyAgICB2aXJ0dWFsIFBsYXRmb3JtVmlld0Nv
bnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICB2aXJ0dWFsIE5TRGljdGlvbmFyeSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSB7IHJldHVy
biBudWxscHRyOyB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5kZXggZjY2YTFiYTNlODkyMjUz
ZjE3NjMzYzM0MmMyMjlhZGZhYWIyMTMyMS4uYzczNjlmMzcwYTBlZTlkMzVkNjc4MDhmM2QwMDY4
N2I5MWQ1Nzk1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0yMjYsNiArMjI2LDggQEAgc3RydWN0IFVJ
RWRnZUluc2V0czsKIAogI2Vsc2UgLy8gIVRBUkdFVF9PU19JUEhPTkUKIAorLSAoTlNWaWV3Q29u
dHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSkpOworCiAtICh2b2lk
KV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX2Nh
bmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiAtICh2b2lkKV9jb21wbGV0ZUlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9VSURlbGVnYXRlLmgKaW5kZXggNWNiY2E3N2ExMDBmNDA4YmE1NjU0NWJlOWIwOTlmYmU4
ODg0NzZkOS4uOWQ1ZWYyODQzNDM1YmYwYTY4MWNmYzBjZTFiMTBiMTIyYjRmMDYxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaApAQCAtMjksNiArMjksNyBA
QAogCiAjaW1wb3J0ICJBUElDb250ZXh0TWVudUNsaWVudC5oIgogI2ltcG9ydCAiQVBJVUlDbGll
bnQuaCIKKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAjaW1wb3J0
IDx3dGYvV2Vha1B0ci5oPgpAQCAtMTQ4LDggKzE0OSw4IEBAIHByaXZhdGU6CiAjZW5kaWYKICAg
ICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICosIFJldGFpblB0cjxOU0FycmF5PiBkZWZhdWx0QWN0aW9ucykgZmluYWw7CiAg
ICAgICAgIHZvaWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpIGZpbmFsOwotICAgICAgICBVSVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRy
b2xsZXIoKSBmaW5hbDsKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQorICAgICAgICBQ
bGF0Zm9ybVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKSBmaW5hbDsK
IAogICAgICAgICBOU0RpY3Rpb25hcnkgKmRhdGFEZXRlY3Rpb25Db250ZXh0KCkgZmluYWw7CiAK
QEAgLTI0MSw4ICsyNDIsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAgICAgICAgIGJvb2wgd2ViVmll
d0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgOiAxOwogICAgICAgICBib29sIHdlYlZp
ZXdEaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludCA6IDE7Ci0gICAgICAgIGJvb2wgcHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA6IDE7CiAjZW5kaWYKKyAgICAgICAgYm9vbCBw
cmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3IDogMTsKICAgICAgICAgYm9vbCBkYXRh
RGV0ZWN0aW9uQ29udGV4dEZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdJbWFn
ZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkIDogMTsKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggYTAw
NGExNWRiOTcxMTkyN2UyNTg3YzYxYjE3YTdjMTkzY2IwZThlMi4uMWNkNWQwY2M5YjM4OWE4MzUy
OWZjMWQ1Yjc0YjgyM2NjYTUwNzNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCkBAIC0xNjIsOCArMTYyLDggQEAgdm9pZCBVSURlbGVnYXRlOjpzZXRE
ZWxlZ2F0ZShpZCA8V0tVSURlbGVnYXRlPiBkZWxlZ2F0ZSkKICNlbmRpZgogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdBY3Rpb25zRm9yRWxlbWVudERlZmF1bHRBY3Rpb25zID0gW2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6YWN0aW9uc0ZvckVsZW1l
bnQ6ZGVmYXVsdEFjdGlvbnM6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZE5v
dEhhbmRsZVRhcEFzQ2xpY2tBdFBvaW50ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6ZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KV07Ci0gICAg
bV9kZWxlZ2F0ZU1ldGhvZHMucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRy
b2xsZXJGb3JXZWJWaWV3OildOwogI2VuZGlmCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMucHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OildOwogICAg
IG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdJc01lZGlhQ2FwdHVyZUF1dGhvcml6ZWRGb3JGcmFt
ZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDptYWluRnJhbWVVUkw6ZnJh
bWVJZGVudGlmaWVyOmRlY2lzaW9uSGFuZGxlcjopXSB8fCBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzppbmNsdWRlU2Vuc2l0aXZlTWVkaWFEZXZpY2VEZXRh
aWxzOildOwogCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld01lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6bWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2U6KV07CkBAIC0xMzkyLDcgKzEzOTIsOSBAQCB2
b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBwb2ludAogICAgIFtzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRl
UHJpdmF0ZT4+KGRlbGVnYXRlKSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQo
KS5nZXQoKSBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDpwb2ludF07CiB9CiAKLVVJVmll
d0NvbnRyb2xsZXIgKlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXIoKQorI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK1BsYXRmb3JtVmlld0NvbnRy
b2xsZXIgKlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKQog
ewogICAgIGlmICghbV91aURlbGVnYXRlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE0
MDcsOCArMTQwOSw2IEBAIFVJVmlld0NvbnRyb2xsZXIgKlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmVzZW50aW5nVmlld0NvbnRyb2xsZXIoKQogICAgIHJldHVybiBbc3RhdGljX2Nhc3Q8aWQgPFdL
VUlEZWxlZ2F0ZVByaXZhdGU+PihkZWxlZ2F0ZSkgX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZv
cldlYlZpZXc6bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCldOwogfQogCi0jZW5k
aWYKLQogTlNEaWN0aW9uYXJ5ICpVSURlbGVnYXRlOjpVSUNsaWVudDo6ZGF0YURldGVjdGlvbkNv
bnRleHQoKQogewogICAgIGlmICghbV91aURlbGVnYXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA5MTViN2Y0YzY0OGUy
ZmUwMTk4ZWZkMTViNTVmZjQ1MTE4MWFkNmY3Li42YTUwYTA4MTAzMzk1ODY1ODM5ZmZhNzgwZTgz
NWI3NTgzMzVmYWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQpAQCAtMjksNiArMjksNyBAQAogI2ltcG9ydCAiQVBJQXR0YWNo
bWVudC5oIgogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIkFQSVVJ
Q2xpZW50LmgiCisjaW1wb3J0ICJBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIgogI2ltcG9ydCAi
Q29jb2FJbWFnZS5oIgogI2ltcG9ydCAiQ29ubmVjdGlvbi5oIgogI2ltcG9ydCAiRGF0YURldGVj
dGlvblJlc3VsdC5oIgpAQCAtNTEsNiArNTIsNyBAQAogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9y
ZS5oIgogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCiAjaW1wb3J0IDxGb3VuZGF0aW9uL05T
VVJMUmVxdWVzdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUFNU1VJUmVxdWVzdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9EcmFnSXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRyeVV0
aWxpdGllcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9IaWdobGlnaHRWaXNpYmlsaXR5Lmg+CkBAIC04
OCw2ICs5MCwxNCBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoV2ViQ29udGVudEFuYWx5
c2lzKTsKIFNPRlRfTElOS19DTEFTUyhXZWJDb250ZW50QW5hbHlzaXMsIFdlYkZpbHRlckV2YWx1
YXRvcik7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorU09GVF9MSU5L
X1BSSVZBVEVfRlJBTUVXT1JLX09QVElPTkFMKEFwcGxlTWVkaWFTZXJ2aWNlcykKK1NPRlRfTElO
S19DTEFTU19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXMsIEFNU0VuZ2FnZW1lbnRSZXF1ZXN0
KQorCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUktfT1BUSU9OQUwoQXBwbGVNZWRpYVNlcnZp
Y2VzVUkpCitTT0ZUX0xJTktfQ0xBU1NfT1BUSU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzVUksIEFN
U1VJRW5nYWdlbWVudFRhc2spCisjZW5kaWYKKwogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFzc2Vy
dGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgcHJvY2VzcygpLmNvbm5lY3Rpb24o
KSkKICNkZWZpbmUgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OKGFzc2VydGlvbiwgY29tcGxldGlv
bikgTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29u
bmVjdGlvbigpLCBjb21wbGV0aW9uKQogCkBAIC02MjgsNiArNjM4LDQ3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRVcEhpZ2hsaWdodHNPYnNlcnZlcigpCiAKICNlbmRpZgogCisjaWYgRU5BQkxF
KEFQUExFX1BBWV9BTVNfVUkpCisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzdGFydEFwcGxlUGF5QU1T
VUlTZXNzaW9uKFVSTCYmIG9yaWdpbmF0aW5nVVJMLCBBcHBsZVBheUFNU1VJUmVxdWVzdCYmIHJl
cXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBpZiAoIUFwcGxlTWVkaWFTZXJ2aWNlc1VJTGlicmFy
eSgpKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybVZpZXdDb250cm9sbGVyICpwcmVzZW50aW5n
Vmlld0NvbnRyb2xsZXIgPSB1aUNsaWVudCgpLnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpOwor
ICAgIGlmICghcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKSB7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRv
IGFtc1JlcXVlc3QgPSBhZG9wdE5TKFthbGxvY0FNU0VuZ2FnZW1lbnRSZXF1ZXN0SW5zdGFuY2Uo
KSBpbml0V2l0aFJlcXVlc3REaWN0aW9uYXJ5OmR5bmFtaWNfb2JqY19jYXN0PE5TRGljdGlvbmFy
eT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOltXVEZNb3ZlKHJlcXVl
c3QuZW5nYWdlbWVudFJlcXVlc3QpIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXSBvcHRpb25zOjAgZXJyb3I6bmlsXSldKTsKKyAgICBbYW1zUmVxdWVzdCBzZXRPcmlnaW5h
dGluZ1VSTDpXVEZNb3ZlKG9yaWdpbmF0aW5nVVJMKV07CisKKyAgICBhdXRvIGFtc0JhZyA9IHJl
dGFpblB0cihbZ2V0QU1TVUlFbmdhZ2VtZW50VGFza0NsYXNzKCkgY3JlYXRlQmFnRm9yU3ViUHJv
ZmlsZV0pOworCisgICAgbV9hcHBsZVBheUFNU1VJU2Vzc2lvbiA9IGFkb3B0TlMoW2FsbG9jQU1T
VUlFbmdhZ2VtZW50VGFza0luc3RhbmNlKCkgaW5pdFdpdGhSZXF1ZXN0OmFtc1JlcXVlc3QuZ2V0
KCkgYmFnOmFtc0JhZy5nZXQoKSBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXI6cHJlc2VudGluZ1Zp
ZXdDb250cm9sbGVyXSk7CisgICAgW21fYXBwbGVQYXlBTVNVSVNlc3Npb24gc2V0UmVtb3RlUHJl
c2VudGF0aW9uOllFU107CisKKyAgICBhdXRvIGFtc1Jlc3VsdCA9IHJldGFpblB0cihbbV9hcHBs
ZVBheUFNU1VJU2Vzc2lvbiBwcmVzZW50RW5nYWdlbWVudF0pOworICAgIFthbXNSZXN1bHQgYWRk
RmluaXNoQmxvY2s6bWFrZUJsb2NrUHRyKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSAoQU1TRW5nYWdlbWVudFJlc3VsdCAqcmVzdWx0LCBOU0Vycm9yICpl
cnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikgeworICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CisgICAgfSkuZ2V0KCldOwor
fQorCit2b2lkIFdlYlBhZ2VQcm94eTo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCit7Cisg
ICAgW3N0ZDo6ZXhjaGFuZ2UobV9hcHBsZVBheUFNU1VJU2Vzc2lvbiwgbnVsbHB0cikgY2FuY2Vs
XTsKK30KKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCiBWZWN0b3I8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBXZWJQYWdlUHJveHk6OmNyZWF0ZU5ldHdvcmtFeHRlbnNp
b25zU2FuZGJveEV4dGVuc2lvbnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQogewogI2lmIEVO
QUJMRShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggNTBjMjQzYjI5MTIxMmNmMzI4ZWU4MmU3Y2QzZDBjMTRjMjk0M2ZiMS4uNjllZTYy
YjY0NGM3MTkwODc3MjJiM2NlMzkyZjE0YmViMWQyYWEwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTIzMCw2ICsyMzAsNyBAQCBjbGFzcyBTaGFyZWRCdWZmZXJD
b3B5OwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIEFNU1VJRW5nYWdlbWVu
dFRhc2s7CiBPQkpDX0NMQVNTIE5TRmlsZVdyYXBwZXI7CiBPQkpDX0NMQVNTIE5TTWVudTsKIE9C
SkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwpAQCAtNTkzLDYgKzU5NCwxMSBAQCBwdWJsaWM6
CiAgICAgdm9pZCBtb2RlbEVsZW1lbnRQcmV2aWV3RGlkT2J0YWluQ29udGV4dElkKGNvbnN0IFdl
YkNvcmU6OkVsZW1lbnRDb250ZXh0JiwgY29uc3QgU3RyaW5nJiwgdWludDMyX3QpOwogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICB2b2lkIHN0YXJ0QXBwbGVQYXlB
TVNVSVNlc3Npb24oVVJMJiYsIFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0JiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJik7CisgICAgdm9pZCBh
Ym9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQogICAgIEFQSTo6Q29udGV4dE1lbnVDbGllbnQmIGNvbnRleHRNZW51Q2xpZW50KCkg
eyByZXR1cm4gKm1fY29udGV4dE1lbnVDbGllbnQ7IH0KICAgICB2b2lkIHNldENvbnRleHRNZW51
Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkNvbnRleHRNZW51Q2xpZW50PiYmKTsKQEAgLTI2
NTMsNiArMjY1OSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxNb2RlbEVsZW1l
bnRDb250cm9sbGVyPiBtX21vZGVsRWxlbWVudENvbnRyb2xsZXI7CiAjZW5kaWYKIAorI2lmIEVO
QUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIFJldGFpblB0cjxBTVNVSUVuZ2FnZW1lbnRUYXNr
PiBtX2FwcGxlUGF5QU1TVUlTZXNzaW9uOworI2VuZGlmCisKICNpZiBFTkFCTEUoV0VCX0FVVEhO
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eT4g
bV9jcmVkZW50aWFsc01lc3NlbmdlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU2ZThhMWRjZTgxOGM2MzkwY2Ew
NjIyZTNiNDRhNWMxZWQxMGVmMTEuLmJhMzc0YzAwMjJmNTJiMTQ2NDM2ZjJjZjFlM2IzYmM4YzZi
OGU3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTU5MSw0ICs1OTEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2VuZGlmCiAKICAgICByZXF1ZXN0UGVybWlzc2lvbihzdHJ1Y3QgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luIG9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlBlcm1pc3Npb25EZXNjcmlwdG9yIGRlc2NyaXB0
b3IpIC0+IChlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6UGVybWlzc2lvblN0YXRlIHN0YXRlKSBBc3lu
YworCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgU3RhcnRBcHBsZVBheUFNU1VJ
U2Vzc2lvbihVUkwgb3JpZ2luYXRpbmdVUkwsIHN0cnVjdCBXZWJDb3JlOjpBcHBsZVBheUFNU1VJ
UmVxdWVzdCByZXF1ZXN0KSAtPiAoc3RkOjpvcHRpb25hbDxib29sPiByZXN1bHQpIEFzeW5jCisg
ICAgQWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjOTBlNzExNDExOTVk
M2U5NDhlNzgzNmFjMmQ4YzBjNTI1ODJjNTIuLmUyNDBiNTZiY2UxMWY3ZDRkMjViM2RlN2VmZDNm
MTM2ODlhZGZhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTQ1OSw2ICsxNDU5LDggQEAKIAkJOTNFNkE0RUUxQkM1REQzOTAwRjhB
MEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzRTZBNEVEMUJDNUREMzkwMEY4QTBFNyAvKiBfV0tIaXRUZXN0UmVz
dWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTNGNTQ5QjQxRTMxNzRCNzAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y1NDlCMzFFMzE3
NEI3MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTk1MEYyODgwMjUyNDE0RUEwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk1MEYyODdFMjUyNDE0RTkwMEI3NEYxQyAvKiBXS01vdXNlRGV2
aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJOTU2NTA4MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxl
TWVkaWFTZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1NQ
SS5oICovOyB9OworCQk5NTY1MDgzQTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZp
Y2VzVUlTUEkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1NjUwODM4MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oICov
OyB9OwogCQk5NTkzNjc1RjI1MkU1RTMxMDBEM0YwQTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5MzY3
NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLzsgfTsKIAkJ
OTVDOTQzOTEyNTIzQzBEMDAwNTRGM0Q1IC8qIEJhc2VCb2FyZFNQSS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVDOTQzOTAyNTIzQzBEMDAwNTRGM0Q1
IC8qIEJhc2VCb2FyZFNQSS5oICovOyB9OwogCQk5OTAzNkFFMjIzQTk0OUNGMDAwMEIwNkEgLyog
X1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwMzZBRTEyM0E5NDlDRTAwMDBCMDZBIC8qIF9X
S0luc3BlY3RvckRlYnVnZ2FibGVJbmZvSW50ZXJuYWwuaCAqLzsgfTsKQEAgLTQ4NjEsNiArNDg2
Myw4IEBACiAJCTkzRjU0OUI1MUUzMTc0REEwMDBFNzIzOSAvKiBXS1NuYXBzaG90Q29uZmlndXJh
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLU25hcHNo
b3RDb25maWd1cmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTBGMjg3
RTI1MjQxNEU5MDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBwYXRoID0gaW9z
L1dLTW91c2VEZXZpY2VPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NTBGMjg3RjI1MjQxNEVBMDBCNzRGMUMgLyogV0tNb3VzZURldmljZU9ic2VydmVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tNb3VzZURldmljZU9ic2VydmVy
Lm1tOyBwYXRoID0gaW9zL1dLTW91c2VEZXZpY2VPYnNlcnZlci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTU2NTA4MzcyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2
aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZU1lZGlhU2Vy
dmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU2NTA4MzgyNkQ4N0Ey
QjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk1OTM2NzVEMjUyRTVFMzAwMEQzRjBBMCAvKiBXS1N0eWx1c0Rldmlj
ZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLU3R5bHVzRGV2
aWNlT2JzZXJ2ZXIuaDsgcGF0aCA9IGlvcy9XS1N0eWx1c0RldmljZU9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OTM2NzVFMjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0
eWx1c0RldmljZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5tbTsgcGF0aCA9IGlvcy9XS1N0eWx1c0Rldmlj
ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUM5NDM5MDI1MjND
MEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEJhc2VCb2FyZFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzc2
OSw2ICs3NzczLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUUzQ0FBQTQzMjQxMzI3OEEwMENF
RDJFMiAvKiBBY2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oICovLAogCQkJCTU3MkVCQkRDMjUzOTIx
ODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCAqLywKKwkJCQk5NTY1MDgzNzI2RDg3QTJCMDBF
MTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi8sCisJCQkJOTU2NTA4MzgyNkQ4N0Ey
QjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi8sCiAJCQkJNTdGQUJCMEUy
NTgxN0NGMDAwNTlEQzk1IC8qIEF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggKi8sCiAJ
CQkJMUE1NzA1MTAxQkU0MTBFNTAwODc0QUYxIC8qIEJsb2NrU1BJLmggKi8sCiAJCQkJRTUwNjIw
OTEyNTQyMTAyMDAwQzQzMDkxIC8qIENvbnRhY3RzVUlTUEkuaCAqLywKQEAgLTExODI5LDYgKzEx
ODM1LDggQEAKIAkJCQk1NzJFQkJERDI1MzkyMTgxMDAwNTUyQjMgLyogQXBwQXR0ZXN0U1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwNzQ4NzlCOTIzNzNBOTA5MDBGNTY3OEUgLyogQXBwS2l0U29m
dExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCUY0OEQyQTg1MjE1ODNBN0UwMEM2NzUyQiAvKiBB
cHBLaXRTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1NjUwODM5MjZEODdBMkIwMEUxNUNCNyAv
KiBBcHBsZU1lZGlhU2VydmljZXNTUEkuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1NjUwODNBMjZE
ODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRjRFQzk0RTMyMzU2Q0M1NzAwMEJCNjE0IC8qIEFwcGxpY2F0aW9uU2VydmljZXNTUEku
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBRDRDMTkzMUIzOUYzMzIwMEFCQzI4RSAvKiBBcHBsaWNh
dGlvblN0YXRlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDkzMTAyQkQyNjgzRjNEMDAw
MkJCODg1IC8qIEFwcFByaXZhY3lSZXBvcnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCAwYzhkYTY2NTc3MGJkNDczYWVhYWJhYjNmMTZhZjYwMTYwYjI3NTBmLi4y
ODY4MTVhODhkM2MzZDMzNjNlNGI1MjI5Y2FhNjk1ZmNlNTA1ODE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtOTEsNiArOTEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZX0FNU19VSSkKKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg+Cisj
ZW5kaWYKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpIHx8IChQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAjaW5jbHVkZSAiUGxheWJhY2tTZXNzaW9u
TWFuYWdlci5oIgogI2VuZGlmCkBAIC0xNTM0LDQgKzE1MzgsMTggQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6Om1vZGVsRWxlbWVudERpZENyZWF0ZVByZXZpZXcoV2ViQ29yZTo6SFRNTE1vZGVsRWxl
bWVudCYgZWwKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGNvbnN0IFVSTCYg
b3JpZ2luYXRpbmdVUkwsIGNvbnN0IEFwcGxlUGF5QU1TVUlSZXF1ZXN0JiByZXF1ZXN0LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit7CisgICAgbV9wYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpTdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKG9yaWdpbmF0aW5nVVJMLCByZXF1ZXN0
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpCit7CisgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6QWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpKTsKK30KKworI2Vu
ZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAppbmRleCBiOTkzOGYyYmZhNjEwMGIyOTYyM2NkMDMwNWNlMGIxNGM0
MzIyMTU4Li42Y2NhMmQwYTg4ZDY4YzQ4OGE4YmVkMTJlM2E5YmIxODllYjc5NjQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC00NjIsNiArNDYyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb2Rl
bEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQmLCBjb25z
dCBVUkwmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisgICAgdm9pZCBz
dGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNvcmU6OkFwcGxl
UGF5QU1TVUlSZXF1ZXN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJv
b2w+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKSBm
aW5hbDsKKyNlbmRpZgorCiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9y
aXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFp
bkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9OwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGI4MzVmZmY3
YmViMmRmMGYxYTY4YWI1NWFjZTI1NWI1OTgzOWZiMC4uZDJjMzE2ZmFiZTI0YmYwNDI2ZDg0Nzgz
MTdiM2RhZDBmNTVhZGQ1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTExLTAyICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0
XSBBZGQgYSBuZXcgcGF5bWVudCBtZXRob2QgZm9yIHNob3dpbmcgQU1TIFVJCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzI2MzQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc5MDI0MjI3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRS
ZXF1ZXN0Lmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3NsL2FwcGxl
cGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMS0wMiAgR2FicmllbCBOYXZhIE1h
cmlubyAgPGduYXZhbWFyaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBSZW5kZXJM
YXllcjo6cmVidWlsZFpPcmRlckxpc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlOTFmNDFlODgy
ZDU2ZWMxOWM2ZTVmMjIyZTlmN2Y1M2U0NmJiODFlLi5iNjdkZGMyZTIzNjE0NGQyYTRjZDExNTM3
YWNjODg4ZDMxMzY1OTUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2MSw2ICsyNjEsNyBAQCBm
YXN0L2Nzcy9nZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWFwcGxlLXBheS1idXR0b24u
aHRtbCBbIFNraXAgXQogZmFzdC9jc3Mvd2Via2l0LW5hbWVkLWltYWdlL2FwcGxlLXBheS1sb2dv
LWJsYWNrIFsgU2tpcCBdCiBmYXN0L2Nzcy93ZWJraXQtbmFtZWQtaW1hZ2UvYXBwbGUtcGF5LWxv
Z28td2hpdGUgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LyBbIFNraXAgXQoraHR0
cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpLyBbIFNraXAgXQogCiAjIE9ubHkgV0syIGFsbG93
cyB1bmNvbnN0cmFpbmVkIHNjcm9sbGluZwogZmFzdC92aXN1YWwtdmlld3BvcnQvcnViYmVyYmFu
ZGluZy12aWV3cG9ydC1yZWN0cy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1Bh
eW1lbnRSZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTk5NzNjYTQwZjVk
MDRhNTllMTIxYzJlMGY5NzAzNzE0Mjc4YmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDQxIEBACitUZXN0IGJhc2ljIGNyZWF0aW9uIG9mIGEgUGF5
bWVudFJlcXVlc3Qgb2JqZWN0IHdpdGggYW4gQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IG1ldGhv
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3RpbmcgUGF5bWVudFJlcXVl
c3QKKworUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QobnVsbCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVmFsdWUgaXMgbm90IGEgc2VxdWVuY2UuCitQQVNTIG5ldyBQYXltZW50UmVx
dWVzdChbdmFsaWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorCitUZXN0aW5nIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2Fn
ZW1lbnRSZXF1ZXN0CisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9k
KCk7IGRlbGV0ZSBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QKK1BBU1MgbmV3
IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5n
YWdlbWVudFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJs
ZSBvYmplY3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7
IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9ICcnCitQQVNTIG5ldyBQYXlt
ZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1l
bnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2Jq
ZWN0LgorCitTRVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXlt
ZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSAnaW52YWxpZCcKK1BBU1MgbmV3IFBh
eW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdl
bWVudFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBv
YmplY3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBh
eW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IG51bGwKK1BBU1MgbmV3IFBheW1l
bnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVu
dFJlcXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmpl
Y3QuCisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1l
bnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IDcKK1BBU1MgbmV3IFBheW1lbnRSZXF1
ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVl
c3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisK
K1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRo
b2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IFsgXQorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3Qo
W3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBp
cyByZXF1aXJlZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKworU0VU
VVA6IHBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5k
YXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gZmFsc2UKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0KFtw
YXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QgaXMg
cmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisKK1NFVFVQ
OiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0
YS5lbmdhZ2VtZW50UmVxdWVzdCA9IHsgfQorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1l
bnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkv
UGF5bWVudFJlcXVlc3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2Fw
cGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMGVj
MGZkNjUxNDgzZDExZGY4ZmRhZmM3ZDAwZWZhMzg4YjQxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3Qu
aHR0cHMuaHRtbApAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9wYXltZW50LXJl
cXVlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlw
dGlvbigiVGVzdCBiYXNpYyBjcmVhdGlvbiBvZiBhIFBheW1lbnRSZXF1ZXN0IG9iamVjdCB3aXRo
IGFuIEFwcGxlIFBheSBBTVMgVUkgcGF5bWVudCBtZXRob2QuIik7CisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gdmFsaWRQYXltZW50TWV0aG9kKCkgeworICAgIHJl
dHVybiB7CisgICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICdodHRwczovL2FwcGxlLmNvbS9hbXMt
dWknLAorICAgICAgICBkYXRhOiB7CisgICAgICAgICAgICBlbmdhZ2VtZW50UmVxdWVzdDogeyB2
YWx1ZTogNDIgfSwKKyAgICAgICAgfSwKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHZhbGlkUGF5bWVu
dERldGFpbHMoKSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdG90YWw6IHsgbGFiZWw6ICdZb3Vy
IGxhYmVsJywgYW1vdW50OiB7IGN1cnJlbmN5OiAnVVNEJywgdmFsdWU6ICcxMC4wMCcgfSB9LAor
ICAgIH0KK30KKworZnVuY3Rpb24gbG9nQW5kU2hvdWxkVGhyb3coc2V0dXAsIHRlc3QpIHsKKyAg
ICByZXR1cm4gYWN0aXZhdGVUaGVuKCgpID0+IHsKKyAgICAgICAgZGVidWcoIlNFVFVQOiAiICsg
c2V0dXApOworICAgICAgICBldmFsKHNldHVwKTsKKyAgICAgICAgc2hvdWxkVGhyb3codGVzdCk7
CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gbG9nQW5kU2hvdWxk
Tm90VGhyb3coc2V0dXAsIHRlc3QpIHsKKyAgICByZXR1cm4gYWN0aXZhdGVUaGVuKCgpID0+IHsK
KyAgICAgICAgZGVidWcoIlNFVFVQOiAiICsgc2V0dXApOworICAgICAgICBldmFsKHNldHVwKTsK
KyAgICAgICAgc2hvdWxkTm90VGhyb3codGVzdCk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICB9
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gZ28oKSB7CisgICAgZGVidWcoIlRlc3RpbmcgUGF5bWVu
dFJlcXVlc3QiKQorICAgIGRlYnVnKCIiKQorICAgIHNob3VsZFRocm93KCJuZXcgUGF5bWVudFJl
cXVlc3QobnVsbCwgbnVsbCkiKQorICAgIHNob3VsZE5vdFRocm93KCJuZXcgUGF5bWVudFJlcXVl
c3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAg
ZGVidWcoIiIpCisKKyAgICBkZWJ1ZygiVGVzdGluZyBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdh
Z2VtZW50UmVxdWVzdCIpCisgICAgZGVidWcoIiIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhy
b3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgZGVsZXRlIHBheW1lbnRN
ZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1l
bnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91
bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0
aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSAnJyIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3Bh
eW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRT
aG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50
TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSAnaW52YWxpZCciLCAibmV3IFBheW1lbnRS
ZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdh
aXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2Qo
KTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gbnVsbCIsICJuZXcgUGF5
bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAg
ICBhd2FpdCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1l
dGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSA3IiwgIm5ldyBQ
YXltZW50UmVxdWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQor
ICAgIGF3YWl0IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50
TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IFsgXSIsICJu
ZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkp
IikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5
bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSBmYWxz
ZSIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRh
aWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGROb3RUaHJvdygicGF5bWVudE1ldGhvZCA9
IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVl
c3QgPSB7IH0iLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXlt
ZW50RGV0YWlscygpKSIpCisgICAgZGVidWcoIiIpCisKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCJidXR0b24iKS5yZW1vdmUoKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5j
dGlvbiBjbGlja0VsZW1lbnQoZWxlbWVudCkgeworICAgIGxldCB4ID0gZWxlbWVudC5vZmZzZXRM
ZWZ0ICsgMjsKKyAgICBsZXQgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgMjsKKworICAgIHZhciBz
dXBwb3J0c1RvdWNoRXZlbnRzID0gIlRvdWNoRXZlbnQiIGluIHdpbmRvdzsKKyAgICBpZiAoc3Vw
cG9ydHNUb3VjaEV2ZW50cyAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KSB7CisgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYChmdW5jdGlvbigpIHsg
dWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7IH0p
OyB9KSgpO2AsIGZ1bmN0aW9uICgpIHsgfSk7CisgICAgfSBlbHNlIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7
CisgICAgfQorfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY2xpY2tFbGVt
ZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpKTsKK30KKworPC9zY3JpcHQ+Cis8
YnV0dG9uIG9uY2xpY2s9J2dvKCknPkdvPC9idXR0b24+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443614</attachid>
            <date>2021-11-08 15:09:42 -0800</date>
            <delta_ts>2021-11-08 16:34:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232634-20211108150942.patch</filename>
            <type>text/plain</type>
            <size>85714</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlNTIzYjJjMzBmZTk2OWYyYzU3NmE1YTk4NzYyOTM5MzE3MmNlZWUwLi5m
NDdjZjZkNWM0OWQ2ZDIxNzI4NTI4YzgyNzY4MmU2OGQyMTM3ZDZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsOTYgQEAKKzIwMjEtMTEtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXltZW50IG1ldGhvZCBm
b3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkwMjQyMjc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBMZXZlcmFnZSB0aGUgVzND
IFBheW1lbnQgUmVxdWVzdCBBUEkgYXMgYSB3YXkgZm9yIEFwcGxlIGRvbWFpbnMgdG8gc2hvdyBh
bHRlcm5hdGUgbmF0aXZlCisgICAgICAgIHBheW1lbnQgVUlzIHdpdGhvdXQgaGF2aW5nIHRvIGFk
ZCBuZXcgcHJvcHJpZXRhcnkgQVBJcyAoZS5nLiBBcHBsZSBQYXkgSlMpLiBUaGlzIG5ldyBwYXlt
ZW50CisgICAgICAgIG1ldGhvZCBpcyBxdWl0ZSBiYXJlLWJvbmVzIGluIHRoYXQgaXQganVzdCB0
YWtlcyBzb21lIEpTT04gYW5kIHBhc3NlcyBpdCB0byBBTVMsIHdoaWNoIHRoZW4KKyAgICAgICAg
ZGVjaWRlcyB3aGF0IFVJIHRvIHNob3cgYmFzZWQgb24gdGhhdC4gTm8gZGF0YSBpcyBleHBvc2Vk
IGJhY2sgdG8gdGhlIHBhZ2Ugb3RoZXIgdGhhbiBlaXRoZXIKKyAgICAgICAgYW4gZXJyb3Igb3Ig
YSB5ZXMvbm8gYXMgdG8gd2hldGhlciB0aGUgcGF5bWVudCB3YXMgc3VjY2Vzc2Z1bC4KKworICAg
ICAgICBUZXN0OiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3Qu
aHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJ
VmVyc2lvbkNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEFQSVZlcnNpb246OmN1
cnJlbnQpOgorICAgICAgICBCdW1wIHRoZSBjdXJyZW50IEFwcGxlIFBheSB2ZXJzaW9uLgorCisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVy
dEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYW5kbGVzSWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2ZVNlc3Np
b24pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpmaW5p
c2hTZXNzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
cjo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjo6ZG9jdW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpwYWdlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpzaG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGlkZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNhbk1ha2VQYXltZW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjptZXJj
aGFudFZhbGlkYXRpb25Db21wbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyOjpjb21wbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFN
U1VJUGF5bWVudEhhbmRsZXI6OnJldHJ5KToKKyAgICAgICAgQWRkIGEgbmV3IHBheW1lbnQgbWV0
aG9kIHRoYXQgdXNlcyBBTVMgdG8gcHJlc2VudCBVSS4KKworICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbDogQWRkZWQuCisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUFNU1VJUmVxdWVzdDo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0OjpkZWNvZGUpOgorICAgICAgICBJ
REwgYGRpY3Rpb25hcnlgIHRoYXQgdGFrZXMgdGhlIHBsYWNlIG9mIHRoZSBgb2JqZWN0IGRhdGFg
IGluIGBQYXltZW50TWV0aG9kRGF0YWAgd2hlbiB0aGUKKyAgICAgICAgQXBwbGUgUGF5IEFNUyBV
SSBwYXltZW50IG1ldGhvZCBpcyB1c2VkLgorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50SGFuZGxlci5oOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEhhbmRsZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9uKToKKyAg
ICAgICAgTWlub3IgcmVmYWN0b3JpbmcgdG8gYWxsb3cgZm9yIHRoZXJlIHRvIGJlIG1vcmUgdGhh
biBvbmUgcGF5bWVudCBtZXRob2QgaW1wbGVtZXRlZCBhdCBvbmNlLgorCisgICAgICAgICogTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oOgorICAgICAgICAqIE1vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5
bWVudFJlcXVlc3Q6OmFib3J0KToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0Ojph
Y2NlcHQpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnJlamVjdCk6CisgICAg
ICAgIFRoZSBXM0MgUGF5bWVudCBSZXF1ZXN0IEFQSSBkb2Vzbid0IHJlcXVpcmUgdGhhdCBwYXlt
ZW50IG1ldGhvZHMgYmUgYWJvcnRhYmxlLiBBcyBzdWNoLCBhZGQKKyAgICAgICAgc29tZSBsb2dp
YyB0aGF0IGNoZWNrcyB3aXRoIHRoZSBhY3RpdmUgYFBheW1lbnRIYW5kbGVyYCB0byBzZWUgaWYg
aXQgY2FuIGJlIGFib3J0ZWQgYmVmb3JlCisgICAgICAgIGFjdHVhbGx5IGRvaW5nIHNvLiBBbHNv
IGNyZWF0ZSBzb21lIHB1YmxpYyBoZWxwZXIgbWV0aG9kcyB0aGF0IGFsbG93IHRoZSBwYXltZW50
IHJlcXVlc3QgdG8KKyAgICAgICAgYmUgYWNjZXB0ZWQgd2l0aG91dCBwcm92aWRpbmcgc2hpcHBp
bmcgaW5mb3JtYXRpb24gYW5kIGJlIGRpcmVjdGx5IHJlamVjdGVkIHdpdGggYW4gZXJyb3IuCisK
KyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Omhhc0FjdGl2
ZUFwcGxlUGF5QU1TVUlTZXNzaW9uIGNvbnN0KTogQWRkZWQuCisgICAgICAgICogcGFnZS9QYWdl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24p
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Np
b24pOiBBZGRlZC4KKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50OjpzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKTogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24p
OiBBZGRlZC4KKyAgICAgICAgQWRkIHBsdW1iaW5nIGJldHdlZW4gV2ViQ29yZS9XZWJQcm9jZXNz
IGFuZCBVSVByb2Nlc3MuIEFsc28gbWFpbnRhaW4gc3RhdGUgYWJvdXQgaWYgdGhlcmUncworICAg
ICAgICBhbHJlYWR5IGFuIGFjdGl2ZSBBcHBsZSBQYXkgQU1TIFVJIHBheW1lbnQgc2Vzc2lvbiAo
bmVlZGVkIGJ5IHRoZSBXM0MgUGF5bWVudCBSZXF1ZXN0IEFQSSkuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICBDcmVh
dGUgYSBoZWxwZXIgYFBsYXRmb3JtVmlld0NvbnRyb2xsZXJgIHRoYXQgd2lsbCBkbyB0aGUgcmln
aHQgdGhpbmcgb24gYm90aCBtYWNPUyBhbmQgaU9TLgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5UmVxdWVzdCk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRh
dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbnZl
cnREYXRhKToKKyAgICAgICAgRHJpdmUtYnk6IFJlbmFtZSB0aGUgYGNvbnZlcnRBbmRWYWxpZGF0
ZWAgdGhhdCB0YWtlcyBgSlNDOjpKU1ZhbHVlYCB0byBgY29udmVydEFuZFZhbGlkYXRlQXBwbGVQ
YXlSZXF1ZXN0YAorICAgICAgICBzbyB0aGF0IHRoZXJlIGlzbid0IGEgbmFtaW5nIGNvbmZsaWN0
IGluIG90aGVyIGZpbGVzIHRoYXQgbWF5IHdhbnQgdG8gZG8gYSBzaW1pbGFyIHRoaW5nLgorCisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5t
YWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2Nv
YS50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDIxLTExLTA4ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW1dlYkdQVV0gQ29ubmVjdCBKUyBiaW5kaW5ncyBjb2RlIHRvIGludGVybmFsIFdlYkdQ
VSBpbnRlcmZhY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZGY4NzZjNzc2Y2QwYTEzYTVkZGM1YTY1NzEyMTA0ZDhl
Yzc5MGE1ZC4uNDdhN2VlZmJjMzY2ODRiYTFmMGEyZTM1NGM5NTczMWI0NzhmYzkyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMS0xMS0wOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gQWRkIGEgbmV3IHBheW1lbnQg
bWV0aG9kIGZvciBzaG93aW5nIEFNUyBVSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMyNjM0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83OTAyNDIy
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIExldmVyYWdl
IHRoZSBXM0MgUGF5bWVudCBSZXF1ZXN0IEFQSSBhcyBhIHdheSBmb3IgQXBwbGUgZG9tYWlucyB0
byBzaG93IGFsdGVybmF0ZSBuYXRpdmUKKyAgICAgICAgcGF5bWVudCBVSXMgd2l0aG91dCBoYXZp
bmcgdG8gYWRkIG5ldyBwcm9wcmlldGFyeSBBUElzIChlLmcuIEFwcGxlIFBheSBKUykuIFRoaXMg
bmV3IHBheW1lbnQKKyAgICAgICAgbWV0aG9kIGlzIHF1aXRlIGJhcmUtYm9uZXMgaW4gdGhhdCBp
dCBqdXN0IHRha2VzIHNvbWUgSlNPTiBhbmQgcGFzc2VzIGl0IHRvIEFNUywgd2hpY2ggdGhlbgor
ICAgICAgICBkZWNpZGVzIHdoYXQgVUkgdG8gc2hvdyBiYXNlZCBvbiB0aGF0LiBObyBkYXRhIGlz
IGV4cG9zZWQgYmFjayB0byB0aGUgcGFnZSBvdGhlciB0aGFuIGVpdGhlcgorICAgICAgICBhbiBl
cnJvciBvciBhIHllcy9ubyBhcyB0byB3aGV0aGVyIHRoZSBwYXltZW50IHdhcyBzdWNjZXNzZnVs
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3RhcnRBcHBsZVBheUFNU1VJ
U2Vzc2lvbik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFib3J0
QXBwbGVQYXlBTVNVSVNlc3Npb24pOiBBZGRlZC4KKyAgICAgICAgQWRkIHBsdW1iaW5nIGJldHdl
ZW4gV2ViQ29yZS9XZWJQcm9jZXNzIGFuZCBVSVByb2Nlc3MuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lv
bik6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFib3J0QXBwbGVQYXlB
TVNVSVNlc3Npb24pOiBBZGRlZC4KKyAgICAgICAgVXNlIEFNUyB0byBwcmVzZW50IFVJIGZvciB0
aGUgZ2l2ZW4gZW5nYWdlbWVudCByZXF1ZXN0IGRhdGEgYW5kIG9yaWdpbmF0aW5nIFVSTC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlD
bGllbnQ6OnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKToKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIGAtW1dLVUlEZWxlZ2F0ZVByaXZhdGUgX3ByZXNlbnRpbmdW
aWV3Q29udHJvbGxlckZvcldlYlZpZXc6XWAgb24gbWFjT1MgdG9vLgorCisgICAgICAgICogUGxh
dGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oOiBBZGRlZC4KKyAgICAgICAg
KiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDogQWRkZWQuCisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTEtMDgg
IFBlciBBcm5lICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXVtHUFVQXSBS
ZW1vdmUgc2FuZGJveCByZWFkIGFjY2VzcyB0byBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggMTQyMWRkNTI0YzNmMGY3YmM5MzE1
ZTE5ZDAxY2ZkMDQ1MmNiZDUwYy4uYzkyZjI0YTc2NjI0ZmVmM2I5NTcxYTAyMGJlY2ZjOTQ1NzY2
OWE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0yMDUsNiArMjA1LDcgQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlSZXF1
ZXN0LmlkbAorJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlB
TVNVSVJlcXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9D
bGlwYm9hcmQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FzeW5jLWNsaXBib2FyZC9DbGlw
Ym9hcmRJdGVtLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvTmF2
aWdhdG9yK0NsaXBib2FyZC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
b3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggYjIzNjMyNTI5YTJjYTlkM2RmMzVjYmUyMTFkZTljMTI0
ODg5YWMwMS4uNWRiMmYyMjJiODg1ZmJhODk4ODVhYzUwMzViYjY4ODIzOGYzNTMxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysr
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTc2
LDYgKzc2LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBbmltYXRpb25QbGF5YmFja0V2ZW50SW5pdC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQW5pbWF0aW9uUGxheWJhY2tFdmVudEluaXQuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBbmltYXRpb25UaW1l
bGluZS5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
QW5pbWF0aW9uVGltZWxpbmUuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNBcHBsZVBheUFNU1VJUmVxdWVzdC5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlBTVNVSVJlcXVlc3QuaAogJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUNhbmNlbEV2
ZW50LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
cHBsZVBheUNhbmNlbEV2ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQppbmRleCBkYWJmODU0NmIwYjkwYmYzZTY3Y2FkNzBkY2ZlOTU2YzAxZjA0NzcwLi4y
M2EyZjM4Mjc5Y2U2OTBhNGNkNzU3ODJjZDJkMmRmMDI0NjI3OTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UKQEAgLTIzNiw2ICsyMzYsNyBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRF
dmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheU1vZGlmaWVyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UmVxdWVzdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9k
dWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvYXN5bmMtY2xpcGJvYXJkL0NsaXBib2FyZC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvQ2xpcGJvYXJkSXRlbS5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQvTmF2aWdhdG9yK0NsaXBib2FyZC5pZGwg
XApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBw
bGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Y2U0NGM3NzlmODIzYTJlMzhlZjgwNjNmNGFhNDU1YzI1MDgyNDlmZgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlci5jcHAKQEAgLTAsMCArMSwxNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmgiCisK
KyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkK
KworI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlSZXF1ZXN0LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJKU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSlNET01D
b252ZXJ0LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheUFNU1VJUmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRl
QXBwbGVQYXlBTVNVSVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSlND
OjpKU1ZhbHVlIGRhdGEpCit7CisgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIg
fTsKKworICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoY29udGV4dC52
bSgpKTsKKyAgICBhdXRvIGFwcGxlUGF5QU1TVUlSZXF1ZXN0ID0gY29udmVydERpY3Rpb25hcnk8
QXBwbGVQYXlBTVNVSVJlcXVlc3Q+KCpjb250ZXh0Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKKyAg
ICBpZiAodGhyb3dTY29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKworICAgIGlmICghYXBwbGVQYXlBTVNVSVJlcXVl
c3QuZW5nYWdlbWVudFJlcXVlc3Quc3RhcnRzV2l0aCgneycpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1l
bnRSZXF1ZXN0IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2Jq
ZWN0Il9zIH07CisKKyAgICByZXR1cm4gV1RGTW92ZShhcHBsZVBheUFNU1VJUmVxdWVzdCk7Cit9
CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6dmFsaWRh
dGVEYXRhKERvY3VtZW50JiBkb2N1bWVudCwgSlNDOjpKU1ZhbHVlIGRhdGEpCit7CisgICAgYXV0
byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVx
dWVzdChkb2N1bWVudCwgZGF0YSk7CisgICAgaWYgKHJlcXVlc3RPckV4Y2VwdGlvbi5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgcmV0dXJuIHJlcXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0
aW9uKCk7CisKKyAgICByZXR1cm4geyB9OworfQorCitib29sIEFwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlcjo6aGFuZGxlc0lkZW50aWZpZXIoY29uc3QgUGF5bWVudFJlcXVlc3Q6Ok1ldGhvZElk
ZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAgaWYgKCFzdGQ6OmhvbGRzX2FsdGVybmF0aXZl
PFVSTD4oaWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIHVy
bCA9IHN0ZDo6Z2V0PFVSTD4oaWRlbnRpZmllcik7CisgICAgcmV0dXJuIHVybC5ob3N0KCkgPT0g
ImFwcGxlLmNvbSIgJiYgdXJsLnBhdGgoKSA9PSAiL2Ftcy11aSI7Cit9CisKK2Jvb2wgQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVu
dCkKK3sKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpOworICAgIHJldHVybiBwYWdl
ICYmIHBhZ2UtPmhhc0FjdGl2ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCk7Cit9CisKK3ZvaWQgQXBw
bGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpmaW5pc2hTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8Ym9v
bD4mJiByZXN1bHQpCit7CisgICAgaWYgKCFyZXN1bHQpIHsKKyAgICAgICAgbV9wYXltZW50UmVx
dWVzdC0+cmVqZWN0KEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IgfSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBtX3BheW1lbnRSZXF1ZXN0LT5hY2NlcHQoc3RkOjpnZXQ8VVJMPihtX2lk
ZW50aWZpZXIpLnN0cmluZygpLCBbc3VjY2VzcyA9ICpyZXN1bHRdIChKU0M6OkpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0KSAtPiBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiB7
CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sgeyAmbGV4aWNhbEdsb2JhbE9iamVjdCB9
OworCisgICAgICAgIEpTQzo6Vk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOworICAg
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKKworICAgICAg
ICBhdXRvKiBvYmplY3QgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmbGV4aWNhbEdsb2JhbE9iamVj
dCk7CisgICAgICAgIG9iamVjdC0+cHV0RGlyZWN0KHZtLCBKU0M6OklkZW50aWZpZXI6OmZyb21T
dHJpbmcodm0sICJzdWNjZXNzIiksIEpTQzo6anNCb29sZWFuKHN1Y2Nlc3MpKTsKKworICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHsgfSk7CisKKyAgICAgICAgcmV0dXJu
IHsgdm0sIG9iamVjdCB9OworICAgIH0pOworfQorCitBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXI6OkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcihEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0
IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJiBpZGVudGlmaWVyLCBQYXltZW50UmVx
dWVzdCYgcGF5bWVudFJlcXVlc3QpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7
ICZkb2N1bWVudCB9CisgICAgLCBtX2lkZW50aWZpZXIgeyBpZGVudGlmaWVyIH0KKyAgICAsIG1f
cGF5bWVudFJlcXVlc3QgeyBwYXltZW50UmVxdWVzdCB9Cit7CisgICAgQVNTRVJUKGhhbmRsZXNJ
ZGVudGlmaWVyKG1faWRlbnRpZmllcikpOworfQorCitEb2N1bWVudCYgQXBwbGVQYXlBTVNVSVBh
eW1lbnRIYW5kbGVyOjpkb2N1bWVudCgpIGNvbnN0Cit7CisgICAgQVNTRVJUKGlzPERvY3VtZW50
PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1l
bnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCitQYWdlJiBBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXI6OnBhZ2UoKSBjb25zdAoreworICAgIEFTU0VSVChkb2N1bWVudCgpLnBh
Z2UoKSk7CisgICAgcmV0dXJuICpkb2N1bWVudCgpLnBhZ2UoKTsKK30KKworRXhjZXB0aW9uT3I8
dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjb252ZXJ0RGF0YShKU0M6OkpTVmFs
dWUgZGF0YSkKK3sKKyAgICBhdXRvIHJlcXVlc3RPckV4Y2VwdGlvbiA9IGNvbnZlcnRBbmRWYWxp
ZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGRhdGEp
OworICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgbV9hcHBs
ZVBheUFNU1VJUmVxdWVzdCA9IHJlcXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUo
KTsKKyAgICByZXR1cm4geyB9OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXI6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50KQoreworICAgIEFTU0VSVCht
X2FwcGxlUGF5QU1TVUlSZXF1ZXN0KTsKKworICAgIGlmICghcGFnZSgpLnN0YXJ0QXBwbGVQYXlB
TVNVSVNlc3Npb24oZG9jdW1lbnQsICp0aGlzLCAqbV9hcHBsZVBheUFNU1VJUmVxdWVzdCkpCisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07CisKKyAgICByZXR1cm4geyB9
OworfQorCit2b2lkIEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6aGlkZSgpCit7CisgICAg
cGFnZSgpLmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKnRoaXMpOworfQorCit2b2lkIEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50
LCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8q
IHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CisgICAgY29tcGxldGlvbkhhbmRsZXIocGFnZSAmJiAh
cGFnZS0+aGFzQWN0aXZlQXBwbGVQYXlBTVNVSVNlc3Npb24oKSk7Cit9CisKK0V4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjo6ZGV0YWlsc1VwZGF0ZWQoUGF5bWVu
dFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgLyogZXJyb3IgKi8sIEFkZHJlc3NFcnJv
cnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiAvKiBwYXltZW50TWV0aG9k
RXJyb3JzICovKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRF9XSVRIX01FU1NBR0UoIkFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlciBkb2VzIG5vdCBuZWVkIHNoaXBwaW5nL3BheW1lbnQgaW5m
byIpOworICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1T
VUlQYXltZW50SGFuZGxlcjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWx1
ZSYmIC8qIG1lcmNoYW50U2Vzc2lvblZhbHVlICovKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RF9XSVRIX01FU1NBR0UoIkFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlciBkb2VzIG5vdCBuZWVk
IG1lcmNoYW50IHZhbGlkYXRpb24iKTsKKyAgICByZXR1cm4geyB9OworfQorCit2b2lkIEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29t
cGxldGU+JiYpCit7CisgICAgaGlkZSgpOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYpCit7
CisgICAgcmV0dXJuIHNob3coZG9jdW1lbnQoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVF
U1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9B
cHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0
NzQ2OTFjYTNmMTlhNTkwNTI2MDExNWNmNDNjZGE4MzRiNzg2ZDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5
bWVudEhhbmRsZXIuaApAQCAtMCwwICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVT
VCkKKworI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1
ZGUgIlBheW1lbnRIYW5kbGVyLmgiCisjaW5jbHVkZSAiUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNs
dWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
SlNDIHsKK2NsYXNzIEpTT2JqZWN0OworY2xhc3MgSlNWYWx1ZTsKK30KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIFBhZ2U7CisKK3N0cnVjdCBBZGRyZXNz
RXJyb3JzOworc3RydWN0IFBheWVyRXJyb3JGaWVsZHM7CisKK2VudW0gY2xhc3MgUGF5bWVudENv
bXBsZXRlOworCitjbGFzcyBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIgZmluYWwgOiBwdWJs
aWMgUGF5bWVudEhhbmRsZXIsIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgewor
cHVibGljOgorICAgIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZURhdGEoRG9jdW1l
bnQmLCBKU0M6OkpTVmFsdWUpOworICAgIHN0YXRpYyBib29sIGhhbmRsZXNJZGVudGlmaWVyKGNv
bnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJik7CisgICAgc3RhdGljIGJvb2wg
aGFzQWN0aXZlU2Vzc2lvbihEb2N1bWVudCYpOworCisgICAgdm9pZCBmaW5pc2hTZXNzaW9uKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4mJik7CisKK3ByaXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIFBheW1l
bnRIYW5kbGVyOworICAgIGV4cGxpY2l0IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcihEb2N1
bWVudCYsIGNvbnN0IFBheW1lbnRSZXF1ZXN0OjpNZXRob2RJZGVudGlmaWVyJiwgUGF5bWVudFJl
cXVlc3QmKTsKKworICAgIERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0OworICAgIFBhZ2UmIHBh
Z2UoKSBjb25zdDsKKworICAgIC8vIFBheW1lbnRIYW5kbGVyCisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gY29udmVydERhdGEoSlNDOjpKU1ZhbHVlKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lk
PiBzaG93KERvY3VtZW50JikgZmluYWw7CisgICAgYm9vbCBjYW5BYm9ydFNlc3Npb24oKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgaGlkZSgpIGZpbmFsOworICAgIHZvaWQgY2Fu
TWFrZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXlt
ZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYm
LCBQYXllckVycm9yRmllbGRzJiYsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMp
IGZpbmFsOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRl
ZChKU0M6OkpTVmFsdWUmJikgZmluYWw7CisgICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlvbmFs
PFBheW1lbnRDb21wbGV0ZT4mJikgZmluYWw7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gcmV0cnko
UGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJikgZmluYWw7CisKKyAgICBQYXltZW50UmVxdWVzdDo6
TWV0aG9kSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAgUmVmPFBheW1lbnRSZXF1ZXN0PiBt
X3BheW1lbnRSZXF1ZXN0OworICAgIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+
IG1fYXBwbGVQYXlBTVNVSVJlcXVlc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVp
L0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQzYTdlNDU0NTk2ZWYwNjUzY2Rj
NjEwY2RkZmY0NmQ4ZjdmOTRjOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9B
TVNfVUkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4K
KyNpbmNsdWRlIDx3dGYvVVJMLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFwcGxlUGF5QU1TVUlSZXF1ZXN0IHsKKyAg
ICBTdHJpbmcgZW5nYWdlbWVudFJlcXVlc3Q7IC8vIHJlcXVpcmVkIEpTT04KKworICAgIHRlbXBs
YXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxBcHBsZVBheUFNU1VJUmVx
dWVzdD4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIEFwcGxlUGF5QU1TVUlSZXF1ZXN0OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBlbmNvZGVyIDw8IGVuZ2FnZW1lbnRSZXF1ZXN0OworfQorCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxBcHBsZVBheUFNU1VJUmVxdWVzdD4gQXBwbGVQYXlB
TVNVSVJlcXVlc3Q6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9u
YWw8U3RyaW5nPiBlbmdhZ2VtZW50UmVxdWVzdDsKKyAgICBkZWNvZGVyID4+IGVuZ2FnZW1lbnRS
ZXF1ZXN0OworICAgIGlmICghZW5nYWdlbWVudFJlcXVlc3QpCisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmVuZ2FnZW1lbnRSZXF1ZXN0KSB9
IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBM
RV9QQVlfQU1TX1VJKSAmJiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVJlcXVlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjllMzhlMGZkYmMwN2U5NDVjZjRjOTAxNjA1MGIwYjkw
NzY1NmFkMTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUmVxdWVzdC5pZGwKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1BUFBMRV9QQVlfQU1TX1VJJlBBWU1FTlRfUkVR
VUVTVCwKK10gZGljdGlvbmFyeSBBcHBsZVBheUFNU1VJUmVxdWVzdCB7CisgICAgcmVxdWlyZWQg
SlNPTiBlbmdhZ2VtZW50UmVxdWVzdDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0K
aW5kZXggODcyNzZlODUzNTRhMDk3ZTYwYjU4ZGRiMGI1OGQ3NjRjZWZmOTBiOS4uY2RhMDM4OTdi
NzgzMWY5NzYwZThhYmI2YjRkY2Y3M2U1OWQ3YjQ4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25D
b2NvYS5tbQpAQCAtMzUsNyArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1bnNpZ25lZCBQ
YXltZW50QVBJVmVyc2lvbjo6Y3VycmVudCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGN1cnJl
bnQgPSBbXSB7Ci0jaWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkgfHwgRU5BQkxFKEFQ
UExFX1BBWV9TSElQUElOR19DT05UQUNUX0VESVRJTkdfTU9ERSkgfHwgRU5BQkxFKEFQUExFX1BB
WV9SRUNVUlJJTkdfTElORV9JVEVNKSB8fCBFTkFCTEUoQVBQTEVfUEFZX0RFRkVSUkVEX0xJTkVf
SVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9TSElQUElOR19NRVRIT0RfREFURV9DT01QT05FTlRT
X1JBTkdFKQorI2lmIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEpIHx8IEVO
QUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgICAgICByZXR1cm4gMTM7CisjZWxpZiBFTkFCTEUo
QVBQTEVfUEFZX0NPVVBPTl9DT0RFKSB8fCBFTkFCTEUoQVBQTEVfUEFZX1NISVBQSU5HX0NPTlRB
Q1RfRURJVElOR19NT0RFKSB8fCBFTkFCTEUoQVBQTEVfUEFZX1JFQ1VSUklOR19MSU5FX0lURU0p
IHx8IEVOQUJMRShBUFBMRV9QQVlfREVGRVJSRURfTElORV9JVEVNKSB8fCBFTkFCTEUoQVBQTEVf
UEFZX1NISVBQSU5HX01FVEhPRF9EQVRFX0NPTVBPTkVOVFNfUkFOR0UpCiAgICAgICAgIHJldHVy
biAxMjsKICNlbGlmIEVOQUJMRShBUFBMRV9QQVlfU0VTU0lPTl9WMTEpCiAgICAgICAgIHJldHVy
biAxMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmlu
ZGV4IDUzMGFjOTIyZTIzMDY1ZDk0YWM0OWI0YjFlNTU4NjEwZWY4NDQwZDcuLjEwNjRiNTdmODU5
N2ZmNjBhYTc5NzE2MjBlZTY1Y2Y0N2E1NGMzYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtNzgsNyArNzgsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVJlcXVlc3Q+IGNvbnZlcnRB
bmRWYWxpZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6OkpTVmFsdWUg
ZGF0YSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxp
ZGF0ZUFwcGxlUGF5UmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBKU0M6
OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIiB9
OwpAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBj
b252ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgYwogCiBFeGNlcHRpb25P
cjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEoRG9jdW1lbnQmIGRv
Y3VtZW50LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKLSAgICBhdXRvIHJlcXVlc3RPckV4Y2VwdGlv
biA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgZGF0YSk7CisgICAgYXV0byByZXF1ZXN0
T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoZG9jdW1lbnQs
IGRhdGEpOwogICAgIGlmIChyZXF1ZXN0T3JFeGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiByZXF1ZXN0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCkBAIC0y
MDIsNyArMjAyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+
IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBQYXltZW50U2hpcHAKIAogRXhjZXB0aW9uT3I8dm9p
ZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEoSlNDOjpKU1ZhbHVlIGRhdGEp
CiB7Ci0gICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZGF0YSk7CisgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRp
b24gPSBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoKnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgZGF0YSk7CiAgICAgaWYgKHJlcXVlc3RPckV4Y2VwdGlvbi5oYXNFeGNlcHRpb24o
KSkKICAgICAgICAgcmV0dXJuIHJlcXVlc3RPckV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKaW5kZXggN2Jm
ZWNmZTk1NWUwOGM1OWE3YzhiMmQ4ZWM0MTg5MzdhOWEzZGVlZi4uOTczMTQxOGM1NTdlNmZlMTc0
ZjYzODQ5NGQzNDU2MTAyOWIwYTVkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBh
eW1lbnRIYW5kbGVyLmgKQEAgLTczLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICAvLyBQYXltZW50
SGFuZGxlcgogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSkg
ZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hvdyhEb2N1bWVudCYpIGZpbmFsOworICAg
IGJvb2wgY2FuQWJvcnRTZXNzaW9uKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQg
aGlkZSgpIGZpbmFsOwogICAgIHZvaWQgY2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5jdGlv
bjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBkZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBTdHJp
bmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9yRmllbGRzJiYsIEpTQzo6SlNP
YmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcAppbmRleCBm
NTVkYTI1YzYwZjUwMzhiZTg5ZjI4NmI3YzEwMTgyY2Q5MTBkNjZhLi42MzBjNjA5NmM1N2NjYTgw
NGQxYTFlMzAxZGZkOWNmOTE1MDRkZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmNwcApAQCAtMjgsNiArMjgs
MTAgQEAKIAogI2lmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCiAKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZX0FNU19VSSkKKyNpbmNsdWRlICJBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCIKKyNl
bmRpZgorCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRI
YW5kbGVyLmgiCiAjZW5kaWYKQEAgLTM5LDEyICs0MywxNiBAQCBSZWZQdHI8UGF5bWVudEhhbmRs
ZXI+IFBheW1lbnRIYW5kbGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBQYXltZW50UmVx
dWVzdAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgaWYgKEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEFwcGxlUGF5UGF5bWVudEhhbmRsZXIoZG9jdW1lbnQsIGlkZW50aWZpZXIsIHBheW1l
bnRSZXF1ZXN0KSk7Ci0jZWxzZQorI2VuZGlmCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkKKyAgICBpZiAoQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYW5kbGVzSWRlbnRpZmll
cihpZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXIoZG9jdW1lbnQsIGlkZW50aWZpZXIsIHBheW1lbnRSZXF1ZXN0KSk7Cisj
ZW5kaWYKKwogICAgIFVOVVNFRF9QQVJBTShkb2N1bWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKHBh
eW1lbnRSZXF1ZXN0KTsKICAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Ci0jZW5kaWYKLQog
ICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC02NiwxMiArNzQsMTYgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gUGF5bWVudEhhbmRsZXI6OnZhbGlkYXRlRGF0YShEb2N1bWVudCYgZG9jdW1lbnQsIEpT
Qzo6SlNWYWx1ZQogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAgICAgaWYgKEFwcGxlUGF5UGF5bWVu
dEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm4g
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6dmFsaWRhdGVEYXRhKGRvY3VtZW50LCBkYXRhKTsKLSNl
bHNlCisjZW5kaWYKKworI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIGlmIChBcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmhhbmRsZXNJZGVudGlmaWVyKGlkZW50aWZpZXIpKQor
ICAgICAgICByZXR1cm4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjp2YWxpZGF0ZURhdGEo
ZG9jdW1lbnQsIGRhdGEpOworI2VuZGlmCisKICAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwog
ICAgIFVOVVNFRF9QQVJBTShkYXRhKTsKICAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7Ci0j
ZW5kaWYKLQogICAgIHJldHVybiB7IH07CiB9CiAKQEAgLTg4LDExICsxMDAsMTcgQEAgYm9vbCBQ
YXltZW50SGFuZGxlcjo6ZW5hYmxlZEZvckNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkKIGJvb2wgUGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2ZVNlc3Npb24oRG9jdW1lbnQm
IGRvY3VtZW50KQogewogI2lmIEVOQUJMRShBUFBMRV9QQVkpCi0gICAgcmV0dXJuIEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6Omhhc0FjdGl2ZVNlc3Npb24oZG9jdW1lbnQpOwotI2Vsc2UKKyAgICBp
ZiAoQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6aGFzQWN0aXZlU2Vzc2lvbihkb2N1bWVudCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworI2VuZGlmCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkKKyAgICBpZiAoQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpoYXNBY3RpdmVTZXNzaW9u
KGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisjZW5kaWYKKwogICAgIFVOVVNFRF9Q
QVJBTShkb2N1bWVudCk7CiAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaAppbmRleCA3Zjg2ZWJkMGYyNzBmYTYzMzZjMDJkODdk
NWY0NGM4NzUyNjY5YTdhLi5hZjQ2MzU4MWQ2MWFlNTMzZDM1ZGIxZjgwZGQ2ZjU0YTZjNjFhNTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50SGFuZGxlci5oCkBAIC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwg
RXhjZXB0aW9uT3I8dm9pZD4gY29udmVydERhdGEoSlNDOjpKU1ZhbHVlKSA9IDA7CiAgICAgdmly
dHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzaG93KERvY3VtZW50JikgPSAwOworICAgIHZpcnR1YWwg
Ym9vbCBjYW5BYm9ydFNlc3Npb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhpZGUoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgPSAwOwogICAgIHZpcnR1YWwgRXhjZXB0aW9u
T3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3Ry
aW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpT
T2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IDA2
M2NmZjdlMDkwN2I1ZTM3YzRmZjI0MTQwNGQ4ZDNiOTM4MTJiZGIuLjViMWRjNzg5YjM0ZTkxN2Ey
OTMzZWQ1ZmE2MzBhZWE2Yzg3MDRlM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC00OTQsNiArNDk0
LDExIEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OmFib3J0KEFib3J0UHJvbWlzZSYmIHByb21pc2Up
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBpZiAobV9hY3RpdmVQYXltZW50SGFuZGxl
ciAmJiAhYWN0aXZlUGF5bWVudEhhbmRsZXIoKS0+Y2FuQWJvcnRTZXNzaW9uKCkpIHsKKyAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKICAgICBhYm9ydFdpdGhFeGNlcHRpb24oRXhjZXB0aW9uIHsg
QWJvcnRFcnJvciB9KTsKICAgICBwcm9taXNlLnJlc29sdmUoKTsKIH0KQEAgLTY5Nyw2ICs3MDIs
MzUgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6d2hlbkRldGFpbHNTZXR0bGVkKHN0ZDo6ZnVuY3Rp
b248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIH0pOwogfQogCit2b2lkIFBheW1lbnRSZXF1ZXN0
OjphY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFp
bHNGdW5jdGlvbiYmIGRldGFpbHNGdW5jdGlvbikKK3sKKyAgICBBU1NFUlQoIW1faXNVcGRhdGlu
Zyk7CisgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkludGVyYWN0aXZlKTsKKworICAgIGJv
b2wgaXNSZXRyeSA9IG1fcmVzcG9uc2U7CisgICAgaWYgKCFpc1JldHJ5KSB7CisgICAgICAgIG1f
cmVzcG9uc2UgPSBQYXltZW50UmVzcG9uc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksICp0aGlzKTsKKyAgICAgICAgbV9yZXNwb25zZS0+c2V0UmVxdWVzdElkKG1fZGV0YWlscy5p
ZCk7CisgICAgfQorCisgICAgbV9yZXNwb25zZS0+c2V0TWV0aG9kTmFtZShtZXRob2ROYW1lKTsK
KyAgICBtX3Jlc3BvbnNlLT5zZXREZXRhaWxzRnVuY3Rpb24oV1RGTW92ZShkZXRhaWxzRnVuY3Rp
b24pKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRTaGlwcGluZ0FkZHJlc3MobnVsbHB0cik7CisgICAg
bV9yZXNwb25zZS0+c2V0U2hpcHBpbmdPcHRpb24obnVsbFN0cmluZygpKTsKKyAgICBtX3Jlc3Bv
bnNlLT5zZXRQYXllck5hbWUobnVsbFN0cmluZygpKTsKKyAgICBtX3Jlc3BvbnNlLT5zZXRQYXll
ckVtYWlsKG51bGxTdHJpbmcoKSk7CisgICAgbV9yZXNwb25zZS0+c2V0UGF5ZXJQaG9uZShudWxs
U3RyaW5nKCkpOworCisgICAgaWYgKCFpc1JldHJ5KQorICAgICAgICBzZXR0bGVTaG93UHJvbWlz
ZSgqbV9yZXNwb25zZSk7CisgICAgZWxzZSB7CisgICAgICAgIEFTU0VSVChtX3Jlc3BvbnNlLT5o
YXNSZXRyeVByb21pc2UoKSk7CisgICAgICAgIG1fcmVzcG9uc2UtPnNldHRsZVJldHJ5UHJvbWlz
ZSgpOworICAgIH0KKworICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2xvc2VkOworfQorCiB2b2lkIFBh
eW1lbnRSZXF1ZXN0OjphY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lLCBQYXltZW50UmVz
cG9uc2U6OkRldGFpbHNGdW5jdGlvbiYmIGRldGFpbHNGdW5jdGlvbiwgUmVmPFBheW1lbnRBZGRy
ZXNzPiYmIHNoaXBwaW5nQWRkcmVzcywgY29uc3QgU3RyaW5nJiBwYXllck5hbWUsIGNvbnN0IFN0
cmluZyYgcGF5ZXJFbWFpbCwgY29uc3QgU3RyaW5nJiBwYXllclBob25lKQogewogICAgIEFTU0VS
VCghbV9pc1VwZGF0aW5nKTsKQEAgLTcyNiw2ICs3NjAsMTEgQEAgdm9pZCBQYXltZW50UmVxdWVz
dDo6YWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3BvbnNlOjpEZXRh
aWxzRnUKICAgICBtX3N0YXRlID0gU3RhdGU6OkNsb3NlZDsKIH0KIAordm9pZCBQYXltZW50UmVx
dWVzdDo6cmVqZWN0KEV4Y2VwdGlvbiYmIGV4Y2VwdGlvbikKK3sKKyAgICBhYm9ydFdpdGhFeGNl
cHRpb24oV1RGTW92ZShleGNlcHRpb24pKTsKK30KKwogRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVu
dFJlcXVlc3Q6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmIHJlc3Vs
dCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6Q2xvc2VkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaApp
bmRleCAxOTE1OTc2OTA5ODE2NDQzZGNkNmQzZGNiMmRlZDhmNDJkNzk5N2FkLi5lYmJkNTQyNmE1
NzhiN2I3NTc5MjNjMDM2ZDliMTRlMTdkNTQ2N2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCkBAIC05Niw3ICs5
Niw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBheW1lbnRNZXRob2RDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYgbWV0aG9kTmFtZSwgUGF5bWVudE1ldGhvZENoYW5nZUV2ZW50OjpNZXRob2REZXRhaWxzRnVu
Y3Rpb24mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gdXBkYXRlV2l0aChVcGRhdGVSZWFzb24s
IFJlZjxET01Qcm9taXNlPiYmKTsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZU1lcmNo
YW50VmFsaWRhdGlvbihFdmVudCYsIFJlZjxET01Qcm9taXNlPiYmKTsKKyAgICB2b2lkIGFjY2Vw
dChjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0
aW9uJiYpOwogICAgIHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVu
dFJlc3BvbnNlOjpEZXRhaWxzRnVuY3Rpb24mJiwgUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBw
aW5nQWRkcmVzcywgY29uc3QgU3RyaW5nJiBwYXllck5hbWUsIGNvbnN0IFN0cmluZyYgcGF5ZXJF
bWFpbCwgY29uc3QgU3RyaW5nJiBwYXllclBob25lKTsKKyAgICB2b2lkIHJlamVjdChFeGNlcHRp
b24mJik7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXlt
ZW50Q29tcGxldGU+JiYpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNt
YWtlCmluZGV4IDNhMzJjYTNjOWQ3N2FmZDI0ZGUxYTNlN2JjOTVmMmIyNDQ2YzU1NTkuLjEzNjg4
MDNiYTQwN2ZkYTgxNzAxOTlhZjEwYmI2M2YxMzAwYjM3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFj
LmNtYWtlCkBAIC01ODksNiArNTg5LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vY29jb2EvTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0LmgKICAgICBwbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRl
ci5oCiAgICAgcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3LmgKKyAgICBwbGF0Zm9ybS9jb2Nv
YS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmgKICAgICBwbGF0Zm9ybS9jb2NvYS9QbGF5YmFja1Nl
c3Npb25Nb2RlbC5oCiAgICAgcGxhdGZvcm0vY29jb2EvUGxheWJhY2tTZXNzaW9uTW9kZWxNZWRp
YUVsZW1lbnQuaAogICAgIHBsYXRmb3JtL2NvY29hL1Bvd2VyU291cmNlTm90aWZpZXIuaApAQCAt
Nzk0LDYgKzc5NSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxl
cy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheU1vZGlmaWVyLmlkbAogICAgIE1vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlSZXF1ZXN0LmlkbAogCisgICAgTW9k
dWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsCisKICAgICBNb2R1
bGVzL3BsdWdpbnMvUXVpY2tUaW1lUGx1Z2luUmVwbGFjZW1lbnQuaWRsCiApCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CmluZGV4IDkyNTQ1YTVjZjI4YTgwMDMxZjA4NmUwMjllYzliNjVlYzkwYmE1
YjAuLjYxMjU4M2FmNjg4YTk1MjQyM2EyM2MzZTI5NjEzYTdiNzVjYzU3NzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlc0NvY29hLnR4dApAQCAtMjEsNiArMjEsNyBAQAogLy8gQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgogLy8gVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitKU0FwcGxlUGF5QU1TVUlSZXF1ZXN0LmNw
cAogSlNBcHBsZVBheUNhbmNlbEV2ZW50LmNwcAogSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAK
IEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmNwcApAQCAtOTYsNiArOTcsNyBAQCBN
b2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RDb2NvYS5tbQogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50U2Vzc2lvbkVycm9yQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkv
Y29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCitNb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCiBNb2R1bGVzL2FzeW5jLWNsaXBi
b2FyZC9pb3MvQ2xpcGJvYXJkSW1hZ2VSZWFkZXJJT1MubW0KIE1vZHVsZXMvYXN5bmMtY2xpcGJv
YXJkL21hYy9DbGlwYm9hcmRJbWFnZVJlYWRlck1hYy5tbQogTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENSdHBTRnJhbWVUcmFuc2Zvcm1lckNvY29hLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZkNTkxOGE4NTRkZThhOThmMmVm
YjE0MDQ3ODFmY2Q3Y2FkOTQ3MGYuLmIyNWE0NDZlZmQ4NzVlYWU1NWY1Y2FlMWUwMjM2N2E3ZTAz
MzdjZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTMwNTQsNiArMzA1NCw3IEBACiAJCTk1OTZCOTM4MjVERUVGMDMwMEVEMkNG
QSAvKiBKU0FwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5NkI5MzYyNURFRUYwMjAwRUQyQ0ZBIC8q
IEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggKi87IH07CiAJCTk1QTFFMkU5MjVD
Qzc1QTkwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUExRTJFNzI1Q0M3NUE4MDAy
NjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1QUE1NzEwMjVFRUVEMzIwMDRFOTI4
MyAvKiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFBNTcwRTI1RUVFRDMxMDA0RTkyODMgLyogSW5zcGVj
dG9yQ2FudmFzQ2FsbFRyYWNlci5oICovOyB9OworCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIg
LyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTVCQTRGQUIyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmll
d0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk5NURGOUQyNTI1MkJFREIyMDAwRDdGNDYgLyogUG9pbnRlckNoYXJhY3RlcmlzdGlj
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVERjlE
MjMyNTJCRUQ5OTAwMEQ3RjQ2IC8qIFBvaW50ZXJDaGFyYWN0ZXJpc3RpY3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NUVBRDU2MzI2NkVGMkRC
MDA0QjlDRjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUVBRDU1RjI2NkVGMkRBMDA0QjlD
RjEgLyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggKi87IH07CiAJCTk1RUFENTZB
MjY2RUYyRkEwMDRCOUNGMSAvKiBBcHBsZVBheURhdGVDb21wb25lbnRzUmFuZ2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1RUFENTY2MjY2RUYyRjgw
MDRCOUNGMSAvKiBBcHBsZVBheURhdGVDb21wb25lbnRzUmFuZ2UuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzA3MCw2ICszMDcxLDggQEAKIAkJ
OTVFQUQ1OTQyNjZFRjVENDAwNEI5Q0YxIC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5RUMxRTAw
ODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oICovOyB9OwogCQk5NUVB
RDU5NzI2NkVGNjBCMDA0QjlDRjEgLyogSlNBcHBsZVBheVNoaXBwaW5nQ29udGFjdEVkaXRpbmdN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUVB
RDU5NTI2NkVGNjA5MDA0QjlDRjEgLyogSlNBcHBsZVBheVNoaXBwaW5nQ29udGFjdEVkaXRpbmdN
b2RlLmggKi87IH07CiAJCTk1RjQ1RDI3MjY0REZCRjEwMEQwQjhCOCAvKiBQYWdlQ29sb3JTYW1w
bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUY0
NUQyNjI2NERGQkVCMDBEMEI4QjggLyogUGFnZUNvbG9yU2FtcGxlci5oICovOyB9OworCQk5NUZC
NjYyNTI2RDcwMzNDMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUZCNjYyMTI2RDcw
MzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmggKi87IH07CisJCTk1
RkI2NjI2MjZENzAzM0MwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVxdWVzdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVGQjY2MjIyNkQ3MDMzQjAw
NjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwNTk5N0ExMDdEOTc1MjAwQTUwQTdDIC8qIFBv
bGljeUNoZWNrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3MDU5OTc2MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTcwQjcyOEExNDRGRkFD
NjAwRjAwQTM3IC8qIEV2ZW50SW50ZXJmYWNlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTcwQjcyODkxNDRGRkFDNjAwRjAwQTM3IC8qIEV2ZW50SW50
ZXJmYWNlcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTk3MEI3MkE2MTQ1MDA4RUIwMEYwMEEzNyAvKiBFdmVudEhlYWRlcnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3MEI3MkE1MTQ1MDA4RUIwMEYw
MEEzNyAvKiBFdmVudEhlYWRlcnMuaCAqLzsgfTsKQEAgLTEyNTE4LDYgKzEyNTIxLDcgQEAKIAkJ
OTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sc0NvbnRleHRN
ZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NUFBNTcwRDI1RUVFRDMw
MDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBQTU3MEUyNUVFRUQzMTAwNEU5MjgzIC8qIElu
c3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NUJBNEZBQjI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVZpZXdDb250cm9sbGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1REY5RDIzMjUyQkVEOTkwMDBEN0Y0
NiAvKiBQb2ludGVyQ2hhcmFjdGVyaXN0aWNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvaW50ZXJDaGFy
YWN0ZXJpc3RpY3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVFQUQ1NUYyNjZF
RjJEQTAwNEI5Q0YxIC8qIEFwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVFQUQ1NjEyNjZFRjJEQTAwNEI5Q0Yx
IC8qIEFwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEyNTQ4LDYgKzEyNTUyLDEwIEBACiAJCTk1RUFENTk2MjY2RUY2MEEw
MDRCOUNGMSAvKiBKU0FwcGxlUGF5U2hpcHBpbmdDb250YWN0RWRpdGluZ01vZGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nQ29udGFj
dEVkaXRpbmdNb2RlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVGNDVEMjQy
NjRERkJFQjAwRDBCOEI4IC8qIFBhZ2VDb2xvclNhbXBsZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUGFnZUNvbG9yU2FtcGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
RjQ1RDI2MjY0REZCRUIwMEQwQjhCOCAvKiBQYWdlQ29sb3JTYW1wbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBhZ2VDb2xvclNhbXBsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTVG
QjY2MjAyNkQ3MDMzQjAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUFNU1VJUmVxdWVzdC5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk1RkI2NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
RkI2NjIyMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUmVxdWVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUFNU1VJUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NUZCNjYyMzI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3MDU5OTc1MTA3RDk3NTIwMEE1MEE3QyAvKiBQb2xpY3lDaGVja2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvbGljeUNoZWNrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzA1OTk3NjEwN0Q5NzUyMDBBNTBBN0Mg
LyogUG9saWN5Q2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb2xp
Y3lDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3MEI3Mjg5MTQ0RkZB
QzYwMEYwMEEzNyAvKiBFdmVudEludGVyZmFjZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gRXZlbnRJbnRlcmZhY2VzLmg7IHBhdGggPSBEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0V2ZW50SW50ZXJmYWNlcy5oOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwpA
QCAtMTg4OTgsMTEgKzE4OTA2LDExIEBACiAJCTFBNTY5Q0M0MEQ3RTJCNjAwMDdDMzk4MyAvKiBi
cmlkZ2UgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU5
QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRTIwRDdFMkI4MjAw
N0MzOTgzIC8qIG9iamMgKi8sCiAJCQkJNTk5RTc1OEYxMTA1NUExRjAwRDkwNEZBIC8qIEJyaWRn
ZS5oICovLAogCQkJCTFBNzFENTc5MEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmNw
cCAqLywKIAkJCQkxQTcxRDU3QTBGMzM4MTkwMDBGOUNFNEUgLyogSWRlbnRpZmllclJlcC5oICov
LAotCQkJCTU5QjU5NzcxMTEwODY1NTYwMDcxNTlFOCAvKiBqc2MgKi8sCiAJCQkJMUE1NjlDRUYw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuY3BwICovLAogCQkJCTFBNTY5Q0YwMEQ3
RTJCODIwMDdDMzk4MyAvKiBydW50aW1lX2FycmF5LmggKi8sCiAJCQkJMUE1NjlDRjEwRDdFMkI4
MjAwN0MzOTgzIC8qIHJ1bnRpbWVfbWV0aG9kLmNwcCAqLywKQEAgLTI0OTc4LDExICsyNDk4Niwy
MyBAQAogCQkJbmFtZSA9IHBhcnNlcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCTk1RkI2NjFGMjZENzAzM0IwMDY4QUM2NyAvKiBhcHBsZXBheS1hbXMtdWkgKi8gPSB7CisJ
CQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk1RkI2NjIzMjZENzAzM0Iw
MDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwICovLAorCQkJCTk1RkI2
NjIxMjZENzAzM0IwMDY4QUM2NyAvKiBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaCAqLywK
KwkJCQk5NUZCNjYyMjI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3QuaCAq
LywKKwkJCQk5NUZCNjYyMDI2RDcwMzNCMDA2OEFDNjcgLyogQXBwbGVQYXlBTVNVSVJlcXVlc3Qu
aWRsICovLAorCQkJKTsKKwkJCXBhdGggPSAiYXBwbGVwYXktYW1zLXVpIjsKKwkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTk3MTE0NUZFMTRFRjAwNkUwMDY3NEZEOSAvKiBNb2R1
bGVzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDRTI2
MTY5RDE4N0U2NTU0MDA3OTU1RjMgLyogYWlycGxheSAqLywKIAkJCQkxQTU4RTg2MTFEMTlEMzcz
MDBDMEVBNzMgLyogYXBwbGVwYXkgKi8sCisJCQkJOTVGQjY2MUYyNkQ3MDMzQjAwNjhBQzY3IC8q
IGFwcGxlcGF5LWFtcy11aSAqLywKIAkJCQk2M0JENEE1QzFGNzc4RTg0MDA0Mzg3MjIgLyogYXBw
bGljYXRpb25tYW5pZmVzdCAqLywKIAkJCQlGNDQwRTc2QTIzM0Q5M0M4MDA2M0Y5QUIgLyogYXN5
bmMtY2xpcGJvYXJkICovLAogCQkJCTgzMjE1MDc5MUYyN0U5NkIwMDk1QjEzNiAvKiBiZWFjb24g
Ki8sCkBAIC0yNTc2Nyw2ICsyNTc4Nyw3IEBACiAJCQkJRjRGQjM1MDAyMzUwQzk2MjAwRjAwOTRB
IC8qIFBhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0gKi8sCiAJCQkJRjQ2MjhBOUUyMzREM0JC
RjAwQkM4ODRDIC8qIFBsYXRmb3JtUGFzdGVib2FyZENvY29hLm1tICovLAogCQkJCTUyQjBENEJE
MUM1N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCAqLywKKwkJCQk5NUJBNEZBQjI2RDk4
MUFBMDAyQTBFNjIgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oICovLAogCQkJCUNEQTI5QTBB
MUNCRDlBNzQwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbC5oICovLAogCQkJCUNEQTI5
QTBEMUNCRDlDRkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2RlbE1lZGlhRWxlbWVudC5o
ICovLAogCQkJCUNEQTI5QTBDMUNCRDlDRkUwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25Nb2Rl
bE1lZGlhRWxlbWVudC5tbSAqLywKQEAgLTMyMjQyLDYgKzMyMjYzLDggQEAKIAkJCQk0NDUyMTBE
RjI1RDYxRjAwMDAzQTJFRDggLyogQXBwSGlnaGxpZ2h0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NEFFMDQ1QzI1NzlDRkZCMDBDNDJFNjUgLyogQXBwSGlnaGxpZ2h0UmFuZ2VEYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0NDI1MDcwOTI1ODI5QTI3MDBDMDkzNjggLyogQXBwSGlnaGxpZ2h0U3Rv
cmFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVGQjY2MjUyNkQ3MDMzQzAwNjhBQzY3IC8qIEFw
cGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTVGQjY2MjYy
NkQ3MDMzQzAwNjhBQzY3IC8qIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMTEzRTAyRTIzMzFBMTM0MDA5QzMzQTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTQxRjdFQzQzMjAwNThBNDc3IC8qIEFwcGxlUGF5Q29u
dGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKIAkJCQk5NUVBRDU2MzI2NkVGMkRCMDA0QjlDRjEg
LyogQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1
MzcyLDYgKzM1Mzk1LDcgQEAKIAkJCQkwRjdEMDczMzE4ODRDNTZDMDBCNEFGODYgLyogUGxhdGZv
cm1UZXh0VHJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA3NEU4MkJCMThBNjlGMEUwMDdFRjU0
QyAvKiBQbGF0Zm9ybVRpbWVSYW5nZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyQjBENEJFMUM1
N0ZEMUUwMDc3Q0U1MyAvKiBQbGF0Zm9ybVZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1QkE0
RkFEMjZEOTgxQUEwMDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5MzVDNDc2QjA5QUM0RDRGMDBBNkFBQjQgLyogUGxhdGZvcm1XaGVlbEV2ZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUVFOEI3MjI0MTJCMkE4MDBFNzk0RDYgLyogUGxhdGZv
cm1YUi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTI3M0NDNzcyNTYxMDNDRjAwODUwMDA3IC8qIFBs
YXRmb3JtWFJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCAyM2E1OGJmOGI4M2NlMmY1NmJlMDIxNjJkYjU3ODRiYTczODFmM2UwLi41ZjZkNWI0
ZjJlYzUwZWIxNzI2Mzk5OTA5NmQ3NWNmMTUzNTk3MDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTEyNCw2ICsxMjQsNyBAQCBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0
YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKICNlbmRpZgogCiBzdHJ1Y3QgQXBwSGlnaGxpZ2h0
Oworc3RydWN0IEFwcGxlUGF5QU1TVUlSZXF1ZXN0Owogc3RydWN0IENvbnRhY3RzUmVxdWVzdERh
dGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBEYXRhRGV0ZWN0b3JF
bGVtZW50SW5mbzsKQEAgLTYxMSw2ICs2MTIsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBtb2RlbEVsZW1lbnREaWRDcmVhdGVQcmV2aWV3KFdlYkNvcmU6OkhUTUxNb2RlbEVsZW1lbnQm
LCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKSBj
b25zdCB7IH07CiAjZW5kaWYKIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorICAgIHZp
cnR1YWwgdm9pZCBzdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKGNvbnN0IFVSTCYsIGNvbnN0IEFw
cGxlUGF5QU1TVUlSZXF1ZXN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKHN0ZDo6
bnVsbG9wdCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigp
IHsgfQorI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSA9
IGRlZmF1bHQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggODVkMGFhNzQ5YzQzMGFiNjJlZDFi
OWIwMmQ1MTYwZmUxYTFkZGNkOS4uMWFjZDU5Njk3YTQ0NjlhYTJhZjk0NTIyZGJmZGUyOWE3Mjcy
YWU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNjgsNiArMTY4LDEwIEBACiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4K
IAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorI2luY2x1ZGUgIkFwcGxlUGF5QU1TVUlQ
YXltZW50SGFuZGxlci5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJNZWRpYVBs
YXliYWNrVGFyZ2V0LmgiCkBAIC0zNDgyLDYgKzM0ODYsNDIgQEAgdm9pZCBQYWdlOjpzZXRQYXlt
ZW50Q29vcmRpbmF0b3Ioc3RkOjp1bmlxdWVfcHRyPFBheW1lbnRDb29yZGluYXRvcj4mJiBwYXlt
ZW50Q28KIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKK2Jvb2wg
UGFnZTo6c3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQsIEFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlciYgcGF5bWVudEhhbmRsZXIsIGNvbnN0IEFwcGxlUGF5QU1T
VUlSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChoYXNBY3RpdmVBcHBsZVBheUFNU1VJU2Vz
c2lvbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2FjdGl2ZUFwcGxlUGF5QU1T
VUlQYXltZW50SGFuZGxlciA9ICZwYXltZW50SGFuZGxlcjsKKworICAgIGNocm9tZSgpLmNsaWVu
dCgpLnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oZG9jdW1lbnQudXJsKCksIHJlcXVlc3QsIFt3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwYXltZW50SGFuZGxlclB0ciA9ICZwYXltZW50
SGFuZGxlcl0gKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJiByZXN1bHQpIHsKKyAgICAgICAgYXV0byBz
dHJvbmdUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghc3Ryb25nVGhpcykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAocGF5bWVudEhhbmRsZXJQdHIgIT0gc3Ry
b25nVGhpcy0+bV9hY3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIpCisgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgaWYgKGF1dG8gYWN0aXZlUGF5bWVudEhhbmRsZXIgPSBzdGQ6
OmV4Y2hhbmdlKHN0cm9uZ1RoaXMtPm1fYWN0aXZlQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
LCBudWxscHRyKSkKKyAgICAgICAgICAgIGFjdGl2ZVBheW1lbnRIYW5kbGVyLT5maW5pc2hTZXNz
aW9uKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Zv
aWQgUGFnZTo6YWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihBcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXImIHBheW1lbnRIYW5kbGVyKQoreworICAgIGlmICgmcGF5bWVudEhhbmRsZXIgIT0gbV9h
Y3RpdmVBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGNocm9tZSgpLmNsaWVudCgpLmFib3J0QXBwbGVQYXlBTVNVSVNlc3Npb24oKTsKKworICAgIGlm
IChhdXRvIGFjdGl2ZVBheW1lbnRIYW5kbGVyID0gc3RkOjpleGNoYW5nZShtX2FjdGl2ZUFwcGxl
UGF5QU1TVUlQYXltZW50SGFuZGxlciwgbnVsbHB0cikpCisgICAgICAgIGFjdGl2ZVBheW1lbnRI
YW5kbGVyLT5maW5pc2hTZXNzaW9uKHN0ZDo6bnVsbG9wdCk7Cit9CisKKyNlbmRpZiAvLyBFTkFC
TEUoQVBQTEVfUEFZX0FNU19VSSkKKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OX0NPT1JESU5B
VE9SKQogdm9pZCBQYWdlOjpzZXRNZWRpYVNlc3Npb25Db29yZGluYXRvcihSZWY8TWVkaWFTZXNz
aW9uQ29vcmRpbmF0b3JQcml2YXRlPiYmIG1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCBjZGY3Y2IzNzRhZGMzMTAwYjZmMDY1M2I3N2QxNmMzYWJkYzEzYzE2Li41
YTRjMjE0MDE0Y2NmYzM5YWVhMzhjOWU1MGZhMzdkMThjY2VkODYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtOTEsNiArOTEsNyBAQCBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIGNsYXNzIElEQkNvbm5lY3Rp
b25Ub1NlcnZlcjsKIH0KIAorY2xhc3MgQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOwogY2xh
c3MgQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVyOwogY2xhc3MgQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50OwogY2xhc3MgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U7CkBAIC0xNjcsNiArMTY4LDcgQEAg
Y2xhc3MgV2ViR0xTdGF0ZVRyYWNrZXI7CiBjbGFzcyBXaGVlbEV2ZW50RGVsdGFGaWx0ZXI7CiBj
bGFzcyBXaGVlbEV2ZW50VGVzdE1vbml0b3I7CiAKK3N0cnVjdCBBcHBsZVBheUFNU1VJUmVxdWVz
dDsKIHN0cnVjdCBTaW1wbGVSYW5nZTsKIHN0cnVjdCBUZXh0UmVjb2duaXRpb25SZXN1bHQ7CiAK
QEAgLTU0MSw2ICs1NDMsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
UGF5bWVudENvb3JkaW5hdG9yKHN0ZDo6dW5pcXVlX3B0cjxQYXltZW50Q29vcmRpbmF0b3I+JiYp
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBib29sIGhhc0Fj
dGl2ZUFwcGxlUGF5QU1TVUlTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVBcHBsZVBh
eUFNU1VJUGF5bWVudEhhbmRsZXI7IH0KKyAgICBib29sIHN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Np
b24oRG9jdW1lbnQmLCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXImLCBjb25zdCBBcHBsZVBh
eUFNU1VJUmVxdWVzdCYpOworICAgIHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihBcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXImKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdFQl9BVVRI
TikKICAgICBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3ImIGF1dGhlbnRpY2F0b3JDb29yZGluYXRv
cigpIHsgcmV0dXJuIG1fYXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmdldCgpOyB9CiAjZW5kaWYK
QEAgLTExODgsNiArMTE5NiwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxQYXlt
ZW50Q29vcmRpbmF0b3I+IG1fcGF5bWVudENvb3JkaW5hdG9yOwogI2VuZGlmCiAKKyNpZiBFTkFC
TEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICBSZWZQdHI8QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyPiBtX2FjdGl2ZUFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlcjsKKyNlbmRpZgorCiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKICAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvckNvb3JkaW5hdG9y
PiBtX2F1dGhlbnRpY2F0b3JDb29yZGluYXRvcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGxhdGZvcm1WaWV3Q29udHJvbGxlci5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgzMmNkNDRmNWU0NzE1NGQzMDMyM2EzY2EyZWM2NTRmYmY5NjBmYTQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QbGF0Zm9ybVZpZXdDb250cm9s
bGVyLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUGxhdGZvcm1WaWV3Q29udHJvbGxlcl9oCisjZGVmaW5lIFBs
YXRmb3JtVmlld0NvbnRyb2xsZXJfaAorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwordHlwZWRlZiBV
SVZpZXdDb250cm9sbGVyIFBsYXRmb3JtVmlld0NvbnRyb2xsZXI7CisjZWxzZQorT0JKQ19DTEFT
UyBOU1ZpZXdDb250cm9sbGVyOwordHlwZWRlZiBOU1ZpZXdDb250cm9sbGVyIFBsYXRmb3JtVmll
d0NvbnRyb2xsZXI7CisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQorCisjZW5k
aWYgLyogUGxhdGZvcm1WaWV3Q29udHJvbGxlcl9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2VydmljZXNTUEkuaCBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmFkYjc2NjdkNzIyODA2NGVlNjAzMjg3MmI2NWRhNjlkMmVkNDk0MWUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BcHBsZU1lZGlhU2Vydmlj
ZXNTUEkuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisKKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNCYWcuaD4KKyNpbXBvcnQgPEFwcGxl
TWVkaWFTZXJ2aWNlcy9BTVNCYWdDb25zdW1lci5oPgorI2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZp
Y2VzL0FNU0JhZ1Byb3RvY29sLmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TRW5n
YWdlbWVudFJlcXVlc3QuaD4KKyNpbXBvcnQgPEFwcGxlTWVkaWFTZXJ2aWNlcy9BTVNFbmdhZ2Vt
ZW50UmVzdWx0Lmg+CisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXMvQU1TUHJvbWlzZS5oPgor
I2ltcG9ydCA8QXBwbGVNZWRpYVNlcnZpY2VzL0FNU1Rhc2suaD4KKworI2Vsc2UgLy8gaWYgIVVT
RShBUFBMRV9JTlRFUk5BTF9TREspCisKK0BpbnRlcmZhY2UgQU1TUHJvbWlzZTxSZXN1bHRUeXBl
PiA6IE5TT2JqZWN0CistICh2b2lkKWFkZEZpbmlzaEJsb2NrOih2b2lkKF4pKFJlc3VsdFR5cGUg
X051bGxhYmxlIHJlc3VsdCwgTlNFcnJvciAqIF9OdWxsYWJsZSBlcnJvcikpZmluaXNoQmxvY2s7
CitAZW5kCisKK0Bwcm90b2NvbCBBTVNCYWdQcm90b2NvbCA8TlNPYmplY3Q+CitAZW5kCisKK0Bp
bnRlcmZhY2UgQU1TQmFnIDogTlNPYmplY3QgPEFNU0JhZ1Byb3RvY29sPgorQGVuZAorCitAcHJv
dG9jb2wgQU1TQmFnQ29uc3VtZXIgPE5TT2JqZWN0PgorQG9wdGlvbmFsCisrIChBTVNCYWcgKilj
cmVhdGVCYWdGb3JTdWJQcm9maWxlOworQGVuZAorCitAaW50ZXJmYWNlIEFNU0VuZ2FnZW1lbnRS
ZXF1ZXN0IDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgorLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUmVxdWVzdERpY3Rpb25hcnk6KE5TRGljdGlvbmFyeSAqKWRpY3Rpb25hcnkKK0Bwcm9wZXJ0
eSAoTlNfTk9OQVRPTUlDX0lPU09OTFksIHN0cm9uZywgbnVsbGFibGUpIE5TVVJMICpvcmlnaW5h
dGluZ1VSTDsKK0BlbmQKKworQGludGVyZmFjZSBBTVNFbmdhZ2VtZW50UmVzdWx0IDogTlNPYmpl
Y3QgPE5TU2VjdXJlQ29kaW5nPgorQGVuZAorCitAaW50ZXJmYWNlIEFNU1Rhc2sgOiBOU09iamVj
dAorLSAoQk9PTCljYW5jZWw7CitAZW5kCisKKyNlbmRpZiAvLyAhVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXBwbGVNZWRpYVNlcnZpY2VzVUlTUEku
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0FwcGxlTWVkaWFTZXJ2aWNlc1VJ
U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNGQ3Y2M0Zjg1ZDQyMTkwMTRhMzVjZWJiNjJlMjY5MTYxZTM4YTUw
ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0Fw
cGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmgKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBsZU1lZGlhU2VydmljZXNVSS9BTVNVSUVu
Z2FnZW1lbnRUYXNrLmg+CisKKyNlbHNlIC8vIGlmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
CisjaW5jbHVkZSAiQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmgiCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorT0JKQ19DTEFTUyBVSVZpZXdDb250cm9sbGVyOwordHlwZWRlZiBVSVZpZXdDb250
cm9sbGVyIEFNU1VJVmlld0NvbnRyb2xsZXI7CisjZWxzZQorT0JKQ19DTEFTUyBOU1ZpZXdDb250
cm9sbGVyOwordHlwZWRlZiBOU1ZpZXdDb250cm9sbGVyIEFNU1VJVmlld0NvbnRyb2xsZXI7Cisj
ZW5kaWYKKworQGludGVyZmFjZSBBTVNVSUVuZ2FnZW1lbnRUYXNrIDogQU1TVGFzayA8QU1TQmFn
Q29uc3VtZXI+CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZXF1ZXN0OihBTVNFbmdhZ2VtZW50
UmVxdWVzdCAqKXJlcXVlc3QgYmFnOihpZDxBTVNCYWdQcm90b2NvbD4pYmFnIHByZXNlbnRpbmdW
aWV3Q29udHJvbGxlcjooQU1TVUlWaWV3Q29udHJvbGxlciAqKXZpZXdDb250cm9sbGVyOworQHBy
b3BlcnR5IChOU19OT05BVE9NSUNfSU9TT05MWSwgYXNzaWduKSBCT09MIHJlbW90ZVByZXNlbnRh
dGlvbjsKKy0gKEFNU1Byb21pc2U8QU1TRW5nYWdlbWVudFJlc3VsdCAqPiAqKXByZXNlbnRFbmdh
Z2VtZW50OworQGVuZAorCisjZW5kaWYgLy8gIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNl
bmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggNjU4Y2ViYzNjMjg1YWE2ZDg5ODI2OTk1MGJlYmRmZGNm
YjFjOTdjZi4uZGQwODRmZmUwYjYwN2YxMzQzODdlODAzNjM3ZTcyZmMxNzdiYWMxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTMzLDYgKzMzLDEwIEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1WaWV3Q29udHJvbGxlci5oPgorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogT0JKQ19DTEFTUyBOU0FycmF5OwogT0JKQ19DTEFTUyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
bzsKQEAgLTE2MSw5ICsxNjUsOSBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2aXJ0dWFsIFJldGFp
blB0cjxOU0FycmF5PiBhY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
LCBSZXRhaW5QdHI8TlNBcnJheT4gZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIGRlZmF1bHRBY3Rp
b25zOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSB7IH0KLSAgICB2aXJ0dWFsIFVJVmlld0NvbnRyb2xsZXIgKnByZXNl
bnRpbmdWaWV3Q29udHJvbGxlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIHZpcnR1YWwgUGxhdGZvcm1WaWV3Q29udHJvbGxlciAqcHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgTlNE
aWN0aW9uYXJ5ICpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG51bGxwdHI7IH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
VUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCBmNjZhMWJhM2U4OTIyNTNmMTc2MzNjMzQyYzIyOWFk
ZmFhYjIxMzIxLi5jNzM2OWYzNzBhMGVlOWQzNWQ2NzgwOGYzZDAwNjg3YjkxZDU3OTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdh
dGVQcml2YXRlLmgKQEAgLTIyNiw2ICsyMjYsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAj
ZWxzZSAvLyAhVEFSR0VUX09TX0lQSE9ORQogCistIChOU1ZpZXdDb250cm9sbGVyICopX3ByZXNl
bnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CisKIC0gKHZvaWQpX3ByZXBhcmVGb3JJbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Gb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzLjQpKTsKIC0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VJRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAppbmRleCA1Y2JjYTc3YTEwMGY0MDhiYTU2NTQ1YmU5YjA5OWZiZTg4ODQ3NmQ5Li45ZDVlZjI4
NDM0MzViZjBhNjgxY2ZjMGNlMWIxMGIxMjJiNGYwNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbXBvcnQgIkFQ
SUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElVSUNsaWVudC5oIgorI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybVZpZXdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi9XZWFrUHRyLmg+
CkBAIC0xNDgsOCArMTQ5LDggQEAgcHJpdmF0ZToKICNlbmRpZgogICAgICAgICBSZXRhaW5QdHI8
TlNBcnJheT4gYWN0aW9uc0ZvckVsZW1lbnQoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0
YWluUHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rpb25zKSBmaW5hbDsKICAgICAgICAgdm9pZCBkaWRO
b3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgZmluYWw7Ci0gICAg
ICAgIFVJVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpIGZpbmFsOwog
I2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIFBsYXRmb3JtVmlld0NvbnRy
b2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpIGZpbmFsOwogCiAgICAgICAgIE5TRGlj
dGlvbmFyeSAqZGF0YURldGVjdGlvbkNvbnRleHQoKSBmaW5hbDsKIApAQCAtMjQxLDggKzI0Miw4
IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICAgICAgYm9vbCB3ZWJWaWV3QWN0aW9uc0ZvckVsZW1l
bnREZWZhdWx0QWN0aW9ucyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50IDogMTsKLSAgICAgICAgYm9vbCBwcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3IDogMTsKICNlbmRpZgorICAgICAgICBib29sIHByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlckZvcldlYlZpZXcgOiAxOwogICAgICAgICBib29sIGRhdGFEZXRlY3Rpb25Db250ZXh0
Rm9yV2ViVmlldyA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0ltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQgOiAxOwogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQppbmRleCBhMDA0YTE1ZGI5NzExOTI3ZTI1
ODdjNjFiMTdhN2MxOTNjYjBlOGUyLi4xY2Q1ZDBjYzliMzg5YTgzNTI5ZmMxZDViNzRiODIzY2Nh
NTA3M2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVn
YXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0K
QEAgLTE2Miw4ICsxNjIsOCBAQCB2b2lkIFVJRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJ
RGVsZWdhdGU+IGRlbGVnYXRlKQogI2VuZGlmCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d0FjdGlvbnNGb3JFbGVtZW50RGVmYXVsdEFjdGlvbnMgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzphY3Rpb25zRm9yRWxlbWVudDpkZWZhdWx0QWN0aW9u
czopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkTm90SGFuZGxlVGFwQXNDbGlj
a0F0UG9pbnQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9k
cy5wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6
KV07CiAjZW5kaWYKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5wcmVzZW50aW5nVmlld0NvbnRyb2xs
ZXJGb3JXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3By
ZXNlbnRpbmdWaWV3Q29udHJvbGxlckZvcldlYlZpZXc6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhv
ZHMud2ViVmlld0lzTWVkaWFDYXB0dXJlQXV0aG9yaXplZEZvckZyYW1lRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6Y2hlY2tV
c2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJMOm1haW5GcmFtZVVSTDpmcmFtZUlkZW50aWZpZXI6ZGVj
aXNpb25IYW5kbGVyOildIHx8IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmluY2x1ZGVTZW5zaXRpdmVNZWRpYURldmljZURldGFpbHM6KV07CiAKICAgICBt
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3TWVkaWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UgPSBbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzptZWRpYUNhcHR1cmVT
dGF0ZURpZENoYW5nZTopXTsKQEAgLTEzOTIsNyArMTM5Miw5IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
IHBvaW50CiAgICAgW3N0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oZGVsZWdh
dGUpIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgpIGRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2tBdFBvaW50OnBvaW50XTsKIH0KIAotVUlWaWV3Q29udHJvbGxlciAqVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpCisjZW5kaWYgLy8g
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworUGxhdGZvcm1WaWV3Q29udHJvbGxlciAqVUlEZWxlZ2F0
ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29udHJvbGxlcigpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMTQwNyw4ICsxNDA5LDYgQEAg
VUlWaWV3Q29udHJvbGxlciAqVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnByZXNlbnRpbmdWaWV3Q29u
dHJvbGxlcigpCiAgICAgcmV0dXJuIFtzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0
ZT4+KGRlbGVnYXRlKSBfcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzptX3VpRGVs
ZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKV07CiB9CiAKLSNlbmRpZgotCiBOU0RpY3Rpb25h
cnkgKlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkYXRhRGV0ZWN0aW9uQ29udGV4dCgpCiB7CiAgICAg
aWYgKCFtX3VpRGVsZWdhdGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDkxNWI3ZjRjNjQ4ZTJmZTAxOThlZmQxNWI1NWZm
NDUxMTgxYWQ2ZjcuLjZhNTBhMDgxMDMzOTU4NjU4MzlmZmE3ODBlODM1Yjc1ODMzNWZhYmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29h
Lm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCiAjaW1wb3J0
ICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKKyNpbXBv
cnQgIkFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmgiCiAjaW1wb3J0ICJDb2NvYUltYWdlLmgiCiAj
aW1wb3J0ICJDb25uZWN0aW9uLmgiCiAjaW1wb3J0ICJEYXRhRGV0ZWN0aW9uUmVzdWx0LmgiCkBA
IC01MSw2ICs1Miw3IEBACiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlLmgiCiAjaW1wb3J0ICJX
S0Vycm9ySW50ZXJuYWwuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24vTlNVUkxSZXF1ZXN0Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5QU1TVUlSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RyYWdJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0dlb21ldHJ5VXRpbGl0aWVzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hpZ2hsaWdodFZpc2liaWxpdHkuaD4KQEAgLTg4LDYgKzkwLDE0IEBAIFNP
RlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhXZWJDb250ZW50QW5hbHlzaXMpOwogU09GVF9MSU5L
X0NMQVNTKFdlYkNvbnRlbnRBbmFseXNpcywgV2ViRmlsdGVyRXZhbHVhdG9yKTsKICNlbmRpZgog
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCitTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdP
UktfT1BUSU9OQUwoQXBwbGVNZWRpYVNlcnZpY2VzKQorU09GVF9MSU5LX0NMQVNTX09QVElPTkFM
KEFwcGxlTWVkaWFTZXJ2aWNlcywgQU1TRW5nYWdlbWVudFJlcXVlc3QpCisKK1NPRlRfTElOS19Q
UklWQVRFX0ZSQU1FV09SS19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXNVSSkKK1NPRlRfTElO
S19DTEFTU19PUFRJT05BTChBcHBsZU1lZGlhU2VydmljZXNVSSwgQU1TVUlFbmdhZ2VtZW50VGFz
aykKKyNlbmRpZgorCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NI
RUNLX0JBU0UoYXNzZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpKQogI2RlZmluZSBNRVNT
QUdFX0NIRUNLX0NPTVBMRVRJT04oYXNzZXJ0aW9uLCBjb21wbGV0aW9uKSBNRVNTQUdFX0NIRUNL
X0NPTVBMRVRJT05fQkFTRShhc3NlcnRpb24sIHByb2Nlc3MoKS5jb25uZWN0aW9uKCksIGNvbXBs
ZXRpb24pCiAKQEAgLTYyOCw2ICs2MzgsNDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldFVwSGln
aGxpZ2h0c09ic2VydmVyKCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19V
SSkKKwordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oVVJMJiYg
b3JpZ2luYXRpbmdVUkwsIEFwcGxlUGF5QU1TVUlSZXF1ZXN0JiYgcmVxdWVzdCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIGlmICghQXBwbGVNZWRpYVNlcnZpY2VzVUlMaWJyYXJ5KCkpIHsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxsb3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIgKnByZXNlbnRpbmdWaWV3Q29udHJvbGxlciA9
IHVpQ2xpZW50KCkucHJlc2VudGluZ1ZpZXdDb250cm9sbGVyKCk7CisgICAgaWYgKCFwcmVzZW50
aW5nVmlld0NvbnRyb2xsZXIpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RkOjpudWxs
b3B0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYW1zUmVxdWVzdCA9IGFk
b3B0TlMoW2FsbG9jQU1TRW5nYWdlbWVudFJlcXVlc3RJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVz
dERpY3Rpb25hcnk6ZHluYW1pY19vYmpjX2Nhc3Q8TlNEaWN0aW9uYXJ5PihbTlNKU09OU2VyaWFs
aXphdGlvbiBKU09OT2JqZWN0V2l0aERhdGE6W1dURk1vdmUocmVxdWVzdC5lbmdhZ2VtZW50UmVx
dWVzdCkgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddIG9wdGlvbnM6MCBl
cnJvcjpuaWxdKV0pOworICAgIFthbXNSZXF1ZXN0IHNldE9yaWdpbmF0aW5nVVJMOldURk1vdmUo
b3JpZ2luYXRpbmdVUkwpXTsKKworICAgIGF1dG8gYW1zQmFnID0gcmV0YWluUHRyKFtnZXRBTVNV
SUVuZ2FnZW1lbnRUYXNrQ2xhc3MoKSBjcmVhdGVCYWdGb3JTdWJQcm9maWxlXSk7CisKKyAgICBt
X2FwcGxlUGF5QU1TVUlTZXNzaW9uID0gYWRvcHROUyhbYWxsb2NBTVNVSUVuZ2FnZW1lbnRUYXNr
SW5zdGFuY2UoKSBpbml0V2l0aFJlcXVlc3Q6YW1zUmVxdWVzdC5nZXQoKSBiYWc6YW1zQmFnLmdl
dCgpIHByZXNlbnRpbmdWaWV3Q29udHJvbGxlcjpwcmVzZW50aW5nVmlld0NvbnRyb2xsZXJdKTsK
KyAgICBbbV9hcHBsZVBheUFNU1VJU2Vzc2lvbiBzZXRSZW1vdGVQcmVzZW50YXRpb246WUVTXTsK
KworICAgIGF1dG8gYW1zUmVzdWx0ID0gcmV0YWluUHRyKFttX2FwcGxlUGF5QU1TVUlTZXNzaW9u
IHByZXNlbnRFbmdhZ2VtZW50XSk7CisgICAgW2Ftc1Jlc3VsdCBhZGRGaW5pc2hCbG9jazptYWtl
QmxvY2tQdHIoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
IChBTVNFbmdhZ2VtZW50UmVzdWx0ICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKGVycm9yKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihzdGQ6
Om51bGxvcHQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIocmVzdWx0KTsKKyAgICB9KS5nZXQoKV07Cit9CisKK3ZvaWQgV2ViUGFn
ZVByb3h5OjphYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCkKK3sKKyAgICBbc3RkOjpleGNoYW5n
ZShtX2FwcGxlUGF5QU1TVUlTZXNzaW9uLCBudWxscHRyKSBjYW5jZWxdOworfQorCisjZW5kaWYg
Ly8gRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCisKIFZlY3RvcjxTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGU+IFdlYlBhZ2VQcm94eTo6Y3JlYXRlTmV0d29ya0V4dGVuc2lvbnNTYW5kYm94RXh0ZW5z
aW9ucyhXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRklM
VEVSSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA3MGFmNDNm
NDk1MWFmYmY2MTY2NzY1MGRlNGZhMzA2NzA2YTNjZTNmLi4xNTM0NTBlNjhhOTdmM2Q0ZTljYTA2
NWJjZTJiMDc3OTAxMmI0NjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aApAQCAtMjMwLDYgKzIzMCw3IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlckNvcHk7CiB9CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgQU1TVUlFbmdhZ2VtZW50VGFzazsKIE9CSkNfQ0xB
U1MgTlNGaWxlV3JhcHBlcjsKIE9CSkNfQ0xBU1MgTlNNZW51OwogT0JKQ19DTEFTUyBOU1RleHRB
bHRlcm5hdGl2ZXM7CkBAIC01OTMsNiArNTk0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG1vZGVs
RWxlbWVudFByZXZpZXdEaWRPYnRhaW5Db250ZXh0SWQoY29uc3QgV2ViQ29yZTo6RWxlbWVudENv
bnRleHQmLCBjb25zdCBTdHJpbmcmLCB1aW50MzJfdCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShB
UFBMRV9QQVlfQU1TX1VJKQorICAgIHZvaWQgc3RhcnRBcHBsZVBheUFNU1VJU2Vzc2lvbihVUkwm
JiwgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3QmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChzdGQ6Om9wdGlvbmFsPGJvb2w+JiYpPiYmKTsKKyAgICB2b2lkIGFib3J0QXBwbGVQYXlBTVNV
SVNlc3Npb24oKTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgQVBJ
OjpDb250ZXh0TWVudUNsaWVudCYgY29udGV4dE1lbnVDbGllbnQoKSB7IHJldHVybiAqbV9jb250
ZXh0TWVudUNsaWVudDsgfQogICAgIHZvaWQgc2V0Q29udGV4dE1lbnVDbGllbnQoc3RkOjp1bmlx
dWVfcHRyPEFQSTo6Q29udGV4dE1lbnVDbGllbnQ+JiYpOwpAQCAtMjY1Nyw2ICsyNjYzLDEwIEBA
IHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1vZGVsRWxlbWVudENvbnRyb2xsZXI+IG1f
bW9kZWxFbGVtZW50Q29udHJvbGxlcjsKICNlbmRpZgogCisjaWYgRU5BQkxFKEFQUExFX1BBWV9B
TVNfVUkpCisgICAgUmV0YWluUHRyPEFNU1VJRW5nYWdlbWVudFRhc2s+IG1fYXBwbGVQYXlBTVNV
SVNlc3Npb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5PiBtX2NyZWRlbnRpYWxzTWVz
c2VuZ2VyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNTZlOGExZGNlODE4YzYzOTBjYTA2MjJlM2I0NGE1YzFlZDEw
ZWYxMS4uYmEzNzRjMDAyMmY1MmIxNDY0MzZmMmNmMWUzYjNiYzhjNmI4ZTcwMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTkx
LDQgKzU5MSw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogICAgIHJl
cXVlc3RQZXJtaXNzaW9uKHN0cnVjdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4gb3JpZ2luLCBzdHJ1
Y3QgV2ViQ29yZTo6UGVybWlzc2lvbkRlc2NyaXB0b3IgZGVzY3JpcHRvcikgLT4gKGVudW06dWlu
dDhfdCBXZWJDb3JlOjpQZXJtaXNzaW9uU3RhdGUgc3RhdGUpIEFzeW5jCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0FNU19VSSkKKyAgICBTdGFydEFwcGxlUGF5QU1TVUlTZXNzaW9uKFVSTCBvcmln
aW5hdGluZ1VSTCwgc3RydWN0IFdlYkNvcmU6OkFwcGxlUGF5QU1TVUlSZXF1ZXN0IHJlcXVlc3Qp
IC0+IChzdGQ6Om9wdGlvbmFsPGJvb2w+IHJlc3VsdCkgQXN5bmMKKyAgICBBYm9ydEFwcGxlUGF5
QU1TVUlTZXNzaW9uKCkKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYzViNTliOGRiNTYzM2ZkZGE3YTZhNjIxNWI3NmQ1
YTgwMmU5MzFiYy4uM2I0M2RkNmFmZjc4ZTZkZjVmOThhMDAzYzA2MTNhMzEzZGI2MDAxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDY2LDYgKzE0NjYsOCBAQAogCQk5M0U2QTRFRTFCQzVERDM5MDBGOEEwRTcgLyogX1dLSGl0VGVz
dFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNFNkE0RUQxQkM1REQzOTAwRjhBMEU3IC8qIF9XS0hpdFRlc3RSZXN1bHQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Y1NDlCNDFFMzE3NEI3
MDAwRTcyMzkgLyogV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjU0OUIzMUUzMTc0QjcwMDBFNzIzOSAvKiBX
S1NuYXBzaG90Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1
YmxpYywgKTsgfTsgfTsKIAkJOTUwRjI4ODAyNTI0MTRFQTAwQjc0RjFDIC8qIFdLTW91c2VEZXZp
Y2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTUwRjI4N0UyNTI0MTRFOTAwQjc0RjFDIC8qIFdLTW91c2VEZXZpY2VPYnNlcnZlci5oICov
OyB9OworCQk5NTY1MDgzOTI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJ
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTY1MDgz
NzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi87IH07CisJCTk1
NjUwODNBMjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1lZGlhU2VydmljZXNVSVNQSS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2NTA4MzgyNkQ4N0Ey
QjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggKi87IH07CiAJCTk1OTM2NzVG
MjUyRTVFMzEwMEQzRjBBMCAvKiBXS1N0eWx1c0RldmljZU9ic2VydmVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTkzNjc1RDI1MkU1RTMwMDBEM0Yw
QTAgLyogV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oICovOyB9OwogCQk5NUM5NDM5MTI1MjNDMEQw
MDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NUM5NDM5MDI1MjNDMEQwMDA1NEYzRDUgLyogQmFzZUJvYXJkU1BJ
LmggKi87IH07CiAJCTk5MDM2QUUyMjNBOTQ5Q0YwMDAwQjA2QSAvKiBfV0tJbnNwZWN0b3JEZWJ1
Z2dhYmxlSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTAzNkFFMTIzQTk0OUNFMDAwMEIwNkEgLyogX1dLSW5zcGVjdG9yRGVidWdn
YWJsZUluZm9JbnRlcm5hbC5oICovOyB9OwpAQCAtNDg3Nyw2ICs0ODc5LDggQEAKIAkJOTNGNTQ5
QjUxRTMxNzREQTAwMEU3MjM5IC8qIFdLU25hcHNob3RDb25maWd1cmF0aW9uLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdFMjUyNDE0RTkwMEI3NEYx
QyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gV0tNb3VzZURldmljZU9ic2VydmVyLmg7IHBhdGggPSBpb3MvV0tNb3VzZURldmljZU9i
c2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEYyODdGMjUyNDE0RUEw
MEI3NEYxQyAvKiBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXS01vdXNlRGV2aWNlT2JzZXJ2ZXIubW07IHBhdGggPSBpb3Mv
V0tNb3VzZURldmljZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTY1MDgzNzI2RDg3QTJCMDBFMTVDQjcgLyogQXBwbGVNZWRpYVNlcnZpY2VzU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlTWVkaWFTZXJ2aWNlc1NQSS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwbGVNZWRpYVNlcnZpY2VzVUlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTU5MzY3NUQyNTJFNUUzMDAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tTdHlsdXNEZXZpY2VPYnNlcnZlci5oOyBw
YXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTU5MzY3NUUyNTJFNUUzMTAwRDNGMEEwIC8qIFdLU3R5bHVzRGV2aWNlT2JzZXJ2
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS1N0eWx1c0Rl
dmljZU9ic2VydmVyLm1tOyBwYXRoID0gaW9zL1dLU3R5bHVzRGV2aWNlT2JzZXJ2ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1Qzk0MzkwMjUyM0MwRDAwMDU0RjNENSAvKiBC
YXNlQm9hcmRTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFzZUJvYXJk
U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03Nzg3LDYgKzc3OTEsOCBAQAog
CQkJY2hpbGRyZW4gPSAoCiAJCQkJRTNDQUFBNDMyNDEzMjc4QTAwQ0VEMkUyIC8qIEFjY2Vzc2li
aWxpdHlTdXBwb3J0U1BJLmggKi8sCiAJCQkJNTcyRUJCREMyNTM5MjE4MTAwMDU1MkIzIC8qIEFw
cEF0dGVzdFNQSS5oICovLAorCQkJCTk1NjUwODM3MjZEODdBMkIwMEUxNUNCNyAvKiBBcHBsZU1l
ZGlhU2VydmljZXNTUEkuaCAqLywKKwkJCQk5NTY1MDgzODI2RDg3QTJCMDBFMTVDQjcgLyogQXBw
bGVNZWRpYVNlcnZpY2VzVUlTUEkuaCAqLywKIAkJCQk1N0ZBQkIwRTI1ODE3Q0YwMDA1OURDOTUg
LyogQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCAqLywKIAkJCQkxQTU3MDUxMDFCRTQx
MEU1MDA4NzRBRjEgLyogQmxvY2tTUEkuaCAqLywKIAkJCQlFNTA2MjA5MTI1NDIxMDIwMDBDNDMw
OTEgLyogQ29udGFjdHNVSVNQSS5oICovLApAQCAtMTE4NjQsNiArMTE4NzAsOCBAQAogCQkJCTU3
MkVCQkREMjUzOTIxODEwMDA1NTJCMyAvKiBBcHBBdHRlc3RTUEkuaCBpbiBIZWFkZXJzICovLAog
CQkJCTA3NDg3OUI5MjM3M0E5MDkwMEY1Njc4RSAvKiBBcHBLaXRTb2Z0TGluay5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjQ4RDJBODUyMTU4M0E3RTAwQzY3NTJCIC8qIEFwcEtpdFNQSS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJOTU2NTA4MzkyNkQ4N0EyQjAwRTE1Q0I3IC8qIEFwcGxlTWVkaWFTZXJ2
aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU2NTA4M0EyNkQ4N0EyQjAwRTE1Q0I3IC8q
IEFwcGxlTWVkaWFTZXJ2aWNlc1VJU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNEVDOTRFMzIz
NTZDQzU3MDAwQkI2MTQgLyogQXBwbGljYXRpb25TZXJ2aWNlc1NQSS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFENEMxOTMxQjM5RjMzMjAwQUJDMjhFIC8qIEFwcGxpY2F0aW9uU3RhdGVUcmFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTMxMDJCRDI2ODNGM0QwMDAyQkI4ODUgLyogQXBwUHJp
dmFjeVJlcG9ydC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDBj
OGRhNjY1NzcwYmQ0NzNhZWFhYmFiM2YxNmFmNjAxNjBiMjc1MGYuLjI4NjgxNWE4OGQzYzNkMzM2
M2U0YjUyMjljYWE2OTVmY2U1MDU4MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC05MSw2
ICs5MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1RleHRJbmRpY2F0b3IuaD4KIAorI2lmIEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaD4KKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKSkKICNpbmNsdWRlICJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmgiCiAjZW5k
aWYKQEAgLTE1MzQsNCArMTUzOCwxOCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6bW9kZWxFbGVt
ZW50RGlkQ3JlYXRlUHJldmlldyhXZWJDb3JlOjpIVE1MTW9kZWxFbGVtZW50JiBlbAogfQogI2Vu
ZGlmCiAKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKwordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnN0YXJ0QXBwbGVQYXlBTVNVSVNlc3Npb24oY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwg
Y29uc3QgQXBwbGVQYXlBTVNVSVJlcXVlc3QmIHJlcXVlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoc3RkOjpvcHRpb25hbDxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBt
X3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlN0YXJ0QXBw
bGVQYXlBTVNVSVNlc3Npb24ob3JpZ2luYXRpbmdVUkwsIHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphYm9ydEFwcGxlUGF5
QU1TVUlTZXNzaW9uKCkKK3sKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpBYm9ydEFwcGxlUGF5QU1TVUlTZXNzaW9uKCkpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEFQ
UExFX1BBWV9BTVNfVUkpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IGI5OTM4ZjJiZmE2MTAwYjI5NjIzY2QwMzA1Y2UwYjE0YzQzMjIxNTguLjZjY2EyZDBh
ODhkNjhjNDg4YThiZWQxMmUzYTliYjE4OWViNzk2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTQ2Miw2ICs0NjIsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1vZGVsRWxlbWVudERpZENyZWF0
ZVByZXZpZXcoV2ViQ29yZTo6SFRNTE1vZGVsRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoQVBQTEVfUEFZX0FNU19VSSkKKyAgICB2b2lkIHN0YXJ0QXBwbGVQYXlBTVNV
SVNlc3Npb24oY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVJlcXVlc3Qm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Ym9vbD4mJik+JiYpIGZpbmFs
OworICAgIHZvaWQgYWJvcnRBcHBsZVBheUFNU1VJU2Vzc2lvbigpIGZpbmFsOworI2VuZGlmCisK
ICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFy
IHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9jYWNoZWRNYWluRnJhbWVIYXNWZXJ0aWNh
bFNjcm9sbGJhciB7IGZhbHNlIH07CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0MDNlN2U3NmI5YWQzMmQ5YzQ1MGUzYjdl
MTllOWE3NTMyMDlmNTg5Li44MjcxMDJiYzI0YjE3MWFhZDQ5YTljZThhOTAxMGM2Y2M4ZDMxYTYx
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMDggIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIEFkZCBhIG5ldyBwYXlt
ZW50IG1ldGhvZCBmb3Igc2hvd2luZyBBTVMgVUkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkw
MjQyMjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFtcy11aS9QYXltZW50UmVxdWVzdC5odHRwcy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJl
cXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKworICAgICAgICAqIFRlc3RFeHBlY3Rh
dGlvbnM6CisKIDIwMjEtMTEtMDggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQ29udmVydCBzb21lIHRlc3RzIHRoYXQgdXNlIGV2ZW50U2VuZGVyLmV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygpIHRvIHNl
bmRFdmVudFN0cmVhbSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5YTA3OWE4MzJiOTBlYzg0MGY4
NzMzZmE2OGU1MmJiYTNkMGZjMmNmLi5lZDg5NzlhZDQ2ZjM5ZWRlZDA5MjEzYjJjNmQ5ZDMxN2U2
MDU1ZmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTI2Myw2ICsyNjMsNyBAQCBmYXN0L2Nzcy9n
ZXRDb21wdXRlZFN0eWxlL2NvbXB1dGVkLXN0eWxlLWFwcGxlLXBheS1idXR0b24uaHRtbCBbIFNr
aXAgXQogZmFzdC9jc3Mvd2Via2l0LW5hbWVkLWltYWdlL2FwcGxlLXBheS1sb2dvLWJsYWNrIFsg
U2tpcCBdCiBmYXN0L2Nzcy93ZWJraXQtbmFtZWQtaW1hZ2UvYXBwbGUtcGF5LWxvZ28td2hpdGUg
WyBTa2lwIF0KIGh0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LyBbIFNraXAgXQoraHR0cC90ZXN0cy9z
c2wvYXBwbGVwYXktYW1zLXVpLyBbIFNraXAgXQogCiAjIE9ubHkgV0syIGFsbG93cyB1bmNvbnN0
cmFpbmVkIHNjcm9sbGluZwogZmFzdC92aXN1YWwtdmlld3BvcnQvcnViYmVyYmFuZGluZy12aWV3
cG9ydC1yZWN0cy5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1
ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTk5NzNjYTQwZjVkMDRhNTllMTIx
YzJlMGY5NzAzNzE0Mjc4YmMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zc2wvYXBwbGVwYXktYW1zLXVpL1BheW1lbnRSZXF1ZXN0Lmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQxIEBACitUZXN0IGJhc2ljIGNyZWF0aW9uIG9mIGEgUGF5bWVudFJlcXVl
c3Qgb2JqZWN0IHdpdGggYW4gQXBwbGUgUGF5IEFNUyBVSSBwYXltZW50IG1ldGhvZC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3RpbmcgUGF5bWVudFJlcXVlc3QKKworUEFT
UyBuZXcgUGF5bWVudFJlcXVlc3QobnVsbCwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVmFsdWUgaXMgbm90IGEgc2VxdWVuY2UuCitQQVNTIG5ldyBQYXltZW50UmVxdWVzdChbdmFs
aWRQYXltZW50TWV0aG9kKCldLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorCitUZXN0aW5nIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1
ZXN0CisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IGRlbGV0
ZSBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QKK1BBU1MgbmV3IFBheW1lbnRS
ZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJl
cXVlc3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3Qu
CisKK1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRN
ZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9ICcnCitQQVNTIG5ldyBQYXltZW50UmVxdWVz
dChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTWVtYmVyIEFwcGxlUGF5QU1TVUlSZXF1ZXN0LmVuZ2FnZW1lbnRSZXF1ZXN0
IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgSlNPTi1zZXJpYWxpemFibGUgb2JqZWN0LgorCitT
RVRVUDogcGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9k
LmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSAnaW52YWxpZCcKK1BBU1MgbmV3IFBheW1lbnRSZXF1
ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVl
c3QgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisK
K1NFVFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRo
b2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IG51bGwKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0
KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3Qg
aXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisKK1NF
VFVQOiBwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2Qu
ZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IDcKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0KFtwYXlt
ZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRpb24gVHlwZUVy
cm9yOiBNZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QgaXMgcmVx
dWlyZWQgYW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisKK1NFVFVQOiBw
YXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5l
bmdhZ2VtZW50UmVxdWVzdCA9IFsgXQorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRN
ZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE1lbWJlciBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVxdWVzdCBpcyByZXF1aXJl
ZCBhbmQgbXVzdCBiZSBhIEpTT04tc2VyaWFsaXphYmxlIG9iamVjdC4KKworU0VUVVA6IHBheW1l
bnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVudE1ldGhvZC5kYXRhLmVuZ2Fn
ZW1lbnRSZXF1ZXN0ID0gZmFsc2UKK1BBU1MgbmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0
aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBN
ZW1iZXIgQXBwbGVQYXlBTVNVSVJlcXVlc3QuZW5nYWdlbWVudFJlcXVlc3QgaXMgcmVxdWlyZWQg
YW5kIG11c3QgYmUgYSBKU09OLXNlcmlhbGl6YWJsZSBvYmplY3QuCisKK1NFVFVQOiBwYXltZW50
TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2Vt
ZW50UmVxdWVzdCA9IHsgfQorUEFTUyBuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2Rd
LCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorCisKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJl
cXVlc3QuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL2FwcGxlcGF5LWFt
cy11aS9QYXltZW50UmVxdWVzdC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMGVjMGZkNjUxNDgz
ZDExZGY4ZmRhZmM3ZDAwZWZhMzg4YjQxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NzbC9hcHBsZXBheS1hbXMtdWkvUGF5bWVudFJlcXVlc3QuaHR0cHMuaHRt
bApAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVz
dCBiYXNpYyBjcmVhdGlvbiBvZiBhIFBheW1lbnRSZXF1ZXN0IG9iamVjdCB3aXRoIGFuIEFwcGxl
IFBheSBBTVMgVUkgcGF5bWVudCBtZXRob2QuIik7CisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworZnVuY3Rpb24gdmFsaWRQYXltZW50TWV0aG9kKCkgeworICAgIHJldHVybiB7Cisg
ICAgICAgIHN1cHBvcnRlZE1ldGhvZHM6ICdodHRwczovL2FwcGxlLmNvbS9hbXMtdWknLAorICAg
ICAgICBkYXRhOiB7CisgICAgICAgICAgICBlbmdhZ2VtZW50UmVxdWVzdDogeyB2YWx1ZTogNDIg
fSwKKyAgICAgICAgfSwKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHZhbGlkUGF5bWVudERldGFpbHMo
KSB7CisgICAgcmV0dXJuIHsKKyAgICAgICAgdG90YWw6IHsgbGFiZWw6ICdZb3VyIGxhYmVsJywg
YW1vdW50OiB7IGN1cnJlbmN5OiAnVVNEJywgdmFsdWU6ICcxMC4wMCcgfSB9LAorICAgIH0KK30K
KworZnVuY3Rpb24gbG9nQW5kU2hvdWxkVGhyb3coc2V0dXAsIHRlc3QpIHsKKyAgICByZXR1cm4g
YWN0aXZhdGVUaGVuKCgpID0+IHsKKyAgICAgICAgZGVidWcoIlNFVFVQOiAiICsgc2V0dXApOwor
ICAgICAgICBldmFsKHNldHVwKTsKKyAgICAgICAgc2hvdWxkVGhyb3codGVzdCk7CisgICAgICAg
IGRlYnVnKCIiKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gbG9nQW5kU2hvdWxkTm90VGhyb3co
c2V0dXAsIHRlc3QpIHsKKyAgICByZXR1cm4gYWN0aXZhdGVUaGVuKCgpID0+IHsKKyAgICAgICAg
ZGVidWcoIlNFVFVQOiAiICsgc2V0dXApOworICAgICAgICBldmFsKHNldHVwKTsKKyAgICAgICAg
c2hvdWxkTm90VGhyb3codGVzdCk7CisgICAgICAgIGRlYnVnKCIiKTsKKyAgICB9KTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gZ28oKSB7CisgICAgZGVidWcoIlRlc3RpbmcgUGF5bWVudFJlcXVlc3Qi
KQorICAgIGRlYnVnKCIiKQorICAgIHNob3VsZFRocm93KCJuZXcgUGF5bWVudFJlcXVlc3QobnVs
bCwgbnVsbCkiKQorICAgIHNob3VsZE5vdFRocm93KCJuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlk
UGF5bWVudE1ldGhvZCgpXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgZGVidWcoIiIp
CisKKyAgICBkZWJ1ZygiVGVzdGluZyBBcHBsZVBheUFNU1VJUmVxdWVzdC5lbmdhZ2VtZW50UmVx
dWVzdCIpCisgICAgZGVidWcoIiIpCisgICAgYXdhaXQgbG9nQW5kU2hvdWxkVGhyb3coInBheW1l
bnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgZGVsZXRlIHBheW1lbnRNZXRob2QuZGF0
YS5lbmdhZ2VtZW50UmVxdWVzdCIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2Rd
LCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJvdygi
cGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEu
ZW5nYWdlbWVudFJlcXVlc3QgPSAnJyIsICJuZXcgUGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRo
b2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBsb2dBbmRTaG91bGRUaHJv
dygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRh
dGEuZW5nYWdlbWVudFJlcXVlc3QgPSAnaW52YWxpZCciLCAibmV3IFBheW1lbnRSZXF1ZXN0KFtw
YXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWlscygpKSIpCisgICAgYXdhaXQgbG9nQW5k
U2hvdWxkVGhyb3coInBheW1lbnRNZXRob2QgPSB2YWxpZFBheW1lbnRNZXRob2QoKTsgcGF5bWVu
dE1ldGhvZC5kYXRhLmVuZ2FnZW1lbnRSZXF1ZXN0ID0gbnVsbCIsICJuZXcgUGF5bWVudFJlcXVl
c3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBhd2FpdCBs
b2dBbmRTaG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhvZCgpOyBw
YXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSA3IiwgIm5ldyBQYXltZW50UmVx
dWVzdChbcGF5bWVudE1ldGhvZF0sIHZhbGlkUGF5bWVudERldGFpbHMoKSkiKQorICAgIGF3YWl0
IGxvZ0FuZFNob3VsZFRocm93KCJwYXltZW50TWV0aG9kID0gdmFsaWRQYXltZW50TWV0aG9kKCk7
IHBheW1lbnRNZXRob2QuZGF0YS5lbmdhZ2VtZW50UmVxdWVzdCA9IFsgXSIsICJuZXcgUGF5bWVu
dFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikKKyAgICBh
d2FpdCBsb2dBbmRTaG91bGRUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5bWVudE1ldGhv
ZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSBmYWxzZSIsICJuZXcg
UGF5bWVudFJlcXVlc3QoW3BheW1lbnRNZXRob2RdLCB2YWxpZFBheW1lbnREZXRhaWxzKCkpIikK
KyAgICBhd2FpdCBsb2dBbmRTaG91bGROb3RUaHJvdygicGF5bWVudE1ldGhvZCA9IHZhbGlkUGF5
bWVudE1ldGhvZCgpOyBwYXltZW50TWV0aG9kLmRhdGEuZW5nYWdlbWVudFJlcXVlc3QgPSB7IH0i
LCAibmV3IFBheW1lbnRSZXF1ZXN0KFtwYXltZW50TWV0aG9kXSwgdmFsaWRQYXltZW50RGV0YWls
cygpKSIpCisgICAgZGVidWcoIiIpCisKKyAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0
b24iKS5yZW1vdmUoKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitmdW5jdGlvbiBjbGlj
a0VsZW1lbnQoZWxlbWVudCkgeworICAgIGxldCB4ID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgMjsK
KyAgICBsZXQgeSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgMjsKKworICAgIHZhciBzdXBwb3J0c1Rv
dWNoRXZlbnRzID0gIlRvdWNoRXZlbnQiIGluIHdpbmRvdzsKKyAgICBpZiAoc3VwcG9ydHNUb3Vj
aEV2ZW50cyAmJiB3aW5kb3cudGVzdFJ1bm5lciAmJiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KSB7
CisgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYChmdW5jdGlvbigpIHsgdWlDb250cm9s
bGVyLnNpbmdsZVRhcEF0UG9pbnQoJHt4fSwgJHt5fSwgZnVuY3Rpb24oKSB7IH0pOyB9KSgpO2As
IGZ1bmN0aW9uICgpIHsgfSk7CisgICAgfSBlbHNlIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgfQor
fQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgY2xpY2tFbGVtZW50KGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpKTsKK30KKworPC9zY3JpcHQ+Cis8YnV0dG9uIG9u
Y2xpY2s9J2dvKCknPkdvPC9idXR0b24+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>