<?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>218050</bug_id>
          
          <creation_ts>2020-10-21 13:42:05 -0700</creation_ts>
          <short_desc>[Contact Picker API] Add skeleton implementation of ContactsManager.select()</short_desc>
          <delta_ts>2020-10-22 18:32:15 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1700361</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-21 13:42:05 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700362</commentid>
    <comment_count>1</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-21 13:42:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/69862186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700365</commentid>
    <comment_count>2</comment_count>
      <attachid>412026</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-21 13:47:25 -0700</bug_when>
    <thetext>Created attachment 412026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700387</commentid>
    <comment_count>3</comment_count>
      <attachid>412031</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-21 14:17:15 -0700</bug_when>
    <thetext>Created attachment 412031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700746</commentid>
    <comment_count>4</comment_count>
      <attachid>412116</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-22 11:06:21 -0700</bug_when>
    <thetext>Created attachment 412116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700811</commentid>
    <comment_count>5</comment_count>
      <attachid>412116</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-10-22 13:48:17 -0700</bug_when>
    <thetext>Comment on attachment 412116
Patch

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

r=me, assuming you fix the build issues for GTK/WPE/Win/etc :)

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:82
&gt; +    auto frame = makeRefPtr(this-&gt;frame());

Do we actually need to `makeRefPtr` here?  You properly null-check it and don&apos;t give it to the lambda, so is it necessary to increase the ref count?

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:84
&gt; +        promise-&gt;reject(Exception { InvalidStateError });

NIT: do we actually need the `Exception { ... }` instead of just `InvalidStateError`?

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:89
&gt; +        promise-&gt;reject(Exception { SecurityError });

ditto (:84)

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:94
&gt; +        promise-&gt;reject(Exception { InvalidStateError });

ditto (:84)

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:113
&gt; +        if (info) {

Is it actually necessary to wrap the `Vector` in an `Optional`?  Can we just have the `Vector` be the response, which resolves the `promise` with an empty array in that case?  Or do we explicitly want/need to differentiate between &quot;the user did not pick any contacts&quot; and &quot;WebKit was unable to show the picker UI&quot;?

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:118
&gt; +        promise-&gt;reject(Exception { UnknownError });

ditto (:84)

&gt; Source/WebCore/Modules/contact-picker/ContactsManager.h:58
&gt; +    bool m_contactPickerIsShowing { false };

I&apos;d put this below for (potentially) better packing

&gt; Source/WebKit/UIProcess/PageClient.h:258
&gt; +    virtual void showContactPicker(const WebCore::ContactsRequestData&amp;, WTF::CompletionHandler&lt;void(Optional&lt;Vector&lt;WebCore::ContactInfo&gt;&gt;&amp;&amp;)&gt;&amp;&amp; completionHandler) { completionHandler(WTF::nullopt); }

So this patch doesn&apos;t hook this up to `PageClientImplCocoa`/`PageClientImplMac`/`PageClientImplIOS`/?  If so, could we maybe retitle this bug so it&apos;s clear that we&apos;re only implementing the skeleton/structure of this functionality (and add a related/blocked bug for the rest of it)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700835</commentid>
    <comment_count>6</comment_count>
      <attachid>412132</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-22 14:29:04 -0700</bug_when>
    <thetext>Created attachment 412132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700838</commentid>
    <comment_count>7</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-22 14:34:21 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #5)
&gt; Comment on attachment 412116 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=412116&amp;action=review
&gt; 
&gt; r=me, assuming you fix the build issues for GTK/WPE/Win/etc :)

Thank you for the review :)

&gt; &gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:82
&gt; &gt; +    auto frame = makeRefPtr(this-&gt;frame());
&gt; 
&gt; Do we actually need to `makeRefPtr` here?  You properly null-check it and
&gt; don&apos;t give it to the lambda, so is it necessary to increase the ref count?

Removed `makeRefPtr`.

&gt; &gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:84
&gt; &gt; +        promise-&gt;reject(Exception { InvalidStateError });
&gt; 
&gt; NIT: do we actually need the `Exception { ... }` instead of just
&gt; `InvalidStateError`?

No need for the `Exception { ... }`. Corrected this instance and the others below.

&gt; &gt; Source/WebCore/Modules/contact-picker/ContactsManager.cpp:113
&gt; &gt; +        if (info) {
&gt; 
&gt; Is it actually necessary to wrap the `Vector` in an `Optional`?  Can we just
&gt; have the `Vector` be the response, which resolves the `promise` with an
&gt; empty array in that case?  Or do we explicitly want/need to differentiate
&gt; between &quot;the user did not pick any contacts&quot; and &quot;WebKit was unable to show
&gt; the picker UI&quot;?

We need to differentiate between the two.

The spec states &quot;If presenting a user interface fails or accessing the contacts source&apos;s available contacts fails, then return failure.&quot; This is distinct from the empty list case: &quot;The UI MUST provide an option to cancel/return without sharing any contacts, in which case remove the UI and return an empty list.&quot;
 
&gt; &gt; Source/WebCore/Modules/contact-picker/ContactsManager.h:58
&gt; &gt; +    bool m_contactPickerIsShowing { false };
&gt; 
&gt; I&apos;d put this below for (potentially) better packing

Done.

&gt; &gt; Source/WebKit/UIProcess/PageClient.h:258
&gt; &gt; +    virtual void showContactPicker(const WebCore::ContactsRequestData&amp;, WTF::CompletionHandler&lt;void(Optional&lt;Vector&lt;WebCore::ContactInfo&gt;&gt;&amp;&amp;)&gt;&amp;&amp; completionHandler) { completionHandler(WTF::nullopt); }
&gt; 
&gt; So this patch doesn&apos;t hook this up to
&gt; `PageClientImplCocoa`/`PageClientImplMac`/`PageClientImplIOS`/?  If so,
&gt; could we maybe retitle this bug so it&apos;s clear that we&apos;re only implementing
&gt; the skeleton/structure of this functionality (and add a related/blocked bug
&gt; for the rest of it)?

Correct. I&apos;ve renamed the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700840</commentid>
    <comment_count>8</comment_count>
      <attachid>412134</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-22 14:39:34 -0700</bug_when>
    <thetext>Created attachment 412134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700841</commentid>
    <comment_count>9</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2020-10-22 14:40:03 -0700</bug_when>
    <thetext>Added a missing header to Headers.cmake.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1700906</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-22 18:32:14 -0700</bug_when>
    <thetext>Committed r268901: &lt;https://trac.webkit.org/changeset/268901&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 412134.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412026</attachid>
            <date>2020-10-21 13:47:25 -0700</date>
            <delta_ts>2020-10-21 14:31:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218050-20201021164724.patch</filename>
            <type>text/plain</type>
            <size>41709</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRjZGY0MmEyNTM2NWY2
ZDQ0OGVjOGQzOWEzYmU0MTFlMDJlZjZhOS4uZDYxYjM3Y2E2NjlkN2UyZWIxNTY4YzQyZGE1MTkw
MzIwZDY4NGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBJbXBsZW1lbnQgQ29udGFjdHNNYW5hZ2VyLnNlbGVjdCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgwNTAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBpcyB0aGUgaW50ZXJmYWNlIHRo
YXQgYWxsb3dzIGNsaWVudHMgdG8KKyAgICAgICAgcHJlc2VudCBhIGNvbnRhY3QgcGlja2VyLiBU
aGUgbWV0aG9kIHNob3VsZCBpbW1lZGlhdGVseSByZWplY3Qgd2hlbgorICAgICAgICBjYWxsZWQg
ZnJvbSBhIG5vbi1tYWluIGZyYW1lLCB3aGVuIGNhbGxlZCBvdXRzaWRlIHVzZXItaW50ZXJhY3Rp
b24gYW5kCisgICAgICAgIHdoZW4gY2FsbGVkIHdoaWxlIGEgY29udGFjdCBwaWNrZXIgaXMgYWxy
ZWFkeSBiZWluZyBkaXNwbGF5ZWQuCisgICAgICAgIEZ1cnRoZXJtb3JlLCB0aGUgcHJvbWlzZSBp
cyByZWplY3RlZCB3aGVuIHRoZSBzdXBwbGllZCBwcm9wZXJ0aWVzIGFyZQorICAgICAgICBlbXB0
eSBvciBpbnZhbGlkLgorCisgICAgICAgIEFmdGVyIHRoZSBjb25kaXRpb25zIG5lY2Vzc2FyeSBm
b3IgdGhlIFVJIHRvIGJlIHByZXNlbnRlZCBhcmUgdmVyaWZpZWQsCisgICAgICAgIENvbnRhY3Rz
TWFuYWdlci5zZWxlY3QoKSBjYWxscyBpbnRvIHRoZSBwYWdlJ3MgQ2hyb21lIHRvIGRpc3BsYXkg
dGhlCisgICAgICAgIHBpY2tlci4KKworICAgICAgICBTZWUgaHR0cHM6Ly93aWNnLmdpdGh1Yi5p
by9jb250YWN0LWFwaS9zcGVjLyNjb250YWN0cy1tYW5hZ2VyLXNlbGVjdAorICAgICAgICBmb3Ig
bW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sCisgICAgICAgICAg
ICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVz
ZXItZ2VzdHVyZS5odG1sCisgICAgICAgICAgICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3Qtd2hpbGUtcHJlc2VudGluZy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3Qt
cGlja2VyL0NvbnRhY3RJbmZvLmg6IEFkZGVkIGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIElQQy4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGFjdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0
LXBpY2tlci9Db250YWN0SW5mby5pZGw6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tl
ci9Db250YWN0UHJvcGVydHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OmZy
YW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RzTWFuYWdlcjo6c2VsZWN0KToK
KyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oOgorICAg
ICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oOiBBZGRl
ZC4KKworICAgICAgICBDb250YWN0c1JlcXVlc3REYXRhIGVuY2Fwc3VsYXRlcyB0aGUgaW5mb3Jt
YXRpb24gcmVxdWlyZWQgdG8gZGlzcGxheSBhCisgICAgICAgIHBpY2tlciBVSS4gVGhpcyBpbmNs
dWRlcyB0aGUgcmVxdWVzdGVkIHByb3BlcnRpZXMsIHRoZSBVUkwgb2YgdGhlCisgICAgICAgIHBy
ZXNlbnRpbmcgc2l0ZSwgYW5kIHdoZXRoZXIgbXVsdGlwbGUgY29udGFjdCBzZWxlY3Rpb24gc2hv
dWxkIGJlIGFsbG93ZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhOjpk
ZWNvZGUpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNob3dD
b250YWN0UGlja2VyKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNob3dDb250
YWN0UGlja2VyKToKKwogMjAyMC0xMC0yMCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gUHJldmVudCBwcmVzZW50YXRpb24gb2YgaW5wdXQgcGVy
aXBoZXJhbHMgd2hlbiBmb2N1c2luZyBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWxpZGF0aW9uIG1l
c3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMmI2YTc1NzMwMDRhYmI0YmI0ZDgwNjYyODAzNDQ5NDliODYxOTYz
ZC4uYjdlYjgwMTA2OTg2MzRhZmI0YWY3NWI0NmI3NjQwZWMxN2FlMGYzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAyMC0xMC0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gSW1wbGVtZW50IENvbnRhY3Rz
TWFuYWdlci5zZWxlY3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjE4Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgbmVj
ZXNzYXJ5IHBsdW1iaW5nIGluIG9yZGVyIGZvciB0aGUgVUlQcm9jZXNzIHRvIGRpc3BsYXkgYQor
ICAgICAgICBjb250YWN0IHBpY2tlciBhZnRlciBhIGNhbGwgdG8gQ29udGFjdHNNYW5hZ2VyLnNl
bGVjdCgpIGlzIG1hZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3dDb250YWN0UGlja2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorCiAyMDIwLTEwLTIwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBQcmV2ZW50IHByZXNlbnRhdGlvbiBvZiBpbnB1dCBwZXJpcGhl
cmFscyB3aGVuIGZvY3VzaW5nIGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbGlkYXRpb24gbWVzc2Fn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250
YWN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0
SW5mby5oCmluZGV4IGVmZDRkNDNiZTVlYjU1ZGNmZDUwMGExN2Y1YWI5YTYyYzk3YzlmNzEuLjA3
NGZlNTQ4MjY4ZWU2M2YyMGNjYTQ1NWE2YzA3NjQzZTRhYjMxMTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmgKQEAgLTM0LDYg
KzM0LDM4IEBAIHN0cnVjdCBDb250YWN0SW5mbyB7CiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZTsK
ICAgICBWZWN0b3I8U3RyaW5nPiBlbWFpbDsKICAgICBWZWN0b3I8U3RyaW5nPiB0ZWw7CisKKyAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Cisg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbnRhY3RJbmZvPiBk
ZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ29u
dGFjdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIg
PDwgbmFtZTsKKyAgICBlbmNvZGVyIDw8IGVtYWlsOworICAgIGVuY29kZXIgPDwgdGVsOwogfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8Q29udGFjdEluZm8+IENvbnRhY3RJ
bmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxWZWN0b3I8U3Ry
aW5nPj4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGVt
YWlsOworICAgIGRlY29kZXIgPj4gZW1haWw7CisgICAgaWYgKCFlbWFpbCkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiB0ZWw7Cisg
ICAgZGVjb2RlciA+PiB0ZWw7CisgICAgaWYgKCF0ZWwpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKm5hbWUsICplbWFpbCwgKnRlbCB9fTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
b250YWN0LXBpY2tlci9Db250YWN0SW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Nv
bnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbAppbmRleCAxNjM3NzEyOWM4YmQxNDQ1NTUwNGIw
YTk1MWQ2NjgzMjAzMDA1ZjIyLi4yMjlhYmZhMWRjNzUyNzgxODJiMzVkMWZmYTc0NDU4YjgzYmU0
NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RJbmZvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RJbmZvLmlkbApAQCAtMjUsNyArMjUsOSBAQAogCiAvLyBodHRwczovL3dpY2cuZ2l0
aHViLmlvL2NvbnRhY3QtYXBpLwogCi1kaWN0aW9uYXJ5IENvbnRhY3RJbmZvIHsKK1sKKyAgICBK
U0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb250YWN0SW5mbyB7CiAgICAgc2Vx
dWVuY2U8VVNWU3RyaW5nPiBuYW1lOwogICAgIHNlcXVlbmNlPFVTVlN0cmluZz4gZW1haWw7CiAg
ICAgc2VxdWVuY2U8VVNWU3RyaW5nPiB0ZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaAppbmRleCBjNjExYjk4NzVi
YmIyMmU2MWUwNGFlMGNiMWI5NWY0ODk4YWU1NjE2Li45MGE1MjE3NjZhNTk3MDIzMWJlOGVhMDg3
ZDYzYjQ0MmZhNTJkYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRh
Y3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y29udGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmgKQEAgLTI1LDggKzI1LDIzIEBACiAKICNw
cmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKwogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBlbnVtIGNsYXNzIENvbnRhY3RQcm9wZXJ0eSA6IHVpbnQ4X3QgeyBFbWFpbCwg
TmFtZSwgVGVsIH07CiAKIH0KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29udGFjdFByb3BlcnR5PiB7CisgICAgdXNpbmcgdmFsdWVz
ID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5LAorICAgICAg
ICBXZWJDb3JlOjpDb250YWN0UHJvcGVydHk6OkVtYWlsLAorICAgICAgICBXZWJDb3JlOjpDb250
YWN0UHJvcGVydHk6Ok5hbWUsCisgICAgICAgIFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6VGVs
CisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29u
dGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcAppbmRleCBhZjk5MWE1NTI3ZjhiZjY4
NmIxMWJjMjUzNWNkMWIyYTQ1MTBjNmY1Li4wOGE0NGJlMjQzMjQ5NGMyZTA5ODlhZjBiMWVkZjky
MzU4NmIzMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlj
a2VyL0NvbnRhY3RzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250
YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCkBAIC0yNiwxMiArMjYsMjEgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb250YWN0c01hbmFnZXIuaCIKIAorI2luY2x1ZGUg
IkNocm9tZS5oIgogI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiQ29udGFjdFBy
b3BlcnR5LmgiCisjaW5jbHVkZSAiQ29udGFjdHNSZXF1ZXN0RGF0YS5oIgogI2luY2x1ZGUgIkNv
bnRhY3RzU2VsZWN0T3B0aW9ucy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKKyNpbmNsdWRlICJKU0NvbnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJQYWdlLmgi
CisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFs
bG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYv
VVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNiArNTgsMTIgQEAgQ29udGFj
dHNNYW5hZ2VyOjpDb250YWN0c01hbmFnZXIoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiAKIENvbnRh
Y3RzTWFuYWdlcjo6fkNvbnRhY3RzTWFuYWdlcigpID0gZGVmYXVsdDsKIAorCitGcmFtZSogQ29u
dGFjdHNNYW5hZ2VyOjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmF2aWdhdG9yID8g
bV9uYXZpZ2F0b3ItPmZyYW1lKCkgOiBudWxscHRyOworfQorCiBOYXZpZ2F0b3IqIENvbnRhY3Rz
TWFuYWdlcjo6bmF2aWdhdG9yKCkKIHsKICAgICByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7CkBA
IC02Miw5ICs3Nyw0NCBAQCB2b2lkIENvbnRhY3RzTWFuYWdlcjo6Z2V0UHJvcGVydGllcyhSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZvaWQgQ29udGFjdHNNYW5hZ2VyOjpzZWxl
Y3QoY29uc3QgVmVjdG9yPENvbnRhY3RQcm9wZXJ0eT4mIHByb3BlcnRpZXMsIGNvbnN0IENvbnRh
Y3RzU2VsZWN0T3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNl
KQogewotICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0aWVzKTsKLSAgICBVTlVTRURfUEFSQU0ob3B0
aW9ucyk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKKyAgICBhdXRv
IGZyYW1lID0gbWFrZVJlZlB0cih0aGlzLT5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1lIHx8ICFm
cmFtZS0+aXNNYWluRnJhbWUoKSB8fCAhZnJhbWUtPmRvY3VtZW50KCkgfHwgIWZyYW1lLT5wYWdl
KCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFVc2VyR2VzdHVyZUlu
ZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9jb250YWN0UGlja2VySXNTaG93aW5nKSB7CisgICAgICAgIHByb21pc2Ut
PnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChwcm9wZXJ0aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBwcm9t
aXNlLT5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENv
bnRhY3RzUmVxdWVzdERhdGEgcmVxdWVzdERhdGE7CisgICAgcmVxdWVzdERhdGEubXVsdGlwbGUg
PSBvcHRpb25zLm11bHRpcGxlOworICAgIHJlcXVlc3REYXRhLnVybCA9IGZyYW1lLT5kb2N1bWVu
dCgpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBmb3IgKGF1dG8gcHJvcGVydHkgOiBwcm9wZXJ0aWVz
KQorICAgICAgICByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CisKKyAgICBt
X2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSB0cnVlOworCisgICAgZnJhbWUtPnBhZ2UoKS0+Y2hy
b21lKCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFtwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKSwgdGhpc10gKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5mbz4+JiYgaW5mbykgewor
ICAgICAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSBmYWxzZTsKKyAgICAgICAgaWYgKGlu
Zm8pIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMU2VxdWVuY2U8SURMRGljdGlv
bmFyeTxDb250YWN0SW5mbz4+PigqaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yIH0p
OworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuaAppbmRl
eCA5Mzc0MTIzNGIyZWVjNDMwZjRkYWU3YmI5MTA0OGY2Mzc0YTYyMjk0Li41ZWY5NTdkNTMwMjMx
MTYyZmU5ZWYyNWMwN2QyYzEzNWQyNzdlZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmgKQEAgLTMzLDYgKzMz
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xh
c3MgRnJhbWU7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKIGVudW0gY2xhc3MgQ29udGFjdFByb3BlcnR5
IDogdWludDhfdDsKQEAgLTQ1LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8Q29u
dGFjdHNNYW5hZ2VyPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAgICAgfkNvbnRhY3RzTWFuYWdlcigp
OwogCisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgTmF2aWdhdG9yKiBuYXZpZ2F0b3Io
KTsKIAogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsKQEAg
LTUzLDYgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDb250YWN0c01hbmFnZXIoTmF2
aWdhdG9yJik7CiAKKyAgICBib29sIG1fY29udGFjdFBpY2tlcklzU2hvd2luZyB7IGZhbHNlIH07
CiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRh
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVz
dERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hOGUzMjFkOWVlODBiM2MyY2M2NTc1ZjQ2YzYxZWU4NzRhNDE1
NTBjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBp
Y2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29udGFjdFByb3BlcnR5LmgiCisjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQ29udGFjdHNS
ZXF1ZXN0RGF0YSB7CisgICAgT3B0aW9uU2V0PENvbnRhY3RQcm9wZXJ0eT4gcHJvcGVydGllczsK
KyAgICBib29sIG11bHRpcGxlIHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgdXJsOworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDb250YWN0c1JlcXVlc3REYXRh
PiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
Q29udGFjdHNSZXF1ZXN0RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBwcm9wZXJ0aWVzOworICAgIGVuY29kZXIgPDwgbXVsdGlwbGU7CisgICAg
ZW5jb2RlciA8PCB1cmw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxD
b250YWN0c1JlcXVlc3REYXRhPiBDb250YWN0c1JlcXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxPcHRpb25TZXQ8Q29udGFjdFByb3BlcnR5Pj4gcHJv
cGVydGllczsKKyAgICBkZWNvZGVyID4+IHByb3BlcnRpZXM7CisgICAgaWYgKCFwcm9wZXJ0aWVz
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8Ym9vbD4gbXVs
dGlwbGU7CisgICAgZGVjb2RlciA+PiBtdWx0aXBsZTsKKyAgICBpZiAoIW11bHRpcGxlKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8U3RyaW5nPiB1cmw7Cisg
ICAgZGVjb2RlciA+PiB1cmw7CisgICAgaWYgKCF1cmwpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnByb3BlcnRpZXMsICptdWx0aXBsZSwgKnVybCB9fTsK
K30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGZkNzQwMzgzMDVmNjE5OGQ5MThlMzY4YTQ0NGZkZDc4MmFkZjlhYjcuLmIz
ODEzNGM2NDc3OWFhYzdhMjJmNDUxNjdkY2U3OTRkMGU1ZTJmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTUwOTksNiArNTA5
OSw3IEBACiAJCUU0RThCNEY1MjE2Qjk1NjUwMEI4ODM0RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU4
QjRGMjIxNkI4QjYwMDBCODgzNEQgLyogRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0RTk0RDYxMjJGRjE1
OEEwMEREMTkxRiAvKiBDb21wbGV4TGluZUxheW91dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBMUFDNzgyMkZBRkQ1MDAwMTdCNzVCIC8qIENvbXBs
ZXhMaW5lTGF5b3V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTRGOUVFRjMxNTZEQTAwNzAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRGOUVFRjEx
NTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU1MDYyMDg0MjU0MDkxOUMwMEM0MzA5
MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA4MzI1NDA5MTlCMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1
ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUU1MTY2OTkxMjBGRjk5MTgwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJyb3dAMngucG5nIGlu
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTE2Njk4RjIw
RkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyAqLzsgfTsKIAkJRTUxNzY3
MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTE3NjcwMjIwQjg4
QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTFENkExRjI0RTFFMjU1
MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxRDZBMUQyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVU
aW1lRmllbGRzU3RhdGUuaCAqLzsgfTsKQEAgLTE2MTExLDYgKzE2MTEyLDcgQEAKIAkJRTRGOUVF
RjAxNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVT
aGVldENvbnRlbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlU2hl
ZXRDb250ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEZCNEIzNTIzOUJF
QjEwMDAzQzMzNkEgLyogTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MDYyMDgzMjU0MDkxOUIwMEM0MzA5MSAvKiBDb250YWN0
c1JlcXVlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRhY3RzUmVxdWVzdERhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExp
c3RCdXR0b25BcnJvd0AyeC5wbmcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAiTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAv
KiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhTGlz
dFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NTFBODFERTE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJmb3JtYW5jZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZvcm1hbmNlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NjAyLDYgKzI4NjA0LDcgQEAKIAkJCQlFNTk2REQyRTI1MTkw
M0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmNwcCAqLywKIAkJCQlFNTk2REQyRDI1MTkw
M0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmggKi8sCiAJCQkJRTU5NkREMkYyNTE5MDNF
RjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5pZGwgKi8sCisJCQkJRTUwNjIwODMyNTQwOTE5
QjAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCAqLywKIAkJCQlFNTk2REQzMzI1MTkw
NDE0MDBDMjc1QTcgLyogQ29udGFjdHNTZWxlY3RPcHRpb25zLmggKi8sCiAJCQkJRTU5NkREMzQy
NTE5MDQxNDAwQzI3NUE3IC8qIENvbnRhY3RzU2VsZWN0T3B0aW9ucy5pZGwgKi8sCiAJCQkJRTU5
NkREMjgyNTE5MDNEMjAwQzI3NUE3IC8qIE5hdmlnYXRvcitDb250YWN0cy5pZGwgKi8sCkBAIC0z
MDkxMCw2ICszMDkxMyw3IEBACiAJCQkJRTU5NkRENUQyNTFCQjA4MjAwQzI3NUE3IC8qIENvbnRh
Y3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTk2REQ1ODI1MUJBQzRBMDBDMjc1QTcgLyog
Q29udGFjdFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTk2REQzMDI1MTkwM0VGMDBD
Mjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNTA2MjA4NDI1
NDA5MTlDMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTU5NkREMzUyNTE5MDQxNDAwQzI3NUE3IC8qIENvbnRhY3RzU2VsZWN0T3B0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTgxODcyMUMwOTc3RDNDMDAwNTgyNkQ5IC8qIENvbnRhaW5lck5v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTE0NzA4MTExMDJCMTUwMEVFQzBGMyAvKiBDb250
YWluZXJOb2RlQWxnb3JpdGhtcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
aW5kZXggZGIwNzBiY2M3ZTI2NjA0NzdmYzBjNmMyNTgwYTU4YmQxMWVjMTE4OS4uN2M3MTAwMTU1
NzI0MTdlZjBiMzY5Y2RkNzkxOTBlZGI4YzVkMTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApA
QCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogCiAjaW5jbHVkZSAiQ2hyb21l
Q2xpZW50LmgiCisjaW5jbHVkZSAiQ29udGFjdEluZm8uaCIKKyNpbmNsdWRlICJDb250YWN0c1Jl
cXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKQEAgLTQ3Miw2ICs0NzQsMTEgQEAgdm9pZCBD
aHJvbWU6OnNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwg
Q29tcGxldGlvbkhhbmRsZXIKICAgICBtX2NsaWVudC5zaG93U2hhcmVTaGVldChzaGFyZURhdGEs
IFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBDaHJvbWU6OnNob3dDb250YWN0UGlja2Vy
KGNvbnN0IENvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5mbz4+JiYpPiYmIGNhbGxiYWNrKQorewor
ICAgIG1fY2xpZW50LnNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhLCBXVEZNb3ZlKGNhbGxi
YWNrKSk7Cit9CisKIHZvaWQgQ2hyb21lOjpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7CiAgICAgbV9jbGll
bnQubG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGxvYWRlcik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApp
bmRleCBhNWNjMWIxM2JiMDAyMjE3MzJjNzY5ZDllNDRjMmE3MjQ3MGUzM2YzLi4wNmU1MzQyNmNm
MzczNGVjZDRlNGE2YWJhMWM3OTE1Y2Q3ZDc2Mzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTU3
LDYgKzU3LDggQEAgY2xhc3MgUG9wdXBNZW51Q2xpZW50OwogY2xhc3MgUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXI7CiBjbGFzcyBTZWFyY2hQb3B1cE1lbnU7CiAKK3N0cnVjdCBDb250YWN0SW5mbzsKK3N0
cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRl
cnM7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIHN0cnVjdCBWaWV3cG9ydEFyZ3Vt
ZW50czsKQEAgLTE2MSw2ICsxNjMsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5l
bChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChTaGFyZURh
dGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAg
dm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBDb250YWN0c1JlcXVlc3REYXRhJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4mJik7CiAg
ICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25M
b2FkZXImKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaXNhYmxlZEFkYXB0YXRpb25zRGlkQ2hhbmdl
KGNvbnN0IE9wdGlvblNldDxEaXNhYmxlZEFkYXB0YXRpb25zPiYpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTA5NjczMmVjNWEyM2EwNDk4Mjk4YTA1MmVlYmU1MGFi
MTQwOTJhOC4uYTZmODJmNTE3OTZlNWE4NThlM2JiZjA4YjU0MGJiZmI2NzQ4ZWI4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXV0b3BsYXlFdmVudC5oIgorI2luY2x1ZGUgIkNv
bnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRh
aWxzLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25Pck1vdGlvblBlcm1pc3Npb25TdGF0
ZS5oIgpAQCAtMTEzLDYgKzExNCw3IEBAIGNsYXNzIFdpZGdldDsKIGNsYXNzIE1lZGlhUGxheWVy
UmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrOwogI2VuZGlmCiAKK3N0cnVjdCBD
b250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CiBzdHJ1
Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBHcmFwaGljc0RldmljZUFkYXB0
ZXI7CkBAIC0zMDIsNiArMzA0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9w
ZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93
U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKGZhbHNlKTsgfQorICAgIHZpcnR1
YWwgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBDb250YWN0c1JlcXVlc3REYXRhJiwgV1RG
OjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5mbz4+JiYp
PiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFdURjo6bnVsbG9wdCk7IH0KICAgICAKICAgICAvLyBB
c3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFt
ZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBGaWxlSWNvbkxvYWRlciYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAppbmRleCA1YmVmYzRkZjIwMDFmODdhOWE3ZWViNGQ2ODdmMTNlOTQ2ZDcwM2YzLi5hMDZjNDM1
MmNhMTA3M2NkMzM3NGY5MGRlZGU1Mjk4NWYyNzhlNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCkBAIC0zNSw2ICszNSw4IEBACiAjaW5jbHVkZSAiV2ViUG9wdXBNZW51UHJv
eHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ29udGFjdElu
Zm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRhY3RzUmVxdWVzdERhdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CkBAIC0yNTMsNiArMjU1LDcg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhhbmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdl
UHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIEFQSTo6T3BlblBh
bmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3Jl
OjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChi
b29sKT4mJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRhY3RQ
aWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcihXVEY6Om51bGxvcHQpOyB9
CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggZGY0ZmJmNjRiZTc2MzhkYWZkNDVjMmJlOTQ5MWVmZjdiM2MzNTJiYy4uZDg4NTUxYWQy
MWIzM2Q4NTI3YmNiMDRiMWExMDQyNGE0MmEzMjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTUwLDYgKzU5NTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dTaGFyZVNoZWV0KGNvbnN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0
YSwgQ29tcGwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcywgc2hhcmVEYXRhLmZpbGVzLmlz
RW1wdHkoKSB8fCBtX3ByZWZlcmVuY2VzLT53ZWJTaGFyZUZpbGVBUElFbmFibGVkKCkpOwogICAg
IHBhZ2VDbGllbnQoKS5zaG93U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb250YWN0UGlja2VyKGNv
bnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3By
ZWZlcmVuY2VzLT5jb250YWN0UGlja2VyQVBJRW5hYmxlZCgpKTsKKyAgICBwYWdlQ2xpZW50KCku
c2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKK30KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGU0N2NiNWU0MWYz
OWRkYjc5ZmQ1MWQ3NTFmOTNhZWYzZGNiYzI1NWEuLmM1NDMyYjM4NTYxYjdjYTYxYmEwZWNhMDc4
OTQ1MDlhN2EyODg0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBA
IC0yNDMsNiArMjQzLDggQEAgc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBzdHJ1Y3QgQXR0
cmlidXRlZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0
IENvbXBvc2l0aW9uSGlnaGxpZ2h0Oworc3RydWN0IENvbnRhY3RJbmZvOworc3RydWN0IENvbnRh
Y3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBE
YXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzOwpAQCAtMTk0OSw2ICsxOTUxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJ1bk9wZW5Q
YW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgY29uc3QgV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAgIGJvb2wgZGlkQ2hvb3NlRmlsZXNGb3JP
cGVuUGFuZWxXaXRoSW1hZ2VUcmFuc2NvZGluZyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVVS
THMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbGxvd2VkTUlNRVR5cGVzKTsKICAgICB2b2lkIHNo
b3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNob3dDb250YWN0UGlja2Vy
KGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKTsKICAgICB2
b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3Vy
cmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnRE
YXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGFEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRp
ZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
RGVsYXllZFJlcGx5JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQyMTQ1ZjJjNWMwNGIzMzhhYjA0MWZiMDZkNjk2ODZjMmY1
NzkxNTIuLjA5NDRhOTAzOGExYWIxNzg5ZmRlY2Y4NmIxMDdlMjdmMTMwMDEzZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTY5
LDYgKzY5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBQYWdlRGlkU2Nyb2xs
KCkKICAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0
cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBzdHJ1Y3QgV2ViQ29yZTo6Rmls
ZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAgIFNob3dTaGFyZVNoZWV0KHN0cnVjdCBX
ZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YSkgLT4gKGJvb2wgZ3JhbnRl
ZCkgQXN5bmMKKyAgICBTaG93Q29udGFjdFBpY2tlcihzdHJ1Y3QgV2ViQ29yZTo6Q29udGFjdHNS
ZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkgLT4gKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250
YWN0SW5mbz4+IGluZm8pIEFzeW5jCiAgICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90
aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVy
VGh1bWIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDc2YzBkMWZjOGFhMDkwZGRlNDYyY2Iy
MWUyNGEyMzRmMTAwYWNmZTEuLjcwOGE1ZjI5Y2JjOGFlZjViNWNlNTE4NmUyZmQzZjI3M2E4N2Y5
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04MjIsNiArODIyLDExIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFy
ZURhdGEsIENvbXBsZXRpCiAgICAgbV9wYWdlLnNob3dTaGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RG
TW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd0NvbnRhY3RQ
aWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFj
dEluZm8+PiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3BhZ2Uuc2hvd0NvbnRhY3RQaWNrZXIo
cmVxdWVzdERhdGEsIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmls
ZUljb25Mb2FkZXImIGxvYWRlcikKIHsKICAgICBsb2FkZXIuaWNvbkxvYWRlZChjcmVhdGVJY29u
Rm9yRmlsZXMoZmlsZW5hbWVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDZmMGU5YWU1YmZh
NTRhMTM3ZTNiYjQyNTYzZTJiYWMxNzI1ZjZjOC4uMjNjYzQwM2E3YmFhZWQ1ODYzMjYxZmQ1NzJm
ZWNkZDczZDI1ZGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMjAwLDYgKzIwMCw3IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6
OkZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChXZWJDb3JlOjpT
aGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBmaW5hbDsKKyAgICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNv
bnRhY3RzUmVxdWVzdERhdGEmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgbG9h
ZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyJikgZmluYWw7CiAKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggMjYwYTBlMmFjYjRiZTllYTdiM2QwZjNhYmNmZDA2MDJmNTE0NzJiNS4uZDY0OGMzYzll
YzQ5N2E2NmI3NGE5YThjNDdhMDcwNDU1NzUxNGUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0OCw2ICsxNDgsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvQmFja0ZvcndhcmRDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJv
bWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZNLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9D
b250YWN0c1JlcXVlc3REYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVBhc3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4KQEAgLTY4OTQsNiArNjg5NSwxMSBAQCB2b2lkIFdlYlBh
Z2U6OnNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgV1RG
OjpDb21wbGV0aW9uSAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaG93U2hhcmVTaGVldChXVEZNb3ZlKHNoYXJlRGF0YSkpLCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6
Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
T3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYgY2FsbGJhY2spCit7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dDb250
YWN0UGlja2VyKHJlcXVlc3REYXRhKSwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiBXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhj
b25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7CiAgICAgYXV0byByZXNwb25zZSA9IFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWZmMzVmYjA5MzZhNWM3
NzE2YWE0YzAxMmQyNmUwNzNiNDQ3OGU5NS4uMDJhNWZhZTM3NjIyNzI0MjFkOTg2NzM0NTNiMWQw
N2M4ZTljNjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMjEzLDYgKzIxMyw4IEBAIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEJh
Y2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3QgQ29tcG9zaXRpb25IaWdobGlnaHQ7CiBz
dHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CitzdHJ1Y3QgQ29udGFjdEluZm87CitzdHJ1Y3Qg
Q29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVj
dCBFbGVtZW50Q29udGV4dDsKIHN0cnVjdCBHbG9iYWxGcmFtZUlkZW50aWZpZXI7CkBAIC0xMjQw
LDYgKzEyNDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2Vi
Q29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpOwogICAgIAogI2lmIEVOQUJM
RShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdm9pZCBpbnNlcnRBdHRhY2htZW50KGNvbnN0IFN0
cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUsIENhbGxiYWNrSUQpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDI1Y2RlOTFkM2FkZDkzYjgyMDgzY2E4ZjdjNWMyMTE4M2IxMGIzMGIuLmU0NzMzODhk
Yzg1MTJiYzQwYjMzMGFjNzhlNDRiNjc2MTc4YTZmNTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAor
MjAyMC0xMC0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gSW1wbGVtZW50IENvbnRhY3RzTWFuYWdlci5zZWxlY3Qo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MDUw
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjE4Nj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgZmFpbHVyZSBjYXNl
cyBvZiB0aGUgQVBJLiBOb3RlIHRoYXQgc3VjY2VzcyBjYXNlcyBhcmUKKyAgICAgICAgdW50ZXN0
ZWQgc2luY2Ugbm8gcGxhdGZvcm1zIGN1cnJlbnRseSBkaXNwbGF5IGEgcGlja2VyIFVJLCBhbmQg
dGhlCisgICAgICAgIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgdGhlIHByb21pc2Ugc2hvdWxk
IGZhaWwgaW4gdGhpcyBjYXNlLiBUaGUKKyAgICAgICAgc3VjY2VzcyB0ZXN0IGNhc2VzIHdpbGwg
YmUgYWRkZWQgb25jZSB0aGUgVUkgaXMgaW1wbGVtZW50ZWQgZm9yIGlPUy4KKworICAgICAgICAq
IGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9w
dGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250
YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1ub24tbWFpbi1mcmFtZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC1ub24tbWFpbi1mcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVz
ZXItZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0
cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL3Jlc291cmNlcy9jb250YWN0cy1zZWxlY3Qt
aWZyYW1lLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEwLTIwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVy
dGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBQcmV2ZW50IHByZXNlbnRhdGlvbiBvZiBp
bnB1dCBwZXJpcGhlcmFscyB3aGVuIGZvY3VzaW5nIGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbGlk
YXRpb24gbWVzc2FnZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9w
ZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjJhZDFkZWQ2NTg3
YTFkYzE3NjczZmJjOWJlODU5NTgwZTZlOGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQt
b3B0aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzNCBAQAorVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBpbnZhbGlkIHByb3BlcnRp
ZXMgb3Igb3B0aW9ucyBhcmUgc3BlY2lmaWVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCkuCitQQVNTIEludmFsaWQg
cHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBzcGVjaWZpZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1l
IGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlzaGVkU3VidGVzdCBiZWNhbWUgdHJ1ZQorCitDYWxs
aW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52YWxpZCBwcm9wZXJ0aWVz
IGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIlR5cGVF
cnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisKK0NhbGxpbmcgbmF2aWdh
dG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29yIG9w
dGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgorUEFT
UyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFj
dHMuc2VsZWN0KCkuCitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBzcGVj
aWZpZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlzaGVk
U3VidGVzdCBiZWNhbWUgdHJ1ZQorCitDYWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qo
KS4KK1BBU1MgSW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BB
U1MgZXhjZXB0aW9uLm5hbWUgaXMgIlR5cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJl
Y2FtZSB0cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorU2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVy
dGllcy1hbmQtb3B0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUzYWU5YWY5YTQ5YmI2MTYwMDg2YTJl
OTY2YzFhZWQ1YWYxMjRkODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0
bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxo
dG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICBmaW5pc2hlZFN1YnRlc3QgPSBmYWxzZTsKKwor
ICAgICAgICBhc3luYyBmdW5jdGlvbiB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0Fu
ZE9wdGlvbnMocHJvcGVydGllcywgb3B0aW9ucyA9IHt9KQorICAgICAgICB7CisgICAgICAgICAg
ICBmaW5pc2hlZFN1YnRlc3QgPSBmYWxzZTsKKyAgICAgICAgICAgIGRlYnVnKCJDYWxsaW5nIG5h
dmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4iKTsKKworICAgICAgICAgICAgY29uc3QgY29udGFj
dHNCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFjdHMiKTsKKyAgICAgICAg
ICAgIGNvbnRhY3RzQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4g
eworICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0IG5hdmln
YXRvci5jb250YWN0cy5zZWxlY3QocHJvcGVydGllcywgb3B0aW9ucyk7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIm5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qgc3VjY2VlZGVkIHdp
dGggaW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zLiIpOworICAgICAgICAgICAgICAg
IH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAgICB3aW5kb3cuZXhjZXB0
aW9uID0gZXhjZXB0aW9uOworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJJbnZhbGlk
IHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLiIpOworICAgICAgICAgICAgICAg
ICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4Y2VwdGlvbi5uYW1lIiwgIlR5cGVFcnJvciIp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZpbmlzaGVkU3VidGVzdCA9
IHRydWU7CisgICAgICAgICAgICB9LCB7IG9uY2U6IHRydWUgfSk7CisKKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb250YWN0c0J1dHRvbik7CisgICAgICAgICAg
ICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJlY29tZUVxdWFsKCJmaW5pc2hl
ZFN1YnRlc3QiLCAidHJ1ZSIsIHJlc29sdmUpKTsKKworICAgICAgICAgICAgZGVidWcoIiIpOwor
ICAgICAgICB9CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGludmFsaWQgcHJvcGVydGllcyBvciBvcHRpb25z
IGFyZSBzcGVjaWZpZWQuXG4iKTsKKworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2Vs
ZWN0V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKFtdKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RD
b250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbIkludmFsaWQiXSk7CisgICAg
ICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9wdGlvbnMo
IlN0cmluZyIpOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2VsZWN0V2l0aFByb3Bl
cnRpZXNBbmRPcHRpb25zKFsyM10pOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2Vs
ZWN0V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKFsibmFtZSIsICJlbWFpbCJdLCA1MCk7CisKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAg
PGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAgICAgPGJ1dHRvbiBpZD0iY29udGFjdHMiPlNo
b3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LW5vbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTMyZjRmZTI0ZWZkNDlk
MDVlNjIxYmQzYjhiMzFmZGFiZmRiYzIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LW5vbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQcm9taXNlIFJl
amVjdGlvbjogSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBz
dGF0ZS4KK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qg
ZmFpbHMgaWYgY2FsbGVkIGZyb20gYSBub24tbWFpbiBmcmFtZS4gQW4gSW52YWxpZFN0YXRlRXJy
b3Igc2hvdWxkIGJlIGxvZ2dlZCB0byB0aGUgY29uc29sZS4KKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1ub24tbWFpbi1mcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YmIwYjZlNjM2
MDIyZTI1NDMyOWY4MTI0YmQyNTcxOTczOTkzNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbApA
QCAtMCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBleHBlcmltZW50YWw6Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+
CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBu
YXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGNhbGxlZCBmcm9tIGEgbm9uLW1haW4g
ZnJhbWUuIEFuIEludmFsaWRTdGF0ZUVycm9yIHNob3VsZCBiZSBsb2dnZWQgdG8gdGhlIGNvbnNv
bGUuXG4iKTsKKworICAgICAgICAgICAgZnJhbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJp
ZnJhbWUiKTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGZy
YW1lKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3Jp
cHQ+CisgICAgPGJvZHkgb25sb2FkPXJ1blRlc3QoKT4KKyAgICAgICAgPGlmcmFtZSBzcmM9InJl
c291cmNlcy9jb250YWN0cy1zZWxlY3QtaWZyYW1lLmh0bWwiPjwvaWZyYW1lPgorICAgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRh
Y3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUwODMzNDMyM2UyYjhmNTY4ZjNlMzIxZjk0YTI2YjJh
ZDk5ZmUwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxl
Y3QgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIERpZCBub3QgcHJlc2VudCBjb250YWN0IHBpY2tlci4KK1BBU1MgZXhjZXB0aW9u
Lm5hbWUgaXMgIlNlY3VyaXR5RXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVz
dHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3MDk1NjQwODNiZjA1MWZjNjdiOGY1N2Q2Yzg1ZDFlMWFkMWIwNjAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQ
aWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDwvaGVh
ZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAg
ICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qg
cmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuIik7CisKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbIm5hbWUiLCAiZW1haWwi
LCAidGVsIl0pOworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByZXNlbnRlZCBjb250YWN0
IHBpY2tlciB3aXRob3V0IHVzZXIgZ2VzdHVyZS4iKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIHdpbmRvdy5leGNlcHRpb24gPSBleGNlcHRpb247
CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiRGlkIG5vdCBwcmVzZW50IGNvbnRhY3QgcGlj
a2VyLiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXhjZXB0aW9u
Lm5hbWUiLCAiU2VjdXJpdHlFcnJvciIpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
aW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9h
ZD1ydW5UZXN0KCk+PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29u
dGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNl
bnRpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZTlmMGJjNDg1MjkyMWE2ZWUzOTkyYzQ4
MjUyYTI5ZjFhYzcwYTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUtcHJlc2VudGluZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNl
bGVjdCBmYWlscyBpZiBhIGNvbnRhY3QgcGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVk
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgbm90IHByZXNlbnQg
Y29udGFjdCBwaWNrZXIgd2hpbGUgYW5vdGhlciBwaWNrZXIgd2FzIGJlaW5nIHByZXNlbnRlZC4K
K1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIkludmFsaWRTdGF0ZUVycm9yIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTaG93IGNvbnRhY3RzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LXdoaWxlLXByZXNlbnRpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYWQwOThjMmY2NTRjZDExMmQ3
NjI3Yzc2OWNjN2QzMDMzNmIzNDcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29u
dGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmcuaHRtbApAQCAtMCww
ICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBl
cmltZW50YWw6Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAg
PGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGEgY29udGFjdCBwaWNrZXIgaXMgYWxyZWFkeSBi
ZWluZyBkaXNwbGF5ZWQuIik7CisKKyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0
c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0b3IuY29udGFjdHMuc2Vs
ZWN0KFsibmFtZSIsICJlbWFpbCIsICJ0ZWwiXSk7CisgICAgICAgICAgICAgICAgICAgIGF3YWl0
IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoWyJuYW1lIiwgImVtYWlsIiwgInRlbCJdKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJlc2VudGVkIGNvbnRhY3QgcGlja2VyIHdo
aWxlIGFub3RoZXIgcGlja2VyIHdhcyBiZWluZyBwcmVzZW50ZWQuIik7CisgICAgICAgICAgICAg
ICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5leGNl
cHRpb24gPSBleGNlcHRpb247CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkRpZCBu
b3QgcHJlc2VudCBjb250YWN0IHBpY2tlciB3aGlsZSBhbm90aGVyIHBpY2tlciB3YXMgYmVpbmcg
cHJlc2VudGVkLiIpOworICAgICAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
ImV4Y2VwdGlvbi5uYW1lIiwgIkludmFsaWRTdGF0ZUVycm9yIik7CisgICAgICAgICAgICAgICAg
fQorCisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9KTsKKwor
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9u
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+
CisgICAgICAgIDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+Cisg
ICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNr
ZXIvcmVzb3VyY2VzL2NvbnRhY3RzLXNlbGVjdC1pZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL3Jlc291cmNlcy9jb250YWN0cy1zZWxlY3QtaWZyYW1lLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWMyYzhmOWEzN2ExYmJjMzlmMTg1ZTQ3YTlmMmFiZjI4ZGM1ZjE1OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL3Jlc291cmNlcy9jb250YWN0cy1z
ZWxlY3QtaWZyYW1lLmh0bWwKQEAgLTAsMCArMSw2IEBACis8YnV0dG9uIGlkPSdjb250YWN0cycg
c3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyc+U2hvdyBjb250YWN0
czwvYnV0dG9uPgorPHNjcmlwdD4KKyAgICBjb250YWN0cy5hZGRFdmVudExpc3RlbmVyKCdjbGlj
aycsIGFzeW5jICgpID0+IHsKKyAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dChbIm5hbWUiLCAiZW1haWwiXSk7CisgICAgfSk7Cis8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="428388"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412031</attachid>
            <date>2020-10-21 14:17:15 -0700</date>
            <delta_ts>2020-10-22 11:06:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218050-20201021171714.patch</filename>
            <type>text/plain</type>
            <size>41899</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRjZGY0MmEyNTM2NWY2
ZDQ0OGVjOGQzOWEzYmU0MTFlMDJlZjZhOS4uZDYxYjM3Y2E2NjlkN2UyZWIxNTY4YzQyZGE1MTkw
MzIwZDY4NGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIwLTEwLTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBJbXBsZW1lbnQgQ29udGFjdHNNYW5hZ2VyLnNlbGVjdCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgwNTAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBpcyB0aGUgaW50ZXJmYWNlIHRo
YXQgYWxsb3dzIGNsaWVudHMgdG8KKyAgICAgICAgcHJlc2VudCBhIGNvbnRhY3QgcGlja2VyLiBU
aGUgbWV0aG9kIHNob3VsZCBpbW1lZGlhdGVseSByZWplY3Qgd2hlbgorICAgICAgICBjYWxsZWQg
ZnJvbSBhIG5vbi1tYWluIGZyYW1lLCB3aGVuIGNhbGxlZCBvdXRzaWRlIHVzZXItaW50ZXJhY3Rp
b24gYW5kCisgICAgICAgIHdoZW4gY2FsbGVkIHdoaWxlIGEgY29udGFjdCBwaWNrZXIgaXMgYWxy
ZWFkeSBiZWluZyBkaXNwbGF5ZWQuCisgICAgICAgIEZ1cnRoZXJtb3JlLCB0aGUgcHJvbWlzZSBp
cyByZWplY3RlZCB3aGVuIHRoZSBzdXBwbGllZCBwcm9wZXJ0aWVzIGFyZQorICAgICAgICBlbXB0
eSBvciBpbnZhbGlkLgorCisgICAgICAgIEFmdGVyIHRoZSBjb25kaXRpb25zIG5lY2Vzc2FyeSBm
b3IgdGhlIFVJIHRvIGJlIHByZXNlbnRlZCBhcmUgdmVyaWZpZWQsCisgICAgICAgIENvbnRhY3Rz
TWFuYWdlci5zZWxlY3QoKSBjYWxscyBpbnRvIHRoZSBwYWdlJ3MgQ2hyb21lIHRvIGRpc3BsYXkg
dGhlCisgICAgICAgIHBpY2tlci4KKworICAgICAgICBTZWUgaHR0cHM6Ly93aWNnLmdpdGh1Yi5p
by9jb250YWN0LWFwaS9zcGVjLyNjb250YWN0cy1tYW5hZ2VyLXNlbGVjdAorICAgICAgICBmb3Ig
bW9yZSBpbmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sCisgICAgICAgICAg
ICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVz
ZXItZ2VzdHVyZS5odG1sCisgICAgICAgICAgICAgICBjb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3Qtd2hpbGUtcHJlc2VudGluZy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3Qt
cGlja2VyL0NvbnRhY3RJbmZvLmg6IEFkZGVkIGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIElQQy4K
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGFjdEluZm86OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0
LXBpY2tlci9Db250YWN0SW5mby5pZGw6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tl
ci9Db250YWN0UHJvcGVydHkuaDoKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OmZy
YW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RzTWFuYWdlcjo6c2VsZWN0KToK
KyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oOgorICAg
ICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oOiBBZGRl
ZC4KKworICAgICAgICBDb250YWN0c1JlcXVlc3REYXRhIGVuY2Fwc3VsYXRlcyB0aGUgaW5mb3Jt
YXRpb24gcmVxdWlyZWQgdG8gZGlzcGxheSBhCisgICAgICAgIHBpY2tlciBVSS4gVGhpcyBpbmNs
dWRlcyB0aGUgcmVxdWVzdGVkIHByb3BlcnRpZXMsIHRoZSBVUkwgb2YgdGhlCisgICAgICAgIHBy
ZXNlbnRpbmcgc2l0ZSwgYW5kIHdoZXRoZXIgbXVsdGlwbGUgY29udGFjdCBzZWxlY3Rpb24gc2hv
dWxkIGJlIGFsbG93ZWQuCisKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGE6
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhOjpk
ZWNvZGUpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNob3dD
b250YWN0UGlja2VyKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNob3dDb250
YWN0UGlja2VyKToKKwogMjAyMC0xMC0yMCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW2lPU10gUHJldmVudCBwcmVzZW50YXRpb24gb2YgaW5wdXQgcGVy
aXBoZXJhbHMgd2hlbiBmb2N1c2luZyBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWxpZGF0aW9uIG1l
c3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggMmI2YTc1NzMwMDRhYmI0YmI0ZDgwNjYyODAzNDQ5NDliODYxOTYz
ZC4uYjdlYjgwMTA2OTg2MzRhZmI0YWY3NWI0NmI3NjQwZWMxN2FlMGYzNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAyMC0xMC0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBs
ZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gSW1wbGVtZW50IENvbnRhY3Rz
TWFuYWdlci5zZWxlY3QoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE4MDUwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82OTg2MjE4Nj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgbmVj
ZXNzYXJ5IHBsdW1iaW5nIGluIG9yZGVyIGZvciB0aGUgVUlQcm9jZXNzIHRvIGRpc3BsYXkgYQor
ICAgICAgICBjb250YWN0IHBpY2tlciBhZnRlciBhIGNhbGwgdG8gQ29udGFjdHNNYW5hZ2VyLnNl
bGVjdCgpIGlzIG1hZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNob3dDb250YWN0UGlja2VyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oOgorCiAyMDIwLTEwLTIwICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBQcmV2ZW50IHByZXNlbnRhdGlvbiBvZiBpbnB1dCBwZXJpcGhl
cmFscyB3aGVuIGZvY3VzaW5nIGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbGlkYXRpb24gbWVzc2Fn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250
YWN0SW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0
SW5mby5oCmluZGV4IGVmZDRkNDNiZTVlYjU1ZGNmZDUwMGExN2Y1YWI5YTYyYzk3YzlmNzEuLjEy
ZmY1MTRlYWY1NGUzMWViNTgzYjRiMTk3YmQ0M2Y5NjBlZTcyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmgKQEAgLTI2LDYg
KzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTM0LDYgKzM1LDM4IEBAIHN0cnVjdCBDb250YWN0SW5mbyB7CiAgICAg
VmVjdG9yPFN0cmluZz4gbmFtZTsKICAgICBWZWN0b3I8U3RyaW5nPiBlbWFpbDsKICAgICBWZWN0
b3I8U3RyaW5nPiB0ZWw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPENvbnRhY3RJbmZvPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4KK3ZvaWQgQ29udGFjdEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbmFtZTsKKyAgICBlbmNvZGVyIDw8IGVtYWlsOworICAg
IGVuY29kZXIgPDwgdGVsOwogfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
Q29udGFjdEluZm8+IENvbnRhY3RJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7Cisg
ICAgaWYgKCFuYW1lKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9u
YWw8VmVjdG9yPFN0cmluZz4+IGVtYWlsOworICAgIGRlY29kZXIgPj4gZW1haWw7CisgICAgaWYg
KCFlbWFpbCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFZl
Y3RvcjxTdHJpbmc+PiB0ZWw7CisgICAgZGVjb2RlciA+PiB0ZWw7CisgICAgaWYgKCF0ZWwpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKm5hbWUsICplbWFp
bCwgKnRlbCB9fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbAppbmRleCAx
NjM3NzEyOWM4YmQxNDQ1NTUwNGIwYTk1MWQ2NjgzMjAzMDA1ZjIyLi4yMjlhYmZhMWRjNzUyNzgx
ODJiMzVkMWZmYTc0NDU4YjgzYmU0NDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbApAQCAtMjUsNyArMjUsOSBAQAog
CiAvLyBodHRwczovL3dpY2cuZ2l0aHViLmlvL2NvbnRhY3QtYXBpLwogCi1kaWN0aW9uYXJ5IENv
bnRhY3RJbmZvIHsKK1sKKyAgICBKU0dlbmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBD
b250YWN0SW5mbyB7CiAgICAgc2VxdWVuY2U8VVNWU3RyaW5nPiBuYW1lOwogICAgIHNlcXVlbmNl
PFVTVlN0cmluZz4gZW1haWw7CiAgICAgc2VxdWVuY2U8VVNWU3RyaW5nPiB0ZWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0
eS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVy
dHkuaAppbmRleCBjNjExYjk4NzViYmIyMmU2MWUwNGFlMGNiMWI5NWY0ODk4YWU1NjE2Li45MGE1
MjE3NjZhNTk3MDIzMWJlOGVhMDg3ZDYzYjQ0MmZhNTJkYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmgKQEAg
LTI1LDggKzI1LDIzIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1UcmFp
dHMuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIENvbnRhY3RQcm9wZXJ0
eSA6IHVpbnQ4X3QgeyBFbWFpbCwgTmFtZSwgVGVsIH07CiAKIH0KKworbmFtZXNwYWNlIFdURiB7
CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6Q29udGFjdFByb3BlcnR5
PiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29u
dGFjdFByb3BlcnR5LAorICAgICAgICBXZWJDb3JlOjpDb250YWN0UHJvcGVydHk6OkVtYWlsLAor
ICAgICAgICBXZWJDb3JlOjpDb250YWN0UHJvcGVydHk6Ok5hbWUsCisgICAgICAgIFdlYkNvcmU6
OkNvbnRhY3RQcm9wZXJ0eTo6VGVsCisgICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcApp
bmRleCBhZjk5MWE1NTI3ZjhiZjY4NmIxMWJjMjUzNWNkMWIyYTQ1MTBjNmY1Li4wOGE0NGJlMjQz
MjQ5NGMyZTA5ODlhZjBiMWVkZjkyMzU4NmIzMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCkBAIC0y
NiwxMiArMjYsMjEgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDb250YWN0c01h
bmFnZXIuaCIKIAorI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgi
CiAjaW5jbHVkZSAiQ29udGFjdFByb3BlcnR5LmgiCisjaW5jbHVkZSAiQ29udGFjdHNSZXF1ZXN0
RGF0YS5oIgogI2luY2x1ZGUgIkNvbnRhY3RzU2VsZWN0T3B0aW9ucy5oIgorI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJKU0NvbnRhY3RJbmZvLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3Iu
aCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIK
ICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25T
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDksNiArNTgsMTIgQEAgQ29udGFjdHNNYW5hZ2VyOjpDb250YWN0c01hbmFnZXIoTmF2aWdhdG9y
JiBuYXZpZ2F0b3IpCiAKIENvbnRhY3RzTWFuYWdlcjo6fkNvbnRhY3RzTWFuYWdlcigpID0gZGVm
YXVsdDsKIAorCitGcmFtZSogQ29udGFjdHNNYW5hZ2VyOjpmcmFtZSgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fbmF2aWdhdG9yID8gbV9uYXZpZ2F0b3ItPmZyYW1lKCkgOiBudWxscHRyOworfQor
CiBOYXZpZ2F0b3IqIENvbnRhY3RzTWFuYWdlcjo6bmF2aWdhdG9yKCkKIHsKICAgICByZXR1cm4g
bV9uYXZpZ2F0b3IuZ2V0KCk7CkBAIC02Miw5ICs3Nyw0NCBAQCB2b2lkIENvbnRhY3RzTWFuYWdl
cjo6Z2V0UHJvcGVydGllcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZvaWQg
Q29udGFjdHNNYW5hZ2VyOjpzZWxlY3QoY29uc3QgVmVjdG9yPENvbnRhY3RQcm9wZXJ0eT4mIHBy
b3BlcnRpZXMsIGNvbnN0IENvbnRhY3RzU2VsZWN0T3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0aWVzKTsK
LSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBv
cnRlZEVycm9yKTsKKyAgICBhdXRvIGZyYW1lID0gbWFrZVJlZlB0cih0aGlzLT5mcmFtZSgpKTsK
KyAgICBpZiAoIWZyYW1lIHx8ICFmcmFtZS0+aXNNYWluRnJhbWUoKSB8fCAhZnJhbWUtPmRvY3Vt
ZW50KCkgfHwgIWZyYW1lLT5wYWdlKCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsK
KyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9jb250YWN0UGlja2VySXNTaG93aW5n
KSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChwcm9wZXJ0aWVzLmlzRW1w
dHkoKSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIENvbnRhY3RzUmVxdWVzdERhdGEgcmVxdWVzdERhdGE7CisgICAg
cmVxdWVzdERhdGEubXVsdGlwbGUgPSBvcHRpb25zLm11bHRpcGxlOworICAgIHJlcXVlc3REYXRh
LnVybCA9IGZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBmb3IgKGF1dG8g
cHJvcGVydHkgOiBwcm9wZXJ0aWVzKQorICAgICAgICByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzLmFk
ZChwcm9wZXJ0eSk7CisKKyAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSB0cnVlOworCisg
ICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEs
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgdGhpc10gKE9wdGlvbmFsPFZlY3RvcjxDb250
YWN0SW5mbz4+JiYgaW5mbykgeworICAgICAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSBm
YWxzZTsKKyAgICAgICAgaWYgKGluZm8pIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8
SURMU2VxdWVuY2U8SURMRGljdGlvbmFyeTxDb250YWN0SW5mbz4+PigqaW5mbyk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0
aW9uIHsgVW5rbm93bkVycm9yIH0pOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RzTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9D
b250YWN0c01hbmFnZXIuaAppbmRleCA5Mzc0MTIzNGIyZWVjNDMwZjRkYWU3YmI5MTA0OGY2Mzc0
YTYyMjk0Li41ZWY5NTdkNTMwMjMxMTYyZmU5ZWYyNWMwN2QyYzEzNWQyNzdlZjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNN
YW5hZ2VyLmgKQEAgLTMzLDYgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
RGVmZXJyZWRQcm9taXNlOworY2xhc3MgRnJhbWU7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKIGVudW0g
Y2xhc3MgQ29udGFjdFByb3BlcnR5IDogdWludDhfdDsKQEAgLTQ1LDYgKzQ2LDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBSZWY8Q29udGFjdHNNYW5hZ2VyPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAg
ICAgfkNvbnRhY3RzTWFuYWdlcigpOwogCisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAg
TmF2aWdhdG9yKiBuYXZpZ2F0b3IoKTsKIAogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmKTsKQEAgLTUzLDYgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICBDb250YWN0c01hbmFnZXIoTmF2aWdhdG9yJik7CiAKKyAgICBib29sIG1fY29udGFjdFBpY2tl
cklzU2hvd2luZyB7IGZhbHNlIH07CiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+IG1fbmF2aWdhdG9y
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tl
ci9Db250YWN0c1JlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3Qt
cGlja2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDk5MDIxMTJlMjdkOWY5
ZjY4YTRjNDMzY2U1M2UyYzc4Y2Y3YzVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKQEAgLTAsMCAr
MSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29udGFjdFBy
b3BlcnR5LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGEgeworICAgIE9wdGlvblNldDxDb250YWN0UHJv
cGVydHk+IHByb3BlcnRpZXM7CisgICAgYm9vbCBtdWx0aXBsZSB7IGZhbHNlIH07CisgICAgU3Ry
aW5nIHVybDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
Q29udGFjdHNSZXF1ZXN0RGF0YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNs
YXNzIEVuY29kZXI+Cit2b2lkIENvbnRhY3RzUmVxdWVzdERhdGE6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgcHJvcGVydGllczsKKyAgICBlbmNvZGVy
IDw8IG11bHRpcGxlOworICAgIGVuY29kZXIgPDwgdXJsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorT3B0aW9uYWw8Q29udGFjdHNSZXF1ZXN0RGF0YT4gQ29udGFjdHNSZXF1ZXN0RGF0
YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8T3B0aW9uU2V0PENv
bnRhY3RQcm9wZXJ0eT4+IHByb3BlcnRpZXM7CisgICAgZGVjb2RlciA+PiBwcm9wZXJ0aWVzOwor
ICAgIGlmICghcHJvcGVydGllcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IE9wdGlvbmFsPGJvb2w+IG11bHRpcGxlOworICAgIGRlY29kZXIgPj4gbXVsdGlwbGU7CisgICAg
aWYgKCFtdWx0aXBsZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlv
bmFsPFN0cmluZz4gdXJsOworICAgIGRlY29kZXIgPj4gdXJsOworICAgIGlmICghdXJsKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpwcm9wZXJ0aWVzLCAq
bXVsdGlwbGUsICp1cmwgfX07Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZDc0MDM4MzA1ZjYxOThkOTE4ZTM2OGE0
NDRmZGQ3ODJhZGY5YWI3Li5iMzgxMzRjNjQ3NzlhYWM3YTIyZjQ1MTY3ZGNlNzk0ZDBlNWUyZjRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01MDk5LDYgKzUwOTksNyBAQAogCQlFNEU4QjRGNTIxNkI5NTY1MDBCODgzNEQgLyog
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTRFOEI0RjIyMTZCOEI2MDAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVz
Y3JpcHRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNEU5NEQ2MTIyRkYxNThBMDBERDE5MUYgLyogQ29tcGxleExpbmVMYXlvdXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTFBQzc4MjJGQUZE
NTAwMDE3Qjc1QiAvKiBDb21wbGV4TGluZUxheW91dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0RjlFRUYzMTU2REEwMDcwMEQyM0U3RSAvKiBT
dHlsZVNoZWV0Q29udGVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RjlFRUYxMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNTA2
MjA4NDI1NDA5MTlDMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUwNjIwODMyNTQwOTE5QjAwQzQz
MDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNTE2Njk5MTIwRkY5OTE4MDA5RDJDMjcgLyogTGlzdEJ1
dHRvbkFycm93QDJ4LnBuZyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTUxNjY5OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5w
bmcgKi87IH07CiAJCUU1MTc2NzAzMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rp
b25JbmZvcm1hdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTUxNzY3MDIyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9y
bWF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJRTUxRDZBMUYyNEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MUQ2QTFEMjRFMUUy
NTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggKi87IH07CkBAIC0xNjExMSw2ICsx
NjExMiw3IEBACiAJCUU0RjlFRUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVu
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENv
bnRlbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRD
NDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTdHlsZVNoZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTRGQjRCMzUyMzlCRUIxMDAwM0MzMzZBIC8qIExheW91dEludGVncmF0aW9uSW5saW5l
Q29udGVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNv
bnRlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNTA2MjA4MzI1NDA5MTlC
MDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250YWN0
c1JlcXVlc3REYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MTY2OThGMjBG
Rjk5MTYwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJyb3dAMngucG5nICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIkxpc3RC
dXR0b25BcnJvd0AyeC5wbmciOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE3Njcw
MjIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTUxQTgxREUxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFu
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5j
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODYwMiw2ICsyODYwNCw3IEBA
CiAJCQkJRTU5NkREMkUyNTE5MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5jcHAgKi8s
CiAJCQkJRTU5NkREMkQyNTE5MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5oICovLAog
CQkJCUU1OTZERDJGMjUxOTAzRUYwMEMyNzVBNyAvKiBDb250YWN0c01hbmFnZXIuaWRsICovLAor
CQkJCUU1MDYyMDgzMjU0MDkxOUIwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggKi8s
CiAJCQkJRTU5NkREMzMyNTE5MDQxNDAwQzI3NUE3IC8qIENvbnRhY3RzU2VsZWN0T3B0aW9ucy5o
ICovLAogCQkJCUU1OTZERDM0MjUxOTA0MTQwMEMyNzVBNyAvKiBDb250YWN0c1NlbGVjdE9wdGlv
bnMuaWRsICovLAogCQkJCUU1OTZERDI4MjUxOTAzRDIwMEMyNzVBNyAvKiBOYXZpZ2F0b3IrQ29u
dGFjdHMuaWRsICovLApAQCAtMzA5MTAsNiArMzA5MTMsNyBAQAogCQkJCUU1OTZERDVEMjUxQkIw
ODIwMEMyNzVBNyAvKiBDb250YWN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU5NkRENTgy
NTFCQUM0QTAwQzI3NUE3IC8qIENvbnRhY3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTU5NkREMzAyNTE5MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJRTUwNjIwODQyNTQwOTE5QzAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEu
aCBpbiBIZWFkZXJzICovLAogCQkJCUU1OTZERDM1MjUxOTA0MTQwMEMyNzVBNyAvKiBDb250YWN0
c1NlbGVjdE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFDMDk3N0QzQzAwMDU4
MjZEOSAvKiBDb250YWluZXJOb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUExNDcwODExMTAy
QjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IGRiMDcwYmNjN2UyNjYwNDc3ZmMwYzZjMjU4MGE1OGJk
MTFlYzExODkuLjdjNzEwMDE1NTcyNDE3ZWYwYjM2OWNkZDc5MTkwZWRiOGM1ZDE2M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTIzLDYgKzIzLDggQEAKICNpbmNsdWRlICJDaHJvbWUuaCIK
IAogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgiCisj
aW5jbHVkZSAiQ29udGFjdHNSZXF1ZXN0RGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC00NzIs
NiArNDc0LDExIEBAIHZvaWQgQ2hyb21lOjpzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFy
c2VkVVJMJiBzaGFyZURhdGEsIENvbXBsZXRpb25IYW5kbGVyCiAgICAgbV9jbGllbnQuc2hvd1No
YXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgQ2hyb21l
OjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYm
KT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX2NsaWVudC5zaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0
RGF0YSwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB2b2lkIENocm9tZTo6bG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9h
ZGVyKQogewogICAgIG1fY2xpZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggYTVjYzFiMTNiYjAwMjIxNzMyYzc2OWQ5ZTQ0YzJhNzI0
NzBlMzNmMy4uMDZlNTM0MjZjZjM3MzRlY2Q0ZTRhNmFiYTFjNzkxNWNkN2Q3NjM3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCkBAIC01Nyw2ICs1Nyw4IEBAIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNs
YXNzIFBvcHVwT3BlbmluZ09ic2VydmVyOwogY2xhc3MgU2VhcmNoUG9wdXBNZW51OwogCitzdHJ1
Y3QgQ29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBEYXRl
VGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBz
dHJ1Y3QgVmlld3BvcnRBcmd1bWVudHM7CkBAIC0xNjEsNiArMTYzLDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwogICAgIHZvaWQgc2hv
d1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOworICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNS
ZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPENvbnRh
Y3RJbmZvPj4mJik+JiYpOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJik7CiAKICAgICB2b2lkIGRpc3BhdGNoRGlzYWJsZWRB
ZGFwdGF0aW9uc0RpZENoYW5nZShjb25zdCBPcHRpb25TZXQ8RGlzYWJsZWRBZGFwdGF0aW9ucz4m
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGUwOTY3MzJlYzVhMjNh
MDQ5ODI5OGEwNTJlZWJlNTBhYjE0MDkyYTguLmE2ZjgyZjUxNzk2ZTVhODU4ZTNiYmYwOGI1NDBi
YmZiNjc0OGViODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjMsNiArMjMs
NyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkF1dG9wbGF5RXZl
bnQuaCIKKyNpbmNsdWRlICJDb250YWN0SW5mby5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgogI2lu
Y2x1ZGUgIkRhdGFiYXNlRGV0YWlscy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JN
b3Rpb25QZXJtaXNzaW9uU3RhdGUuaCIKQEAgLTExMyw2ICsxMTQsNyBAQCBjbGFzcyBXaWRnZXQ7
CiBjbGFzcyBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsK
ICNlbmRpZgogCitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVs
ZUxpc3RSZXN1bHRzOwogc3RydWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3Qg
R3JhcGhpY3NEZXZpY2VBZGFwdGVyOwpAQCAtMzAyLDYgKzMwNCw3IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhm
YWxzZSk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFj
dHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0
b3I8Q29udGFjdEluZm8+PiYmKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhXVEY6Om51bGxvcHQp
OyB9CiAgICAgCiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZv
ciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNWJlZmM0ZGYyMDAxZjg3YTlhN2VlYjRkNjg3ZjEz
ZTk0NmQ3MDNmMy4uYTA2YzQzNTJjYTEwNzNjZDMzNzRmOTBkZWRlNTI5ODVmMjc4ZTU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1
ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0NvbnRhY3RJbmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db250YWN0c1JlcXVl
c3REYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRWRpdG9yQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5o
PgpAQCAtMjUzLDYgKzI1NSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVS
dW5PcGVuUGFuZWwoV2ViUGFnZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5m
b0RhdGEmLCBBUEk6Ok9wZW5QYW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lclByb3h5KikgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvd1NoYXJl
U2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxl
dGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERh
dGEmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6
OkNvbnRhY3RJbmZvPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRs
ZXIoV1RGOjpudWxsb3B0KTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGRmNGZiZjY0YmU3NjM4ZGFmZDQ1YzJiZTk0OTFlZmY3
YjNjMzUyYmMuLmQ4ODU1MWFkMjFiMzNkODUyN2JjYjA0YjFhMTA0MjRhNDJhMzIyMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTk1MCw2ICs1OTUwLDEy
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRo
UGFyc2VkVVJMJiBzaGFyZURhdGEsIENvbXBsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3Ms
IHNoYXJlRGF0YS5maWxlcy5pc0VtcHR5KCkgfHwgbV9wcmVmZXJlbmNlcy0+d2ViU2hhcmVGaWxl
QVBJRW5hYmxlZCgpKTsKICAgICBwYWdlQ2xpZW50KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRh
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpz
aG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6
Q29udGFjdEluZm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBNRVNTQUdFX0NI
RUNLKG1fcHJvY2VzcywgbV9wcmVmZXJlbmNlcy0+Y29udGFjdFBpY2tlckFQSUVuYWJsZWQoKSk7
CisgICAgcGFnZUNsaWVudCgpLnNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CiAgICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRG
cmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBlNDdjYjVlNDFmMzlkZGI3OWZkNTFkNzUxZjkzYWVmM2RjYmMyNTVhLi5jNTQzMmIz
ODU2MWI3Y2E2MWJhMGVjYTA3ODk0NTA5YTdhMjg4NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMjQzLDYgKzI0Myw4IEBAIHN0cnVjdCBBcHBsaWNhdGlvbk1h
bmlmZXN0Owogc3RydWN0IEF0dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllcjsKIHN0cnVjdCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKK3N0cnVjdCBDb250YWN0
SW5mbzsKK3N0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlz
dFJlc3VsdHM7CiBzdHJ1Y3QgRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb247CiBzdHJ1Y3Qg
RGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKQEAgLTE5NDksNiArMTk1MSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUlu
Zm9EYXRhJiYsIGNvbnN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICBib29s
IGRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aEltYWdlVHJhbnNjb2RpbmcoY29uc3QgVmVj
dG9yPFN0cmluZz4mIGZpbGVVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWxsb3dlZE1JTUVU
eXBlcyk7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFX
aXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9p
ZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdElu
Zm8+PiYmKT4mJik7CiAgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxh
eU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdl
LCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhRGVsYXllZFJlcGx5
JiYpOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBT
dHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3Qg
dG90YWxCeXRlc05lZWRlZCwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YURlbGF5ZWRSZXBseSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0MjE0NWYyYzVjMDRiMzM4
YWIwNDFmYjA2ZDY5Njg2YzJmNTc5MTUyLi4wOTQ0YTkwMzhhMWFiMTc4OWZkZWNmODZiMTA3ZTI3
ZjEzMDAxM2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC02OSw2ICs2OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAgICAgUGFnZURpZFNjcm9sbCgpCiAgICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywg
c3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93
U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURh
dGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5jCisgICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0
IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEgcmVxdWVzdERhdGEpIC0+IChPcHRpb25hbDxW
ZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBpbmZvKSBBc3luYwogICAgIFByaW50RnJhbWUo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAg
UnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29y
ZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3NmMw
ZDFmYzhhYTA5MGRkZTQ2MmNiMjFlMjRhMjM0ZjEwMGFjZmUxLi43MDhhNWYyOWNiYzhhZWY1YjVj
ZTUxODZlMmZkM2YyNzNhODdmOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODIyLDYg
KzgyMiwxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRh
V2l0aFBhcnNlZFVSTCYgc2hhcmVEYXRhLCBDb21wbGV0aQogICAgIG1fcGFnZS5zaG93U2hhcmVT
aGVldChzaGFyZURhdGEsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVj
dG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgbV9wYWdl
LnNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7CiAgICAgbG9hZGVyLmlj
b25Mb2FkZWQoY3JlYXRlSWNvbkZvckZpbGVzKGZpbGVuYW1lcykpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDQ2ZjBlOWFlNWJmYTU0YTEzN2UzYmI0MjU2M2UyYmFjMTcyNWY2YzguLjIzY2M0MDNh
N2JhYWVkNTg2MzI2MWZkNTcyZmVjZGQ3M2QyNWRmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTIwMCw2ICsyMDAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1No
YXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJikgZmluYWw7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tl
cihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKSBm
aW5hbDsKICAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDdXJzb3IoY29u
c3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDI2MGEwZTJhY2I0YmU5ZWE3YjNkMGYzYWJjZmQwNjAy
ZjUxNDcyYjUuLmQ2NDhjM2M5ZWM0OTdhNjZiNzRhOWE4YzQ3YTA3MDQ1NTc1MTRlMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDgsNiAr
MTQ4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21tb25WTS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvQ29udGV4dE1lbnVDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFj
Y2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CkBAIC02ODk0LDYgKzY4
OTUsMTEgQEAgdm9pZCBXZWJQYWdlOjpzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2Vk
VVJMJiBzaGFyZURhdGEsIFdURjo6Q29tcGxldGlvbkgKICAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2hvd1NoYXJlU2hlZXQoV1RGTW92ZShzaGFyZURhdGEp
KSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNob3dDb250YWN0UGlj
a2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+
JiYpPiYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpTaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0RGF0YSksIFdURk1vdmUoY2FsbGJh
Y2spKTsKK30KKwogV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSBXZWJQYWdlOjpyZXF1
ZXN0RE9NUGFzdGVBY2Nlc3MoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewogICAg
IGF1dG8gcmVzcG9uc2UgPSBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRG
b3JHZXN0dXJlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmlu
ZGV4IDFmZjM1ZmIwOTM2YTVjNzcxNmFhNGMwMTJkMjZlMDczYjQ0NzhlOTUuLjAyYTVmYWUzNzYy
MjcyNDIxZDk4NjczNDUzYjFkMDdjOGU5YzY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTIxMyw2ICsyMTMsOCBAQCBzdHJ1Y3QgQXR0cmlidXRl
ZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0IENvbXBv
c2l0aW9uSGlnaGxpZ2h0Owogc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOworc3RydWN0IENv
bnRhY3RJbmZvOworc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgRGljdGF0aW9u
QWx0ZXJuYXRpdmU7CiBzdHJ1Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyOwpAQCAtMTI0MCw2ICsxMjQyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2
b2lkIHNob3dTaGFyZVNoZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHNob3dDb250
YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYm
KTsKICAgICAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZvaWQgaW5zZXJ0
QXR0YWNobWVudChjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYm
IGZpbGVTaXplLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRU
eXBlLCBDYWxsYmFja0lEKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNWNkZTkxZDNhZGQ5M2I4MjA4M2NhOGY3YzVjMjEx
ODNiMTBiMzBiLi5lNDczMzg4ZGM4NTEyYmM0MGIzMzBhYzc4ZTQ0YjY3NjE3OGE2ZjU5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMTAtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlA
YXBwbGUuY29tPgorCisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEltcGxlbWVudCBDb250
YWN0c01hbmFnZXIuc2VsZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxODA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIxODY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dHMgZm9yIGZhaWx1cmUgY2FzZXMgb2YgdGhlIEFQSS4gTm90ZSB0aGF0IHN1Y2Nlc3MgY2FzZXMg
YXJlCisgICAgICAgIHVudGVzdGVkIHNpbmNlIG5vIHBsYXRmb3JtcyBjdXJyZW50bHkgZGlzcGxh
eSBhIHBpY2tlciBVSSwgYW5kIHRoZQorICAgICAgICBzcGVjaWZpY2F0aW9uIHN0YXRlcyB0aGF0
IHRoZSBwcm9taXNlIHNob3VsZCBmYWlsIGluIHRoaXMgY2FzZS4gVGhlCisgICAgICAgIHN1Y2Nl
c3MgdGVzdCBjYXNlcyB3aWxsIGJlIGFkZGVkIG9uY2UgdGhlIFVJIGlzIGltcGxlbWVudGVkIGZv
ciBpT1MuCisKKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxp
ZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0
aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxl
Y3Qtbm9uLW1haW4tZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0
LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbDogQWRkZWQuCisgICAg
ICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVy
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbDogQWRkZWQuCisgICAgICAgICogY29u
dGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtd2hpbGUt
cHJlc2VudGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9yZXNvdXJj
ZXMvY29udGFjdHMtc2VsZWN0LWlmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0yMCAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gUHJldmVu
dCBwcmVzZW50YXRpb24gb2YgaW5wdXQgcGVyaXBoZXJhbHMgd2hlbiBmb2N1c2luZyBmb3JtIGNv
bnRyb2xzIHdpdGggYSB2YWxpZGF0aW9uIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9w
dGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGIyYWQxZGVkNjU4N2ExZGMxNzY3M2ZiYzliZTg1OTU4MGU2ZThkNgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZh
bGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzQgQEAK
K1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QgZmFpbHMg
aWYgaW52YWxpZCBwcm9wZXJ0aWVzIG9yIG9wdGlvbnMgYXJlIHNwZWNpZmllZC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLgor
UEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1YnRlc3Qg
YmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCkuCitQQVNT
IEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBzcGVjaWZpZWQuCitQQVNTIGV4Y2Vw
dGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlzaGVkU3VidGVzdCBiZWNhbWUgdHJ1
ZQorCitDYWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52YWxpZCBw
cm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9uLm5hbWUg
aXMgIlR5cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisKK0NhbGxp
bmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMg
YW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVy
cm9yIgorUEFTUyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0KCkuCitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0
aW9ucyBzcGVjaWZpZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNT
IGZpbmlzaGVkU3VidGVzdCBiZWNhbWUgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMt
YW5kLW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41M2Fl
OWFmOWE0OWJiNjE2MDA4NmEyZTk2NmMxYWVkNWFmMTI0ZDgwCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVy
dGllcy1hbmQtb3B0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBodG1sPiA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5h
YmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgZmluaXNoZWRT
dWJ0ZXN0ID0gZmFsc2U7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdENvbnRhY3RzU2Vs
ZWN0V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKHByb3BlcnRpZXMsIG9wdGlvbnMgPSB7fSkKKyAg
ICAgICAgeworICAgICAgICAgICAgZmluaXNoZWRTdWJ0ZXN0ID0gZmFsc2U7CisgICAgICAgICAg
ICBkZWJ1ZygiQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCkuIik7CisKKyAgICAg
ICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNv
bnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJj
bGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAg
ICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KHByb3BlcnRpZXMsIG9wdGlv
bnMpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJuYXZpZ2F0b3IuY29udGFjdHMu
c2VsZWN0IHN1Y2NlZWRlZCB3aXRoIGludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucy4i
KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAg
ICAgICAgd2luZG93LmV4Y2VwdGlvbiA9IGV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiSW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4i
KTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleGNlcHRpb24u
bmFtZSIsICJUeXBlRXJyb3IiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBmaW5pc2hlZFN1YnRlc3QgPSB0cnVlOworICAgICAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0p
OworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29udGFjdHNC
dXR0b24pOworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRC
ZWNvbWVFcXVhbCgiZmluaXNoZWRTdWJ0ZXN0IiwgInRydWUiLCByZXNvbHZlKSk7CisKKyAgICAg
ICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBpbnZhbGlkIHBy
b3BlcnRpZXMgb3Igb3B0aW9ucyBhcmUgc3BlY2lmaWVkLlxuIik7CisKKyAgICAgICAgICAgIGF3
YWl0IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbXSk7CisgICAg
ICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9wdGlvbnMo
WyJJbnZhbGlkIl0pOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2VsZWN0V2l0aFBy
b3BlcnRpZXNBbmRPcHRpb25zKCJTdHJpbmciKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RDb250
YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbMjNdKTsKKyAgICAgICAgICAgIGF3
YWl0IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbIm5hbWUiLCAi
ZW1haWwiXSwgNTApOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQor
ICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAgIDxidXR0
b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LW5vbi1tYWluLWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1ub24tbWFpbi1mcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTUzMmY0ZmUyNGVmZDQ5ZDA1ZTYyMWJkM2I4YjMxZmRhYmZkYmMyMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1ub24tbWFp
bi1mcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBV
bmhhbmRsZWQgUHJvbWlzZSBSZWplY3Rpb246IEludmFsaWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0
IGlzIGluIGFuIGludmFsaWQgc3RhdGUuCitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGNhbGxlZCBmcm9tIGEgbm9uLW1haW4gZnJhbWUu
IEFuIEludmFsaWRTdGF0ZUVycm9yIHNob3VsZCBiZSBsb2dnZWQgdG8gdGhlIGNvbnNvbGUuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0LW5vbi1tYWluLWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtbm9uLW1haW4tZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NGJiMGI2ZTYzNjAyMmUyNTQzMjlmODEyNGJkMjU3MTk3Mzk5MzcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LW5v
bi1tYWluLWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVk
PXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3Jp
cHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBjYWxs
ZWQgZnJvbSBhIG5vbi1tYWluIGZyYW1lLiBBbiBJbnZhbGlkU3RhdGVFcnJvciBzaG91bGQgYmUg
bG9nZ2VkIHRvIHRoZSBjb25zb2xlLlxuIik7CisKKyAgICAgICAgICAgIGZyYW1lID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaWZyYW1lIik7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LmFjdGl2YXRlRWxlbWVudChmcmFtZSk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAg
ICAgIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvY29udGFjdHMtc2VsZWN0LWlmcmFtZS5odG1sIj48
L2lmcmFtZT4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1
aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMDgzMzQzMjNlMmI4
ZjU2OGYzZTMyMWY5NGEyNmIyYWQ5OWZlMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZp
Z2F0b3IuY29udGFjdHMuc2VsZWN0IHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBEaWQgbm90IHByZXNlbnQgY29udGFjdCBwaWNr
ZXIuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJTZWN1cml0eUVycm9yIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1
cmUuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1
aXJlcy11c2VyLWdlc3R1cmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzA5NTY0MDgzYmYwNTFmYzY3Yjhm
NTdkNmM4NWQxZTFhZDFiMDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFj
dC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0w
LDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4
cGVyaW1lbnRhbDpDb250YWN0UGlja2VyQVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAg
ICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0
b3IuY29udGFjdHMuc2VsZWN0IHJlcXVpcmVzIGEgdXNlciBnZXN0dXJlLiIpOworCisgICAgICAg
ICAgICB0cnkgeworICAgICAgICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jb250YWN0cy5zZWxl
Y3QoWyJuYW1lIiwgImVtYWlsIiwgInRlbCJdKTsKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KCJQcmVzZW50ZWQgY29udGFjdCBwaWNrZXIgd2l0aG91dCB1c2VyIGdlc3R1cmUuIik7CisgICAg
ICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICB3aW5kb3cuZXhj
ZXB0aW9uID0gZXhjZXB0aW9uOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkRpZCBub3Qg
cHJlc2VudCBjb250YWN0IHBpY2tlci4iKTsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImV4Y2VwdGlvbi5uYW1lIiwgIlNlY3VyaXR5RXJyb3IiKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3Njcmlw
dD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPjwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMWU5ZjBi
YzQ4NTI5MjFhNmVlMzk5MmM0ODI1MmEyOWYxYWM3MGE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmct
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5h
dmlnYXRvci5jb250YWN0cy5zZWxlY3QgZmFpbHMgaWYgYSBjb250YWN0IHBpY2tlciBpcyBhbHJl
YWR5IGJlaW5nIGRpc3BsYXllZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgRGlkIG5vdCBwcmVzZW50IGNvbnRhY3QgcGlja2VyIHdoaWxlIGFub3RoZXIgcGlja2VyIHdh
cyBiZWluZyBwcmVzZW50ZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJJbnZhbGlkU3RhdGVF
cnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
U2hvdyBjb250YWN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LXdoaWxlLXByZXNlbnRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVzZW50aW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGFkMDk4YzJmNjU0Y2QxMTJkNzYyN2M3NjljYzdkMzAzMzZiMzQ3MQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC13aGlsZS1wcmVz
ZW50aW5nLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUg
XSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1
blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZl
cmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBhIGNvbnRhY3Qg
cGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVkLiIpOworCisgICAgICAgICAgICBjb25z
dCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOwor
ICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3lu
YyAoKSA9PiB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbmF2
aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbIm5hbWUiLCAiZW1haWwiLCAidGVsIl0pOworICAgICAg
ICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJl
bWFpbCIsICJ0ZWwiXSk7CisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByZXNlbnRl
ZCBjb250YWN0IHBpY2tlciB3aGlsZSBhbm90aGVyIHBpY2tlciB3YXMgYmVpbmcgcHJlc2VudGVk
LiIpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAg
ICAgICAgICB3aW5kb3cuZXhjZXB0aW9uID0gZXhjZXB0aW9uOworICAgICAgICAgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJEaWQgbm90IHByZXNlbnQgY29udGFjdCBwaWNrZXIgd2hpbGUgYW5vdGhl
ciBwaWNrZXIgd2FzIGJlaW5nIHByZXNlbnRlZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJleGNlcHRpb24ubmFtZSIsICJJbnZhbGlkU3RhdGVFcnJvciIp
OworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxl
bWVudChjb250YWN0c0J1dHRvbik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9k
eSBvbmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBj
b250YWN0czwvYnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL3Jlc291cmNlcy9jb250YWN0cy1zZWxlY3QtaWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9yZXNvdXJjZXMvY29udGFjdHMtc2VsZWN0
LWlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjMmM4ZjlhMzdhMWJiYzM5ZjE4NWU0N2E5ZjJhYmYy
OGRjNWYxNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9y
ZXNvdXJjZXMvY29udGFjdHMtc2VsZWN0LWlmcmFtZS5odG1sCkBAIC0wLDAgKzEsNiBAQAorPGJ1
dHRvbiBpZD0nY29udGFjdHMnIHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRleHQtYWxpZ246IGNl
bnRlcjsnPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKzxzY3JpcHQ+CisgICAgY29udGFjdHMuYWRk
RXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGF3YWl0IG5hdmln
YXRvci5jb250YWN0cy5zZWxlY3QoWyJuYW1lIiwgImVtYWlsIl0pOworICAgIH0pOworPC9zY3Jp
cHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412116</attachid>
            <date>2020-10-22 11:06:21 -0700</date>
            <delta_ts>2020-10-22 14:29:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218050-20201022140620.patch</filename>
            <type>text/plain</type>
            <size>39237</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNGNhMzA0ZmMzOWNk
MDk4MzkxNWY1NTEwMTkzNGFiNDQ4MTE4Mi4uNTc1YmRkOTMxMWU2ZDY1NzYxYTBhZWM3NTU4ZWNl
NzU0NzRhMmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIwLTEwLTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBJbXBsZW1lbnQgQ29udGFjdHNNYW5hZ2VyLnNlbGVjdCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgwNTAKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKSBpcyB0aGUgaW50ZXJmYWNlIHRo
YXQgYWxsb3dzIGNsaWVudHMgdG8KKyAgICAgICAgcHJlc2VudCBhIGNvbnRhY3QgcGlja2VyLiBU
aGUgbWV0aG9kIHNob3VsZCBpbW1lZGlhdGVseSByZWplY3Qgd2hlbgorICAgICAgICBjYWxsZWQg
ZnJvbSBhIHN1YmZyYW1lLCB3aGVuIGNhbGxlZCBvdXRzaWRlIHVzZXItaW50ZXJhY3Rpb24gYW5k
IHdoZW4KKyAgICAgICAgY2FsbGVkIHdoaWxlIGEgY29udGFjdCBwaWNrZXIgaXMgYWxyZWFkeSBi
ZWluZyBkaXNwbGF5ZWQuIEZ1cnRoZXJtb3JlLAorICAgICAgICB0aGUgcHJvbWlzZSBpcyByZWpl
Y3RlZCB3aGVuIHRoZSBzdXBwbGllZCBwcm9wZXJ0aWVzIGFyZSBlbXB0eSBvcgorICAgICAgICBp
bnZhbGlkLgorCisgICAgICAgIEFmdGVyIHRoZSBjb25kaXRpb25zIG5lY2Vzc2FyeSBmb3IgdGhl
IFVJIHRvIGJlIHByZXNlbnRlZCBhcmUgdmVyaWZpZWQsCisgICAgICAgIENvbnRhY3RzTWFuYWdl
ci5zZWxlY3QoKSBjYWxscyBpbnRvIHRoZSBwYWdlJ3MgQ2hyb21lIHRvIGRpc3BsYXkgdGhlCisg
ICAgICAgIHBpY2tlci4KKworICAgICAgICBTZWUgaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9jb250
YWN0LWFwaS9zcGVjLyNjb250YWN0cy1tYW5hZ2VyLXNlbGVjdAorICAgICAgICBmb3IgbW9yZSBp
bmZvcm1hdGlvbi4KKworICAgICAgICBUZXN0czogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sCisgICAgICAgICAgICAgICBj
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwK
KyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1zdWJmcmFtZS5o
dG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmg6IEFk
ZGVkIGVuY29kZXIgYW5kIGRlY29kZXIgZm9yIElQQy4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRh
Y3RJbmZvOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFjdEluZm86OmRl
Y29kZSk6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5pZGw6
CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OmZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRhY3RzTWFuYWdlcjo6c2VsZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL2NvbnRh
Y3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oOgorICAgICAgICAqIE1vZHVsZXMvY29udGFjdC1w
aWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oOiBBZGRlZC4KKworICAgICAgICBDb250YWN0c1Jl
cXVlc3REYXRhIGVuY2Fwc3VsYXRlcyB0aGUgaW5mb3JtYXRpb24gcmVxdWlyZWQgdG8gZGlzcGxh
eSBhCisgICAgICAgIHBpY2tlciBVSS4gVGhpcyBpbmNsdWRlcyB0aGUgcmVxdWVzdGVkIHByb3Bl
cnRpZXMsIHRoZSBVUkwgb2YgdGhlCisgICAgICAgIHByZXNlbnRpbmcgc2l0ZSwgYW5kIHdoZXRo
ZXIgbXVsdGlwbGUgY29udGFjdCBzZWxlY3Rpb24gc2hvdWxkIGJlIGFsbG93ZWQuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhOjpkZWNvZGUpOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNob3dDb250YWN0UGlja2VyKToKKyAgICAgICAg
KiBwYWdlL0Nocm9tZS5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNob3dDb250YWN0UGlja2VyKToKKwogMjAyMC0xMC0y
MCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
UHJldmVudCBwcmVzZW50YXRpb24gb2YgaW5wdXQgcGVyaXBoZXJhbHMgd2hlbiBmb2N1c2luZyBm
b3JtIGNvbnRyb2xzIHdpdGggYSB2YWxpZGF0aW9uIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmJiN2Vm
YzJjMTNlMzhiYmJmNzI3MDQyZTA0MzFiZDJjZTcyNzY0My4uMjk5ZWUzYjc1ODcxNmNmZGEyZDM4
ZjA3ZWNjYjIzZTkxZWE4ZjA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAyMC0xMC0y
MSAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRh
Y3QgUGlja2VyIEFQSV0gSW1wbGVtZW50IENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MDUwCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82OTg2MjE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0aGUgbmVjZXNzYXJ5IHBsdW1iaW5nIGluIG9yZGVy
IGZvciB0aGUgVUlQcm9jZXNzIHRvIGRpc3BsYXkgYQorICAgICAgICBjb250YWN0IHBpY2tlciBh
ZnRlciBhIGNhbGwgdG8gQ29udGFjdHNNYW5hZ2VyLnNlbGVjdCgpIGlzIG1hZGUuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0NvbnRhY3RQaWNrZXIpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNob3dDb250YWN0UGlja2VyKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorCiAyMDIwLTEwLTIwICBB
ZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBQcmV2
ZW50IHByZXNlbnRhdGlvbiBvZiBpbnB1dCBwZXJpcGhlcmFscyB3aGVuIGZvY3VzaW5nIGZvcm0g
Y29udHJvbHMgd2l0aCBhIHZhbGlkYXRpb24gbWVzc2FnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5oCmluZGV4IGVmZDRkNDNiZTVl
YjU1ZGNmZDUwMGExN2Y1YWI5YTYyYzk3YzlmNzEuLjEyZmY1MTRlYWY1NGUzMWViNTgzYjRiMTk3
YmQ0M2Y5NjBlZTcyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFj
dC1waWNrZXIvQ29udGFjdEluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRh
Y3QtcGlja2VyL0NvbnRhY3RJbmZvLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQog
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0LDYgKzM1
LDM4IEBAIHN0cnVjdCBDb250YWN0SW5mbyB7CiAgICAgVmVjdG9yPFN0cmluZz4gbmFtZTsKICAg
ICBWZWN0b3I8U3RyaW5nPiBlbWFpbDsKICAgICBWZWN0b3I8U3RyaW5nPiB0ZWw7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENvbnRhY3RJbmZvPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ29udGFj
dEluZm86OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwg
bmFtZTsKKyAgICBlbmNvZGVyIDw8IGVtYWlsOworICAgIGVuY29kZXIgPDwgdGVsOwogfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8Q29udGFjdEluZm8+IENvbnRhY3RJbmZv
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxWZWN0b3I8U3RyaW5n
Pj4gbmFtZTsKKyAgICBkZWNvZGVyID4+IG5hbWU7CisgICAgaWYgKCFuYW1lKQorICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8VmVjdG9yPFN0cmluZz4+IGVtYWls
OworICAgIGRlY29kZXIgPj4gZW1haWw7CisgICAgaWYgKCFlbWFpbCkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+PiB0ZWw7CisgICAg
ZGVjb2RlciA+PiB0ZWw7CisgICAgaWYgKCF0ZWwpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisKKyAgICByZXR1cm4ge3sgKm5hbWUsICplbWFpbCwgKnRlbCB9fTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250
YWN0LXBpY2tlci9Db250YWN0SW5mby5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRh
Y3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbAppbmRleCAxNjM3NzEyOWM4YmQxNDQ1NTUwNGIwYTk1
MWQ2NjgzMjAzMDA1ZjIyLi4yMjlhYmZhMWRjNzUyNzgxODJiMzVkMWZmYTc0NDU4YjgzYmU0NDk0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRh
Y3RJbmZvLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RJbmZvLmlkbApAQCAtMjUsNyArMjUsOSBAQAogCiAvLyBodHRwczovL3dpY2cuZ2l0aHVi
LmlvL2NvbnRhY3QtYXBpLwogCi1kaWN0aW9uYXJ5IENvbnRhY3RJbmZvIHsKK1sKKyAgICBKU0dl
bmVyYXRlVG9KU09iamVjdCwKK10gZGljdGlvbmFyeSBDb250YWN0SW5mbyB7CiAgICAgc2VxdWVu
Y2U8VVNWU3RyaW5nPiBuYW1lOwogICAgIHNlcXVlbmNlPFVTVlN0cmluZz4gZW1haWw7CiAgICAg
c2VxdWVuY2U8VVNWU3RyaW5nPiB0ZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaAppbmRleCBjNjExYjk4NzViYmIy
MmU2MWUwNGFlMGNiMWI5NWY0ODk4YWU1NjE2Li45MGE1MjE3NjZhNTk3MDIzMWJlOGVhMDg3ZDYz
YjQ0MmZhNTJkYjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3Qt
cGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29u
dGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmgKQEAgLTI1LDggKzI1LDIzIEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4KKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBlbnVtIGNsYXNzIENvbnRhY3RQcm9wZXJ0eSA6IHVpbnQ4X3QgeyBFbWFpbCwgTmFt
ZSwgVGVsIH07CiAKIH0KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6Q29udGFjdFByb3BlcnR5PiB7CisgICAgdXNpbmcgdmFsdWVzID0g
RW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5LAorICAgICAgICBX
ZWJDb3JlOjpDb250YWN0UHJvcGVydHk6OkVtYWlsLAorICAgICAgICBXZWJDb3JlOjpDb250YWN0
UHJvcGVydHk6Ok5hbWUsCisgICAgICAgIFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6VGVsCisg
ICAgPjsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFj
dC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29u
dGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcAppbmRleCBhZjk5MWE1NTI3ZjhiZjY4NmIx
MWJjMjUzNWNkMWIyYTQ1MTBjNmY1Li4yYWFjODdhMGU1N2YxNTAzOTQ0ZjViZGEyZWY1ODk1NmNi
MTg0N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2Vy
L0NvbnRhY3RzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0
LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCkBAIC0yNiwxMiArMjYsMjMgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJDb250YWN0c01hbmFnZXIuaCIKIAorI2luY2x1ZGUgIkNo
cm9tZS5oIgogI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiQ29udGFjdFByb3Bl
cnR5LmgiCisjaW5jbHVkZSAiQ29udGFjdHNSZXF1ZXN0RGF0YS5oIgogI2luY2x1ZGUgIkNvbnRh
Y3RzU2VsZWN0T3B0aW9ucy5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJKU0NvbnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNl
RGVmZXJyZWQuaCIKICNpbmNsdWRlICJOYXZpZ2F0b3IuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisj
aW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25TZXQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3
dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDksNiArNjAsMTIgQEAgQ29u
dGFjdHNNYW5hZ2VyOjpDb250YWN0c01hbmFnZXIoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiAKIENv
bnRhY3RzTWFuYWdlcjo6fkNvbnRhY3RzTWFuYWdlcigpID0gZGVmYXVsdDsKIAorCitGcmFtZSog
Q29udGFjdHNNYW5hZ2VyOjpmcmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmF2aWdhdG9y
ID8gbV9uYXZpZ2F0b3ItPmZyYW1lKCkgOiBudWxscHRyOworfQorCiBOYXZpZ2F0b3IqIENvbnRh
Y3RzTWFuYWdlcjo6bmF2aWdhdG9yKCkKIHsKICAgICByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7
CkBAIC02Miw5ICs3OSw0NCBAQCB2b2lkIENvbnRhY3RzTWFuYWdlcjo6Z2V0UHJvcGVydGllcyhS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiAKIHZvaWQgQ29udGFjdHNNYW5hZ2VyOjpz
ZWxlY3QoY29uc3QgVmVjdG9yPENvbnRhY3RQcm9wZXJ0eT4mIHByb3BlcnRpZXMsIGNvbnN0IENv
bnRhY3RzU2VsZWN0T3B0aW9ucyYgb3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewotICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0aWVzKTsKLSAgICBVTlVTRURfUEFSQU0o
b3B0aW9ucyk7Ci0gICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKKyAgICBh
dXRvIGZyYW1lID0gbWFrZVJlZlB0cih0aGlzLT5mcmFtZSgpKTsKKyAgICBpZiAoIWZyYW1lIHx8
ICFmcmFtZS0+aXNNYWluRnJhbWUoKSB8fCAhZnJhbWUtPmRvY3VtZW50KCkgfHwgIWZyYW1lLT5w
YWdlKCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFVc2VyR2VzdHVy
ZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IgfSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBpZiAobV9jb250YWN0UGlja2VySXNTaG93aW5nKSB7CisgICAgICAgIHByb21p
c2UtPnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGlmIChwcm9wZXJ0aWVzLmlzRW1wdHkoKSkgeworICAgICAgICBw
cm9taXNlLT5yZWplY3QoVHlwZUVycm9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IENvbnRhY3RzUmVxdWVzdERhdGEgcmVxdWVzdERhdGE7CisgICAgcmVxdWVzdERhdGEubXVsdGlw
bGUgPSBvcHRpb25zLm11bHRpcGxlOworICAgIHJlcXVlc3REYXRhLnVybCA9IGZyYW1lLT5kb2N1
bWVudCgpLT51cmwoKS5zdHJpbmcoKTsKKyAgICBmb3IgKGF1dG8gcHJvcGVydHkgOiBwcm9wZXJ0
aWVzKQorICAgICAgICByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CisKKyAg
ICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSB0cnVlOworCisgICAgZnJhbWUtPnBhZ2UoKS0+
Y2hyb21lKCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFtwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKSwgdGhpc10gKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5mbz4+JiYgaW5mbykg
eworICAgICAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSBmYWxzZTsKKyAgICAgICAgaWYg
KGluZm8pIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmU8SURMU2VxdWVuY2U8SURMRGlj
dGlvbmFyeTxDb250YWN0SW5mbz4+PigqaW5mbyk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9y
IH0pOworICAgIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuaApp
bmRleCA5Mzc0MTIzNGIyZWVjNDMwZjRkYWU3YmI5MTA0OGY2Mzc0YTYyMjk0Li41ZWY5NTdkNTMw
MjMxMTYyZmU5ZWYyNWMwN2QyYzEzNWQyNzdlZjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmgKQEAgLTMzLDYg
KzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwor
Y2xhc3MgRnJhbWU7CiBjbGFzcyBOYXZpZ2F0b3I7CiAKIGVudW0gY2xhc3MgQ29udGFjdFByb3Bl
cnR5IDogdWludDhfdDsKQEAgLTQ1LDYgKzQ2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8
Q29udGFjdHNNYW5hZ2VyPiBjcmVhdGUoTmF2aWdhdG9yJik7CiAgICAgfkNvbnRhY3RzTWFuYWdl
cigpOwogCisgICAgRnJhbWUqIGZyYW1lKCkgY29uc3Q7CiAgICAgTmF2aWdhdG9yKiBuYXZpZ2F0
b3IoKTsKIAogICAgIHZvaWQgZ2V0UHJvcGVydGllcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYmKTsK
QEAgLTUzLDYgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDb250YWN0c01hbmFnZXIo
TmF2aWdhdG9yJik7CiAKKyAgICBib29sIG1fY29udGFjdFBpY2tlcklzU2hvd2luZyB7IGZhbHNl
IH07CiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3RE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVx
dWVzdERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDk5MDIxMTJlMjdkOWY5ZjY4YTRjNDMzY2U1M2UyYzc4
Y2Y3YzVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0
LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQ29udGFjdFByb3BlcnR5LmgiCisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENvbnRhY3Rz
UmVxdWVzdERhdGEgeworICAgIE9wdGlvblNldDxDb250YWN0UHJvcGVydHk+IHByb3BlcnRpZXM7
CisgICAgYm9vbCBtdWx0aXBsZSB7IGZhbHNlIH07CisgICAgU3RyaW5nIHVybDsKKworICAgIHRl
bXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8Q29udGFjdHNSZXF1ZXN0RGF0
YT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IENvbnRhY3RzUmVxdWVzdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgcHJvcGVydGllczsKKyAgICBlbmNvZGVyIDw8IG11bHRpcGxlOworICAg
IGVuY29kZXIgPDwgdXJsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
Q29udGFjdHNSZXF1ZXN0RGF0YT4gQ29udGFjdHNSZXF1ZXN0RGF0YTo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8T3B0aW9uU2V0PENvbnRhY3RQcm9wZXJ0eT4+IHBy
b3BlcnRpZXM7CisgICAgZGVjb2RlciA+PiBwcm9wZXJ0aWVzOworICAgIGlmICghcHJvcGVydGll
cykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPGJvb2w+IG11
bHRpcGxlOworICAgIGRlY29kZXIgPj4gbXVsdGlwbGU7CisgICAgaWYgKCFtdWx0aXBsZSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFN0cmluZz4gdXJsOwor
ICAgIGRlY29kZXIgPj4gdXJsOworICAgIGlmICghdXJsKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpwcm9wZXJ0aWVzLCAqbXVsdGlwbGUsICp1cmwgfX07
Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCBmZDc0MDM4MzA1ZjYxOThkOTE4ZTM2OGE0NDRmZGQ3ODJhZGY5YWI3Li5i
MzgxMzRjNjQ3NzlhYWM3YTIyZjQ1MTY3ZGNlNzk0ZDBlNWUyZjRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MDk5LDYgKzUw
OTksNyBAQAogCQlFNEU4QjRGNTIxNkI5NTY1MDBCODgzNEQgLyogRm9udENhc2NhZGVEZXNjcmlw
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRF
OEI0RjIyMTZCOEI2MDAwQjg4MzREIC8qIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNEU5NEQ2MTIyRkYx
NThBMDBERDE5MUYgLyogQ29tcGxleExpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0QTFBQzc4MjJGQUZENTAwMDE3Qjc1QiAvKiBDb21w
bGV4TGluZUxheW91dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0RjlFRUYzMTU2REEwMDcwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0RjlFRUYx
MTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNTA2MjA4NDI1NDA5MTlDMDBDNDMw
OTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTUwNjIwODMyNTQwOTE5QjAwQzQzMDkxIC8qIENvbnRhY3RzUmVx
dWVzdERhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlFNTE2Njk5MTIwRkY5OTE4MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxNjY5OEYy
MEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi87IH07CiAJCUU1MTc2
NzAzMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxNzY3MDIyMEI4
OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTUxRDZBMUYyNEUxRTI1
NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MUQ2QTFEMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRl
VGltZUZpZWxkc1N0YXRlLmggKi87IH07CkBAIC0xNjExMSw2ICsxNjExMiw3IEBACiAJCUU0RjlF
RUYwMTU2RDg0QzQwMEQyM0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxl
U2hlZXRDb250ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZVNo
ZWV0Q29udGVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTRGQjRCMzUyMzlC
RUIxMDAwM0MzMzZBIC8qIExheW91dEludGVncmF0aW9uSW5saW5lQ29udGVudC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFNTA2MjA4MzI1NDA5MTlCMDBDNDMwOTEgLyogQ29udGFj
dHNSZXF1ZXN0RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250YWN0c1JlcXVlc3REYXRhLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBM
aXN0QnV0dG9uQXJyb3dAMngucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gIkxpc3RCdXR0b25BcnJvd0AyeC5wbmci
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE3NjcwMjIwQjg4QzE0MDBENDExNjcg
LyogRGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUxp
c3RTdWdnZXN0aW9uSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTUxQTgxREUxNzI5OEQ3NzAwQkZDQTYxIC8qIEpTUGVyZm9ybWFuY2UuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNQZXJmb3JtYW5jZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yODYwMiw2ICsyODYwNCw3IEBACiAJCQkJRTU5NkREMkUyNTE5
MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5jcHAgKi8sCiAJCQkJRTU5NkREMkQyNTE5
MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5oICovLAogCQkJCUU1OTZERDJGMjUxOTAz
RUYwMEMyNzVBNyAvKiBDb250YWN0c01hbmFnZXIuaWRsICovLAorCQkJCUU1MDYyMDgzMjU0MDkx
OUIwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggKi8sCiAJCQkJRTU5NkREMzMyNTE5
MDQxNDAwQzI3NUE3IC8qIENvbnRhY3RzU2VsZWN0T3B0aW9ucy5oICovLAogCQkJCUU1OTZERDM0
MjUxOTA0MTQwMEMyNzVBNyAvKiBDb250YWN0c1NlbGVjdE9wdGlvbnMuaWRsICovLAogCQkJCUU1
OTZERDI4MjUxOTAzRDIwMEMyNzVBNyAvKiBOYXZpZ2F0b3IrQ29udGFjdHMuaWRsICovLApAQCAt
MzA5MTAsNiArMzA5MTMsNyBAQAogCQkJCUU1OTZERDVEMjUxQkIwODIwMEMyNzVBNyAvKiBDb250
YWN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU5NkRENTgyNTFCQUM0QTAwQzI3NUE3IC8q
IENvbnRhY3RQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU5NkREMzAyNTE5MDNFRjAw
QzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTUwNjIwODQy
NTQwOTE5QzAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUU1OTZERDM1MjUxOTA0MTQwMEMyNzVBNyAvKiBDb250YWN0c1NlbGVjdE9wdGlvbnMuaCBp
biBIZWFkZXJzICovLAogCQkJCUE4MTg3MjFDMDk3N0QzQzAwMDU4MjZEOSAvKiBDb250YWluZXJO
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyogQ29u
dGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CmluZGV4IGRiMDcwYmNjN2UyNjYwNDc3ZmMwYzZjMjU4MGE1OGJkMTFlYzExODkuLjdjNzEwMDE1
NTcyNDE3ZWYwYjM2OWNkZDc5MTkwZWRiOGM1ZDE2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAK
QEAgLTIzLDYgKzIzLDggQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKIAogI2luY2x1ZGUgIkNocm9t
ZUNsaWVudC5oIgorI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgiCisjaW5jbHVkZSAiQ29udGFjdHNS
ZXF1ZXN0RGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlLmgiCkBAIC00NzIsNiArNDc0LDExIEBAIHZvaWQg
Q2hyb21lOjpzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURhdGEs
IENvbXBsZXRpb25IYW5kbGVyCiAgICAgbV9jbGllbnQuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRh
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgQ2hyb21lOjpzaG93Q29udGFjdFBpY2tl
cihjb25zdCBDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYmKT4mJiBjYWxsYmFjaykKK3sK
KyAgICBtX2NsaWVudC5zaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0RGF0YSwgV1RGTW92ZShjYWxs
YmFjaykpOworfQorCiB2b2lkIENocm9tZTo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIG1fY2xp
ZW50LmxvYWRJY29uRm9yRmlsZXMoZmlsZW5hbWVzLCBsb2FkZXIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
aW5kZXggYTVjYzFiMTNiYjAwMjIxNzMyYzc2OWQ5ZTQ0YzJhNzI0NzBlMzNmMy4uMDZlNTM0MjZj
ZjM3MzRlY2Q0ZTRhNmFiYTFjNzkxNWNkN2Q3NjM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC01
Nyw2ICs1Nyw4IEBAIGNsYXNzIFBvcHVwTWVudUNsaWVudDsKIGNsYXNzIFBvcHVwT3BlbmluZ09i
c2VydmVyOwogY2xhc3MgU2VhcmNoUG9wdXBNZW51OwogCitzdHJ1Y3QgQ29udGFjdEluZm87Citz
dHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0
ZXJzOwogc3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiBzdHJ1Y3QgVmlld3BvcnRBcmd1
bWVudHM7CkBAIC0xNjEsNiArMTYzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBydW5PcGVuUGFu
ZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoU2hhcmVE
YXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPENvbnRhY3RJbmZvPj4mJik+JiYpOwog
ICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29u
TG9hZGVyJik7CiAKICAgICB2b2lkIGRpc3BhdGNoRGlzYWJsZWRBZGFwdGF0aW9uc0RpZENoYW5n
ZShjb25zdCBPcHRpb25TZXQ8RGlzYWJsZWRBZGFwdGF0aW9ucz4mKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IGUwOTY3MzJlYzVhMjNhMDQ5ODI5OGEwNTJlZWJlNTBh
YjE0MDkyYTguLmE2ZjgyZjUxNzk2ZTVhODU4ZTNiYmYwOGI1NDBiYmZiNjc0OGViODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjMsNiArMjMsNyBAQAogCiAjaW5jbHVkZSAi
QVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkF1dG9wbGF5RXZlbnQuaCIKKyNpbmNsdWRlICJD
b250YWN0SW5mby5oIgogI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlRGV0
YWlscy5oIgogI2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uT3JNb3Rpb25QZXJtaXNzaW9uU3Rh
dGUuaCIKQEAgLTExMyw2ICsxMTQsNyBAQCBjbGFzcyBXaWRnZXQ7CiBjbGFzcyBNZWRpYVBsYXll
clJlcXVlc3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjazsKICNlbmRpZgogCitzdHJ1Y3Qg
Q29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzOwogc3Ry
dWN0IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgR3JhcGhpY3NEZXZpY2VBZGFw
dGVyOwpAQCAtMzAyLDYgKzMwNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5P
cGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hv
d1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhmYWxzZSk7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8Q29udGFjdEluZm8+PiYm
KT4mJiBjYWxsYmFjaykgeyBjYWxsYmFjayhXVEY6Om51bGxvcHQpOyB9CiAgICAgCiAgICAgLy8g
QXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5h
bWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKaW5kZXggNWJlZmM0ZGYyMDAxZjg3YTlhN2VlYjRkNjg3ZjEzZTk0NmQ3MDNmMy4uYTA2YzQz
NTJjYTEwNzNjZDMzNzRmOTBkZWRlNTI5ODVmMjc4ZTU5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaApAQCAtMzUsNiArMzUsOCBAQAogI2luY2x1ZGUgIldlYlBvcHVwTWVudVBy
b3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9BbHRlcm5hdGl2ZVRleHRDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRhY3RJ
bmZvLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db250YWN0c1JlcXVlc3REYXRhLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yQ2xpZW50
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgpAQCAtMjUzLDYgKzI1NSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVSdW5PcGVuUGFuZWwoV2ViUGFn
ZVByb3h5KiwgV2ViRnJhbWVQcm94eSosIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBBUEk6Ok9wZW5Q
YW5lbFBhcmFtZXRlcnMqLCBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5KikgeyByZXR1
cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29y
ZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAo
Ym9vbCk+JiYpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250YWN0
UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoV1RGOjpudWxsb3B0KTsg
fQogCiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGRmNGZiZjY0YmU3NjM4ZGFmZDQ1YzJiZTk0OTFlZmY3YjNjMzUyYmMuLmQ4ODU1MWFk
MjFiMzNkODUyN2JjYjA0YjFhMTA0MjRhNDJhMzIyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTk1MCw2ICs1OTUwLDEyIEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93U2hhcmVTaGVldChjb25zdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURh
dGEsIENvbXBsCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIHNoYXJlRGF0YS5maWxlcy5p
c0VtcHR5KCkgfHwgbV9wcmVmZXJlbmNlcy0+d2ViU2hhcmVGaWxlQVBJRW5hYmxlZCgpKTsKICAg
ICBwYWdlQ2xpZW50KCkuc2hvd1NoYXJlU2hlZXQoc2hhcmVEYXRhLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGFjdFBpY2tlcihj
b25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2VzcywgbV9w
cmVmZXJlbmNlcy0+Y29udGFjdFBpY2tlckFQSUVuYWJsZWQoKSk7CisgICAgcGFnZUNsaWVudCgp
LnNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CiAgICAgCiB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlNDdjYjVlNDFm
MzlkZGI3OWZkNTFkNzUxZjkzYWVmM2RjYmMyNTVhLi5jNTQzMmIzODU2MWI3Y2E2MWJhMGVjYTA3
ODk0NTA5YTdhMjg4NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMjQzLDYgKzI0Myw4IEBAIHN0cnVjdCBBcHBsaWNhdGlvbk1hbmlmZXN0Owogc3RydWN0IEF0
dHJpYnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVj
dCBDb21wb3NpdGlvbkhpZ2hsaWdodDsKK3N0cnVjdCBDb250YWN0SW5mbzsKK3N0cnVjdCBDb250
YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IENvbnRlbnRSdWxlTGlzdFJlc3VsdHM7CiBzdHJ1Y3Qg
RGF0YUxpc3RTdWdnZXN0aW9uSW5mb3JtYXRpb247CiBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFy
YW1ldGVyczsKQEAgLTE5NDksNiArMTk1MSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBydW5PcGVu
UGFuZWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIGNvbnN0IFdl
YkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MmKTsKICAgICBib29sIGRpZENob29zZUZpbGVzRm9y
T3BlblBhbmVsV2l0aEltYWdlVHJhbnNjb2RpbmcoY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVV
UkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWxsb3dlZE1JTUVUeXBlcyk7CiAgICAgdm9pZCBz
aG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tl
cihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJik7CiAgICAg
dm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpG
cmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1
cnJlbnRRdW90YSwgdWludDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50
RGF0YWJhc2VVc2FnZSwgdWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RXhjZWVkZWREYXRhYmFzZVF1b3RhRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50
aWZpZXIsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YURlbGF5ZWRSZXBseSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA0MjE0NWYyYzVjMDRiMzM4YWIwNDFmYjA2ZDY5Njg2YzJm
NTc5MTUyLi4wOTQ0YTkwMzhhMWFiMTc4OWZkZWNmODZiMTA3ZTI3ZjEzMDAxM2VjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC02
OSw2ICs2OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUGFnZURpZFNjcm9s
bCgpCiAgICAgUnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBz
dHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZp
bGVDaG9vc2VyU2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3Qg
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50
ZWQpIEFzeW5jCisgICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3Rz
UmVxdWVzdERhdGEgcmVxdWVzdERhdGEpIC0+IChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29u
dGFjdEluZm8+PiBpbmZvKSBBc3luYwogICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQpIC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxl
clRodW1iKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA3NmMwZDFmYzhhYTA5MGRkZTQ2MmNi
MjFlMjRhMjM0ZjEwMGFjZmUxLi43MDhhNWYyOWNiYzhhZWY1YjVjZTUxODZlMmZkM2YyNzNhODdm
OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtODIyLDYgKzgyMiwxMSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYgc2hh
cmVEYXRhLCBDb21wbGV0aQogICAgIG1fcGFnZS5zaG93U2hhcmVTaGVldChzaGFyZURhdGEsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dDb250YWN0
UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRh
Y3RJbmZvPj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgbV9wYWdlLnNob3dDb250YWN0UGlja2Vy
KHJlcXVlc3REYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZp
bGVJY29uTG9hZGVyJiBsb2FkZXIpCiB7CiAgICAgbG9hZGVyLmljb25Mb2FkZWQoY3JlYXRlSWNv
bkZvckZpbGVzKGZpbGVuYW1lcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDQ2ZjBlOWFlNWJm
YTU0YTEzN2UzYmI0MjU2M2UyYmFjMTcyNWY2YzguLjIzY2M0MDNhN2JhYWVkNTg2MzI2MWZkNTcy
ZmVjZGQ3M2QyNWRmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTIwMCw2ICsyMDAsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpGaWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgZmluYWw7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpD
b250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxv
YWRlciYpIGZpbmFsOwogCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29y
JikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDI2MGEwZTJhY2I0YmU5ZWE3YjNkMGYzYWJjZmQwNjAyZjUxNDcyYjUuLmQ2NDhjM2M5
ZWM0OTdhNjZiNzRhOWE4YzQ3YTA3MDQ1NTc1MTRlMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDgsNiArMTQ4LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0JhY2tGb3J3YXJkQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hy
b21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db21tb25WTS5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGFjdHNSZXF1ZXN0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29udGV4dE1lbnVDb250
cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRGF0YVRyYW5zZmVyLmg+CkBAIC02ODk0LDYgKzY4OTUsMTEgQEAgdm9pZCBXZWJQ
YWdlOjpzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIFdU
Rjo6Q29tcGxldGlvbkgKICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2hvd1NoYXJlU2hlZXQoV1RGTW92ZShzaGFyZURhdGEpKSwgV1RGTW92ZShjYWxsYmFj
aykpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6
OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNhbGxiYWNrKQor
eworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93Q29u
dGFjdFBpY2tlcihyZXF1ZXN0RGF0YSksIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwogV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSBXZWJQYWdlOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mo
Y29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewogICAgIGF1dG8gcmVzcG9uc2UgPSBX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDFmZjM1ZmIwOTM2YTVj
NzcxNmFhNGMwMTJkMjZlMDczYjQ0NzhlOTUuLjAyYTVmYWUzNzYyMjcyNDIxZDk4NjczNDUzYjFk
MDdjOGU5YzY5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTIxMyw2ICsyMTMsOCBAQCBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0IENvbXBvc2l0aW9uSGlnaGxpZ2h0Owog
c3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOworc3RydWN0IENvbnRhY3RJbmZvOworc3RydWN0
IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0ZXJuYXRpdmU7CiBzdHJ1
Y3QgRWxlbWVudENvbnRleHQ7CiBzdHJ1Y3QgR2xvYmFsRnJhbWVJZGVudGlmaWVyOwpAQCAtMTI0
MCw2ICsxMjQyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0
KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNhbGxiYWNrKTsKKyAgICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdl
YkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKTsKICAgICAKICNpZiBFTkFC
TEUoQVRUQUNITUVOVF9FTEVNRU5UKQogICAgIHZvaWQgaW5zZXJ0QXR0YWNobWVudChjb25zdCBT
dHJpbmcmIGlkZW50aWZpZXIsIE9wdGlvbmFsPHVpbnQ2NF90PiYmIGZpbGVTaXplLCBjb25zdCBT
dHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlLCBDYWxsYmFja0lEKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNmU1MTM5ZDM5ZWMwMDhjMjk2MjkyNjM2NDk1ZjQ2MTJjMDY0NWJkLi42NGZjNmNj
YjI5MjUzYWY2NGQzNmFiZWRjNjVkNTQ5MWExNzAyZTM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMjAtMTAtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb250YWN0IFBpY2tlciBBUEldIEltcGxlbWVudCBDb250YWN0c01hbmFnZXIuc2VsZWN0
KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1
MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4NjIxODY+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIGZhaWx1cmUgY2Fz
ZXMgb2YgdGhlIEFQSS4gTm90ZSB0aGF0IHN1Y2Nlc3MgY2FzZXMgYXJlCisgICAgICAgIHVudGVz
dGVkIHNpbmNlIG5vIHBsYXRmb3JtcyBjdXJyZW50bHkgZGlzcGxheSBhIHBpY2tlciBVSSwgYW5k
IHRoZQorICAgICAgICBzcGVjaWZpY2F0aW9uIHN0YXRlcyB0aGF0IHRoZSBwcm9taXNlIHNob3Vs
ZCBmYWlsIGluIHRoaXMgY2FzZS4gVGhlCisgICAgICAgIHN1Y2Nlc3MgdGVzdCBjYXNlcyB3aWxs
IGJlIGFkZGVkIG9uY2UgdGhlIFVJIGlzIGltcGxlbWVudGVkIGZvciBpT1MuCisKKyAgICAgICAg
KiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1v
cHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1n
ZXN0dXJlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUu
aHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBw
bGUuY29tPgogCiAgICAgICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlucHV0IHBl
cmlwaGVyYWxzIHdoZW4gZm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRhdGlvbiBt
ZXNzYWdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1z
ZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMt
YW5kLW9wdGlvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMmFkMWRlZDY1ODdhMWRjMTc2
NzNmYmM5YmU4NTk1ODBlNmU4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25z
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM0IEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBu
YXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGludmFsaWQgcHJvcGVydGllcyBvciBv
cHRpb25zIGFyZSBzcGVjaWZpZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitD
YWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52YWxpZCBwcm9wZXJ0
aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIlR5
cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisKK0NhbGxpbmcgbmF2
aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29y
IG9wdGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgor
UEFTUyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29u
dGFjdHMuc2VsZWN0KCkuCitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBz
cGVjaWZpZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlz
aGVkU3VidGVzdCBiZWNhbWUgdHJ1ZQorCitDYWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxl
Y3QoKS4KK1BBU1MgSW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4K
K1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIlR5cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0
IGJlY2FtZSB0cnVlCisKK0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFT
UyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNl
cHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRy
dWUKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitT
aG93IGNvbnRhY3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250
YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFu
ZC1vcHRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTNhZTlhZjlhNDliYjYxNjAwODZhMmU5NjZjMWFl
ZDVhZjEyNGQ4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMuaHRtbApAQCAt
MCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisgICAgICAgIGZpbmlzaGVkU3VidGVzdCA9IGZhbHNlOworCisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9u
cyhwcm9wZXJ0aWVzLCBvcHRpb25zID0ge30pCisgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmlz
aGVkU3VidGVzdCA9IGZhbHNlOworICAgICAgICAgICAgZGVidWcoIkNhbGxpbmcgbmF2aWdhdG9y
LmNvbnRhY3RzLnNlbGVjdCgpLiIpOworCisgICAgICAgICAgICBjb25zdCBjb250YWN0c0J1dHRv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOworICAgICAgICAgICAgY29u
dGFjdHNCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNv
bnRhY3RzLnNlbGVjdChwcm9wZXJ0aWVzLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZCgibmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBzdWNjZWVkZWQgd2l0aCBpbnZh
bGlkIHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMuIik7CisgICAgICAgICAgICAgICAgfSBjYXRj
aCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5leGNlcHRpb24gPSBl
eGNlcHRpb247CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkludmFsaWQgcHJvcGVy
dGllcyBhbmQvb3Igb3B0aW9ucyBzcGVjaWZpZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygiZXhjZXB0aW9uLm5hbWUiLCAiVHlwZUVycm9yIik7CisgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZmluaXNoZWRTdWJ0ZXN0ID0gdHJ1ZTsK
KyAgICAgICAgICAgIH0sIHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlI
ZWxwZXIuYWN0aXZhdGVFbGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgICAgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImZpbmlzaGVkU3VidGVz
dCIsICJ0cnVlIiwgcmVzb2x2ZSkpOworCisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAg
IH0KKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250
YWN0cy5zZWxlY3QgZmFpbHMgaWYgaW52YWxpZCBwcm9wZXJ0aWVzIG9yIG9wdGlvbnMgYXJlIHNw
ZWNpZmllZC5cbiIpOworCisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRo
UHJvcGVydGllc0FuZE9wdGlvbnMoW10pOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3Rz
U2VsZWN0V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKFsiSW52YWxpZCJdKTsKKyAgICAgICAgICAg
IGF3YWl0IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucygiU3RyaW5n
Iik7CisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0Fu
ZE9wdGlvbnMoWzIzXSk7CisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRo
UHJvcGVydGllc0FuZE9wdGlvbnMoWyJuYW1lIiwgImVtYWlsIl0sIDUwKTsKKworICAgICAgICAg
ICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBv
bmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250
YWN0czwvYnV0dG9uPgorICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUwODMzNDMy
M2UyYjhmNTY4ZjNlMzIxZjk0YTI2YjJhZDk5ZmUwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1
cmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0
IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIERpZCBub3QgcHJlc2VudCBjb250YWN0
IHBpY2tlci4KK1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIlNlY3VyaXR5RXJyb3IiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXIt
Z2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0
LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MDk1NjQwODNiZjA1MWZj
NjdiOGY1N2Q2Yzg1ZDFlMWFkMWIwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
b250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1s
PgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5h
dmlnYXRvci5jb250YWN0cy5zZWxlY3QgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuIik7CisKKyAg
ICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNvbnRhY3Rz
LnNlbGVjdChbIm5hbWUiLCAiZW1haWwiLCAidGVsIl0pOworICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoIlByZXNlbnRlZCBjb250YWN0IHBpY2tlciB3aXRob3V0IHVzZXIgZ2VzdHVyZS4iKTsK
KyAgICAgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIHdpbmRv
dy5leGNlcHRpb24gPSBleGNlcHRpb247CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiRGlk
IG5vdCBwcmVzZW50IGNvbnRhY3QgcGlja2VyLiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiZXhjZXB0aW9uLm5hbWUiLCAiU2VjdXJpdHlFcnJvciIpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIDwv
c2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+PC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC1zdWJmcmFtZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQwM2EyNWYyNmYwZWVkYjA1
MmY3MzhlNTUyOTkyMWRlZDIwN2Q2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Nv
bnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNl
bGVjdCBmYWlscyBpZiBjYWxsZWQgZnJvbSBhIHN1YmZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBEaWQgbm90IHByZXNlbnQgY29udGFjdCBwaWNrZXIuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45ZDMwNGY2OGM5YjA0ZjZkY2VmYzk3OWZhMGM2NzI1ZGU3OWJkN2E1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMt
c2VsZWN0LXN1YmZyYW1lLmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFi
bGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBj
YWxsZWQgZnJvbSBhIHN1YmZyYW1lLiIpOworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRM
aXN0ZW5lcigibWVzc2FnZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmIChldmVu
dC5kYXRhID09PSAiZGlkQ2xpY2tPbkNvbnRhY3RzQnV0dG9uQW5kRmFpbGVkVG9TZWxlY3QiKSB7
CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkRpZCBub3QgcHJlc2VudCBjb250YWN0
IHBpY2tlci4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZyYW1lID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiaWZyYW1lIik7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVy
LmFjdGl2YXRlRWxlbWVudChmcmFtZSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8
Ym9keSBvbmxvYWQ9cnVuVGVzdCgpPgorICAgICAgICA8aWZyYW1lIHNyY2RvYz0iCisgICAgICAg
ICAgICA8Ym9keT4KKyAgICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPSd3aWR0aDogMTAwJTsg
aGVpZ2h0OiAxMzRweDsnPlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICAgICAgICAgICAgICA8
c2NyaXB0PgorICAgICAgICAgICAgICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdidXR0b24nKTsKKyAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoJ2NsaWNrJywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAg
dHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFj
dHMuc2VsZWN0KFsnbmFtZSddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4
Y2VwdGlvbikgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24ubmFt
ZSA9PT0gJ0ludmFsaWRTdGF0ZUVycm9yJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJlbnQucG9zdE1lc3NhZ2UoJ2RpZENsaWNrT25Db250YWN0c0J1dHRvbkFuZEZhaWxl
ZFRvU2VsZWN0JywgJyonKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAg
ICAgIDwvc2NyaXB0PgorICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICAiPjwvaWZyYW1lPgor
ICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412132</attachid>
            <date>2020-10-22 14:29:04 -0700</date>
            <delta_ts>2020-10-22 14:40:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218050-20201022172903.patch</filename>
            <type>text/plain</type>
            <size>39849</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNGNhMzA0ZmMzOWNk
MDk4MzkxNWY1NTEwMTkzNGFiNDQ4MTE4Mi4uZjFmNmIzOWU2OGI4ZTc0YjFjOTA0MWY2MTBkYjRj
N2NhZjJmZDBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEwLTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBBZGQgc2tlbGV0b24gaW1wbGVtZW50YXRpb24gb2YgQ29udGFjdHNNYW5hZ2VyLnNl
bGVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTgwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkg
aXMgdGhlIGludGVyZmFjZSB0aGF0IGFsbG93cyBjbGllbnRzIHRvCisgICAgICAgIHByZXNlbnQg
YSBjb250YWN0IHBpY2tlci4gVGhlIG1ldGhvZCBzaG91bGQgaW1tZWRpYXRlbHkgcmVqZWN0IHdo
ZW4KKyAgICAgICAgY2FsbGVkIGZyb20gYSBzdWJmcmFtZSwgd2hlbiBjYWxsZWQgb3V0c2lkZSB1
c2VyLWludGVyYWN0aW9uIGFuZCB3aGVuCisgICAgICAgIGNhbGxlZCB3aGlsZSBhIGNvbnRhY3Qg
cGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVkLiBGdXJ0aGVybW9yZSwKKyAgICAgICAg
dGhlIHByb21pc2UgaXMgcmVqZWN0ZWQgd2hlbiB0aGUgc3VwcGxpZWQgcHJvcGVydGllcyBhcmUg
ZW1wdHkgb3IKKyAgICAgICAgaW52YWxpZC4KKworICAgICAgICBBZnRlciB0aGUgY29uZGl0aW9u
cyBuZWNlc3NhcnkgZm9yIHRoZSBVSSB0byBiZSBwcmVzZW50ZWQgYXJlIHZlcmlmaWVkLAorICAg
ICAgICBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkgY2FsbHMgaW50byB0aGUgcGFnZSdzIENocm9t
ZSB0byBkaXNwbGF5IHRoZQorICAgICAgICBwaWNrZXIuIFRoZSBVSSBpbXBsZW1lbnRhdGlvbiBv
biBtYWNPUyBhbmQgaU9TIHdpbGwgYmUgZG9uZSBpbgorICAgICAgICBmb3J0aGNvbWluZyBwYXRj
aGVzLgorCisgICAgICAgIFNlZSBodHRwczovL3dpY2cuZ2l0aHViLmlvL2NvbnRhY3QtYXBpL3Nw
ZWMvI2NvbnRhY3RzLW1hbmFnZXItc2VsZWN0CisgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9u
LgorCisgICAgICAgIFRlc3RzOiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxp
ZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbAorICAgICAgICAg
ICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLmh0bWwKKworICAg
ICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9D
b250YWN0SW5mby5oOiBBZGRlZCBlbmNvZGVyIGFuZCBkZWNvZGVyIGZvciBJUEMuCisgICAgICAg
IChXZWJDb3JlOjpDb250YWN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRhY3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIv
Q29udGFjdEluZm8uaWRsOgorICAgICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFj
dFByb3BlcnR5Lmg6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFjdHNNYW5hZ2VyOjpmcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OnNlbGVjdCk6CisgICAgICAg
ICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaDogQWRkZWQuCisKKyAg
ICAgICAgQ29udGFjdHNSZXF1ZXN0RGF0YSBlbmNhcHN1bGF0ZXMgdGhlIGluZm9ybWF0aW9uIHJl
cXVpcmVkIHRvIGRpc3BsYXkgYQorICAgICAgICBwaWNrZXIgVUkuIFRoaXMgaW5jbHVkZXMgdGhl
IHJlcXVlc3RlZCBwcm9wZXJ0aWVzLCB0aGUgVVJMIG9mIHRoZQorICAgICAgICBwcmVzZW50aW5n
IHNpdGUsIGFuZCB3aGV0aGVyIG11bHRpcGxlIGNvbnRhY3Qgc2VsZWN0aW9uIHNob3VsZCBiZSBh
bGxvd2VkLgorCisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzaG93Q29udGFjdFBp
Y2tlcik6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNs
aWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzaG93Q29udGFjdFBpY2tl
cik6CisKIDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlucHV0IHBlcmlwaGVyYWxz
IHdoZW4gZm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRhdGlvbiBtZXNzYWdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGJiYjdlZmMyYzEzZTM4YmJiZjcyNzA0MmUwNDMxYmQyY2U3Mjc2NDMuLjg1Yzk5
YjkyMjFkOTQ1MTIxNjYzOGM3YjAzOTdmNmY3ZDY1NWNiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjAtMTAtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBza2VsZXRvbiBpbXBsZW1lbnRhdGlv
biBvZiBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4
NjIxODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFk
ZGVkIHRoZSBuZWNlc3NhcnkgcGx1bWJpbmcgaW4gb3JkZXIgZm9yIHRoZSBVSVByb2Nlc3MgdG8g
ZGlzcGxheSBhCisgICAgICAgIGNvbnRhY3QgcGlja2VyIGFmdGVyIGEgY2FsbCB0byBDb250YWN0
c01hbmFnZXIuc2VsZWN0KCkgaXMgbWFkZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnNob3dDb250YWN0UGlja2VyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3dDb250YWN0UGlja2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlu
cHV0IHBlcmlwaGVyYWxzIHdoZW4gZm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRh
dGlvbiBtZXNzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJl
MzA4YzhiNjQ1YjUyNTQwMGZlLi40Y2MzOWU2YmY5NmMzZmI2NjgyOGI2NDZhNzkwYTlhMzhiZGNi
YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE5LDYgKzE5LDkgQEAgc2V0KFdlYkNvcmVfUFJJ
VkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGVFbmdpbmUu
aAogICAgIE1vZHVsZXMvY2FjaGUvUmV0cmlldmVSZWNvcmRzT3B0aW9ucy5oCiAKKyAgICBNb2R1
bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmgKKyAgICBNb2R1bGVzL2NvbnRhY3QtcGlj
a2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaAorCiAgICAgTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9D
RE1DbGllbnQuaAogCiAgICAgTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmgK
aW5kZXggZWZkNGQ0M2JlNWViNTVkY2ZkNTAwYTE3ZjVhYjlhNjJjOTdjOWY3MS4uMTJmZjUxNGVh
ZjU0ZTMxZWI1ODNiNGIxOTdiZDQzZjk2MGVlNzIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaApAQCAtMjYsNiArMjYsNyBA
QAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtMzQsNiArMzUsMzggQEAgc3RydWN0IENvbnRhY3RJbmZvIHsKICAgICBWZWN0b3I8
U3RyaW5nPiBuYW1lOwogICAgIFZlY3RvcjxTdHJpbmc+IGVtYWlsOwogICAgIFZlY3RvcjxTdHJp
bmc+IHRlbDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8
Q29udGFjdEluZm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPgordm9pZCBDb250YWN0SW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7
CisgICAgZW5jb2RlciA8PCBuYW1lOworICAgIGVuY29kZXIgPDwgZW1haWw7CisgICAgZW5jb2Rl
ciA8PCB0ZWw7CiB9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxDb250YWN0
SW5mbz4gQ29udGFjdEluZm86OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlv
bmFsPFZlY3RvcjxTdHJpbmc+PiBuYW1lOworICAgIGRlY29kZXIgPj4gbmFtZTsKKyAgICBpZiAo
IW5hbWUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxWZWN0
b3I8U3RyaW5nPj4gZW1haWw7CisgICAgZGVjb2RlciA+PiBlbWFpbDsKKyAgICBpZiAoIWVtYWls
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8VmVjdG9yPFN0
cmluZz4+IHRlbDsKKyAgICBkZWNvZGVyID4+IHRlbDsKKyAgICBpZiAoIXRlbCkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqbmFtZSwgKmVtYWlsLCAqdGVs
IH19OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaWRsCmluZGV4IDE2Mzc3MTI5
YzhiZDE0NDU1NTA0YjBhOTUxZDY2ODMyMDMwMDVmMjIuLjIyOWFiZmExZGM3NTI3ODE4MmIzNWQx
ZmZhNzQ0NThiODNiZTQ0OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29u
dGFjdC1waWNrZXIvQ29udGFjdEluZm8uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaWRsCkBAIC0yNSw3ICsyNSw5IEBACiAKIC8vIGh0
dHBzOi8vd2ljZy5naXRodWIuaW8vY29udGFjdC1hcGkvCiAKLWRpY3Rpb25hcnkgQ29udGFjdElu
Zm8geworWworICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXSBkaWN0aW9uYXJ5IENvbnRhY3RJ
bmZvIHsKICAgICBzZXF1ZW5jZTxVU1ZTdHJpbmc+IG5hbWU7CiAgICAgc2VxdWVuY2U8VVNWU3Ry
aW5nPiBlbWFpbDsKICAgICBzZXF1ZW5jZTxVU1ZTdHJpbmc+IHRlbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oCmlu
ZGV4IGM2MTFiOTg3NWJiYjIyZTYxZTA0YWUwY2IxYjk1ZjQ4OThhZTU2MTYuLjkwYTUyMTc2NmE1
OTcwMjMxYmU4ZWEwODdkNjNiNDQyZmE1MmRiMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaApAQCAtMjUsOCAr
MjUsMjMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgor
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQ29udGFjdFByb3BlcnR5IDogdWlu
dDhfdCB7IEVtYWlsLCBOYW1lLCBUZWwgfTsKIAogfQorCituYW1lc3BhY2UgV1RGIHsKKwordGVt
cGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDb250YWN0UHJvcGVydHk+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpDb250YWN0UHJv
cGVydHksCisgICAgICAgIFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6RW1haWwsCisgICAgICAg
IFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eTo6TmFtZSwKKyAgICAgICAgV2ViQ29yZTo6Q29udGFj
dFByb3BlcnR5OjpUZWwKKyAgICA+OworfTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCmluZGV4IGFm
OTkxYTU1MjdmOGJmNjg2YjExYmMyNTM1Y2QxYjJhNDUxMGM2ZjUuLmVhNGI2YmVkZTEyYjE4MzIy
YjMxNGYzZmU5NTgzN2NlNGUzM2I3OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHAKQEAgLTI2LDEyICsy
NiwyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNvbnRhY3RzTWFuYWdlci5o
IgogCisjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29udGFjdEluZm8uaCIKICNpbmNs
dWRlICJDb250YWN0UHJvcGVydHkuaCIKKyNpbmNsdWRlICJDb250YWN0c1JlcXVlc3REYXRhLmgi
CiAjaW5jbHVkZSAiQ29udGFjdHNTZWxlY3RPcHRpb25zLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQu
aCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkpTQ29udGFjdEluZm8uaCIKICNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIk5hdmlnYXRvci5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRvci5oIgorI2luY2x1
ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxp
bmVzLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1VSTC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ5LDYgKzU5LDEyIEBAIENvbnRhY3RzTWFuYWdl
cjo6Q29udGFjdHNNYW5hZ2VyKE5hdmlnYXRvciYgbmF2aWdhdG9yKQogCiBDb250YWN0c01hbmFn
ZXI6On5Db250YWN0c01hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKKworRnJhbWUqIENvbnRhY3RzTWFu
YWdlcjo6ZnJhbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX25hdmlnYXRvciA/IG1fbmF2aWdh
dG9yLT5mcmFtZSgpIDogbnVsbHB0cjsKK30KKwogTmF2aWdhdG9yKiBDb250YWN0c01hbmFnZXI6
Om5hdmlnYXRvcigpCiB7CiAgICAgcmV0dXJuIG1fbmF2aWdhdG9yLmdldCgpOwpAQCAtNjIsOSAr
NzgsNDMgQEAgdm9pZCBDb250YWN0c01hbmFnZXI6OmdldFByb3BlcnRpZXMoUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlKQogCiB2b2lkIENvbnRhY3RzTWFuYWdlcjo6c2VsZWN0KGNvbnN0
IFZlY3RvcjxDb250YWN0UHJvcGVydHk+JiBwcm9wZXJ0aWVzLCBjb25zdCBDb250YWN0c1NlbGVj
dE9wdGlvbnMmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAg
ICBVTlVTRURfUEFSQU0ocHJvcGVydGllcyk7Ci0gICAgVU5VU0VEX1BBUkFNKG9wdGlvbnMpOwot
ICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvcik7CisgICAgYXV0byogZnJhbWUg
PSB0aGlzLT5mcmFtZSgpOworICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5pc01haW5GcmFtZSgp
IHx8ICFmcmFtZS0+ZG9jdW1lbnQoKSB8fCAhZnJhbWUtPnBhZ2UoKSkgeworICAgICAgICBwcm9t
aXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
IHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFNlY3VyaXR5RXJyb3IpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgaWYgKG1fY29udGFjdFBpY2tlcklzU2hvd2luZykgeworICAgICAg
ICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKHByb3BlcnRpZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIHByb21pc2Ut
PnJlamVjdChUeXBlRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQ29udGFj
dHNSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YTsKKyAgICByZXF1ZXN0RGF0YS5wcm9wZXJ0aWVzID0g
cHJvcGVydGllczsKKyAgICByZXF1ZXN0RGF0YS5tdWx0aXBsZSA9IG9wdGlvbnMubXVsdGlwbGU7
CisgICAgcmVxdWVzdERhdGEudXJsID0gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnRydW5jYXRl
ZEZvclVzZUFzQmFzZSgpLnN0cmluZygpOworCisgICAgbV9jb250YWN0UGlja2VySXNTaG93aW5n
ID0gdHJ1ZTsKKworICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLnNob3dDb250YWN0UGlja2Vy
KHJlcXVlc3REYXRhLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHRoaXNdIChPcHRpb25h
bDxWZWN0b3I8Q29udGFjdEluZm8+PiYmIGluZm8pIHsKKyAgICAgICAgbV9jb250YWN0UGlja2Vy
SXNTaG93aW5nID0gZmFsc2U7CisgICAgICAgIGlmIChpbmZvKSB7CisgICAgICAgICAgICBwcm9t
aXNlLT5yZXNvbHZlPElETFNlcXVlbmNlPElETERpY3Rpb25hcnk8Q29udGFjdEluZm8+Pj4oKmlu
Zm8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KFVua25vd25FcnJvcik7CisgICAgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29u
dGFjdHNNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0Nv
bnRhY3RzTWFuYWdlci5oCmluZGV4IDkzNzQxMjM0YjJlZWM0MzBmNGRhZTdiYjkxMDQ4ZjYzNzRh
NjIyOTQuLmQ1MWY5NzU0YzJjZWI4OTk0Yzk4YmRlM2ExZDE1YjI1NDFhYTczY2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01h
bmFnZXIuaApAQCAtMzMsNiArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBE
ZWZlcnJlZFByb21pc2U7CitjbGFzcyBGcmFtZTsKIGNsYXNzIE5hdmlnYXRvcjsKIAogZW51bSBj
bGFzcyBDb250YWN0UHJvcGVydHkgOiB1aW50OF90OwpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxDb250YWN0c01hbmFnZXI+IGNyZWF0ZShOYXZpZ2F0b3ImKTsKICAg
ICB+Q29udGFjdHNNYW5hZ2VyKCk7CiAKKyAgICBGcmFtZSogZnJhbWUoKSBjb25zdDsKICAgICBO
YXZpZ2F0b3IqIG5hdmlnYXRvcigpOwogCiAgICAgdm9pZCBnZXRQcm9wZXJ0aWVzKFJlZjxEZWZl
cnJlZFByb21pc2U+JiYpOwpAQCAtNTQsNiArNTYsNyBAQCBwcml2YXRlOgogICAgIENvbnRhY3Rz
TWFuYWdlcihOYXZpZ2F0b3ImKTsKIAogICAgIFdlYWtQdHI8TmF2aWdhdG9yPiBtX25hdmlnYXRv
cjsKKyAgICBib29sIG1fY29udGFjdFBpY2tlcklzU2hvd2luZyB7IGZhbHNlIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE0
ZjMxZDkyMWQyOTRkOTcyZWU1MDdmYjg3YzMwNWI2Yjk2ODQ4NTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVzdERh
dGEuaApAQCAtMCwwICsxLDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJDb250YWN0UHJvcGVydHkuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1
ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YSB7CisgICAgVmVjdG9yPENv
bnRhY3RQcm9wZXJ0eT4gcHJvcGVydGllczsKKyAgICBib29sIG11bHRpcGxlIHsgZmFsc2UgfTsK
KyAgICBTdHJpbmcgdXJsOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBP
cHRpb25hbDxDb250YWN0c1JlcXVlc3REYXRhPiBkZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ29udGFjdHNSZXF1ZXN0RGF0YTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBwcm9wZXJ0aWVzOworICAg
IGVuY29kZXIgPDwgbXVsdGlwbGU7CisgICAgZW5jb2RlciA8PCB1cmw7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxDb250YWN0c1JlcXVlc3REYXRhPiBDb250YWN0c1Jl
cXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDxWZWN0
b3I8Q29udGFjdFByb3BlcnR5Pj4gcHJvcGVydGllczsKKyAgICBkZWNvZGVyID4+IHByb3BlcnRp
ZXM7CisgICAgaWYgKCFwcm9wZXJ0aWVzKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8Ym9vbD4gbXVsdGlwbGU7CisgICAgZGVjb2RlciA+PiBtdWx0aXBsZTsK
KyAgICBpZiAoIW11bHRpcGxlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAg
T3B0aW9uYWw8U3RyaW5nPiB1cmw7CisgICAgZGVjb2RlciA+PiB1cmw7CisgICAgaWYgKCF1cmwp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgKnByb3BlcnRp
ZXMsICptdWx0aXBsZSwgKnVybCB9fTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZkNzQwMzgzMDVmNjE5OGQ5MThl
MzY4YTQ0NGZkZDc4MmFkZjlhYjcuLmIzODEzNGM2NDc3OWFhYzdhMjJmNDUxNjdkY2U3OTRkMGU1
ZTJmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTUwOTksNiArNTA5OSw3IEBACiAJCUU0RThCNEY1MjE2Qjk1NjUwMEI4ODM0
RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEU4QjRGMjIxNkI4QjYwMDBCODgzNEQgLyogRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUU0RTk0RDYxMjJGRjE1OEEwMEREMTkxRiAvKiBDb21wbGV4TGluZUxheW91dC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRBMUFDNzgy
MkZBRkQ1MDAwMTdCNzVCIC8qIENvbXBsZXhMaW5lTGF5b3V0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTRGOUVFRjMxNTZEQTAwNzAwRDIzRTdF
IC8qIFN0eWxlU2hlZXRDb250ZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTRGOUVFRjExNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRDb250
ZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CUU1MDYyMDg0MjU0MDkxOUMwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTA2MjA4MzI1NDA5MTlC
MDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1MTY2OTkxMjBGRjk5MTgwMDlEMkMyNyAvKiBM
aXN0QnV0dG9uQXJyb3dAMngucG5nIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNTE2Njk4RjIwRkY5OTE2MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93
QDJ4LnBuZyAqLzsgfTsKIAkJRTUxNzY3MDMyMEI4OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3Vn
Z2VzdGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNTE3NjcwMjIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9u
SW5mb3JtYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFNTFENkExRjI0RTFFMjU1MDA4OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTUxRDZBMUQy
NEUxRTI1NTAwODkxQ0ZBIC8qIERhdGVUaW1lRmllbGRzU3RhdGUuaCAqLzsgfTsKQEAgLTE2MTEx
LDYgKzE2MTEyLDcgQEAKIAkJRTRGOUVFRjAxNTZEODRDNDAwRDIzRTdFIC8qIFN0eWxlU2hlZXRD
b250ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVNo
ZWV0Q29udGVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNEY5RUVGMTE1
NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0eWxlU2hlZXRDb250ZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNEZCNEIzNTIzOUJFQjEwMDAzQzMzNkEgLyogTGF5b3V0SW50ZWdyYXRpb25J
bmxpbmVDb250ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dEludGVncmF0aW9uSW5s
aW5lQ29udGVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU1MDYyMDgzMjU0
MDkxOUIwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
bnRhY3RzUmVxdWVzdERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxNjY5
OEYyMEZGOTkxNjAwOUQyQzI3IC8qIExpc3RCdXR0b25BcnJvd0AyeC5wbmcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wbmc7IHBhdGggPSAi
TGlzdEJ1dHRvbkFycm93QDJ4LnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU1
MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFNTFBODFERTE3Mjk4RDc3MDBCRkNBNjEgLyogSlNQZXJm
b3JtYW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1BlcmZv
cm1hbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NjAyLDYgKzI4NjA0
LDcgQEAKIAkJCQlFNTk2REQyRTI1MTkwM0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmNw
cCAqLywKIAkJCQlFNTk2REQyRDI1MTkwM0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmgg
Ki8sCiAJCQkJRTU5NkREMkYyNTE5MDNFRjAwQzI3NUE3IC8qIENvbnRhY3RzTWFuYWdlci5pZGwg
Ki8sCisJCQkJRTUwNjIwODMyNTQwOTE5QjAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEu
aCAqLywKIAkJCQlFNTk2REQzMzI1MTkwNDE0MDBDMjc1QTcgLyogQ29udGFjdHNTZWxlY3RPcHRp
b25zLmggKi8sCiAJCQkJRTU5NkREMzQyNTE5MDQxNDAwQzI3NUE3IC8qIENvbnRhY3RzU2VsZWN0
T3B0aW9ucy5pZGwgKi8sCiAJCQkJRTU5NkREMjgyNTE5MDNEMjAwQzI3NUE3IC8qIE5hdmlnYXRv
citDb250YWN0cy5pZGwgKi8sCkBAIC0zMDkxMCw2ICszMDkxMyw3IEBACiAJCQkJRTU5NkRENUQy
NTFCQjA4MjAwQzI3NUE3IC8qIENvbnRhY3RJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNTk2
REQ1ODI1MUJBQzRBMDBDMjc1QTcgLyogQ29udGFjdFByb3BlcnR5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNTk2REQzMDI1MTkwM0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNTA2MjA4NDI1NDA5MTlDMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0
RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTU5NkREMzUyNTE5MDQxNDAwQzI3NUE3IC8qIENv
bnRhY3RzU2VsZWN0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgxODcyMUMwOTc3RDND
MDAwNTgyNkQ5IC8qIENvbnRhaW5lck5vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQTE0NzA4
MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggZGIwNzBiY2M3ZTI2NjA0NzdmYzBjNmMyNTgw
YTU4YmQxMWVjMTE4OS4uN2M3MTAwMTU1NzI0MTdlZjBiMzY5Y2RkNzkxOTBlZGI4YzVkMTYzZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMjMsNiArMjMsOCBAQAogI2luY2x1ZGUgIkNocm9t
ZS5oIgogCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiQ29udGFjdEluZm8u
aCIKKyNpbmNsdWRlICJDb250YWN0c1JlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiRE9NV2luZG93
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudFR5cGUuaCIKQEAg
LTQ3Miw2ICs0NzQsMTEgQEAgdm9pZCBDaHJvbWU6OnNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdp
dGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgQ29tcGxldGlvbkhhbmRsZXIKICAgICBtX2NsaWVudC5z
aG93U2hhcmVTaGVldChzaGFyZURhdGEsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBD
aHJvbWU6OnNob3dDb250YWN0UGlja2VyKGNvbnN0IENvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5m
bz4+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIG1fY2xpZW50LnNob3dDb250YWN0UGlja2VyKHJl
cXVlc3REYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cit9CisKIHZvaWQgQ2hyb21lOjpsb2FkSWNv
bkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZpbGVJY29uTG9hZGVy
JiBsb2FkZXIpCiB7CiAgICAgbV9jbGllbnQubG9hZEljb25Gb3JGaWxlcyhmaWxlbmFtZXMsIGxv
YWRlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCBhNWNjMWIxM2JiMDAyMjE3MzJjNzY5ZDllNDRj
MmE3MjQ3MGUzM2YzLi4wNmU1MzQyNmNmMzczNGVjZDRlNGE2YWJhMWM3OTE1Y2Q3ZDc2Mzc4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTU3LDYgKzU3LDggQEAgY2xhc3MgUG9wdXBNZW51Q2xpZW50
OwogY2xhc3MgUG9wdXBPcGVuaW5nT2JzZXJ2ZXI7CiBjbGFzcyBTZWFyY2hQb3B1cE1lbnU7CiAK
K3N0cnVjdCBDb250YWN0SW5mbzsKK3N0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0
IERhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnM7CiBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVS
TDsKIHN0cnVjdCBWaWV3cG9ydEFyZ3VtZW50czsKQEAgLTE2MSw2ICsxNjMsNyBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CiAgICAgdm9p
ZCBzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CisgICAgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBDb250
YWN0c1JlcXVlc3REYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8
Q29udGFjdEluZm8+PiYmKT4mJik7CiAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZl
Y3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKTsKIAogICAgIHZvaWQgZGlzcGF0Y2hEaXNh
YmxlZEFkYXB0YXRpb25zRGlkQ2hhbmdlKGNvbnN0IE9wdGlvblNldDxEaXNhYmxlZEFkYXB0YXRp
b25zPiYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZTA5NjczMmVj
NWEyM2EwNDk4Mjk4YTA1MmVlYmU1MGFiMTQwOTJhOC4uYTZmODJmNTE3OTZlNWE4NThlM2JiZjA4
YjU0MGJiZmI2NzQ4ZWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0yMyw2
ICsyMyw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXV0b3Bs
YXlFdmVudC5oIgorI2luY2x1ZGUgIkNvbnRhY3RJbmZvLmgiCiAjaW5jbHVkZSAiQ3Vyc29yLmgi
CiAjaW5jbHVkZSAiRGF0YWJhc2VEZXRhaWxzLmgiCiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRp
b25Pck1vdGlvblBlcm1pc3Npb25TdGF0ZS5oIgpAQCAtMTEzLDYgKzExNCw3IEBAIGNsYXNzIFdp
ZGdldDsKIGNsYXNzIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxi
YWNrOwogI2VuZGlmCiAKK3N0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IENvbnRl
bnRSdWxlTGlzdFJlc3VsdHM7CiBzdHJ1Y3QgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVyczsKIHN0
cnVjdCBHcmFwaGljc0RldmljZUFkYXB0ZXI7CkBAIC0zMDIsNiArMzA0LDcgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzaG93U2hhcmVTaGVldChTaGFyZURhdGFXaXRoUGFyc2VkVVJM
JiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNhbGxiYWNrKSB7IGNhbGxi
YWNrKGZhbHNlKTsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBD
b250YWN0c1JlcXVlc3REYXRhJiwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFs
PFZlY3RvcjxDb250YWN0SW5mbz4+JiYpPiYmIGNhbGxiYWNrKSB7IGNhbGxiYWNrKFdURjo6bnVs
bG9wdCk7IH0KICAgICAKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGlj
b24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9y
RmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA1YmVmYzRkZjIwMDFmODdhOWE3ZWViNGQ2
ODdmMTNlOTQ2ZDcwM2YzLi5hMDZjNDM1MmNhMTA3M2NkMzM3NGY5MGRlZGU1Mjk4NWYyNzhlNTk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0zNSw2ICszNSw4IEBACiAj
aW5jbHVkZSAiV2ViUG9wdXBNZW51UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5
U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FsdGVybmF0aXZlVGV4dENsaWVudC5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ29udGFjdEluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0NvbnRhY3Rz
UmVxdWVzdERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3JDbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0
aW9uLmg+CkBAIC0yNTMsNiArMjU1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGhh
bmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgY29uc3QgRnJh
bWVJbmZvRGF0YSYsIEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkqKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG93
U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpD
b21wbGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJikgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1
ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9u
SGFuZGxlcihXVEY6Om51bGxvcHQpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29u
dGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZGY0ZmJmNjRiZTc2MzhkYWZkNDVjMmJlOTQ5
MWVmZjdiM2MzNTJiYy4uZDg4NTUxYWQyMWIzM2Q4NTI3YmNiMDRiMWExMDQyNGE0MmEzMjIyNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTUwLDYgKzU5
NTAsMTIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dTaGFyZVNoZWV0KGNvbnN0IFNoYXJlRGF0
YVdpdGhQYXJzZWRVUkwmIHNoYXJlRGF0YSwgQ29tcGwKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJv
Y2Vzcywgc2hhcmVEYXRhLmZpbGVzLmlzRW1wdHkoKSB8fCBtX3ByZWZlcmVuY2VzLT53ZWJTaGFy
ZUZpbGVBUElFbmFibGVkKCkpOwogICAgIHBhZ2VDbGllbnQoKS5zaG93U2hhcmVTaGVldChzaGFy
ZURhdGEsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KKwordm9pZCBXZWJQYWdlUHJv
eHk6OnNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJD
b3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIE1FU1NB
R0VfQ0hFQ0sobV9wcm9jZXNzLCBtX3ByZWZlcmVuY2VzLT5jb250YWN0UGlja2VyQVBJRW5hYmxl
ZCgpKTsKKyAgICBwYWdlQ2xpZW50KCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KICAgICAKIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGU0N2NiNWU0MWYzOWRkYjc5ZmQ1MWQ3NTFmOTNhZWYzZGNiYzI1NWEuLmM1
NDMyYjM4NTYxYjdjYTYxYmEwZWNhMDc4OTQ1MDlhN2EyODg0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0yNDMsNiArMjQzLDggQEAgc3RydWN0IEFwcGxpY2F0
aW9uTWFuaWZlc3Q7CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9yd2Fy
ZEl0ZW1JZGVudGlmaWVyOwogc3RydWN0IENvbXBvc2l0aW9uSGlnaGxpZ2h0Oworc3RydWN0IENv
bnRhY3RJbmZvOworc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1
bGVMaXN0UmVzdWx0czsKIHN0cnVjdCBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlvbjsKIHN0
cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwpAQCAtMTk0OSw2ICsxOTUxLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgY29uc3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyYpOwogICAg
IGJvb2wgZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoSW1hZ2VUcmFuc2NvZGluZyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgZmlsZVVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbGxvd2Vk
TUlNRVR5cGVzKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJl
RGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAg
ICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERh
dGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250
YWN0SW5mbz4+JiYpPiYmKTsKICAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBk
aXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2lu
VXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFzZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVz
YWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGNlZWRlZERhdGFiYXNlUXVvdGFEZWxheWVk
UmVwbHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNv
bnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50
NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhRGVsYXllZFJlcGx5JiYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDQyMTQ1ZjJjNWMw
NGIzMzhhYjA0MWZiMDZkNjk2ODZjMmY1NzkxNTIuLjA5NDRhOTAzOGExYWIxNzg5ZmRlY2Y4NmIx
MDdlMjdmMTMwMDEzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KQEAgLTY5LDYgKzY5LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKICAgICBQYWdlRGlkU2Nyb2xsKCkKICAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAg
IFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNo
YXJlRGF0YSkgLT4gKGJvb2wgZ3JhbnRlZCkgQXN5bmMKKyAgICBTaG93Q29udGFjdFBpY2tlcihz
dHJ1Y3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkgLT4gKE9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+IGluZm8pIEFzeW5jCiAgICAgUHJpbnRG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKCkgU3luY2hyb25vdXMK
ICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChX
ZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IDc2YzBkMWZjOGFhMDkwZGRlNDYyY2IyMWUyNGEyMzRmMTAwYWNmZTEuLjcwOGE1ZjI5Y2JjOGFl
ZjViNWNlNTE4NmUyZmQzZjI3M2E4N2Y5MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04
MjIsNiArODIyLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzaG93U2hhcmVTaGVldChTaGFy
ZURhdGFXaXRoUGFyc2VkVVJMJiBzaGFyZURhdGEsIENvbXBsZXRpCiAgICAgbV9wYWdlLnNob3dT
aGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJiBjYWxsYmFjaykKK3sKKyAgICBt
X3BhZ2Uuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUoY2FsbGJhY2spKTsK
K30KKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXImIGxvYWRlcikKIHsKICAgICBsb2Fk
ZXIuaWNvbkxvYWRlZChjcmVhdGVJY29uRm9yRmlsZXMoZmlsZW5hbWVzKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNDZmMGU5YWU1YmZhNTRhMTM3ZTNiYjQyNTYzZTJiYWMxNzI1ZjZjOC4uMjNj
YzQwM2E3YmFhZWQ1ODYzMjYxZmQ1NzJmZWNkZDczZDI1ZGYyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aApAQCAtMjAwLDYgKzIwMCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9pZCBz
aG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNob3dDb250YWN0
UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmLCBXVEY6OkNvbXBsZXRp
b25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+
JiYpIGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CiAKICAgICB2b2lkIHNldEN1cnNv
cihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjYwYTBlMmFjYjRiZTllYTdiM2QwZjNhYmNm
ZDA2MDJmNTE0NzJiNS4uZDY0OGMzYzllYzQ5N2E2NmI3NGE5YThjNDdhMDcwNDU1NzUxNGUzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE0
OCw2ICsxNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQmFja0ZvcndhcmRDb250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbW1vblZN
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Db250YWN0c1JlcXVlc3REYXRhLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RPTVBh
c3RlQWNjZXNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EYXRhVHJhbnNmZXIuaD4KQEAgLTY4OTQs
NiArNjg5NSwxMSBAQCB2b2lkIFdlYlBhZ2U6OnNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQ
YXJzZWRVUkwmIHNoYXJlRGF0YSwgV1RGOjpDb21wbGV0aW9uSAogICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTaG93U2hhcmVTaGVldChXVEZNb3ZlKHNoYXJl
RGF0YSkpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2hvd0NvbnRh
Y3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJ
bmZvPj4mJik+JiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhKSwgV1RGTW92ZShj
YWxsYmFjaykpOworfQorCiBXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIFdlYlBhZ2U6
OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIpCiB7
CiAgICAgYXV0byByZXNwb25zZSA9IFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRl
bmllZEZvckdlc3R1cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKaW5kZXggMWZmMzVmYjA5MzZhNWM3NzE2YWE0YzAxMmQyNmUwNzNiNDQ3OGU5NS4uMDJhNWZh
ZTM3NjIyNzI0MjFkOTg2NzM0NTNiMWQwN2M4ZTljNjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjEzLDYgKzIxMyw4IEBAIHN0cnVjdCBBdHRy
aWJ1dGVkU3RyaW5nOwogc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXI7CiBzdHJ1Y3Qg
Q29tcG9zaXRpb25IaWdobGlnaHQ7CiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CitzdHJ1
Y3QgQ29udGFjdEluZm87CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBEaWN0
YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBFbGVtZW50Q29udGV4dDsKIHN0cnVjdCBHbG9iYWxG
cmFtZUlkZW50aWZpZXI7CkBAIC0xMjQwLDYgKzEyNDIsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
ICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spOworICAgIHZvaWQgc2hv
d0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4m
Jik+JiYpOwogICAgIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAgICAgdm9pZCBp
bnNlcnRBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgaWRlbnRpZmllciwgT3B0aW9uYWw8dWludDY0
X3Q+JiYgZmlsZVNpemUsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgY29u
dGVudFR5cGUsIENhbGxiYWNrSUQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE2ZTUxMzlkMzllYzAwOGMyOTYyOTI2MzY0
OTVmNDYxMmMwNjQ1YmQuLjA4ZWUwZjA2MWUzYWU0MDBlZWIzOTZkODBiODk4ZWY3NzQzMTdiYTAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAyMC0xMC0yMSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvbnRhY3QgUGlja2VyIEFQSV0gQWRkIHNrZWxl
dG9uIGltcGxlbWVudGF0aW9uIG9mIENvbnRhY3RzTWFuYWdlci5zZWxlY3QoKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4MDUwCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS82OTg2MjE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBEZXZpbiBSb3Vz
c28uCisKKyAgICAgICAgQWRkZWQgdGVzdHMgZm9yIGZhaWx1cmUgY2FzZXMgb2YgdGhlIEFQSS4g
Tm90ZSB0aGF0IHN1Y2Nlc3MgY2FzZXMgYXJlCisgICAgICAgIHVudGVzdGVkIHNpbmNlIG5vIHBs
YXRmb3JtcyBjdXJyZW50bHkgZGlzcGxheSBhIHBpY2tlciBVSSwgYW5kIHRoZQorICAgICAgICBz
cGVjaWZpY2F0aW9uIHN0YXRlcyB0aGF0IHRoZSBwcm9taXNlIHNob3VsZCBmYWlsIGluIHRoaXMg
Y2FzZS4gVGhlCisgICAgICAgIHN1Y2Nlc3MgdGVzdCBjYXNlcyB3aWxsIGJlIGFkZGVkIG9uY2Ug
dGhlIFVJIGlzIGltcGxlbWVudGVkIGZvciBpT1MuCisKKyAgICAgICAgKiBjb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWlu
dmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJl
cXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUuaHRtbDogQWRkZWQuCisK
IDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlucHV0IHBlcmlwaGVyYWxzIHdoZW4g
Zm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRhdGlvbiBtZXNzYWdlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1w
cm9wZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMmFkMWRlZDY1ODdhMWRjMTc2NzNmYmM5YmU4NTk1ODBl
NmU4ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250
YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM0IEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFj
dHMuc2VsZWN0IGZhaWxzIGlmIGludmFsaWQgcHJvcGVydGllcyBvciBvcHRpb25zIGFyZSBzcGVj
aWZpZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDYWxsaW5nIG5hdmlnYXRv
ci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRp
b25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9uLm5hbWUgaXMgIlR5cGVFcnJvciIKK1BBU1Mg
ZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisKK0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3Rz
LnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lm
aWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1
YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCku
CitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBzcGVjaWZpZWQuCitQQVNT
IGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlzaGVkU3VidGVzdCBiZWNh
bWUgdHJ1ZQorCitDYWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52
YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9u
Lm5hbWUgaXMgIlR5cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisK
K0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3Bl
cnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAi
VHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRydWUKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitTaG93IGNvbnRhY3RzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52
YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNTNhZTlhZjlhNDliYjYxNjAwODZhMmU5NjZjMWFlZDVhZjEyNGQ4MAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVj
dC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q29u
dGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Cisg
ICAgICAgIGZpbmlzaGVkU3VidGVzdCA9IGZhbHNlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9u
IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhwcm9wZXJ0aWVzLCBv
cHRpb25zID0ge30pCisgICAgICAgIHsKKyAgICAgICAgICAgIGZpbmlzaGVkU3VidGVzdCA9IGZh
bHNlOworICAgICAgICAgICAgZGVidWcoIkNhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCgpLiIpOworCisgICAgICAgICAgICBjb25zdCBjb250YWN0c0J1dHRvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250YWN0cyIpOworICAgICAgICAgICAgY29udGFjdHNCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhc3luYyAoKSA9PiB7CisgICAgICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChw
cm9wZXJ0aWVzLCBvcHRpb25zKTsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgibmF2
aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBzdWNjZWVkZWQgd2l0aCBpbnZhbGlkIHByb3BlcnRpZXMg
YW5kL29yIG9wdGlvbnMuIik7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7
CisgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5leGNlcHRpb24gPSBleGNlcHRpb247CisgICAg
ICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0
aW9ucyBzcGVjaWZpZWQuIik7CisgICAgICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZXhjZXB0aW9uLm5hbWUiLCAiVHlwZUVycm9yIik7CisgICAgICAgICAgICAgICAgfQor
CisgICAgICAgICAgICAgICAgZmluaXNoZWRTdWJ0ZXN0ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0s
IHsgb25jZTogdHJ1ZSB9KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVF
bGVtZW50KGNvbnRhY3RzQnV0dG9uKTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImZpbmlzaGVkU3VidGVzdCIsICJ0cnVlIiwgcmVz
b2x2ZSkpOworCisgICAgICAgICAgICBkZWJ1ZygiIik7CisgICAgICAgIH0KKworICAgICAgICBh
c3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgZGVzY3JpcHRp
b24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QgZmFp
bHMgaWYgaW52YWxpZCBwcm9wZXJ0aWVzIG9yIG9wdGlvbnMgYXJlIHNwZWNpZmllZC5cbiIpOwor
CisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9w
dGlvbnMoW10pOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2VsZWN0V2l0aFByb3Bl
cnRpZXNBbmRPcHRpb25zKFsiSW52YWxpZCJdKTsKKyAgICAgICAgICAgIGF3YWl0IHRlc3RDb250
YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucygiU3RyaW5nIik7CisgICAgICAgICAg
ICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9wdGlvbnMoWzIzXSk7
CisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9w
dGlvbnMoWyJuYW1lIiwgImVtYWlsIl0sIDUwKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVuVGVzdCgp
PgorICAgICAgICA8YnV0dG9uIGlkPSJjb250YWN0cyI+U2hvdyBjb250YWN0czwvYnV0dG9uPgor
ICAgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXIt
Z2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUwODMzNDMyM2UyYjhmNTY4ZjNlMzIx
Zjk0YTI2YjJhZDk5ZmUwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250
YWN0cy5zZWxlY3QgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIERpZCBub3QgcHJlc2VudCBjb250YWN0IHBpY2tlci4KK1BBU1Mg
ZXhjZXB0aW9uLm5hbWUgaXMgIlNlY3VyaXR5RXJyb3IiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29u
dGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1sIGIv
TGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXIt
Z2VzdHVyZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3MDk1NjQwODNiZjA1MWZjNjdiOGY1N2Q2Yzg1ZDFl
MWFkMWIwNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tlci9j
b250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwKQEAgLTAsMCArMSwyNiBA
QAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZXhwZXJpbWVudGFs
OkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0
cy5zZWxlY3QgcmVxdWlyZXMgYSB1c2VyIGdlc3R1cmUuIik7CisKKyAgICAgICAgICAgIHRyeSB7
CisgICAgICAgICAgICAgICAgYXdhaXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdChbIm5hbWUi
LCAiZW1haWwiLCAidGVsIl0pOworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlByZXNlbnRl
ZCBjb250YWN0IHBpY2tlciB3aXRob3V0IHVzZXIgZ2VzdHVyZS4iKTsKKyAgICAgICAgICAgIH0g
Y2F0Y2ggKGV4Y2VwdGlvbikgeworICAgICAgICAgICAgICAgIHdpbmRvdy5leGNlcHRpb24gPSBl
eGNlcHRpb247CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiRGlkIG5vdCBwcmVzZW50IGNv
bnRhY3QgcGlja2VyLiIpOworICAgICAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZXhjZXB0aW9uLm5hbWUiLCAiU2VjdXJpdHlFcnJvciIpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxi
b2R5IG9ubG9hZD1ydW5UZXN0KCk+PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1zdWJmcmFtZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQwM2EyNWYyNmYwZWVkYjA1MmY3MzhlNTUyOTkyMWRl
ZDIwN2Q2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2Nv
bnRhY3RzLXNlbGVjdC1zdWJmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGhp
cyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBj
YWxsZWQgZnJvbSBhIHN1YmZyYW1lLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBEaWQgbm90IHByZXNlbnQgY29udGFjdCBwaWNrZXIuCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45ZDMwNGY2OGM5YjA0ZjZkY2VmYzk3OWZhMGM2NzI1ZGU3OWJkN2E1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1l
Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgZXhwZXJpbWVudGFsOkNvbnRhY3RQaWNrZXJBUElFbmFibGVkPXRydWUgXSAtLT4K
KzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3Qo
KQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBjYWxsZWQgZnJvbSBhIHN1
YmZyYW1lLiIpOworCisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhID09PSAiZGlk
Q2xpY2tPbkNvbnRhY3RzQnV0dG9uQW5kRmFpbGVkVG9TZWxlY3QiKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkRpZCBub3QgcHJlc2VudCBjb250YWN0IHBpY2tlci4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rv
cigiaWZyYW1lIik7CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVu
dChmcmFtZSk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keSBvbmxvYWQ9cnVu
VGVzdCgpPgorICAgICAgICA8aWZyYW1lIHNyY2RvYz0iCisgICAgICAgICAgICA8Ym9keT4KKyAg
ICAgICAgICAgICAgICA8YnV0dG9uIHN0eWxlPSd3aWR0aDogMTAwJTsgaGVpZ2h0OiAxMzRweDsn
PlNob3cgY29udGFjdHM8L2J1dHRvbj4KKyAgICAgICAgICAgICAgICA8c2NyaXB0PgorICAgICAg
ICAgICAgICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdidXR0
b24nKTsKKyAgICAgICAgICAgICAgICAgICAgYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNr
JywgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsnbmFt
ZSddKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGV4Y2VwdGlvbikgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChleGNlcHRpb24ubmFtZSA9PT0gJ0ludmFsaWRT
dGF0ZUVycm9yJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQucG9z
dE1lc3NhZ2UoJ2RpZENsaWNrT25Db250YWN0c0J1dHRvbkFuZEZhaWxlZFRvU2VsZWN0JywgJyon
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIDwvc2NyaXB0Pgor
ICAgICAgICAgICAgPC9ib2R5PgorICAgICAgICAiPjwvaWZyYW1lPgorICAgIDwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="commit-queue"
          id="428516"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412134</attachid>
            <date>2020-10-22 14:39:34 -0700</date>
            <delta_ts>2020-10-22 18:32:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218050-20201022173933.patch</filename>
            <type>text/plain</type>
            <size>39896</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMwNGNhMzA0ZmMzOWNk
MDk4MzkxNWY1NTEwMTkzNGFiNDQ4MTE4Mi4uZjFmNmIzOWU2OGI4ZTc0YjFjOTA0MWY2MTBkYjRj
N2NhZjJmZDBiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTEwLTIxICBBZGl0
eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNr
ZXIgQVBJXSBBZGQgc2tlbGV0b24gaW1wbGVtZW50YXRpb24gb2YgQ29udGFjdHNNYW5hZ2VyLnNl
bGVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTgwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkg
aXMgdGhlIGludGVyZmFjZSB0aGF0IGFsbG93cyBjbGllbnRzIHRvCisgICAgICAgIHByZXNlbnQg
YSBjb250YWN0IHBpY2tlci4gVGhlIG1ldGhvZCBzaG91bGQgaW1tZWRpYXRlbHkgcmVqZWN0IHdo
ZW4KKyAgICAgICAgY2FsbGVkIGZyb20gYSBzdWJmcmFtZSwgd2hlbiBjYWxsZWQgb3V0c2lkZSB1
c2VyLWludGVyYWN0aW9uIGFuZCB3aGVuCisgICAgICAgIGNhbGxlZCB3aGlsZSBhIGNvbnRhY3Qg
cGlja2VyIGlzIGFscmVhZHkgYmVpbmcgZGlzcGxheWVkLiBGdXJ0aGVybW9yZSwKKyAgICAgICAg
dGhlIHByb21pc2UgaXMgcmVqZWN0ZWQgd2hlbiB0aGUgc3VwcGxpZWQgcHJvcGVydGllcyBhcmUg
ZW1wdHkgb3IKKyAgICAgICAgaW52YWxpZC4KKworICAgICAgICBBZnRlciB0aGUgY29uZGl0aW9u
cyBuZWNlc3NhcnkgZm9yIHRoZSBVSSB0byBiZSBwcmVzZW50ZWQgYXJlIHZlcmlmaWVkLAorICAg
ICAgICBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkgY2FsbHMgaW50byB0aGUgcGFnZSdzIENocm9t
ZSB0byBkaXNwbGF5IHRoZQorICAgICAgICBwaWNrZXIuIFRoZSBVSSBpbXBsZW1lbnRhdGlvbiBv
biBtYWNPUyBhbmQgaU9TIHdpbGwgYmUgZG9uZSBpbgorICAgICAgICBmb3J0aGNvbWluZyBwYXRj
aGVzLgorCisgICAgICAgIFNlZSBodHRwczovL3dpY2cuZ2l0aHViLmlvL2NvbnRhY3QtYXBpL3Nw
ZWMvI2NvbnRhY3RzLW1hbmFnZXItc2VsZWN0CisgICAgICAgIGZvciBtb3JlIGluZm9ybWF0aW9u
LgorCisgICAgICAgIFRlc3RzOiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxp
ZC1wcm9wZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGNvbnRhY3QtcGlj
a2VyL2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbAorICAgICAgICAg
ICAgICAgY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLmh0bWwKKworICAg
ICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9D
b250YWN0SW5mby5oOiBBZGRlZCBlbmNvZGVyIGFuZCBkZWNvZGVyIGZvciBJUEMuCisgICAgICAg
IChXZWJDb3JlOjpDb250YWN0SW5mbzo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRhY3RJbmZvOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIv
Q29udGFjdEluZm8uaWRsOgorICAgICAgICAqIE1vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFj
dFByb3BlcnR5Lmg6CisgICAgICAgICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFjdHNNYW5hZ2VyOjpmcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c01hbmFnZXI6OnNlbGVjdCk6CisgICAgICAg
ICogTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzUmVxdWVzdERhdGEuaDogQWRkZWQuCisKKyAg
ICAgICAgQ29udGFjdHNSZXF1ZXN0RGF0YSBlbmNhcHN1bGF0ZXMgdGhlIGluZm9ybWF0aW9uIHJl
cXVpcmVkIHRvIGRpc3BsYXkgYQorICAgICAgICBwaWNrZXIgVUkuIFRoaXMgaW5jbHVkZXMgdGhl
IHJlcXVlc3RlZCBwcm9wZXJ0aWVzLCB0aGUgVVJMIG9mIHRoZQorICAgICAgICBwcmVzZW50aW5n
IHNpdGUsIGFuZCB3aGV0aGVyIG11bHRpcGxlIGNvbnRhY3Qgc2VsZWN0aW9uIHNob3VsZCBiZSBh
bGxvd2VkLgorCisgICAgICAgIChXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhOjplbmNvZGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YTo6ZGVjb2RlKToK
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
cGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzaG93Q29udGFjdFBp
Y2tlcik6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNs
aWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzaG93Q29udGFjdFBpY2tl
cik6CisKIDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlucHV0IHBlcmlwaGVyYWxz
IHdoZW4gZm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRhdGlvbiBtZXNzYWdlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGJiYjdlZmMyYzEzZTM4YmJiZjcyNzA0MmUwNDMxYmQyY2U3Mjc2NDMuLjg1Yzk5
YjkyMjFkOTQ1MTIxNjYzOGM3YjAzOTdmNmY3ZDY1NWNiNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMjAtMTAtMjEgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb250YWN0IFBpY2tlciBBUEldIEFkZCBza2VsZXRvbiBpbXBsZW1lbnRhdGlv
biBvZiBDb250YWN0c01hbmFnZXIuc2VsZWN0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODA1MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjk4
NjIxODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFk
ZGVkIHRoZSBuZWNlc3NhcnkgcGx1bWJpbmcgaW4gb3JkZXIgZm9yIHRoZSBVSVByb2Nlc3MgdG8g
ZGlzcGxheSBhCisgICAgICAgIGNvbnRhY3QgcGlja2VyIGFmdGVyIGEgY2FsbCB0byBDb250YWN0
c01hbmFnZXIuc2VsZWN0KCkgaXMgbWFkZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnNob3dDb250YWN0UGlja2VyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpzaG93Q29udGFjdFBpY2tlcik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3dDb250YWN0UGlja2Vy
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6c2hvd0NvbnRhY3RQaWNrZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjAtMTAtMjAgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0
aGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFByZXZlbnQgcHJlc2VudGF0aW9uIG9mIGlu
cHV0IHBlcmlwaGVyYWxzIHdoZW4gZm9jdXNpbmcgZm9ybSBjb250cm9scyB3aXRoIGEgdmFsaWRh
dGlvbiBtZXNzYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCBhODQ3YjA1YWI0NGU1Y2Q0YTcwNmJl
MzA4YzhiNjQ1YjUyNTQwMGZlLi5mYjIxOTZiMWQwYmNkZGZkMDE5NTZjMDQyYWExYmFmOGEyNzA2
ZTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE5LDYgKzE5LDEwIEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2NhY2hlL0RPTUNhY2hlRW5naW5l
LmgKICAgICBNb2R1bGVzL2NhY2hlL1JldHJpZXZlUmVjb3Jkc09wdGlvbnMuaAogCisgICAgTW9k
dWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5oCisgICAgTW9kdWxlcy9jb250YWN0LXBp
Y2tlci9Db250YWN0UHJvcGVydHkuaAorICAgIE1vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFj
dHNSZXF1ZXN0RGF0YS5oCisKICAgICBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETUNsaWVudC5o
CiAKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaAppbmRleCBlZmQ0
ZDQzYmU1ZWI1NWRjZmQ1MDBhMTdmNWFiOWE2MmM5N2M5ZjcxLi4xMmZmNTE0ZWFmNTRlMzFlYjU4
M2I0YjE5N2JkNDNmOTYwZWU3MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NvbnRhY3QtcGlja2VyL0NvbnRhY3RJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
NCw2ICszNSwzOCBAQCBzdHJ1Y3QgQ29udGFjdEluZm8gewogICAgIFZlY3RvcjxTdHJpbmc+IG5h
bWU7CiAgICAgVmVjdG9yPFN0cmluZz4gZW1haWw7CiAgICAgVmVjdG9yPFN0cmluZz4gdGVsOwor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDb250YWN0SW5m
bz4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IENvbnRhY3RJbmZvOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNv
ZGVyIDw8IG5hbWU7CisgICAgZW5jb2RlciA8PCBlbWFpbDsKKyAgICBlbmNvZGVyIDw8IHRlbDsK
IH0KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPENvbnRhY3RJbmZvPiBDb250
YWN0SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8VmVjdG9y
PFN0cmluZz4+IG5hbWU7CisgICAgZGVjb2RlciA+PiBuYW1lOworICAgIGlmICghbmFtZSkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPFZlY3RvcjxTdHJpbmc+
PiBlbWFpbDsKKyAgICBkZWNvZGVyID4+IGVtYWlsOworICAgIGlmICghZW1haWwpCisgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxWZWN0b3I8U3RyaW5nPj4gdGVs
OworICAgIGRlY29kZXIgPj4gdGVsOworICAgIGlmICghdGVsKQorICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworCisgICAgcmV0dXJuIHt7ICpuYW1lLCAqZW1haWwsICp0ZWwgfX07Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY29udGFjdC1waWNrZXIvQ29udGFjdEluZm8uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jb250YWN0LXBpY2tlci9Db250YWN0SW5mby5pZGwKaW5kZXggMTYzNzcxMjljOGJkMTQ0NTU1
MDRiMGE5NTFkNjY4MzIwMzAwNWYyMi4uMjI5YWJmYTFkYzc1Mjc4MTgyYjM1ZDFmZmE3NDQ1OGI4
M2JlNDQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tl
ci9Db250YWN0SW5mby5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBp
Y2tlci9Db250YWN0SW5mby5pZGwKQEAgLTI1LDcgKzI1LDkgQEAKIAogLy8gaHR0cHM6Ly93aWNn
LmdpdGh1Yi5pby9jb250YWN0LWFwaS8KIAotZGljdGlvbmFyeSBDb250YWN0SW5mbyB7CitbCisg
ICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdIGRpY3Rpb25hcnkgQ29udGFjdEluZm8gewogICAg
IHNlcXVlbmNlPFVTVlN0cmluZz4gbmFtZTsKICAgICBzZXF1ZW5jZTxVU1ZTdHJpbmc+IGVtYWls
OwogICAgIHNlcXVlbmNlPFVTVlN0cmluZz4gdGVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdFByb3BlcnR5LmgKaW5kZXggYzYxMWI5
ODc1YmJiMjJlNjFlMDRhZTBjYjFiOTVmNDg5OGFlNTYxNi4uOTBhNTIxNzY2YTU5NzAyMzFiZThl
YTA4N2Q2M2I0NDJmYTUyZGIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
b250YWN0LXBpY2tlci9Db250YWN0UHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RQcm9wZXJ0eS5oCkBAIC0yNSw4ICsyNSwyMyBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBDb250YWN0UHJvcGVydHkgOiB1aW50OF90IHsgRW1h
aWwsIE5hbWUsIFRlbCB9OwogCiB9CisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eT4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkNvbnRhY3RQcm9wZXJ0eSwKKyAg
ICAgICAgV2ViQ29yZTo6Q29udGFjdFByb3BlcnR5OjpFbWFpbCwKKyAgICAgICAgV2ViQ29yZTo6
Q29udGFjdFByb3BlcnR5OjpOYW1lLAorICAgICAgICBXZWJDb3JlOjpDb250YWN0UHJvcGVydHk6
OlRlbAorICAgID47Cit9OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5jcHAKaW5kZXggYWY5OTFhNTUyN2Y4
YmY2ODZiMTFiYzI1MzVjZDFiMmE0NTEwYzZmNS4uZWE0YjZiZWRlMTJiMTgzMjJiMzE0ZjNmZTk1
ODM3Y2U0ZTMzYjc5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0
LXBpY2tlci9Db250YWN0c01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5hZ2VyLmNwcApAQCAtMjYsMTIgKzI2LDIyIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ29udGFjdHNNYW5hZ2VyLmgiCiAKKyNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb250YWN0SW5mby5oIgogI2luY2x1ZGUgIkNvbnRh
Y3RQcm9wZXJ0eS5oIgorI2luY2x1ZGUgIkNvbnRhY3RzUmVxdWVzdERhdGEuaCIKICNpbmNsdWRl
ICJDb250YWN0c1NlbGVjdE9wdGlvbnMuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1
ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSlNDb250YWN0SW5mby5oIgogI2luY2x1ZGUgIkpTRE9N
UHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiTmF2aWdhdG9yLmgiCisjaW5jbHVkZSAiUGFn
ZS5oIgorI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9yLmgiCisjaW5jbHVkZSA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNp
bmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDksNiArNTksMTIgQEAgQ29udGFjdHNNYW5hZ2VyOjpDb250YWN0
c01hbmFnZXIoTmF2aWdhdG9yJiBuYXZpZ2F0b3IpCiAKIENvbnRhY3RzTWFuYWdlcjo6fkNvbnRh
Y3RzTWFuYWdlcigpID0gZGVmYXVsdDsKIAorCitGcmFtZSogQ29udGFjdHNNYW5hZ2VyOjpmcmFt
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbmF2aWdhdG9yID8gbV9uYXZpZ2F0b3ItPmZyYW1l
KCkgOiBudWxscHRyOworfQorCiBOYXZpZ2F0b3IqIENvbnRhY3RzTWFuYWdlcjo6bmF2aWdhdG9y
KCkKIHsKICAgICByZXR1cm4gbV9uYXZpZ2F0b3IuZ2V0KCk7CkBAIC02Miw5ICs3OCw0MyBAQCB2
b2lkIENvbnRhY3RzTWFuYWdlcjo6Z2V0UHJvcGVydGllcyhSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCiAKIHZvaWQgQ29udGFjdHNNYW5hZ2VyOjpzZWxlY3QoY29uc3QgVmVjdG9yPENv
bnRhY3RQcm9wZXJ0eT4mIHByb3BlcnRpZXMsIGNvbnN0IENvbnRhY3RzU2VsZWN0T3B0aW9ucyYg
b3B0aW9ucywgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIFVOVVNFRF9Q
QVJBTShwcm9wZXJ0aWVzKTsKLSAgICBVTlVTRURfUEFSQU0ob3B0aW9ucyk7Ci0gICAgcHJvbWlz
ZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yKTsKKyAgICBhdXRvKiBmcmFtZSA9IHRoaXMtPmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSB8fCAhZnJhbWUtPmlzTWFpbkZyYW1lKCkgfHwgIWZyYW1l
LT5kb2N1bWVudCgpIHx8ICFmcmFtZS0+cGFnZSgpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVj
dChJbnZhbGlkU3RhdGVFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
IVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgeworICAgICAg
ICBwcm9taXNlLT5yZWplY3QoU2VjdXJpdHlFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBpZiAobV9jb250YWN0UGlja2VySXNTaG93aW5nKSB7CisgICAgICAgIHByb21pc2Ut
PnJlamVjdChJbnZhbGlkU3RhdGVFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAocHJvcGVydGllcy5pc0VtcHR5KCkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KFR5
cGVFcnJvcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDb250YWN0c1JlcXVlc3RE
YXRhIHJlcXVlc3REYXRhOworICAgIHJlcXVlc3REYXRhLnByb3BlcnRpZXMgPSBwcm9wZXJ0aWVz
OworICAgIHJlcXVlc3REYXRhLm11bHRpcGxlID0gb3B0aW9ucy5tdWx0aXBsZTsKKyAgICByZXF1
ZXN0RGF0YS51cmwgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkudHJ1bmNhdGVkRm9yVXNlQXNC
YXNlKCkuc3RyaW5nKCk7CisKKyAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcgPSB0cnVlOwor
CisgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERh
dGEsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKSwgdGhpc10gKE9wdGlvbmFsPFZlY3RvcjxD
b250YWN0SW5mbz4+JiYgaW5mbykgeworICAgICAgICBtX2NvbnRhY3RQaWNrZXJJc1Nob3dpbmcg
PSBmYWxzZTsKKyAgICAgICAgaWYgKGluZm8pIHsKKyAgICAgICAgICAgIHByb21pc2UtPnJlc29s
dmU8SURMU2VxdWVuY2U8SURMRGljdGlvbmFyeTxDb250YWN0SW5mbz4+PigqaW5mbyk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBwcm9taXNlLT5yZWplY3QoVW5r
bm93bkVycm9yKTsKKyAgICB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNNYW5h
Z2VyLmgKaW5kZXggOTM3NDEyMzRiMmVlYzQzMGY0ZGFlN2JiOTEwNDhmNjM3NGE2MjI5NC4uZDUx
Zjk3NTRjMmNlYjg5OTRjOThiZGUzYTFkMTViMjU0MWFhNzNjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jb250YWN0LXBpY2tlci9Db250YWN0c01hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NvbnRhY3QtcGlja2VyL0NvbnRhY3RzTWFuYWdlci5oCkBA
IC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJv
bWlzZTsKK2NsYXNzIEZyYW1lOwogY2xhc3MgTmF2aWdhdG9yOwogCiBlbnVtIGNsYXNzIENvbnRh
Y3RQcm9wZXJ0eSA6IHVpbnQ4X3Q7CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPENvbnRhY3RzTWFuYWdlcj4gY3JlYXRlKE5hdmlnYXRvciYpOwogICAgIH5Db250YWN0
c01hbmFnZXIoKTsKIAorICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OwogICAgIE5hdmlnYXRvciog
bmF2aWdhdG9yKCk7CiAKICAgICB2b2lkIGdldFByb3BlcnRpZXMoUmVmPERlZmVycmVkUHJvbWlz
ZT4mJik7CkBAIC01NCw2ICs1Niw3IEBAIHByaXZhdGU6CiAgICAgQ29udGFjdHNNYW5hZ2VyKE5h
dmlnYXRvciYpOwogCiAgICAgV2Vha1B0cjxOYXZpZ2F0b3I+IG1fbmF2aWdhdG9yOworICAgIGJv
b2wgbV9jb250YWN0UGlja2VySXNTaG93aW5nIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY29udGFjdC1w
aWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jb250
YWN0LXBpY2tlci9Db250YWN0c1JlcXVlc3REYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRmMzFkOTIxZDI5
NGQ5NzJlZTUwN2ZiODdjMzA1YjZiOTY4NDg1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY29udGFjdC1waWNrZXIvQ29udGFjdHNSZXF1ZXN0RGF0YS5oCkBAIC0w
LDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNvbnRh
Y3RQcm9wZXJ0eS5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhIHsKKyAgICBWZWN0b3I8Q29udGFjdFByb3Bl
cnR5PiBwcm9wZXJ0aWVzOworICAgIGJvb2wgbXVsdGlwbGUgeyBmYWxzZSB9OworICAgIFN0cmlu
ZyB1cmw7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENv
bnRhY3RzUmVxdWVzdERhdGE+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBDb250YWN0c1JlcXVlc3REYXRhOjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IHByb3BlcnRpZXM7CisgICAgZW5jb2RlciA8
PCBtdWx0aXBsZTsKKyAgICBlbmNvZGVyIDw8IHVybDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK09wdGlvbmFsPENvbnRhY3RzUmVxdWVzdERhdGE+IENvbnRhY3RzUmVxdWVzdERhdGE6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPFZlY3RvcjxDb250YWN0
UHJvcGVydHk+PiBwcm9wZXJ0aWVzOworICAgIGRlY29kZXIgPj4gcHJvcGVydGllczsKKyAgICBp
ZiAoIXByb3BlcnRpZXMpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRp
b25hbDxib29sPiBtdWx0aXBsZTsKKyAgICBkZWNvZGVyID4+IG11bHRpcGxlOworICAgIGlmICgh
bXVsdGlwbGUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxT
dHJpbmc+IHVybDsKKyAgICBkZWNvZGVyID4+IHVybDsKKyAgICBpZiAoIXVybCkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiB7eyAqcHJvcGVydGllcywgKm11bHRp
cGxlLCAqdXJsIH19OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmQ3NDAzODMwNWY2MTk4ZDkxOGUzNjhhNDQ0ZmRk
NzgyYWRmOWFiNy4uYjM4MTM0YzY0Nzc5YWFjN2EyMmY0NTE2N2RjZTc5NGQwZTVlMmY0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTA5OSw2ICs1MDk5LDcgQEAKIAkJRTRFOEI0RjUyMTZCOTU2NTAwQjg4MzREIC8qIEZvbnRD
YXNjYWRlRGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0RThCNEYyMjE2QjhCNjAwMEI4ODM0RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0
aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTRFOTRENjEyMkZGMTU4QTAwREQxOTFGIC8qIENvbXBsZXhMaW5lTGF5b3V0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEExQUM3ODIyRkFGRDUwMDAx
N0I3NUIgLyogQ29tcGxleExpbmVMYXlvdXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFNEY5RUVGMzE1NkRBMDA3MDBEMjNFN0UgLyogU3R5bGVT
aGVldENvbnRlbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNEY5RUVGMTE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTUwNjIwODQy
NTQwOTE5QzAwQzQzMDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU1MDYyMDgzMjU0MDkxOUIwMEM0MzA5MSAv
KiBDb250YWN0c1JlcXVlc3REYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTUxNjY5OTEyMEZGOTkxODAwOUQyQzI3IC8qIExpc3RCdXR0b25B
cnJvd0AyeC5wbmcgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEU1MTY2OThGMjBGRjk5MTYwMDlEMkMyNyAvKiBMaXN0QnV0dG9uQXJyb3dAMngucG5nICov
OyB9OwogCQlFNTE3NjcwMzIwQjg4QzE0MDBENDExNjcgLyogRGF0YUxpc3RTdWdnZXN0aW9uSW5m
b3JtYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU1MTc2NzAyMjBCODhDMTQwMEQ0MTE2NyAvKiBEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdGlv
bi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU1
MUQ2QTFGMjRFMUUyNTUwMDg5MUNGQSAvKiBEYXRlVGltZUZpZWxkc1N0YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNTFENkExRDI0RTFFMjU1MDA4
OTFDRkEgLyogRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oICovOyB9OwpAQCAtMTYxMTEsNiArMTYxMTIs
NyBAQAogCQlFNEY5RUVGMDE1NkQ4NEM0MDBEMjNFN0UgLyogU3R5bGVTaGVldENvbnRlbnRzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlU2hlZXRDb250ZW50
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0RjlFRUYxMTU2RDg0QzQwMEQy
M0U3RSAvKiBTdHlsZVNoZWV0Q29udGVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3R5bGVTaGVldENvbnRlbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU0RkI0QjM1MjM5QkVCMTAwMDNDMzM2QSAvKiBMYXlvdXRJbnRlZ3JhdGlvbklubGluZUNvbnRl
bnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW50ZWdyYXRpb25JbmxpbmVDb250ZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTUwNjIwODMyNTQwOTE5QjAwQzQz
MDkxIC8qIENvbnRhY3RzUmVxdWVzdERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFjdHNSZXF1
ZXN0RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNTE2Njk4RjIwRkY5OTE2
MDA5RDJDMjcgLyogTGlzdEJ1dHRvbkFycm93QDJ4LnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJMaXN0QnV0dG9u
QXJyb3dAMngucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTUxNzY3MDIyMEI4
OEMxNDAwRDQxMTY3IC8qIERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU1MUE4MURFMTcyOThENzcwMEJGQ0E2MSAvKiBKU1BlcmZvcm1hbmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGVyZm9ybWFuY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjg2MDIsNiArMjg2MDQsNyBAQAogCQkJ
CUU1OTZERDJFMjUxOTAzRUYwMEMyNzVBNyAvKiBDb250YWN0c01hbmFnZXIuY3BwICovLAogCQkJ
CUU1OTZERDJEMjUxOTAzRUYwMEMyNzVBNyAvKiBDb250YWN0c01hbmFnZXIuaCAqLywKIAkJCQlF
NTk2REQyRjI1MTkwM0VGMDBDMjc1QTcgLyogQ29udGFjdHNNYW5hZ2VyLmlkbCAqLywKKwkJCQlF
NTA2MjA4MzI1NDA5MTlCMDBDNDMwOTEgLyogQ29udGFjdHNSZXF1ZXN0RGF0YS5oICovLAogCQkJ
CUU1OTZERDMzMjUxOTA0MTQwMEMyNzVBNyAvKiBDb250YWN0c1NlbGVjdE9wdGlvbnMuaCAqLywK
IAkJCQlFNTk2REQzNDI1MTkwNDE0MDBDMjc1QTcgLyogQ29udGFjdHNTZWxlY3RPcHRpb25zLmlk
bCAqLywKIAkJCQlFNTk2REQyODI1MTkwM0QyMDBDMjc1QTcgLyogTmF2aWdhdG9yK0NvbnRhY3Rz
LmlkbCAqLywKQEAgLTMwOTEwLDYgKzMwOTEzLDcgQEAKIAkJCQlFNTk2REQ1RDI1MUJCMDgyMDBD
Mjc1QTcgLyogQ29udGFjdEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCUU1OTZERDU4MjUxQkFD
NEEwMEMyNzVBNyAvKiBDb250YWN0UHJvcGVydHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUU1OTZE
RDMwMjUxOTAzRUYwMEMyNzVBNyAvKiBDb250YWN0c01hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCUU1MDYyMDg0MjU0MDkxOUMwMEM0MzA5MSAvKiBDb250YWN0c1JlcXVlc3REYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNTk2REQzNTI1MTkwNDE0MDBDMjc1QTcgLyogQ29udGFjdHNTZWxl
Y3RPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NzIxQzA5NzdEM0MwMDA1ODI2RDkg
LyogQ29udGFpbmVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFBMTQ3MDgxMTEwMkIxNTAw
RUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcAppbmRleCBkYjA3MGJjYzdlMjY2MDQ3N2ZjMGM2YzI1ODBhNThiZDExZWMx
MTg5Li43YzcxMDAxNTU3MjQxN2VmMGIzNjljZGQ3OTE5MGVkYjhjNWQxNjNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCkBAIC0yMyw2ICsyMyw4IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAKICNp
bmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJDb250YWN0SW5mby5oIgorI2luY2x1
ZGUgIkNvbnRhY3RzUmVxdWVzdERhdGEuaCIKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50VHlwZS5oIgpAQCAtNDcyLDYgKzQ3
NCwxMSBAQCB2b2lkIENocm9tZTo6c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVS
TCYgc2hhcmVEYXRhLCBDb21wbGV0aW9uSGFuZGxlcgogICAgIG1fY2xpZW50LnNob3dTaGFyZVNo
ZWV0KHNoYXJlRGF0YSwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCit2b2lkIENocm9tZTo6c2hv
d0NvbnRhY3RQaWNrZXIoY29uc3QgQ29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPENvbnRhY3RJbmZvPj4mJik+JiYg
Y2FsbGJhY2spCit7CisgICAgbV9jbGllbnQuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEs
IFdURk1vdmUoY2FsbGJhY2spKTsKK30KKwogdm9pZCBDaHJvbWU6OmxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgRmlsZUljb25Mb2FkZXImIGxvYWRlcikK
IHsKICAgICBtX2NsaWVudC5sb2FkSWNvbkZvckZpbGVzKGZpbGVuYW1lcywgbG9hZGVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oCmluZGV4IGE1Y2MxYjEzYmIwMDIyMTczMmM3NjlkOWU0NGMyYTcyNDcwZTMz
ZjMuLjA2ZTUzNDI2Y2YzNzM0ZWNkNGU0YTZhYmExYzc5MTVjZDdkNzYzNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaApAQCAtNTcsNiArNTcsOCBAQCBjbGFzcyBQb3B1cE1lbnVDbGllbnQ7CiBjbGFzcyBQ
b3B1cE9wZW5pbmdPYnNlcnZlcjsKIGNsYXNzIFNlYXJjaFBvcHVwTWVudTsKIAorc3RydWN0IENv
bnRhY3RJbmZvOworc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgRGF0ZVRpbWVD
aG9vc2VyUGFyYW1ldGVyczsKIHN0cnVjdCBTaGFyZURhdGFXaXRoUGFyc2VkVVJMOwogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwpAQCAtMTYxLDYgKzE2Myw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKICAgICB2b2lkIHNob3dTaGFy
ZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKKyAgICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IENvbnRhY3RzUmVxdWVz
dERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxDb250YWN0SW5m
bz4+JiYpPiYmKTsKICAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mLCBGaWxlSWNvbkxvYWRlciYpOwogCiAgICAgdm9pZCBkaXNwYXRjaERpc2FibGVkQWRhcHRh
dGlvbnNEaWRDaGFuZ2UoY29uc3QgT3B0aW9uU2V0PERpc2FibGVkQWRhcHRhdGlvbnM+JikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCBlMDk2NzMyZWM1YTIzYTA0OTgy
OThhMDUyZWViZTUwYWIxNDA5MmE4Li5hNmY4MmY1MTc5NmU1YTg1OGUzYmJmMDhiNTQwYmJmYjY3
NDhlYjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTIzLDYgKzIzLDcgQEAK
IAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdXRvcGxheUV2ZW50Lmgi
CisjaW5jbHVkZSAiQ29udGFjdEluZm8uaCIKICNpbmNsdWRlICJDdXJzb3IuaCIKICNpbmNsdWRl
ICJEYXRhYmFzZURldGFpbHMuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9u
UGVybWlzc2lvblN0YXRlLmgiCkBAIC0xMTMsNiArMTE0LDcgQEAgY2xhc3MgV2lkZ2V0OwogY2xh
c3MgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2s7CiAjZW5k
aWYKIAorc3RydWN0IENvbnRhY3RzUmVxdWVzdERhdGE7CiBzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0
UmVzdWx0czsKIHN0cnVjdCBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzOwogc3RydWN0IEdyYXBo
aWNzRGV2aWNlQWRhcHRlcjsKQEAgLTMwMiw2ICszMDQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soZmFsc2Up
OyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IENvbnRhY3RzUmVx
dWVzdERhdGEmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPENv
bnRhY3RJbmZvPj4mJik+JiYgY2FsbGJhY2spIHsgY2FsbGJhY2soV1RGOjpudWxsb3B0KTsgfQog
ICAgIAogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3Bl
Y2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCmluZGV4IDViZWZjNGRmMjAwMWY4N2E5YTdlZWI0ZDY4N2YxM2U5NDZk
NzAzZjMuLmEwNmM0MzUyY2ExMDczY2QzMzc0ZjkwZGVkZTUyOTg1ZjI3OGU1OTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTM1LDYgKzM1LDggQEAKICNpbmNsdWRlICJX
ZWJQb3B1cE1lbnVQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9Db250YWN0SW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQ29udGFjdHNSZXF1ZXN0RGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0VkaXRvckNsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KQEAg
LTI1Myw2ICsyNTUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlUnVuT3Bl
blBhbmVsKFdlYlBhZ2VQcm94eSosIFdlYkZyYW1lUHJveHkqLCBjb25zdCBGcmFtZUluZm9EYXRh
JiwgQVBJOjpPcGVuUGFuZWxQYXJhbWV0ZXJzKiwgV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQ
cm94eSopIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3dTaGFyZVNoZWV0
KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25I
YW5kbGVyPHZvaWQgKGJvb2wpPiYmKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwg
V1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250
YWN0SW5mbz4+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKFdU
Rjo6bnVsbG9wdCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCBkZjRmYmY2NGJlNzYzOGRhZmQ0NWMyYmU5NDkxZWZmN2IzYzM1
MmJjLi5kODg1NTFhZDIxYjMzZDg1MjdiY2IwNGIxYTEwNDI0YTQyYTMyMjI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU5NTAsNiArNTk1MCwxMiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2hvd1NoYXJlU2hlZXQoY29uc3QgU2hhcmVEYXRhV2l0aFBhcnNl
ZFVSTCYgc2hhcmVEYXRhLCBDb21wbAogICAgIE1FU1NBR0VfQ0hFQ0sobV9wcm9jZXNzLCBzaGFy
ZURhdGEuZmlsZXMuaXNFbXB0eSgpIHx8IG1fcHJlZmVyZW5jZXMtPndlYlNoYXJlRmlsZUFQSUVu
YWJsZWQoKSk7CiAgICAgcGFnZUNsaWVudCgpLnNob3dTaGFyZVNoZWV0KHNoYXJlRGF0YSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2hvd0Nv
bnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRh
Y3RJbmZvPj4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgTUVTU0FHRV9DSEVDSyht
X3Byb2Nlc3MsIG1fcHJlZmVyZW5jZXMtPmNvbnRhY3RQaWNrZXJBUElFbmFibGVkKCkpOworICAg
IHBhZ2VDbGllbnQoKS5zaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0RGF0YSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworfQogICAgIAogdm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUo
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5k
ZXggZTQ3Y2I1ZTQxZjM5ZGRiNzlmZDUxZDc1MWY5M2FlZjNkY2JjMjU1YS4uYzU0MzJiMzg1NjFi
N2NhNjFiYTBlY2EwNzg5NDUwOWE3YTI4ODRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKQEAgLTI0Myw2ICsyNDMsOCBAQCBzdHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVz
dDsKIHN0cnVjdCBBdHRyaWJ1dGVkU3RyaW5nOwogc3RydWN0IEJhY2tGb3J3YXJkSXRlbUlkZW50
aWZpZXI7CiBzdHJ1Y3QgQ29tcG9zaXRpb25IaWdobGlnaHQ7CitzdHJ1Y3QgQ29udGFjdEluZm87
CitzdHJ1Y3QgQ29udGFjdHNSZXF1ZXN0RGF0YTsKIHN0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1
bHRzOwogc3RydWN0IERhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uOwogc3RydWN0IERhdGVU
aW1lQ2hvb3NlclBhcmFtZXRlcnM7CkBAIC0xOTQ5LDYgKzE5NTEsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0
YSYmLCBjb25zdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJik7CiAgICAgYm9vbCBkaWRD
aG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhJbWFnZVRyYW5zY29kaW5nKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBmaWxlVVJMcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsbG93ZWRNSU1FVHlwZXMp
OwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBh
cnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc2hv
d0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4m
Jik+JiYpOwogICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1l
LCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWlu
dDY0X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsK
ICAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5n
JiBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFs
Qnl0ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGFEZWxheWVkUmVwbHkmJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNDIxNDVmMmM1YzA0YjMzOGFiMDQx
ZmIwNmQ2OTY4NmMyZjU3OTE1Mi4uMDk0NGE5MDM4YTFhYjE3ODlmZGVjZjg2YjEwN2UyN2YxMzAw
MTNlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtNjksNiArNjksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAg
IFBhZ2VEaWRTY3JvbGwoKQogICAgIFJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIHN0cnVj
dCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRlcnMpCiAgICAgU2hvd1NoYXJl
U2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwgc2hhcmVEYXRhKSAt
PiAoYm9vbCBncmFudGVkKSBBc3luYworICAgIFNob3dDb250YWN0UGlja2VyKHN0cnVjdCBXZWJD
b3JlOjpDb250YWN0c1JlcXVlc3REYXRhIHJlcXVlc3REYXRhKSAtPiAoT3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4gaW5mbykgQXN5bmMKICAgICBQcmludEZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1v
ZGFsKCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6Oklu
dFJlY3Qgc2Nyb2xsZXJUaHVtYikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNzZjMGQxZmM4
YWEwOTBkZGU0NjJjYjIxZTI0YTIzNGYxMDBhY2ZlMS4uNzA4YTVmMjljYmM4YWVmNWI1Y2U1MTg2
ZTJmZDNmMjczYTg3ZjkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTgyMiw2ICs4MjIs
MTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNob3dTaGFyZVNoZWV0KFNoYXJlRGF0YVdpdGhQ
YXJzZWRVUkwmIHNoYXJlRGF0YSwgQ29tcGxldGkKICAgICBtX3BhZ2Uuc2hvd1NoYXJlU2hlZXQo
c2hhcmVEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxX
ZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmIGNhbGxiYWNrKQoreworICAgIG1fcGFnZS5zaG93
Q29udGFjdFBpY2tlcihyZXF1ZXN0RGF0YSwgV1RGTW92ZShjYWxsYmFjaykpOworfQorCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6bG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
ZmlsZW5hbWVzLCBGaWxlSWNvbkxvYWRlciYgbG9hZGVyKQogewogICAgIGxvYWRlci5pY29uTG9h
ZGVkKGNyZWF0ZUljb25Gb3JGaWxlcyhmaWxlbmFtZXMpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCA0NmYwZTlhZTViZmE1NGExMzdlM2JiNDI1NjNlMmJhYzE3MjVmNmM4Li4yM2NjNDAzYTdiYWFl
ZDU4NjMyNjFmZDU3MmZlY2RkNzNkMjVkZjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMDAs
NiArMjAwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIHNob3dTaGFyZVNo
ZWV0KFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOworICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29u
c3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8
dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJikgZmluYWw7
CiAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29y
ZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAyNjBhMGUyYWNiNGJlOWVhN2IzZDBmM2FiY2ZkMDYwMmY1MTQ3
MmI1Li5kNjQ4YzNjOWVjNDk3YTY2Yjc0YTlhOGM0N2EwNzA0NTU3NTE0ZTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMTQ4LDYgKzE0OCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ29tbW9uVk0uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRhY3RzUmVxdWVzdERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFUcmFuc2Zlci5oPgpAQCAtNjg5NCw2ICs2ODk1LDEx
IEBAIHZvaWQgV2ViUGFnZTo6c2hvd1NoYXJlU2hlZXQoU2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYg
c2hhcmVEYXRhLCBXVEY6OkNvbXBsZXRpb25ICiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNob3dTaGFyZVNoZWV0KFdURk1vdmUoc2hhcmVEYXRhKSksIFdU
Rk1vdmUoY2FsbGJhY2spKTsKIH0KIAordm9pZCBXZWJQYWdlOjpzaG93Q29udGFjdFBpY2tlcihj
b25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4m
JiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6U2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
Cit9CisKIFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UgV2ViUGFnZTo6cmVxdWVzdERP
TVBhc3RlQWNjZXNzKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllcikKIHsKICAgICBhdXRv
IHJlc3BvbnNlID0gV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2Vz
dHVyZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAx
ZmYzNWZiMDkzNmE1Yzc3MTZhYTRjMDEyZDI2ZTA3M2I0NDc4ZTk1Li4wMmE1ZmFlMzc2MjI3MjQy
MWQ5ODY3MzQ1M2IxZDA3YzhlOWM2OWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0yMTMsNiArMjEzLDggQEAgc3RydWN0IEF0dHJpYnV0ZWRTdHJp
bmc7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsKIHN0cnVjdCBDb21wb3NpdGlv
bkhpZ2hsaWdodDsKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKK3N0cnVjdCBDb250YWN0
SW5mbzsKK3N0cnVjdCBDb250YWN0c1JlcXVlc3REYXRhOwogc3RydWN0IERpY3RhdGlvbkFsdGVy
bmF0aXZlOwogc3RydWN0IEVsZW1lbnRDb250ZXh0Owogc3RydWN0IEdsb2JhbEZyYW1lSWRlbnRp
ZmllcjsKQEAgLTEyNDAsNiArMTI0Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBz
aG93U2hhcmVTaGVldChXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjYWxsYmFjayk7CisgICAgdm9pZCBzaG93Q29udGFjdFBp
Y2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiYmKT4mJik7CiAg
ICAgCiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICB2b2lkIGluc2VydEF0dGFj
aG1lbnQoY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyLCBPcHRpb25hbDx1aW50NjRfdD4mJiBmaWxl
U2l6ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSwg
Q2FsbGJhY2tJRCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTZlNTEzOWQzOWVjMDA4YzI5NjI5MjYzNjQ5NWY0NjEyYzA2
NDViZC4uMDhlZTBmMDYxZTNhZTQwMGVlYjM5NmQ4MGI4OThlZjc3NDMxN2JhMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDIwLTEwLTIxICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxl
LmNvbT4KKworICAgICAgICBbQ29udGFjdCBQaWNrZXIgQVBJXSBBZGQgc2tlbGV0b24gaW1wbGVt
ZW50YXRpb24gb2YgQ29udGFjdHNNYW5hZ2VyLnNlbGVjdCgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTgwNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzY5ODYyMTg2PgorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAg
ICAgICBBZGRlZCB0ZXN0cyBmb3IgZmFpbHVyZSBjYXNlcyBvZiB0aGUgQVBJLiBOb3RlIHRoYXQg
c3VjY2VzcyBjYXNlcyBhcmUKKyAgICAgICAgdW50ZXN0ZWQgc2luY2Ugbm8gcGxhdGZvcm1zIGN1
cnJlbnRseSBkaXNwbGF5IGEgcGlja2VyIFVJLCBhbmQgdGhlCisgICAgICAgIHNwZWNpZmljYXRp
b24gc3RhdGVzIHRoYXQgdGhlIHByb21pc2Ugc2hvdWxkIGZhaWwgaW4gdGhpcyBjYXNlLiBUaGUK
KyAgICAgICAgc3VjY2VzcyB0ZXN0IGNhc2VzIHdpbGwgYmUgYWRkZWQgb25jZSB0aGUgVUkgaXMg
aW1wbGVtZW50ZWQgZm9yIGlPUy4KKworICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtaW52YWxpZC1wcm9w
ZXJ0aWVzLWFuZC1vcHRpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2Vy
L2NvbnRhY3RzLXNlbGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBjb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNl
ci1nZXN0dXJlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3QtcGlja2VyL2NvbnRhY3Rz
LXNlbGVjdC1zdWJmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1zdWJmcmFtZS5odG1sOiBBZGRlZC4KKwogMjAyMC0xMC0y
MCAgQWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10g
UHJldmVudCBwcmVzZW50YXRpb24gb2YgaW5wdXQgcGVyaXBoZXJhbHMgd2hlbiBmb2N1c2luZyBm
b3JtIGNvbnRyb2xzIHdpdGggYSB2YWxpZGF0aW9uIG1lc3NhZ2UKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMt
YW5kLW9wdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LWludmFsaWQtcHJvcGVydGllcy1hbmQtb3B0aW9ucy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOGIyYWQxZGVkNjU4N2ExZGMxNzY3M2ZiYzliZTg1OTU4MGU2ZThkNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVj
dC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MzQgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3Qg
ZmFpbHMgaWYgaW52YWxpZCBwcm9wZXJ0aWVzIG9yIG9wdGlvbnMgYXJlIHNwZWNpZmllZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3Rz
LnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3BlcnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lm
aWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAiVHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1
YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCku
CitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0aW9ucyBzcGVjaWZpZWQuCitQQVNT
IGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3IiCitQQVNTIGZpbmlzaGVkU3VidGVzdCBiZWNh
bWUgdHJ1ZQorCitDYWxsaW5nIG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoKS4KK1BBU1MgSW52
YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNpZmllZC4KK1BBU1MgZXhjZXB0aW9u
Lm5hbWUgaXMgIlR5cGVFcnJvciIKK1BBU1MgZmluaXNoZWRTdWJ0ZXN0IGJlY2FtZSB0cnVlCisK
K0NhbGxpbmcgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCgpLgorUEFTUyBJbnZhbGlkIHByb3Bl
cnRpZXMgYW5kL29yIG9wdGlvbnMgc3BlY2lmaWVkLgorUEFTUyBleGNlcHRpb24ubmFtZSBpcyAi
VHlwZUVycm9yIgorUEFTUyBmaW5pc2hlZFN1YnRlc3QgYmVjYW1lIHRydWUKKworQ2FsbGluZyBu
YXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCkuCitQQVNTIEludmFsaWQgcHJvcGVydGllcyBhbmQv
b3Igb3B0aW9ucyBzcGVjaWZpZWQuCitQQVNTIGV4Y2VwdGlvbi5uYW1lIGlzICJUeXBlRXJyb3Ii
CitQQVNTIGZpbmlzaGVkU3VidGVzdCBiZWNhbWUgdHJ1ZQorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Nob3cgY29udGFjdHMKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNlbGVjdC1pbnZhbGlkLXByb3Bl
cnRpZXMtYW5kLW9wdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRh
Y3RzLXNlbGVjdC1pbnZhbGlkLXByb3BlcnRpZXMtYW5kLW9wdGlvbnMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41M2FlOWFmOWE0OWJiNjE2MDA4NmEyZTk2NmMxYWVkNWFmMTI0ZDgwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LWludmFsaWQt
cHJvcGVydGllcy1hbmQtb3B0aW9ucy5odG1sCkBAIC0wLDAgKzEsNTIgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1lbnRhbDpDb250YWN0UGlja2Vy
QVBJRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4K
KyAgICA8c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgZmlu
aXNoZWRTdWJ0ZXN0ID0gZmFsc2U7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gdGVzdENvbnRh
Y3RzU2VsZWN0V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKHByb3BlcnRpZXMsIG9wdGlvbnMgPSB7
fSkKKyAgICAgICAgeworICAgICAgICAgICAgZmluaXNoZWRTdWJ0ZXN0ID0gZmFsc2U7CisgICAg
ICAgICAgICBkZWJ1ZygiQ2FsbGluZyBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KCkuIik7CisK
KyAgICAgICAgICAgIGNvbnN0IGNvbnRhY3RzQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnRhY3RzIik7CisgICAgICAgICAgICBjb250YWN0c0J1dHRvbi5hZGRFdmVudExpc3Rl
bmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICB0cnkgeworICAgICAg
ICAgICAgICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KHByb3BlcnRpZXMs
IG9wdGlvbnMpOworICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJuYXZpZ2F0b3IuY29u
dGFjdHMuc2VsZWN0IHN1Y2NlZWRlZCB3aXRoIGludmFsaWQgcHJvcGVydGllcyBhbmQvb3Igb3B0
aW9ucy4iKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChleGNlcHRpb24pIHsKKyAgICAgICAg
ICAgICAgICAgICAgd2luZG93LmV4Y2VwdGlvbiA9IGV4Y2VwdGlvbjsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiSW52YWxpZCBwcm9wZXJ0aWVzIGFuZC9vciBvcHRpb25zIHNwZWNp
ZmllZC4iKTsKKyAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleGNl
cHRpb24ubmFtZSIsICJUeXBlRXJyb3IiKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgICAgICBmaW5pc2hlZFN1YnRlc3QgPSB0cnVlOworICAgICAgICAgICAgfSwgeyBvbmNlOiB0
cnVlIH0pOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29u
dGFjdHNCdXR0b24pOworICAgICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBz
aG91bGRCZWNvbWVFcXVhbCgiZmluaXNoZWRTdWJ0ZXN0IiwgInRydWUiLCByZXNvbHZlKSk7CisK
KyAgICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0
ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBmYWlscyBpZiBpbnZh
bGlkIHByb3BlcnRpZXMgb3Igb3B0aW9ucyBhcmUgc3BlY2lmaWVkLlxuIik7CisKKyAgICAgICAg
ICAgIGF3YWl0IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbXSk7
CisgICAgICAgICAgICBhd2FpdCB0ZXN0Q29udGFjdHNTZWxlY3RXaXRoUHJvcGVydGllc0FuZE9w
dGlvbnMoWyJJbnZhbGlkIl0pOworICAgICAgICAgICAgYXdhaXQgdGVzdENvbnRhY3RzU2VsZWN0
V2l0aFByb3BlcnRpZXNBbmRPcHRpb25zKCJTdHJpbmciKTsKKyAgICAgICAgICAgIGF3YWl0IHRl
c3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbMjNdKTsKKyAgICAgICAg
ICAgIGF3YWl0IHRlc3RDb250YWN0c1NlbGVjdFdpdGhQcm9wZXJ0aWVzQW5kT3B0aW9ucyhbIm5h
bWUiLCAiZW1haWwiXSwgNTApOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+CisgICAgICAg
IDxidXR0b24gaWQ9ImNvbnRhY3RzIj5TaG93IGNvbnRhY3RzPC9idXR0b24+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFj
dHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTA4MzM0MzIzZTJiOGY1NjhmM2UzMjFmOTRhMjZiMmFk
OTlmZTAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29u
dGFjdHMtc2VsZWN0LXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVj
dCByZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgRGlkIG5vdCBwcmVzZW50IGNvbnRhY3QgcGlja2VyLgorUEFTUyBleGNlcHRpb24u
bmFtZSBpcyAiU2VjdXJpdHlFcnJvciIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBpY2tl
ci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwgYi9MYXlvdXRUZXN0
cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3QtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODcwOTU2NDA4M2JmMDUxZmM2N2I4ZjU3ZDZjODVkMWUxYWQxYjA2MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbnRhY3QtcGlja2VyL2NvbnRhY3RzLXNl
bGVjdC1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBleHBlcmltZW50YWw6Q29udGFjdFBp
Y2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFk
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBkZXNjcmlw
dGlvbigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgbmF2aWdhdG9yLmNvbnRhY3RzLnNlbGVjdCBy
ZXF1aXJlcyBhIHVzZXIgZ2VzdHVyZS4iKTsKKworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAg
ICAgICAgICBhd2FpdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0KFsibmFtZSIsICJlbWFpbCIs
ICJ0ZWwiXSk7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiUHJlc2VudGVkIGNvbnRhY3Qg
cGlja2VyIHdpdGhvdXQgdXNlciBnZXN0dXJlLiIpOworICAgICAgICAgICAgfSBjYXRjaCAoZXhj
ZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgd2luZG93LmV4Y2VwdGlvbiA9IGV4Y2VwdGlvbjsK
KyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJEaWQgbm90IHByZXNlbnQgY29udGFjdCBwaWNr
ZXIuIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleGNlcHRpb24u
bmFtZSIsICJTZWN1cml0eUVycm9yIik7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPGJvZHkgb25sb2Fk
PXJ1blRlc3QoKT48L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250
YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2VsZWN0LXN1YmZyYW1lLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNDAzYTI1ZjI2ZjBlZWRiMDUyZjczOGU1NTI5OTIxZGVkMjA3ZDYxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29udGFjdC1waWNrZXIvY29udGFjdHMtc2Vs
ZWN0LXN1YmZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBuYXZpZ2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGNhbGxlZCBmcm9t
IGEgc3ViZnJhbWUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIERpZCBu
b3QgcHJlc2VudCBjb250YWN0IHBpY2tlci4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb250YWN0LXBp
Y2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2NvbnRhY3Qt
cGlja2VyL2NvbnRhY3RzLXNlbGVjdC1zdWJmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMzA0ZjY4
YzliMDRmNmRjZWZjOTc5ZmEwYzY3MjVkZTc5YmQ3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jb250YWN0LXBpY2tlci9jb250YWN0cy1zZWxlY3Qtc3ViZnJhbWUuaHRtbApAQCAt
MCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBl
eHBlcmltZW50YWw6Q29udGFjdFBpY2tlckFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdWktaGVscGVyLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBuYXZp
Z2F0b3IuY29udGFjdHMuc2VsZWN0IGZhaWxzIGlmIGNhbGxlZCBmcm9tIGEgc3ViZnJhbWUuIik7
CisKKyAgICAgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJkaWRDbGlja09uQ29u
dGFjdHNCdXR0b25BbmRGYWlsZWRUb1NlbGVjdCIpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVz
dFBhc3NlZCgiRGlkIG5vdCBwcmVzZW50IGNvbnRhY3QgcGlja2VyLiIpOworICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgZnJhbWUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpZnJhbWUi
KTsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50KGZyYW1lKTsK
KyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxib2R5IG9ubG9hZD1ydW5UZXN0KCk+Cisg
ICAgICAgIDxpZnJhbWUgc3JjZG9jPSIKKyAgICAgICAgICAgIDxib2R5PgorICAgICAgICAgICAg
ICAgIDxidXR0b24gc3R5bGU9J3dpZHRoOiAxMDAlOyBoZWlnaHQ6IDEzNHB4Oyc+U2hvdyBjb250
YWN0czwvYnV0dG9uPgorICAgICAgICAgICAgICAgIDxzY3JpcHQ+CisgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpOworICAg
ICAgICAgICAgICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jb250YWN0cy5zZWxlY3QoWyduYW1lJ10pOworICAg
ICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKGV4Y2VwdGlvbi5uYW1lID09PSAnSW52YWxpZFN0YXRlRXJyb3In
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudC5wb3N0TWVzc2FnZSgn
ZGlkQ2xpY2tPbkNvbnRhY3RzQnV0dG9uQW5kRmFpbGVkVG9TZWxlY3QnLCAnKicpOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgPC9zY3JpcHQ+CisgICAgICAgICAg
ICA8L2JvZHk+CisgICAgICAgICI+PC9pZnJhbWU+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>