<?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>39850</bug_id>
          
          <creation_ts>2010-05-27 11:03:13 -0700</creation_ts>
          <short_desc>Add IndexedDB&apos;s IDBIndex</short_desc>
          <delta_ts>2010-05-28 07:31:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Jeremy Orlow">jorlow</reporter>
          <assigned_to name="Jeremy Orlow">jorlow</assigned_to>
          <cc>andreip</cc>
    
    <cc>fishd</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231368</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 11:03:13 -0700</bug_when>
    <thetext>Add IndexedDB&apos;s IDBIndex</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231369</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 11:04:27 -0700</bug_when>
    <thetext>+ fishd for WebKit layer
+ andreip for informal review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231370</commentid>
    <comment_count>2</comment_count>
      <attachid>57260</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 11:07:43 -0700</bug_when>
    <thetext>Created attachment 57260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231383</commentid>
    <comment_count>3</comment_count>
      <attachid>57260</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-27 11:15:55 -0700</bug_when>
    <thetext>Comment on attachment 57260
Patch

WebKit/chromium/public/WebIDBIndex.h:33
&gt; +  // See comment in WebIndexedDatabase for a high level overview these classes.
nit: overview _of_ these classes

WebKit/chromium/public/WebIDBIndex.h:38
&gt; +      virtual WebString name() { return WebString(); }
should these be const methods?

WebKit/chromium/src/WebIDBCallbacksImpl.h:44
&gt; +      virtual void onError(const WebKit::WebIDBDatabaseError&amp; error);
nit: the parameter names in this section seem redundant

WebKit/* bits look good otherwise</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231417</commentid>
    <comment_count>4</comment_count>
      <attachid>57266</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 12:12:10 -0700</bug_when>
    <thetext>Created attachment 57266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231418</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-27 12:12:37 -0700</bug_when>
    <thetext>Oops...forgot build files.  Also took care of Darin&apos;s review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231666</commentid>
    <comment_count>6</comment_count>
      <attachid>57266</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-05-28 06:34:47 -0700</bug_when>
    <thetext>Comment on attachment 57266
Patch

This looks fine to me, but I don&apos;t have a good enough grasp of the spec to know where this is heading and to provide a complete review.

WebCore/storage/IDBDatabaseError.idl:43
 +          const unsigned short DEADLOCK_ERR = 33;
Are these constant values from the spec? Why have they moved?

WebCore/storage/IDBDatabaseError.h:47
 +      // Keey in sync with what&apos;s in the .idl file.
Keep

WebCore/storage/IDBAny.h:78
 +      // Only one of the following should ever be in use at any given time.
Maybe add a comment to say that set can only be called once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231671</commentid>
    <comment_count>7</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-28 06:40:47 -0700</bug_when>
    <thetext>Oops....I thought Andrei (who hopefully does) had already done an informal review (for that reason).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231674</commentid>
    <comment_count>8</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-28 06:46:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; WebCore/storage/IDBDatabaseError.idl:43
&gt;  +          const unsigned short DEADLOCK_ERR = 33;
&gt; Are these constant values from the spec? Why have they moved?

It really doesn&apos;t make any sense for them to be in Exception.  It&apos;s not a normal interface (not sure if it&apos;s even legal for them to be there...this was brought up on the w3 bug tracker).  And it just felt right.  But now that you mention it, I guess we should probably get upstream consensus first.  :-/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231697</commentid>
    <comment_count>9</comment_count>
    <who name="Andrei Popescu">andreip</who>
    <bug_when>2010-05-28 07:10:59 -0700</bug_when>
    <thetext>LGTM with two nits:

Android make files have indent problems on lines 717 and below.
Same with GNUMake on lines 2501 and below</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231699</commentid>
    <comment_count>10</comment_count>
      <attachid>57327</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-28 07:17:25 -0700</bug_when>
    <thetext>Created attachment 57327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231700</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-28 07:17:41 -0700</bug_when>
    <thetext>Addressed all comments.  Given darin&apos;s review of WebKit/chromium, Andrei&apos;s review of the domain specific stuff, I think you can easily give a final r+ Steve?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231705</commentid>
    <comment_count>12</comment_count>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-05-28 07:31:01 -0700</bug_when>
    <thetext>Committed r60357: &lt;http://trac.webkit.org/changeset/60357&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57260</attachid>
            <date>2010-05-27 11:07:43 -0700</date>
            <delta_ts>2010-05-27 12:12:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39850-20100527190740.patch</filename>
            <type>text/plain</type>
            <size>75388</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGVjODQ1YTFiNDBmMzE5NjBiNGY4ZmFkMDZhZTQ0MWI5ZTU1ZjdiNy4uMjUyNDA3ZDVkZTk1MDJh
ZWE2YzE4Y2ZmYTA3YjRiNzdmNjQ0YzgyZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw4MSBAQAorMjAxMC0wNS0yNyAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgSW5kZXhlZERCJ3MgSURCSW5kZXgKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODUwCisKKyAgICAg
ICAgRmxlc2ggb3V0IElEQkluZGV4IGFzIG11Y2ggYXMgcG9zc2libGUgdW50aWwgQW5kcmVpIGZp
bmlzaGVzCisgICAgICAgIGhpcyBwYXRjaCB0byBnZXQgYXJvdW5kIHBhc3NpbmcgRnJhbWUqJ3Mg
YWxsIGFyb3VuZC4gIEkgYWxzbworICAgICAgICBjbGVhbmVkIHVwIGEgYnVuY2ggb2YgZXhpc3Rp
bmcgZmlsZXMgYXMgSSBub3RpY2VkIHN0eWxlCisgICAgICAgIHZpb2xhdGlvbnMgKHdoaWxlIGJh
c2luZyBteSBuZXcgZmlsZXMgb2ZmIG9mIHRoZSBvbGQpLgorCisgICAgICAgIE5vdCBob29rZWQg
dXAgZW5vdWdoIHRvIHRlc3QuICBXaWxsIGFkZCB0ZXN0cyBzb29uLgorCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSURCQW55Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElE
QkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkFueS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OmlkYkluZGV4UmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OnNldCk6CisgICAgICAgICogc3RvcmFnZS9J
REJBbnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6KToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2UuaDoKKyAgICAg
ICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRh
dGFiYXNlRXJyb3I6Oik6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbDoK
KyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmg6CisgICAgICAgICogc3Rv
cmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRh
YmFzZUltcGwuY3BwOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmg6CisgICAg
ICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVl
c3QuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXguaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpJREJJbmRleDo6fklEQkluZGV4KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4
SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjpJREJJbmRl
eEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjp+SURCSW5kZXhJbXBsKToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4SW1wbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW1w
bDo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEltcGw6OmtleVBhdGgpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjp1bmlxdWUpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCSW5kZXhSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleFJl
cXVlc3Q6OklEQkluZGV4UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleFJlcXVl
c3Q6On5JREJJbmRleFJlcXVlc3QpOgorICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhSZXF1ZXN0OjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhSZXF1ZXN0OjpuYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4UmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRl
eFJlcXVlc3Q6OnVuaXF1ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQk9iamVjdFN0b3JlOjppbmRleE5hbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
aW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnJlbW92ZUluZGV4KToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmg6CisgICAgICAgICogc3RvcmFnZS9J
REJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJl
cXVlc3Q6OmluZGV4TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OmluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVt
b3ZlSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0Lmg6Cisg
ICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsOgorICAgICAgICAqIHN0
b3JhZ2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDUtMjcgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwg
RmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggOWVhNjk1MjljMGEyYjQ5Mjg3ZmUxODlhNTA3NmM2OWQ5YjZhYjI3Yy4u
MmE4ZTZkYzc4ODNlNDdkYTNhYjUyM2E0MDM0OTQxMmIwMTc3ZGE2NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzMCw2ICsy
MzAsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJFdmVudC5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0
LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9y
YWdlL0lEQlN1Y2Nlc3NFdmVudC5pZGwnLApAQCAtMzM2Niw2ICszMzY3LDExIEBACiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJFdmVudC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9y
RXZlbnQuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaCcsCisgICAg
ICAgICAgICAnc3RvcmFnZS9JREJJbmRleC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQklu
ZGV4SW1wbC5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhJbXBsLmgnLAorICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9JREJJbmRleFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKaW5kZXggZGZkZDIxNmY5ZmJhZTg2N2I1MGU3ZjQzYWY1
MjBiYWQ3NzQ1NzM5Yy4uODU3MGFlZmFhNGNhYTZmYTU3M2Y0NTAwNDIxNWY3MWIzYzg3NmYxYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKQEAgLTM2LDkgKzM2LDExIEBA
CiAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZVJlcXVlc3QuaCIK
KyNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJl
cXVlc3QuaCIKICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
SlNJREJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lEQkluZGV4UmVxdWVzdC5oIgog
I2luY2x1ZGUgIkpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCkBA
IC01MywxMCArNTUsMTIgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSURCQW55KiBpZGJBbnkpCiAgICAgICAgIHJldHVybiBq
c051bGwoKTsKIAogICAgIHN3aXRjaCAoaWRiQW55LT50eXBlKCkpIHsKLSAgICBjYXNlIElEQkFu
eTo6VW5kZWZpbmVkVHlwZToKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CisgICAgY2Fz
ZSBJREJBbnk6Ok51bGxUeXBlOgorICAgICAgICByZXR1cm4ganNOdWxsKCk7CiAgICAgY2FzZSBJ
REJBbnk6OklEQkRhdGFiYXNlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMs
IGdsb2JhbE9iamVjdCwgaWRiQW55LT5pZGJEYXRhYmFzZVJlcXVlc3QoKSk7CisgICAgY2FzZSBJ
REJBbnk6OklEQkluZGV4UmVxdWVzdFR5cGU6CisgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgaWRiQW55LT5pZGJJbmRleFJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6
OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCwgaWRiQW55LT5pZGJPYmplY3RTdG9yZVJlcXVlc3QoKSk7CiAgICAgY2FzZSBJ
REJBbnk6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3RUeXBlOgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92
OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCmluZGV4IDBkYjJhODBiZDI3M2QwMDFmNzRmNTRh
YWMzZTg2ZTQ2OWRjZGRlNzYuLjEyZGM1YmQ5YTFiMjQ3ZGU4YjU1NDMzM2YwZmUwY2ZjOTE3OTVk
MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9t
LmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKIAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgIlY4SURCRGF0YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiVjhJREJJbmRleFJl
cXVlc3QuaCIKICNpbmNsdWRlICJWOElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIgogI2luY2x1ZGUg
IlY4SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogCkBAIC00NywxMCArNDgsMTIgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgICAgICByZXR1cm4gdjg6Ok51
bGwoKTsKIAogICAgIHN3aXRjaCAoaW1wbC0+dHlwZSgpKSB7Ci0gICAgY2FzZSBJREJBbnk6OlVu
ZGVmaW5lZFR5cGU6Ci0gICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisgICAgY2FzZSBJ
REJBbnk6Ok51bGxUeXBlOgorICAgICAgICByZXR1cm4gdjg6Ok51bGwoKTsKICAgICBjYXNlIElE
QkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAgICAgcmV0dXJuIHRvVjgoaW1wbC0+
aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOworICAgIGNhc2UgSURCQW55OjpJREJJbmRleFJlcXVlc3RU
eXBlOgorICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJJbmRleFJlcXVlc3QoKSk7CiAgICAg
Y2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGU6CiAgICAgICAgIHJldHVybiB0
b1Y4KGltcGwtPmlkYk9iamVjdFN0b3JlUmVxdWVzdCgpKTsKICAgICBjYXNlIElEQkFueTo6SW5k
ZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4IGI1YWJhMGIzZTg5MGU5
NjVkODFjNDAwYTJhMjEzM2ZkNmZiM2E1YzYuLjczYjBkNzQ3NzBjY2E2NGQyMTdhN2IxOTU4MTFm
NjM3YzRmNmJhZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzIsNiArMjksNyBAQAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VSZXF1ZXN0LmgiCisjaW5j
bHVkZSAiSURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtNTgsNiArNTYsMTIgQEAgUGFzc1JlZlB0cjxJREJEYXRh
YmFzZVJlcXVlc3Q+IElEQkFueTo6aWRiRGF0YWJhc2VSZXF1ZXN0KCkKICAgICByZXR1cm4gbV9p
ZGJEYXRhYmFzZVJlcXVlc3Q7CiB9CiAKK1Bhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBJREJB
bnk6OmlkYkluZGV4UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJJbmRleFJl
cXVlc3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJJbmRleFJlcXVlc3Q7Cit9CisKIFBhc3NSZWZQ
dHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJBbnk6OmlkYk9iamVjdFN0b3JlUmVxdWVzdCgp
CiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJPYmplY3RTdG9yZVJlcXVlc3RUeXBlKTsKQEAg
LTc2LDM5ICs4MCw0NCBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gSURCQW55
OjpzZXJpYWxpemVkU2NyaXB0VmFsdWUoKQogICAgIHJldHVybiBtX3NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTsKIH0KIAordm9pZCBJREJBbnk6OnNldCgpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBV
bmRlZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBOdWxsVHlwZTsKK30KKwogdm9pZCBJREJBbnk6
OnNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gdmFsdWUpCiB7CisgICAgQVNTRVJU
KG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJREJEYXRhYmFzZVJlcXVl
c3RUeXBlOwogICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gdmFsdWU7Ci0gICAgbV9pZGJPYmpl
Y3RTdG9yZVJlcXVlc3QgPSAwOwotICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7Ci0g
ICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOworfQorCit2b2lkIElEQkFueTo6c2V0KFBh
c3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQobV90eXBlID09
IFVuZGVmaW5lZFR5cGUpOworICAgIG1fdHlwZSA9IElEQkRhdGFiYXNlUmVxdWVzdFR5cGU7Cisg
ICAgbV9pZGJJbmRleFJlcXVlc3QgPSB2YWx1ZTsKIH0KIAogdm9pZCBJREJBbnk6OnNldChQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gdmFsdWUpCiB7CisgICAgQVNTRVJUKG1fdHlw
ZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJREJPYmplY3RTdG9yZVJlcXVlc3RU
eXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKICAgICBtX2lkYk9iamVjdFN0b3Jl
UmVxdWVzdCA9IHZhbHVlOwotICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IDA7Ci0gICAg
bV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQogCiB2b2lkIElEQkFueTo6c2V0KFBhc3NS
ZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gdmFsdWUpCiB7CisgICAgQVNTRVJUKG1fdHlw
ZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
VHlwZTsKLSAgICBtX2lkYkRhdGFiYXNlUmVxdWVzdCA9IDA7Ci0gICAgbV9pZGJPYmplY3RTdG9y
ZVJlcXVlc3QgPSAwOwogICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVzdCA9IHZhbHVlOwotICAg
IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlID0gMDsKIH0KIAogdm9pZCBJREJBbnk6OnNldChQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7CisgICAgQVNTRVJUKG1fdHlw
ZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWVU
eXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKLSAgICBtX2lkYk9iamVjdFN0b3Jl
UmVxdWVzdCA9IDA7Ci0gICAgbV9pbmRleGVkRGF0YWJhc2VSZXF1ZXN0ID0gMDsKICAgICBtX3Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSA9IHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSURCQW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggZDIzZjE4ZmVi
ZTQzZTQ2YjM2NDU3YzA2ZDgyMTZkNmQxN2Y0MmFkYS4uY2YwMDQwMzI1OTUwNDEwZWZiOTg3ZDJm
NjJlMDUxZGJlNzM3ZDY1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTM4LDYgKzM1LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0YWJhc2VSZXF1ZXN0OworY2xhc3MgSURCSW5kZXhSZXF1
ZXN0OwogY2xhc3MgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OwogY2xhc3MgSW5kZXhlZERhdGFiYXNl
UmVxdWVzdDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKQEAgLTQ5LDcgKzQ3LDkgQEAg
cHVibGljOgogCiAgICAgZW51bSBUeXBlIHsKICAgICAgICAgVW5kZWZpbmVkVHlwZSA9IDAsCisg
ICAgICAgIE51bGxUeXBlLAogICAgICAgICBJREJEYXRhYmFzZVJlcXVlc3RUeXBlLAorICAgICAg
ICBJREJJbmRleFJlcXVlc3RUeXBlLAogICAgICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3RUeXBl
LAogICAgICAgICBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZSwKICAgICAgICAgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlVHlwZQpAQCAtNTgsMTEgKzU4LDE0IEBAIHB1YmxpYzoKICAgICBUeXBlIHR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIFBhc3NSZWZQdHI8SURCRGF0YWJh
c2VSZXF1ZXN0PiBpZGJEYXRhYmFzZVJlcXVlc3QoKTsKKyAgICBQYXNzUmVmUHRyPElEQkluZGV4
UmVxdWVzdD4gaWRiSW5kZXhSZXF1ZXN0KCk7CiAgICAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9y
ZVJlcXVlc3Q+IGlkYk9iamVjdFN0b3JlUmVxdWVzdCgpOwogICAgIFBhc3NSZWZQdHI8SW5kZXhl
ZERhdGFiYXNlUmVxdWVzdD4gaW5kZXhlZERhdGFiYXNlUmVxdWVzdCgpOwogICAgIFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUoKTsKIAorICAg
IHZvaWQgc2V0KCk7IC8vIEZvciAibnVsbCIuCiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJE
YXRhYmFzZVJlcXVlc3Q+KTsKKyAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVz
dD4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0Pik7CiAg
ICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Pik7CiAgICAgdm9p
ZCBzZXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKQEAgLTc0LDYgKzc3LDcg
QEAgcHJpdmF0ZToKIAogICAgIC8vIE9ubHkgb25lIG9mIHRoZSBmb2xsb3dpbmcgc2hvdWxkIGV2
ZXIgYmUgaW4gdXNlIGF0IGFueSBnaXZlbiB0aW1lLgogICAgIFJlZlB0cjxJREJEYXRhYmFzZVJl
cXVlc3Q+IG1faWRiRGF0YWJhc2VSZXF1ZXN0OworICAgIFJlZlB0cjxJREJJbmRleFJlcXVlc3Q+
IG1faWRiSW5kZXhSZXF1ZXN0OwogICAgIFJlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IG1f
aWRiT2JqZWN0U3RvcmVSZXF1ZXN0OwogICAgIFJlZlB0cjxJbmRleGVkRGF0YWJhc2VSZXF1ZXN0
PiBtX2luZGV4ZWREYXRhYmFzZVJlcXVlc3Q7CiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gbV9zZXJpYWxpemVkU2NyaXB0VmFsdWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKaW5kZXgg
NzRjMTFkODUyZjRlZGM1MGM4OTUzNmU1NDQ3YTQyNDhmOTY0NmZiOC4uZmY2MjcyYTc0ZmE5MzM4
OTk4YmU1NzRhMjAxZWQzYTBlNDYzMzcwYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lE
QkNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJDYWxsYmFja3MuaApAQCAtMzEs
NiArMzEsNyBAQAogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJEYXRh
YmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCSW5kZXguaCIKICNpbmNsdWRlICJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBAIC00Myw3ICs0
NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3MoKSB7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgPSAwOyAvLyBGb3IgIm51bGwiLgogICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pID0gMDsK
IH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKaW5kZXggNWM4MzM4NGQyMTc4NWYxN2ViYWEwYTZiYzhj
YjVjZmRmMjM5ZDEwNS4uNWJmYjNjNzgyZDk5ZGI5MTY4NzI0MGYzOWE3Y2YzNzljNDRmMjVjNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlLmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAog
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhl
IG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YK
LSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECkBAIC01OCw0ICs1NSwzIEBAIHB1YmxpYzoKICNlbmRpZgogCiAj
ZW5kaWYgLy8gSURCRGF0YWJhc2VfaAotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2VFcnJvci5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaAppbmRl
eCBjYjQ3OWMxNzFlZjAwMjhhZGRmZTgyODBkMWI5ODQ5ZDkyZjVkNzExLi4xMmRiYWUzOWZiNjMz
OWYwYzk1YjViMmE3YWM1NjJkY2VlNWUxODc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2VFcnJvci5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9y
LmgKQEAgLTQ0LDYgKzQ0LDIxIEBAIHB1YmxpYzoKICAgICB9CiAgICAgfklEQkRhdGFiYXNlRXJy
b3IoKSB7IH0KIAorICAgIC8vIEtlZXkgaW4gc3luYyB3aXRoIHdoYXQncyBpbiB0aGUgLmlkbCBm
aWxlLgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAgVU5LTk9XTl9FUlIgPSAwLAorICAg
ICAgICBOT05fVFJBTlNJRU5UX0VSUiA9IDEsCisgICAgICAgIE5PVF9GT1VORF9FUlIgPSAyLAor
ICAgICAgICBDT05TVFJBSU5UX0VSUiA9IDMsCisgICAgICAgIERBVEFfRVJSID0gNCwKKyAgICAg
ICAgTk9UX0FMTE9XRURfRVJSID0gNSwKKyAgICAgICAgU0VSSUFMX0VSUiA9IDExLAorICAgICAg
ICBSRUNPVkVSQUJMRV9FUlIgPSAyMSwKKyAgICAgICAgVFJBTlNJRU5UX0VSUiA9IDMxLAorICAg
ICAgICBUSU1FT1VUX0VSUiA9IDMyLAorICAgICAgICBERUFETE9DS19FUlIgPSAzMworICAgIH07
CisKICAgICB1bnNpZ25lZCBzaG9ydCBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CiAg
ICAgdm9pZCBzZXRDb2RlKHVuc2lnbmVkIHNob3J0IHZhbHVlKSB7IG1fY29kZSA9IHZhbHVlOyB9
CiAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwKaW5kZXggNmM2MDE5Y2ZlYTU4OTFhNDI2
YmEzZTc4M2I1Y2YwZTgxMmRhOWQ3OS4uZTMyNmFmYzYxOWI1ZTYzNGRkYTY3ZTc3MGVjOTcyNzAw
MzUxMThmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRs
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbApAQCAtMzAsNiArMzAs
MTggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlv
bmFsPUlOREVYRURfREFUQUJBU0UKICAgICBdIElEQkRhdGFiYXNlRXJyb3IgeworICAgICAgICBj
b25zdCB1bnNpZ25lZCBzaG9ydCBVTktOT1dOX0VSUiA9IDA7CisgICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IE5PTl9UUkFOU0lFTlRfRVJSID0gMTsKKyAgICAgICAgY29uc3QgdW5zaWduZWQg
c2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENP
TlNUUkFJTlRfRVJSID0gMzsKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9FUlIg
PSA0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA1Owor
ICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTRVJJQUxfRVJSID0gMTE7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFJFQ09WRVJBQkxFX0VSUiA9IDIxOworICAgICAgICBjb25zdCB1
bnNpZ25lZCBzaG9ydCBUUkFOU0lFTlRfRVJSID0gMzE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVk
IHNob3J0IFRJTUVPVVRfRVJSID0gMzI7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERF
QURMT0NLX0VSUiA9IDMzOworCiAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCBjb2Rl
OwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3NhZ2U7CiAgICAgfTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5oIGIvV2ViQ29yZS9zdG9y
YWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKaW5kZXggZDk0YTdmOWZhZmI4MWU3ZTQ5Y2JiYTA1
N2M1YzgyYTIwODQ0OTBkMC4uNWE3MmQwMzhhNDhmODZjNjQ5ZDIyOWQyNzVlYzAwZTM2NzA4MmUx
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKQEAgLTQzLDcgKzQzLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkRhdGFiYXNlRXhjZXB0
aW9uKCkpOwogICAgIH0KICAgICB+SURCRGF0YWJhc2VFeGNlcHRpb24oKSB7IH0KLSAgICAKKyAg
IAogICAgIHVuc2lnbmVkIHNob3J0IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAg
ICB2b2lkIHNldENvZGUodW5zaWduZWQgc2hvcnQgdmFsdWUpIHsgbV9jb2RlID0gdmFsdWU7IH0K
ICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZTsgfQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKaW5kZXggODk4ZTVmOWMxMzIyMjY3NTMw
OWFkYTc3OTQzMjUxOTYxMThlOGZmZC4uMGJiZmVlNDM5MjI3MjFlZTQ2ODEzMDVmOTNkZDM0Y2Yw
YzY0OTVlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9u
LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCkBAIC0z
MCwxNyArMzAsNiBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAg
Q29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogICAgIF0gSURCRGF0YWJhc2VFeGNlcHRpb24g
ewotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTktOT1dOX0VSUiA9IDA7Ci0gICAgICAg
IGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTl9UUkFOU0lFTlRfRVJSID0gMTsKLSAgICAgICAgY29u
c3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDI7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gMzsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgREFUQV9FUlIgPSA0OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBOT1RfQUxMT1dF
RF9FUlIgPSA1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTRVJJQUxfRVJSID0gMTE7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFQ09WRVJBQkxFX0VSUiA9IDIxOwotICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUUkFOU0lFTlRfRVJSID0gMzE7Ci0gICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMzI7Ci0gICAgICAgIGNvbnN0IHVuc2ln
bmVkIHNob3J0IERFQURMT0NLX0VSUiA9IDMzOwogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQg
c2hvcnQgY29kZTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBtZXNzYWdlOwogICAgIH07
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcCBiL1dlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCmluZGV4IDc3NTU5NWYyNjc1N2M0ZmQ2ZTI5
NTA4MDM1OWFmMzhjMmVmNDFiNTEuLjY1NWJkNTkwOWZjNzBkZmVjNGRmZmE5ZDgyMWNiMDYxZWI2
MWRlMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCkBAIC0xMCw5ICsxMCw2IEBA
CiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzAsOSArMjcsNiBAQAog
I2luY2x1ZGUgIklEQkRhdGFiYXNlSW1wbC5oIgogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5o
IgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCiAKQEAgLTU4LDQgKzUyLDMgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBJREJE
YXRhYmFzZUltcGw6Om9iamVjdFN0b3JlcygpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1w
bC5oCmluZGV4IDhkYjc1NWU5ZWUyOWZmNzIxZjRmMTZhYzhjOTkwMjlhOThmMzY5NzQuLjY3OTAx
N2RjYjYzNzc4M2ZjNjM3YTE4OTVkZWYyNmMyMWQ0YmY0YmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2VJbXBsLmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECkBAIC0zMCw3ICsyNyw2IEBACiAjZGVmaW5lIElEQkRhdGFiYXNlSW1wbF9oCiAKICNp
bmNsdWRlICJJREJEYXRhYmFzZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIApAQCAtNjMsNCArNTksMyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNlbmRpZiAvLyBJREJEYXRhYmFzZUltcGxfaAotCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJE
YXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDMxZTA1NTRmZTQzNjVhZjJiZDg1NDVhYmU4NzkyMmIz
MTVhZjQ4YmUuLjMxMWZiMjUwMmVhNWFkNjAxOGE3NWE5NzZiZWU5OTRiMjk4NTFhMzYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtNDcsNCArNDQsMyBAQCBJREJEYXRh
YmFzZVJlcXVlc3Q6On5JREJEYXRhYmFzZVJlcXVlc3QoKQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJE
YXRhYmFzZVJlcXVlc3QuaAppbmRleCBjY2I4Mjg2ZTA2OTA2NzAzMTgwZjA3YmZiOWJhNTc2M2U0
YzE3MTU1Li4yNmY2YTg2MzU3NGZjMzViYzFjYTUzOTJlMjlkNGFhNDExZWYwNjUxIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMjUsMTYgKzIyLDE1IEBACiAgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKwogI2lmbmRlZiBJREJEYXRhYmFzZVJlcXVlc3Rf
aAogI2RlZmluZSBJREJEYXRhYmFzZVJlcXVlc3RfaAogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlz
dC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5o
PgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTY1LDQgKzYxLDMgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjZW5kaWYgLy8gSURCRGF0YWJhc2VSZXF1ZXN0X2gKLQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbAppbmRleCA5YjUxODIwZDBhYTQzZGE0MzQ3M2Vm
ZGI0Njk4OWExNjhiMTZiNDc4Li5iODM1YWNlMWY5ZTA5ZDE3NTljOGUwMTE1YmQ0NWE4OTY5ZmU0
ZTcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbApAQCAtMTAsOSArMTAs
NiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAg
KgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTI1LDYgKzIyLDcg
QEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworCiBtb2R1bGUgc3RvcmFn
ZSB7CiAKICAgICBpbnRlcmZhY2UgWwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQklu
ZGV4LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMGU4Y2FiMDYx
ZTFkZGRhNzQ4NDFkY2MwZjNiOWU0Mjg2NWZmMDY2Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkluZGV4LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURC
SW5kZXhfaAorI2RlZmluZSBJREJJbmRleF9oCisKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgSURCSW5kZXggOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJJbmRleD4gewor
cHVibGljOgorICAgIHZpcnR1YWwgfklEQkluZGV4KCkgeyB9CisKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBuYW1lKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSA9IDA7CisgICAgdmly
dHVhbCBib29sIHVuaXF1ZSgpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmCisKKyNlbmRpZiAvLyBJREJJbmRleF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCSW5kZXhJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEltcGwuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmY3ODkzOWEwYzFiNDkxMzI0NzFlZGEyN2M5ZDgzODQwYzFlNDkxM2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhJbXBsLmNwcApAQCAtMCwwICsx
LDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkluZGV4SW1w
bC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworSURCSW5kZXhJbXBsOjpJREJJbmRleEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQorICAgIDogbV9uYW1lKG5hbWUpCisgICAg
LCBtX2tleVBhdGgoa2V5UGF0aCkKKyAgICAsIG1fdW5pcXVlKHVuaXF1ZSkKK3sKK30KKworSURC
SW5kZXhJbXBsOjp+SURCSW5kZXhJbXBsKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCSW5kZXhJbXBsLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhJbXBs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjAwMzRkNWM1OWJlMzA1ODFiYWFmMmU0YzA1OWVkYzgwYzI5ZGFkOAot
LS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleEltcGwuaApAQCAtMCww
ICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJJbmRleEltcGxfaAorI2RlZmluZSBJREJJbmRl
eEltcGxfaAorCisjaW5jbHVkZSAiSURCSW5kZXguaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkluZGV4SW1wbCA6IHB1
YmxpYyBJREJJbmRleCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCSW5kZXg+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1
bmlxdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQkluZGV4SW1wbChu
YW1lLCBrZXlQYXRoLCB1bmlxdWUpKTsKKyAgICB9CisgICAgdmlydHVhbCB+SURCSW5kZXhJbXBs
KCk7CisKKyAgICAvLyBJbXBsZW1lbnRzIElEQkluZGV4CisgICAgdmlydHVhbCBTdHJpbmcgbmFt
ZSgpIHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGtleVBhdGgoKSB7IHJl
dHVybiBtX2tleVBhdGg7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkgeyByZXR1cm4gbV91
bmlxdWU7IH0KKworcHJpdmF0ZToKKyAgICBJREJJbmRleEltcGwoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKTsKKworICAgIFN0cmluZyBtX25h
bWU7CisgICAgU3RyaW5nIG1fa2V5UGF0aDsKKyAgICBib29sIG1fdW5pcXVlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2VuZGlmIC8vIElEQkluZGV4SW1wbF9o
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcCBiL1dlYkNv
cmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwYWVlNGJmNDg4OWI3
ODZmNjhmYzdhNjY4ZjVmODA3MDhkYjRkMWQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkluZGV4UmVxdWVzdC5oIgorCisjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURCSW5kZXhSZXF1
ZXN0OjpJREJJbmRleFJlcXVlc3QoUGFzc1JlZlB0cjxJREJJbmRleD4gaWRiSW5kZXgpCisgICAg
OiBtX2lkYkluZGV4KGlkYkluZGV4KQoreworfQorCitJREJJbmRleFJlcXVlc3Q6On5JREJJbmRl
eFJlcXVlc3QoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJJ
bmRleFJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jZTZmYzU3YmU1NDU3MTEyZjA0OWU4OTc1M2UxMTEwMTlkYmNmNTdmCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5oCkBAIC0wLDAgKzEsNjIg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIElEQkluZGV4UmVxdWVzdF9oCisjZGVmaW5lIElEQkluZGV4UmVx
dWVzdF9oCisKKyNpbmNsdWRlICJJREJJbmRleC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkluZGV4UmVxdWVzdCA6IHB1
YmxpYyBSZWZDb3VudGVkPElEQkluZGV4UmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gY3JlYXRlKFBhc3NSZWZQdHI8SURCSW5kZXg+IGlk
YkluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJJbmRleFJlcXVl
c3QoaWRiSW5kZXgpKTsKKyAgICB9CisgICAgfklEQkluZGV4UmVxdWVzdCgpOworCisgICAgLy8g
SW1wbGVtZW50IHRoZSBJREwKKyAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1faWRi
SW5kZXgtPm5hbWUoKTsgfQorICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGJJbmRleC0+a2V5UGF0aCgpOyB9CisgICAgYm9vbCB1bmlxdWUoKSBjb25zdCB7IHJldHVybiBt
X2lkYkluZGV4LT51bmlxdWUoKTsgfQorCitwcml2YXRlOgorICAgIElEQkluZGV4UmVxdWVzdChQ
YXNzUmVmUHRyPElEQkluZGV4Pik7CisKKyAgICBSZWZQdHI8SURCSW5kZXg+IG1faWRiSW5kZXg7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURC
SW5kZXhSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVl
c3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YWQzNWY1MmYwNTU1OGFiOTQxYzAwNmYwZWIyZTUxMDkzOTQxMTNiMQotLS0gL2Rldi9udWxsCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaWRsCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25k
aXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJJbmRleFJlcXVlc3QgeworICAgICAg
ICAvLyBGSVhNRTogQ29tcGxldGUgdGhpcyBmaWxlLgorCisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmlu
ZyBrZXlQYXRoOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiB1bmlxdWU7Cisg
ICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggMGEwY2QzY2RjNzU3
OTdkYmQ0NDg5MTE2NzAzNDI2YzhkZDdiM2I2Ny4uMmY0Zjc5YmY1YzM1NDVmMjJkOWE4YTVkNjFi
YmIxOWE1ZjFhNjVkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3Jl
LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwCkBAIC0yNiwxMSAr
MjYsNTkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5o
IgogCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2luY2x1ZGUgIklEQkNhbGxiYWNrcy5o
IgorI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJJREJJbmRleEltcGwu
aCIKKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLS8vIEZJWE1FOiBXcml0ZS4KK0lEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZSgpCit7
Cit9CisKK0lEQk9iamVjdFN0b3JlOjp+SURCT2JqZWN0U3RvcmUoKQoreworfQorCitQYXNzUmVm
UHRyPERPTVN0cmluZ0xpc3Q+IElEQk9iamVjdFN0b3JlOjppbmRleE5hbWVzKCkgY29uc3QKK3sK
KyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1lcyA9IERPTVN0cmluZ0xpc3Q6OmNy
ZWF0ZSgpOworICAgIGZvciAoSW5kZXhNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9pbmRleGVz
LmJlZ2luKCk7IGl0ICE9IG1faW5kZXhlcy5lbmQoKTsgKytpdCkKKyAgICAgICAgaW5kZXhOYW1l
cy0+YXBwZW5kKGl0LT5maXJzdCk7CisgICAgcmV0dXJuIGluZGV4TmFtZXMucmVsZWFzZSgpOwor
fQorCit2b2lkIElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MpCit7CisgICAgaWYgKG1faW5kZXhlcy5jb250YWlucyhuYW1lKSkgewor
ICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRh
dGFiYXNlRXJyb3I6OkNPTlNUUkFJTlRfRVJSLCAiSW5kZXggbmFtZSBhbHJlYWR5IGV4aXN0cy4i
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBSZWZQdHI8SURCSW5kZXg+IGluZGV4
ID0gSURCSW5kZXhJbXBsOjpjcmVhdGUobmFtZSwga2V5UGF0aCwgdW5pcXVlKTsKKyAgICBBU1NF
UlQoaW5kZXgtPm5hbWUoKSA9PSBuYW1lKTsKKyAgICBtX2luZGV4ZXMuc2V0KG5hbWUsIGluZGV4
KTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhpbmRleC5yZWxlYXNlKCkpOworfQorCitQYXNz
UmVmUHRyPElEQkluZGV4PiBJREJPYmplY3RTdG9yZTo6aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1l
KQoreworICAgIHJldHVybiBtX2luZGV4ZXMuZ2V0KG5hbWUpOworfQorCit2b2lkIElEQk9iamVj
dFN0b3JlOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgaWYgKCFtX2luZGV4ZXMuY29udGFpbnMobmFtZSkp
IHsKKyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJ
REJEYXRhYmFzZUVycm9yOjpOT1RfRk9VTkRfRVJSLCAiSW5kZXggbmFtZSBkb2VzIG5vdCBleGlz
dC4iKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX2luZGV4ZXMucmVtb3ZlKG5h
bWUpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKCk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmggYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAppbmRleCA3MzY0MDI2OTI1YzhmMGE3OGRl
MzZmOGZkZWFlNzA4MDAzMmI4OTI3Li5jMWNlMTI5ZTdmOTg5MzBkZDczYzcxYjllM2NlM2I3NTJk
ZjFmYzc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAorKysg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaApAQCAtMjcsMjggKzI3LDQyIEBACiAj
ZGVmaW5lIElEQk9iamVjdFN0b3JlX2gKIAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisj
aW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NU3RyaW5nTGlzdDsKK2NsYXNzIElEQkluZGV4
OworY2xhc3MgSURCQ2FsbGJhY2tzOworCisvLyBGSVhNRTogVGhpcyBuZWVkcyB0byBiZSBzcGxp
dCBpbnRvIGFuIGludGVyZmFjZSBhbmQgSW1wbCBjbGFzc2VzLgogY2xhc3MgSURCT2JqZWN0U3Rv
cmUgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJPYmplY3RTdG9yZT4gewogcHVibGljOgog
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBjcmVhdGUoKQogICAgIHsKICAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJPYmplY3RTdG9yZSgpKTsKICAgICB9Ci0gICAg
dmlydHVhbCB+SURCT2JqZWN0U3RvcmUoKSB7IH0KKyAgICB2aXJ0dWFsIH5JREJPYmplY3RTdG9y
ZSgpOwogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBT
dHJpbmcga2V5UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5UGF0aDsgfQorICAgIFBhc3NSZWZQ
dHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1lcygpIGNvbnN0OworCisgICAgdm9pZCBjcmVhdGVJ
bmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlx
dWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAgUGFzc1JlZlB0cjxJREJJbmRleD4g
aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lkIHJlbW92ZUluZGV4KGNvbnN0IFN0
cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKIAogcHJpdmF0ZToKLSAgICBJ
REJPYmplY3RTdG9yZSgpIHsgfQorICAgIElEQk9iamVjdFN0b3JlKCk7CiAKICAgICBTdHJpbmcg
bV9uYW1lOwogICAgIFN0cmluZyBtX2tleVBhdGg7CisgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgUmVmUHRyPElEQkluZGV4PiA+IEluZGV4TWFwOworICAgIEluZGV4TWFwIG1faW5kZXhlczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlUmVxdWVzdC5jcHAKaW5kZXggMDA4ZTdiNDM0ZWMzN2FjZjlmN2ZiNzlhNmVhZmNjMzdkMmVl
MjJmOS4uMzU3NjNjYjBjZTA3MDI1ZTk2NDJjMTk0MmFmYjczZDVlZGUzMThjNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKQEAgLTIyLDEwICsyMiwxMyBAQAog
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKIAorI2luY2x1ZGUgIkRPTVN0
cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJBbnkuaCIKKyNpbmNsdWRlICJJREJJbmRleFJlcXVl
c3QuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CkBAIC0z
NCw4ICszNyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotSURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gaWRiU3RvcmUpIAotICAgIDogbV9vYmplY3RT
dG9yZShpZGJTdG9yZSkKK0lEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1
ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCT2JqZWN0
U3RvcmU+IGlkYk9iamVjdFN0b3JlKSAKKyAgICA6IG1fb2JqZWN0U3RvcmUoaWRiT2JqZWN0U3Rv
cmUpCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQoY29udGV4dCkKIHsKICAgICBtX3Ro
aXMgPSBJREJBbnk6OmNyZWF0ZSgpOwpAQCAtNDQsMTYgKzQ3LDE5IEBAIElEQk9iamVjdFN0b3Jl
UmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQsIFBhCiAKIFN0cmluZyBJREJPYmplY3RTdG9yZVJlcXVlc3Q6Om5hbWUoKSBjb25zdAog
ewotICAgIEFTU0VSVChtX29iamVjdFN0b3JlKTsKICAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+
bmFtZSgpOwogfQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjprZXlQYXRoKCkgY29u
c3QKIHsKLSAgICBBU1NFUlQobV9vYmplY3RTdG9yZSk7CiAgICAgcmV0dXJuIG1fb2JqZWN0U3Rv
cmUtPmtleVBhdGgoKTsKIH0KIAorUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBJREJPYmplY3RT
dG9yZVJlcXVlc3Q6OmluZGV4TmFtZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX29iamVjdFN0
b3JlLT5pbmRleE5hbWVzKCk7Cit9CisKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0
U3RvcmVSZXF1ZXN0OjpnZXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSkK
IHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkBAIC05Miw2ICs5OCwyNyBAQCBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlKFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdAogICAgIHJldHVybiAwOwogfQogCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKSBjb25zdAoreworICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQuCisgICAgVU5VU0VEX1BBUkFNKG5hbWUpOworICAgIFVOVVNFRF9QQVJBTShr
ZXlQYXRoKTsKKyAgICBVTlVTRURfUEFSQU0odW5pcXVlKTsKKyAgICByZXR1cm4gMDsKK30KKwor
UGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6aW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIHJldHVybiBJREJJbmRleFJlcXVlc3Q6
OmNyZWF0ZShtX29iamVjdFN0b3JlLT5pbmRleChuYW1lKSk7Cit9CisKK1Bhc3NSZWZQdHI8SURC
UmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcm
IG5hbWUpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICBVTlVTRURfUEFS
QU0obmFtZSk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlUmVxdWVzdC5oCmluZGV4IDdkODcxNGViN2YzNDhlYzViMjNkNzdjMTA5NzY0OWE5OGJk
ZjhlNGIuLmYwM2I0MDY1ZmFhYmU1ZDljYWQzMWQ1MWNkNzA4NDJkODM3Mzk2OWEgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTM3LDcgKzM3LDkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01TdHJpbmdMaXN0OwogY2xhc3MgSURCQW55Owor
Y2xhc3MgSURCSW5kZXhSZXF1ZXN0OwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNs
YXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIApAQCAtNTEsNiArNTMsNyBAQCBwdWJsaWM6CiAK
ICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyBrZXlQYXRoKCkgY29uc3Q7Cisg
ICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBpbmRleE5hbWVzKCkgY29uc3Q7CiAKICAgICBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4ga2V5KTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZChQYXNzUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBrZXkgPSAwKTsKQEAgLTU4LDYgKzYxLDEwIEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IGFkZE9yTW9kaWZ5KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2
YWx1ZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSA9IDApOwogICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcmVtb3ZlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBrZXkpOwogCisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjcmVhdGVJbmRleChjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUgPSBmYWxz
ZSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IGluZGV4KGNvbnN0IFN0
cmluZyYgbmFtZSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiByZW1vdmVJbmRl
eChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworCiBwcml2YXRlOgogICAgIElEQk9iamVjdFN0
b3JlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmplY3RT
dG9yZT4pOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1
ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCmluZGV4
IGM3OWEyZThlYWQ0ZTFhZmIwNWI2ZDY5ZTgyZjNmZGRlZTIzMjY0ZTAuLjJkNGM4YmVhZDYzYjg2
YTI2NzE4OGJjM2UwYjM5YTAyMjJkNzkzMWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
REJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZVJlcXVlc3QuaWRsCkBAIC0yOSwxMyArMjksMTggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAg
ICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiAgICAgXSBJREJPYmplY3RTdG9yZVJl
cXVlc3QgewogICAgICAgICBJREJSZXF1ZXN0IGdldChpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUg
a2V5KTsKKyAgICAgICAgLy8gRklYTUU6IENvbWUgdG8gY29uY2Vuc3VzIHJlIGdldEFsbC4KICAg
ICAgICAgSURCUmVxdWVzdCBhZGQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBb
T3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOwogICAgICAgICBJREJSZXF1ZXN0
IG1vZGlmeShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFsdWUsIGluIFtPcHRpb25hbF0gU2Vy
aWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CiAgICAgICAgIElEQlJlcXVlc3QgYWRkT3JNb2RpZnko
aW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSBrZXkpOwogICAgICAgICBJREJSZXF1ZXN0IHJlbW92ZShpbiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUga2V5KTsKKyAgICAgICAgLy8gRklYTUU6IHdyaXRlIG9wZW5DdXJzb3IKKyAg
ICAgICAgSURCUmVxdWVzdCBjcmVhdGVJbmRleChpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3Ry
aW5nIGtleVBhdGgsIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1bmlxdWUpOworICAgICAgICBJREJJ
bmRleFJlcXVlc3QgaW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUpOworICAgICAgICBJREJSZXF1ZXN0
IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsKIAogICAgICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcga2V5UGF0aDsKLSAgICAgICAgLy8gRklYTUU6IGFkZCBpbmRleE5hbWVzIHByb3BlcnR5Lgor
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nTGlzdCBpbmRleE5hbWVzOwogICAg
IH07CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKaW5kZXggYTc3Mzc3ZjJiZTdiNGU2MTI5MTNiMjJl
NDE0NDFkMmE0MDIzMTRjMC4uZjg2YWJjYjdkNmI0ZDlkM2Y2OTgxNWFjMDcyYTRlMmE4NjU4NzI3
MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkV2
ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
SURCRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIklEQlN1Y2Nlc3NFdmVudC5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTY1LDEyICs2NiwyNCBAQCB2b2lkIElEQlJl
cXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBlcnJvcikKICAgICBt
X2Vycm9yID0gZXJyb3I7CiB9CiAKK3ZvaWQgSURCUmVxdWVzdDo6b25TdWNjZXNzKCkKK3sKKyAg
ICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHQtPnNldCgpOworfQorCiB2b2lkIElEQlJl
cXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSkKIHsK
ICAgICBvbkV2ZW50Q29tbW9uKCk7CiAgICAgbV9yZXN1bHQtPnNldChJREJEYXRhYmFzZVJlcXVl
c3Q6OmNyZWF0ZShpZGJEYXRhYmFzZSkpOwogfQogCit2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCkKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7
CisgICAgbV9yZXN1bHQtPnNldChJREJJbmRleFJlcXVlc3Q6OmNyZWF0ZShpZGJJbmRleCkpOwor
fQorCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKQogewogICAgIG9uRXZlbnRDb21tb24oKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCUmVxdWVzdC5oCmluZGV4IDBjMzdjOTY2ZmViNGNmYWU1NWViNmQzMDI1N2M5Mzc0MzQ3
OGMxYTAuLjU4MzZmNzg2YTU1NGJiYmYyYzIwMDU2ZTgzOGI4ZTYxNTU5YTE5MjAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QlJlcXVlc3QuaApAQCAtNjMsNyArNjMsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBJREJDYWxsYmFj
a3MKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCiAgICAgdmly
dHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4Pik7CiAgICAgdmlydHVhbCB2b2lk
IG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIC8vIEZJ
WE1FOiBIYXZlIG9uZSBvblN1Y2Nlc3MgZnVuY3Rpb24gZm9yIGVhY2ggcG9zc2libGUgcmVzdWx0
IHR5cGUuCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1
ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbAppbmRl
eCAwNjI5YTMwODNjYzdlNDAwMGYzNWI4YTk0NjhjNzA5NGZhZmVkMmJmLi5hODdlMDMzMDBiZTcw
NGU4MjZlZjNmZDA3ZmJkODY4Nzk0MTliODZiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0g
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRApAQCAtMjUsMTEgKzIyLDEzIEBACiAgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
ICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KKwogbW9kdWxlIHN0b3JhZ2UgewogCiAgICAgaW50ZXJmYWNlIFsK
ICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogICAgIF0gSW5kZXhlZERhdGFi
YXNlUmVxdWVzdCB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBubyBsb25nZXIgcmFp
c2UuCiAgICAgICAgIElEQlJlcXVlc3Qgb3BlbihpbiBET01TdHJpbmcgbmFtZSwgaW4gRE9NU3Ry
aW5nIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmFpc2VzKElEQkRhdGFiYXNlRXhjZXB0aW9u
KTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjE1ZWY5MjJlZTNiZjZmOWIyNTc5MzI5ZWMyZjUy
Yjg0MWMwZjMwMS4uNzYwOTVmMzAyMThjYjYyMTc1NDVhM2ZmZDViMzkxMzUxNDFlNDFhZSAxMDA2
NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTAtMDUtMjcgIEplcmVteSBPcmxvdyAgPGpv
cmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIEluZGV4ZWREQidzIElEQkluZGV4CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTg1MAorCisgICAgICAgIEFkZCBXZWJLaXQg
bGF5ZXIgZm9yIElEQkluZGV4LgorCisgICAgICAgICogV2ViS2l0Lmd5cDoKKyAgICAgICAgKiBw
dWJsaWMvV2ViQ29tbW9uLmg6CisgICAgICAgICogcHVibGljL1dlYklEQkNhbGxiYWNrcy5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6CisgICAgICAgICogcHVibGljL1dlYklE
QkRhdGFiYXNlLmg6CisgICAgICAgICogcHVibGljL1dlYklEQkluZGV4Lmg6IEFkZGVkLgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6fldlYklEQkluZGV4KToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCSW5kZXg6Om5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6a2V5
UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4Ojp1bmlxdWUpOgorICAgICAgICAq
IHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDYWxsYmFj
a3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuaDoK
KyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VQcm94eS5jcHA6CisgICAgICAgICogc3JjL0lEQkRh
dGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBzcmMvSURCSW5kZXhQcm94eS5jcHA6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhQcm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4UHJveHk6OklEQkluZGV4UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhQcm94eTo6fklEQkluZGV4UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhQ
cm94eTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleFByb3h5OjprZXlQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UHJveHk6OnVuaXF1ZSk6CisgICAgICAgICogc3Jj
L0lEQkluZGV4UHJveHkuaDogQWRkZWQuCisgICAgICAgICogc3JjL1dlYklEQkNhbGxiYWNrc0lt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNz
KToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oOgorICAgICAgICAqIHNyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwu
aDoKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6V2ViSURCSW5kZXhJbXBsKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSURCSW5kZXhJbXBsOjp+V2ViSURCSW5kZXhJbXBsKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCSW5kZXhJbXBsOjpuYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBs
OjprZXlQYXRoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjp1bmlxdWUpOgor
ICAgICAgICAqIHNyYy9XZWJJREJJbmRleEltcGwuaDogQWRkZWQuCisKIDIwMTAtMDUtMjcgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
IGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggY2E3NDA0ZTEzNTBlMGRkZTRjMzg4
ZDY5Mjc0ZTFlYzYxOGQyNzU2Yy4uOTM3ZjRiMzg4NWMzMzE5OWM0N2QwYWVkMWFmZmQ4MTFjMDY1
NTRiMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTEzOSw2ICsxMzksNyBAQAogICAgICAgICAgICAgICAg
ICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SURCRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJEYXRhYmFzZUVy
cm9yLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCSW5kZXguaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJbmRleGVkRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJ
bnB1dEV2ZW50LmgnLApAQCAtMjY2LDYgKzI2Nyw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9J
REJDYWxsYmFja3NQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJv
eHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuaCcsCisgICAg
ICAgICAgICAgICAgJ3NyYy9JREJJbmRleFByb3h5LmNwcCcsCisgICAgICAgICAgICAgICAgJ3Ny
Yy9JREJJbmRleFByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSW5kZXhlZERhdGFiYXNl
UHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5Lmgn
LAogICAgICAgICAgICAgICAgICdzcmMvSW5zcGVjdG9yQ2xpZW50SW1wbC5jcHAnLApAQCAtMzUz
LDYgKzM1Niw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUVycm9yLmNw
cCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwJywKICAgICAg
ICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oJywKKyAgICAgICAgICAgICAgICAn
c3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvV2ViSURCSW5k
ZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VDRy5jcHAnLAogICAgICAg
ICAgICAgICAgICdzcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJJbWFnZVNraWEuY3BwJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tbW9uLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbW1vbi5oCmluZGV4IGU3
ZTM4ZDM0NDQ3NmYwM2RhODExNDBjY2EwMTg5ZTk3MDQ1MmQxZmQuLjc4NzI3MjlkYWYzMjc5YTQz
MzAwZjFjNTg3NDhhYTJkOTg3ZTYxMzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViQ29tbW9uLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21tb24uaApA
QCAtMTA2LDQgKzEwNiw2IEBAIFdFQktJVF9BUEkgdm9pZCBmYWlsZWRBc3NlcnRpb24oY29uc3Qg
Y2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uCiB9IHdoaWxlICgwKQog
I2VuZGlmCiAKKyNkZWZpbmUgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpIFdFQktJVF9BU1NF
UlQoMCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaApp
bmRleCA2MTBmN2Q0NGFhMGU2MWY1YjIxMThkODc3NGVmOTU1NTU1NGQ3YjkzLi5iYmE3Yzc0NTUx
ZTFhNTAxMDRjNWM1MTA2NmRmZDQyZDFlZGJlYTllIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViSURCQ2FsbGJhY2tzLmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECkBAIC0zNSw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBXZWJJREJEYXRhYmFzZTsKIGNsYXNzIFdlYklEQkRhdGFiYXNlRXJyb3I7CitjbGFzcyBX
ZWJJREJJbmRleDsKIGNsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIAogY2xhc3MgV2Vi
SURCQ2FsbGJhY2tzIHsKQEAgLTQzLDkgKzQxLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBj
bGFzc2VzIHRoYXQgZm9sbG93IHRoZSBQSW1wbCBwYXR0ZXJuLCBwYXNzIGEgY29uc3QgcmVmZXJl
bmNlLgogICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBvd25lcnNoaXAgdG8gdGhlIGNhbGxlZSB2
aWEgYSBwb2ludGVyLgotICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdlYklEQkRhdGFi
YXNlRXJyb3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFz
ZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJJREJE
YXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgb25TdWNjZXNzKCkgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0gLy8g
Rm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkRhdGFiYXNlKikg
eyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFdlYklEQkluZGV4KikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpIHsg
V0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaCBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaAppbmRleCA4YzEwODYzNzVj
YjBlYTJiOWZiYjE1YTQ4NjhmNmY4ZDQwYzBlNTliLi4xMTI3ODQ2NjMyZTMzM2YzNTk4N2ZmMjk3
MjZlNTk5OWFhMGE1Y2VhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkRhdGFiYXNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5o
CkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1
dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAot
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YzQ4YWY3OWNhYjJl
ZTZjMDc0NWJlMzkwYjAxNjU2ZjM4Mzg5ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElU
UyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV2ViSURCSW5kZXhfaAorI2RlZmluZSBXZWJJREJJbmRleF9oCisKKyNpbmNsdWRlICJXZWJT
dHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFNlZSBjb21tZW50IGluIFdlYklu
ZGV4ZWREYXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCitj
bGFzcyBXZWJJREJJbmRleCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+V2ViSURCSW5kZXgoKSB7
IH0KKworICAgIHZpcnR1YWwgV2ViU3RyaW5nIG5hbWUoKSB7IHJldHVybiBXZWJTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleVBhdGgoKSB7IHJldHVybiBXZWJTdHJpbmcoKTsg
fQorICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKSB7IHJldHVybiBmYWxzZTsgfQorfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJJREJJbmRleF9oCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCmluZGV4IDJiZGYxNDBlNWU2NGRjOWUyNGU4
MzQwY2VhMWVlNGQ5N2E2OWYzMjMuLjNlNWYwMGFjNWRkYjdkMWM0NzQxNGY3NGM3NjAzMWQ2OTU2
YjY5N2QgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHku
Y3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgiCiAjaW5jbHVkZSAiV2Vi
SURCRGF0YWJhc2VJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgorI2lu
Y2x1ZGUgIldlYklEQkluZGV4SW1wbC5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC02MCwxMiArNjEsMjQg
QEAgdm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+IGlkYkRhdGFiYXNlRXJyb3IpCiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAor
dm9pZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+
b25TdWNjZXNzKCk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwogdm9pZCBJREJDYWxs
YmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+IGlkYkRhdGFiYXNl
KQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYktpdDo6V2ViSURCRGF0YWJh
c2VJbXBsKGlkYkRhdGFiYXNlKSk7CiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAordm9p
ZCBJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5kZXg+IGlkYklu
ZGV4KQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MobmV3IFdlYktpdDo6V2ViSURCSW5k
ZXhJbXBsKGlkYkluZGV4KSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwogdm9pZCBJ
REJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2Vz
cyhXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZShzZXJpYWxpemVkU2NyaXB0VmFsdWUp
KTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaCBi
L1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAppbmRleCA1ZDRiYzBiMTdm
NDYwNzI1YzAyNWNmZmQ4ZjY0YTIwNWM1OWI1NzAwLi5kOThlMmVkNGFkMmUxOTI1NDcwOWVkNWI2
MGZmNWI1NzJmM2Q1ZjRhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5o
CkBAIC01MSw3ICs1MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDYWxsYmFja3NQcm94
eSgpOwogCiAgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVy
cm9yPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpOyAvLyBGb3IgIm51bGwiLgogICAg
IHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4pOworICAgIHZp
cnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJJbmRleD4pOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwCmluZGV4IDk2NGJh
ZGEzZTAyMmQ0ZDk2MGVlYzlhYTk2NzczYzQ5OGMyNzY2M2YuLmRlYjJmOTlmNjk3NmQ3MDAyOGUw
MTBmMGY4MTc5ZmI0MzRjMDc2NjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VQcm94eS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVBy
b3h5LmNwcApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKQEAgLTMwLDcgKzI3LDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZVByb3h5LmgiCiAK
ICNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCi0jaW5jbHVkZSAiSURCRGF0YWJhc2VFcnJvci5o
IgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VF
cnJvci5oIgogCkBAIC03NSw0ICs3MSwzIEBAIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gSURC
RGF0YWJhc2VQcm94eTo6b2JqZWN0U3RvcmVzKCkKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
RGF0YWJhc2VQcm94eS5oCmluZGV4IGQxYTUxNDZjOTEzYjllMjVhNjJiNzYxMTMwNGE1ZDMwOWY2
ZjUyZWQuLmU1ZTUxMjUwZDM1YmVjYTc5YjAzNTI1OGMxMThkY2M2NTM5MzhkNWUgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtNjMsNCArNjAsMyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNlbmRpZiAvLyBJREJEYXRhYmFzZVByb3h5X2gKLQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMv
SURCSW5kZXhQcm94eS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgwZWZmM2U2MDkyMTJhYmRjYjljZTY2MjVl
MjdmZjY2YjM1OTBjOQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
SW5kZXhQcm94eS5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
CisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJJREJJbmRleFByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJJREJEYXRhYmFz
ZUVycm9yLmgiCisjaW5jbHVkZSAiV2ViSURCSW5kZXguaCIKKworI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1Bhc3NSZWZQdHI8SURCSW5kZXg+
IElEQkluZGV4UHJveHk6OmNyZWF0ZShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCSW5kZXg+IElu
ZGV4KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCSW5kZXhQcm94eShJbmRleCkpOwor
fQorCitJREJJbmRleFByb3h5OjpJREJJbmRleFByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJ
REJJbmRleD4gSW5kZXgpCisgICAgOiBtX3dlYklEQkluZGV4KEluZGV4KQoreworfQorCitJREJJ
bmRleFByb3h5Ojp+SURCSW5kZXhQcm94eSgpCit7Cit9CisKK1N0cmluZyBJREJJbmRleFByb3h5
OjpuYW1lKCkKK3sKKyAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+bmFtZSgpOworfQorCitTdHJp
bmcgSURCSW5kZXhQcm94eTo6a2V5UGF0aCgpCit7CisgICAgcmV0dXJuIG1fd2ViSURCSW5kZXgt
PmtleVBhdGgoKTsKK30KKworYm9vbCBJREJJbmRleFByb3h5Ojp1bmlxdWUoKQoreworICAgIHJl
dHVybiBtX3dlYklEQkluZGV4LT51bmlxdWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vc3JjL0lEQkluZGV4UHJveHkuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
SW5kZXhQcm94eS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ZTZiMzA4Mjk0MDdjOWVlNjhjYWY3YWVlMDM1ZWZi
YTRkYjA0YmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4
UHJveHkuaApAQCAtMCwwICsxLDYxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJJbmRleFByb3h5X2gK
KyNkZWZpbmUgSURCSW5kZXhQcm94eV9oCisKKyNpbmNsdWRlICJJREJJbmRleC5oIgorI2luY2x1
ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFt
ZXNwYWNlIFdlYktpdCB7IGNsYXNzIFdlYklEQkluZGV4OyB9CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgSURCSW5kZXhQcm94eSA6IHB1YmxpYyBJREJJbmRleCB7CitwdWJsaWM6Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZShQYXNzT3duUHRyPFdlYktpdDo6
V2ViSURCSW5kZXg+KTsKKyAgICB2aXJ0dWFsIH5JREJJbmRleFByb3h5KCk7CisKKyAgICB2aXJ0
dWFsIFN0cmluZyBuYW1lKCk7CisgICAgdmlydHVhbCBTdHJpbmcga2V5UGF0aCgpOworICAgIHZp
cnR1YWwgYm9vbCB1bmlxdWUoKTsKKworICAgIC8vIEZJWE1FOiBBZGQgb3RoZXIgbWV0aG9kcy4K
KworcHJpdmF0ZToKKyAgICBJREJJbmRleFByb3h5KFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJJ
bmRleD4pOworCisgICAgT3duUHRyPFdlYktpdDo6V2ViSURCSW5kZXg+IG1fd2ViSURCSW5kZXg7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURC
SW5kZXhQcm94eV9oCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxi
YWNrc0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNw
cAppbmRleCA4Zjg4Y2I2ZjZkNmYxOWE3MjBhOWJiMTRmNzA0MDk0MmU2ZjdiZTI0Li5lYTFjMGIx
MTQyMzlmYjc4OWYyNDU1OTZhMjljOWNlMTFkN2ViMjk3IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0zMiw5ICsyOSwxMSBAQAogI2luY2x1ZGUgIklE
QkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJJ
REJEYXRhYmFzZVByb3h5LmgiCisjaW5jbHVkZSAiSURCSW5kZXhQcm94eS5oIgogI2luY2x1ZGUg
IldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlLmgiCiAjaW5jbHVk
ZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgorI2luY2x1ZGUgIldlYklEQkluZGV4LmgiCiAjaW5j
bHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKQEAgLTU2LDEyICs1NSwyNCBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
RXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJiBlcnJvcikKICAgICBtX2Nh
bGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vz
cygpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcygpOworICAgIG1fY2FsbGJhY2tzLmNs
ZWFyKCk7Cit9CisKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6
V2ViSURCRGF0YWJhc2UqIHdlYktpdEluc3RhbmNlKQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoSURCRGF0YWJhc2VQcm94eTo6Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CiAgICAgbV9j
YWxsYmFja3MuY2xlYXIoKTsKIH0KIAordm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nl
c3MoV2ViS2l0OjpXZWJJREJJbmRleCogd2ViS2l0SW5zdGFuY2UpCit7CisgICAgbV9jYWxsYmFj
a3MtPm9uU3VjY2VzcyhJREJJbmRleFByb3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKKyAg
ICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9u
U3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKQogewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc2VyaWFsaXplZFNj
cmlwdFZhbHVlKTsKQEAgLTcxLDQgKzgyLDMgQEAgdm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpv
blN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmIHNlcmkKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQotCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwu
aCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oCmluZGV4IDliNTMx
MTdlNmRlNTEzOWMyOTUwMTBlM2U3MjcyOGZjYjY2ZmU3MmQuLmNiNTU5MzgwYjg5NTVlNDFhYzBm
Mzc0NzIzY2ZhMTRlODkxODUxZWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCQ2FsbGJhY2tzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJh
Y2tzSW1wbC5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFw
cGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRz
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRApAQCAtMzUsMTIgKzMyLDYgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIFdlYklEQkRhdGFiYXNlOwotY2xhc3MgV2Vi
SURCRGF0YWJhc2VFcnJvcjsKLWNsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKLX0KLQog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJREJDYWxsYmFja3M7CkBAIC01MSw3ICs0Miw5
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5XZWJJREJDYWxsYmFja3NJbXBsKCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJLaXQ6OldlYklEQkRhdGFiYXNlRXJyb3ImIGVy
cm9yKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCiAgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0
YW5jZSk7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkluZGV4KiB3
ZWJLaXRJbnN0YW5jZSk7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6
OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXplZFNjcmlwdFZhbHVlKTsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCA3
NDU4NTY0OTg2MmIzMzlhNmIzODViZjg3YWZiNjU3NDdiOTE1NDE5Li4zYTAwY2NiZThkMzcyNjJk
YzViMWEyM2E2OThkYTlhNWUwZDljNjVhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmgKaW5k
ZXggYTQ1MzY4ZTUyZThhYTc0ZmM4NjdjMzBmMmQwODk3ZGI0NTdiMDA1NC4uZjk5YTc1OTlhZWM2
ZjQwZjUzNjhjNzg0Yzc3MGVhMTQ4YjVjMTJkMyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAg
ICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRl
eEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4YWZiN2VkNTU0YzY3MTYzMTU0MDRlMTkwMWNjNTI2Y2UyNTgxZDEKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
CisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisg
KiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJREJJ
bmRleEltcGwuaCIKKworI2luY2x1ZGUgIklEQkluZGV4LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitXZWJJREJJbmRleEltcGw6OldlYklEQkluZGV4SW1wbChQYXNzUmVmUHRyPElEQklu
ZGV4PiBpZGJJbmRleCkKKyAgICA6IG1faWRiSW5kZXgoaWRiSW5kZXgpCit7Cit9CisKK1dlYklE
QkluZGV4SW1wbDo6fldlYklEQkluZGV4SW1wbCgpCit7Cit9CisKK1dlYlN0cmluZyBXZWJJREJJ
bmRleEltcGw6Om5hbWUoKQoreworICAgIHJldHVybiBtX2lkYkluZGV4LT5uYW1lKCk7Cit9CisK
K1dlYlN0cmluZyBXZWJJREJJbmRleEltcGw6OmtleVBhdGgoKQoreworICAgIHJldHVybiBtX2lk
YkluZGV4LT5rZXlQYXRoKCk7Cit9CisKK2Jvb2wgV2ViSURCSW5kZXhJbXBsOjp1bmlxdWUoKQor
eworICAgIHJldHVybiBtX2lkYkluZGV4LT51bmlxdWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJJbmRleEltcGwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wM2I3ODI1NjkxODUzMTI1MmYyZWIy
MjQwZTM2MjRkYjBhYTg2ZWUzCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJJbmRleEltcGwuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJ
REJJbmRleEltcGxfaAorI2RlZmluZSBXZWJJREJJbmRleEltcGxfaAorCisjaW5jbHVkZSAiV2Vi
Q29tbW9uLmgiCisjaW5jbHVkZSAiV2ViSURCSW5kZXguaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBj
bGFzcyBJREJJbmRleDsgfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQg
aW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xh
c3Nlcy4KK2NsYXNzIFdlYklEQkluZGV4SW1wbCA6IHB1YmxpYyBXZWJJREJJbmRleCB7CitwdWJs
aWM6CisgICAgV2ViSURCSW5kZXhJbXBsKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJJbmRl
eD4gaWRiSW5kZXgpOworICAgIHZpcnR1YWwgfldlYklEQkluZGV4SW1wbCgpOworCisgICAgdmly
dHVhbCBXZWJTdHJpbmcgbmFtZSgpOworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleVBhdGgoKTsK
KyAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCk7CisKK3ByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8
V2ViQ29yZTo6SURCSW5kZXg+IG1faWRiSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFdlYklEQkluZGV4SW1wbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57266</attachid>
            <date>2010-05-27 12:12:10 -0700</date>
            <delta_ts>2010-05-28 07:17:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39850-20100527201207.patch</filename>
            <type>text/plain</type>
            <size>94122</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYTlkMTUxNjM0MDUxZjU4
NDFiYTUzMmM1Y2MzMzJkMTg5NWViMmNkMy4uZjU0ZWJmMTNmNjEzY2U1OGE4MzQwNzcwMWJhODhj
Zjc1ODRmMGU2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGlu
Z3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTM2
NCw2ICszNjQsNyBAQCBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lE
QkRhdGFiYXNlUmVxdWVzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJF
cnJvckV2ZW50LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkV2ZW50Lmgg
XAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkluZGV4UmVxdWVzdC5oIFwKICAg
ICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJSZXF1ZXN0LmggXAogICAgICQoaW50ZXJt
ZWRpYXRlcykvc3RvcmFnZS9KU0lEQlN1Y2Nlc3NFdmVudC5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL3N0b3JhZ2UvSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZl
ZC52OGJpbmRpbmdzLm1rCmluZGV4IDk0OGQyODIxZjVkM2I4ZDRmMzVkYjQyNGFjMjQyNmJlYzZm
NjM2NjMuLjljZWZlNmFmY2RmMTE2NDM1YjMxM2ZmZDBmY2ZiYzM0N2E4Y2NmNzAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMzQ1LDYgKzM0NSw3IEBAIEdFTiA6PSBc
CiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURCRGF0YWJhc2VSZXF1ZXN0LmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9WOElEQkVycm9yRXZlbnQuaCBcCiAgICAgJChp
bnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURCRXZlbnQuaCBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9zdG9yYWdlL1Y4SURCSW5kZXhSZXF1ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3Rv
cmFnZS9WOElEQlJlcXVlc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURC
U3VjY2Vzc0V2ZW50LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9WOEluZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29y
ZS9BbmRyb2lkLm1rCmluZGV4IGQyODhkNTczMzRmY2RlMjI5ZGFkYTA3NDcwNTA4MTUxMTczYWE5
NGEuLjZhZjkxYzlhZmFkNGUwYjVjZDVjN2JjZmY4MjMyN2VjMTkzMzcwNDUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTcxNCw4ICs3
MTQsMTIgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJc3RvcmFn
ZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwIFwKIAlzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwK
IAlzdG9yYWdlL0lEQkV2ZW50LmNwcCBcCi0Jc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwIFwK
KyAgICAgICAgc3RvcmFnZS9JREJJbmRleEltcGwuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJJ
bmRleFJlcXVlc3QuY3BwIFwKKyAgICAgICAgc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAgXAor
ICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAgXAogCXN0b3JhZ2UvSURC
UmVxdWVzdC5jcHAgXAorCXN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmNwcCBcCiAJc3RvcmFnZS9J
bmRleGVkRGF0YWJhc2UuY3BwIFwKIAlzdG9yYWdlL0luZGV4ZWREYXRhYmFzZUltcGwuY3BwIFwK
IAlzdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAzZmJhOWJiYWRj
NWE0NDJjMDczZmQxNGI0ZjI0Nzg1YTNjZTdhZDk5Li5hYTNhMzIwODYzM2Y4YWU1Y2Y5MDJlODM4
NmIyYWQ2YTFhYmU1MmMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTMyNyw2ICszMjcsNyBAQCBTRVQoV2ViQ29yZV9J
RExfRklMRVMKICAgICBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKICAgICBzdG9yYWdl
L0lEQkVycm9yRXZlbnQuaWRsCiAgICAgc3RvcmFnZS9JREJFdmVudC5pZGwKKyAgICBzdG9yYWdl
L0lEQkluZGV4UmVxdWVzdC5pZGwKICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5p
ZGwKICAgICBzdG9yYWdlL0lEQlJlcXVlc3QuaWRsCiAgICAgc3RvcmFnZS9JREJTdWNjZXNzRXZl
bnQuaWRsCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IDhlYzg0NWExYjQwZjMxOTYwYjRmOGZhZDA2YWU0NDFiOWU1NWY3YjcuLmZmNGZiNGJm
MDE4MGRhZWM0ZGMyYWE3NDVmYTk1YjUwNDkyNWYxY2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTIgQEAKKzIwMTAtMDUt
MjcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEluZGV4ZWREQidzIElEQkluZGV4
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTg1MAor
CisgICAgICAgIEZsZXNoIG91dCBJREJJbmRleCBhcyBtdWNoIGFzIHBvc3NpYmxlIHVudGlsIEFu
ZHJlaSBmaW5pc2hlcworICAgICAgICBoaXMgcGF0Y2ggdG8gZ2V0IGFyb3VuZCBwYXNzaW5nIEZy
YW1lKidzIGFsbCBhcm91bmQuICBJIGFsc28KKyAgICAgICAgY2xlYW5lZCB1cCBhIGJ1bmNoIG9m
IGV4aXN0aW5nIGZpbGVzIGFzIEkgbm90aWNlZCBzdHlsZQorICAgICAgICB2aW9sYXRpb25zICh3
aGlsZSBiYXNpbmcgbXkgbmV3IGZpbGVzIG9mZiBvZiB0aGUgb2xkKS4KKworICAgICAgICBOb3Qg
aG9va2VkIHVwIGVub3VnaCB0byB0ZXN0LiAgV2lsbCBhZGQgdGVzdHMgc29vbi4KKworICAgICAg
ICAqIEFuZHJvaWQuZGVyaXZlZC5qc2NiaW5kaW5ncy5taworICAgICAgICAqIEFuZHJvaWQuZGVy
aXZlZC52OGJpbmRpbmdzLm1rCisgICAgICAgICogQW5kcm9pZC5taworICAgICAgICAqIENNYWtl
TGlzdHMudHh0CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMuY3BwCisgICAgICAgICogRGVyaXZl
ZFNvdXJjZXMubWFrZQorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtCisgICAgICAgICogV2ViQ29y
ZS5wcmkKKyAgICAgICAgKiBXZWJDb3JlLnBybworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSURCQW55
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1Y4KToK
KyAgICAgICAgKiBzdG9yYWdlL0lEQkFueS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6
OmlkYkluZGV4UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJBbnk6OnNldCk6CisgICAg
ICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6KToKKyAg
ICAgICAgKiBzdG9yYWdlL0lEQkNhbGxiYWNrcy5oOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0
YWJhc2UuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I6Oik6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRh
YmFzZUVycm9yLmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmg6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGw6CisgICAgICAgICog
c3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJh
c2VJbXBsLmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9J
REJEYXRhYmFzZVJlcXVlc3QuaWRsOgorICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXguaDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6fklEQkluZGV4KToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQkluZGV4SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5k
ZXhJbXBsOjpJREJJbmRleEltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjp+
SURCSW5kZXhJbXBsKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4SW1wbC5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4SW1wbDo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEltcGw6
OmtleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjp1bmlxdWUpOgorICAg
ICAgICAqIHN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleFJlcXVlc3Q6OklEQkluZGV4UmVxdWVzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJJbmRleFJlcXVlc3Q6On5JREJJbmRleFJlcXVlc3QpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCSW5kZXhSZXF1ZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhSZXF1
ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhSZXF1ZXN0OjpuYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJJbmRleFJlcXVlc3Q6OnVuaXF1ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJJ
bmRleFJlcXVlc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpJREJPYmplY3RTdG9yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6fklEQk9iamVjdFN0b3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjppbmRleE5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZTo6aW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6
OnJlbW92ZUluZGV4KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmg6CisgICAg
ICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJP
YmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0
b3JlUmVxdWVzdDo6cmVtb3ZlSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRs
OgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJSZXF1ZXN0OjpvblN1Y2Nlc3MpOgorICAgICAgICAqIHN0b3JhZ2UvSURCUmVxdWVzdC5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGw6CisKIDIwMTAtMDUt
MjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMuY3BwIGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKaW5kZXggZTVkNjBlYzg0NjUzZmE3
ZDg1MDY5YjFhYTVjZWQzOTk5ODJlZTA3Ny4uYWU2YjkyZTNiYmM5YWVlNTkwZjMzMGQ5Nzg2Yzk1
NjM4YjJlNTY3OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKKysrIGIv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTE3NCw2ICsxNzQsNyBAQAogI2luY2x1ZGUg
IkpTSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQkVycm9yRXZlbnQuY3Bw
IgogI2luY2x1ZGUgIkpTSURCRXZlbnQuY3BwIgorI2luY2x1ZGUgIkpTSURCSW5kZXhSZXF1ZXN0
LmNwcCIKICNpbmNsdWRlICJKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAiCiAjaW5jbHVkZSAi
SlNJREJSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlN1Y2Nlc3NFdmVudC5jcHAiCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKaW5kZXggYmQwNjEzMGFjMGY4ZWI2MmVlNTg0MTFmNWExNzY0YmY3YjlkNjdlZS4u
ODY3YjAwMmJlNmZjYmZkMTJlZWExMjQ0MjQ4MWUzYzBmOThjNTM2MyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMjE3LDYgKzIxNyw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIElEQkRhdGFiYXNlUmVx
dWVzdCBcCiAgICAgSURCRXJyb3JFdmVudCBcCiAgICAgSURCRXZlbnQgXAorICAgIElEQkluZGV4
UmVxdWVzdCBcCiAgICAgSURCT2JqZWN0U3RvcmVSZXF1ZXN0IFwKICAgICBJREJSZXF1ZXN0IFwK
ICAgICBJREJTdWNjZXNzRXZlbnQgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bSBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNWMwM2Q1ZmY5NTE2ZWYxYjA2OTY0YTQw
NDMwNzY3YTJhZmI0NWU2Ny4uYjBkYWVjYmNlYTZjMzNiY2EzYjAyOWE3ZDgwMjAzMDJjZmQ3NjE1
MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCkBAIC0yNDc0LDYgKzI0NzQsNyBAQCBJRExfQklORElOR1MgKz0gXAogCVdlYkNv
cmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURC
RXJyb3JFdmVudC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5pZGwgXAorCVdlYkNv
cmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaWRsIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmlkbCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaWRsIFwK
IAlXZWJDb3JlL3N0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50LmlkbCBcCkBAIC0yNDk3LDYgKzI0OTgs
MTEgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXJyb3JFdmVu
dC5oIFwKIAlXZWJDb3JlL3N0b3JhZ2UvSURCRXZlbnQuY3BwIFwKIAlXZWJDb3JlL3N0b3JhZ2Uv
SURCRXZlbnQuaCBcCisgICAgICAgIFdlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5oIFwKKyAgICAg
ICAgV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4SW1wbC5jcHAgXAorICAgICAgICBXZWJDb3JlL3N0
b3JhZ2UvSURCSW5kZXhJbXBsLmggXAorICAgICAgICBXZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhS
ZXF1ZXN0LmNwcCBcCisgICAgICAgIFdlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaCBc
CiAJV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlLmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggOWVhNjk1MjljMGEyYjQ5Mjg3ZmUxODlhNTA3NmM2OWQ5YjZhYjI3Yy4u
MmE4ZTZkYzc4ODNlNDdkYTNhYjUyM2E0MDM0OTQxMmIwMTc3ZGE2NSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzMCw2ICsy
MzAsNyBAQAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCcsCiAg
ICAgICAgICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnc3Rv
cmFnZS9JREJFdmVudC5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0
LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywK
ICAgICAgICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9y
YWdlL0lEQlN1Y2Nlc3NFdmVudC5pZGwnLApAQCAtMzM2Niw2ICszMzY3LDExIEBACiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJFdmVudC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9y
RXZlbnQuY3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaCcsCisgICAg
ICAgICAgICAnc3RvcmFnZS9JREJJbmRleC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQklu
ZGV4SW1wbC5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhJbXBsLmgnLAorICAg
ICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3Rv
cmFnZS9JREJJbmRleFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RT
dG9yZS5jcHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCcsCiAgICAg
ICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDYxODRlNTQw
MjQyYjQ2NWIwNGZkMTFkOTFlNjdjNzI5YzIwNzk1MWUuLjliODczZmUwMGVhYWQ1MTk4NmViMzEw
MjI3MTY3ZmI0NDdlZTQ4NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnByaQpAQCAtNDUwLDYgKzQ1MCw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQkVy
cm9yRXZlbnQuaWRsIFwKICAgICBzdG9yYWdlL0lEQkV2ZW50LmlkbCBcCisgICAgc3RvcmFnZS9J
REJJbmRleFJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5p
ZGwgXAogICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCU3VjY2Vz
c0V2ZW50LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9X
ZWJDb3JlLnBybwppbmRleCA1ZDVjOWNmMDU5YWUwNmU4ZjhjYzJlZDEyNTI5MzQzZGE5ODg0NTRi
Li5hYTYzNWEzZWQ1YzU0NDQwZmQ5MzA1MTljMGEyZDdjNTkzNzVlZDI4IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIzNDEsNiAr
MjM0MSw5IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsK
ICAgICAgICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBcCiAgICAgICAgIHN0b3JhZ2Uv
SURCRXJyb3JFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5oIFwKKyAgICAgICAg
c3RvcmFnZS9JREJJbmRleC5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJJbmRleEltcGwuaCBcCisg
ICAgICAgIHN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmggXAogICAgICAgICBzdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmggXAogICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIFwK
ICAgICAgICAgc3RvcmFnZS9JREJSZXF1ZXN0LmggXApAQCAtMjM1Niw2ICsyMzU5LDggQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9y
YWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZl
bnQuY3BwIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5jcHAgXAorICAgICAgICBzdG9yYWdl
L0lEQkluZGV4SW1wbC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5jcHAg
XAogICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcCBcCiAgICAgICAgIHN0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5j
cHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBi
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZWNiMjMwYTAzMmI4
Yzc3MGY4NmVmNDVjODYwYzg3ZmQwMjMyNjdlNS4uOTQyNWYzZjQxOWRkZjcwOGFkZDkwZmZmMDFk
Njg5NjlkZTIxMzliMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0z
ODU3Miw2ICszODU3Miw2MiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJ
CQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxE
ZXJpdmVkU291cmNlc1xKU0lEQkluZGV4UmVxdWVzdC5jcHAiDQorCQkJCQk+DQorCQkJCQk8Rmls
ZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRl
ZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQor
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNv
bmZpZ3VyYXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1
Z19JbnRlcm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJ
CQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJ
CQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KKwkJCQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1
aWxkPSJ0cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29t
cGlsZXJUb29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJ
PEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJ
CQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJ
CQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29u
ZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVn
X0FsbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSURCSW5kZXhSZXF1ZXN0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4N
CisJCQkJPEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAi
DQogCQkJCQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00NDEwOSw2ICs0NDE2NSwy
NiBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIu
LlxzdG9yYWdlXElEQkluZGV4LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4SW1wbC5jcHAiDQorCQkJCT4NCisJ
CQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQklu
ZGV4SW1wbC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZl
UGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleFJlcXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxl
Pg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleFJlcXVl
c3QuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9
Ii4uXHN0b3JhZ2VcSURCT2JqZWN0U3RvcmUuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2ViYWM0YWQxOTgx
MzhlY2RlNjcxMzAwMWUyZWJmNGNhNTEzMjVlNy4uMWVhNjkxNWUzMjNmZmZkZWY4ZjFmMzhkNGRm
MGFhZmQ3MTFkMjU5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQ4MDMsNiArNDgwMywxMSBAQAogCQlDNTE5OEY1QzExOTJFQ0ZEMDAyQjc0QTYgLyog
SW5kZXhlZERhdGFiYXNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzUxOThGNDgxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZUlt
cGwuaCAqLzsgfTsKIAkJQzUxOThGNUQxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFz
ZVJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzUxOThGNDkxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3Bw
ICovOyB9OwogCQlDNTE5OEY1RTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
OThGNEExMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCAqLzsgfTsK
KwkJQzUxREE5QTUxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTFEQTk5RjExQUVGMkMxMDA5Nzk5QzUg
LyogSURCSW5kZXguaCAqLzsgfTsKKwkJQzUxREE5QTYxMUFFRjJDMTAwOTc5OUM1IC8qIElEQklu
ZGV4SW1wbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDNTFEQTlBMDExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhJbXBsLmNwcCAqLzsgfTsKKwkJ
QzUxREE5QTcxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxREE5QTExMUFFRjJDMTAwOTc5OUM1
IC8qIElEQkluZGV4SW1wbC5oICovOyB9OworCQlDNTFEQTlBODExQUVGMkMxMDA5Nzk5QzUgLyog
SURCSW5kZXhSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM1MURBOUEyMTFBRUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuY3Bw
ICovOyB9OworCQlDNTFEQTlBOTExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTFEQTlBMzEx
QUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmggKi87IH07CiAJCUM1NDQyNzRCMTFB
NTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTQ0Mjc0OTExQTU3RTdBMDA2M0E3NDkgLyogRE9NU3Ry
aW5nTGlzdC5oICovOyB9OwogCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5n
TGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NTU2MTBGMDExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgKi87IH07CiAJCUM1
NUUzOEJGMTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkIxMDA0MEQ1RDAw
QTU2QkRCIC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CkBAIC00ODI0LDYgKzQ4Mjks
OCBAQAogCQlDNTZDOTFBMzExOUQ5MTgxMDBERTRDRDkgLyogSlNJREJFdmVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU2QzkxOUYxMTlEOTE4MTAw
REU0Q0Q5IC8qIEpTSURCRXZlbnQuaCAqLzsgfTsKIAkJQzU2QzkxQTYxMTlEOTE4NzAwREU0Q0Q5
IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEM1NkM5MUE0MTE5RDkxODcwMERFNENEOSAvKiBKU0lEQlN1Y2Nlc3NF
dmVudC5jcHAgKi87IH07CiAJCUM1NkM5MUE3MTE5RDkxODcwMERFNENEOSAvKiBKU0lEQlN1Y2Nl
c3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzU2QzkxQTUxMTlEOTE4NzAwREU0Q0Q5IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmggKi87IH07CisJ
CUM1QkJDOUQwMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUJCQzlDRTExQUVGODM4
MDA3QzJCRkUgLyogSlNJREJJbmRleFJlcXVlc3QuY3BwICovOyB9OworCQlDNUJCQzlEMTExQUVG
ODM4MDA3QzJCRkUgLyogSlNJREJJbmRleFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1QkJDOUNGMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lE
QkluZGV4UmVxdWVzdC5oICovOyB9OwogCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyogR2x5
cGhNZXRyaWNzTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNUQ0QUE3ODExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2NzcxMDY5
N0UxMzAwQzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFB
IC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVEREVD
MDA1NjgxNkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0
b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKQEAgLTEwMzI1LDYgKzEwMzMyLDEyIEBACiAJ
CUM1MTk4RjQ5MTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGV4ZWREYXRhYmFzZVJlcXVl
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE5OEY0QTExOTJFQ0ZEMDAy
Qjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUM1MTk4RjRCMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxREE5OUYxMUFFRjJDMTAwOTc5OUM1
IC8qIElEQkluZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkluZGV4
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MURBOUEwMTFBRUYyQzEwMDk3OTlD
NSAvKiBJREJJbmRleEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSURCSW5kZXhJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxREE5
QTExMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJREJJbmRleEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzUxREE5QTIxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4UmVxdWVzdC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJJbmRleFJlcXVlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTFEQTlBMzExQUVGMkMxMDA5Nzk5QzUgLyogSURC
SW5kZXhSZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkluZGV4
UmVxdWVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTFEQTlBNDExQUVGMkMx
MDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJ
REJJbmRleFJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTQ0Mjc0
OTExQTU3RTdBMDA2M0E3NDkgLyogRE9NU3RyaW5nTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01TdHJpbmdMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM1NDQyNzRBMTFBNTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBET01TdHJpbmdMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzU1NjEwRjAxMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU3RyaW5nTGlzdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM1MSw2ICsxMDM2NCw4IEBACiAJCUM1NkM5
MTlGMTE5RDkxODEwMERFNENEOSAvKiBKU0lEQkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTSURCRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzU2QzkxQTQxMTlEOTE4NzAwREU0Q0Q5IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCU3VjY2Vzc0V2ZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU2QzkxQTUxMTlEOTE4NzAwREU0Q0Q5IC8qIEpT
SURCU3VjY2Vzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURC
U3VjY2Vzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1QkJDOUNFMTFB
RUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0lEQkluZGV4UmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUM1QkJDOUNGMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVx
dWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQkluZGV4UmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUQ0QUE3ODExNkJBRkI2MDA2OUNB
OTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdseXBoTWV0cmljc01hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUU5QjY3
NjEwNjk3RTEzMDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8q
IFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTEwNDIsNiArMTEwNTcsMTIgQEAKIAkJCQlDNTZDOTE1QzExOUQ4NEU2MDBERTRDRDkgLyog
SURCRXZlbnQuY3BwICovLAogCQkJCUM1NkM5MTVEMTE5RDg0RTYwMERFNENEOSAvKiBJREJFdmVu
dC5oICovLAogCQkJCUM1NkM5MTVFMTE5RDg0RTYwMERFNENEOSAvKiBJREJFdmVudC5pZGwgKi8s
CisJCQkJQzUxREE5OUYxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4LmggKi8sCisJCQkJQzUx
REE5QTAxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5jcHAgKi8sCisJCQkJQzUxREE5
QTExMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oICovLAorCQkJCUM1MURBOUEyMTFB
RUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuY3BwICovLAorCQkJCUM1MURBOUEzMTFB
RUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuaCAqLywKKwkJCQlDNTFEQTlBNDExQUVG
MkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmlkbCAqLywKIAkJCQlDNTE5OEY0MjExOTJF
Q0ZEMDAyQjc0QTYgLyogSURCUmVxdWVzdC5jcHAgKi8sCiAJCQkJQzUxOThGNDMxMTkyRUNGRDAw
MkI3NEE2IC8qIElEQlJlcXVlc3QuaCAqLywKIAkJCQlDNTE5OEY0NDExOTJFQ0ZEMDAyQjc0QTYg
LyogSURCUmVxdWVzdC5pZGwgKi8sCkBAIC0xNDQwMyw2ICsxNDQyNCw4IEBACiAJCQkJQzU2Qzkx
OUQxMTlEOTE4MTAwREU0Q0Q5IC8qIEpTSURCRXJyb3JFdmVudC5oICovLAogCQkJCUM1NkM5MTlF
MTE5RDkxODEwMERFNENEOSAvKiBKU0lEQkV2ZW50LmNwcCAqLywKIAkJCQlDNTZDOTE5RjExOUQ5
MTgxMDBERTRDRDkgLyogSlNJREJFdmVudC5oICovLAorCQkJCUM1QkJDOUNFMTFBRUY4MzgwMDdD
MkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgKi8sCisJCQkJQzVCQkM5Q0YxMUFFRjgzODAw
N0MyQkZFIC8qIEpTSURCSW5kZXhSZXF1ZXN0LmggKi8sCiAJCQkJQjY2OTNFRjAxMUFENjQ4NjAw
M0YyNzcwIC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLywKIAkJCQlCNjY5M0VGMTEx
QUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLywKIAkJCQlDNUY0
RjQwNDExOTMwNkFDMDBGREZBREQgLyogSlNJREJSZXF1ZXN0LmNwcCAqLywKQEAgLTE5MzcwLDYg
KzE5MzkzLDEwIEBACiAJCQkJQjY2OTNFRUUxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0
b3JlUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY2OTNFRjMxMUFENjQ4NjAwM0YyNzcw
IC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODNCM0FG
MTExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUM1MURBOUE1MTFBRUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQzUxREE5QTcxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQzUxREE5QTkxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4UmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQzVCQkM5RDExMUFFRjgzODAwN0MyQkZFIC8qIEpTSURCSW5k
ZXhSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNjY1LDYgKzIxNjkyLDkgQEAKIAkJCQlC
NjY5M0VGMjExQUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQjYyN0ZCMkQxMUFENzQzNTAwRTk3QjcyIC8qIElEQkRhdGFiYXNl
SW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODNCM0FGMDExQURFRkY1MDA0NTg4MDkgLyog
SFRNTDVTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzUxREE5QTYxMUFFRjJD
MTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTFEQTlB
ODExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCUM1QkJDOUQwMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0
b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKaW5kZXggZGZk
ZDIxNmY5ZmJhZTg2N2I1MGU3ZjQzYWY1MjBiYWQ3NzQ1NzM5Yy4uNDNhNzlhMmE0NWM2NDVmMzY5
MWVmZGFhOTI3YmZmOWI0ZTBiMzBhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0lEQkFueUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3Rv
bS5jcHAKQEAgLTM2LDkgKzM2LDExIEBACiAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRl
ICJJREJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNp
bmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJbmRleGVkRGF0YWJh
c2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRl
ICJKU0lEQkluZGV4UmVxdWVzdC5oIgogI2luY2x1ZGUgIkpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgiCkBAIC01NSw4ICs1NywxMiBAQCBKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJBbnkqIGlk
YkFueSkKICAgICBzd2l0Y2ggKGlkYkFueS0+dHlwZSgpKSB7CiAgICAgY2FzZSBJREJBbnk6OlVu
ZGVmaW5lZFR5cGU6CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIGNhc2UgSURC
QW55OjpOdWxsVHlwZToKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIGNhc2UgSURCQW55
OjpJREJEYXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIGlkYkFueS0+aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOworICAgIGNhc2UgSURCQW55
OjpJREJJbmRleFJlcXVlc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGlkYkFueS0+aWRiSW5kZXhSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55OjpJREJP
YmplY3RTdG9yZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsIGlkYkFueS0+aWRiT2JqZWN0U3RvcmVSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55
OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4SURCQW55Q3VzdG9tLmNwcAppbmRleCAwZGIyYTgwYmQyNzNkMDAxZjc0ZjU0YWFjM2U4
NmU0NjlkY2RkZTc2Li41ZWY1MGE2MzQ5NjlmZTY0MWFkMjg4NWE5M2Y5YzkyNDFmOGViZWY5IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCkBAIC0z
Niw2ICszNiw3IEBACiAKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlICJWOElEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlY4SURCSW5kZXhSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNsdWRlICJWOElu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCIKIApAQCAtNDksOCArNTAsMTIgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgIHN3aXRjaCAoaW1wbC0+dHlwZSgpKSB7
CiAgICAgY2FzZSBJREJBbnk6OlVuZGVmaW5lZFR5cGU6CiAgICAgICAgIHJldHVybiB2ODo6VW5k
ZWZpbmVkKCk7CisgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgorICAgICAgICByZXR1cm4gdjg6
Ok51bGwoKTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAg
ICAgcmV0dXJuIHRvVjgoaW1wbC0+aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOworICAgIGNhc2UgSURC
QW55OjpJREJJbmRleFJlcXVlc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJJ
bmRleFJlcXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5
cGU6CiAgICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYk9iamVjdFN0b3JlUmVxdWVzdCgpKTsK
ICAgICBjYXNlIElEQkFueTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU6CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3Bw
CmluZGV4IGI1YWJhMGIzZTg5MGU5NjVkODFjNDAwYTJhMjEzM2ZkNmZiM2E1YzYuLjczYjBkNzQ3
NzBjY2E2NGQyMTdhN2IxOTU4MTFmNjM3YzRmNmJhZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJBbnkuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBAIC0xMCw5
ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzIsNiAr
MjksNyBAQAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCRGF0
YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVz
dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtNTgsNiArNTYsMTIg
QEAgUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IElEQkFueTo6aWRiRGF0YWJhc2VSZXF1
ZXN0KCkKICAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlcXVlc3Q7CiB9CiAKK1Bhc3NSZWZQdHI8
SURCSW5kZXhSZXF1ZXN0PiBJREJBbnk6OmlkYkluZGV4UmVxdWVzdCgpCit7CisgICAgQVNTRVJU
KG1fdHlwZSA9PSBJREJJbmRleFJlcXVlc3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJJbmRleFJl
cXVlc3Q7Cit9CisKIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJBbnk6Omlk
Yk9iamVjdFN0b3JlUmVxdWVzdCgpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJPYmplY3RT
dG9yZVJlcXVlc3RUeXBlKTsKQEAgLTc2LDM5ICs4MCw0NCBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4gSURCQW55OjpzZXJpYWxpemVkU2NyaXB0VmFsdWUoKQogICAgIHJldHVy
biBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIH0KIAordm9pZCBJREJBbnk6OnNldCgpCit7Cisg
ICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBOdWxsVHlw
ZTsKK30KKwogdm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4g
dmFsdWUpCiB7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5
cGUgPSBJREJEYXRhYmFzZVJlcXVlc3RUeXBlOwogICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0g
dmFsdWU7Ci0gICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwotICAgIG1faW5kZXhlZERh
dGFiYXNlUmVxdWVzdCA9IDA7Ci0gICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOworfQor
Cit2b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiB2YWx1ZSkKK3sK
KyAgICBBU1NFUlQobV90eXBlID09IFVuZGVmaW5lZFR5cGUpOworICAgIG1fdHlwZSA9IElEQkRh
dGFiYXNlUmVxdWVzdFR5cGU7CisgICAgbV9pZGJJbmRleFJlcXVlc3QgPSB2YWx1ZTsKIH0KIAog
dm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gdmFsdWUp
CiB7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJ
REJPYmplY3RTdG9yZVJlcXVlc3RUeXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsK
ICAgICBtX2lkYk9iamVjdFN0b3JlUmVxdWVzdCA9IHZhbHVlOwotICAgIG1faW5kZXhlZERhdGFi
YXNlUmVxdWVzdCA9IDA7Ci0gICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQogCiB2
b2lkIElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gdmFsdWUp
CiB7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJ
bmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlwZTsKLSAgICBtX2lkYkRhdGFiYXNlUmVxdWVzdCA9IDA7
Ci0gICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwogICAgIG1faW5kZXhlZERhdGFiYXNl
UmVxdWVzdCA9IHZhbHVlOwotICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlID0gMDsKIH0KIAog
dm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUp
CiB7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWVUeXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsK
LSAgICBtX2lkYk9iamVjdFN0b3JlUmVxdWVzdCA9IDA7Ci0gICAgbV9pbmRleGVkRGF0YWJhc2VS
ZXF1ZXN0ID0gMDsKICAgICBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA9IHZhbHVlOwogfQogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURC
QW55LmgKaW5kZXggZDIzZjE4ZmViZTQzZTQ2YjM2NDU3YzA2ZDgyMTZkNmQxN2Y0MmFkYS4uY2Yw
MDQwMzI1OTUwNDEwZWZiOTg3ZDJmNjJlMDUxZGJlNzM3ZDY1NSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQkFueS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMTAs
OSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTM4LDYg
KzM1LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0YWJhc2VSZXF1ZXN0
OworY2xhc3MgSURCSW5kZXhSZXF1ZXN0OwogY2xhc3MgSURCT2JqZWN0U3RvcmVSZXF1ZXN0Owog
Y2xhc3MgSW5kZXhlZERhdGFiYXNlUmVxdWVzdDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTsKQEAgLTQ5LDcgKzQ3LDkgQEAgcHVibGljOgogCiAgICAgZW51bSBUeXBlIHsKICAgICAgICAg
VW5kZWZpbmVkVHlwZSA9IDAsCisgICAgICAgIE51bGxUeXBlLAogICAgICAgICBJREJEYXRhYmFz
ZVJlcXVlc3RUeXBlLAorICAgICAgICBJREJJbmRleFJlcXVlc3RUeXBlLAogICAgICAgICBJREJP
YmplY3RTdG9yZVJlcXVlc3RUeXBlLAogICAgICAgICBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0VHlw
ZSwKICAgICAgICAgU2VyaWFsaXplZFNjcmlwdFZhbHVlVHlwZQpAQCAtNTgsMTEgKzU4LDE0IEBA
IHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAg
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBpZGJEYXRhYmFzZVJlcXVlc3QoKTsKKyAg
ICBQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gaWRiSW5kZXhSZXF1ZXN0KCk7CiAgICAgUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IGlkYk9iamVjdFN0b3JlUmVxdWVzdCgpOwog
ICAgIFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gaW5kZXhlZERhdGFiYXNlUmVx
dWVzdCgpOwogICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVk
U2NyaXB0VmFsdWUoKTsKIAorICAgIHZvaWQgc2V0KCk7IC8vIEZvciAibnVsbCIuCiAgICAgdm9p
ZCBzZXQoUGFzc1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+KTsKKyAgICB2b2lkIHNldChQYXNz
UmVmUHRyPElEQkluZGV4UmVxdWVzdD4pOwogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJbmRleGVkRGF0YWJh
c2VSZXF1ZXN0Pik7CiAgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+KTsKQEAgLTc0LDYgKzc3LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE9ubHkgb25lIG9mIHRo
ZSBmb2xsb3dpbmcgc2hvdWxkIGV2ZXIgYmUgaW4gdXNlIGF0IGFueSBnaXZlbiB0aW1lLgogICAg
IFJlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IG1faWRiRGF0YWJhc2VSZXF1ZXN0OworICAgIFJl
ZlB0cjxJREJJbmRleFJlcXVlc3Q+IG1faWRiSW5kZXhSZXF1ZXN0OwogICAgIFJlZlB0cjxJREJP
YmplY3RTdG9yZVJlcXVlc3Q+IG1faWRiT2JqZWN0U3RvcmVSZXF1ZXN0OwogICAgIFJlZlB0cjxJ
bmRleGVkRGF0YWJhc2VSZXF1ZXN0PiBtX2luZGV4ZWREYXRhYmFzZVJlcXVlc3Q7CiAgICAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9zZXJpYWxpemVkU2NyaXB0VmFsdWU7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmggYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCQ2FsbGJhY2tzLmgKaW5kZXggNzRjMTFkODUyZjRlZGM1MGM4OTUzNmU1NDQ3YTQyNDhmOTY0
NmZiOC4uZmY2MjcyYTc0ZmE5MzM4OTk4YmU1NzRhMjAxZWQzYTBlNDYzMzcwYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJDYWxsYmFja3MuaApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2Uu
aCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiSURCSW5kZXguaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCkBAIC00Myw3ICs0NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJDYWxs
YmFja3MoKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VFcnJvcj4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgPSAwOyAvLyBG
b3IgIm51bGwiLgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJEYXRh
YmFzZT4pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCSW5k
ZXg+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZT4pID0gMDsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKaW5kZXggNWM4MzM4
NGQyMTc4NWYxN2ViYWEwYTZiYzhjYjVjZmRmMjM5ZDEwNS4uNWJmYjNjNzgyZDk5ZGI5MTY4NzI0
MGYzOWE3Y2YzNzljNDRmMjVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmgKQEAgLTEwLDkgKzEwLDYg
QEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBs
ZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoK
ICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRP
UlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC01OCw0ICs1NSwzIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjZW5kaWYgLy8gSURCRGF0YWJhc2VfaAotCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlRXJyb3IuaAppbmRleCBjYjQ3OWMxNzFlZjAwMjhhZGRmZTgyODBkMWI5ODQ5ZDky
ZjVkNzExLi4xMmRiYWUzOWZiNjMzOWYwYzk1YjViMmE3YWM1NjJkY2VlNWUxODc4IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5oCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUVycm9yLmgKQEAgLTQ0LDYgKzQ0LDIxIEBAIHB1YmxpYzoKICAgICB9
CiAgICAgfklEQkRhdGFiYXNlRXJyb3IoKSB7IH0KIAorICAgIC8vIEtlZXkgaW4gc3luYyB3aXRo
IHdoYXQncyBpbiB0aGUgLmlkbCBmaWxlLgorICAgIGVudW0gRXJyb3JDb2RlIHsKKyAgICAgICAg
VU5LTk9XTl9FUlIgPSAwLAorICAgICAgICBOT05fVFJBTlNJRU5UX0VSUiA9IDEsCisgICAgICAg
IE5PVF9GT1VORF9FUlIgPSAyLAorICAgICAgICBDT05TVFJBSU5UX0VSUiA9IDMsCisgICAgICAg
IERBVEFfRVJSID0gNCwKKyAgICAgICAgTk9UX0FMTE9XRURfRVJSID0gNSwKKyAgICAgICAgU0VS
SUFMX0VSUiA9IDExLAorICAgICAgICBSRUNPVkVSQUJMRV9FUlIgPSAyMSwKKyAgICAgICAgVFJB
TlNJRU5UX0VSUiA9IDMxLAorICAgICAgICBUSU1FT1VUX0VSUiA9IDMyLAorICAgICAgICBERUFE
TE9DS19FUlIgPSAzMworICAgIH07CisKICAgICB1bnNpZ25lZCBzaG9ydCBjb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9jb2RlOyB9CiAgICAgdm9pZCBzZXRDb2RlKHVuc2lnbmVkIHNob3J0IHZhbHVl
KSB7IG1fY29kZSA9IHZhbHVlOyB9CiAgICAgY29uc3QgU3RyaW5nJiBtZXNzYWdlKCkgY29uc3Qg
eyByZXR1cm4gbV9tZXNzYWdlOyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2VFcnJvci5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwKaW5k
ZXggNmM2MDE5Y2ZlYTU4OTFhNDI2YmEzZTc4M2I1Y2YwZTgxMmRhOWQ3OS4uZTMyNmFmYzYxOWI1
ZTYzNGRkYTY3ZTc3MGVjOTcyNzAwMzUxMThmMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlRXJyb3IuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVy
cm9yLmlkbApAQCAtMzAsNiArMzAsMTggQEAgbW9kdWxlIHN0b3JhZ2UgewogICAgIGludGVyZmFj
ZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVYRURfREFUQUJBU0UKICAgICBdIElEQkRhdGFi
YXNlRXJyb3IgeworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTktOT1dOX0VSUiA9IDA7
CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTl9UUkFOU0lFTlRfRVJSID0gMTsKKyAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDI7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gMzsKKyAgICAgICAgY29uc3QgdW5z
aWduZWQgc2hvcnQgREFUQV9FUlIgPSA0OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBO
T1RfQUxMT1dFRF9FUlIgPSA1OworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBTRVJJQUxf
RVJSID0gMTE7CisgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFQ09WRVJBQkxFX0VSUiA9
IDIxOworICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUUkFOU0lFTlRfRVJSID0gMzE7Cisg
ICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMzI7CisgICAgICAgIGNv
bnN0IHVuc2lnbmVkIHNob3J0IERFQURMT0NLX0VSUiA9IDMzOworCiAgICAgICAgIGF0dHJpYnV0
ZSB1bnNpZ25lZCBzaG9ydCBjb2RlOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIG1lc3Nh
Z2U7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2Vw
dGlvbi5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmgKaW5kZXggZDk0
YTdmOWZhZmI4MWU3ZTQ5Y2JiYTA1N2M1YzgyYTIwODQ0OTBkMC4uNWE3MmQwMzhhNDhmODZjNjQ5
ZDIyOWQyNzVlYzAwZTM2NzA4MmUxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlRXhjZXB0aW9uLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0
aW9uLmgKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IElEQkRhdGFiYXNlRXhjZXB0aW9uKCkpOwogICAgIH0KICAgICB+SURCRGF0YWJhc2VFeGNl
cHRpb24oKSB7IH0KLSAgICAKKyAgIAogICAgIHVuc2lnbmVkIHNob3J0IGNvZGUoKSBjb25zdCB7
IHJldHVybiBtX2NvZGU7IH0KICAgICB2b2lkIHNldENvZGUodW5zaWduZWQgc2hvcnQgdmFsdWUp
IHsgbV9jb2RlID0gdmFsdWU7IH0KICAgICBTdHJpbmcgbWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbWVzc2FnZTsgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhj
ZXB0aW9uLmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwKaW5k
ZXggODk4ZTVmOWMxMzIyMjY3NTMwOWFkYTc3OTQzMjUxOTYxMThlOGZmZC4uMGJiZmVlNDM5MjI3
MjFlZTQ2ODEzMDVmOTNkZDM0Y2YwYzY0OTVlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdl
L0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2VFeGNlcHRpb24uaWRsCkBAIC0zMCwxNyArMzAsNiBAQCBtb2R1bGUgc3RvcmFnZSB7CiAgICAg
aW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQogICAgIF0g
SURCRGF0YWJhc2VFeGNlcHRpb24gewotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBVTktO
T1dOX0VSUiA9IDA7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IE5PTl9UUkFOU0lFTlRf
RVJSID0gMTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgTk9UX0ZPVU5EX0VSUiA9IDI7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUUkFJTlRfRVJSID0gMzsKLSAgICAg
ICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREFUQV9FUlIgPSA0OwotICAgICAgICBjb25zdCB1bnNp
Z25lZCBzaG9ydCBOT1RfQUxMT1dFRF9FUlIgPSA1OwotICAgICAgICBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTRVJJQUxfRVJSID0gMTE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFJFQ09W
RVJBQkxFX0VSUiA9IDIxOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBUUkFOU0lFTlRf
RVJSID0gMzE7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRJTUVPVVRfRVJSID0gMzI7
Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IERFQURMT0NLX0VSUiA9IDMzOwogICAgICAg
ICBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgY29kZTsKICAgICAgICAgYXR0cmlidXRlIERPTVN0
cmluZyBtZXNzYWdlOwogICAgIH07CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0
YWJhc2VJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuY3BwCmluZGV4
IDc3NTU5NWYyNjc1N2M0ZmQ2ZTI5NTA4MDM1OWFmMzhjMmVmNDFiNTEuLjY1NWJkNTkwOWZjNzBk
ZmVjNGRmZmE5ZDgyMWNiMDYxZWI2MWRlMWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwu
Y3BwCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENv
bXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RApAQCAtMzAsOSArMjcsNiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW1wbC5oIgogCiAjaW5j
bHVkZSAiRE9NU3RyaW5nTGlzdC5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCi0jaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTU4LDQgKzUyLDMgQEAgUGFzc1JlZlB0
cjxET01TdHJpbmdMaXN0PiBJREJEYXRhYmFzZUltcGw6Om9iamVjdFN0b3JlcygpCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oCmluZGV4IDhkYjc1NWU5ZWUyOWZmNzIxZjRmMTZhYzhj
OTkwMjlhOThmMzY5NzQuLjY3OTAxN2RjYjYzNzc4M2ZjNjM3YTE4OTVkZWYyNmMyMWQ0YmY0YmEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaAorKysgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5l
aXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUg
bmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0zMCw3ICsyNyw2IEBACiAjZGVmaW5lIElE
QkRhdGFiYXNlSW1wbF9oCiAKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgotI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIApAQCAtNjMs
NCArNTksMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNlbmRpZiAvLyBJREJEYXRhYmFzZUltcGxf
aAotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDMxZTA1NTRmZTQz
NjVhZjJiZDg1NDVhYmU4NzkyMmIzMTVhZjQ4YmUuLjMxMWZiMjUwMmVhNWFkNjAxOGE3NWE5NzZi
ZWU5OTRiMjk4NTFhMzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJl
cXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCkBA
IC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAt
NDcsNCArNDQsMyBAQCBJREJEYXRhYmFzZVJlcXVlc3Q6On5JREJEYXRhYmFzZVJlcXVlc3QoKQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBi
L1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaAppbmRleCBjY2I4Mjg2ZTA2OTA2
NzAzMTgwZjA3YmZiOWJhNTc2M2U0YzE3MTU1Li4yNmY2YTg2MzU3NGZjMzViYzFjYTUzOTJlMjlk
NGFhNDExZWYwNjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oCkBAIC0xMCw5
ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMjUsMTYg
KzIyLDE1IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKwogI2lmbmRl
ZiBJREJEYXRhYmFzZVJlcXVlc3RfaAogI2RlZmluZSBJREJEYXRhYmFzZVJlcXVlc3RfaAogCiAj
aW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCi0jaW5j
bHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAK
QEAgLTY1LDQgKzYxLDMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjZW5kaWYgLy8gSURCRGF0YWJh
c2VSZXF1ZXN0X2gKLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVx
dWVzdC5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbAppbmRleCA5
YjUxODIwZDBhYTQzZGE0MzQ3M2VmZGI0Njk4OWExNjhiMTZiNDc4Li5iODM1YWNlMWY5ZTA5ZDE3
NTljOGUwMTE1YmQ0NWE4OTY5ZmU0ZTcwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2VSZXF1ZXN0LmlkbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmlkbApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKQEAgLTI1LDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
ICAqLworCiBtb2R1bGUgc3RvcmFnZSB7CiAKICAgICBpbnRlcmZhY2UgWwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXguaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMGU4Y2FiMDYxZTFkZGRhNzQ4NDFkY2MwZjNiOWU0Mjg2NWZmMDY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmgKQEAgLTAsMCArMSw1MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgSURCSW5kZXhfaAorI2RlZmluZSBJREJJbmRleF9oCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSURCSW5kZXggOiBwdWJsaWMgVGhyZWFkU2Fm
ZVNoYXJlZDxJREJJbmRleD4geworcHVibGljOgorICAgIHZpcnR1YWwgfklEQkluZGV4KCkgeyB9
CisKKyAgICB2aXJ0dWFsIFN0cmluZyBuYW1lKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGtl
eVBhdGgoKSA9IDA7CisgICAgdmlydHVhbCBib29sIHVuaXF1ZSgpID0gMDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJJbmRleF9oCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhJbXBsLmNwcCBiL1dlYkNvcmUvc3RvcmFn
ZS9JREJJbmRleEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODkzOWEwYzFiNDkxMzI0NzFlZGEyN2M5
ZDgzODQwYzFlNDkxM2EKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXhJbXBsLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIklEQkluZGV4SW1wbC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURCSW5kZXhJbXBsOjpJREJJbmRleEltcGwoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQorICAg
IDogbV9uYW1lKG5hbWUpCisgICAgLCBtX2tleVBhdGgoa2V5UGF0aCkKKyAgICAsIG1fdW5pcXVl
KHVuaXF1ZSkKK3sKK30KKworSURCSW5kZXhJbXBsOjp+SURCSW5kZXhJbXBsKCkKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhJbXBsLmggYi9XZWJDb3Jl
L3N0b3JhZ2UvSURCSW5kZXhJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjAwMzRkNWM1OWJlMzA1ODFiYWFm
MmU0YzA1OWVkYzgwYzI5ZGFkOAotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9J
REJJbmRleEltcGwuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9S
UyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUK
KyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJJbmRleElt
cGxfaAorI2RlZmluZSBJREJJbmRleEltcGxfaAorCisjaW5jbHVkZSAiSURCSW5kZXguaCIKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIElEQkluZGV4SW1wbCA6IHB1YmxpYyBJREJJbmRleCB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8SURCSW5kZXg+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0
cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IElEQkluZGV4SW1wbChuYW1lLCBrZXlQYXRoLCB1bmlxdWUpKTsKKyAgICB9CisgICAg
dmlydHVhbCB+SURCSW5kZXhJbXBsKCk7CisKKyAgICAvLyBJbXBsZW1lbnRzIElEQkluZGV4Cisg
ICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpIHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIHZpcnR1YWwg
U3RyaW5nIGtleVBhdGgoKSB7IHJldHVybiBtX2tleVBhdGg7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
dW5pcXVlKCkgeyByZXR1cm4gbV91bmlxdWU7IH0KKworcHJpdmF0ZToKKyAgICBJREJJbmRleElt
cGwoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVl
KTsKKworICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fa2V5UGF0aDsKKyAgICBib29s
IG1fdW5pcXVlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKKworI2Vu
ZGlmIC8vIElEQkluZGV4SW1wbF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXhSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjMwYWVlNGJmNDg4OWI3ODZmNjhmYzdhNjY4ZjVmODA3MDhkYjRkMWQKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQkluZGV4UmVx
dWVzdC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworSURCSW5kZXhSZXF1ZXN0OjpJREJJbmRleFJlcXVlc3QoUGFzc1JlZlB0cjxJREJJ
bmRleD4gaWRiSW5kZXgpCisgICAgOiBtX2lkYkluZGV4KGlkYkluZGV4KQoreworfQorCitJREJJ
bmRleFJlcXVlc3Q6On5JREJJbmRleFJlcXVlc3QoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJ
bmRleFJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTZmYzU3YmU1NDU3MTEyZjA0OWU4OTc1M2UxMTEw
MTlkYmNmNTdmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVx
dWVzdC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIElEQkluZGV4UmVxdWVzdF9o
CisjZGVmaW5lIElEQkluZGV4UmVxdWVzdF9oCisKKyNpbmNsdWRlICJJREJJbmRleC5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKyNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IElEQkluZGV4UmVxdWVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkluZGV4UmVxdWVzdD4gewor
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gY3JlYXRlKFBh
c3NSZWZQdHI8SURCSW5kZXg+IGlkYkluZGV4KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJREJJbmRleFJlcXVlc3QoaWRiSW5kZXgpKTsKKyAgICB9CisgICAgfklEQkluZGV4
UmVxdWVzdCgpOworCisgICAgLy8gSW1wbGVtZW50IHRoZSBJREwKKyAgICBTdHJpbmcgbmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWRiSW5kZXgtPm5hbWUoKTsgfQorICAgIFN0cmluZyBrZXlQYXRo
KCkgY29uc3QgeyByZXR1cm4gbV9pZGJJbmRleC0+a2V5UGF0aCgpOyB9CisgICAgYm9vbCB1bmlx
dWUoKSBjb25zdCB7IHJldHVybiBtX2lkYkluZGV4LT51bmlxdWUoKTsgfQorCitwcml2YXRlOgor
ICAgIElEQkluZGV4UmVxdWVzdChQYXNzUmVmUHRyPElEQkluZGV4Pik7CisKKyAgICBSZWZQdHI8
SURCSW5kZXg+IG1faWRiSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZgorCisjZW5kaWYgLy8gSURCSW5kZXhSZXF1ZXN0X2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
c3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVx
dWVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWQzNWY1MmYwNTU1OGFiOTQxYzAwNmYwZWIyZTUxMDkzOTQx
MTNiMQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3Qu
aWRsCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgc3RvcmFnZSB7CisKKyAgICBpbnRl
cmZhY2UgWworICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCisgICAgXSBJREJJ
bmRleFJlcXVlc3QgeworICAgICAgICAvLyBGSVhNRTogQ29tcGxldGUgdGhpcyBmaWxlLgorCisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIERPTVN0cmluZyBrZXlQYXRoOworICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiB1bmlxdWU7CisgICAgfTsKKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5j
cHAKaW5kZXggMGEwY2QzY2RjNzU3OTdkYmQ0NDg5MTE2NzAzNDI2YzhkZDdiM2I2Ny4uMmY0Zjc5
YmY1YzM1NDVmMjJkOWE4YTVkNjFiYmIxOWE1ZjFhNjVkNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0
U3RvcmUuY3BwCkBAIC0yNiwxMSArMjYsNTkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJJREJPYmplY3RTdG9yZS5oIgogCisjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgorI2lu
Y2x1ZGUgIklEQkNhbGxiYWNrcy5oIgorI2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKKyNp
bmNsdWRlICJJREJJbmRleEltcGwuaCIKKwogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBXcml0ZS4KK0lEQk9iamVjdFN0b3Jl
OjpJREJPYmplY3RTdG9yZSgpCit7Cit9CisKK0lEQk9iamVjdFN0b3JlOjp+SURCT2JqZWN0U3Rv
cmUoKQoreworfQorCitQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQk9iamVjdFN0b3JlOjpp
bmRleE5hbWVzKCkgY29uc3QKK3sKKyAgICBSZWZQdHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1l
cyA9IERPTVN0cmluZ0xpc3Q6OmNyZWF0ZSgpOworICAgIGZvciAoSW5kZXhNYXA6OmNvbnN0X2l0
ZXJhdG9yIGl0ID0gbV9pbmRleGVzLmJlZ2luKCk7IGl0ICE9IG1faW5kZXhlcy5lbmQoKTsgKytp
dCkKKyAgICAgICAgaW5kZXhOYW1lcy0+YXBwZW5kKGl0LT5maXJzdCk7CisgICAgcmV0dXJuIGlu
ZGV4TmFtZXMucmVsZWFzZSgpOworfQorCit2b2lkIElEQk9iamVjdFN0b3JlOjpjcmVhdGVJbmRl
eChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUs
IFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgaWYgKG1faW5kZXhl
cy5jb250YWlucyhuYW1lKSkgeworICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJh
c2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXJyb3I6OkNPTlNUUkFJTlRfRVJSLCAiSW5kZXgg
bmFtZSBhbHJlYWR5IGV4aXN0cy4iKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBS
ZWZQdHI8SURCSW5kZXg+IGluZGV4ID0gSURCSW5kZXhJbXBsOjpjcmVhdGUobmFtZSwga2V5UGF0
aCwgdW5pcXVlKTsKKyAgICBBU1NFUlQoaW5kZXgtPm5hbWUoKSA9PSBuYW1lKTsKKyAgICBtX2lu
ZGV4ZXMuc2V0KG5hbWUsIGluZGV4KTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2VzcyhpbmRleC5y
ZWxlYXNlKCkpOworfQorCitQYXNzUmVmUHRyPElEQkluZGV4PiBJREJPYmplY3RTdG9yZTo6aW5k
ZXgoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBtX2luZGV4ZXMuZ2V0KG5hbWUp
OworfQorCit2b2lkIElEQk9iamVjdFN0b3JlOjpyZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgaWYgKCFtX2lu
ZGV4ZXMuY29udGFpbnMobmFtZSkpIHsKKyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUVycm9yOjpOT1RfRk9VTkRfRVJSLCAiSW5k
ZXggbmFtZSBkb2VzIG5vdCBleGlzdC4iKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX2luZGV4ZXMucmVtb3ZlKG5hbWUpOworICAgIGNhbGxiYWNrcy0+b25TdWNjZXNzKCk7Cit9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQk9iamVjdFN0b3JlLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaAppbmRl
eCA3MzY0MDI2OTI1YzhmMGE3OGRlMzZmOGZkZWFlNzA4MDAzMmI4OTI3Li5jMWNlMTI5ZTdmOTg5
MzBkZDczYzcxYjllM2NlM2I3NTJkZjFmYzc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmUuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaApA
QCAtMjcsMjggKzI3LDQyIEBACiAjZGVmaW5lIElEQk9iamVjdFN0b3JlX2gKIAogI2luY2x1ZGUg
IlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCiAjaWYgRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NU3RyaW5n
TGlzdDsKK2NsYXNzIElEQkluZGV4OworY2xhc3MgSURCQ2FsbGJhY2tzOworCisvLyBGSVhNRTog
VGhpcyBuZWVkcyB0byBiZSBzcGxpdCBpbnRvIGFuIGludGVyZmFjZSBhbmQgSW1wbCBjbGFzc2Vz
LgogY2xhc3MgSURCT2JqZWN0U3RvcmUgOiBwdWJsaWMgVGhyZWFkU2FmZVNoYXJlZDxJREJPYmpl
Y3RTdG9yZT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3Jl
PiBjcmVhdGUoKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJREJPYmplY3RT
dG9yZSgpKTsKICAgICB9Ci0gICAgdmlydHVhbCB+SURCT2JqZWN0U3RvcmUoKSB7IH0KKyAgICB2
aXJ0dWFsIH5JREJPYmplY3RTdG9yZSgpOwogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdCB7IHJl
dHVybiBtX25hbWU7IH0KICAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5
UGF0aDsgfQorICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gaW5kZXhOYW1lcygpIGNvbnN0
OworCisgICAgdm9pZCBjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmlu
ZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CisgICAg
UGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2b2lk
IHJlbW92ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
KTsKIAogcHJpdmF0ZToKLSAgICBJREJPYmplY3RTdG9yZSgpIHsgfQorICAgIElEQk9iamVjdFN0
b3JlKCk7CiAKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIFN0cmluZyBtX2tleVBhdGg7CisgICAg
dHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUmVmUHRyPElEQkluZGV4PiA+IEluZGV4TWFwOworICAg
IEluZGV4TWFwIG1faW5kZXhlczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKaW5kZXggMDA4ZTdiNDM0ZWMzN2Fj
ZjlmN2ZiNzlhNmVhZmNjMzdkMmVlMjJmOS4uMzU3NjNjYjBjZTA3MDI1ZTk2NDJjMTk0MmFmYjcz
ZDVlZGUzMThjNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAK
QEAgLTIyLDEwICsyMiwxMyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICov
CisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZVJlcXVlc3Qu
aCIKIAorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJBbnkuaCIKKyNp
bmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3Rm
L1VudXNlZFBhcmFtLmg+CkBAIC0zNCw4ICszNyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gaWRiU3Rv
cmUpIAotICAgIDogbV9vYmplY3RTdG9yZShpZGJTdG9yZSkKK0lEQk9iamVjdFN0b3JlUmVxdWVz
dDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYk9iamVjdFN0b3JlKSAKKyAgICA6IG1fb2Jq
ZWN0U3RvcmUoaWRiT2JqZWN0U3RvcmUpCiAgICAgLCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
Y29udGV4dCkKIHsKICAgICBtX3RoaXMgPSBJREJBbnk6OmNyZWF0ZSgpOwpAQCAtNDQsMTYgKzQ3
LDE5IEBAIElEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhCiAKIFN0cmluZyBJREJPYmplY3RTdG9yZVJl
cXVlc3Q6Om5hbWUoKSBjb25zdAogewotICAgIEFTU0VSVChtX29iamVjdFN0b3JlKTsKICAgICBy
ZXR1cm4gbV9vYmplY3RTdG9yZS0+bmFtZSgpOwogfQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0OjprZXlQYXRoKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9vYmplY3RTdG9yZSk7CiAg
ICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUtPmtleVBhdGgoKTsKIH0KIAorUGFzc1JlZlB0cjxET01T
dHJpbmdMaXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4TmFtZXMoKSBjb25zdAorewor
ICAgIHJldHVybiBtX29iamVjdFN0b3JlLT5pbmRleE5hbWVzKCk7Cit9CisKIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQoUGFzc1JlZlB0cjxTZXJpYWxp
emVkU2NyaXB0VmFsdWU+IGtleSkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CkBAIC05Miw2
ICs5OCwyNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6
cmVtb3ZlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdAogICAgIHJldHVybiAwOwogfQogCitQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKSBj
b25zdAoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCisgICAgVU5VU0VEX1BBUkFNKG5hbWUp
OworICAgIFVOVVNFRF9QQVJBTShrZXlQYXRoKTsKKyAgICBVTlVTRURfUEFSQU0odW5pcXVlKTsK
KyAgICByZXR1cm4gMDsKK30KKworUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlUmVxdWVzdDo6aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIHJl
dHVybiBJREJJbmRleFJlcXVlc3Q6OmNyZWF0ZShtX29iamVjdFN0b3JlLT5pbmRleChuYW1lKSk7
Cit9CisKK1Bhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1v
dmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IEltcGxl
bWVudC4KKyAgICBVTlVTRURfUEFSQU0obmFtZSk7CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oCmluZGV4IDdkODcxNGViN2YzNDhl
YzViMjNkNzdjMTA5NzY0OWE5OGJkZjhlNGIuLmYwM2I0MDY1ZmFhYmU1ZDljYWQzMWQ1MWNkNzA4
NDJkODM3Mzk2OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJl
cXVlc3QuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAg
LTM3LDcgKzM3LDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01TdHJpbmdM
aXN0OwogY2xhc3MgSURCQW55OworY2xhc3MgSURCSW5kZXhSZXF1ZXN0OwogY2xhc3MgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIApAQCAtNTEs
NiArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0OwogICAgIFN0cmlu
ZyBrZXlQYXRoKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBpbmRleE5h
bWVzKCkgY29uc3Q7CiAKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGdldChQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+
IGFkZChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkgPSAwKTsKQEAgLTU4LDYgKzYxLDEwIEBAIHB1Ymxp
YzoKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IGFkZE9yTW9kaWZ5KFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IGtleSA9IDApOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gcmVtb3ZlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpOwogCisgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBjcmVhdGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0
aCwgYm9vbCB1bmlxdWUgPSBmYWxzZSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJREJJbmRleFJl
cXVlc3Q+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiByZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworCiBwcml2
YXRlOgogICAgIElEQk9iamVjdFN0b3JlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RT
dG9yZVJlcXVlc3QuaWRsCmluZGV4IGM3OWEyZThlYWQ0ZTFhZmIwNWI2ZDY5ZTgyZjNmZGRlZTIz
MjY0ZTAuLjJkNGM4YmVhZDYzYjg2YTI2NzE4OGJjM2UwYjM5YTAyMjJkNzkzMWYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCisrKyBiL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsCkBAIC0yOSwxMyArMjksMTggQEAg
bW9kdWxlIHN0b3JhZ2UgewogICAgICAgICBDb25kaXRpb25hbD1JTkRFWEVEX0RBVEFCQVNFCiAg
ICAgXSBJREJPYmplY3RTdG9yZVJlcXVlc3QgewogICAgICAgICBJREJSZXF1ZXN0IGdldChpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKyAgICAgICAgLy8gRklYTUU6IENvbWUgdG8gY29u
Y2Vuc3VzIHJlIGdldEFsbC4KICAgICAgICAgSURCUmVxdWVzdCBhZGQoaW4gU2VyaWFsaXplZFNj
cmlwdFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkp
OwogICAgICAgICBJREJSZXF1ZXN0IG1vZGlmeShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUgdmFs
dWUsIGluIFtPcHRpb25hbF0gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CiAgICAgICAgIElE
QlJlcXVlc3QgYWRkT3JNb2RpZnkoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIHZhbHVlLCBpbiBb
T3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOwogICAgICAgICBJREJSZXF1ZXN0
IHJlbW92ZShpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKKyAgICAgICAgLy8gRklYTUU6
IHdyaXRlIG9wZW5DdXJzb3IKKyAgICAgICAgSURCUmVxdWVzdCBjcmVhdGVJbmRleChpbiBET01T
dHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGtleVBhdGgsIGluIFtPcHRpb25hbF0gYm9vbGVhbiB1
bmlxdWUpOworICAgICAgICBJREJJbmRleFJlcXVlc3QgaW5kZXgoaW4gRE9NU3RyaW5nIG5hbWUp
OworICAgICAgICBJREJSZXF1ZXN0IHJlbW92ZUluZGV4KGluIERPTVN0cmluZyBuYW1lKTsKIAog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5UGF0aDsKLSAgICAgICAgLy8gRklYTUU6IGFkZCBp
bmRleE5hbWVzIHByb3BlcnR5LgorICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5n
TGlzdCBpbmRleE5hbWVzOwogICAgIH07CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2Uv
SURCUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAKaW5kZXggYTc3
Mzc3ZjJiZTdiNGU2MTI5MTNiMjJlNDE0NDFkMmE0MDIzMTRjMC4uZjg2YWJjYjdkNmI0ZDlkM2Y2
OTgxNWFjMDcyYTRlMmE4NjU4NzI3MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQlJl
cXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVz
LmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VSZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCSW5kZXhS
ZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIklEQlN1Y2Nl
c3NFdmVudC5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTY1LDEy
ICs2NiwyNCBAQCB2b2lkIElEQlJlcXVlc3Q6Om9uRXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFz
ZUVycm9yPiBlcnJvcikKICAgICBtX2Vycm9yID0gZXJyb3I7CiB9CiAKK3ZvaWQgSURCUmVxdWVz
dDo6b25TdWNjZXNzKCkKK3sKKyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHQtPnNl
dCgpOworfQorCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFi
YXNlPiBpZGJEYXRhYmFzZSkKIHsKICAgICBvbkV2ZW50Q29tbW9uKCk7CiAgICAgbV9yZXN1bHQt
PnNldChJREJEYXRhYmFzZVJlcXVlc3Q6OmNyZWF0ZShpZGJEYXRhYmFzZSkpOwogfQogCit2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCkKK3sK
KyAgICBvbkV2ZW50Q29tbW9uKCk7CisgICAgbV9yZXN1bHQtPnNldChJREJJbmRleFJlcXVlc3Q6
OmNyZWF0ZShpZGJJbmRleCkpOworfQorCiB2b2lkIElEQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKQogewog
ICAgIG9uRXZlbnRDb21tb24oKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1
ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5oCmluZGV4IDBjMzdjOTY2ZmViNGNm
YWU1NWViNmQzMDI1N2M5Mzc0MzQ3OGMxYTAuLjU4MzZmNzg2YTU1NGJiYmYyYzIwMDU2ZTgzOGI4
ZTYxNTU5YTE5MjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKKysr
IGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaApAQCAtNjMsNyArNjMsOSBAQCBwdWJsaWM6
CiAKICAgICAvLyBJREJDYWxsYmFja3MKICAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihQYXNzUmVm
UHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8v
IEZvciAibnVsbCIuCiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRh
dGFiYXNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4
Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4pOwogICAgIC8vIEZJWE1FOiBIYXZlIG9uZSBvblN1Y2Nlc3MgZnVuY3Rpb24gZm9y
IGVhY2ggcG9zc2libGUgcmVzdWx0IHR5cGUuCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VSZXF1ZXN0LmlkbAppbmRleCAwNjI5YTMwODNjYzdlNDAwMGYzNWI4YTk0NjhjNzA5NGZh
ZmVkMmJmLi5hODdlMDMzMDBiZTcwNGU4MjZlZjNmZDA3ZmJkODY4Nzk0MTliODZiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRsCkBAIC0xMCw5ICsxMCw2IEBA
CiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUi
KSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMjUsMTEgKzIyLDEzIEBA
CiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KKwogbW9kdWxlIHN0b3JhZ2Ug
ewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFT
RQogICAgIF0gSW5kZXhlZERhdGFiYXNlUmVxdWVzdCB7CisgICAgICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBubyBsb25nZXIgcmFpc2UuCiAgICAgICAgIElEQlJlcXVlc3Qgb3BlbihpbiBET01T
dHJpbmcgbmFtZSwgaW4gRE9NU3RyaW5nIGRlc2NyaXB0aW9uKQogICAgICAgICAgICAgcmFpc2Vz
KElEQkRhdGFiYXNlRXhjZXB0aW9uKTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZjE1ZWY5MjJl
ZTNiZjZmOWIyNTc5MzI5ZWMyZjUyYjg0MWMwZjMwMS4uNzYwOTVmMzAyMThjYjYyMTc1NDVhM2Zm
ZDViMzkxMzUxNDFlNDFhZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMTAtMDUt
MjcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEluZGV4ZWREQidzIElEQkluZGV4
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTg1MAor
CisgICAgICAgIEFkZCBXZWJLaXQgbGF5ZXIgZm9yIElEQkluZGV4LgorCisgICAgICAgICogV2Vi
S2l0Lmd5cDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tbW9uLmg6CisgICAgICAgICogcHVibGlj
L1dlYklEQkNhbGxiYWNrcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9u
RXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDYWxsYmFja3M6Om9uU3VjY2Vzcyk6Cisg
ICAgICAgICogcHVibGljL1dlYklEQkRhdGFiYXNlLmg6CisgICAgICAgICogcHVibGljL1dlYklE
QkluZGV4Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleDo6fldlYklEQklu
ZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXg6Om5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJREJJbmRleDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4
Ojp1bmlxdWUpOgorICAgICAgICAqIHNyYy9JREJDYWxsYmFja3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJDYWxsYmFja3NQcm94eTo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMv
SURCQ2FsbGJhY2tzUHJveHkuaDoKKyAgICAgICAgKiBzcmMvSURCRGF0YWJhc2VQcm94eS5jcHA6
CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNlUHJveHkuaDoKKyAgICAgICAgKiBzcmMvSURCSW5k
ZXhQcm94eS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UHJveHk6OklEQkluZGV4UHJveHkpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhQcm94eTo6fklEQkluZGV4UHJveHkpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCSW5kZXhQcm94eTo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJ
bmRleFByb3h5OjprZXlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UHJveHk6OnVu
aXF1ZSk6CisgICAgICAgICogc3JjL0lEQkluZGV4UHJveHkuaDogQWRkZWQuCisgICAgICAgICog
c3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViSURCQ2Fs
bGJhY2tzSW1wbDo6b25TdWNjZXNzKToKKyAgICAgICAgKiBzcmMvV2ViSURCQ2FsbGJhY2tzSW1w
bC5oOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAqIHNy
Yy9XZWJJREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJbXBsLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6V2ViSURCSW5kZXhJ
bXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjp+V2ViSURCSW5kZXhJbXBs
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXhJbXBsOjpuYW1lKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCSW5kZXhJbXBsOjprZXlQYXRoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
SW5kZXhJbXBsOjp1bmlxdWUpOgorICAgICAgICAqIHNyYy9XZWJJREJJbmRleEltcGwuaDogQWRk
ZWQuCisKIDIwMTAtMDUtMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXgg
Y2E3NDA0ZTEzNTBlMGRkZTRjMzg4ZDY5Mjc0ZTFlYzYxOGQyNzU2Yy4uOTM3ZjRiMzg4NWMzMzE5
OWM0N2QwYWVkMWFmZmQ4MTFjMDY1NTRiMSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTEzOSw2ICsxMzks
NyBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2UuaCcsCiAgICAgICAgICAgICAgICAgJ3B1
YmxpYy9XZWJJREJEYXRhYmFzZUVycm9yLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
SURCSW5kZXguaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbmRleGVkRGF0YWJhc2Uu
aCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJbnB1dEVsZW1lbnQuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJJbnB1dEV2ZW50LmgnLApAQCAtMjY2LDYgKzI2Nyw4IEBACiAg
ICAgICAgICAgICAgICAgJ3NyYy9JREJDYWxsYmFja3NQcm94eS5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lEQkRh
dGFiYXNlUHJveHkuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9JREJJbmRleFByb3h5LmNwcCcs
CisgICAgICAgICAgICAgICAgJ3NyYy9JREJJbmRleFByb3h5LmgnLAogICAgICAgICAgICAgICAg
ICdzcmMvSW5kZXhlZERhdGFiYXNlUHJveHkuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL0lu
ZGV4ZWREYXRhYmFzZVByb3h5LmgnLAogICAgICAgICAgICAgICAgICdzcmMvSW5zcGVjdG9yQ2xp
ZW50SW1wbC5jcHAnLApAQCAtMzUzLDYgKzM1Niw4IEBACiAgICAgICAgICAgICAgICAgJ3NyYy9X
ZWJJREJEYXRhYmFzZUVycm9yLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5o
JywKKyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5jcHAnLAorICAgICAgICAg
ICAgICAgICdzcmMvV2ViSURCSW5kZXhJbXBsLmgnLAogICAgICAgICAgICAgICAgICdzcmMvV2Vi
SW1hZ2VDRy5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VEZWNvZGVyLmNwcCcs
CiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJbWFnZVNraWEuY3BwJywKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkNvbW1vbi5oCmluZGV4IGU3ZTM4ZDM0NDQ3NmYwM2RhODExNDBjY2EwMTg5ZTk3MDQ1MmQx
ZmQuLjc4NzI3MjlkYWYzMjc5YTQzMzAwZjFjNTg3NDhhYTJkOTg3ZTYxMzkgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJDb21tb24uaApAQCAtMTA2LDQgKzEwNiw2IEBAIFdFQktJVF9BUEkgdm9pZCBm
YWlsZWRBc3NlcnRpb24oY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIqIGZ1
bmN0aW9uCiB9IHdoaWxlICgwKQogI2VuZGlmCiAKKyNkZWZpbmUgV0VCS0lUX0FTU0VSVF9OT1Rf
UkVBQ0hFRCgpIFdFQktJVF9BU1NFUlQoMCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJJREJDYWxsYmFja3MuaAppbmRleCA2MTBmN2Q0NGFhMGU2MWY1YjIxMThkODc3NGVmOTU1
NTU1NGQ3YjkzLi5iYmE3Yzc0NTUxZTFhNTAxMDRjNWM1MTA2NmRmZDQyZDFlZGJlYTllIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKQEAgLTEwLDkgKzEwLDYgQEAK
ICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0zNSw2ICszMiw3IEBAIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJJREJEYXRhYmFzZTsKIGNsYXNzIFdlYklEQkRh
dGFiYXNlRXJyb3I7CitjbGFzcyBXZWJJREJJbmRleDsKIGNsYXNzIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKIAogY2xhc3MgV2ViSURCQ2FsbGJhY2tzIHsKQEAgLTQzLDkgKzQxLDExIEBAIHB1
YmxpYzoKIAogICAgIC8vIEZvciBjbGFzc2VzIHRoYXQgZm9sbG93IHRoZSBQSW1wbCBwYXR0ZXJu
LCBwYXNzIGEgY29uc3QgcmVmZXJlbmNlLgogICAgIC8vIEZvciB0aGUgcmVzdCwgcGFzcyBvd25l
cnNoaXAgdG8gdGhlIGNhbGxlZSB2aWEgYSBwb2ludGVyLgotICAgIHZpcnR1YWwgdm9pZCBvbkVy
cm9yKGNvbnN0IFdlYklEQkRhdGFiYXNlRXJyb3ImKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9u
U3VjY2VzcyhXZWJJREJEYXRhYmFzZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNz
KGNvbnN0IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
b25FcnJvcihjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJikgeyBXRUJLSVRfQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCkgeyBXRUJLSVRfQVNTRVJU
X05PVF9SRUFDSEVEKCk7IH0gLy8gRm9yICJudWxsIi4KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNj
ZXNzKFdlYklEQkRhdGFiYXNlKikgeyBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFdlYklEQkluZGV4KikgeyBXRUJLSVRfQVNTRVJUX05P
VF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKGNvbnN0IFdlYlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSYpIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViSURCRGF0YWJhc2UuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJh
c2UuaAppbmRleCA4YzEwODYzNzVjYjBlYTJiOWZiYjE1YTQ4NjhmNmY4ZDQwYzBlNTliLi4wZjY1
YzZmYzhkYzg0YjI5NWYxMWRiNzY2MjlkNDRlNjBkZTlhODM3IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJJREJEYXRhYmFzZS5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
ICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
Ci0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQog
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzQsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2
ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KKy8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWRE
YXRhYmFzZSBmb3IgYSBoaWdoIGxldmVsIG92ZXJ2aWV3IG9mIHRoZXNlIGNsYXNzZXMuCiBjbGFz
cyBXZWJJREJEYXRhYmFzZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+V2ViSURCRGF0YWJhc2Uo
KSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaCBi
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWZlYTBl
MGZiOTBhMTZlNDA1YWY0NWQyNjI1ZWM2YzhkZDc5MDIzCi0tLSAvZGV2L251bGwKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJJbmRleC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYklEQkluZGV4X2gKKyNkZWZpbmUgV2ViSURCSW5kZXhfaAorCisjaW5jbHVk
ZSAiV2ViU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBTZWUgY29tbWVudCBp
biBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyBvZiB0aGVzZSBj
bGFzc2VzLgorY2xhc3MgV2ViSURCSW5kZXggeworcHVibGljOgorICAgIHZpcnR1YWwgfldlYklE
QkluZGV4KCkgeyB9CisKKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCkgY29uc3QKKyAgICB7
CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdl
YlN0cmluZygpOworICAgIH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBrZXlQYXRoKCkgY29uc3QK
KyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIFdlYlN0cmluZygpOworICAgIH0KKyAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCkgY29uc3QK
KyAgICB7CisgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYg
Ly8gV2ViSURCSW5kZXhfaApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxs
YmFja3NQcm94eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNw
cAppbmRleCAyYmRmMTQwZTVlNjRkYzllMjRlODM0MGNlYTFlZTRkOTdhNjlmMzIzLi4zZTVmMDBh
YzVkZGI3ZDFjNDc0MTRmNzRjNzYwMzFkNjk1NmI2OTdkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3Jj
L0lEQkNhbGxiYWNrc1Byb3h5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYklE
QkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlSW1wbC5oIgogI2luY2x1ZGUg
IldlYklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRlICJXZWJJREJJbmRleEltcGwuaCIKICNp
bmNsdWRlICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpAQCAtNjAsMTIgKzYxLDI0IEBAIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9u
RXJyb3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPiBpZGJEYXRhYmFzZUVycm9yKQogICAg
IG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3Vj
Y2VzcygpCit7CisgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcygpOworICAgIG1fY2FsbGJhY2tz
LmNsZWFyKCk7Cit9CisKIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQYXNzUmVm
UHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNj
ZXNzKG5ldyBXZWJLaXQ6OldlYklEQkRhdGFiYXNlSW1wbChpZGJEYXRhYmFzZSkpOwogICAgIG1f
Y2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25T
dWNjZXNzKG5ldyBXZWJLaXQ6OldlYklEQkluZGV4SW1wbChpZGJJbmRleCkpOworICAgIG1fY2Fs
bGJhY2tzLmNsZWFyKCk7Cit9CisKIHZvaWQgSURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2VzcyhQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gc2VyaWFsaXplZFNjcmlwdFZhbHVlKQog
ewogICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0
VmFsdWUoc2VyaWFsaXplZFNjcmlwdFZhbHVlKSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxi
YWNrc1Byb3h5LmgKaW5kZXggNWQ0YmMwYjE3ZjQ2MDcyNWMwMjVjZmZkOGY2NGEyMDVjNTliNTcw
MC4uZDk4ZTJlZDRhZDJlMTkyNTQ3MDllZDViNjBmZjViNTcyZjNkNWY0YSAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaApAQCAtNTEsNyArNTEsOSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+SURCQ2FsbGJhY2tzUHJveHkoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBvbkVy
cm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoKTsgLy8gRm9yICJudWxsIi4KICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2U+KTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQ
dHI8SURCSW5kZXg+KTsKICAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJE
YXRhYmFzZVByb3h5LmNwcAppbmRleCA5NjRiYWRhM2UwMjJkNGQ5NjBlZWM5YWE5Njc3M2M0OThj
Mjc2NjNmLi5kZWIyZjk5ZjY5NzZkNzAwMjhlMDEwZjBmODE3OWZiNDM0YzA3NjYwIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VQcm94eS5jcHAKQEAgLTEwLDkgKzEwLDYgQEAKICAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICog
My4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5v
ciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0zMCw3ICsyNyw2IEBACiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgot
I2luY2x1ZGUgIklEQkRhdGFiYXNlRXJyb3IuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZS5o
IgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKIApAQCAtNzUsNCArNzEsMyBAQCBQ
YXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IElEQkRhdGFiYXNlUHJveHk6Om9iamVjdFN0b3Jlcygp
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKLQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuaAppbmRleCBkMWE1MTQ2
YzkxM2I5ZTI1YTYyYjc2MTEzMDRhNWQzMDlmNmY1MmVkLi5lNWU1MTI1MGQzNWJlY2E3OWIwMzUy
NThjMTE4ZGNjNjUzOTM4ZDVlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlUHJveHkuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHku
aApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQog
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
QEAgLTYzLDQgKzYwLDMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjZW5kaWYgLy8gSURCRGF0YWJh
c2VQcm94eV9oCi0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhQcm94
eS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4UHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY4MGVmZjNlNjA5MjEyYWJkY2I5Y2U2NjI1ZTI3ZmY2NmIzNTkwYzkKLS0tIC9kZXYvbnVsbAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4UHJveHkuY3BwCkBAIC0wLDAgKzEsNjcg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisg
KiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSURCSW5kZXhQcm94eS5o
IgorCisjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgorI2luY2x1ZGUgIldlYklEQklu
ZGV4LmgiCisKKyNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitQYXNzUmVmUHRyPElEQkluZGV4PiBJREJJbmRleFByb3h5OjpjcmVhdGUoUGFzc093
blB0cjxXZWJLaXQ6OldlYklEQkluZGV4PiBJbmRleCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IElEQkluZGV4UHJveHkoSW5kZXgpKTsKK30KKworSURCSW5kZXhQcm94eTo6SURCSW5kZXhQ
cm94eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCSW5kZXg+IEluZGV4KQorICAgIDogbV93ZWJJ
REJJbmRleChJbmRleCkKK3sKK30KKworSURCSW5kZXhQcm94eTo6fklEQkluZGV4UHJveHkoKQor
eworfQorCitTdHJpbmcgSURCSW5kZXhQcm94eTo6bmFtZSgpCit7CisgICAgcmV0dXJuIG1fd2Vi
SURCSW5kZXgtPm5hbWUoKTsKK30KKworU3RyaW5nIElEQkluZGV4UHJveHk6OmtleVBhdGgoKQor
eworICAgIHJldHVybiBtX3dlYklEQkluZGV4LT5rZXlQYXRoKCk7Cit9CisKK2Jvb2wgSURCSW5k
ZXhQcm94eTo6dW5pcXVlKCkKK3sKKyAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+dW5pcXVlKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVE
X0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkluZGV4UHJveHkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWU2
YjMwODI5NDA3YzllZTY4Y2FmN2FlZTAzNWVmYmE0ZGIwNGJkCi0tLSAvZGV2L251bGwKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5LmgKQEAgLTAsMCArMSw2MSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgSURCSW5kZXhQcm94eV9oCisjZGVmaW5lIElEQkluZGV4UHJveHlfaAorCisj
aW5jbHVkZSAiSURCSW5kZXguaCIKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCisjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJLaXQgeyBjbGFzcyBXZWJJREJJ
bmRleDsgfQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkluZGV4UHJveHkgOiBw
dWJsaWMgSURCSW5kZXggeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkluZGV4
PiBjcmVhdGUoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkluZGV4Pik7CisgICAgdmlydHVhbCB+
SURCSW5kZXhQcm94eSgpOworCisgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpOworICAgIHZpcnR1
YWwgU3RyaW5nIGtleVBhdGgoKTsKKyAgICB2aXJ0dWFsIGJvb2wgdW5pcXVlKCk7CisKKyAgICAv
LyBGSVhNRTogQWRkIG90aGVyIG1ldGhvZHMuCisKK3ByaXZhdGU6CisgICAgSURCSW5kZXhQcm94
eShQYXNzT3duUHRyPFdlYktpdDo6V2ViSURCSW5kZXg+KTsKKworICAgIE93blB0cjxXZWJLaXQ6
OldlYklEQkluZGV4PiBtX3dlYklEQkluZGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYKKworI2VuZGlmIC8vIElEQkluZGV4UHJveHlfaApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggOGY4OGNiNmY2ZDZmMTlhNzIwYTli
YjE0ZjcwNDA5NDJlNmY3YmUyNC4uZWExYzBiMTE0MjM5ZmI3ODlmMjQ1NTk2YTI5YzljZTExZDdl
YjI5NyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBs
LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCkBA
IC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVy
LCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICog
ICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAt
MzIsOSArMjksMTEgQEAKICNpbmNsdWRlICJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VQcm94eS5oIgorI2luY2x1ZGUg
IklEQkluZGV4UHJveHkuaCIKICNpbmNsdWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRl
ICJXZWJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKKyNp
bmNsdWRlICJXZWJJREJJbmRleC5oIgogI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC01NiwxMiArNTUsMjQgQEAg
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvbkVycm9yKGNvbnN0IFdlYktpdDo6V2ViSURCRGF0
YWJhc2VFcnJvciYgZXJyb3IpCiAgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKIH0KIAordm9pZCBX
ZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3MoKTsKKyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIFdlYklEQkNhbGxi
YWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5j
ZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQkRhdGFiYXNlUHJveHk6OmNyZWF0
ZSh3ZWJLaXRJbnN0YW5jZSkpOwogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9CiAKK3ZvaWQg
V2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKFdlYktpdDo6V2ViSURCSW5kZXgqIHdlYktp
dEluc3RhbmNlKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoSURCSW5kZXhQcm94eTo6
Y3JlYXRlKHdlYktpdEluc3RhbmNlKSk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwog
dm9pZCBXZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWUmIHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKIHsKICAgICBtX2NhbGxi
YWNrcy0+b25TdWNjZXNzKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CkBAIC03MSw0ICs4MiwzIEBA
IHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYktpdDo6V2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlJiBzZXJpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkNhbGxiYWNrc0ltcGwuaAppbmRleCA5YjUzMTE3ZTZkZTUxMzljMjk1MDEwZTNlNzI3MjhmY2I2
NmZlNzJkLi44ZTVhZGE3YjcxNmZmMGVlYzUzYjE3MTZhNjU5ZDhiOWFhMjRiZGU2IDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaAorKysgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuaApAQCAtMTAsOSArMTAsNiBAQAog
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikg
bm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTM1LDI0ICszMiwyMCBAQAog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKLW5hbWVzcGFjZSBXZWJLaXQgewotY2xh
c3MgV2ViSURCRGF0YWJhc2U7Ci1jbGFzcyBXZWJJREJEYXRhYmFzZUVycm9yOwotY2xhc3MgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlOwotfQotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IElEQkNhbGxiYWNrczsKIAogY2xhc3MgV2ViSURCQ2FsbGJhY2tzSW1wbCA6IHB1YmxpYyBXZWJL
aXQ6OldlYklEQkNhbGxiYWNrcyB7CiBwdWJsaWM6Ci0gICAgV2ViSURCQ2FsbGJhY2tzSW1wbChQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzKTsKKyAgICBXZWJJREJDYWxsYmFja3NJ
bXBsKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgdmlydHVhbCB+V2ViSURCQ2FsbGJh
Y2tzSW1wbCgpOwogCi0gICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViS2l0OjpXZWJJ
REJEYXRhYmFzZUVycm9yJiBlcnJvcik7Ci0gICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJL
aXQ6OldlYklEQkRhdGFiYXNlKiB3ZWJLaXRJbnN0YW5jZSk7Ci0gICAgdmlydHVhbCB2b2lkIG9u
U3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaWFsaXpl
ZFNjcmlwdFZhbHVlKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25FcnJvcihjb25zdCBXZWJLaXQ6Oldl
YklEQkRhdGFiYXNlRXJyb3ImKTsKKyAgICB2aXJ0dWFsIHZvaWQgb25TdWNjZXNzKCk7IC8vIEZv
ciAibnVsbCIuCisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkRhdGFi
YXNlKik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQkluZGV4Kik7
CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25zdCBXZWJLaXQ6OldlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZSYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IG1fY2Fs
bGJhY2tzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUlt
cGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCmluZGV4
IDc0NTg1NjQ5ODYyYjMzOWE2YjM4NWJmODdhZmI2NTc0N2I5MTU0MTkuLjNhMDBjY2JlOGQzNzI2
MmRjNWIxYTIzYTY5OGRhOWE1ZTBkOWM2NWEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkRhdGFiYXNlSW1wbC5jcHAKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRh
dGFiYXNlSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApp
bmRleCBhNDUzNjhlNTJlOGFhNzRmYzg2N2MzMGYyZDA4OTdkYjQ1N2IwMDU0Li5mOTlhNzU5OWFl
YzZmNDBmNTM2OGM3ODRjNzcwZWExNDhiNWMxMmQzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SURCRGF0YWJhc2VJbXBsLmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQklu
ZGV4SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMzA0MjE3YzYwOTVlOGQxYzEzYzE2YmNhN2Y4ZWIwY2U5ZDcxYjZlNAotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBsLmNwcApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYklE
QkluZGV4SW1wbC5oIgorCisjaW5jbHVkZSAiSURCSW5kZXguaCIKKworI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dlYklEQkluZGV4SW1wbDo6V2ViSURCSW5kZXhJbXBsKFBhc3NSZWZQdHI8SURC
SW5kZXg+IGlkYkluZGV4KQorICAgIDogbV9pZGJJbmRleChpZGJJbmRleCkKK3sKK30KKworV2Vi
SURCSW5kZXhJbXBsOjp+V2ViSURCSW5kZXhJbXBsKCkKK3sKK30KKworV2ViU3RyaW5nIFdlYklE
QkluZGV4SW1wbDo6bmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRiSW5kZXgtPm5hbWUo
KTsKK30KKworV2ViU3RyaW5nIFdlYklEQkluZGV4SW1wbDo6a2V5UGF0aCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1faWRiSW5kZXgtPmtleVBhdGgoKTsKK30KKworYm9vbCBXZWJJREJJbmRleElt
cGw6OnVuaXF1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1faWRiSW5kZXgtPnVuaXF1ZSgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCSW5kZXhJbXBs
LmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUx
ZjA1MzhjMDAyZWU4ZWYwN2U0Yzg4N2ZiYjE3MjJjNmUzYjcyOTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1wbC5oCkBAIC0wLDAgKzEsNTQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYklEQkluZGV4SW1wbF9oCisjZGVmaW5lIFdlYklEQkluZGV4SW1w
bF9oCisKKyNpbmNsdWRlICJXZWJDb21tb24uaCIKKyNpbmNsdWRlICJXZWJJREJJbmRleC5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIElEQkluZGV4OyB9CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCisvLyBTZWUgY29tbWVudCBpbiBXZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZl
bCBvdmVydmlldyB0aGVzZSBjbGFzc2VzLgorY2xhc3MgV2ViSURCSW5kZXhJbXBsIDogcHVibGlj
IFdlYklEQkluZGV4IHsKK3B1YmxpYzoKKyAgICBXZWJJREJJbmRleEltcGwoV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkluZGV4PiBpZGJJbmRleCk7CisgICAgdmlydHVhbCB+V2ViSURCSW5k
ZXhJbXBsKCk7CisKKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBuYW1lKCkgY29uc3Q7CisgICAgdmly
dHVhbCBXZWJTdHJpbmcga2V5UGF0aCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUo
KSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBXVEY6OlJlZlB0cjxXZWJDb3JlOjpJREJJbmRleD4g
bV9pZGJJbmRleDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2Vi
SURCSW5kZXhJbXBsX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57327</attachid>
            <date>2010-05-28 07:17:25 -0700</date>
            <delta_ts>2010-05-28 07:23:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39850-20100528151722.patch</filename>
            <type>text/plain</type>
            <size>96241</size>
            <attacher name="Jeremy Orlow">jorlow</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRpbmdzLm1rIGIvV2Vi
Q29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKaW5kZXggYTlkMTUxNjM0MDUxZjU4
NDFiYTUzMmM1Y2MzMzJkMTg5NWViMmNkMy4uZjU0ZWJmMTNmNjEzY2U1OGE4MzQwNzcwMWJhODhj
Zjc1ODRmMGU2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGlu
Z3MubWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLmRlcml2ZWQuanNjYmluZGluZ3MubWsKQEAgLTM2
NCw2ICszNjQsNyBAQCBHRU4gOj0gXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lE
QkRhdGFiYXNlUmVxdWVzdC5oIFwKICAgICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJF
cnJvckV2ZW50LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkV2ZW50Lmgg
XAorICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9KU0lEQkluZGV4UmVxdWVzdC5oIFwKICAg
ICAkKGludGVybWVkaWF0ZXMpL3N0b3JhZ2UvSlNJREJSZXF1ZXN0LmggXAogICAgICQoaW50ZXJt
ZWRpYXRlcykvc3RvcmFnZS9KU0lEQlN1Y2Nlc3NFdmVudC5oIFwKICAgICAkKGludGVybWVkaWF0
ZXMpL3N0b3JhZ2UvSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsgYi9XZWJDb3JlL0FuZHJvaWQuZGVyaXZl
ZC52OGJpbmRpbmdzLm1rCmluZGV4IDk0OGQyODIxZjVkM2I4ZDRmMzVkYjQyNGFjMjQyNmJlYzZm
NjM2NjMuLjljZWZlNmFmY2RmMTE2NDM1YjMxM2ZmZDBmY2ZiYzM0N2E4Y2NmNzAgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKysrIGIvV2ViQ29yZS9B
bmRyb2lkLmRlcml2ZWQudjhiaW5kaW5ncy5tawpAQCAtMzQ1LDYgKzM0NSw3IEBAIEdFTiA6PSBc
CiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURCRGF0YWJhc2VSZXF1ZXN0LmggXAog
ICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9WOElEQkVycm9yRXZlbnQuaCBcCiAgICAgJChp
bnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURCRXZlbnQuaCBcCisgICAgJChpbnRlcm1lZGlhdGVz
KS9zdG9yYWdlL1Y4SURCSW5kZXhSZXF1ZXN0LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3Rv
cmFnZS9WOElEQlJlcXVlc3QuaCBcCiAgICAgJChpbnRlcm1lZGlhdGVzKS9zdG9yYWdlL1Y4SURC
U3VjY2Vzc0V2ZW50LmggXAogICAgICQoaW50ZXJtZWRpYXRlcykvc3RvcmFnZS9WOEluZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29y
ZS9BbmRyb2lkLm1rCmluZGV4IGQyODhkNTczMzRmY2RlMjI5ZGFkYTA3NDcwNTA4MTUxMTczYWE5
NGEuLjI4YzlhY2FhNDMwMWUwODY4MDRkOGFjYzYzZjE0ZGYwZjJmM2VhNjggMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTcxNCw4ICs3
MTQsMTIgQEAgTE9DQUxfU1JDX0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJc3RvcmFn
ZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwIFwKIAlzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3BwIFwK
IAlzdG9yYWdlL0lEQkV2ZW50LmNwcCBcCi0Jc3RvcmFnZS9JREJTdWNjZXNzRXZlbnQuY3BwIFwK
KwlzdG9yYWdlL0lEQkluZGV4SW1wbC5jcHAgXAorCXN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNw
cCBcCisJc3RvcmFnZS9JREJPYmplY3RTdG9yZS5jcHAgXAorCXN0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmNwcCBcCiAJc3RvcmFnZS9JREJSZXF1ZXN0LmNwcCBcCisJc3RvcmFnZS9JREJT
dWNjZXNzRXZlbnQuY3BwIFwKIAlzdG9yYWdlL0luZGV4ZWREYXRhYmFzZS5jcHAgXAogCXN0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlSW1wbC5jcHAgXAogCXN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVx
dWVzdC5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IDNmYmE5YmJhZGM1YTQ0MmMwNzNmZDE0YjRmMjQ3ODVhM2NlN2Fk
OTkuLmFhM2EzMjA4NjMzZjhhZTVjZjkwMmU4Mzg2YjJhZDZhMWFiZTUyYzIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MzI3LDYgKzMyNyw3IEBAIFNFVChXZWJDb3JlX0lETF9GSUxFUwogICAgIHN0b3JhZ2UvSURCRGF0
YWJhc2VSZXF1ZXN0LmlkbAogICAgIHN0b3JhZ2UvSURCRXJyb3JFdmVudC5pZGwKICAgICBzdG9y
YWdlL0lEQkV2ZW50LmlkbAorICAgIHN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmlkbAogICAgIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAogICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5p
ZGwKICAgICBzdG9yYWdlL0lEQlN1Y2Nlc3NFdmVudC5pZGwKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGVjODQ1YTFiNDBmMzE5NjBiNGY4
ZmFkMDZhZTQ0MWI5ZTU1ZjdiNy4uZmY0ZmI0YmYwMTgwZGFlYzRkYzJhYTc0NWZhOTViNTA0OTI1
ZjFjZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw5MiBAQAorMjAxMC0wNS0yNyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgSW5kZXhlZERCJ3MgSURCSW5kZXgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM5ODUwCisKKyAgICAgICAgRmxlc2ggb3V0IElEQkluZGV4
IGFzIG11Y2ggYXMgcG9zc2libGUgdW50aWwgQW5kcmVpIGZpbmlzaGVzCisgICAgICAgIGhpcyBw
YXRjaCB0byBnZXQgYXJvdW5kIHBhc3NpbmcgRnJhbWUqJ3MgYWxsIGFyb3VuZC4gIEkgYWxzbwor
ICAgICAgICBjbGVhbmVkIHVwIGEgYnVuY2ggb2YgZXhpc3RpbmcgZmlsZXMgYXMgSSBub3RpY2Vk
IHN0eWxlCisgICAgICAgIHZpb2xhdGlvbnMgKHdoaWxlIGJhc2luZyBteSBuZXcgZmlsZXMgb2Zm
IG9mIHRoZSBvbGQpLgorCisgICAgICAgIE5vdCBob29rZWQgdXAgZW5vdWdoIHRvIHRlc3QuICBX
aWxsIGFkZCB0ZXN0cyBzb29uLgorCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLmpzY2JpbmRp
bmdzLm1rCisgICAgICAgICogQW5kcm9pZC5kZXJpdmVkLnY4YmluZGluZ3MubWsKKyAgICAgICAg
KiBBbmRyb2lkLm1rCisgICAgICAgICogQ01ha2VMaXN0cy50eHQKKyAgICAgICAgKiBEZXJpdmVk
U291cmNlcy5jcHAKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlCisgICAgICAgICogR05V
bWFrZWZpbGUuYW0KKyAgICAgICAgKiBXZWJDb3JlLnByaQorICAgICAgICAqIFdlYkNvcmUucHJv
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCQW55LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkFueTo6aWRiSW5kZXhSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkFueTo6c2V0KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkFueS5oOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQW55OjopOgorICAgICAgICAqIHN0b3JhZ2UvSURCQ2FsbGJhY2tz
Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5oOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCRGF0YWJhc2VFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VFcnJvcjo6
KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlRXJyb3IuaWRsOgorICAgICAgICAqIHN0
b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFi
YXNlRXhjZXB0aW9uLmlkbDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5jcHA6
CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaDoKKyAgICAgICAgKiBzdG9yYWdl
L0lEQkRhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZVJl
cXVlc3QuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGw6CisgICAg
ICAgICogc3RvcmFnZS9JREJJbmRleC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQklu
ZGV4Ojp+SURCSW5kZXgpOgorICAgICAgICAqIHN0b3JhZ2UvSURCSW5kZXhJbXBsLmNwcDogQWRk
ZWQuCisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEltcGw6OklEQkluZGV4SW1wbCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJJbmRleEltcGw6On5JREJJbmRleEltcGwpOgorICAgICAgICAqIHN0
b3JhZ2UvSURCSW5kZXhJbXBsLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJ
bXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbXBsOjpuYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW1wbDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJJbmRleEltcGw6OnVuaXF1ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleFJlcXVl
c3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UmVxdWVzdDo6SURCSW5k
ZXhSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UmVxdWVzdDo6fklEQkluZGV4
UmVxdWVzdCk6CisgICAgICAgICogc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpJREJJbmRleFJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJJbmRleFJlcXVlc3Q6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhS
ZXF1ZXN0OjprZXlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UmVxdWVzdDo6dW5p
cXVlKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5pZGw6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
T2JqZWN0U3RvcmU6OklEQk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlOjp+SURCT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3Rv
cmU6OmluZGV4TmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OmNyZWF0
ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjppbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6cmVtb3ZlSW5kZXgpOgorICAgICAgICAqIHN0
b3JhZ2UvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3Jl
UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklE
Qk9iamVjdFN0b3JlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJl
cXVlc3Q6Om5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpr
ZXlQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6aW5kZXhO
YW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNyZWF0ZUlu
ZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlUmVxdWVzdDo6aW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmVJbmRleCk6Cisg
ICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaDoKKyAgICAgICAgKiBzdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGw6CisgICAgICAgICogc3RvcmFnZS9JREJSZXF1
ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3Q6Om9uU3VjY2Vzcyk6CisgICAg
ICAgICogc3RvcmFnZS9JREJSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JbmRleGVkRGF0
YWJhc2VSZXF1ZXN0LmlkbDoKKwogMjAxMC0wNS0yNyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlz
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAgYi9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLmNwcAppbmRleCBlNWQ2MGVjODQ2NTNmYTdkODUwNjliMWFhNWNlZDM5OTk4MmVlMDc3Li5h
ZTZiOTJlM2JiYzlhZWU1OTBmMzMwZDk3ODZjOTU2MzhiMmU1Njc4IDEwMDY0NAotLS0gYS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcApA
QCAtMTc0LDYgKzE3NCw3IEBACiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZVJlcXVlc3QuY3BwIgog
I2luY2x1ZGUgIkpTSURCRXJyb3JFdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNJREJFdmVudC5jcHAi
CisjaW5jbHVkZSAiSlNJREJJbmRleFJlcXVlc3QuY3BwIgogI2luY2x1ZGUgIkpTSURCT2JqZWN0
U3RvcmVSZXF1ZXN0LmNwcCIKICNpbmNsdWRlICJKU0lEQlJlcXVlc3QuY3BwIgogI2luY2x1ZGUg
IkpTSURCU3VjY2Vzc0V2ZW50LmNwcCIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBiZDA2MTMwYWMwZjhl
YjYyZWU1ODQxMWY1YTE3NjRiZjdiOWQ2N2VlLi44NjdiMDAyYmU2ZmNiZmQxMmVlYTEyNDQyNDgx
ZTNjMGY5OGM1MzYzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysr
IGIvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0yMTcsNiArMjE3LDcgQEAgRE9NX0NM
QVNTRVMgPSBcCiAgICAgSURCRGF0YWJhc2VSZXF1ZXN0IFwKICAgICBJREJFcnJvckV2ZW50IFwK
ICAgICBJREJFdmVudCBcCisgICAgSURCSW5kZXhSZXF1ZXN0IFwKICAgICBJREJPYmplY3RTdG9y
ZVJlcXVlc3QgXAogICAgIElEQlJlcXVlc3QgXAogICAgIElEQlN1Y2Nlc3NFdmVudCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpp
bmRleCA1YzAzZDVmZjk1MTZlZjFiMDY5NjRhNDA0MzA3NjdhMmFmYjQ1ZTY3Li42YWNmMjM3Yjk2
ODRmYzdjMzMwYjRlOGZmMzkwOGE0MjlkMWZhMGE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTI0NzQsNiArMjQ3NCw3
IEBAIElETF9CSU5ESU5HUyArPSBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVz
dC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFcnJvckV2ZW50LmlkbCBcCiAJV2ViQ29yZS9z
dG9yYWdlL0lEQkV2ZW50LmlkbCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5p
ZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsIFwKIAlXZWJD
b3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJTdWNjZXNz
RXZlbnQuaWRsIFwKQEAgLTI0OTcsNiArMjQ5OCwxMSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvc3RvcmFnZS9JREJFcnJvckV2ZW50LmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJF
dmVudC5jcHAgXAogCVdlYkNvcmUvc3RvcmFnZS9JREJFdmVudC5oIFwKKwlXZWJDb3JlL3N0b3Jh
Z2UvSURCSW5kZXguaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4SW1wbC5jcHAgXAorCVdl
YkNvcmUvc3RvcmFnZS9JREJJbmRleEltcGwuaCBcCisJV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4
UmVxdWVzdC5jcHAgXAorCVdlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVlc3QuaCBcCiAJV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcCBcCiAJV2ViQ29yZS9zdG9yYWdlL0lEQk9i
amVjdFN0b3JlLmggXAogCVdlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3Bw
IFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5
cGkKaW5kZXggOWVhNjk1MjljMGEyYjQ5Mjg3ZmUxODlhNTA3NmM2OWQ5YjZhYjI3Yy4uMmE4ZTZk
Yzc4ODNlNDdkYTNhYjUyM2E0MDM0OTQxMmIwMTc3ZGE2NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTIzMCw2ICsyMzAsNyBA
QAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmlkbCcsCiAgICAgICAg
ICAgICAnc3RvcmFnZS9JREJFcnJvckV2ZW50LmlkbCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9J
REJFdmVudC5pZGwnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmlkbCcs
CiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaWRsJywKICAgICAg
ICAgICAgICdzdG9yYWdlL0lEQlJlcXVlc3QuaWRsJywKICAgICAgICAgICAgICdzdG9yYWdlL0lE
QlN1Y2Nlc3NFdmVudC5pZGwnLApAQCAtMzM2Niw2ICszMzY3LDExIEBACiAgICAgICAgICAgICAn
c3RvcmFnZS9JREJFdmVudC5oJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQu
Y3BwJywKICAgICAgICAgICAgICdzdG9yYWdlL0lEQkVycm9yRXZlbnQuaCcsCisgICAgICAgICAg
ICAnc3RvcmFnZS9JREJJbmRleC5oJywKKyAgICAgICAgICAgICdzdG9yYWdlL0lEQkluZGV4SW1w
bC5jcHAnLAorICAgICAgICAgICAgJ3N0b3JhZ2UvSURCSW5kZXhJbXBsLmgnLAorICAgICAgICAg
ICAgJ3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcCcsCisgICAgICAgICAgICAnc3RvcmFnZS9J
REJJbmRleFJlcXVlc3QuaCcsCiAgICAgICAgICAgICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZS5j
cHAnLAogICAgICAgICAgICAgJ3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuaCcsCiAgICAgICAgICAg
ICAnc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvV2ViQ29yZS5wcmkgYi9XZWJDb3JlL1dlYkNvcmUucHJpCmluZGV4IDYxODRlNTQwMjQyYjQ2
NWIwNGZkMTFkOTFlNjdjNzI5YzIwNzk1MWUuLjliODczZmUwMGVhYWQ1MTk4NmViMzEwMjI3MTY3
ZmI0NDdlZTQ4NjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcmkKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLnByaQpAQCAtNDUwLDYgKzQ1MCw3IEBAIElETF9CSU5ESU5HUyArPSBcCiAgICAg
c3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQkVycm9yRXZl
bnQuaWRsIFwKICAgICBzdG9yYWdlL0lEQkV2ZW50LmlkbCBcCisgICAgc3RvcmFnZS9JREJJbmRl
eFJlcXVlc3QuaWRsIFwKICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgXAog
ICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5pZGwgXAogICAgIHN0b3JhZ2UvSURCU3VjY2Vzc0V2ZW50
LmlkbCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwppbmRleCA1ZDVjOWNmMDU5YWUwNmU4ZjhjYzJlZDEyNTI5MzQzZGE5ODg0NTRiLi5hYTYz
NWEzZWQ1YzU0NDQwZmQ5MzA1MTljMGEyZDdjNTkzNzVlZDI4IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L1dlYkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTIzNDEsNiArMjM0MSw5
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFPTEpIHsKICAgICAg
ICAgc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaCBcCiAgICAgICAgIHN0b3JhZ2UvSURCRXJy
b3JFdmVudC5oIFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5oIFwKKyAgICAgICAgc3RvcmFn
ZS9JREJJbmRleC5oIFwKKyAgICAgICAgc3RvcmFnZS9JREJJbmRleEltcGwuaCBcCisgICAgICAg
IHN0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmggXAogICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmggXAogICAgICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIFwKICAgICAg
ICAgc3RvcmFnZS9JREJSZXF1ZXN0LmggXApAQCAtMjM1Niw2ICsyMzU5LDggQEAgY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX0lOREVYRURfREFUQUJBU0U9MSkgewogICAgICAgICBzdG9yYWdlL0lE
QkRhdGFiYXNlUmVxdWVzdC5jcHAgXAogICAgICAgICBzdG9yYWdlL0lEQkVycm9yRXZlbnQuY3Bw
IFwKICAgICAgICAgc3RvcmFnZS9JREJFdmVudC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQklu
ZGV4SW1wbC5jcHAgXAorICAgICAgICBzdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5jcHAgXAogICAg
ICAgICBzdG9yYWdlL0lEQk9iamVjdFN0b3JlLmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHN0b3JhZ2UvSURCUmVxdWVzdC5jcHAgXApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZWNiMjMwYTAzMmI4Yzc3MGY4
NmVmNDVjODYwYzg3ZmQwMjMyNjdlNS4uOTQyNWYzZjQxOWRkZjcwOGFkZDkwZmZmMDFkNjg5Njlk
ZTIxMzliMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zODU3Miw2
ICszODU3Miw2MiBAQAogCQkJCQk+DQogCQkJCTwvRmlsZT4NCiAJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xKU0lEQkluZGV4UmVxdWVzdC5jcHAiDQorCQkJCQk+DQorCQkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z3xXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENv
bXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IlJlbGVhc2V8V2luMzIiDQorCQkJCQkJ
RXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQorCQkJCQkJPg0KKwkJCQkJCTxUb29sDQorCQkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJLz4NCisJCQkJCTwvRmlsZUNvbmZpZ3Vy
YXRpb24+DQorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQlOYW1lPSJEZWJ1Z19JbnRl
cm5hbHxXaW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQor
CQkJCQkJPFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJCU5hbWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJCT4NCisJCQkJCQk8VG9vbA0KKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJU
b29sIg0KKwkJCQkJCS8+DQorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KKwkJCQkJPEZpbGVD
b25maWd1cmF0aW9uDQorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb3xXaW4zMiINCisJCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJPFRvb2wNCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJPC9GaWxlQ29uZmlndXJh
dGlvbj4NCisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxX
aW4zMiINCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCisJCQkJCQk+DQorCQkJCQkJ
PFRvb2wNCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCisJCQkJCQkvPg0KKwkJCQkJ
PC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVs
YXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXEpTSURCSW5kZXhSZXF1ZXN0LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJ
PEZpbGUNCiAJCQkJCVJlbGF0aXZlUGF0aD0iJChXZWJLaXRPdXRwdXREaXIpXG9ialwkKFByb2pl
Y3ROYW1lKVxEZXJpdmVkU291cmNlc1xKU0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAiDQogCQkJ
CQk+DQogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCkBAIC00NDEwOSw2ICs0NDE2NSwyNiBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9y
YWdlXElEQkluZGV4LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVs
YXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4SW1wbC5jcHAiDQorCQkJCT4NCisJCQk8L0Zp
bGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxzdG9yYWdlXElEQkluZGV4SW1w
bC5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0i
Li5cc3RvcmFnZVxJREJJbmRleFJlcXVlc3QuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJ
CTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cc3RvcmFnZVxJREJJbmRleFJlcXVlc3QuaCIN
CisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHN0
b3JhZ2VcSURCT2JqZWN0U3RvcmUuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2ViYWM0YWQxOTgxMzhlY2Rl
NjcxMzAwMWUyZWJmNGNhNTEzMjVlNy4uMWVhNjkxNWUzMjNmZmZkZWY4ZjFmMzhkNGRmMGFhZmQ3
MTFkMjU5MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQ4MDMsNiArNDgwMywxMSBAQAogCQlDNTE5OEY1QzExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhl
ZERhdGFiYXNlSW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzUxOThGNDgxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZUltcGwuaCAq
LzsgfTsKIAkJQzUxOThGNUQxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUx
OThGNDkxMTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwICovOyB9
OwogCQlDNTE5OEY1RTExOTJFQ0ZEMDAyQjc0QTYgLyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxOThGNEEx
MTkyRUNGRDAwMkI3NEE2IC8qIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuaCAqLzsgfTsKKwkJQzUx
REE5QTUxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTFEQTk5RjExQUVGMkMxMDA5Nzk5QzUgLyogSURC
SW5kZXguaCAqLzsgfTsKKwkJQzUxREE5QTYxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1w
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTFE
QTlBMDExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhJbXBsLmNwcCAqLzsgfTsKKwkJQzUxREE5
QTcxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzUxREE5QTExMUFFRjJDMTAwOTc5OUM1IC8qIElE
QkluZGV4SW1wbC5oICovOyB9OworCQlDNTFEQTlBODExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5k
ZXhSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEM1MURBOUEyMTFBRUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuY3BwICovOyB9
OworCQlDNTFEQTlBOTExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTFEQTlBMzExQUVGMkMx
MDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmggKi87IH07CiAJCUM1NDQyNzRCMTFBNTdFN0Ew
MDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDNTQ0Mjc0OTExQTU3RTdBMDA2M0E3NDkgLyogRE9NU3RyaW5nTGlz
dC5oICovOyB9OwogCQlDNTU2MTBGMTExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTU2MTBG
MDExQTcwNEVCMDBCODJEMjcgLyogRE9NU3RyaW5nTGlzdC5jcHAgKi87IH07CiAJCUM1NUUzOEJG
MTAwNDBENUQwMEE1NkJEQiAvKiBTdG9yYWdlTmFtZXNwYWNlSW1wbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU1RTM4QkIxMDA0MEQ1RDAwQTU2QkRC
IC8qIFN0b3JhZ2VOYW1lc3BhY2VJbXBsLmggKi87IH07CkBAIC00ODI0LDYgKzQ4MjksOCBAQAog
CQlDNTZDOTFBMzExOUQ5MTgxMDBERTRDRDkgLyogSlNJREJFdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU2QzkxOUYxMTlEOTE4MTAwREU0Q0Q5
IC8qIEpTSURCRXZlbnQuaCAqLzsgfTsKIAkJQzU2QzkxQTYxMTlEOTE4NzAwREU0Q0Q5IC8qIEpT
SURCU3VjY2Vzc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEM1NkM5MUE0MTE5RDkxODcwMERFNENEOSAvKiBKU0lEQlN1Y2Nlc3NFdmVudC5j
cHAgKi87IH07CiAJCUM1NkM5MUE3MTE5RDkxODcwMERFNENEOSAvKiBKU0lEQlN1Y2Nlc3NFdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU2Qzkx
QTUxMTlEOTE4NzAwREU0Q0Q5IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmggKi87IH07CisJCUM1QkJD
OUQwMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUJCQzlDRTExQUVGODM4MDA3QzJC
RkUgLyogSlNJREJJbmRleFJlcXVlc3QuY3BwICovOyB9OworCQlDNUJCQzlEMTExQUVGODM4MDA3
QzJCRkUgLyogSlNJREJJbmRleFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1QkJDOUNGMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4
UmVxdWVzdC5oICovOyB9OwogCQlDNUQ0QUE3QTExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRy
aWNzTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
NUQ0QUE3ODExNkJBRkI2MDA2OUNBOTMgLyogR2x5cGhNZXRyaWNzTWFwLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzVFOUI2NzcxMDY5N0UxMzAw
QzdCQjFBIC8qIFN0b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFOUI2NzYxMDY5N0UxMzAwQzdCQjFBIC8qIFN0
b3JhZ2VFdmVudERpc3BhdGNoZXIuY3BwICovOyB9OwogCQlDNUVCREQ4NDEwNUVEREVDMDA1Njgx
NkYgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3JhZ2VF
dmVudERpc3BhdGNoZXIuaCAqLzsgfTsKQEAgLTEwMzI1LDYgKzEwMzMyLDEyIEBACiAJCUM1MTk4
RjQ5MTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTE5OEY0QTExOTJFQ0ZEMDAyQjc0QTYg
LyogSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUM1MTk4RjRCMTE5MkVDRkQwMDJCNzRBNiAvKiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxREE5OUYxMUFFRjJDMTAwOTc5OUM1IC8qIElE
QkluZGV4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkluZGV4Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1MURBOUEwMTFBRUYyQzEwMDk3OTlDNSAvKiBJ
REJJbmRleEltcGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSURC
SW5kZXhJbXBsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUxREE5QTExMUFF
RjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJREJJbmRleEltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzUx
REE5QTIxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4UmVxdWVzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJJbmRleFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDNTFEQTlBMzExQUVGMkMxMDA5Nzk5QzUgLyogSURCSW5kZXhS
ZXF1ZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkluZGV4UmVxdWVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDNTFEQTlBNDExQUVGMkMxMDA5Nzk5
QzUgLyogSURCSW5kZXhSZXF1ZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBJREJJbmRl
eFJlcXVlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNTQ0Mjc0OTExQTU3
RTdBMDA2M0E3NDkgLyogRE9NU3RyaW5nTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01TdHJpbmdMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1
NDQyNzRBMTFBNTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBET01TdHJpbmdMaXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzU1NjEwRjAxMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NU3RyaW5nTGlzdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDM1MSw2ICsxMDM2NCw4IEBACiAJCUM1NkM5MTlGMTE5
RDkxODEwMERFNENEOSAvKiBKU0lEQkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTSURCRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU2Qzkx
QTQxMTlEOTE4NzAwREU0Q0Q5IC8qIEpTSURCU3VjY2Vzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSURCU3VjY2Vzc0V2ZW50LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzU2QzkxQTUxMTlEOTE4NzAwREU0Q0Q5IC8qIEpTSURCU3Vj
Y2Vzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSURCU3VjY2Vz
c0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM1QkJDOUNFMTFBRUY4Mzgw
MDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0lEQkluZGV4UmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM1QkJDOUNGMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0lEQkluZGV4UmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUQ0QUE3ODExNkJBRkI2MDA2OUNBOTMgLyog
R2x5cGhNZXRyaWNzTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdseXBo
TWV0cmljc01hcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNUU5QjY3NjEwNjk3
RTEzMDBDN0JCMUEgLyogU3RvcmFnZUV2ZW50RGlzcGF0Y2hlci5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdG9yYWdlRXZlbnREaXNwYXRjaGVyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVFQkREODExMDVFRERFQzAwNTY4MTZGIC8qIFN0b3Jh
Z2VFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3Rv
cmFnZUV2ZW50RGlzcGF0Y2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTEw
NDIsNiArMTEwNTcsMTIgQEAKIAkJCQlDNTZDOTE1QzExOUQ4NEU2MDBERTRDRDkgLyogSURCRXZl
bnQuY3BwICovLAogCQkJCUM1NkM5MTVEMTE5RDg0RTYwMERFNENEOSAvKiBJREJFdmVudC5oICov
LAogCQkJCUM1NkM5MTVFMTE5RDg0RTYwMERFNENEOSAvKiBJREJFdmVudC5pZGwgKi8sCisJCQkJ
QzUxREE5OUYxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4LmggKi8sCisJCQkJQzUxREE5QTAx
MUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5jcHAgKi8sCisJCQkJQzUxREE5QTExMUFF
RjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oICovLAorCQkJCUM1MURBOUEyMTFBRUYyQzEw
MDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuY3BwICovLAorCQkJCUM1MURBOUEzMTFBRUYyQzEw
MDk3OTlDNSAvKiBJREJJbmRleFJlcXVlc3QuaCAqLywKKwkJCQlDNTFEQTlBNDExQUVGMkMxMDA5
Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmlkbCAqLywKIAkJCQlDNTE5OEY0MjExOTJFQ0ZEMDAy
Qjc0QTYgLyogSURCUmVxdWVzdC5jcHAgKi8sCiAJCQkJQzUxOThGNDMxMTkyRUNGRDAwMkI3NEE2
IC8qIElEQlJlcXVlc3QuaCAqLywKIAkJCQlDNTE5OEY0NDExOTJFQ0ZEMDAyQjc0QTYgLyogSURC
UmVxdWVzdC5pZGwgKi8sCkBAIC0xNDQwMyw2ICsxNDQyNCw4IEBACiAJCQkJQzU2QzkxOUQxMTlE
OTE4MTAwREU0Q0Q5IC8qIEpTSURCRXJyb3JFdmVudC5oICovLAogCQkJCUM1NkM5MTlFMTE5RDkx
ODEwMERFNENEOSAvKiBKU0lEQkV2ZW50LmNwcCAqLywKIAkJCQlDNTZDOTE5RjExOUQ5MTgxMDBE
RTRDRDkgLyogSlNJREJFdmVudC5oICovLAorCQkJCUM1QkJDOUNFMTFBRUY4MzgwMDdDMkJGRSAv
KiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgKi8sCisJCQkJQzVCQkM5Q0YxMUFFRjgzODAwN0MyQkZF
IC8qIEpTSURCSW5kZXhSZXF1ZXN0LmggKi8sCiAJCQkJQjY2OTNFRjAxMUFENjQ4NjAwM0YyNzcw
IC8qIEpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCAqLywKIAkJCQlCNjY5M0VGMTExQUQ2NDg2
MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuaCAqLywKIAkJCQlDNUY0RjQwNDEx
OTMwNkFDMDBGREZBREQgLyogSlNJREJSZXF1ZXN0LmNwcCAqLywKQEAgLTE5MzcwLDYgKzE5Mzkz
LDEwIEBACiAJCQkJQjY2OTNFRUUxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlUmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjY2OTNFRjMxMUFENjQ4NjAwM0YyNzcwIC8qIEpT
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODNCM0FGMTExQURF
RkY1MDA0NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUM1
MURBOUE1MTFBRUYyQzEwMDk3OTlDNSAvKiBJREJJbmRleC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
QzUxREE5QTcxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4SW1wbC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQzUxREE5QTkxMUFFRjJDMTAwOTc5OUM1IC8qIElEQkluZGV4UmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJQzVCQkM5RDExMUFFRjgzODAwN0MyQkZFIC8qIEpTSURCSW5kZXhSZXF1
ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNjY1LDYgKzIxNjkyLDkgQEAKIAkJCQlCNjY5M0VG
MjExQUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQjYyN0ZCMkQxMUFENzQzNTAwRTk3QjcyIC8qIElEQkRhdGFiYXNlSW1wbC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODNCM0FGMDExQURFRkY1MDA0NTg4MDkgLyogSFRNTDVT
Y3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzUxREE5QTYxMUFFRjJDMTAwOTc5
OUM1IC8qIElEQkluZGV4SW1wbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDNTFEQTlBODExQUVG
MkMxMDA5Nzk5QzUgLyogSURCSW5kZXhSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM1
QkJDOUQwMTFBRUY4MzgwMDdDMkJGRSAvKiBKU0lEQkluZGV4UmVxdWVzdC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJREJBbnlDdXN0b20uY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAKaW5kZXggZGZkZDIxNmY5
ZmJhZTg2N2I1MGU3ZjQzYWY1MjBiYWQ3NzQ1NzM5Yy4uNDNhNzlhMmE0NWM2NDVmMzY5MWVmZGFh
OTI3YmZmOWI0ZTBiMzBhNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFu
eUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0lEQkFueUN1c3RvbS5jcHAK
QEAgLTM2LDkgKzM2LDExIEBACiAKICNpbmNsdWRlICJJREJBbnkuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJJREJJbmRleFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNsdWRlICJJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiSlNJREJEYXRhYmFzZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJKU0lE
QkluZGV4UmVxdWVzdC5oIgogI2luY2x1ZGUgIkpTSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiSlNJbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgiCkBAIC01NSw4ICs1NywxMiBAQCBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBJREJBbnkqIGlkYkFueSkK
ICAgICBzd2l0Y2ggKGlkYkFueS0+dHlwZSgpKSB7CiAgICAgY2FzZSBJREJBbnk6OlVuZGVmaW5l
ZFR5cGU6CiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOworICAgIGNhc2UgSURCQW55OjpO
dWxsVHlwZToKKyAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAgIGNhc2UgSURCQW55OjpJREJE
YXRhYmFzZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmpl
Y3QsIGlkYkFueS0+aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOworICAgIGNhc2UgSURCQW55OjpJREJJ
bmRleFJlcXVlc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGlkYkFueS0+aWRiSW5kZXhSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55OjpJREJPYmplY3RT
dG9yZVJlcXVlc3RUeXBlOgogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3Qs
IGlkYkFueS0+aWRiT2JqZWN0U3RvcmVSZXF1ZXN0KCkpOwogICAgIGNhc2UgSURCQW55OjpJbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0VHlwZToKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4SURCQW55Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SURCQW55Q3VzdG9tLmNwcAppbmRleCAwZGIyYTgwYmQyNzNkMDAxZjc0ZjU0YWFjM2U4NmU0Njlk
Y2RkZTc2Li41ZWY1MGE2MzQ5NjlmZTY0MWFkMjg4NWE5M2Y5YzkyNDFmOGViZWY5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQkFueUN1c3RvbS5jcHAKKysrIGIv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJREJBbnlDdXN0b20uY3BwCkBAIC0zNiw2ICsz
Niw3IEBACiAKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJW
OElEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlY4SURCSW5kZXhSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiVjhJREJPYmplY3RTdG9yZVJlcXVlc3QuaCIKICNpbmNsdWRlICJWOEluZGV4ZWRE
YXRhYmFzZVJlcXVlc3QuaCIKIApAQCAtNDksOCArNTAsMTIgQEAgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHRvVjgoSURCQW55KiBpbXBsKQogICAgIHN3aXRjaCAoaW1wbC0+dHlwZSgpKSB7CiAgICAg
Y2FzZSBJREJBbnk6OlVuZGVmaW5lZFR5cGU6CiAgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVk
KCk7CisgICAgY2FzZSBJREJBbnk6Ok51bGxUeXBlOgorICAgICAgICByZXR1cm4gdjg6Ok51bGwo
KTsKICAgICBjYXNlIElEQkFueTo6SURCRGF0YWJhc2VSZXF1ZXN0VHlwZToKICAgICAgICAgcmV0
dXJuIHRvVjgoaW1wbC0+aWRiRGF0YWJhc2VSZXF1ZXN0KCkpOworICAgIGNhc2UgSURCQW55OjpJ
REJJbmRleFJlcXVlc3RUeXBlOgorICAgICAgICByZXR1cm4gdG9WOChpbXBsLT5pZGJJbmRleFJl
cXVlc3QoKSk7CiAgICAgY2FzZSBJREJBbnk6OklEQk9iamVjdFN0b3JlUmVxdWVzdFR5cGU6CiAg
ICAgICAgIHJldHVybiB0b1Y4KGltcGwtPmlkYk9iamVjdFN0b3JlUmVxdWVzdCgpKTsKICAgICBj
YXNlIElEQkFueTo6SW5kZXhlZERhdGFiYXNlUmVxdWVzdFR5cGU6CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSURCQW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCmluZGV4
IGI1YWJhMGIzZTg5MGU5NjVkODFjNDAwYTJhMjEzM2ZkNmZiM2E1YzYuLjczYjBkNzQ3NzBjY2E2
NGQyMTdhN2IxOTU4MTFmNjM3YzRmNmJhZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
REJBbnkuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBAIC0xMCw5ICsxMCw2
IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAq
CiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzIsNiArMjksNyBA
QAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2VS
ZXF1ZXN0LmgiCisjaW5jbHVkZSAiSURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIgog
I2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgpAQCAtNTgsNiArNTYsMTIgQEAgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZVJlcXVlc3Q+IElEQkFueTo6aWRiRGF0YWJhc2VSZXF1ZXN0KCkK
ICAgICByZXR1cm4gbV9pZGJEYXRhYmFzZVJlcXVlc3Q7CiB9CiAKK1Bhc3NSZWZQdHI8SURCSW5k
ZXhSZXF1ZXN0PiBJREJBbnk6OmlkYkluZGV4UmVxdWVzdCgpCit7CisgICAgQVNTRVJUKG1fdHlw
ZSA9PSBJREJJbmRleFJlcXVlc3RUeXBlKTsKKyAgICByZXR1cm4gbV9pZGJJbmRleFJlcXVlc3Q7
Cit9CisKIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJBbnk6OmlkYk9iamVj
dFN0b3JlUmVxdWVzdCgpCiB7CiAgICAgQVNTRVJUKG1fdHlwZSA9PSBJREJPYmplY3RTdG9yZVJl
cXVlc3RUeXBlKTsKQEAgLTc2LDM5ICs4MCw0NCBAQCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gSURCQW55OjpzZXJpYWxpemVkU2NyaXB0VmFsdWUoKQogICAgIHJldHVybiBtX3Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIH0KIAordm9pZCBJREJBbnk6OnNldCgpCit7CisgICAgQVNT
RVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKKyAgICBtX3R5cGUgPSBOdWxsVHlwZTsKK30K
Kwogdm9pZCBJREJBbnk6OnNldChQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gdmFsdWUp
CiB7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJ
REJEYXRhYmFzZVJlcXVlc3RUeXBlOwogICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gdmFsdWU7
Ci0gICAgbV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwotICAgIG1faW5kZXhlZERhdGFiYXNl
UmVxdWVzdCA9IDA7Ci0gICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOworfQorCit2b2lk
IElEQkFueTo6c2V0KFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiB2YWx1ZSkKK3sKKyAgICBB
U1NFUlQobV90eXBlID09IFVuZGVmaW5lZFR5cGUpOworICAgIG1fdHlwZSA9IElEQkRhdGFiYXNl
UmVxdWVzdFR5cGU7CisgICAgbV9pZGJJbmRleFJlcXVlc3QgPSB2YWx1ZTsKIH0KIAogdm9pZCBJ
REJBbnk6OnNldChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4gdmFsdWUpCiB7Cisg
ICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJREJPYmpl
Y3RTdG9yZVJlcXVlc3RUeXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKICAgICBt
X2lkYk9iamVjdFN0b3JlUmVxdWVzdCA9IHZhbHVlOwotICAgIG1faW5kZXhlZERhdGFiYXNlUmVx
dWVzdCA9IDA7Ci0gICAgbV9zZXJpYWxpemVkU2NyaXB0VmFsdWUgPSAwOwogfQogCiB2b2lkIElE
QkFueTo6c2V0KFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gdmFsdWUpCiB7Cisg
ICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0VHlwZTsKLSAgICBtX2lkYkRhdGFiYXNlUmVxdWVzdCA9IDA7Ci0gICAg
bV9pZGJPYmplY3RTdG9yZVJlcXVlc3QgPSAwOwogICAgIG1faW5kZXhlZERhdGFiYXNlUmVxdWVz
dCA9IHZhbHVlOwotICAgIG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlID0gMDsKIH0KIAogdm9pZCBJ
REJBbnk6OnNldChQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUpCiB7Cisg
ICAgQVNTRVJUKG1fdHlwZSA9PSBVbmRlZmluZWRUeXBlKTsKICAgICBtX3R5cGUgPSBTZXJpYWxp
emVkU2NyaXB0VmFsdWVUeXBlOwotICAgIG1faWRiRGF0YWJhc2VSZXF1ZXN0ID0gMDsKLSAgICBt
X2lkYk9iamVjdFN0b3JlUmVxdWVzdCA9IDA7Ci0gICAgbV9pbmRleGVkRGF0YWJhc2VSZXF1ZXN0
ID0gMDsKICAgICBtX3NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSA9IHZhbHVlOwogfQogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgK
aW5kZXggZDIzZjE4ZmViZTQzZTQ2YjM2NDU3YzA2ZDgyMTZkNmQxN2Y0MmFkYS4uYTczNGQxMzNk
OWI4MmJhNDE1NzYyYmE0OGM2ZjQyNGE4YmQ3M2U1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9y
YWdlL0lEQkFueS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuaApAQCAtMTAsOSArMTAs
NiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAg
KgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTM4LDYgKzM1LDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCRGF0YWJhc2VSZXF1ZXN0OworY2xh
c3MgSURCSW5kZXhSZXF1ZXN0OwogY2xhc3MgSURCT2JqZWN0U3RvcmVSZXF1ZXN0OwogY2xhc3Mg
SW5kZXhlZERhdGFiYXNlUmVxdWVzdDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKQEAg
LTQ5LDIwICs0NywyNiBAQCBwdWJsaWM6CiAKICAgICBlbnVtIFR5cGUgewogICAgICAgICBVbmRl
ZmluZWRUeXBlID0gMCwKKyAgICAgICAgTnVsbFR5cGUsCiAgICAgICAgIElEQkRhdGFiYXNlUmVx
dWVzdFR5cGUsCisgICAgICAgIElEQkluZGV4UmVxdWVzdFR5cGUsCiAgICAgICAgIElEQk9iamVj
dFN0b3JlUmVxdWVzdFR5cGUsCiAgICAgICAgIEluZGV4ZWREYXRhYmFzZVJlcXVlc3RUeXBlLAog
ICAgICAgICBTZXJpYWxpemVkU2NyaXB0VmFsdWVUeXBlCiAgICAgfTsKIAogICAgIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQotCisgICAgLy8gVXNlIHR5cGUoKSB0byBmaWd1
cmUgb3V0IHdoaWNoIG9uZSBvZiB0aGVzZSB5b3UncmUgYWxsb3dlZCB0byBjYWxsLgogICAgIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VSZXF1ZXN0PiBpZGJEYXRhYmFzZVJlcXVlc3QoKTsKKyAgICBQ
YXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gaWRiSW5kZXhSZXF1ZXN0KCk7CiAgICAgUGFzc1Jl
ZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IGlkYk9iamVjdFN0b3JlUmVxdWVzdCgpOwogICAg
IFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gaW5kZXhlZERhdGFiYXNlUmVxdWVz
dCgpOwogICAgIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBzZXJpYWxpemVkU2Ny
aXB0VmFsdWUoKTsKIAorICAgIC8vIFNldCBjYW4gb25seSBiZSBjYWxsZWQgb25jZS4KKyAgICB2
b2lkIHNldCgpOyAvLyBGb3IgIm51bGwiLgogICAgIHZvaWQgc2V0KFBhc3NSZWZQdHI8SURCRGF0
YWJhc2VSZXF1ZXN0Pik7CisgICAgdm9pZCBzZXQoUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+
KTsKICAgICB2b2lkIHNldChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlUmVxdWVzdD4pOwogICAg
IHZvaWQgc2V0KFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4pOwogICAgIHZvaWQg
c2V0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPik7CkBAIC03NCw2ICs3OCw3IEBA
IHByaXZhdGU6CiAKICAgICAvLyBPbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHNob3VsZCBldmVy
IGJlIGluIHVzZSBhdCBhbnkgZ2l2ZW4gdGltZS4KICAgICBSZWZQdHI8SURCRGF0YWJhc2VSZXF1
ZXN0PiBtX2lkYkRhdGFiYXNlUmVxdWVzdDsKKyAgICBSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBt
X2lkYkluZGV4UmVxdWVzdDsKICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBtX2lk
Yk9iamVjdFN0b3JlUmVxdWVzdDsKICAgICBSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4g
bV9pbmRleGVkRGF0YWJhc2VSZXF1ZXN0OwogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFs
dWU+IG1fc2VyaWFsaXplZFNjcmlwdFZhbHVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdl
L0lEQkNhbGxiYWNrcy5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkNhbGxiYWNrcy5oCmluZGV4IDc0
YzExZDg1MmY0ZWRjNTBjODk1MzZlNTQ0N2E0MjQ4Zjk2NDZmYjguLmZmNjI3MmE3NGZhOTMzODk5
OGJlNTc0YTIwMWVkM2EwZTQ2MzM3MGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJD
YWxsYmFja3MuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQ2FsbGJhY2tzLmgKQEAgLTMxLDYg
KzMxLDcgQEAKIAogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCRGF0YWJh
c2VFcnJvci5oIgorI2luY2x1ZGUgIklEQkluZGV4LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtNDMsNyArNDQs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+SURCQ2FsbGJhY2tzKCkgeyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG9uU3VjY2VzcygpID0gMDsgLy8gRm9yICJudWxsIi4KICAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkluZGV4PikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+KSA9IDA7CiB9
OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuaCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJEYXRhYmFzZS5oCmluZGV4IDVjODMzODRkMjE3ODVmMTdlYmFhMGE2YmM4Y2I1
Y2ZkZjIzOWQxMDUuLjViZmIzYzc4MmQ5OWRiOTE2ODcyNDBmMzlhN2NmMzc5YzQ0ZjI1YzQgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5oCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZS5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0g
KiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRApAQCAtNTgsNCArNTUsMyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2Vu
ZGlmIC8vIElEQkRhdGFiYXNlX2gKLQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlRXJyb3IuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmgKaW5kZXgg
Y2I0NzljMTcxZWYwMDI4YWRkZmU4MjgwZDFiOTg0OWQ5MmY1ZDcxMS4uYzM0NWZmOWJhM2YzM2Zj
Yzk1MmEzYjM3YmM3MTEzYzRkZGRjZGI2YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lE
QkRhdGFiYXNlRXJyb3IuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5o
CkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1
dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAot
ICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApA
QCAtMjUsNiArMjIsNyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisK
ICNpZm5kZWYgSURCRGF0YWJhc2VFcnJvcl9oCiAjZGVmaW5lIElEQkRhdGFiYXNlRXJyb3JfaAog
CkBAIC02Miw0ICs2MCwzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2VuZGlmIC8vIElEQkRhdGFi
YXNlRXJyb3JfaAotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJv
ci5pZGwgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFcnJvci5pZGwKaW5kZXggNmM2MDE5
Y2ZlYTU4OTFhNDI2YmEzZTc4M2I1Y2YwZTgxMmRhOWQ3OS4uMjkxMmExZDcyNDRiNTFiZWYyZWQ5
ZGVlNDM5MmRkMzU2YjMwYWQ4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlRXJyb3IuaWRsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUVycm9yLmlkbApA
QCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAg
LTI1LDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworCiBt
b2R1bGUgc3RvcmFnZSB7CiAKICAgICBpbnRlcmZhY2UgWwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJh
c2VFeGNlcHRpb24uaAppbmRleCBkOTRhN2Y5ZmFmYjgxZTdlNDljYmJhMDU3YzVjODJhMjA4NDQ5
MGQwLi4yNTFjZmM5MDYwZWM2NzY0YTJiZTFmMDQ3N2ViYmNkOGVkYTllZmE0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTI1LDYgKzIyLDcgQEAKICAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworCiAjaWZuZGVmIElEQkRhdGFiYXNlRXhjZXB0aW9u
X2gKICNkZWZpbmUgSURCRGF0YWJhc2VFeGNlcHRpb25faAogCkBAIC00Myw3ICs0MSwyMiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCRGF0YWJhc2VFeGNlcHRpb24o
KSk7CiAgICAgfQogICAgIH5JREJEYXRhYmFzZUV4Y2VwdGlvbigpIHsgfQotICAgIAorCisgICAg
Ly8gS2VlcCBpbiBzeW5jIHdpdGggd2hhdCdzIGluIHRoZSAuaWRsIGZpbGUuCisgICAgZW51bSBF
cnJvckNvZGUgeworICAgICAgICBVTktOT1dOX0VSUiA9IDAsCisgICAgICAgIE5PTl9UUkFOU0lF
TlRfRVJSID0gMSwKKyAgICAgICAgTk9UX0ZPVU5EX0VSUiA9IDIsCisgICAgICAgIENPTlNUUkFJ
TlRfRVJSID0gMywKKyAgICAgICAgREFUQV9FUlIgPSA0LAorICAgICAgICBOT1RfQUxMT1dFRF9F
UlIgPSA1LAorICAgICAgICBTRVJJQUxfRVJSID0gMTEsCisgICAgICAgIFJFQ09WRVJBQkxFX0VS
UiA9IDIxLAorICAgICAgICBUUkFOU0lFTlRfRVJSID0gMzEsCisgICAgICAgIFRJTUVPVVRfRVJS
ID0gMzIsCisgICAgICAgIERFQURMT0NLX0VSUiA9IDMzCisgICAgfTsKKyAgIAogICAgIHVuc2ln
bmVkIHNob3J0IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KICAgICB2b2lkIHNldENv
ZGUodW5zaWduZWQgc2hvcnQgdmFsdWUpIHsgbV9jb2RlID0gdmFsdWU7IH0KICAgICBTdHJpbmcg
bWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzc2FnZTsgfQpAQCAtNjEsNCArNzQsMyBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICNlbmRpZiAvLyBJREJEYXRhYmFzZUV4Y2VwdGlvbl9oCi0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2VwdGlvbi5pZGwgYi9XZWJD
b3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VFeGNlcHRpb24uaWRsCmluZGV4IDg5OGU1ZjljMTMyMjI2
NzUzMDlhZGE3Nzk0MzI1MTk2MTE4ZThmZmQuLjg4ZTZlN2U0OWNhMTU0NjgzN2JjYWUxMzUzODhk
ZThkMWJkNWY2YzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUV4Y2Vw
dGlvbi5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlRXhjZXB0aW9uLmlkbApA
QCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRl
ciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAg
LTI1LDYgKzIyLDcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworCiBt
b2R1bGUgc3RvcmFnZSB7CiAKICAgICBpbnRlcmZhY2UgWwpAQCAtNDEsNiArMzksNyBAQCBtb2R1
bGUgc3RvcmFnZSB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFRSQU5TSUVOVF9FUlIg
PSAzMTsKICAgICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgVElNRU9VVF9FUlIgPSAzMjsKICAg
ICAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgREVBRExPQ0tfRVJSID0gMzM7CisKICAgICAgICAg
YXR0cmlidXRlIHVuc2lnbmVkIHNob3J0IGNvZGU7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJp
bmcgbWVzc2FnZTsKICAgICB9OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlSW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCA3
NzU1OTVmMjY3NTdjNGZkNmUyOTUwODAzNTlhZjM4YzJlZjQxYjUxLi42NTViZDU5MDlmYzcwZGZl
YzRkZmZhOWQ4MjFjYjA2MWViNjFkZTFjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2VJbXBsLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmNw
cApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQog
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
QEAgLTMwLDkgKzI3LDYgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKIAogI2luY2x1
ZGUgIkRPTVN0cmluZ0xpc3QuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgotI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLSNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBAIC01OCw0ICs1MiwzIEBAIFBhc3NSZWZQdHI8
RE9NU3RyaW5nTGlzdD4gSURCRGF0YWJhc2VJbXBsOjpvYmplY3RTdG9yZXMoKQogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZUltcGwuaCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZUltcGwuaAppbmRleCA4ZGI3NTVlOWVlMjlmZjcyMWY0ZjE2YWM4Yzk5
MDI5YTk4ZjM2OTc0Li42NzkwMTdkY2I2Mzc3ODNmYzYzN2ExODk1ZGVmMjZjMjFkNGJmNGJhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VJbXBsLmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQkRhdGFiYXNlSW1wbC5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzAsNyArMjcsNiBAQAogI2RlZmluZSBJREJE
YXRhYmFzZUltcGxfaAogCiAjaW5jbHVkZSAiSURCRGF0YWJhc2UuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTYzLDQg
KzU5LDMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjZW5kaWYgLy8gSURCRGF0YWJhc2VJbXBsX2gK
LQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAgYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCAzMWUwNTU0ZmU0MzY1
YWYyYmQ4NTQ1YWJlODc5MjJiMzE1YWY0OGJlLi4zMTFmYjI1MDJlYTVhZDYwMThhNzVhOTc2YmVl
OTk0YjI5ODUxYTM2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1
ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAt
MTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwg
SW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAg
ICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTQ3
LDQgKzQ0LDMgQEAgSURCRGF0YWJhc2VSZXF1ZXN0Ojp+SURCRGF0YWJhc2VSZXF1ZXN0KCkKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmggYi9X
ZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggY2NiODI4NmUwNjkwNjcw
MzE4MGYwN2JmYjliYTU3NjNlNGMxNzE1NS4uMjZmNmE4NjM1NzRmYzM1YmMxY2E1MzkyZTI5ZDRh
YTQxMWVmMDY1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVz
dC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaApAQCAtMTAsOSAr
MTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAo
IkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9t
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRS
SUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTI1LDE2ICsy
MiwxNSBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisKICNpZm5kZWYg
SURCRGF0YWJhc2VSZXF1ZXN0X2gKICNkZWZpbmUgSURCRGF0YWJhc2VSZXF1ZXN0X2gKIAogI2lu
Y2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgotI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvVW51c2VkUGFyYW0uaD4KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCkBA
IC02NSw0ICs2MSwzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2VuZGlmIC8vIElEQkRhdGFiYXNl
UmVxdWVzdF9oCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVl
c3QuaWRsIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5pZGwKaW5kZXggOWI1
MTgyMGQwYWE0M2RhNDM0NzNlZmRiNDY5ODlhMTY4YjE2YjQ3OC4uYjgzNWFjZTFmOWUwOWQxNzU5
YzhlMDExNWJkNDVhODk2OWZlNGU3MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRh
dGFiYXNlUmVxdWVzdC5pZGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVz
dC5pZGwKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECkBAIC0yNSw2ICsyMiw3IEBACiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKICAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KKwogbW9kdWxlIHN0b3JhZ2UgewogCiAgICAgaW50ZXJmYWNlIFsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvc3RvcmFnZS9JREJJbmRleC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZDBlOGNhYjA2MWUxZGRkYTc0ODQxZGNjMGYzYjllNDI4NjVmZjA2NgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleC5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIElEQkluZGV4X2gKKyNkZWZpbmUgSURCSW5kZXhfaAorCisjaW5jbHVk
ZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIElEQkluZGV4IDogcHVibGljIFRocmVhZFNhZmVT
aGFyZWQ8SURCSW5kZXg+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5JREJJbmRleCgpIHsgfQor
CisgICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlQ
YXRoKCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCB1bmlxdWUoKSA9IDA7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZgorCisjZW5kaWYgLy8gSURCSW5kZXhfaApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4SW1wbC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCSW5kZXhJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNzg5MzlhMGMxYjQ5MTMyNDcxZWRhMjdjOWQ4
Mzg0MGMxZTQ5MTNhCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4
SW1wbC5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJJREJJbmRleEltcGwuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0lEQkluZGV4SW1wbDo6SURCSW5kZXhJbXBsKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSkKKyAgICA6
IG1fbmFtZShuYW1lKQorICAgICwgbV9rZXlQYXRoKGtleVBhdGgpCisgICAgLCBtX3VuaXF1ZSh1
bmlxdWUpCit7Cit9CisKK0lEQkluZGV4SW1wbDo6fklEQkluZGV4SW1wbCgpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4SW1wbC5oIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQkluZGV4SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwMDM0ZDVjNTliZTMwNTgxYmFhZjJl
NGMwNTllZGM4MGMyOWRhZDgKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURC
SW5kZXhJbXBsLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSURCSW5kZXhJbXBs
X2gKKyNkZWZpbmUgSURCSW5kZXhJbXBsX2gKKworI2luY2x1ZGUgIklEQkluZGV4LmgiCisKKyNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBJREJJbmRleEltcGwgOiBwdWJsaWMgSURCSW5kZXggeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPElEQkluZGV4PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBJREJJbmRleEltcGwobmFtZSwga2V5UGF0aCwgdW5pcXVlKSk7CisgICAgfQorICAgIHZp
cnR1YWwgfklEQkluZGV4SW1wbCgpOworCisgICAgLy8gSW1wbGVtZW50cyBJREJJbmRleAorICAg
IHZpcnR1YWwgU3RyaW5nIG5hbWUoKSB7IHJldHVybiBtX25hbWU7IH0KKyAgICB2aXJ0dWFsIFN0
cmluZyBrZXlQYXRoKCkgeyByZXR1cm4gbV9rZXlQYXRoOyB9CisgICAgdmlydHVhbCBib29sIHVu
aXF1ZSgpIHsgcmV0dXJuIG1fdW5pcXVlOyB9CisKK3ByaXZhdGU6CisgICAgSURCSW5kZXhJbXBs
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1ZSk7
CisKKyAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0cmluZyBtX2tleVBhdGg7CisgICAgYm9vbCBt
X3VuaXF1ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRp
ZiAvLyBJREJJbmRleEltcGxfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4
UmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zMGFlZTRiZjQ4ODliNzg2ZjY4ZmM3YTY2OGY1ZjgwNzA4ZGI0ZDFkCi0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkluZGV4UmVxdWVzdC5jcHAKQEAgLTAsMCArMSw0
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJREJJbmRleFJlcXVl
c3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK0lEQkluZGV4UmVxdWVzdDo6SURCSW5kZXhSZXF1ZXN0KFBhc3NSZWZQdHI8SURCSW5k
ZXg+IGlkYkluZGV4KQorICAgIDogbV9pZGJJbmRleChpZGJJbmRleCkKK3sKK30KKworSURCSW5k
ZXhSZXF1ZXN0Ojp+SURCSW5kZXhSZXF1ZXN0KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5k
ZXhSZXF1ZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2U2ZmM1N2JlNTQ1NzExMmYwNDllODk3NTNlMTExMDE5
ZGJjZjU3ZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVl
c3QuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBJREJJbmRleFJlcXVlc3RfaAor
I2RlZmluZSBJREJJbmRleFJlcXVlc3RfaAorCisjaW5jbHVkZSAiSURCSW5kZXguaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJ
REJJbmRleFJlcXVlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJJbmRleFJlcXVlc3Q+IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IGNyZWF0ZShQYXNz
UmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSURCSW5kZXhSZXF1ZXN0KGlkYkluZGV4KSk7CisgICAgfQorICAgIH5JREJJbmRleFJl
cXVlc3QoKTsKKworICAgIC8vIEltcGxlbWVudCB0aGUgSURMCisgICAgU3RyaW5nIG5hbWUoKSBj
b25zdCB7IHJldHVybiBtX2lkYkluZGV4LT5uYW1lKCk7IH0KKyAgICBTdHJpbmcga2V5UGF0aCgp
IGNvbnN0IHsgcmV0dXJuIG1faWRiSW5kZXgtPmtleVBhdGgoKTsgfQorICAgIGJvb2wgdW5pcXVl
KCkgY29uc3QgeyByZXR1cm4gbV9pZGJJbmRleC0+dW5pcXVlKCk7IH0KKworcHJpdmF0ZToKKyAg
ICBJREJJbmRleFJlcXVlc3QoUGFzc1JlZlB0cjxJREJJbmRleD4pOworCisgICAgUmVmUHRyPElE
QkluZGV4PiBtX2lkYkluZGV4OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYKKworI2VuZGlmIC8vIElEQkluZGV4UmVxdWVzdF9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0
b3JhZ2UvSURCSW5kZXhSZXF1ZXN0LmlkbCBiL1dlYkNvcmUvc3RvcmFnZS9JREJJbmRleFJlcXVl
c3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFkMzVmNTJmMDU1NThhYjk0MWMwMDZmMGViMmU1MTA5Mzk0MTEz
YjEKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCSW5kZXhSZXF1ZXN0Lmlk
bApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIHN0b3JhZ2UgeworCisgICAgaW50ZXJm
YWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9EQVRBQkFTRQorICAgIF0gSURCSW5k
ZXhSZXF1ZXN0IHsKKyAgICAgICAgLy8gRklYTUU6IENvbXBsZXRlIHRoaXMgZmlsZS4KKworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcga2V5UGF0aDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gdW5pcXVlOworICAgIH07CisKK30KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFn
ZS9JREJPYmplY3RTdG9yZS5jcHAgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmUuY3Bw
CmluZGV4IDBhMGNkM2NkYzc1Nzk3ZGJkNDQ4OTExNjcwMzQyNmM4ZGQ3YjNiNjcuLjRhZWY0NjBl
YTlhN2NmYWIzODg3MDdjNzJjNTY4ZDYwZjhkNzRkYWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmNwcApAQCAtMjYsMTEgKzI2LDU5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSURCT2JqZWN0U3RvcmUuaCIKIAorI2luY2x1ZGUgIkRPTVN0cmluZ0xpc3QuaCIKKyNpbmNs
dWRlICJJREJDYWxsYmFja3MuaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5oIgor
I2luY2x1ZGUgIklEQkluZGV4SW1wbC5oIgorCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IFdyaXRlLgorSURCT2JqZWN0U3Rv
cmU6OklEQk9iamVjdFN0b3JlKCkKK3sKK30KKworSURCT2JqZWN0U3RvcmU6On5JREJPYmplY3RT
dG9yZSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gSURCT2JqZWN0U3RvcmU6
OmluZGV4TmFtZXMoKSBjb25zdAoreworICAgIFJlZlB0cjxET01TdHJpbmdMaXN0PiBpbmRleE5h
bWVzID0gRE9NU3RyaW5nTGlzdDo6Y3JlYXRlKCk7CisgICAgZm9yIChJbmRleE1hcDo6Y29uc3Rf
aXRlcmF0b3IgaXQgPSBtX2luZGV4ZXMuYmVnaW4oKTsgaXQgIT0gbV9pbmRleGVzLmVuZCgpOyAr
K2l0KQorICAgICAgICBpbmRleE5hbWVzLT5hcHBlbmQoaXQtPmZpcnN0KTsKKyAgICByZXR1cm4g
aW5kZXhOYW1lcy5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgSURCT2JqZWN0U3RvcmU6OmNyZWF0ZUlu
ZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIHVuaXF1
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcykKK3sKKyAgICBpZiAobV9pbmRl
eGVzLmNvbnRhaW5zKG5hbWUpKSB7CisgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRh
YmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkNPTlNUUkFJTlRfRVJSLCAi
SW5kZXggbmFtZSBhbHJlYWR5IGV4aXN0cy4iKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBSZWZQdHI8SURCSW5kZXg+IGluZGV4ID0gSURCSW5kZXhJbXBsOjpjcmVhdGUobmFtZSwg
a2V5UGF0aCwgdW5pcXVlKTsKKyAgICBBU1NFUlQoaW5kZXgtPm5hbWUoKSA9PSBuYW1lKTsKKyAg
ICBtX2luZGV4ZXMuc2V0KG5hbWUsIGluZGV4KTsKKyAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyhp
bmRleC5yZWxlYXNlKCkpOworfQorCitQYXNzUmVmUHRyPElEQkluZGV4PiBJREJPYmplY3RTdG9y
ZTo6aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBtX2luZGV4ZXMuZ2V0
KG5hbWUpOworfQorCit2b2lkIElEQk9iamVjdFN0b3JlOjpyZW1vdmVJbmRleChjb25zdCBTdHJp
bmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MpCit7CisgICAgaWYg
KCFtX2luZGV4ZXMuY29udGFpbnMobmFtZSkpIHsKKyAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9y
KElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Tk9UX0ZPVU5E
X0VSUiwgIkluZGV4IG5hbWUgZG9lcyBub3QgZXhpc3QuIikpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgbV9pbmRleGVzLnJlbW92ZShuYW1lKTsKKyAgICBjYWxsYmFja3MtPm9uU3Vj
Y2VzcygpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlLmgKaW5kZXggNzM2NDAyNjkyNWM4ZjBhNzhkZTM2ZjhmZGVhZTcwODAwMzJiODkyNy4uYzFj
ZTEyOWU3Zjk4OTMwZGQ3M2M3MWI5ZTNjZTNiNzUyZGYxZmM3OSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlLmgKQEAgLTI3LDI4ICsyNyw0MiBAQAogI2RlZmluZSBJREJPYmplY3RTdG9yZV9oCiAK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlN0cmluZ0hhc2guaCIKKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KIAogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNz
IERPTVN0cmluZ0xpc3Q7CitjbGFzcyBJREJJbmRleDsKK2NsYXNzIElEQkNhbGxiYWNrczsKKwor
Ly8gRklYTUU6IFRoaXMgbmVlZHMgdG8gYmUgc3BsaXQgaW50byBhbiBpbnRlcmZhY2UgYW5kIElt
cGwgY2xhc3Nlcy4KIGNsYXNzIElEQk9iamVjdFN0b3JlIDogcHVibGljIFRocmVhZFNhZmVTaGFy
ZWQ8SURCT2JqZWN0U3RvcmU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJP
YmplY3RTdG9yZT4gY3JlYXRlKCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SURCT2JqZWN0U3RvcmUoKSk7CiAgICAgfQotICAgIHZpcnR1YWwgfklEQk9iamVjdFN0b3JlKCkg
eyB9CisgICAgdmlydHVhbCB+SURCT2JqZWN0U3RvcmUoKTsKIAogICAgIFN0cmluZyBuYW1lKCkg
Y29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgU3RyaW5nIGtleVBhdGgoKSBjb25zdCB7IHJl
dHVybiBtX2tleVBhdGg7IH0KKyAgICBQYXNzUmVmUHRyPERPTVN0cmluZ0xpc3Q+IGluZGV4TmFt
ZXMoKSBjb25zdDsKKworICAgIHZvaWQgY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4pOworICAgIFBhc3NSZWZQdHI8SURCSW5kZXg+IGluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSk7
CisgICAgdm9pZCByZW1vdmVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPik7CiAKIHByaXZhdGU6Ci0gICAgSURCT2JqZWN0U3RvcmUoKSB7IH0KKyAgICBJ
REJPYmplY3RTdG9yZSgpOwogCiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBTdHJpbmcgbV9rZXlQ
YXRoOworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxJREJJbmRleD4gPiBJbmRl
eE1hcDsKKyAgICBJbmRleE1hcCBtX2luZGV4ZXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNw
cCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCmluZGV4IDAwOGU3
YjQzNGVjMzdhY2Y5ZjdmYjc5YTZlYWZjYzM3ZDJlZTIyZjkuLjM1NzYzY2IwY2UwNzAyNWU5NjQy
YzE5NDJhZmI3M2Q1ZWRlMzE4YzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmpl
Y3RTdG9yZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJl
cXVlc3QuY3BwCkBAIC0yMiwxMCArMjIsMTMgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgogICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmgiCiAKKyNpbmNsdWRlICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiSURC
QW55LmgiCisjaW5jbHVkZSAiSURCSW5kZXhSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9VbnVzZWRQYXJhbS5oPgpAQCAtMzQsOCArMzcsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLUlEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCT2JqZWN0U3Rv
cmU+IGlkYlN0b3JlKSAKLSAgICA6IG1fb2JqZWN0U3RvcmUoaWRiU3RvcmUpCitJREJPYmplY3RT
dG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9yZSkgCisg
ICAgOiBtX29iamVjdFN0b3JlKGlkYk9iamVjdFN0b3JlKQogICAgICwgbV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0KGNvbnRleHQpCiB7CiAgICAgbV90aGlzID0gSURCQW55OjpjcmVhdGUoKTsKQEAg
LTQ0LDE2ICs0NywxOSBAQCBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVx
dWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYQogCiBTdHJpbmcgSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0OjpuYW1lKCkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9vYmplY3RTdG9y
ZSk7CiAgICAgcmV0dXJuIG1fb2JqZWN0U3RvcmUtPm5hbWUoKTsKIH0KIAogU3RyaW5nIElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6a2V5UGF0aCgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fb2JqZWN0
U3RvcmUpOwogICAgIHJldHVybiBtX29iamVjdFN0b3JlLT5rZXlQYXRoKCk7CiB9CiAKK1Bhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjppbmRleE5hbWVzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9vYmplY3RTdG9yZS0+aW5kZXhOYW1lcygpOworfQorCiBQ
YXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0KFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBrZXkpCiB7CiAgICAgLy8gRklYTUU6IGltcGxlbWVu
dApAQCAtOTIsNiArOTgsMjcgQEAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OnJlbW92ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHQKICAgICByZXR1cm4g
MDsKIH0KIAorUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmNy
ZWF0ZUluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29s
IHVuaXF1ZSkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIFVOVVNFRF9Q
QVJBTShuYW1lKTsKKyAgICBVTlVTRURfUEFSQU0oa2V5UGF0aCk7CisgICAgVU5VU0VEX1BBUkFN
KHVuaXF1ZSk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0
PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNvbnN0IFN0cmluZyYgbmFtZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gSURCSW5kZXhSZXF1ZXN0OjpjcmVhdGUobV9vYmplY3RTdG9yZS0+aW5k
ZXgobmFtZSkpOworfQorCitQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVx
dWVzdDo6cmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCisgICAgVU5VU0VEX1BBUkFNKG5hbWUpOworICAgIHJldHVybiAwOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9E
QVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAppbmRleCA3ZDg3
MTRlYjdmMzQ4ZWM1YjIzZDc3YzEwOTc2NDlhOThiZGY4ZTRiLi5mMDNiNDA2NWZhYWJlNWQ5Y2Fk
MzFkNTFjZDcwODQyZDgzNzM5NjlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2Jq
ZWN0U3RvcmVSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5oCkBAIC0zNyw3ICszNyw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
RE9NU3RyaW5nTGlzdDsKIGNsYXNzIElEQkFueTsKK2NsYXNzIElEQkluZGV4UmVxdWVzdDsKIGNs
YXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiAKQEAgLTUxLDYgKzUzLDcgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIG5hbWUoKSBjb25zdDsK
ICAgICBTdHJpbmcga2V5UGF0aCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlz
dD4gaW5kZXhOYW1lcygpIGNvbnN0OwogCiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBnZXQo
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IGtleSk7CiAgICAgUGFzc1JlZlB0cjxJ
REJSZXF1ZXN0PiBhZGQoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5ID0gMCk7CkBAIC01OCw2ICs2MSwx
MCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBhZGRPck1vZGlmeShQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiBrZXkgPSAwKTsKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHJlbW92
ZShQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4ga2V5KTsKIAorICAgIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gY3JlYXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlID0gZmFsc2UpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8
SURCSW5kZXhSZXF1ZXN0PiBpbmRleChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gcmVtb3ZlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKSBjb25z
dDsKKwogcHJpdmF0ZToKICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3QoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+KTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAppbmRleCBjNzlhMmU4ZWFkNGUxYWZiMDViNmQ2OWU4
MmYzZmRkZWUyMzI2NGUwLi4yZDRjOGJlYWQ2M2I4NmEyNjcxODhiYzNlMGIzOWEwMjIyZDc5MzFm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmlkbApAQCAtMjksMTMg
KzI5LDE4IEBAIG1vZHVsZSBzdG9yYWdlIHsKICAgICAgICAgQ29uZGl0aW9uYWw9SU5ERVhFRF9E
QVRBQkFTRQogICAgIF0gSURCT2JqZWN0U3RvcmVSZXF1ZXN0IHsKICAgICAgICAgSURCUmVxdWVz
dCBnZXQoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CisgICAgICAgIC8vIEZJWE1FOiBD
b21lIHRvIGNvbmNlbnN1cyByZSBnZXRBbGwuCiAgICAgICAgIElEQlJlcXVlc3QgYWRkKGluIFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZSB2YWx1ZSwgaW4gW09wdGlvbmFsXSBTZXJpYWxpemVkU2NyaXB0
VmFsdWUga2V5KTsKICAgICAgICAgSURCUmVxdWVzdCBtb2RpZnkoaW4gU2VyaWFsaXplZFNjcmlw
dFZhbHVlIHZhbHVlLCBpbiBbT3B0aW9uYWxdIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSBrZXkpOwog
ICAgICAgICBJREJSZXF1ZXN0IGFkZE9yTW9kaWZ5KGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSB2
YWx1ZSwgaW4gW09wdGlvbmFsXSBTZXJpYWxpemVkU2NyaXB0VmFsdWUga2V5KTsKICAgICAgICAg
SURCUmVxdWVzdCByZW1vdmUoaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlIGtleSk7CisgICAgICAg
IC8vIEZJWE1FOiB3cml0ZSBvcGVuQ3Vyc29yCisgICAgICAgIElEQlJlcXVlc3QgY3JlYXRlSW5k
ZXgoaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyBrZXlQYXRoLCBpbiBbT3B0aW9uYWxd
IGJvb2xlYW4gdW5pcXVlKTsKKyAgICAgICAgSURCSW5kZXhSZXF1ZXN0IGluZGV4KGluIERPTVN0
cmluZyBuYW1lKTsKKyAgICAgICAgSURCUmVxdWVzdCByZW1vdmVJbmRleChpbiBET01TdHJpbmcg
bmFtZSk7CiAKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBuYW1lOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGtleVBhdGg7Ci0gICAgICAgIC8vIEZJ
WE1FOiBhZGQgaW5kZXhOYW1lcyBwcm9wZXJ0eS4KKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKICAgICB9OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuY3Bw
CmluZGV4IGE3NzM3N2YyYmU3YjRlNjEyOTEzYjIyZTQxNDQxZDJhNDAyMzE0YzAuLmY4NmFiY2I3
ZDZiNGQ5ZDNmNjk4MTVhYzA3MmE0ZTJhODY1ODcyNzIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCUmVxdWVzdC5jcHAK
QEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAjaW5jbHVkZSAi
RXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlUmVxdWVzdC5oIgorI2luY2x1ZGUg
IklEQkluZGV4UmVxdWVzdC5oIgogI2luY2x1ZGUgIklEQkVycm9yRXZlbnQuaCIKICNpbmNsdWRl
ICJJREJTdWNjZXNzRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0Lmgi
CkBAIC02NSwxMiArNjYsMjQgQEAgdm9pZCBJREJSZXF1ZXN0OjpvbkVycm9yKFBhc3NSZWZQdHI8
SURCRGF0YWJhc2VFcnJvcj4gZXJyb3IpCiAgICAgbV9lcnJvciA9IGVycm9yOwogfQogCit2b2lk
IElEQlJlcXVlc3Q6Om9uU3VjY2VzcygpCit7CisgICAgb25FdmVudENvbW1vbigpOworICAgIG1f
cmVzdWx0LT5zZXQoKTsKK30KKwogdm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAgICAgb25FdmVudENvbW1vbigpOwogICAg
IG1fcmVzdWx0LT5zZXQoSURCRGF0YWJhc2VSZXF1ZXN0OjpjcmVhdGUoaWRiRGF0YWJhc2UpKTsK
IH0KIAordm9pZCBJREJSZXF1ZXN0OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJJbmRleD4gaWRi
SW5kZXgpCit7CisgICAgb25FdmVudENvbW1vbigpOworICAgIG1fcmVzdWx0LT5zZXQoSURCSW5k
ZXhSZXF1ZXN0OjpjcmVhdGUoaWRiSW5kZXgpKTsKK30KKwogdm9pZCBJREJSZXF1ZXN0OjpvblN1
Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSkKIHsKICAgICBvbkV2ZW50Q29tbW9uKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3Jh
Z2UvSURCUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQlJlcXVlc3QuaAppbmRleCAwYzM3
Yzk2NmZlYjRjZmFlNTVlYjZkMzAyNTdjOTM3NDM0NzhjMWEwLi41ODM2Zjc4NmE1NTRiYmJmMmMy
MDA1NmU4MzhiOGU2MTU1OWExOTIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCUmVx
dWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJSZXF1ZXN0LmgKQEAgLTYzLDcgKzYzLDkg
QEAgcHVibGljOgogCiAgICAgLy8gSURCQ2FsbGJhY2tzCiAgICAgdmlydHVhbCB2b2lkIG9uRXJy
b3IoUGFzc1JlZlB0cjxJREJEYXRhYmFzZUVycm9yPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcygpOyAvLyBGb3IgIm51bGwiLgogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZT4pOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0
cjxJREJJbmRleD4pOwogICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+KTsKICAgICAvLyBGSVhNRTogSGF2ZSBvbmUgb25TdWNjZXNzIGZ1
bmN0aW9uIGZvciBlYWNoIHBvc3NpYmxlIHJlc3VsdCB0eXBlLgogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwgYi9XZWJDb3JlL3N0b3JhZ2Uv
SW5kZXhlZERhdGFiYXNlUmVxdWVzdC5pZGwKaW5kZXggMDYyOWEzMDgzY2M3ZTQwMDBmMzViOGE5
NDY4YzcwOTRmYWZlZDJiZi4uYTg3ZTAzMzAwYmU3MDRlODI2ZWYzZmQwN2ZiZDg2ODc5NDE5Yjg2
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaWRs
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmlkbApAQCAtMTAs
OSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBm
cm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENP
TlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTI1LDEx
ICsyMiwxMyBAQAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisKIG1vZHVs
ZSBzdG9yYWdlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPUlOREVY
RURfREFUQUJBU0UKICAgICBdIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QgeworICAgICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgbm8gbG9uZ2VyIHJhaXNlLgogICAgICAgICBJREJSZXF1ZXN0IG9w
ZW4oaW4gRE9NU3RyaW5nIG5hbWUsIGluIERPTVN0cmluZyBkZXNjcmlwdGlvbikKICAgICAgICAg
ICAgIHJhaXNlcyhJREJEYXRhYmFzZUV4Y2VwdGlvbik7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGYxNWVmOTIyZWUzYmY2ZjliMjU3OTMyOWVjMmY1MmI4NDFjMGYzMDEuLjc2MDk1ZjMwMjE4Y2I2
MjE3NTQ1YTNmZmQ1YjM5MTM1MTQxZTQxYWUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBA
CisyMDEwLTA1LTI3ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBJbmRleGVkREIn
cyBJREJJbmRleAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mzk4NTAKKworICAgICAgICBBZGQgV2ViS2l0IGxheWVyIGZvciBJREJJbmRleC4KKworICAg
ICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkNvbW1vbi5oOgorICAgICAg
ICAqIHB1YmxpYy9XZWJJREJDYWxsYmFja3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2Fs
bGJhY2tzOjpvbkVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ2FsbGJhY2tzOjpvblN1
Y2Nlc3MpOgorICAgICAgICAqIHB1YmxpYy9XZWJJREJEYXRhYmFzZS5oOgorICAgICAgICAqIHB1
YmxpYy9XZWJJREJJbmRleC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXg6
On5XZWJJREJJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4OjpuYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCSW5kZXg6OmtleVBhdGgpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJJbmRleDo6dW5pcXVlKToKKyAgICAgICAgKiBzcmMvSURCQ2FsbGJhY2tzUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ2FsbGJhY2tzUHJveHk6Om9uU3VjY2Vzcyk6CisgICAg
ICAgICogc3JjL0lEQkNhbGxiYWNrc1Byb3h5Lmg6CisgICAgICAgICogc3JjL0lEQkRhdGFiYXNl
UHJveHkuY3BwOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZVByb3h5Lmg6CisgICAgICAgICog
c3JjL0lEQkluZGV4UHJveHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4
UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleFByb3h5OjpJREJJbmRl
eFByb3h5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UHJveHk6On5JREJJbmRleFByb3h5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4UHJveHk6Om5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCSW5kZXhQcm94eTo6a2V5UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRl
eFByb3h5Ojp1bmlxdWUpOgorICAgICAgICAqIHNyYy9JREJJbmRleFByb3h5Lmg6IEFkZGVkLgor
ICAgICAgICAqIHNyYy9XZWJJREJDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OldlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyk6CisgICAgICAgICogc3JjL1dlYklEQkNh
bGxiYWNrc0ltcGwuaDoKKyAgICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcDoKKyAg
ICAgICAgKiBzcmMvV2ViSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAgICogc3JjL1dlYklEQklu
ZGV4SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJREJJbmRleEltcGw6Oldl
YklEQkluZGV4SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6fldlYklE
QkluZGV4SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6bmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkluZGV4SW1wbDo6a2V5UGF0aCk6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkluZGV4SW1wbDo6dW5pcXVlKToKKyAgICAgICAgKiBzcmMvV2ViSURCSW5kZXhJ
bXBsLmg6IEFkZGVkLgorCiAyMDEwLTA1LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IGNhNzQwNGUxMzUwZTBkZGU0YzM4OGQ2OTI3NGUxZWM2MThkMjc1NmMuLjkzN2Y0
YjM4ODVjMzMxOTljNDdkMGFlZDFhZmZkODExYzA2NTU0YjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0x
MzksNiArMTM5LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkNhbGxiYWNrcy5o
JywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYklEQkRhdGFiYXNlLmgnLAogICAgICAgICAg
ICAgICAgICdwdWJsaWMvV2ViSURCRGF0YWJhc2VFcnJvci5oJywKKyAgICAgICAgICAgICAgICAn
cHVibGljL1dlYklEQkluZGV4LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5kZXhl
ZERhdGFiYXNlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5wdXRFbGVtZW50Lmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSW5wdXRFdmVudC5oJywKQEAgLTI2Niw2ICsy
NjcsOCBAQAogICAgICAgICAgICAgICAgICdzcmMvSURCQ2FsbGJhY2tzUHJveHkuaCcsCiAgICAg
ICAgICAgICAgICAgJ3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcCcsCiAgICAgICAgICAgICAgICAg
J3NyYy9JREJEYXRhYmFzZVByb3h5LmgnLAorICAgICAgICAgICAgICAgICdzcmMvSURCSW5kZXhQ
cm94eS5jcHAnLAorICAgICAgICAgICAgICAgICdzcmMvSURCSW5kZXhQcm94eS5oJywKICAgICAg
ICAgICAgICAgICAnc3JjL0luZGV4ZWREYXRhYmFzZVByb3h5LmNwcCcsCiAgICAgICAgICAgICAg
ICAgJ3NyYy9JbmRleGVkRGF0YWJhc2VQcm94eS5oJywKICAgICAgICAgICAgICAgICAnc3JjL0lu
c3BlY3RvckNsaWVudEltcGwuY3BwJywKQEAgLTM1Myw2ICszNTYsOCBAQAogICAgICAgICAgICAg
ICAgICdzcmMvV2ViSURCRGF0YWJhc2VFcnJvci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuaCcsCisgICAgICAgICAgICAgICAgJ3NyYy9XZWJJREJJbmRleEltcGwuY3BwJywK
KyAgICAgICAgICAgICAgICAnc3JjL1dlYklEQkluZGV4SW1wbC5oJywKICAgICAgICAgICAgICAg
ICAnc3JjL1dlYkltYWdlQ0cuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkltYWdlRGVj
b2Rlci5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViSW1hZ2VTa2lhLmNwcCcsCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbW1vbi5oIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJDb21tb24uaAppbmRleCBlN2UzOGQzNDQ0NzZmMDNkYTgxMTQwY2NhMDE4
OWU5NzA0NTJkMWZkLi43ODcyNzI5ZGFmMzI3OWE0MzMwMGYxYzU4NzQ4YWEyZDk4N2U2MTM5IDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbW1vbi5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViQ29tbW9uLmgKQEAgLTEwNiw0ICsxMDYsNiBAQCBXRUJLSVRf
QVBJIHZvaWQgZmFpbGVkQXNzZXJ0aW9uKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbgogfSB3aGlsZSAoMCkKICNlbmRpZgogCisjZGVmaW5lIFdFQktJVF9B
U1NFUlRfTk9UX1JFQUNIRUQoKSBXRUJLSVRfQVNTRVJUKDApCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCBiL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViSURCQ2FsbGJhY2tzLmgKaW5kZXggNjEwZjdkNDRhYTBlNjFmNWIyMTE4
ZDg3NzRlZjk1NTU1NTRkN2I5My4uYmJhN2M3NDU1MWUxYTUwMTA0YzVjNTEwNjZkZmQ0MmQxZWRi
ZWE5ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJDYWxsYmFja3Mu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkNhbGxiYWNrcy5oCkBAIC0xMCw5
ICsxMCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMu
ICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZy
b20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09O
VFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzUsNiAr
MzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViSURCRGF0YWJhc2U7CiBjbGFz
cyBXZWJJREJEYXRhYmFzZUVycm9yOworY2xhc3MgV2ViSURCSW5kZXg7CiBjbGFzcyBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiAKIGNsYXNzIFdlYklEQkNhbGxiYWNrcyB7CkBAIC00Myw5ICs0
MSwxMSBAQCBwdWJsaWM6CiAKICAgICAvLyBGb3IgY2xhc3NlcyB0aGF0IGZvbGxvdyB0aGUgUElt
cGwgcGF0dGVybiwgcGFzcyBhIGNvbnN0IHJlZmVyZW5jZS4KICAgICAvLyBGb3IgdGhlIHJlc3Qs
IHBhc3Mgb3duZXJzaGlwIHRvIHRoZSBjYWxsZWUgdmlhIGEgcG9pbnRlci4KLSAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihjb25zdCBXZWJJREJEYXRhYmFzZUVycm9yJikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoV2ViSURCRGF0YWJhc2UqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IG9uU3VjY2Vzcyhjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIG9uRXJyb3IoY29uc3QgV2ViSURCRGF0YWJhc2VFcnJvciYpIHsgV0VCS0lUX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcygpIHsgV0VC
S0lUX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9IC8vIEZvciAibnVsbCIuCisgICAgdmlydHVhbCB2
b2lkIG9uU3VjY2VzcyhXZWJJREJEYXRhYmFzZSopIHsgV0VCS0lUX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhXZWJJREJJbmRleCopIHsgV0VCS0lU
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vzcyhjb25z
dCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmKSB7IFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQo
KTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYklEQkRhdGFiYXNlLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQkRhdGFiYXNlLmgKaW5kZXggOGMxMDg2Mzc1Y2IwZWEyYjlmYmIxNWE0ODY4ZjZmOGQ0MGMw
ZTU5Yi4uMGY2NWM2ZmM4ZGM4NGIyOTVmMTFkYjc2NjI5ZDQ0ZTYwZGU5YTgzNyAxMDA2NDQKLS0t
IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJEYXRhYmFzZS5oCisrKyBiL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViSURCRGF0YWJhc2UuaApAQCAtMTAsOSArMTAsNiBAQAogICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CiAgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRo
ZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKICAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKQEAgLTM0LDcgKzMxLDcgQEAKIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKLS8vIFNlZSBjb21tZW50IGluIFdlYkluZGV4ZWREYXRhYmFzZSBmb3Ig
YSBoaWdoIGxldmVsIG92ZXJ2aWV3IHRoZXNlIGNsYXNzZXMuCisvLyBTZWUgY29tbWVudCBpbiBX
ZWJJbmRleGVkRGF0YWJhc2UgZm9yIGEgaGlnaCBsZXZlbCBvdmVydmlldyBvZiB0aGVzZSBjbGFz
c2VzLgogY2xhc3MgV2ViSURCRGF0YWJhc2UgewogcHVibGljOgogICAgIHZpcnR1YWwgfldlYklE
QkRhdGFiYXNlKCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QkluZGV4LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklEQkluZGV4LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGFmZWEwZTBmYjkwYTE2ZTQwNWFmNDVkMjYyNWVjNmM4ZGQ3OTAyMwotLS0gL2Rldi9udWxs
CisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCSW5kZXguaApAQCAtMCwwICsxLDU3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJJbmRleF9oCisjZGVmaW5lIFdlYklEQkluZGV4X2gK
KworI2luY2x1ZGUgIldlYlN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gU2Vl
IGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBhIGhpZ2ggbGV2ZWwgb3ZlcnZpZXcg
b2YgdGhlc2UgY2xhc3Nlcy4KK2NsYXNzIFdlYklEQkluZGV4IHsKK3B1YmxpYzoKKyAgICB2aXJ0
dWFsIH5XZWJJREJJbmRleCgpIHsgfQorCisgICAgdmlydHVhbCBXZWJTdHJpbmcgbmFtZSgpIGNv
bnN0CisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAg
IHJldHVybiBXZWJTdHJpbmcoKTsKKyAgICB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcga2V5UGF0
aCgpIGNvbnN0CisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBXZWJTdHJpbmcoKTsKKyAgICB9CisgICAgdmlydHVhbCBib29sIHVuaXF1
ZSgpIGNvbnN0CisgICAgeworICAgICAgICBXRUJLSVRfQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIFdlYklEQkluZGV4X2gKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvSURCQ2FsbGJhY2tzUHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFj
a3NQcm94eS5jcHAKaW5kZXggMmJkZjE0MGU1ZTY0ZGM5ZTI0ZTgzNDBjZWExZWU0ZDk3YTY5ZjMy
My4uM2U1ZjAwYWM1ZGRiN2QxYzQ3NDE0Zjc0Yzc2MDMxZDY5NTZiNjk3ZCAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKKysrIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJXZWJJREJDYWxsYmFja3MuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUltcGwuaCIK
ICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCisjaW5jbHVkZSAiV2ViSURCSW5kZXhJ
bXBsLmgiCiAjaW5jbHVkZSAiV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTYwLDEyICs2MSwyNCBAQCB2b2lkIElEQkNhbGxiYWNr
c1Byb3h5OjpvbkVycm9yKFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4gaWRiRGF0YWJhc2VF
cnJvcikKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIElEQkNhbGxiYWNrc1By
b3h5OjpvblN1Y2Nlc3MoKQoreworICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3MoKTsKKyAgICBt
X2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5OjpvblN1Y2Nl
c3MoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gaWRiRGF0YWJhc2UpCiB7CiAgICAgbV9jYWxsYmFj
a3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGwoaWRiRGF0YWJhc2Up
KTsKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwogfQogCit2b2lkIElEQkNhbGxiYWNrc1Byb3h5
OjpvblN1Y2Nlc3MoUGFzc1JlZlB0cjxJREJJbmRleD4gaWRiSW5kZXgpCit7CisgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhuZXcgV2ViS2l0OjpXZWJJREJJbmRleEltcGwoaWRiSW5kZXgpKTsK
KyAgICBtX2NhbGxiYWNrcy5jbGVhcigpOworfQorCiB2b2lkIElEQkNhbGxiYWNrc1Byb3h5Ojpv
blN1Y2Nlc3MoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSkKIHsKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKFdlYktpdDo6V2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlKHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJDYWxsYmFja3NQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9JREJDYWxsYmFja3NQcm94eS5oCmluZGV4IDVkNGJjMGIxN2Y0NjA3MjVjMDI1Y2ZmZDhmNjRh
MjA1YzU5YjU3MDAuLmQ5OGUyZWQ0YWQyZTE5MjU0NzA5ZWQ1YjYwZmY1YjU3MmYzZDVmNGEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCQ2FsbGJhY2tzUHJveHkuaAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkNhbGxiYWNrc1Byb3h5LmgKQEAgLTUxLDcgKzUxLDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgfklEQkNhbGxiYWNrc1Byb3h5KCk7CiAKICAgICB2aXJ0dWFs
IHZvaWQgb25FcnJvcihQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KTsKKyAgICB2aXJ0dWFs
IHZvaWQgb25TdWNjZXNzKCk7IC8vIEZvciAibnVsbCIuCiAgICAgdmlydHVhbCB2b2lkIG9uU3Vj
Y2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cyhQYXNzUmVmUHRyPElEQkluZGV4Pik7CiAgICAgdmlydHVhbCB2b2lkIG9uU3VjY2VzcyhQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcCBiL1dlYktpdC9jaHJvbWl1
bS9zcmMvSURCRGF0YWJhc2VQcm94eS5jcHAKaW5kZXggOTY0YmFkYTNlMDIyZDRkOTYwZWVjOWFh
OTY3NzNjNDk4YzI3NjYzZi4uZGViMmY5OWY2OTc2ZDcwMDI4ZTAxMGYwZjgxNzlmYjQzNGMwNzY2
MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5LmNwcAor
KysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlUHJveHkuY3BwCkBAIC0xMCw5ICsx
MCw2IEBACiAgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
ICAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApAQCAtMzAsNyArMjcs
NiBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlUHJveHkuaCIKIAogI2luY2x1ZGUgIkRPTVN0cmlu
Z0xpc3QuaCIKLSNpbmNsdWRlICJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURC
RGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAKQEAgLTc1LDQg
KzcxLDMgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBJREJEYXRhYmFzZVByb3h5OjpvYmpl
Y3RTdG9yZXMoKQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElO
REVYRURfREFUQUJBU0UpCi0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0
YWJhc2VQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZVByb3h5LmgKaW5k
ZXggZDFhNTE0NmM5MTNiOWUyNWE2MmI3NjExMzA0YTVkMzA5ZjZmNTJlZC4uZTVlNTEyNTBkMzVi
ZWNhNzliMDM1MjU4YzExOGRjYzY1MzkzOGQ1ZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9JREJEYXRhYmFzZVByb3h5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRh
YmFzZVByb3h5LmgKQEAgLTEwLDkgKzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKICAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2Yg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVECkBAIC02Myw0ICs2MCwzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2VuZGlmIC8v
IElEQkRhdGFiYXNlUHJveHlfaAotCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0lE
QkluZGV4UHJveHkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mODBlZmYzZTYwOTIxMmFiZGNiOWNlNjYyNWUyN2ZmNjZiMzU5MGM5Ci0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5LmNwcApAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YK
KyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklEQklu
ZGV4UHJveHkuaCIKKworI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKKyNpbmNsdWRl
ICJXZWJJREJJbmRleC5oIgorCisjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUGFzc1JlZlB0cjxJREJJbmRleD4gSURCSW5kZXhQcm94eTo6Y3Jl
YXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJJbmRleD4gSW5kZXgpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBJREJJbmRleFByb3h5KEluZGV4KSk7Cit9CisKK0lEQkluZGV4UHJveHk6
OklEQkluZGV4UHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkluZGV4PiBJbmRleCkKKyAg
ICA6IG1fd2ViSURCSW5kZXgoSW5kZXgpCit7Cit9CisKK0lEQkluZGV4UHJveHk6On5JREJJbmRl
eFByb3h5KCkKK3sKK30KKworU3RyaW5nIElEQkluZGV4UHJveHk6Om5hbWUoKQoreworICAgIHJl
dHVybiBtX3dlYklEQkluZGV4LT5uYW1lKCk7Cit9CisKK1N0cmluZyBJREJJbmRleFByb3h5Ojpr
ZXlQYXRoKCkKK3sKKyAgICByZXR1cm4gbV93ZWJJREJJbmRleC0+a2V5UGF0aCgpOworfQorCiti
b29sIElEQkluZGV4UHJveHk6OnVuaXF1ZSgpCit7CisgICAgcmV0dXJuIG1fd2ViSURCSW5kZXgt
PnVuaXF1ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvSURC
SW5kZXhQcm94eS5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJJbmRleFByb3h5LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzVlNmIzMDgyOTQwN2M5ZWU2OGNhZjdhZWUwMzVlZmJhNGRiMDRiZAotLS0gL2Rldi9u
dWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCSW5kZXhQcm94eS5oCkBAIC0wLDAgKzEs
NjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICog
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIElEQkluZGV4UHJveHlfaAorI2RlZmluZSBJREJJbmRleFBy
b3h5X2gKKworI2luY2x1ZGUgIklEQkluZGV4LmgiCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgor
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
KworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCituYW1lc3BhY2UgV2ViS2l0IHsgY2xh
c3MgV2ViSURCSW5kZXg7IH0KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJJbmRl
eFByb3h5IDogcHVibGljIElEQkluZGV4IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxJREJJbmRleD4gY3JlYXRlKFBhc3NPd25QdHI8V2ViS2l0OjpXZWJJREJJbmRleD4pOworICAg
IHZpcnR1YWwgfklEQkluZGV4UHJveHkoKTsKKworICAgIHZpcnR1YWwgU3RyaW5nIG5hbWUoKTsK
KyAgICB2aXJ0dWFsIFN0cmluZyBrZXlQYXRoKCk7CisgICAgdmlydHVhbCBib29sIHVuaXF1ZSgp
OworCisgICAgLy8gRklYTUU6IEFkZCBvdGhlciBtZXRob2RzLgorCitwcml2YXRlOgorICAgIElE
QkluZGV4UHJveHkoUGFzc093blB0cjxXZWJLaXQ6OldlYklEQkluZGV4Pik7CisKKyAgICBPd25Q
dHI8V2ViS2l0OjpXZWJJREJJbmRleD4gbV93ZWJJREJJbmRleDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmCisKKyNlbmRpZiAvLyBJREJJbmRleFByb3h5X2gKZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5jcHAgYi9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklEQkNhbGxiYWNrc0ltcGwuY3BwCmluZGV4IDhmODhjYjZmNmQ2
ZjE5YTcyMGE5YmIxNGY3MDQwOTQyZTZmN2JlMjQuLmVhMWMwYjExNDIzOWZiNzg5ZjI0NTU5NmEy
OWM5Y2UxMWQ3ZWIyOTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2Fs
bGJhY2tzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJ
bXBsLmNwcApAQCAtMTAsOSArMTAsNiBAQAogICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CiAgKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQogICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCiAgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKICAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKQEAgLTMyLDkgKzI5LDExIEBACiAjaW5jbHVkZSAiSURCQ2FsbGJhY2tzLmgiCiAjaW5j
bHVkZSAiSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlUHJveHkuaCIK
KyNpbmNsdWRlICJJREJJbmRleFByb3h5LmgiCiAjaW5jbHVkZSAiV2ViSURCQ2FsbGJhY2tzLmgi
CiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVy
cm9yLmgiCisjaW5jbHVkZSAiV2ViSURCSW5kZXguaCIKICNpbmNsdWRlICJXZWJTZXJpYWxpemVk
U2NyaXB0VmFsdWUuaCIKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpAQCAtNTYsMTIg
KzU1LDI0IEBAIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25FcnJvcihjb25zdCBXZWJLaXQ6
OldlYklEQkRhdGFiYXNlRXJyb3ImIGVycm9yKQogICAgIG1fY2FsbGJhY2tzLmNsZWFyKCk7CiB9
CiAKK3ZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKCkKK3sKKyAgICBtX2NhbGxi
YWNrcy0+b25TdWNjZXNzKCk7CisgICAgbV9jYWxsYmFja3MuY2xlYXIoKTsKK30KKwogdm9pZCBX
ZWJJREJDYWxsYmFja3NJbXBsOjpvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRhYmFzZSogd2Vi
S2l0SW5zdGFuY2UpCiB7CiAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhJREJEYXRhYmFzZVBy
b3h5OjpjcmVhdGUod2ViS2l0SW5zdGFuY2UpKTsKICAgICBtX2NhbGxiYWNrcy5jbGVhcigpOwog
fQogCit2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2VzcyhXZWJLaXQ6OldlYklEQklu
ZGV4KiB3ZWJLaXRJbnN0YW5jZSkKK3sKKyAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKElEQklu
ZGV4UHJveHk6OmNyZWF0ZSh3ZWJLaXRJbnN0YW5jZSkpOworICAgIG1fY2FsbGJhY2tzLmNsZWFy
KCk7Cit9CisKIHZvaWQgV2ViSURCQ2FsbGJhY2tzSW1wbDo6b25TdWNjZXNzKGNvbnN0IFdlYktp
dDo6V2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlJiBzZXJpYWxpemVkU2NyaXB0VmFsdWUpCiB7CiAg
ICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzZXJpYWxpemVkU2NyaXB0VmFsdWUpOwpAQCAtNzEs
NCArODIsMyBAQCB2b2lkIFdlYklEQkNhbGxiYWNrc0ltcGw6Om9uU3VjY2Vzcyhjb25zdCBXZWJL
aXQ6OldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYgc2VyaQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSURCQ2FsbGJhY2tzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKaW5kZXggOWI1MzExN2U2ZGU1MTM5YzI5NTAxMGUz
ZTcyNzI4ZmNiNjZmZTcyZC4uOGU1YWRhN2I3MTZmZjBlZWM1M2IxNzE2YTY1OWQ4YjlhYTI0YmRl
NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgK
KysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJDYWxsYmFja3NJbXBsLmgKQEAgLTEwLDkg
KzEwLDYgQEAKICAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAogICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4g
KCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgogICoKICAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCiAgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECkBAIC0zNSwyNCAr
MzIsMjAgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLWNsYXNzIFdlYklEQkRhdGFiYXNlOwotY2xhc3MgV2ViSURCRGF0YWJhc2VFcnJvcjsK
LWNsYXNzIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBJREJDYWxsYmFja3M7CiAKIGNsYXNzIFdlYklEQkNhbGxiYWNrc0ltcGwgOiBw
dWJsaWMgV2ViS2l0OjpXZWJJREJDYWxsYmFja3MgewogcHVibGljOgotICAgIFdlYklEQkNhbGxi
YWNrc0ltcGwoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcyk7CisgICAgV2ViSURC
Q2FsbGJhY2tzSW1wbChQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4pOwogICAgIHZpcnR1YWwgfldl
YklEQkNhbGxiYWNrc0ltcGwoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBvbkVycm9yKGNvbnN0IFdl
YktpdDo6V2ViSURCRGF0YWJhc2VFcnJvciYgZXJyb3IpOwotICAgIHZpcnR1YWwgdm9pZCBvblN1
Y2Nlc3MoV2ViS2l0OjpXZWJJREJEYXRhYmFzZSogd2ViS2l0SW5zdGFuY2UpOwotICAgIHZpcnR1
YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUm
IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7CisgICAgdmlydHVhbCB2b2lkIG9uRXJyb3IoY29uc3Qg
V2ViS2l0OjpXZWJJREJEYXRhYmFzZUVycm9yJik7CisgICAgdmlydHVhbCB2b2lkIG9uU3VjY2Vz
cygpOyAvLyBGb3IgIm51bGwiLgorICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpX
ZWJJREJEYXRhYmFzZSopOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoV2ViS2l0OjpXZWJJ
REJJbmRleCopOworICAgIHZpcnR1YWwgdm9pZCBvblN1Y2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUmKTsKIAogcHJpdmF0ZToKICAgICBSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBtX2NhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURC
RGF0YWJhc2VJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmNwcAppbmRleCA3NDU4NTY0OTg2MmIzMzlhNmIzODViZjg3YWZiNjU3NDdiOTE1NDE5Li4zYTAw
Y2NiZThkMzcyNjJkYzViMWEyM2E2OThkYTlhNWUwZDljNjVhIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJEYXRhYmFzZUltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmgKaW5kZXggYTQ1MzY4ZTUyZThhYTc0ZmM4NjdjMzBmMmQwODk3ZGI0NTdiMDA1NC4u
Zjk5YTc1OTlhZWM2ZjQwZjUzNjhjNzg0Yzc3MGVhMTQ4YjVjMTJkMyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5oCkBAIC0xMCw5ICsxMCw2IEBACiAgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKICAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0
aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5h
bWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KICAqCiAgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQogICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJREJJbmRleEltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleElt
cGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjMwNDIxN2M2MDk1ZThkMWMxM2MxNmJjYTdmOGViMGNlOWQ3MWI2
ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkluZGV4SW1w
bC5jcHAKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElT
IiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJJREJJbmRleEltcGwuaCIKKworI2luY2x1ZGUgIklEQkluZGV4LmgiCisKKyNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitXZWJJREJJbmRleEltcGw6OldlYklEQkluZGV4SW1wbChQYXNz
UmVmUHRyPElEQkluZGV4PiBpZGJJbmRleCkKKyAgICA6IG1faWRiSW5kZXgoaWRiSW5kZXgpCit7
Cit9CisKK1dlYklEQkluZGV4SW1wbDo6fldlYklEQkluZGV4SW1wbCgpCit7Cit9CisKK1dlYlN0
cmluZyBXZWJJREJJbmRleEltcGw6Om5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYklu
ZGV4LT5uYW1lKCk7Cit9CisKK1dlYlN0cmluZyBXZWJJREJJbmRleEltcGw6OmtleVBhdGgoKSBj
b25zdAoreworICAgIHJldHVybiBtX2lkYkluZGV4LT5rZXlQYXRoKCk7Cit9CisKK2Jvb2wgV2Vi
SURCSW5kZXhJbXBsOjp1bmlxdWUoKSBjb25zdAoreworICAgIHJldHVybiBtX2lkYkluZGV4LT51
bmlxdWUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklE
QkluZGV4SW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lMWYwNTM4YzAwMmVlOGVmMDdlNGM4ODdmYmIxNzIyYzZlM2I3MjkzCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJJbmRleEltcGwuaApAQCAtMCww
ICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAq
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJJREJJbmRleEltcGxfaAorI2RlZmluZSBXZWJJ
REJJbmRleEltcGxfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisjaW5jbHVkZSAiV2ViSURC
SW5kZXguaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeyBjbGFzcyBJREJJbmRleDsgfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworLy8gU2VlIGNvbW1lbnQgaW4gV2ViSW5kZXhlZERhdGFiYXNlIGZvciBh
IGhpZ2ggbGV2ZWwgb3ZlcnZpZXcgdGhlc2UgY2xhc3Nlcy4KK2NsYXNzIFdlYklEQkluZGV4SW1w
bCA6IHB1YmxpYyBXZWJJREJJbmRleCB7CitwdWJsaWM6CisgICAgV2ViSURCSW5kZXhJbXBsKFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJJbmRleD4gaWRiSW5kZXgpOworICAgIHZpcnR1YWwg
fldlYklEQkluZGV4SW1wbCgpOworCisgICAgdmlydHVhbCBXZWJTdHJpbmcgbmFtZSgpIGNvbnN0
OworICAgIHZpcnR1YWwgV2ViU3RyaW5nIGtleVBhdGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgdW5pcXVlKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgV1RGOjpSZWZQdHI8V2ViQ29yZTo6
SURCSW5kZXg+IG1faWRiSW5kZXg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdlYklEQkluZGV4SW1wbF9oCg==
</data>
<flag name="review"
          id="41887"
          type_id="1"
          status="+"
          setter="steveblock"
    />
          </attachment>
      

    </bug>

</bugzilla>