<?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>225829</bug_id>
          
          <creation_ts>2021-05-14 15:05:25 -0700</creation_ts>
          <short_desc>WebFrameLoaderClient::dispatchWillSendRequest sometimes resets app-bound value</short_desc>
          <delta_ts>2021-05-17 18:52:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</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="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760236</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-14 15:05:25 -0700</bug_when>
    <thetext>webPage-&gt;injectedBundleResourceLoadClient().willSendRequestForFrame can sometimes return a completely new request. We should make sure the app-bound value is kept when this happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760237</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-14 15:05:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/78034595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760242</commentid>
    <comment_count>2</comment_count>
      <attachid>428669</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-14 15:09:35 -0700</bug_when>
    <thetext>Created attachment 428669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760486</commentid>
    <comment_count>3</comment_count>
      <attachid>428669</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-15 15:48:15 -0700</bug_when>
    <thetext>Comment on attachment 428669
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        No new tests, was not able to reproduce this in our testing
&gt; +        infrastructure, only in real use cases. I tested this manually.

This is risky. Seems likely we’ll make the similar mistake again if we can’t test it. We should consider how to enhance our testing machinery so we can test it. Probably means adding a case of an injected bundle client that implements willSendRequest and an API test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760487</commentid>
    <comment_count>4</comment_count>
      <attachid>428669</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-15 15:51:56 -0700</bug_when>
    <thetext>Comment on attachment 428669
Patch

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

&gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:251
&gt;      auto requester = request.requester();
&gt; +    auto appBoundValue = request.isAppBound();
&gt;      webPage-&gt;injectedBundleResourceLoadClient().willSendRequestForFrame(*webPage, m_frame, identifier, request, redirectResponse);
&gt; -    if (!request.isNull())
&gt; +    if (!request.isNull()) {
&gt;          request.setRequester(requester);
&gt; +        request.setIsAppBound(appBoundValue);
&gt; +    }

I’m thinking that this a clue about the granularity of our objects being wrong. If we can’t trust some of the fields on the request that comes back from the resource load client, then instead of carrying context from one request to the next, we probably need to refactor so we only get the parts of the request that we *can* trust from the client and combine it with other things we already have that the client cannot have any influence on. Not a trivial refactoring, but I think it would likely be worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760559</commentid>
    <comment_count>5</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-15 21:09:50 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #3)
&gt; Comment on attachment 428669 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428669&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:10
&gt; &gt; +        No new tests, was not able to reproduce this in our testing
&gt; &gt; +        infrastructure, only in real use cases. I tested this manually.
&gt; 
&gt; This is risky. Seems likely we’ll make the similar mistake again if we can’t
&gt; test it. We should consider how to enhance our testing machinery so we can
&gt; test it. Probably means adding a case of an injected bundle client that
&gt; implements willSendRequest and an API test.

Alex told me how to write a test. I will cq- and upload a new patch with a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760560</commentid>
    <comment_count>6</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-15 21:11:45 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 428669 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=428669&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:251
&gt; &gt;      auto requester = request.requester();
&gt; &gt; +    auto appBoundValue = request.isAppBound();
&gt; &gt;      webPage-&gt;injectedBundleResourceLoadClient().willSendRequestForFrame(*webPage, m_frame, identifier, request, redirectResponse);
&gt; &gt; -    if (!request.isNull())
&gt; &gt; +    if (!request.isNull()) {
&gt; &gt;          request.setRequester(requester);
&gt; &gt; +        request.setIsAppBound(appBoundValue);
&gt; &gt; +    }
&gt; 
&gt; I’m thinking that this a clue about the granularity of our objects being
&gt; wrong. If we can’t trust some of the fields on the request that comes back
&gt; from the resource load client, then instead of carrying context from one
&gt; request to the next, we probably need to refactor so we only get the parts
&gt; of the request that we *can* trust from the client and combine it with other
&gt; things we already have that the client cannot have any influence on. Not a
&gt; trivial refactoring, but I think it would likely be worth it.

That&apos;s a good point. I will look into it and see if I can figure it out for this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760809</commentid>
    <comment_count>7</comment_count>
      <attachid>428846</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-17 11:04:21 -0700</bug_when>
    <thetext>Created attachment 428846
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760810</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-17 11:04:57 -0700</bug_when>
    <thetext>(In reply to katherine_cheney from comment #6)
&gt; (In reply to Darin Adler from comment #4)
&gt; &gt; Comment on attachment 428669 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=428669&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:251
&gt; &gt; &gt;      auto requester = request.requester();
&gt; &gt; &gt; +    auto appBoundValue = request.isAppBound();
&gt; &gt; &gt;      webPage-&gt;injectedBundleResourceLoadClient().willSendRequestForFrame(*webPage, m_frame, identifier, request, redirectResponse);
&gt; &gt; &gt; -    if (!request.isNull())
&gt; &gt; &gt; +    if (!request.isNull()) {
&gt; &gt; &gt;          request.setRequester(requester);
&gt; &gt; &gt; +        request.setIsAppBound(appBoundValue);
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; I’m thinking that this a clue about the granularity of our objects being
&gt; &gt; wrong. If we can’t trust some of the fields on the request that comes back
&gt; &gt; from the resource load client, then instead of carrying context from one
&gt; &gt; request to the next, we probably need to refactor so we only get the parts
&gt; &gt; of the request that we *can* trust from the client and combine it with other
&gt; &gt; things we already have that the client cannot have any influence on. Not a
&gt; &gt; trivial refactoring, but I think it would likely be worth it.
&gt; 
&gt; That&apos;s a good point. I will look into it and see if I can figure it out for
&gt; this patch.

Talked offline with Alex, I think this would be better in another patch. Latest patch does add a test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760832</commentid>
    <comment_count>9</comment_count>
      <attachid>428846</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-17 12:24:38 -0700</bug_when>
    <thetext>Comment on attachment 428846
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:33
&gt; +#import &lt;WebKit/WKWebProcessPlugInRangeHandle.h&gt;

Unused includes.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:47
&gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController didCreateBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController

All this is probably unnecessary.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:59
&gt; +    return [[NSURLRequest alloc] initWithURL:request.URL];

This needs an autorelease.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760837</commentid>
    <comment_count>10</comment_count>
      <attachid>428846</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-17 12:33:52 -0700</bug_when>
    <thetext>Comment on attachment 428846
Patch

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

Thanks Alex, I&apos;ll fix before landing.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:33
&gt;&gt; +#import &lt;WebKit/WKWebProcessPlugInRangeHandle.h&gt;
&gt; 
&gt; Unused includes.

copy-paste fail :(

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:47
&gt;&gt; +- (void)webProcessPlugIn:(WKWebProcessPlugInController *)plugInController didCreateBrowserContextController:(WKWebProcessPlugInBrowserContextController *)browserContextController
&gt; 
&gt; All this is probably unnecessary.

copy-paste fail pt 2.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:59
&gt;&gt; +    return [[NSURLRequest alloc] initWithURL:request.URL];
&gt; 
&gt; This needs an autorelease.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760839</commentid>
    <comment_count>11</comment_count>
      <attachid>428846</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-17 12:35:52 -0700</bug_when>
    <thetext>Comment on attachment 428846
Patch

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

&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/InAppBrowserPrivacyPlugIn.mm:59
&gt;&gt;&gt; +    return [[NSURLRequest alloc] initWithURL:request.URL];
&gt;&gt; 
&gt;&gt; This needs an autorelease.
&gt; 
&gt; Will fix.

adoptNS([[NSURLRequest alloc] initWithURL:request.URL]).autorelease()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760981</commentid>
    <comment_count>12</comment_count>
      <attachid>428901</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-17 17:56:25 -0700</bug_when>
    <thetext>Created attachment 428901
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760982</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-17 17:57:10 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog is not at the top of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760983</commentid>
    <comment_count>14</comment_count>
      <attachid>428902</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-05-17 18:00:18 -0700</bug_when>
    <thetext>Created attachment 428902
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760994</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-17 18:52:24 -0700</bug_when>
    <thetext>Committed r277628 (237839@main): &lt;https://commits.webkit.org/237839@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428902.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428669</attachid>
            <date>2021-05-14 15:09:35 -0700</date>
            <delta_ts>2021-05-17 11:04:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225829-20210514150935.patch</filename>
            <type>text/plain</type>
            <size>2339</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4YWZiZWUxMzg0MzFjMDNk
N2IyZGJkZTc4ODI4NWY1ZGI4YTM3YTQuLjlmYmJlNmY5ZTU0ZDA5NWI0NmNmZmYxZTk5M2U4YTNk
ZjU1N2UyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMTQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0IHNvbWV0aW1lcyByZXNldHMgYXBwLWJv
dW5kIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4MDM0NTk1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgd2FzIG5v
dCBhYmxlIHRvIHJlcHJvZHVjZSB0aGlzIGluIG91ciB0ZXN0aW5nCisgICAgICAgIGluZnJhc3Ry
dWN0dXJlLCBvbmx5IGluIHJlYWwgdXNlIGNhc2VzLiBJIHRlc3RlZCB0aGlzIG1hbnVhbGx5Lgor
CisgICAgICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkud2ls
bFNlbmRSZXF1ZXN0Rm9yRnJhbWUKKyAgICAgICAgY2FuIHNvbWV0aW1lcyByZXR1cm4gYSBjb21w
bGV0ZWx5IG5ldyByZXF1ZXN0LiBXZSBzaG91bGQgbWFrZSBzdXJlIHRoZQorICAgICAgICBhcHAt
Ym91bmQgdmFsdWUgaXMga2VwdCB3aGVuIHRoaXMgaGFwcGVucy4KKworICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgor
CiAyMDIxLTA1LTE0ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBQcm9tb3RlIGAtW1dLV2ViVmlldyBfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yXWAgU1BJ
IHRvIGAtW1dLV2ViVmlldyB1bmRlclBhZ2VCYWNrZ3JvdW5kQ29sb3JdYCBBUEkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDM0Y2FlOWFkNTYxYjliN2RhZGE3Mzk5Y2E5ZDE0
NGI2ZGY0NWYwZTguLmEwMGRkYzhhNjY5NDg3OTczMTA0OTIxYTk3OWNkMmU4OTcyMDUwMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMjQzLDkgKzI0MywxMiBAQCB2b2lk
IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExv
YWRlciosIHVuc2lnbmVkIGxvbgogICAgIC8vIFRoZSBBUEkgY2FuIHJldHVybiBhIGNvbXBsZXRl
bHkgbmV3IHJlcXVlc3QuIFdlIHNob3VsZCBlbnN1cmUgdGhhdCBhdCBsZWFzdCB0aGUgcmVxdWVz
dGVyCiAgICAgLy8gaXMga2VwdCwgc28gdGhhdCBpZiB0aGlzIGlzIGEgbWFpbiByZXNvdXJjZSBs
b2FkIGl0J3Mgc3RpbGwgY29uc2lkZXJlZCBhcyBzdWNoLgogICAgIGF1dG8gcmVxdWVzdGVyID0g
cmVxdWVzdC5yZXF1ZXN0ZXIoKTsKKyAgICBhdXRvIGFwcEJvdW5kVmFsdWUgPSByZXF1ZXN0Lmlz
QXBwQm91bmQoKTsKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVu
dCgpLndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKCp3ZWJQYWdlLCBtX2ZyYW1lLCBpZGVudGlmaWVy
LCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKLSAgICBpZiAoIXJlcXVlc3QuaXNOdWxsKCkp
CisgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpKSB7CiAgICAgICAgIHJlcXVlc3Quc2V0UmVxdWVz
dGVyKHJlcXVlc3Rlcik7CisgICAgICAgIHJlcXVlc3Quc2V0SXNBcHBCb3VuZChhcHBCb3VuZFZh
bHVlKTsKKyAgICB9CiB9CiAKIGJvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNy
ZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428846</attachid>
            <date>2021-05-17 11:04:21 -0700</date>
            <delta_ts>2021-05-17 17:56:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225829-20210517110421.patch</filename>
            <type>text/plain</type>
            <size>12697</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE4YWZiZWUxMzg0MzFjMDNk
N2IyZGJkZTc4ODI4NWY1ZGI4YTM3YTQuLmFmZWRkY2Y2MzMxYTI2YjIzZDg2OTE3YzViZTAwMTVi
MTY2ZWQxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0IHNvbWV0aW1lcyByZXNldHMgYXBwLWJv
dW5kIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4MDM0NTk1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHdlYlBhZ2UtPmluamVjdGVkQnVu
ZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUKKyAgICAgICAg
Y2FuIHNvbWV0aW1lcyByZXR1cm4gYSBjb21wbGV0ZWx5IG5ldyByZXF1ZXN0LiBXZSBzaG91bGQg
bWFrZSBzdXJlIHRoZQorICAgICAgICBhcHAtYm91bmQgdmFsdWUgaXMga2VwdCB3aGVuIHRoaXMg
aGFwcGVucy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6
ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QpOgorCiAyMDIxLTA1LTE0ICBEZXZpbiBSb3Vzc28gIDxk
cm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm9tb3RlIGAtW1dLV2ViVmlldyBfcGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yXWAgU1BJIHRvIGAtW1dLV2ViVmlldyB1bmRlclBhZ2VCYWNr
Z3JvdW5kQ29sb3JdYCBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDM0
Y2FlOWFkNTYxYjliN2RhZGE3Mzk5Y2E5ZDE0NGI2ZGY0NWYwZTguLmEwMGRkYzhhNjY5NDg3OTcz
MTA0OTIxYTk3OWNkMmU4OTcyMDUwMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cApAQCAtMjQzLDkgKzI0MywxMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFdpbGxTZW5kUmVxdWVzdChEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbgogICAgIC8vIFRo
ZSBBUEkgY2FuIHJldHVybiBhIGNvbXBsZXRlbHkgbmV3IHJlcXVlc3QuIFdlIHNob3VsZCBlbnN1
cmUgdGhhdCBhdCBsZWFzdCB0aGUgcmVxdWVzdGVyCiAgICAgLy8gaXMga2VwdCwgc28gdGhhdCBp
ZiB0aGlzIGlzIGEgbWFpbiByZXNvdXJjZSBsb2FkIGl0J3Mgc3RpbGwgY29uc2lkZXJlZCBhcyBz
dWNoLgogICAgIGF1dG8gcmVxdWVzdGVyID0gcmVxdWVzdC5yZXF1ZXN0ZXIoKTsKKyAgICBhdXRv
IGFwcEJvdW5kVmFsdWUgPSByZXF1ZXN0LmlzQXBwQm91bmQoKTsKICAgICB3ZWJQYWdlLT5pbmpl
Y3RlZEJ1bmRsZVJlc291cmNlTG9hZENsaWVudCgpLndpbGxTZW5kUmVxdWVzdEZvckZyYW1lKCp3
ZWJQYWdlLCBtX2ZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
LSAgICBpZiAoIXJlcXVlc3QuaXNOdWxsKCkpCisgICAgaWYgKCFyZXF1ZXN0LmlzTnVsbCgpKSB7
CiAgICAgICAgIHJlcXVlc3Quc2V0UmVxdWVzdGVyKHJlcXVlc3Rlcik7CisgICAgICAgIHJlcXVl
c3Quc2V0SXNBcHBCb3VuZChhcHBCb3VuZFZhbHVlKTsKKyAgICB9CiB9CiAKIGJvb2wgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKERvY3VtZW50TG9hZGVy
KiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI3ZDUyNzQ3OTA3YWVmMzRhNWUzMWZkNDMyNjk0MzEx
ZmJmMTAwMWYuLmI1M2JjZGUyM2Y5N2RjM2U3YTViOTI4NTU4MTRkMjdhMGQ0NzA4MTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OSBAQAorMjAyMS0wNS0xNyAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNv
bT4KKworICAgICAgICBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVl
c3Qgc29tZXRpbWVzIHJlc2V0cyBhcHAtYm91bmQgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTgyOQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzgwMzQ1OTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW06CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5UGx1Z0lu
Lm1tOiBBZGRlZC4KKyAgICAgICAgKC1bSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbiB3ZWJQcm9j
ZXNzUGx1Z0luOmRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpdKToKKyAgICAgICAg
KC1bSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbiB3ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRl
eHRDb250cm9sbGVyOmZyYW1lOndpbGxTZW5kUmVxdWVzdEZvclJlc291cmNlOnJlcXVlc3Q6cmVk
aXJlY3RSZXNwb25zZTpdKToKKwogMjAyMS0wNS0xNCAgU2FtIFdlaW5pZyAgPHdlaW5pZ0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjc3MzEzKTogWyBEZWJ1ZyBdIDIgVGVzdFdl
YktpdEFQSS5JUENUZXN0aW5nQVBJIChBUEktVGVzdHMpIGFyZSBjb25zdGFudCB0aW1lb3V0cwpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NDZmODQyMDdhMGVlMzg5OGFjN2M5OWFhN2IzYjhi
NWQyODQ4ZTM4Li4yZTdmYTQ0NTQ4NzYwYWFlZjk0Y2FjYTNmODIwZDIyYmM4NDlkZWY1IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjg5LDYgKzI4OSw3IEBACiAJCTQ2RkFDRjc0MjNFODg0
MjMwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUwMEE5RUJD
NiAvKiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA4QzcxMTI2MDk0RTQxMDAw
QjFCMkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTA4QzcwRjI2MDk0RTE2MDAwQjFCMkYgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQubW0gKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1
NiAvKiBNYXJrYWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFQzc5RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9Owor
CQk0OTFBRUVGODI2NTJFMzM1MDBENTMwQTggLyogSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUFFRUY0
MjY1MkRERDAwMEQ1MzBBOCAvKiBJbkFwcEJyb3dzZXJQcml2YWN5UGx1Z0luLm1tICovOyB9Owog
CQk0OTFGM0Q1MjI2MDI3RTUzMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRh
dGFiYXNlLmRiIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQ5MUYzRDRGMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50
aW9uRGF0YWJhc2UuZGIgKi87IH07CiAJCTQ5MUYzRDUzMjYwMjdFNTMwMDBFMzFGNyAvKiBwY21X
aXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGItc2htIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUYzRDUwMjYwMjdDRkUwMDBFMzFG
NyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGItc2htICovOyB9OwogCQk0
OTFGM0Q1NDI2MDI3RTUzMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFi
YXNlLmRiLXdhbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OTFGM0Q1MTI2MDI3Q0ZFMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVu
dGlvbkRhdGFiYXNlLmRiLXdhbCAqLzsgfTsKQEAgLTIwOTYsNiArMjA5Nyw3IEBACiAJCTQ2RkEy
RkVEMjM4NDZDOUEwMDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNs
b3cuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1bmxvYWQtc2xvdy5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwOEM3MEYyNjA5NEUxNjAwMEIx
QjJGIC8qIFByaXZhdGVDbGlja01lYXN1cmVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ5MUFFRUY0MjY1MkRERDAwMEQ1MzBBOCAvKiBJbkFwcEJyb3dz
ZXJQcml2YWN5UGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJp
dmFjeVBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENEYyNjAy
N0NGRTAwMEUzMUY3IC8qIHBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGgg
PSBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5MUYzRDUwMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQ
cmV2ZW50aW9uRGF0YWJhc2UuZGItc2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9ICJwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9u
RGF0YWJhc2UuZGItc2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENTEy
NjAyN0NGRTAwMEUzMUY3IC8qIHBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYi13
YWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gInBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRh
YmFzZS5kYi13YWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0MCw2ICszNDQy
LDcgQEAKIAkJCQk1MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9W
Mi5tbSAqLywKIAkJCQk5M0JDQkM4MDIzQ0M2RUU4MDBDQTIyMjEgLyogSURCT2JqZWN0U3RvcmVJ
bmZvVXBncmFkZVRvVjIubW0gKi8sCiAJCQkJNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRDIC8qIElu
QXBwQnJvd3NlclByaXZhY3kubW0gKi8sCisJCQkJNDkxQUVFRjQyNjUyREREMDAwRDUzMEE4IC8q
IEluQXBwQnJvd3NlclByaXZhY3lQbHVnSW4ubW0gKi8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAw
NEJBOUFGIC8qIEluZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8sCiAJCQkJQ0FCMEZG
NTQyMjMzMkMzQTAwNkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1lLm1tICovLAogCQkJCTkzOTlC
QTAxMjM3MTEwQUUwMDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLywKQEAgLTU5
MjEsNiArNTkyNCw3IEBACiAJCQkJRjRCMDE2ODQyNUFFMDhGODAwRTQ0NUM0IC8qIERpc2FibGVT
cGVsbGNoZWNrUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MTkyMEE3OENFNTAw
RTAyNEYzIC8qIERvdWJsZURlZmVyc0xvYWRpbmdQbHVnaW4ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1Q0I1QjNDMjFGRkM1NUNGMDBDMjdCQjAgLyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNDkxQUVFRjgyNjUyRTMzNTAwRDUzMEE4IC8qIEluQXBwQnJv
d3NlclByaXZhY3lQbHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDYwRjY1QjI2MTExOTU4
MDA2NEYyQjYgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEU0MDRBOEMyMTY2REUwQTAwODI3MUJBIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZUlzU2VsZWN0RWxlbWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc5QzVENDMxMjA5RDc2ODMw
MEYxRTdDQSAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGVJc1RleHRGaWVsZC5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tCmluZGV4IGRlZGIwNTFjNTE3ZWJkOTYyMWM0
MTRmYmExNTQ2OTliN2UwY2EwYmQuLjM4ZDJlZTM1MWFlMTg4YjhiZWY5NzM4MDAxNThiYzEwNWRj
MDFkYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5BcHBCcm93c2VyUHJpdmFjeS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3kubW0KQEAgLTE4MzgsNCArMTgzOCw0MyBAQCBU
RVNUKEluQXBwQnJvd3NlclByaXZhY3ksIE5vbkFwcEJvdW5kUmVxdWVzdFdpdGhTZXJ2aWNlV29y
a2VyU29mdFVwZGF0ZSkKIHsKICAgICBzb2Z0VXBkYXRlVGVzdChJc0FwcEJvdW5kOjpObyk7CiB9
CisKK3N0YXRpYyB2b2lkIHJ1bldlYlByb2Nlc3NQbHVnSW5UZXN0KElzQXBwQm91bmQgaXNBcHBC
b3VuZCkKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xh
c3NOYW1lOkAiSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbiJdOworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisgICAgTlNT
dHJpbmcgKnVybCA9IEAiaHR0cHM6Ly93ZWJraXQub3JnIjsKKworICAgIF9fYmxvY2sgYm9vbCBp
c0RvbmUgPSBmYWxzZTsKKyAgICBOU011dGFibGVVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TTXV0
YWJsZVVSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07
CisgICAgaWYgKGlzQXBwQm91bmQgPT0gSXNBcHBCb3VuZDo6Tm8pIHsKKyAgICAgICAgTlNNdXRh
YmxlVVJMUmVxdWVzdCAqbm9uQXBwQm91bmRSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgQVBQ
X0JPVU5EX1JFUVVFU1RfQURESVRJT05TCisgICAgICAgIHJlcXVlc3QgPSBub25BcHBCb3VuZFJl
cXVlc3Q7CisgICAgfQorCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAg
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgaXNEb25l
ID0gZmFsc2U7CisgICAgYm9vbCBleHBlY3RpbmdBcHBCb3VuZFJlcXVlc3RzID0gaXNBcHBCb3Vu
ZCA9PSBJc0FwcEJvdW5kOjpZZXMgPyB0cnVlIDogZmFsc2U7CisgICAgW3dlYlZpZXcgX2FwcEJv
dW5kTmF2aWdhdGlvbkRhdGE6XihzdHJ1Y3QgV0tBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0
YSBkYXRhKSB7CisgICAgICAgIEVYUEVDVF9FUShkYXRhLmhhc0xvYWRlZEFwcEJvdW5kUmVxdWVz
dFRlc3RpbmcsIGV4cGVjdGluZ0FwcEJvdW5kUmVxdWVzdHMpOworICAgICAgICBFWFBFQ1RfRVEo
ZGF0YS5oYXNMb2FkZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nLCAhZXhwZWN0aW5nQXBwQm91
bmRSZXF1ZXN0cyk7CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoSW5BcHBCcm93c2VyUHJp
dmFjeSwgV2ViUHJvY2Vzc1BsdWdpblRlc3RBcHBCb3VuZCkKK3sKKyAgICBydW5XZWJQcm9jZXNz
UGx1Z0luVGVzdChJc0FwcEJvdW5kOjpZZXMpOworfQorCitURVNUKEluQXBwQnJvd3NlclByaXZh
Y3ksIFdlYlByb2Nlc3NQbHVnaW5UZXN0Tm9uQXBwQm91bmQpCit7CisgICAgcnVuV2ViUHJvY2Vz
c1BsdWdJblRlc3QoSXNBcHBCb3VuZDo6Tm8pOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3lQbHVn
SW4ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3Nl
clByaXZhY3lQbHVnSW4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRlMWQ2ZDllZThjZWE4NmY1MDFhMjZmMzYw
NzY0NDAzNzA1YjU3MwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbQpAQCAtMCwwICsxLDYy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3Jt
VXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyUHJp
dmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lLmg+CisjaW1w
b3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlByb2Nlc3NQbHVnSW5TY3JpcHRXb3JsZC5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90
ZU9iamVjdEludGVyZmFjZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5Lmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BpbnRlcmZhY2UgSW5BcHBCcm93
c2VyUHJpdmFjeVBsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nlc3NQbHVnSW4sIFdLV2ViUHJv
Y2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEluQXBwQnJv
d3NlclByaXZhY3lQbHVnSW4geworICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5Ccm93
c2VyQ29udGV4dENvbnRyb2xsZXI+IF9icm93c2VyQ29udGV4dENvbnRyb2xsZXI7CisgICAgUmV0
YWluUHRyPFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXI+IF9wbHVnSW5Db250cm9sbGVyOwor
fQorCistICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xs
ZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjoo
V0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopYnJvd3NlckNvbnRl
eHRDb250cm9sbGVyCit7CisgICAgQVNTRVJUKCFfYnJvd3NlckNvbnRleHRDb250cm9sbGVyKTsK
KyAgICBBU1NFUlQoIV9wbHVnSW5Db250cm9sbGVyKTsKKyAgICBfYnJvd3NlckNvbnRleHRDb250
cm9sbGVyID0gYnJvd3NlckNvbnRleHRDb250cm9sbGVyOworICAgIF9wbHVnSW5Db250cm9sbGVy
ID0gcGx1Z0luQ29udHJvbGxlcjsKKworICAgIFtfYnJvd3NlckNvbnRleHRDb250cm9sbGVyIHNl
dExvYWREZWxlZ2F0ZTpzZWxmXTsKK30KKworLSAoTlNVUkxSZXF1ZXN0ICopd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNv
bnRleHRDb250cm9sbGVyICopY29udHJvbGxlciBmcmFtZTooV0tXZWJQcm9jZXNzUGx1Z0luRnJh
bWUgKilmcmFtZSB3aWxsU2VuZFJlcXVlc3RGb3JSZXNvdXJjZToodWludDY0X3QpcmVzb3VyY2Ug
cmVxdWVzdDooTlNVUkxSZXF1ZXN0ICopcmVxdWVzdCByZWRpcmVjdFJlc3BvbnNlOihOU1VSTFJl
c3BvbnNlICopcmVkaXJlY3RSZXNwb25zZQoreworICAgIHJldHVybiBbW05TVVJMUmVxdWVzdCBh
bGxvY10gaW5pdFdpdGhVUkw6cmVxdWVzdC5VUkxdOworfQorCitAZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428901</attachid>
            <date>2021-05-17 17:56:25 -0700</date>
            <delta_ts>2021-05-17 18:00:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225829-20210517175624.patch</filename>
            <type>text/plain</type>
            <size>13204</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkZGMyMTE0OTZhMGUxMDA5
YjYwOWY3MTFjNjVlMjk0MjU2NzIyYzkuLmQwNTU0MzA3NzY4YTE4ZmIyMzliODE1NWZjOTYwNjFi
ZDkwNzk4MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0IHNvbWV0aW1lcyByZXNldHMgYXBwLWJv
dW5kIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4MDM0NTk1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgd2ViUGFnZS0+aW5qZWN0ZWRC
dW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS53aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAg
ICBjYW4gc29tZXRpbWVzIHJldHVybiBhIGNvbXBsZXRlbHkgbmV3IHJlcXVlc3QuIFdlIHNob3Vs
ZCBtYWtlIHN1cmUgdGhlCisgICAgICAgIGFwcC1ib3VuZCB2YWx1ZSBpcyBrZXB0IHdoZW4gdGhp
cyBoYXBwZW5zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisKIDIwMjEtMDUtMTQgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgd2hlZWwgZXZlbnRzIHRv
IGJlIGNvYWxlc2NlZCBkdXJpbmcgc2Nyb2xsIGRlY2VsZXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggMzRjYWU5YWQ1NjFiOWI3ZGFkYTczOTljYTlkMTQ0YjZkZjQ1
ZjBlOC4uYTAwZGRjOGE2Njk0ODc5NzMxMDQ5MjFhOTc5Y2QyZTg5NzIwNTAwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0yNDMsOSArMjQzLDEyIEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwg
dW5zaWduZWQgbG9uCiAgICAgLy8gVGhlIEFQSSBjYW4gcmV0dXJuIGEgY29tcGxldGVseSBuZXcg
cmVxdWVzdC4gV2Ugc2hvdWxkIGVuc3VyZSB0aGF0IGF0IGxlYXN0IHRoZSByZXF1ZXN0ZXIKICAg
ICAvLyBpcyBrZXB0LCBzbyB0aGF0IGlmIHRoaXMgaXMgYSBtYWluIHJlc291cmNlIGxvYWQgaXQn
cyBzdGlsbCBjb25zaWRlcmVkIGFzIHN1Y2guCiAgICAgYXV0byByZXF1ZXN0ZXIgPSByZXF1ZXN0
LnJlcXVlc3RlcigpOworICAgIGF1dG8gYXBwQm91bmRWYWx1ZSA9IHJlcXVlc3QuaXNBcHBCb3Vu
ZCgpOwogICAgIHdlYlBhZ2UtPmluamVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkud2ls
bFNlbmRSZXF1ZXN0Rm9yRnJhbWUoKndlYlBhZ2UsIG1fZnJhbWUsIGlkZW50aWZpZXIsIHJlcXVl
c3QsIHJlZGlyZWN0UmVzcG9uc2UpOwotICAgIGlmICghcmVxdWVzdC5pc051bGwoKSkKKyAgICBp
ZiAoIXJlcXVlc3QuaXNOdWxsKCkpIHsKICAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIocmVx
dWVzdGVyKTsKKyAgICAgICAgcmVxdWVzdC5zZXRJc0FwcEJvdW5kKGFwcEJvdW5kVmFsdWUpOwor
ICAgIH0KIH0KIAogYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjUwYjMyOTBi
YjNkODYxOWM4YmNjODA0YThhNWY5NjY2Y2ViZTE1MS4uMWUzOGJjOGFmOThkOTMzZTMwMWJmMDEy
ZTE2MGIzMWFiZGEyNjY5NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTA1LTE3ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCBzb21ldGltZXMgcmVzZXRzIGFwcC1ib3VuZCB2YWx1
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODI5
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83ODAzNDU5NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBBbGV4IENocmlzdGVuc2VuLgorCisgICAgICAgIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dz
ZXJQcml2YWN5Lm1tOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
SW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbTogQWRkZWQuCisgICAgICAgICgtW0luQXBwQnJv
d3NlclByaXZhY3lQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4
dENvbnRyb2xsZXI6XSk6CisgICAgICAgICgtW0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4gd2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpmcmFtZTp3aWxsU2VuZFJlcXVl
c3RGb3JSZXNvdXJjZTpyZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisKIDIwMjEtMDUtMTUg
IEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3Igc3Vydml2ZXMgcGFnZSByZWxvYWQvbmF2aWdhdGlvbgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA2NDZmODQyMDdhMGVlMzg5OGFjN2M5OWFhN2IzYjhiNWQyODQ4ZTM4Li4y
ZTdmYTQ0NTQ4NzYwYWFlZjk0Y2FjYTNmODIwZDIyYmM4NDlkZWY1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjg5LDYgKzI4OSw3IEBACiAJCTQ2RkFDRjc0MjNFODg0MjMwMEE5RUJDNiAv
KiBiZWZvcmV1bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1
bmxvYWQtc2xvdy5odG1sICovOyB9OwogCQk0OTA4QzcxMTI2MDk0RTQxMDAwQjFCMkYgLyogUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0OTA4QzcwRjI2MDk0RTE2MDAwQjFCMkYgLyogUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQubW0gKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1NiAvKiBNYXJrYWJs
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQzc5
RjE2OEJFNDU0RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9OworCQk0OTFBRUVGODI2
NTJFMzM1MDBENTMwQTggLyogSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUFFRUY0MjY1MkRERDAwMEQ1
MzBBOCAvKiBJbkFwcEJyb3dzZXJQcml2YWN5UGx1Z0luLm1tICovOyB9OwogCQk0OTFGM0Q1MjI2
MDI3RTUzMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNlLmRiIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUYz
RDRGMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2Uu
ZGIgKi87IH07CiAJCTQ5MUYzRDUzMjYwMjdFNTMwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQ
cmV2ZW50aW9uRGF0YWJhc2UuZGItc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUYzRDUwMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRo
b3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGItc2htICovOyB9OwogCQk0OTFGM0Q1NDI2MDI3
RTUzMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNlLmRiLXdhbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTFG
M0Q1MTI2MDI3Q0ZFMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNl
LmRiLXdhbCAqLzsgfTsKQEAgLTIwOTYsNiArMjA5Nyw3IEBACiAJCTQ2RkEyRkVEMjM4NDZDOUEw
MDBDQ0IwQyAvKiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0NkZBQ0Y3MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1bmxvYWQtc2xvdy5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkwOEM3MEYyNjA5NEUxNjAwMEIxQjJGIC8qIFByaXZh
dGVDbGlja01lYXN1cmVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTQ5MUFFRUY0MjY1MkRERDAwMEQ1MzBBOCAvKiBJbkFwcEJyb3dzZXJQcml2YWN5UGx1
Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENEYyNjAyN0NGRTAwMEUzMUY3
IC8qIHBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBwY21XaXRob3V0
RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5MUYzRDUwMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0
YWJhc2UuZGItc2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgcGF0aCA9ICJwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGIt
c2htIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENTEyNjAyN0NGRTAwMEUz
MUY3IC8qIHBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYi13YWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gInBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYi13YWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQ0MCw2ICszNDQyLDcgQEAKIAkJCQk1
MTEwRkNFRjFFMDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSAqLywKIAkJ
CQk5M0JDQkM4MDIzQ0M2RUU4MDBDQTIyMjEgLyogSURCT2JqZWN0U3RvcmVJbmZvVXBncmFkZVRv
VjIubW0gKi8sCiAJCQkJNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclBy
aXZhY3kubW0gKi8sCisJCQkJNDkxQUVFRjQyNjUyREREMDAwRDUzMEE4IC8qIEluQXBwQnJvd3Nl
clByaXZhY3lQbHVnSW4ubW0gKi8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIElu
ZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8sCiAJCQkJQ0FCMEZGNTQyMjMzMkMzQTAw
NkNBNUIwIC8qIEluZGV4ZWREQkZpbGVOYW1lLm1tICovLAogCQkJCTkzOTlCQTAxMjM3MTEwQUUw
MDgzOTJCRiAvKiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLywKQEAgLTU5MjEsNiArNTkyNCw3
IEBACiAJCQkJRjRCMDE2ODQyNUFFMDhGODAwRTQ0NUM0IC8qIERpc2FibGVTcGVsbGNoZWNrUGx1
Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MTkyMEE3OENFNTAwRTAyNEYzIC8qIERv
dWJsZURlZmVyc0xvYWRpbmdQbHVnaW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0I1QjNDMjFG
RkM1NUNGMDBDMjdCQjAgLyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJNDkxQUVFRjgyNjUyRTMzNTAwRDUzMEE4IC8qIEluQXBwQnJvd3NlclByaXZhY3lQ
bHVnSW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQlGNDYwRjY1QjI2MTExOTU4MDA2NEYyQjYgLyog
SW5qZWN0ZWRCdW5kbGVIaXRUZXN0UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEU0MDRB
OEMyMTY2REUwQTAwODI3MUJBIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzU2VsZWN0RWxl
bWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTc5QzVENDMxMjA5RDc2ODMwMEYxRTdDQSAvKiBJ
bmplY3RlZEJ1bmRsZU5vZGVIYW5kbGVJc1RleHRGaWVsZC5tbSBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dz
ZXJQcml2YWN5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFw
cEJyb3dzZXJQcml2YWN5Lm1tCmluZGV4IGRlZGIwNTFjNTE3ZWJkOTYyMWM0MTRmYmExNTQ2OTli
N2UwY2EwYmQuLjM4ZDJlZTM1MWFlMTg4YjhiZWY5NzM4MDAxNThiYzEwNWRjMDFkYjggMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2Vy
UHJpdmFjeS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0lu
QXBwQnJvd3NlclByaXZhY3kubW0KQEAgLTE4MzgsNCArMTgzOCw0MyBAQCBURVNUKEluQXBwQnJv
d3NlclByaXZhY3ksIE5vbkFwcEJvdW5kUmVxdWVzdFdpdGhTZXJ2aWNlV29ya2VyU29mdFVwZGF0
ZSkKIHsKICAgICBzb2Z0VXBkYXRlVGVzdChJc0FwcEJvdW5kOjpObyk7CiB9CisKK3N0YXRpYyB2
b2lkIHJ1bldlYlByb2Nlc3NQbHVnSW5UZXN0KElzQXBwQm91bmQgaXNBcHBCb3VuZCkKK3sKKyAg
ICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiSW5B
cHBCcm93c2VyUHJpdmFjeVBsdWdJbiJdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tU
ZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisgICAgTlNTdHJpbmcgKnVybCA9
IEAiaHR0cHM6Ly93ZWJraXQub3JnIjsKKworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxz
ZTsKKyAgICBOU011dGFibGVVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TTXV0YWJsZVVSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07CisgICAgaWYgKGlz
QXBwQm91bmQgPT0gSXNBcHBCb3VuZDo6Tm8pIHsKKyAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVz
dCAqbm9uQXBwQm91bmRSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgQVBQX0JPVU5EX1JFUVVF
U1RfQURESVRJT05TCisgICAgICAgIHJlcXVlc3QgPSBub25BcHBCb3VuZFJlcXVlc3Q7CisgICAg
fQorCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW3dlYlZpZXcgX3Rl
c3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgaXNEb25lID0gZmFsc2U7Cisg
ICAgYm9vbCBleHBlY3RpbmdBcHBCb3VuZFJlcXVlc3RzID0gaXNBcHBCb3VuZCA9PSBJc0FwcEJv
dW5kOjpZZXMgPyB0cnVlIDogZmFsc2U7CisgICAgW3dlYlZpZXcgX2FwcEJvdW5kTmF2aWdhdGlv
bkRhdGE6XihzdHJ1Y3QgV0tBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSBkYXRhKSB7Cisg
ICAgICAgIEVYUEVDVF9FUShkYXRhLmhhc0xvYWRlZEFwcEJvdW5kUmVxdWVzdFRlc3RpbmcsIGV4
cGVjdGluZ0FwcEJvdW5kUmVxdWVzdHMpOworICAgICAgICBFWFBFQ1RfRVEoZGF0YS5oYXNMb2Fk
ZWROb25BcHBCb3VuZFJlcXVlc3RUZXN0aW5nLCAhZXhwZWN0aW5nQXBwQm91bmRSZXF1ZXN0cyk7
CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoSW5BcHBCcm93c2VyUHJpdmFjeSwgV2ViUHJv
Y2Vzc1BsdWdpblRlc3RBcHBCb3VuZCkKK3sKKyAgICBydW5XZWJQcm9jZXNzUGx1Z0luVGVzdChJ
c0FwcEJvdW5kOjpZZXMpOworfQorCitURVNUKEluQXBwQnJvd3NlclByaXZhY3ksIFdlYlByb2Nl
c3NQbHVnaW5UZXN0Tm9uQXBwQm91bmQpCit7CisgICAgcnVuV2ViUHJvY2Vzc1BsdWdJblRlc3Qo
SXNBcHBCb3VuZDo6Tm8pOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4ubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3lQbHVn
SW4ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODE2YzE1ZjQyYzRmNzE1ODVhZDM5NjdlYjk4MjJiODM2MDI4Mzgx
OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbQpAQCAtMCwwICsxLDQzIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0IDxXZWJLaXQv
V0tXZWJQcm9jZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CisKK0BpbnRlcmZhY2UgSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbiA6IE5TT2JqZWN0IDxX
S1dlYlByb2Nlc3NQbHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZT4KK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIEluQXBwQnJvd3NlclByaXZhY3lQbHVnSW4geyB9CisKKy0gKE5T
VVJMUmVxdWVzdCAqKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZnJh
bWU6KFdLV2ViUHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgd2lsbFNlbmRSZXF1ZXN0Rm9yUmVz
b3VyY2U6KHVpbnQ2NF90KXJlc291cmNlIHJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3Qg
cmVkaXJlY3RSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKK3sKKyAg
ICByZXR1cm4gYWRvcHROUyhbW05TVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6cmVxdWVz
dC5VUkxdKS5hdXRvcmVsZWFzZSgpOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjE4NDA5ODE2MDRhZWFl
ZGY0OGVhNmIyMGUxODkzNzdkYTM3ODU2YS4uZmE5YzE2ZjZiMzE0ODU0ZjRjMWZkZDYxNTFiNTQ0
OGMzZTJhMGMzMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMTAwNSw2ICsxMDA1LDI2IEBACiAKICAgICAgICAgKiBwbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CiAKKzIwMjEtMDUtMTAgIEthdGUgQ2hlbmV5
ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgU3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIHJlcXVlc3RzIG5vdCBwcm9wZXJseSBhdHRyaWJ1dGVkIGFzIGFwcC1ib3VuZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NjEzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NzY2NDM1OD4KKworICAgICAgICBSZXZpZXdlZCBieSBC
cmVudCBGdWxnaGFtLgorCisgICAgICAgIExheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9pbi1hcHAtYnJvd3Nlci1wcml2YWN5L2FwcC1ib3VuZC1hdHRyaWJ1dGlv
bi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvYXBwLWJvdW5kLWF0dHJpYnV0aW9u
LXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0aGVudGlj
YXRlZC1yZXNvdXJjZS5weTogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbi1hcHAtYnJv
d3Nlci1wcml2YWN5L3Jlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgRXNzZW50
aWFsbHkgY29waWVkIGh0dHAvdGVzdHMvY2FjaGUvZGlzay1jYWNoZS9zcGVjdWxhdGl2ZS12YWxp
ZGF0aW9uL2h0dHAtYXV0aC5odG1sCisgICAgICAgIHRvIGhpdCB0aGUgc3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIGNvZGUgcGF0aCwgYW5kIGFkZGVkIGluIGEgY2hlY2sKKyAgICAgICAgZm9yIGFw
cC1ib3VuZCBsb2FkIGRhdGEgYXQgdGhlIGVuZCB0byBjb25maXJtIGFsbCByZXF1ZXN0cyBhcmUg
bWFya2VkCisgICAgICAgIGNvcnJlY3RseS4KKwogMjAyMS0wNS0xMCAgS2F0ZSBDaGVuZXkgIDxr
YXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVmbGlnaHQgcmVxdWVzdHMg
bm90IHByb3Blcmx5IGF0dHJpYnV0ZWQgYXMgYXBwLWJvdW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428902</attachid>
            <date>2021-05-17 18:00:18 -0700</date>
            <delta_ts>2021-05-17 18:52:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225829-20210517180017.patch</filename>
            <type>text/plain</type>
            <size>11767</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFmMzI4ZjQ5YjFkNzk1Zjg3
YTc3ZGIyNWIyMGNmZmViMDIwNzdlNDAuLjQ2OGU4NTNiYThmMjEyYTA0OTc1YjEyYjdlNTJmZjBk
YjExNDZlNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDUtMTQgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0IHNvbWV0aW1lcyByZXNldHMgYXBwLWJv
dW5kIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU4MjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc4MDM0NTk1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgd2ViUGFnZS0+aW5qZWN0ZWRC
dW5kbGVSZXNvdXJjZUxvYWRDbGllbnQoKS53aWxsU2VuZFJlcXVlc3RGb3JGcmFtZQorICAgICAg
ICBjYW4gc29tZXRpbWVzIHJldHVybiBhIGNvbXBsZXRlbHkgbmV3IHJlcXVlc3QuIFdlIHNob3Vs
ZCBtYWtlIHN1cmUgdGhlCisgICAgICAgIGFwcC1ib3VuZCB2YWx1ZSBpcyBrZXB0IHdoZW4gdGhp
cyBoYXBwZW5zLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdCk6CisKIDIwMjEtMDUtMTcgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBp
bnRlcm5hbCBtYWNPUyBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
MzRjYWU5YWQ1NjFiOWI3ZGFkYTczOTljYTlkMTQ0YjZkZjQ1ZjBlOC4uYTAwZGRjOGE2Njk0ODc5
NzMxMDQ5MjFhOTc5Y2QyZTg5NzIwNTAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0yNDMsOSArMjQzLDEyIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFNlbmRSZXF1ZXN0KERvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uCiAgICAgLy8g
VGhlIEFQSSBjYW4gcmV0dXJuIGEgY29tcGxldGVseSBuZXcgcmVxdWVzdC4gV2Ugc2hvdWxkIGVu
c3VyZSB0aGF0IGF0IGxlYXN0IHRoZSByZXF1ZXN0ZXIKICAgICAvLyBpcyBrZXB0LCBzbyB0aGF0
IGlmIHRoaXMgaXMgYSBtYWluIHJlc291cmNlIGxvYWQgaXQncyBzdGlsbCBjb25zaWRlcmVkIGFz
IHN1Y2guCiAgICAgYXV0byByZXF1ZXN0ZXIgPSByZXF1ZXN0LnJlcXVlc3RlcigpOworICAgIGF1
dG8gYXBwQm91bmRWYWx1ZSA9IHJlcXVlc3QuaXNBcHBCb3VuZCgpOwogICAgIHdlYlBhZ2UtPmlu
amVjdGVkQnVuZGxlUmVzb3VyY2VMb2FkQ2xpZW50KCkud2lsbFNlbmRSZXF1ZXN0Rm9yRnJhbWUo
KndlYlBhZ2UsIG1fZnJhbWUsIGlkZW50aWZpZXIsIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2Up
OwotICAgIGlmICghcmVxdWVzdC5pc051bGwoKSkKKyAgICBpZiAoIXJlcXVlc3QuaXNOdWxsKCkp
IHsKICAgICAgICAgcmVxdWVzdC5zZXRSZXF1ZXN0ZXIocmVxdWVzdGVyKTsKKyAgICAgICAgcmVx
dWVzdC5zZXRJc0FwcEJvdW5kKGFwcEJvdW5kVmFsdWUpOworICAgIH0KIH0KIAogYm9vbCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoRG9jdW1lbnRMb2Fk
ZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWNkZjYxNzYyZjljNjJlMjA0MzYyYzIxYzQ3ZmRm
ZTNlOTA1NzEwZC4uMzA2NjU3YjM4ZjkzMDQ2MWQyNjA4YTc0ODQ4OTg4OGNmMTdkMTRjNCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIxLTA1LTE3ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxTZW5kUmVx
dWVzdCBzb21ldGltZXMgcmVzZXRzIGFwcC1ib3VuZCB2YWx1ZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODI5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS83ODAzNDU5NT4KKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVuc2VuLgor
CisgICAgICAgIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5Lm1tOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeVBs
dWdJbi5tbTogQWRkZWQuCisgICAgICAgICgtW0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4gd2Vi
UHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6XSk6CisgICAg
ICAgICgtW0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4gd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJD
b250ZXh0Q29udHJvbGxlcjpmcmFtZTp3aWxsU2VuZFJlcXVlc3RGb3JSZXNvdXJjZTpyZXF1ZXN0
OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisKIDIwMjEtMDUtMTcgIEpvbmF0aGFuIEJlZGFyZCAgPGpi
ZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0gU3VwcG9ydCB0ZXN0aW5n
IG9uIG1hY2hpbmVzIHdpdGhvdXQgc3ZuIGluc3RhbGxlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBlOWZiN2JjNzY5MmYzMGFkNzUxNDEzODNkNTY5YjA1OWY5MGE1ODE3Li4xYmFjMDdiMTU0
YTE1ZjU4OTk4Yjk2MjFiZmIyYmU4NWI2ZmNlNDZlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMjg5LDYgKzI4OSw3IEBACiAJCTQ2RkFDRjc0MjNFODg0MjMwMEE5RUJDNiAvKiBiZWZvcmV1
bmxvYWQtc2xvdy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ2RkFDRjczMjNFODgzRUUwMEE5RUJDNiAvKiBiZWZvcmV1bmxvYWQtc2xv
dy5odG1sICovOyB9OwogCQk0OTA4QzcxMTI2MDk0RTQxMDAwQjFCMkYgLyogUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTA4QzcwRjI2MDk0RTE2MDAwQjFCMkYgLyogUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
bW0gKi87IH07CiAJCTQ5MDlFRTNBMkQwOTQ4MEM4ODk4MkQ1NiAvKiBNYXJrYWJsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQzc5RjE2OEJFNDU0
RTU3OUU0MTdCMDUgLyogTWFya2FibGUuY3BwICovOyB9OworCQk0OTFBRUVGODI2NTJFMzM1MDBE
NTMwQTggLyogSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUFFRUY0MjY1MkRERDAwMEQ1MzBBOCAvKiBJ
bkFwcEJyb3dzZXJQcml2YWN5UGx1Z0luLm1tICovOyB9OwogCQk0OTFGM0Q1MjI2MDI3RTUzMDAw
RTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNlLmRiIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5MUYzRDRGMjYwMjdD
RkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGIgKi87IH07
CiAJCTQ5MUYzRDUzMjYwMjdFNTMwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9u
RGF0YWJhc2UuZGItc2htIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5MUYzRDUwMjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQ
cmV2ZW50aW9uRGF0YWJhc2UuZGItc2htICovOyB9OwogCQk0OTFGM0Q1NDI2MDI3RTUzMDAwRTMx
RjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNlLmRiLXdhbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTFGM0Q1MTI2MDI3
Q0ZFMDAwRTMxRjcgLyogcGNtV2l0aG91dEZyYXVkUHJldmVudGlvbkRhdGFiYXNlLmRiLXdhbCAq
LzsgfTsKQEAgLTIwOTUsNiArMjA5Niw3IEBACiAJCTQ2RkEyRkVEMjM4NDZDOUEwMDBDQ0IwQyAv
KiBIVFRQSGVhZGVyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUVFBIZWFkZXJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkZBQ0Y3
MzIzRTg4M0VFMDBBOUVCQzYgLyogYmVmb3JldW5sb2FkLXNsb3cuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgcGF0aCA9ICJiZWZvcmV1bmxvYWQtc2xvdy5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDkwOEM3MEYyNjA5NEUxNjAwMEIxQjJGIC8qIFByaXZhdGVDbGlja01l
YXN1cmVtZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
MUFFRUY0MjY1MkRERDAwMEQ1MzBBOCAvKiBJbkFwcEJyb3dzZXJQcml2YWN5UGx1Z0luLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbi5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENEYyNjAyN0NGRTAwMEUzMUY3IC8qIHBjbVdp
dGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBwY21XaXRob3V0RnJhdWRQcmV2
ZW50aW9uRGF0YWJhc2UuZGI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5MUYzRDUw
MjYwMjdDRkUwMDBFMzFGNyAvKiBwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGIt
c2htICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmls
ZTsgcGF0aCA9ICJwY21XaXRob3V0RnJhdWRQcmV2ZW50aW9uRGF0YWJhc2UuZGItc2htIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDkxRjNENTEyNjAyN0NGRTAwMEUzMUY3IC8qIHBj
bVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYi13YWwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gInBjbVdpdGhvdXRGcmF1ZFByZXZlbnRpb25EYXRhYmFzZS5kYi13YWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQzNyw2ICszNDM5LDcgQEAKIAkJCQk1MTEwRkNFRjFF
MDFDQkFBMDA2RjhEMEIgLyogSURCSW5kZXhVcGdyYWRlVG9WMi5tbSAqLywKIAkJCQk5M0JDQkM4
MDIzQ0M2RUU4MDBDQTIyMjEgLyogSURCT2JqZWN0U3RvcmVJbmZvVXBncmFkZVRvVjIubW0gKi8s
CiAJCQkJNDlBRUVGNkIyNDA3MzU4NjAwQzg3RTRDIC8qIEluQXBwQnJvd3NlclByaXZhY3kubW0g
Ki8sCisJCQkJNDkxQUVFRjQyNjUyREREMDAwRDUzMEE4IC8qIEluQXBwQnJvd3NlclByaXZhY3lQ
bHVnSW4ubW0gKi8sCiAJCQkJNTFBNTg3ODQxRDI3MkVGMzAwNEJBOUFGIC8qIEluZGV4ZWREQkRh
dGFiYXNlUHJvY2Vzc0tpbGwubW0gKi8sCiAJCQkJQ0FCMEZGNTQyMjMzMkMzQTAwNkNBNUIwIC8q
IEluZGV4ZWREQkZpbGVOYW1lLm1tICovLAogCQkJCTkzOTlCQTAxMjM3MTEwQUUwMDgzOTJCRiAv
KiBJbmRleGVkREJJblBhZ2VDYWNoZS5tbSAqLywKQEAgLTU5MTcsNiArNTkyMCw3IEBACiAJCQkJ
RjRCMDE2ODQyNUFFMDhGODAwRTQ0NUM0IC8qIERpc2FibGVTcGVsbGNoZWNrUGx1Z0luLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJNTE4RUU1MTkyMEE3OENFNTAwRTAyNEYzIC8qIERvdWJsZURlZmVy
c0xvYWRpbmdQbHVnaW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1Q0I1QjNDMjFGRkM1NUNGMDBD
MjdCQjAgLyogRnJhbWVIYW5kbGVTZXJpYWxpemF0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDkxQUVFRjgyNjUyRTMzNTAwRDUzMEE4IC8qIEluQXBwQnJvd3NlclByaXZhY3lQbHVnSW4ubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGNDYwRjY1QjI2MTExOTU4MDA2NEYyQjYgLyogSW5qZWN0ZWRC
dW5kbGVIaXRUZXN0UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEU0MDRBOEMyMTY2REUw
QTAwODI3MUJBIC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZUlzU2VsZWN0RWxlbWVudC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTc5QzVENDMxMjA5RDc2ODMwMEYxRTdDQSAvKiBJbmplY3RlZEJ1
bmRsZU5vZGVIYW5kbGVJc1RleHRGaWVsZC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQcml2YWN5
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9JbkFwcEJyb3dzZXJQ
cml2YWN5Lm1tCmluZGV4IGRlZGIwNTFjNTE3ZWJkOTYyMWM0MTRmYmExNTQ2OTliN2UwY2EwYmQu
LjM4ZDJlZTM1MWFlMTg4YjhiZWY5NzM4MDAxNThiYzEwNWRjMDFkYjggMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBCcm93c2VyUHJpdmFjeS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3Nl
clByaXZhY3kubW0KQEAgLTE4MzgsNCArMTgzOCw0MyBAQCBURVNUKEluQXBwQnJvd3NlclByaXZh
Y3ksIE5vbkFwcEJvdW5kUmVxdWVzdFdpdGhTZXJ2aWNlV29ya2VyU29mdFVwZGF0ZSkKIHsKICAg
ICBzb2Z0VXBkYXRlVGVzdChJc0FwcEJvdW5kOjpObyk7CiB9CisKK3N0YXRpYyB2b2lkIHJ1bldl
YlByb2Nlc3NQbHVnSW5UZXN0KElzQXBwQm91bmQgaXNBcHBCb3VuZCkKK3sKKyAgICBXS1dlYlZp
ZXdDb25maWd1cmF0aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
X3Rlc3RfY29uZmlndXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiSW5BcHBCcm93c2Vy
UHJpdmFjeVBsdWdJbiJdOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworCisgICAgTlNTdHJpbmcgKnVybCA9IEAiaHR0cHM6
Ly93ZWJraXQub3JnIjsKKworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBO
U011dGFibGVVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TTXV0YWJsZVVSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07CisgICAgaWYgKGlzQXBwQm91bmQg
PT0gSXNBcHBCb3VuZDo6Tm8pIHsKKyAgICAgICAgTlNNdXRhYmxlVVJMUmVxdWVzdCAqbm9uQXBw
Qm91bmRSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICAgICAgQVBQX0JPVU5EX1JFUVVFU1RfQURESVRJ
T05TCisgICAgICAgIHJlcXVlc3QgPSBub25BcHBCb3VuZFJlcXVlc3Q7CisgICAgfQorCisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZv
ckRpZEZpbmlzaE5hdmlnYXRpb25dOworCisgICAgaXNEb25lID0gZmFsc2U7CisgICAgYm9vbCBl
eHBlY3RpbmdBcHBCb3VuZFJlcXVlc3RzID0gaXNBcHBCb3VuZCA9PSBJc0FwcEJvdW5kOjpZZXMg
PyB0cnVlIDogZmFsc2U7CisgICAgW3dlYlZpZXcgX2FwcEJvdW5kTmF2aWdhdGlvbkRhdGE6Xihz
dHJ1Y3QgV0tBcHBCb3VuZE5hdmlnYXRpb25UZXN0aW5nRGF0YSBkYXRhKSB7CisgICAgICAgIEVY
UEVDVF9FUShkYXRhLmhhc0xvYWRlZEFwcEJvdW5kUmVxdWVzdFRlc3RpbmcsIGV4cGVjdGluZ0Fw
cEJvdW5kUmVxdWVzdHMpOworICAgICAgICBFWFBFQ1RfRVEoZGF0YS5oYXNMb2FkZWROb25BcHBC
b3VuZFJlcXVlc3RUZXN0aW5nLCAhZXhwZWN0aW5nQXBwQm91bmRSZXF1ZXN0cyk7CisgICAgICAg
IGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmlzRG9uZSk7Cit9CisKK1RFU1QoSW5BcHBCcm93c2VyUHJpdmFjeSwgV2ViUHJvY2Vzc1BsdWdp
blRlc3RBcHBCb3VuZCkKK3sKKyAgICBydW5XZWJQcm9jZXNzUGx1Z0luVGVzdChJc0FwcEJvdW5k
OjpZZXMpOworfQorCitURVNUKEluQXBwQnJvd3NlclByaXZhY3ksIFdlYlByb2Nlc3NQbHVnaW5U
ZXN0Tm9uQXBwQm91bmQpCit7CisgICAgcnVuV2ViUHJvY2Vzc1BsdWdJblRlc3QoSXNBcHBCb3Vu
ZDo6Tm8pOworfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4ubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0luQXBwQnJvd3NlclByaXZhY3lQbHVnSW4ubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODE2YzE1ZjQyYzRmNzE1ODVhZDM5NjdlYjk4MjJiODM2MDI4MzgxOAotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvSW5BcHBC
cm93c2VyUHJpdmFjeVBsdWdJbi5tbQpAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9j
ZXNzUGx1Z0luTG9hZERlbGVnYXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0Bp
bnRlcmZhY2UgSW5BcHBCcm93c2VyUHJpdmFjeVBsdWdJbiA6IE5TT2JqZWN0IDxXS1dlYlByb2Nl
c3NQbHVnSW4sIFdLV2ViUHJvY2Vzc1BsdWdJbkxvYWREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIEluQXBwQnJvd3NlclByaXZhY3lQbHVnSW4geyB9CisKKy0gKE5TVVJMUmVxdWVz
dCAqKXdlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgZnJhbWU6KFdLV2Vi
UHJvY2Vzc1BsdWdJbkZyYW1lICopZnJhbWUgd2lsbFNlbmRSZXF1ZXN0Rm9yUmVzb3VyY2U6KHVp
bnQ2NF90KXJlc291cmNlIHJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKXJlcXVlc3QgcmVkaXJlY3RS
ZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKK3sKKyAgICByZXR1cm4g
YWRvcHROUyhbW05TVVJMUmVxdWVzdCBhbGxvY10gaW5pdFdpdGhVUkw6cmVxdWVzdC5VUkxdKS5h
dXRvcmVsZWFzZSgpOworfQorCitAZW5kCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>