<?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>226359</bug_id>
          
          <creation_ts>2021-05-27 15:32:53 -0700</creation_ts>
          <short_desc>POST requests should not be memory-cached</short_desc>
          <delta_ts>2021-06-10 12:03:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Nham">nham</reporter>
          <assigned_to name="Ben Nham">nham</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>koivisto</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1764546</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-05-27 15:32:53 -0700</bug_when>
    <thetext>POST requests should not be memory-cached</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764551</commentid>
    <comment_count>1</comment_count>
      <attachid>429942</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-05-27 15:42:16 -0700</bug_when>
    <thetext>Created attachment 429942
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764552</commentid>
    <comment_count>2</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-05-27 15:43:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/78533759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764559</commentid>
    <comment_count>3</comment_count>
      <attachid>429942</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-05-27 16:04:43 -0700</bug_when>
    <thetext>Comment on attachment 429942
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764625</commentid>
    <comment_count>4</comment_count>
      <attachid>429942</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2021-05-27 18:44:39 -0700</bug_when>
    <thetext>Comment on attachment 429942
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        Only cache GET requests in the memory cache

But not HEAD or OPTIONS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764648</commentid>
    <comment_count>5</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-05-27 20:30:11 -0700</bug_when>
    <thetext>We don&apos;t cache HEAD or OPTIONS in disk cache either:

```
    if (originalRequest.httpMethod() != &quot;GET&quot;)
        return StoreDecision::NoDueToHTTPMethod;
```

I actually did write a patch to cache HEAD requests, but it didn&apos;t seem to be a win for anything, so I never ended up committing it: https://bugs.webkit.org/show_bug.cgi?id=203058.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764650</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-05-27 20:38:11 -0700</bug_when>
    <thetext>As for OPTIONS, it is not listed as a cacheable method in RFC7231 4.2.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766225</commentid>
    <comment_count>7</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-06-02 17:00:11 -0700</bug_when>
    <thetext>The reason why the ping/beacon test failures occur is because InspectorNetworkAgent::willSendRequest tries to fetch the ping/beacon CachedResource (which stores the fact that the request is a ping or beacon) from the memory cache. But as of this patch, that lookups, so the inspector temporarily marks the request as having the type &quot;other&quot; rather than &quot;ping&quot; or &quot;beacon&quot;.

The state mismatch is only temporary because InspectorNetworkAgent::didReceiveResponse successfully fetches the CachedResource from the resource loader instead of the memory cache.

Discussing with some inspector folks on the way they want to resolve this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766284</commentid>
    <comment_count>8</comment_count>
      <attachid>430445</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-06-02 23:23:31 -0700</bug_when>
    <thetext>Created attachment 430445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766345</commentid>
    <comment_count>9</comment_count>
      <attachid>430445</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-06-03 04:41:15 -0700</bug_when>
    <thetext>Comment on attachment 430445
Patch

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

&gt; Source/WebCore/loader/cache/MemoryCache.cpp:119
&gt; +    if (resource.resourceRequest().httpMethod() != &quot;GET&quot;)
&gt; +        return false;
&gt; +

It might be cleaner to make CachedResource::allowsCaching return false so we never get here.

This could be achieved by adding GET check there, or maybe earlier during CachedResourceRequest setup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766346</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-06-03 04:42:11 -0700</bug_when>
    <thetext>Do we cache HEAD in memory cache right now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766497</commentid>
    <comment_count>11</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-06-03 13:29:21 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #10)
&gt; Do we cache HEAD in memory cache right now?

Yes, if you go to a website that makes HEAD requests (the Amazon homepage is probably the easiest one for this task), you&apos;ll see that we call MemoryCache::add with HEAD resources.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766517</commentid>
    <comment_count>12</comment_count>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-06-03 14:20:44 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #9)
&gt; Comment on attachment 430445 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430445&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/cache/MemoryCache.cpp:119
&gt; &gt; +    if (resource.resourceRequest().httpMethod() != &quot;GET&quot;)
&gt; &gt; +        return false;
&gt; &gt; +
&gt; 
&gt; It might be cleaner to make CachedResource::allowsCaching return false so we
&gt; never get here.
&gt; 
&gt; This could be achieved by adding GET check there, or maybe earlier during
&gt; CachedResourceRequest setup.

I was trying to avoid putting the strcmp in CachedResource::allowsCaching() since it seemed to be called in more places than MemoryCache::add. Perhaps a premature optimization. I could also do this by changing the CachedResource constructor to set the DisallowCaching option if this isn&apos;t a GET request.

Doing the GET check in CachedResourceRequest was a bit uglier because that class has two setters (setCachingPolicy and setOptions) that allow you to mess with the caching policy after the object is created, and also CachedResource doesn&apos;t call CachedResourceRequests::allowsCaching, it just blindly copies the whole options struct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766559</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-03 15:33:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/78840141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768329</commentid>
    <comment_count>14</comment_count>
      <attachid>431007</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2021-06-09 13:49:16 -0700</bug_when>
    <thetext>Created attachment 431007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1768656</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-10 12:02:58 -0700</bug_when>
    <thetext>Committed r278717 (238685@main): &lt;https://commits.webkit.org/238685@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431007.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429942</attachid>
            <date>2021-05-27 15:42:16 -0700</date>
            <delta_ts>2021-06-02 23:23:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226359-20210527154215.patch</filename>
            <type>text/plain</type>
            <size>4984</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGM4NTBmYjkyNTdkNTc0
MDJmZGE5NGFjZDY0OWZjMjI3M2QxZmE3MS4uNWI3OGNhZWQzYzZmNzI0ODM0MjE2MjdmOTgzMmFl
OTZjNzc1MDI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTA1LTI3ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgY2FjaGUgR0VUIHJlcXVlc3Rz
IGluIHRoZSBtZW1vcnkgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3Q6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNh
Y2hlLW9ubHktY2FjaGVzLWdldC5odG1sCisKKyAgICAgICAgV2Ugb25seSBjYWNoZSBHRVQgcmVx
dWVzdHMgYXQgdGhlIGRpc2sgY2FjaGUgbGV2ZWwsIGJ1dCB3ZSBkb24ndCBoYXZlIHRoYXQgc2Ft
ZSByZXN0cmljdGlvbgorICAgICAgICBhdCB0aGUgbWVtb3J5IGNhY2hlIGxldmVsLiBXZSBzaG91
bGQgbWFrZSB0aGUgcG9saWNpZXMgbWF0Y2guIEluIHBhcnRpY3VsYXIsIGluIGxvbmctcnVubmlu
ZworICAgICAgICB3ZWJwYWdlcywgd2UncmUgYWNjdW11bGF0aW5nIFBPU1RzIGZyb20gWE1MSHR0
cFJlcXVlc3RzIGluIG91ciBtZW1vcnkgY2FjaGUgYW5kIHNob3VsZCBzdG9wCisgICAgICAgIGRv
aW5nIHRoYXQsIHNpbmNlIFBPU1QgcmVzcG9uc2UgY2FjaGluZyBpcyBnZW5lcmFsbHkgbm90IHVz
ZWQgb3IgZXhwZWN0ZWQuCisKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZCk6ICAgICAgICAKKwogMjAyMS0w
NS0yNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBJ
bnRyb2R1Y2UgQmlmdXJjYXRlZEdyYXBoaWNzQ29udGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKaW5kZXggMmZhNjk3N2ZhZmU5MGMyNzllNDA1MTJlNGI3
MTg5YzFlY2Q0NTdlMi4uZDE5ZThhMTE0MzhlOGY5NTQzNzRmYzNhMDkzZWE5NzYwNzliNmVkOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC0xMTQs
NiArMTE0LDkgQEAgYm9vbCBNZW1vcnlDYWNoZTo6YWRkKENhY2hlZFJlc291cmNlJiByZXNvdXJj
ZSkKICAgICBpZiAoZGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYg
KHJlc291cmNlLnJlc291cmNlUmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiR0VUIikKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCiAgICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwogCiAg
ICAgYXV0byBrZXkgPSBzdGQ6Om1ha2VfcGFpcihyZXNvdXJjZS51cmwoKSwgcmVzb3VyY2UuY2Fj
aGVQYXJ0aXRpb24oKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWU4ZTY0YTk2YmM5Mjc1MDRmNTVmNGQxOTgzZmExMDYy
ODFkZGNjYS4uNDRhOWM0NjAyMGQ1OGMxZmU3YWYzMTVlZjAyZDhlYWUzZjZjMmE2ZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDIxLTA1LTI3ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgor
CisgICAgICAgIE9ubHkgY2FjaGUgR0VUIHJlcXVlc3RzIGluIHRoZSBtZW1vcnkgY2FjaGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM1OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9jYWNoZS9tZW1vcnktY2FjaGUtb25seS1jYWNoZXMtZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnktY2FjaGUtb25seS1jYWNoZXMtZ2V0
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2VjaG8t
Y2FjaGVhYmxlLmNnaTogQWRkZWQuCisKIDIwMjEtMDUtMjcgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBgTlNMb2NhbGVgIFNQSSBmb3IgY29tcGFyaW5n
IGxhbmd1YWdlIGlkZW50aWZpZXJzIGluc3RlYWQgb2Ygc3RyaW5nIGNvbXBhcmlzb24KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2Fj
aGVzLWdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL21lbW9y
eS1jYWNoZS1vbmx5LWNhY2hlcy1nZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzY2M3ZjBi
NmZmNGQ1YTczODUxYjA4YzYyY2Q1NWE1OGIwNTAwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1vbmx5LWNhY2hlcy1nZXQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgb25s
eSBHRVQgcmVxdWVzdHMgZW5kIHVwIGluIHRoZSBtZW1vcnkgY2FjaGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIG9yaWdTaXplID09PSBpbnRlcm5hbHMubWVtb3J5Q2Fj
aGVTaXplKCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVt
b3J5LWNhY2hlLW9ubHktY2FjaGVzLWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9j
YWNoZS9tZW1vcnktY2FjaGUtb25seS1jYWNoZXMtZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMwZGUw
MTQwZDg2YTE0ZTEyMjM5NDM5ZmNmYjdkYzFjMTZiNzcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVzLWdldC5o
dG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBvcmlnU2l6ZSA9IGludGVy
bmFscy5tZW1vcnlDYWNoZVNpemUoKTsKKworICAgIGxldCBwb3N0RmV0Y2ggPSBmZXRjaCgncmVz
b3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaScsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisgICAgbGV0
IHB1dEZldGNoID0gZmV0Y2goJ3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2knLCB7IG1ldGhv
ZDogJ1BVVCcgfSk7CisgICAgbGV0IGRlbGV0ZUZldGNoID0gZmV0Y2goJ3Jlc291cmNlcy9lY2hv
LWNhY2hlYWJsZS5jZ2knLCB7IG1ldGhvZDogJ0RFTEVURScgfSk7CisKKyAgICBQcm9taXNlLmFs
bChbcG9zdEZldGNoLCBwdXRGZXRjaCwgZGVsZXRlRmV0Y2hdKQorICAgICAgICAudGhlbih2YWxz
ID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3JpZ1NpemUgPT09IGludGVybmFscy5t
ZW1vcnlDYWNoZVNpemUoKSIpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2gocmVhc29uID0+
IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoU3RyaW5nKHJlYXNvbikpOworICAgICAgICB9KQor
ICAgICAgICAuZmluYWxseShmaW5pc2hKU1Rlc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVz
dCBtYWtlcyBzdXJlIHRoYXQgb25seSBHRVQgcmVxdWVzdHMgZW5kIHVwIGluIHRoZSBtZW1vcnkg
Y2FjaGUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jl
c291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hl
L3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmJjMjU2ZmY2YTZmN2Mw
MGFlODhhNDhiNGZiYzBlOGYyZjdhNzAyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaQpAQCAtMCwwICsx
LDggQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCitwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L3Bs
YWluXG4iOyAKK3ByaW50ICJDYWNoZS1jb250cm9sOiBtYXgtYWdlPTM2MDBcbiI7CitwcmludCAi
QWdlOiAwXG4iOworcHJpbnQgIlxuIjsKK3JlYWQoU1RESU4sICRkYXRhLCAkRU5WeydDT05URU5U
X0xFTkdUSCd9KTsKK3ByaW50ICRkYXRhCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430445</attachid>
            <date>2021-06-02 23:23:31 -0700</date>
            <delta_ts>2021-06-09 13:49:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226359-20210602232330.patch</filename>
            <type>text/plain</type>
            <size>25683</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZmNzExMmFjMjg5MGMz
NTliODU0NzBiZWMzMGJiZjZiYzJiOTc5NC4uYTQ1OTMyYTk2M2U0YjMzM2RhZThhNjE4YjhiZmU1
ZmQxYTY4Y2FhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIxLTA1LTI3ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgY2FjaGUgR0VUIHJlcXVlc3Rz
IGluIHRoZSBtZW1vcnkgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgor
CisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVz
LWdldC5odG1sCisKKyAgICAgICAgV2Ugb25seSBjYWNoZSBHRVQgcmVxdWVzdHMgYXQgdGhlIGRp
c2sgY2FjaGUgbGV2ZWwsIGJ1dCB3ZSBkb24ndCBoYXZlIHRoYXQgc2FtZSByZXN0cmljdGlvbgor
ICAgICAgICBhdCB0aGUgbWVtb3J5IGNhY2hlIGxldmVsLiBXZSBzaG91bGQgbWFrZSB0aGUgcG9s
aWNpZXMgbWF0Y2guIEluIHBhcnRpY3VsYXIsIGluIGxvbmctcnVubmluZworICAgICAgICB3ZWJw
YWdlcywgd2UncmUgYWNjdW11bGF0aW5nIFBPU1RzIGZyb20gWE1MSHR0cFJlcXVlc3RzIGluIG91
ciBtZW1vcnkgY2FjaGUgYW5kIHNob3VsZCBzdG9wCisgICAgICAgIGRvaW5nIHRoYXQsIHNpbmNl
IFBPU1QgcmVzcG9uc2UgY2FjaGluZyBpcyBnZW5lcmFsbHkgbm90IHVzZWQgb3IgZXhwZWN0ZWQu
CisKKyAgICAgICAgSSBhbHNvIGNoYW5nZWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
U2VuZFJlcXVlc3QgdG8gdGFrZSBhbiBvcHRpb25hbCBDYWNoZWRSZXNvdXJjZQorICAgICAgICBw
YXJhbWV0ZXIgYmVjYXVzZSBpdCBjdXJyZW50bHkgdXNlcyBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlIHRvIGZpbmQgdGhlIHJlc291cmNlLAorICAgICAgICB3aGljaCBpbiB0dXJu
IGV4cGVjdHMgdG8gZmluZCB0aGUgcmVzb3VyY2UgaW4gdGhlIG1lbW9yeSBjYWNoZS4gVGhhdCBk
b2Vzbid0IHdvcmsgYW55bW9yZQorICAgICAgICBmb3IgdGhlc2Ugbm9uLUdFVCByZXF1ZXN0cywg
c28gd2Ugbm93IHBhc3MgZG93biB0aGUgQ2FjaGVkUmVzb3VyY2UgZXhwbGljaXRseSBpbiB0aGUg
Y2FzZXMKKyAgICAgICAgd2hlcmUgdGhhdCdzIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb3VyY2VUeXBlRm9yQ2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp0cnlMb2Fk
aW5nU3Vic3RpdHV0ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6Omxv
YWRNYWluUmVzb3VyY2UpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVxdWVzdEZyb21EZWxlZ2F0ZSk6CisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlTG9hZE5vdGlmaWVyOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAg
KiBsb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OndpbGxTZW5k
UmVxdWVzdEludGVybmFsKToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpjYWNoZWRSZXNvdXJjZSBjb25zdCk6Cisg
ICAgICAgICogbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIv
U3VicmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6dXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6c3Rh
cnRMb2FkaW5nRW50cnkpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZW1vcnlDYWNoZTo6YWRkKToKKwogMjAyMS0wNi0wMSAgRnVq
aWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luXSBS
ZW1vdmUgdW51c2VkIEdyYXBoaWNzQ29udGV4dDo6aGRjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMjE4Y2U0
Yjk0N2M0MjU0N2VjNGY5Y2Y5ZTg1MTdhNWRjMzUyYzRjNC4uNDhjOGFjNGY3M2Y4Mzk1MmMxMjAy
MGU4MGY0OTIxOTIyYjUzZWVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU3MiwxMCArNTcyLDEwIEBAIHZv
aWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWFJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMmIGluc3RyCiAgICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlFbXVsYXRlZE1l
ZGlhKG1lZGlhKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5k
UmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50cywgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2Up
Cit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25nIGlkZW50
aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgQ2FjaGVkUmVz
b3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrQWdlbnQgPSBp
bnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWROZXR3b3JrQWdlbnQoKSkKLSAgICAgICAgbmV0d29y
a0FnZW50LT53aWxsU2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRp
cmVjdFJlc3BvbnNlKTsKKyAgICAgICAgbmV0d29ya0FnZW50LT53aWxsU2VuZFJlcXVlc3QoaWRl
bnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCBjYWNoZWRSZXNvdXJj
ZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3RP
ZlR5cGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMsIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBMb2FkVHlwZSBsb2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCA4ZjA0MDQ0NGJiMTgz
ZDE2MmM2MGY2ZmQ0NzUyYmVjZDljZTZhYjk5Li4wYTMwNzYzMWQwOTRkMDc5ZDM2NzU3YzAwYmYw
ODA1ZDAxMGQ1OWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xOTMsNyArMTkzLDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyB2b2lkIGFwcGx5VXNlckFnZW50T3ZlcnJpZGUoRnJhbWUmLCBTdHJpbmcmKTsKICAgICBz
dGF0aWMgdm9pZCBhcHBseUVtdWxhdGVkTWVkaWEoRnJhbWUmLCBTdHJpbmcmKTsKIAotICAgIHN0
YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
RnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkUmVzb3VyY2VGcm9t
TWVtb3J5Q2FjaGUoUGFnZSYsIERvY3VtZW50TG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2UqKTsKICAg
ICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSYsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGhyZWFkYWJs
ZUxvYWRlclJlc3BvbnNlKERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciYsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllcik7CkBAIC00MTgsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCBhcHBseVVzZXJBZ2VudE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgU3RyaW5n
Jik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhSW1wbChJbnN0cnVtZW50aW5n
QWdlbnRzJiwgU3RyaW5nJik7CiAKLSAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVlc3RJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJl
Y3RSZXNwb25zZSk7CisgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0SW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcios
IFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0T2ZUeXBlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlm
aWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIExvYWRUeXBlKTsKICAgICBz
dGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9hZFJlc291
cmNlRnJvbU1lbW9yeUNhY2hlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRG9jdW1lbnRMb2Fk
ZXIqLCBDYWNoZWRSZXNvdXJjZSopOwpAQCAtMTA0OSwxNyArMTA0OSwxNyBAQCBpbmxpbmUgdm9p
ZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5RW11bGF0ZWRNZWRpYShGcmFtZSYgZnJh
bWUsIFN0cmluZyYgbQogICAgICAgICBhcHBseUVtdWxhdGVkTWVkaWFJbXBsKCphZ2VudHMsIG1l
ZGlhKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2Vu
ZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9uZyBpZGVu
dGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IENhY2hlZFJl
c291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVO
RFModm9pZCgpKTsKICAgICBpZiAoYXV0byogYWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50cyhm
cmFtZSkpCi0gICAgICAgIHdpbGxTZW5kUmVxdWVzdEltcGwoKmFnZW50cywgaWRlbnRpZmllciwg
bG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgd2lsbFNlbmRSZXF1
ZXN0SW1wbCgqYWdlbnRzLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVz
cG9uc2UsIGNhY2hlZFJlc291cmNlKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUmIGds
b2JhbFNjb3BlLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsKLSAgICB3
aWxsU2VuZFJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMoZ2xvYmFsU2NvcGUpLCBpZGVu
dGlmaWVyLCBudWxscHRyLCByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlIHsgfSk7CisgICAgd2ls
bFNlbmRSZXF1ZXN0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKGdsb2JhbFNjb3BlKSwgaWRlbnRp
ZmllciwgbnVsbHB0ciwgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSB7IH0sIG51bGxwdHIpOwog
fQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVz
dE9mVHlwZShGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRM
b2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBMb2FkVHlwZSBsb2FkVHlw
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
TmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yTmV0d29ya0FnZW50LmNwcAppbmRleCAxMmE2ZDNlMjdkNGQzOTNjM2FjY2JiN2JiNjA0NTkw
ZTA5ZTA2MDRkLi5hMzlhMWNhMjlkOTc1OThiZWUyMzMwMzIzYmRkNjdhYjM4MGQzZGNjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtB
Z2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JO
ZXR3b3JrQWdlbnQuY3BwCkBAIC00NjUsNyArNDY1LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3Jr
QWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50
TG8KICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVzdElk
LCBmcmFtZUlkLCBsb2FkZXJJZCwgdXJsLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChy
ZXF1ZXN0KSwgc2VuZFRpbWVzdGFtcCwgd2FsbHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCksIFdURk1vdmUoaW5pdGlhdG9yT2JqZWN0KSwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJl
c3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UsIG51bGxwdHIpLCBXVEZNb3ZlKHR5cGVQYXlsb2FkKSwg
dGFyZ2V0SWQpOwogfQogCi1zdGF0aWMgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUg
cmVzb3VyY2VUeXBlRm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIHJlc291cmNlKQor
c3RhdGljIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUZvckNh
Y2hlZFJlc291cmNlKGNvbnN0IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAgICBpZiAo
cmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6Omluc3BlY3RvclJl
c291cmNlVHlwZSgqcmVzb3VyY2UpOwpAQCAtNDg2LDkgKzQ4NiwxMCBAQCBzdGF0aWMgSW5zcGVj
dG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlRm9yTG9hZFR5cGUoSW5zcGVj
dG9ySW5zdHJ1bQogICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2U7
CiB9CiAKLXZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3QodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCit2
b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBDYWNo
ZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7Ci0gICAgYXV0byogY2FjaGVkUmVzb3VyY2Ug
PSBsb2FkZXIgPyBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlKGxvYWRlci0+ZnJh
bWUoKSwgcmVxdWVzdC51cmwoKSkgOiBudWxscHRyOworICAgIGlmICghY2FjaGVkUmVzb3VyY2Ug
JiYgbG9hZGVyKQorICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IEluc3BlY3RvclBhZ2VBZ2VudDo6
Y2FjaGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgpLCByZXF1ZXN0LnVybCgpKTsKICAgICB3aWxs
U2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNl
LCByZXNvdXJjZVR5cGVGb3JDYWNoZWRSZXNvdXJjZShjYWNoZWRSZXNvdXJjZSkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdv
cmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3
b3JrQWdlbnQuaAppbmRleCBlYmVkMjkyN2QxNzYxYzZiYzFmY2EzM2Y4ZjA0ZTE0YWMwMTAzNDgy
Li4zYzY0MGFmYmM0YzAwODI0Y2NkOTA4OWRjYTdiN2UxYmUyYjYxMzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50
LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgIC8vIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbgogICAgIHZvaWQgd2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKICAgICB2b2lkIGRpZFJlY2Fs
Y3VsYXRlU3R5bGUoKTsKLSAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3Qo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IENhY2hl
ZFJlc291cmNlKik7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RPZlR5cGUodW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6TG9hZFR5cGUpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJlc3BvbnNl
KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVEYXRhKHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50IGRhdGFMZW5ndGgs
IGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9h
ZGVyLmNwcAppbmRleCBhYWZkODZmNjU4ZmQ1YjcxM2FjYTQ4Y2RkZDdhNjI1ZGNhOGU5NWYwLi40
Zjc5ZTIyZjU0ODU4MDYyZjIxZmQ3ZDdkNDkxY2FlOWQxYjM0OGM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTc0OSw3ICs3NDksNyBAQCBib29sIERvY3Vt
ZW50TG9hZGVyOjp0cnlMb2FkaW5nU3Vic3RpdHV0ZURhdGEoKQogICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogUmV0dXJuaW5nIHN1YnN0aXR1dGUg
ZGF0YSIpOwogICAgIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2FkZXIgPSBt
X2ZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwogICAg
IGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVl
c3QobV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlciwgdGhpcywgbV9yZXF1
ZXN0KTsKLSAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KHRoaXMsIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2FkZXIsIG1fcmVx
dWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigp
LmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KHRoaXMsIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0
UmVzb3VyY2VMb2FkZXIsIG1fcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpLCBudWxscHRyKTsK
IAogICAgIGlmICghbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkIHx8IGZyYW1lTG9hZGVyKCkt
PmxvYWRzU3luY2hyb25vdXNseSgpKQogICAgICAgICBoYW5kbGVTdWJzdGl0dXRlRGF0YUxvYWRO
b3coKTsKQEAgLTIwNzYsNyArMjA3Niw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6OmxvYWRNYWlu
UmVzb3VyY2UoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICBpZiAoIW1haW5SZXNvdXJj
ZUxvYWRlcigpKSB7CiAgICAgICAgIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VM
b2FkZXIgPSBtX2ZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmll
cigpOwogICAgICAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmFzc2lnbklkZW50aWZpZXJU
b0luaXRpYWxSZXF1ZXN0KG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2FkZXIs
IHRoaXMsIG1haW5SZXNvdXJjZVJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpOwotICAgICAgICBm
cmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KHRoaXMsIG1f
aWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2FkZXIsIG1haW5SZXNvdXJjZVJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIFJlc291cmNlUmVzcG9uc2UoKSk7CisgICAgICAgIGZyYW1l
TG9hZGVyKCktPm5vdGlmaWVyKCkuZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QodGhpcywgbV9pZGVu
dGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlciwgbWFpblJlc291cmNlUmVxdWVzdC5y
ZXNvdXJjZVJlcXVlc3QoKSwgUmVzb3VyY2VSZXNwb25zZSgpLCBudWxscHRyKTsKICAgICB9CiAK
ICAgICBiZWNvbWVNYWluUmVzb3VyY2VDbGllbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCmluZGV4IGYyOWY5YTAyYzFmZmQwZTc0M2RkMWFhNGRlZGFjYzRjMDYwYzA5M2Yu
Ljg3YzI3NTk4MGZkODI3OWY3Zjg4NGNkZTJhNDAwN2U1NTc0MTgzZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzU2Niw3ICszNTY2LDcgQEAgdm9pZCBGcmFtZUxv
YWRlcjo6cmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIHVuc2ln
bmVkIGxvbmcmIGkKICAgICB9CiAKICAgICBSZXNvdXJjZVJlcXVlc3QgbmV3UmVxdWVzdChyZXF1
ZXN0KTsKLSAgICBub3RpZmllcigpLmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnRM
b2FkZXIuZ2V0KCksIGlkZW50aWZpZXIsIG5ld1JlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSk7
CisgICAgbm90aWZpZXIoKS5kaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChtX2RvY3VtZW50TG9hZGVy
LmdldCgpLCBpZGVudGlmaWVyLCBuZXdSZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlKCksIG51bGxw
dHIpOwogCiAgICAgaWYgKG5ld1JlcXVlc3QuaXNOdWxsKCkpCiAgICAgICAgIGVycm9yID0gY2Fu
Y2VsbGVkRXJyb3IocmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNl
TG9hZE5vdGlmaWVyLmNwcAppbmRleCBjYzFiY2VlMjZjM2E0MWY1ZDg5Y2M4ZWJiNDJmNDQ0Zjcw
MzMzMjljLi42NmM2M2JkOTU4MzQxYTBkODM2YzYwNmE0YTUwM2MyNWM0MzM0MmQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKQEAgLTY1LDcg
KzY1LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291
cmNlTG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWUKIHsKICAgICBtX2ZyYW1lLmxvYWRlcigp
LmFwcGx5VXNlckFnZW50SWZOZWVkZWQoY2xpZW50UmVxdWVzdCk7CiAKLSAgICBkaXNwYXRjaFdp
bGxTZW5kUmVxdWVzdChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmll
cigpLCBjbGllbnRSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBkaXNwYXRjaFdpbGxT
ZW5kUmVxdWVzdChsb2FkZXItPmRvY3VtZW50TG9hZGVyKCksIGxvYWRlci0+aWRlbnRpZmllcigp
LCBjbGllbnRSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCBsb2FkZXItPmNhY2hlZFJlc291cmNl
KCkpOwogfQogCiB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VMb2FkZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcikKQEAgLTEx
OSw3ICsxMTksNyBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjphc3NpZ25JZGVudGlmaWVy
VG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aQogICAgIG1fZnJhbWUubG9hZGVy
KCkuY2xpZW50KCkuYXNzaWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QoaWRlbnRpZmllciwg
bG9hZGVyLCByZXF1ZXN0KTsKIH0KIAotdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0
Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCit2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRj
aFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25nIGlk
ZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNl
KQogewogI2lmIFVTRShRVUlDS19MT09LKQogICAgIC8vIEFsd2F5cyBhbGxvdyBRdWlja0xvb2st
Z2VuZXJhdGVkIFVSTHMgYmFzZWQgb24gdGhlIHByb3RvY29sIHNjaGVtZS4KQEAgLTE0OSw3ICsx
NDksNyBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVz
dChEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZwogICAgIGlmICghcmVxdWVzdC5pc051bGwo
KSAmJiBvbGRSZXF1ZXN0VVJMICE9IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkgJiYgbV9mcmFtZS5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpKQogICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmRvY3Vt
ZW50TG9hZGVyKCktPmRpZFRlbGxDbGllbnRBYm91dExvYWQocmVxdWVzdC51cmwoKS5zdHJpbmco
KSk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCgmbV9m
cmFtZSwgaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCgmbV9mcmFtZSwgaWRl
bnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCBjYWNoZWRSZXNvdXJj
ZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoRGlkUmVjZWl2ZVJl
c3BvbnNlKERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYgciwgUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaAppbmRleCA1
MzkwMDFjODkwMjY0Y2RkYmZhZjZhMDg2ZDJlY2Q1NjhjODEzM2EzLi40YjA5N2NiMDAxOGJmNThi
MjE0NThmNjJiNTg3N2I5NWU4MDcyNGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkTm90aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVz
b3VyY2VMb2FkTm90aWZpZXIuaApAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTsKK2NsYXNzIENhY2hlZFJlc291cmNl
OwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIE5ldHdvcmtMb2Fk
TWV0cmljczsKQEAgLTU4LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkRmFpbFRvTG9h
ZChSZXNvdXJjZUxvYWRlciosIGNvbnN0IFJlc291cmNlRXJyb3ImKTsKIAogICAgIHZvaWQgYXNz
aWduSWRlbnRpZmllclRvSW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBE
b2N1bWVudExvYWRlciosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOwotICAgIHZvaWQgZGlzcGF0
Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZp
ZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoRG9jdW1lbnRMb2FkZXIq
LCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShEb2N1bWVudExvYWRlciosIHVuc2ln
bmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYsIFJlc291cmNlTG9h
ZGVyKiA9IG51bGxwdHIpOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlRGF0YShEb2N1bWVu
dExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgY2hhciogZGF0YSwgaW50
IGRhdGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaExvYWRpbmcoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IE5ldHdvcmtMb2FkTWV0cmljcyYsIFJlc291cmNlTG9hZGVyKik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAxZTg2ODg5YTc1ODAwYTQyMmUyYTQw
ZmQwZGY3MjNkMGFlMzJkODhhLi45ODE1NjJiMzY0MDliZTdkOGMyYmQ4ODVlMDUxMDMxNjQxNjk3
NmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKQEAgLTQwOCw3
ICs0MDgsNyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlcXVlc3RJbnRlcm5hbChS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZQogICAgICAgICBmcmFtZUxvYWRlcigp
LT5ub3RpZmllcigpLndpbGxTZW5kUmVxdWVzdCh0aGlzLCByZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKICAgICB9CiAgICAgZWxzZQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxTZW5kUmVxdWVzdChtX2ZyYW1lLmdldCgpLCBtX2lkZW50aWZpZXIsIG1fZnJhbWUtPmxv
YWRlcigpLmRvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2ZyYW1lLmdl
dCgpLCBtX2lkZW50aWZpZXIsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCksIHJl
cXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIGNhY2hlZFJlc291cmNlKCkpOwogCiAjaWYgVVNFKFFV
SUNLX0xPT0spCiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmgKaW5kZXggYTQzNzZkNTAxMWJmODI4NmZiNDdmYzMzODRmMjliNWMz
ZGMzMjY1NC4uNzE3ZmY1MjhhNzRiMjY1NmFmZTI0YmYwMjkzZThjZjgyYzQwZmJmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTQ4LDYgKzQ4LDcgQEAgY2xhc3Mg
U2NoZWR1bGVQYWlyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZTsKK2NsYXNzIENhY2hlZFJlc291cmNlOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7
CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEZyYW1lTG9hZGVyOwpAQCAtMTMwLDYgKzEzMSw4IEBAIHB1
YmxpYzoKICAgICBib29sIHNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9vcHRpb25zLnNuaWZmQ29udGVudEVuY29kaW5nID09IENvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OjpTbmlmZjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNBbGxvd2VkVG9B
c2tVc2VyRm9yQ3JlZGVudGlhbHMoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNo
b3VsZEluY2x1ZGVDZXJ0aWZpY2F0ZUluZm8oKSBjb25zdDsKKyAgICAKKyAgICB2aXJ0dWFsIENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0K
IAogICAgIGJvb2wgcmVhY2hlZFRlcm1pbmFsU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWNo
ZWRUZXJtaW5hbFN0YXRlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9T
dWJyZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDQ4NTEzM2Q4N2FjMzY4YjUwYWFmOWUyM2QzMDNiYTRkMzNhYWVkZDMu
LjllYzQxYjRjNTQyNDg4OTZhYzNlMjg0ZmZjNDcwZDhjOGIwODNiNjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcApAQCAtMTUyLDExICsxNTIsNiBAQCB2
b2lkIFN1YnJlc291cmNlTG9hZGVyOjpzdGFydExvYWRpbmcoKQogfQogI2VuZGlmCiAKLUNhY2hl
ZFJlc291cmNlKiBTdWJyZXNvdXJjZUxvYWRlcjo6Y2FjaGVkUmVzb3VyY2UoKQotewotICAgIHJl
dHVybiBtX3Jlc291cmNlOwotfQotCiB2b2lkIFN1YnJlc291cmNlTG9hZGVyOjpjYW5jZWxJZk5v
dEZpbmlzaGluZygpCiB7CiAgICAgaWYgKG1fc3RhdGUgIT0gSW5pdGlhbGl6ZWQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCmluZGV4IGVkNTkxOTIxOWNiYmYzMzQz
OTc2NjRkNTEyYTlmN2Q2Yzk3ZWNhYzEuLjM4NmE5MGQzMmI5MjRhNzkzNTIzNGY3OGU1NjZiMzg4
NTJjNTBhNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oCkBA
IC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgY2FuY2VsSWZOb3RGaW5pc2hpbmco
KTsKICAgICBib29sIGlzU3VicmVzb3VyY2VMb2FkZXIoKSBjb25zdCBvdmVycmlkZTsKLSAgICBD
YWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UoKTsKKyAgICBDYWNoZWRSZXNvdXJjZSogY2Fj
aGVkUmVzb3VyY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3Jlc291cmNlOyB9OwogICAg
IFdFQkNPUkVfRVhQT1JUIGNvbnN0IEhUVFBIZWFkZXJNYXAqIG9yaWdpbmFsSGVhZGVycygpIGNv
bnN0OwogCiAgICAgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIHsgcmV0dXJuIG1fb3JpZ2luLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IGYyNjRmMWRkNzEyM2Q2OTJjNjU3ZjFlY2UxNDk5
NGM0MTk2MzM0NWEuLmM4YmY2NWY5YTA0NzM3MmVlNmM0MTA1MWM4NDAzMmI4Y2ZjZjRkNzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlR3JvdXAuY3BwCkBAIC00MzgsNyArNDM4LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
R3JvdXA6OnVwZGF0ZShGcmFtZSYgZnJhbWUsIEFwcGxpY2F0aW9uQ2FjaGVVcGRhdGVPcHRpb24g
dXAKICAgICBhdXRvIHJlcXVlc3QgPSBjcmVhdGVSZXF1ZXN0KFVSTCB7IG1fbWFuaWZlc3RVUkwg
fSwgbV9uZXdlc3RDYWNoZSA/IG1fbmV3ZXN0Q2FjaGUtPm1hbmlmZXN0UmVzb3VyY2UoKSA6IG51
bGxwdHIpOwogCiAgICAgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlmaWVyID0gbV9mcmFtZS0+cGFn
ZSgpLT5wcm9ncmVzcygpLmNyZWF0ZVVuaXF1ZUlkZW50aWZpZXIoKTsKLSAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdChtX2ZyYW1lLmdldCgpLCBtX2N1cnJlbnRS
ZXNvdXJjZUlkZW50aWZpZXIsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCksIHJl
cXVlc3QsIFJlc291cmNlUmVzcG9uc2UgeyB9KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxTZW5kUmVxdWVzdChtX2ZyYW1lLmdldCgpLCBtX2N1cnJlbnRSZXNvdXJjZUlkZW50
aWZpZXIsIG1fZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCksIHJlcXVlc3QsIFJlc291
cmNlUmVzcG9uc2UgeyB9LCBudWxscHRyKTsKIAogICAgIG1fbWFuaWZlc3RMb2FkZXIgPSBBcHBs
aWNhdGlvbkNhY2hlUmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShBcHBsaWNhdGlvbkNhY2hlUmVzb3Vy
Y2U6OlR5cGU6Ok1hbmlmZXN0LCBkb2N1bWVudExvYWRlci5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
LCBXVEZNb3ZlKHJlcXVlc3QpLCBbdGhpc10gKGF1dG8mJiByZXNvdXJjZU9yRXJyb3IpIHsKICAg
ICAgICAgLy8gJ3RoaXMnIGlzIG9ubHkgdmFsaWQgaWYgcmV0dXJuZWQgdmFsdWUgaXMgbm90IEVy
cm9yOjpBYm9ydC4KQEAgLTkwMCw3ICs5MDAsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6c3RhcnRMb2FkaW5nRW50cnkoKQogICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3Qo
VVJMIHsgeyB9LCBmaXJzdFBlbmRpbmdFbnRyeVVSTCB9LCBtX25ld2VzdENhY2hlID8gbV9uZXdl
c3RDYWNoZS0+cmVzb3VyY2VGb3JVUkwoZmlyc3RQZW5kaW5nRW50cnlVUkwpIDogbnVsbHB0cik7
CiAKICAgICBtX2N1cnJlbnRSZXNvdXJjZUlkZW50aWZpZXIgPSBtX2ZyYW1lLT5wYWdlKCktPnBy
b2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwotICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1fY3VycmVudFJlc291cmNl
SWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCwg
UmVzb3VyY2VSZXNwb25zZSB7IH0pOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFNlbmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciwg
bV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCwgUmVzb3VyY2VSZXNw
b25zZSB7IH0sIG51bGxwdHIpOwogCiAgICAgYXV0byYgZG9jdW1lbnRMb2FkZXIgPSAqbV9mcmFt
ZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKICAgICBhdXRvIHJlcXVlc3RVUkwgPSByZXF1
ZXN0LnVybCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9y
eUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAK
aW5kZXggMmZhNjk3N2ZhZmU5MGMyNzllNDA1MTJlNGI3MTg5YzFlY2Q0NTdlMi4uZDE5ZThhMTE0
MzhlOGY5NTQzNzRmYzNhMDkzZWE5NzYwNzliNmVkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCkBAIC0xMTQsNiArMTE0LDkgQEAgYm9vbCBNZW1vcnlD
YWNoZTo6YWRkKENhY2hlZFJlc291cmNlJiByZXNvdXJjZSkKICAgICBpZiAoZGlzYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKHJlc291cmNlLnJlc291cmNlUmVxdWVz
dCgpLmh0dHBNZXRob2QoKSAhPSAiR0VUIikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAg
QVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBrZXkgPSBzdGQ6Om1ha2Vf
cGFpcihyZXNvdXJjZS51cmwoKSwgcmVzb3VyY2UuY2FjaGVQYXJ0aXRpb24oKSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MmE3MjFlMmI3Mzc1NTE0OWY2YjM1MDEzMDU0NGFmYjliMTkzOTI4NS4uOWY3OGVlYjEwZmRkZDhj
MThkNzY5NmIxNzUwNjI3NTA5MzgzODI0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA1
LTI3ICBCZW4gTmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgY2FjaGUgR0VU
IHJlcXVlc3RzIGluIHRoZSBtZW1vcnkgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
IEdhcmVuLgorCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnktY2FjaGUtb25seS1j
YWNoZXMtZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9jYWNo
ZS9tZW1vcnktY2FjaGUtb25seS1jYWNoZXMtZ2V0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaTogQWRkZWQuCisKIDIw
MjEtMDYtMDEgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBv
cnQgY2FsYygpIG9uIGNvbXBvbmVudHMgaW5zaWRlIHJlbGF0aXZlIGNvbG9yIHN5bnRheCBjb2xv
cnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hl
LW9ubHktY2FjaGVzLWdldC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nh
Y2hlL21lbW9yeS1jYWNoZS1vbmx5LWNhY2hlcy1nZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgzY2M3ZjBiNmZmNGQ1YTczODUxYjA4YzYyY2Q1NWE1OGIwNTAwM2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1vbmx5LWNhY2hl
cy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJl
IHRoYXQgb25seSBHRVQgcmVxdWVzdHMgZW5kIHVwIGluIHRoZSBtZW1vcnkgY2FjaGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG9yaWdTaXplID09PSBpbnRlcm5hbHMu
bWVtb3J5Q2FjaGVTaXplKCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVzLWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9jYWNoZS9tZW1vcnktY2FjaGUtb25seS1jYWNoZXMtZ2V0Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTMwZGUwMTQwZDg2YTE0ZTEyMjM5NDM5ZmNmYjdkYzFjMTZiNzcyYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2Fj
aGVzLWdldC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBvcmlnU2l6
ZSA9IGludGVybmFscy5tZW1vcnlDYWNoZVNpemUoKTsKKworICAgIGxldCBwb3N0RmV0Y2ggPSBm
ZXRjaCgncmVzb3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaScsIHsgbWV0aG9kOiAnUE9TVCcgfSk7
CisgICAgbGV0IHB1dEZldGNoID0gZmV0Y2goJ3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kn
LCB7IG1ldGhvZDogJ1BVVCcgfSk7CisgICAgbGV0IGRlbGV0ZUZldGNoID0gZmV0Y2goJ3Jlc291
cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2knLCB7IG1ldGhvZDogJ0RFTEVURScgfSk7CisKKyAgICBQ
cm9taXNlLmFsbChbcG9zdEZldGNoLCBwdXRGZXRjaCwgZGVsZXRlRmV0Y2hdKQorICAgICAgICAu
dGhlbih2YWxzID0+IHsKKyAgICAgICAgICAgIHNob3VsZEJlVHJ1ZSgib3JpZ1NpemUgPT09IGlu
dGVybmFscy5tZW1vcnlDYWNoZVNpemUoKSIpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2go
cmVhc29uID0+IHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoU3RyaW5nKHJlYXNvbikpOworICAg
ICAgICB9KQorICAgICAgICAuZmluYWxseShmaW5pc2hKU1Rlc3QpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgb25seSBHRVQgcmVxdWVzdHMgZW5kIHVwIGluIHRo
ZSBtZW1vcnkgY2FjaGUuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2NhY2hlL3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhY2hlL3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3
NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxZDI5
NDcwNGE0MmRmZDIxNDA3MzVlMDFhMTY3YTRkMjQ3MDdmNwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvcmVzb3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaQpA
QCAtMCwwICsxLDggQEAKKyMhL3Vzci9iaW4vcGVybCAtdworCitwcmludCAiQ29udGVudC10eXBl
OiB0ZXh0L3BsYWluXG4iOworcHJpbnQgIkNhY2hlLWNvbnRyb2w6IG1heC1hZ2U9MzYwMFxuIjsK
K3ByaW50ICJBZ2U6IDBcbiI7CitwcmludCAiXG4iOworcmVhZChTVERJTiwgJGRhdGEsICRFTlZ7
J0NPTlRFTlRfTEVOR1RIJ30pOworcHJpbnQgJGRhdGEK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431007</attachid>
            <date>2021-06-09 13:49:16 -0700</date>
            <delta_ts>2021-06-10 12:03:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226359-20210609134915.patch</filename>
            <type>text/plain</type>
            <size>29178</size>
            <attacher name="Ben Nham">nham</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI3MGUzMGUyMGJmZmVk
NDE1ZjgxMWU5OTcwNGU0ZDI0ZWZjNjY3OS4uYTc4Y2MzNjFlNDk2M2VhMWFlNTkzNDhkMGUwYTlh
N2MxNWIxMjQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTA2LTA4ICBCZW4g
TmhhbSAgPG5oYW1AYXBwbGUuY29tPgorCisgICAgICAgIE9ubHkgY2FjaGUgR0VUIHJlcXVlc3Rz
IGluIHRoZSBtZW1vcnkgY2FjaGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjM1OQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgor
CisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVz
LWdldC5odG1sCisKKyAgICAgICAgV2Ugb25seSBjYWNoZSBHRVQgcmVxdWVzdHMgYXQgdGhlIGRp
c2sgY2FjaGUgbGV2ZWwsIGJ1dCB3ZSBkb24ndCBoYXZlIHRoYXQgc2FtZSByZXN0cmljdGlvbgor
ICAgICAgICBhdCB0aGUgbWVtb3J5IGNhY2hlIGxldmVsLiBXZSBzaG91bGQgbWFrZSB0aGUgcG9s
aWNpZXMgbWF0Y2guIEluIHBhcnRpY3VsYXIsIGluIGxvbmctcnVubmluZworICAgICAgICB3ZWJw
YWdlcywgd2UncmUgYWNjdW11bGF0aW5nIFBPU1RzIGZyb20gWE1MSHR0cFJlcXVlc3RzIGluIG91
ciBtZW1vcnkgY2FjaGUgYW5kIHNob3VsZCBzdG9wCisgICAgICAgIGRvaW5nIHRoYXQsIHNpbmNl
IFBPU1QgcmVzcG9uc2UgY2FjaGluZyBpcyBnZW5lcmFsbHkgbm90IHVzZWQgb3IgZXhwZWN0ZWQu
CisKKyAgICAgICAgSSBhbHNvIGNoYW5nZWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxs
U2VuZFJlcXVlc3QgdG8gdGFrZSBhbiBvcHRpb25hbCBDYWNoZWRSZXNvdXJjZQorICAgICAgICBw
YXJhbWV0ZXIgYmVjYXVzZSBpdCBjdXJyZW50bHkgdXNlcyBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNh
Y2hlZFJlc291cmNlIHRvIGZpbmQgdGhlIHJlc291cmNlLAorICAgICAgICB3aGljaCBpbiB0dXJu
IGV4cGVjdHMgdG8gZmluZCB0aGUgcmVzb3VyY2UgaW4gdGhlIG1lbW9yeSBjYWNoZS4gVGhhdCBk
b2Vzbid0IHdvcmsgYW55bW9yZQorICAgICAgICBmb3IgdGhlc2Ugbm9uLUdFVCByZXF1ZXN0cywg
c28gd2Ugbm93IHBhc3MgZG93biB0aGUgQ2FjaGVkUmVzb3VyY2UgZXhwbGljaXRseSBpbiB0aGUg
Y2FzZXMKKyAgICAgICAgd2hlcmUgdGhhdCdzIG5lY2Vzc2FyeS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3RJbXBsKToKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgICogaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb3VyY2VUeXBlRm9yQ2FjaGVkUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGluc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50Lmg6CisgICAgICAgICogbG9hZGVyL0RvY3Vt
ZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjp0cnlMb2Fk
aW5nU3Vic3RpdHV0ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OmFk
ZFN1YnJlc291cmNlTG9hZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyOjps
b2FkTWFpblJlc291cmNlKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJlcXVlc3RGcm9tRGVsZWdhdGUpOgorICAgICAg
ICAqIGxvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUxvYWROb3RpZmllcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAg
ICogbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmg6CisgICAgICAgICogbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjp3aWxsU2Vu
ZFJlcXVlc3RJbnRlcm5hbCk6CisgICAgICAgICogbG9hZGVyL1Jlc291cmNlTG9hZGVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6Y2FjaGVkUmVzb3VyY2UgY29uc3QpOgor
ICAgICAgICAqIGxvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OnVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnN0
YXJ0TG9hZGluZ0VudHJ5KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVtb3J5Q2FjaGU6OmFkZCk6CisKIDIwMjEtMDYtMDggIEFu
dHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEZhY3RvciBNYXJrZWRU
ZXh0IGNvbGxlY3Rpb24gb3V0IG9mIExlZ2FjeUlubGluZVRleHRCb3gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXgg
YThmMmE2NTdlM2FiN2Y4ZDMxOGUyMDY1Y2M1ZTVkNDViNTlkZWViNS4uMzE1ZTczMTU5MGZlNDZk
ZWIyYzhkNTliNGI4MjlmNmRmN2I5ODE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTU3MiwxMCArNTcyLDEw
IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjphcHBseUVtdWxhdGVkTWVkaWFJbXBs
KEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RyCiAgICAgICAgIHBhZ2VBZ2VudC0+YXBwbHlFbXVs
YXRlZE1lZGlhKG1lZGlhKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Ondp
bGxTZW5kUmVxdWVzdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyYgaW5zdHJ1bWVudGluZ0FnZW50
cywgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVz
cG9uc2UpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0SW1w
bChJbnN0cnVtZW50aW5nQWdlbnRzJiBpbnN0cnVtZW50aW5nQWdlbnRzLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgQ2Fj
aGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrQWdl
bnQgPSBpbnN0cnVtZW50aW5nQWdlbnRzLmVuYWJsZWROZXR3b3JrQWdlbnQoKSkKLSAgICAgICAg
bmV0d29ya0FnZW50LT53aWxsU2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0
LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgbmV0d29ya0FnZW50LT53aWxsU2VuZFJlcXVl
c3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCBjYWNoZWRS
ZXNvdXJjZSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJl
cXVlc3RPZlR5cGVJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmIGluc3RydW1lbnRpbmdBZ2VudHMs
IHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBMb2FkVHlwZSBsb2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCBiYzYzZWY4
YzFmNDNjOGFkY2U3ZDE3YmVhOTAwNDcxN2FkODQxNjk1Li5kNTQxODc3NTM3NDcwNTdlMjRiNjM1
OGExODI0NWI5ZjEyODViMmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCkBAIC0xOTMsNyArMTkzLDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIGFwcGx5VXNlckFnZW50T3ZlcnJpZGUoRnJhbWUmLCBTdHJpbmcmKTsK
ICAgICBzdGF0aWMgdm9pZCBhcHBseUVtdWxhdGVkTWVkaWEoRnJhbWUmLCBTdHJpbmcmKTsKIAot
ICAgIHN0YXRpYyB2b2lkIHdpbGxTZW5kUmVxdWVzdChGcmFtZSosIHVuc2lnbmVkIGxvbmcgaWRl
bnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJl
cXVlc3QoRnJhbWUqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwg
UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgQ2FjaGVkUmVzb3VyY2UqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRMb2FkUmVzb3Vy
Y2VGcm9tTWVtb3J5Q2FjaGUoUGFnZSYsIERvY3VtZW50TG9hZGVyKiwgQ2FjaGVkUmVzb3VyY2Uq
KTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlUmVzb3VyY2VSZXNwb25zZShGcmFtZSYsIHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGhy
ZWFkYWJsZUxvYWRlclJlc3BvbnNlKERvY3VtZW50VGhyZWFkYWJsZUxvYWRlciYsIHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllcik7CkBAIC00MTgsNyArNDE4LDcgQEAgcHJpdmF0ZToKICAgICBzdGF0
aWMgdm9pZCBhcHBseVVzZXJBZ2VudE92ZXJyaWRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwg
U3RyaW5nJik7CiAgICAgc3RhdGljIHZvaWQgYXBwbHlFbXVsYXRlZE1lZGlhSW1wbChJbnN0cnVt
ZW50aW5nQWdlbnRzJiwgU3RyaW5nJik7CiAKLSAgICBzdGF0aWMgdm9pZCB3aWxsU2VuZFJlcXVl
c3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMmLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYg
cmVkaXJlY3RSZXNwb25zZSk7CisgICAgc3RhdGljIHZvaWQgd2lsbFNlbmRSZXF1ZXN0SW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExv
YWRlciosIFJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IENhY2hlZFJlc291cmNlKik7CiAgICAgc3RhdGljIHZvaWQgd2lsbFNl
bmRSZXF1ZXN0T2ZUeXBlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgdW5zaWduZWQgbG9uZyBp
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIExvYWRUeXBlKTsK
ICAgICBzdGF0aWMgdm9pZCBtYXJrUmVzb3VyY2VBc0NhY2hlZEltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyYsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAgICAgc3RhdGljIHZvaWQgZGlkTG9h
ZFJlc291cmNlRnJvbU1lbW9yeUNhY2hlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzJiwgRG9jdW1l
bnRMb2FkZXIqLCBDYWNoZWRSZXNvdXJjZSopOwpAQCAtMTA0OSwxNyArMTA0OSwxNyBAQCBpbmxp
bmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5RW11bGF0ZWRNZWRpYShGcmFt
ZSYgZnJhbWUsIFN0cmluZyYgbQogICAgICAgICBhcHBseUVtdWxhdGVkTWVkaWFJbXBsKCphZ2Vu
dHMsIG1lZGlhKTsKIH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3
aWxsU2VuZFJlcXVlc3QoRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK2lubGluZSB2b2lkIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KEZyYW1lKiBmcmFtZSwgdW5zaWduZWQgbG9u
ZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IENh
Y2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19G
Uk9OVEVORFModm9pZCgpKTsKICAgICBpZiAoYXV0byogYWdlbnRzID0gaW5zdHJ1bWVudGluZ0Fn
ZW50cyhmcmFtZSkpCi0gICAgICAgIHdpbGxTZW5kUmVxdWVzdEltcGwoKmFnZW50cywgaWRlbnRp
ZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgd2lsbFNl
bmRSZXF1ZXN0SW1wbCgqYWdlbnRzLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGly
ZWN0UmVzcG9uc2UsIGNhY2hlZFJlc291cmNlKTsKIH0KIAogaW5saW5lIHZvaWQgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QoV29ya2VyT3JXb3JrbGV0R2xvYmFsU2Nv
cGUmIGdsb2JhbFNjb3BlLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCkKIHsKICAgICBGQVNUX1JFVFVSTl9JRl9OT19GUk9OVEVORFModm9pZCgpKTsK
LSAgICB3aWxsU2VuZFJlcXVlc3RJbXBsKGluc3RydW1lbnRpbmdBZ2VudHMoZ2xvYmFsU2NvcGUp
LCBpZGVudGlmaWVyLCBudWxscHRyLCByZXF1ZXN0LCBSZXNvdXJjZVJlc3BvbnNlIHsgfSk7Cisg
ICAgd2lsbFNlbmRSZXF1ZXN0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzKGdsb2JhbFNjb3BlKSwg
aWRlbnRpZmllciwgbnVsbHB0ciwgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSB7IH0sIG51bGxw
dHIpOwogfQogCiBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5k
UmVxdWVzdE9mVHlwZShGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9j
dW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBMb2FkVHlwZSBs
b2FkVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMv
SW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCBkNGY3ODczZTg1ZjkxMzE2MDEyYjk0NDA4
NGY5MjA5NzYwMWUwNjZkLi40ZDM4ODlkN2M3M2E3NjExZWVhYmZhNzgyYTdmNzM4MWUwNDA3MTcw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5l
dHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC00NjUsNyArNDY1LDcgQEAgdm9pZCBJbnNwZWN0b3JO
ZXR3b3JrQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERv
Y3VtZW50TG8KICAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVx
dWVzdElkLCBmcmFtZUlkLCBsb2FkZXJJZCwgdXJsLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVx
dWVzdChyZXF1ZXN0KSwgc2VuZFRpbWVzdGFtcCwgd2FsbHRpbWUuc2Vjb25kc1NpbmNlRXBvY2go
KS5zZWNvbmRzKCksIFdURk1vdmUoaW5pdGlhdG9yT2JqZWN0KSwgYnVpbGRPYmplY3RGb3JSZXNv
dXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9uc2UsIG51bGxwdHIpLCBXVEZNb3ZlKHR5cGVQYXls
b2FkKSwgdGFyZ2V0SWQpOwogfQogCi1zdGF0aWMgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJj
ZVR5cGUgcmVzb3VyY2VUeXBlRm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIHJlc291
cmNlKQorc3RhdGljIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlw
ZUZvckNhY2hlZFJlc291cmNlKGNvbnN0IENhY2hlZFJlc291cmNlKiByZXNvdXJjZSkKIHsKICAg
ICBpZiAocmVzb3VyY2UpCiAgICAgICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6Omluc3Bl
Y3RvclJlc291cmNlVHlwZSgqcmVzb3VyY2UpOwpAQCAtNDg2LDkgKzQ4NiwxMCBAQCBzdGF0aWMg
SW5zcGVjdG9yUGFnZUFnZW50OjpSZXNvdXJjZVR5cGUgcmVzb3VyY2VUeXBlRm9yTG9hZFR5cGUo
SW5zcGVjdG9ySW5zdHJ1bQogICAgIHJldHVybiBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVz
b3VyY2U7CiB9CiAKLXZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3Qo
dW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciogbG9hZGVyLCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9u
c2UpCit2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlLCBjb25z
dCBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3VyY2UpCiB7Ci0gICAgYXV0byogY2FjaGVkUmVz
b3VyY2UgPSBsb2FkZXIgPyBJbnNwZWN0b3JQYWdlQWdlbnQ6OmNhY2hlZFJlc291cmNlKGxvYWRl
ci0+ZnJhbWUoKSwgcmVxdWVzdC51cmwoKSkgOiBudWxscHRyOworICAgIGlmICghY2FjaGVkUmVz
b3VyY2UgJiYgbG9hZGVyKQorICAgICAgICBjYWNoZWRSZXNvdXJjZSA9IEluc3BlY3RvclBhZ2VB
Z2VudDo6Y2FjaGVkUmVzb3VyY2UobG9hZGVyLT5mcmFtZSgpLCByZXF1ZXN0LnVybCgpKTsKICAg
ICB3aWxsU2VuZFJlcXVlc3QoaWRlbnRpZmllciwgbG9hZGVyLCByZXF1ZXN0LCByZWRpcmVjdFJl
c3BvbnNlLCByZXNvdXJjZVR5cGVGb3JDYWNoZWRSZXNvdXJjZShjYWNoZWRSZXNvdXJjZSkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ck5ldHdvcmtBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuaAppbmRleCA2NmFlN2E0NmZlNzk5MWIzOTJiYjA2NTMxZDM2NTA2YmEz
MWUyNDE0Li43Y2RjNTg2NWU1OGU5YTlhMzBlYTI1MjAyNjkyZDRiOWFhNzdiMmQ2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2Vu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29y
a0FnZW50LmgKQEAgLTk4LDcgKzk4LDcgQEAgcHVibGljOgogICAgIC8vIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbgogICAgIHZvaWQgd2lsbFJlY2FsY3VsYXRlU3R5bGUoKTsKICAgICB2b2lkIGRp
ZFJlY2FsY3VsYXRlU3R5bGUoKTsKLSAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBs
b25nIGlkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKiwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgdm9pZCB3aWxsU2VuZFJl
cXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNl
UmVxdWVzdCYsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0
IENhY2hlZFJlc291cmNlKik7CiAgICAgdm9pZCB3aWxsU2VuZFJlcXVlc3RPZlR5cGUodW5zaWdu
ZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvYWRlciosIFJlc291cmNlUmVxdWVzdCYsIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6TG9hZFR5cGUpOwogICAgIHZvaWQgZGlkUmVjZWl2ZVJl
c3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIGRpZFJlY2VpdmVE
YXRhKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgdWludDhfdCogZGF0YSwgaW50IGRh
dGFMZW5ndGgsIGludCBlbmNvZGVkRGF0YUxlbmd0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZGVyLmNwcAppbmRleCBkZjY3YzE1NDQ4NDQ4Mjc3MzlhZDNlMjdjMGMzNjk3MjNh
ZTc5MzkxLi40MDc4ZDFjYjgwMjgxMzE0YzAyNTQ2ZjRiMjQxMWRhNjZlYWM1NzgxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTc0Nyw3ICs3NDcsNyBAQCBi
b29sIERvY3VtZW50TG9hZGVyOjp0cnlMb2FkaW5nU3Vic3RpdHV0ZURhdGEoKQogICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TG9hZGluZ01haW5SZXNvdXJjZTogUmV0dXJuaW5nIHN1
YnN0aXR1dGUgZGF0YSIpOwogICAgIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VM
b2FkZXIgPSBtX2ZyYW1lLT5wYWdlKCktPnByb2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmll
cigpOwogICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuYXNzaWduSWRlbnRpZmllclRvSW5p
dGlhbFJlcXVlc3QobV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlciwgdGhp
cywgbV9yZXF1ZXN0KTsKLSAgICBmcmFtZUxvYWRlcigpLT5ub3RpZmllcigpLmRpc3BhdGNoV2ls
bFNlbmRSZXF1ZXN0KHRoaXMsIG1faWRlbnRpZmllckZvckxvYWRXaXRob3V0UmVzb3VyY2VMb2Fk
ZXIsIG1fcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICBmcmFtZUxvYWRlcigpLT5u
b3RpZmllcigpLmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KHRoaXMsIG1faWRlbnRpZmllckZvckxv
YWRXaXRob3V0UmVzb3VyY2VMb2FkZXIsIG1fcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgpLCBu
dWxscHRyKTsKIAogICAgIGlmICghbV9kZWZlck1haW5SZXNvdXJjZURhdGFMb2FkIHx8IGZyYW1l
TG9hZGVyKCktPmxvYWRzU3luY2hyb25vdXNseSgpKQogICAgICAgICBoYW5kbGVTdWJzdGl0dXRl
RGF0YUxvYWROb3coKTsKQEAgLTE4NDIsNyArMTg0Miw3IEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6
OmFkZFN1YnJlc291cmNlTG9hZGVyKFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBEb2N1bWVudDo6QWJvdXRUb0VudGVyQmFja0ZvcndhcmRD
YWNoZTogewogICAgICAgICAgICAgLy8gQSBwYWdlIGFib3V0IHRvIGVudGVyIHRoZSBCYWNrRm9y
d2FyZENhY2hlIHNob3VsZCBvbmx5IGJlIGFibGUgdG8gc3RhcnQgcGluZyBsb2Fkcy4KLSAgICAg
ICAgICAgIGF1dG8qIGNhY2hlZFJlc291cmNlID0gTWVtb3J5Q2FjaGU6OnNpbmdsZXRvbigpLnJl
c291cmNlRm9yUmVxdWVzdChsb2FkZXItPnJlcXVlc3QoKSwgbG9hZGVyLT5mcmFtZUxvYWRlcigp
LT5mcmFtZSgpLnBhZ2UoKS0+c2Vzc2lvbklEKCkpOworICAgICAgICAgICAgYXV0byogY2FjaGVk
UmVzb3VyY2UgPSBkb3duY2FzdDxTdWJyZXNvdXJjZUxvYWRlcj4obG9hZGVyKS0+Y2FjaGVkUmVz
b3VyY2UoKTsKICAgICAgICAgICAgIEFTU0VSVChjYWNoZWRSZXNvdXJjZSAmJiAoQ2FjaGVkUmVz
b3VyY2U6OnNob3VsZFVzZVBpbmdMb2FkKGNhY2hlZFJlc291cmNlLT50eXBlKCkpIHx8IGNhY2hl
ZFJlc291cmNlLT5vcHRpb25zKCkua2VlcEFsaXZlKSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgfQpAQCAtMjA3Miw3ICsyMDcyLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6bG9hZE1h
aW5SZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIGlmICghbWFpblJlc291
cmNlTG9hZGVyKCkpIHsKICAgICAgICAgbV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJj
ZUxvYWRlciA9IG1fZnJhbWUtPnBhZ2UoKS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJZGVudGlm
aWVyKCk7CiAgICAgICAgIGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuYXNzaWduSWRlbnRpZmll
clRvSW5pdGlhbFJlcXVlc3QobV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRl
ciwgdGhpcywgbWFpblJlc291cmNlUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSk7Ci0gICAgICAg
IGZyYW1lTG9hZGVyKCktPm5vdGlmaWVyKCkuZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QodGhpcywg
bV9pZGVudGlmaWVyRm9yTG9hZFdpdGhvdXRSZXNvdXJjZUxvYWRlciwgbWFpblJlc291cmNlUmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgUmVzb3VyY2VSZXNwb25zZSgpKTsKKyAgICAgICAgZnJh
bWVMb2FkZXIoKS0+bm90aWZpZXIoKS5kaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCh0aGlzLCBtX2lk
ZW50aWZpZXJGb3JMb2FkV2l0aG91dFJlc291cmNlTG9hZGVyLCBtYWluUmVzb3VyY2VSZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCBSZXNvdXJjZVJlc3BvbnNlKCksIG51bGxwdHIpOwogICAgIH0K
IAogICAgIGJlY29tZU1haW5SZXNvdXJjZUNsaWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKaW5kZXggMGYwOWQyNmRhYzEzMTM2ZmY4YjNkOWU1YWY0MTQzZTMwZjhjNTdj
OC4uZDAyN2IyMjZlYjI2NmI2OTQ1YWYwMDI0NWVmZWI0ZDJlY2U1OWQxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0zNTY0LDcgKzM1NjQsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpyZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgdW5z
aWduZWQgbG9uZyYgaQogICAgIH0KIAogICAgIFJlc291cmNlUmVxdWVzdCBuZXdSZXF1ZXN0KHJl
cXVlc3QpOwotICAgIG5vdGlmaWVyKCkuZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QobV9kb2N1bWVu
dExvYWRlci5nZXQoKSwgaWRlbnRpZmllciwgbmV3UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSgp
KTsKKyAgICBub3RpZmllcigpLmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KG1fZG9jdW1lbnRMb2Fk
ZXIuZ2V0KCksIGlkZW50aWZpZXIsIG5ld1JlcXVlc3QsIFJlc291cmNlUmVzcG9uc2UoKSwgbnVs
bHB0cik7CiAKICAgICBpZiAobmV3UmVxdWVzdC5pc051bGwoKSkKICAgICAgICAgZXJyb3IgPSBj
YW5jZWxsZWRFcnJvcihyZXF1ZXN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkTm90aWZpZXIuY3BwCmluZGV4IGM3MDk1ODg2NDg3NWQ1MTUxMzE5NDM3ZThhZGE3N2Yx
NGRkYmUzYzIuLmE4ZTQ5ZGFmYmMxYmZhMmU3MzBjOTVkNWEyMzQ5NTdjNWViNTFhZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZE5vdGlmaWVyLmNwcApAQCAtNjUs
NyArNjUsNyBAQCB2b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjp3aWxsU2VuZFJlcXVlc3QoUmVz
b3VyY2VMb2FkZXIqIGxvYWRlciwgUmVzb3VyY2VSZXF1ZQogewogICAgIG1fZnJhbWUubG9hZGVy
KCkuYXBwbHlVc2VyQWdlbnRJZk5lZWRlZChjbGllbnRSZXF1ZXN0KTsKIAotICAgIGRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlm
aWVyKCksIGNsaWVudFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgIGRpc3BhdGNoV2ls
bFNlbmRSZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnRMb2FkZXIoKSwgbG9hZGVyLT5pZGVudGlmaWVy
KCksIGNsaWVudFJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIGxvYWRlci0+Y2FjaGVkUmVzb3Vy
Y2UoKSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpZFJlY2VpdmVSZXNwb25z
ZShSZXNvdXJjZUxvYWRlciogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByKQpAQCAt
MTE5LDcgKzExOSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmFzc2lnbklkZW50aWZp
ZXJUb0luaXRpYWxSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpCiAgICAgbV9mcmFtZS5sb2Fk
ZXIoKS5jbGllbnQoKS5hc3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdChpZGVudGlmaWVy
LCBsb2FkZXIsIHJlcXVlc3QpOwogfQogCi12b2lkIFJlc291cmNlTG9hZE5vdGlmaWVyOjpkaXNw
YXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciogbG9hZGVyLCB1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVkaXJlY3RSZXNwb25zZSkKK3ZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnbmVkIGxvbmcg
aWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBDYWNoZWRSZXNvdXJjZSogY2FjaGVkUmVzb3Vy
Y2UpCiB7CiAjaWYgVVNFKFFVSUNLX0xPT0spCiAgICAgLy8gQWx3YXlzIGFsbG93IFF1aWNrTG9v
ay1nZW5lcmF0ZWQgVVJMcyBiYXNlZCBvbiB0aGUgcHJvdG9jb2wgc2NoZW1lLgpAQCAtMTQ5LDcg
KzE0OSw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkTm90aWZpZXI6OmRpc3BhdGNoV2lsbFNlbmRSZXF1
ZXN0KERvY3VtZW50TG9hZGVyKiBsb2FkZXIsIHVuc2lnCiAgICAgaWYgKCFyZXF1ZXN0LmlzTnVs
bCgpICYmIG9sZFJlcXVlc3RVUkwgIT0gcmVxdWVzdC51cmwoKS5zdHJpbmcoKSAmJiBtX2ZyYW1l
LmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCkpCiAgICAgICAgIG1fZnJhbWUubG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+ZGlkVGVsbENsaWVudEFib3V0TG9hZChyZXF1ZXN0LnVybCgpLnN0cmlu
ZygpKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KCZt
X2ZyYW1lLCBpZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KCZtX2ZyYW1lLCBp
ZGVudGlmaWVyLCBsb2FkZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UsIGNhY2hlZFJlc291
cmNlKTsKIH0KIAogdm9pZCBSZXNvdXJjZUxvYWROb3RpZmllcjo6ZGlzcGF0Y2hEaWRSZWNlaXZl
UmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlciwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByLCBSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2Fk
ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkTm90aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCmluZGV4
IDRlYjBmODI1ZmIwNDA4YTU1MGY4YjY4YzdhZWEzZDc0YWNkZWI5ZjIuLjFjYzQ2MzE5MmQ1MjMy
MTVmYzhmZTJmYWJhYzE4ODcyYTI5ZGYxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9SZXNvdXJjZUxvYWROb3RpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWROb3RpZmllci5oCkBAIC0zNSw2ICszNSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOworY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2U7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgTmV0d29ya0xv
YWRNZXRyaWNzOwpAQCAtNTgsNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGYWlsVG9M
b2FkKFJlc291cmNlTG9hZGVyKiwgY29uc3QgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgdm9pZCBh
c3NpZ25JZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IERvY3VtZW50TG9hZGVyKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgdm9pZCBkaXNw
YXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RS
ZXNwb25zZSk7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRl
ciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgQ2FjaGVkUmVzb3VyY2UqKTsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKERvY3VtZW50TG9hZGVyKiwgdW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiwgUmVzb3VyY2VM
b2FkZXIqID0gbnVsbHB0cik7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVEYXRhKERvY3Vt
ZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCB1aW50OF90KiBkYXRh
LCBpbnQgZGF0YUxlbmd0aCwgaW50IGVuY29kZWREYXRhTGVuZ3RoKTsKICAgICB2b2lkIGRpc3Bh
dGNoRGlkRmluaXNoTG9hZGluZyhEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRp
ZmllciwgY29uc3QgTmV0d29ya0xvYWRNZXRyaWNzJiwgUmVzb3VyY2VMb2FkZXIqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDkxMGM2N2FlMDkxZDhjN2Fl
MzM0ZDA1ZDZiODI5YTA0MDY0YTNiM2QuLjAwZWY4MTM1ZjljMjJkNjY3ODI0ZjIyZGIwZTkxMTQw
NGYwNjNjYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApAQCAt
NDA4LDcgKzQwOCw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OndpbGxTZW5kUmVxdWVzdEludGVy
bmFsKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIGNvbnN0IFJlCiAgICAgICAgIGZyYW1lTG9h
ZGVyKCktPm5vdGlmaWVyKCkud2lsbFNlbmRSZXF1ZXN0KHRoaXMsIHJlcXVlc3QsIHJlZGlyZWN0
UmVzcG9uc2UpOwogICAgIH0KICAgICBlbHNlCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1faWRlbnRpZmllciwgbV9mcmFt
ZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7
CisgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJh
bWUuZ2V0KCksIG1faWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgY2FjaGVkUmVzb3VyY2UoKSk7CiAKICNpZiBV
U0UoUVVJQ0tfTE9PSykKICAgICBpZiAobV9kb2N1bWVudExvYWRlcikgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkZXIuaAppbmRleCA1MTUzNDMyNjA3NWNiYWYxOTFmZjhjNzZiZDcx
Yzc0MzRjNjBjMWJlLi40Nzg5NzU0ODE0NDdiMTZjYjlkZDQ4ZGQ0YjU3ZGJiZGM0MWRlYjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuaApAQCAtNDgsNiArNDgsNyBAQCBj
bGFzcyBTY2hlZHVsZVBhaXI7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlOworY2xhc3MgQ2FjaGVkUmVzb3VyY2U7CiBjbGFzcyBEb2N1bWVudExv
YWRlcjsKIGNsYXNzIEZyYW1lOwogY2xhc3MgRnJhbWVMb2FkZXI7CkBAIC0xMzAsNiArMTMxLDgg
QEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkU25pZmZDb250ZW50RW5jb2RpbmcoKSBjb25zdCB7
IHJldHVybiBtX29wdGlvbnMuc25pZmZDb250ZW50RW5jb2RpbmcgPT0gQ29udGVudEVuY29kaW5n
U25pZmZpbmdQb2xpY3k6OlNuaWZmOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0FsbG93
ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscygpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgc2hvdWxkSW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0OworICAgIAorICAgIHZpcnR1
YWwgQ2FjaGVkUmVzb3VyY2UqIGNhY2hlZFJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0
cjsgfQogCiAgICAgYm9vbCByZWFjaGVkVGVybWluYWxTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVhY2hlZFRlcm1pbmFsU3RhdGU7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggMGQ0MDUyYmMwMGMyZmYxMzZmZTM0ZDc2YTFiNTQyMjhlZjI4
YmNiZC4uMmYxMzk5MzZlOTcxMWM0MzA0NWVmZGMwN2M3NzQ0ODQyYWZkZWU0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0xNTIsMTEgKzE1Miw2
IEBAIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OnN0YXJ0TG9hZGluZygpCiB9CiAjZW5kaWYKIAot
Q2FjaGVkUmVzb3VyY2UqIFN1YnJlc291cmNlTG9hZGVyOjpjYWNoZWRSZXNvdXJjZSgpCi17Ci0g
ICAgcmV0dXJuIG1fcmVzb3VyY2U7Ci19Ci0KIHZvaWQgU3VicmVzb3VyY2VMb2FkZXI6OmNhbmNl
bElmTm90RmluaXNoaW5nKCkKIHsKICAgICBpZiAobV9zdGF0ZSAhPSBJbml0aWFsaXplZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5oIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmgKaW5kZXggNTM5ODY2MjkyNDhm
NmUzNTEyYmM5MjU0NDE5MzM3ODc4MGVjZTFjNC4uY2Q1NTY3NjNlOTQyZDczNzFhY2FlNjk0NmRm
ODMyNjczODEwZjIzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVy
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjYW5jZWxJZk5vdEZpbmlz
aGluZygpOwogICAgIGJvb2wgaXNTdWJyZXNvdXJjZUxvYWRlcigpIGNvbnN0IG92ZXJyaWRlOwot
ICAgIENhY2hlZFJlc291cmNlKiBjYWNoZWRSZXNvdXJjZSgpOworICAgIENhY2hlZFJlc291cmNl
KiBjYWNoZWRSZXNvdXJjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVzb3VyY2U7IH07
CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgSFRUUEhlYWRlck1hcCogb3JpZ2luYWxIZWFkZXJz
KCkgY29uc3Q7CiAKICAgICBTZWN1cml0eU9yaWdpbiogb3JpZ2luKCkgeyByZXR1cm4gbV9vcmln
aW4uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggZjI2NGYxZGQ3MTIzZDY5MmM2NTdmMWVj
ZTE0OTk0YzQxOTYzMzQ1YS4uYzhiZjY1ZjlhMDQ3MzcyZWU2YzQxMDUxYzg0MDMyYjhjZmNmNGQ3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVHcm91cDo6dXBkYXRlKEZyYW1lJiBmcmFtZSwgQXBwbGljYXRpb25DYWNoZVVwZGF0ZU9w
dGlvbiB1cAogICAgIGF1dG8gcmVxdWVzdCA9IGNyZWF0ZVJlcXVlc3QoVVJMIHsgbV9tYW5pZmVz
dFVSTCB9LCBtX25ld2VzdENhY2hlID8gbV9uZXdlc3RDYWNoZS0+bWFuaWZlc3RSZXNvdXJjZSgp
IDogbnVsbHB0cik7CiAKICAgICBtX2N1cnJlbnRSZXNvdXJjZUlkZW50aWZpZXIgPSBtX2ZyYW1l
LT5wYWdlKCktPnByb2dyZXNzKCkuY3JlYXRlVW5pcXVlSWRlbnRpZmllcigpOwotICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1fY3Vy
cmVudFJlc291cmNlSWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIo
KSwgcmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSB7IH0pOworICAgIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6d2lsbFNlbmRSZXF1ZXN0KG1fZnJhbWUuZ2V0KCksIG1fY3VycmVudFJlc291cmNl
SWRlbnRpZmllciwgbV9mcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKSwgcmVxdWVzdCwg
UmVzb3VyY2VSZXNwb25zZSB7IH0sIG51bGxwdHIpOwogCiAgICAgbV9tYW5pZmVzdExvYWRlciA9
IEFwcGxpY2F0aW9uQ2FjaGVSZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKEFwcGxpY2F0aW9uQ2FjaGVS
ZXNvdXJjZTo6VHlwZTo6TWFuaWZlc3QsIGRvY3VtZW50TG9hZGVyLmNhY2hlZFJlc291cmNlTG9h
ZGVyKCksIFdURk1vdmUocmVxdWVzdCksIFt0aGlzXSAoYXV0byYmIHJlc291cmNlT3JFcnJvcikg
ewogICAgICAgICAvLyAndGhpcycgaXMgb25seSB2YWxpZCBpZiByZXR1cm5lZCB2YWx1ZSBpcyBu
b3QgRXJyb3I6OkFib3J0LgpAQCAtOTAwLDcgKzkwMCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNo
ZUdyb3VwOjpzdGFydExvYWRpbmdFbnRyeSgpCiAgICAgYXV0byByZXF1ZXN0ID0gY3JlYXRlUmVx
dWVzdChVUkwgeyB7IH0sIGZpcnN0UGVuZGluZ0VudHJ5VVJMIH0sIG1fbmV3ZXN0Q2FjaGUgPyBt
X25ld2VzdENhY2hlLT5yZXNvdXJjZUZvclVSTChmaXJzdFBlbmRpbmdFbnRyeVVSTCkgOiBudWxs
cHRyKTsKIAogICAgIG1fY3VycmVudFJlc291cmNlSWRlbnRpZmllciA9IG1fZnJhbWUtPnBhZ2Uo
KS0+cHJvZ3Jlc3MoKS5jcmVhdGVVbmlxdWVJZGVudGlmaWVyKCk7Ci0gICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjp3aWxsU2VuZFJlcXVlc3QobV9mcmFtZS5nZXQoKSwgbV9jdXJyZW50UmVz
b3VyY2VJZGVudGlmaWVyLCBtX2ZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLCByZXF1
ZXN0LCBSZXNvdXJjZVJlc3BvbnNlIHsgfSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
Ojp3aWxsU2VuZFJlcXVlc3QobV9mcmFtZS5nZXQoKSwgbV9jdXJyZW50UmVzb3VyY2VJZGVudGlm
aWVyLCBtX2ZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLCByZXF1ZXN0LCBSZXNvdXJj
ZVJlc3BvbnNlIHsgfSwgbnVsbHB0cik7CiAKICAgICBhdXRvJiBkb2N1bWVudExvYWRlciA9ICpt
X2ZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwogICAgIGF1dG8gcmVxdWVzdFVSTCA9
IHJlcXVlc3QudXJsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
TWVtb3J5Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL01lbW9yeUNhY2hl
LmNwcAppbmRleCAyZmE2OTc3ZmFmZTkwYzI3OWU0MDUxMmU0YjcxODljMWVjZDQ1N2UyLi5kMTll
OGExMTQzOGU4Zjk1NDM3NGZjM2EwOTNlYTk3NjA3OWI2ZWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5jcHAKQEAgLTExNCw2ICsxMTQsOSBAQCBib29sIE1l
bW9yeUNhY2hlOjphZGQoQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlKQogICAgIGlmIChkaXNhYmxl
ZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAocmVzb3VyY2UucmVzb3VyY2VS
ZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJHRVQiKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
ICAgICBBU1NFUlQoV1RGOjppc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIGtleSA9IHN0ZDo6
bWFrZV9wYWlyKHJlc291cmNlLnVybCgpLCByZXNvdXJjZS5jYWNoZVBhcnRpdGlvbigpKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmOWQ3MTE3Mjg4OTA5OWNjZGUyMjRhZTI3MWQ2MjY5OGE5OGVhNTVhLi4wNzlkYmMyNjI2
OWY2N2RiOTZlMDc4M2QxYTBlMzhiODMwN2FlYTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIw
MjEtMDYtMDggIEJlbiBOaGFtICA8bmhhbUBhcHBsZS5jb20+CisKKyAgICAgICAgT25seSBjYWNo
ZSBHRVQgcmVxdWVzdHMgaW4gdGhlIG1lbW9yeSBjYWNoZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MzU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmYgR2FyZW4uCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gbWFrZSBzdXJlIG9ubHkgR0VU
cyBlbmQgdXAgaW4gdGhlIG1lbW9yeSBjYWNoZS4KKworICAgICAgICBBbHNvIGZpeGVkIGEgZmxh
a3kgdGVzdCB0aGF0IHdhcyBkZXBlbmRpbmcgb24gYSBQT1NUIHJlc3BvbnNlIGluIGFuIGlmcmFt
ZSB0byBiZSBpbiB0aGUKKyAgICAgICAgbWVtb3J5IGNhY2hlIHdoZW4gZG9pbmcgYSBoaXN0b3J5
IG5hdmlnYXRpb24uCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1v
bmx5LWNhY2hlcy1nZXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2NhY2hlL21lbW9yeS1jYWNoZS1vbmx5LWNhY2hlcy1nZXQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogaHR0cC90ZXN0cy9jYWNoZS9yZXNvdXJjZXMvZWNoby1jYWNoZWFibGUuY2dpOiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1s
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTA2LTA4
ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1l
ZGlhIENvbnRyb2xzXSB1cHN0cmVhbSBuZXcgZmVhdHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVzLWdldC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL21lbW9yeS1jYWNoZS1vbmx5LWNh
Y2hlcy1nZXQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzY2M3ZjBiNmZmNGQ1YTczODUxYjA4
YzYyY2Q1NWE1OGIwNTAwM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2NhY2hlL21lbW9yeS1jYWNoZS1vbmx5LWNhY2hlcy1nZXQtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTAgQEAKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgb25seSBHRVQgcmVxdWVzdHMg
ZW5kIHVwIGluIHRoZSBtZW1vcnkgY2FjaGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIG9yaWdTaXplID09PSBpbnRlcm5hbHMubWVtb3J5Q2FjaGVTaXplKCkgaXMgdHJ1
ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHkt
Y2FjaGVzLWdldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jYWNoZS9tZW1vcnktY2Fj
aGUtb25seS1jYWNoZXMtZ2V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTMwZGUwMTQwZDg2YTE0ZTEyMjM5
NDM5ZmNmYjdkYzFjMTZiNzcyYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY2FjaGUvbWVtb3J5LWNhY2hlLW9ubHktY2FjaGVzLWdldC5odG1sCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBvcmlnU2l6ZSA9IGludGVybmFscy5tZW1vcnlDYWNo
ZVNpemUoKTsKKworICAgIGxldCBwb3N0RmV0Y2ggPSBmZXRjaCgncmVzb3VyY2VzL2VjaG8tY2Fj
aGVhYmxlLmNnaScsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisgICAgbGV0IHB1dEZldGNoID0gZmV0
Y2goJ3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2knLCB7IG1ldGhvZDogJ1BVVCcgfSk7Cisg
ICAgbGV0IGRlbGV0ZUZldGNoID0gZmV0Y2goJ3Jlc291cmNlcy9lY2hvLWNhY2hlYWJsZS5jZ2kn
LCB7IG1ldGhvZDogJ0RFTEVURScgfSk7CisKKyAgICBQcm9taXNlLmFsbChbcG9zdEZldGNoLCBw
dXRGZXRjaCwgZGVsZXRlRmV0Y2hdKQorICAgICAgICAudGhlbih2YWxzID0+IHsKKyAgICAgICAg
ICAgIHNob3VsZEJlVHJ1ZSgib3JpZ1NpemUgPT09IGludGVybmFscy5tZW1vcnlDYWNoZVNpemUo
KSIpOworICAgICAgICB9KQorICAgICAgICAuY2F0Y2gocmVhc29uID0+IHsKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoU3RyaW5nKHJlYXNvbikpOworICAgICAgICB9KQorICAgICAgICAuZmluYWxs
eShmaW5pc2hKU1Rlc3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSI+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBtYWtlcyBzdXJlIHRo
YXQgb25seSBHRVQgcmVxdWVzdHMgZW5kIHVwIGluIHRoZSBtZW1vcnkgY2FjaGUuIik7Citqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3Qt
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jlc291cmNlcy9lY2hvLWNh
Y2hlYWJsZS5jZ2kgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2NhY2hlL3Jlc291cmNlcy9lY2hv
LWNhY2hlYWJsZS5jZ2kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxZDI5NDcwNGE0MmRmZDIxNDA3MzVlMDFhMTY3
YTRkMjQ3MDdmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY2Fj
aGUvcmVzb3VyY2VzL2VjaG8tY2FjaGVhYmxlLmNnaQpAQCAtMCwwICsxLDggQEAKKyMhL3Vzci9i
aW4vcGVybCAtdworCitwcmludCAiQ29udGVudC10eXBlOiB0ZXh0L3BsYWluXG4iOworcHJpbnQg
IkNhY2hlLWNvbnRyb2w6IG1heC1hZ2U9MzYwMFxuIjsKK3ByaW50ICJBZ2U6IDBcbiI7Citwcmlu
dCAiXG4iOworcmVhZChTVERJTiwgJGRhdGEsICRFTlZ7J0NPTlRFTlRfTEVOR1RIJ30pOworcHJp
bnQgJGRhdGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
b3N0LWZyYW1lcy1nb2JhY2sxLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sCmluZGV4IGQ3MWEyYjljNDIyY2E5ZjNkNjVkMTc0
M2I5MDU4ZTBhYWRmNzgyNzYuLjJlYmQ1Mzk0NmIyN2ZiZmVlYjc5OWQyZGJjMDRjMjUxMTAzNjE0
MjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWZy
YW1lcy1nb2JhY2sxLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbApAQCAtOCwxNCArOCwyNSBAQCBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB0ZXN0UnVu
bmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKIH0KLSAgIAorICAgIAogb25sb2FkID0gZnVuY3Rp
b24oKQogewogICAgIGlmIChzZXNzaW9uU3RvcmFnZS5kaWROYXYpIHsKICAgICAgICAgZGVsZXRl
IHNlc3Npb25TdG9yYWdlLmRpZE5hdjsKICAgICAgICAgZGVsZXRlIHNlc3Npb25TdG9yYWdlLnRv
cFNob3VsZE5hdkFuZEdvQmFjazsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgLy8gV2FpdCB1bnRpbCB0aGUgaWZyYW1lIGlzIHNob3dp
bmcgdGhlIFBPU1QgcmVzcG9uc2UgYmVmb3JlIGVuZGluZyB0aGUgdGVzdC4KKyAgICAgICAgICAg
IGxldCBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQtZnJhbWUnKTsKKyAgICAg
ICAgICAgIGlmIChlbC5zcmMgIT09ICdhYm91dDpibGFuaycgJiYgZWwucmVhZHlTdGF0ZSA9PT0g
J2NvbXBsZXRlJykgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZWwu
b25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKGVsLnNyYyAhPT0gJ2Fi
b3V0OmJsYW5rJykKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgICAgICB9OworICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2Vzc2lv
blN0b3JhZ2UudG9wU2hvdWxkTmF2QW5kR29CYWNrID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RoZS1mb3JtJykuc3VibWl0KCk7CkBAIC0zMCw2ICs0MSw2IEBAIG9u
bG9hZCA9IGZ1bmN0aW9uKCkKICAgPGlucHV0IG5hbWU9InRoZS1pbnB1dCIgdmFsdWU9ImlucHV0
IHZhbHVlIGdvZXMgaGVyZSI+CiA8L2Zvcm0+CiAKLTxpZnJhbWUgbmFtZT0idGFyZ2V0LWZyYW1l
IiBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KKzxpZnJhbWUgaWQ9InRhcmdldC1mcmFtZSIg
bmFtZT0idGFyZ2V0LWZyYW1lIiBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KIDwvYm9keT4K
IDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRlODMxZjM4MmI5MTJmNDJkMTUzODY4ZTc5ZmM1
MDBmNzc0YTQ3MzkuLjE0NTc0MTkxOTViMDdhMjg2MjhhZjUyOGJmMzkzNDIzZmU5YjI0YTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC03NzAsMTAgKzc3
MCw2IEBAIHdlYmtpdC5vcmcvYi8xMzc1MDUgbWVkaWEvdHJhY2svdHJhY2stZm9yY2VkLXN1YnRp
dGxlcy1pbi1iYW5kLmh0bWwgWyBGYWlsdXJlIFBhCiAjIEZJWE1FOiBOZWVkcyBidWd6aWxsYSAo
PHJkYXI6Ly9wcm9ibGVtLzE2MDQwNzIwPikKIGZhc3QvY2FudmFzL2NhbnZhcy1zY2FsZS1zdHJv
a2VQYXRoLXNoYWRvdy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotIyBGSVhNRTogTmVlZHMgYnVn
emlsbGEgKDxyZGFyOi8vcHJvYmxlbS8xNjY2MzkxMj4pCi0jIFNlZW1zIGxpa2UgdGhpcyBzaG91
bGQgaGFwcGVuIGV2ZXJ5d2hlcmUsIGJ1dCBpdCBvbmx5IGRvZXMgb24gWW9zZW1pdGUuCi1odHRw
L3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sIFsgUGFzcyBGYWlsdXJl
IF0KLQogIyBGSVhNRTogTmVlZHMgYnVnemlsbGEgKDxyZGFyOi8vcHJvYmxlbS8xNjgwMjA2OD4p
CiBmYXN0L2Nzcy9pbnB1dC1zZWFyY2gtcGFkZGluZy5odG1sIFsgRmFpbHVyZSBdCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>