<?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>218721</bug_id>
          
          <creation_ts>2020-11-09 12:22:56 -0800</creation_ts>
          <short_desc>Implement a proof-of-concept for First Party Sets</short_desc>
          <delta_ts>2020-11-10 08:12:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=218471</see_also>
          <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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1705822</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 12:22:56 -0800</bug_when>
    <thetext>First Party Sets are being talked about in the Privacy Community Group (see https://github.com/privacycg/first-party-sets). We should create a draft implementation of functionality that WebKit may use First Party Sets for. 

There is no specification for First Party Sets, and this is not an official implementation of First Party Sets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705823</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-09 12:23:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/71204559&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705837</commentid>
    <comment_count>2</comment_count>
      <attachid>413621</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 12:52:19 -0800</bug_when>
    <thetext>Created attachment 413621
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705863</commentid>
    <comment_count>3</comment_count>
      <attachid>413626</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 13:43:20 -0800</bug_when>
    <thetext>Created attachment 413626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705875</commentid>
    <comment_count>4</comment_count>
      <attachid>413626</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-09 13:57:56 -0800</bug_when>
    <thetext>Comment on attachment 413626
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        Add a draft implementation of functionality that WebKit may use First
&gt; +        Party Sets for. First Party Sets are being talked about in public
&gt; +        standards groups, see https://github.com/privacycg/first-party-sets.

It doesn&apos;t seem like this implements the spec. There is no logic for .well-known/first-party-set nor the Sec-First-Party-Set header as far as I can tell. What subset of the spec is this intended to implement?

&gt; Source/WebCore/Modules/firstpartysets/FirstPartySets.h:47
&gt; +    static HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&amp; firstPartySetsTestOverride();
&gt; +    static HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&amp; firstPartySetsWithQuirk();

The use of globals here seems wrong. Seems like this data should live on something like the NetworkStorageSession.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:894
&gt; +#if ENABLE(RESOURCE_LOAD_STATISTICS)

Seems like if this is going to be #ifdefed, it should have its own ENABLE macro.

&gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h:212
&gt; +typedef void (*WKWebsiteDataStoreSetFirstPartySetsTestingOverrideFunction)(void* functionContext);
&gt; +WK_EXPORT void WKWebsiteDataStoreSetFirstPartySetsTestingOverride(WKWebsiteDataStoreRef dataStoreRef, const WKStringRef subDomain, const WKStringRef topFrameDomain, void* context, WKWebsiteDataStoreSetFirstPartySetsTestingOverrideFunction completionHandler);

I think rather than add this functionality for testing only, you should consider what might be useful as API/SPI here that could go here instead. For instance, it would probably be useful to give browsers implemented on top of WebKit the ability to use existing static lists of domains owned by the same entities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705892</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 14:32:15 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Comment on attachment 413626 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413626&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        Add a draft implementation of functionality that WebKit may use First
&gt; &gt; +        Party Sets for. First Party Sets are being talked about in public
&gt; &gt; +        standards groups, see https://github.com/privacycg/first-party-sets.
&gt; 
&gt; It doesn&apos;t seem like this implements the spec. There is no logic for
&gt; .well-known/first-party-set nor the Sec-First-Party-Set header as far as I
&gt; can tell. What subset of the spec is this intended to implement?
&gt; 

There is no spec for First Party Sets. The link I dropped in the description is an explainer that provides support for the concept of related domains having same-site privileges in privacy mechanisms. And, this is not an official implementation of First Party Sets, it is functionality we think FPS could be used for.

&gt; &gt; Source/WebCore/Modules/firstpartysets/FirstPartySets.h:47
&gt; &gt; +    static HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&amp; firstPartySetsTestOverride();
&gt; &gt; +    static HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&amp; firstPartySetsWithQuirk();
&gt; 
&gt; The use of globals here seems wrong. Seems like this data should live on
&gt; something like the NetworkStorageSession.
&gt; 

Ok, I can move the logic there.

&gt; &gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.cpp:894
&gt; &gt; +#if ENABLE(RESOURCE_LOAD_STATISTICS)
&gt; 
&gt; Seems like if this is going to be #ifdefed, it should have its own ENABLE
&gt; macro.
&gt; 

Ok, you&apos;re right.

&gt; &gt; Source/WebKit/UIProcess/API/C/WKWebsiteDataStoreRef.h:212
&gt; &gt; +typedef void (*WKWebsiteDataStoreSetFirstPartySetsTestingOverrideFunction)(void* functionContext);
&gt; &gt; +WK_EXPORT void WKWebsiteDataStoreSetFirstPartySetsTestingOverride(WKWebsiteDataStoreRef dataStoreRef, const WKStringRef subDomain, const WKStringRef topFrameDomain, void* context, WKWebsiteDataStoreSetFirstPartySetsTestingOverrideFunction completionHandler);
&gt; 
&gt; I think rather than add this functionality for testing only, you should
&gt; consider what might be useful as API/SPI here that could go here instead.
&gt; For instance, it would probably be useful to give browsers implemented on
&gt; top of WebKit the ability to use existing static lists of domains owned by
&gt; the same entities.

That could be useful, but for the sake of the API review process I think if we do implement it, it should be in its own patch. We also don&apos;t know of any use cases for now where that would be useful. On the other hand, an SPI for setting FPS for layout tests will definitely be useful in the future (like for https://bugs.webkit.org/show_bug.cgi?id=218471).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705914</commentid>
    <comment_count>6</comment_count>
      <attachid>413637</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 15:50:49 -0800</bug_when>
    <thetext>Created attachment 413637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705921</commentid>
    <comment_count>7</comment_count>
      <attachid>413637</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-11-09 16:08:55 -0800</bug_when>
    <thetext>Comment on attachment 413637
Patch

Looks good. I wonder if we could figure out a way to align App-Bound domains and FPS (idea for future work).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705932</commentid>
    <comment_count>8</comment_count>
      <attachid>413641</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 16:25:00 -0800</bug_when>
    <thetext>Created attachment 413641
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705933</commentid>
    <comment_count>9</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2020-11-09 16:26:56 -0800</bug_when>
    <thetext>Thanks! I noticed and removed a stray function declaration before cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705937</commentid>
    <comment_count>10</comment_count>
      <attachid>413641</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-09 16:34:54 -0800</bug_when>
    <thetext>Comment on attachment 413641
Patch

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

&gt; Source/WebCore/platform/network/NetworkStorageSession.cpp:378
&gt; +#if ENABLE(FIRST_PARTY_SETS)
&gt; +HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&amp; NetworkStorageSession::firstPartySets()
&gt; +{
&gt; +    static NeverDestroyed&lt;HashMap&lt;RegistrableDomain, HashSet&lt;RegistrableDomain&gt;&gt;&gt; map;
&gt; +    return map.get();
&gt; +}
&gt; +
&gt; +bool NetworkStorageSession::canRequestStorageAccessForLoginPurposesWithoutPriorUserInteraction(const RegistrableDomain&amp; subFrameDomain, const RegistrableDomain&amp; topFrameDomain)
&gt; +{
&gt; +    auto loginDomains = loginDomainsForFirstParty(topFrameDomain);
&gt; +    if (loginDomains)
&gt; +        return loginDomains.value().contains(subFrameDomain);
&gt; +    return false;
&gt; +}
&gt; +
&gt; +Optional&lt;HashSet&lt;RegistrableDomain&gt;&gt; NetworkStorageSession::loginDomainsForFirstParty(const RegistrableDomain&amp; firstPartyDomain)
&gt; +{
&gt; +    auto it = firstPartySets().find(firstPartyDomain);
&gt; +    if (it != firstPartySets().end())
&gt; +        return it-&gt;value;
&gt; +    return WTF::nullopt;
&gt; +}
&gt; +#endif

I think you misunderstood. I was objecting to the use of globals more than the specific file the code was in. This is still global state where it really should not be.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413621</attachid>
            <date>2020-11-09 12:52:19 -0800</date>
            <delta_ts>2020-11-09 13:43:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218721-20201109125218.patch</filename>
            <type>text/plain</type>
            <size>44331</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc4ZGNiMjQxYmZiNzVh
MWZjNGI5MWEwMDM1NWQ0MGI3YzJmNGE2OS4uODg0NWM5YzMwNzBiMWNkNDZkYWU0ZTY5ZGYwNjEy
Yjc5MWNkZDhjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTA5ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBhIHByb29mLW9mLWNvbmNlcHQgZm9yIEZpcnN0IFBhcnR5IFNldHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcyMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzEyMDQ1NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRhcHRlZCBmcm9tIGFuIG9yaWdpbmFsIHBhdGNoIGJ5IEpvaG4gV2lsYW5k
ZXIuCisKKyAgICAgICAgQWRkIGEgZHJhZnQgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25hbGl0
eSB0aGF0IFdlYktpdCBtYXkgdXNlIEZpcnN0CisgICAgICAgIFBhcnR5IFNldHMgZm9yLiBGaXJz
dCBQYXJ0eSBTZXRzIGFyZSBiZWluZyB0YWxrZWQgYWJvdXQgaW4gcHVibGljCisgICAgICAgIHN0
YW5kYXJkcyBncm91cHMsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL2ZpcnN0LXBh
cnR5LXNldHMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQt
Zmlyc3QtcGFydHktc2V0cy10ZXN0aW5nLW92ZXJyaWRlLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9m
aXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rmlyc3RQYXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzVGVzdE92ZXJyaWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpmaXJzdFBhcnR5U2V0c1dpdGhRdWlyayk6CisgICAg
ICAgIFdlYktpdCBjYW4gdXNlIEZpcnN0IFBhcnR5IFNldHMgdG8gaW1wbGVtZW50IHF1aXJrcyBv
biBzcGVjaWZpYyBzaXRlcworICAgICAgICB0aGF0IG5lZWQgdGhpcmQgcGFydHkgY29va2llIGFj
Y2VzcyB1bmRlciBkb21haW5zIHRoYXQgc2hhcmUgb3duZXJzaGlwLgorCisgICAgICAgIChXZWJD
b3JlOjpGaXJzdFBhcnR5U2V0czo6Zmlyc3RQYXJ0eVNldHMpOgorICAgICAgICAoV2ViQ29yZTo6
Rmlyc3RQYXJ0eVNldHM6OnNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092
ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpjYW5SZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0ZvckxvZ2luUHVycG9zZXNXaXRob3V0UHJpb3JVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICBUaGlyZCBwYXJ0eSBkb21haW5zIG5lZWRpbmcgc3RvcmFnZSBhY2Nlc3MgbWF5IG5v
dCBiZSBvbmVzIHdoaWNoIGFyZSAKKyAgICAgICAgdHlwaWNhbGx5IGludGVyYWN0ZWQgd2l0aCBh
cyBmaXJzdCBwYXJ0eSwgc3VjaCBhcyBmb3IgYXV0aGVudGljYXRpb24KKyAgICAgICAgZHVyaW5n
IGEgbG9naW4uIFJlbGF4aW5nIHRoaXMgaXMgYSBwb3RlbnRpYWwgZnVuY3Rpb25hbGl0eSBvZiBG
aXJzdAorICAgICAgICBQYXJ0eSBTZXRzIHRoYXQgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9y
LiBUaGlzIHdvdWxkIG9ubHkgYmUKKyAgICAgICAgcmVsYXhlZCBmb3Igc2l0ZXMgd2l0aCBzaGFy
ZWQgb3duZXJzaGlwLgorCisgICAgICAgIChXZWJDb3JlOjpGaXJzdFBhcnR5U2V0czo6bG9naW5E
b21haW5zRm9yRmlyc3RQYXJ0eSk6CisgICAgICAgICogTW9kdWxlcy9maXJzdHBhcnR5c2V0cy9G
aXJzdFBhcnR5U2V0cy5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNhaXJvLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMS0w
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24o
cjI2OTIyNykgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVmZXJyZXItdG9wbGV2ZWwtc2NyaXB0LWZldGNoLmh0dHBzLmh0bWwg
aXMgYSBmbGFreSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA5ZjJkZDQ3ODQ1N2RkNTJkODEwZDNjZTRkZDFi
OGQ0ZWUwODIzMjkwLi40ZmUwYTkyZTk0NGFhZWQzZDZhZDI0YWIxMThhMGIyMTUzYzRhMThkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTExLTA5ICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhIHByb29mLW9mLWNv
bmNlcHQgZm9yIEZpcnN0IFBhcnR5IFNldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODcyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEyMDQ1
NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgZHJhZnQgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25hbGl0eSB0aGF0IFdlYktpdCBtYXkg
dXNlIEZpcnN0CisgICAgICAgIFBhcnR5IFNldHMgZm9yLiBGaXJzdCBQYXJ0eSBTZXRzIGFyZSBi
ZWluZyB0YWxrZWQgYWJvdXQgaW4gcHVibGljCisgICAgICAgIHN0YW5kYXJkcyBncm91cHMsIHNl
ZSBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL2ZpcnN0LXBhcnR5LXNldHMuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0luRmlyc3RQYXJ0eVNldCk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJy
aWRlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwOgorICAgICAgICAoV0tX
ZWJzaXRlRGF0YVN0b3JlU3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUpOgorICAgICAg
ICAoV0tXZWJzaXRlRGF0YVN0b3JlU2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUpOgor
ICAgICAgICAoV0tXZWJzaXRlRGF0YVN0b3JlSXNJbkZpcnN0UGFydHlTZXQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc0luRmlyc3RQYXJ0eVNldCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyRmlyc3RQYXJ0eVNl
dHNUZXN0aW5nT3ZlcnJpZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldEZpcnN0
UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFT
dG9yZTo6aXNJbkZpcnN0UGFydHlTZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0
b3JlOjpjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAgICBMYXlvdXQgdGVz
dHMgYXJlIGdvaW5nIHRvIG5lZWQgYSB3YXkgdG8gY3JlYXRlIEZpcnN0IFBhcnR5IFNldHMKKyAg
ICAgICAgZm9yIHRlc3RpbmcgcHVycG9zZXMuIFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciB0
aGF0LgorCisKIDIwMjAtMTEtMDIgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgog
CiAgICAgICAgIGd1YXJkIFVJU2NyaWJibGVJbnRlcmFjdGlvbiBjbGFzcyBwcm9wZXJ0eSBvYnNl
cnZpbmcgYmVoaW5kIGEgTE9BIGNoZWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDI4Nzk3ZDMz
MTQ1NGMzN2UzYzM3ZGU2NjNkNGNlZTNlMGZlMzZkN2EuLjY0YmI0MWU0Nzc0NDQ5OGM0Mjk3YTQ3
YWIwYzgzY2U3ZTliODc0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0zNSw2ICszNSw3IEBA
IHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVf
RElSfS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL2xlZ2FjeSIKICAgICAiJHtXRUJDT1JFX0RJUn0v
TW9kdWxlcy9lbnRyaWVzYXBpIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZldGNoIgor
ICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzIgogICAgICIke1dFQkNP
UkVfRElSfS9Nb2R1bGVzL2dlb2xvY2F0aW9uIgogICAgICIke1dFQkNPUkVfRElSfS9Nb2R1bGVz
L2hpZ2hsaWdodCIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9pbmRleGVkZGIiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQppbmRleCBlOGUzMzhlMzdhMzIxZTgxZWNkMzE5YmY0YmZhM2I2YTc1NTViZjU1
Li4wNzk3NmI2OWE3MzliYjAxNGMxMWFiMTQzNjUyMjkwNDhhMGZmNDM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKQEAgLTMyLDYgKzMyLDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAogICAgIE1vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXJDbGllbnQuaAogCisgICAgTW9kdWxlcy9maXJzdHBhcnR5c2V0cy9GaXJzdFBh
cnR5U2V0cy5oCisKICAgICBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmgKICAgICBN
b2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uQ2xpZW50LmgKICAgICBNb2R1bGVzL2dlb2xv
Y2F0aW9uL0dlb2xvY2F0aW9uQ29udHJvbGxlci5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzL0ZpcnN0UGFydHlTZXRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlyc3RwYXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdjYzMxNTJmZDU1Yjk4MjYxY2Q0YTE0YzRlMmNmNzlmOGJhNDBjOGUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzL0ZpcnN0UGFydHlTZXRz
LmNwcApAQCAtMCwwICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkZpcnN0UGFydHlTZXRzLmgiCisKKyNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPj4m
IEZpcnN0UGFydHlTZXRzOjpmaXJzdFBhcnR5U2V0c1Rlc3RPdmVycmlkZSgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+Pj4gbWFwOworICAgIHJldHVybiBtYXAuZ2V0KCk7Cit9CisKK0hhc2hN
YXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+PiYgRmlyc3RQ
YXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzV2l0aFF1aXJrKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8SGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4+PiBtYXA7CisgICAgcmV0dXJuIG1hcC5nZXQoKTsKK30KKworSGFzaE1hcDxSZWdpc3Ry
YWJsZURvbWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+JiBGaXJzdFBhcnR5U2V0czo6
Zmlyc3RQYXJ0eVNldHMoKQoreworICAgIGF1dG8mIHNldHMgPSBmaXJzdFBhcnR5U2V0c1Rlc3RP
dmVycmlkZSgpOworICAgIGlmICghc2V0cy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBzZXRz
OworCisgICAgcmV0dXJuIGZpcnN0UGFydHlTZXRzV2l0aFF1aXJrKCk7Cit9CisKK3ZvaWQgRmly
c3RQYXJ0eVNldHM6OnNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbikKK3sKKyAgICBmaXJzdFBhcnR5U2V0c1Rlc3RPdmVycmlkZSgpLmVuc3VyZSh0b3BG
cmFtZURvbWFpbiwgW10geyByZXR1cm4gSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4geyB9Owor
ICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUuYWRkKHN1YkRvbWFpbik7Cit9CisKK3ZvaWQgRmly
c3RQYXJ0eVNldHM6OmNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoKQoreworICAg
IGZpcnN0UGFydHlTZXRzVGVzdE92ZXJyaWRlKCkuY2xlYXIoKTsKK30KKworYm9vbCBGaXJzdFBh
cnR5U2V0czo6Y2FuUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JMb2dpblB1cnBvc2VzV2l0aG91dFBy
aW9yVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKQoreworICAgIGF1dG8g
bG9naW5Eb21haW5zID0gbG9naW5Eb21haW5zRm9yRmlyc3RQYXJ0eSh0b3BGcmFtZURvbWFpbik7
CisgICAgaWYgKGxvZ2luRG9tYWlucykKKyAgICAgICAgcmV0dXJuIGxvZ2luRG9tYWlucy52YWx1
ZSgpLmNvbnRhaW5zKHN1YkZyYW1lRG9tYWluKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK09w
dGlvbmFsPEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+PiBGaXJzdFBhcnR5U2V0czo6bG9naW5E
b21haW5zRm9yRmlyc3RQYXJ0eShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURv
bWFpbikKK3sKKyAgICBhdXRvIGl0ID0gZmlyc3RQYXJ0eVNldHMoKS5maW5kKGZpcnN0UGFydHlE
b21haW4pOworICAgIGlmIChpdCAhPSBmaXJzdFBhcnR5U2V0cygpLmVuZCgpKQorICAgICAgICBy
ZXR1cm4gaXQtPnZhbHVlOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlyc3Rw
YXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlyc3Rw
YXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzA2ZGQ0MmE1ZjJjYzQzYzEx
NzViZTg0YzdjZGJmZWNlOWIyYzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5oCkBAIC0wLDAgKzEsNTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlF1aXJrcy5oIgorI2luY2x1
ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCisjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBGaXJz
dFBhcnR5U2V0cyB7CisvLyBUaGlzIGlzIGEgZHJhZnQgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rp
b25hbGl0eSB0aGF0IFdlYktpdCBtYXkgdXNlIEZpcnN0IFBhcnR5IFNldHMgZm9yLgorLy8gU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvZmlyc3QtcGFydHktc2V0cyBmb3IgbW9yZSBp
bmZvcm1hdGlvbiBvbiBGaXJzdCBQYXJ0eSBTZXRzLgorcHVibGljOgorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPj4mIGZpcnN0UGFydHlTZXRzKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgY2FuUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JMb2dpblB1cnBvc2VzV2l0aG91dFByaW9yVXNl
ckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgT3B0aW9uYWw8SGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+IGxvZ2luRG9tYWlu
c0ZvckZpcnN0UGFydHkoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9w
RnJhbWVEb21haW4pOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyRmlyc3RQ
YXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoKTsKKworcHJpdmF0ZToKKyAgICBzdGF0aWMgSGFzaE1h
cDxSZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+JiBmaXJzdFBh
cnR5U2V0c1Rlc3RPdmVycmlkZSgpOworICAgIHN0YXRpYyBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9t
YWluLCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPj4mIGZpcnN0UGFydHlTZXRzV2l0aFF1aXJr
KCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5D
YWlyby5jbWFrZQppbmRleCAwNzc4Zjc1NTY2YzY0NjMwMjBhMGUwN2M1MmE2NWMxYTQ3NGY2Mjg5
Li5jNDI3ZjNmMjhhM2VmZDg3ZjY1MTQ1MzgzYTZjOTc4NTA2MzM5YmM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKQEAgLTE1LDYgKzE1LDcgQEAgbGlzdChBUFBFTkQgV2Vi
Q29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29y
ZV9TT1VSQ0VTCisgICAgTW9kdWxlcy9maXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHAK
ICAgICBwYWdlL3dpbi9GcmFtZUNhaXJvV2luLmNwcAogICAgIHBhZ2Uvd2luL1Jlc291cmNlVXNh
Z2VPdmVybGF5V2luLmNwcAogICAgIHBhZ2Uvd2luL1Jlc291cmNlVXNhZ2VUaHJlYWRXaW4uY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXNHVEsudHh0CmluZGV4IDlkMmMxMjE2Mjg2OTVlNDQzNjcwNTIxOGRkNTg3NjFk
ZTczZGYwOTguLjE2ZDcxYThjMWM4MWNkZjU4N2Y3MzU2MjhhZjgyZDFhYTNhZDc3OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNHVEsudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXNHVEsudHh0CkBAIC00Niw2ICs0Niw4IEBAIGVkaXRpbmcvZ3RrL1dlYkNvbnRlbnRS
ZWFkZXJHdGsuY3BwCiAKIGxvYWRlci9zb3VwL1Jlc291cmNlTG9hZGVyU291cC5jcHAKIAorTW9k
dWxlcy9maXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHAKKwogcGFnZS9ndGsvRHJhZ0Nv
bnRyb2xsZXJHdGsuY3BwCiAKIHBhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNXUEUudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlc1dQRS50eHQKaW5kZXggYzEyMjllZjc3MTFiODU5YjUxYzAzNTU4NWMyZjdk
YjY4YmQzYmEyZC4uMDY4MDgwMTRmNWRiMzJkNjI4NDIzYzdkM2JkMGMzZTBkOTNlYzdlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc1dQRS50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlc1dQRS50eHQKQEAgLTU3LDYgKzU3LDggQEAgcGFnZS9zY3JvbGxpbmcvbmljb3Np
YS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTmljb3NpYS5jcHAKIHBhZ2Uvc2Ny
b2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlLmNwcAogcGFnZS9zY3Jv
bGxpbmcvbmljb3NpYS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5jcHAKIAorTW9kdWxlcy9maXJz
dHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHAKKwogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9u
S2luZXRpYy5jcHAKIHBsYXRmb3JtL1VzZXJBZ2VudFF1aXJrcy5jcHAKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGZjYjIxY2Rh
ZjJkZTFkNzQ3MjU1ODFmMmRmMTBhNjJlMTc0Y2YwNjUuLjhhOGQ3ZGQwMjM3YzI1NjYxNmJmODI3
OWU1MzQyZjZmZTExYzQyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjksNiArMTI2OSw4IEBACiAJCTQ2RUZBRjEyMUU1
RkI5RjEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDZFRkFGMTAxRTVGQjlFMTAwRTdGMzRCIC8q
IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDZGMDJBMUEyMzczN0Y4MzAwMTA2QTY0IC8qIEV2ZW50TG9vcC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOUIwQUJDQTEy
MzY3OUFCMzAwQjQ1MDg1IC8qIEV2ZW50TG9vcC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2RkNCNjE4MUE3MDgyMEUwMEM1QTIxRSAvKiBEaWFn
bm9zdGljTG9nZ2luZ0tleXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENEMzdCMzc1MTVDMUE3RTEwMDZEQzg5OCAvKiBEaWFnbm9zdGljTG9nZ2luZ0tl
eXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0
OTI3RDUwOTI1M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNldHMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyN0Q1MDcyNTNERDhBMzAwMEFG
NDVGIC8qIEZpcnN0UGFydHlTZXRzLmNwcCAqLzsgfTsKKwkJNDkyN0Q1MEEyNTNERDhBMzAwMEFG
NDVGIC8qIEZpcnN0UGFydHlTZXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTI3RDUwODI1M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNldHMu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0OTI5
MUU0QjEzNDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTI5MUU0QTEzNDE3MkM4MDBFNzUz
REUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi87IH07CiAJCTQ5M0U1RTA5MTJENjQyMDUwMDAy
MDA4MSAvKiBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5M0U1RTA4MTJENjQyMDUwMDAyMDA4MSAvKiBQbGF0Zm9y
bUNBTGF5ZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk0OTQ1QkZENDEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNmb3JtU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5NDVCRkQyMTND
RjgwOTAwMENDM0IzOCAvKiBUcmFuc2Zvcm1TdGF0ZS5oICovOyB9OwpAQCAtODA3Myw2ICs4MDc1
LDggQEAKIAkJNDZFRkFGMEYxRTVGQjlFMTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5v
dGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDZFRkFGMTAxRTVGQjlF
MTAwRTdGMzRCIC8qIExvd1Bvd2VyTW9kZU5vdGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IExvd1Bvd2VyTW9kZU5vdGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQ2RjkxQkM5MUZDREQwRkUwMDE1OTlDMyAvKiBKU1dvcmtlck5hdmlnYXRvckN1
c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dvcmtlck5h
dmlnYXRvckN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MjdENTA3
MjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGaXJzdFBhcnR5U2V0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5MjdE
NTA4MjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
aXJzdFBhcnR5U2V0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTI5MUU0QTEz
NDE3MkM4MDBFNzUzREUgLyogSW1hZ2VSZW5kZXJpbmdNb2RlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEltYWdlUmVuZGVyaW5nTW9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0OTNFNUUwODEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtQ0FMYXllckNs
aWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTQ1QkZEMTEzQ0Y4MDkwMDBD
QzNCMzggLyogVHJhbnNmb3JtU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVHJhbnNmb3JtU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjE5OTIsNiArMjE5OTYsMTUgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJCXVzZXNUYWJzID0g
MDsKIAkJfTsKKwkJNkI4QTQ4RTQyNTA4MjBBNDAwMzk4NDM3IC8qIGZpcnN0cGFydHlzZXRzICov
ID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk0OTI3RDUwNzI1
M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNldHMuY3BwICovLAorCQkJCTQ5MjdENTA4MjUz
REQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5oICovLAorCQkJKTsKKwkJCXBhdGggPSBm
aXJzdHBhcnR5c2V0czsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZFMjdG
MjQxMjI5OENFMkUwMEYxRjYzMiAvKiBhbmdsZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0yMzQ4Myw2ICsyMzQ5Niw3IEBACiAJCQkJQ0RBOThEQkQxNjAx
NEUwODAwRkVBM0IxIC8qIGVuY3J5cHRlZG1lZGlhICovLAogCQkJCTgzRkIzMzY1MUY1MDhBMTcw
MDk4NkU1NCAvKiBlbnRyaWVzYXBpICovLAogCQkJCTQxRjU0RjdDMUM1MEM0RjYwMDMzODQ4OCAv
KiBmZXRjaCAqLywKKwkJCQk2QjhBNDhFNDI1MDgyMEE0MDAzOTg0MzcgLyogZmlyc3RwYXJ0eXNl
dHMgKi8sCiAJCQkJNTE4RjRGRTkxOTRDQTRCNjAwODFCQUFFIC8qIGdhbWVwYWQgKi8sCiAJCQkJ
OTcxMTQ1RkYxNEVGMDA3OTAwNjc0RkQ5IC8qIGdlb2xvY2F0aW9uICovLAogCQkJCTQ0RTg4RTQ3
MjM2OERGMEYwMDlCNDg0NyAvKiBoaWdobGlnaHQgKi8sCkBAIC0zMTY5NCw2ICszMTcwOCw3IEBA
CiAJCQkJNDlFQ0VCNkUxNDk5NzkwRDAwQ0REM0E0IC8qIEZpbHRlck9wZXJhdGlvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNDlFQ0VCNzAxNDk5NzkwRDAwQ0REM0E0IC8qIEZpbHRlck9wZXJhdGlv
bnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MkMwMEQ5MTI5NjE5RjgwMDVDOTU3NSAvKiBGaW5k
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDkyN0Q1MEEyNTNERDhBMzAwMEFGNDVGIC8q
IEZpcnN0UGFydHlTZXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENGRjA0RjBBMTU0RjA5MDAw
QTQyMzQgLyogRml4ZWRUYWJsZUxheW91dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkZCN0QyREQy
NTBGRDgyODAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNkZCN0QyREUyNTBGRDgyRTAwMDIwN0FBIC8qIEZsZXhGb3JtYXR0aW5nU3RhdGUuaCBp
biBIZWFkZXJzICovLApAQCAtMzU0OTUsNiArMzU1MTAsNyBAQAogCQkJCTVDQkQ1OTU5MjI4MEU5
MjYwMDJCMjJBQSAvKiBDdXN0b21IZWFkZXJGaWVsZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDQ2M0NGNjgyMjEyRkE2ODAwMUE4NTc3IC8qIERhdGFEZXRlY3RvcnNDb3JlU29mdExpbmsubW0g
aW4gU291cmNlcyAqLywKIAkJCQk2RTcyRjU0QzIyOURDRDBDMDBCM0UxNTEgLyogRXh0ZW5zaW9u
c0dMQU5HTEUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNDkyN0Q1MDkyNTNERDhBMzAwMEFGNDVG
IC8qIEZpcnN0UGFydHlTZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDRTZDQkZEMTg3RjM5
NDkwMEQ0NkJGNSAvKiBGb3JtYXRDb252ZXJ0ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEz
MEYyRjYyNEFFQTYwQTAwRTFEMEEwIC8qIEdhbWVDb250cm9sbGVyU29mdExpbmsubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1MUE0QkIwQTE5NTRENjE2MDBGQTVDMkUgLyogR2FtZXBhZC5jcHAgaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5jcHAKaW5kZXggMGJiODU3MzA1Mzg0Y2IzNWQ3OGE2NGRhYzk0MzRkN2ZjODI0ZDlmNS4u
ODdmYjhiMmYxZDkxNWRiYzIxMThjY2QxYzExODYzOTI4N2E5NzU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ROUy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRl
ZEdsb2JhbFNldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0Ns
aWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlyc3RQYXJ0eVNldHMuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0hUVFBDb29raWVBY2NlcHRQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlZ2Fj
eVNjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5o
PgpAQCAtMTMxMSw2ICsxMzEyLDI5IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFRoaXJkUGFy
dHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklECiAgICAgICAg
IG5ldHdvcmtTZXNzaW9uLT5zZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFdURk1v
dmUoZG9tYWluKSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KKwordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIFdl
YkNvcmU6OkZpcnN0UGFydHlTZXRzOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShz
dWJEb21haW4sIHRvcERvbWFpbik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKwordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aXNJbkZpcnN0UGFydHlTZXQoY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRv
IGl0ID0gV2ViQ29yZTo6Rmlyc3RQYXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzKCkuZmluZCh0b3BE
b21haW4pOworICAgIGlmIChpdCAhPSBXZWJDb3JlOjpGaXJzdFBhcnR5U2V0czo6Zmlyc3RQYXJ0
eVNldHMoKS5lbmQoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihpdC0+dmFsdWUuY29u
dGFpbnMoc3ViRG9tYWluKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOworfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhckZpcnN0UGFy
dHlTZXRzVGVzdGluZ092ZXJyaWRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBXZWJDb3JlOjpGaXJzdFBhcnR5U2V0czo6Y2xlYXJGaXJzdFBh
cnR5U2V0c1Rlc3RpbmdPdmVycmlkZSgpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisK
ICNlbmRpZiAvLyBFTkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXgg
MWE3N2ZhYjk2MWRmMmU1ZTMwNjEyNjlmNTkyYTJjNGM4Njk0NmY5ZC4uMTEzMDg4MjI2YjZiMGQy
MDg1Yzc1ZjZmZjkzZWEzYTIxMGRiYWZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjczLDYgKzI3Myw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIGZpcnN0UGFydHlIb3N0LCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiYmIGNuYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKKyAgICB2b2lkIHNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BG
cmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIGlzSW5G
aXJzdFBhcnR5U2V0KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CisgICAgdm9pZCBjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0QWRDbGlj
a0F0dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggMGViZTkwNTMz
NmUzNGQxMzk0MDI1M2IyZmU3NDEwYjBlOGZiOTRjNy4uNjYyMjUxNTUxM2M1ZjEwZDZhYzFhMjAz
MzcxZGQ4YzIwM2MyNzljOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xNDgsNiArMTQ4LDkgQEAgbWVz
c2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldFRvU2FtZVNp
dGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRGaXJzdFBh
cnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0
cmluZyBmaXJzdFBhcnR5SG9zdCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gY25hbWVEb21h
aW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFp
bikgLT4gKCkgQXN5bmMKKyAgICBTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYworICAgIElzSW5GaXJzdFBhcnR5U2V0KFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzSW5GaXJzdFBhcnR5U2V0KSBBc3luYwor
ICAgIENsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoKSAtPiAoKSBBc3luYwogI2Vu
ZGlmCiAKICAgICBTZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRh
U3RvcmVSZWYuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0
YVN0b3JlUmVmLmNwcAppbmRleCAxODRiZmRlZjY0NmU0YWFmNmQ5OWZiODlmYTk5MDllNjA3YjA5
MTc1Li5iNDExYWU1OGUwNWQ3ZmJjMmZlMmNjNGUyYmIyNDgzNDhkMDZjMjhkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJl
Zi5jcHAKQEAgLTcxOCw2ICs3MTgsNyBAQCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYQogICAgIHN0
b3JlLnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFs
TW9kZUZvclRlc3RpbmcoZmFsc2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiAgICAgc3Rv
cmUucmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CiAgICAgc3RvcmUuc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChXZWJLaXQ6
OlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljczo6Tm8sIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsg
fSk7CisgICAgc3RvcmUuY2xlYXJGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShbY2FsbGJh
Y2tBZ2dyZWdhdG9yXSB7IH0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZGF0YVN0b3JlUmVm
KTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKQEAgLTg4NywzICs4ODgsMjUgQEAg
dm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3IKICAgICBjYWxsYmFjayhjb250ZXh0LCBXS011dGFibGVB
cnJheUNyZWF0ZSgpKTsKICNlbmRpZgogfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVNldEZp
cnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3Rv
cmVSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIHN1YkRvbWFpbiwgY29uc3QgV0tTdHJpbmdSZWYgdG9w
RnJhbWVEb21haW4sIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9yZVNldEZpcnN0UGFy
dHlTZXRzVGVzdGluZ092ZXJyaWRlRnVuY3Rpb24gY29tcGxldGlvbkhhbmRsZXIpCit7CisjaWYg
RU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBXZWJLaXQ6OnRvSW1wbChkYXRh
U3RvcmVSZWYpLT5zZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShXZWJLaXQ6OnRvSW1w
bChzdWJEb21haW4pLT5zdHJpbmcoKSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4pLT5z
dHJpbmcoKSwgW2NvbnRleHQsIGNvbXBsZXRpb25IYW5kbGVyXSB7CisgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRleHQpOworICAgIH0pOworI2Vsc2UKKyAgICBjYWxsYmFjayhjb250ZXh0
KTsKKyNlbmRpZgorfQorCit2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUlzSW5GaXJzdFBhcnR5U2V0
KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIHN1
YkRvbWFpbiwgY29uc3QgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4sIHZvaWQqIGNvbnRleHQs
IFdLV2Vic2l0ZURhdGFTdG9yZUlzSW5GaXJzdFBhcnR5U2V0RnVuY3Rpb24gY2FsbGJhY2spCit7
CisjaWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKKyAgICBXZWJLaXQ6OnRvSW1w
bChkYXRhU3RvcmVSZWYpLT5pc0luRmlyc3RQYXJ0eVNldChXZWJLaXQ6OnRvSW1wbChzdWJEb21h
aW4pLT5zdHJpbmcoKSwgV2ViS2l0Ojp0b0ltcGwodG9wRnJhbWVEb21haW4pLT5zdHJpbmcoKSwg
W2NvbnRleHQsIGNhbGxiYWNrXShib29sIGluRmlyc3RQYXJ0eVNldCkgeworICAgICAgICBjYWxs
YmFjayhpbkZpcnN0UGFydHlTZXQsIGNvbnRleHQpOworICAgIH0pOworI2Vsc2UKKyAgICBjYWxs
YmFjayhmYWxzZSwgY29udGV4dCk7CisjZW5kaWYKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKaW5kZXggMWI2YjgzNThh
OGI3MDkwZmM1NzQ1MzE5YzcxZTYwMDkxYzI3ZjdiYy4uZjI3Y2IyYmRjNWZmZjQyMmI5YzM1YzQ2
MDIzNjkyNDYwZmQ0NWIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmgKQEAgLTIwOCw2ICsyMDgsMTIgQEAgV0tfRVhQ
T1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlVXBkYXRlQnVuZGxlSWRlbnRpZmllckluTmV0d29y
a1Byb2Nlc3MoV0tXZWJzaXQKIHR5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZUNsZWFy
QnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3NGdW5jdGlvbikodm9pZCogZnVuY3Rpb25D
b250ZXh0KTsKIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZUNsZWFyQnVuZGxlSWRl
bnRpZmllckluTmV0d29ya1Byb2Nlc3MoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yZVJl
Ziwgdm9pZCogY29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlQ2xlYXJCdW5kbGVJZGVudGlmaWVy
SW5OZXR3b3JrUHJvY2Vzc0Z1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKIAordHlwZWRlZiB2
b2lkICgqV0tXZWJzaXRlRGF0YVN0b3JlU2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGVG
dW5jdGlvbikodm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0
ZURhdGFTdG9yZVNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKFdLV2Vic2l0ZURhdGFT
dG9yZVJlZiBkYXRhU3RvcmVSZWYsIGNvbnN0IFdLU3RyaW5nUmVmIHN1YkRvbWFpbiwgY29uc3Qg
V0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4sIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFT
dG9yZVNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlRnVuY3Rpb24gY29tcGxldGlvbkhh
bmRsZXIpOworCit0eXBlZGVmIHZvaWQgKCpXS1dlYnNpdGVEYXRhU3RvcmVJc0luRmlyc3RQYXJ0
eVNldEZ1bmN0aW9uKShib29sIGlzSW5GaXJzdFBhcnR5U2V0LCB2b2lkKiBmdW5jdGlvbkNvbnRl
eHQpOworV0tfRVhQT1JUIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlSXNJbkZpcnN0UGFydHlTZXQo
V0tXZWJzaXRlRGF0YVN0b3JlUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBzdWJEb21haW4sIGNvbnN0
IFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRh
U3RvcmVJc0luRmlyc3RQYXJ0eVNldEZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKKwogI2lm
ZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDZlZTI2ZDA0NmIw
YjIxODg3MDczZTZlZTczNDk4NDNkYWQzMzVhZmEuLmQ1MTIyNmQ4MzZmZTBiYjBjZDE2NDFmNWQ4
M2M2YmQ1OGQ1ZDZmMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTI2NSwxMSArMTI2NSwyOSBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2VzcwogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3Rpbmcoc2Vz
c2lvbklELCBkb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CisKIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0RG9tYWluc1dpdGhVc2VySW50ZXJhY3Rpb24oSGFzaFNl
dDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiBkb21haW5zKQogewogICAgIGZvciAoYXV0
byogcHJvY2Vzc1Bvb2wgOiBXZWJQcm9jZXNzUG9vbDo6YWxsUHJvY2Vzc1Bvb2xzKCkpCiAgICAg
ICAgIHByb2Nlc3NQb29sLT5zZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiB7IGRvbWFpbnMgfSk7CiB9CisKK3ZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Cit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoc3ViRG9tYWluLCB0b3BGcmFtZURvbWFpbiks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwordm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5Ojppc0luRmlyc3RQYXJ0eVNldChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWlu
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNJbkZpcnN0UGFydHlTZXQoc3ViRG9t
YWluLCB0b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwor
Cit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3Zl
cnJpZGUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyRmly
c3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworfQorCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRBZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9v
bCBkZWJ1Z01vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGQwMzA0M2Y3OGQwMjEzMmY0MzkzMTFkMjYyN2Iw
OGMzYzdkYWFkMjIuLjEzOTZlYzcyOTA1OTMwYTMyYmJmMGY0MWQwN2MwMDQ1YmUzZDkzYTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5oCkBAIC0yMDAsNiArMjAwLDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Rmlyc3RQ
YXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZmlyc3RQYXJ0eUhvc3QsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBjbmFtZURvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDTkFN
RURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldERv
bWFpbnNXaXRoVXNlckludGVyYWN0aW9uKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4+JiYpOworICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBpc0luRmlyc3RQ
YXJ0eVNldChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Cisg
ICAgdm9pZCBjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0QWRDbGlja0F0dHJpYnV0aW9u
RGVidWdNb2RlKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
c2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBkYWQyMDcwMWJkMzk4OTM5ODVj
ODQyYzhhMTg2NmE1ZjUwY2U1ZmQ1Li5hMDY3NDQyYjc3MmY5MDc0NzllZmM4OGZjY2YyMTE0ODk4
MjE5OGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMTc4MCw2ICsxNzgwLDI2IEBAIHZvaWQgV2Vi
c2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1RoaXJkUGFydHlDTkFNRURv
bWFpbkZvclRlc3RpbmcoCiAKICAgICBuZXR3b3JrUHJvY2VzcygpLnNldFRoaXJkUGFydHlDTkFN
RURvbWFpbkZvclRlc3RpbmcobV9zZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHsgY25hbWVVUkwgfSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKIH0KKwordm9pZCBXZWJz
aXRlRGF0YVN0b3JlOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShjb25zdCBTdHJp
bmcmIHN1YkRvbWFpbiwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tB
Z2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworCisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRGaXJzdFBhcnR5U2V0c1Rlc3Rp
bmdPdmVycmlkZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJv
bUhvc3Qoc3ViRG9tYWluKSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENy
ZWF0ZUZyb21Ib3N0KHRvcEZyYW1lRG9tYWluKSwgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsK
K30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjppc0luRmlyc3RQYXJ0eVNldChjb25zdCBTdHJp
bmcmIHN1YkRvbWFpbiwgY29uc3QgU3RyaW5nJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBuZXR3b3JrUHJv
Y2VzcygpLmlzSW5GaXJzdFBhcnR5U2V0KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluOjp1bmNo
ZWNrZWRDcmVhdGVGcm9tSG9zdChzdWJEb21haW4pLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
bjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3QodG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJGaXJzdFBh
cnR5U2V0c1Rlc3RpbmdPdmVycmlkZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0Fn
Z3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBuZXR3
b3JrUHJvY2VzcygpLmNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoW2NhbGxiYWNr
QWdncmVnYXRvcl0geyB9KTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NU
QVRJU1RJQ1MpCiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c3luY0xvY2FsU3RvcmFnZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5k
ZXggZjNmZTY2ZDA1OTQxYWEzZjE3ZGMyOTMyNTJmNTA3YzI1ZmJjMWJjZS4uNWMyMjYxNWFlMzJm
ODhhN2Y2ZWZiYWM5MTBhYTg3YTliMTY5MTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjMyLDYgKzIz
Miw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
IHRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoKSBjb25zdDsKICAgICBib29sIGlzSXRwU3Rh
dGVFeHBsaWNpdGx5U2V0KCkgY29uc3QgeyByZXR1cm4gbV9pc0l0cFN0YXRlRXhwbGljaXRseVNl
dDsgfQogICAgIHZvaWQgdXNlRXhwbGljaXRJVFBTdGF0ZSgpIHsgbV9pc0l0cFN0YXRlRXhwbGlj
aXRseVNldCA9IHRydWU7IH0KKyAgICB2b2lkIHNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJy
aWRlKGNvbnN0IFN0cmluZyYgc3ViRG9tYWluLCBjb25zdCBTdHJpbmcmIHRvcEZyYW1lRG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgaXNJbkZpcnN0UGFydHlT
ZXQoY29uc3QgU3RyaW5nJiBzdWJEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2xlYXJGaXJzdFBh
cnR5U2V0c1Rlc3RpbmdPdmVycmlkZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2Vu
ZGlmCiAgICAgdm9pZCBzeW5jTG9jYWxTdG9yYWdlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhTZWNv
bmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI1MTEwZTVhNGRlZTdjYzdkZWY2ZmM3MjE2
MzVhNDQ1MjcyY2FmYTYuLjg4YzgzZGFlZGZkZGU3ODFiYWM1ZThiNDZjMWE5NmYzZjcyOWI2YzAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAyMC0xMS0wOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgYSBwcm9vZi1vZi1jb25jZXB0IGZvciBGaXJz
dCBQYXJ0eSBTZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg3MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjA0NTU5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IHN1cHBvcnQg
Zm9yIGZ1dHVyZSBsYXlvdXQgdGVzdHMgd2hpY2ggd2lsbCB1c2UgRmlyc3QgUGFydHkKKyAgICAg
ICAgU2V0cy4gVGhpcyBhZGRzIFRlc3RSdW5uZXIgZnVuY3Rpb25zIGZvciBzZXR0aW5nIGFuZCBy
ZXRyaWV2aW5nCisgICAgICAgIHZhbHVlcyBpbiBhIEZpcnN0IFBhcnR5IFNldC4KKworICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5n
T3ZlcnJpZGUpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjppc0luRmlyc3RQYXJ0eVNldCk6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZSk6
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjppc0luRmlyc3RQYXJ0eVNldCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3BwOgorICAgICAgICAoV1RSOjpUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTExLTAy
ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3J0L2NsZWFudXAg
cHJlZmVyZW5jZXMgaW4gcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmlu
ZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOTY5NjE0ZTY3Mjg4NjI5NjMzMDdjOTllYzQ3ODQx
NTI0ZmYwMTI5Yi4uOGRhYzViZWE1NjRmYWVjZDhjZTcwYzc4ZWIyZDcwM2EwMTliZWI1ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9U
ZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC0zMzcsNiArMzM3LDggQEAgaW50ZXJmYWNlIFRl
c3RSdW5uZXIgewogICAgIHVuZGVmaW5lZCBzdGF0aXN0aWNzU2V0Rmlyc3RQYXJ0eUhvc3RDTkFN
RURvbWFpbihET01TdHJpbmcgZmlyc3RQYXJ0eVVSTFN0cmluZywgRE9NU3RyaW5nIGNuYW1lVVJM
U3RyaW5nLCBvYmplY3QgY2FsbGJhY2spOwogICAgIHVuZGVmaW5lZCBzdGF0aXN0aWNzU2V0VGhp
cmRQYXJ0eUNOQU1FRG9tYWluKERPTVN0cmluZyBjbmFtZVVSTFN0cmluZywgb2JqZWN0IGNhbGxi
YWNrKTsKICAgICB1bmRlZmluZWQgbG9hZGVkU3VicmVzb3VyY2VEb21haW5zKG9iamVjdCBjYWxs
YmFjayk7CisgICAgdW5kZWZpbmVkIHNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKERP
TVN0cmluZyBzdWJEb21haW4sIERPTVN0cmluZyB0b3BGcmFtZURvbWFpbik7CisgICAgYm9vbGVh
biBpc0luRmlyc3RQYXJ0eVNldChET01TdHJpbmcgc3ViRG9tYWluLCBET01TdHJpbmcgdG9wRnJh
bWVEb21haW4pOwogCiAgICAgLy8gSW5qZWN0ZWQgYnVuZGxlIGZvcm0gY2xpZW50LgogICAgIHVu
ZGVmaW5lZCBpbnN0YWxsVGV4dERpZENoYW5nZUluVGV4dEZpZWxkQ2FsbGJhY2sob2JqZWN0IGNh
bGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCmluZGV4IGU1YzVmOTlhZDFkYzljMjg2ZTA5NDczNDZjOWJkNzVmY2Ey
ZjkzYzMuLmFkNDk1YTc5ZTNhOWM2Mzg2MmRlMzQ1Y2Q3NDFiNjQ1ZDZhMGFlMmIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cApAQCAtMTY5MSw2ICsxNjkxLDIyIEBAIHZvaWQgVGVzdFJ1bm5lcjo6bG9hZGVkU3VicmVzb3Vy
Y2VEb21haW5zKEpTVmFsdWVSZWYgY2FsbGJhY2spCiAgICAgcG9zdE1lc3NhZ2UoIkxvYWRlZFN1
YnJlc291cmNlRG9tYWlucyIpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldEZpcnN0UGFydHlT
ZXRzVGVzdGluZ092ZXJyaWRlKEpTU3RyaW5nUmVmIHN1YkRvbWFpbiwgSlNTdHJpbmdSZWYgdG9w
RnJhbWVEb21haW4pCit7CisgICAgcG9zdE1lc3NhZ2UoIlNldEZpcnN0UGFydHlTZXRzVGVzdGlu
Z092ZXJyaWRlIiwgY3JlYXRlV0tEaWN0aW9uYXJ5KHsKKyAgICAgICAgeyAiU3ViRG9tYWluIiwg
dG9XSyhzdWJEb21haW4pIH0sCisgICAgICAgIHsgIlRvcEZyYW1lRG9tYWluIiwgdG9XSyh0b3BG
cmFtZURvbWFpbikgfSwKKyAgICB9KSk7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6aXNJbkZpcnN0
UGFydHlTZXQoSlNTdHJpbmdSZWYgc3ViRG9tYWluLCBKU1N0cmluZ1JlZiB0b3BGcmFtZURvbWFp
bikKK3sKKyAgICByZXR1cm4gcG9zdFN5bmNocm9ub3VzUGFnZU1lc3NhZ2VSZXR1cm5pbmdCb29s
ZWFuKCJJc0luRmlyc3RQYXJ0eVNldCIsIGNyZWF0ZVdLRGljdGlvbmFyeSh7CisgICAgICAgIHsg
IlN1YkRvbWFpbiIsIHRvV0soc3ViRG9tYWluKSB9LAorICAgICAgICB7ICJUb3BGcmFtZURvbWFp
biIsIHRvV0sodG9wRnJhbWVEb21haW4pIH0sCisgICAgfSkpOworfQorCiB2b2lkIFRlc3RSdW5u
ZXI6OmNhbGxEaWRSZWNlaXZlTG9hZGVkU3VicmVzb3VyY2VEb21haW5zQ2FsbGJhY2soVmVjdG9y
PFN0cmluZz4mJiBkb21haW5zKQogewogICAgIGF1dG8gcmVzdWx0ID0gbWFrZURvbWFpbnNWYWx1
ZShkb21haW5zKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmgKaW5kZXggYWFhNTIxNmY5MjYwZGI0ZDk4ODFjZDBkZGJiMTlmNTA4NTI5
N2ZkOC4uMDM1NjEwMDQ1NDBlYjg3Nzk1NGQzOTg2ZjIzNGY2NjE2YmRhOTNmNyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAg
LTQzOSw2ICs0MzksOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdGF0aXN0aWNzQ2FsbERpZFJlc2V0
VG9Db25zaXN0ZW50U3RhdGVDYWxsYmFjaygpOwogICAgIHZvaWQgbG9hZGVkU3VicmVzb3VyY2VE
b21haW5zKEpTVmFsdWVSZWYgY2FsbGJhY2spOwogICAgIHZvaWQgY2FsbERpZFJlY2VpdmVMb2Fk
ZWRTdWJyZXNvdXJjZURvbWFpbnNDYWxsYmFjayhWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpOwor
ICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoSlNTdHJpbmdSZWYgc3Vi
RG9tYWluLCBKU1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbik7CisgICAgYm9vbCBpc0luRmlyc3RQ
YXJ0eVNldChKU1N0cmluZ1JlZiBzdWJEb21haW4sIEpTU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWlu
KTsKIAogICAgIC8vIEluamVjdGVkIGJ1bmRsZSBmb3JtIGNsaWVudC4KICAgICB2b2lkIGluc3Rh
bGxUZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGRDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggNzVjOGRiNmU3
MWU2MThmYzY0ZDZhYThmZDU5ODAzMTI2ZTM1YzVhMi4uNGRjOWJjYTYyOWVhNDlkNDE4NTAzMjc1
YzY1MjE4ODhmYTY1NjgzYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKQEAgLTMzNjUsNiArMzM2NSwyMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRTdGF0
aXN0aWNzVGhpcmRQYXJ0eUNOQU1FRG9tYWluKFdLU3RyaW5nUmVmIGNuYW1lVVJMU3RyaQogICAg
IG1fY3VycmVudEludm9jYXRpb24tPmRpZFNldFRoaXJkUGFydHlDTkFNRURvbWFpbigpOwogfQog
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShX
S1N0cmluZ1JlZiBzdWJEb21haW4sIFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluKQoreworICAg
IFJlc291cmNlU3RhdGlzdGljc0NhbGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZSh3ZWJzaXRl
RGF0YVN0b3JlKCksIHN1YkRvbWFpbiwgdG9wRnJhbWVEb21haW4sICZjb250ZXh0LCByZXNvdXJj
ZVN0YXRpc3RpY3NWb2lkUmVzdWx0Q2FsbGJhY2spOworICAgIHJ1blVudGlsKGNvbnRleHQuZG9u
ZSwgbm9UaW1lb3V0KTsKK30KKworYm9vbCBUZXN0Q29udHJvbGxlcjo6aXNJbkZpcnN0UGFydHlT
ZXQoV0tTdHJpbmdSZWYgc3ViRG9tYWluLCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbikKK3sK
KyAgICBSZXNvdXJjZVN0YXRpc3RpY3NDYWxsYmFja0NvbnRleHQgY29udGV4dCgqdGhpcyk7Cisg
ICAgV0tXZWJzaXRlRGF0YVN0b3JlSXNJbkZpcnN0UGFydHlTZXQod2Vic2l0ZURhdGFTdG9yZSgp
LCBzdWJEb21haW4sIHRvcEZyYW1lRG9tYWluLCAmY29udGV4dCwgcmVzb3VyY2VTdGF0aXN0aWNz
Qm9vbGVhblJlc3VsdENhbGxiYWNrKTsKKyAgICBydW5VbnRpbChjb250ZXh0LmRvbmUsIG5vVGlt
ZW91dCk7CisgICAgcmV0dXJuIGNvbnRleHQucmVzdWx0OworfQorCiBzdHJ1Y3QgQXBwQm91bmRE
b21haW5zQ2FsbGJhY2tDb250ZXh0IHsKICAgICBleHBsaWNpdCBBcHBCb3VuZERvbWFpbnNDYWxs
YmFja0NvbnRleHQoVGVzdENvbnRyb2xsZXImIGNvbnRyb2xsZXIpCiAgICAgICAgIDogdGVzdENv
bnRyb2xsZXIoY29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAppbmRleCAzM2I2NDk0YWM2MjQ0YjkyZmNiNzgwOWE1OGQ3MjAzYzdjMTI1OGE4Li44NjFlMmY1
ZTY2N2VkODNiOTc3Y2EwODFiMzM5YzYzM2UyYjI3ZThhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0Q29udHJvbGxlci5oCkBAIC0yNjksNiArMjY5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHVwZGF0ZUJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKGNvbnN0IHN0ZDo6c3RyaW5n
JiBidW5kbGVJZGVudGlmaWVyKTsKICAgICB2b2lkIGNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0
d29ya1Byb2Nlc3MoKTsKIAorICAgIHZvaWQgY2xlYXJGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVy
cmlkZSgpOworICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoV0tTdHJp
bmdSZWYgc3ViRG9tYWluLCBXS1N0cmluZ1JlZiB0b3BEb21haW4pOworICAgIGJvb2wgaXNJbkZp
cnN0UGFydHlTZXQoV0tTdHJpbmdSZWYgc3ViRG9tYWluLCBXS1N0cmluZ1JlZiB0b3BEb21haW4p
OworCiAgICAgV0tBcnJheVJlZiBvcGVuUGFuZWxGaWxlVVJMcygpIGNvbnN0IHsgcmV0dXJuIG1f
b3BlblBhbmVsRmlsZVVSTHMuZ2V0KCk7IH0KICAgICB2b2lkIHNldE9wZW5QYW5lbEZpbGVVUkxz
KFdLQXJyYXlSZWYgZmlsZVVSTHMpIHsgbV9vcGVuUGFuZWxGaWxlVVJMcyA9IGZpbGVVUkxzOyB9
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAKaW5kZXggMTRjMDRl
ZDFmYTkzOTRmNTcyZjY0OWE5MWI0N2VmYjIwNmVmODU0ZS4uZjExNzIxMTRmNzdlNGRhNGY5NGE3
MDRlZmU5ZWM5YjAzYjYyMzIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2Nh
dGlvbi5jcHAKQEAgLTYzOSw2ICs2MzksMTQgQEAgdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZU5hbWUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUiKSkgewor
ICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IGRpY3Rpb25hcnlWYWx1ZShtZXNz
YWdlQm9keSk7CisgICAgICAgIGF1dG8gc3ViRG9tYWluID0gc3RyaW5nVmFsdWUobWVzc2FnZUJv
ZHlEaWN0aW9uYXJ5LCAiU3ViRG9tYWluIik7CisgICAgICAgIGF1dG8gdG9wRnJhbWVEb21haW4g
PSBzdHJpbmdWYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJUb3BGcmFtZURvbWFpbiIpOwor
ICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0Rmlyc3RQYXJ0eVNldHNUZXN0
aW5nT3ZlcnJpZGUoc3ViRG9tYWluLCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFt
ZSwgIlNldFN0YXRpc3RpY3NEZWJ1Z01vZGUiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc0RlYnVnTW9kZShib29sZWFuVmFsdWUobWVzc2FnZUJv
ZHkpKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTE5Miw2ICsxMjAwLDE1IEBAIFdLUmV0YWluUHRy
PFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VG
cm9tSW5qZWN0ZWRCCiAgICAgICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoaGFzTG9jYWxTdG9yYWdlKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQorICAg
IAorICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiSXNJ
bkZpcnN0UGFydHlTZXQiKSkgeworICAgICAgICBhdXRvIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9
IGRpY3Rpb25hcnlWYWx1ZShtZXNzYWdlQm9keSk7CisgICAgICAgIGF1dG8gc3ViRG9tYWluID0g
c3RyaW5nVmFsdWUobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCAiU3ViRG9tYWluIik7CisgICAgICAg
IGF1dG8gdG9wRnJhbWVEb21haW4gPSBzdHJpbmdWYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnks
ICJUb3BGcmFtZURvbWFpbiIpOworICAgICAgICBib29sIGlzSW5GaXJzdFBhcnR5U2V0ID0gVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmlzSW5GaXJzdFBhcnR5U2V0KHN1YkRvbWFpbiwgdG9w
RnJhbWVEb21haW4pOworICAgICAgICBhdXRvIHJlc3VsdCA9IGFkb3B0V0soV0tCb29sZWFuQ3Jl
YXRlKGlzSW5GaXJzdFBhcnR5U2V0KSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQog
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRT
dGF0aXN0aWNzQ2FjaGVNYXhBZ2VDYXAiKSkgewogICAgICAgICBUZXN0Q29udHJvbGxlcjo6c2lu
Z2xldG9uKCkuc2V0U3RhdGlzdGljc0NhY2hlTWF4QWdlQ2FwKGRvdWJsZVZhbHVlKG1lc3NhZ2VC
b2R5KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggY2ZiMjZkYTkxMjU4MjEzNzMyMWJhNDM2OTYyNWFkNzNiMzdkZTJlZS4u
NTk4ZmJlMTc5YmM0NTQxYzg5ZjIzZDA2NmU1OTI3YWJhODMwMjdlMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTExLTA5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBhIHByb29mLW9mLWNvbmNlcHQgZm9yIEZpcnN0IFBh
cnR5IFNldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxODcyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEyMDQ1NTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVy
YWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQtZmlyc3QtcGFy
dHktc2V0cy10ZXN0aW5nLW92ZXJyaWRlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTExLTAyICBEaWVn
byBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gVW5yZXZp
ZXdlZCB0ZXN0IGdhcmRlbmluZy4gVXBkYXRlIHRlc3QgZXhwZWN0YXRpb25zLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQtZmlyc3QtcGFydHkt
c2V0cy10ZXN0aW5nLW92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1vdmVycmlkZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM2NGZkZGM5NTcyNTc4NTZjOTMzMWU4MmZmMzMyNmM1
YjBjNmY3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmlyc3Rw
YXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1vdmVycmlkZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCB3ZSBjYW4gc2V0IHZhbHVlcyBpbiBhIEZp
cnN0IFBhcnR5IFNldHMgZm9yIHRlc3RpbmcuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIFN1Yi1kb21haW5zIGxvY2FsaG9zdCBhbmQgb3RoZXJEb21haW4gd2VyZSBzdWNj
ZXNzZnVsbHkgaW5zZXJ0ZWQgaW50byBhIEZpcnN0IFBhcnR5IFNldCB1bmRlciB0b3AgZnJhbWUg
ZG9tYWluIDEyNy4wLjAuMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZmlyc3RwYXJ0
eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1vdmVycmlkZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQtZmlyc3QtcGFydHktc2V0cy10ZXN0
aW5nLW92ZXJyaWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlMjdhYTgxYTYxNWY2NjAxZDQ0NjMyMzU0
OGI2Nzg4ZjVlNTMyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Zmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1vdmVycmlkZS5odG1s
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUZXN0cyB0
aGF0IHdlIGNhbiBzZXQgdmFsdWVzIGluIGEgRmlyc3QgUGFydHkgU2V0cyBmb3IgdGVzdGluZy4i
KTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgY29uc3Qgc3ViRG9t
YWluMSA9ICJsb2NhbGhvc3QiOworICAgICAgICBjb25zdCBzdWJEb21haW4yID0gIm90aGVyRG9t
YWluIjsKKyAgICAgICAgY29uc3QgdG9wRnJhbWVEb21haW4gPSAiMTI3LjAuMC4xIjsKKworICAg
ICAgICB0ZXN0UnVubmVyLnNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKHN1YkRvbWFp
bjEsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRGaXJzdFBhcnR5U2V0
c1Rlc3RpbmdPdmVycmlkZShzdWJEb21haW4yLCB0b3BGcmFtZURvbWFpbik7CisKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNJbkZpcnN0UGFydHlTZXQoc3ViRG9tYWluMSwgdG9wRnJhbWVEb21h
aW4pICYmIHRlc3RSdW5uZXIuaXNJbkZpcnN0UGFydHlTZXQoc3ViRG9tYWluMiwgdG9wRnJhbWVE
b21haW4pKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdWItZG9tYWlucyAiICsgc3ViRG9t
YWluMSArICIgYW5kICIgKyBzdWJEb21haW4yICsgIiB3ZXJlIHN1Y2Nlc3NmdWxseSBpbnNlcnRl
ZCBpbnRvIGEgRmlyc3QgUGFydHkgU2V0IHVuZGVyIHRvcCBmcmFtZSBkb21haW4gIiArIHRvcEZy
YW1lRG9tYWluKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkF0
IGxlYXN0IG9uZSBzdWItZG9tYWluIHdhcyBub3Qgc3VjY2Vzc2Z1bGx5IGluc2VydGVkIGludG8g
YSBGaXJzdCBQYXJ0eSBTZXQgdW5kZXIgIiArIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgfQor
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hKU1Rlc3QpOworCisgICAgPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413626</attachid>
            <date>2020-11-09 13:43:20 -0800</date>
            <delta_ts>2020-11-09 15:50:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218721-20201109134319.patch</filename>
            <type>text/plain</type>
            <size>45611</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGU2NWRhMTUwNjZmOGZl
M2VmZjEzNGQyOTUxYTQ1NGQ0NWRjZTMyMC4uNzlmMDgyMzVjOTc3NzM3YzdhN2EwZjQ1NDlhZmZk
NGYxNTZkMmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTExLTA5ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBhIHByb29mLW9mLWNvbmNlcHQgZm9yIEZpcnN0IFBhcnR5IFNldHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODcyMQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNzEyMDQ1NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRhcHRlZCBmcm9tIGFuIG9yaWdpbmFsIHBhdGNoIGJ5IEpvaG4gV2lsYW5k
ZXIuCisKKyAgICAgICAgQWRkIGEgZHJhZnQgaW1wbGVtZW50YXRpb24gb2YgZnVuY3Rpb25hbGl0
eSB0aGF0IFdlYktpdCBtYXkgdXNlIEZpcnN0CisgICAgICAgIFBhcnR5IFNldHMgZm9yLiBGaXJz
dCBQYXJ0eSBTZXRzIGFyZSBiZWluZyB0YWxrZWQgYWJvdXQgaW4gcHVibGljCisgICAgICAgIHN0
YW5kYXJkcyBncm91cHMsIHNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL2ZpcnN0LXBh
cnR5LXNldHMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQt
Zmlyc3QtcGFydHktc2V0cy10ZXN0aW5nLW92ZXJyaWRlLmh0bWwKKworICAgICAgICAqIENNYWtl
TGlzdHMudHh0OgorICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogTW9kdWxlcy9m
aXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rmlyc3RQYXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzVGVzdE92ZXJyaWRlKToKKyAgICAgICAg
KFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpmaXJzdFBhcnR5U2V0c1dpdGhRdWlyayk6CisgICAg
ICAgIFdlYktpdCBjYW4gdXNlIEZpcnN0IFBhcnR5IFNldHMgdG8gaW1wbGVtZW50IHF1aXJrcyBv
biBzcGVjaWZpYyBzaXRlcworICAgICAgICB0aGF0IG5lZWQgdGhpcmQgcGFydHkgY29va2llIGFj
Y2VzcyB1bmRlciBkb21haW5zIHRoYXQgc2hhcmUgb3duZXJzaGlwLgorCisgICAgICAgIChXZWJD
b3JlOjpGaXJzdFBhcnR5U2V0czo6Zmlyc3RQYXJ0eVNldHMpOgorICAgICAgICAoV2ViQ29yZTo6
Rmlyc3RQYXJ0eVNldHM6OnNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092
ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpjYW5SZXF1ZXN0U3Rv
cmFnZUFjY2Vzc0ZvckxvZ2luUHVycG9zZXNXaXRob3V0UHJpb3JVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICBUaGlyZCBwYXJ0eSBkb21haW5zIG5lZWRpbmcgc3RvcmFnZSBhY2Nlc3MgbWF5IG5v
dCBiZSBvbmVzIHdoaWNoIGFyZSAKKyAgICAgICAgdHlwaWNhbGx5IGludGVyYWN0ZWQgd2l0aCBh
cyBmaXJzdCBwYXJ0eSwgc3VjaCBhcyBmb3IgYXV0aGVudGljYXRpb24KKyAgICAgICAgZHVyaW5n
IGEgbG9naW4uIFJlbGF4aW5nIHRoaXMgaXMgYSBwb3RlbnRpYWwgZnVuY3Rpb25hbGl0eSBvZiBG
aXJzdAorICAgICAgICBQYXJ0eSBTZXRzIHRoYXQgdGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9y
LiBUaGlzIHdvdWxkIG9ubHkgYmUKKyAgICAgICAgcmVsYXhlZCBmb3Igc2l0ZXMgd2l0aCBzaGFy
ZWQgb3duZXJzaGlwLgorCisgICAgICAgIChXZWJDb3JlOjpGaXJzdFBhcnR5U2V0czo6bG9naW5E
b21haW5zRm9yRmlyc3RQYXJ0eSk6CisgICAgICAgICogTW9kdWxlcy9maXJzdHBhcnR5c2V0cy9G
aXJzdFBhcnR5U2V0cy5oOiBBZGRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybVdpbkNhaXJvLmNtYWtl
OgorICAgICAgICAqIFNvdXJjZXNHVEsudHh0OgorICAgICAgICAqIFNvdXJjZXNXUEUudHh0Ogor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMC0xMS0w
OSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09T
XSBTeXN0ZW0gc291bmRzIHNob3VsZCBiZSBwbGF5ZWQgaW4gdGhlIFVJIHByb2Nlc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggN2QwN2JjNTk3OGY5Mjk0ODBkMDFjY2ZkYjU3NjMyYmI2MmQwZWNjZC4uN2YyMGI4Yjcz
NzM3MWEzNjgzNmQ0NzFkNjRiMGIzYzY2MWY4ZTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBA
QAorMjAyMC0xMS0wOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4K
KworICAgICAgICBJbXBsZW1lbnQgYSBwcm9vZi1vZi1jb25jZXB0IGZvciBGaXJzdCBQYXJ0eSBT
ZXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg3
MjEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMjA0NTU5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIGRyYWZ0IGltcGxlbWVudGF0aW9u
IG9mIGZ1bmN0aW9uYWxpdHkgdGhhdCBXZWJLaXQgbWF5IHVzZSBGaXJzdAorICAgICAgICBQYXJ0
eSBTZXRzIGZvci4gRmlyc3QgUGFydHkgU2V0cyBhcmUgYmVpbmcgdGFsa2VkIGFib3V0IGluIHB1
YmxpYworICAgICAgICBzdGFuZGFyZHMgZ3JvdXBzLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3By
aXZhY3ljZy9maXJzdC1wYXJ0eS1zZXRzLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Byb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0Rmly
c3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6aXNJbkZpcnN0UGFydHlTZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6Y2xlYXJGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZSk6CisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmNwcDoKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVN0YXRpc3Rp
Y3NSZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFTdG9yZVNl
dEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAgICAgKFdLV2Vic2l0ZURhdGFT
dG9yZUlzSW5GaXJzdFBhcnR5U2V0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLmg6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6aXNJbkZpcnN0UGFydHlTZXQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlk
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmlzSW5GaXJzdFBhcnR5U2V0
KToKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6Y2xlYXJGaXJzdFBhcnR5U2V0
c1Rlc3RpbmdPdmVycmlkZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuaDoKKyAgICAgICAgTGF5b3V0IHRlc3RzIGFyZSBnb2luZyB0byBuZWVkIGEg
d2F5IHRvIGNyZWF0ZSBGaXJzdCBQYXJ0eSBTZXRzCisgICAgICAgIGZvciB0ZXN0aW5nIHB1cnBv
c2VzLiBUaGlzIHBhdGNoIGFkZHMgc3VwcG9ydCBmb3IgdGhhdC4KKworCiAyMDIwLTExLTA5ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1NdIFN5
c3RlbSBzb3VuZHMgc2hvdWxkIGJlIHBsYXllZCBpbiB0aGUgVUkgcHJvY2VzcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCBjNGY5MDc0NWY1NjIyNjkzMzg4Y2UwZGEzYTM0ZmIwMTUwY2IxNjVmLi5j
YTUxODU0YzFkNGQ3MzdiODFiYWY4MDI4ZWM2NmQ0Nzc0YTNlMzJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtMzUsNiArMzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNU
T1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9sZWdhY3ki
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvZW50cmllc2FwaSIKICAgICAiJHtXRUJDT1JF
X0RJUn0vTW9kdWxlcy9mZXRjaCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9maXJzdHBh
cnR5c2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9nZW9sb2NhdGlvbiIKICAgICAi
JHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9oaWdobGlnaHQiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L01v
ZHVsZXMvaW5kZXhlZGRiIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggNzYxNDYyMzFhMmIzYTFlZWYw
YzNhMmUzZDE0MTI2N2RmNmFhYWRkOS4uNjJiYmNjN2ViY2EwZmFkYzIzZmFmMzBhYmNhZmYzOTBm
MTNmZjcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0zMiw2ICszMiw4IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVy
LmgKICAgICBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyQ2xpZW50LmgKIAorICAgIE1vZHVsZXMv
Zmlyc3RwYXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMuaAorCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlv
bi9HZW9sb2NhdGlvbi5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNsaWVu
dC5oCiAgICAgTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbkNvbnRyb2xsZXIuaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maXJzdHBhcnR5c2V0cy9GaXJzdFBhcnR5
U2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzL0ZpcnN0UGFy
dHlTZXRzLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43Y2MzMTUyZmQ1NWI5ODI2MWNkNGExNGM0ZTJjZjc5Zjhi
YTQwYzhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maXJzdHBh
cnR5c2V0cy9GaXJzdFBhcnR5U2V0cy5jcHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGaXJzdFBhcnR5U2V0cy5oIgorCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNl
dDxSZWdpc3RyYWJsZURvbWFpbj4+JiBGaXJzdFBhcnR5U2V0czo6Zmlyc3RQYXJ0eVNldHNUZXN0
T3ZlcnJpZGUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPFJlZ2lzdHJh
YmxlRG9tYWluLCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPj4+IG1hcDsKKyAgICByZXR1cm4g
bWFwLmdldCgpOworfQorCitIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoU2V0PFJlZ2lz
dHJhYmxlRG9tYWluPj4mIEZpcnN0UGFydHlTZXRzOjpmaXJzdFBhcnR5U2V0c1dpdGhRdWlyaygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4s
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Pj4gbWFwOworICAgIHJldHVybiBtYXAuZ2V0KCk7
Cit9CisKK0hhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+PiYgRmlyc3RQYXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzKCkKK3sKKyAgICBhdXRvJiBzZXRz
ID0gZmlyc3RQYXJ0eVNldHNUZXN0T3ZlcnJpZGUoKTsKKyAgICBpZiAoIXNldHMuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gc2V0czsKKworICAgIHJldHVybiBmaXJzdFBhcnR5U2V0c1dpdGhR
dWlyaygpOworfQorCit2b2lkIEZpcnN0UGFydHlTZXRzOjpzZXRGaXJzdFBhcnR5U2V0c1Rlc3Rp
bmdPdmVycmlkZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCit7CisgICAgZmlyc3RQYXJ0eVNldHNUZXN0
T3ZlcnJpZGUoKS5lbnN1cmUodG9wRnJhbWVEb21haW4sIFtdIHsgcmV0dXJuIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+IHsgfTsKKyAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFkZChzdWJE
b21haW4pOworfQorCit2b2lkIEZpcnN0UGFydHlTZXRzOjpjbGVhckZpcnN0UGFydHlTZXRzVGVz
dGluZ092ZXJyaWRlKCkKK3sKKyAgICBmaXJzdFBhcnR5U2V0c1Rlc3RPdmVycmlkZSgpLmNsZWFy
KCk7Cit9CisKK2Jvb2wgRmlyc3RQYXJ0eVNldHM6OmNhblJlcXVlc3RTdG9yYWdlQWNjZXNzRm9y
TG9naW5QdXJwb3Nlc1dpdGhvdXRQcmlvclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbikKK3sKKyAgICBhdXRvIGxvZ2luRG9tYWlucyA9IGxvZ2luRG9tYWluc0ZvckZpcnN0
UGFydHkodG9wRnJhbWVEb21haW4pOworICAgIGlmIChsb2dpbkRvbWFpbnMpCisgICAgICAgIHJl
dHVybiBsb2dpbkRvbWFpbnMudmFsdWUoKS5jb250YWlucyhzdWJGcmFtZURvbWFpbik7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitPcHRpb25hbDxIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPj4g
Rmlyc3RQYXJ0eVNldHM6OmxvZ2luRG9tYWluc0ZvckZpcnN0UGFydHkoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGZpcnN0UGFydHlEb21haW4pCit7CisgICAgYXV0byBpdCA9IGZpcnN0UGFydHlT
ZXRzKCkuZmluZChmaXJzdFBhcnR5RG9tYWluKTsKKyAgICBpZiAoaXQgIT0gZmlyc3RQYXJ0eVNl
dHMoKS5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzL0ZpcnN0UGFydHlTZXRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpcnN0cGFydHlzZXRzL0ZpcnN0UGFydHlTZXRzLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNmMwNmRkNDJhNWYyY2M0M2MxMTc1YmU4NGM3Y2RiZmVjZTliMmM1MQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlyc3RwYXJ0eXNldHMvRmlyc3RQYXJ0eVNl
dHMuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJRdWlya3MuaCIKKyNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgorI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgRmlyc3RQYXJ0eVNldHMgeworLy8gVGhpcyBpcyBhIGRyYWZ0IGlt
cGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9uYWxpdHkgdGhhdCBXZWJLaXQgbWF5IHVzZSBGaXJzdCBQ
YXJ0eSBTZXRzIGZvci4KKy8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL2ZpcnN0
LXBhcnR5LXNldHMgZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gRmlyc3QgUGFydHkgU2V0cy4KK3B1
YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFp
biwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+JiBmaXJzdFBhcnR5U2V0cygpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGNhblJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTG9naW5Q
dXJwb3Nlc1dpdGhvdXRQcmlvclVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
bik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE9wdGlvbmFsPEhhc2hTZXQ8UmVnaXN0cmFi
bGVEb21haW4+PiBsb2dpbkRvbWFpbnNGb3JGaXJzdFBhcnR5KGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Rmlyc3RQYXJ0eVNldHNU
ZXN0aW5nT3ZlcnJpZGUoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgdm9pZCBjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKCk7CisKK3ByaXZh
dGU6CisgICAgc3RhdGljIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVnaXN0
cmFibGVEb21haW4+PiYgZmlyc3RQYXJ0eVNldHNUZXN0T3ZlcnJpZGUoKTsKKyAgICBzdGF0aWMg
SGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+JiBm
aXJzdFBhcnR5U2V0c1dpdGhRdWlyaygpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtV2luQ2Fpcm8uY21ha2UKaW5kZXggMDc3OGY3NTU2NmM2NDYzMDIw
YTBlMDdjNTJhNjVjMWE0NzRmNjI4OS4uYzQyN2YzZjI4YTNlZmQ4N2Y2NTE0NTM4M2E2Yzk3ODUw
NjMzOWJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1XaW5DYWlyby5jbWFr
ZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdpbkNhaXJvLmNtYWtlCkBAIC0xNSw2ICsx
NSw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9JTkNMVURFX0RJUkVDVE9SSUVTCiAp
CiAKIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUworICAgIE1vZHVsZXMvZmlyc3RwYXJ0eXNl
dHMvRmlyc3RQYXJ0eVNldHMuY3BwCiAgICAgcGFnZS93aW4vRnJhbWVDYWlyb1dpbi5jcHAKICAg
ICBwYWdlL3dpbi9SZXNvdXJjZVVzYWdlT3ZlcmxheVdpbi5jcHAKICAgICBwYWdlL3dpbi9SZXNv
dXJjZVVzYWdlVGhyZWFkV2luLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNl
c0dUSy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dAppbmRleCA5ZDJjMTIxNjI4
Njk1ZTQ0MzY3MDUyMThkZDU4NzYxZGU3M2RmMDk4Li4xNmQ3MWE4YzFjODFjZGY1ODdmNzM1NjI4
YWY4MmQxYWEzYWQ3NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzR1RLLnR4dApAQCAtNDYsNiArNDYsOCBAQCBl
ZGl0aW5nL2d0ay9XZWJDb250ZW50UmVhZGVyR3RrLmNwcAogCiBsb2FkZXIvc291cC9SZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCiAKK01vZHVsZXMvZmlyc3RwYXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMu
Y3BwCisKIHBhZ2UvZ3RrL0RyYWdDb250cm9sbGVyR3RrLmNwcAogCiBwYWdlL2xpbnV4L1Jlc291
cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzV1BFLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNXUEUudHh0CmluZGV4IGMxMjI5ZWY3
NzExYjg1OWI1MWMwMzU1ODVjMmY3ZGI2OGJkM2JhMmQuLjA2ODA4MDE0ZjVkYjMyZDYyODQyM2M3
ZDNiZDBjM2UwZDkzZWM3ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNXUEUu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNXUEUudHh0CkBAIC01Nyw2ICs1Nyw4IEBA
IHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU5pY29zaWEuY3BwCiBwYWdlL3Njcm9sbGluZy9uaWNvc2lhL1Njcm9sbGluZ1RyZWVQb3NpdGlv
bmVkTm9kZS5jcHAKIHBhZ2Uvc2Nyb2xsaW5nL25pY29zaWEvU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGUuY3BwCiAKK01vZHVsZXMvZmlyc3RwYXJ0eXNldHMvRmlyc3RQYXJ0eVNldHMuY3BwCisKIHBs
YXRmb3JtL1Njcm9sbEFuaW1hdGlvbktpbmV0aWMuY3BwCiBwbGF0Zm9ybS9Vc2VyQWdlbnRRdWly
a3MuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2ZTFiMzE3MTdiODg4MTE3MjEwODIyYmUyNzBiZDY0MWJjYWIwZTk3Li5h
NDk3OTBlNjRkMzE1ZWI1ZGNmYTY5YTE5MjQ0Yzc0MzFkMGI2OGU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjY5LDYgKzEy
NjksOCBAQAogCQk0NkVGQUYxMjFFNUZCOUYxMDBFN0YzNEIgLyogTG93UG93ZXJNb2RlTm90aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RUZB
RjEwMUU1RkI5RTEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ2RjAyQTFBMjM3MzdGODMw
MDEwNkE2NCAvKiBFdmVudExvb3AuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDlCMEFCQ0ExMjM2NzlBQjMwMEI0NTA4NSAvKiBFdmVudExvb3AuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0NkZDQjYxODFB
NzA4MjBFMDBDNUEyMUUgLyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDM3QjM3NTE1QzFBN0UxMDA2REM4OTgg
LyogRGlhZ25vc3RpY0xvZ2dpbmdLZXlzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDkyN0Q1MDkyNTNERDhBMzAwMEFGNDVGIC8qIEZpcnN0UGFy
dHlTZXRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5MjdENTA3MjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5jcHAgKi87IH07CisJ
CTQ5MjdENTBBMjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDkyN0Q1MDgyNTNERDhBMzAwMEFG
NDVGIC8qIEZpcnN0UGFydHlTZXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNDkyOTFFNEIxMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVy
aW5nTW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9kZS5oICovOyB9Owog
CQk0OTNFNUUwOTEyRDY0MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTNFNUUwODEyRDY0
MjA1MDAwMjAwODEgLyogUGxhdGZvcm1DQUxheWVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDk0NUJGRDQxM0NGODA5MDAwQ0MzQjM4
IC8qIFRyYW5zZm9ybVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OTQ1QkZEMjEzQ0Y4MDkwMDBDQzNCMzggLyogVHJhbnNmb3JtU3RhdGUuaCAq
LzsgfTsKQEAgLTgwODksNiArODA5MSw4IEBACiAJCTQ2RUZBRjBGMUU1RkI5RTEwMEU3RjM0QiAv
KiBMb3dQb3dlck1vZGVOb3RpZmllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBMb3dQb3dlck1vZGVOb3RpZmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQ2RUZBRjEwMUU1RkI5RTEwMEU3RjM0QiAvKiBMb3dQb3dlck1vZGVOb3RpZmllci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb3dQb3dlck1vZGVOb3RpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkY5MUJDOTFGQ0REMEZFMDAxNTk5QzMg
LyogSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXb3JrZXJOYXZpZ2F0b3JDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0OTI3RDUwNzI1M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNldHMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmlyc3RQYXJ0eVNldHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0OTI3RDUwODI1M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNl
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRmlyc3RQYXJ0eVNldHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDkyOTFFNEExMzQxNzJDODAwRTc1M0RFIC8qIEltYWdlUmVuZGVyaW5nTW9k
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFnZVJlbmRlcmluZ01vZGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkzRTVFMDgxMkQ2NDIwNTAwMDIwMDgx
IC8qIFBsYXRmb3JtQ0FMYXllckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDk0NUJGRDExM0NGODA5MDAwQ0MzQjM4IC8qIFRyYW5zZm9ybVN0YXRlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRyYW5zZm9ybVN0YXRlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMDM1LDYgKzIyMDM5LDE1IEBACiAJCQl0YWJXaWR0
aCA9IDQ7CiAJCQl1c2VzVGFicyA9IDA7CiAJCX07CisJCTZCOEE0OEU0MjUwODIwQTQwMDM5ODQz
NyAvKiBmaXJzdHBhcnR5c2V0cyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNDkyN0Q1MDcyNTNERDhBMzAwMEFGNDVGIC8qIEZpcnN0UGFydHlTZXRzLmNw
cCAqLywKKwkJCQk0OTI3RDUwODI1M0REOEEzMDAwQUY0NUYgLyogRmlyc3RQYXJ0eVNldHMuaCAq
LywKKwkJCSk7CisJCQlwYXRoID0gZmlyc3RwYXJ0eXNldHM7CisJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOworCQl9OwogCQk2RTI3RjI0MTIyOThDRTJFMDBGMUY2MzIgLyogYW5nbGUgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMjM1MjYsNiArMjM1Mzks
NyBAQAogCQkJCUNEQTk4REJEMTYwMTRFMDgwMEZFQTNCMSAvKiBlbmNyeXB0ZWRtZWRpYSAqLywK
IAkJCQk4M0ZCMzM2NTFGNTA4QTE3MDA5ODZFNTQgLyogZW50cmllc2FwaSAqLywKIAkJCQk0MUY1
NEY3QzFDNTBDNEY2MDAzMzg0ODggLyogZmV0Y2ggKi8sCisJCQkJNkI4QTQ4RTQyNTA4MjBBNDAw
Mzk4NDM3IC8qIGZpcnN0cGFydHlzZXRzICovLAogCQkJCTUxOEY0RkU5MTk0Q0E0QjYwMDgxQkFB
RSAvKiBnYW1lcGFkICovLAogCQkJCTk3MTE0NUZGMTRFRjAwNzkwMDY3NEZEOSAvKiBnZW9sb2Nh
dGlvbiAqLywKIAkJCQk0NEU4OEU0NzIzNjhERjBGMDA5QjQ4NDcgLyogaGlnaGxpZ2h0ICovLApA
QCAtMzE3NTYsNiArMzE3NzAsNyBAQAogCQkJCTQ5RUNFQjZFMTQ5OTc5MEQwMENERDNBNCAvKiBG
aWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5RUNFQjcwMTQ5OTc5MEQwMENE
RDNBNCAvKiBGaWx0ZXJPcGVyYXRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzJDMDBEOTEy
OTYxOUY4MDA1Qzk1NzUgLyogRmluZE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5MjdE
NTBBMjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQThDRkYwNEYwQTE1NEYwOTAwMEE0MjM0IC8qIEZpeGVkVGFibGVMYXlvdXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTZGQjdEMkREMjUwRkQ4MjgwMDAyMDdBQSAvKiBGbGV4Rm9ybWF0dGluZ0Nv
bnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTZGQjdEMkRFMjUwRkQ4MkUwMDAyMDdBQSAvKiBG
bGV4Rm9ybWF0dGluZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTY5LDYgKzM1NTg0LDcg
QEAKIAkJCQk1Q0JENTk1OTIyODBFOTI2MDAyQjIyQUEgLyogQ3VzdG9tSGVhZGVyRmllbGRzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTQ0NjNDRjY4MjIxMkZBNjgwMDFBODU3NyAvKiBEYXRhRGV0
ZWN0b3JzQ29yZVNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNkU3MkY1NEMyMjlEQ0Qw
QzAwQjNFMTUxIC8qIEV4dGVuc2lvbnNHTEFOR0xFLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQ5
MjdENTA5MjUzREQ4QTMwMDBBRjQ1RiAvKiBGaXJzdFBhcnR5U2V0cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3Q0U2Q0JGRDE4N0YzOTQ5MDBENDZCRjUgLyogRm9ybWF0Q29udmVydGVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxMzBGMkY2MjRBRUE2MEEwMEUxRDBBMCAvKiBHYW1lQ29udHJv
bGxlclNvZnRMaW5rLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBNEJCMEExOTU0RDYxNjAwRkE1
QzJFIC8qIEdhbWVwYWQuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IDBiYjg1NzMwNTM4NGNiMzVkNzhh
NjRkYWM5NDM0ZDdmYzgyNGQ5ZjUuLjg3ZmI4YjJmMWQ5MTVkYmMyMTE4Y2NkMWMxMTg2MzkyODdh
OTc1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9ETlMuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZpcnN0UGFy
dHlTZXRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTG9nSW5pdGlhbGl6YXRpb24uaD4KQEAgLTEzMTEsNiArMTMxMiwyOSBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRAogICAgICAgICBuZXR3b3JrU2Vzc2lvbi0+c2V0VGhpcmRQYXJ0eUNOQU1F
RG9tYWluRm9yVGVzdGluZyhXVEZNb3ZlKGRvbWFpbikpOwogICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiB9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092
ZXJyaWRlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3sKKyAgICBXZWJDb3JlOjpGaXJzdFBhcnR5U2V0czo6c2V0Rmlyc3RQYXJ0
eVNldHNUZXN0aW5nT3ZlcnJpZGUoc3ViRG9tYWluLCB0b3BEb21haW4pOworICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Cit9CisKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzSW5GaXJzdFBhcnR5U2V0
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCit7CisgICAgYXV0byBpdCA9IFdlYkNvcmU6OkZpcnN0UGFydHlTZXRzOjpmaXJz
dFBhcnR5U2V0cygpLmZpbmQodG9wRG9tYWluKTsKKyAgICBpZiAoaXQgIT0gV2ViQ29yZTo6Rmly
c3RQYXJ0eVNldHM6OmZpcnN0UGFydHlTZXRzKCkuZW5kKCkpIHsKKyAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoaXQtPnZhbHVlLmNvbnRhaW5zKHN1YkRvbWFpbikpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKK30KKwordm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Y2xlYXJGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgV2ViQ29yZTo6Rmlyc3RQ
YXJ0eVNldHM6OmNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoKTsKKyAgICBjb21w
bGV0aW9uSGFuZGxlcigpOworfQorCiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RB
VElTVElDUykKIAogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlKGJvb2wgZGVidWdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDFhNzdmYWI5NjFkZjJlNWUzMDYxMjY5ZjU5MmEyYzRjODY5
NDZmOWQuLjExMzA4ODIyNmI2YjBkMjA4NWM3NWY2ZmY5M2VhM2EyMTBkYmFmZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTI3Myw2ICsy
NzMsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlIb3N0
Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiBmaXJzdFBhcnR5
SG9zdCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBjbmFtZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDTkFNRURvbWFpbkZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRGaXJzdFBhcnR5U2V0c1Rl
c3RpbmdPdmVycmlkZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CisgICAgdm9pZCBpc0luRmlyc3RQYXJ0eVNldChjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2xlYXJGaXJzdFBhcnR5
U2V0c1Rlc3RpbmdPdmVycmlkZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlm
CiAKICAgICB2b2lkIHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluCmluZGV4IDIwZmZiY2MzZmNkZmFkZWEzYzBhMzQ5NmM1MjgyMjQ4NGZmZGFhMTUuLmFj
YTcyNjRlMjc2NzIyM2Y2MWU2OTAzNTc0YTA4ZGRjYWMyMmZiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpA
QCAtMTQ2LDYgKzE0Niw5IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2Vp
dmVyIHsKICAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgp
IEFzeW5jCiAgICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldFRoaXJkUGFydHlD
TkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0Rmlyc3RQYXJ0eVNl
dHNUZXN0aW5nT3ZlcnJpZGUoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKKyAg
ICBJc0luRmlyc3RQYXJ0eVNldChXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc0lu
Rmlyc3RQYXJ0eVNldCkgQXN5bmMKKyAgICBDbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJy
aWRlKCkgLT4gKCkgQXN5bmMKICNlbmRpZgogCiAgICAgU2V0QWRDbGlja0F0dHJpYnV0aW9uRGVi
dWdNb2RlKGJvb2wgZGVidWdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tXZWJzaXRlRGF0YVN0b3JlUmVmLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5jcHAKaW5kZXggMTg0YmZkZWY2NDZlNGFh
ZjZkOTlmYjg5ZmE5OTA5ZTYwN2IwOTE3NS4uYjQxMWFlNThlMDVkN2ZiYzJmZTJjYzRlMmJiMjQ4
MzQ4ZDA2YzI4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tX
ZWJzaXRlRGF0YVN0b3JlUmVmLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS1dlYnNpdGVEYXRhU3RvcmVSZWYuY3BwCkBAIC03MTgsNiArNzE4LDcgQEAgdm9pZCBXS1dl
YnNpdGVEYXRhU3RvcmVTdGF0aXN0aWNzUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShXS1dlYnNpdGVE
YXRhU3RvcmVSZWYgZGEKICAgICBzdG9yZS5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKGZhbHNlLCBbY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7IH0pOwogICAgIHN0b3JlLnJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogICAgIHN0b3JlLnNjaGVkdWxlQ2xlYXJJbk1lbW9y
eUFuZFBlcnNpc3RlbnQoV2ViS2l0OjpTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3M6Ok5vLCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIHN0b3JlLmNsZWFyRmlyc3RQYXJ0eVNldHNU
ZXN0aW5nT3ZlcnJpZGUoW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGRhdGFTdG9yZVJlZik7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoY29udGV4dCk7
CkBAIC04ODcsMyArODg4LDI1IEBAIHZvaWQgV0tXZWJzaXRlRGF0YVN0b3JlR2V0QWxsU3RvcmFn
ZUFjY2Vzc0VudHJpZXMoV0tXZWJzaXRlRGF0YVN0b3JlUmVmIGRhdGFTdG9yCiAgICAgY2FsbGJh
Y2soY29udGV4dCwgV0tNdXRhYmxlQXJyYXlDcmVhdGUoKSk7CiAjZW5kaWYKIH0KKwordm9pZCBX
S1dlYnNpdGVEYXRhU3RvcmVTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShXS1dlYnNp
dGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBjb25zdCBXS1N0cmluZ1JlZiBzdWJEb21haW4s
IGNvbnN0IFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNp
dGVEYXRhU3RvcmVTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZUZ1bmN0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCisg
ICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5n
T3ZlcnJpZGUoV2ViS2l0Ojp0b0ltcGwoc3ViRG9tYWluKS0+c3RyaW5nKCksIFdlYktpdDo6dG9J
bXBsKHRvcEZyYW1lRG9tYWluKS0+c3RyaW5nKCksIFtjb250ZXh0LCBjb21wbGV0aW9uSGFuZGxl
cl0geworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250ZXh0KTsKKyAgICB9KTsKKyNlbHNl
CisgICAgY2FsbGJhY2soY29udGV4dCk7CisjZW5kaWYKK30KKwordm9pZCBXS1dlYnNpdGVEYXRh
U3RvcmVJc0luRmlyc3RQYXJ0eVNldChXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVm
LCBjb25zdCBXS1N0cmluZ1JlZiBzdWJEb21haW4sIGNvbnN0IFdLU3RyaW5nUmVmIHRvcEZyYW1l
RG9tYWluLCB2b2lkKiBjb250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVJc0luRmlyc3RQYXJ0eVNl
dEZ1bmN0aW9uIGNhbGxiYWNrKQoreworI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJ
Q1MpCisgICAgV2ViS2l0Ojp0b0ltcGwoZGF0YVN0b3JlUmVmKS0+aXNJbkZpcnN0UGFydHlTZXQo
V2ViS2l0Ojp0b0ltcGwoc3ViRG9tYWluKS0+c3RyaW5nKCksIFdlYktpdDo6dG9JbXBsKHRvcEZy
YW1lRG9tYWluKS0+c3RyaW5nKCksIFtjb250ZXh0LCBjYWxsYmFja10oYm9vbCBpbkZpcnN0UGFy
dHlTZXQpIHsKKyAgICAgICAgY2FsbGJhY2soaW5GaXJzdFBhcnR5U2V0LCBjb250ZXh0KTsKKyAg
ICB9KTsKKyNlbHNlCisgICAgY2FsbGJhY2soZmFsc2UsIGNvbnRleHQpOworI2VuZGlmCit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1dlYnNpdGVEYXRhU3Rv
cmVSZWYuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9y
ZVJlZi5oCmluZGV4IDFiNmI4MzU4YThiNzA5MGZjNTc0NTMxOWM3MWU2MDA5MWMyN2Y3YmMuLmYy
N2NiMmJkYzVmZmY0MjJiOWMzNWM0NjAyMzY5MjQ2MGZkNDViMTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLV2Vic2l0ZURhdGFTdG9yZVJlZi5oCkBAIC0y
MDgsNiArMjA4LDEyIEBAIFdLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFTdG9yZVVwZGF0ZUJ1
bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vic2l0CiB0eXBlZGVmIHZvaWQgKCpX
S1dlYnNpdGVEYXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzRnVu
Y3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CiBXS19FWFBPUlQgdm9pZCBXS1dlYnNpdGVE
YXRhU3RvcmVDbGVhckJ1bmRsZUlkZW50aWZpZXJJbk5ldHdvcmtQcm9jZXNzKFdLV2Vic2l0ZURh
dGFTdG9yZVJlZiBkYXRhU3RvcmVSZWYsIHZvaWQqIGNvbnRleHQsIFdLV2Vic2l0ZURhdGFTdG9y
ZUNsZWFyQnVuZGxlSWRlbnRpZmllckluTmV0d29ya1Byb2Nlc3NGdW5jdGlvbiBjb21wbGV0aW9u
SGFuZGxlcik7CiAKK3R5cGVkZWYgdm9pZCAoKldLV2Vic2l0ZURhdGFTdG9yZVNldEZpcnN0UGFy
dHlTZXRzVGVzdGluZ092ZXJyaWRlRnVuY3Rpb24pKHZvaWQqIGZ1bmN0aW9uQ29udGV4dCk7CitX
S19FWFBPUlQgdm9pZCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdP
dmVycmlkZShXS1dlYnNpdGVEYXRhU3RvcmVSZWYgZGF0YVN0b3JlUmVmLCBjb25zdCBXS1N0cmlu
Z1JlZiBzdWJEb21haW4sIGNvbnN0IFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluLCB2b2lkKiBj
b250ZXh0LCBXS1dlYnNpdGVEYXRhU3RvcmVTZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlk
ZUZ1bmN0aW9uIGNvbXBsZXRpb25IYW5kbGVyKTsKKwordHlwZWRlZiB2b2lkICgqV0tXZWJzaXRl
RGF0YVN0b3JlSXNJbkZpcnN0UGFydHlTZXRGdW5jdGlvbikoYm9vbCBpc0luRmlyc3RQYXJ0eVNl
dCwgdm9pZCogZnVuY3Rpb25Db250ZXh0KTsKK1dLX0VYUE9SVCB2b2lkIFdLV2Vic2l0ZURhdGFT
dG9yZUlzSW5GaXJzdFBhcnR5U2V0KFdLV2Vic2l0ZURhdGFTdG9yZVJlZiwgY29uc3QgV0tTdHJp
bmdSZWYgc3ViRG9tYWluLCBjb25zdCBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbiwgdm9pZCog
Y29udGV4dCwgV0tXZWJzaXRlRGF0YVN0b3JlSXNJbkZpcnN0UGFydHlTZXRGdW5jdGlvbiBjb21w
bGV0aW9uSGFuZGxlcik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCA2ZWUyNmQwNDZiMGIyMTg4NzA3M2U2ZWU3MzQ5ODQzZGFkMzM1YWZhLi5kNTEy
MjZkODM2ZmUwYmIwY2QxNjQxZjVkODNjNmJkNThkNWQ2ZjM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTEyNjUsMTEgKzEyNjUsMjkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUaGlyZFBh
cnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3MKIHsKICAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRUaGlyZFBhcnR5Q05B
TUVEb21haW5Gb3JUZXN0aW5nKHNlc3Npb25JRCwgZG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwogfQorCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldERvbWFpbnNXaXRo
VXNlckludGVyYWN0aW9uKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYgZG9t
YWlucykKIHsKICAgICBmb3IgKGF1dG8qIHByb2Nlc3NQb29sIDogV2ViUHJvY2Vzc1Bvb2w6OmFs
bFByb2Nlc3NQb29scygpKQogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0RG9tYWluc1dpdGhVc2Vy
SW50ZXJhY3Rpb24oSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4geyBkb21haW5z
IH0pOwogfQorCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlTZXRzVGVz
dGluZ092ZXJyaWRlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKHN1YkRv
bWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cit9CisK
K3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNJbkZpcnN0UGFydHlTZXQoY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Oklz
SW5GaXJzdFBhcnR5U2V0KHN1YkRvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Cit9CisKKwordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhckZp
cnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpDbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKCksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9M
T0FEX1NUQVRJU1RJQ1MpCiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0QWRDbGlja0F0
dHJpYnV0aW9uRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCBkMDMwNDNm
NzhkMDIxMzJmNDM5MzExZDI2MjdiMDhjM2M3ZGFhZDIyLi4xMzk2ZWM3MjkwNTkzMGEzMmJiZjBm
NDFkMDdjMDA0NWJlM2Q5M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMjAwLDYgKzIwMCw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlIb3N0LCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgY25hbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXREb21haW5zV2l0aFVzZXJJbnRlcmFjdGlvbihIYXNoU2V0PFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKTsKKyAgICB2b2lkIHNldEZpcnN0UGFydHlTZXRz
VGVzdGluZ092ZXJyaWRlKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgaXNJbkZpcnN0UGFydHlTZXQoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgY2xlYXJGaXJzdFBhcnR5U2V0c1Rlc3RpbmdP
dmVycmlkZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCiAKICAgICB2b2lk
IHNldEFkQ2xpY2tBdHRyaWJ1dGlvbkRlYnVnTW9kZShib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5k
ZXggZGFkMjA3MDFiZDM5ODkzOTg1Yzg0MmM4YTE4NjZhNWY1MGNlNWZkNS4uYTA2NzQ0MmI3NzJm
OTA3NDc5ZWZjODhmY2NmMjExNDg5ODIxOThjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTE3ODAs
NiArMTc4MCwyNiBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKAogCiAgICAgbmV0d29ya1Byb2Nl
c3MoKS5zZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB7IGNuYW1lVVJMIH0sIFtjYWxsYmFja0FnZ3JlZ2F0b3Jd
IHsgfSk7CiB9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0
aW5nT3ZlcnJpZGUoY29uc3QgU3RyaW5nJiBzdWJEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJh
bWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3sKKyAgICBhdXRvIGNhbGxiYWNrQWdncmVnYXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3Jl
YXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKworICAgIG5ldHdvcmtQcm9jZXNzKCku
c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHN1YkRvbWFpbiksIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluOjp1bmNoZWNrZWRDcmVhdGVGcm9tSG9zdCh0b3BGcmFtZURvbWFpbiksIFtjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsgfSk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6aXNJbkZp
cnN0UGFydHlTZXQoY29uc3QgU3RyaW5nJiBzdWJEb21haW4sIGNvbnN0IFN0cmluZyYgdG9wRnJh
bWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5pc0luRmlyc3RQYXJ0eVNldChXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbjo6dW5jaGVja2VkQ3JlYXRlRnJvbUhvc3Qoc3ViRG9tYWluKSwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW46OnVuY2hlY2tlZENyZWF0ZUZyb21Ib3N0KHRvcEZyYW1l
RG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQorCit2b2lkIFdlYnNpdGVE
YXRhU3RvcmU6OmNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8gY2FsbGJhY2tB
Z2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpjcmVhdGUoV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworCisgICAgbmV0d29ya1Byb2Nlc3MoKS5jbGVhckZpcnN0UGFydHlTZXRzVGVz
dGluZ092ZXJyaWRlKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7Cit9CisKICNlbmRpZiAvLyBF
TkFCTEUoUkVTT1VSQ0VfTE9BRF9TVEFUSVNUSUNTKQogCiB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnN5bmNMb2NhbFN0b3JhZ2UoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
V2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGYzZmU2NmQwNTk0MWFhM2YxN2RjMjkzMjUyZjUwN2My
NWZiYzFiY2UuLjVjMjI2MTVhZTMyZjg4YTdmNmVmYmFjOTEwYWE4N2E5YjE2OTE2ZDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmgKQEAgLTIzMiw2ICsyMzIsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6VGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB0aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKCkgY29u
c3Q7CiAgICAgYm9vbCBpc0l0cFN0YXRlRXhwbGljaXRseVNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQ7IH0KICAgICB2b2lkIHVzZUV4cGxpY2l0SVRQU3RhdGUo
KSB7IG1faXNJdHBTdGF0ZUV4cGxpY2l0bHlTZXQgPSB0cnVlOyB9CisgICAgdm9pZCBzZXRGaXJz
dFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShjb25zdCBTdHJpbmcmIHN1YkRvbWFpbiwgY29uc3Qg
U3RyaW5nJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIGlzSW5GaXJzdFBhcnR5U2V0KGNvbnN0IFN0cmluZyYgc3ViRG9tYWluLCBjb25zdCBT
dHJpbmcmIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
KyAgICB2b2lkIGNsZWFyRmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogICAgIHZvaWQgc3luY0xvY2FsU3RvcmFnZShDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4YTMw
MTE4MGZiZDE1ODI1OTE5Y2U1ZTEwOGNiOGNiMTU4MWNlNDY3Li5kMGYwOWQ1YTc3ZTFmNjZhODll
NzJiMmIxMmU2YmJhNTE4YzViYTI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMTEtMDkgIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgcHJv
b2Ytb2YtY29uY2VwdCBmb3IgRmlyc3QgUGFydHkgU2V0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MTIwNDU1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdCBzdXBwb3J0IGZvciBmdXR1cmUgbGF5b3V0IHRlc3RzIHdoaWNoIHdpbGwg
dXNlIEZpcnN0IFBhcnR5CisgICAgICAgIFNldHMuIFRoaXMgYWRkcyBUZXN0UnVubmVyIGZ1bmN0
aW9ucyBmb3Igc2V0dGluZyBhbmQgcmV0cmlldmluZworICAgICAgICB2YWx1ZXMgaW4gYSBGaXJz
dCBQYXJ0eSBTZXQuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6aXNJbkZpcnN0UGFydHlTZXQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6c2V0Rmlyc3RQYXJ0
eVNldHNUZXN0aW5nT3ZlcnJpZGUpOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aXNJ
bkZpcnN0UGFydHlTZXQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKwogMjAyMC0xMS0wOSAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW2J1aWxkLndlYmtpdC5vcmddIFVzZSB3b3JrZXJzcmMgaW5zdGVhZCBv
ZiBzbGF2ZXNyYyBmb3IgbmV3IEJ1aWxkYm90CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRl
eCA1NTE2MmZmMzQzZDI1ZjY5MDZjMzkyNzZmZDVhODkxZWRmMjliODY5Li5lOWQyNWMzN2M4OWM0
NGNiMTYzYjQ4ZWZjYzM4YjNiMWRlY2M4NzgyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwK
QEAgLTMzOSw2ICszMzksOCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdW5kZWZpbmVk
IHN0YXRpc3RpY3NTZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluKERPTVN0cmluZyBmaXJzdFBh
cnR5VVJMU3RyaW5nLCBET01TdHJpbmcgY25hbWVVUkxTdHJpbmcsIG9iamVjdCBjYWxsYmFjayk7
CiAgICAgdW5kZWZpbmVkIHN0YXRpc3RpY3NTZXRUaGlyZFBhcnR5Q05BTUVEb21haW4oRE9NU3Ry
aW5nIGNuYW1lVVJMU3RyaW5nLCBvYmplY3QgY2FsbGJhY2spOwogICAgIHVuZGVmaW5lZCBsb2Fk
ZWRTdWJyZXNvdXJjZURvbWFpbnMob2JqZWN0IGNhbGxiYWNrKTsKKyAgICB1bmRlZmluZWQgc2V0
Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoRE9NU3RyaW5nIHN1YkRvbWFpbiwgRE9NU3Ry
aW5nIHRvcEZyYW1lRG9tYWluKTsKKyAgICBib29sZWFuIGlzSW5GaXJzdFBhcnR5U2V0KERPTVN0
cmluZyBzdWJEb21haW4sIERPTVN0cmluZyB0b3BGcmFtZURvbWFpbik7CiAKICAgICAvLyBJbmpl
Y3RlZCBidW5kbGUgZm9ybSBjbGllbnQuCiAgICAgdW5kZWZpbmVkIGluc3RhbGxUZXh0RGlkQ2hh
bmdlSW5UZXh0RmllbGRDYWxsYmFjayhvYmplY3QgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKaW5kZXggZGZk
MDFhMzJmMzExZTEyNDRhYTc4NzliNDM3NTk3YWZhYzNlZmQ5ZS4uNjYxNmFhYjY3ZWFjMTZmMzAz
MjA4MmM2MjRhNzRkODc1ZjUxY2M4OSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNzEzLDYgKzE3MTMsMjIgQEAg
dm9pZCBUZXN0UnVubmVyOjpsb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoSlNWYWx1ZVJlZiBjYWxs
YmFjaykKICAgICBwb3N0TWVzc2FnZSgiTG9hZGVkU3VicmVzb3VyY2VEb21haW5zIik7CiB9CiAK
K3ZvaWQgVGVzdFJ1bm5lcjo6c2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUoSlNTdHJp
bmdSZWYgc3ViRG9tYWluLCBKU1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbikKK3sKKyAgICBwb3N0
TWVzc2FnZSgiU2V0Rmlyc3RQYXJ0eVNldHNUZXN0aW5nT3ZlcnJpZGUiLCBjcmVhdGVXS0RpY3Rp
b25hcnkoeworICAgICAgICB7ICJTdWJEb21haW4iLCB0b1dLKHN1YkRvbWFpbikgfSwKKyAgICAg
ICAgeyAiVG9wRnJhbWVEb21haW4iLCB0b1dLKHRvcEZyYW1lRG9tYWluKSB9LAorICAgIH0pKTsK
K30KKworYm9vbCBUZXN0UnVubmVyOjppc0luRmlyc3RQYXJ0eVNldChKU1N0cmluZ1JlZiBzdWJE
b21haW4sIEpTU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluKQoreworICAgIHJldHVybiBwb3N0U3lu
Y2hyb25vdXNQYWdlTWVzc2FnZVJldHVybmluZ0Jvb2xlYW4oIklzSW5GaXJzdFBhcnR5U2V0Iiwg
Y3JlYXRlV0tEaWN0aW9uYXJ5KHsKKyAgICAgICAgeyAiU3ViRG9tYWluIiwgdG9XSyhzdWJEb21h
aW4pIH0sCisgICAgICAgIHsgIlRvcEZyYW1lRG9tYWluIiwgdG9XSyh0b3BGcmFtZURvbWFpbikg
fSwKKyAgICB9KSk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6Y2FsbERpZFJlY2VpdmVMb2FkZWRT
dWJyZXNvdXJjZURvbWFpbnNDYWxsYmFjayhWZWN0b3I8U3RyaW5nPiYmIGRvbWFpbnMpCiB7CiAg
ICAgYXV0byByZXN1bHQgPSBtYWtlRG9tYWluc1ZhbHVlKGRvbWFpbnMpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCAwYmQz
YTA5ZTMyZDcxYjM1MTZlNGY4ZTA1YmVhMjJhZjk5NGIxZDIzLi5lNjcwNzM4MDNhZGVhMTM2YmMw
MWYyMGQ0NWMyMTQyZjFmNDk5NGJmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtNDQzLDYgKzQ0Myw4IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN0YXRpc3RpY3NDYWxsRGlkUmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUNhbGxiYWNr
KCk7CiAgICAgdm9pZCBsb2FkZWRTdWJyZXNvdXJjZURvbWFpbnMoSlNWYWx1ZVJlZiBjYWxsYmFj
ayk7CiAgICAgdm9pZCBjYWxsRGlkUmVjZWl2ZUxvYWRlZFN1YnJlc291cmNlRG9tYWluc0NhbGxi
YWNrKFZlY3RvcjxTdHJpbmc+JiYgZG9tYWlucyk7CisgICAgdm9pZCBzZXRGaXJzdFBhcnR5U2V0
c1Rlc3RpbmdPdmVycmlkZShKU1N0cmluZ1JlZiBzdWJEb21haW4sIEpTU3RyaW5nUmVmIHRvcEZy
YW1lRG9tYWluKTsKKyAgICBib29sIGlzSW5GaXJzdFBhcnR5U2V0KEpTU3RyaW5nUmVmIHN1YkRv
bWFpbiwgSlNTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4pOwogCiAgICAgLy8gSW5qZWN0ZWQgYnVu
ZGxlIGZvcm0gY2xpZW50LgogICAgIHZvaWQgaW5zdGFsbFRleHREaWRDaGFuZ2VJblRleHRGaWVs
ZENhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmNwcAppbmRleCA2ZGJjNjg0ZTg4NTBhZmUwNDU5MTM5ZmJlMTlkNWU1Y2Nk
YjcyNmU3Li41NjU2NDRhMjBlYTliN2RjYjA0ZDgzNzQ2NDU1NDAxMTEwZTU3ZGM1IDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMzM0Miw2ICszMzQyLDIx
IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OnNldFN0YXRpc3RpY3NUaGlyZFBhcnR5Q05BTUVEb21h
aW4oV0tTdHJpbmdSZWYgY25hbWVVUkxTdHJpCiAgICAgbV9jdXJyZW50SW52b2NhdGlvbi0+ZGlk
U2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWluKCk7CiB9CiAKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dEZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKFdLU3RyaW5nUmVmIHN1YkRvbWFpbiwgV0tT
dHJpbmdSZWYgdG9wRnJhbWVEb21haW4pCit7CisgICAgUmVzb3VyY2VTdGF0aXN0aWNzQ2FsbGJh
Y2tDb250ZXh0IGNvbnRleHQoKnRoaXMpOworICAgIFdLV2Vic2l0ZURhdGFTdG9yZVNldEZpcnN0
UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKHdlYnNpdGVEYXRhU3RvcmUoKSwgc3ViRG9tYWluLCB0
b3BGcmFtZURvbWFpbiwgJmNvbnRleHQsIHJlc291cmNlU3RhdGlzdGljc1ZvaWRSZXN1bHRDYWxs
YmFjayk7CisgICAgcnVuVW50aWwoY29udGV4dC5kb25lLCBub1RpbWVvdXQpOworfQorCitib29s
IFRlc3RDb250cm9sbGVyOjppc0luRmlyc3RQYXJ0eVNldChXS1N0cmluZ1JlZiBzdWJEb21haW4s
IFdLU3RyaW5nUmVmIHRvcEZyYW1lRG9tYWluKQoreworICAgIFJlc291cmNlU3RhdGlzdGljc0Nh
bGxiYWNrQ29udGV4dCBjb250ZXh0KCp0aGlzKTsKKyAgICBXS1dlYnNpdGVEYXRhU3RvcmVJc0lu
Rmlyc3RQYXJ0eVNldCh3ZWJzaXRlRGF0YVN0b3JlKCksIHN1YkRvbWFpbiwgdG9wRnJhbWVEb21h
aW4sICZjb250ZXh0LCByZXNvdXJjZVN0YXRpc3RpY3NCb29sZWFuUmVzdWx0Q2FsbGJhY2spOwor
ICAgIHJ1blVudGlsKGNvbnRleHQuZG9uZSwgbm9UaW1lb3V0KTsKKyAgICByZXR1cm4gY29udGV4
dC5yZXN1bHQ7Cit9CisKIHN0cnVjdCBBcHBCb3VuZERvbWFpbnNDYWxsYmFja0NvbnRleHQgewog
ICAgIGV4cGxpY2l0IEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrQ29udGV4dChUZXN0Q29udHJvbGxl
ciYgY29udHJvbGxlcikKICAgICAgICAgOiB0ZXN0Q29udHJvbGxlcihjb250cm9sbGVyKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IDMzYjY0OTRhYzYyNDRiOTJm
Y2I3ODA5YTU4ZDcyMDNjN2MxMjU4YTguLjg2MWUyZjVlNjY3ZWQ4M2I5NzdjYTA4MWIzMzljNjMz
ZTJiMjdlOGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAgLTI2
OSw2ICsyNjksMTAgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQnVuZGxlSWRlbnRpZmllcklu
TmV0d29ya1Byb2Nlc3MoY29uc3Qgc3RkOjpzdHJpbmcmIGJ1bmRsZUlkZW50aWZpZXIpOwogICAg
IHZvaWQgY2xlYXJCdW5kbGVJZGVudGlmaWVySW5OZXR3b3JrUHJvY2VzcygpOwogCisgICAgdm9p
ZCBjbGVhckZpcnN0UGFydHlTZXRzVGVzdGluZ092ZXJyaWRlKCk7CisgICAgdm9pZCBzZXRGaXJz
dFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShXS1N0cmluZ1JlZiBzdWJEb21haW4sIFdLU3RyaW5n
UmVmIHRvcERvbWFpbik7CisgICAgYm9vbCBpc0luRmlyc3RQYXJ0eVNldChXS1N0cmluZ1JlZiBz
dWJEb21haW4sIFdLU3RyaW5nUmVmIHRvcERvbWFpbik7CisKICAgICBXS0FycmF5UmVmIG9wZW5Q
YW5lbEZpbGVVUkxzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVuUGFuZWxGaWxlVVJMcy5nZXQoKTsg
fQogICAgIHZvaWQgc2V0T3BlblBhbmVsRmlsZVVSTHMoV0tBcnJheVJlZiBmaWxlVVJMcykgeyBt
X29wZW5QYW5lbEZpbGVVUkxzID0gZmlsZVVSTHM7IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAppbmRleCAxNGMwNGVkMWZhOTM5NGY1NzJmNjQ5YTkxYjQ3ZWZi
MjA2ZWY4NTRlLi5mMTE3MjExNGY3N2U0ZGE0Zjk0YTcwNGVmZTllYzliMDNiNjIzMjA3IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtNjM5LDYgKzYzOSwx
NCBAQCB2b2lkIFRlc3RJbnZvY2F0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1
bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlTmFtZQogICAgICAgICByZXR1cm47CiAgICAgfQogCisg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTZXRGaXJz
dFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZSIpKSB7CisgICAgICAgIGF1dG8gbWVzc2FnZUJvZHlE
aWN0aW9uYXJ5ID0gZGljdGlvbmFyeVZhbHVlKG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgYXV0byBz
dWJEb21haW4gPSBzdHJpbmdWYWx1ZShtZXNzYWdlQm9keURpY3Rpb25hcnksICJTdWJEb21haW4i
KTsKKyAgICAgICAgYXV0byB0b3BGcmFtZURvbWFpbiA9IHN0cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5
RGljdGlvbmFyeSwgIlRvcEZyYW1lRG9tYWluIik7CisgICAgICAgIFRlc3RDb250cm9sbGVyOjpz
aW5nbGV0b24oKS5zZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShzdWJEb21haW4sIHRv
cEZyYW1lRG9tYWluKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9k
ZSIpKSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNz
RGVidWdNb2RlKGJvb2xlYW5WYWx1ZShtZXNzYWdlQm9keSkpOwogICAgICAgICByZXR1cm47CkBA
IC0xMTkyLDYgKzEyMDAsMTUgQEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlv
bjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgYXV0
byByZXN1bHQgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShoYXNMb2NhbFN0b3JhZ2UpKTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CisgICAgCisgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJJc0luRmlyc3RQYXJ0eVNldCIpKSB7CisgICAg
ICAgIGF1dG8gbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gZGljdGlvbmFyeVZhbHVlKG1lc3NhZ2VC
b2R5KTsKKyAgICAgICAgYXV0byBzdWJEb21haW4gPSBzdHJpbmdWYWx1ZShtZXNzYWdlQm9keURp
Y3Rpb25hcnksICJTdWJEb21haW4iKTsKKyAgICAgICAgYXV0byB0b3BGcmFtZURvbWFpbiA9IHN0
cmluZ1ZhbHVlKG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgIlRvcEZyYW1lRG9tYWluIik7CisgICAg
ICAgIGJvb2wgaXNJbkZpcnN0UGFydHlTZXQgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCku
aXNJbkZpcnN0UGFydHlTZXQoc3ViRG9tYWluLCB0b3BGcmFtZURvbWFpbik7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVhdGUoaXNJbkZpcnN0UGFydHlTZXQpKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CiAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NDYWNoZU1heEFnZUNhcCIp
KSB7CiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzQ2Fj
aGVNYXhBZ2VDYXAoZG91YmxlVmFsdWUobWVzc2FnZUJvZHkpKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZTdmMTY3Yjhh
NDZlMjBhZThkZjA3YTFmYjlmYzA2NjRmNjEwY2M2Li5mYWVhNDc4MjE3MmUzNTAwOTU3ZGNhMjc5
ZTA2M2FmMzQ1NGVkMDk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMTEtMDkgIEthdGUg
Q2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGEgcHJvb2Ytb2YtY29uY2VwdCBmb3IgRmlyc3QgUGFydHkgU2V0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIxCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83MTIwNDU1OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGF5b3V0IHRlc3QgY292ZXJhZ2UgZm9yIFdlYktpdDIuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2ZpcnN0cGFydHlzZXRzL3NldC1maXJzdC1wYXJ0eS1zZXRzLXRlc3Rp
bmctb3ZlcnJpZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMC0xMS0wOSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGV4cGVy
aW1lbnRhbDogYW5kIGludGVybmFsOiBwcmVmaXhlcyBmcm9tIHJlY2VudGx5IGFkZGVkIHRlc3Rz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBiYjMyMTlkYWE1MDk5MjBjYjQyMDk3NjFmZDYyNTE4MTBi
MTJmODM0Li40YjEzNTY2Yzg3Nzc2Y2E4NzYyNDVlZThjN2QwNzA2YmE2NTFkYTQxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE3Nyw2ICsxNzcsNyBAQCBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
b3BlbmRhdGFiYXNlLWFmdGVyLXN0b3JhZ2UtY3Jhc2guaHRtbCBbIFNraXAgXQogc3RvcmFnZS9p
bmRleGVkZGIvSURCT2JqZWN0LWxlYWsuaHRtbCBbIFNraXAgXQogZmFzdC9mb3Jtcy9jYWxsLXRl
eHQtZGlkLWNoYW5nZS1pbi10ZXh0LWZpZWxkLXdoZW4tdHlwaW5nLmh0bWwgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvaW4tYXBwLWJyb3dzZXItcHJpdmFjeS8gWyBTa2lwIF0KK2h0dHAvdGVzdHMvZmly
c3RwYXJ0eXNldHMvIFsgU2tpcCBdCiAKICMgT25seSBwYXJ0aWFsIHN1cHBvcnQgb24gQ29jb2Eg
cGxhdGZvcm1zLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zcGVlY2gtYXBpLyBb
IFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0
cy9zZXQtZmlyc3QtcGFydHktc2V0cy10ZXN0aW5nLW92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvZmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMt
dGVzdGluZy1vdmVycmlkZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGM2NGZkZGM5NTcyNTc4
NTZjOTMzMWU4MmZmMzMyNmM1YjBjNmY3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvZmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1v
dmVycmlkZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdHMgdGhhdCB3ZSBjYW4g
c2V0IHZhbHVlcyBpbiBhIEZpcnN0IFBhcnR5IFNldHMgZm9yIHRlc3RpbmcuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN1Yi1kb21haW5zIGxvY2FsaG9zdCBhbmQgb3Ro
ZXJEb21haW4gd2VyZSBzdWNjZXNzZnVsbHkgaW5zZXJ0ZWQgaW50byBhIEZpcnN0IFBhcnR5IFNl
dCB1bmRlciB0b3AgZnJhbWUgZG9tYWluIDEyNy4wLjAuMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVzdGluZy1vdmVy
cmlkZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9maXJzdHBhcnR5c2V0cy9zZXQtZmly
c3QtcGFydHktc2V0cy10ZXN0aW5nLW92ZXJyaWRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWJlMjdhYTgx
YTYxNWY2NjAxZDQ0NjMyMzU0OGI2Nzg4ZjVlNTMyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZmlyc3RwYXJ0eXNldHMvc2V0LWZpcnN0LXBhcnR5LXNldHMtdGVz
dGluZy1vdmVycmlkZS5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3MvcmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRl
c2NyaXB0aW9uKCJUZXN0cyB0aGF0IHdlIGNhbiBzZXQgdmFsdWVzIGluIGEgRmlyc3QgUGFydHkg
U2V0cyBmb3IgdGVzdGluZy4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAg
ICAgICAgY29uc3Qgc3ViRG9tYWluMSA9ICJsb2NhbGhvc3QiOworICAgICAgICBjb25zdCBzdWJE
b21haW4yID0gIm90aGVyRG9tYWluIjsKKyAgICAgICAgY29uc3QgdG9wRnJhbWVEb21haW4gPSAi
MTI3LjAuMC4xIjsKKworICAgICAgICB0ZXN0UnVubmVyLnNldEZpcnN0UGFydHlTZXRzVGVzdGlu
Z092ZXJyaWRlKHN1YkRvbWFpbjEsIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5zZXRGaXJzdFBhcnR5U2V0c1Rlc3RpbmdPdmVycmlkZShzdWJEb21haW4yLCB0b3BGcmFtZURv
bWFpbik7CisKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIuaXNJbkZpcnN0UGFydHlTZXQoc3ViRG9t
YWluMSwgdG9wRnJhbWVEb21haW4pICYmIHRlc3RSdW5uZXIuaXNJbkZpcnN0UGFydHlTZXQoc3Vi
RG9tYWluMiwgdG9wRnJhbWVEb21haW4pKSB7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJTdWIt
ZG9tYWlucyAiICsgc3ViRG9tYWluMSArICIgYW5kICIgKyBzdWJEb21haW4yICsgIiB3ZXJlIHN1
Y2Nlc3NmdWxseSBpbnNlcnRlZCBpbnRvIGEgRmlyc3QgUGFydHkgU2V0IHVuZGVyIHRvcCBmcmFt
ZSBkb21haW4gIiArIHRvcEZyYW1lRG9tYWluKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQoIkF0IGxlYXN0IG9uZSBzdWItZG9tYWluIHdhcyBub3Qgc3VjY2Vzc2Z1
bGx5IGluc2VydGVkIGludG8gYSBGaXJzdCBQYXJ0eSBTZXQgdW5kZXIgIiArIHRvcEZyYW1lRG9t
YWluKTsKKyAgICAgICAgfQorICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmaW5pc2hK
U1Rlc3QpOworCisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGY4MGFj
ZjBhNmY2ZTQ0YjZmMGU0NTc4MzM5ZjY5ZDRhMmEwMmE3My4uNTE3MTk3MGJhMGE3NDFjODNjODQ3
YzUyMTgzNmM4MGE1ZDVhMzQ4NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTgyMSw0ICs4MjEsNyBAQCBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9o
eWJpL2Nsb3NlZC1wb3J0LWRlbGF5Lmh0bWwgWyBQYXNzIF0KIAogIyBXZWJLaXQyIG9ubHkuCiBq
cy90aHJvdy1sYXJnZS1zdHJpbmctb29tLmh0bWwgWyBQYXNzIF0KLWZ1bGxzY3JlZW4vZnVsbC1z
Y3JlZW4tZW50ZXItd2hpbGUtZXhpdGluZy5odG1sIFsgUGFzcyBdClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQorZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1lbnRlci13aGlsZS1leGl0aW5nLmh0
bWwgWyBQYXNzIF0KKworIyBXZWJLaXQyIG9ubHkuCitodHRwL3Rlc3RzL2ZpcnN0cGFydHlzZXRz
LyBbIFBhc3MgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413637</attachid>
            <date>2020-11-09 15:50:49 -0800</date>
            <delta_ts>2020-11-09 16:24:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218721-20201109155048.patch</filename>
            <type>text/plain</type>
            <size>5785</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDljYTVkYzY5ODBmMTVhOGIwMjU1OGM5
NDc1MTQxMjVmZmE3M2U4OTQuLjA5YWMwOTY1NGU2NjQ5NWE3ZTM4ZTQ4OTY0NjQ0Y2MwMjkzMDU0
ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMDkgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgcHJvb2Ytb2YtY29u
Y2VwdCBmb3IgRmlyc3QgUGFydHkgU2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTIwNDU1
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0
Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmg6CisKIDIwMjAtMTAtMzAgIFRpbSBIb3J0b24gIDx0aW1v
dGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2NzY4OSk6IFJp
c2Ugb2YgdGhlIFRvbWIgUmFpZGVyIGdldHMgc3R1Y2sgd2hpbGUgbGF1bmNoaW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggNjc4ZGNiMjQxYmZiNzVhMWZjNGI5MWEwMDM1NWQ0MGI3YzJmNGE2OS4uM2RmMzA1YWE0
N2JjZTAwNThkZjM0Yzk3OTUyMDlhYTZhYWFhNjgwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDIwLTExLTA5ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29t
PgorCisgICAgICAgIEltcGxlbWVudCBhIHByb29mLW9mLWNvbmNlcHQgZm9yIEZpcnN0IFBhcnR5
IFNldHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIx
ODcyMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzEyMDQ1NTk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHRlZCBmcm9tIGFuIG9yaWdpbmFs
IHBhdGNoIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAgQWRkIGEgZHJhZnQgaW1wbGVtZW50
YXRpb24gb2YgZnVuY3Rpb25hbGl0eSB0aGF0IFdlYktpdCBtYXkgdXNlIEZpcnN0CisgICAgICAg
IFBhcnR5IFNldHMgZm9yLiBGaXJzdCBQYXJ0eSBTZXRzIGFyZSBiZWluZyB0YWxrZWQgYWJvdXQg
aW4gcHVibGljCisgICAgICAgIHN0YW5kYXJkcyBncm91cHMsIHNlZSBodHRwczovL2dpdGh1Yi5j
b20vcHJpdmFjeWNnL2ZpcnN0LXBhcnR5LXNldHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb246OmZpcnN0UGFydHlTZXRzKToKKyAgICAgICAgV2ViS2l0IGNhbiB1c2Ug
Rmlyc3QgUGFydHkgU2V0cyB0byBpbXBsZW1lbnQgcXVpcmtzIG9uIHNwZWNpZmljIHNpdGVzCisg
ICAgICAgIHRoYXQgbmVlZCB0aGlyZCBwYXJ0eSBjb29raWUgYWNjZXNzIHVuZGVyIGRvbWFpbnMg
dGhhdCBzaGFyZSBvd25lcnNoaXAuCisKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdl
U2Vzc2lvbjo6Y2FuUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JMb2dpblB1cnBvc2VzV2l0aG91dFBy
aW9yVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgVGhpcmQgcGFydHkgZG9tYWlucyBuZWVkaW5n
IHN0b3JhZ2UgYWNjZXNzIG1heSBub3QgYmUgb25lcyB3aGljaCBhcmUgCisgICAgICAgIHR5cGlj
YWxseSBpbnRlcmFjdGVkIHdpdGggYXMgZmlyc3QgcGFydHksIHN1Y2ggYXMgZm9yIGF1dGhlbnRp
Y2F0aW9uCisgICAgICAgIGR1cmluZyBhIGxvZ2luLiBSZWxheGluZyB0aGlzIGlzIGEgcG90ZW50
aWFsIGZ1bmN0aW9uYWxpdHkgb2YgRmlyc3QKKyAgICAgICAgUGFydHkgU2V0cyB0aGF0IHRoaXMg
cGF0Y2ggYWRkcyBzdXBwb3J0IGZvci4gVGhpcyB3b3VsZCBvbmx5IGJlCisgICAgICAgIHJlbGF4
ZWQgZm9yIHNpdGVzIHdpdGggc2hhcmVkIG93bmVyc2hpcC4KKworICAgICAgICAoV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpsb2dpbkRvbWFpbnNGb3JGaXJzdFBhcnR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oOgorCiAyMDIwLTEx
LTAyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lv
bihyMjY5MjI3KSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9yZWZlcnJlci10b3BsZXZlbC1zY3JpcHQtZmV0Y2guaHR0cHMuaHRt
bCBpcyBhIGZsYWt5IGNyYXNoCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVu
YWJsZUNvY29hLmggYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29hLmgKaW5kZXgg
OTA5YTYzNDBlMzE3ZDQzYTViY2JjYmMyYTQzMWZiODhjYTExZjkzNy4uMDA2MGFkMDcwOTI3ZDEz
MzE2ZWQ1ZjczMDliZGFkODRhNzk0ZTY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxh
dGZvcm1FbmFibGVDb2NvYS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlQ29j
b2EuaApAQCAtMjA0LDYgKzIwNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfRklMVEVSU19MRVZFTF8y
IDEKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0ZJUlNUX1BBUlRZX1NFVFMpCisjZGVm
aW5lIEVOQUJMRV9GSVJTVF9QQVJUWV9TRVRTIDEKKyNlbmRpZgorCiAjaWYgIWRlZmluZWQoRU5B
QkxFX0ZUTF9KSVQpICYmICFVU0UoSlNWQUxVRTMyXzY0KQogI2RlZmluZSBFTkFCTEVfRlRMX0pJ
VCAxCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
TmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmNwcAppbmRleCA4NDYxOGNlNDExOTEyMWI3ZGE5NTU4
NzA4YTJmOTRiMWU0ZWJlNDlhLi4yNjRmYTA2ZjM0MGY3ZWJhNzA3ZjMyODNlMzIxYjVhOWJlM2Vl
NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwCkBAIC0zNTMsNCArMzUzLDI4IEBAIE9wdGlvbmFsPFNl
Y29uZHM+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6Y2xpZW50U2lkZUNvb2tpZUNhcChjb25zdCBS
ZWdpc3RyYWJsZURvCiB9CiAjZW5kaWYgLy8gRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElD
UykKIAorI2lmIEVOQUJMRShGSVJTVF9QQVJUWV9TRVRTKQorSGFzaE1hcDxSZWdpc3RyYWJsZURv
bWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+JiBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OmZpcnN0UGFydHlTZXRzKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4+PiBtYXA7CisgICAg
cmV0dXJuIG1hcC5nZXQoKTsKK30KKworYm9vbCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNhblJl
cXVlc3RTdG9yYWdlQWNjZXNzRm9yTG9naW5QdXJwb3Nlc1dpdGhvdXRQcmlvclVzZXJJbnRlcmFj
dGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbikKK3sKKyAgICBhdXRvIGxvZ2luRG9tYWlucyA9
IGxvZ2luRG9tYWluc0ZvckZpcnN0UGFydHkodG9wRnJhbWVEb21haW4pOworICAgIGlmIChsb2dp
bkRvbWFpbnMpCisgICAgICAgIHJldHVybiBsb2dpbkRvbWFpbnMudmFsdWUoKS5jb250YWlucyhz
dWJGcmFtZURvbWFpbik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitPcHRpb25hbDxIYXNoU2V0
PFJlZ2lzdHJhYmxlRG9tYWluPj4gTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpsb2dpbkRvbWFpbnNG
b3JGaXJzdFBhcnR5KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmaXJzdFBhcnR5RG9tYWluKQor
eworICAgIGF1dG8gaXQgPSBmaXJzdFBhcnR5U2V0cygpLmZpbmQoZmlyc3RQYXJ0eURvbWFpbik7
CisgICAgaWYgKGl0ICE9IGZpcnN0UGFydHlTZXRzKCkuZW5kKCkpCisgICAgICAgIHJldHVybiBp
dC0+dmFsdWU7CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKyNlbmRpZgorCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNl
c3Npb24uaAppbmRleCA1N2ViYTBmYTNiYmM5ZGRiYjQwNjgxMDMxYjMzNWNlMWFiOGMxMDAyLi4z
ZWExYWQwZGJkNDI0NjEwOTkxZTA0NjA1Y2Q0MTIxODYyZDVkNWZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmgK
QEAgLTIxOCw2ICsyMTgsMTIgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVz
ZXRBcHBCb3VuZERvbWFpbnMoKTsKICNlbmRpZgogCisjaWYgRU5BQkxFKEZJUlNUX1BBUlRZX1NF
VFMpCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4s
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+PiYgZmlyc3RQYXJ0eVNldHMoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBjYW5SZXF1ZXN0U3RvcmFnZUFjY2Vzc0ZvckxvZ2luUHVy
cG9zZXNXaXRob3V0UHJpb3JVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4p
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBPcHRpb25hbDxIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPj4gbG9naW5Eb21haW5zRm9yRmlyc3RQYXJ0eShjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYpOworI2VuZGlmCisKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgZW51bSBJ
bmNsdWRlSFRUUE9ubHlPck5vdCB7IERvTm90SW5jbHVkZUhUVFBPbmx5LCBJbmNsdWRlSFRUUE9u
bHkgfTsKQEAgLTI3OCw2ICsyODQsMTAgQEAgcHJpdmF0ZToKICAgICBUaGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlIG1fdGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSB7IFRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGU6OkFsbCB9OwogICAgIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
IG1fYXBwQm91bmREb21haW5zOwogI2VuZGlmCisgICAgCisjaWYgRU5BQkxFKEZJUlNUX1BBUlRZ
X1NFVFMpCisgICAgc3RhdGljIEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+PiYgZmlyc3RQYXJ0eVNldHNXaXRoUXVpcmsoKTsKKyNlbmRpZgogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCiBwdWJsaWM6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413641</attachid>
            <date>2020-11-09 16:25:00 -0800</date>
            <delta_ts>2020-11-10 08:12:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218721-20201109162459.patch</filename>
            <type>text/plain</type>
            <size>5419</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDljYTVkYzY5ODBmMTVhOGIwMjU1OGM5
NDc1MTQxMjVmZmE3M2U4OTQuLmM0ZjE1YzQ1MDE5MGE1MzQzNTQ5NWZlOTk3Zjg3ZDYyZTUyZGFk
MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMTEtMDkgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGEgcHJvb2Ytb2YtY29u
Y2VwdCBmb3IgRmlyc3QgUGFydHkgU2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE4NzIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTIwNDU1
OT4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtRW5hYmxlQ29jb2EuaDoKKwogMjAyMC0xMC0zMCAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3Njg5KTogUmlz
ZSBvZiB0aGUgVG9tYiBSYWlkZXIgZ2V0cyBzdHVjayB3aGlsZSBsYXVuY2hpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCA2NzhkY2IyNDFiZmI3NWExZmM0YjkxYTAwMzU1ZDQwYjdjMmY0YTY5Li40ODkyM2ZlMmEw
ZjFkMDc0MzA2NTk2MGE1ZDM2YzFiNTJjN2QzZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIg
QEAKKzIwMjAtMTEtMDkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IGEgcHJvb2Ytb2YtY29uY2VwdCBmb3IgRmlyc3QgUGFydHkg
U2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4
NzIxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTIwNDU1OT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIEFkYXB0ZWQgZnJvbSBhbiBvcmlnaW5hbCBw
YXRjaCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIEFkZCBhIGRyYWZ0IGltcGxlbWVudGF0
aW9uIG9mIGZ1bmN0aW9uYWxpdHkgdGhhdCBXZWJLaXQgbWF5IHVzZSBGaXJzdAorICAgICAgICBQ
YXJ0eSBTZXRzIGZvci4gRmlyc3QgUGFydHkgU2V0cyBhcmUgYmVpbmcgdGFsa2VkIGFib3V0IGlu
IHB1YmxpYworICAgICAgICBzdGFuZGFyZHMgZ3JvdXBzLCBzZWUgaHR0cHM6Ly9naXRodWIuY29t
L3ByaXZhY3ljZy9maXJzdC1wYXJ0eS1zZXRzLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29y
ay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya1N0
b3JhZ2VTZXNzaW9uOjpmaXJzdFBhcnR5U2V0cyk6CisgICAgICAgIFdlYktpdCBjYW4gdXNlIEZp
cnN0IFBhcnR5IFNldHMgdG8gaW1wbGVtZW50IHF1aXJrcyBvbiBzcGVjaWZpYyBzaXRlcworICAg
ICAgICB0aGF0IG5lZWQgdGhpcmQgcGFydHkgY29va2llIGFjY2VzcyB1bmRlciBkb21haW5zIHRo
YXQgc2hhcmUgb3duZXJzaGlwLgorCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmNhblJlcXVlc3RTdG9yYWdlQWNjZXNzRm9yTG9naW5QdXJwb3Nlc1dpdGhvdXRQcmlv
clVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIFRoaXJkIHBhcnR5IGRvbWFpbnMgbmVlZGluZyBz
dG9yYWdlIGFjY2VzcyBtYXkgbm90IGJlIG9uZXMgd2hpY2ggYXJlIAorICAgICAgICB0eXBpY2Fs
bHkgaW50ZXJhY3RlZCB3aXRoIGFzIGZpcnN0IHBhcnR5LCBzdWNoIGFzIGZvciBhdXRoZW50aWNh
dGlvbgorICAgICAgICBkdXJpbmcgYSBsb2dpbi4gUmVsYXhpbmcgdGhpcyBpcyBhIHBvdGVudGlh
bCBmdW5jdGlvbmFsaXR5IG9mIEZpcnN0CisgICAgICAgIFBhcnR5IFNldHMgdGhhdCB0aGlzIHBh
dGNoIGFkZHMgc3VwcG9ydCBmb3IuIFRoaXMgd291bGQgb25seSBiZQorICAgICAgICByZWxheGVk
IGZvciBzaXRlcyB3aXRoIHNoYXJlZCBvd25lcnNoaXAuCisKKyAgICAgICAgKFdlYkNvcmU6Ok5l
dHdvcmtTdG9yYWdlU2Vzc2lvbjo6bG9naW5Eb21haW5zRm9yRmlyc3RQYXJ0eSk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaDoKKwogMjAyMC0xMS0w
MiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24o
cjI2OTIyNykgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvcmVmZXJyZXItdG9wbGV2ZWwtc2NyaXB0LWZldGNoLmh0dHBzLmh0bWwg
aXMgYSBmbGFreSBjcmFzaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFi
bGVDb2NvYS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1FbmFibGVDb2NvYS5oCmluZGV4IDkw
OWE2MzQwZTMxN2Q0M2E1YmNiY2JjMmE0MzFmYjg4Y2ExMWY5MzcuLjAwNjBhZDA3MDkyN2QxMzMx
NmVkNWY3MzA5YmRhZDg0YTc5NGU2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtRW5hYmxlQ29jb2EuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybUVuYWJsZUNvY29h
LmgKQEAgLTIwNCw2ICsyMDQsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0ZJTFRFUlNfTEVWRUxfMiAx
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9GSVJTVF9QQVJUWV9TRVRTKQorI2RlZmlu
ZSBFTkFCTEVfRklSU1RfUEFSVFlfU0VUUyAxCisjZW5kaWYKKwogI2lmICFkZWZpbmVkKEVOQUJM
RV9GVExfSklUKSAmJiAhVVNFKEpTVkFMVUUzMl82NCkKICNkZWZpbmUgRU5BQkxFX0ZUTF9KSVQg
MQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5jcHAKaW5kZXggODQ2MThjZTQxMTkxMjFiN2RhOTU1ODcw
OGEyZjk0YjFlNGViZTQ5YS4uMjY0ZmEwNmYzNDBmN2ViYTcwN2YzMjgzZTMyMWI1YTliZTNlZTY4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3Rv
cmFnZVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmNwcApAQCAtMzUzLDQgKzM1MywyOCBAQCBPcHRpb25hbDxTZWNv
bmRzPiBOZXR3b3JrU3RvcmFnZVNlc3Npb246OmNsaWVudFNpZGVDb29raWVDYXAoY29uc3QgUmVn
aXN0cmFibGVEbwogfQogI2VuZGlmIC8vIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1Mp
CiAKKyNpZiBFTkFCTEUoRklSU1RfUEFSVFlfU0VUUykKK0hhc2hNYXA8UmVnaXN0cmFibGVEb21h
aW4sIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+PiYgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpm
aXJzdFBhcnR5U2V0cygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8UmVn
aXN0cmFibGVEb21haW4sIEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Pj4gbWFwOworICAgIHJl
dHVybiBtYXAuZ2V0KCk7Cit9CisKK2Jvb2wgTmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpjYW5SZXF1
ZXN0U3RvcmFnZUFjY2Vzc0ZvckxvZ2luUHVycG9zZXNXaXRob3V0UHJpb3JVc2VySW50ZXJhY3Rp
b24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4pCit7CisgICAgYXV0byBsb2dpbkRvbWFpbnMgPSBs
b2dpbkRvbWFpbnNGb3JGaXJzdFBhcnR5KHRvcEZyYW1lRG9tYWluKTsKKyAgICBpZiAobG9naW5E
b21haW5zKQorICAgICAgICByZXR1cm4gbG9naW5Eb21haW5zLnZhbHVlKCkuY29udGFpbnMoc3Vi
RnJhbWVEb21haW4pOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uYWw8SGFzaFNldDxS
ZWdpc3RyYWJsZURvbWFpbj4+IE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6bG9naW5Eb21haW5zRm9y
Rmlyc3RQYXJ0eShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZmlyc3RQYXJ0eURvbWFpbikKK3sK
KyAgICBhdXRvIGl0ID0gZmlyc3RQYXJ0eVNldHMoKS5maW5kKGZpcnN0UGFydHlEb21haW4pOwor
ICAgIGlmIChpdCAhPSBmaXJzdFBhcnR5U2V0cygpLmVuZCgpKQorICAgICAgICByZXR1cm4gaXQt
PnZhbHVlOworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Np
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmgKaW5kZXggNTdlYmEwZmEzYmJjOWRkYmI0MDY4MTAzMWIzMzVjZTFhYjhjMTAwMi4uNGQ3
YzAwYTc1OTEzYjI0MTgyNjNiYTJhMzQ3MWRkNzY0NDg4OTZlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oCkBA
IC0yMTgsNiArMjE4LDEyIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc2V0
QXBwQm91bmREb21haW5zKCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShGSVJTVF9QQVJUWV9TRVRT
KQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBI
YXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPj4mIGZpcnN0UGFydHlTZXRzKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGJvb2wgY2FuUmVxdWVzdFN0b3JhZ2VBY2Nlc3NGb3JMb2dpblB1cnBv
c2VzV2l0aG91dFByaW9yVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBz
dWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgT3B0aW9uYWw8SGFzaFNldDxSZWdpc3RyYWJsZURv
bWFpbj4+IGxvZ2luRG9tYWluc0ZvckZpcnN0UGFydHkoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
KTsKKyNlbmRpZgorCiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGVudW0gSW5j
bHVkZUhUVFBPbmx5T3JOb3QgeyBEb05vdEluY2x1ZGVIVFRQT25seSwgSW5jbHVkZUhUVFBPbmx5
IH07Cg==
</data>
<flag name="commit-queue"
          id="430274"
          type_id="3"
          status="-"
          setter="katherine_cheney"
    />
          </attachment>
      

    </bug>

</bugzilla>