<?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>50036</bug_id>
          
          <creation_ts>2010-11-24 12:52:43 -0800</creation_ts>
          <short_desc>update run-webkit-httpd to be able to launch Apache2.2 in a MSYS environment</short_desc>
          <delta_ts>2011-01-31 14:33:21 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>sccameron</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aroben</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>313427</commentid>
    <comment_count>0</comment_count>
    <who name="">sccameron</who>
    <bug_when>2010-11-24 12:52:43 -0800</bug_when>
    <thetext>I&apos;d like to propose adding functionality of running an HTTPD service via run-webkit-httpd in an MSYS environment.

This would require that the user installs the Win32 Binary including OpenSSL from http://httpd.apache.org/download.cgi#apache22.

Apache2.2 for Win32 does not come with PHP5 modules.  The loading of these modules will therefore be disabled in the Apache2.2 configuration that I propose.  They could however be installed separately from http://windows.php.net/download/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313428</commentid>
    <comment_count>1</comment_count>
      <attachid>74785</attachid>
    <who name="">sccameron</who>
    <bug_when>2010-11-24 12:56:06 -0800</bug_when>
    <thetext>Created attachment 74785
Added httpd configuration file and modification to run Apache2.2 in MSYS environment

NOTE: The apache2-msys-httpd.conf has been merged with apache2-httpd.conf.
The diff&lt; ServerRoot &quot;/usr&quot;
---
&gt; ServerRoot &quot;C:/Program Files/Apache Software Foundation/Apache2.2&quot;
68c68
&lt; LockFile &quot;/tmp/WebKit/httpd.lock&quot;
---
&gt; #LockFile &quot;/tmp/WebKit/httpd.lock&quot;
121,122c121,122
&lt; MinSpareServers 1
&lt; MaxSpareServers 5
---
&gt; #MinSpareServers 1
&gt; #MaxSpareServers 5
128c128
&lt; StartServers 1
---
&gt; #StartServers 1
137c137
&lt; MaxClients 150
---
&gt; #MaxClients 150
153c153
&lt; MaxRequestsPerChild 100000
---
&gt; #MaxRequestsPerChild 100000
169,171c169,171
&lt; Listen [::1]:8000
&lt; Listen [::1]:8080
&lt; Listen [::1]:8443
---
&gt; #Listen [::1]:8000
&gt; #Listen [::1]:8080
&gt; #Listen [::1]:8443
189,251c189,252

With the addition of some differences in modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320786</commentid>
    <comment_count>2</comment_count>
      <attachid>74785</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-12 02:39:38 -0800</bug_when>
    <thetext>Comment on attachment 74785
Added httpd configuration file and modification to run Apache2.2 in MSYS environment

The madness must top!  Yet another copy/paste httpd.conf :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320787</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-12 02:40:20 -0800</bug_when>
    <thetext>Also, I thougth the world had moved to new-run-webkit-httpd?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329002</commentid>
    <comment_count>4</comment_count>
      <attachid>77891</attachid>
    <who name="">sccameron</who>
    <bug_when>2011-01-04 08:25:55 -0800</bug_when>
    <thetext>Created attachment 77891
Same patch with the addition of ChangeLogs and moved from WebKitTools/ to Tools/

This is the same patch with the addition of Tools/ChangeLog and LayoutTests/ChangeLog files.
Also, the patch has been moved from WebKitTools/ to Tools/ to match recent changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342794</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-01-31 13:54:16 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 74785 [details])
&gt; The madness must top!  Yet another copy/paste httpd.conf :(

The httpd.conf file included in the patch consists of some Windows-specific changes related to running run-webkit-httpd from within the MinGW command prompt. These changes include changing the location of the ServerRoot, and the location of Apache2 modules (from libexec/apache2/ to modules/). We were unclear how to change such settings using the command line and/or use Windows junctions effectively.

We should look to try to extract the common bits from these Apache configuration file into shared files. I suggest we do such refactoring in a separate bug.

If you have any additional ideas/suggestions on this issue, we would appreciate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342801</commentid>
    <comment_count>6</comment_count>
      <attachid>77891</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-01-31 14:00:27 -0800</bug_when>
    <thetext>Comment on attachment 77891
Same patch with the addition of ChangeLogs and moved from WebKitTools/ to Tools/

View in context: https://bugs.webkit.org/attachment.cgi?id=77891&amp;action=review

Looks good to me.

&gt; Tools/Scripts/run-webkit-httpd:5
&gt; +# Copyright (C) Research In Motion Limited 2010. All rights reserved.

Nit: 2010 should be 2011.

&gt; Tools/Scripts/webkitperl/httpd.pm:4
&gt; +# Copyright (C) Research In Motion Limited 2010. All rights reserved.

Ditto.

&gt; Tools/Scripts/webkitperl/httpd.pm:82
&gt; +        $httpdPath = &quot;/c/program\ files/apache\ software\ foundation/apache2.2/bin/httpd.exe&quot;;

It would be nicer if we could write this in such a way that we didn&apos;t need to escape the space characters in the path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342806</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-01-31 14:05:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Also, I thougth the world had moved to new-run-webkit-httpd?

Not yet. It&apos;s probably best to address such a transition on webkit-dev.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342816</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-01-31 14:33:21 -0800</bug_when>
    <thetext>Committed r77161: &lt;http://trac.webkit.org/changeset/77161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74785</attachid>
            <date>2010-11-24 12:56:06 -0800</date>
            <delta_ts>2011-01-04 08:25:55 -0800</delta_ts>
            <desc>Added httpd configuration file and modification to run Apache2.2 in MSYS environment</desc>
            <filename>apache2-msys.patch</filename>
            <type>text/plain</type>
            <size>32101</size>
            <attacher>sccameron</attacher>
            
              <data encoding="base64">RnJvbSAxNzhjNTc3NWYxYWI2ZTA4YzM2NjJjMDdlYjg3NWYwMGMzMDE4YzBkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTY290dCBDYW1lcm9uIDxzY2NhbWVyb25AcmltLmNvbT4KRGF0
ZTogVHVlLCAyMyBOb3YgMjAxMCAxMDoyMDozOSAtMDUwMApTdWJqZWN0OiBbUEFUQ0hdIDIwMTAt
MTEtMjMgU2NvdHQgQ2FtZXJvbiA8c2NjYW1lcm9uQHJpbS5jb20+CgogICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKICAgICAgICB1cGRhdGUgcnVuLXdlYmtpdC1odHRwZCB0byBi
ZSBhYmxlIHRvIGxhdW5jaCBBcGFjaGUyLjIgaW4gYSBNU1lTIGVudmlyb25tZW50CiAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwMDM2CgogICAgICAgIFRo
aXMgd2lsbCBhZGQgYW4gQXBhY2hlMi4yIGNvbmZpZ3VyYXRpb24gZmlsZSBhbmQgbW9kaWZpZXMg
c2NyaXB0cyB0byBhbGxvdwogICAgICAgIHJ1bm5pbmcgYW4gaHR0cGQgc2VydmVyIGluIGFuIE1T
WVMgZW52aXJvbm1lbnQuCgogICAgICAgIFRoZSBkZWZhdWx0IEFwYWNoZTIuMiBpbnN0YWxsYXRp
b24gcGF0aCBoYXMgYmVlbiBwcmVzZXJ2ZWQgYW5kIFBIUDUgbW9kdWxlcyBkaXNzYWJsZWQKICAg
ICAgICBpbiBvcmRlciB0byBhbGxvdyBmb3Igc2ltcGxlIGluc3RhbGxhdGlvbi9leGVjdXRpb24u
ICBTaW1wbHkgaW5zdGFsbCB0aGUgbGF0ZXN0CiAgICAgICAgQXBhY2hlMi4yIHZlcnNpb24gd2l0
aCBPcGVuU1NMIGZyb20gaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG93bmxvYWQuY2dpI2FwYWNo
ZTIyIHRvCiAgICAgICAgYmUgYWJsZSB0byBleGVjdXRlIHJ1bi13ZWJraXQtaHR0cGQuCgogICAg
ICAgICogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2h0dHBkLnBtOgogICAgICAgICog
V2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LWh0dHBkOgogICAgICAgICogTGF5b3V0VGVz
dHMvaHR0cC9jb25mL2FwYWNoZTItbXN5cy1odHRwZC5jb25mOiBhZGRlZAotLS0KIExheW91dFRl
c3RzL2h0dHAvY29uZi9hcGFjaGUyLW1zeXMtaHR0cGQuY29uZiB8ICA3MDkgKysrKysrKysrKysr
KysrKysrKysrKysrKwogV2ViS2l0VG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LWh0dHBkICAgICAg
ICAgIHwgICAxMiArLQogV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2h0dHBkLnBtICAg
ICAgIHwgICAyNSArLQogMyBmaWxlcyBjaGFuZ2VkLCA3MzkgaW5zZXJ0aW9ucygrKSwgNyBkZWxl
dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL2NvbmYvYXBhY2hl
Mi1tc3lzLWh0dHBkLmNvbmYKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL2NvbmYvYXBh
Y2hlMi1tc3lzLWh0dHBkLmNvbmYgYi9MYXlvdXRUZXN0cy9odHRwL2NvbmYvYXBhY2hlMi1tc3lz
LWh0dHBkLmNvbmYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWIxNDk5Mgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvY29uZi9hcGFjaGUyLW1zeXMtaHR0
cGQuY29uZgpAQCAtMCwwICsxLDcwOSBAQAorIyMKKyMjIGh0dHBkLmNvbmYgLS0gQXBhY2hlIEhU
VFAgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZQorIyMKKworIworIyBCYXNlZCB1cG9uIHRoZSBO
Q1NBIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGVzIG9yaWdpbmFsbHkgYnkgUm9iIE1jQ29vbC4K
KyMKKyMgVGhpcyBpcyB0aGUgbWFpbiBBcGFjaGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gZmlsZS4g
IEl0IGNvbnRhaW5zIHRoZQorIyBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgdGhhdCBnaXZlIHRo
ZSBzZXJ2ZXIgaXRzIGluc3RydWN0aW9ucy4KKyMgU2VlIDxVUkw6aHR0cDovL2h0dHBkLmFwYWNo
ZS5vcmcvZG9jcy8+IGZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dAorIyB0aGUgZGlyZWN0
aXZlcy4KKyMKKyMgRG8gTk9UIHNpbXBseSByZWFkIHRoZSBpbnN0cnVjdGlvbnMgaW4gaGVyZSB3
aXRob3V0IHVuZGVyc3RhbmRpbmcKKyMgd2hhdCB0aGV5IGRvLiAgVGhleSdyZSBoZXJlIG9ubHkg
YXMgaGludHMgb3IgcmVtaW5kZXJzLiAgSWYgeW91IGFyZSB1bnN1cmUKKyMgY29uc3VsdCB0aGUg
b25saW5lIGRvY3MuIFlvdSBoYXZlIGJlZW4gd2FybmVkLiAgCisjCisjIEFmdGVyIHRoaXMgZmls
ZSBpcyBwcm9jZXNzZWQsIHRoZSBzZXJ2ZXIgd2lsbCBsb29rIGZvciBhbmQgcHJvY2VzcworIyAv
cHJpdmF0ZS9ldGMvYXBhY2hlMi9zcm0uY29uZiBhbmQgdGhlbiAvcHJpdmF0ZS9ldGMvYXBhY2hl
Mi9hY2Nlc3MuY29uZgorIyB1bmxlc3MgeW91IGhhdmUgb3ZlcnJpZGRlbiB0aGVzZSB3aXRoIFJl
c291cmNlQ29uZmlnIGFuZC9vcgorIyBBY2Nlc3NDb25maWcgZGlyZWN0aXZlcyBoZXJlLgorIwor
IyBUaGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGFyZSBncm91cGVkIGludG8gdGhyZWUgYmFz
aWMgc2VjdGlvbnM6CisjICAxLiBEaXJlY3RpdmVzIHRoYXQgY29udHJvbCB0aGUgb3BlcmF0aW9u
IG9mIHRoZSBBcGFjaGUgc2VydmVyIHByb2Nlc3MgYXMgYQorIyAgICAgd2hvbGUgKHRoZSAnZ2xv
YmFsIGVudmlyb25tZW50JykuCisjICAyLiBEaXJlY3RpdmVzIHRoYXQgZGVmaW5lIHRoZSBwYXJh
bWV0ZXJzIG9mIHRoZSAnbWFpbicgb3IgJ2RlZmF1bHQnIHNlcnZlciwKKyMgICAgIHdoaWNoIHJl
c3BvbmRzIHRvIHJlcXVlc3RzIHRoYXQgYXJlbid0IGhhbmRsZWQgYnkgYSB2aXJ0dWFsIGhvc3Qu
CisjICAgICBUaGVzZSBkaXJlY3RpdmVzIGFsc28gcHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3Ig
dGhlIHNldHRpbmdzCisjICAgICBvZiBhbGwgdmlydHVhbCBob3N0cy4KKyMgIDMuIFNldHRpbmdz
IGZvciB2aXJ0dWFsIGhvc3RzLCB3aGljaCBhbGxvdyBXZWIgcmVxdWVzdHMgdG8gYmUgc2VudCB0
bworIyAgICAgZGlmZmVyZW50IElQIGFkZHJlc3NlcyBvciBob3N0bmFtZXMgYW5kIGhhdmUgdGhl
bSBoYW5kbGVkIGJ5IHRoZQorIyAgICAgc2FtZSBBcGFjaGUgc2VydmVyIHByb2Nlc3MuCisjCisj
IENvbmZpZ3VyYXRpb24gYW5kIGxvZ2ZpbGUgbmFtZXM6IElmIHRoZSBmaWxlbmFtZXMgeW91IHNw
ZWNpZnkgZm9yIG1hbnkKKyMgb2YgdGhlIHNlcnZlcidzIGNvbnRyb2wgZmlsZXMgYmVnaW4gd2l0
aCAiLyIgKG9yICJkcml2ZTovIiBmb3IgV2luMzIpLCB0aGUKKyMgc2VydmVyIHdpbGwgdXNlIHRo
YXQgZXhwbGljaXQgcGF0aC4gIElmIHRoZSBmaWxlbmFtZXMgZG8gKm5vdCogYmVnaW4KKyMgd2l0
aCAiLyIsIHRoZSB2YWx1ZSBvZiBTZXJ2ZXJSb290IGlzIHByZXBlbmRlZCAtLSBzbyAibG9ncy9m
b28ubG9nIgorIyB3aXRoIFNlcnZlclJvb3Qgc2V0IHRvICIvdXNyL2xvY2FsL2FwYWNoZSIgd2ls
bCBiZSBpbnRlcnByZXRlZCBieSB0aGUKKyMgc2VydmVyIGFzICIvdXNyL2xvY2FsL2FwYWNoZS9s
b2dzL2Zvby5sb2ciLgorIworCisjIyMgU2VjdGlvbiAxOiBHbG9iYWwgRW52aXJvbm1lbnQKKyMK
KyMgVGhlIGRpcmVjdGl2ZXMgaW4gdGhpcyBzZWN0aW9uIGFmZmVjdCB0aGUgb3ZlcmFsbCBvcGVy
YXRpb24gb2YgQXBhY2hlLAorIyBzdWNoIGFzIHRoZSBudW1iZXIgb2YgY29uY3VycmVudCByZXF1
ZXN0cyBpdCBjYW4gaGFuZGxlIG9yIHdoZXJlIGl0CisjIGNhbiBmaW5kIGl0cyBjb25maWd1cmF0
aW9uIGZpbGVzLgorIworCisjCisjIFNlcnZlclJvb3Q6IFRoZSB0b3Agb2YgdGhlIGRpcmVjdG9y
eSB0cmVlIHVuZGVyIHdoaWNoIHRoZSBzZXJ2ZXIncworIyBjb25maWd1cmF0aW9uLCBlcnJvciwg
YW5kIGxvZyBmaWxlcyBhcmUga2VwdC4KKyMKKyMgTk9URSEgIElmIHlvdSBpbnRlbmQgdG8gcGxh
Y2UgdGhpcyBvbiBhbiBORlMgKG9yIG90aGVyd2lzZSBuZXR3b3JrKQorIyBtb3VudGVkIGZpbGVz
eXN0ZW0gdGhlbiBwbGVhc2UgcmVhZCB0aGUgTG9ja0ZpbGUgZG9jdW1lbnRhdGlvbgorIyAoYXZh
aWxhYmxlIGF0IDxVUkw6aHR0cDovL3d3dy5hcGFjaGUub3JnL2RvY3MvbW9kL2NvcmUuaHRtbCNs
b2NrZmlsZT4pOworIyB5b3Ugd2lsbCBzYXZlIHlvdXJzZWxmIGEgbG90IG9mIHRyb3VibGUuCisj
CitTZXJ2ZXJSb290ICJDOi9Qcm9ncmFtIEZpbGVzL0FwYWNoZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
L0FwYWNoZTIuMiIKKworIworIyBUaGUgTG9ja0ZpbGUgZGlyZWN0aXZlIHNldHMgdGhlIHBhdGgg
dG8gdGhlIGxvY2tmaWxlIHVzZWQgd2hlbiBBcGFjaGUKKyMgaXMgY29tcGlsZWQgd2l0aCBlaXRo
ZXIgVVNFX0ZDTlRMX1NFUklBTElaRURfQUNDRVBUIG9yCisjIFVTRV9GTE9DS19TRVJJQUxJWkVE
X0FDQ0VQVC4gVGhpcyBkaXJlY3RpdmUgc2hvdWxkIG5vcm1hbGx5IGJlIGxlZnQgYXQKKyMgaXRz
IGRlZmF1bHQgdmFsdWUuIFRoZSBtYWluIHJlYXNvbiBmb3IgY2hhbmdpbmcgaXQgaXMgaWYgdGhl
IGxvZ3MKKyMgZGlyZWN0b3J5IGlzIE5GUyBtb3VudGVkLCBzaW5jZSB0aGUgbG9ja2ZpbGUgTVVT
VCBCRSBTVE9SRUQgT04gQSBMT0NBTAorIyBESVNLLiBUaGUgUElEIG9mIHRoZSBtYWluIHNlcnZl
ciBwcm9jZXNzIGlzIGF1dG9tYXRpY2FsbHkgYXBwZW5kZWQgdG8KKyMgdGhlIGZpbGVuYW1lLiAK
KyMKKyNMb2NrRmlsZSAiL3RtcC9XZWJLaXQvaHR0cGQubG9jayIKKworIworIyBQaWRGaWxlOiBU
aGUgZmlsZSBpbiB3aGljaCB0aGUgc2VydmVyIHNob3VsZCByZWNvcmQgaXRzIHByb2Nlc3MKKyMg
aWRlbnRpZmljYXRpb24gbnVtYmVyIHdoZW4gaXQgc3RhcnRzLgorIworUGlkRmlsZSAiL3RtcC9X
ZWJLaXQvaHR0cGQucGlkIgorCisjCisjIFNjb3JlQm9hcmRGaWxlOiBGaWxlIHVzZWQgdG8gc3Rv
cmUgaW50ZXJuYWwgc2VydmVyIHByb2Nlc3MgaW5mb3JtYXRpb24uCisjIE5vdCBhbGwgYXJjaGl0
ZWN0dXJlcyByZXF1aXJlIHRoaXMuICBCdXQgaWYgeW91cnMgZG9lcyAoeW91J2xsIGtub3cgYmVj
YXVzZQorIyB0aGlzIGZpbGUgd2lsbCBiZSAgY3JlYXRlZCB3aGVuIHlvdSBydW4gQXBhY2hlKSB0
aGVuIHlvdSAqbXVzdCogZW5zdXJlIHRoYXQKKyMgbm8gdHdvIGludm9jYXRpb25zIG9mIEFwYWNo
ZSBzaGFyZSB0aGUgc2FtZSBzY29yZWJvYXJkIGZpbGUuCisjCitTY29yZUJvYXJkRmlsZSAiL3Rt
cC9XZWJLaXQvaHR0cGQuc2NvcmVib2FyZCIKKworIworIyBUaW1lb3V0OiBUaGUgbnVtYmVyIG9m
IHNlY29uZHMgYmVmb3JlIHJlY2VpdmVzIGFuZCBzZW5kcyB0aW1lIG91dC4KKyMKK1RpbWVvdXQg
MzAwCisKKyMKKyMgS2VlcEFsaXZlOiBXaGV0aGVyIG9yIG5vdCB0byBhbGxvdyBwZXJzaXN0ZW50
IGNvbm5lY3Rpb25zIChtb3JlIHRoYW4KKyMgb25lIHJlcXVlc3QgcGVyIGNvbm5lY3Rpb24pLiBT
ZXQgdG8gIk9mZiIgdG8gZGVhY3RpdmF0ZS4KKyMKK0tlZXBBbGl2ZSBPbgorCisjCisjIE1heEtl
ZXBBbGl2ZVJlcXVlc3RzOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVxdWVzdHMgdG8gYWxsb3cK
KyMgZHVyaW5nIGEgcGVyc2lzdGVudCBjb25uZWN0aW9uLiBTZXQgdG8gMCB0byBhbGxvdyBhbiB1
bmxpbWl0ZWQgYW1vdW50LgorIyBXZSByZWNvbW1lbmQgeW91IGxlYXZlIHRoaXMgbnVtYmVyIGhp
Z2gsIGZvciBtYXhpbXVtIHBlcmZvcm1hbmNlLgorIworTWF4S2VlcEFsaXZlUmVxdWVzdHMgMTAw
CisKKyMKKyMgS2VlcEFsaXZlVGltZW91dDogTnVtYmVyIG9mIHNlY29uZHMgdG8gd2FpdCBmb3Ig
dGhlIG5leHQgcmVxdWVzdCBmcm9tIHRoZQorIyBzYW1lIGNsaWVudCBvbiB0aGUgc2FtZSBjb25u
ZWN0aW9uLgorIworS2VlcEFsaXZlVGltZW91dCAxNQorCisjCisjIFNlcnZlci1wb29sIHNpemUg
cmVndWxhdGlvbi4gIFJhdGhlciB0aGFuIG1ha2luZyB5b3UgZ3Vlc3MgaG93IG1hbnkKKyMgc2Vy
dmVyIHByb2Nlc3NlcyB5b3UgbmVlZCwgQXBhY2hlIGR5bmFtaWNhbGx5IGFkYXB0cyB0byB0aGUg
bG9hZCBpdAorIyBzZWVzIC0tLSB0aGF0IGlzLCBpdCB0cmllcyB0byBtYWludGFpbiBlbm91Z2gg
c2VydmVyIHByb2Nlc3NlcyB0bworIyBoYW5kbGUgdGhlIGN1cnJlbnQgbG9hZCwgcGx1cyBhIGZl
dyBzcGFyZSBzZXJ2ZXJzIHRvIGhhbmRsZSB0cmFuc2llbnQKKyMgbG9hZCBzcGlrZXMgKGUuZy4s
IG11bHRpcGxlIHNpbXVsdGFuZW91cyByZXF1ZXN0cyBmcm9tIGEgc2luZ2xlCisjIE5ldHNjYXBl
IGJyb3dzZXIpLgorIworIyBJdCBkb2VzIHRoaXMgYnkgcGVyaW9kaWNhbGx5IGNoZWNraW5nIGhv
dyBtYW55IHNlcnZlcnMgYXJlIHdhaXRpbmcKKyMgZm9yIGEgcmVxdWVzdC4gIElmIHRoZXJlIGFy
ZSBmZXdlciB0aGFuIE1pblNwYXJlU2VydmVycywgaXQgY3JlYXRlcworIyBhIG5ldyBzcGFyZS4g
IElmIHRoZXJlIGFyZSBtb3JlIHRoYW4gTWF4U3BhcmVTZXJ2ZXJzLCBzb21lIG9mIHRoZQorIyBz
cGFyZXMgZGllIG9mZi4gIFRoZSBkZWZhdWx0IHZhbHVlcyBhcmUgcHJvYmFibHkgT0sgZm9yIG1v
c3Qgc2l0ZXMuCisjCisjTWluU3BhcmVTZXJ2ZXJzIDEKKyNNYXhTcGFyZVNlcnZlcnMgNQorCisj
CisjIE51bWJlciBvZiBzZXJ2ZXJzIHRvIHN0YXJ0IGluaXRpYWxseSAtLS0gc2hvdWxkIGJlIGEg
cmVhc29uYWJsZSBiYWxscGFyaworIyBmaWd1cmUuCisjCisjU3RhcnRTZXJ2ZXJzIDEKKworIwor
IyBMaW1pdCBvbiB0b3RhbCBudW1iZXIgb2Ygc2VydmVycyBydW5uaW5nLCBpLmUuLCBsaW1pdCBv
biB0aGUgbnVtYmVyCisjIG9mIGNsaWVudHMgd2hvIGNhbiBzaW11bHRhbmVvdXNseSBjb25uZWN0
IC0tLSBpZiB0aGlzIGxpbWl0IGlzIGV2ZXIKKyMgcmVhY2hlZCwgY2xpZW50cyB3aWxsIGJlIExP
Q0tFRCBPVVQsIHNvIGl0IHNob3VsZCBOT1QgQkUgU0VUIFRPTyBMT1cuCisjIEl0IGlzIGludGVu
ZGVkIG1haW5seSBhcyBhIGJyYWtlIHRvIGtlZXAgYSBydW5hd2F5IHNlcnZlciBmcm9tIHRha2lu
ZworIyB0aGUgc3lzdGVtIHdpdGggaXQgYXMgaXQgc3BpcmFscyBkb3duLi4uCisjCisjTWF4Q2xp
ZW50cyAxNTAKKworIworIyBNYXhSZXF1ZXN0c1BlckNoaWxkOiB0aGUgbnVtYmVyIG9mIHJlcXVl
c3RzIGVhY2ggY2hpbGQgcHJvY2VzcyBpcworIyBhbGxvd2VkIHRvIHByb2Nlc3MgYmVmb3JlIHRo
ZSBjaGlsZCBkaWVzLiAgVGhlIGNoaWxkIHdpbGwgZXhpdCBzbworIyBhcyB0byBhdm9pZCBwcm9i
bGVtcyBhZnRlciBwcm9sb25nZWQgdXNlIHdoZW4gQXBhY2hlIChhbmQgbWF5YmUgdGhlCisjIGxp
YnJhcmllcyBpdCB1c2VzKSBsZWFrIG1lbW9yeSBvciBvdGhlciByZXNvdXJjZXMuICBPbiBtb3N0
IHN5c3RlbXMsIHRoaXMKKyMgaXNuJ3QgcmVhbGx5IG5lZWRlZCwgYnV0IGEgZmV3IChzdWNoIGFz
IFNvbGFyaXMpIGRvIGhhdmUgbm90YWJsZSBsZWFrcworIyBpbiB0aGUgbGlicmFyaWVzLiBGb3Ig
dGhlc2UgcGxhdGZvcm1zLCBzZXQgdG8gc29tZXRoaW5nIGxpa2UgMTAwMDAKKyMgb3Igc287IGEg
c2V0dGluZyBvZiAwIG1lYW5zIHVubGltaXRlZC4KKyMKKyMgTk9URTogVGhpcyB2YWx1ZSBkb2Vz
IG5vdCBpbmNsdWRlIGtlZXBhbGl2ZSByZXF1ZXN0cyBhZnRlciB0aGUgaW5pdGlhbAorIyAgICAg
ICByZXF1ZXN0IHBlciBjb25uZWN0aW9uLiBGb3IgZXhhbXBsZSwgaWYgYSBjaGlsZCBwcm9jZXNz
IGhhbmRsZXMKKyMgICAgICAgYW4gaW5pdGlhbCByZXF1ZXN0IGFuZCAxMCBzdWJzZXF1ZW50ICJr
ZXB0YWxpdmUiIHJlcXVlc3RzLCBpdAorIyAgICAgICB3b3VsZCBvbmx5IGNvdW50IGFzIDEgcmVx
dWVzdCB0b3dhcmRzIHRoaXMgbGltaXQuCisjCisjTWF4UmVxdWVzdHNQZXJDaGlsZCAxMDAwMDAK
KworIworIyBMaXN0ZW46IEFsbG93cyB5b3UgdG8gYmluZCBBcGFjaGUgdG8gc3BlY2lmaWMgSVAg
YWRkcmVzc2VzIGFuZC9vcgorIyBwb3J0cywgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdC4gU2VlIGFs
c28gdGhlIDxWaXJ0dWFsSG9zdD4KKyMgZGlyZWN0aXZlLgorIworIyBDb25maWd1cmVkIGZyb20g
dGhlIGh0dHBkIGNvbW1hbmQgbGluZSBmb3IgV2ViS2l0IGxheW91dCB0ZXN0cy4KKyMgUG9ydCA4
NDQzIGlzIGhhcmQtY29kZWQgYXMgaXQgaXMgbmVlZGVkIGZvciB0aGUgSFRUUFMgY29uZmlndXJh
dGlvbiBsYXRlciBvbi4KKyMKKyNMaXN0ZW4gMzAwMAorTGlzdGVuIDEyNy4wLjAuMTo4MDgwCitM
aXN0ZW4gMTI3LjAuMC4xOjg0NDMKKyMgV2UgbGlzdGVuIHRvIGJvdGggSVB2NCBhbmQgSVB2NiBs
b29wLWJhY2sgYWRkcmVzc2VzLCBidXQgaWdub3JlCisjIHJlcXVlc3RzIHRvIDgwMDAgZnJvbSBy
YW5kb20gdXNlcnMgb24gbmV0d29yay4KKyMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzEwNAorI0xpc3RlbiBbOjoxXTo4MDAwCisjTGlzdGVuIFs6OjFdOjgw
ODAKKyNMaXN0ZW4gWzo6MV06ODQ0MworCisjCisjIER5bmFtaWMgU2hhcmVkIE9iamVjdCAoRFNP
KSBTdXBwb3J0CisjCisjIFRvIGJlIGFibGUgdG8gdXNlIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGEg
bW9kdWxlIHdoaWNoIHdhcyBidWlsdCBhcyBhIERTTyB5b3UKKyMgaGF2ZSB0byBwbGFjZSBjb3Jy
ZXNwb25kaW5nIGBMb2FkTW9kdWxlJyBsaW5lcyBhdCB0aGlzIGxvY2F0aW9uIHNvIHRoZQorIyBk
aXJlY3RpdmVzIGNvbnRhaW5lZCBpbiBpdCBhcmUgYWN0dWFsbHkgYXZhaWxhYmxlIF9iZWZvcmVf
IHRoZXkgYXJlIHVzZWQuCisjIFBsZWFzZSByZWFkIHRoZSBmaWxlIGh0dHA6Ly9odHRwZC5hcGFj
aGUub3JnL2RvY3MvZHNvLmh0bWwgZm9yIG1vcmUKKyMgZGV0YWlscyBhYm91dCB0aGUgRFNPIG1l
Y2hhbmlzbSBhbmQgcnVuIGBodHRwZCAtbCcgZm9yIHRoZSBsaXN0IG9mIGFscmVhZHkKKyMgYnVp
bHQtaW4gKHN0YXRpY2FsbHkgbGlua2VkIGFuZCB0aHVzIGFsd2F5cyBhdmFpbGFibGUpIG1vZHVs
ZXMgaW4geW91ciBodHRwZAorIyBiaW5hcnkuCisjCisjIE5vdGU6IFRoZSBvcmRlciBpbiB3aGlj
aCBtb2R1bGVzIGFyZSBsb2FkZWQgaXMgaW1wb3J0YW50LiAgRG9uJ3QgY2hhbmdlCisjIHRoZSBv
cmRlciBiZWxvdyB3aXRob3V0IGV4cGVydCBhZHZpY2UuCisjCisjIEV4YW1wbGU6CisjIExvYWRN
b2R1bGUgZm9vX21vZHVsZSBsaWJleGVjL21vZF9mb28uc28KKyNMb2FkTW9kdWxlIGF1dGhuX2Zp
bGVfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuX2ZpbGUuc28KKyNMb2FkTW9kdWxlIGF1dGhuX2Ri
bV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZGJtLnNvCisjTG9hZE1vZHVsZSBhdXRobl9hbm9u
X21vZHVsZSBtb2R1bGVzL21vZF9hdXRobl9hbm9uLnNvCisjTG9hZE1vZHVsZSBhdXRobl9kYmRf
bW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhuX2RiZC5zbworI0xvYWRNb2R1bGUgYXV0aG5fZGVmYXVs
dF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aG5fZGVmYXVsdC5zbworTG9hZE1vZHVsZSBhdXRoel9o
b3N0X21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9ob3N0LnNvCisjTG9hZE1vZHVsZSBhdXRoel9n
cm91cGZpbGVfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2dyb3VwZmlsZS5zbworI0xvYWRNb2R1
bGUgYXV0aHpfdXNlcl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfdXNlci5zbworI0xvYWRNb2R1
bGUgYXV0aHpfZGJtX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9kYm0uc28KKyNMb2FkTW9kdWxl
IGF1dGh6X293bmVyX21vZHVsZSBtb2R1bGVzL21vZF9hdXRoel9vd25lci5zbworI0xvYWRNb2R1
bGUgYXV0aHpfZGVmYXVsdF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfZGVmYXVsdC5zbworI0xv
YWRNb2R1bGUgYXV0aF9iYXNpY19tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aF9iYXNpYy5zbworI0xv
YWRNb2R1bGUgYXV0aF9kaWdlc3RfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhfZGlnZXN0LnNvCisj
TG9hZE1vZHVsZSBjYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfY2FjaGUuc28KKyNMb2FkTW9kdWxl
IGRpc2tfY2FjaGVfbW9kdWxlIG1vZHVsZXMvbW9kX2Rpc2tfY2FjaGUuc28KKyNMb2FkTW9kdWxl
IG1lbV9jYWNoZV9tb2R1bGUgbW9kdWxlcy9tb2RfbWVtX2NhY2hlLnNvCisjTG9hZE1vZHVsZSBk
YmRfbW9kdWxlIG1vZHVsZXMvbW9kX2RiZC5zbworI0xvYWRNb2R1bGUgZHVtcGlvX21vZHVsZSBt
b2R1bGVzL21vZF9kdW1waW8uc28KKyNMb2FkTW9kdWxlIGV4dF9maWx0ZXJfbW9kdWxlIG1vZHVs
ZXMvbW9kX2V4dF9maWx0ZXIuc28KK0xvYWRNb2R1bGUgaW5jbHVkZV9tb2R1bGUgbW9kdWxlcy9t
b2RfaW5jbHVkZS5zbworI0xvYWRNb2R1bGUgZmlsdGVyX21vZHVsZSBtb2R1bGVzL21vZF9maWx0
ZXIuc28KKyNMb2FkTW9kdWxlIHN1YnN0aXR1dGVfbW9kdWxlIG1vZHVsZXMvbW9kX3N1YnN0aXR1
dGUuc28KKyNMb2FkTW9kdWxlIGRlZmxhdGVfbW9kdWxlIG1vZHVsZXMvbW9kX2RlZmxhdGUuc28K
K0xvYWRNb2R1bGUgbG9nX2NvbmZpZ19tb2R1bGUgbW9kdWxlcy9tb2RfbG9nX2NvbmZpZy5zbwor
I0xvYWRNb2R1bGUgbG9nX2ZvcmVuc2ljX21vZHVsZSBtb2R1bGVzL21vZF9sb2dfZm9yZW5zaWMu
c28KKyNMb2FkTW9kdWxlIGxvZ2lvX21vZHVsZSBtb2R1bGVzL21vZF9sb2dpby5zbworI0xvYWRN
b2R1bGUgZW52X21vZHVsZSBtb2R1bGVzL21vZF9lbnYuc28KKyNMb2FkTW9kdWxlIG1pbWVfbWFn
aWNfbW9kdWxlIG1vZHVsZXMvbW9kX21pbWVfbWFnaWMuc28KKyNMb2FkTW9kdWxlIGNlcm5fbWV0
YV9tb2R1bGUgbW9kdWxlcy9tb2RfY2Vybl9tZXRhLnNvCisjTG9hZE1vZHVsZSBleHBpcmVzX21v
ZHVsZSBtb2R1bGVzL21vZF9leHBpcmVzLnNvCitMb2FkTW9kdWxlIGhlYWRlcnNfbW9kdWxlIG1v
ZHVsZXMvbW9kX2hlYWRlcnMuc28KKyNMb2FkTW9kdWxlIGlkZW50X21vZHVsZSBtb2R1bGVzL21v
ZF9pZGVudC5zbworI0xvYWRNb2R1bGUgdXNlcnRyYWNrX21vZHVsZSBtb2R1bGVzL21vZF91c2Vy
dHJhY2suc28KKyNMb2FkTW9kdWxlIHVuaXF1ZV9pZF9tb2R1bGUgbW9kdWxlcy9tb2RfdW5pcXVl
X2lkLnNvCisjTG9hZE1vZHVsZSBzZXRlbnZpZl9tb2R1bGUgbW9kdWxlcy9tb2Rfc2V0ZW52aWYu
c28KKyNMb2FkTW9kdWxlIHZlcnNpb25fbW9kdWxlIG1vZHVsZXMvbW9kX3ZlcnNpb24uc28KKyNM
b2FkTW9kdWxlIHByb3h5X21vZHVsZSBtb2R1bGVzL21vZF9wcm94eS5zbworI0xvYWRNb2R1bGUg
cHJveHlfY29ubmVjdF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfY29ubmVjdC5zbworI0xvYWRN
b2R1bGUgcHJveHlfZnRwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9mdHAuc28KKyNMb2FkTW9k
dWxlIHByb3h5X2h0dHBfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2h0dHAuc28KKyNMb2FkTW9k
dWxlIHByb3h5X2FqcF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfYWpwLnNvCisjTG9hZE1vZHVs
ZSBwcm94eV9iYWxhbmNlcl9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfYmFsYW5jZXIuc28KK0xv
YWRNb2R1bGUgc3NsX21vZHVsZSBtb2R1bGVzL21vZF9zc2wuc28KK0xvYWRNb2R1bGUgbWltZV9t
b2R1bGUgbW9kdWxlcy9tb2RfbWltZS5zbworI0xvYWRNb2R1bGUgZGF2X21vZHVsZSBtb2R1bGVz
L21vZF9kYXYuc28KKyNMb2FkTW9kdWxlIHN0YXR1c19tb2R1bGUgbW9kdWxlcy9tb2Rfc3RhdHVz
LnNvCitMb2FkTW9kdWxlIGF1dG9pbmRleF9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0b2luZGV4LnNv
CitMb2FkTW9kdWxlIGFzaXNfbW9kdWxlIG1vZHVsZXMvbW9kX2FzaXMuc28KKyNMb2FkTW9kdWxl
IGluZm9fbW9kdWxlIG1vZHVsZXMvbW9kX2luZm8uc28KK0xvYWRNb2R1bGUgY2dpX21vZHVsZSBt
b2R1bGVzL21vZF9jZ2kuc28KKyNMb2FkTW9kdWxlIGRhdl9mc19tb2R1bGUgbW9kdWxlcy9tb2Rf
ZGF2X2ZzLnNvCisjTG9hZE1vZHVsZSB2aG9zdF9hbGlhc19tb2R1bGUgbW9kdWxlcy9tb2Rfdmhv
c3RfYWxpYXMuc28KK0xvYWRNb2R1bGUgbmVnb3RpYXRpb25fbW9kdWxlIG1vZHVsZXMvbW9kX25l
Z290aWF0aW9uLnNvCisjTG9hZE1vZHVsZSBkaXJfbW9kdWxlIG1vZHVsZXMvbW9kX2Rpci5zbwor
TG9hZE1vZHVsZSBpbWFnZW1hcF9tb2R1bGUgbW9kdWxlcy9tb2RfaW1hZ2VtYXAuc28KK0xvYWRN
b2R1bGUgYWN0aW9uc19tb2R1bGUgbW9kdWxlcy9tb2RfYWN0aW9ucy5zbworI0xvYWRNb2R1bGUg
c3BlbGluZ19tb2R1bGUgbW9kdWxlcy9tb2Rfc3BlbGluZy5zbworI0xvYWRNb2R1bGUgdXNlcmRp
cl9tb2R1bGUgbW9kdWxlcy9tb2RfdXNlcmRpci5zbworTG9hZE1vZHVsZSBhbGlhc19tb2R1bGUg
bW9kdWxlcy9tb2RfYWxpYXMuc28KK0xvYWRNb2R1bGUgcmV3cml0ZV9tb2R1bGUgbW9kdWxlcy9t
b2RfcmV3cml0ZS5zbworI0xvYWRNb2R1bGUgYm9uam91cl9tb2R1bGUgICAgIG1vZHVsZXMvbW9k
X2JvbmpvdXIuc28KKyNMb2FkTW9kdWxlIHBocDVfbW9kdWxlIG1vZHVsZXMvcGhwNWFwYWNoZTJf
Mi5kbGwKKyNMb2FkTW9kdWxlIGZhc3RjZ2lfbW9kdWxlICAgICBtb2R1bGVzL21vZF9mYXN0Y2dp
LnNvCisjTG9hZE1vZHVsZSBpc2FwaV9tb2R1bGUgbW9kdWxlcy9tb2RfaXNhcGkuc28KKworIyMj
IFNlY3Rpb24gMjogJ01haW4nIHNlcnZlciBjb25maWd1cmF0aW9uCisjCisjIFRoZSBkaXJlY3Rp
dmVzIGluIHRoaXMgc2VjdGlvbiBzZXQgdXAgdGhlIHZhbHVlcyB1c2VkIGJ5IHRoZSAnbWFpbicK
KyMgc2VydmVyLCB3aGljaCByZXNwb25kcyB0byBhbnkgcmVxdWVzdHMgdGhhdCBhcmVuJ3QgaGFu
ZGxlZCBieSBhCisjIDxWaXJ0dWFsSG9zdD4gZGVmaW5pdGlvbi4gIFRoZXNlIHZhbHVlcyBhbHNv
IHByb3ZpZGUgZGVmYXVsdHMgZm9yCisjIGFueSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMgeW91
IG1heSBkZWZpbmUgbGF0ZXIgaW4gdGhlIGZpbGUuCisjCisjIEFsbCBvZiB0aGVzZSBkaXJlY3Rp
dmVzIG1heSBhcHBlYXIgaW5zaWRlIDxWaXJ0dWFsSG9zdD4gY29udGFpbmVycywKKyMgaW4gd2hp
Y2ggY2FzZSB0aGVzZSBkZWZhdWx0IHNldHRpbmdzIHdpbGwgYmUgb3ZlcnJpZGRlbiBmb3IgdGhl
CisjIHZpcnR1YWwgaG9zdCBiZWluZyBkZWZpbmVkLgorIworCisjCisjIFNlcnZlck5hbWUgYWxs
b3dzIHlvdSB0byBzZXQgYSBob3N0IG5hbWUgd2hpY2ggaXMgc2VudCBiYWNrIHRvIGNsaWVudHMg
Zm9yCisjIHlvdXIgc2VydmVyIGlmIGl0J3MgZGlmZmVyZW50IHRoYW4gdGhlIG9uZSB0aGUgcHJv
Z3JhbSB3b3VsZCBnZXQgKGkuZS4sIHVzZQorIyAid3d3IiBpbnN0ZWFkIG9mIHRoZSBob3N0J3Mg
cmVhbCBuYW1lKS4KKyMKKyMgTm90ZTogWW91IGNhbm5vdCBqdXN0IGludmVudCBob3N0IG5hbWVz
IGFuZCBob3BlIHRoZXkgd29yay4gVGhlIG5hbWUgeW91IAorIyBkZWZpbmUgaGVyZSBtdXN0IGJl
IGEgdmFsaWQgRE5TIG5hbWUgZm9yIHlvdXIgaG9zdC4gSWYgeW91IGRvbid0IHVuZGVyc3RhbmQK
KyMgdGhpcywgYXNrIHlvdXIgbmV0d29yayBhZG1pbmlzdHJhdG9yLgorIyBJZiB5b3VyIGhvc3Qg
ZG9lc24ndCBoYXZlIGEgcmVnaXN0ZXJlZCBETlMgbmFtZSwgZW50ZXIgaXRzIElQIGFkZHJlc3Mg
aGVyZS4KKyMgWW91IHdpbGwgaGF2ZSB0byBhY2Nlc3MgaXQgYnkgaXRzIGFkZHJlc3MgKGUuZy4s
IGh0dHA6Ly8xMjMuNDUuNjcuODkvKQorIyBhbnl3YXksIGFuZCB0aGlzIHdpbGwgbWFrZSByZWRp
cmVjdGlvbnMgd29yayBpbiBhIHNlbnNpYmxlIHdheS4KKyMKKyMgMTI3LjAuMC4xIGlzIHRoZSBU
Q1AvSVAgbG9jYWwgbG9vcC1iYWNrIGFkZHJlc3MsIG9mdGVuIG5hbWVkIGxvY2FsaG9zdC4gWW91
ciAKKyMgbWFjaGluZSBhbHdheXMga25vd3MgaXRzZWxmIGJ5IHRoaXMgYWRkcmVzcy4gSWYgeW91
IHVzZSBBcGFjaGUgc3RyaWN0bHkgZm9yIAorIyBsb2NhbCB0ZXN0aW5nIGFuZCBkZXZlbG9wbWVu
dCwgeW91IG1heSB1c2UgMTI3LjAuMC4xIGFzIHRoZSBzZXJ2ZXIgbmFtZS4KKyMKK1NlcnZlck5h
bWUgMTI3LjAuMC4xCisKKyMKKyMgRG9jdW1lbnRSb290OiBUaGUgZGlyZWN0b3J5IG91dCBvZiB3
aGljaCB5b3Ugd2lsbCBzZXJ2ZSB5b3VyCisjIGRvY3VtZW50cy4gQnkgZGVmYXVsdCwgYWxsIHJl
cXVlc3RzIGFyZSB0YWtlbiBmcm9tIHRoaXMgZGlyZWN0b3J5LCBidXQKKyMgc3ltYm9saWMgbGlu
a3MgYW5kIGFsaWFzZXMgbWF5IGJlIHVzZWQgdG8gcG9pbnQgdG8gb3RoZXIgbG9jYXRpb25zLgor
IworIyBDb25maWd1cmVkIGZyb20gdGhlIGh0dHBkIGNvbW1hbmQgbGluZSBmb3IgV2ViS2l0IGxh
eW91dCB0ZXN0cy4KKyNEb2N1bWVudFJvb3QgIi9MaWJyYXJ5L1dlYlNlcnZlci9Eb2N1bWVudHMi
CisKKyMKKyMgRWFjaCBkaXJlY3RvcnkgdG8gd2hpY2ggQXBhY2hlIGhhcyBhY2Nlc3MsIGNhbiBi
ZSBjb25maWd1cmVkIHdpdGggcmVzcGVjdAorIyB0byB3aGljaCBzZXJ2aWNlcyBhbmQgZmVhdHVy
ZXMgYXJlIGFsbG93ZWQgYW5kL29yIGRpc2FibGVkIGluIHRoYXQKKyMgZGlyZWN0b3J5IChhbmQg
aXRzIHN1YmRpcmVjdG9yaWVzKS4gCisjCis8RGlyZWN0b3J5IC8+CisjCisjIFRoaXMgbWF5IGFs
c28gYmUgIk5vbmUiLCAiQWxsIiwgb3IgYW55IGNvbWJpbmF0aW9uIG9mICJJbmRleGVzIiwKKyMg
IkluY2x1ZGVzIiwgIkZvbGxvd1N5bUxpbmtzIiwgIkV4ZWNDR0kiLCBvciAiTXVsdGlWaWV3cyIu
CisjCisjIE5vdGUgdGhhdCAiTXVsdGlWaWV3cyIgbXVzdCBiZSBuYW1lZCAqZXhwbGljaXRseSog
LS0tICJPcHRpb25zIEFsbCIKKyMgZG9lc24ndCBnaXZlIGl0IHRvIHlvdS4KKyMKKyAgICBPcHRp
b25zIEluZGV4ZXMgRm9sbG93U3ltTGlua3MgTXVsdGlWaWV3cyBFeGVjQ0dJIEluY2x1ZGVzCisK
KyMKKyMgVGhpcyBjb250cm9scyB3aGljaCBvcHRpb25zIHRoZSAuaHRhY2Nlc3MgZmlsZXMgaW4g
ZGlyZWN0b3JpZXMgY2FuCisjIG92ZXJyaWRlLiBDYW4gYWxzbyBiZSAiQWxsIiwgb3IgYW55IGNv
bWJpbmF0aW9uIG9mICJPcHRpb25zIiwgIkZpbGVJbmZvIiwgCisjICJBdXRoQ29uZmlnIiwgYW5k
ICJMaW1pdCIKKyMKKyAgICBBbGxvd092ZXJyaWRlIEFsbAorCisjCisjIENvbnRyb2xzIHdobyBj
YW4gZ2V0IHN0dWZmIGZyb20gdGhpcyBzZXJ2ZXIuCisjCisgICAgT3JkZXIgYWxsb3csZGVueQor
ICAgIEFsbG93IGZyb20gYWxsCis8L0RpcmVjdG9yeT4KKworIworIyBBY2Nlc3NGaWxlTmFtZTog
VGhlIG5hbWUgb2YgdGhlIGZpbGUgdG8gbG9vayBmb3IgaW4gZWFjaCBkaXJlY3RvcnkKKyMgZm9y
IGFjY2VzcyBjb250cm9sIGluZm9ybWF0aW9uLgorIworQWNjZXNzRmlsZU5hbWUgLmh0YWNjZXNz
CisKKyMKKyMgVGhlIGZvbGxvd2luZyBsaW5lcyBwcmV2ZW50IC5odGFjY2VzcyBmaWxlcyBmcm9t
IGJlaW5nIHZpZXdlZCBieQorIyBXZWIgY2xpZW50cy4gIFNpbmNlIC5odGFjY2VzcyBmaWxlcyBv
ZnRlbiBjb250YWluIGF1dGhvcml6YXRpb24KKyMgaW5mb3JtYXRpb24sIGFjY2VzcyBpcyBkaXNh
bGxvd2VkIGZvciBzZWN1cml0eSByZWFzb25zLiAgQ29tbWVudAorIyB0aGVzZSBsaW5lcyBvdXQg
aWYgeW91IHdhbnQgV2ViIHZpc2l0b3JzIHRvIHNlZSB0aGUgY29udGVudHMgb2YKKyMgLmh0YWNj
ZXNzIGZpbGVzLiAgSWYgeW91IGNoYW5nZSB0aGUgQWNjZXNzRmlsZU5hbWUgZGlyZWN0aXZlIGFi
b3ZlLAorIyBiZSBzdXJlIHRvIG1ha2UgdGhlIGNvcnJlc3BvbmRpbmcgY2hhbmdlcyBoZXJlLgor
IworIyBBbHNvLCBmb2xrcyB0ZW5kIHRvIHVzZSBuYW1lcyBzdWNoIGFzIC5odHBhc3N3ZCBmb3Ig
cGFzc3dvcmQKKyMgZmlsZXMsIHNvIHRoaXMgd2lsbCBwcm90ZWN0IHRob3NlIGFzIHdlbGwuCisj
Cis8RmlsZXMgfiAiXlwuKFtIaF1bVHRdfFtEZF1bU3NdX1tTc10pIj4KKyAgICBPcmRlciBhbGxv
dyxkZW55CisgICAgRGVueSBmcm9tIGFsbAorICAgIFNhdGlzZnkgQWxsCis8L0ZpbGVzPgorCisj
CisjIEFwcGxlIHNwZWNpZmljIGZpbGVzeXN0ZW0gcHJvdGVjdGlvbi4KKyMgCisKKzxGaWxlcyAi
cnNyYyI+CisgICAgT3JkZXIgYWxsb3csZGVueQorICAgIERlbnkgZnJvbSBhbGwKKyAgICBTYXRp
c2Z5IEFsbAorPC9GaWxlcz4KKworPERpcmVjdG9yeSAgfiAiLipcLlwubmFtZWRmb3JrIj4KKyAg
ICBPcmRlciBhbGxvdyxkZW55CisgICAgRGVueSBmcm9tIGFsbAorICAgIFNhdGlzZnkgQWxsCis8
L0RpcmVjdG9yeT4KKworIworIyBDYWNoZU5lZ290aWF0ZWREb2NzOiBCeSBkZWZhdWx0LCBBcGFj
aGUgc2VuZHMgIlByYWdtYTogbm8tY2FjaGUiIHdpdGggZWFjaAorIyBkb2N1bWVudCB0aGF0IHdh
cyBuZWdvdGlhdGVkIG9uIHRoZSBiYXNpcyBvZiBjb250ZW50LiBUaGlzIGFza3MgcHJveHkKKyMg
c2VydmVycyBub3QgdG8gY2FjaGUgdGhlIGRvY3VtZW50LiBVbmNvbW1lbnRpbmcgdGhlIGZvbGxv
d2luZyBsaW5lIGRpc2FibGVzCisjIHRoaXMgYmVoYXZpb3IsIGFuZCBwcm94aWVzIHdpbGwgYmUg
YWxsb3dlZCB0byBjYWNoZSB0aGUgZG9jdW1lbnRzLgorIworI0NhY2hlTmVnb3RpYXRlZERvY3MK
KworIworIyBVc2VDYW5vbmljYWxOYW1lOiAgKG5ldyBmb3IgMS4zKSAgV2l0aCB0aGlzIHNldHRp
bmcgdHVybmVkIG9uLCB3aGVuZXZlcgorIyBBcGFjaGUgbmVlZHMgdG8gY29uc3RydWN0IGEgc2Vs
Zi1yZWZlcmVuY2luZyBVUkwgKGEgVVJMIHRoYXQgcmVmZXJzIGJhY2sKKyMgdG8gdGhlIHNlcnZl
ciB0aGUgcmVzcG9uc2UgaXMgY29taW5nIGZyb20pIGl0IHdpbGwgdXNlIFNlcnZlck5hbWUgYW5k
CisjIFBvcnQgdG8gZm9ybSBhICJjYW5vbmljYWwiIG5hbWUuICBXaXRoIHRoaXMgc2V0dGluZyBv
ZmYsIEFwYWNoZSB3aWxsCisjIHVzZSB0aGUgaG9zdG5hbWU6cG9ydCB0aGF0IHRoZSBjbGllbnQg
c3VwcGxpZWQsIHdoZW4gcG9zc2libGUuICBUaGlzCisjIGFsc28gYWZmZWN0cyBTRVJWRVJfTkFN
RSBhbmQgU0VSVkVSX1BPUlQgaW4gQ0dJIHNjcmlwdHMuCisjCitVc2VDYW5vbmljYWxOYW1lIE9u
CisKKyMKKyMgVHlwZXNDb25maWcgZGVzY3JpYmVzIHdoZXJlIHRoZSBtaW1lLnR5cGVzIGZpbGUg
KG9yIGVxdWl2YWxlbnQpIGlzCisjIHRvIGJlIGZvdW5kLgorIworIyBDb25maWd1cmVkIGZyb20g
dGhlIGh0dHBkIGNvbW1hbmQgbGluZSBmb3IgV2ViS2l0IGxheW91dCB0ZXN0cy4KKyMKKyM8SWZN
b2R1bGUgbW9kX21pbWUuYz4KKyMgICAgVHlwZXNDb25maWcgL3ByaXZhdGUvZXRjL2FwYWNoZTIv
bWltZS50eXBlcworIzwvSWZNb2R1bGU+CisKKyMKKyMgRGVmYXVsdFR5cGUgaXMgdGhlIGRlZmF1
bHQgTUlNRSB0eXBlIHRoZSBzZXJ2ZXIgd2lsbCB1c2UgZm9yIGEgZG9jdW1lbnQKKyMgaWYgaXQg
Y2Fubm90IG90aGVyd2lzZSBkZXRlcm1pbmUgb25lLCBzdWNoIGFzIGZyb20gZmlsZW5hbWUgZXh0
ZW5zaW9ucy4KKyMgSWYgeW91ciBzZXJ2ZXIgY29udGFpbnMgbW9zdGx5IHRleHQgb3IgSFRNTCBk
b2N1bWVudHMsICJ0ZXh0L3BsYWluIiBpcworIyBhIGdvb2QgdmFsdWUuICBJZiBtb3N0IG9mIHlv
dXIgY29udGVudCBpcyBiaW5hcnksIHN1Y2ggYXMgYXBwbGljYXRpb25zCisjIG9yIGltYWdlcywg
eW91IG1heSB3YW50IHRvIHVzZSAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiBpbnN0ZWFkIHRv
CisjIGtlZXAgYnJvd3NlcnMgZnJvbSB0cnlpbmcgdG8gZGlzcGxheSBiaW5hcnkgZmlsZXMgYXMg
dGhvdWdoIHRoZXkgYXJlCisjIHRleHQuCisjCitEZWZhdWx0VHlwZSB0ZXh0L3BsYWluCisKKyMK
KyMgSG9zdG5hbWVMb29rdXBzOiBMb2cgdGhlIG5hbWVzIG9mIGNsaWVudHMgb3IganVzdCB0aGVp
ciBJUCBhZGRyZXNzZXMKKyMgZS5nLiwgd3d3LmFwYWNoZS5vcmcgKG9uKSBvciAyMDQuNjIuMTI5
LjEzMiAob2ZmKS4KKyMgVGhlIGRlZmF1bHQgaXMgb2ZmIGJlY2F1c2UgaXQnZCBiZSBvdmVyYWxs
IGJldHRlciBmb3IgdGhlIG5ldCBpZiBwZW9wbGUKKyMgaGFkIHRvIGtub3dpbmdseSB0dXJuIHRo
aXMgZmVhdHVyZSBvbiwgc2luY2UgZW5hYmxpbmcgaXQgbWVhbnMgdGhhdAorIyBlYWNoIGNsaWVu
dCByZXF1ZXN0IHdpbGwgcmVzdWx0IGluIEFUIExFQVNUIG9uZSBsb29rdXAgcmVxdWVzdCB0byB0
aGUKKyMgbmFtZXNlcnZlci4KKyMKK0hvc3RuYW1lTG9va3VwcyBPZmYKKworIworIyBFcnJvckxv
ZzogVGhlIGxvY2F0aW9uIG9mIHRoZSBlcnJvciBsb2cgZmlsZS4KKyMgSWYgeW91IGRvIG5vdCBz
cGVjaWZ5IGFuIEVycm9yTG9nIGRpcmVjdGl2ZSB3aXRoaW4gYSA8VmlydHVhbEhvc3Q+CisjIGNv
bnRhaW5lciwgZXJyb3IgbWVzc2FnZXMgcmVsYXRpbmcgdG8gdGhhdCB2aXJ0dWFsIGhvc3Qgd2ls
bCBiZQorIyBsb2dnZWQgaGVyZS4gIElmIHlvdSAqZG8qIGRlZmluZSBhbiBlcnJvciBsb2dmaWxl
IGZvciBhIDxWaXJ0dWFsSG9zdD4KKyMgY29udGFpbmVyLCB0aGF0IGhvc3QncyBlcnJvcnMgd2ls
bCBiZSBsb2dnZWQgdGhlcmUgYW5kIG5vdCBoZXJlLgorIworIyBDb25maWd1cmVkIGZyb20gdGhl
IGh0dHBkIGNvbW1hbmQgbGluZSBmb3IgV2ViS2l0IGxheW91dCB0ZXN0cy4KKyNFcnJvckxvZyAi
L3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2Vycm9yX2xvZyIKKworIworIyBMb2dMZXZlbDogQ29u
dHJvbCB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIGxvZ2dlZCB0byB0aGUgZXJyb3JfbG9nLgorIyBQ
b3NzaWJsZSB2YWx1ZXMgaW5jbHVkZTogZGVidWcsIGluZm8sIG5vdGljZSwgd2FybiwgZXJyb3Is
IGNyaXQsCisjIGFsZXJ0LCBlbWVyZy4KKyMKK0xvZ0xldmVsIHdhcm4KKworIworIyBUaGUgZm9s
bG93aW5nIGRpcmVjdGl2ZXMgZGVmaW5lIHNvbWUgZm9ybWF0IG5pY2tuYW1lcyBmb3IgdXNlIHdp
dGgKKyMgYSBDdXN0b21Mb2cgZGlyZWN0aXZlIChzZWUgYmVsb3cpLgorIworTG9nRm9ybWF0ICIl
aCAlbCAldSAldCBcIiVyXCIgJT5zICViIFwiJXtSZWZlcmVyfWlcIiBcIiV7VXNlci1BZ2VudH1p
XCIiIGNvbWJpbmVkCitMb2dGb3JtYXQgIiVoICVsICV1ICV0IFwiJXJcIiAlPnMgJWIiIGNvbW1v
bgorTG9nRm9ybWF0ICIle1JlZmVyZXJ9aSAtPiAlVSIgcmVmZXJlcgorTG9nRm9ybWF0ICIle1Vz
ZXItYWdlbnR9aSIgYWdlbnQKKworIworIyBUaGUgbG9jYXRpb24gYW5kIGZvcm1hdCBvZiB0aGUg
YWNjZXNzIGxvZ2ZpbGUgKENvbW1vbiBMb2dmaWxlIEZvcm1hdCkuCisjIElmIHlvdSBkbyBub3Qg
ZGVmaW5lIGFueSBhY2Nlc3MgbG9nZmlsZXMgd2l0aGluIGEgPFZpcnR1YWxIb3N0PgorIyBjb250
YWluZXIsIHRoZXkgd2lsbCBiZSBsb2dnZWQgaGVyZS4gIENvbnRyYXJpd2lzZSwgaWYgeW91ICpk
byoKKyMgZGVmaW5lIHBlci08VmlydHVhbEhvc3Q+IGFjY2VzcyBsb2dmaWxlcywgdHJhbnNhY3Rp
b25zIHdpbGwgYmUKKyMgbG9nZ2VkIHRoZXJlaW4gYW5kICpub3QqIGluIHRoaXMgZmlsZS4KKyMK
KyMgQ29uZmlndXJlZCBmcm9tIHRoZSBodHRwZCBjb21tYW5kIGxpbmUgZm9yIFdlYktpdCBsYXlv
dXQgdGVzdHMuCisjQ3VzdG9tTG9nICIvdG1wL2xheW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzX2xv
ZyIgY29tbW9uCisKKyMKKyMgSWYgeW91IHByZWZlciBhIHNpbmdsZSBsb2dmaWxlIHdpdGggYWNj
ZXNzLCBhZ2VudCwgYW5kIHJlZmVyZXIgaW5mb3JtYXRpb24KKyMgKENvbWJpbmVkIExvZ2ZpbGUg
Rm9ybWF0KSB5b3UgY2FuIHVzZSB0aGUgZm9sbG93aW5nIGRpcmVjdGl2ZS4KKyMKKyNDdXN0b21M
b2cgIi90bXAvbGF5b3V0LXRlc3QtcmVzdWx0cy9hY2Nlc3NfbG9nIiBjb21iaW5lZAorCisjCisj
IE9wdGlvbmFsbHkgYWRkIGEgbGluZSBjb250YWluaW5nIHRoZSBzZXJ2ZXIgdmVyc2lvbiBhbmQg
dmlydHVhbCBob3N0CisjIG5hbWUgdG8gc2VydmVyLWdlbmVyYXRlZCBwYWdlcyAoZXJyb3IgZG9j
dW1lbnRzLCBGVFAgZGlyZWN0b3J5IGxpc3RpbmdzLAorIyBtb2Rfc3RhdHVzIGFuZCBtb2RfaW5m
byBvdXRwdXQgZXRjLiwgYnV0IG5vdCBDR0kgZ2VuZXJhdGVkIGRvY3VtZW50cykuCisjIFNldCB0
byAiRU1haWwiIHRvIGFsc28gaW5jbHVkZSBhIG1haWx0bzogbGluayB0byB0aGUgU2VydmVyQWRt
aW4uCisjIFNldCB0byBvbmUgb2Y6ICBPbiB8IE9mZiB8IEVNYWlsCisjCitTZXJ2ZXJTaWduYXR1
cmUgT24KKworIworIyBBbGlhc2VzOiBBZGQgaGVyZSBhcyBtYW55IGFsaWFzZXMgYXMgeW91IG5l
ZWQgKHdpdGggbm8gbGltaXQpLiBUaGUgZm9ybWF0IGlzIAorIyBBbGlhcyBmYWtlbmFtZSByZWFs
bmFtZQorIworPElmTW9kdWxlIG1vZF9hbGlhcy5jPgorPC9JZk1vZHVsZT4KKyMgRW5kIG9mIGFs
aWFzZXMuCisKKyMKKyMgUmVkaXJlY3QgYWxsb3dzIHlvdSB0byB0ZWxsIGNsaWVudHMgYWJvdXQg
ZG9jdW1lbnRzIHdoaWNoIHVzZWQgdG8gZXhpc3QgaW4KKyMgeW91ciBzZXJ2ZXIncyBuYW1lc3Bh
Y2UsIGJ1dCBkbyBub3QgYW55bW9yZS4gVGhpcyBhbGxvd3MgeW91IHRvIHRlbGwgdGhlCisjIGNs
aWVudHMgd2hlcmUgdG8gbG9vayBmb3IgdGhlIHJlbG9jYXRlZCBkb2N1bWVudC4KKyMgRm9ybWF0
OiBSZWRpcmVjdCBvbGQtVVJJIG5ldy1VUkwKKyMKKworIworIyBEb2N1bWVudCB0eXBlcy4KKyMK
KzxJZk1vZHVsZSBtb2RfbWltZS5jPgorCisgICAgIworICAgICMgQWRkTGFuZ3VhZ2UgYWxsb3dz
IHlvdSB0byBzcGVjaWZ5IHRoZSBsYW5ndWFnZSBvZiBhIGRvY3VtZW50LiBZb3UgY2FuCisgICAg
IyB0aGVuIHVzZSBjb250ZW50IG5lZ290aWF0aW9uIHRvIGdpdmUgYSBicm93c2VyIGEgZmlsZSBp
biBhIGxhbmd1YWdlCisgICAgIyBpdCBjYW4gdW5kZXJzdGFuZC4gIAorICAgICMKKyAgICAjIE5v
dGUgMTogVGhlIHN1ZmZpeCBkb2VzIG5vdCBoYXZlIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBsYW5n
dWFnZSAKKyAgICAjIGtleXdvcmQgLS0tIHRob3NlIHdpdGggZG9jdW1lbnRzIGluIFBvbGlzaCAo
d2hvc2UgbmV0LXN0YW5kYXJkIAorICAgICMgbGFuZ3VhZ2UgY29kZSBpcyBwbCkgbWF5IHdpc2gg
dG8gdXNlICJBZGRMYW5ndWFnZSBwbCAucG8iIHRvIAorICAgICMgYXZvaWQgdGhlIGFtYmlndWl0
eSB3aXRoIHRoZSBjb21tb24gc3VmZml4IGZvciBwZXJsIHNjcmlwdHMuCisgICAgIworICAgICMg
Tm90ZSAyOiBUaGUgZXhhbXBsZSBlbnRyaWVzIGJlbG93IGlsbHVzdHJhdGUgdGhhdCBpbiBxdWl0
ZQorICAgICMgc29tZSBjYXNlcyB0aGUgdHdvIGNoYXJhY3RlciAnTGFuZ3VhZ2UnIGFiYnJldmlh
dGlvbiBpcyBub3QKKyAgICAjIGlkZW50aWNhbCB0byB0aGUgdHdvIGNoYXJhY3RlciAnQ291bnRy
eScgY29kZSBmb3IgaXRzIGNvdW50cnksCisgICAgIyBFLmcuICdEYW5tYXJrL2RrJyB2ZXJzdXMg
J0RhbmlzaC9kYScuCisgICAgIworICAgICMgTm90ZSAzOiBJbiB0aGUgY2FzZSBvZiAnbHR6JyB3
ZSB2aW9sYXRlIHRoZSBSRkMgYnkgdXNpbmcgYSB0aHJlZSBjaGFyIAorICAgICMgc3BlY2lmaWVy
LiBCdXQgdGhlcmUgaXMgJ3dvcmsgaW4gcHJvZ3Jlc3MnIHRvIGZpeCB0aGlzIGFuZCBnZXQgCisg
ICAgIyB0aGUgcmVmZXJlbmNlIGRhdGEgZm9yIHJmYzE3NjYgY2xlYW5lZCB1cC4KKyAgICAjCisg
ICAgIyBEYW5pc2ggKGRhKSAtIER1dGNoIChubCkgLSBFbmdsaXNoIChlbikgLSBFc3RvbmlhbiAo
ZWUpCisgICAgIyBGcmVuY2ggKGZyKSAtIEdlcm1hbiAoZGUpIC0gR3JlZWstTW9kZXJuIChlbCkK
KyAgICAjIEl0YWxpYW4gKGl0KSAtIEtvcmVhbiAoa3IpIC0gTm9yd2VnaWFuIChubykgLSBOb3J3
ZWdpYW4gTnlub3JzayAobm4pCisgICAgIyBQb3J0dWdlc2UgKHB0KSAtIEx1eGVtYm91cmdlb2lz
KiAobHR6KQorICAgICMgU3BhbmlzaCAoZXMpIC0gU3dlZGlzaCAoc3YpIC0gQ2F0YWxhbiAoY2Ep
IC0gQ3plY2goY3MpCisgICAgIyBQb2xpc2ggKHBsKSAtIEJyYXppbGlhbiBQb3J0dWd1ZXNlIChw
dC1icikgLSBKYXBhbmVzZSAoamEpCisgICAgIyBSdXNzaWFuIChydSkKKyAgICAjCisgICAgQWRk
TGFuZ3VhZ2UgZGEgLmRrCisgICAgQWRkTGFuZ3VhZ2UgbmwgLm5sCisgICAgQWRkTGFuZ3VhZ2Ug
ZW4gLmVuCisgICAgQWRkTGFuZ3VhZ2UgZXQgLmVlCisgICAgQWRkTGFuZ3VhZ2UgZnIgLmZyCisg
ICAgQWRkTGFuZ3VhZ2UgZGUgLmRlCisgICAgQWRkTGFuZ3VhZ2UgZWwgLmVsCisgICAgQWRkTGFu
Z3VhZ2UgaGUgLmhlCisgICAgQWRkQ2hhcnNldCBJU08tODg1OS04IC5pc284ODU5LTgKKyAgICBB
ZGRMYW5ndWFnZSBpdCAuaXQKKyAgICBBZGRMYW5ndWFnZSBqYSAuamEKKyAgICBBZGRDaGFyc2V0
IElTTy0yMDIyLUpQIC5qaXMKKyAgICBBZGRMYW5ndWFnZSBrciAua3IKKyAgICBBZGRDaGFyc2V0
IElTTy0yMDIyLUtSIC5pc28ta3IKKyAgICBBZGRMYW5ndWFnZSBubiAubm4KKyAgICBBZGRMYW5n
dWFnZSBubyAubm8KKyAgICBBZGRMYW5ndWFnZSBwbCAucG8KKyAgICBBZGRDaGFyc2V0IElTTy04
ODU5LTIgLmlzby1wbAorICAgIEFkZExhbmd1YWdlIHB0IC5wdAorICAgIEFkZExhbmd1YWdlIHB0
LWJyIC5wdC1icgorICAgIEFkZExhbmd1YWdlIGx0eiAubHUKKyAgICBBZGRMYW5ndWFnZSBjYSAu
Y2EKKyAgICBBZGRMYW5ndWFnZSBlcyAuZXMKKyAgICBBZGRMYW5ndWFnZSBzdiAuc3YKKyAgICBB
ZGRMYW5ndWFnZSBjcyAuY3ogLmNzCisgICAgQWRkTGFuZ3VhZ2UgcnUgLnJ1CisgICAgQWRkTGFu
Z3VhZ2UgemgtVFcgLnpoLXR3CisgICAgQWRkQ2hhcnNldCBCaWc1ICAgICAgICAgLkJpZzUgICAg
LmJpZzUKKyAgICBBZGRDaGFyc2V0IFdJTkRPV1MtMTI1MSAuY3AtMTI1MQorICAgIEFkZENoYXJz
ZXQgQ1A4NjYgICAgICAgIC5jcDg2NgorICAgIEFkZENoYXJzZXQgSVNPLTg4NTktNSAgIC5pc28t
cnUKKyAgICBBZGRDaGFyc2V0IEtPSTgtUiAgICAgICAua29pOC1yCisgICAgQWRkQ2hhcnNldCBV
Q1MtMiAgICAgICAgLnVjczIKKyAgICBBZGRDaGFyc2V0IFVDUy00ICAgICAgICAudWNzNAorICAg
IEFkZENoYXJzZXQgVVRGLTggICAgICAgIC51dGY4CisKKyAgICAjIExhbmd1YWdlUHJpb3JpdHkg
YWxsb3dzIHlvdSB0byBnaXZlIHByZWNlZGVuY2UgdG8gc29tZSBsYW5ndWFnZXMKKyAgICAjIGlu
IGNhc2Ugb2YgYSB0aWUgZHVyaW5nIGNvbnRlbnQgbmVnb3RpYXRpb24uCisgICAgIworICAgICMg
SnVzdCBsaXN0IHRoZSBsYW5ndWFnZXMgaW4gZGVjcmVhc2luZyBvcmRlciBvZiBwcmVmZXJlbmNl
LiBXZSBoYXZlCisgICAgIyBtb3JlIG9yIGxlc3MgYWxwaGFiZXRpemVkIHRoZW0gaGVyZS4gWW91
IHByb2JhYmx5IHdhbnQgdG8gY2hhbmdlIHRoaXMuCisgICAgIworICAgIDxJZk1vZHVsZSBtb2Rf
bmVnb3RpYXRpb24uYz4KKyAgICAgICAgTGFuZ3VhZ2VQcmlvcml0eSBlbiBkYSBubCBldCBmciBk
ZSBlbCBpdCBqYSBrciBubyBwbCBwdCBwdC1iciBydSBsdHogY2EgZXMgc3YgdHcKKyAgICA8L0lm
TW9kdWxlPgorCisgICAgIworICAgICMgQWRkVHlwZSBhbGxvd3MgeW91IHRvIHR3ZWFrIG1pbWUu
dHlwZXMgd2l0aG91dCBhY3R1YWxseSBlZGl0aW5nIGl0LCBvciB0bworICAgICMgbWFrZSBjZXJ0
YWluIGZpbGVzIHRvIGJlIGNlcnRhaW4gdHlwZXMuCisgICAgIworICAgIEFkZFR5cGUgYXBwbGlj
YXRpb24veC10YXIgLnRnegorCisgICAgIworICAgICMgQWRkRW5jb2RpbmcgYWxsb3dzIHlvdSB0
byBoYXZlIGNlcnRhaW4gYnJvd3NlcnMgdW5jb21wcmVzcworICAgICMgaW5mb3JtYXRpb24gb24g
dGhlIGZseS4gTm90ZTogTm90IGFsbCBicm93c2VycyBzdXBwb3J0IHRoaXMuCisgICAgIyBEZXNw
aXRlIHRoZSBuYW1lIHNpbWlsYXJpdHksIHRoZSBmb2xsb3dpbmcgQWRkKiBkaXJlY3RpdmVzIGhh
dmUgbm90aGluZworICAgICMgdG8gZG8gd2l0aCB0aGUgRmFuY3lJbmRleGluZyBjdXN0b21pemF0
aW9uIGRpcmVjdGl2ZXMgYWJvdmUuCisgICAgIworICAgIEFkZEVuY29kaW5nIHgtY29tcHJlc3Mg
LloKKyAgICBBZGRFbmNvZGluZyB4LWd6aXAgLmd6IC50Z3oKKyAgICAjCisgICAgIyBJZiB0aGUg
QWRkRW5jb2RpbmcgZGlyZWN0aXZlcyBhYm92ZSBhcmUgY29tbWVudGVkLW91dCwgdGhlbiB5b3UK
KyAgICAjIHByb2JhYmx5IHNob3VsZCBkZWZpbmUgdGhvc2UgZXh0ZW5zaW9ucyB0byBpbmRpY2F0
ZSBtZWRpYSB0eXBlczoKKyAgICAjCisgICAgI0FkZFR5cGUgYXBwbGljYXRpb24veC1jb21wcmVz
cyAuWgorICAgICNBZGRUeXBlIGFwcGxpY2F0aW9uL3gtZ3ppcCAuZ3ogLnRnegorCisgICAgIwor
ICAgICMgQWRkSGFuZGxlciBhbGxvd3MgeW91IHRvIG1hcCBjZXJ0YWluIGZpbGUgZXh0ZW5zaW9u
cyB0byAiaGFuZGxlcnMiLAorICAgICMgYWN0aW9ucyB1bnJlbGF0ZWQgdG8gZmlsZXR5cGUuIFRo
ZXNlIGNhbiBiZSBlaXRoZXIgYnVpbHQgaW50byB0aGUgc2VydmVyCisgICAgIyBvciBhZGRlZCB3
aXRoIHRoZSBBY3Rpb24gY29tbWFuZCAoc2VlIGJlbG93KQorICAgICMKKyAgICAjIElmIHlvdSB3
YW50IHRvIHVzZSBzZXJ2ZXIgc2lkZSBpbmNsdWRlcywgb3IgQ0dJIG91dHNpZGUKKyAgICAjIFNj
cmlwdEFsaWFzZWQgZGlyZWN0b3JpZXMsIHVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmVzLgor
ICAgICMKKyAgICAjIFRvIHVzZSBDR0kgc2NyaXB0czoKKyAgICAjCisgICAgQWRkSGFuZGxlciBj
Z2ktc2NyaXB0IC5jZ2kgLnBsCisKKyAgICAjCisgICAgIyBUbyB1c2Ugc2VydmVyLXBhcnNlZCBI
VE1MIGZpbGVzCisgICAgIworICAgIEFkZFR5cGUgdGV4dC9odG1sIC5zaHRtbAorICAgIEFkZEhh
bmRsZXIgc2VydmVyLXBhcnNlZCAuc2h0bWwKKworICAgICMKKyAgICAjIFVuY29tbWVudCB0aGUg
Zm9sbG93aW5nIGxpbmUgdG8gZW5hYmxlIEFwYWNoZSdzIHNlbmQtYXNpcyBIVFRQIGZpbGUKKyAg
ICAjIGZlYXR1cmUKKyAgICAjCisgICAgQWRkSGFuZGxlciBzZW5kLWFzLWlzIGFzaXMKKworICAg
ICMKKyAgICAjIElmIHlvdSB3aXNoIHRvIHVzZSBzZXJ2ZXItcGFyc2VkIGltYWdlbWFwIGZpbGVz
LCB1c2UKKyAgICAjCisgICAgI0FkZEhhbmRsZXIgaW1hcC1maWxlIG1hcAorCisgICAgIworICAg
ICMgVG8gZW5hYmxlIHR5cGUgbWFwcywgeW91IG1pZ2h0IHdhbnQgdG8gdXNlCisgICAgIworICAg
ICNBZGRIYW5kbGVyIHR5cGUtbWFwIHZhcgorCis8L0lmTW9kdWxlPgorIyBFbmQgb2YgZG9jdW1l
bnQgdHlwZXMuCisKKyMKKyMgQWN0aW9uIGxldHMgeW91IGRlZmluZSBtZWRpYSB0eXBlcyB0aGF0
IHdpbGwgZXhlY3V0ZSBhIHNjcmlwdCB3aGVuZXZlcgorIyBhIG1hdGNoaW5nIGZpbGUgaXMgY2Fs
bGVkLiBUaGlzIGVsaW1pbmF0ZXMgdGhlIG5lZWQgZm9yIHJlcGVhdGVkIFVSTAorIyBwYXRobmFt
ZXMgZm9yIG9mdC11c2VkIENHSSBmaWxlIHByb2Nlc3NvcnMuCisjIEZvcm1hdDogQWN0aW9uIG1l
ZGlhL3R5cGUgL2NnaS1zY3JpcHQvbG9jYXRpb24KKyMgRm9ybWF0OiBBY3Rpb24gaGFuZGxlci1u
YW1lIC9jZ2ktc2NyaXB0L2xvY2F0aW9uCisjCisKKyMKKyMgTWV0YURpcjogc3BlY2lmaWVzIHRo
ZSBuYW1lIG9mIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggQXBhY2hlIGNhbiBmaW5kCisjIG1ldGEg
aW5mb3JtYXRpb24gZmlsZXMuIFRoZXNlIGZpbGVzIGNvbnRhaW4gYWRkaXRpb25hbCBIVFRQIGhl
YWRlcnMKKyMgdG8gaW5jbHVkZSB3aGVuIHNlbmRpbmcgdGhlIGRvY3VtZW50CisjCisjTWV0YURp
ciAud2ViCisKKyMKKyMgTWV0YVN1ZmZpeDogc3BlY2lmaWVzIHRoZSBmaWxlIG5hbWUgc3VmZml4
IGZvciB0aGUgZmlsZSBjb250YWluaW5nIHRoZQorIyBtZXRhIGluZm9ybWF0aW9uLgorIworI01l
dGFTdWZmaXggLm1ldGEKKworIworIyBDdXN0b21pemFibGUgZXJyb3IgcmVzcG9uc2UgKEFwYWNo
ZSBzdHlsZSkKKyMgIHRoZXNlIGNvbWUgaW4gdGhyZWUgZmxhdm9ycworIworIyAgICAxKSBwbGFp
biB0ZXh0CisjRXJyb3JEb2N1bWVudCA1MDAgIlRoZSBzZXJ2ZXIgbWFkZSBhIGJvbyBib28uCisj
ICBuLmIuICB0aGUgc2luZ2xlIGxlYWRpbmcgKCIpIG1hcmtzIGl0IGFzIHRleHQsIGl0IGRvZXMg
bm90IGdldCBvdXRwdXQKKyMKKyMgICAgMikgbG9jYWwgcmVkaXJlY3RzCisjRXJyb3JEb2N1bWVu
dCA0MDQgL21pc3NpbmcuaHRtbAorIyAgdG8gcmVkaXJlY3QgdG8gbG9jYWwgVVJMIC9taXNzaW5n
Lmh0bWwKKyNFcnJvckRvY3VtZW50IDQwNCAvY2dpLWJpbi9taXNzaW5nX2hhbmRsZXIucGwKKyMg
IE4uQi46IFlvdSBjYW4gcmVkaXJlY3QgdG8gYSBzY3JpcHQgb3IgYSBkb2N1bWVudCB1c2luZyBz
ZXJ2ZXItc2lkZS1pbmNsdWRlcy4KKyMKKyMgICAgMykgZXh0ZXJuYWwgcmVkaXJlY3RzCisjRXJy
b3JEb2N1bWVudCA0MDIgaHR0cDovL3NvbWUub3RoZXItc2VydmVyLmNvbS9zdWJzY3JpcHRpb25f
aW5mby5odG1sCisjICBOLkIuOiBNYW55IG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgYXNz
b2NpYXRlZCB3aXRoIHRoZSBvcmlnaW5hbAorIyAgcmVxdWVzdCB3aWxsICpub3QqIGJlIGF2YWls
YWJsZSB0byBzdWNoIGEgc2NyaXB0LgorCisjCisjIFByb3h5IFNlcnZlciBkaXJlY3RpdmVzLiBV
bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lcyB0bworIyBlbmFibGUgdGhlIHByb3h5IHNlcnZl
cjoKKyMKKyM8SWZNb2R1bGUgbW9kX3Byb3h5LmM+CisjICAgIFByb3h5UmVxdWVzdHMgT24KKwor
IyAgICA8RGlyZWN0b3J5IHByb3h5Oio+CisjICAgICAgICBPcmRlciBkZW55LGFsbG93CisjICAg
ICAgICBEZW55IGZyb20gYWxsCisjICAgICAgICBBbGxvdyBmcm9tIC55b3VyLWRvbWFpbi5jb20K
KyMgICAgPC9EaXJlY3Rvcnk+CisKKyAgICAjCisgICAgIyBFbmFibGUvZGlzYWJsZSB0aGUgaGFu
ZGxpbmcgb2YgSFRUUC8xLjEgIlZpYToiIGhlYWRlcnMuCisgICAgIyAoIkZ1bGwiIGFkZHMgdGhl
IHNlcnZlciB2ZXJzaW9uOyAiQmxvY2siIHJlbW92ZXMgYWxsIG91dGdvaW5nIFZpYTogaGVhZGVy
cykKKyAgICAjIFNldCB0byBvbmUgb2Y6IE9mZiB8IE9uIHwgRnVsbCB8IEJsb2NrCisgICAgIwor
IyAgICBQcm94eVZpYSBPbgorCisgICAgIworICAgICMgVG8gZW5hYmxlIHRoZSBjYWNoZSBhcyB3
ZWxsLCBlZGl0IGFuZCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lczoKKyAgICAjIChubyBj
YWNoZWluZyB3aXRob3V0IENhY2hlUm9vdCkKKyAgICAjCisjICAgIENhY2hlUm9vdCAiL3ByaXZh
dGUvdmFyL3J1bi9wcm94eSIKKyMgICAgQ2FjaGVTaXplIDUKKyMgICAgQ2FjaGVHY0ludGVydmFs
IDQKKyMgICAgQ2FjaGVNYXhFeHBpcmUgMjQKKyMgICAgQ2FjaGVMYXN0TW9kaWZpZWRGYWN0b3Ig
MC4xCisjICAgIENhY2hlRGVmYXVsdEV4cGlyZSAxCisjICAgIE5vQ2FjaGUgYS1kb21haW4uY29t
IGFub3RoZXItZG9tYWluLmVkdSBqb2VzLmdhcmFnZS1zYWxlLmNvbQorCisjPC9JZk1vZHVsZT4K
KyMgRW5kIG9mIHByb3h5IGRpcmVjdGl2ZXMuCisKKworPElmTW9kdWxlIG1vZF9waHA1LmM+Cisg
ICAgIyBJZiBwaHAgaXMgdHVybmVkIG9uLCB3ZSByZXBzZWN0IC5waHAgYW5kIC5waHBzIGZpbGVz
LgorICAgIEFkZFR5cGUgYXBwbGljYXRpb24veC1odHRwZC1waHAgLnBocAorICAgIEFkZFR5cGUg
YXBwbGljYXRpb24veC1odHRwZC1waHAgLmJhdAorICAgIEFkZFR5cGUgYXBwbGljYXRpb24veC1o
dHRwZC1waHAtc291cmNlIC5waHBzCisKKyAgICAjIFNpbmNlIG1vc3QgdXNlcnMgd2lsbCB3YW50
IGluZGV4LnBocCB0byB3b3JrIHdlCisgICAgIyBhbHNvIGF1dG9tYXRpY2FsbHkgZW5hYmxlIGlu
ZGV4LnBocAorICAgIDxJZk1vZHVsZSBtb2RfZGlyLmM+CisgICAgICAgIERpcmVjdG9yeUluZGV4
IGluZGV4Lmh0bWwgaW5kZXgucGhwCisgICAgPC9JZk1vZHVsZT4KKzwvSWZNb2R1bGU+CisKKzxJ
Zk1vZHVsZSBtb2RfcmV3cml0ZS5jPgorICAgIFJld3JpdGVFbmdpbmUgT24KKyAgICBSZXdyaXRl
Q29uZCAle1JFUVVFU1RfTUVUSE9EfSBeVFJBQ0UKKyAgICBSZXdyaXRlUnVsZSAuKiAtIFtGXQor
PC9JZk1vZHVsZT4KKworPFZpcnR1YWxIb3N0ICo6ODQ0Mz4KKyAgICBTZXJ2ZXJOYW1lIDEyNy4w
LjAuMQorICAgIFNTTEVuZ2luZSBPbgorPC9WaXJ0dWFsSG9zdD4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvcnVuLXdlYmtpdC1odHRwZCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvcnVu
LXdlYmtpdC1odHRwZAppbmRleCA5ZWEyNTUxLi43ODI2OGQyIDEwMDc1NQotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9y
dW4td2Via2l0LWh0dHBkCkBAIC0yLDYgKzIsNyBAQAogCiAjIENvcHlyaWdodCAoQykgMjAwNSwg
MjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQg
KEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQorIyBDb3B5cmlnaHQg
KEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTY5LDYgKzcwLDcgQEAgc2V0Q29uZmln
dXJhdGlvbigpOwogbXkgJHByb2R1Y3REaXIgPSBwcm9kdWN0RGlyKCk7CiBjaGRpcldlYktpdCgp
OwogbXkgJHRlc3REaXJlY3RvcnkgPSBGaWxlOjpTcGVjLT5jYXRmaWxlKGdldGN3ZCgpLCAiTGF5
b3V0VGVzdHMiKTsKKyR0ZXN0RGlyZWN0b3J5ID0gY29udmVydE1zeXNQYXRoKCR0ZXN0RGlyZWN0
b3J5KSBpZiBpc01zeXMoKTsKIG15ICRsaXN0ZW4gPSAiMTI3LjAuMC4xOiRodHRwZFBvcnQiOwog
JGxpc3RlbiA9ICIkaHR0cGRQb3J0IiBpZiAoJGFsbEludGVyZmFjZXMpOwogCkBAIC04MiwxNCAr
ODQsMTYgQEAgcHJpbnQgIlByZXNzIEN0cmwrQyB0byBzdG9wIGl0LlxuXG4iOwogCiBteSBAYXJn
cyA9ICgKICAgICAiLUMiLCAiTGlzdGVuICRsaXN0ZW4iLAotICAgICItYyIsICJDdXN0b21Mb2cg
fC91c3IvYmluL3RlZSBjb21tb24iLAotICAgICItYyIsICJFcnJvckxvZyB8L3Vzci9iaW4vdGVl
IiwKLSAgICAjIFJ1biBpbiBzaW5nbGUtcHJvY2VzcyBtb2RlLCBkbyBub3QgZGV0YWNoIGZyb20g
dGhlIGNvbnRyb2xsaW5nIHRlcm1pbmFsLgotICAgICItWCIsCiAgICAgIyBEaXNhYmxlIEtlZXAt
QWxpdmUgc3VwcG9ydC4gTWFrZXMgdGVzdGluZyBpbiBtdWx0aXBsZSBicm93c2VycyBlYXNpZXIg
KG5vIG5lZWQgdG8gd2FpdAogICAgICMgZm9yIGFub3RoZXIgYnJvd3NlcidzIGNvbm5lY3Rpb24g
dG8gZXhwaXJlKS4KICAgICAiLWMiLCAiS2VlcEFsaXZlIDAiCiApOworcHVzaCBAYXJncywgKAor
ICAgICItYyIsICJDdXN0b21Mb2cgfC91c3IvYmluL3RlZSBjb21tb24iLAorICAgICItYyIsICJF
cnJvckxvZyB8L3Vzci9iaW4vdGVlIiwKKyAgICAjIFJ1biBpbiBzaW5nbGUtcHJvY2VzcyBtb2Rl
LCBkbyBub3QgZGV0YWNoIGZyb20gdGhlIGNvbnRyb2xsaW5nIHRlcm1pbmFsLgorICAgICItWCIs
CispIHVubGVzcyBpc01zeXMoKTsKIAogbXkgQGRlZmF1bHRBcmdzID0gZ2V0RGVmYXVsdENvbmZp
Z0ZvclRlc3REaXJlY3RvcnkoJHRlc3REaXJlY3RvcnkpOwogQGFyZ3MgPSAoQGRlZmF1bHRBcmdz
LCBAYXJncyk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvaHR0
cGQucG0gYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvaHR0cGQucG0KaW5kZXggYjQx
NWRiNmMuLjUwNTM0MzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9odHRwZC5wbQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvaHR0cGQucG0K
QEAgLTEsNiArMSw3IEBACiAjIENvcHlyaWdodCAoQykgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwg
MjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQKICMgQ29weXJpZ2h0IChDKSAyMDA2
IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKICMgQ29weXJpZ2h0IChDKSAyMDEw
IEFuZHJhcyBCZWNzaSAoYWJlY3NpQGluZi51LXN6ZWdlZC5odSksIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkCisjIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTgsNiAr
NTksNyBAQCBCRUdJTiB7CiB9CiAKIG15ICR0bXBEaXIgPSAiL3RtcCI7CiskdG1wRGlyID0gY29u
dmVydE1zeXNQYXRoKCR0bXBEaXIpIGlmIGlzTXN5cygpOwogbXkgJGh0dHBkTG9ja1ByZWZpeCA9
ICJXZWJLaXRIdHRwZC5sb2NrLiI7CiBteSAkbXlMb2NrRmlsZTsKIG15ICRleGNsdXNpdmVMb2Nr
RmlsZSA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHRtcERpciwgIldlYktpdC5sb2NrIik7CkBAIC03
Niw2ICs3OCw4IEBAIHN1YiBnZXRIVFRQRFBhdGgKIHsKICAgICBpZiAoaXNEZWJpYW5CYXNlZCgp
KSB7CiAgICAgICAgICRodHRwZFBhdGggPSAiL3Vzci9zYmluL2FwYWNoZTIiOworICAgIH0gZWxz
aWYgKGlzTXN5cygpKSB7CisgICAgICAgICRodHRwZFBhdGggPSAiL2MvcHJvZ3JhbVwgZmlsZXMv
YXBhY2hlXCBzb2Z0d2FyZVwgZm91bmRhdGlvbi9hcGFjaGUyLjIvYmluL2h0dHBkLmV4ZSI7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgJGh0dHBkUGF0aCA9ICIvdXNyL3NiaW4vaHR0cGQiOwogICAg
IH0KQEAgLTEwMCwxMyArMTA0LDE2IEBAIHN1YiBnZXREZWZhdWx0Q29uZmlnRm9yVGVzdERpcmVj
dG9yeQogICAgICAgICAjIFNldHVwIGEgbGluayB0byB3aGVyZSB0aGUganMgdGVzdCB0ZW1wbGF0
ZXMgYXJlIHN0b3JlZCwgdXNlIC1jIHNvIHRoYXQgbW9kX2FsaWFzIHdpbGwgYWxyZWFkeSBiZSBs
b2FkZWQuCiAgICAgICAgICItYyIsICJBbGlhcyAvanMtdGVzdC1yZXNvdXJjZXMgXCIkanNUZXN0
UmVzb3VyY2VzRGlyZWN0b3J5XCIiLAogICAgICAgICAiLWMiLCAiVHlwZXNDb25maWcgXCIkdHlw
ZXNDb25maWdcIiIsCi0gICAgICAgICMgQXBhY2hlIHdvdWxkbid0IHJ1biBDR0lzIHdpdGggcGVy
bWlzc2lvbnM9PTcwMCBvdGhlcndpc2UKLSAgICAgICAgIi1jIiwgIlVzZXIgXCIjJDxcIiIsCi0g
ICAgICAgICItYyIsICJMb2NrRmlsZSBcIiRodHRwZExvY2tGaWxlXCIiLAogICAgICAgICAiLWMi
LCAiUGlkRmlsZSBcIiRodHRwZFBpZEZpbGVcIiIsCiAgICAgICAgICItYyIsICJTY29yZUJvYXJk
RmlsZSBcIiRodHRwZFNjb3JlQm9hcmRGaWxlXCIiLAogICAgICk7CiAKKyAgICBwdXNoIEBodHRw
ZEFyZ3MsICgKKyAgICAgICAgIyBBcGFjaGUgd291bGRuJ3QgcnVuIENHSXMgd2l0aCBwZXJtaXNz
aW9ucz09NzAwIG90aGVyd2lzZQorICAgICAgICAiLWMiLCAiVXNlciBcIiMkPFwiIiwKKyAgICAg
ICAgIi1jIiwgIkxvY2tGaWxlIFwiJGh0dHBkTG9ja0ZpbGVcIiIKKyAgICApIHVubGVzcyBpc01z
eXMoKTsKKwogICAgICMgRklYTUU6IEVuYWJsZSB0aGlzIG9uIFdpbmRvd3Mgb25jZSA8cmRhcjov
L3Byb2JsZW0vNTM0NTk4NT4gaXMgZml4ZWQKICAgICAjIFRoZSB2ZXJzaW9uIG9mIEFwYWNoZSB3
ZSB1c2Ugd2l0aCBDeWd3aW4gZG9lcyBub3Qgc3VwcG9ydCBTU0wKICAgICBteSAkc3NsQ2VydGlm
aWNhdGUgPSAiJHRlc3REaXJlY3RvcnkvaHR0cC9jb25mL3dlYmtpdC1odHRwZC5wZW0iOwpAQCAt
MTI5LDYgKzEzNiw4IEBAIHN1YiBnZXRIVFRQRENvbmZpZ1BhdGhGb3JUZXN0RGlyZWN0b3J5CiAg
ICAgICAgICAgICBjaG1vZCgwNzU1LCAiL3Vzci9saWIvYXBhY2hlL2xpYnBocDQuZGxsIik7CiAg
ICAgICAgIH0KICAgICAgICAgJGh0dHBkQ29uZmlnID0gIiR3aW5kb3dzQ29uZkRpcmVjdG9yeS9j
eWd3aW4taHR0cGQuY29uZiI7CisgICAgfSBlbHNpZiAoaXNNc3lzKCkpIHsKKyAgICAgICAgJGh0
dHBkQ29uZmlnID0gIiR0ZXN0RGlyZWN0b3J5L2h0dHAvY29uZi9hcGFjaGUyLW1zeXMtaHR0cGQu
Y29uZiI7CiAgICAgfSBlbHNpZiAoaXNEZWJpYW5CYXNlZCgpKSB7CiAgICAgICAgICRodHRwZENv
bmZpZyA9ICIkdGVzdERpcmVjdG9yeS9odHRwL2NvbmYvYXBhY2hlMi1kZWJpYW4taHR0cGQuY29u
ZiI7CiAgICAgfSBlbHNpZiAoaXNGZWRvcmFCYXNlZCgpKSB7CkBAIC0zMTksMyArMzI4LDEzIEBA
IHN1YiBnZXRXYWl0VGltZQogICAgIH0KICAgICByZXR1cm4gJHdhaXRUaW1lOwogfQorCitzdWIg
Y29udmVydE1zeXNQYXRoCit7CisgICAgbXkgKCRwYXRoKSA9IEBfOworICAgIHJldHVybiB1bmxl
c3MgaXNNc3lzKCk7CisKKyAgICAkcGF0aCA9IGBjbWQuZXhlIC8vYyBlY2hvICRwYXRoYDsKKyAg
ICAkcGF0aCA9fiBzL1xyXG4kLy87CisgICAgcmV0dXJuICRwYXRoOworfQotLSAKMS43LjIuMy5t
c3lzZ2l0LjAKCg==
</data>
<flag name="review"
          id="65468"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77891</attachid>
            <date>2011-01-04 08:25:55 -0800</date>
            <delta_ts>2011-01-31 14:00:27 -0800</delta_ts>
            <desc>Same patch with the addition of ChangeLogs and moved from WebKitTools/ to Tools/</desc>
            <filename>patch_with_changelogs.patch</filename>
            <type>text/plain</type>
            <size>34190</size>
            <attacher>sccameron</attacher>
            
              <data encoding="base64">RnJvbSA0MjVhOTY2MWE3NDVhNjA0MWY4MTQxMmIwNjU3NjNjYzc1NjYzMDBhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTY290dCBDYW1lcm9uIDxzY2NhbWVyb25AcmltLmNvbT4KRGF0
ZTogVHVlLCA0IEphbiAyMDExIDExOjEyOjQ3IC0wNTAwClN1YmplY3Q6IFtQQVRDSF0gMjAxMS0w
MS0wNCAgU2NvdHQgQ2FtZXJvbiAgPHNjY2FtZXJvbkByaW0uY29tPgoKICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAgICAgdXBkYXRlIHJ1bi13ZWJraXQtaHR0cGQgdG8g
YmUgYWJsZSB0byBsYXVuY2ggQXBhY2hlMi4yIGluIGEgTVNZUyBlbnZpcm9ubWVudAogICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDAzNgoKICAgICAgICBU
aGlzIHdpbGwgYWRkIGFuIEFwYWNoZTIuMiBjb25maWd1cmF0aW9uIGZpbGUgYW5kIG1vZGlmaWVz
IHNjcmlwdHMgdG8gYWxsb3cKICAgICAgICBydW5uaW5nIGFuIGh0dHBkIHNlcnZlciBpbiBhbiBN
U1lTIGVudmlyb25tZW50LgoKICAgICAgICBUaGUgZGVmYXVsdCBBcGFjaGUyLjIgaW5zdGFsbGF0
aW9uIHBhdGggaGFzIGJlZW4gcHJlc2VydmVkIGFuZCBQSFA1IG1vZHVsZXMgZGlzc2FibGVkCiAg
ICAgICAgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHNpbXBsZSBpbnN0YWxsYXRpb24vZXhlY3V0aW9u
LiAgU2ltcGx5IGluc3RhbGwgdGhlIGxhdGVzdAogICAgICAgIEFwYWNoZTIuMiB2ZXJzaW9uIHdp
dGggT3BlblNTTCBmcm9tIGh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2Rvd25sb2FkLmNnaSNhcGFj
aGUyMiB0bwogICAgICAgIGJlIGFibGUgdG8gZXhlY3V0ZSBydW4td2Via2l0LWh0dHBkLgoKICAg
ICAgICAqIFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9odHRwZC5wbToKICAgICAgICAqIFRvb2xz
L1NjcmlwdHMvcnVuLXdlYmtpdC1odHRwZDoKICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvY29u
Zi9hcGFjaGUyLW1zeXMtaHR0cGQuY29uZjogYWRkZWQKLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsKIExheW91dFRlc3RzL2h0dHAvY29u
Zi9hcGFjaGUyLW1zeXMtaHR0cGQuY29uZiB8ICA3MDkgKysrKysrKysrKysrKysrKysrKysrKysr
KwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSAr
CiBUb29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQgICAgICAgICAgICAgICAgfCAgIDEyICst
CiBUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvaHR0cGQucG0gICAgICAgICAgICAgfCAgIDI1ICst
CiA1IGZpbGVzIGNoYW5nZWQsIDc3NiBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2h0dHAvY29uZi9hcGFjaGUyLW1zeXMtaHR0cGQu
Y29uZgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAwZTNhNTk3Li43MjAxNzc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MTEtMDEtMDQgIFNjb3R0IENhbWVyb24gIDxzY2NhbWVyb25AcmltLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB1cGRhdGUgcnVuLXdlYmtpdC1o
dHRwZCB0byBiZSBhYmxlIHRvIGxhdW5jaCBBcGFjaGUyLjIgaW4gYSBNU1lTIGVudmlyb25tZW50
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDAzNgor
CisgICAgICAgIFRoaXMgd2lsbCBhZGQgYW4gQXBhY2hlMi4yIGNvbmZpZ3VyYXRpb24gZmlsZSBh
bmQgbW9kaWZpZXMgc2NyaXB0cyB0byBhbGxvdworICAgICAgICBydW5uaW5nIGFuIGh0dHBkIHNl
cnZlciBpbiBhbiBNU1lTIGVudmlyb25tZW50LgorCisgICAgICAgIFRoZSBkZWZhdWx0IEFwYWNo
ZTIuMiBpbnN0YWxsYXRpb24gcGF0aCBoYXMgYmVlbiBwcmVzZXJ2ZWQgYW5kIFBIUDUgbW9kdWxl
cyBkaXNzYWJsZWQKKyAgICAgICAgaW4gb3JkZXIgdG8gYWxsb3cgZm9yIHNpbXBsZSBpbnN0YWxs
YXRpb24vZXhlY3V0aW9uLiAgU2ltcGx5IGluc3RhbGwgdGhlIGxhdGVzdAorICAgICAgICBBcGFj
aGUyLjIgdmVyc2lvbiB3aXRoIE9wZW5TU0wgZnJvbSBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9k
b3dubG9hZC5jZ2kjYXBhY2hlMjIgdG8KKyAgICAgICAgYmUgYWJsZSB0byBleGVjdXRlIHJ1bi13
ZWJraXQtaHR0cGQuCisgICAgICAgIAorCisgICAgICAgICogaHR0cC9jb25mL2FwYWNoZTItbXN5
cy1odHRwZC5jb25mOiBBZGRlZC4KKwogMjAxMS0wMS0wNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjc0OTYwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC9jb25mL2FwYWNoZTItbXN5cy1o
dHRwZC5jb25mIGIvTGF5b3V0VGVzdHMvaHR0cC9jb25mL2FwYWNoZTItbXN5cy1odHRwZC5jb25m
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMTQ5OTIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL2NvbmYvYXBhY2hlMi1tc3lzLWh0dHBkLmNvbmYKQEAg
LTAsMCArMSw3MDkgQEAKKyMjCisjIyBodHRwZC5jb25mIC0tIEFwYWNoZSBIVFRQIHNlcnZlciBj
b25maWd1cmF0aW9uIGZpbGUKKyMjCisKKyMKKyMgQmFzZWQgdXBvbiB0aGUgTkNTQSBzZXJ2ZXIg
Y29uZmlndXJhdGlvbiBmaWxlcyBvcmlnaW5hbGx5IGJ5IFJvYiBNY0Nvb2wuCisjCisjIFRoaXMg
aXMgdGhlIG1haW4gQXBhY2hlIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGUuICBJdCBjb250YWlu
cyB0aGUKKyMgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIHRoYXQgZ2l2ZSB0aGUgc2VydmVyIGl0
cyBpbnN0cnVjdGlvbnMuCisjIFNlZSA8VVJMOmh0dHA6Ly9odHRwZC5hcGFjaGUub3JnL2RvY3Mv
PiBmb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQKKyMgdGhlIGRpcmVjdGl2ZXMuCisjCisj
IERvIE5PVCBzaW1wbHkgcmVhZCB0aGUgaW5zdHJ1Y3Rpb25zIGluIGhlcmUgd2l0aG91dCB1bmRl
cnN0YW5kaW5nCisjIHdoYXQgdGhleSBkby4gIFRoZXkncmUgaGVyZSBvbmx5IGFzIGhpbnRzIG9y
IHJlbWluZGVycy4gIElmIHlvdSBhcmUgdW5zdXJlCisjIGNvbnN1bHQgdGhlIG9ubGluZSBkb2Nz
LiBZb3UgaGF2ZSBiZWVuIHdhcm5lZC4gIAorIworIyBBZnRlciB0aGlzIGZpbGUgaXMgcHJvY2Vz
c2VkLCB0aGUgc2VydmVyIHdpbGwgbG9vayBmb3IgYW5kIHByb2Nlc3MKKyMgL3ByaXZhdGUvZXRj
L2FwYWNoZTIvc3JtLmNvbmYgYW5kIHRoZW4gL3ByaXZhdGUvZXRjL2FwYWNoZTIvYWNjZXNzLmNv
bmYKKyMgdW5sZXNzIHlvdSBoYXZlIG92ZXJyaWRkZW4gdGhlc2Ugd2l0aCBSZXNvdXJjZUNvbmZp
ZyBhbmQvb3IKKyMgQWNjZXNzQ29uZmlnIGRpcmVjdGl2ZXMgaGVyZS4KKyMKKyMgVGhlIGNvbmZp
Z3VyYXRpb24gZGlyZWN0aXZlcyBhcmUgZ3JvdXBlZCBpbnRvIHRocmVlIGJhc2ljIHNlY3Rpb25z
OgorIyAgMS4gRGlyZWN0aXZlcyB0aGF0IGNvbnRyb2wgdGhlIG9wZXJhdGlvbiBvZiB0aGUgQXBh
Y2hlIHNlcnZlciBwcm9jZXNzIGFzIGEKKyMgICAgIHdob2xlICh0aGUgJ2dsb2JhbCBlbnZpcm9u
bWVudCcpLgorIyAgMi4gRGlyZWN0aXZlcyB0aGF0IGRlZmluZSB0aGUgcGFyYW1ldGVycyBvZiB0
aGUgJ21haW4nIG9yICdkZWZhdWx0JyBzZXJ2ZXIsCisjICAgICB3aGljaCByZXNwb25kcyB0byBy
ZXF1ZXN0cyB0aGF0IGFyZW4ndCBoYW5kbGVkIGJ5IGEgdmlydHVhbCBob3N0LgorIyAgICAgVGhl
c2UgZGlyZWN0aXZlcyBhbHNvIHByb3ZpZGUgZGVmYXVsdCB2YWx1ZXMgZm9yIHRoZSBzZXR0aW5n
cworIyAgICAgb2YgYWxsIHZpcnR1YWwgaG9zdHMuCisjICAzLiBTZXR0aW5ncyBmb3IgdmlydHVh
bCBob3N0cywgd2hpY2ggYWxsb3cgV2ViIHJlcXVlc3RzIHRvIGJlIHNlbnQgdG8KKyMgICAgIGRp
ZmZlcmVudCBJUCBhZGRyZXNzZXMgb3IgaG9zdG5hbWVzIGFuZCBoYXZlIHRoZW0gaGFuZGxlZCBi
eSB0aGUKKyMgICAgIHNhbWUgQXBhY2hlIHNlcnZlciBwcm9jZXNzLgorIworIyBDb25maWd1cmF0
aW9uIGFuZCBsb2dmaWxlIG5hbWVzOiBJZiB0aGUgZmlsZW5hbWVzIHlvdSBzcGVjaWZ5IGZvciBt
YW55CisjIG9mIHRoZSBzZXJ2ZXIncyBjb250cm9sIGZpbGVzIGJlZ2luIHdpdGggIi8iIChvciAi
ZHJpdmU6LyIgZm9yIFdpbjMyKSwgdGhlCisjIHNlcnZlciB3aWxsIHVzZSB0aGF0IGV4cGxpY2l0
IHBhdGguICBJZiB0aGUgZmlsZW5hbWVzIGRvICpub3QqIGJlZ2luCisjIHdpdGggIi8iLCB0aGUg
dmFsdWUgb2YgU2VydmVyUm9vdCBpcyBwcmVwZW5kZWQgLS0gc28gImxvZ3MvZm9vLmxvZyIKKyMg
d2l0aCBTZXJ2ZXJSb290IHNldCB0byAiL3Vzci9sb2NhbC9hcGFjaGUiIHdpbGwgYmUgaW50ZXJw
cmV0ZWQgYnkgdGhlCisjIHNlcnZlciBhcyAiL3Vzci9sb2NhbC9hcGFjaGUvbG9ncy9mb28ubG9n
Ii4KKyMKKworIyMjIFNlY3Rpb24gMTogR2xvYmFsIEVudmlyb25tZW50CisjCisjIFRoZSBkaXJl
Y3RpdmVzIGluIHRoaXMgc2VjdGlvbiBhZmZlY3QgdGhlIG92ZXJhbGwgb3BlcmF0aW9uIG9mIEFw
YWNoZSwKKyMgc3VjaCBhcyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgcmVxdWVzdHMgaXQgY2Fu
IGhhbmRsZSBvciB3aGVyZSBpdAorIyBjYW4gZmluZCBpdHMgY29uZmlndXJhdGlvbiBmaWxlcy4K
KyMKKworIworIyBTZXJ2ZXJSb290OiBUaGUgdG9wIG9mIHRoZSBkaXJlY3RvcnkgdHJlZSB1bmRl
ciB3aGljaCB0aGUgc2VydmVyJ3MKKyMgY29uZmlndXJhdGlvbiwgZXJyb3IsIGFuZCBsb2cgZmls
ZXMgYXJlIGtlcHQuCisjCisjIE5PVEUhICBJZiB5b3UgaW50ZW5kIHRvIHBsYWNlIHRoaXMgb24g
YW4gTkZTIChvciBvdGhlcndpc2UgbmV0d29yaykKKyMgbW91bnRlZCBmaWxlc3lzdGVtIHRoZW4g
cGxlYXNlIHJlYWQgdGhlIExvY2tGaWxlIGRvY3VtZW50YXRpb24KKyMgKGF2YWlsYWJsZSBhdCA8
VVJMOmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9kb2NzL21vZC9jb3JlLmh0bWwjbG9ja2ZpbGU+KTsK
KyMgeW91IHdpbGwgc2F2ZSB5b3Vyc2VsZiBhIGxvdCBvZiB0cm91YmxlLgorIworU2VydmVyUm9v
dCAiQzovUHJvZ3JhbSBGaWxlcy9BcGFjaGUgU29mdHdhcmUgRm91bmRhdGlvbi9BcGFjaGUyLjIi
CisKKyMKKyMgVGhlIExvY2tGaWxlIGRpcmVjdGl2ZSBzZXRzIHRoZSBwYXRoIHRvIHRoZSBsb2Nr
ZmlsZSB1c2VkIHdoZW4gQXBhY2hlCisjIGlzIGNvbXBpbGVkIHdpdGggZWl0aGVyIFVTRV9GQ05U
TF9TRVJJQUxJWkVEX0FDQ0VQVCBvcgorIyBVU0VfRkxPQ0tfU0VSSUFMSVpFRF9BQ0NFUFQuIFRo
aXMgZGlyZWN0aXZlIHNob3VsZCBub3JtYWxseSBiZSBsZWZ0IGF0CisjIGl0cyBkZWZhdWx0IHZh
bHVlLiBUaGUgbWFpbiByZWFzb24gZm9yIGNoYW5naW5nIGl0IGlzIGlmIHRoZSBsb2dzCisjIGRp
cmVjdG9yeSBpcyBORlMgbW91bnRlZCwgc2luY2UgdGhlIGxvY2tmaWxlIE1VU1QgQkUgU1RPUkVE
IE9OIEEgTE9DQUwKKyMgRElTSy4gVGhlIFBJRCBvZiB0aGUgbWFpbiBzZXJ2ZXIgcHJvY2VzcyBp
cyBhdXRvbWF0aWNhbGx5IGFwcGVuZGVkIHRvCisjIHRoZSBmaWxlbmFtZS4gCisjCisjTG9ja0Zp
bGUgIi90bXAvV2ViS2l0L2h0dHBkLmxvY2siCisKKyMKKyMgUGlkRmlsZTogVGhlIGZpbGUgaW4g
d2hpY2ggdGhlIHNlcnZlciBzaG91bGQgcmVjb3JkIGl0cyBwcm9jZXNzCisjIGlkZW50aWZpY2F0
aW9uIG51bWJlciB3aGVuIGl0IHN0YXJ0cy4KKyMKK1BpZEZpbGUgIi90bXAvV2ViS2l0L2h0dHBk
LnBpZCIKKworIworIyBTY29yZUJvYXJkRmlsZTogRmlsZSB1c2VkIHRvIHN0b3JlIGludGVybmFs
IHNlcnZlciBwcm9jZXNzIGluZm9ybWF0aW9uLgorIyBOb3QgYWxsIGFyY2hpdGVjdHVyZXMgcmVx
dWlyZSB0aGlzLiAgQnV0IGlmIHlvdXJzIGRvZXMgKHlvdSdsbCBrbm93IGJlY2F1c2UKKyMgdGhp
cyBmaWxlIHdpbGwgYmUgIGNyZWF0ZWQgd2hlbiB5b3UgcnVuIEFwYWNoZSkgdGhlbiB5b3UgKm11
c3QqIGVuc3VyZSB0aGF0CisjIG5vIHR3byBpbnZvY2F0aW9ucyBvZiBBcGFjaGUgc2hhcmUgdGhl
IHNhbWUgc2NvcmVib2FyZCBmaWxlLgorIworU2NvcmVCb2FyZEZpbGUgIi90bXAvV2ViS2l0L2h0
dHBkLnNjb3JlYm9hcmQiCisKKyMKKyMgVGltZW91dDogVGhlIG51bWJlciBvZiBzZWNvbmRzIGJl
Zm9yZSByZWNlaXZlcyBhbmQgc2VuZHMgdGltZSBvdXQuCisjCitUaW1lb3V0IDMwMAorCisjCisj
IEtlZXBBbGl2ZTogV2hldGhlciBvciBub3QgdG8gYWxsb3cgcGVyc2lzdGVudCBjb25uZWN0aW9u
cyAobW9yZSB0aGFuCisjIG9uZSByZXF1ZXN0IHBlciBjb25uZWN0aW9uKS4gU2V0IHRvICJPZmYi
IHRvIGRlYWN0aXZhdGUuCisjCitLZWVwQWxpdmUgT24KKworIworIyBNYXhLZWVwQWxpdmVSZXF1
ZXN0czogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlcXVlc3RzIHRvIGFsbG93CisjIGR1cmluZyBh
IHBlcnNpc3RlbnQgY29ubmVjdGlvbi4gU2V0IHRvIDAgdG8gYWxsb3cgYW4gdW5saW1pdGVkIGFt
b3VudC4KKyMgV2UgcmVjb21tZW5kIHlvdSBsZWF2ZSB0aGlzIG51bWJlciBoaWdoLCBmb3IgbWF4
aW11bSBwZXJmb3JtYW5jZS4KKyMKK01heEtlZXBBbGl2ZVJlcXVlc3RzIDEwMAorCisjCisjIEtl
ZXBBbGl2ZVRpbWVvdXQ6IE51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSBuZXh0IHJl
cXVlc3QgZnJvbSB0aGUKKyMgc2FtZSBjbGllbnQgb24gdGhlIHNhbWUgY29ubmVjdGlvbi4KKyMK
K0tlZXBBbGl2ZVRpbWVvdXQgMTUKKworIworIyBTZXJ2ZXItcG9vbCBzaXplIHJlZ3VsYXRpb24u
ICBSYXRoZXIgdGhhbiBtYWtpbmcgeW91IGd1ZXNzIGhvdyBtYW55CisjIHNlcnZlciBwcm9jZXNz
ZXMgeW91IG5lZWQsIEFwYWNoZSBkeW5hbWljYWxseSBhZGFwdHMgdG8gdGhlIGxvYWQgaXQKKyMg
c2VlcyAtLS0gdGhhdCBpcywgaXQgdHJpZXMgdG8gbWFpbnRhaW4gZW5vdWdoIHNlcnZlciBwcm9j
ZXNzZXMgdG8KKyMgaGFuZGxlIHRoZSBjdXJyZW50IGxvYWQsIHBsdXMgYSBmZXcgc3BhcmUgc2Vy
dmVycyB0byBoYW5kbGUgdHJhbnNpZW50CisjIGxvYWQgc3Bpa2VzIChlLmcuLCBtdWx0aXBsZSBz
aW11bHRhbmVvdXMgcmVxdWVzdHMgZnJvbSBhIHNpbmdsZQorIyBOZXRzY2FwZSBicm93c2VyKS4K
KyMKKyMgSXQgZG9lcyB0aGlzIGJ5IHBlcmlvZGljYWxseSBjaGVja2luZyBob3cgbWFueSBzZXJ2
ZXJzIGFyZSB3YWl0aW5nCisjIGZvciBhIHJlcXVlc3QuICBJZiB0aGVyZSBhcmUgZmV3ZXIgdGhh
biBNaW5TcGFyZVNlcnZlcnMsIGl0IGNyZWF0ZXMKKyMgYSBuZXcgc3BhcmUuICBJZiB0aGVyZSBh
cmUgbW9yZSB0aGFuIE1heFNwYXJlU2VydmVycywgc29tZSBvZiB0aGUKKyMgc3BhcmVzIGRpZSBv
ZmYuICBUaGUgZGVmYXVsdCB2YWx1ZXMgYXJlIHByb2JhYmx5IE9LIGZvciBtb3N0IHNpdGVzLgor
IworI01pblNwYXJlU2VydmVycyAxCisjTWF4U3BhcmVTZXJ2ZXJzIDUKKworIworIyBOdW1iZXIg
b2Ygc2VydmVycyB0byBzdGFydCBpbml0aWFsbHkgLS0tIHNob3VsZCBiZSBhIHJlYXNvbmFibGUg
YmFsbHBhcmsKKyMgZmlndXJlLgorIworI1N0YXJ0U2VydmVycyAxCisKKyMKKyMgTGltaXQgb24g
dG90YWwgbnVtYmVyIG9mIHNlcnZlcnMgcnVubmluZywgaS5lLiwgbGltaXQgb24gdGhlIG51bWJl
cgorIyBvZiBjbGllbnRzIHdobyBjYW4gc2ltdWx0YW5lb3VzbHkgY29ubmVjdCAtLS0gaWYgdGhp
cyBsaW1pdCBpcyBldmVyCisjIHJlYWNoZWQsIGNsaWVudHMgd2lsbCBiZSBMT0NLRUQgT1VULCBz
byBpdCBzaG91bGQgTk9UIEJFIFNFVCBUT08gTE9XLgorIyBJdCBpcyBpbnRlbmRlZCBtYWlubHkg
YXMgYSBicmFrZSB0byBrZWVwIGEgcnVuYXdheSBzZXJ2ZXIgZnJvbSB0YWtpbmcKKyMgdGhlIHN5
c3RlbSB3aXRoIGl0IGFzIGl0IHNwaXJhbHMgZG93bi4uLgorIworI01heENsaWVudHMgMTUwCisK
KyMKKyMgTWF4UmVxdWVzdHNQZXJDaGlsZDogdGhlIG51bWJlciBvZiByZXF1ZXN0cyBlYWNoIGNo
aWxkIHByb2Nlc3MgaXMKKyMgYWxsb3dlZCB0byBwcm9jZXNzIGJlZm9yZSB0aGUgY2hpbGQgZGll
cy4gIFRoZSBjaGlsZCB3aWxsIGV4aXQgc28KKyMgYXMgdG8gYXZvaWQgcHJvYmxlbXMgYWZ0ZXIg
cHJvbG9uZ2VkIHVzZSB3aGVuIEFwYWNoZSAoYW5kIG1heWJlIHRoZQorIyBsaWJyYXJpZXMgaXQg
dXNlcykgbGVhayBtZW1vcnkgb3Igb3RoZXIgcmVzb3VyY2VzLiAgT24gbW9zdCBzeXN0ZW1zLCB0
aGlzCisjIGlzbid0IHJlYWxseSBuZWVkZWQsIGJ1dCBhIGZldyAoc3VjaCBhcyBTb2xhcmlzKSBk
byBoYXZlIG5vdGFibGUgbGVha3MKKyMgaW4gdGhlIGxpYnJhcmllcy4gRm9yIHRoZXNlIHBsYXRm
b3Jtcywgc2V0IHRvIHNvbWV0aGluZyBsaWtlIDEwMDAwCisjIG9yIHNvOyBhIHNldHRpbmcgb2Yg
MCBtZWFucyB1bmxpbWl0ZWQuCisjCisjIE5PVEU6IFRoaXMgdmFsdWUgZG9lcyBub3QgaW5jbHVk
ZSBrZWVwYWxpdmUgcmVxdWVzdHMgYWZ0ZXIgdGhlIGluaXRpYWwKKyMgICAgICAgcmVxdWVzdCBw
ZXIgY29ubmVjdGlvbi4gRm9yIGV4YW1wbGUsIGlmIGEgY2hpbGQgcHJvY2VzcyBoYW5kbGVzCisj
ICAgICAgIGFuIGluaXRpYWwgcmVxdWVzdCBhbmQgMTAgc3Vic2VxdWVudCAia2VwdGFsaXZlIiBy
ZXF1ZXN0cywgaXQKKyMgICAgICAgd291bGQgb25seSBjb3VudCBhcyAxIHJlcXVlc3QgdG93YXJk
cyB0aGlzIGxpbWl0LgorIworI01heFJlcXVlc3RzUGVyQ2hpbGQgMTAwMDAwCisKKyMKKyMgTGlz
dGVuOiBBbGxvd3MgeW91IHRvIGJpbmQgQXBhY2hlIHRvIHNwZWNpZmljIElQIGFkZHJlc3NlcyBh
bmQvb3IKKyMgcG9ydHMsIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQuIFNlZSBhbHNvIHRoZSA8Vmly
dHVhbEhvc3Q+CisjIGRpcmVjdGl2ZS4KKyMKKyMgQ29uZmlndXJlZCBmcm9tIHRoZSBodHRwZCBj
b21tYW5kIGxpbmUgZm9yIFdlYktpdCBsYXlvdXQgdGVzdHMuCisjIFBvcnQgODQ0MyBpcyBoYXJk
LWNvZGVkIGFzIGl0IGlzIG5lZWRlZCBmb3IgdGhlIEhUVFBTIGNvbmZpZ3VyYXRpb24gbGF0ZXIg
b24uCisjCisjTGlzdGVuIDMwMDAKK0xpc3RlbiAxMjcuMC4wLjE6ODA4MAorTGlzdGVuIDEyNy4w
LjAuMTo4NDQzCisjIFdlIGxpc3RlbiB0byBib3RoIElQdjQgYW5kIElQdjYgbG9vcC1iYWNrIGFk
ZHJlc3NlcywgYnV0IGlnbm9yZQorIyByZXF1ZXN0cyB0byA4MDAwIGZyb20gcmFuZG9tIHVzZXJz
IG9uIG5ldHdvcmsuCisjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzcxMDQKKyNMaXN0ZW4gWzo6MV06ODAwMAorI0xpc3RlbiBbOjoxXTo4MDgwCisjTGlzdGVu
IFs6OjFdOjg0NDMKKworIworIyBEeW5hbWljIFNoYXJlZCBPYmplY3QgKERTTykgU3VwcG9ydAor
IworIyBUbyBiZSBhYmxlIHRvIHVzZSB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhIG1vZHVsZSB3aGlj
aCB3YXMgYnVpbHQgYXMgYSBEU08geW91CisjIGhhdmUgdG8gcGxhY2UgY29ycmVzcG9uZGluZyBg
TG9hZE1vZHVsZScgbGluZXMgYXQgdGhpcyBsb2NhdGlvbiBzbyB0aGUKKyMgZGlyZWN0aXZlcyBj
b250YWluZWQgaW4gaXQgYXJlIGFjdHVhbGx5IGF2YWlsYWJsZSBfYmVmb3JlXyB0aGV5IGFyZSB1
c2VkLgorIyBQbGVhc2UgcmVhZCB0aGUgZmlsZSBodHRwOi8vaHR0cGQuYXBhY2hlLm9yZy9kb2Nz
L2Rzby5odG1sIGZvciBtb3JlCisjIGRldGFpbHMgYWJvdXQgdGhlIERTTyBtZWNoYW5pc20gYW5k
IHJ1biBgaHR0cGQgLWwnIGZvciB0aGUgbGlzdCBvZiBhbHJlYWR5CisjIGJ1aWx0LWluIChzdGF0
aWNhbGx5IGxpbmtlZCBhbmQgdGh1cyBhbHdheXMgYXZhaWxhYmxlKSBtb2R1bGVzIGluIHlvdXIg
aHR0cGQKKyMgYmluYXJ5LgorIworIyBOb3RlOiBUaGUgb3JkZXIgaW4gd2hpY2ggbW9kdWxlcyBh
cmUgbG9hZGVkIGlzIGltcG9ydGFudC4gIERvbid0IGNoYW5nZQorIyB0aGUgb3JkZXIgYmVsb3cg
d2l0aG91dCBleHBlcnQgYWR2aWNlLgorIworIyBFeGFtcGxlOgorIyBMb2FkTW9kdWxlIGZvb19t
b2R1bGUgbGliZXhlYy9tb2RfZm9vLnNvCisjTG9hZE1vZHVsZSBhdXRobl9maWxlX21vZHVsZSBt
b2R1bGVzL21vZF9hdXRobl9maWxlLnNvCisjTG9hZE1vZHVsZSBhdXRobl9kYm1fbW9kdWxlIG1v
ZHVsZXMvbW9kX2F1dGhuX2RibS5zbworI0xvYWRNb2R1bGUgYXV0aG5fYW5vbl9tb2R1bGUgbW9k
dWxlcy9tb2RfYXV0aG5fYW5vbi5zbworI0xvYWRNb2R1bGUgYXV0aG5fZGJkX21vZHVsZSBtb2R1
bGVzL21vZF9hdXRobl9kYmQuc28KKyNMb2FkTW9kdWxlIGF1dGhuX2RlZmF1bHRfbW9kdWxlIG1v
ZHVsZXMvbW9kX2F1dGhuX2RlZmF1bHQuc28KK0xvYWRNb2R1bGUgYXV0aHpfaG9zdF9tb2R1bGUg
bW9kdWxlcy9tb2RfYXV0aHpfaG9zdC5zbworI0xvYWRNb2R1bGUgYXV0aHpfZ3JvdXBmaWxlX21v
ZHVsZSBtb2R1bGVzL21vZF9hdXRoel9ncm91cGZpbGUuc28KKyNMb2FkTW9kdWxlIGF1dGh6X3Vz
ZXJfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X3VzZXIuc28KKyNMb2FkTW9kdWxlIGF1dGh6X2Ri
bV9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfZGJtLnNvCisjTG9hZE1vZHVsZSBhdXRoel9vd25l
cl9tb2R1bGUgbW9kdWxlcy9tb2RfYXV0aHpfb3duZXIuc28KKyNMb2FkTW9kdWxlIGF1dGh6X2Rl
ZmF1bHRfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGh6X2RlZmF1bHQuc28KKyNMb2FkTW9kdWxlIGF1
dGhfYmFzaWNfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dGhfYmFzaWMuc28KKyNMb2FkTW9kdWxlIGF1
dGhfZGlnZXN0X21vZHVsZSBtb2R1bGVzL21vZF9hdXRoX2RpZ2VzdC5zbworI0xvYWRNb2R1bGUg
Y2FjaGVfbW9kdWxlIG1vZHVsZXMvbW9kX2NhY2hlLnNvCisjTG9hZE1vZHVsZSBkaXNrX2NhY2hl
X21vZHVsZSBtb2R1bGVzL21vZF9kaXNrX2NhY2hlLnNvCisjTG9hZE1vZHVsZSBtZW1fY2FjaGVf
bW9kdWxlIG1vZHVsZXMvbW9kX21lbV9jYWNoZS5zbworI0xvYWRNb2R1bGUgZGJkX21vZHVsZSBt
b2R1bGVzL21vZF9kYmQuc28KKyNMb2FkTW9kdWxlIGR1bXBpb19tb2R1bGUgbW9kdWxlcy9tb2Rf
ZHVtcGlvLnNvCisjTG9hZE1vZHVsZSBleHRfZmlsdGVyX21vZHVsZSBtb2R1bGVzL21vZF9leHRf
ZmlsdGVyLnNvCitMb2FkTW9kdWxlIGluY2x1ZGVfbW9kdWxlIG1vZHVsZXMvbW9kX2luY2x1ZGUu
c28KKyNMb2FkTW9kdWxlIGZpbHRlcl9tb2R1bGUgbW9kdWxlcy9tb2RfZmlsdGVyLnNvCisjTG9h
ZE1vZHVsZSBzdWJzdGl0dXRlX21vZHVsZSBtb2R1bGVzL21vZF9zdWJzdGl0dXRlLnNvCisjTG9h
ZE1vZHVsZSBkZWZsYXRlX21vZHVsZSBtb2R1bGVzL21vZF9kZWZsYXRlLnNvCitMb2FkTW9kdWxl
IGxvZ19jb25maWdfbW9kdWxlIG1vZHVsZXMvbW9kX2xvZ19jb25maWcuc28KKyNMb2FkTW9kdWxl
IGxvZ19mb3JlbnNpY19tb2R1bGUgbW9kdWxlcy9tb2RfbG9nX2ZvcmVuc2ljLnNvCisjTG9hZE1v
ZHVsZSBsb2dpb19tb2R1bGUgbW9kdWxlcy9tb2RfbG9naW8uc28KKyNMb2FkTW9kdWxlIGVudl9t
b2R1bGUgbW9kdWxlcy9tb2RfZW52LnNvCisjTG9hZE1vZHVsZSBtaW1lX21hZ2ljX21vZHVsZSBt
b2R1bGVzL21vZF9taW1lX21hZ2ljLnNvCisjTG9hZE1vZHVsZSBjZXJuX21ldGFfbW9kdWxlIG1v
ZHVsZXMvbW9kX2Nlcm5fbWV0YS5zbworI0xvYWRNb2R1bGUgZXhwaXJlc19tb2R1bGUgbW9kdWxl
cy9tb2RfZXhwaXJlcy5zbworTG9hZE1vZHVsZSBoZWFkZXJzX21vZHVsZSBtb2R1bGVzL21vZF9o
ZWFkZXJzLnNvCisjTG9hZE1vZHVsZSBpZGVudF9tb2R1bGUgbW9kdWxlcy9tb2RfaWRlbnQuc28K
KyNMb2FkTW9kdWxlIHVzZXJ0cmFja19tb2R1bGUgbW9kdWxlcy9tb2RfdXNlcnRyYWNrLnNvCisj
TG9hZE1vZHVsZSB1bmlxdWVfaWRfbW9kdWxlIG1vZHVsZXMvbW9kX3VuaXF1ZV9pZC5zbworI0xv
YWRNb2R1bGUgc2V0ZW52aWZfbW9kdWxlIG1vZHVsZXMvbW9kX3NldGVudmlmLnNvCisjTG9hZE1v
ZHVsZSB2ZXJzaW9uX21vZHVsZSBtb2R1bGVzL21vZF92ZXJzaW9uLnNvCisjTG9hZE1vZHVsZSBw
cm94eV9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHkuc28KKyNMb2FkTW9kdWxlIHByb3h5X2Nvbm5l
Y3RfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2Nvbm5lY3Quc28KKyNMb2FkTW9kdWxlIHByb3h5
X2Z0cF9tb2R1bGUgbW9kdWxlcy9tb2RfcHJveHlfZnRwLnNvCisjTG9hZE1vZHVsZSBwcm94eV9o
dHRwX21vZHVsZSBtb2R1bGVzL21vZF9wcm94eV9odHRwLnNvCisjTG9hZE1vZHVsZSBwcm94eV9h
anBfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2FqcC5zbworI0xvYWRNb2R1bGUgcHJveHlfYmFs
YW5jZXJfbW9kdWxlIG1vZHVsZXMvbW9kX3Byb3h5X2JhbGFuY2VyLnNvCitMb2FkTW9kdWxlIHNz
bF9tb2R1bGUgbW9kdWxlcy9tb2Rfc3NsLnNvCitMb2FkTW9kdWxlIG1pbWVfbW9kdWxlIG1vZHVs
ZXMvbW9kX21pbWUuc28KKyNMb2FkTW9kdWxlIGRhdl9tb2R1bGUgbW9kdWxlcy9tb2RfZGF2LnNv
CisjTG9hZE1vZHVsZSBzdGF0dXNfbW9kdWxlIG1vZHVsZXMvbW9kX3N0YXR1cy5zbworTG9hZE1v
ZHVsZSBhdXRvaW5kZXhfbW9kdWxlIG1vZHVsZXMvbW9kX2F1dG9pbmRleC5zbworTG9hZE1vZHVs
ZSBhc2lzX21vZHVsZSBtb2R1bGVzL21vZF9hc2lzLnNvCisjTG9hZE1vZHVsZSBpbmZvX21vZHVs
ZSBtb2R1bGVzL21vZF9pbmZvLnNvCitMb2FkTW9kdWxlIGNnaV9tb2R1bGUgbW9kdWxlcy9tb2Rf
Y2dpLnNvCisjTG9hZE1vZHVsZSBkYXZfZnNfbW9kdWxlIG1vZHVsZXMvbW9kX2Rhdl9mcy5zbwor
I0xvYWRNb2R1bGUgdmhvc3RfYWxpYXNfbW9kdWxlIG1vZHVsZXMvbW9kX3Zob3N0X2FsaWFzLnNv
CitMb2FkTW9kdWxlIG5lZ290aWF0aW9uX21vZHVsZSBtb2R1bGVzL21vZF9uZWdvdGlhdGlvbi5z
bworI0xvYWRNb2R1bGUgZGlyX21vZHVsZSBtb2R1bGVzL21vZF9kaXIuc28KK0xvYWRNb2R1bGUg
aW1hZ2VtYXBfbW9kdWxlIG1vZHVsZXMvbW9kX2ltYWdlbWFwLnNvCitMb2FkTW9kdWxlIGFjdGlv
bnNfbW9kdWxlIG1vZHVsZXMvbW9kX2FjdGlvbnMuc28KKyNMb2FkTW9kdWxlIHNwZWxpbmdfbW9k
dWxlIG1vZHVsZXMvbW9kX3NwZWxpbmcuc28KKyNMb2FkTW9kdWxlIHVzZXJkaXJfbW9kdWxlIG1v
ZHVsZXMvbW9kX3VzZXJkaXIuc28KK0xvYWRNb2R1bGUgYWxpYXNfbW9kdWxlIG1vZHVsZXMvbW9k
X2FsaWFzLnNvCitMb2FkTW9kdWxlIHJld3JpdGVfbW9kdWxlIG1vZHVsZXMvbW9kX3Jld3JpdGUu
c28KKyNMb2FkTW9kdWxlIGJvbmpvdXJfbW9kdWxlICAgICBtb2R1bGVzL21vZF9ib25qb3VyLnNv
CisjTG9hZE1vZHVsZSBwaHA1X21vZHVsZSBtb2R1bGVzL3BocDVhcGFjaGUyXzIuZGxsCisjTG9h
ZE1vZHVsZSBmYXN0Y2dpX21vZHVsZSAgICAgbW9kdWxlcy9tb2RfZmFzdGNnaS5zbworI0xvYWRN
b2R1bGUgaXNhcGlfbW9kdWxlIG1vZHVsZXMvbW9kX2lzYXBpLnNvCisKKyMjIyBTZWN0aW9uIDI6
ICdNYWluJyBzZXJ2ZXIgY29uZmlndXJhdGlvbgorIworIyBUaGUgZGlyZWN0aXZlcyBpbiB0aGlz
IHNlY3Rpb24gc2V0IHVwIHRoZSB2YWx1ZXMgdXNlZCBieSB0aGUgJ21haW4nCisjIHNlcnZlciwg
d2hpY2ggcmVzcG9uZHMgdG8gYW55IHJlcXVlc3RzIHRoYXQgYXJlbid0IGhhbmRsZWQgYnkgYQor
IyA8VmlydHVhbEhvc3Q+IGRlZmluaXRpb24uICBUaGVzZSB2YWx1ZXMgYWxzbyBwcm92aWRlIGRl
ZmF1bHRzIGZvcgorIyBhbnkgPFZpcnR1YWxIb3N0PiBjb250YWluZXJzIHlvdSBtYXkgZGVmaW5l
IGxhdGVyIGluIHRoZSBmaWxlLgorIworIyBBbGwgb2YgdGhlc2UgZGlyZWN0aXZlcyBtYXkgYXBw
ZWFyIGluc2lkZSA8VmlydHVhbEhvc3Q+IGNvbnRhaW5lcnMsCisjIGluIHdoaWNoIGNhc2UgdGhl
c2UgZGVmYXVsdCBzZXR0aW5ncyB3aWxsIGJlIG92ZXJyaWRkZW4gZm9yIHRoZQorIyB2aXJ0dWFs
IGhvc3QgYmVpbmcgZGVmaW5lZC4KKyMKKworIworIyBTZXJ2ZXJOYW1lIGFsbG93cyB5b3UgdG8g
c2V0IGEgaG9zdCBuYW1lIHdoaWNoIGlzIHNlbnQgYmFjayB0byBjbGllbnRzIGZvcgorIyB5b3Vy
IHNlcnZlciBpZiBpdCdzIGRpZmZlcmVudCB0aGFuIHRoZSBvbmUgdGhlIHByb2dyYW0gd291bGQg
Z2V0IChpLmUuLCB1c2UKKyMgInd3dyIgaW5zdGVhZCBvZiB0aGUgaG9zdCdzIHJlYWwgbmFtZSku
CisjCisjIE5vdGU6IFlvdSBjYW5ub3QganVzdCBpbnZlbnQgaG9zdCBuYW1lcyBhbmQgaG9wZSB0
aGV5IHdvcmsuIFRoZSBuYW1lIHlvdSAKKyMgZGVmaW5lIGhlcmUgbXVzdCBiZSBhIHZhbGlkIERO
UyBuYW1lIGZvciB5b3VyIGhvc3QuIElmIHlvdSBkb24ndCB1bmRlcnN0YW5kCisjIHRoaXMsIGFz
ayB5b3VyIG5ldHdvcmsgYWRtaW5pc3RyYXRvci4KKyMgSWYgeW91ciBob3N0IGRvZXNuJ3QgaGF2
ZSBhIHJlZ2lzdGVyZWQgRE5TIG5hbWUsIGVudGVyIGl0cyBJUCBhZGRyZXNzIGhlcmUuCisjIFlv
dSB3aWxsIGhhdmUgdG8gYWNjZXNzIGl0IGJ5IGl0cyBhZGRyZXNzIChlLmcuLCBodHRwOi8vMTIz
LjQ1LjY3Ljg5LykKKyMgYW55d2F5LCBhbmQgdGhpcyB3aWxsIG1ha2UgcmVkaXJlY3Rpb25zIHdv
cmsgaW4gYSBzZW5zaWJsZSB3YXkuCisjCisjIDEyNy4wLjAuMSBpcyB0aGUgVENQL0lQIGxvY2Fs
IGxvb3AtYmFjayBhZGRyZXNzLCBvZnRlbiBuYW1lZCBsb2NhbGhvc3QuIFlvdXIgCisjIG1hY2hp
bmUgYWx3YXlzIGtub3dzIGl0c2VsZiBieSB0aGlzIGFkZHJlc3MuIElmIHlvdSB1c2UgQXBhY2hl
IHN0cmljdGx5IGZvciAKKyMgbG9jYWwgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQsIHlvdSBtYXkg
dXNlIDEyNy4wLjAuMSBhcyB0aGUgc2VydmVyIG5hbWUuCisjCitTZXJ2ZXJOYW1lIDEyNy4wLjAu
MQorCisjCisjIERvY3VtZW50Um9vdDogVGhlIGRpcmVjdG9yeSBvdXQgb2Ygd2hpY2ggeW91IHdp
bGwgc2VydmUgeW91cgorIyBkb2N1bWVudHMuIEJ5IGRlZmF1bHQsIGFsbCByZXF1ZXN0cyBhcmUg
dGFrZW4gZnJvbSB0aGlzIGRpcmVjdG9yeSwgYnV0CisjIHN5bWJvbGljIGxpbmtzIGFuZCBhbGlh
c2VzIG1heSBiZSB1c2VkIHRvIHBvaW50IHRvIG90aGVyIGxvY2F0aW9ucy4KKyMKKyMgQ29uZmln
dXJlZCBmcm9tIHRoZSBodHRwZCBjb21tYW5kIGxpbmUgZm9yIFdlYktpdCBsYXlvdXQgdGVzdHMu
CisjRG9jdW1lbnRSb290ICIvTGlicmFyeS9XZWJTZXJ2ZXIvRG9jdW1lbnRzIgorCisjCisjIEVh
Y2ggZGlyZWN0b3J5IHRvIHdoaWNoIEFwYWNoZSBoYXMgYWNjZXNzLCBjYW4gYmUgY29uZmlndXJl
ZCB3aXRoIHJlc3BlY3QKKyMgdG8gd2hpY2ggc2VydmljZXMgYW5kIGZlYXR1cmVzIGFyZSBhbGxv
d2VkIGFuZC9vciBkaXNhYmxlZCBpbiB0aGF0CisjIGRpcmVjdG9yeSAoYW5kIGl0cyBzdWJkaXJl
Y3RvcmllcykuIAorIworPERpcmVjdG9yeSAvPgorIworIyBUaGlzIG1heSBhbHNvIGJlICJOb25l
IiwgIkFsbCIsIG9yIGFueSBjb21iaW5hdGlvbiBvZiAiSW5kZXhlcyIsCisjICJJbmNsdWRlcyIs
ICJGb2xsb3dTeW1MaW5rcyIsICJFeGVjQ0dJIiwgb3IgIk11bHRpVmlld3MiLgorIworIyBOb3Rl
IHRoYXQgIk11bHRpVmlld3MiIG11c3QgYmUgbmFtZWQgKmV4cGxpY2l0bHkqIC0tLSAiT3B0aW9u
cyBBbGwiCisjIGRvZXNuJ3QgZ2l2ZSBpdCB0byB5b3UuCisjCisgICAgT3B0aW9ucyBJbmRleGVz
IEZvbGxvd1N5bUxpbmtzIE11bHRpVmlld3MgRXhlY0NHSSBJbmNsdWRlcworCisjCisjIFRoaXMg
Y29udHJvbHMgd2hpY2ggb3B0aW9ucyB0aGUgLmh0YWNjZXNzIGZpbGVzIGluIGRpcmVjdG9yaWVz
IGNhbgorIyBvdmVycmlkZS4gQ2FuIGFsc28gYmUgIkFsbCIsIG9yIGFueSBjb21iaW5hdGlvbiBv
ZiAiT3B0aW9ucyIsICJGaWxlSW5mbyIsIAorIyAiQXV0aENvbmZpZyIsIGFuZCAiTGltaXQiCisj
CisgICAgQWxsb3dPdmVycmlkZSBBbGwKKworIworIyBDb250cm9scyB3aG8gY2FuIGdldCBzdHVm
ZiBmcm9tIHRoaXMgc2VydmVyLgorIworICAgIE9yZGVyIGFsbG93LGRlbnkKKyAgICBBbGxvdyBm
cm9tIGFsbAorPC9EaXJlY3Rvcnk+CisKKyMKKyMgQWNjZXNzRmlsZU5hbWU6IFRoZSBuYW1lIG9m
IHRoZSBmaWxlIHRvIGxvb2sgZm9yIGluIGVhY2ggZGlyZWN0b3J5CisjIGZvciBhY2Nlc3MgY29u
dHJvbCBpbmZvcm1hdGlvbi4KKyMKK0FjY2Vzc0ZpbGVOYW1lIC5odGFjY2VzcworCisjCisjIFRo
ZSBmb2xsb3dpbmcgbGluZXMgcHJldmVudCAuaHRhY2Nlc3MgZmlsZXMgZnJvbSBiZWluZyB2aWV3
ZWQgYnkKKyMgV2ViIGNsaWVudHMuICBTaW5jZSAuaHRhY2Nlc3MgZmlsZXMgb2Z0ZW4gY29udGFp
biBhdXRob3JpemF0aW9uCisjIGluZm9ybWF0aW9uLCBhY2Nlc3MgaXMgZGlzYWxsb3dlZCBmb3Ig
c2VjdXJpdHkgcmVhc29ucy4gIENvbW1lbnQKKyMgdGhlc2UgbGluZXMgb3V0IGlmIHlvdSB3YW50
IFdlYiB2aXNpdG9ycyB0byBzZWUgdGhlIGNvbnRlbnRzIG9mCisjIC5odGFjY2VzcyBmaWxlcy4g
IElmIHlvdSBjaGFuZ2UgdGhlIEFjY2Vzc0ZpbGVOYW1lIGRpcmVjdGl2ZSBhYm92ZSwKKyMgYmUg
c3VyZSB0byBtYWtlIHRoZSBjb3JyZXNwb25kaW5nIGNoYW5nZXMgaGVyZS4KKyMKKyMgQWxzbywg
Zm9sa3MgdGVuZCB0byB1c2UgbmFtZXMgc3VjaCBhcyAuaHRwYXNzd2QgZm9yIHBhc3N3b3JkCisj
IGZpbGVzLCBzbyB0aGlzIHdpbGwgcHJvdGVjdCB0aG9zZSBhcyB3ZWxsLgorIworPEZpbGVzIH4g
Il5cLihbSGhdW1R0XXxbRGRdW1NzXV9bU3NdKSI+CisgICAgT3JkZXIgYWxsb3csZGVueQorICAg
IERlbnkgZnJvbSBhbGwKKyAgICBTYXRpc2Z5IEFsbAorPC9GaWxlcz4KKworIworIyBBcHBsZSBz
cGVjaWZpYyBmaWxlc3lzdGVtIHByb3RlY3Rpb24uCisjIAorCis8RmlsZXMgInJzcmMiPgorICAg
IE9yZGVyIGFsbG93LGRlbnkKKyAgICBEZW55IGZyb20gYWxsCisgICAgU2F0aXNmeSBBbGwKKzwv
RmlsZXM+CisKKzxEaXJlY3RvcnkgIH4gIi4qXC5cLm5hbWVkZm9yayI+CisgICAgT3JkZXIgYWxs
b3csZGVueQorICAgIERlbnkgZnJvbSBhbGwKKyAgICBTYXRpc2Z5IEFsbAorPC9EaXJlY3Rvcnk+
CisKKyMKKyMgQ2FjaGVOZWdvdGlhdGVkRG9jczogQnkgZGVmYXVsdCwgQXBhY2hlIHNlbmRzICJQ
cmFnbWE6IG5vLWNhY2hlIiB3aXRoIGVhY2gKKyMgZG9jdW1lbnQgdGhhdCB3YXMgbmVnb3RpYXRl
ZCBvbiB0aGUgYmFzaXMgb2YgY29udGVudC4gVGhpcyBhc2tzIHByb3h5CisjIHNlcnZlcnMgbm90
IHRvIGNhY2hlIHRoZSBkb2N1bWVudC4gVW5jb21tZW50aW5nIHRoZSBmb2xsb3dpbmcgbGluZSBk
aXNhYmxlcworIyB0aGlzIGJlaGF2aW9yLCBhbmQgcHJveGllcyB3aWxsIGJlIGFsbG93ZWQgdG8g
Y2FjaGUgdGhlIGRvY3VtZW50cy4KKyMKKyNDYWNoZU5lZ290aWF0ZWREb2NzCisKKyMKKyMgVXNl
Q2Fub25pY2FsTmFtZTogIChuZXcgZm9yIDEuMykgIFdpdGggdGhpcyBzZXR0aW5nIHR1cm5lZCBv
biwgd2hlbmV2ZXIKKyMgQXBhY2hlIG5lZWRzIHRvIGNvbnN0cnVjdCBhIHNlbGYtcmVmZXJlbmNp
bmcgVVJMIChhIFVSTCB0aGF0IHJlZmVycyBiYWNrCisjIHRvIHRoZSBzZXJ2ZXIgdGhlIHJlc3Bv
bnNlIGlzIGNvbWluZyBmcm9tKSBpdCB3aWxsIHVzZSBTZXJ2ZXJOYW1lIGFuZAorIyBQb3J0IHRv
IGZvcm0gYSAiY2Fub25pY2FsIiBuYW1lLiAgV2l0aCB0aGlzIHNldHRpbmcgb2ZmLCBBcGFjaGUg
d2lsbAorIyB1c2UgdGhlIGhvc3RuYW1lOnBvcnQgdGhhdCB0aGUgY2xpZW50IHN1cHBsaWVkLCB3
aGVuIHBvc3NpYmxlLiAgVGhpcworIyBhbHNvIGFmZmVjdHMgU0VSVkVSX05BTUUgYW5kIFNFUlZF
Ul9QT1JUIGluIENHSSBzY3JpcHRzLgorIworVXNlQ2Fub25pY2FsTmFtZSBPbgorCisjCisjIFR5
cGVzQ29uZmlnIGRlc2NyaWJlcyB3aGVyZSB0aGUgbWltZS50eXBlcyBmaWxlIChvciBlcXVpdmFs
ZW50KSBpcworIyB0byBiZSBmb3VuZC4KKyMKKyMgQ29uZmlndXJlZCBmcm9tIHRoZSBodHRwZCBj
b21tYW5kIGxpbmUgZm9yIFdlYktpdCBsYXlvdXQgdGVzdHMuCisjCisjPElmTW9kdWxlIG1vZF9t
aW1lLmM+CisjICAgIFR5cGVzQ29uZmlnIC9wcml2YXRlL2V0Yy9hcGFjaGUyL21pbWUudHlwZXMK
KyM8L0lmTW9kdWxlPgorCisjCisjIERlZmF1bHRUeXBlIGlzIHRoZSBkZWZhdWx0IE1JTUUgdHlw
ZSB0aGUgc2VydmVyIHdpbGwgdXNlIGZvciBhIGRvY3VtZW50CisjIGlmIGl0IGNhbm5vdCBvdGhl
cndpc2UgZGV0ZXJtaW5lIG9uZSwgc3VjaCBhcyBmcm9tIGZpbGVuYW1lIGV4dGVuc2lvbnMuCisj
IElmIHlvdXIgc2VydmVyIGNvbnRhaW5zIG1vc3RseSB0ZXh0IG9yIEhUTUwgZG9jdW1lbnRzLCAi
dGV4dC9wbGFpbiIgaXMKKyMgYSBnb29kIHZhbHVlLiAgSWYgbW9zdCBvZiB5b3VyIGNvbnRlbnQg
aXMgYmluYXJ5LCBzdWNoIGFzIGFwcGxpY2F0aW9ucworIyBvciBpbWFnZXMsIHlvdSBtYXkgd2Fu
dCB0byB1c2UgImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgaW5zdGVhZCB0bworIyBrZWVwIGJy
b3dzZXJzIGZyb20gdHJ5aW5nIHRvIGRpc3BsYXkgYmluYXJ5IGZpbGVzIGFzIHRob3VnaCB0aGV5
IGFyZQorIyB0ZXh0LgorIworRGVmYXVsdFR5cGUgdGV4dC9wbGFpbgorCisjCisjIEhvc3RuYW1l
TG9va3VwczogTG9nIHRoZSBuYW1lcyBvZiBjbGllbnRzIG9yIGp1c3QgdGhlaXIgSVAgYWRkcmVz
c2VzCisjIGUuZy4sIHd3dy5hcGFjaGUub3JnIChvbikgb3IgMjA0LjYyLjEyOS4xMzIgKG9mZiku
CisjIFRoZSBkZWZhdWx0IGlzIG9mZiBiZWNhdXNlIGl0J2QgYmUgb3ZlcmFsbCBiZXR0ZXIgZm9y
IHRoZSBuZXQgaWYgcGVvcGxlCisjIGhhZCB0byBrbm93aW5nbHkgdHVybiB0aGlzIGZlYXR1cmUg
b24sIHNpbmNlIGVuYWJsaW5nIGl0IG1lYW5zIHRoYXQKKyMgZWFjaCBjbGllbnQgcmVxdWVzdCB3
aWxsIHJlc3VsdCBpbiBBVCBMRUFTVCBvbmUgbG9va3VwIHJlcXVlc3QgdG8gdGhlCisjIG5hbWVz
ZXJ2ZXIuCisjCitIb3N0bmFtZUxvb2t1cHMgT2ZmCisKKyMKKyMgRXJyb3JMb2c6IFRoZSBsb2Nh
dGlvbiBvZiB0aGUgZXJyb3IgbG9nIGZpbGUuCisjIElmIHlvdSBkbyBub3Qgc3BlY2lmeSBhbiBF
cnJvckxvZyBkaXJlY3RpdmUgd2l0aGluIGEgPFZpcnR1YWxIb3N0PgorIyBjb250YWluZXIsIGVy
cm9yIG1lc3NhZ2VzIHJlbGF0aW5nIHRvIHRoYXQgdmlydHVhbCBob3N0IHdpbGwgYmUKKyMgbG9n
Z2VkIGhlcmUuICBJZiB5b3UgKmRvKiBkZWZpbmUgYW4gZXJyb3IgbG9nZmlsZSBmb3IgYSA8Vmly
dHVhbEhvc3Q+CisjIGNvbnRhaW5lciwgdGhhdCBob3N0J3MgZXJyb3JzIHdpbGwgYmUgbG9nZ2Vk
IHRoZXJlIGFuZCBub3QgaGVyZS4KKyMKKyMgQ29uZmlndXJlZCBmcm9tIHRoZSBodHRwZCBjb21t
YW5kIGxpbmUgZm9yIFdlYktpdCBsYXlvdXQgdGVzdHMuCisjRXJyb3JMb2cgIi90bXAvbGF5b3V0
LXRlc3QtcmVzdWx0cy9lcnJvcl9sb2ciCisKKyMKKyMgTG9nTGV2ZWw6IENvbnRyb2wgdGhlIG51
bWJlciBvZiBtZXNzYWdlcyBsb2dnZWQgdG8gdGhlIGVycm9yX2xvZy4KKyMgUG9zc2libGUgdmFs
dWVzIGluY2x1ZGU6IGRlYnVnLCBpbmZvLCBub3RpY2UsIHdhcm4sIGVycm9yLCBjcml0LAorIyBh
bGVydCwgZW1lcmcuCisjCitMb2dMZXZlbCB3YXJuCisKKyMKKyMgVGhlIGZvbGxvd2luZyBkaXJl
Y3RpdmVzIGRlZmluZSBzb21lIGZvcm1hdCBuaWNrbmFtZXMgZm9yIHVzZSB3aXRoCisjIGEgQ3Vz
dG9tTG9nIGRpcmVjdGl2ZSAoc2VlIGJlbG93KS4KKyMKK0xvZ0Zvcm1hdCAiJWggJWwgJXUgJXQg
XCIlclwiICU+cyAlYiBcIiV7UmVmZXJlcn1pXCIgXCIle1VzZXItQWdlbnR9aVwiIiBjb21iaW5l
ZAorTG9nRm9ybWF0ICIlaCAlbCAldSAldCBcIiVyXCIgJT5zICViIiBjb21tb24KK0xvZ0Zvcm1h
dCAiJXtSZWZlcmVyfWkgLT4gJVUiIHJlZmVyZXIKK0xvZ0Zvcm1hdCAiJXtVc2VyLWFnZW50fWki
IGFnZW50CisKKyMKKyMgVGhlIGxvY2F0aW9uIGFuZCBmb3JtYXQgb2YgdGhlIGFjY2VzcyBsb2dm
aWxlIChDb21tb24gTG9nZmlsZSBGb3JtYXQpLgorIyBJZiB5b3UgZG8gbm90IGRlZmluZSBhbnkg
YWNjZXNzIGxvZ2ZpbGVzIHdpdGhpbiBhIDxWaXJ0dWFsSG9zdD4KKyMgY29udGFpbmVyLCB0aGV5
IHdpbGwgYmUgbG9nZ2VkIGhlcmUuICBDb250cmFyaXdpc2UsIGlmIHlvdSAqZG8qCisjIGRlZmlu
ZSBwZXItPFZpcnR1YWxIb3N0PiBhY2Nlc3MgbG9nZmlsZXMsIHRyYW5zYWN0aW9ucyB3aWxsIGJl
CisjIGxvZ2dlZCB0aGVyZWluIGFuZCAqbm90KiBpbiB0aGlzIGZpbGUuCisjCisjIENvbmZpZ3Vy
ZWQgZnJvbSB0aGUgaHR0cGQgY29tbWFuZCBsaW5lIGZvciBXZWJLaXQgbGF5b3V0IHRlc3RzLgor
I0N1c3RvbUxvZyAiL3RtcC9sYXlvdXQtdGVzdC1yZXN1bHRzL2FjY2Vzc19sb2ciIGNvbW1vbgor
CisjCisjIElmIHlvdSBwcmVmZXIgYSBzaW5nbGUgbG9nZmlsZSB3aXRoIGFjY2VzcywgYWdlbnQs
IGFuZCByZWZlcmVyIGluZm9ybWF0aW9uCisjIChDb21iaW5lZCBMb2dmaWxlIEZvcm1hdCkgeW91
IGNhbiB1c2UgdGhlIGZvbGxvd2luZyBkaXJlY3RpdmUuCisjCisjQ3VzdG9tTG9nICIvdG1wL2xh
eW91dC10ZXN0LXJlc3VsdHMvYWNjZXNzX2xvZyIgY29tYmluZWQKKworIworIyBPcHRpb25hbGx5
IGFkZCBhIGxpbmUgY29udGFpbmluZyB0aGUgc2VydmVyIHZlcnNpb24gYW5kIHZpcnR1YWwgaG9z
dAorIyBuYW1lIHRvIHNlcnZlci1nZW5lcmF0ZWQgcGFnZXMgKGVycm9yIGRvY3VtZW50cywgRlRQ
IGRpcmVjdG9yeSBsaXN0aW5ncywKKyMgbW9kX3N0YXR1cyBhbmQgbW9kX2luZm8gb3V0cHV0IGV0
Yy4sIGJ1dCBub3QgQ0dJIGdlbmVyYXRlZCBkb2N1bWVudHMpLgorIyBTZXQgdG8gIkVNYWlsIiB0
byBhbHNvIGluY2x1ZGUgYSBtYWlsdG86IGxpbmsgdG8gdGhlIFNlcnZlckFkbWluLgorIyBTZXQg
dG8gb25lIG9mOiAgT24gfCBPZmYgfCBFTWFpbAorIworU2VydmVyU2lnbmF0dXJlIE9uCisKKyMK
KyMgQWxpYXNlczogQWRkIGhlcmUgYXMgbWFueSBhbGlhc2VzIGFzIHlvdSBuZWVkICh3aXRoIG5v
IGxpbWl0KS4gVGhlIGZvcm1hdCBpcyAKKyMgQWxpYXMgZmFrZW5hbWUgcmVhbG5hbWUKKyMKKzxJ
Zk1vZHVsZSBtb2RfYWxpYXMuYz4KKzwvSWZNb2R1bGU+CisjIEVuZCBvZiBhbGlhc2VzLgorCisj
CisjIFJlZGlyZWN0IGFsbG93cyB5b3UgdG8gdGVsbCBjbGllbnRzIGFib3V0IGRvY3VtZW50cyB3
aGljaCB1c2VkIHRvIGV4aXN0IGluCisjIHlvdXIgc2VydmVyJ3MgbmFtZXNwYWNlLCBidXQgZG8g
bm90IGFueW1vcmUuIFRoaXMgYWxsb3dzIHlvdSB0byB0ZWxsIHRoZQorIyBjbGllbnRzIHdoZXJl
IHRvIGxvb2sgZm9yIHRoZSByZWxvY2F0ZWQgZG9jdW1lbnQuCisjIEZvcm1hdDogUmVkaXJlY3Qg
b2xkLVVSSSBuZXctVVJMCisjCisKKyMKKyMgRG9jdW1lbnQgdHlwZXMuCisjCis8SWZNb2R1bGUg
bW9kX21pbWUuYz4KKworICAgICMKKyAgICAjIEFkZExhbmd1YWdlIGFsbG93cyB5b3UgdG8gc3Bl
Y2lmeSB0aGUgbGFuZ3VhZ2Ugb2YgYSBkb2N1bWVudC4gWW91IGNhbgorICAgICMgdGhlbiB1c2Ug
Y29udGVudCBuZWdvdGlhdGlvbiB0byBnaXZlIGEgYnJvd3NlciBhIGZpbGUgaW4gYSBsYW5ndWFn
ZQorICAgICMgaXQgY2FuIHVuZGVyc3RhbmQuICAKKyAgICAjCisgICAgIyBOb3RlIDE6IFRoZSBz
dWZmaXggZG9lcyBub3QgaGF2ZSB0byBiZSB0aGUgc2FtZSBhcyB0aGUgbGFuZ3VhZ2UgCisgICAg
IyBrZXl3b3JkIC0tLSB0aG9zZSB3aXRoIGRvY3VtZW50cyBpbiBQb2xpc2ggKHdob3NlIG5ldC1z
dGFuZGFyZCAKKyAgICAjIGxhbmd1YWdlIGNvZGUgaXMgcGwpIG1heSB3aXNoIHRvIHVzZSAiQWRk
TGFuZ3VhZ2UgcGwgLnBvIiB0byAKKyAgICAjIGF2b2lkIHRoZSBhbWJpZ3VpdHkgd2l0aCB0aGUg
Y29tbW9uIHN1ZmZpeCBmb3IgcGVybCBzY3JpcHRzLgorICAgICMKKyAgICAjIE5vdGUgMjogVGhl
IGV4YW1wbGUgZW50cmllcyBiZWxvdyBpbGx1c3RyYXRlIHRoYXQgaW4gcXVpdGUKKyAgICAjIHNv
bWUgY2FzZXMgdGhlIHR3byBjaGFyYWN0ZXIgJ0xhbmd1YWdlJyBhYmJyZXZpYXRpb24gaXMgbm90
CisgICAgIyBpZGVudGljYWwgdG8gdGhlIHR3byBjaGFyYWN0ZXIgJ0NvdW50cnknIGNvZGUgZm9y
IGl0cyBjb3VudHJ5LAorICAgICMgRS5nLiAnRGFubWFyay9kaycgdmVyc3VzICdEYW5pc2gvZGEn
LgorICAgICMKKyAgICAjIE5vdGUgMzogSW4gdGhlIGNhc2Ugb2YgJ2x0eicgd2UgdmlvbGF0ZSB0
aGUgUkZDIGJ5IHVzaW5nIGEgdGhyZWUgY2hhciAKKyAgICAjIHNwZWNpZmllci4gQnV0IHRoZXJl
IGlzICd3b3JrIGluIHByb2dyZXNzJyB0byBmaXggdGhpcyBhbmQgZ2V0IAorICAgICMgdGhlIHJl
ZmVyZW5jZSBkYXRhIGZvciByZmMxNzY2IGNsZWFuZWQgdXAuCisgICAgIworICAgICMgRGFuaXNo
IChkYSkgLSBEdXRjaCAobmwpIC0gRW5nbGlzaCAoZW4pIC0gRXN0b25pYW4gKGVlKQorICAgICMg
RnJlbmNoIChmcikgLSBHZXJtYW4gKGRlKSAtIEdyZWVrLU1vZGVybiAoZWwpCisgICAgIyBJdGFs
aWFuIChpdCkgLSBLb3JlYW4gKGtyKSAtIE5vcndlZ2lhbiAobm8pIC0gTm9yd2VnaWFuIE55bm9y
c2sgKG5uKQorICAgICMgUG9ydHVnZXNlIChwdCkgLSBMdXhlbWJvdXJnZW9pcyogKGx0eikKKyAg
ICAjIFNwYW5pc2ggKGVzKSAtIFN3ZWRpc2ggKHN2KSAtIENhdGFsYW4gKGNhKSAtIEN6ZWNoKGNz
KQorICAgICMgUG9saXNoIChwbCkgLSBCcmF6aWxpYW4gUG9ydHVndWVzZSAocHQtYnIpIC0gSmFw
YW5lc2UgKGphKQorICAgICMgUnVzc2lhbiAocnUpCisgICAgIworICAgIEFkZExhbmd1YWdlIGRh
IC5kaworICAgIEFkZExhbmd1YWdlIG5sIC5ubAorICAgIEFkZExhbmd1YWdlIGVuIC5lbgorICAg
IEFkZExhbmd1YWdlIGV0IC5lZQorICAgIEFkZExhbmd1YWdlIGZyIC5mcgorICAgIEFkZExhbmd1
YWdlIGRlIC5kZQorICAgIEFkZExhbmd1YWdlIGVsIC5lbAorICAgIEFkZExhbmd1YWdlIGhlIC5o
ZQorICAgIEFkZENoYXJzZXQgSVNPLTg4NTktOCAuaXNvODg1OS04CisgICAgQWRkTGFuZ3VhZ2Ug
aXQgLml0CisgICAgQWRkTGFuZ3VhZ2UgamEgLmphCisgICAgQWRkQ2hhcnNldCBJU08tMjAyMi1K
UCAuamlzCisgICAgQWRkTGFuZ3VhZ2Uga3IgLmtyCisgICAgQWRkQ2hhcnNldCBJU08tMjAyMi1L
UiAuaXNvLWtyCisgICAgQWRkTGFuZ3VhZ2Ugbm4gLm5uCisgICAgQWRkTGFuZ3VhZ2Ugbm8gLm5v
CisgICAgQWRkTGFuZ3VhZ2UgcGwgLnBvCisgICAgQWRkQ2hhcnNldCBJU08tODg1OS0yIC5pc28t
cGwKKyAgICBBZGRMYW5ndWFnZSBwdCAucHQKKyAgICBBZGRMYW5ndWFnZSBwdC1iciAucHQtYnIK
KyAgICBBZGRMYW5ndWFnZSBsdHogLmx1CisgICAgQWRkTGFuZ3VhZ2UgY2EgLmNhCisgICAgQWRk
TGFuZ3VhZ2UgZXMgLmVzCisgICAgQWRkTGFuZ3VhZ2Ugc3YgLnN2CisgICAgQWRkTGFuZ3VhZ2Ug
Y3MgLmN6IC5jcworICAgIEFkZExhbmd1YWdlIHJ1IC5ydQorICAgIEFkZExhbmd1YWdlIHpoLVRX
IC56aC10dworICAgIEFkZENoYXJzZXQgQmlnNSAgICAgICAgIC5CaWc1ICAgIC5iaWc1CisgICAg
QWRkQ2hhcnNldCBXSU5ET1dTLTEyNTEgLmNwLTEyNTEKKyAgICBBZGRDaGFyc2V0IENQODY2ICAg
ICAgICAuY3A4NjYKKyAgICBBZGRDaGFyc2V0IElTTy04ODU5LTUgICAuaXNvLXJ1CisgICAgQWRk
Q2hhcnNldCBLT0k4LVIgICAgICAgLmtvaTgtcgorICAgIEFkZENoYXJzZXQgVUNTLTIgICAgICAg
IC51Y3MyCisgICAgQWRkQ2hhcnNldCBVQ1MtNCAgICAgICAgLnVjczQKKyAgICBBZGRDaGFyc2V0
IFVURi04ICAgICAgICAudXRmOAorCisgICAgIyBMYW5ndWFnZVByaW9yaXR5IGFsbG93cyB5b3Ug
dG8gZ2l2ZSBwcmVjZWRlbmNlIHRvIHNvbWUgbGFuZ3VhZ2VzCisgICAgIyBpbiBjYXNlIG9mIGEg
dGllIGR1cmluZyBjb250ZW50IG5lZ290aWF0aW9uLgorICAgICMKKyAgICAjIEp1c3QgbGlzdCB0
aGUgbGFuZ3VhZ2VzIGluIGRlY3JlYXNpbmcgb3JkZXIgb2YgcHJlZmVyZW5jZS4gV2UgaGF2ZQor
ICAgICMgbW9yZSBvciBsZXNzIGFscGhhYmV0aXplZCB0aGVtIGhlcmUuIFlvdSBwcm9iYWJseSB3
YW50IHRvIGNoYW5nZSB0aGlzLgorICAgICMKKyAgICA8SWZNb2R1bGUgbW9kX25lZ290aWF0aW9u
LmM+CisgICAgICAgIExhbmd1YWdlUHJpb3JpdHkgZW4gZGEgbmwgZXQgZnIgZGUgZWwgaXQgamEg
a3Igbm8gcGwgcHQgcHQtYnIgcnUgbHR6IGNhIGVzIHN2IHR3CisgICAgPC9JZk1vZHVsZT4KKwor
ICAgICMKKyAgICAjIEFkZFR5cGUgYWxsb3dzIHlvdSB0byB0d2VhayBtaW1lLnR5cGVzIHdpdGhv
dXQgYWN0dWFsbHkgZWRpdGluZyBpdCwgb3IgdG8KKyAgICAjIG1ha2UgY2VydGFpbiBmaWxlcyB0
byBiZSBjZXJ0YWluIHR5cGVzLgorICAgICMKKyAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtdGFy
IC50Z3oKKworICAgICMKKyAgICAjIEFkZEVuY29kaW5nIGFsbG93cyB5b3UgdG8gaGF2ZSBjZXJ0
YWluIGJyb3dzZXJzIHVuY29tcHJlc3MKKyAgICAjIGluZm9ybWF0aW9uIG9uIHRoZSBmbHkuIE5v
dGU6IE5vdCBhbGwgYnJvd3NlcnMgc3VwcG9ydCB0aGlzLgorICAgICMgRGVzcGl0ZSB0aGUgbmFt
ZSBzaW1pbGFyaXR5LCB0aGUgZm9sbG93aW5nIEFkZCogZGlyZWN0aXZlcyBoYXZlIG5vdGhpbmcK
KyAgICAjIHRvIGRvIHdpdGggdGhlIEZhbmN5SW5kZXhpbmcgY3VzdG9taXphdGlvbiBkaXJlY3Rp
dmVzIGFib3ZlLgorICAgICMKKyAgICBBZGRFbmNvZGluZyB4LWNvbXByZXNzIC5aCisgICAgQWRk
RW5jb2RpbmcgeC1nemlwIC5neiAudGd6CisgICAgIworICAgICMgSWYgdGhlIEFkZEVuY29kaW5n
IGRpcmVjdGl2ZXMgYWJvdmUgYXJlIGNvbW1lbnRlZC1vdXQsIHRoZW4geW91CisgICAgIyBwcm9i
YWJseSBzaG91bGQgZGVmaW5lIHRob3NlIGV4dGVuc2lvbnMgdG8gaW5kaWNhdGUgbWVkaWEgdHlw
ZXM6CisgICAgIworICAgICNBZGRUeXBlIGFwcGxpY2F0aW9uL3gtY29tcHJlc3MgLloKKyAgICAj
QWRkVHlwZSBhcHBsaWNhdGlvbi94LWd6aXAgLmd6IC50Z3oKKworICAgICMKKyAgICAjIEFkZEhh
bmRsZXIgYWxsb3dzIHlvdSB0byBtYXAgY2VydGFpbiBmaWxlIGV4dGVuc2lvbnMgdG8gImhhbmRs
ZXJzIiwKKyAgICAjIGFjdGlvbnMgdW5yZWxhdGVkIHRvIGZpbGV0eXBlLiBUaGVzZSBjYW4gYmUg
ZWl0aGVyIGJ1aWx0IGludG8gdGhlIHNlcnZlcgorICAgICMgb3IgYWRkZWQgd2l0aCB0aGUgQWN0
aW9uIGNvbW1hbmQgKHNlZSBiZWxvdykKKyAgICAjCisgICAgIyBJZiB5b3Ugd2FudCB0byB1c2Ug
c2VydmVyIHNpZGUgaW5jbHVkZXMsIG9yIENHSSBvdXRzaWRlCisgICAgIyBTY3JpcHRBbGlhc2Vk
IGRpcmVjdG9yaWVzLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZyBsaW5lcy4KKyAgICAjCisgICAg
IyBUbyB1c2UgQ0dJIHNjcmlwdHM6CisgICAgIworICAgIEFkZEhhbmRsZXIgY2dpLXNjcmlwdCAu
Y2dpIC5wbAorCisgICAgIworICAgICMgVG8gdXNlIHNlcnZlci1wYXJzZWQgSFRNTCBmaWxlcwor
ICAgICMKKyAgICBBZGRUeXBlIHRleHQvaHRtbCAuc2h0bWwKKyAgICBBZGRIYW5kbGVyIHNlcnZl
ci1wYXJzZWQgLnNodG1sCisKKyAgICAjCisgICAgIyBVbmNvbW1lbnQgdGhlIGZvbGxvd2luZyBs
aW5lIHRvIGVuYWJsZSBBcGFjaGUncyBzZW5kLWFzaXMgSFRUUCBmaWxlCisgICAgIyBmZWF0dXJl
CisgICAgIworICAgIEFkZEhhbmRsZXIgc2VuZC1hcy1pcyBhc2lzCisKKyAgICAjCisgICAgIyBJ
ZiB5b3Ugd2lzaCB0byB1c2Ugc2VydmVyLXBhcnNlZCBpbWFnZW1hcCBmaWxlcywgdXNlCisgICAg
IworICAgICNBZGRIYW5kbGVyIGltYXAtZmlsZSBtYXAKKworICAgICMKKyAgICAjIFRvIGVuYWJs
ZSB0eXBlIG1hcHMsIHlvdSBtaWdodCB3YW50IHRvIHVzZQorICAgICMKKyAgICAjQWRkSGFuZGxl
ciB0eXBlLW1hcCB2YXIKKworPC9JZk1vZHVsZT4KKyMgRW5kIG9mIGRvY3VtZW50IHR5cGVzLgor
CisjCisjIEFjdGlvbiBsZXRzIHlvdSBkZWZpbmUgbWVkaWEgdHlwZXMgdGhhdCB3aWxsIGV4ZWN1
dGUgYSBzY3JpcHQgd2hlbmV2ZXIKKyMgYSBtYXRjaGluZyBmaWxlIGlzIGNhbGxlZC4gVGhpcyBl
bGltaW5hdGVzIHRoZSBuZWVkIGZvciByZXBlYXRlZCBVUkwKKyMgcGF0aG5hbWVzIGZvciBvZnQt
dXNlZCBDR0kgZmlsZSBwcm9jZXNzb3JzLgorIyBGb3JtYXQ6IEFjdGlvbiBtZWRpYS90eXBlIC9j
Z2ktc2NyaXB0L2xvY2F0aW9uCisjIEZvcm1hdDogQWN0aW9uIGhhbmRsZXItbmFtZSAvY2dpLXNj
cmlwdC9sb2NhdGlvbgorIworCisjCisjIE1ldGFEaXI6IHNwZWNpZmllcyB0aGUgbmFtZSBvZiB0
aGUgZGlyZWN0b3J5IGluIHdoaWNoIEFwYWNoZSBjYW4gZmluZAorIyBtZXRhIGluZm9ybWF0aW9u
IGZpbGVzLiBUaGVzZSBmaWxlcyBjb250YWluIGFkZGl0aW9uYWwgSFRUUCBoZWFkZXJzCisjIHRv
IGluY2x1ZGUgd2hlbiBzZW5kaW5nIHRoZSBkb2N1bWVudAorIworI01ldGFEaXIgLndlYgorCisj
CisjIE1ldGFTdWZmaXg6IHNwZWNpZmllcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBmb3IgdGhlIGZp
bGUgY29udGFpbmluZyB0aGUKKyMgbWV0YSBpbmZvcm1hdGlvbi4KKyMKKyNNZXRhU3VmZml4IC5t
ZXRhCisKKyMKKyMgQ3VzdG9taXphYmxlIGVycm9yIHJlc3BvbnNlIChBcGFjaGUgc3R5bGUpCisj
ICB0aGVzZSBjb21lIGluIHRocmVlIGZsYXZvcnMKKyMKKyMgICAgMSkgcGxhaW4gdGV4dAorI0Vy
cm9yRG9jdW1lbnQgNTAwICJUaGUgc2VydmVyIG1hZGUgYSBib28gYm9vLgorIyAgbi5iLiAgdGhl
IHNpbmdsZSBsZWFkaW5nICgiKSBtYXJrcyBpdCBhcyB0ZXh0LCBpdCBkb2VzIG5vdCBnZXQgb3V0
cHV0CisjCisjICAgIDIpIGxvY2FsIHJlZGlyZWN0cworI0Vycm9yRG9jdW1lbnQgNDA0IC9taXNz
aW5nLmh0bWwKKyMgIHRvIHJlZGlyZWN0IHRvIGxvY2FsIFVSTCAvbWlzc2luZy5odG1sCisjRXJy
b3JEb2N1bWVudCA0MDQgL2NnaS1iaW4vbWlzc2luZ19oYW5kbGVyLnBsCisjICBOLkIuOiBZb3Ug
Y2FuIHJlZGlyZWN0IHRvIGEgc2NyaXB0IG9yIGEgZG9jdW1lbnQgdXNpbmcgc2VydmVyLXNpZGUt
aW5jbHVkZXMuCisjCisjICAgIDMpIGV4dGVybmFsIHJlZGlyZWN0cworI0Vycm9yRG9jdW1lbnQg
NDAyIGh0dHA6Ly9zb21lLm90aGVyLXNlcnZlci5jb20vc3Vic2NyaXB0aW9uX2luZm8uaHRtbAor
IyAgTi5CLjogTWFueSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIGFzc29jaWF0ZWQgd2l0
aCB0aGUgb3JpZ2luYWwKKyMgIHJlcXVlc3Qgd2lsbCAqbm90KiBiZSBhdmFpbGFibGUgdG8gc3Vj
aCBhIHNjcmlwdC4KKworIworIyBQcm94eSBTZXJ2ZXIgZGlyZWN0aXZlcy4gVW5jb21tZW50IHRo
ZSBmb2xsb3dpbmcgbGluZXMgdG8KKyMgZW5hYmxlIHRoZSBwcm94eSBzZXJ2ZXI6CisjCisjPElm
TW9kdWxlIG1vZF9wcm94eS5jPgorIyAgICBQcm94eVJlcXVlc3RzIE9uCisKKyMgICAgPERpcmVj
dG9yeSBwcm94eToqPgorIyAgICAgICAgT3JkZXIgZGVueSxhbGxvdworIyAgICAgICAgRGVueSBm
cm9tIGFsbAorIyAgICAgICAgQWxsb3cgZnJvbSAueW91ci1kb21haW4uY29tCisjICAgIDwvRGly
ZWN0b3J5PgorCisgICAgIworICAgICMgRW5hYmxlL2Rpc2FibGUgdGhlIGhhbmRsaW5nIG9mIEhU
VFAvMS4xICJWaWE6IiBoZWFkZXJzLgorICAgICMgKCJGdWxsIiBhZGRzIHRoZSBzZXJ2ZXIgdmVy
c2lvbjsgIkJsb2NrIiByZW1vdmVzIGFsbCBvdXRnb2luZyBWaWE6IGhlYWRlcnMpCisgICAgIyBT
ZXQgdG8gb25lIG9mOiBPZmYgfCBPbiB8IEZ1bGwgfCBCbG9jaworICAgICMKKyMgICAgUHJveHlW
aWEgT24KKworICAgICMKKyAgICAjIFRvIGVuYWJsZSB0aGUgY2FjaGUgYXMgd2VsbCwgZWRpdCBh
bmQgdW5jb21tZW50IHRoZSBmb2xsb3dpbmcgbGluZXM6CisgICAgIyAobm8gY2FjaGVpbmcgd2l0
aG91dCBDYWNoZVJvb3QpCisgICAgIworIyAgICBDYWNoZVJvb3QgIi9wcml2YXRlL3Zhci9ydW4v
cHJveHkiCisjICAgIENhY2hlU2l6ZSA1CisjICAgIENhY2hlR2NJbnRlcnZhbCA0CisjICAgIENh
Y2hlTWF4RXhwaXJlIDI0CisjICAgIENhY2hlTGFzdE1vZGlmaWVkRmFjdG9yIDAuMQorIyAgICBD
YWNoZURlZmF1bHRFeHBpcmUgMQorIyAgICBOb0NhY2hlIGEtZG9tYWluLmNvbSBhbm90aGVyLWRv
bWFpbi5lZHUgam9lcy5nYXJhZ2Utc2FsZS5jb20KKworIzwvSWZNb2R1bGU+CisjIEVuZCBvZiBw
cm94eSBkaXJlY3RpdmVzLgorCisKKzxJZk1vZHVsZSBtb2RfcGhwNS5jPgorICAgICMgSWYgcGhw
IGlzIHR1cm5lZCBvbiwgd2UgcmVwc2VjdCAucGhwIGFuZCAucGhwcyBmaWxlcy4KKyAgICBBZGRU
eXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwIC5waHAKKyAgICBBZGRUeXBlIGFwcGxpY2F0aW9u
L3gtaHR0cGQtcGhwIC5iYXQKKyAgICBBZGRUeXBlIGFwcGxpY2F0aW9uL3gtaHR0cGQtcGhwLXNv
dXJjZSAucGhwcworCisgICAgIyBTaW5jZSBtb3N0IHVzZXJzIHdpbGwgd2FudCBpbmRleC5waHAg
dG8gd29yayB3ZQorICAgICMgYWxzbyBhdXRvbWF0aWNhbGx5IGVuYWJsZSBpbmRleC5waHAKKyAg
ICA8SWZNb2R1bGUgbW9kX2Rpci5jPgorICAgICAgICBEaXJlY3RvcnlJbmRleCBpbmRleC5odG1s
IGluZGV4LnBocAorICAgIDwvSWZNb2R1bGU+Cis8L0lmTW9kdWxlPgorCis8SWZNb2R1bGUgbW9k
X3Jld3JpdGUuYz4KKyAgICBSZXdyaXRlRW5naW5lIE9uCisgICAgUmV3cml0ZUNvbmQgJXtSRVFV
RVNUX01FVEhPRH0gXlRSQUNFCisgICAgUmV3cml0ZVJ1bGUgLiogLSBbRl0KKzwvSWZNb2R1bGU+
CisKKzxWaXJ0dWFsSG9zdCAqOjg0NDM+CisgICAgU2VydmVyTmFtZSAxMjcuMC4wLjEKKyAgICBT
U0xFbmdpbmUgT24KKzwvVmlydHVhbEhvc3Q+CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTAwOTZiMC4uNGE3MzRjYSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEx
LTAxLTA0ICBTY290dCBDYW1lcm9uICA8c2NjYW1lcm9uQHJpbS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdXBkYXRlIHJ1bi13ZWJraXQtaHR0
cGQgdG8gYmUgYWJsZSB0byBsYXVuY2ggQXBhY2hlMi4yIGluIGEgTVNZUyBlbnZpcm9ubWVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAwMzYKKwor
ICAgICAgICBUaGlzIHdpbGwgYWRkIGFuIEFwYWNoZTIuMiBjb25maWd1cmF0aW9uIGZpbGUgYW5k
IG1vZGlmaWVzIHNjcmlwdHMgdG8gYWxsb3cKKyAgICAgICAgcnVubmluZyBhbiBodHRwZCBzZXJ2
ZXIgaW4gYW4gTVNZUyBlbnZpcm9ubWVudC4KKworICAgICAgICBUaGUgZGVmYXVsdCBBcGFjaGUy
LjIgaW5zdGFsbGF0aW9uIHBhdGggaGFzIGJlZW4gcHJlc2VydmVkIGFuZCBQSFA1IG1vZHVsZXMg
ZGlzc2FibGVkCisgICAgICAgIGluIG9yZGVyIHRvIGFsbG93IGZvciBzaW1wbGUgaW5zdGFsbGF0
aW9uL2V4ZWN1dGlvbi4gIFNpbXBseSBpbnN0YWxsIHRoZSBsYXRlc3QKKyAgICAgICAgQXBhY2hl
Mi4yIHZlcnNpb24gd2l0aCBPcGVuU1NMIGZyb20gaHR0cDovL2h0dHBkLmFwYWNoZS5vcmcvZG93
bmxvYWQuY2dpI2FwYWNoZTIyIHRvCisgICAgICAgIGJlIGFibGUgdG8gZXhlY3V0ZSBydW4td2Vi
a2l0LWh0dHBkLgorICAgICAgICAKKworICAgICAgICAqIFNjcmlwdHMvcnVuLXdlYmtpdC1odHRw
ZDoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvaHR0cGQucG06CisKIDIwMTEtMDEtMDMg
IFlpIFNoZW4gIDx5aS40LnNoZW5Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFk
YW0gQmFydGguCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQgYi9U
b29scy9TY3JpcHRzL3J1bi13ZWJraXQtaHR0cGQKaW5kZXggOWVhMjU1MS4uNzgyNjhkMiAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9ydW4td2Via2l0LWh0dHBkCisrKyBiL1Rvb2xzL1Njcmlw
dHMvcnVuLXdlYmtpdC1odHRwZApAQCAtMiw2ICsyLDcgQEAKIAogIyBDb3B5cmlnaHQgKEMpIDIw
MDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJp
Z2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQG55cG9wLmNvbSkKKyMgQ29weXJp
Z2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02OSw2ICs3MCw3IEBAIHNldENv
bmZpZ3VyYXRpb24oKTsKIG15ICRwcm9kdWN0RGlyID0gcHJvZHVjdERpcigpOwogY2hkaXJXZWJL
aXQoKTsKIG15ICR0ZXN0RGlyZWN0b3J5ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShnZXRjd2QoKSwg
IkxheW91dFRlc3RzIik7CiskdGVzdERpcmVjdG9yeSA9IGNvbnZlcnRNc3lzUGF0aCgkdGVzdERp
cmVjdG9yeSkgaWYgaXNNc3lzKCk7CiBteSAkbGlzdGVuID0gIjEyNy4wLjAuMTokaHR0cGRQb3J0
IjsKICRsaXN0ZW4gPSAiJGh0dHBkUG9ydCIgaWYgKCRhbGxJbnRlcmZhY2VzKTsKIApAQCAtODIs
MTQgKzg0LDE2IEBAIHByaW50ICJQcmVzcyBDdHJsK0MgdG8gc3RvcCBpdC5cblxuIjsKIAogbXkg
QGFyZ3MgPSAoCiAgICAgIi1DIiwgIkxpc3RlbiAkbGlzdGVuIiwKLSAgICAiLWMiLCAiQ3VzdG9t
TG9nIHwvdXNyL2Jpbi90ZWUgY29tbW9uIiwKLSAgICAiLWMiLCAiRXJyb3JMb2cgfC91c3IvYmlu
L3RlZSIsCi0gICAgIyBSdW4gaW4gc2luZ2xlLXByb2Nlc3MgbW9kZSwgZG8gbm90IGRldGFjaCBm
cm9tIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbC4KLSAgICAiLVgiLAogICAgICMgRGlzYWJsZSBL
ZWVwLUFsaXZlIHN1cHBvcnQuIE1ha2VzIHRlc3RpbmcgaW4gbXVsdGlwbGUgYnJvd3NlcnMgZWFz
aWVyIChubyBuZWVkIHRvIHdhaXQKICAgICAjIGZvciBhbm90aGVyIGJyb3dzZXIncyBjb25uZWN0
aW9uIHRvIGV4cGlyZSkuCiAgICAgIi1jIiwgIktlZXBBbGl2ZSAwIgogKTsKK3B1c2ggQGFyZ3Ms
ICgKKyAgICAiLWMiLCAiQ3VzdG9tTG9nIHwvdXNyL2Jpbi90ZWUgY29tbW9uIiwKKyAgICAiLWMi
LCAiRXJyb3JMb2cgfC91c3IvYmluL3RlZSIsCisgICAgIyBSdW4gaW4gc2luZ2xlLXByb2Nlc3Mg
bW9kZSwgZG8gbm90IGRldGFjaCBmcm9tIHRoZSBjb250cm9sbGluZyB0ZXJtaW5hbC4KKyAgICAi
LVgiLAorKSB1bmxlc3MgaXNNc3lzKCk7CiAKIG15IEBkZWZhdWx0QXJncyA9IGdldERlZmF1bHRD
b25maWdGb3JUZXN0RGlyZWN0b3J5KCR0ZXN0RGlyZWN0b3J5KTsKIEBhcmdzID0gKEBkZWZhdWx0
QXJncywgQGFyZ3MpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2h0dHBk
LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2h0dHBkLnBtCmluZGV4IGI0MTVkYjZjLi41
MDUzNDMzIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvaHR0cGQucG0KKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL2h0dHBkLnBtCkBAIC0xLDYgKzEsNyBAQAogIyBD
b3B5cmlnaHQgKEMpIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkCiAjIENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292
IChhcEBueXBvcC5jb20pCiAjIENvcHlyaWdodCAoQykgMjAxMCBBbmRyYXMgQmVjc2kgKGFiZWNz
aUBpbmYudS1zemVnZWQuaHUpLCBVbml2ZXJzaXR5IG9mIFN6ZWdlZAorIyBDb3B5cmlnaHQgKEMp
IFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAj
CiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU4LDYgKzU5LDcgQEAgQkVHSU4gewogfQog
CiBteSAkdG1wRGlyID0gIi90bXAiOworJHRtcERpciA9IGNvbnZlcnRNc3lzUGF0aCgkdG1wRGly
KSBpZiBpc01zeXMoKTsKIG15ICRodHRwZExvY2tQcmVmaXggPSAiV2ViS2l0SHR0cGQubG9jay4i
OwogbXkgJG15TG9ja0ZpbGU7CiBteSAkZXhjbHVzaXZlTG9ja0ZpbGUgPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKCR0bXBEaXIsICJXZWJLaXQubG9jayIpOwpAQCAtNzYsNiArNzgsOCBAQCBzdWIgZ2V0
SFRUUERQYXRoCiB7CiAgICAgaWYgKGlzRGViaWFuQmFzZWQoKSkgewogICAgICAgICAkaHR0cGRQ
YXRoID0gIi91c3Ivc2Jpbi9hcGFjaGUyIjsKKyAgICB9IGVsc2lmIChpc01zeXMoKSkgeworICAg
ICAgICAkaHR0cGRQYXRoID0gIi9jL3Byb2dyYW1cIGZpbGVzL2FwYWNoZVwgc29mdHdhcmVcIGZv
dW5kYXRpb24vYXBhY2hlMi4yL2Jpbi9odHRwZC5leGUiOwogICAgIH0gZWxzZSB7CiAgICAgICAg
ICRodHRwZFBhdGggPSAiL3Vzci9zYmluL2h0dHBkIjsKICAgICB9CkBAIC0xMDAsMTMgKzEwNCwx
NiBAQCBzdWIgZ2V0RGVmYXVsdENvbmZpZ0ZvclRlc3REaXJlY3RvcnkKICAgICAgICAgIyBTZXR1
cCBhIGxpbmsgdG8gd2hlcmUgdGhlIGpzIHRlc3QgdGVtcGxhdGVzIGFyZSBzdG9yZWQsIHVzZSAt
YyBzbyB0aGF0IG1vZF9hbGlhcyB3aWxsIGFscmVhZHkgYmUgbG9hZGVkLgogICAgICAgICAiLWMi
LCAiQWxpYXMgL2pzLXRlc3QtcmVzb3VyY2VzIFwiJGpzVGVzdFJlc291cmNlc0RpcmVjdG9yeVwi
IiwKICAgICAgICAgIi1jIiwgIlR5cGVzQ29uZmlnIFwiJHR5cGVzQ29uZmlnXCIiLAotICAgICAg
ICAjIEFwYWNoZSB3b3VsZG4ndCBydW4gQ0dJcyB3aXRoIHBlcm1pc3Npb25zPT03MDAgb3RoZXJ3
aXNlCi0gICAgICAgICItYyIsICJVc2VyIFwiIyQ8XCIiLAotICAgICAgICAiLWMiLCAiTG9ja0Zp
bGUgXCIkaHR0cGRMb2NrRmlsZVwiIiwKICAgICAgICAgIi1jIiwgIlBpZEZpbGUgXCIkaHR0cGRQ
aWRGaWxlXCIiLAogICAgICAgICAiLWMiLCAiU2NvcmVCb2FyZEZpbGUgXCIkaHR0cGRTY29yZUJv
YXJkRmlsZVwiIiwKICAgICApOwogCisgICAgcHVzaCBAaHR0cGRBcmdzLCAoCisgICAgICAgICMg
QXBhY2hlIHdvdWxkbid0IHJ1biBDR0lzIHdpdGggcGVybWlzc2lvbnM9PTcwMCBvdGhlcndpc2UK
KyAgICAgICAgIi1jIiwgIlVzZXIgXCIjJDxcIiIsCisgICAgICAgICItYyIsICJMb2NrRmlsZSBc
IiRodHRwZExvY2tGaWxlXCIiCisgICAgKSB1bmxlc3MgaXNNc3lzKCk7CisKICAgICAjIEZJWE1F
OiBFbmFibGUgdGhpcyBvbiBXaW5kb3dzIG9uY2UgPHJkYXI6Ly9wcm9ibGVtLzUzNDU5ODU+IGlz
IGZpeGVkCiAgICAgIyBUaGUgdmVyc2lvbiBvZiBBcGFjaGUgd2UgdXNlIHdpdGggQ3lnd2luIGRv
ZXMgbm90IHN1cHBvcnQgU1NMCiAgICAgbXkgJHNzbENlcnRpZmljYXRlID0gIiR0ZXN0RGlyZWN0
b3J5L2h0dHAvY29uZi93ZWJraXQtaHR0cGQucGVtIjsKQEAgLTEyOSw2ICsxMzYsOCBAQCBzdWIg
Z2V0SFRUUERDb25maWdQYXRoRm9yVGVzdERpcmVjdG9yeQogICAgICAgICAgICAgY2htb2QoMDc1
NSwgIi91c3IvbGliL2FwYWNoZS9saWJwaHA0LmRsbCIpOwogICAgICAgICB9CiAgICAgICAgICRo
dHRwZENvbmZpZyA9ICIkd2luZG93c0NvbmZEaXJlY3RvcnkvY3lnd2luLWh0dHBkLmNvbmYiOwor
ICAgIH0gZWxzaWYgKGlzTXN5cygpKSB7CisgICAgICAgICRodHRwZENvbmZpZyA9ICIkdGVzdERp
cmVjdG9yeS9odHRwL2NvbmYvYXBhY2hlMi1tc3lzLWh0dHBkLmNvbmYiOwogICAgIH0gZWxzaWYg
KGlzRGViaWFuQmFzZWQoKSkgewogICAgICAgICAkaHR0cGRDb25maWcgPSAiJHRlc3REaXJlY3Rv
cnkvaHR0cC9jb25mL2FwYWNoZTItZGViaWFuLWh0dHBkLmNvbmYiOwogICAgIH0gZWxzaWYgKGlz
RmVkb3JhQmFzZWQoKSkgewpAQCAtMzE5LDMgKzMyOCwxMyBAQCBzdWIgZ2V0V2FpdFRpbWUKICAg
ICB9CiAgICAgcmV0dXJuICR3YWl0VGltZTsKIH0KKworc3ViIGNvbnZlcnRNc3lzUGF0aAorewor
ICAgIG15ICgkcGF0aCkgPSBAXzsKKyAgICByZXR1cm4gdW5sZXNzIGlzTXN5cygpOworCisgICAg
JHBhdGggPSBgY21kLmV4ZSAvL2MgZWNobyAkcGF0aGA7CisgICAgJHBhdGggPX4gcy9cclxuJC8v
OworICAgIHJldHVybiAkcGF0aDsKK30KLS0gCjEuNy4yLjMubXN5c2dpdC4wCgo=
</data>
<flag name="review"
          id="69114"
          type_id="1"
          status="+"
          setter="dbates"
    />
          </attachment>
      

    </bug>

</bugzilla>