<?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>99575</bug_id>
          
          <creation_ts>2012-10-17 03:01:03 -0700</creation_ts>
          <short_desc>[EFL][WK2] Remove &apos;_&apos; prefix from private API structure names</short_desc>
          <delta_ts>2012-10-18 01:01:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>cdumez</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>744082</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-17 03:01:03 -0700</bug_when>
    <thetext>Underscore symbols need to be removed from private API structure names, it will let us to remove &apos;typedef _name name;&apos; from all the private headers and will make code look better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744163</commentid>
    <comment_count>1</comment_count>
      <attachid>169160</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-17 05:02:55 -0700</bug_when>
    <thetext>Created attachment 169160
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744945</commentid>
    <comment_count>2</comment_count>
      <attachid>169160</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 21:13:04 -0700</bug_when>
    <thetext>Comment on attachment 169160
patch

Rejecting attachment 169160 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Hunk #2 FAILED at 148.
Hunk #3 succeeded at 167 (offset -1 lines).
Hunk #4 succeeded at 503 (offset -4 lines).
1 out of 4 hunks FAILED -- saving rejects to file Source/WebKit2/UIProcess/API/efl/ewk_view.cpp.rej
patching file Source/WebKit2/UIProcess/API/efl/ewk_view.h
patching file Source/WebKit2/UIProcess/API/efl/ewk_view_private.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Gyuyoung K...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/14397863</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745037</commentid>
    <comment_count>3</comment_count>
      <attachid>169359</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-18 00:23:59 -0700</bug_when>
    <thetext>Created attachment 169359
to be landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745056</commentid>
    <comment_count>4</comment_count>
      <attachid>169359</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 01:01:16 -0700</bug_when>
    <thetext>Comment on attachment 169359
to be landed

Clearing flags on attachment: 169359

Committed r131712: &lt;http://trac.webkit.org/changeset/131712&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745058</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 01:01:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169160</attachid>
            <date>2012-10-17 05:02:55 -0700</date>
            <delta_ts>2012-10-18 00:23:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug99575</filename>
            <type>text/plain</type>
            <size>62193</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDYyZmMyM2UzZWMyYWM0MWIxOWViY2E3NmEzYTRmMzZlNGVhYTU0NzgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE9jdCAxNyAxNTowMDowMiAyMDEyICswMzAwCgogICAgYnVnOTk1NzUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggNTAzNDgzMS4uZjJlYTRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMi0x
MC0xNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFJlbW92ZSAnXycgcHJlZml4IGZyb20gcHJpdmF0ZSBBUEkg
c3RydWN0dXJlIG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZWQgdW5kZXJzY29yZSBwcmVmaXggZnJvbSBXSzIgRUZMIGludGVybmFsIHN0
cnVjdHVyZSBuYW1lcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblBy
b3ZpZGVyLmNwcDoKKyAgICAgICAgKEV3a19WaWJyYXRpb25fQ2xpZW50OjpFd2tfVmlicmF0aW9u
X0NsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3QuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVt
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpjcmVhdGUp
OgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW06OkV3a19CYWNrX0ZvcndhcmRf
TGlzdF9JdGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJk
X2xpc3RfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpjcmVhdGUp
OgorICAgICAgICAoRXdrX0JhY2tfRm9yd2FyZF9MaXN0OjpFd2tfQmFja19Gb3J3YXJkX0xpc3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcDoKKyAgICAgICAg
KEV3a19VcmxfU2NoZW1lX0hhbmRsZXI6OkV3a19VcmxfU2NoZW1lX0hhbmRsZXIpOgorICAgICAg
ICAoRXdrX0NvbnRleHQ6OkV3a19Db250ZXh0KToKKyAgICAgICAgKGV3a19jb250ZXh0X3VybF9z
Y2hlbWVfcmVxdWVzdF9yZWNlaXZlZCk6CisgICAgICAgIChld2tfY29udGV4dF91cmxfc2NoZW1l
X3JlZ2lzdGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9w
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlzdG9y
eV9jbGllbnRfcHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9y
ZXF1ZXN0X21hbmFnZXJfY2xpZW50X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwOgorICAgICAgICAoRXdrX0Nvb2tpZV9NYW5hZ2Vy
OjpFd2tfQ29va2llX01hbmFnZXIpOgorICAgICAgICAoRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+RXdr
X0Nvb2tpZV9NYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2ll
X21hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFn
ZXJfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0Nvb2tpZV9NYW5hZ2VyOjpjcmVhdGUpOgorICAg
ICAgICAoRXdrX0Nvb2tpZV9NYW5hZ2VyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZG93bmxvYWRfam9iLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25s
b2FkX2pvYl9wcml2YXRlLmg6CisgICAgICAgIChFd2tfRG93bmxvYWRfSm9iOjpjcmVhdGUpOgor
ICAgICAgICAoRXdrX0Rvd25sb2FkX0pvYjo6RXdrX0Rvd25sb2FkX0pvYik6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmNwcDoKKyAgICAgICAgKEV3a19FcnJvcjo6RXdr
X0Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oOgorICAgICAgICAoRXdr
X0Vycm9yOjpjcmVhdGUpOgorICAgICAgICAoRXdrX0Vycm9yKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZS5jcHA6CisgICAgICAgIChFd2tfRmF2aWNv
bl9EYXRhYmFzZTo6RXdrX0Zhdmljb25fRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0Zhdmljb25f
RGF0YWJhc2U6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfRmF2aWNvbl9EYXRhYmFzZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X3By
aXZhdGUuaDoKKyAgICAgICAgKEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdDo6fkV3a19Gb3Jt
X1N1Ym1pc3Npb25fUmVxdWVzdCk6CisgICAgICAgIChFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVl
c3Q6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Q6OkV3a19G
b3JtX1N1Ym1pc3Npb25fUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2ludGVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfcHJpdmF0
ZS5oOgorICAgICAgICAoRXdrX0ludGVudDo6Y3JlYXRlKToKKyAgICAgICAgKEV3a19JbnRlbnQ6
OkV3a19JbnRlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2Vy
dmljZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9w
cml2YXRlLmg6CisgICAgICAgIChFd2tfSW50ZW50X1NlcnZpY2U6OmNyZWF0ZSk6CisgICAgICAg
IChFd2tfSW50ZW50X1NlcnZpY2U6OkV3a19JbnRlbnRfU2VydmljZSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX05h
dmlnYXRpb25fRGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKEV3a19OYXZpZ2F0aW9uX0RhdGE6OkV3
a19OYXZpZ2F0aW9uX0RhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZp
Z2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmg6CisgICAgICAgIChFd2tfTmF2
aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb246On5Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24p
OgorICAgICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUpOgorICAg
ICAgICAoRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpFd2tfTmF2aWdhdGlvbl9Qb2xp
Y3lfRGVjaXNpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51
X2l0ZW0uY3BwOgorICAgICAgICAoRXdrX1BvcHVwX01lbnVfSXRlbTo6RXdrX1BvcHVwX01lbnVf
SXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0
ZS5oOgorICAgICAgICAoRXdrX1BvcHVwX01lbnVfSXRlbTo6Y3JlYXRlKToKKyAgICAgICAgKEV3
a19Qb3B1cF9NZW51X0l0ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNv
dXJjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9wcml2YXRl
Lmg6CisgICAgICAgIChFd2tfUmVzb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfUmVzb3Vy
Y2U6OkV3a19SZXNvdXJjZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUu
aDoKKyAgICAgICAgKEV3a19TZXR0aW5nczo6RXdrX1NldHRpbmdzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdGV4dF9jaGVja2VyX3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2guaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdXJsX3JlcXVlc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
cXVlc3RfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUpOgorICAg
ICAgICAoRXdrX1VybF9SZXF1ZXN0OjpFd2tfVXJsX1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19VcmxfUmVzcG9u
c2U6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfVXJsX1Jlc3BvbnNlOjpFd2tfVXJsX1Jlc3BvbnNl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2
YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwOgorICAgICAg
ICAoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOjpFd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAg
ICAoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOjp+RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAg
ICAgKF9ld2tfdmlld19zbWFydF9hZGQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5o
OgorCiAyMDEyLTEwLTE3ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1
bmcuY29tPiwgTWljaGFsIFJvaiA8bS5yb2pAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgSW1wbGVt
ZW50YXRpb24gb2Ygc3BlbGxjaGVja2luZyBmZWF0dXJlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuY3BwCmluZGV4IDEzZDRk
ZTYuLjlkOGZlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L1ZpYnJhdGlvblByb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKQEAgLTM2LDE1ICszNiwxNSBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIC8qKgotICogXHN0cnVjdCAgX0V3a19WaWJyYXRpb25fQ2xpZW50
CisgKiBcc3RydWN0ICBFd2tfVmlicmF0aW9uX0NsaWVudAogICogQGJyaWVmICAgQ29udGFpbnMg
dGhlIHZpYnJhdGlvbiBjbGllbnQgY2FsbGJhY2tzLgogICovCi1zdHJ1Y3QgX0V3a19WaWJyYXRp
b25fQ2xpZW50IHsKK3N0cnVjdCBFd2tfVmlicmF0aW9uX0NsaWVudCB7CiAgICAgRXdrX1ZpYnJh
dGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlOwogICAgIEV3a19WaWJyYXRpb25fQ2xpZW50
X1ZpYnJhdGlvbl9DYW5jZWxfQ2IgY2FuY2VsVmlicmF0aW9uOwogICAgIHZvaWQqIHVzZXJEYXRh
OwogCi0gICAgX0V3a19WaWJyYXRpb25fQ2xpZW50KEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJh
dGVfQ2IgdmlicmF0ZSwgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0aW9uX0NhbmNlbF9DYiBj
YW5jZWxWaWJyYXRpb24sIHZvaWQqIHVzZXJEYXRhKQorICAgIEV3a19WaWJyYXRpb25fQ2xpZW50
KEV3a19WaWJyYXRpb25fQ2xpZW50X1ZpYnJhdGVfQ2IgdmlicmF0ZSwgRXdrX1ZpYnJhdGlvbl9D
bGllbnRfVmlicmF0aW9uX0NhbmNlbF9DYiBjYW5jZWxWaWJyYXRpb24sIHZvaWQqIHVzZXJEYXRh
KQogICAgICAgICA6IHZpYnJhdGUodmlicmF0ZSkKICAgICAgICAgLCBjYW5jZWxWaWJyYXRpb24o
Y2FuY2VsVmlicmF0aW9uKQogICAgICAgICAsIHVzZXJEYXRhKHVzZXJEYXRhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmgKaW5k
ZXggNmIyZGI0ZS4uZmFkZDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi10eXBl
ZGVmIHN0cnVjdCBfRXdrX1ZpYnJhdGlvbl9DbGllbnQgRXdrX1ZpYnJhdGlvbl9DbGllbnQ7Cit0
eXBlZGVmIHN0cnVjdCBFd2tfVmlicmF0aW9uX0NsaWVudCBFd2tfVmlicmF0aW9uX0NsaWVudDsK
IAogY2xhc3MgVmlicmF0aW9uUHJvdmlkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxWaWJyYXRpb25Q
cm92aWRlcj4gewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3QuaAppbmRleCBjNTg0NzYxLi4wOWRiYzVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19m
b3J3YXJkX2xpc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
YmFja19mb3J3YXJkX2xpc3QuaApAQCAtMzcsOCArMzcsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5k
aWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3Qg
Ki8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QgRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19CYWNrX0ZvcndhcmRfTGlz
dCAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0IEV3a19CYWNrX0Zvcndh
cmRfTGlzdDsKIAogLyoqCiAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGl0ZW0gaW4gdGhlIEBhIGxp
c3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uaAppbmRleCAzYzU0NGYzLi44ZDA3MjRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJk
X2xpc3RfaXRlbS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtLmgKQEAgLTM3LDggKzM3LDggQEAKIGV4dGVybiAiQyIgewog
I2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0JhY2tfRm9yd2FyZF9M
aXN0X0l0ZW0gKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBF
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0gRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW07CiAKIC8qKgogICogSW5j
cmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9pdGVtX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19i
YWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaAppbmRleCAyNTQwNzRhLi5hMzAwYTMwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9pdGVtX3ByaXZhdGUuaApAQCAtMzIsMjcgKzMy
LDI1IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBf
RXdrX0JhY2tfRm9yd2FyZF9MaXN0CisgKiBcc3RydWN0ICBFd2tfQmFja19Gb3J3YXJkX0xpc3QK
ICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBCYWNrIEZvcndhcmQgTGlzdCBkYXRhLgogICovCi1j
bGFzcyBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdr
X0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IHsKK2NsYXNzIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9J
dGVtIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0+IHsKIHB1
YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY+IHdrSXRlbTsK
ICAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7CiAgICAgbXV0YWJsZSBXS0VpbmFT
aGFyZWRTdHJpbmcgdGl0bGU7CiAgICAgbXV0YWJsZSBXS0VpbmFTaGFyZWRTdHJpbmcgb3JpZ2lu
YWxVUkw7CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW0+IGNyZWF0ZShXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gY3JlYXRlKFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0oaXRlbVJlZikpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKGl0ZW1SZWYpKTsKICAgICB9
CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtKFdL
QmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQorICAgIGV4cGxpY2l0IEV3a19CYWNrX0Zv
cndhcmRfTGlzdF9JdGVtKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQogICAgICAg
ICA6IHdrSXRlbShpdGVtUmVmKQogICAgIHsgfQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19C
YWNrX0ZvcndhcmRfTGlzdF9JdGVtIEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOwotCiAjZW5k
aWYgLy8gZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlz
dF9wcml2YXRlLmgKaW5kZXggMjZiMDUwZC4uZmNmMjVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xp
c3RfcHJpdmF0ZS5oCkBAIC0zMiwyMiArMzIsMjAgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfQmFj
a19Gb3J3YXJkX0xpc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0OwotCiB0eXBlZGVmIEhhc2hNYXA8
V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBSZWZQdHI8RXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0
ZW0+ID4gSXRlbXNNYXA7CiAKLWNsYXNzIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3QgeworY2xhc3Mg
RXdrX0JhY2tfRm9yd2FyZF9MaXN0IHsKIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0JhY2tG
b3J3YXJkTGlzdFJlZj4gd2tMaXN0OwogICAgIG11dGFibGUgSXRlbXNNYXAgd3JhcHBlckNhY2hl
OwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8X0V3a19CYWNrX0ZvcndhcmRfTGlzdD4gY3JlYXRl
KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RXdr
X0JhY2tfRm9yd2FyZF9MaXN0PiBjcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RSZWYgbGlzdFJlZikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgX0V3a19CYWNrX0ZvcndhcmRfTGlz
dChsaXN0UmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX0JhY2tfRm9yd2Fy
ZF9MaXN0KGxpc3RSZWYpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgX0V3a19C
YWNrX0ZvcndhcmRfTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQorICAgIGV4cGxp
Y2l0IEV3a19CYWNrX0ZvcndhcmRfTGlzdChXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQog
ICAgICAgICA6IHdrTGlzdChsaXN0UmVmKQogICAgIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNwcAppbmRleCA2MzM4ZWFjLi41ZDVh
NDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHQuY3BwCkBAIC01MiwyNCArNTIsMjQgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAotc3RydWN0IF9Fd2tfVXJsX1NjaGVtZV9IYW5kbGVyIHsK
K3N0cnVjdCBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyIHsKICAgICBFd2tfVXJsX1NjaGVtZV9SZXF1
ZXN0X0NiIGNhbGxiYWNrOwogICAgIHZvaWQqIHVzZXJEYXRhOwogCi0gICAgX0V3a19VcmxfU2No
ZW1lX0hhbmRsZXIoKQorICAgIEV3a19VcmxfU2NoZW1lX0hhbmRsZXIoKQogICAgICAgICA6IGNh
bGxiYWNrKDApCiAgICAgICAgICwgdXNlckRhdGEoMCkKICAgICB7IH0KIAotICAgIF9Fd2tfVXJs
X1NjaGVtZV9IYW5kbGVyKEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJhY2ssIHZvaWQq
IHVzZXJEYXRhKQorICAgIEV3a19VcmxfU2NoZW1lX0hhbmRsZXIoRXdrX1VybF9TY2hlbWVfUmVx
dWVzdF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiAgICAgICAgIDogY2FsbGJhY2soY2Fs
bGJhY2spCiAgICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCiAgICAgeyB9CiB9OwogCi10eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBfRXdrX1VybF9TY2hlbWVfSGFuZGxlcj4gVVJMU2NoZW1lSGFu
ZGxlck1hcDsKK3R5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIEV3a19VcmxfU2NoZW1lX0hhbmRsZXI+
IFVSTFNjaGVtZUhhbmRsZXJNYXA7CiAKLXN0cnVjdCBfRXdrX0NvbnRleHQgeworc3RydWN0IEV3
a19Db250ZXh0IHsKICAgICB1bnNpZ25lZCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50
IG9mIHRoZSBvYmplY3QgKi8KICAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQ7
CiAKQEAgLTkxLDcgKzkxLDcgQEAgc3RydWN0IF9Fd2tfQ29udGV4dCB7CiAKICAgICBFd2tfQ29u
dGV4dF9IaXN0b3J5X0NsaWVudCBoaXN0b3J5Q2xpZW50OwogCi0gICAgX0V3a19Db250ZXh0KFdL
UmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dFJlZikKKyAgICBFd2tfQ29udGV4dChXS1Jl
dGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHRSZWYpCiAgICAgICAgIDogX19yZWYoMSkKICAg
ICAgICAgLCBjb250ZXh0KGNvbnRleHRSZWYpCiAgICAgICAgICwgcmVxdWVzdE1hbmFnZXIoV0tD
b250ZXh0R2V0U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHRSZWYuZ2V0KCkpKQpAQCAtMjU0LDcg
KzI1NCw3IEBAIHZvaWQgZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9yZXF1ZXN0X3JlY2VpdmVkKEV3
a19Db250ZXh0KiBld2tDb250ZXh0LCBFd2tfVXJsX1NjCiAgICAgRUlOQV9TQUZFVFlfT05fTlVM
TF9SRVRVUk4oZXdrQ29udGV4dCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2No
ZW1lUmVxdWVzdCk7CiAKLSAgICBfRXdrX1VybF9TY2hlbWVfSGFuZGxlciBoYW5kbGVyID0gZXdr
Q29udGV4dC0+dXJsU2NoZW1lSGFuZGxlcnMuZ2V0KGV3a191cmxfc2NoZW1lX3JlcXVlc3Rfc2No
ZW1lX2dldChzY2hlbWVSZXF1ZXN0KSk7CisgICAgRXdrX1VybF9TY2hlbWVfSGFuZGxlciBoYW5k
bGVyID0gZXdrQ29udGV4dC0+dXJsU2NoZW1lSGFuZGxlcnMuZ2V0KGV3a191cmxfc2NoZW1lX3Jl
cXVlc3Rfc2NoZW1lX2dldChzY2hlbWVSZXF1ZXN0KSk7CiAgICAgaWYgKCFoYW5kbGVyLmNhbGxi
YWNrKQogICAgICAgICByZXR1cm47CiAKQEAgLTI5MCw3ICsyOTAsNyBAQCBFaW5hX0Jvb2wgZXdr
X2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3RlcihFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgY29u
c3QgY2hhciogcwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChzY2hlbWUsIGZh
bHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoY2FsbGJhY2ssIGZhbHNl
KTsKIAotICAgIGV3a0NvbnRleHQtPnVybFNjaGVtZUhhbmRsZXJzLnNldChTdHJpbmc6OmZyb21V
VEY4KHNjaGVtZSksIF9Fd2tfVXJsX1NjaGVtZV9IYW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkp
OworICAgIGV3a0NvbnRleHQtPnVybFNjaGVtZUhhbmRsZXJzLnNldChTdHJpbmc6OmZyb21VVEY4
KHNjaGVtZSksIEV3a19VcmxfU2NoZW1lX0hhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRhKSk7CiAg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrU2NoZW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKHNjaGVtZSkpOwogICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVn
aXN0ZXJVUklTY2hlbWUoZXdrQ29udGV4dC0+cmVxdWVzdE1hbmFnZXIuZ2V0KCksIHdrU2NoZW1l
LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250
ZXh0LmgKaW5kZXggMGNiNDEzMy4uZjZiOGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCkBAIC00NywxNSArNDcsMTUgQEAKIGV4dGVybiAi
QyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0NvbnRl
eHQuICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7CisvKiogQ3Jl
YXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX0NvbnRleHQuICovCit0eXBlZGVmIHN0cnVjdCBF
d2tfQ29udGV4dCBFd2tfQ29udGV4dDsKIAogLyoqCi0gKiBcZW51bSAgICBfRXdrX0NhY2hlX01v
ZGVsCisgKiBcZW51bSAgICBFd2tfQ2FjaGVfTW9kZWwKICAqCiAgKiBAYnJpZWYgICBDb250YWlu
cyBvcHRpb24gZm9yIGNhY2hlIG1vZGVsCiAgKi8KLWVudW0gX0V3a19DYWNoZV9Nb2RlbCB7Citl
bnVtIEV3a19DYWNoZV9Nb2RlbCB7CiAgICAgLy8vIFVzZSB0aGUgc21hbGxlc3QgY2FjaGUgY2Fw
YWNpdHkuCiAgICAgRVdLX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUiwKICAgICAvLy8gVXNl
IGJpZ2dlciBjYWNoZSBjYXBhY2l0eSB0aGFuIEVXS19DQUNIRV9NT0RFTF9ET0NVTUVOVF9WSUVX
RVIuCkBAIC02NCw4ICs2NCw4IEBAIGVudW0gX0V3a19DYWNoZV9Nb2RlbCB7CiAgICAgRVdLX0NB
Q0hFX01PREVMX1BSSU1BUllfV0VCQlJPV1NFUgogfTsKIAotLy8vIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIHRoZSBfRXdrX0NhY2hlX01vZGVsLgotdHlwZWRlZiBlbnVtIF9Fd2tfQ2FjaGVfTW9k
ZWwgRXdrX0NhY2hlX01vZGVsOworLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tf
Q2FjaGVfTW9kZWwuCit0eXBlZGVmIGVudW0gRXdrX0NhY2hlX01vZGVsIEV3a19DYWNoZV9Nb2Rl
bDsKIAogLyoqCiAgKiBAdHlwZWRlZiBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIEV3a19Vcmxf
U2NoZW1lX1JlcXVlc3RfQ2IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnRfcHJpdmF0
ZS5oCmluZGV4IGY3MDE3YTguLmUwNTZhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRf
Y2xpZW50X3ByaXZhdGUuaApAQCAtMjYsNyArMjYsNyBAQAogI2lmbmRlZiBld2tfY29udGV4dF9k
b3dubG9hZF9jbGllbnRfcHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19jb250ZXh0X2Rvd25sb2FkX2Ns
aWVudF9wcml2YXRlX2gKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19Db250ZXh0
OwordHlwZWRlZiBzdHJ1Y3QgRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7CiAKIHZvaWQgZXdrX2Nv
bnRleHRfZG93bmxvYWRfY2xpZW50X2F0dGFjaChFd2tfQ29udGV4dCopOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2Ns
aWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dF9oaXN0b3J5X2NsaWVudF9wcml2YXRlLmgKaW5kZXggZDk1MThjZS4uMGI0NzBkYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfaGlz
dG9yeV9jbGllbnRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X3ByaXZhdGUuaApAQCAtMjgsNyArMjgsNyBA
QAogCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKIAotc3RydWN0IF9Fd2tfQ29udGV4dF9IaXN0
b3J5X0NsaWVudCB7CitzdHJ1Y3QgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQgewogICAgIHZv
aWQqIHVzZXJfZGF0YTsKICAgICBFd2tfSGlzdG9yeV9OYXZpZ2F0aW9uX0NiIG5hdmlnYXRlX2Z1
bmM7CiAgICAgRXdrX0hpc3RvcnlfQ2xpZW50X1JlZGlyZWN0aW9uX0NiIGNsaWVudF9yZWRpcmVj
dF9mdW5jOwpAQCAtMzcsOCArMzcsNiBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0X0hpc3RvcnlfQ2xp
ZW50IHsKICAgICBFd2tfSGlzdG9yeV9Qb3B1bGF0ZV9WaXNpdGVkX0xpbmtzX0NiIHBvcHVsYXRl
X3Zpc2l0ZWRfbGlua3NfZnVuYzsKIH07CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dF9I
aXN0b3J5X0NsaWVudCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudDsKLQogdm9pZCBld2tfY29u
dGV4dF9oaXN0b3J5X2NsaWVudF9hdHRhY2goRXdrX0NvbnRleHQqKTsKIAogI2VuZGlmIC8vIGV3
a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0ZS5oCmluZGV4IDI5Zjc0
YTEuLjcwNTczOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19jb250ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKQEAgLTIyLDEwICsyMiwxMCBAQAogCiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19D
b250ZXh0OwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Eb3dubG9hZF9Kb2IgRXdrX0Rvd25sb2FkX0pv
YjsKK3R5cGVkZWYgc3RydWN0IEV3a19Db250ZXh0IEV3a19Db250ZXh0OwordHlwZWRlZiBzdHJ1
Y3QgRXdrX0Rvd25sb2FkX0pvYiBFd2tfRG93bmxvYWRfSm9iOwogdHlwZWRlZiBzdHJ1Y3QgRXdr
X1VybF9TY2hlbWVfUmVxdWVzdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0OwotdHlwZWRlZiBzdHJ1
Y3QgX0V3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50IEV3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50
OwordHlwZWRlZiBzdHJ1Y3QgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQgRXdrX0NvbnRleHRf
SGlzdG9yeV9DbGllbnQ7CiAKIFdLQ29udGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0
KGNvbnN0IEV3a19Db250ZXh0Kik7CiBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfbmV3X2Zyb21f
V0tDb250ZXh0KFdLQ29udGV4dFJlZik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9yZXF1ZXN0X21hbmFnZXJfY2xpZW50X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3Rf
bWFuYWdlcl9jbGllbnRfcHJpdmF0ZS5oCmluZGV4IDY4OWJiZjYuLjMxMTM0MzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3Rf
bWFuYWdlcl9jbGllbnRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnRfcHJpdmF0ZS5oCkBAIC0y
Niw3ICsyNiw3IEBACiAjaWZuZGVmIGV3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnRf
cHJpdmF0ZV9oCiAjZGVmaW5lIGV3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnRfcHJp
dmF0ZV9oCiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dCBFd2tfQ29udGV4dDsKK3R5cGVk
ZWYgc3RydWN0IEV3a19Db250ZXh0IEV3a19Db250ZXh0OwogCiB2b2lkIGV3a19jb250ZXh0X3Jl
cXVlc3RfbWFuYWdlcl9jbGllbnRfYXR0YWNoKEV3a19Db250ZXh0KiBjb250ZXh0KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFu
YWdlci5jcHAKaW5kZXggNTJiN2NhNy4uM2NiZjdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCkBAIC00Miw3
ICs0Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIHN0YXRpYyB2b2lkIGNvb2tpZXNE
aWRDaGFuZ2UoV0tDb29raWVNYW5hZ2VyUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAot
X0V3a19Db29raWVfTWFuYWdlcjo6X0V3a19Db29raWVfTWFuYWdlcihXS0Nvb2tpZU1hbmFnZXJS
ZWYgY29va2llTWFuYWdlclJlZikKK0V3a19Db29raWVfTWFuYWdlcjo6RXdrX0Nvb2tpZV9NYW5h
Z2VyKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQogICAgIDogd2tDb29raWVN
YW5hZ2VyKGNvb2tpZU1hbmFnZXJSZWYpCiB7CiAgICAgV0tDb29raWVNYW5hZ2VyQ2xpZW50IHdr
Q29va2llTWFuYWdlckNsaWVudCA9IHsKQEAgLTUzLDcgKzUzLDcgQEAgX0V3a19Db29raWVfTWFu
YWdlcjo6X0V3a19Db29raWVfTWFuYWdlcihXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdl
clJlZikKICAgICBXS0Nvb2tpZU1hbmFnZXJTZXRDbGllbnQod2tDb29raWVNYW5hZ2VyLmdldCgp
LCAmd2tDb29raWVNYW5hZ2VyQ2xpZW50KTsKIH0KIAotX0V3a19Db29raWVfTWFuYWdlcjo6fl9F
d2tfQ29va2llX01hbmFnZXIoKQorRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+RXdrX0Nvb2tpZV9NYW5h
Z2VyKCkKIHsKICAgICBpZiAoY2hhbmdlSGFuZGxlci5jYWxsYmFjaykKICAgICAgICAgV0tDb29r
aWVNYW5hZ2VyU3RvcE9ic2VydmluZ0Nvb2tpZUNoYW5nZXMod2tDb29raWVNYW5hZ2VyLmdldCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29r
aWVfbWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tp
ZV9tYW5hZ2VyLmgKaW5kZXggYzMxYjkwMC4uMGQyYTRjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmgKQEAgLTM4LDE1
ICszOCwxNSBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIF9Fd2tfQ29va2llX01hbmFnZXIgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfQ29va2ll
X01hbmFnZXIgRXdrX0Nvb2tpZV9NYW5hZ2VyOworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9y
IEV3a19Db29raWVfTWFuYWdlciAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0Nvb2tpZV9NYW5hZ2Vy
IEV3a19Db29raWVfTWFuYWdlcjsKIAogLyoqCi0gKiBcZW51bSAgICBfRXdrX0Nvb2tpZV9BY2Nl
cHRfUG9saWN5CisgKiBcZW51bSAgICBFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kKICAqCiAgKiBA
YnJpZWYgICBDb250YWlucyBhY2NlcHQgcG9saWNpZXMgZm9yIHRoZSBjb29raWVzLgogICovCi1l
bnVtIF9Fd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kgeworZW51bSBFd2tfQ29va2llX0FjY2VwdF9Q
b2xpY3kgewogICAgIC8vLyBBY2NlcHRzIGV2ZXJ5IGNvb2tpZSBzZW50IGZyb20gYW55IHBhZ2Uu
CiAgICAgRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX0FMV0FZUywKICAgICAvLy8gUmVqZWN0cyBh
bGwgY29va2llcy4KQEAgLTU1LDIzICs1NSwyMyBAQCBlbnVtIF9Fd2tfQ29va2llX0FjY2VwdF9Q
b2xpY3kgewogICAgIEVXS19DT09LSUVfQUNDRVBUX1BPTElDWV9OT19USElSRF9QQVJUWQogfTsK
IAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBfRXdrX0Nvb2tpZV9BY2NlcHRfUG9s
aWN5LgotdHlwZWRlZiBlbnVtIF9Fd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kgRXdrX0Nvb2tpZV9B
Y2NlcHRfUG9saWN5OworLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIHRoZSBFd2tfQ29va2ll
X0FjY2VwdF9Qb2xpY3kuCit0eXBlZGVmIGVudW0gRXdrX0Nvb2tpZV9BY2NlcHRfUG9saWN5IEV3
a19Db29raWVfQWNjZXB0X1BvbGljeTsKIAogLyoqCi0gKiBcZW51bSAgICBfRXdrX0Nvb2tpZV9Q
ZXJzaXN0ZW50X1N0b3JhZ2UKKyAqIFxlbnVtICAgIEV3a19Db29raWVfUGVyc2lzdGVudF9TdG9y
YWdlCiAgKgogICogQGJyaWVmICAgRW51bSB2YWx1ZXMgdG8gZGVub3RlIGNvb2tpZXMgcGVyc2lz
dGVudCBzdG9yYWdlIHR5cGUuCiAgKi8KLWVudW0gX0V3a19Db29raWVfUGVyc2lzdGVudF9TdG9y
YWdlIHsKK2VudW0gRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2UgewogICAgIC8vLyBDb29r
aWVzIGFyZSBzdG9yZWQgaW4gYSB0ZXh0IGZpbGUgaW4gdGhlIE1vemlsbGEgImNvb2tpZXMudHh0
IiBmb3JtYXQuCiAgICAgRVdLX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfVEVYVCwKICAgICAv
Ly8gQ29va2llcyBhcmUgc3RvcmVkIGluIGEgU1FMaXRlIGZpbGUgaW4gdGhlIGN1cnJlbnQgTW96
aWxsYSBmb3JtYXQuCiAgICAgRVdLX0NPT0tJRV9QRVJTSVNURU5UX1NUT1JBR0VfU1FMSVRFCiB9
OwogCi0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIF9Fd2tfQ29va2llX1BlcnNpc3Rl
bnRfU3RvcmFnZS4KLXR5cGVkZWYgZW51bSBfRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2Ug
RXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2U7CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBm
b3IgdGhlIEV3a19Db29raWVfUGVyc2lzdGVudF9TdG9yYWdlLgordHlwZWRlZiBlbnVtIEV3a19D
b29raWVfUGVyc2lzdGVudF9TdG9yYWdlIEV3a19Db29raWVfUGVyc2lzdGVudF9TdG9yYWdlOwog
CiAvKioKICAqIEB0eXBlZGVmIEV3a19Db29raWVfTWFuYWdlcl9Bc3luY19Qb2xpY3lfR2V0X0Ni
IEV3a19Db29raWVfTWFuYWdlcl9Bc3luY19Qb2xpY3lfR2V0X0NiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyX3By
aXZhdGUuaAppbmRleCA2OTEzMjJiLi5iNzU3OWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlcl9wcml2YXRl
LmgKQEAgLTQ3LDIzICs0NywyMCBAQCBzdHJ1Y3QgQ29va2llX0NoYW5nZV9IYW5kbGVyIHsKICAg
ICB7IH0KIH07CiAKLQotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db29raWVfTWFuYWdlciBFd2tfQ29v
a2llX01hbmFnZXI7Ci0KLWNsYXNzIF9Fd2tfQ29va2llX01hbmFnZXIgeworY2xhc3MgRXdrX0Nv
b2tpZV9NYW5hZ2VyIHsKIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0Nvb2tpZU1hbmFnZXJS
ZWY+IHdrQ29va2llTWFuYWdlcjsKICAgICBDb29raWVfQ2hhbmdlX0hhbmRsZXIgY2hhbmdlSGFu
ZGxlcjsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPF9Fd2tfQ29va2llX01hbmFnZXI+IGNyZWF0
ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2llTWFuYWdlclJlZikKKyAgICBzdGF0aWMgUGFzc093
blB0cjxFd2tfQ29va2llX01hbmFnZXI+IGNyZWF0ZShXS0Nvb2tpZU1hbmFnZXJSZWYgY29va2ll
TWFuYWdlclJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgX0V3a19Db29r
aWVfTWFuYWdlcihjb29raWVNYW5hZ2VyUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgRXdrX0Nvb2tpZV9NYW5hZ2VyKGNvb2tpZU1hbmFnZXJSZWYpKTsKICAgICB9CiAKLSAgICB+
X0V3a19Db29raWVfTWFuYWdlcigpOworICAgIH5Fd2tfQ29va2llX01hbmFnZXIoKTsKIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0Nvb2tpZV9NYW5hZ2VyKFdLQ29va2llTWFuYWdlclJl
ZiBjb29raWVNYW5hZ2VyUmVmKTsKKyAgICBleHBsaWNpdCBFd2tfQ29va2llX01hbmFnZXIoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYpOwogfTsKIAogI2VuZGlmIC8vIGV3a19j
b29raWVfbWFuYWdlcl9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuaAppbmRleCAzODgyNzZjLi4wY2FkNWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9i
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yi5oCkBAIC00MywxMSArNDMsMTEgQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX0Rvd25sb2FkX0pvYl9Kb2IgKi8KLXR5cGVkZWYgc3Ry
dWN0IF9Fd2tfRG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7CisvKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgRXdrX0Rvd25sb2FkX0pvYl9Kb2IgKi8KK3R5cGVkZWYgc3RydWN0IEV3a19E
b3dubG9hZF9Kb2IgRXdrX0Rvd25sb2FkX0pvYjsKIAogLy8vIERlZmluZXMgdGhlIHBvc3NpYmxl
IHN0YXRlcyBvZiBhIGRvd25sb2FkLgotZW51bSBfRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSB7Citl
bnVtIEV3a19Eb3dubG9hZF9Kb2JfU3RhdGUgewogICAgIC8vLyBUaGUgZG93bmxvYWQgc3RhdGUg
aXMgdW5rbm93bgogICAgIEVXS19ET1dOTE9BRF9KT0JfU1RBVEVfVU5LTk9XTiA9IC0xLAogICAg
IC8vLyBUaGUgZG93bmxvYWQgaGFzIG5vdCBzdGFydGVkIHlldApAQCAtNjMsOCArNjMsOCBAQCBl
bnVtIF9Fd2tfRG93bmxvYWRfSm9iX1N0YXRlIHsKICAgICAvLy8gVGhlIGRvd25sb2FkIGNvbXBs
ZXRlZCBzdWNjZXNzZnVsbHkuCiAgICAgRVdLX0RPV05MT0FEX0pPQl9TVEFURV9GSU5JU0hFRAog
fTsKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0Rvd25sb2FkX0pvYl9TdGF0
ZS4KLXR5cGVkZWYgZW51bSBfRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBFd2tfRG93bmxvYWRfSm9i
X1N0YXRlOworLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIEV3a19Eb3dubG9hZF9Kb2Jf
U3RhdGUuCit0eXBlZGVmIGVudW0gRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZSBFd2tfRG93bmxvYWRf
Sm9iX1N0YXRlOwogCiAvKioKICAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBnaXZlbiBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZG93bmxvYWRfam9iX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oCmluZGV4IGE0YTQwYzAuLmVkNGZk
NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3du
bG9hZF9qb2JfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oCkBAIC0zOCwxMCArMzgsMTAgQEAgY2xhc3MgRG93
bmxvYWRQcm94eTsKIH0KIAogLyoqCi0gKiBcc3RydWN0ICBfRXdrX0Rvd25sb2FkX0pvYgorICog
XHN0cnVjdCAgRXdrX0Rvd25sb2FkX0pvYgogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGRvd25s
b2FkIGRhdGEuCiAgKi8KLWNsYXNzIF9Fd2tfRG93bmxvYWRfSm9iIDogcHVibGljIFJlZkNvdW50
ZWQ8X0V3a19Eb3dubG9hZF9Kb2I+IHsKK2NsYXNzIEV3a19Eb3dubG9hZF9Kb2IgOiBwdWJsaWMg
UmVmQ291bnRlZDxFd2tfRG93bmxvYWRfSm9iPiB7CiBwdWJsaWM6CiAgICAgV2ViS2l0OjpEb3du
bG9hZFByb3h5KiBkb3dubG9hZFByb3h5OwogICAgIEV2YXNfT2JqZWN0KiB2aWV3OwpAQCAtNTQs
MTMgKzU0LDEzIEBAIHB1YmxpYzoKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb247
CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHN1Z2dlc3RlZEZpbGVuYW1lOwogCi0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8X0V3a19Eb3dubG9hZF9Kb2I+IGNyZWF0ZShXZWJLaXQ6OkRvd25sb2FkUHJv
eHkqIGRvd25sb2FkLCBFdmFzX09iamVjdCogZXdrVmlldykKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxFd2tfRG93bmxvYWRfSm9iPiBjcmVhdGUoV2ViS2l0OjpEb3dubG9hZFByb3h5KiBkb3dubG9h
ZCwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IF9Fd2tfRG93bmxvYWRfSm9iKGRvd25sb2FkLCBld2tWaWV3KSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRXdrX0Rvd25sb2FkX0pvYihkb3dubG9hZCwgZXdrVmlldykpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBfRXdrX0Rvd25sb2FkX0pvYihXZWJLaXQ6OkRvd25sb2FkUHJv
eHkqIGRvd25sb2FkLCBFdmFzX09iamVjdCogZXdrVmlldykKKyAgICBFd2tfRG93bmxvYWRfSm9i
KFdlYktpdDo6RG93bmxvYWRQcm94eSogZG93bmxvYWQsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQog
ICAgICAgICA6IGRvd25sb2FkUHJveHkoZG93bmxvYWQpCiAgICAgICAgICwgdmlldyhld2tWaWV3
KQogICAgICAgICAsIHN0YXRlKEVXS19ET1dOTE9BRF9KT0JfU1RBVEVfTk9UX1NUQVJURUQpCkBA
IC03MCw4ICs3MCw3IEBAIHByaXZhdGU6CiAgICAgeyB9CiB9OwogCi10eXBlZGVmIHN0cnVjdCBf
RXdrX0Rvd25sb2FkX0pvYiBFd2tfRG93bmxvYWRfSm9iOwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19F
cnJvciBFd2tfRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCBFd2tfRXJyb3IgRXdrX0Vycm9yOwogCiB1
aW50NjRfdCBld2tfZG93bmxvYWRfam9iX2lkX2dldChjb25zdCBFd2tfRG93bmxvYWRfSm9iKik7
CiBFdmFzX09iamVjdCogZXdrX2Rvd25sb2FkX2pvYl92aWV3X2dldChjb25zdCBFd2tfRG93bmxv
YWRfSm9iKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZXJyb3IuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9y
LmNwcAppbmRleCBmZWQ4ZTJjLi41YmNmZDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotX0V3a19FcnJvcjo6X0V3
a19FcnJvcihXS0Vycm9yUmVmIGVycm9yUmVmKQorRXdrX0Vycm9yOjpFd2tfRXJyb3IoV0tFcnJv
clJlZiBlcnJvclJlZikKICAgICA6IHdrRXJyb3IoZXJyb3JSZWYpCiAgICAgLCB1cmwoQWRvcHRX
SywgV0tFcnJvckNvcHlGYWlsaW5nVVJMKGVycm9yUmVmKSkKICAgICAsIGRlc2NyaXB0aW9uKEFk
b3B0V0ssIFdLRXJyb3JDb3B5TG9jYWxpemVkRGVzY3JpcHRpb24oZXJyb3JSZWYpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuaAppbmRleCAwMTIxNGQxLi5k
MTUxNTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
ZXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3Iu
aApAQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gIkMiIHsKICNlbmRpZgogCiAvKiogQ3JlYXRlcyBh
IHR5cGUgbmFtZSBmb3IgQGEgRXdrX0Vycm9yLiAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19FcnJv
ciBFd2tfRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCBFd2tfRXJyb3IgRXdrX0Vycm9yOwogCiAvLy8g
Q3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0Vycm9yX1R5cGUuCiB0eXBlZGVmIGVudW0gewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvcl9wcml2
YXRlLmgKaW5kZXggNWFlNDU3Yi4uYTI2ZTBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oCkBAIC0zMSwyNCArMzEsMjIg
QEAKICNpbmNsdWRlIDxXS1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfRXJyb3IgRXdrX0Vycm9yOwotCi1jbGFzcyBfRXdrX0Vy
cm9yIHsKK2NsYXNzIEV3a19FcnJvciB7CiBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tFcnJv
clJlZj4gd2tFcnJvcjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwogICAgIFdLRWluYVNo
YXJlZFN0cmluZyBkZXNjcmlwdGlvbjsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPF9Fd2tfRXJy
b3I+IGNyZWF0ZShXS0Vycm9yUmVmIGVycm9yUmVmKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3
a19FcnJvcj4gY3JlYXRlKFdLRXJyb3JSZWYgZXJyb3JSZWYpCiAgICAgewogICAgICAgICBpZiAo
IWVycm9yUmVmKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBfRXdrX0Vycm9yKGVycm9yUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRXdrX0Vycm9yKGVycm9yUmVmKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4
cGxpY2l0IF9Fd2tfRXJyb3IoV0tFcnJvclJlZiBlcnJvclJlZik7CisgICAgZXhwbGljaXQgRXdr
X0Vycm9yKFdLRXJyb3JSZWYgZXJyb3JSZWYpOwogfTsKIAogI2VuZGlmIC8vIGV3a19lcnJvcl9w
cml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19mYXZpY29uX2RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19mYXZpY29uX2RhdGFiYXNlLmNwcAppbmRleCA2ZTUyYzM1Li45ZTA1OWUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25f
ZGF0YWJhc2UuY3BwCkBAIC00MSw3ICs0MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBz
dGF0aWMgdm9pZCBkaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29u
RGF0YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogc3Rh
dGljIHZvaWQgaWNvbkRhdGFSZWFkeUZvclBhZ2VVUkwoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRh
dGFiYXNlLCBXS1VSTFJlZiBwYWdlVVJMLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIAotX0V3
a19GYXZpY29uX0RhdGFiYXNlOjpfRXdrX0Zhdmljb25fRGF0YWJhc2UoV0tJY29uRGF0YWJhc2VS
ZWYgaWNvbkRhdGFiYXNlUmVmKQorRXdrX0Zhdmljb25fRGF0YWJhc2U6OkV3a19GYXZpY29uX0Rh
dGFiYXNlKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZikKICAgICA6ICB3a0ljb25E
YXRhYmFzZShpY29uRGF0YWJhc2VSZWYpCiB7CiAgICAgV0tJY29uRGF0YWJhc2VDbGllbnQgaWNv
bkRhdGFiYXNlQ2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmgKaW5kZXggYzNkNDRlNC4uOGNlYWY1YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0
YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNv
bl9kYXRhYmFzZS5oCkBAIC0zNyw4ICszNyw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0v
KiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgX0V3a19GYXZpY29uX0RhdGFiYXNlLiAqLwot
dHlwZWRlZiBzdHJ1Y3QgX0V3a19GYXZpY29uX0RhdGFiYXNlIEV3a19GYXZpY29uX0RhdGFiYXNl
OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIEV3a19GYXZpY29uX0RhdGFiYXNlLiAq
LwordHlwZWRlZiBzdHJ1Y3QgRXdrX0Zhdmljb25fRGF0YWJhc2UgRXdrX0Zhdmljb25fRGF0YWJh
c2U7CiAKIC8qKgogICogQHR5cGVkZWYgRXdrX0Zhdmljb25fRGF0YWJhc2VfSWNvbl9DaGFuZ2Vf
Q2IgRXdrX0Zhdmljb25fRGF0YWJhc2VfSWNvbl9DaGFuZ2VfQ2IKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNl
X3ByaXZhdGUuaAppbmRleCBjNTg4NDI0Li45ZDkwOTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2Vf
cHJpdmF0ZS5oCkBAIC02OSwxOSArNjksMTkgQEAgdHlwZWRlZiBIYXNoTWFwPEV3a19GYXZpY29u
X0RhdGFiYXNlX0ljb25fQ2hhbmdlX0NiLCBJY29uQ2hhbmdlQ2FsbGJhY2tEYXRhPiBDaGEKIHR5
cGVkZWYgVmVjdG9yPEljb25SZXF1ZXN0Q2FsbGJhY2tEYXRhPiBQZW5kaW5nSWNvblJlcXVlc3RW
ZWN0b3I7CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nIC8qIHBhZ2VVUkwgKi8sIFBlbmRpbmdJY29u
UmVxdWVzdFZlY3Rvcj4gUGVuZGluZ0ljb25SZXF1ZXN0TWFwOwogCi1jbGFzcyBfRXdrX0Zhdmlj
b25fRGF0YWJhc2UgeworY2xhc3MgRXdrX0Zhdmljb25fRGF0YWJhc2UgewogcHVibGljOgogICAg
IFdLUmV0YWluUHRyPFdLSWNvbkRhdGFiYXNlUmVmPiB3a0ljb25EYXRhYmFzZTsKICAgICBDaGFu
Z2VMaXN0ZW5lck1hcCBjaGFuZ2VMaXN0ZW5lcnM7CiAgICAgUGVuZGluZ0ljb25SZXF1ZXN0TWFw
IGljb25SZXF1ZXN0czsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPF9Fd2tfRmF2aWNvbl9EYXRh
YmFzZT4gY3JlYXRlKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZikKKyAgICBzdGF0
aWMgUGFzc093blB0cjxFd2tfRmF2aWNvbl9EYXRhYmFzZT4gY3JlYXRlKFdLSWNvbkRhdGFiYXNl
UmVmIGljb25EYXRhYmFzZVJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcg
X0V3a19GYXZpY29uX0RhdGFiYXNlKGljb25EYXRhYmFzZVJlZikpOworICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEV3a19GYXZpY29uX0RhdGFiYXNlKGljb25EYXRhYmFzZVJlZikpOwogICAg
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0Zhdmljb25fRGF0YWJhc2UoV0tJY29u
RGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlUmVmKTsKKyAgICBleHBsaWNpdCBFd2tfRmF2aWNvbl9E
YXRhYmFzZShXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2VSZWYpOwogfTsKIAogI2VuZGlm
IC8vIGV3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVl
c3QuaAppbmRleCA5NTIxZTc0Li5iN2ZkMGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3Qu
aApAQCAtNDAsOCArNDAsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgKi8KLXR5cGVkZWYg
c3RydWN0IF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgRXdrX0Zvcm1fU3VibWlzc2lvbl9S
ZXF1ZXN0OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19Gb3JtX1N1Ym1pc3Npb25f
UmVxdWVzdCAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IEV3
a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdDsKIAogLyoqCiAgKiBJbmNyZWFzZXMgdGhlIHJlZmVy
ZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0X3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25f
cmVxdWVzdF9wcml2YXRlLmgKaW5kZXggYjliZjU3YS4uOTkzYjUzMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0
X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9y
bV9zdWJtaXNzaW9uX3JlcXVlc3RfcHJpdmF0ZS5oCkBAIC0zMiwyOCArMzIsMjYgQEAKICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLXR5
cGVkZWYgc3RydWN0IF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgRXdrX0Zvcm1fU3VibWlz
c2lvbl9SZXF1ZXN0OwotCi1jbGFzcyBfRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8X0V3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdD4geworY2xhc3MgRXdr
X0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0Zvcm1fU3Vi
bWlzc2lvbl9SZXF1ZXN0PiB7CiBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5
UmVmPiB3a1ZhbHVlczsKICAgICBXS1JldGFpblB0cjxXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJS
ZWY+IHdrTGlzdGVuZXI7CiAgICAgYm9vbCBoYW5kbGVkUmVxdWVzdDsKIAotICAgIH5fRXdrX0Zv
cm1fU3VibWlzc2lvbl9SZXF1ZXN0KCkKKyAgICB+RXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0
KCkKICAgICB7CiAgICAgICAgIC8vIE1ha2Ugc3VyZSB0aGUgcmVxdWVzdCBpcyBhbHdheXMgaGFu
ZGxlZCBiZWZvcmUgZGVzdHJveWluZy4KICAgICAgICAgaWYgKCFoYW5kbGVkUmVxdWVzdCkKICAg
ICAgICAgICAgIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lckNvbnRpbnVlKHdrTGlzdGVuZXIuZ2V0
KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfRm9ybV9TdWJtaXNzaW9u
X1JlcXVlc3Q+IGNyZWF0ZShXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9u
TGlzdGVuZXJSZWYgbGlzdGVuZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX0Zvcm1fU3Vi
bWlzc2lvbl9SZXF1ZXN0PiBjcmVhdGUoV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBfRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0KHZhbHVlcywgbGlzdGVuZXIpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Qo
dmFsdWVzLCBsaXN0ZW5lcikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBfRXdrX0Zvcm1fU3Vi
bWlzc2lvbl9SZXF1ZXN0KFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLRm9ybVN1Ym1pc3Npb25M
aXN0ZW5lclJlZiBsaXN0ZW5lcikKKyAgICBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QoV0tE
aWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmIGxpc3RlbmVy
KQogICAgICAgICA6IHdrVmFsdWVzKHZhbHVlcykKICAgICAgICAgLCB3a0xpc3RlbmVyKGxpc3Rl
bmVyKQogICAgICAgICAsIGhhbmRsZWRSZXF1ZXN0KGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCmluZGV4IDViODY5MDIuLmEyMzY5NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKQEAgLTM3
LDggKzM3LDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBu
YW1lIGZvciBfRXdrX0ludGVudCAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0lu
dGVudDsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfSW50ZW50ICovCit0eXBlZGVm
IHN0cnVjdCBFd2tfSW50ZW50IEV3a19JbnRlbnQ7CiAKIC8qKgogICogSW5jcmVhc2VzIHRoZSBy
ZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmgKaW5kZXggOTVmZmJi
Mi4uMTY2YThhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2ludGVudF9wcml2YXRlLmgKQEAgLTM1LDI2ICszNSwyNCBAQAogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAotdHlwZWRlZiBz
dHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKLQogLyoqCi0gKiBcc3RydWN0ICBfRXdrX0lu
dGVudAorICogXHN0cnVjdCAgRXdrX0ludGVudAogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIGlu
dGVudCBkYXRhLgogICovCi1jbGFzcyBfRXdrX0ludGVudCA6IHB1YmxpYyBSZWZDb3VudGVkPF9F
d2tfSW50ZW50PiB7CitjbGFzcyBFd2tfSW50ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX0lu
dGVudD4gewogcHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLSW50ZW50RGF0YVJlZj4gd2tJbnRl
bnQ7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGFjdGlvbjsKICAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdHlwZTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgc2VydmljZTsKIAotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPF9Fd2tfSW50ZW50PiBjcmVhdGUoV0tJbnRlbnREYXRhUmVmIGludGVudFJlZikK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfSW50ZW50PiBjcmVhdGUoV0tJbnRlbnREYXRhUmVm
IGludGVudFJlZikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19JbnRl
bnQoaW50ZW50UmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX0ludGVudChp
bnRlbnRSZWYpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgX0V3a19JbnRlbnQo
V0tJbnRlbnREYXRhUmVmIGludGVudFJlZikKKyAgICBleHBsaWNpdCBFd2tfSW50ZW50KFdLSW50
ZW50RGF0YVJlZiBpbnRlbnRSZWYpCiAgICAgICAgIDogd2tJbnRlbnQoaW50ZW50UmVmKQogICAg
ICAgICAsIGFjdGlvbihBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5QWN0aW9uKGludGVudFJlZikp
CiAgICAgICAgICwgdHlwZShBZG9wdFdLLCBXS0ludGVudERhdGFDb3B5VHlwZShpbnRlbnRSZWYp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVu
dF9zZXJ2aWNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50
X3NlcnZpY2UuaAppbmRleCBkYjk0NmQyLi5hN2QzZDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaApAQCAtMzcsOCAr
MzcsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUg
Zm9yIF9Fd2tfSW50ZW50X1NlcnZpY2UgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1Nl
cnZpY2UgRXdrX0ludGVudF9TZXJ2aWNlOworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3
a19JbnRlbnRfU2VydmljZSAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0ludGVudF9TZXJ2aWNlIEV3
a19JbnRlbnRfU2VydmljZTsKIAogLyoqCiAgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3Vu
dCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgKaW5kZXggY2E1
NjFjNS4uMTE5ZDY3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oCkBAIC0zNCwxMyArMzQs
MTEgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgRXdrX0ludGVudF9T
ZXJ2aWNlOwotCiAvKioKLSAqIFxzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZQorICogXHN0cnVj
dCBFd2tfSW50ZW50X1NlcnZpY2UKICAqIEBicmllZiBDb250YWlucyB0aGUgaW50ZW50IHNlcnZp
Y2UgZGF0YS4KICAqLwotY2xhc3MgX0V3a19JbnRlbnRfU2VydmljZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPF9Fd2tfSW50ZW50X1NlcnZpY2U+IHsKK2NsYXNzIEV3a19JbnRlbnRfU2VydmljZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEV3a19JbnRlbnRfU2VydmljZT4gewogcHVibGljOgogICAgIFdLRWlu
YVNoYXJlZFN0cmluZyBhY3Rpb247CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHR5cGU7CkBAIC00
OCwxMyArNDYsMTMgQEAgcHVibGljOgogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0aXRsZTsKICAg
ICBXS0VpbmFTaGFyZWRTdHJpbmcgZGlzcG9zaXRpb247CiAKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxfRXdrX0ludGVudF9TZXJ2aWNlPiBjcmVhdGUoV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2
aWNlUmVmKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19JbnRlbnRfU2VydmljZT4gY3JlYXRl
KFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZVJlZikKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgX0V3a19JbnRlbnRfU2VydmljZShzZXJ2aWNlUmVmKSk7CisgICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgRXdrX0ludGVudF9TZXJ2aWNlKHNlcnZpY2VSZWYpKTsKICAg
ICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgX0V3a19JbnRlbnRfU2VydmljZShXS0ludGVu
dFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VSZWYpCisgICAgZXhwbGljaXQgRXdrX0ludGVudF9TZXJ2
aWNlKFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZVJlZikKICAgICAgICAgOiBhY3Rpb24o
QWRvcHRXSywgV0tJbnRlbnRTZXJ2aWNlSW5mb0NvcHlBY3Rpb24oc2VydmljZVJlZikpCiAgICAg
ICAgICwgdHlwZShBZG9wdFdLLCBXS0ludGVudFNlcnZpY2VJbmZvQ29weVR5cGUoc2VydmljZVJl
ZikpCiAgICAgICAgICwgaHJlZihBZG9wdFdLLCBXS0ludGVudFNlcnZpY2VJbmZvQ29weUhyZWYo
c2VydmljZVJlZikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9kYXRhLmgKaW5kZXggMWExZTYwNy4uYjNiNWMyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2Rh
dGEuaApAQCAtMzgsOCArMzgsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0
ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfTmF2aWdhdGlvbl9EYXRhICovCi10eXBlZGVmIHN0cnVj
dCBfRXdrX05hdmlnYXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOworLyoqIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIEV3a19OYXZpZ2F0aW9uX0RhdGEgKi8KK3R5cGVkZWYgc3RydWN0IEV3
a19OYXZpZ2F0aW9uX0RhdGEgRXdrX05hdmlnYXRpb25fRGF0YTsKIAogLyoqCiAgKiBJbmNyZWFz
ZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YV9wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9k
YXRhX3ByaXZhdGUuaAppbmRleCAwOGFkMGNlLi5lMDYwMTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRh
X3ByaXZhdGUuaApAQCAtMzYsMjggKzM2LDI2IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIAogLyoqCi0gKiBcc3RydWN0ICBfRXdrX05hdmlnYXRpb25fRGF0YQorICogXHN0cnVjdCAg
RXdrX05hdmlnYXRpb25fRGF0YQogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmlnYXRpb24g
ZGF0YSBkZXRhaWxzLgogICovCi1jbGFzcyBfRXdrX05hdmlnYXRpb25fRGF0YSA6IHB1YmxpYyBS
ZWZDb3VudGVkPF9Fd2tfTmF2aWdhdGlvbl9EYXRhPiB7CitjbGFzcyBFd2tfTmF2aWdhdGlvbl9E
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX05hdmlnYXRpb25fRGF0YT4gewogcHVibGljOgog
ICAgIFJlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIHRpdGxlOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7CiAKLSAgICBzdGF0aWMgUGFz
c1JlZlB0cjxfRXdrX05hdmlnYXRpb25fRGF0YT4gY3JlYXRlKFdLTmF2aWdhdGlvbkRhdGFSZWYg
ZGF0YVJlZikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBjcmVh
dGUoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBfRXdrX05hdmlnYXRpb25fRGF0YShkYXRhUmVmKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgRXdrX05hdmlnYXRpb25fRGF0YShkYXRhUmVmKSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IF9Fd2tfTmF2aWdhdGlvbl9EYXRhKFdLTmF2aWdhdGlvbkRh
dGFSZWYgZGF0YVJlZikKKyAgICBleHBsaWNpdCBFd2tfTmF2aWdhdGlvbl9EYXRhKFdLTmF2aWdh
dGlvbkRhdGFSZWYgZGF0YVJlZikKICAgICAgICAgOiByZXF1ZXN0KEV3a19VcmxfUmVxdWVzdDo6
Y3JlYXRlKGFkb3B0V0soV0tOYXZpZ2F0aW9uRGF0YUNvcHlPcmlnaW5hbFJlcXVlc3QoZGF0YVJl
ZikpLmdldCgpKSkKICAgICAgICAgLCB0aXRsZShBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRhQ29w
eVRpdGxlKGRhdGFSZWYpKQogICAgICAgICAsIHVybChBZG9wdFdLLCBXS05hdmlnYXRpb25EYXRh
Q29weVVSTChkYXRhUmVmKSkKICAgICB7IH0KIH07CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfTmF2
aWdhdGlvbl9EYXRhIEV3a19OYXZpZ2F0aW9uX0RhdGE7Ci0KICNlbmRpZiAvLyBld2tfbmF2aWdh
dGlvbl9kYXRhX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaAppbmRl
eCA5ZjNjMDQ1Li4xNjZiMWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaApA
QCAtMzgsOCArMzgsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gKi8KLXR5cGVkZWYg
c3RydWN0IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gRXdrX05hdmlnYXRpb25fUG9s
aWN5X0RlY2lzaW9uOworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19OYXZpZ2F0aW9u
X1BvbGljeV9EZWNpc2lvbiAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjsKIAogLy8vIEVudW0gY29u
dGFpbmluZyBuYXZpZ2F0aW9uIHR5cGVzCiB0eXBlZGVmIGVudW0gIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNp
c2lvbl9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2
aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCmluZGV4IGJlMWE4ZGYuLmU3ZTQ1NDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0
aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaApAQCAt
MzcsMTAgKzM3LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogLyoqCi0gKiBc
c3RydWN0ICBfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uCisgKiBcc3RydWN0ICBFd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24KICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBuYXZp
Z2F0aW9uIHBvbGljeSBkZWNpc2lvbiBkYXRhLgogICovCi1jbGFzcyBfRXdrX05hdmlnYXRpb25f
UG9saWN5X0RlY2lzaW9uIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19OYXZpZ2F0aW9uX1BvbGlj
eV9EZWNpc2lvbj4geworY2xhc3MgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiB7CiBwdWJsaWM6
CiAgICAgV0tSZXRhaW5QdHI8V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmPiBsaXN0ZW5lcjsKICAg
ICBib29sIGFjdGVkVXBvbkJ5Q2xpZW50OwpAQCAtNTAsMjEgKzUwLDIxIEBAIHB1YmxpYzoKICAg
ICBSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0OwogICAgIFdLRWluYVNoYXJlZFN0cmlu
ZyBmcmFtZU5hbWU7CiAKLSAgICB+X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbigpCisg
ICAgfkV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbigpCiAgICAgewogICAgICAgICAvLyBU
aGlzIGlzIHRoZSBkZWZhdWx0IGNob2ljZSBmb3IgYWxsIHBvbGljeSBkZWNpc2lvbnMgaW4gV2Vi
UGFnZVByb3h5LmNwcC4KICAgICAgICAgaWYgKCFhY3RlZFVwb25CeUNsaWVudCkKICAgICAgICAg
ICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclVzZShsaXN0ZW5lci5nZXQoKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbj4gY3Jl
YXRlKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vdXNlQnV0
dG9uIG1vdXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19OYXZpZ2F0aW9uX1Bv
bGljeV9EZWNpc2lvbj4gY3JlYXRlKFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlw
ZSwgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlm
aWVycywgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3RSZWYsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyKQogICAgIHsKICAgICAgICAgUmVmUHRy
PEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCA9IEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKHJlcXVl
c3RSZWYpOwotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IF9Fd2tfTmF2aWdhdGlvbl9Qb2xp
Y3lfRGVjaXNpb24obGlzdGVuZXIsIHN0YXRpY19jYXN0PEV3a19OYXZpZ2F0aW9uX1R5cGU+KG5h
dmlnYXRpb25UeXBlKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW91c2VfQnV0dG9uPihtb3VzZUJ1dHRv
biksIHN0YXRpY19jYXN0PEV2ZW50X01vZGlmaWVyX0tleXM+KG1vZGlmaWVycyksIHJlcXVlc3Qu
cmVsZWFzZSgpLCBmcmFtZU5hbWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tf
TmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24obGlzdGVuZXIsIHN0YXRpY19jYXN0PEV3a19OYXZp
Z2F0aW9uX1R5cGU+KG5hdmlnYXRpb25UeXBlKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW91c2VfQnV0
dG9uPihtb3VzZUJ1dHRvbiksIHN0YXRpY19jYXN0PEV2ZW50X01vZGlmaWVyX0tleXM+KG1vZGlm
aWVycyksIHJlcXVlc3QucmVsZWFzZSgpLCBmcmFtZU5hbWUpKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbihXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJSZWYgbGlzdGVuZXIsIEV3a19OYXZpZ2F0aW9uX1R5cGUgbmF2aWdhdGlvblR5cGUsIEV2ZW50
X01vdXNlX0J1dHRvbiBtb3VzZUJ1dHRvbiwgRXZlbnRfTW9kaWZpZXJfS2V5cyBtb2RpZmllcnMs
IFBhc3NSZWZQdHI8RXdrX1VybF9SZXF1ZXN0PiByZXF1ZXN0LCBjb25zdCBjaGFyKiBmcmFtZU5h
bWUpCisgICAgRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xpY3lMaXN0
ZW5lclJlZiBsaXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZSwgRXZl
bnRfTW91c2VfQnV0dG9uIG1vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVy
cywgUGFzc1JlZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1l
TmFtZSkKICAgICAgICAgOiBsaXN0ZW5lcihsaXN0ZW5lcikKICAgICAgICAgLCBhY3RlZFVwb25C
eUNsaWVudChmYWxzZSkKICAgICAgICAgLCBuYXZpZ2F0aW9uVHlwZShuYXZpZ2F0aW9uVHlwZSkK
QEAgLTc1LDYgKzc1LDQgQEAgcHJpdmF0ZToKICAgICB7IH0KIH07CiAKLXR5cGVkZWYgc3RydWN0
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gRXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uOwotCiAjZW5kaWYgLy8gZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnVfaXRlbS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
cG9wdXBfbWVudV9pdGVtLmNwcAppbmRleCBkMGEzZjYwLi40YjIyOWJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVt
LmNwcApAQCAtMzIsNyArMzIsNyBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1fRXdr
X1BvcHVwX01lbnVfSXRlbTo6X0V3a19Qb3B1cF9NZW51X0l0ZW0oY29uc3QgV2ViS2l0OjpXZWJQ
b3B1cEl0ZW0mIGl0ZW0pCitFd2tfUG9wdXBfTWVudV9JdGVtOjpFd2tfUG9wdXBfTWVudV9JdGVt
KGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVtKQogICAgIDogdHlwZShzdGF0aWNfY2Fz
dDxFd2tfUG9wdXBfTWVudV9JdGVtX1R5cGU+KGl0ZW0ubV90eXBlKSkKICAgICAsIHRleHREaXJl
Y3Rpb24oc3RhdGljX2Nhc3Q8RXdrX1RleHRfRGlyZWN0aW9uPihpdGVtLm1fdGV4dERpcmVjdGlv
bikpCiAgICAgLCBoYXNUZXh0RGlyZWN0aW9uT3ZlcnJpZGUoaXRlbS5tX2hhc1RleHREaXJlY3Rp
b25PdmVycmlkZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19wb3B1cF9tZW51X2l0ZW0uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19wb3B1cF9tZW51X2l0ZW0uaAppbmRleCBiOTZkNDM2Li41ZWZlNmZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRl
bS5oCkBAIC00NSw4ICs0NSw4IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgRVdLX1BPUFVQX01FTlVf
VU5LTk9XTiA9IC0xCiB9IEV3a19Qb3B1cF9NZW51X0l0ZW1fVHlwZTsKIAotLyoqIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIF9Fd2tfUG9wdXBfTWVudV9JdGVtICovCi10eXBlZGVmIHN0cnVjdCBf
RXdrX1BvcHVwX01lbnVfSXRlbSBFd2tfUG9wdXBfTWVudV9JdGVtOworLyoqIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIEV3a19Qb3B1cF9NZW51X0l0ZW0gKi8KK3R5cGVkZWYgc3RydWN0IEV3a19Q
b3B1cF9NZW51X0l0ZW0gRXdrX1BvcHVwX01lbnVfSXRlbTsKIAogLyoqCiAgKiBSZXR1cm5zIHR5
cGUgb2YgdGhlIHBvcHVwIG1lbnUgaXRlbS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW1fcHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKaW5k
ZXggZWMyZWMzNi4uYWQyMTVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmgKQEAgLTMy
LDEwICszMiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIC8qKgotICogXHN0
cnVjdCAgX0V3a19Qb3B1cF9NZW51X0l0ZW0KKyAqIFxzdHJ1Y3QgIEV3a19Qb3B1cF9NZW51X0l0
ZW0KICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBwb3B1cCBtZW51IGRhdGEuCiAgKi8KLWNsYXNz
IF9Fd2tfUG9wdXBfTWVudV9JdGVtIHsKK2NsYXNzIEV3a19Qb3B1cF9NZW51X0l0ZW0gewogcHVi
bGljOgogICAgIEV3a19Qb3B1cF9NZW51X0l0ZW1fVHlwZSB0eXBlOwogICAgIEV3a19UZXh0X0Rp
cmVjdGlvbiB0ZXh0RGlyZWN0aW9uOwpAQCAtNDksMTMgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgdG9vbFRpcDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgYWNjZXNz
aWJpbGl0eVRleHQ7CiAKLSAgICBzdGF0aWMgUGFzc093blB0cjxfRXdrX1BvcHVwX01lbnVfSXRl
bT4gY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVtKQorICAgIHN0YXRpYyBQ
YXNzT3duUHRyPEV3a19Qb3B1cF9NZW51X0l0ZW0+IGNyZWF0ZShjb25zdCBXZWJLaXQ6OldlYlBv
cHVwSXRlbSYgaXRlbSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgX0V3a19Q
b3B1cF9NZW51X0l0ZW0oaXRlbSkpOworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEV3a19Q
b3B1cF9NZW51X0l0ZW0oaXRlbSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBf
RXdrX1BvcHVwX01lbnVfSXRlbShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRlbSYgaXRlbSk7Cisg
ICAgZXhwbGljaXQgRXdrX1BvcHVwX01lbnVfSXRlbShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRl
bSYgaXRlbSk7CiB9OwogCiAjZW5kaWYgLy8gZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKaW5k
ZXggYTJmNDc4Ni4uNWVjNDBiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3Jlc291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3Jlc291cmNlLmgKQEAgLTM4LDcgKzM4LDcgQEAgZXh0ZXJuICJDIiB7CiAjZW5k
aWYKIAogLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIEV3a19SZXNvdXJjZS4gKi8KLXR5
cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOwordHlwZWRlZiBzdHJ1Y3Qg
RXdrX1Jlc291cmNlIEV3a19SZXNvdXJjZTsKIAogLyoqCiAgKiBJbmNyZWFzZXMgdGhlIHJlZmVy
ZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19yZXNvdXJjZV9wcml2YXRlLmgKaW5kZXggZDg2ZDY3
Yi4uOTljYzkzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3Jlc291cmNlX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5oCkBAIC0zMywyMCArMzMsMTggQEAKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
LXR5cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOwotCi1jbGFzcyBfRXdr
X1Jlc291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19SZXNvdXJjZT4geworY2xhc3MgRXdr
X1Jlc291cmNlIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX1Jlc291cmNlPiB7CiBwdWJsaWM6CiAg
ICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKICAgICBib29sIGlzTWFpblJlc291cmNlOwogCi0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19SZXNvdXJjZT4gY3JlYXRlKFdLVVJMUmVmIHVybCwg
Ym9vbCBpc01haW5SZXNvdXJjZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfUmVzb3VyY2U+
IGNyZWF0ZShXS1VSTFJlZiB1cmwsIGJvb2wgaXNNYWluUmVzb3VyY2UpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IF9Fd2tfUmVzb3VyY2UodXJsLCBpc01haW5SZXNvdXJjZSkp
OworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19SZXNvdXJjZSh1cmwsIGlzTWFpblJl
c291cmNlKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIF9Fd2tfUmVzb3VyY2UoV0tVUkxSZWYg
dXJsLCBib29sIGlzTWFpblJlc291cmNlKQorICAgIEV3a19SZXNvdXJjZShXS1VSTFJlZiB1cmws
IGJvb2wgaXNNYWluUmVzb3VyY2UpCiAgICAgICAgIDogdXJsKHVybCkKICAgICAgICAgLCBpc01h
aW5SZXNvdXJjZShpc01haW5SZXNvdXJjZSkKICAgICB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgKaW5kZXggMWYxNzhiNi4uODYxYjk5MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmgK
QEAgLTQwLDggKzQwLDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBfRXdrX1NldHRpbmdzICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX1NldHRp
bmdzIEV3a19TZXR0aW5nczsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfU2V0dGlu
Z3MgKi8KK3R5cGVkZWYgc3RydWN0IEV3a19TZXR0aW5ncyBFd2tfU2V0dGluZ3M7CiAKIC8qKgog
ICogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIHVzZWQgdG8g
bm90aWZ5IHRoZSBjbGllbnQgd2hlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmgKaW5kZXggMmM5ZGEwZC4uNDBhZTNi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRp
bmdzX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
c2V0dGluZ3NfcHJpdmF0ZS5oCkBAIC0zMSwxNyArMzEsMTQgQEAKICNpbmNsdWRlIDxXZWJLaXQy
L1dLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotLyoqIENyZWF0
ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tf
U2V0dGluZ3MgRXdrX1NldHRpbmdzOwotCiAvKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfU2V0dGluZ3MK
KyAqIFxzdHJ1Y3QgIEV3a19TZXR0aW5ncwogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIHNldHRp
bmdzIGRhdGEuCiAgKi8KLXN0cnVjdCBfRXdrX1NldHRpbmdzIHsKK3N0cnVjdCBFd2tfU2V0dGlu
Z3MgewogICAgIFdLUmV0YWluUHRyPFdLUHJlZmVyZW5jZXNSZWY+IHByZWZlcmVuY2VzOwogCi0g
ICAgZXhwbGljaXQgX0V3a19TZXR0aW5ncyhXS1ByZWZlcmVuY2VzUmVmIHdrUHJlZmVyZW5jZXMp
CisgICAgZXhwbGljaXQgRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNl
cykKICAgICAgICAgOiBwcmVmZXJlbmNlcyh3a1ByZWZlcmVuY2VzKQogICAgIHsgfQogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a190ZXh0X2NoZWNr
ZXJfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RleHRf
Y2hlY2tlcl9wcml2YXRlLmgKaW5kZXggZDQ1NTA1YS4uZTc0ODEwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RleHRfY2hlY2tlcl9wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RleHRfY2hlY2tlcl9w
cml2YXRlLmgKQEAgLTM1LDcgKzM1LDcgQEAKICAqCiAgKiBAaW50ZXJuYWwKICAqLwotc3RydWN0
IF9Fd2tfVGV4dF9DaGVja2VyIHsKK3N0cnVjdCBFd2tfVGV4dF9DaGVja2VyIHsKICAgICBFd2tf
VGV4dF9DaGVja2VyX1VuaXF1ZV9TcGVsbF9Eb2N1bWVudF9UYWdfR2V0X0NiIHVuaXF1ZV9zcGVs
bF9kb2N1bWVudF90YWdfZ2V0OwogICAgIEV3a19UZXh0X0NoZWNrZXJfVW5pcXVlX1NwZWxsX0Rv
Y3VtZW50X1RhZ19DbG9zZV9DYiB1bmlxdWVfc3BlbGxfZG9jdW1lbnRfdGFnX2Nsb3NlOwogICAg
IEV3a19UZXh0X0NoZWNrZXJfU3RyaW5nX1NwZWxsaW5nX0NoZWNrX0NiIHN0cmluZ19zcGVsbGlu
Z19jaGVjazsKQEAgLTQzLDcgKzQzLDYgQEAgc3RydWN0IF9Fd2tfVGV4dF9DaGVja2VyIHsKICAg
ICBFd2tfVGV4dF9DaGVja2VyX1dvcmRfTGVhcm5fQ2Igd29yZF9sZWFybjsKICAgICBFd2tfVGV4
dF9DaGVja2VyX1dvcmRfSWdub3JlX0NiIHdvcmRfaWdub3JlOwogfTsKLXR5cGVkZWYgX0V3a19U
ZXh0X0NoZWNrZXIgRXdrX1RleHRfQ2hlY2tlcjsKIAogRXdrX1RleHRfQ2hlY2tlciogZXdrX3Rl
eHRfY2hlY2tlcl9jYWxsYmFja3NfZ2V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a190b3VjaC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3RvdWNoLmgKaW5kZXggMWM5Y2RkNS4uZjI5NzFhNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RvdWNoLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RvdWNoLmgKQEAgLTQwLDExICs0MCwxMSBA
QCB0eXBlZGVmIGVudW0gewogICAgIEVXS19UT1VDSF9DQU5DRUwKIH0gRXdrX1RvdWNoX0V2ZW50
X1R5cGU7CiAKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1RvdWNoX1BvaW50Lgot
dHlwZWRlZiBzdHJ1Y3QgX0V3a19Ub3VjaF9Qb2ludCBFd2tfVG91Y2hfUG9pbnQ7CisvLy8gQ3Jl
YXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX1RvdWNoX1BvaW50LgordHlwZWRlZiBzdHJ1Y3QgRXdr
X1RvdWNoX1BvaW50IEV3a19Ub3VjaF9Qb2ludDsKIAogLy8vIFJlcHJlc2VudHMgYSB0b3VjaCBw
b2ludC4KLXN0cnVjdCBfRXdrX1RvdWNoX1BvaW50IHsKK3N0cnVjdCBFd2tfVG91Y2hfUG9pbnQg
ewogICAgIGludCBpZDsgLyoqPCBpZGVudGlmaWVyIG9mIHRoZSB0b3VjaCBldmVudCAqLwogICAg
IGludCB4OyAvKio8IHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudCAq
LwogICAgIGludCB5OyAvKio8IHRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiBvZiB0aGUgdG91Y2ggZXZl
bnQgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191
cmxfcmVxdWVzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9y
ZXF1ZXN0LmgKaW5kZXggZjYxYjg4YS4uOTg3YmQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0LmgKQEAgLTM3LDggKzM3LDggQEAK
IGV4dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdr
X1VybF9SZXF1ZXN0ICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXF1ZXN0IEV3a19Vcmxf
UmVxdWVzdDsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfVXJsX1JlcXVlc3QgKi8K
K3R5cGVkZWYgc3RydWN0IEV3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVlc3Q7CiAKIC8qKgog
ICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVz
dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jl
cXVlc3RfcHJpdmF0ZS5oCmluZGV4IGIxYmMxMzMuLjZmYWZiODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZh
dGUuaApAQCAtMzMsMjggKzMzLDI2IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAog
LyoqCi0gKiBcc3RydWN0ICBfRXdrX1VybF9SZXF1ZXN0CisgKiBcc3RydWN0ICBFd2tfVXJsX1Jl
cXVlc3QKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBVUkwgcmVxdWVzdCBkYXRhLgogICovCi1j
bGFzcyBfRXdrX1VybF9SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19VcmxfUmVxdWVz
dD4geworY2xhc3MgRXdrX1VybF9SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX1VybF9S
ZXF1ZXN0PiB7CiBwdWJsaWM6CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKICAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgZmlyc3RQYXJ0eTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgaHR0cE1l
dGhvZDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfVXJsX1JlcXVlc3Q+IGNyZWF0ZShX
S1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfVXJs
X1JlcXVlc3Q+IGNyZWF0ZShXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19VcmxfUmVxdWVzdChyZXF1ZXN0UmVmKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX1VybF9SZXF1ZXN0KHJlcXVlc3RSZWYpKTsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgX0V3a19VcmxfUmVxdWVzdChXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdFJlZikKKyAgICBleHBsaWNpdCBFd2tfVXJsX1JlcXVlc3QoV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCiAgICAgICAgIDogdXJsKEFkb3B0V0ssIFdLVVJMUmVxdWVz
dENvcHlVUkwocmVxdWVzdFJlZikpCiAgICAgICAgICwgZmlyc3RQYXJ0eShBZG9wdFdLLCBXS1VS
TFJlcXVlc3RDb3B5Rmlyc3RQYXJ0eUZvckNvb2tpZXMocmVxdWVzdFJlZikpCiAgICAgICAgICwg
aHR0cE1ldGhvZChBZG9wdFdLLCBXS1VSTFJlcXVlc3RDb3B5SFRUUE1ldGhvZChyZXF1ZXN0UmVm
KSkKICAgICB7IH0KIH07CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgRXdrX1Vy
bF9SZXF1ZXN0OwotCiAjZW5kaWYgLy8gZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZS5oCmlu
ZGV4IDI1ODE0ZDIuLmNhZDhlMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmgKQEAgLTM3LDggKzM3LDggQEAKIGV4dGVybiAi
QyIgewogI2VuZGlmCiAKLS8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1VybF9SZXNw
b25zZSAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25z
ZTsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfVXJsX1Jlc3BvbnNlICovCit0eXBl
ZGVmIHN0cnVjdCBFd2tfVXJsX1Jlc3BvbnNlIEV3a19VcmxfUmVzcG9uc2U7CiAKIC8qKgogICog
SW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVzcG9uc2Vf
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNw
b25zZV9wcml2YXRlLmgKaW5kZXggODg1ZDMyYi4uMzU3YzFjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2
YXRlLmgKQEAgLTMzLDMxICszMywyOSBAQAogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAK
IC8qKgotICogXHN0cnVjdCAgX0V3a19VcmxfUmVzcG9uc2UKKyAqIFxzdHJ1Y3QgIEV3a19Vcmxf
UmVzcG9uc2UKICAqIEBicmllZiAgIENvbnRhaW5zIHRoZSBVUkwgcmVzcG9uc2UgZGF0YS4KICAq
LwotY2xhc3MgX0V3a19VcmxfUmVzcG9uc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX1VybF9S
ZXNwb25zZT4geworY2xhc3MgRXdrX1VybF9SZXNwb25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPEV3
a19VcmxfUmVzcG9uc2U+IHsKIHB1YmxpYzoKICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
IGNvcmVSZXNwb25zZTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwogICAgIFdLRWluYVNo
YXJlZFN0cmluZyBtaW1lVHlwZTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfVXJsX1Jl
c3BvbnNlPiBjcmVhdGUoV0tVUkxSZXNwb25zZVJlZiB3a1Jlc3BvbnNlKQorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPEV3a19VcmxfUmVzcG9uc2U+IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVz
cG9uc2UpCiAgICAgewogICAgICAgICBpZiAoIXdrUmVzcG9uc2UpCiAgICAgICAgICAgICByZXR1
cm4gMDsKIAotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IF9Fd2tfVXJsX1Jlc3BvbnNlKFdl
YktpdDo6dG9JbXBsKHdrUmVzcG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfVXJsX1Jlc3BvbnNlKFdlYktpdDo6dG9JbXBsKHdrUmVz
cG9uc2UpLT5yZXNvdXJjZVJlc3BvbnNlKCkpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgX0V3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYg
X2NvcmVSZXNwb25zZSkKKyAgICBleHBsaWNpdCBFd2tfVXJsX1Jlc3BvbnNlKGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmIF9jb3JlUmVzcG9uc2UpCiAgICAgICAgIDogY29yZVJlc3Bv
bnNlKF9jb3JlUmVzcG9uc2UpCiAgICAgICAgICwgdXJsKEFkb3B0V0ssIFdLVVJMUmVzcG9uc2VD
b3B5VVJMKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkpCiAgICAgICAgICwgbWltZVR5cGUo
QWRvcHRXSywgV0tVUkxSZXNwb25zZUNvcHlNSU1FVHlwZShXZWJLaXQ6OnRvQVBJKGNvcmVSZXNw
b25zZSkpKQogICAgIHsgfQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVzcG9uc2Ug
RXdrX1VybF9SZXNwb25zZTsKLQogI2VuZGlmIC8vIGV3a191cmxfcmVzcG9uc2VfcHJpdmF0ZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Nj
aGVtZV9yZXF1ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0LmgKaW5kZXggOTRiNTAyOS4uZjM2ZWE0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVl
c3QuaApAQCAtMzcsNyArMzcsNyBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0
ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICovCisvKiogQ3JlYXRl
cyBhIHR5cGUgbmFtZSBmb3IgRXdrX1VybF9TY2hlbWVfUmVxdWVzdCAqLwogdHlwZWRlZiBzdHJ1
Y3QgRXdrX1VybF9TY2hlbWVfUmVxdWVzdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0OwogCiAvKioK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2No
ZW1lX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKaW5kZXggOGM3ODEwMi4uNmJjYmE5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hl
bWVfcmVxdWVzdF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9wcml2YXRlLmgKQEAgLTM0LDcgKzM0LDcgQEAKICNp
bmNsdWRlICJXS1NvdXBSZXF1ZXN0TWFuYWdlci5oIgogCiAvKioKLSAqIFxzdHJ1Y3QgIF9Fd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0CisgKiBcc3RydWN0ICBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0CiAg
KiBAYnJpZWYgICBDb250YWlucyB0aGUgVVJMIHNjaGVtZSByZXF1ZXN0IGRhdGEuCiAgKi8KIHN0
cnVjdCBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX1VybF9T
Y2hlbWVfUmVxdWVzdD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXcuY3BwCmluZGV4IDk1YjA4NGUuLmNhZGUwMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTExMSw3ICsxMTEsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgcmVtb3ZlRnJvbVBhZ2VWaWV3TWFwKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3KQogICAgIHBhZ2VWaWV3TWFwKCkucmVtb3ZlKGV3a192aWV3X3BhZ2VfZ2V0KGV3a1ZpZXcp
KTsKIH0KIAotc3RydWN0IF9Fd2tfVmlld19Qcml2YXRlX0RhdGEgeworc3RydWN0IEV3a19WaWV3
X1ByaXZhdGVfRGF0YSB7CiAgICAgT3duUHRyPFBhZ2VDbGllbnRJbXBsPiBwYWdlQ2xpZW50Owog
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICBPd25QdHI8RWZsVmlld3BvcnRIYW5k
bGVyPiB2aWV3cG9ydEhhbmRsZXI7CkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RydWN0IF9Fd2tfVmll
d19Qcml2YXRlX0RhdGEgewogICAgIEV2YXNfR0xfU3VyZmFjZSogZXZhc0dsU3VyZmFjZTsKICNl
bmRpZgogCi0gICAgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSgpCisgICAgRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhKCkKICAgICAgICAgOiBjdXJzb3JPYmplY3QoMCkKICAgICAgICAgLCBhcmVNb3VzZUV2
ZW50c0VuYWJsZWQoZmFsc2UpCiAgICAgICAgICwgY29sb3JQaWNrZXJSZXN1bHRMaXN0ZW5lcigw
KQpAQCAtMTY4LDcgKzE2OCw3IEBAIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKICNl
bmRpZgogICAgIHsgfQogCi0gICAgfl9Fd2tfVmlld19Qcml2YXRlX0RhdGEoKQorICAgIH5Fd2tf
Vmlld19Qcml2YXRlX0RhdGEoKQogICAgIHsKICAgICAgICAgLyogVW5yZWdpc3RlciBpY29uIGNo
YW5nZSBjYWxsYmFjayAqLwogICAgICAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZSogaWNvbkRhdGFi
YXNlID0gZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFzZV9nZXQoY29udGV4dCk7CkBAIC01MDcs
NyArNTA3LDcgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X3NtYXJ0X2FkZChFdmFzX09iamVjdCog
ZXdrVmlldykKIAogICAgIHNtYXJ0RGF0YS0+cHJpdiA9IF9ld2tfdmlld19wcml2X25ldyhzbWFy
dERhdGEpOwogICAgIGlmICghc21hcnREYXRhLT5wcml2KSB7Ci0gICAgICAgIEVJTkFfTE9HX0NS
SVQoImNvdWxkIG5vdCBhbGxvY2F0ZSBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIik7CisgICAgICAg
IEVJTkFfTE9HX0NSSVQoImNvdWxkIG5vdCBhbGxvY2F0ZSBFd2tfVmlld19Qcml2YXRlX0RhdGEi
KTsKICAgICAgICAgZXZhc19vYmplY3Rfc21hcnRfZGF0YV9zZXQoZXdrVmlldywgMCk7CiAgICAg
ICAgIGZyZWUoc21hcnREYXRhKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggN2Q4YmI2YS4uMzRhMDgxNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBAIC05NiwxMSArOTYs
MTEgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBFV0tfVEVYVF9ESVJFQ1RJT05fTEVGVF9UT19SSUdI
VAogfSBFd2tfVGV4dF9EaXJlY3Rpb247CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfVmlld19TbWFy
dF9EYXRhIEV3a19WaWV3X1NtYXJ0X0RhdGE7Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1ZpZXdfU21h
cnRfQ2xhc3MgRXdrX1ZpZXdfU21hcnRfQ2xhc3M7Cit0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19T
bWFydF9EYXRhIEV3a19WaWV3X1NtYXJ0X0RhdGE7Cit0eXBlZGVmIHN0cnVjdCBFd2tfVmlld19T
bWFydF9DbGFzcyBFd2tfVmlld19TbWFydF9DbGFzczsKIAogLy8vIEV3ayB2aWV3J3MgY2xhc3Ms
IHRvIGJlIG92ZXJyaWRkZW4gYnkgc3ViLWNsYXNzZXMuCi1zdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0
X0NsYXNzIHsKK3N0cnVjdCBFd2tfVmlld19TbWFydF9DbGFzcyB7CiAgICAgRXZhc19TbWFydF9D
bGFzcyBzYzsgLyoqPCBhbGwgYnV0ICdkYXRhJyBpcyBmcmVlIHRvIGJlIGNoYW5nZWQuICovCiAg
ICAgdW5zaWduZWQgbG9uZyB2ZXJzaW9uOwogCkBAIC0xODIsMTQgKzE4MiwxNCBAQCBzdHJ1Y3Qg
X0V3a19WaWV3X1NtYXJ0X0NsYXNzIHsKICAqLwogI2RlZmluZSBFV0tfVklFV19TTUFSVF9DTEFT
U19JTklUX05BTUVfVkVSU0lPTihuYW1lKSBFV0tfVklFV19TTUFSVF9DTEFTU19JTklUKEVWQVNf
U01BUlRfQ0xBU1NfSU5JVF9OQU1FX1ZFUlNJT04obmFtZSkpCiAKLXR5cGVkZWYgc3RydWN0IF9F
d2tfVmlld19Qcml2YXRlX0RhdGEgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOwordHlwZWRlZiBzdHJ1
Y3QgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIEV3a19WaWV3X1ByaXZhdGVfRGF0YTsKIC8qKgogICog
QGJyaWVmIENvbnRhaW5zIGFuIGludGVybmFsIFZpZXcgZGF0YS4KICAqCiAgKiBJdCBpcyB0byBi
ZSBjb25zaWRlcmVkIHByaXZhdGUgYnkgdXNlcnMsIGJ1dCBtYXkgYmUgZXh0ZW5kZWQgb3IKICAq
IGNoYW5nZWQgYnkgc3ViLWNsYXNzZXMgKHRoYXQncyB3aHkgaXQncyBpbiBwdWJsaWMgaGVhZGVy
IGZpbGUpLgogICovCi1zdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0X0RhdGEgeworc3RydWN0IEV3a19W
aWV3X1NtYXJ0X0RhdGEgewogICAgIEV2YXNfT2JqZWN0X1NtYXJ0X0NsaXBwZWRfRGF0YSBiYXNl
OwogICAgIGNvbnN0IEV3a19WaWV3X1NtYXJ0X0NsYXNzKiBhcGk7IC8qKjwgcmVmZXJlbmNlIHRv
IGNhc3RlZCBjbGFzcyBpbnN0YW5jZSAqLwogICAgIEV2YXNfT2JqZWN0KiBzZWxmOyAvKio8IHJl
ZmVyZW5jZSB0byBvd25lciBvYmplY3QgKi8KQEAgLTIwNSw0OSArMjA1LDQ5IEBAIHN0cnVjdCBf
RXdrX1ZpZXdfU21hcnRfRGF0YSB7CiAgICAgfSBjaGFuZ2VkOwogfTsKIAotLy8vIENyZWF0ZXMg
YSB0eXBlIG5hbWUgZm9yIF9Fd2tfUmVzb3VyY2VfUmVxdWVzdC4KLXR5cGVkZWYgc3RydWN0IF9F
d2tfUmVzb3VyY2VfUmVxdWVzdCBFd2tfUmVzb3VyY2VfUmVxdWVzdDsKKy8vLyBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBFd2tfUmVzb3VyY2VfUmVxdWVzdC4KK3R5cGVkZWYgc3RydWN0IEV3a19S
ZXNvdXJjZV9SZXF1ZXN0IEV3a19SZXNvdXJjZV9SZXF1ZXN0OwogCiAvKioKICAqIEBicmllZiBT
dHJ1Y3R1cmUgY29udGFpbmluZyBkZXRhaWxzIGFib3V0IGEgcmVzb3VyY2UgcmVxdWVzdC4KICAq
Lwotc3RydWN0IF9Fd2tfUmVzb3VyY2VfUmVxdWVzdCB7CitzdHJ1Y3QgRXdrX1Jlc291cmNlX1Jl
cXVlc3QgewogICAgIEV3a19SZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwgcmVzb3VyY2UgYmVpbmcg
cmVxdWVzdGVkICovCiAgICAgRXdrX1VybF9SZXF1ZXN0ICpyZXF1ZXN0OyAvKio8IFVSTCByZXF1
ZXN0IGZvciB0aGUgcmVzb3VyY2UgKi8KICAgICBFd2tfVXJsX1Jlc3BvbnNlICpyZWRpcmVjdF9y
ZXNwb25zZTsgLyoqPCBQb3NzaWJsZSByZWRpcmVjdCByZXNwb25zZSBmb3IgdGhlIHJlc291cmNl
IG9yIEBjIE5VTEwgKi8KIH07CiAKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1Jl
c291cmNlX0xvYWRfUmVzcG9uc2UuCi10eXBlZGVmIHN0cnVjdCBfRXdrX1Jlc291cmNlX0xvYWRf
UmVzcG9uc2UgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2U7CisvLy8gQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UuCit0eXBlZGVmIHN0cnVjdCBFd2tf
UmVzb3VyY2VfTG9hZF9SZXNwb25zZSBFd2tfUmVzb3VyY2VfTG9hZF9SZXNwb25zZTsKIAogLyoq
CiAgKiBAYnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBhIHJlc3BvbnNl
IHRvIGEgcmVzb3VyY2UgcmVxdWVzdC4KICAqLwotc3RydWN0IF9Fd2tfUmVzb3VyY2VfTG9hZF9S
ZXNwb25zZSB7CitzdHJ1Y3QgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UgewogICAgIEV3a19S
ZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwgcmVzb3VyY2UgcmVxdWVzdGVkICovCiAgICAgRXdrX1Vy
bF9SZXNwb25zZSAqcmVzcG9uc2U7IC8qKjwgcmVzb3VyY2UgbG9hZCByZXNwb25zZSAqLwogfTsK
IAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfUmVzb3VyY2VfTG9hZF9FcnJvci4K
LXR5cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2VfTG9hZF9FcnJvciBFd2tfUmVzb3VyY2VfTG9h
ZF9FcnJvcjsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tfUmVzb3VyY2VfTG9hZF9F
cnJvci4KK3R5cGVkZWYgc3RydWN0IEV3a19SZXNvdXJjZV9Mb2FkX0Vycm9yIEV3a19SZXNvdXJj
ZV9Mb2FkX0Vycm9yOwogCiAvKioKICAqIEBicmllZiBTdHJ1Y3R1cmUgY29udGFpbmluZyBkZXRh
aWxzIGFib3V0IGEgcmVzb3VyY2UgbG9hZCBlcnJvci4KICAqCiAgKiBEZXRhaWxzIGdpdmVuIGFi
b3V0IGEgcmVzb3VyY2UgbG9hZCBmYWlsdXJlLgogICovCi1zdHJ1Y3QgX0V3a19SZXNvdXJjZV9M
b2FkX0Vycm9yIHsKK3N0cnVjdCBFd2tfUmVzb3VyY2VfTG9hZF9FcnJvciB7CiAgICAgRXdrX1Jl
c291cmNlICpyZXNvdXJjZTsgLyoqPCByZXNvdXJjZSB0aGF0IGZhaWxlZCBsb2FkaW5nICovCiAg
ICAgRXdrX0Vycm9yICplcnJvcjsgLyoqPCBsb2FkIGVycm9yICovCiB9OwogCi0vLy8gQ3JlYXRl
cyBhIHR5cGUgbmFtZSBmb3IgX0V3a19Eb3dubG9hZF9Kb2JfRXJyb3IuCi10eXBlZGVmIHN0cnVj
dCBfRXdrX0Rvd25sb2FkX0pvYl9FcnJvciBFd2tfRG93bmxvYWRfSm9iX0Vycm9yOworLy8vIENy
ZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19Eb3dubG9hZF9Kb2JfRXJyb3IuCit0eXBlZGVmIHN0
cnVjdCBFd2tfRG93bmxvYWRfSm9iX0Vycm9yIEV3a19Eb3dubG9hZF9Kb2JfRXJyb3I7CiAKIC8q
KgogICogQGJyaWVmIFN0cnVjdHVyZSBjb250YWluaW5nIGRldGFpbHMgYWJvdXQgYSBkb3dubG9h
ZCBmYWlsdXJlLgogICovCi1zdHJ1Y3QgX0V3a19Eb3dubG9hZF9Kb2JfRXJyb3Igeworc3RydWN0
IEV3a19Eb3dubG9hZF9Kb2JfRXJyb3IgewogICAgIEV3a19Eb3dubG9hZF9Kb2IgKmRvd25sb2Fk
X2pvYjsgLyoqPCBkb3dubG9hZCB0aGF0IGZhaWxlZCAqLwogICAgIEV3a19FcnJvciAqZXJyb3I7
IC8qKjwgZG93bmxvYWQgZXJyb3IgKi8KIH07CkBAIC0yNTcsNyArMjU3LDcgQEAgc3RydWN0IF9F
d2tfRG93bmxvYWRfSm9iX0Vycm9yIHsKICAqIEBicmllZiAgIFByb3ZpZGVzIG9wdGlvbiB0byBm
aW5kIHRleHQKICAqIEBpbmZvICAgIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggV0tGaW5kT3B0aW9u
cy5oCiAgKi8KLWVudW0gX0V3a19GaW5kX09wdGlvbnMgeworZW51bSBFd2tfRmluZF9PcHRpb25z
IHsKICAgICBFV0tfRklORF9PUFRJT05TX05PTkUsIC8qKjwgbm8gc2VhcmNoIGZsYWdzLCB0aGlz
IG1lYW5zIGEgY2FzZSBzZW5zaXRpdmUsIG5vIHdyYXAsIGZvcndhcmQgb25seSBzZWFyY2guICov
CiAgICAgRVdLX0ZJTkRfT1BUSU9OU19DQVNFX0lOU0VOU0lUSVZFID0gMSA8PCAwLCAvKio8IGNh
c2UgaW5zZW5zaXRpdmUgc2VhcmNoLiAqLwogICAgIEVXS19GSU5EX09QVElPTlNfQVRfV09SRF9T
VEFSVFMgPSAxIDw8IDEsIC8qKjwgc2VhcmNoIHRleHQgb25seSBhdCB0aGUgYmVnaW5uaW5nIG9m
IHRoZSB3b3Jkcy4gKi8KQEAgLTI2OCw3ICsyNjgsNyBAQCBlbnVtIF9Fd2tfRmluZF9PcHRpb25z
IHsKICAgICBFV0tfRklORF9PUFRJT05TX1NIT1dfRklORF9JTkRJQ0FUT1IgPSAxIDw8IDYsIC8q
Kjwgc2hvdyBpbmRpY2F0b3IgKi8KICAgICBFV0tfRklORF9PUFRJT05TX1NIT1dfSElHSExJR0hU
ID0gMSA8PCA3IC8qKjwgc2hvdyBoaWdobGlnaHQgKi8KIH07Ci10eXBlZGVmIGVudW0gX0V3a19G
aW5kX09wdGlvbnMgRXdrX0ZpbmRfT3B0aW9uczsKK3R5cGVkZWYgZW51bSBFd2tfRmluZF9PcHRp
b25zIEV3a19GaW5kX09wdGlvbnM7CiAKIC8qKgogICogU2V0cyB0aGUgc21hcnQgY2xhc3MgQVBJ
cywgZW5hYmxpbmcgdmlldyB0byBiZSBpbmhlcml0ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKaW5kZXggNjRmN2U4ZC4uNjFj
N2JkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X3ByaXZhdGUuaApAQCAtMzksMTggKzM5LDE4IEBAIGNsYXNzIFdlYlBvcHVwSXRlbTsKIGNs
YXNzIFdlYlBvcHVwTWVudVByb3h5RWZsOwogfQogCi10eXBlZGVmIHN0cnVjdCBfRXdrX0Rvd25s
b2FkX0pvYiBFd2tfRG93bmxvYWRfSm9iOwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Gb3JtX1N1Ym1p
c3Npb25fUmVxdWVzdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Q7Ci10eXBlZGVmIHN0cnVj
dCBfRXdrX1VybF9SZXF1ZXN0IEV3a19VcmxfUmVxdWVzdDsKLXR5cGVkZWYgc3RydWN0IF9Fd2tf
VXJsX1Jlc3BvbnNlIEV3a19VcmxfUmVzcG9uc2U7Ci10eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9y
IEV3a19FcnJvcjsKLXR5cGVkZWYgc3RydWN0IF9Fd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOwot
dHlwZWRlZiBzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiBFd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb247Cit0eXBlZGVmIHN0cnVjdCBFd2tfRG93bmxvYWRfSm9iIEV3
a19Eb3dubG9hZF9Kb2I7Cit0eXBlZGVmIHN0cnVjdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVl
c3QgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OwordHlwZWRlZiBzdHJ1Y3QgRXdrX1VybF9S
ZXF1ZXN0IEV3a19VcmxfUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IEV3a19VcmxfUmVzcG9uc2Ug
RXdrX1VybF9SZXNwb25zZTsKK3R5cGVkZWYgc3RydWN0IEV3a19FcnJvciBFd2tfRXJyb3I7Cit0
eXBlZGVmIHN0cnVjdCBFd2tfUmVzb3VyY2UgRXdrX1Jlc291cmNlOwordHlwZWRlZiBzdHJ1Y3Qg
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uIEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbjsKICNpZiBFTkFCTEUoV0VCX0lOVEVOVFMpCi10eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVu
dCBFd2tfSW50ZW50OwordHlwZWRlZiBzdHJ1Y3QgRXdrX0ludGVudCBFd2tfSW50ZW50OwogI2Vu
ZGlmCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKLXR5cGVkZWYgc3RydWN0IF9Fd2tfSW50
ZW50X1NlcnZpY2UgRXdrX0ludGVudF9TZXJ2aWNlOwordHlwZWRlZiBzdHJ1Y3QgRXdrX0ludGVu
dF9TZXJ2aWNlIEV3a19JbnRlbnRfU2VydmljZTsKICNlbmRpZgogCiB2b2lkIGV3a192aWV3X2N1
cnNvcl9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vy
c29yKTsK
</data>
<flag name="review"
          id="182361"
          type_id="1"
          status="+"
          setter="gyuyoung.kim"
    />
    <flag name="commit-queue"
          id="182362"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169359</attachid>
            <date>2012-10-18 00:23:59 -0700</date>
            <delta_ts>2012-10-18 01:01:16 -0700</delta_ts>
            <desc>to be landed</desc>
            <filename>bug99575_v2</filename>
            <type>text/plain</type>
            <size>62110</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDMyMmUxMzE1N2Y5YTZlNjUxNDhlYTBiMDYyZWRjOWIxZTI1NGFmMjcKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
V2VkIE9jdCAxNyAxNTowMDowMiAyMDEyICswMzAwCgogICAgYnVnOTk1NzUKCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggM2M1OGVhNS4uYjc0NTkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExMCBAQAorMjAxMi0x
MC0xNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIFJlbW92ZSAnXycgcHJlZml4IGZyb20gcHJpdmF0ZSBBUEkg
c3RydWN0dXJlIG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05OTU3NQorCisgICAgICAgIFJldmlld2VkIGJ5IEd5dXlvdW5nIEtpbS4KKworICAg
ICAgICBSZW1vdmVkIHVuZGVyc2NvcmUgcHJlZml4IGZyb20gV0syIEVGTCBpbnRlcm5hbCBzdHJ1
Y3R1cmUgbmFtZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92
aWRlci5jcHA6CisgICAgICAgIChFd2tfVmlicmF0aW9uX0NsaWVudDo6RXdrX1ZpYnJhdGlvbl9D
bGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW0uaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfaXRlbV9w
cml2YXRlLmg6CisgICAgICAgIChFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTo6Y3JlYXRlKToK
KyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtOjpFd2tfQmFja19Gb3J3YXJkX0xp
c3RfSXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9s
aXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6Y3JlYXRlKToK
KyAgICAgICAgKEV3a19CYWNrX0ZvcndhcmRfTGlzdDo6RXdrX0JhY2tfRm9yd2FyZF9MaXN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHA6CisgICAgICAgIChF
d2tfVXJsX1NjaGVtZV9IYW5kbGVyOjpFd2tfVXJsX1NjaGVtZV9IYW5kbGVyKToKKyAgICAgICAg
KEV3a19Db250ZXh0OjpFd2tfQ29udGV4dCk6CisgICAgICAgIChld2tfY29udGV4dF91cmxfc2No
ZW1lX3JlcXVlc3RfcmVjZWl2ZWQpOgorICAgICAgICAoZXdrX2NvbnRleHRfdXJsX3NjaGVtZV9y
ZWdpc3Rlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnRfcHJp
dmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3Rvcnlf
Y2xpZW50X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dF9wcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcmVx
dWVzdF9tYW5hZ2VyX2NsaWVudF9wcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNwcDoKKyAgICAgICAgKEV3a19Db29raWVfTWFuYWdlcjo6
RXdrX0Nvb2tpZV9NYW5hZ2VyKToKKyAgICAgICAgKEV3a19Db29raWVfTWFuYWdlcjo6fkV3a19D
b29raWVfTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9t
YW5hZ2VyLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2Vy
X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKEV3a19Db29raWVfTWFuYWdlcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2Rvd25sb2FkX2pvYi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9h
ZF9qb2JfcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX0Rvd25sb2FkX0pvYjo6Y3JlYXRlKToKKyAg
ICAgICAgKEV3a19Eb3dubG9hZF9Kb2I6OkV3a19Eb3dubG9hZF9Kb2IpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5jcHA6CisgICAgICAgIChFd2tfRXJyb3I6OkV3a19F
cnJvcik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19F
cnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKEV3a19FcnJvcik6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2UuY3BwOgorICAgICAgICAoRXdrX0Zhdmljb25f
RGF0YWJhc2U6OkV3a19GYXZpY29uX0RhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19GYXZpY29uX0Rh
dGFiYXNlOjpjcmVhdGUpOgorICAgICAgICAoRXdrX0Zhdmljb25fRGF0YWJhc2UpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdF9wcml2
YXRlLmg6CisgICAgICAgIChFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Q6On5Fd2tfRm9ybV9T
dWJtaXNzaW9uX1JlcXVlc3QpOgorICAgICAgICAoRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0
OjpjcmVhdGUpOgorICAgICAgICAoRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0OjpFd2tfRm9y
bV9TdWJtaXNzaW9uX1JlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19p
bnRlbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3ByaXZhdGUu
aDoKKyAgICAgICAgKEV3a19JbnRlbnQ6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfSW50ZW50OjpF
d2tfSW50ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZp
Y2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJp
dmF0ZS5oOgorICAgICAgICAoRXdrX0ludGVudF9TZXJ2aWNlOjpjcmVhdGUpOgorICAgICAgICAo
RXdrX0ludGVudF9TZXJ2aWNlOjpFd2tfSW50ZW50X1NlcnZpY2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19OYXZp
Z2F0aW9uX0RhdGE6OmNyZWF0ZSk6CisgICAgICAgIChFd2tfTmF2aWdhdGlvbl9EYXRhOjpFd2tf
TmF2aWdhdGlvbl9EYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdh
dGlvbl9wb2xpY3lfZGVjaXNpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oOgorICAgICAgICAoRXdrX05hdmln
YXRpb25fUG9saWN5X0RlY2lzaW9uOjp+RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKToK
KyAgICAgICAgKEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6RXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9p
dGVtLmNwcDoKKyAgICAgICAgKEV3a19Qb3B1cF9NZW51X0l0ZW06OkV3a19Qb3B1cF9NZW51X0l0
ZW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUu
aDoKKyAgICAgICAgKEV3a19Qb3B1cF9NZW51X0l0ZW06OmNyZWF0ZSk6CisgICAgICAgIChFd2tf
UG9wdXBfTWVudV9JdGVtKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3Vy
Y2UuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5o
OgorICAgICAgICAoRXdrX1Jlc291cmNlOjpjcmVhdGUpOgorICAgICAgICAoRXdrX1Jlc291cmNl
OjpFd2tfUmVzb3VyY2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
cy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5nc19wcml2YXRlLmg6
CisgICAgICAgIChFd2tfU2V0dGluZ3M6OkV3a19TZXR0aW5ncyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3RleHRfY2hlY2tlcl9wcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3RvdWNoLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3VybF9yZXF1ZXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0X3ByaXZhdGUuaDoKKyAgICAgICAgKEV3a19VcmxfUmVxdWVzdDo6Y3JlYXRlKToKKyAgICAg
ICAgKEV3a19VcmxfUmVxdWVzdDo6RXdrX1VybF9SZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRlLmg6CisgICAgICAgIChFd2tfVXJsX1Jlc3BvbnNl
OjpjcmVhdGUpOgorICAgICAgICAoRXdrX1VybF9SZXNwb25zZTo6RXdrX1VybF9SZXNwb25zZSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3JlcXVlc3RfcHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KEV3a19WaWV3X1ByaXZhdGVfRGF0YTo6RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAg
KEV3a19WaWV3X1ByaXZhdGVfRGF0YTo6fkV3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAg
IChfZXdrX3ZpZXdfc21hcnRfYWRkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaDoK
KwogMjAxMi0xMC0xNyAgQnl1bmd3b28gTGVlICA8Ync4MC5sZWVAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW1dLMl0gRml4IGJ1aWxkIGJyZWFrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5jcHAKaW5kZXggMTNkNGRlNi4uOWQ4
ZmViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0
aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1Zp
YnJhdGlvblByb3ZpZGVyLmNwcApAQCAtMzYsMTUgKzM2LDE1IEBACiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogLyoqCi0gKiBcc3RydWN0ICBfRXdrX1ZpYnJhdGlvbl9DbGllbnQKKyAqIFxz
dHJ1Y3QgIEV3a19WaWJyYXRpb25fQ2xpZW50CiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgdmli
cmF0aW9uIGNsaWVudCBjYWxsYmFja3MuCiAgKi8KLXN0cnVjdCBfRXdrX1ZpYnJhdGlvbl9DbGll
bnQgeworc3RydWN0IEV3a19WaWJyYXRpb25fQ2xpZW50IHsKICAgICBFd2tfVmlicmF0aW9uX0Ns
aWVudF9WaWJyYXRlX0NiIHZpYnJhdGU7CiAgICAgRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0
aW9uX0NhbmNlbF9DYiBjYW5jZWxWaWJyYXRpb247CiAgICAgdm9pZCogdXNlckRhdGE7CiAKLSAg
ICBfRXdrX1ZpYnJhdGlvbl9DbGllbnQoRXdrX1ZpYnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2
aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZp
YnJhdGlvbiwgdm9pZCogdXNlckRhdGEpCisgICAgRXdrX1ZpYnJhdGlvbl9DbGllbnQoRXdrX1Zp
YnJhdGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9W
aWJyYXRpb25fQ2FuY2VsX0NiIGNhbmNlbFZpYnJhdGlvbiwgdm9pZCogdXNlckRhdGEpCiAgICAg
ICAgIDogdmlicmF0ZSh2aWJyYXRlKQogICAgICAgICAsIGNhbmNlbFZpYnJhdGlvbihjYW5jZWxW
aWJyYXRpb24pCiAgICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9WaWJyYXRpb25Qcm92aWRlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvVmlicmF0aW9uUHJvdmlkZXIuaAppbmRleCA2YjJk
YjRlLi5mYWRkNThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9WaWJyYXRpb25Qcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL1ZpYnJhdGlvblByb3ZpZGVyLmgKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKLXR5cGVkZWYgc3Ry
dWN0IF9Fd2tfVmlicmF0aW9uX0NsaWVudCBFd2tfVmlicmF0aW9uX0NsaWVudDsKK3R5cGVkZWYg
c3RydWN0IEV3a19WaWJyYXRpb25fQ2xpZW50IEV3a19WaWJyYXRpb25fQ2xpZW50OwogCiBjbGFz
cyBWaWJyYXRpb25Qcm92aWRlciA6IHB1YmxpYyBSZWZDb3VudGVkPFZpYnJhdGlvblByb3ZpZGVy
PiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfYmFja19mb3J3YXJkX2xpc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdC5oCmluZGV4IGM1ODQ3NjEuLjA5ZGJjNWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRf
bGlzdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2Zv
cndhcmRfbGlzdC5oCkBAIC0zNyw4ICszNyw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0v
KiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19CYWNrX0ZvcndhcmRfTGlzdCAqLwotdHlw
ZWRlZiBzdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdCBFd2tfQmFja19Gb3J3YXJkX0xpc3Q7
CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0JhY2tfRm9yd2FyZF9MaXN0ICovCit0
eXBlZGVmIHN0cnVjdCBFd2tfQmFja19Gb3J3YXJkX0xpc3QgRXdrX0JhY2tfRm9yd2FyZF9MaXN0
OwogCiAvKioKICAqIFJldHVybnMgdGhlIGN1cnJlbnQgaXRlbSBpbiB0aGUgQGEgbGlzdC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2Zvcndh
cmRfbGlzdF9pdGVtLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFj
a19mb3J3YXJkX2xpc3RfaXRlbS5oCmluZGV4IDNjNTQ0ZjMuLjhkMDcyNGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9p
dGVtLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW0uaApAQCAtMzcsOCArMzcsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYK
IAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRl
bSAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtIEV3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtOworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19CYWNr
X0ZvcndhcmRfTGlzdF9JdGVtICovCit0eXBlZGVmIHN0cnVjdCBFd2tfQmFja19Gb3J3YXJkX0xp
c3RfSXRlbSBFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbTsKIAogLyoqCiAgKiBJbmNyZWFzZXMg
dGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1f
cHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9y
d2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCmluZGV4IDI1NDA3NGEuLmEzMDBhMzA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xp
c3RfaXRlbV9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2JhY2tfZm9yd2FyZF9saXN0X2l0ZW1fcHJpdmF0ZS5oCkBAIC0zMiwyNyArMzIsMjUgQEAK
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiAvKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfQmFj
a19Gb3J3YXJkX0xpc3QKKyAqIFxzdHJ1Y3QgIEV3a19CYWNrX0ZvcndhcmRfTGlzdAogICogQGJy
aWVmICAgQ29udGFpbnMgdGhlIEJhY2sgRm9yd2FyZCBMaXN0IGRhdGEuCiAgKi8KLWNsYXNzIF9F
d2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfQmFja19G
b3J3YXJkX0xpc3RfSXRlbT4geworY2xhc3MgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0gOiBw
dWJsaWMgUmVmQ291bnRlZDxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gewogcHVibGljOgog
ICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZj4gd2tJdGVtOwogICAgIG11
dGFibGUgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKICAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0
cmluZyB0aXRsZTsKICAgICBtdXRhYmxlIFdLRWluYVNoYXJlZFN0cmluZyBvcmlnaW5hbFVSTDsK
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gY3Jl
YXRlKFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBpdGVtUmVmKQorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEV3a19CYWNrX0ZvcndhcmRfTGlzdF9JdGVtPiBjcmVhdGUoV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmIGl0ZW1SZWYpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IF9Fd2tf
QmFja19Gb3J3YXJkX0xpc3RfSXRlbShpdGVtUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0oaXRlbVJlZikpOwogICAgIH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW0oV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCisgICAgZXhwbGljaXQgRXdrX0JhY2tfRm9yd2FyZF9M
aXN0X0l0ZW0oV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmIGl0ZW1SZWYpCiAgICAgICAgIDogd2tJ
dGVtKGl0ZW1SZWYpCiAgICAgeyB9CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfRXdrX0JhY2tfRm9y
d2FyZF9MaXN0X0l0ZW0gRXdrX0JhY2tfRm9yd2FyZF9MaXN0X0l0ZW07Ci0KICNlbmRpZiAvLyBl
d2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2JhY2tfZm9yd2FyZF9saXN0X3ByaXZh
dGUuaAppbmRleCAyNmIwNTBkLi5mY2YyNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfYmFja19mb3J3YXJkX2xpc3RfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19iYWNrX2ZvcndhcmRfbGlzdF9wcml2
YXRlLmgKQEAgLTMyLDIyICszMiwyMCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19CYWNrX0Zvcndh
cmRfTGlzdCBFd2tfQmFja19Gb3J3YXJkX0xpc3Q7Ci0KIHR5cGVkZWYgSGFzaE1hcDxXS0JhY2tG
b3J3YXJkTGlzdEl0ZW1SZWYsIFJlZlB0cjxFd2tfQmFja19Gb3J3YXJkX0xpc3RfSXRlbT4gPiBJ
dGVtc01hcDsKIAotY2xhc3MgX0V3a19CYWNrX0ZvcndhcmRfTGlzdCB7CitjbGFzcyBFd2tfQmFj
a19Gb3J3YXJkX0xpc3QgewogcHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLQmFja0ZvcndhcmRM
aXN0UmVmPiB3a0xpc3Q7CiAgICAgbXV0YWJsZSBJdGVtc01hcCB3cmFwcGVyQ2FjaGU7CiAKLSAg
ICBzdGF0aWMgUGFzc093blB0cjxfRXdrX0JhY2tfRm9yd2FyZF9MaXN0PiBjcmVhdGUoV0tCYWNr
Rm9yd2FyZExpc3RSZWYgbGlzdFJlZikKKyAgICBzdGF0aWMgUGFzc093blB0cjxFd2tfQmFja19G
b3J3YXJkX0xpc3Q+IGNyZWF0ZShXS0JhY2tGb3J3YXJkTGlzdFJlZiBsaXN0UmVmKQogICAgIHsK
LSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBfRXdrX0JhY2tfRm9yd2FyZF9MaXN0KGxpc3RS
ZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tfQmFja19Gb3J3YXJkX0xpc3Qo
bGlzdFJlZikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0JhY2tfRm9y
d2FyZF9MaXN0KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCisgICAgZXhwbGljaXQgRXdr
X0JhY2tfRm9yd2FyZF9MaXN0KFdLQmFja0ZvcndhcmRMaXN0UmVmIGxpc3RSZWYpCiAgICAgICAg
IDogd2tMaXN0KGxpc3RSZWYpCiAgICAgeyB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IGYwMDJhOTkuLmI3NjE3ZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHAK
QEAgLTUzLDI0ICs1MywyNCBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCi1zdHJ1Y3QgX0V3a19VcmxfU2NoZW1lX0hhbmRsZXIgeworc3RydWN0
IEV3a19VcmxfU2NoZW1lX0hhbmRsZXIgewogICAgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2Ig
Y2FsbGJhY2s7CiAgICAgdm9pZCogdXNlckRhdGE7CiAKLSAgICBfRXdrX1VybF9TY2hlbWVfSGFu
ZGxlcigpCisgICAgRXdrX1VybF9TY2hlbWVfSGFuZGxlcigpCiAgICAgICAgIDogY2FsbGJhY2so
MCkKICAgICAgICAgLCB1c2VyRGF0YSgwKQogICAgIHsgfQogCi0gICAgX0V3a19VcmxfU2NoZW1l
X0hhbmRsZXIoRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9DYiBjYWxsYmFjaywgdm9pZCogdXNlckRh
dGEpCisgICAgRXdrX1VybF9TY2hlbWVfSGFuZGxlcihFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0Ni
IGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSkKICAgICAgICAgOiBjYWxsYmFjayhjYWxsYmFjaykK
ICAgICAgICAgLCB1c2VyRGF0YSh1c2VyRGF0YSkKICAgICB7IH0KIH07CiAKLXR5cGVkZWYgSGFz
aE1hcDxTdHJpbmcsIF9Fd2tfVXJsX1NjaGVtZV9IYW5kbGVyPiBVUkxTY2hlbWVIYW5kbGVyTWFw
OwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgRXdrX1VybF9TY2hlbWVfSGFuZGxlcj4gVVJMU2No
ZW1lSGFuZGxlck1hcDsKIAotc3RydWN0IF9Fd2tfQ29udGV4dCB7CitzdHJ1Y3QgRXdrX0NvbnRl
eHQgewogICAgIHVuc2lnbmVkIF9fcmVmOyAvKio8IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhl
IG9iamVjdCAqLwogICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dDsKIApAQCAt
OTIsNyArOTIsNyBAQCBzdHJ1Y3QgX0V3a19Db250ZXh0IHsKIAogICAgIEV3a19Db250ZXh0X0hp
c3RvcnlfQ2xpZW50IGhpc3RvcnlDbGllbnQ7CiAKLSAgICBfRXdrX0NvbnRleHQoV0tSZXRhaW5Q
dHI8V0tDb250ZXh0UmVmPiBjb250ZXh0UmVmKQorICAgIEV3a19Db250ZXh0KFdLUmV0YWluUHRy
PFdLQ29udGV4dFJlZj4gY29udGV4dFJlZikKICAgICAgICAgOiBfX3JlZigxKQogICAgICAgICAs
IGNvbnRleHQoY29udGV4dFJlZikKICAgICAgICAgLCByZXF1ZXN0TWFuYWdlcihXS0NvbnRleHRH
ZXRTb3VwUmVxdWVzdE1hbmFnZXIoY29udGV4dFJlZi5nZXQoKSkpCkBAIC0yNTcsNyArMjU3LDcg
QEAgdm9pZCBld2tfY29udGV4dF91cmxfc2NoZW1lX3JlcXVlc3RfcmVjZWl2ZWQoRXdrX0NvbnRl
eHQqIGV3a0NvbnRleHQsIEV3a19VcmxfU2MKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVS
Tihld2tDb250ZXh0KTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzY2hlbWVSZXF1
ZXN0KTsKIAotICAgIF9Fd2tfVXJsX1NjaGVtZV9IYW5kbGVyIGhhbmRsZXIgPSBld2tDb250ZXh0
LT51cmxTY2hlbWVIYW5kbGVycy5nZXQoZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9zY2hlbWVfZ2V0
KHNjaGVtZVJlcXVlc3QpKTsKKyAgICBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyIGhhbmRsZXIgPSBl
d2tDb250ZXh0LT51cmxTY2hlbWVIYW5kbGVycy5nZXQoZXdrX3VybF9zY2hlbWVfcmVxdWVzdF9z
Y2hlbWVfZ2V0KHNjaGVtZVJlcXVlc3QpKTsKICAgICBpZiAoIWhhbmRsZXIuY2FsbGJhY2spCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMjkzLDcgKzI5Myw3IEBAIEVpbmFfQm9vbCBld2tfY29udGV4
dF91cmxfc2NoZW1lX3JlZ2lzdGVyKEV3a19Db250ZXh0KiBld2tDb250ZXh0LCBjb25zdCBjaGFy
KiBzCiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKHNjaGVtZSwgZmFsc2UpOwog
ICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChjYWxsYmFjaywgZmFsc2UpOwogCi0g
ICAgZXdrQ29udGV4dC0+dXJsU2NoZW1lSGFuZGxlcnMuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2No
ZW1lKSwgX0V3a19VcmxfU2NoZW1lX0hhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRhKSk7CisgICAg
ZXdrQ29udGV4dC0+dXJsU2NoZW1lSGFuZGxlcnMuc2V0KFN0cmluZzo6ZnJvbVVURjgoc2NoZW1l
KSwgRXdrX1VybF9TY2hlbWVfSGFuZGxlcihjYWxsYmFjaywgdXNlckRhdGEpKTsKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gd2tTY2hlbWUoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoc2NoZW1lKSk7CiAgICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJSZWdpc3RlclVS
SVNjaGVtZShld2tDb250ZXh0LT5yZXF1ZXN0TWFuYWdlci5nZXQoKSwgd2tTY2hlbWUuZ2V0KCkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29u
dGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuaApp
bmRleCAwY2I0MTMzLi5mNmI4YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmgKQEAgLTQ3LDE1ICs0NywxNSBAQAogZXh0ZXJuICJDIiB7CiAj
ZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfQ29udGV4dC4gKi8K
LXR5cGVkZWYgc3RydWN0IF9Fd2tfQ29udGV4dCBFd2tfQ29udGV4dDsKKy8qKiBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBAYSBFd2tfQ29udGV4dC4gKi8KK3R5cGVkZWYgc3RydWN0IEV3a19Db250
ZXh0IEV3a19Db250ZXh0OwogCiAvKioKLSAqIFxlbnVtICAgIF9Fd2tfQ2FjaGVfTW9kZWwKKyAq
IFxlbnVtICAgIEV3a19DYWNoZV9Nb2RlbAogICoKICAqIEBicmllZiAgIENvbnRhaW5zIG9wdGlv
biBmb3IgY2FjaGUgbW9kZWwKICAqLwotZW51bSBfRXdrX0NhY2hlX01vZGVsIHsKK2VudW0gRXdr
X0NhY2hlX01vZGVsIHsKICAgICAvLy8gVXNlIHRoZSBzbWFsbGVzdCBjYWNoZSBjYXBhY2l0eS4K
ICAgICBFV0tfQ0FDSEVfTU9ERUxfRE9DVU1FTlRfVklFV0VSLAogICAgIC8vLyBVc2UgYmlnZ2Vy
IGNhY2hlIGNhcGFjaXR5IHRoYW4gRVdLX0NBQ0hFX01PREVMX0RPQ1VNRU5UX1ZJRVdFUi4KQEAg
LTY0LDggKzY0LDggQEAgZW51bSBfRXdrX0NhY2hlX01vZGVsIHsKICAgICBFV0tfQ0FDSEVfTU9E
RUxfUFJJTUFSWV9XRUJCUk9XU0VSCiB9OwogCi0vLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3Ig
dGhlIF9Fd2tfQ2FjaGVfTW9kZWwuCi10eXBlZGVmIGVudW0gX0V3a19DYWNoZV9Nb2RlbCBFd2tf
Q2FjaGVfTW9kZWw7CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIEV3a19DYWNoZV9N
b2RlbC4KK3R5cGVkZWYgZW51bSBFd2tfQ2FjaGVfTW9kZWwgRXdrX0NhY2hlX01vZGVsOwogCiAv
KioKICAqIEB0eXBlZGVmIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgRXdrX1VybF9TY2hlbWVf
UmVxdWVzdF9DYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9wcml2YXRlLmgKaW5k
ZXggZjcwMTdhOC4uZTA1NmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50X3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnRf
cHJpdmF0ZS5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIGV3a19jb250ZXh0X2Rvd25sb2Fk
X2NsaWVudF9wcml2YXRlX2gKICNkZWZpbmUgZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50X3By
aXZhdGVfaAogCi10eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7Cit0eXBl
ZGVmIHN0cnVjdCBFd2tfQ29udGV4dCBFd2tfQ29udGV4dDsKIAogdm9pZCBld2tfY29udGV4dF9k
b3dubG9hZF9jbGllbnRfYXR0YWNoKEV3a19Db250ZXh0Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hp
c3RvcnlfY2xpZW50X3ByaXZhdGUuaAppbmRleCBkOTUxOGNlLi4wYjQ3MGRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2Ns
aWVudF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHRfaGlzdG9yeV9jbGllbnRfcHJpdmF0ZS5oCkBAIC0yOCw3ICsyOCw3IEBACiAKICNp
bmNsdWRlICJld2tfY29udGV4dC5oIgogCi1zdHJ1Y3QgX0V3a19Db250ZXh0X0hpc3RvcnlfQ2xp
ZW50IHsKK3N0cnVjdCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudCB7CiAgICAgdm9pZCogdXNl
cl9kYXRhOwogICAgIEV3a19IaXN0b3J5X05hdmlnYXRpb25fQ2IgbmF2aWdhdGVfZnVuYzsKICAg
ICBFd2tfSGlzdG9yeV9DbGllbnRfUmVkaXJlY3Rpb25fQ2IgY2xpZW50X3JlZGlyZWN0X2Z1bmM7
CkBAIC0zNyw4ICszNyw2IEBAIHN0cnVjdCBfRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQgewog
ICAgIEV3a19IaXN0b3J5X1BvcHVsYXRlX1Zpc2l0ZWRfTGlua3NfQ2IgcG9wdWxhdGVfdmlzaXRl
ZF9saW5rc19mdW5jOwogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0X0hpc3Rvcnlf
Q2xpZW50IEV3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50OwotCiB2b2lkIGV3a19jb250ZXh0X2hp
c3RvcnlfY2xpZW50X2F0dGFjaChFd2tfQ29udGV4dCopOwogCiAjZW5kaWYgLy8gZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnRfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKaW5kZXggMjlmNzRhMS4uNzA1
NzM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19jb250ZXh0X3ByaXZhdGUuaApAQCAtMjIsMTAgKzIyLDEwIEBACiAKICNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgogCi10eXBlZGVmIHN0cnVjdCBfRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7
Ci10eXBlZGVmIHN0cnVjdCBfRXdrX0Rvd25sb2FkX0pvYiBFd2tfRG93bmxvYWRfSm9iOwordHlw
ZWRlZiBzdHJ1Y3QgRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7Cit0eXBlZGVmIHN0cnVjdCBFd2tf
RG93bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7CiB0eXBlZGVmIHN0cnVjdCBFd2tfVXJsX1Nj
aGVtZV9SZXF1ZXN0IEV3a19VcmxfU2NoZW1lX1JlcXVlc3Q7Ci10eXBlZGVmIHN0cnVjdCBfRXdr
X0NvbnRleHRfSGlzdG9yeV9DbGllbnQgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQ7Cit0eXBl
ZGVmIHN0cnVjdCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudCBFd2tfQ29udGV4dF9IaXN0b3J5
X0NsaWVudDsKIAogV0tDb250ZXh0UmVmIGV3a19jb250ZXh0X1dLQ29udGV4dF9nZXQoY29uc3Qg
RXdrX0NvbnRleHQqKTsKIEV3a19Db250ZXh0KiBld2tfY29udGV4dF9uZXdfZnJvbV9XS0NvbnRl
eHQoV0tDb250ZXh0UmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnRfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2Vy
X2NsaWVudF9wcml2YXRlLmgKaW5kZXggNjg5YmJmNi4uMzExMzQzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2Vy
X2NsaWVudF9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudF9wcml2YXRlLmgKQEAgLTI2LDcgKzI2
LDcgQEAKICNpZm5kZWYgZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudF9wcml2YXRl
X2gKICNkZWZpbmUgZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudF9wcml2YXRlX2gK
IAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db250ZXh0IEV3a19Db250ZXh0OwordHlwZWRlZiBzdHJ1
Y3QgRXdrX0NvbnRleHQgRXdrX0NvbnRleHQ7CiAKIHZvaWQgZXdrX2NvbnRleHRfcmVxdWVzdF9t
YW5hZ2VyX2NsaWVudF9hdHRhY2goRXdrX0NvbnRleHQqIGNvbnRleHQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyLmNw
cAppbmRleCA1MmI3Y2E3Li4zY2JmN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogc3RhdGljIHZvaWQgY29va2llc0RpZENoYW5n
ZShXS0Nvb2tpZU1hbmFnZXJSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi1fRXdrX0Nv
b2tpZV9NYW5hZ2VyOjpfRXdrX0Nvb2tpZV9NYW5hZ2VyKFdLQ29va2llTWFuYWdlclJlZiBjb29r
aWVNYW5hZ2VyUmVmKQorRXdrX0Nvb2tpZV9NYW5hZ2VyOjpFd2tfQ29va2llX01hbmFnZXIoV0tD
b29raWVNYW5hZ2VyUmVmIGNvb2tpZU1hbmFnZXJSZWYpCiAgICAgOiB3a0Nvb2tpZU1hbmFnZXIo
Y29va2llTWFuYWdlclJlZikKIHsKICAgICBXS0Nvb2tpZU1hbmFnZXJDbGllbnQgd2tDb29raWVN
YW5hZ2VyQ2xpZW50ID0gewpAQCAtNTMsNyArNTMsNyBAQCBfRXdrX0Nvb2tpZV9NYW5hZ2VyOjpf
RXdrX0Nvb2tpZV9NYW5hZ2VyKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQog
ICAgIFdLQ29va2llTWFuYWdlclNldENsaWVudCh3a0Nvb2tpZU1hbmFnZXIuZ2V0KCksICZ3a0Nv
b2tpZU1hbmFnZXJDbGllbnQpOwogfQogCi1fRXdrX0Nvb2tpZV9NYW5hZ2VyOjp+X0V3a19Db29r
aWVfTWFuYWdlcigpCitFd2tfQ29va2llX01hbmFnZXI6On5Fd2tfQ29va2llX01hbmFnZXIoKQog
ewogICAgIGlmIChjaGFuZ2VIYW5kbGVyLmNhbGxiYWNrKQogICAgICAgICBXS0Nvb2tpZU1hbmFn
ZXJTdG9wT2JzZXJ2aW5nQ29va2llQ2hhbmdlcyh3a0Nvb2tpZU1hbmFnZXIuZ2V0KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFn
ZXIuaAppbmRleCBjMzFiOTAwLi4wZDJhNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXIuaApAQCAtMzgsMTUgKzM4LDE1
IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3Ig
X0V3a19Db29raWVfTWFuYWdlciAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Db29raWVfTWFuYWdl
ciBFd2tfQ29va2llX01hbmFnZXI7CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0Nv
b2tpZV9NYW5hZ2VyICovCit0eXBlZGVmIHN0cnVjdCBFd2tfQ29va2llX01hbmFnZXIgRXdrX0Nv
b2tpZV9NYW5hZ2VyOwogCiAvKioKLSAqIFxlbnVtICAgIF9Fd2tfQ29va2llX0FjY2VwdF9Qb2xp
Y3kKKyAqIFxlbnVtICAgIEV3a19Db29raWVfQWNjZXB0X1BvbGljeQogICoKICAqIEBicmllZiAg
IENvbnRhaW5zIGFjY2VwdCBwb2xpY2llcyBmb3IgdGhlIGNvb2tpZXMuCiAgKi8KLWVudW0gX0V3
a19Db29raWVfQWNjZXB0X1BvbGljeSB7CitlbnVtIEV3a19Db29raWVfQWNjZXB0X1BvbGljeSB7
CiAgICAgLy8vIEFjY2VwdHMgZXZlcnkgY29va2llIHNlbnQgZnJvbSBhbnkgcGFnZS4KICAgICBF
V0tfQ09PS0lFX0FDQ0VQVF9QT0xJQ1lfQUxXQVlTLAogICAgIC8vLyBSZWplY3RzIGFsbCBjb29r
aWVzLgpAQCAtNTUsMjMgKzU1LDIzIEBAIGVudW0gX0V3a19Db29raWVfQWNjZXB0X1BvbGljeSB7
CiAgICAgRVdLX0NPT0tJRV9BQ0NFUFRfUE9MSUNZX05PX1RISVJEX1BBUlRZCiB9OwogCi0vLy8g
Q3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIF9Fd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kuCi10
eXBlZGVmIGVudW0gX0V3a19Db29raWVfQWNjZXB0X1BvbGljeSBFd2tfQ29va2llX0FjY2VwdF9Q
b2xpY3k7CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgdGhlIEV3a19Db29raWVfQWNjZXB0
X1BvbGljeS4KK3R5cGVkZWYgZW51bSBFd2tfQ29va2llX0FjY2VwdF9Qb2xpY3kgRXdrX0Nvb2tp
ZV9BY2NlcHRfUG9saWN5OwogCiAvKioKLSAqIFxlbnVtICAgIF9Fd2tfQ29va2llX1BlcnNpc3Rl
bnRfU3RvcmFnZQorICogXGVudW0gICAgRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2UKICAq
CiAgKiBAYnJpZWYgICBFbnVtIHZhbHVlcyB0byBkZW5vdGUgY29va2llcyBwZXJzaXN0ZW50IHN0
b3JhZ2UgdHlwZS4KICAqLwotZW51bSBfRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2Ugewor
ZW51bSBFd2tfQ29va2llX1BlcnNpc3RlbnRfU3RvcmFnZSB7CiAgICAgLy8vIENvb2tpZXMgYXJl
IHN0b3JlZCBpbiBhIHRleHQgZmlsZSBpbiB0aGUgTW96aWxsYSAiY29va2llcy50eHQiIGZvcm1h
dC4KICAgICBFV0tfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9URVhULAogICAgIC8vLyBDb29r
aWVzIGFyZSBzdG9yZWQgaW4gYSBTUUxpdGUgZmlsZSBpbiB0aGUgY3VycmVudCBNb3ppbGxhIGZv
cm1hdC4KICAgICBFV0tfQ09PS0lFX1BFUlNJU1RFTlRfU1RPUkFHRV9TUUxJVEUKIH07CiAKLS8v
LyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciB0aGUgX0V3a19Db29raWVfUGVyc2lzdGVudF9TdG9y
YWdlLgotdHlwZWRlZiBlbnVtIF9Fd2tfQ29va2llX1BlcnNpc3RlbnRfU3RvcmFnZSBFd2tfQ29v
a2llX1BlcnNpc3RlbnRfU3RvcmFnZTsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciB0aGUg
RXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2UuCit0eXBlZGVmIGVudW0gRXdrX0Nvb2tpZV9Q
ZXJzaXN0ZW50X1N0b3JhZ2UgRXdrX0Nvb2tpZV9QZXJzaXN0ZW50X1N0b3JhZ2U7CiAKIC8qKgog
ICogQHR5cGVkZWYgRXdrX0Nvb2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IgRXdrX0Nv
b2tpZV9NYW5hZ2VyX0FzeW5jX1BvbGljeV9HZXRfQ2IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlcl9wcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29va2llX21hbmFnZXJfcHJpdmF0ZS5o
CmluZGV4IDY5MTMyMmIuLmI3NTc5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb29raWVfbWFuYWdlcl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nvb2tpZV9tYW5hZ2VyX3ByaXZhdGUuaApAQCAt
NDcsMjMgKzQ3LDIwIEBAIHN0cnVjdCBDb29raWVfQ2hhbmdlX0hhbmRsZXIgewogICAgIHsgfQog
fTsKIAotCi10eXBlZGVmIHN0cnVjdCBfRXdrX0Nvb2tpZV9NYW5hZ2VyIEV3a19Db29raWVfTWFu
YWdlcjsKLQotY2xhc3MgX0V3a19Db29raWVfTWFuYWdlciB7CitjbGFzcyBFd2tfQ29va2llX01h
bmFnZXIgewogcHVibGljOgogICAgIFdLUmV0YWluUHRyPFdLQ29va2llTWFuYWdlclJlZj4gd2tD
b29raWVNYW5hZ2VyOwogICAgIENvb2tpZV9DaGFuZ2VfSGFuZGxlciBjaGFuZ2VIYW5kbGVyOwog
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8X0V3a19Db29raWVfTWFuYWdlcj4gY3JlYXRlKFdLQ29v
a2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2VyUmVmKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPEV3
a19Db29raWVfTWFuYWdlcj4gY3JlYXRlKFdLQ29va2llTWFuYWdlclJlZiBjb29raWVNYW5hZ2Vy
UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBfRXdrX0Nvb2tpZV9NYW5h
Z2VyKGNvb2tpZU1hbmFnZXJSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFd2tf
Q29va2llX01hbmFnZXIoY29va2llTWFuYWdlclJlZikpOwogICAgIH0KIAotICAgIH5fRXdrX0Nv
b2tpZV9NYW5hZ2VyKCk7CisgICAgfkV3a19Db29raWVfTWFuYWdlcigpOwogCiBwcml2YXRlOgot
ICAgIGV4cGxpY2l0IF9Fd2tfQ29va2llX01hbmFnZXIoV0tDb29raWVNYW5hZ2VyUmVmIGNvb2tp
ZU1hbmFnZXJSZWYpOworICAgIGV4cGxpY2l0IEV3a19Db29raWVfTWFuYWdlcihXS0Nvb2tpZU1h
bmFnZXJSZWYgY29va2llTWFuYWdlclJlZik7CiB9OwogCiAjZW5kaWYgLy8gZXdrX2Nvb2tpZV9t
YW5hZ2VyX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Rvd25sb2FkX2pvYi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Rvd25sb2FkX2pvYi5oCmluZGV4IDM4ODI3NmMuLjBjYWQ1YzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19kb3dubG9hZF9qb2IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZG93bmxvYWRfam9iLmgKQEAg
LTQzLDExICs0MywxMSBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0
eXBlIG5hbWUgZm9yIF9Fd2tfRG93bmxvYWRfSm9iX0pvYiAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3
a19Eb3dubG9hZF9Kb2IgRXdrX0Rvd25sb2FkX0pvYjsKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1l
IGZvciBFd2tfRG93bmxvYWRfSm9iX0pvYiAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX0Rvd25sb2Fk
X0pvYiBFd2tfRG93bmxvYWRfSm9iOwogCiAvLy8gRGVmaW5lcyB0aGUgcG9zc2libGUgc3RhdGVz
IG9mIGEgZG93bmxvYWQuCi1lbnVtIF9Fd2tfRG93bmxvYWRfSm9iX1N0YXRlIHsKK2VudW0gRXdr
X0Rvd25sb2FkX0pvYl9TdGF0ZSB7CiAgICAgLy8vIFRoZSBkb3dubG9hZCBzdGF0ZSBpcyB1bmtu
b3duCiAgICAgRVdLX0RPV05MT0FEX0pPQl9TVEFURV9VTktOT1dOID0gLTEsCiAgICAgLy8vIFRo
ZSBkb3dubG9hZCBoYXMgbm90IHN0YXJ0ZWQgeWV0CkBAIC02Myw4ICs2Myw4IEBAIGVudW0gX0V3
a19Eb3dubG9hZF9Kb2JfU3RhdGUgewogICAgIC8vLyBUaGUgZG93bmxvYWQgY29tcGxldGVkIHN1
Y2Nlc3NmdWxseS4KICAgICBFV0tfRE9XTkxPQURfSk9CX1NUQVRFX0ZJTklTSEVECiB9OwotLy8v
IENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEBhIF9Fd2tfRG93bmxvYWRfSm9iX1N0YXRlLgotdHlw
ZWRlZiBlbnVtIF9Fd2tfRG93bmxvYWRfSm9iX1N0YXRlIEV3a19Eb3dubG9hZF9Kb2JfU3RhdGU7
CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX0Rvd25sb2FkX0pvYl9TdGF0ZS4K
K3R5cGVkZWYgZW51bSBFd2tfRG93bmxvYWRfSm9iX1N0YXRlIEV3a19Eb3dubG9hZF9Kb2JfU3Rh
dGU7CiAKIC8qKgogICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVu
IG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19kb3dubG9hZF9qb2JfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX2Rvd25sb2FkX2pvYl9wcml2YXRlLmgKaW5kZXggYjdmYjU5Yy4uNWZhYzQ3ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rvd25sb2FkX2pv
Yl9wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Rv
d25sb2FkX2pvYl9wcml2YXRlLmgKQEAgLTM4LDEwICszOCwxMCBAQCBjbGFzcyBEb3dubG9hZFBy
b3h5OwogfQogCiAvKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfRG93bmxvYWRfSm9iCisgKiBcc3RydWN0
ICBFd2tfRG93bmxvYWRfSm9iCiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgZG93bmxvYWQgZGF0
YS4KICAqLwotY2xhc3MgX0V3a19Eb3dubG9hZF9Kb2IgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdr
X0Rvd25sb2FkX0pvYj4geworY2xhc3MgRXdrX0Rvd25sb2FkX0pvYiA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEV3a19Eb3dubG9hZF9Kb2I+IHsKIHB1YmxpYzoKICAgICBXZWJLaXQ6OkRvd25sb2FkUHJv
eHkqIGRvd25sb2FkUHJveHk7CiAgICAgRXZhc19PYmplY3QqIHZpZXc7CkBAIC01NCwxMyArNTQs
MTMgQEAgcHVibGljOgogICAgIFdLRWluYVNoYXJlZFN0cmluZyBkZXN0aW5hdGlvbjsKICAgICBX
S0VpbmFTaGFyZWRTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWU7CiAKLSAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxfRXdrX0Rvd25sb2FkX0pvYj4gY3JlYXRlKFdlYktpdDo6RG93bmxvYWRQcm94eSogZG93
bmxvYWQsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19E
b3dubG9hZF9Kb2I+IGNyZWF0ZShXZWJLaXQ6OkRvd25sb2FkUHJveHkqIGRvd25sb2FkLCBFdmFz
X09iamVjdCogZXdrVmlldykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3
a19Eb3dubG9hZF9Kb2IoZG93bmxvYWQsIGV3a1ZpZXcpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBFd2tfRG93bmxvYWRfSm9iKGRvd25sb2FkLCBld2tWaWV3KSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIF9Fd2tfRG93bmxvYWRfSm9iKFdlYktpdDo6RG93bmxvYWRQcm94eSogZG93
bmxvYWQsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQorICAgIEV3a19Eb3dubG9hZF9Kb2IoV2ViS2l0
OjpEb3dubG9hZFByb3h5KiBkb3dubG9hZCwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgICAg
IDogZG93bmxvYWRQcm94eShkb3dubG9hZCkKICAgICAgICAgLCB2aWV3KGV3a1ZpZXcpCiAgICAg
ICAgICwgc3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9OT1RfU1RBUlRFRCkKQEAgLTcwLDgg
KzcwLDcgQEAgcHJpdmF0ZToKICAgICB7IH0KIH07CiAKLXR5cGVkZWYgc3RydWN0IF9Fd2tfRG93
bmxvYWRfSm9iIEV3a19Eb3dubG9hZF9Kb2I7Ci10eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9yIEV3
a19FcnJvcjsKK3R5cGVkZWYgc3RydWN0IEV3a19FcnJvciBFd2tfRXJyb3I7CiAKIHVpbnQ2NF90
IGV3a19kb3dubG9hZF9qb2JfaWRfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9Kb2IqKTsKIEV2YXNf
T2JqZWN0KiBld2tfZG93bmxvYWRfam9iX3ZpZXdfZ2V0KGNvbnN0IEV3a19Eb3dubG9hZF9Kb2Iq
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuY3BwCmlu
ZGV4IGZlZDhlMmMuLjViY2ZkODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19lcnJvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX2Vycm9yLmNwcApAQCAtMzYsNyArMzYsNyBAQAogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1fRXdrX0Vycm9yOjpfRXdrX0Vycm9y
KFdLRXJyb3JSZWYgZXJyb3JSZWYpCitFd2tfRXJyb3I6OkV3a19FcnJvcihXS0Vycm9yUmVmIGVy
cm9yUmVmKQogICAgIDogd2tFcnJvcihlcnJvclJlZikKICAgICAsIHVybChBZG9wdFdLLCBXS0Vy
cm9yQ29weUZhaWxpbmdVUkwoZXJyb3JSZWYpKQogICAgICwgZGVzY3JpcHRpb24oQWRvcHRXSywg
V0tFcnJvckNvcHlMb2NhbGl6ZWREZXNjcmlwdGlvbihlcnJvclJlZikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3IuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5oCmluZGV4IDAxMjE0ZDEuLmQxNTE1NDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19lcnJvci5oCkBAIC0z
OCw3ICszOCw3IEBAIGV4dGVybiAiQyIgewogI2VuZGlmCiAKIC8qKiBDcmVhdGVzIGEgdHlwZSBu
YW1lIGZvciBAYSBFd2tfRXJyb3IuICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX0Vycm9yIEV3a19F
cnJvcjsKK3R5cGVkZWYgc3RydWN0IEV3a19FcnJvciBFd2tfRXJyb3I7CiAKIC8vLyBDcmVhdGVz
IGEgdHlwZSBuYW1lIGZvciBFd2tfRXJyb3JfVHlwZS4KIHR5cGVkZWYgZW51bSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Vycm9yX3ByaXZhdGUuaApp
bmRleCA1YWU0NTdiLi5hMjZlMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfZXJyb3JfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19lcnJvcl9wcml2YXRlLmgKQEAgLTMxLDI0ICszMSwyMiBAQAogI2lu
Y2x1ZGUgPFdLUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAotdHlw
ZWRlZiBzdHJ1Y3QgX0V3a19FcnJvciBFd2tfRXJyb3I7Ci0KLWNsYXNzIF9Fd2tfRXJyb3Igewor
Y2xhc3MgRXdrX0Vycm9yIHsKIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0Vycm9yUmVmPiB3
a0Vycm9yOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7CiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIGRlc2NyaXB0aW9uOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8X0V3a19FcnJvcj4gY3Jl
YXRlKFdLRXJyb3JSZWYgZXJyb3JSZWYpCisgICAgc3RhdGljIFBhc3NPd25QdHI8RXdrX0Vycm9y
PiBjcmVhdGUoV0tFcnJvclJlZiBlcnJvclJlZikKICAgICB7CiAgICAgICAgIGlmICghZXJyb3JS
ZWYpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IF9Fd2tfRXJyb3IoZXJyb3JSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBFd2tfRXJyb3IoZXJyb3JSZWYpKTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
X0V3a19FcnJvcihXS0Vycm9yUmVmIGVycm9yUmVmKTsKKyAgICBleHBsaWNpdCBFd2tfRXJyb3Io
V0tFcnJvclJlZiBlcnJvclJlZik7CiB9OwogCiAjZW5kaWYgLy8gZXdrX2Vycm9yX3ByaXZhdGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmlj
b25fZGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zh
dmljb25fZGF0YWJhc2UuY3BwCmluZGV4IDZlNTJjMzUuLjllMDU5ZTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFz
ZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHN0YXRpYyB2
b2lkIGRpZENoYW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFz
ZSwgV0tVUkxSZWYgcGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiBzdGF0aWMgdm9p
ZCBpY29uRGF0YVJlYWR5Rm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2Us
IFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCi1fRXdrX0Zhdmlj
b25fRGF0YWJhc2U6Ol9Fd2tfRmF2aWNvbl9EYXRhYmFzZShXS0ljb25EYXRhYmFzZVJlZiBpY29u
RGF0YWJhc2VSZWYpCitFd2tfRmF2aWNvbl9EYXRhYmFzZTo6RXdrX0Zhdmljb25fRGF0YWJhc2Uo
V0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlUmVmKQogICAgIDogIHdrSWNvbkRhdGFiYXNl
KGljb25EYXRhYmFzZVJlZikKIHsKICAgICBXS0ljb25EYXRhYmFzZUNsaWVudCBpY29uRGF0YWJh
c2VDbGllbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfZmF2aWNvbl9kYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2Zhdmljb25fZGF0YWJhc2UuaAppbmRleCBjM2Q0NGU0Li44Y2VhZjViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFi
YXNlLmgKQEAgLTM3LDggKzM3LDggQEAKIGV4dGVybiAiQyIgewogI2VuZGlmCiAKLS8qKiBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciBAYSBfRXdrX0Zhdmljb25fRGF0YWJhc2UuICovCi10eXBlZGVm
IHN0cnVjdCBfRXdrX0Zhdmljb25fRGF0YWJhc2UgRXdrX0Zhdmljb25fRGF0YWJhc2U7CisvKiog
Q3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX0Zhdmljb25fRGF0YWJhc2UuICovCit0eXBl
ZGVmIHN0cnVjdCBFd2tfRmF2aWNvbl9EYXRhYmFzZSBFd2tfRmF2aWNvbl9EYXRhYmFzZTsKIAog
LyoqCiAgKiBAdHlwZWRlZiBFd2tfRmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYiBFd2tf
RmF2aWNvbl9EYXRhYmFzZV9JY29uX0NoYW5nZV9DYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0
ZS5oCmluZGV4IGM1ODg0MjQuLjlkOTA5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19mYXZpY29uX2RhdGFiYXNlX3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZmF2aWNvbl9kYXRhYmFzZV9wcml2YXRl
LmgKQEAgLTY5LDE5ICs2OSwxOSBAQCB0eXBlZGVmIEhhc2hNYXA8RXdrX0Zhdmljb25fRGF0YWJh
c2VfSWNvbl9DaGFuZ2VfQ2IsIEljb25DaGFuZ2VDYWxsYmFja0RhdGE+IENoYQogdHlwZWRlZiBW
ZWN0b3I8SWNvblJlcXVlc3RDYWxsYmFja0RhdGE+IFBlbmRpbmdJY29uUmVxdWVzdFZlY3RvcjsK
IHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcgLyogcGFnZVVSTCAqLywgUGVuZGluZ0ljb25SZXF1ZXN0
VmVjdG9yPiBQZW5kaW5nSWNvblJlcXVlc3RNYXA7CiAKLWNsYXNzIF9Fd2tfRmF2aWNvbl9EYXRh
YmFzZSB7CitjbGFzcyBFd2tfRmF2aWNvbl9EYXRhYmFzZSB7CiBwdWJsaWM6CiAgICAgV0tSZXRh
aW5QdHI8V0tJY29uRGF0YWJhc2VSZWY+IHdrSWNvbkRhdGFiYXNlOwogICAgIENoYW5nZUxpc3Rl
bmVyTWFwIGNoYW5nZUxpc3RlbmVyczsKICAgICBQZW5kaW5nSWNvblJlcXVlc3RNYXAgaWNvblJl
cXVlc3RzOwogCi0gICAgc3RhdGljIFBhc3NPd25QdHI8X0V3a19GYXZpY29uX0RhdGFiYXNlPiBj
cmVhdGUoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlUmVmKQorICAgIHN0YXRpYyBQYXNz
T3duUHRyPEV3a19GYXZpY29uX0RhdGFiYXNlPiBjcmVhdGUoV0tJY29uRGF0YWJhc2VSZWYgaWNv
bkRhdGFiYXNlUmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBfRXdrX0Zh
dmljb25fRGF0YWJhc2UoaWNvbkRhdGFiYXNlUmVmKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgRXdrX0Zhdmljb25fRGF0YWJhc2UoaWNvbkRhdGFiYXNlUmVmKSk7CiAgICAgfQogCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IF9Fd2tfRmF2aWNvbl9EYXRhYmFzZShXS0ljb25EYXRhYmFz
ZVJlZiBpY29uRGF0YWJhc2VSZWYpOworICAgIGV4cGxpY2l0IEV3a19GYXZpY29uX0RhdGFiYXNl
KFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZVJlZik7CiB9OwogCiAjZW5kaWYgLy8gZXdr
X2Zhdmljb25fZGF0YWJhc2VfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3QuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdC5oCmlu
ZGV4IDk1MjFlNzQuLmI3ZmQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1pc3Npb25fcmVxdWVzdC5oCkBAIC00
MCw4ICs0MCw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgX0V3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCAqLwotdHlwZWRlZiBzdHJ1Y3Qg
X0V3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3Q7
CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0
ICovCit0eXBlZGVmIHN0cnVjdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgRXdrX0Zvcm1f
U3VibWlzc2lvbl9SZXF1ZXN0OwogCiAvKioKICAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Zvcm1fc3VibWlzc2lvbl9yZXF1ZXN0
X3ByaXZhdGUuaAppbmRleCBiOWJmNTdhLi45OTNiNTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfZm9ybV9zdWJtaXNzaW9uX3JlcXVlc3RfcHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19mb3JtX3N1Ym1p
c3Npb25fcmVxdWVzdF9wcml2YXRlLmgKQEAgLTMyLDI4ICszMiwyNiBAQAogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAotdHlwZWRlZiBz
dHJ1Y3QgX0V3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCBFd2tfRm9ybV9TdWJtaXNzaW9uX1Jl
cXVlc3Q7Ci0KLWNsYXNzIF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgOiBwdWJsaWMgUmVm
Q291bnRlZDxfRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0PiB7CitjbGFzcyBFd2tfRm9ybV9T
dWJtaXNzaW9uX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfRm9ybV9TdWJtaXNzaW9u
X1JlcXVlc3Q+IHsKIHB1YmxpYzoKICAgICBXS1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IHdr
VmFsdWVzOwogICAgIFdLUmV0YWluUHRyPFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclJlZj4gd2tM
aXN0ZW5lcjsKICAgICBib29sIGhhbmRsZWRSZXF1ZXN0OwogCi0gICAgfl9Fd2tfRm9ybV9TdWJt
aXNzaW9uX1JlcXVlc3QoKQorICAgIH5Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QoKQogICAg
IHsKICAgICAgICAgLy8gTWFrZSBzdXJlIHRoZSByZXF1ZXN0IGlzIGFsd2F5cyBoYW5kbGVkIGJl
Zm9yZSBkZXN0cm95aW5nLgogICAgICAgICBpZiAoIWhhbmRsZWRSZXF1ZXN0KQogICAgICAgICAg
ICAgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyQ29udGludWUod2tMaXN0ZW5lci5nZXQoKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVz
dD4gY3JlYXRlKFdLRGljdGlvbmFyeVJlZiB2YWx1ZXMsIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
clJlZiBsaXN0ZW5lcikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfRm9ybV9TdWJtaXNzaW9u
X1JlcXVlc3Q+IGNyZWF0ZShXS0RpY3Rpb25hcnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9u
TGlzdGVuZXJSZWYgbGlzdGVuZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QodmFsdWVzLCBsaXN0ZW5lcikpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdCh2YWx1ZXMs
IGxpc3RlbmVyKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIF9Fd2tfRm9ybV9TdWJtaXNzaW9u
X1JlcXVlc3QoV0tEaWN0aW9uYXJ5UmVmIHZhbHVlcywgV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVy
UmVmIGxpc3RlbmVyKQorICAgIEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVxdWVzdChXS0RpY3Rpb25h
cnlSZWYgdmFsdWVzLCBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgbGlzdGVuZXIpCiAgICAg
ICAgIDogd2tWYWx1ZXModmFsdWVzKQogICAgICAgICAsIHdrTGlzdGVuZXIobGlzdGVuZXIpCiAg
ICAgICAgICwgaGFuZGxlZFJlcXVlc3QoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50LmgKaW5kZXggNWI4NjkwMi4uYTIzNjk2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQuaApAQCAtMzcsOCArMzcs
OCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9y
IF9Fd2tfSW50ZW50ICovCi10eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudCBFd2tfSW50ZW50Owor
LyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19JbnRlbnQgKi8KK3R5cGVkZWYgc3RydWN0
IEV3a19JbnRlbnQgRXdrX0ludGVudDsKIAogLyoqCiAgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3ByaXZhdGUuaAppbmRleCA5NWZmYmIyLi4xNjZh
OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50
ZW50X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50X3ByaXZhdGUuaApAQCAtMzUsMjYgKzM1LDI0IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCi10eXBlZGVmIHN0cnVjdCBf
RXdrX0ludGVudCBFd2tfSW50ZW50OwotCiAvKioKLSAqIFxzdHJ1Y3QgIF9Fd2tfSW50ZW50Cisg
KiBcc3RydWN0ICBFd2tfSW50ZW50CiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgaW50ZW50IGRh
dGEuCiAgKi8KLWNsYXNzIF9Fd2tfSW50ZW50IDogcHVibGljIFJlZkNvdW50ZWQ8X0V3a19JbnRl
bnQ+IHsKK2NsYXNzIEV3a19JbnRlbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfSW50ZW50PiB7
CiBwdWJsaWM6CiAgICAgV0tSZXRhaW5QdHI8V0tJbnRlbnREYXRhUmVmPiB3a0ludGVudDsKICAg
ICBXS0VpbmFTaGFyZWRTdHJpbmcgYWN0aW9uOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB0eXBl
OwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBzZXJ2aWNlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8X0V3a19JbnRlbnQ+IGNyZWF0ZShXS0ludGVudERhdGFSZWYgaW50ZW50UmVmKQorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEV3a19JbnRlbnQ+IGNyZWF0ZShXS0ludGVudERhdGFSZWYgaW50ZW50
UmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBfRXdrX0ludGVudChpbnRl
bnRSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfSW50ZW50KGludGVudFJl
ZikpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0ludGVudChXS0ludGVu
dERhdGFSZWYgaW50ZW50UmVmKQorICAgIGV4cGxpY2l0IEV3a19JbnRlbnQoV0tJbnRlbnREYXRh
UmVmIGludGVudFJlZikKICAgICAgICAgOiB3a0ludGVudChpbnRlbnRSZWYpCiAgICAgICAgICwg
YWN0aW9uKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlBY3Rpb24oaW50ZW50UmVmKSkKICAgICAg
ICAgLCB0eXBlKEFkb3B0V0ssIFdLSW50ZW50RGF0YUNvcHlUeXBlKGludGVudFJlZikpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZp
Y2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2Vydmlj
ZS5oCmluZGV4IGRiOTQ2ZDIuLmE3ZDNkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oCkBAIC0zNyw4ICszNyw4IEBA
CiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3
a19JbnRlbnRfU2VydmljZSAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZSBF
d2tfSW50ZW50X1NlcnZpY2U7CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX0ludGVu
dF9TZXJ2aWNlICovCit0eXBlZGVmIHN0cnVjdCBFd2tfSW50ZW50X1NlcnZpY2UgRXdrX0ludGVu
dF9TZXJ2aWNlOwogCiAvKioKICAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRo
ZSBnaXZlbiBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaAppbmRleCBjYTU2MWM1Li4x
MTlkNjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
aW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgKQEAgLTM0LDEzICszNCwxMSBAQAog
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
IAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZSBFd2tfSW50ZW50X1NlcnZpY2U7
Ci0KIC8qKgotICogXHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlCisgKiBcc3RydWN0IEV3a19J
bnRlbnRfU2VydmljZQogICogQGJyaWVmIENvbnRhaW5zIHRoZSBpbnRlbnQgc2VydmljZSBkYXRh
LgogICovCi1jbGFzcyBfRXdrX0ludGVudF9TZXJ2aWNlIDogcHVibGljIFJlZkNvdW50ZWQ8X0V3
a19JbnRlbnRfU2VydmljZT4geworY2xhc3MgRXdrX0ludGVudF9TZXJ2aWNlIDogcHVibGljIFJl
ZkNvdW50ZWQ8RXdrX0ludGVudF9TZXJ2aWNlPiB7CiBwdWJsaWM6CiAgICAgV0tFaW5hU2hhcmVk
U3RyaW5nIGFjdGlvbjsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdHlwZTsKQEAgLTQ4LDEzICs0
NiwxMyBAQCBwdWJsaWM6CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHRpdGxlOwogICAgIFdLRWlu
YVNoYXJlZFN0cmluZyBkaXNwb3NpdGlvbjsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPF9Fd2tf
SW50ZW50X1NlcnZpY2U+IGNyZWF0ZShXS0ludGVudFNlcnZpY2VJbmZvUmVmIHNlcnZpY2VSZWYp
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX0ludGVudF9TZXJ2aWNlPiBjcmVhdGUoV0tJbnRl
bnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlUmVmKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBfRXdrX0ludGVudF9TZXJ2aWNlKHNlcnZpY2VSZWYpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBFd2tfSW50ZW50X1NlcnZpY2Uoc2VydmljZVJlZikpOwogICAgIH0KIAog
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX0ludGVudF9TZXJ2aWNlKFdLSW50ZW50U2Vydmlj
ZUluZm9SZWYgc2VydmljZVJlZikKKyAgICBleHBsaWNpdCBFd2tfSW50ZW50X1NlcnZpY2UoV0tJ
bnRlbnRTZXJ2aWNlSW5mb1JlZiBzZXJ2aWNlUmVmKQogICAgICAgICA6IGFjdGlvbihBZG9wdFdL
LCBXS0ludGVudFNlcnZpY2VJbmZvQ29weUFjdGlvbihzZXJ2aWNlUmVmKSkKICAgICAgICAgLCB0
eXBlKEFkb3B0V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5VHlwZShzZXJ2aWNlUmVmKSkKICAg
ICAgICAgLCBocmVmKEFkb3B0V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5SHJlZihzZXJ2aWNl
UmVmKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19u
YXZpZ2F0aW9uX2RhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19u
YXZpZ2F0aW9uX2RhdGEuaAppbmRleCAxYTFlNjA3Li5iM2I1YzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fZGF0YS5oCkBA
IC0zOCw4ICszOCw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19OYXZpZ2F0aW9uX0RhdGEgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tf
TmF2aWdhdGlvbl9EYXRhIEV3a19OYXZpZ2F0aW9uX0RhdGE7CisvKiogQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgRXdrX05hdmlnYXRpb25fRGF0YSAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX05hdmln
YXRpb25fRGF0YSBFd2tfTmF2aWdhdGlvbl9EYXRhOwogCiAvKioKICAqIEluY3JlYXNlcyB0aGUg
cmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfbmF2aWdhdGlvbl9kYXRhX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJp
dmF0ZS5oCmluZGV4IDA4YWQwY2UuLmUwNjAxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX2RhdGFfcHJpdmF0
ZS5oCkBAIC0zNiwyOCArMzYsMjYgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiAv
KioKLSAqIFxzdHJ1Y3QgIF9Fd2tfTmF2aWdhdGlvbl9EYXRhCisgKiBcc3RydWN0ICBFd2tfTmF2
aWdhdGlvbl9EYXRhCiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgbmF2aWdhdGlvbiBkYXRhIGRl
dGFpbHMuCiAgKi8KLWNsYXNzIF9Fd2tfTmF2aWdhdGlvbl9EYXRhIDogcHVibGljIFJlZkNvdW50
ZWQ8X0V3a19OYXZpZ2F0aW9uX0RhdGE+IHsKK2NsYXNzIEV3a19OYXZpZ2F0aW9uX0RhdGEgOiBw
dWJsaWMgUmVmQ291bnRlZDxFd2tfTmF2aWdhdGlvbl9EYXRhPiB7CiBwdWJsaWM6CiAgICAgUmVm
UHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdDsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdGl0
bGU7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIHVybDsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PF9Fd2tfTmF2aWdhdGlvbl9EYXRhPiBjcmVhdGUoV0tOYXZpZ2F0aW9uRGF0YVJlZiBkYXRhUmVm
KQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19OYXZpZ2F0aW9uX0RhdGE+IGNyZWF0ZShXS05h
dmlnYXRpb25EYXRhUmVmIGRhdGFSZWYpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IF9Fd2tfTmF2aWdhdGlvbl9EYXRhKGRhdGFSZWYpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBFd2tfTmF2aWdhdGlvbl9EYXRhKGRhdGFSZWYpKTsKICAgICB9CiAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgX0V3a19OYXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0YVJlZiBk
YXRhUmVmKQorICAgIGV4cGxpY2l0IEV3a19OYXZpZ2F0aW9uX0RhdGEoV0tOYXZpZ2F0aW9uRGF0
YVJlZiBkYXRhUmVmKQogICAgICAgICA6IHJlcXVlc3QoRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUo
YWRvcHRXSyhXS05hdmlnYXRpb25EYXRhQ29weU9yaWdpbmFsUmVxdWVzdChkYXRhUmVmKSkuZ2V0
KCkpKQogICAgICAgICAsIHRpdGxlKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VGl0bGUo
ZGF0YVJlZikpCiAgICAgICAgICwgdXJsKEFkb3B0V0ssIFdLTmF2aWdhdGlvbkRhdGFDb3B5VVJM
KGRhdGFSZWYpKQogICAgIHsgfQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19OYXZpZ2F0aW9u
X0RhdGEgRXdrX05hdmlnYXRpb25fRGF0YTsKLQogI2VuZGlmIC8vIGV3a19uYXZpZ2F0aW9uX2Rh
dGFfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCmluZGV4IDlmM2Mw
NDUuLjE2NmIxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oCkBAIC0zOCw4
ICszOCw4IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5cGUgbmFt
ZSBmb3IgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiAqLwotdHlwZWRlZiBzdHJ1Y3Qg
X0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVj
aXNpb247CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX05hdmlnYXRpb25fUG9saWN5
X0RlY2lzaW9uICovCit0eXBlZGVmIHN0cnVjdCBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOwogCiAvLy8gRW51bSBjb250YWluaW5n
IG5hdmlnYXRpb24gdHlwZXMKIHR5cGVkZWYgZW51bSAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3By
aXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19uYXZpZ2F0aW9u
X3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgKaW5kZXggYmUxYThkZi4uZTdlNDU0OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX25hdmlnYXRpb25fcG9s
aWN5X2RlY2lzaW9uX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZS5oCkBAIC0zNywxMCAr
MzcsMTAgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiAvKioKLSAqIFxzdHJ1Y3Qg
IF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24KKyAqIFxzdHJ1Y3QgIEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbgogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIG5hdmlnYXRpb24g
cG9saWN5IGRlY2lzaW9uIGRhdGEuCiAgKi8KLWNsYXNzIF9Fd2tfTmF2aWdhdGlvbl9Qb2xpY3lf
RGVjaXNpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lz
aW9uPiB7CitjbGFzcyBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24gOiBwdWJsaWMgUmVm
Q291bnRlZDxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IHsKIHB1YmxpYzoKICAgICBX
S1JldGFpblB0cjxXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY+IGxpc3RlbmVyOwogICAgIGJvb2wg
YWN0ZWRVcG9uQnlDbGllbnQ7CkBAIC01MCwyMSArNTAsMjEgQEAgcHVibGljOgogICAgIFJlZlB0
cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3Q7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5nIGZyYW1l
TmFtZTsKIAotICAgIH5fRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKCkKKyAgICB+RXdr
X05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKCkKICAgICB7CiAgICAgICAgIC8vIFRoaXMgaXMg
dGhlIGRlZmF1bHQgY2hvaWNlIGZvciBhbGwgcG9saWN5IGRlY2lzaW9ucyBpbiBXZWJQYWdlUHJv
eHkuY3BwLgogICAgICAgICBpZiAoIWFjdGVkVXBvbkJ5Q2xpZW50KQogICAgICAgICAgICAgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyLmdldCgpKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxfRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBjcmVhdGUoV0tG
cmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW91c2VCdXR0b24gbW91
c2VCdXR0b24sIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS1VSTFJlcXVlc3RSZWYgcmVx
dWVzdFJlZiwgY29uc3QgY2hhciogZnJhbWVOYW1lLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
bGlzdGVuZXIpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0Rl
Y2lzaW9uPiBjcmVhdGUoV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2
ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBX
S1VSTFJlcXVlc3RSZWYgcmVxdWVzdFJlZiwgY29uc3QgY2hhciogZnJhbWVOYW1lLCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIpCiAgICAgewogICAgICAgICBSZWZQdHI8RXdrX1Vy
bF9SZXF1ZXN0PiByZXF1ZXN0ID0gRXdrX1VybF9SZXF1ZXN0OjpjcmVhdGUocmVxdWVzdFJlZik7
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdrX05hdmlnYXRpb25fVHlwZT4obmF2aWdhdGlv
blR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1vdXNlQnV0dG9uKSwgc3Rh
dGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4obW9kaWZpZXJzKSwgcmVxdWVzdC5yZWxlYXNl
KCksIGZyYW1lTmFtZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEV3a19OYXZpZ2F0
aW9uX1BvbGljeV9EZWNpc2lvbihsaXN0ZW5lciwgc3RhdGljX2Nhc3Q8RXdrX05hdmlnYXRpb25f
VHlwZT4obmF2aWdhdGlvblR5cGUpLCBzdGF0aWNfY2FzdDxFdmVudF9Nb3VzZV9CdXR0b24+KG1v
dXNlQnV0dG9uKSwgc3RhdGljX2Nhc3Q8RXZlbnRfTW9kaWZpZXJfS2V5cz4obW9kaWZpZXJzKSwg
cmVxdWVzdC5yZWxlYXNlKCksIGZyYW1lTmFtZSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBf
RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgRXdrX05hdmlnYXRpb25fVHlwZSBuYXZpZ2F0aW9uVHlwZSwgRXZlbnRfTW91c2Vf
QnV0dG9uIG1vdXNlQnV0dG9uLCBFdmVudF9Nb2RpZmllcl9LZXlzIG1vZGlmaWVycywgUGFzc1Jl
ZlB0cjxFd2tfVXJsX1JlcXVlc3Q+IHJlcXVlc3QsIGNvbnN0IGNoYXIqIGZyYW1lTmFtZSkKKyAg
ICBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24oV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVm
IGxpc3RlbmVyLCBFd2tfTmF2aWdhdGlvbl9UeXBlIG5hdmlnYXRpb25UeXBlLCBFdmVudF9Nb3Vz
ZV9CdXR0b24gbW91c2VCdXR0b24sIEV2ZW50X01vZGlmaWVyX0tleXMgbW9kaWZpZXJzLCBQYXNz
UmVmUHRyPEV3a19VcmxfUmVxdWVzdD4gcmVxdWVzdCwgY29uc3QgY2hhciogZnJhbWVOYW1lKQog
ICAgICAgICA6IGxpc3RlbmVyKGxpc3RlbmVyKQogICAgICAgICAsIGFjdGVkVXBvbkJ5Q2xpZW50
KGZhbHNlKQogICAgICAgICAsIG5hdmlnYXRpb25UeXBlKG5hdmlnYXRpb25UeXBlKQpAQCAtNzUs
NiArNzUsNCBAQCBwcml2YXRlOgogICAgIHsgfQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19O
YXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb247
Ci0KICNlbmRpZiAvLyBld2tfbmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb25fcHJpdmF0ZV9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVu
dV9pdGVtLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9t
ZW51X2l0ZW0uY3BwCmluZGV4IGQwYTNmNjAuLjRiMjI5YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uY3BwCkBA
IC0zMiw3ICszMiw3IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLV9Fd2tfUG9wdXBf
TWVudV9JdGVtOjpfRXdrX1BvcHVwX01lbnVfSXRlbShjb25zdCBXZWJLaXQ6OldlYlBvcHVwSXRl
bSYgaXRlbSkKK0V3a19Qb3B1cF9NZW51X0l0ZW06OkV3a19Qb3B1cF9NZW51X0l0ZW0oY29uc3Qg
V2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pCiAgICAgOiB0eXBlKHN0YXRpY19jYXN0PEV3a19Q
b3B1cF9NZW51X0l0ZW1fVHlwZT4oaXRlbS5tX3R5cGUpKQogICAgICwgdGV4dERpcmVjdGlvbihz
dGF0aWNfY2FzdDxFd2tfVGV4dF9EaXJlY3Rpb24+KGl0ZW0ubV90ZXh0RGlyZWN0aW9uKSkKICAg
ICAsIGhhc1RleHREaXJlY3Rpb25PdmVycmlkZShpdGVtLm1faGFzVGV4dERpcmVjdGlvbk92ZXJy
aWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnVfaXRlbS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Bv
cHVwX21lbnVfaXRlbS5oCmluZGV4IGI5NmQ0MzYuLjVlZmU2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19wb3B1cF9tZW51X2l0ZW0uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtLmgKQEAg
LTQ1LDggKzQ1LDggQEAgdHlwZWRlZiBlbnVtIHsKICAgICBFV0tfUE9QVVBfTUVOVV9VTktOT1dO
ID0gLTEKIH0gRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlOwogCi0vKiogQ3JlYXRlcyBhIHR5cGUg
bmFtZSBmb3IgX0V3a19Qb3B1cF9NZW51X0l0ZW0gKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfUG9w
dXBfTWVudV9JdGVtIEV3a19Qb3B1cF9NZW51X0l0ZW07CisvKiogQ3JlYXRlcyBhIHR5cGUgbmFt
ZSBmb3IgRXdrX1BvcHVwX01lbnVfSXRlbSAqLwordHlwZWRlZiBzdHJ1Y3QgRXdrX1BvcHVwX01l
bnVfSXRlbSBFd2tfUG9wdXBfTWVudV9JdGVtOwogCiAvKioKICAqIFJldHVybnMgdHlwZSBvZiB0
aGUgcG9wdXAgbWVudSBpdGVtLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3BvcHVwX21lbnVfaXRlbV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaAppbmRleCBlYzJl
YzM2Li5hZDIxNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGUuaApAQCAtMzIsMTAgKzMy
LDEwIEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogLyoqCi0gKiBcc3RydWN0ICBf
RXdrX1BvcHVwX01lbnVfSXRlbQorICogXHN0cnVjdCAgRXdrX1BvcHVwX01lbnVfSXRlbQogICog
QGJyaWVmICAgQ29udGFpbnMgdGhlIHBvcHVwIG1lbnUgZGF0YS4KICAqLwotY2xhc3MgX0V3a19Q
b3B1cF9NZW51X0l0ZW0geworY2xhc3MgRXdrX1BvcHVwX01lbnVfSXRlbSB7CiBwdWJsaWM6CiAg
ICAgRXdrX1BvcHVwX01lbnVfSXRlbV9UeXBlIHR5cGU7CiAgICAgRXdrX1RleHRfRGlyZWN0aW9u
IHRleHREaXJlY3Rpb247CkBAIC00OSwxMyArNDksMTMgQEAgcHVibGljOgogICAgIFdLRWluYVNo
YXJlZFN0cmluZyB0b29sVGlwOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBhY2Nlc3NpYmlsaXR5
VGV4dDsKIAotICAgIHN0YXRpYyBQYXNzT3duUHRyPF9Fd2tfUG9wdXBfTWVudV9JdGVtPiBjcmVh
dGUoY29uc3QgV2ViS2l0OjpXZWJQb3B1cEl0ZW0mIGl0ZW0pCisgICAgc3RhdGljIFBhc3NPd25Q
dHI8RXdrX1BvcHVwX01lbnVfSXRlbT4gY3JlYXRlKGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVt
JiBpdGVtKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBfRXdrX1BvcHVwX01l
bnVfSXRlbShpdGVtKSk7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRXdrX1BvcHVwX01l
bnVfSXRlbShpdGVtKSk7CiAgICAgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IF9Fd2tfUG9w
dXBfTWVudV9JdGVtKGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVtKTsKKyAgICBleHBs
aWNpdCBFd2tfUG9wdXBfTWVudV9JdGVtKGNvbnN0IFdlYktpdDo6V2ViUG9wdXBJdGVtJiBpdGVt
KTsKIH07CiAKICNlbmRpZiAvLyBld2tfcG9wdXBfbWVudV9pdGVtX3ByaXZhdGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2UuaAppbmRleCBhMmY0
Nzg2Li41ZWM0MGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfcmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfcmVzb3VyY2UuaApAQCAtMzgsNyArMzgsNyBAQCBleHRlcm4gIkMiIHsKICNlbmRpZgogCiAv
KiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgQGEgRXdrX1Jlc291cmNlLiAqLwotdHlwZWRlZiBz
dHJ1Y3QgX0V3a19SZXNvdXJjZSBFd2tfUmVzb3VyY2U7Cit0eXBlZGVmIHN0cnVjdCBFd2tfUmVz
b3VyY2UgRXdrX1Jlc291cmNlOwogCiAvKioKICAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNv
dW50IG9mIHRoZSBnaXZlbiBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfcmVzb3VyY2VfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3Jlc291cmNlX3ByaXZhdGUuaAppbmRleCBkODZkNjdiLi45OWNj
OTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfcmVz
b3VyY2VfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19yZXNvdXJjZV9wcml2YXRlLmgKQEAgLTMzLDIwICszMywxOCBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotdHlwZWRl
ZiBzdHJ1Y3QgX0V3a19SZXNvdXJjZSBFd2tfUmVzb3VyY2U7Ci0KLWNsYXNzIF9Fd2tfUmVzb3Vy
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX1Jlc291cmNlPiB7CitjbGFzcyBFd2tfUmVzb3Vy
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfUmVzb3VyY2U+IHsKIHB1YmxpYzoKICAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgdXJsOwogICAgIGJvb2wgaXNNYWluUmVzb3VyY2U7CiAKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxfRXdrX1Jlc291cmNlPiBjcmVhdGUoV0tVUkxSZWYgdXJsLCBib29sIGlz
TWFpblJlc291cmNlKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19SZXNvdXJjZT4gY3JlYXRl
KFdLVVJMUmVmIHVybCwgYm9vbCBpc01haW5SZXNvdXJjZSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgX0V3a19SZXNvdXJjZSh1cmwsIGlzTWFpblJlc291cmNlKSk7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX1Jlc291cmNlKHVybCwgaXNNYWluUmVzb3VyY2Up
KTsKICAgICB9CiAKIHByaXZhdGU6Ci0gICAgX0V3a19SZXNvdXJjZShXS1VSTFJlZiB1cmwsIGJv
b2wgaXNNYWluUmVzb3VyY2UpCisgICAgRXdrX1Jlc291cmNlKFdLVVJMUmVmIHVybCwgYm9vbCBp
c01haW5SZXNvdXJjZSkKICAgICAgICAgOiB1cmwodXJsKQogICAgICAgICAsIGlzTWFpblJlc291
cmNlKGlzTWFpblJlc291cmNlKQogICAgIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3NldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaAppbmRleCAxZjE3OGI2Li44NjFiOTkxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3MuaApAQCAtNDAs
OCArNDAsOCBAQAogZXh0ZXJuICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5h
bWUgZm9yIF9Fd2tfU2V0dGluZ3MgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfU2V0dGluZ3MgRXdr
X1NldHRpbmdzOworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19TZXR0aW5ncyAqLwor
dHlwZWRlZiBzdHJ1Y3QgRXdrX1NldHRpbmdzIEV3a19TZXR0aW5nczsKIAogLyoqCiAgKiBDcmVh
dGVzIGEgdHlwZSBuYW1lIGZvciB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gdXNlZCB0byBub3RpZnkg
dGhlIGNsaWVudCB3aGVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfc2V0dGluZ3NfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3NldHRpbmdzX3ByaXZhdGUuaAppbmRleCAyYzlkYTBkLi40MGFlM2I3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfc2V0dGluZ3NfcHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19zZXR0aW5n
c19wcml2YXRlLmgKQEAgLTMxLDE3ICszMSwxNCBAQAogI2luY2x1ZGUgPFdlYktpdDIvV0tSZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCi0vKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19TZXR0aW5ncyAqLwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19TZXR0aW5n
cyBFd2tfU2V0dGluZ3M7Ci0KIC8qKgotICogXHN0cnVjdCAgX0V3a19TZXR0aW5ncworICogXHN0
cnVjdCAgRXdrX1NldHRpbmdzCiAgKiBAYnJpZWYgICBDb250YWlucyB0aGUgc2V0dGluZ3MgZGF0
YS4KICAqLwotc3RydWN0IF9Fd2tfU2V0dGluZ3Mgeworc3RydWN0IEV3a19TZXR0aW5ncyB7CiAg
ICAgV0tSZXRhaW5QdHI8V0tQcmVmZXJlbmNlc1JlZj4gcHJlZmVyZW5jZXM7CiAKLSAgICBleHBs
aWNpdCBfRXdrX1NldHRpbmdzKFdLUHJlZmVyZW5jZXNSZWYgd2tQcmVmZXJlbmNlcykKKyAgICBl
eHBsaWNpdCBFd2tfU2V0dGluZ3MoV0tQcmVmZXJlbmNlc1JlZiB3a1ByZWZlcmVuY2VzKQogICAg
ICAgICA6IHByZWZlcmVuY2VzKHdrUHJlZmVyZW5jZXMpCiAgICAgeyB9CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3RleHRfY2hlY2tlcl9wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdGV4dF9jaGVja2Vy
X3ByaXZhdGUuaAppbmRleCBkNDU1MDVhLi5lNzQ4MTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdGV4dF9jaGVja2VyX3ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdGV4dF9jaGVja2VyX3ByaXZhdGUu
aApAQCAtMzUsNyArMzUsNyBAQAogICoKICAqIEBpbnRlcm5hbAogICovCi1zdHJ1Y3QgX0V3a19U
ZXh0X0NoZWNrZXIgeworc3RydWN0IEV3a19UZXh0X0NoZWNrZXIgewogICAgIEV3a19UZXh0X0No
ZWNrZXJfVW5pcXVlX1NwZWxsX0RvY3VtZW50X1RhZ19HZXRfQ2IgdW5pcXVlX3NwZWxsX2RvY3Vt
ZW50X3RhZ19nZXQ7CiAgICAgRXdrX1RleHRfQ2hlY2tlcl9VbmlxdWVfU3BlbGxfRG9jdW1lbnRf
VGFnX0Nsb3NlX0NiIHVuaXF1ZV9zcGVsbF9kb2N1bWVudF90YWdfY2xvc2U7CiAgICAgRXdrX1Rl
eHRfQ2hlY2tlcl9TdHJpbmdfU3BlbGxpbmdfQ2hlY2tfQ2Igc3RyaW5nX3NwZWxsaW5nX2NoZWNr
OwpAQCAtNDMsNyArNDMsNiBAQCBzdHJ1Y3QgX0V3a19UZXh0X0NoZWNrZXIgewogICAgIEV3a19U
ZXh0X0NoZWNrZXJfV29yZF9MZWFybl9DYiB3b3JkX2xlYXJuOwogICAgIEV3a19UZXh0X0NoZWNr
ZXJfV29yZF9JZ25vcmVfQ2Igd29yZF9pZ25vcmU7CiB9OwotdHlwZWRlZiBfRXdrX1RleHRfQ2hl
Y2tlciBFd2tfVGV4dF9DaGVja2VyOwogCiBFd2tfVGV4dF9DaGVja2VyKiBld2tfdGV4dF9jaGVj
a2VyX2NhbGxiYWNrc19nZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3RvdWNoLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdG91Y2guaAppbmRleCAxYzljZGQ1Li5mMjk3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2guaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdG91Y2guaApAQCAtNDAsMTEgKzQwLDExIEBAIHR5cGVk
ZWYgZW51bSB7CiAgICAgRVdLX1RPVUNIX0NBTkNFTAogfSBFd2tfVG91Y2hfRXZlbnRfVHlwZTsK
IAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfVG91Y2hfUG9pbnQuCi10eXBlZGVm
IHN0cnVjdCBfRXdrX1RvdWNoX1BvaW50IEV3a19Ub3VjaF9Qb2ludDsKKy8vLyBDcmVhdGVzIGEg
dHlwZSBuYW1lIGZvciBFd2tfVG91Y2hfUG9pbnQuCit0eXBlZGVmIHN0cnVjdCBFd2tfVG91Y2hf
UG9pbnQgRXdrX1RvdWNoX1BvaW50OwogCiAvLy8gUmVwcmVzZW50cyBhIHRvdWNoIHBvaW50Lgot
c3RydWN0IF9Fd2tfVG91Y2hfUG9pbnQgeworc3RydWN0IEV3a19Ub3VjaF9Qb2ludCB7CiAgICAg
aW50IGlkOyAvKio8IGlkZW50aWZpZXIgb2YgdGhlIHRvdWNoIGV2ZW50ICovCiAgICAgaW50IHg7
IC8qKjwgdGhlIGhvcml6b250YWwgcG9zaXRpb24gb2YgdGhlIHRvdWNoIGV2ZW50ICovCiAgICAg
aW50IHk7IC8qKjwgdGhlIHZlcnRpY2FsIHBvc2l0aW9uIG9mIHRoZSB0b3VjaCBldmVudCAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3Qu
aAppbmRleCBmNjFiODhhLi45ODdiZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3QuaApAQCAtMzcsOCArMzcsOCBAQAogZXh0ZXJu
ICJDIiB7CiAjZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfVXJsX1Jl
cXVlc3QgKi8KLXR5cGVkZWYgc3RydWN0IF9Fd2tfVXJsX1JlcXVlc3QgRXdrX1VybF9SZXF1ZXN0
OworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19VcmxfUmVxdWVzdCAqLwordHlwZWRl
ZiBzdHJ1Y3QgRXdrX1VybF9SZXF1ZXN0IEV3a19VcmxfUmVxdWVzdDsKIAogLyoqCiAgKiBJbmNy
ZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfcmVxdWVzdF9w
cml2YXRlLmgKaW5kZXggYjFiYzEzMy4uNmZhZmI4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXF1ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZS5oCkBA
IC0zMywyOCArMzMsMjYgQEAKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogCiAvKioKLSAq
IFxzdHJ1Y3QgIF9Fd2tfVXJsX1JlcXVlc3QKKyAqIFxzdHJ1Y3QgIEV3a19VcmxfUmVxdWVzdAog
ICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXF1ZXN0IGRhdGEuCiAgKi8KLWNsYXNzIF9F
d2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxfRXdrX1VybF9SZXF1ZXN0PiB7Citj
bGFzcyBFd2tfVXJsX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfVXJsX1JlcXVlc3Q+
IHsKIHB1YmxpYzoKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgdXJsOwogICAgIFdLRWluYVNoYXJl
ZFN0cmluZyBmaXJzdFBhcnR5OwogICAgIFdLRWluYVNoYXJlZFN0cmluZyBodHRwTWV0aG9kOwog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19VcmxfUmVxdWVzdD4gY3JlYXRlKFdLVVJMUmVx
dWVzdFJlZiByZXF1ZXN0UmVmKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19VcmxfUmVxdWVz
dD4gY3JlYXRlKFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0UmVmKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBfRXdrX1VybF9SZXF1ZXN0KHJlcXVlc3RSZWYpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfVXJsX1JlcXVlc3QocmVxdWVzdFJlZikpOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBfRXdrX1VybF9SZXF1ZXN0KFdLVVJMUmVxdWVzdFJl
ZiByZXF1ZXN0UmVmKQorICAgIGV4cGxpY2l0IEV3a19VcmxfUmVxdWVzdChXS1VSTFJlcXVlc3RS
ZWYgcmVxdWVzdFJlZikKICAgICAgICAgOiB1cmwoQWRvcHRXSywgV0tVUkxSZXF1ZXN0Q29weVVS
TChyZXF1ZXN0UmVmKSkKICAgICAgICAgLCBmaXJzdFBhcnR5KEFkb3B0V0ssIFdLVVJMUmVxdWVz
dENvcHlGaXJzdFBhcnR5Rm9yQ29va2llcyhyZXF1ZXN0UmVmKSkKICAgICAgICAgLCBodHRwTWV0
aG9kKEFkb3B0V0ssIFdLVVJMUmVxdWVzdENvcHlIVFRQTWV0aG9kKHJlcXVlc3RSZWYpKQogICAg
IHsgfQogfTsKIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVl
c3Q7Ci0KICNlbmRpZiAvLyBld2tfdXJsX3JlcXVlc3RfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlLmgKaW5kZXggMjU4
MTRkMi4uY2FkOGUwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3VybF9yZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a191cmxfcmVzcG9uc2UuaApAQCAtMzcsOCArMzcsOCBAQAogZXh0ZXJuICJDIiB7CiAj
ZW5kaWYKIAotLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfVXJsX1Jlc3BvbnNlICov
Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3BvbnNlOworLyoq
IENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19VcmxfUmVzcG9uc2UgKi8KK3R5cGVkZWYgc3Ry
dWN0IEV3a19VcmxfUmVzcG9uc2UgRXdrX1VybF9SZXNwb25zZTsKIAogLyoqCiAgKiBJbmNyZWFz
ZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9yZXNwb25zZV9wcml2YXRl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3By
aXZhdGUuaAppbmRleCA4ODVkMzJiLi4zNTdjMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3Jlc3BvbnNlX3ByaXZhdGUuaApA
QCAtMzMsMzEgKzMzLDI5IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIAogLyoqCi0g
KiBcc3RydWN0ICBfRXdrX1VybF9SZXNwb25zZQorICogXHN0cnVjdCAgRXdrX1VybF9SZXNwb25z
ZQogICogQGJyaWVmICAgQ29udGFpbnMgdGhlIFVSTCByZXNwb25zZSBkYXRhLgogICovCi1jbGFz
cyBfRXdrX1VybF9SZXNwb25zZSA6IHB1YmxpYyBSZWZDb3VudGVkPF9Fd2tfVXJsX1Jlc3BvbnNl
PiB7CitjbGFzcyBFd2tfVXJsX1Jlc3BvbnNlIDogcHVibGljIFJlZkNvdW50ZWQ8RXdrX1VybF9S
ZXNwb25zZT4gewogcHVibGljOgogICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgY29yZVJl
c3BvbnNlOwogICAgIFdLRWluYVNoYXJlZFN0cmluZyB1cmw7CiAgICAgV0tFaW5hU2hhcmVkU3Ry
aW5nIG1pbWVUeXBlOwogCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8X0V3a19VcmxfUmVzcG9uc2U+
IGNyZWF0ZShXS1VSTFJlc3BvbnNlUmVmIHdrUmVzcG9uc2UpCisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RXdrX1VybF9SZXNwb25zZT4gY3JlYXRlKFdLVVJMUmVzcG9uc2VSZWYgd2tSZXNwb25zZSkK
ICAgICB7CiAgICAgICAgIGlmICghd2tSZXNwb25zZSkKICAgICAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgX0V3a19VcmxfUmVzcG9uc2UoV2ViS2l0Ojp0
b0ltcGwod2tSZXNwb25zZSktPnJlc291cmNlUmVzcG9uc2UoKSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEV3a19VcmxfUmVzcG9uc2UoV2ViS2l0Ojp0b0ltcGwod2tSZXNwb25zZSkt
PnJlc291cmNlUmVzcG9uc2UoKSkpOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBf
RXdrX1VybF9SZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiBfY29yZVJl
c3BvbnNlKQorICAgIGV4cGxpY2l0IEV3a19VcmxfUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgX2NvcmVSZXNwb25zZSkKICAgICAgICAgOiBjb3JlUmVzcG9uc2UoX2Nv
cmVSZXNwb25zZSkKICAgICAgICAgLCB1cmwoQWRvcHRXSywgV0tVUkxSZXNwb25zZUNvcHlVUkwo
V2ViS2l0Ojp0b0FQSShjb3JlUmVzcG9uc2UpKSkKICAgICAgICAgLCBtaW1lVHlwZShBZG9wdFdL
LCBXS1VSTFJlc3BvbnNlQ29weU1JTUVUeXBlKFdlYktpdDo6dG9BUEkoY29yZVJlc3BvbnNlKSkp
CiAgICAgeyB9CiB9OwogCi10eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJs
X1Jlc3BvbnNlOwotCiAjZW5kaWYgLy8gZXdrX3VybF9yZXNwb25zZV9wcml2YXRlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1lX3Jl
cXVlc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a191cmxfc2NoZW1l
X3JlcXVlc3QuaAppbmRleCA5NGI1MDI5Li5mMzZlYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1ZXN0LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVxdWVzdC5oCkBA
IC0zNyw3ICszNyw3IEBACiBleHRlcm4gIkMiIHsKICNlbmRpZgogCi0vKiogQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgX0V3a19VcmxfU2NoZW1lX1JlcXVlc3QgKi8KKy8qKiBDcmVhdGVzIGEgdHlw
ZSBuYW1lIGZvciBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0ICovCiB0eXBlZGVmIHN0cnVjdCBFd2tf
VXJsX1NjaGVtZV9SZXF1ZXN0IEV3a19VcmxfU2NoZW1lX1JlcXVlc3Q7CiAKIC8qKgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3VybF9zY2hlbWVfcmVx
dWVzdF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJs
X3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaAppbmRleCA4Yzc4MTAyLi42YmNiYTk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdXJsX3NjaGVtZV9yZXF1
ZXN0X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dXJsX3NjaGVtZV9yZXF1ZXN0X3ByaXZhdGUuaApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUg
IldLU291cFJlcXVlc3RNYW5hZ2VyLmgiCiAKIC8qKgotICogXHN0cnVjdCAgX0V3a19VcmxfU2No
ZW1lX1JlcXVlc3QKKyAqIFxzdHJ1Y3QgIEV3a19VcmxfU2NoZW1lX1JlcXVlc3QKICAqIEBicmll
ZiAgIENvbnRhaW5zIHRoZSBVUkwgc2NoZW1lIHJlcXVlc3QgZGF0YS4KICAqLwogc3RydWN0IEV3
a19VcmxfU2NoZW1lX1JlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxFd2tfVXJsX1NjaGVtZV9S
ZXF1ZXN0PiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAKaW5kZXggMmZiMDg0My4uZWU0NTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCByZW1vdmVGcm9tUGFnZVZpZXdNYXAoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAg
ICAgcGFnZVZpZXdNYXAoKS5yZW1vdmUoZXdrX3ZpZXdfcGFnZV9nZXQoZXdrVmlldykpOwogfQog
Ci1zdHJ1Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CitzdHJ1Y3QgRXdrX1ZpZXdfUHJpdmF0
ZV9EYXRhIHsKICAgICBPd25QdHI8UGFnZUNsaWVudEltcGw+IHBhZ2VDbGllbnQ7CiAjaWYgVVNF
KENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIE93blB0cjxFZmxWaWV3cG9ydEhhbmRsZXI+IHZp
ZXdwb3J0SGFuZGxlcjsKQEAgLTE0OSw3ICsxNDksNyBAQCBzdHJ1Y3QgX0V3a19WaWV3X1ByaXZh
dGVfRGF0YSB7CiAgICAgRXZhc19HTF9TdXJmYWNlKiBldmFzR2xTdXJmYWNlOwogI2VuZGlmCiAK
LSAgICBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKKyAgICBFd2tfVmlld19Qcml2YXRlX0RhdGEo
KQogICAgICAgICA6IGFyZU1vdXNlRXZlbnRzRW5hYmxlZChmYWxzZSkKICAgICAgICAgLCBjb250
ZXh0KDApCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTE2Nyw3ICsxNjcsNyBAQCBzdHJ1
Y3QgX0V3a19WaWV3X1ByaXZhdGVfRGF0YSB7CiAjZW5kaWYKICAgICB7IH0KIAotICAgIH5fRXdr
X1ZpZXdfUHJpdmF0ZV9EYXRhKCkKKyAgICB+RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKCkKICAgICB7
CiAgICAgICAgIC8qIFVucmVnaXN0ZXIgaWNvbiBjaGFuZ2UgY2FsbGJhY2sgKi8KICAgICAgICAg
RXdrX0Zhdmljb25fRGF0YWJhc2UqIGljb25EYXRhYmFzZSA9IGV3a19jb250ZXh0X2Zhdmljb25f
ZGF0YWJhc2VfZ2V0KGNvbnRleHQpOwpAQCAtNTAzLDcgKzUwMyw3IEBAIHN0YXRpYyB2b2lkIF9l
d2tfdmlld19zbWFydF9hZGQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAKICAgICBzbWFydERhdGEt
PnByaXYgPSBfZXdrX3ZpZXdfcHJpdl9uZXcoc21hcnREYXRhKTsKICAgICBpZiAoIXNtYXJ0RGF0
YS0+cHJpdikgewotICAgICAgICBFSU5BX0xPR19DUklUKCJjb3VsZCBub3QgYWxsb2NhdGUgX0V3
a19WaWV3X1ByaXZhdGVfRGF0YSIpOworICAgICAgICBFSU5BX0xPR19DUklUKCJjb3VsZCBub3Qg
YWxsb2NhdGUgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIik7CiAgICAgICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2RhdGFfc2V0KGV3a1ZpZXcsIDApOwogICAgICAgICBmcmVlKHNtYXJ0RGF0YSk7CiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5o
CmluZGV4IDdkOGJiNmEuLjM0YTA4MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuaApAQCAtOTYsMTEgKzk2LDExIEBAIHR5cGVkZWYgZW51bSB7CiAgICAg
RVdLX1RFWFRfRElSRUNUSU9OX0xFRlRfVE9fUklHSFQKIH0gRXdrX1RleHRfRGlyZWN0aW9uOwog
Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1ZpZXdfU21hcnRfRGF0YSBFd2tfVmlld19TbWFydF9EYXRh
OwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0X0NsYXNzIEV3a19WaWV3X1NtYXJ0X0Ns
YXNzOwordHlwZWRlZiBzdHJ1Y3QgRXdrX1ZpZXdfU21hcnRfRGF0YSBFd2tfVmlld19TbWFydF9E
YXRhOwordHlwZWRlZiBzdHJ1Y3QgRXdrX1ZpZXdfU21hcnRfQ2xhc3MgRXdrX1ZpZXdfU21hcnRf
Q2xhc3M7CiAKIC8vLyBFd2sgdmlldydzIGNsYXNzLCB0byBiZSBvdmVycmlkZGVuIGJ5IHN1Yi1j
bGFzc2VzLgotc3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CitzdHJ1Y3QgRXdrX1ZpZXdf
U21hcnRfQ2xhc3MgewogICAgIEV2YXNfU21hcnRfQ2xhc3Mgc2M7IC8qKjwgYWxsIGJ1dCAnZGF0
YScgaXMgZnJlZSB0byBiZSBjaGFuZ2VkLiAqLwogICAgIHVuc2lnbmVkIGxvbmcgdmVyc2lvbjsK
IApAQCAtMTgyLDE0ICsxODIsMTQgQEAgc3RydWN0IF9Fd2tfVmlld19TbWFydF9DbGFzcyB7CiAg
Ki8KICNkZWZpbmUgRVdLX1ZJRVdfU01BUlRfQ0xBU1NfSU5JVF9OQU1FX1ZFUlNJT04obmFtZSkg
RVdLX1ZJRVdfU01BUlRfQ0xBU1NfSU5JVChFVkFTX1NNQVJUX0NMQVNTX0lOSVRfTkFNRV9WRVJT
SU9OKG5hbWUpKQogCi10eXBlZGVmIHN0cnVjdCBfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIEV3a19W
aWV3X1ByaXZhdGVfRGF0YTsKK3R5cGVkZWYgc3RydWN0IEV3a19WaWV3X1ByaXZhdGVfRGF0YSBF
d2tfVmlld19Qcml2YXRlX0RhdGE7CiAvKioKICAqIEBicmllZiBDb250YWlucyBhbiBpbnRlcm5h
bCBWaWV3IGRhdGEuCiAgKgogICogSXQgaXMgdG8gYmUgY29uc2lkZXJlZCBwcml2YXRlIGJ5IHVz
ZXJzLCBidXQgbWF5IGJlIGV4dGVuZGVkIG9yCiAgKiBjaGFuZ2VkIGJ5IHN1Yi1jbGFzc2VzICh0
aGF0J3Mgd2h5IGl0J3MgaW4gcHVibGljIGhlYWRlciBmaWxlKS4KICAqLwotc3RydWN0IF9Fd2tf
Vmlld19TbWFydF9EYXRhIHsKK3N0cnVjdCBFd2tfVmlld19TbWFydF9EYXRhIHsKICAgICBFdmFz
X09iamVjdF9TbWFydF9DbGlwcGVkX0RhdGEgYmFzZTsKICAgICBjb25zdCBFd2tfVmlld19TbWFy
dF9DbGFzcyogYXBpOyAvKio8IHJlZmVyZW5jZSB0byBjYXN0ZWQgY2xhc3MgaW5zdGFuY2UgKi8K
ICAgICBFdmFzX09iamVjdCogc2VsZjsgLyoqPCByZWZlcmVuY2UgdG8gb3duZXIgb2JqZWN0ICov
CkBAIC0yMDUsNDkgKzIwNSw0OSBAQCBzdHJ1Y3QgX0V3a19WaWV3X1NtYXJ0X0RhdGEgewogICAg
IH0gY2hhbmdlZDsKIH07CiAKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBfRXdrX1Jlc291
cmNlX1JlcXVlc3QuCi10eXBlZGVmIHN0cnVjdCBfRXdrX1Jlc291cmNlX1JlcXVlc3QgRXdrX1Jl
c291cmNlX1JlcXVlc3Q7CisvLy8gQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgRXdrX1Jlc291cmNl
X1JlcXVlc3QuCit0eXBlZGVmIHN0cnVjdCBFd2tfUmVzb3VyY2VfUmVxdWVzdCBFd2tfUmVzb3Vy
Y2VfUmVxdWVzdDsKIAogLyoqCiAgKiBAYnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWls
cyBhYm91dCBhIHJlc291cmNlIHJlcXVlc3QuCiAgKi8KLXN0cnVjdCBfRXdrX1Jlc291cmNlX1Jl
cXVlc3Qgeworc3RydWN0IEV3a19SZXNvdXJjZV9SZXF1ZXN0IHsKICAgICBFd2tfUmVzb3VyY2Ug
KnJlc291cmNlOyAvKio8IHJlc291cmNlIGJlaW5nIHJlcXVlc3RlZCAqLwogICAgIEV3a19Vcmxf
UmVxdWVzdCAqcmVxdWVzdDsgLyoqPCBVUkwgcmVxdWVzdCBmb3IgdGhlIHJlc291cmNlICovCiAg
ICAgRXdrX1VybF9SZXNwb25zZSAqcmVkaXJlY3RfcmVzcG9uc2U7IC8qKjwgUG9zc2libGUgcmVk
aXJlY3QgcmVzcG9uc2UgZm9yIHRoZSByZXNvdXJjZSBvciBAYyBOVUxMICovCiB9OwogCi0vLy8g
Q3JlYXRlcyBhIHR5cGUgbmFtZSBmb3IgX0V3a19SZXNvdXJjZV9Mb2FkX1Jlc3BvbnNlLgotdHlw
ZWRlZiBzdHJ1Y3QgX0V3a19SZXNvdXJjZV9Mb2FkX1Jlc3BvbnNlIEV3a19SZXNvdXJjZV9Mb2Fk
X1Jlc3BvbnNlOworLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIEV3a19SZXNvdXJjZV9Mb2Fk
X1Jlc3BvbnNlLgordHlwZWRlZiBzdHJ1Y3QgRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2UgRXdr
X1Jlc291cmNlX0xvYWRfUmVzcG9uc2U7CiAKIC8qKgogICogQGJyaWVmIFN0cnVjdHVyZSBjb250
YWluaW5nIGRldGFpbHMgYWJvdXQgYSByZXNwb25zZSB0byBhIHJlc291cmNlIHJlcXVlc3QuCiAg
Ki8KLXN0cnVjdCBfRXdrX1Jlc291cmNlX0xvYWRfUmVzcG9uc2Ugeworc3RydWN0IEV3a19SZXNv
dXJjZV9Mb2FkX1Jlc3BvbnNlIHsKICAgICBFd2tfUmVzb3VyY2UgKnJlc291cmNlOyAvKio8IHJl
c291cmNlIHJlcXVlc3RlZCAqLwogICAgIEV3a19VcmxfUmVzcG9uc2UgKnJlc3BvbnNlOyAvKio8
IHJlc291cmNlIGxvYWQgcmVzcG9uc2UgKi8KIH07CiAKLS8vLyBDcmVhdGVzIGEgdHlwZSBuYW1l
IGZvciBfRXdrX1Jlc291cmNlX0xvYWRfRXJyb3IuCi10eXBlZGVmIHN0cnVjdCBfRXdrX1Jlc291
cmNlX0xvYWRfRXJyb3IgRXdrX1Jlc291cmNlX0xvYWRfRXJyb3I7CisvLy8gQ3JlYXRlcyBhIHR5
cGUgbmFtZSBmb3IgRXdrX1Jlc291cmNlX0xvYWRfRXJyb3IuCit0eXBlZGVmIHN0cnVjdCBFd2tf
UmVzb3VyY2VfTG9hZF9FcnJvciBFd2tfUmVzb3VyY2VfTG9hZF9FcnJvcjsKIAogLyoqCiAgKiBA
YnJpZWYgU3RydWN0dXJlIGNvbnRhaW5pbmcgZGV0YWlscyBhYm91dCBhIHJlc291cmNlIGxvYWQg
ZXJyb3IuCiAgKgogICogRGV0YWlscyBnaXZlbiBhYm91dCBhIHJlc291cmNlIGxvYWQgZmFpbHVy
ZS4KICAqLwotc3RydWN0IF9Fd2tfUmVzb3VyY2VfTG9hZF9FcnJvciB7CitzdHJ1Y3QgRXdrX1Jl
c291cmNlX0xvYWRfRXJyb3IgewogICAgIEV3a19SZXNvdXJjZSAqcmVzb3VyY2U7IC8qKjwgcmVz
b3VyY2UgdGhhdCBmYWlsZWQgbG9hZGluZyAqLwogICAgIEV3a19FcnJvciAqZXJyb3I7IC8qKjwg
bG9hZCBlcnJvciAqLwogfTsKIAotLy8vIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfRG93
bmxvYWRfSm9iX0Vycm9yLgotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Eb3dubG9hZF9Kb2JfRXJyb3Ig
RXdrX0Rvd25sb2FkX0pvYl9FcnJvcjsKKy8vLyBDcmVhdGVzIGEgdHlwZSBuYW1lIGZvciBFd2tf
RG93bmxvYWRfSm9iX0Vycm9yLgordHlwZWRlZiBzdHJ1Y3QgRXdrX0Rvd25sb2FkX0pvYl9FcnJv
ciBFd2tfRG93bmxvYWRfSm9iX0Vycm9yOwogCiAvKioKICAqIEBicmllZiBTdHJ1Y3R1cmUgY29u
dGFpbmluZyBkZXRhaWxzIGFib3V0IGEgZG93bmxvYWQgZmFpbHVyZS4KICAqLwotc3RydWN0IF9F
d2tfRG93bmxvYWRfSm9iX0Vycm9yIHsKK3N0cnVjdCBFd2tfRG93bmxvYWRfSm9iX0Vycm9yIHsK
ICAgICBFd2tfRG93bmxvYWRfSm9iICpkb3dubG9hZF9qb2I7IC8qKjwgZG93bmxvYWQgdGhhdCBm
YWlsZWQgKi8KICAgICBFd2tfRXJyb3IgKmVycm9yOyAvKio8IGRvd25sb2FkIGVycm9yICovCiB9
OwpAQCAtMjU3LDcgKzI1Nyw3IEBAIHN0cnVjdCBfRXdrX0Rvd25sb2FkX0pvYl9FcnJvciB7CiAg
KiBAYnJpZWYgICBQcm92aWRlcyBvcHRpb24gdG8gZmluZCB0ZXh0CiAgKiBAaW5mbyAgICBLZWVw
IHRoaXMgaW4gc3luYyB3aXRoIFdLRmluZE9wdGlvbnMuaAogICovCi1lbnVtIF9Fd2tfRmluZF9P
cHRpb25zIHsKK2VudW0gRXdrX0ZpbmRfT3B0aW9ucyB7CiAgICAgRVdLX0ZJTkRfT1BUSU9OU19O
T05FLCAvKio8IG5vIHNlYXJjaCBmbGFncywgdGhpcyBtZWFucyBhIGNhc2Ugc2Vuc2l0aXZlLCBu
byB3cmFwLCBmb3J3YXJkIG9ubHkgc2VhcmNoLiAqLwogICAgIEVXS19GSU5EX09QVElPTlNfQ0FT
RV9JTlNFTlNJVElWRSA9IDEgPDwgMCwgLyoqPCBjYXNlIGluc2Vuc2l0aXZlIHNlYXJjaC4gKi8K
ICAgICBFV0tfRklORF9PUFRJT05TX0FUX1dPUkRfU1RBUlRTID0gMSA8PCAxLCAvKio8IHNlYXJj
aCB0ZXh0IG9ubHkgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgd29yZHMuICovCkBAIC0yNjgsNyAr
MjY4LDcgQEAgZW51bSBfRXdrX0ZpbmRfT3B0aW9ucyB7CiAgICAgRVdLX0ZJTkRfT1BUSU9OU19T
SE9XX0ZJTkRfSU5ESUNBVE9SID0gMSA8PCA2LCAvKio8IHNob3cgaW5kaWNhdG9yICovCiAgICAg
RVdLX0ZJTkRfT1BUSU9OU19TSE9XX0hJR0hMSUdIVCA9IDEgPDwgNyAvKio8IHNob3cgaGlnaGxp
Z2h0ICovCiB9OwotdHlwZWRlZiBlbnVtIF9Fd2tfRmluZF9PcHRpb25zIEV3a19GaW5kX09wdGlv
bnM7Cit0eXBlZGVmIGVudW0gRXdrX0ZpbmRfT3B0aW9ucyBFd2tfRmluZF9PcHRpb25zOwogCiAv
KioKICAqIFNldHMgdGhlIHNtYXJ0IGNsYXNzIEFQSXMsIGVuYWJsaW5nIHZpZXcgdG8gYmUgaW5o
ZXJpdGVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X3ZpZXdfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfcHJpdmF0ZS5oCmluZGV4IDY0ZjdlOGQuLjYxYzdiZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgKQEAgLTM5LDE4ICsz
OSwxOCBAQCBjbGFzcyBXZWJQb3B1cEl0ZW07CiBjbGFzcyBXZWJQb3B1cE1lbnVQcm94eUVmbDsK
IH0KIAotdHlwZWRlZiBzdHJ1Y3QgX0V3a19Eb3dubG9hZF9Kb2IgRXdrX0Rvd25sb2FkX0pvYjsK
LXR5cGVkZWYgc3RydWN0IF9Fd2tfRm9ybV9TdWJtaXNzaW9uX1JlcXVlc3QgRXdrX0Zvcm1fU3Vi
bWlzc2lvbl9SZXF1ZXN0OwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19VcmxfUmVxdWVzdCBFd2tfVXJs
X1JlcXVlc3Q7Ci10eXBlZGVmIHN0cnVjdCBfRXdrX1VybF9SZXNwb25zZSBFd2tfVXJsX1Jlc3Bv
bnNlOwotdHlwZWRlZiBzdHJ1Y3QgX0V3a19FcnJvciBFd2tfRXJyb3I7Ci10eXBlZGVmIHN0cnVj
dCBfRXdrX1Jlc291cmNlIEV3a19SZXNvdXJjZTsKLXR5cGVkZWYgc3RydWN0IF9Fd2tfTmF2aWdh
dGlvbl9Qb2xpY3lfRGVjaXNpb24gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOwordHlw
ZWRlZiBzdHJ1Y3QgRXdrX0Rvd25sb2FkX0pvYiBFd2tfRG93bmxvYWRfSm9iOwordHlwZWRlZiBz
dHJ1Y3QgRXdrX0Zvcm1fU3VibWlzc2lvbl9SZXF1ZXN0IEV3a19Gb3JtX1N1Ym1pc3Npb25fUmVx
dWVzdDsKK3R5cGVkZWYgc3RydWN0IEV3a19VcmxfUmVxdWVzdCBFd2tfVXJsX1JlcXVlc3Q7Cit0
eXBlZGVmIHN0cnVjdCBFd2tfVXJsX1Jlc3BvbnNlIEV3a19VcmxfUmVzcG9uc2U7Cit0eXBlZGVm
IHN0cnVjdCBFd2tfRXJyb3IgRXdrX0Vycm9yOwordHlwZWRlZiBzdHJ1Y3QgRXdrX1Jlc291cmNl
IEV3a19SZXNvdXJjZTsKK3R5cGVkZWYgc3RydWN0IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNp
c2lvbiBFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb247CiAjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTKQotdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKK3R5cGVkZWYgc3Ry
dWN0IEV3a19JbnRlbnQgRXdrX0ludGVudDsKICNlbmRpZgogI2lmIEVOQUJMRShXRUJfSU5URU5U
U19UQUcpCi10eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlIEV3a19JbnRlbnRfU2Vy
dmljZTsKK3R5cGVkZWYgc3RydWN0IEV3a19JbnRlbnRfU2VydmljZSBFd2tfSW50ZW50X1NlcnZp
Y2U7CiAjZW5kaWYKIAogdm9pZCBld2tfdmlld19jdXJzb3Jfc2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>