<?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>215388</bug_id>
          
          <creation_ts>2020-08-11 12:50:26 -0700</creation_ts>
          <short_desc>Add a &quot;use stored credentials&quot; setting to WKWebView</short_desc>
          <delta_ts>2022-05-04 13:45:54 -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 API</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>runspired</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1679511</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 12:50:26 -0700</bug_when>
    <thetext>Add a &quot;use stored credentials&quot; setting to WKWebView

&lt;rdar://problem/63308019&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679518</commentid>
    <comment_count>1</comment_count>
      <attachid>406407</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 13:02:20 -0700</bug_when>
    <thetext>Created attachment 406407
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679521</commentid>
    <comment_count>2</comment_count>
      <attachid>406408</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 13:08:18 -0700</bug_when>
    <thetext>Created attachment 406408
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679532</commentid>
    <comment_count>3</comment_count>
      <attachid>406408</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-08-11 13:28:48 -0700</bug_when>
    <thetext>Comment on attachment 406408
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:355
&gt; +@property (nonatomic, setter=_setCanUseCredentialStorage:) BOOL _canUseCredentialStorage WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

If this is intended to be constant, could we put it on WKWebViewConfiguration?  Otherwise, could we put it on WKPreferences?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679534</commentid>
    <comment_count>4</comment_count>
      <attachid>406408</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-08-11 13:30:58 -0700</bug_when>
    <thetext>Comment on attachment 406408
Patch

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

r=me

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:102
&gt; +    // The preconnect to the server will use the default setting of &quot;use the credential store&quot;,
&gt; +    // and therefore use the credential-store-blessed NSURLSession.
&gt; +    [webView _preconnectToServer:server.request().URL];
&gt; +    Util::run(&amp;anyConnections);
&gt; +    Util::spinRunLoop(10);
&gt; +    EXPECT_FALSE(requested);
&gt; +
&gt; +    // Then this request will *not* use the credential store, therefore using a different NSURLSession
&gt; +    // that doesn&apos;t know about the above preconnect, triggering a second connection to the server.
&gt; +    webView.get()._canUseCredentialStorage = NO;
&gt; +    [webView loadRequest:server.request()];
&gt; +    Util::run(&amp;requested);

This test is a little upside-down because it verifies that the *unwanted* behavior is still possible, rather than verifying that the *wanted* behavior works as expected. Can you add a test that sets _canUseCredentialStorage up front and verifies that only one connection is made if you reconnect and then connect?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679535</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-08-11 13:33:14 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:355
&gt; &gt; +@property (nonatomic, setter=_setCanUseCredentialStorage:) BOOL _canUseCredentialStorage WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; If this is intended to be constant, could we put it on
&gt; WKWebViewConfiguration?  Otherwise, could we put it on WKPreferences?

In Safari&apos;s current behavior, this setting ends up being toggled. So, it would need to be WKPreferences. (Or maybe _WKWebsitePolicies? _WKWebsitePolicies is actually kind of a good fit -- better than the toggle because you&apos;d get an internally consistent behavior throughout a page load automatically. But perhaps that&apos;s too much of a risk of a change in behavior.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679543</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 14:00:01 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #4)
&gt; Comment on attachment 406408 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406408&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/Preconnect.mm:102
&gt; &gt; +    // The preconnect to the server will use the default setting of &quot;use the credential store&quot;,
&gt; &gt; +    // and therefore use the credential-store-blessed NSURLSession.
&gt; &gt; +    [webView _preconnectToServer:server.request().URL];
&gt; &gt; +    Util::run(&amp;anyConnections);
&gt; &gt; +    Util::spinRunLoop(10);
&gt; &gt; +    EXPECT_FALSE(requested);
&gt; &gt; +
&gt; &gt; +    // Then this request will *not* use the credential store, therefore using a different NSURLSession
&gt; &gt; +    // that doesn&apos;t know about the above preconnect, triggering a second connection to the server.
&gt; &gt; +    webView.get()._canUseCredentialStorage = NO;
&gt; &gt; +    [webView loadRequest:server.request()];
&gt; &gt; +    Util::run(&amp;requested);
&gt; 
&gt; This test is a little upside-down because it verifies that the *unwanted*
&gt; behavior is still possible, rather than verifying that the *wanted* behavior
&gt; works as expected. Can you add a test that sets _canUseCredentialStorage up
&gt; front and verifies that only one connection is made if you reconnect and
&gt; then connect?

That&apos;s actually what the test right above it does (with my augmentation), covering the default behavior.

Testing this is a struggle because of how Safari gets into the mess.

I think verifying both the wanted *and* unwanted behavior is the best we can do from a WebKit perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679544</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 14:00:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 406408 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406408&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:355
&gt; &gt; +@property (nonatomic, setter=_setCanUseCredentialStorage:) BOOL _canUseCredentialStorage WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));
&gt; 
&gt; If this is intended to be constant, could we put it on
&gt; WKWebViewConfiguration?  Otherwise, could we put it on WKPreferences?

It&apos;s definitely not constant.

And it&apos;s definitely meant to be per-WebView, so the possibility of sharing a prefs objective makes that a no-go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679556</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-11 14:18:38 -0700</bug_when>
    <thetext>commit-queue failed to commit attachment 406408 to WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679570</commentid>
    <comment_count>9</comment_count>
      <attachid>406419</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-08-11 14:40:05 -0700</bug_when>
    <thetext>Created attachment 406419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679598</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-11 15:20:22 -0700</bug_when>
    <thetext>Committed r265525: &lt;https://trac.webkit.org/changeset/265525&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406419.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866580</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Thoburn">runspired</who>
    <bug_when>2022-05-04 13:45:54 -0700</bug_when>
    <thetext>A lot of folks bump into issues with password autofill/saving (see for instance https://developer.apple.com/forums/thread/654338), especially when building an app using cordova or capacitor.

I was going to open a new ticket; however, this ticket suggests a setting exists that can make wkWebView work &quot;as expected&quot; in these scenarios. Reading the attached commit I haven&apos;t been able to figure out how to configure the xcodeproject; is this something capacitor (for instance) would need to do directly on the webview?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406407</attachid>
            <date>2020-08-11 13:02:20 -0700</date>
            <delta_ts>2020-08-11 13:08:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215388-20200811130219.patch</filename>
            <type>text/plain</type>
            <size>18551</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MzA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjBmYjY0MDVlMjdlYzg1
ZTg1OGRhMTAwYzI2ZWEyMDk2MjA2NjYyNC4uYmFiM2IyYjAzNGVlNGIwZmZjYzJkMWU3MDY2Y2Mw
NTc0ZGVmNjI2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA4LTExICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSAidXNlIHN0b3Jl
ZCBjcmVkZW50aWFscyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MzMwODAxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTUzODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IFByZWNvbm5lY3QgQVBJIHRlc3RzLgorICAgICAgICAKKyAgICAgICAgVGhp
cyBzZXR0aW5nIGlzIHRvIGFsbG93IGFwcHMgdG8gZXhwbGljaXRseSBkZW55IHVzaW5nIHRoZSBj
cmVkZW50aWFsIHN0b3JhZ2UKKyAgICAgICAgZm9yIG5ldHdvcmsgb3BlcmF0aW9ucy4gKGUuZy4g
dG8gbWFrZSBzdXJlIHRoZSBLZXljaGFpbiBVSSBkb2Vzbid0IHBvcCB1cAorICAgICAgICBmb3Ig
YW4gb2Zmc2NyZWVuIGxvYWQpCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlKToKKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgY29uc3QpOgorCiAyMDIwLTA4LTA1ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNvbnN0cnVjdG9yIHRvIENvbnZv
bHZlck5vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggNmVmNzU2NjU5ZDM4NzU0ZWRkYzQzMWZmMDdlMjhkYjIzMzdj
YmRjNC4uYmM0MGY4ZGUxZTgwOWQ3Mjc3ZTczY2JjNzJkMTgwYzk1OTQzMzQ2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzOSBAQAorMjAyMC0wOC0xMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgQWRkIGEgInVzZSBzdG9yZWQgY3JlZGVudGlhbHMiIHNldHRpbmcg
dG8gV0tXZWJWaWV3LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjMzMDgwMTk+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1Mzg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVjb25u
ZWN0VG8pOgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Nl
dENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJlY29ubmVjdFRvKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9h
ZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbGlt
aXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIwLTA4LTA1ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQ29jb2FdIFNhbmRib3ggZXh0ZW5zaW9uIHRva2VuIG5vdCBjbGVh
cmVkIGZyb20gbWVtb3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApp
bmRleCBlN2FkNjA5NDIzZmQ2MTRjZDU3Y2JlODlmMGRkNTBlY2ZiYmQ5NGIxLi4yYTNlMzVlYTNi
YzY2MDhiMDZhODQ5NDZlNTljZmYwNjQ0NTZjZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc0MSw2ICs3NDEsMTEgQEAgYm9vbCBSZXNvdXJjZUxvYWRl
cjo6c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKQogICAgIGlmIChtX29wdGlvbnMuc3RvcmVk
Q3JlZGVudGlhbHNQb2xpY3kgIT0gU3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkp
IHsKKyAgICAgICAgaWYgKCFwYWdlLT5jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwogICAgIFJlZjxSZXNvdXJjZUxvYWRlcj4gcHJv
dGVjdGVkVGhpcygqdGhpcyk7CiAgICAgcmV0dXJuIGZyYW1lTG9hZGVyKCktPmNsaWVudCgpLnNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKGRvY3VtZW50TG9hZGVyKCksIGlkZW50aWZpZXIoKSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDdiYzQwZDE0NjQwOTk4OWJlM2UyNGRkNzJhN2ExNDdmOWY4
MmVjNTguLjc0NjhjNzYwZTRiZjEwZTc3MmNhODI5ZGQ2ZTc0NzUzNDgyYjQ3YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC02NTcsNiArNjU3LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50KGJvb2wgaGFzKSB7IG1faGFzUmVzb3VyY2VMb2FkQ2xpZW50ID0gaGFzOyB9
CiAgICAgYm9vbCBoYXNSZXNvdXJjZUxvYWRDbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2hhc1Jl
c291cmNlTG9hZENsaWVudDsgfQogCisgICAgdm9pZCBzZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFn
ZShib29sIGNhblVzZSkgeyBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlID0gY2FuVXNlOyB9Cisg
ICAgYm9vbCBjYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FuVXNl
Q3JlZGVudGlhbFN0b3JhZ2U7IH0KKwogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaGFuZGxlTWVkaWFFdmVudChNZWRpYUV2ZW50VHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWb2x1bWVPZk1lZGlhRWxlbWVudChkb3VibGUsIHVpbnQ2
NF90KTsKQEAgLTEwNjgsNiArMTA3MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Nob3VsZEZp
cmVFdmVudHMgeyB0cnVlIH07CiAgICAgYm9vbCBtX2xvYWRzU3VicmVzb3VyY2VzIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9sb2Fkc0Zyb21OZXR3b3JrIHsgdHJ1ZSB9OworICAgIGJvb2wgbV9jYW5V
c2VDcmVkZW50aWFsU3RvcmFnZSB7IHRydWUgfTsKICAgICBTaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZyBtX3Nob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgU2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAgICAgYm9vbCBtX2hhc0Jl
ZW5Ob3RpZmllZFRvSW5qZWN0VXNlclNjcmlwdHMgeyBmYWxzZSB9OwogICAgIFZlY3RvcjxzdGQ6
OnBhaXI8UmVmPERPTVdyYXBwZXJXb3JsZD4sIFVuaXF1ZVJlZjxVc2VyU2NyaXB0Pj4+IG1fdXNl
clNjcmlwdHNBd2FpdGluZ05vdGlmaWNhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggNzkwODU3ZDU3NmIxNTQ0ZjMyYzMwMDVj
OGUzNzlhZTk4M2QzM2JhZS4uYWIzYjQ3YWQxMjBhY2U1ZjQ0NmE0NDVmMmVhZjM2MGRkYjRjOGFj
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5j
cHAKQEAgLTEzOTgsNiArMTM5OCw4IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFkQ2xpY2tB
dHRyaWJ1dGlvbkRlYnVnTW9kZShib29sIGRlYnVnTW9kZSkKIAogdm9pZCBOZXR3b3JrUHJvY2Vz
czo6cHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViUGFnZVByb3h5SWRl
bnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlE
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdlYkNvcmU6OlN0b3Jl
ZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBPcHRpb25hbDxOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikKIHsK
KyAgICBMT0coTmV0d29yaywgIihOZXR3b3JrUHJvY2VzcykgUHJlY29ubmVjdGluZyB0byBVUkwg
JXMgKHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ICVpKSIsIHVybC5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCAoaW50KXN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogI2lmIEVOQUJMRShTRVJWRVJf
UFJFQ09OTkVDVCkKICNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKQog
ICAgIGlmIChzdXBwbGVtZW50PExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlcj4oKS0+c3VwcG9y
dHNTY2hlbWUodXJsLnByb3RvY29sKCkudG9TdHJpbmcoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGEzYjYxNTZlMWVi
MjA2OTViMTgxYjJhYWI2NDQwNDA4YWNlNjVmOGUuLjA3ODQyYWUyNWU3NzhiYWYxZTg5MDIyYjg5
OWNlN2NjYjY2ZjdkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC0xNTcsNiArMTU3LDcgQEAgdm9pZCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbmVlZHNJbkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzOwogICAgIGVuY29kZXIg
PDwgbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluczsKICAgICBlbmNvZGVyIDw8IHNo
b3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOworICAgIGVuY29kZXIgPDwgY2FuVXNl
Q3JlZGVudGlhbFN0b3JhZ2U7CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgZW5jb2RlciA8PCB0
aGVtZU5hbWU7CkBAIC01MDMsNyArNTA0LDEwIEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAg
ICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFJlbGF4VGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5Vc2VDcmVkZW50aWFsU3Rv
cmFnZSkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKICNpZiBQTEFURk9STShHVEsp
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnRoZW1lTmFtZSkpCiAgICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggNjY2YjU5NGU1NDY5NmYzMjI2NWFlMjAwODNhMTRj
OGIxN2YyMTViZC4uNDU5Zjc2ZGZlYzgxZWZiNGNjZDAwZjZmNmJhZGU1ZDY2NmRlNGYzNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApA
QCAtMjI5LDYgKzIyOSw4IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBib29sIHNob3VsZEVuYWJsZVZQOURlY29kZXIgeyBmYWxzZSB9OwogICAgIGJvb2wgbmVlZHNJ
bkFwcEJyb3dzZXJQcml2YWN5UXVpcmtzIHsgZmFsc2UgfTsKICAgICBib29sIGxpbWl0c05hdmln
YXRpb25zVG9BcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9OworICAgIGJvb2wgY2FuVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UgeyB0cnVlIH07CisKICAgICBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFy
dHlDb29raWVCbG9ja2luZyBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyB7IFdl
YkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9OwogCiAjaWYg
UExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggZTdiNjliN2NkZDdkNWU3ZDhmYjExN2VlOTJiNTllNWE1YTJhNjdjNi4u
YjFkNDEyNDFiNTliODFkNDlhZDYzNmUxMzUzNmZmN2JiNTQ3ODM4NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNjc0LDYgKzI2NzQs
MTYgQEAgLSAodm9pZClfcHJlY29ubmVjdFRvU2VydmVyOihOU1VSTCAqKXVybAogICAgIF9wYWdl
LT5wcmVjb25uZWN0VG8odXJsKTsKIH0KIAorLSAoQk9PTClfY2FuVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UKK3sKKyAgICByZXR1cm4gX3BhZ2UtPmNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKCk7Cit9CisK
Ky0gKHZvaWQpX3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOihCT09MKWNhblVzZUNyZWRlbnRp
YWxTdG9yYWdlCit7CisgICAgX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGNhblVz
ZUNyZWRlbnRpYWxTdG9yYWdlKTsKK30KKwogLSAoaWQgPF9XS0lucHV0RGVsZWdhdGU+KV9pbnB1
dERlbGVnYXRlCiB7CiAgICAgcmV0dXJuIF9pbnB1dERlbGVnYXRlLmdldEF1dG9yZWxlYXNlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKaW5kZXggYzdiM2U5YzQ0NTU3Y2Y1OWEwMmU0NTkyOTNmNDA3NmQ1YTE2NmM3My4u
MDcxNGIxN2FhNzk1Nzg3NzI1YjBiZGUwYjdlY2ZhODgyMTdlZjdjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC0z
NTIsNiArMzUyLDggQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAKIC0gKHZvaWQpX3ByZWNvbm5lY3RU
b1NlcnZlcjooTlNVUkwgKilzZXJ2ZXJVUkwgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KSBCT09MIF9jYW5Vc2VDcmVkZW50aWFsU3RvcmFn
ZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwor
CiBAZW5kCiAKICNpZiBUQVJHRVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAppbmRleCAwZWQ3ZmM2NjE1MGE5MjRkMGNhYTRiMGQ5OGQ4ZTZjYzYyMDhj
YTM4Li43YjM1NjUzZjFlY2M0ZmVmMzc3M2UxYTczZjQyOGM3ZjJhYjk4NzFiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTQ0MDUsNyArNDQwNSwxNCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cHJlY29ubmVjdFRvKGNvbnN0IFVSTCYgdXJsKQogICAgIGlmICgh
bV93ZWJzaXRlRGF0YVN0b3JlLT5jb25maWd1cmF0aW9uKCkuYWxsb3dzU2VydmVyUHJlY29ubmVj
dCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuZW5z
dXJlTmV0d29ya1Byb2Nlc3MoKS5wcmVjb25uZWN0VG8oc2Vzc2lvbklEKCksIGlkZW50aWZpZXIo
KSwgd2ViUGFnZUlEKCksIHVybCwgdXNlckFnZW50KCksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzUG9saWN5OjpVc2UsIG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7CisgICAgYXV0
byBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSA9IG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPyBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3k6OkRvTm90VXNlOworICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5l
bnN1cmVOZXR3b3JrUHJvY2VzcygpLnByZWNvbm5lY3RUbyhzZXNzaW9uSUQoKSwgaWRlbnRpZmll
cigpLCB3ZWJQYWdlSUQoKSwgdXJsLCB1c2VyQWdlbnQoKSwgc3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3ksIG1faXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbik7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZShib29sIGNhblVzZUNyZWRlbnRpYWxTdG9y
YWdlKQoreworICAgIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBjYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRDYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZShjYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkRGVzdHJveU5hdmlnYXRpb24odWludDY0X3QgbmF2aWdhdGlvbklEKQpAQCAtNzg2OCw2
ICs3ODc1LDcgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQYWdlUHJveHk6OmNyZWF0
aW9uUGFyYW1ldGVycyhXZWJQcm9jZXNzUHJveHkmIHByb2MKICAgICBwYXJhbWV0ZXJzLnNob3Vs
ZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY29u
ZmlndXJhdGlvbigpLnNob3VsZENhcHR1cmVEaXNwbGF5SW5VSVByb2Nlc3MoKTsKICAgICBwYXJh
bWV0ZXJzLmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMgPSBtX2xpbWl0c05hdmln
YXRpb25zVG9BcHBCb3VuZERvbWFpbnM7CiAgICAgcGFyYW1ldGVycy5zaG91bGRSZWxheFRoaXJk
UGFydHlDb29raWVCbG9ja2luZyA9IG1fY29uZmlndXJhdGlvbi0+c2hvdWxkUmVsYXhUaGlyZFBh
cnR5Q29va2llQmxvY2tpbmcoKTsKKyAgICBwYXJhbWV0ZXJzLmNhblVzZUNyZWRlbnRpYWxTdG9y
YWdlID0gbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZTsKIAogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICBwYXJhbWV0ZXJzLnRoZW1lTmFtZSA9IHBhZ2VDbGllbnQoKS50aGVtZU5hbWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNmFjMDc1NjEwNjM5NDQzMWNkYjMw
YmNkNTNjNTQyZTUxNDk2MTkwNC4uOWE2ZTU4NjUwNTZjYTM2Nzk5ZjhjOWIyZmYxNTE3MjNmMGQ1
MjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3OTMsNiAr
MTc5Myw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcHJlY29ubmVjdFRvKGNvbnN0IFVSTCYpOwog
CisgICAgYm9vbCBjYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSgpIHsgcmV0dXJuIG1fY2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2U7IH0KKyAgICB2b2lkIHNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJv
b2wpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vz
c1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZv
cm1Jbml0aWFsaXplKCk7CkBAIC0yODUwLDYgKzI4NTMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV91c2VyU2NyaXB0c05vdGlmaWVkIHsgZmFsc2UgfTsKICAgICBib29sIG1fbGltaXRzTmF2aWdh
dGlvbnNUb0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc0V4ZWN1dGVk
QXBwQm91bmRCZWhhdmlvckJlZm9yZU5hdmlnYXRpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9j
YW5Vc2VDcmVkZW50aWFsU3RvcmFnZSB7IHRydWUgfTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBSZWY8V29ya1F1ZXVlPiBtX3RyYW5zY29kaW5nUXVldWU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcApp
bmRleCA2NGEwMTRkMDk1NmFjMDhmNWJhNmE4YmY2MzBjNmUzNzlkNzQ5OWY3Li44NjQ0ZDU5MGY2
NzZjM2Y1MDA1M2I3ODIyZjA0NzE4NThjYmIyZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJhdGVneS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCkBAIC0yOTAsMTIg
KzI5MCwxMiBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29y
a1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNlTAogICAgIFJlc291cmNlTG9hZElkZW50
aWZpZXIgaWRlbnRpZmllciA9IHJlc291cmNlTG9hZGVyLmlkZW50aWZpZXIoKTsKICAgICBBU1NF
UlQoaWRlbnRpZmllcik7CiAKLSAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2Vz
cykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hl
ZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCIsIHJlc291cmNl
TG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRhdGEoKSwgc3RhdGljX2Nhc3Q8aW50Pihy
ZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHkoKSkpOwotCiAgICAgQ29udGVudFNuaWZm
aW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNu
aWZmQ29udGVudCgpID8gQ29udGVudFNuaWZmaW5nUG9saWN5OjpTbmlmZkNvbnRlbnQgOiBDb250
ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmZDb250ZW50OwogICAgIENvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5IGNvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5ID0gcmVzb3VyY2VM
b2FkZXIuc2hvdWxkU25pZmZDb250ZW50RW5jb2RpbmcoKSA/IENvbnRlbnRFbmNvZGluZ1NuaWZm
aW5nUG9saWN5OjpTbmlmZiA6IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpEb05vdFNu
aWZmOwogICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5
ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSA/IFN0b3JlZENy
ZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7
CiAKKyAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3Ry
YXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUg
TmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCwgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kg
JWkiLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHN0YXRp
Y19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpLCAoaW50KXN0
b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogICAgIGF1dG8qIGZyYW1lID0gcmVzb3VyY2VMb2Fk
ZXIuZnJhbWUoKTsKIAogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApp
bmRleCAyNzQyZjEzZWNmMzZkNjBjY2ZkNjdhM2ZkMjE1NDc1YjAwNjRmODMyLi5hYzE0Yzc4Zjgy
ZDdmYmJjOTBiM2U4YjE5NTM5NzczYjVlMzQ0ODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzgwLDYgKzc4MCw4IEBAIFdlYlBhZ2U6Oldl
YlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKICAgICBpZiAocGFyYW1ldGVycy5zaG91bGRFbmFibGVWUDlEZWNvZGVyKQog
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbmFibGVWUDlEZWNvZGVyKCk7CiAKKyAg
ICBtX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKHBhcmFtZXRlcnMuY2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpOworCiAgICAgdXBkYXRlVGhyb3R0bGVTdGF0ZSgpOwogfQogCkBAIC0x
MjI5LDYgKzEyMzEsMTIgQEAgdm9pZCBXZWJQYWdlOjpzZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQo
Ym9vbCBoYXMpCiAgICAgICAgIG1fcGFnZS0+c2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KGhhcyk7
CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBoYXMp
Cit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9wYWdlLT5zZXRDYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZShoYXMpOworfQorCiB2b2lkIFdlYlBhZ2U6OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wg
dHJhY2tSZXBhaW50cykKIHsKICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lVmll
dygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDYx
N2U2YWYyZmQzNmNkYjg5M2MwMmMxMjIwMzNlMjg3MTViYTY0OTAuLjIzZDEyN2JmYTBjMjQ0NWQ0
YzY3NmMzMTliYmMxMjA1Mzg3M2UxMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKQEAgLTE2NDQsNiArMTY0NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBw
bGF0Zm9ybURpZFNlbGVjdEFsbCgpOwogICAgIAogICAgIHZvaWQgc2V0SGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KGJvb2wpOworICAgIHZvaWQgc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCk7
CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAgICB2b2lkIGRpZFNlbGVjdEl0ZW1Gcm9t
QWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwpAQCAtMjEz
NCw2ICsyMTM1LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1fbGltaXRzTmF2aWdhdGlv
bnNUb0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX25hdmlnYXRpb25IYXNP
Y2N1cmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgeyB0
cnVlIH07CisKICAgICBWZWN0b3I8U3RyaW5nPiBtX2NvcnNEaXNhYmxpbmdQYXR0ZXJuczsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluCmluZGV4IGE1OTVlN2Q5MjEyYjNlZGM4MjkzODlmY2RmZmY5MjQ1MmE1OGQ4MGUu
LmRmNGE2YWI1YWJjZTg4OTY4N2FlYmVlYzFiYzVkNDIzZTg4MjY2ZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAt
NjA5LDQgKzYwOSw1IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50
OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgU2V0TmVlZHNET01X
aW5kb3dSZXNpemVFdmVudCgpCiAKICAgICBTZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBo
YXMpCisgICAgU2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBjYW5Vc2UpCiB9CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2Y5YmNjM2I3
YzJjZTllYzIyYzU2MTUyNDIyMTY3ZTBhZmZjZjJlNi4uZjkzZmM4Y2RkZmQ0NTYyZTk3MjM5NTAy
MzgxZTI4MjBkNTRmOWZmZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA4LTExICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSAidXNlIHN0b3JlZCBjcmVkZW50aWFs
cyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzMwODAx
OT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUzODgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlY29ubmVjdC5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIwLTA4LTA1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFw
cGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6IFJldHVybiB3b3JrZXIgc3Rh
dHVzIHRvIGNhbGxlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9QcmVjb25uZWN0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9QcmVjb25uZWN0Lm1tCmluZGV4IGQ1NDEyNmQxYjlkNTMwYTMyOWMzMjlkYmEyMDMwYjg1
MzU3MGM2YjcuLmZhYTJjMjJmNTc2YzczMDgyY2JiZjk2M2IxNmM1NTA2NWZlM2I1NzUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlY29ubmVjdC5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWNvbm5lY3Qu
bW0KQEAgLTUzLDkgKzUzLDExIEBAIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChQ
cmVjb25uZWN0LCBIVFRQKQogeworICAgIHNpemVfdCBjb25uZWN0aW9uQ291bnQgPSAwOwogICAg
IGJvb2wgY29ubmVjdGVkID0gZmFsc2U7CiAgICAgYm9vbCByZXF1ZXN0ZWQgPSBmYWxzZTsKICAg
ICBIVFRQU2VydmVyIHNlcnZlcihbJl0gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgeworICAgICAg
ICArK2Nvbm5lY3Rpb25Db3VudDsKICAgICAgICAgY29ubmVjdGVkID0gdHJ1ZTsKICAgICAgICAg
Y29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWyZdKFZlY3RvcjxjaGFyPiYmKSB7CiAgICAg
ICAgICAgICByZXF1ZXN0ZWQgPSB0cnVlOwpAQCAtNjgsNiArNzAsMzggQEAgVEVTVChQcmVjb25u
ZWN0LCBIVFRQKQogICAgIEVYUEVDVF9GQUxTRShyZXF1ZXN0ZWQpOwogICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnNlcnZlci5yZXF1ZXN0KCldOwogICAgIFV0aWw6OnJ1bigmcmVxdWVzdGVkKTsK
KworICAgIEVYUEVDVF9FUShjb25uZWN0aW9uQ291bnQsIDF1KTsKK30KKworVEVTVChQcmVjb25u
ZWN0LCBDb25uZWN0aW9uQ291bnQpCit7CisgICAgc2l6ZV90IGNvbm5lY3Rpb25Db3VudCA9IDA7
CisgICAgYm9vbCBhbnlDb25uZWN0aW9ucyA9IGZhbHNlOworICAgIGJvb2wgcmVxdWVzdGVkID0g
ZmFsc2U7CisgICAgSFRUUFNlcnZlciBzZXJ2ZXIoWyZdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24p
IHsKKyAgICAgICAgKytjb25uZWN0aW9uQ291bnQ7CisgICAgICAgIGFueUNvbm5lY3Rpb25zID0g
dHJ1ZTsKKyAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWyZdKFZlY3Rvcjxj
aGFyPiYmKSB7CisgICAgICAgICAgICByZXF1ZXN0ZWQgPSB0cnVlOworICAgICAgICB9KTsKKyAg
ICB9KTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisKKyAg
ICAvLyBUaGUgcHJlY29ubmVjdCB0byB0aGUgc2VydmVyIHdpbGwgdXNlIHRoZSBkZWZhdWx0IHNl
dHRpbmcgb2YgInVzZSB0aGUgY3JlZGVudGlhbCBzdG9yZSIsCisgICAgLy8gYW5kIHRoZXJlZm9y
ZSB1c2UgdGhlIGNyZWRlbnRpYWwtc3RvcmUtYmxlc3NlZCBOU1VSTFNlc3Npb24uCisgICAgW3dl
YlZpZXcgX3ByZWNvbm5lY3RUb1NlcnZlcjpzZXJ2ZXIucmVxdWVzdCgpLlVSTF07CisgICAgVXRp
bDo6cnVuKCZhbnlDb25uZWN0aW9ucyk7CisgICAgVXRpbDo6c3BpblJ1bkxvb3AoMTApOworICAg
IEVYUEVDVF9GQUxTRShyZXF1ZXN0ZWQpOworCisgICAgLy8gVGhlbiB0aGlzIHJlcXVlc3Qgd2ls
bCAqbm90KiB1c2UgdGhlIGNyZWRlbnRpYWwgc3RvcmUsIHRoZXJlZm9yZSB1c2luZyBhIGRpZmZl
cmVudCBOU1VSTFNlc3Npb24KKyAgICAvLyB0aGF0IGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgYWJv
dmUgcHJlY29ubmVjdCwgdHJpZ2dlcmluZyBhIHNlY29uZCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2
ZXIuCisgICAgd2ViVmlldy5nZXQoKS5fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBOTzsKKyAg
ICBbd2ViVmlldyBsb2FkUmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4o
JnJlcXVlc3RlZCk7CisKKyAgICBFWFBFQ1RfRVEoY29ubmVjdGlvbkNvdW50LCAydSk7CiB9CiAK
IC8vIE1vamF2ZSBDRk5ldHdvcmsgX3ByZWNvbm5lY3QgU1BJIHNlZW1zIHRvIGhhdmUgYSBidWcg
Y2F1c2luZyB0aGlzIHRvIHRpbWUgb3V0Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406408</attachid>
            <date>2020-08-11 13:08:18 -0700</date>
            <delta_ts>2020-08-11 14:40:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215388-20200811130817.patch</filename>
            <type>text/plain</type>
            <size>18492</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQ3YzgwZGMxOGI3YjRl
M2UyNGIyOWJmN2NjMDg1YmVjNDQ3YmI4Mi4uMWZhMjczOWFhMWEwYzE0NTRmZWU5NGE4MTVkY2Zk
NDgzYWViOTNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA4LTExICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSAidXNlIHN0b3Jl
ZCBjcmVkZW50aWFscyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MzMwODAxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTUzODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IFByZWNvbm5lY3QgQVBJIHRlc3RzLgorICAgICAgICAKKyAgICAgICAgVGhp
cyBzZXR0aW5nIGlzIHRvIGFsbG93IGFwcHMgdG8gZXhwbGljaXRseSBkZW55IHVzaW5nIHRoZSBj
cmVkZW50aWFsIHN0b3JhZ2UKKyAgICAgICAgZm9yIG5ldHdvcmsgb3BlcmF0aW9ucy4gKGUuZy4g
dG8gbWFrZSBzdXJlIHRoZSBLZXljaGFpbiBVSSBkb2Vzbid0IHBvcCB1cAorICAgICAgICBmb3Ig
YW4gb2Zmc2NyZWVuIGxvYWQpCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNyZWRlbnRpYWxT
dG9yYWdlKToKKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgY29uc3QpOgorCiAyMDIwLTA4LTExICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZlcnJlZCBXS1VzZXJTY3Jp
cHRzIGFyZSBleHBvbmVudGlhbGx5IGluamVjdGVkIG9uIHByZWxvYWRlZCBwYWdlcyB3aXRoIGZy
YW1lcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKaW5kZXggOWI3OTMwZWNjMzQxZmNiZWMwNTYwNDMzYzlkYmViZTg4MTY5N2Qy
ZC4uOGYzNGNiOTJiNzVlYzJkNGEyZTY5MjRhY2UzMTQ2MjM3ZDY1NzU1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAyMC0wOC0xMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIGEgInVzZSBzdG9yZWQgY3JlZGVudGlhbHMiIHNldHRpbmcgdG8g
V0tXZWJWaWV3LgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjMzMDgwMTk+IGFuZCBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE1Mzg4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpwcmVjb25uZWN0
VG8pOgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldENh
blVzZUNyZWRlbnRpYWxTdG9yYWdlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cHJlY29ubmVjdFRvKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTG9hZGVy
U3RyYXRlZ3k6OnNjaGVkdWxlTG9hZEZyb21OZXR3b3JrUHJvY2Vzcyk6CisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fbGltaXRz
TmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6
OnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDIwLTA4LTExICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1N0cmVhbWVyXSBnc3QtZnVsbCBzdGFuZGFsb25lIGxpYnJhcnkg
c3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTdh
ZDYwOTQyM2ZkNjE0Y2Q1N2NiZTg5ZjBkZDUwZWNmYmJkOTRiMS4uMmEzZTM1ZWEzYmM2NjA4YjA2
YTg0OTQ2ZTU5Y2ZmMDY0NDU2Y2VmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC03NDEsNiArNzQxLDExIEBAIGJvb2wgUmVzb3VyY2VMb2FkZXI6OnNob3Vs
ZFVzZUNyZWRlbnRpYWxTdG9yYWdlKCkKICAgICBpZiAobV9vcHRpb25zLnN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ICE9IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAorICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CisgICAg
ICAgIGlmICghcGFnZS0+Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICB9CisKICAgICBSZWY8UmVzb3VyY2VMb2FkZXI+IHByb3RlY3RlZFRo
aXMoKnRoaXMpOwogICAgIHJldHVybiBmcmFtZUxvYWRlcigpLT5jbGllbnQoKS5zaG91bGRVc2VD
cmVkZW50aWFsU3RvcmFnZShkb2N1bWVudExvYWRlcigpLCBpZGVudGlmaWVyKCkpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAppbmRleCBjODEyMDFkMDVmMGRiMjA1NGFhNjg3ZWI0ZWE4MjJkZDgxNGEwMjUxLi43
NGViOTAwM2VjMzgxMWM5OGQ2YmQ4M2M0NTQxZTEwYjM0NjRhNTM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApA
QCAtNjU3LDYgKzY1Nyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEhhc1Jlc291cmNlTG9hZENs
aWVudChib29sIGhhcykgeyBtX2hhc1Jlc291cmNlTG9hZENsaWVudCA9IGhhczsgfQogICAgIGJv
b2wgaGFzUmVzb3VyY2VMb2FkQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9oYXNSZXNvdXJjZUxv
YWRDbGllbnQ7IH0KIAorICAgIHZvaWQgc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBj
YW5Vc2UpIHsgbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSA9IGNhblVzZTsgfQorICAgIGJvb2wg
Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSBjb25zdCB7IHJldHVybiBtX2NhblVzZUNyZWRlbnRp
YWxTdG9yYWdlOyB9CisKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGhhbmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5cGUpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0Vm9sdW1lT2ZNZWRpYUVsZW1lbnQoZG91YmxlLCB1aW50NjRfdCk7CkBA
IC0xMDY3LDYgKzEwNzAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zaG91bGRGaXJlRXZlbnRz
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9sb2Fkc1N1YnJlc291cmNlcyB7IHRydWUgfTsKICAgICBi
b29sIG1fbG9hZHNGcm9tTmV0d29yayB7IHRydWUgfTsKKyAgICBib29sIG1fY2FuVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UgeyB0cnVlIH07CiAgICAgU2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmcgbV9zaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyB7IFNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9OwogICAgIGJvb2wgbV9oYXNCZWVuTm90aWZp
ZWRUb0luamVjdFVzZXJTY3JpcHRzIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmluZGV4IGY2Yjg2MGU3OWIzYTZmNzU0
YWUxYWRjNDMyZTE1NGU5ZGZjOGYyMjEuLjAyOGUwZmJiOWUxOTQ4YjBlMDg5ZjRhZGQzYjBhNzA1
MGM2ZWQxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1By
b2Nlc3MuY3BwCkBAIC0xNDE1LDYgKzE0MTUsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRB
ZENsaWNrQXR0cmlidXRpb25EZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpCiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdl
YlBhZ2VJRCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXZWJDb3Jl
OjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgT3B0aW9u
YWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21h
aW4pCiB7CisgICAgTE9HKE5ldHdvcmssICIoTmV0d29ya1Byb2Nlc3MpIFByZWNvbm5lY3Rpbmcg
dG8gVVJMICVzIChzdG9yZWRDcmVkZW50aWFsc1BvbGljeSAlaSkiLCB1cmwuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgKGludClzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisKICNpZiBFTkFCTEUo
U0VSVkVSX1BSRUNPTk5FQ1QpCiAjaWYgRU5BQkxFKExFR0FDWV9DVVNUT01fUFJPVE9DT0xfTUFO
QUdFUikKICAgICBpZiAoc3VwcGxlbWVudDxMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXI+KCkt
PnN1cHBvcnRzU2NoZW1lKHVybC5wcm90b2NvbCgpLnRvU3RyaW5nKCkpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBhM2I2
MTU2ZTFlYjIwNjk1YjE4MWIyYWFiNjQ0MDQwOGFjZTY1ZjhlLi4wNzg0MmFlMjVlNzc4YmFmMWU4
OTAyMmI4OTljZTdjY2I2NmY3ZDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTU3LDYgKzE1Nyw3IEBAIHZvaWQgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrczsKICAgICBl
bmNvZGVyIDw8IGxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnM7CiAgICAgZW5jb2Rl
ciA8PCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzsKKyAgICBlbmNvZGVyIDw8
IGNhblVzZUNyZWRlbnRpYWxTdG9yYWdlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIGVuY29k
ZXIgPDwgdGhlbWVOYW1lOwpAQCAtNTAzLDcgKzUwNCwxMCBAQCBPcHRpb25hbDxXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpE
ZWNvZAogICAgIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5zaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVCbG9ja2luZykpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
Ci0gICAgCisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2FuVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy50aGVtZU5hbWUpKQog
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IDY2NmI1OTRlNTQ2OTZmMzIyNjVhZTIw
MDgzYTE0YzhiMTdmMjE1YmQuLjQ1OWY3NmRmZWM4MWVmYjRjY2QwMGY2ZjZiYWRlNWQ2NjZkZTRm
MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKQEAgLTIyOSw2ICsyMjksOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyB7CiAgICAgYm9vbCBzaG91bGRFbmFibGVWUDlEZWNvZGVyIHsgZmFsc2UgfTsKICAgICBib29s
IG5lZWRzSW5BcHBCcm93c2VyUHJpdmFjeVF1aXJrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBsaW1p
dHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKKyAgICBib29sIGNhblVz
ZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9OworCiAgICAgV2ViQ29yZTo6U2hvdWxkUmVsYXhU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmcgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tp
bmcgeyBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsK
IAogI2lmIFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IGU3YjY5YjdjZGQ3ZDVlN2Q4ZmIxMTdlZTkyYjU5ZTVhNWEy
YTY3YzYuLmIxZDQxMjQxYjU5YjgxZDQ5YWQ2MzZlMTM1MzZmZjdiYjU0NzgzODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjY3NCw2
ICsyNjc0LDE2IEBAIC0gKHZvaWQpX3ByZWNvbm5lY3RUb1NlcnZlcjooTlNVUkwgKil1cmwKICAg
ICBfcGFnZS0+cHJlY29ubmVjdFRvKHVybCk7CiB9CiAKKy0gKEJPT0wpX2NhblVzZUNyZWRlbnRp
YWxTdG9yYWdlCit7CisgICAgcmV0dXJuIF9wYWdlLT5jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSgp
OworfQorCistICh2b2lkKV9zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZTooQk9PTCljYW5Vc2VD
cmVkZW50aWFsU3RvcmFnZQoreworICAgIF9wYWdlLT5zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFn
ZShjYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSk7Cit9CisKIC0gKGlkIDxfV0tJbnB1dERlbGVnYXRl
PilfaW5wdXREZWxlZ2F0ZQogewogICAgIHJldHVybiBfaW5wdXREZWxlZ2F0ZS5nZXRBdXRvcmVs
ZWFzZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGM3YjNlOWM0NDU1N2NmNTlhMDJlNDU5MjkzZjQwNzZkNWEx
NjZjNzMuLjA3MTRiMTdhYTc5NTc4NzcyNWIwYmRlMGI3ZWNmYTg4MjE3ZWY3YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aApAQCAtMzUyLDYgKzM1Miw4IEBAIGZvciB0aGlzIHByb3BlcnR5LgogCiAtICh2b2lkKV9wcmVj
b25uZWN0VG9TZXJ2ZXI6KE5TVVJMICopc2VydmVyVVJMIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
V0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlOikgQk9PTCBfY2FuVXNlQ3JlZGVudGlh
bFN0b3JhZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19U
QkEpKTsKKwogQGVuZAogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYTg0MmQ3MTFiNDE3YjJiZmZkMTMxZDM4ZWNkZGMw
ZTEwYThkYzZkYy4uMjZkOGUxYjA2M2QwYTA3Y2UxZWI0MjdkOTAzMWY3YzBkMWQyMzg5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00NDAyLDcgKzQ0MDIs
MTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnByZWNvbm5lY3RUbyhjb25zdCBVUkwmIHVybCkKICAg
ICBpZiAoIW1fd2Vic2l0ZURhdGFTdG9yZS0+Y29uZmlndXJhdGlvbigpLmFsbG93c1NlcnZlclBy
ZWNvbm5lY3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9v
bCgpLmVuc3VyZU5ldHdvcmtQcm9jZXNzKCkucHJlY29ubmVjdFRvKHNlc3Npb25JRCgpLCBpZGVu
dGlmaWVyKCksIHdlYlBhZ2VJRCgpLCB1cmwsIHVzZXJBZ2VudCgpLCBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFsc1BvbGljeTo6VXNlLCBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pOwor
ICAgIGF1dG8gc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX2NhblVzZUNyZWRlbnRpYWxTdG9y
YWdlID8gV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3k6OlVzZSA6IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5OjpEb05vdFVzZTsKKyAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5wcmVjb25uZWN0VG8oc2Vzc2lvbklEKCksIGlk
ZW50aWZpZXIoKSwgd2ViUGFnZUlEKCksIHVybCwgdXNlckFnZW50KCksIHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5LCBtX2lzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4pOworfQorCit2b2lkIFdl
YlBhZ2VQcm94eTo6c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCBjYW5Vc2VDcmVkZW50
aWFsU3RvcmFnZSkKK3sKKyAgICBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlID0gY2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2U7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Q2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpKTsKIH0KIAogdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZERlc3Ryb3lOYXZpZ2F0aW9uKHVpbnQ2NF90IG5hdmlnYXRpb25JRCkKQEAg
LTc4NjUsNiArNzg3Miw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5
OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVy
cy5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9v
bCgpLmNvbmZpZ3VyYXRpb24oKS5zaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKCk7CiAg
ICAgcGFyYW1ldGVycy5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zID0gbV9saW1p
dHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zOwogICAgIHBhcmFtZXRlcnMuc2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgPSBtX2NvbmZpZ3VyYXRpb24tPnNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nKCk7CisgICAgcGFyYW1ldGVycy5jYW5Vc2VDcmVkZW50
aWFsU3RvcmFnZSA9IG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U7CiAKICNpZiBQTEFURk9STShH
VEspCiAgICAgcGFyYW1ldGVycy50aGVtZU5hbWUgPSBwYWdlQ2xpZW50KCkudGhlbWVOYW1lKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDliMmUwNzA3OWUxZjAz
ODIyZDY1MGRkMjNkN2YwNzFiYTJlNDY0OTEuLjRjMjNjYjc3NzBiMDkyNjU1NTk2OTUxZjlkOTI3
YzU0MGM3YTE0OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0x
NzkzLDYgKzE3OTMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHByZWNvbm5lY3RUbyhjb25zdCBV
UkwmKTsKIAorICAgIGJvb2wgY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKSB7IHJldHVybiBtX2Nh
blVzZUNyZWRlbnRpYWxTdG9yYWdlOyB9CisgICAgdm9pZCBzZXRDYW5Vc2VDcmVkZW50aWFsU3Rv
cmFnZShib29sKTsKKwogcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdl
YlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lk
IHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwpAQCAtMjg1MCw2ICsyODUzLDcgQEAgcHJpdmF0ZToKICAg
ICBib29sIG1fdXNlclNjcmlwdHNOb3RpZmllZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2xpbWl0
c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNF
eGVjdXRlZEFwcEJvdW5kQmVoYXZpb3JCZWZvcmVOYXZpZ2F0aW9uIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgeyB0cnVlIH07CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYkxvYWRlclN0cmF0ZWd5LmNwcAppbmRleCA2NGEwMTRkMDk1NmFjMDhmNWJhNmE4YmY2MzBj
NmUzNzlkNzQ5OWY3Li44NjQ0ZDU5MGY2NzZjM2Y1MDA1M2I3ODIyZjA0NzE4NThjYmIyZjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJTdHJh
dGVneS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVy
U3RyYXRlZ3kuY3BwCkBAIC0yOTAsMTIgKzI5MCwxMiBAQCB2b2lkIFdlYkxvYWRlclN0cmF0ZWd5
OjpzY2hlZHVsZUxvYWRGcm9tTmV0d29ya1Byb2Nlc3MoUmVzb3VyY2VMb2FkZXImIHJlc291cmNl
TAogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciA9IHJlc291cmNlTG9hZGVy
LmlkZW50aWZpZXIoKTsKICAgICBBU1NFUlQoaWRlbnRpZmllcik7CiAKLSAgICBMT0coTmV0d29y
a1NjaGVkdWxpbmcsICIoV2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9h
ZCwgdXJsICclcycgd2lsbCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0
aCBwcmlvcml0eSAlZCIsIHJlc291cmNlTG9hZGVyLnVybCgpLnN0cmluZygpLmxhdGluMSgpLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8aW50PihyZXNvdXJjZUxvYWRlci5yZXF1ZXN0KCkucHJpb3JpdHko
KSkpOwotCiAgICAgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSA9
IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudCgpID8gQ29udGVudFNuaWZmaW5nUG9s
aWN5OjpTbmlmZkNvbnRlbnQgOiBDb250ZW50U25pZmZpbmdQb2xpY3k6OkRvTm90U25pZmZDb250
ZW50OwogICAgIENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5IGNvbnRlbnRFbmNvZGluZ1Nu
aWZmaW5nUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkU25pZmZDb250ZW50RW5jb2Rpbmco
KSA/IENvbnRlbnRFbmNvZGluZ1NuaWZmaW5nUG9saWN5OjpTbmlmZiA6IENvbnRlbnRFbmNvZGlu
Z1NuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmOwogICAgIFN0b3JlZENyZWRlbnRpYWxzUG9saWN5
IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gcmVzb3VyY2VMb2FkZXIuc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UoKSA/IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBTdG9yZWRDcmVk
ZW50aWFsc1BvbGljeTo6RG9Ob3RVc2U7CiAKKyAgICBMT0coTmV0d29ya1NjaGVkdWxpbmcsICIo
V2ViUHJvY2VzcykgV2ViTG9hZGVyU3RyYXRlZ3k6OnNjaGVkdWxlTG9hZCwgdXJsICclcycgd2ls
bCBiZSBzY2hlZHVsZWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3Mgd2l0aCBwcmlvcml0eSAlZCwg
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgJWkiLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmco
KS5sYXRpbjEoKS5kYXRhKCksIHN0YXRpY19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVz
dCgpLnByaW9yaXR5KCkpLCAoaW50KXN0b3JlZENyZWRlbnRpYWxzUG9saWN5KTsKKwogICAgIGF1
dG8qIGZyYW1lID0gcmVzb3VyY2VMb2FkZXIuZnJhbWUoKTsKIAogICAgIE5ldHdvcmtSZXNvdXJj
ZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ZDc3Yzc1OTYyYWEwNzQ1NGZhZjNjNzg2NDdk
N2FlOGY1NjBmNDdjLi5hZjc4ZWM4NTNmZDQ1MWI4YWE4ZjQzOTk2MzdmODdjMDE4MjMxZDdhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzgw
LDYgKzc4MCw4IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBXZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICBpZiAocGFyYW1ldGVycy5z
aG91bGRFbmFibGVWUDlEZWNvZGVyKQogICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5l
bmFibGVWUDlEZWNvZGVyKCk7CiAKKyAgICBtX3BhZ2UtPnNldENhblVzZUNyZWRlbnRpYWxTdG9y
YWdlKHBhcmFtZXRlcnMuY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOworCiAgICAgdXBkYXRlVGhy
b3R0bGVTdGF0ZSgpOwogfQogCkBAIC0xMjI5LDYgKzEyMzEsMTIgQEAgdm9pZCBXZWJQYWdlOjpz
ZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpCiAgICAgICAgIG1fcGFnZS0+c2V0SGFz
UmVzb3VyY2VMb2FkQ2xpZW50KGhhcyk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6c2V0Q2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UoYm9vbCBoYXMpCit7CisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAgbV9w
YWdlLT5zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZShoYXMpOworfQorCiB2b2lkIFdlYlBhZ2U6
OnNldFRyYWNrc1JlcGFpbnRzKGJvb2wgdHJhY2tSZXBhaW50cykKIHsKICAgICBpZiAoRnJhbWVW
aWV3KiB2aWV3ID0gbWFpbkZyYW1lVmlldygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCmluZGV4IDk2ZGJhN2ZmMDUzNjFlOTBjMWZhMjE4NDhkODUyYjEyNDZj
NmU3ZTguLjMyNDQyZGYzMTczODg4OWU0MWVlMzIxOTVmOWUzZTVmZThmY2QwMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE2NDUsNiArMTY0NSw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybURpZFNlbGVjdEFsbCgpOwogICAgIAogICAg
IHZvaWQgc2V0SGFzUmVzb3VyY2VMb2FkQ2xpZW50KGJvb2wpOworICAgIHZvaWQgc2V0Q2FuVXNl
Q3JlZGVudGlhbFN0b3JhZ2UoYm9vbCk7CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKICAg
ICB2b2lkIGRpZFNlbGVjdEl0ZW1Gcm9tQWN0aXZlQ29udGV4dE1lbnUoY29uc3QgV2ViQ29udGV4
dE1lbnVJdGVtRGF0YSYpOwpAQCAtMjEzNSw2ICsyMTM2LDggQEAgcHJpdmF0ZToKICAgICAKICAg
ICBib29sIG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX25hdmlnYXRpb25IYXNPY2N1cmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fY2Fu
VXNlQ3JlZGVudGlhbFN0b3JhZ2UgeyB0cnVlIH07CisKICAgICBWZWN0b3I8U3RyaW5nPiBtX2Nv
cnNEaXNhYmxpbmdQYXR0ZXJuczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IGRhZjQwNzUwZWFlMmJmNzQy
ZDNlYzU4Y2Q2YzM4YzRhYTI3OWM4MTguLmRjNzI4MjQwNTNlOWI4YWU1NDcwMWJlNDBlMDg5MTM5
MGNhZTMwODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtNjA5LDQgKzYwOSw1IEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgU2V0TmVlZHNET01XaW5kb3dSZXNpemVFdmVudCgpCiAKICAgICBTZXRIYXNS
ZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBoYXMpCisgICAgU2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UoYm9vbCBjYW5Vc2UpCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggODk3NDcxNzU5NDAxNDliMTg1YmQ5YTJiMTk1YTIzOGJmY2EzMWQ1Yy4u
MDJmMzNmMjQ3YzQ4YjhlOWE2NmMyMjMwYmI0ZmI2ZGU4MjVlMzQ4OSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIw
LTA4LTExICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQg
YSAidXNlIHN0b3JlZCBjcmVkZW50aWFscyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS82MzMwODAxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTUzODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlY29ubmVj
dC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIwLTA4LTExICBUaW1v
dGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZlcnJlZCBXS1Vz
ZXJTY3JpcHRzIGFyZSBleHBvbmVudGlhbGx5IGluamVjdGVkIG9uIHByZWxvYWRlZCBwYWdlcyB3
aXRoIGZyYW1lcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvUHJlY29ubmVjdC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvUHJlY29ubmVjdC5tbQppbmRleCBkNTQxMjZkMWI5ZDUzMGEzMjljMzI5ZGJhMjAzMGI4NTM1
NzBjNmI3Li5mYWEyYzIyZjU3NmM3MzA4MmNiYmY5NjNiMTZjNTUwNjVmZTNiNTc1IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWNvbm5lY3QubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVjb25uZWN0Lm1t
CkBAIC01Myw5ICs1MywxMSBAQCBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKIFRFU1QoUHJl
Y29ubmVjdCwgSFRUUCkKIHsKKyAgICBzaXplX3QgY29ubmVjdGlvbkNvdW50ID0gMDsKICAgICBi
b29sIGNvbm5lY3RlZCA9IGZhbHNlOwogICAgIGJvb2wgcmVxdWVzdGVkID0gZmFsc2U7CiAgICAg
SFRUUFNlcnZlciBzZXJ2ZXIoWyZdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKKyAgICAgICAg
Kytjb25uZWN0aW9uQ291bnQ7CiAgICAgICAgIGNvbm5lY3RlZCA9IHRydWU7CiAgICAgICAgIGNv
bm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFsmXShWZWN0b3I8Y2hhcj4mJikgewogICAgICAg
ICAgICAgcmVxdWVzdGVkID0gdHJ1ZTsKQEAgLTY4LDYgKzcwLDM4IEBAIFRFU1QoUHJlY29ubmVj
dCwgSFRUUCkKICAgICBFWFBFQ1RfRkFMU0UocmVxdWVzdGVkKTsKICAgICBbd2ViVmlldyBsb2Fk
UmVxdWVzdDpzZXJ2ZXIucmVxdWVzdCgpXTsKICAgICBVdGlsOjpydW4oJnJlcXVlc3RlZCk7CisK
KyAgICBFWFBFQ1RfRVEoY29ubmVjdGlvbkNvdW50LCAxdSk7Cit9CisKK1RFU1QoUHJlY29ubmVj
dCwgQ29ubmVjdGlvbkNvdW50KQoreworICAgIHNpemVfdCBjb25uZWN0aW9uQ291bnQgPSAwOwor
ICAgIGJvb2wgYW55Q29ubmVjdGlvbnMgPSBmYWxzZTsKKyAgICBib29sIHJlcXVlc3RlZCA9IGZh
bHNlOworICAgIEhUVFBTZXJ2ZXIgc2VydmVyKFsmXSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSB7
CisgICAgICAgICsrY29ubmVjdGlvbkNvdW50OworICAgICAgICBhbnlDb25uZWN0aW9ucyA9IHRy
dWU7CisgICAgICAgIGNvbm5lY3Rpb24ucmVjZWl2ZUhUVFBSZXF1ZXN0KFsmXShWZWN0b3I8Y2hh
cj4mJikgeworICAgICAgICAgICAgcmVxdWVzdGVkID0gdHJ1ZTsKKyAgICAgICAgfSk7CisgICAg
fSk7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworCisgICAg
Ly8gVGhlIHByZWNvbm5lY3QgdG8gdGhlIHNlcnZlciB3aWxsIHVzZSB0aGUgZGVmYXVsdCBzZXR0
aW5nIG9mICJ1c2UgdGhlIGNyZWRlbnRpYWwgc3RvcmUiLAorICAgIC8vIGFuZCB0aGVyZWZvcmUg
dXNlIHRoZSBjcmVkZW50aWFsLXN0b3JlLWJsZXNzZWQgTlNVUkxTZXNzaW9uLgorICAgIFt3ZWJW
aWV3IF9wcmVjb25uZWN0VG9TZXJ2ZXI6c2VydmVyLnJlcXVlc3QoKS5VUkxdOworICAgIFV0aWw6
OnJ1bigmYW55Q29ubmVjdGlvbnMpOworICAgIFV0aWw6OnNwaW5SdW5Mb29wKDEwKTsKKyAgICBF
WFBFQ1RfRkFMU0UocmVxdWVzdGVkKTsKKworICAgIC8vIFRoZW4gdGhpcyByZXF1ZXN0IHdpbGwg
Km5vdCogdXNlIHRoZSBjcmVkZW50aWFsIHN0b3JlLCB0aGVyZWZvcmUgdXNpbmcgYSBkaWZmZXJl
bnQgTlNVUkxTZXNzaW9uCisgICAgLy8gdGhhdCBkb2Vzbid0IGtub3cgYWJvdXQgdGhlIGFib3Zl
IHByZWNvbm5lY3QsIHRyaWdnZXJpbmcgYSBzZWNvbmQgY29ubmVjdGlvbiB0byB0aGUgc2VydmVy
LgorICAgIHdlYlZpZXcuZ2V0KCkuX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlID0gTk87CisgICAg
W3dlYlZpZXcgbG9hZFJlcXVlc3Q6c2VydmVyLnJlcXVlc3QoKV07CisgICAgVXRpbDo6cnVuKCZy
ZXF1ZXN0ZWQpOworCisgICAgRVhQRUNUX0VRKGNvbm5lY3Rpb25Db3VudCwgMnUpOwogfQogCiAv
LyBNb2phdmUgQ0ZOZXR3b3JrIF9wcmVjb25uZWN0IFNQSSBzZWVtcyB0byBoYXZlIGEgYnVnIGNh
dXNpbmcgdGhpcyB0byB0aW1lIG91dC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406419</attachid>
            <date>2020-08-11 14:40:05 -0700</date>
            <delta_ts>2020-08-11 15:20:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215388-20200811144004.patch</filename>
            <type>text/plain</type>
            <size>18473</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY4OTBlMzIzMTI0MGJl
MzY2ZmM0OTVmOWQzMTQ4OGVhOWYwMDI5NC4uYTQxNzIzZDMyYWE5MTFiYjVmNGE4ZDc0OTY3OWIy
MDg1Y2RlYWE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA4LTExICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSAidXNlIHN0b3Jl
ZCBjcmVkZW50aWFscyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS82MzMwODAxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTUzODgKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICBD
b3ZlcmVkIGJ5IFByZWNvbm5lY3QgQVBJIHRlc3RzLgorICAgICAgICAKKyAgICAgICAgVGhpcyBz
ZXR0aW5nIGlzIHRvIGFsbG93IGFwcHMgdG8gZXhwbGljaXRseSBkZW55IHVzaW5nIHRoZSBjcmVk
ZW50aWFsIHN0b3JhZ2UKKyAgICAgICAgZm9yIG5ldHdvcmsgb3BlcmF0aW9ucy4gKGUuZy4gdG8g
bWFrZSBzdXJlIHRoZSBLZXljaGFpbiBVSSBkb2Vzbid0IHBvcCB1cAorICAgICAgICBmb3IgYW4g
b2Zmc2NyZWVuIGxvYWQpCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXI6OnNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKToKKworICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6
c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Y2Fu
VXNlQ3JlZGVudGlhbFN0b3JhZ2UgY29uc3QpOgorCiAyMDIwLTA4LTExICBKb24gRGF2aXMgIDxq
b25kQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcHJpdmFjeSBhbmQgc2VjdXJpdHkga2V5d29y
ZHMgdG8gZmVhdHVyZSBzdGF0dXMgZW50cmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkOWRmNDg4OWYyZDc4MWJi
MTNlMWJhN2QyM2I2ZmE0N2ZlNDM5ODUxLi4zNWZlYWRhNTljN2I2YWExYTI2MGFlMTc3ZmQ4NGM3
YzkwZjJhMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA4LTExICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgYSAidXNlIHN0b3JlZCBj
cmVkZW50aWFscyIgc2V0dGluZyB0byBXS1dlYlZpZXcuCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS82MzMwODAxOT4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTUzODgKKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnByZWNvbm5lY3RUbyk6CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpw
cmVjb25uZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldENhblVzZUNy
ZWRlbnRpYWxTdG9yYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSk6CisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVMb2FkRnJvbU5ldHdvcmtQcm9j
ZXNzKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMjAtMDgtMTEgIFRpbSBIb3J0b24gIDx0
aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgaU9TOiBTY3JvbGxpbmcgYW5kIHRv
dWNoIGV2ZW50cyBzcG9yYWRpY2FsbHkgc3RvcCB3b3JraW5nIGFmdGVyIG5hdmlnYXRpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU3YWQ2MDk0MjNmZDYx
NGNkNTdjYmU4OWYwZGQ1MGVjZmJiZDk0YjEuLjJhM2UzNWVhM2JjNjYwOGIwNmE4NDk0NmU1OWNm
ZjA2NDQ1NmNlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcApA
QCAtNzQxLDYgKzc0MSwxMSBAQCBib29sIFJlc291cmNlTG9hZGVyOjpzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSgpCiAgICAgaWYgKG1fb3B0aW9ucy5zdG9yZWRDcmVkZW50aWFsc1BvbGljeSAh
PSBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgeworICAgICAgICBpZiAoIXBh
Z2UtPmNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCiAgICAgUmVmPFJlc291cmNlTG9hZGVyPiBwcm90ZWN0ZWRUaGlzKCp0aGlzKTsK
ICAgICByZXR1cm4gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UoZG9jdW1lbnRMb2FkZXIoKSwgaWRlbnRpZmllcigpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5k
ZXggYzgxMjAxZDA1ZjBkYjIwNTRhYTY4N2ViNGVhODIyZGQ4MTRhMDI1MS4uNzRlYjkwMDNlYzM4
MTFjOThkNmJkODNjNDU0MWUxMGIzNDY0YTUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTY1Nyw2ICs2
NTcsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRIYXNSZXNvdXJjZUxvYWRDbGllbnQoYm9vbCBo
YXMpIHsgbV9oYXNSZXNvdXJjZUxvYWRDbGllbnQgPSBoYXM7IH0KICAgICBib29sIGhhc1Jlc291
cmNlTG9hZENsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVzb3VyY2VMb2FkQ2xpZW50OyB9
CiAKKyAgICB2b2lkIHNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJvb2wgY2FuVXNlKSB7IG1f
Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBjYW5Vc2U7IH0KKyAgICBib29sIGNhblVzZUNyZWRl
bnRpYWxTdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZTsg
fQorCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBo
YW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFZvbHVtZU9mTWVkaWFFbGVtZW50KGRvdWJsZSwgdWludDY0X3QpOwpAQCAtMTA2Nyw2ICsx
MDcwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRmlyZUV2ZW50cyB7IHRydWUgfTsK
ICAgICBib29sIG1fbG9hZHNTdWJyZXNvdXJjZXMgeyB0cnVlIH07CiAgICAgYm9vbCBtX2xvYWRz
RnJvbU5ldHdvcmsgeyB0cnVlIH07CisgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdl
IHsgdHJ1ZSB9OwogICAgIFNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBTaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZzo6Tm8gfTsKICAgICBib29sIG1faGFzQmVlbk5vdGlmaWVkVG9JbmplY3RV
c2VyU2NyaXB0cyB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBmNmI4NjBlNzliM2E2Zjc1NGFlMWFkYzQzMmUx
NTRlOWRmYzhmMjIxLi4wMjhlMGZiYjllMTk0OGIwZTA4OWY0YWRkM2IwYTcwNTBjNmVkMWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtMTQxNSw2ICsxNDE1LDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWRDbGlja0F0dHJp
YnV0aW9uRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpw
cmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJQYWdlUHJveHlJZGVudGlm
aWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQsIGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV2ViQ29yZTo6U3RvcmVkQ3Jl
ZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIE9wdGlvbmFsPE5hdmlnYXRp
bmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKQogeworICAg
IExPRyhOZXR3b3JrLCAiKE5ldHdvcmtQcm9jZXNzKSBQcmVjb25uZWN0aW5nIHRvIFVSTCAlcyAo
c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgJWkpIiwgdXJsLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IChpbnQpc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kpOworCiAjaWYgRU5BQkxFKFNFUlZFUl9QUkVD
T05ORUNUKQogI2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCiAgICAg
aWYgKHN1cHBsZW1lbnQ8TGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyPigpLT5zdXBwb3J0c1Nj
aGVtZSh1cmwucHJvdG9jb2woKS50b1N0cmluZygpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggYTNiNjE1NmUxZWIyMDY5
NWIxODFiMmFhYjY0NDA0MDhhY2U2NWY4ZS4uMDc4NDJhZTI1ZTc3OGJhZjFlODkwMjJiODk5Y2U3
Y2NiNjZmN2QyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTE1Nyw2ICsxNTcsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5j
b2RlciA8PCBuZWVkc0luQXBwQnJvd3NlclByaXZhY3lRdWlya3M7CiAgICAgZW5jb2RlciA8PCBs
aW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zOwogICAgIGVuY29kZXIgPDwgc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc7CisgICAgZW5jb2RlciA8PCBjYW5Vc2VDcmVk
ZW50aWFsU3RvcmFnZTsKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBlbmNvZGVyIDw8IHRoZW1l
TmFtZTsKQEAgLTUwMyw3ICs1MDQsMTAgQEAgT3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycz4gV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6RGVjb2QKICAgICAK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuc2hvdWxkUmVsYXhUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmcpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAorCisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNhblVzZUNyZWRlbnRpYWxTdG9yYWdl
KSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKwogI2lmIFBMQVRGT1JNKEdUSykKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudGhlbWVOYW1lKSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaAppbmRleCA2NjZiNTk0ZTU0Njk2ZjMyMjY1YWUyMDA4M2ExNGM4YjE3
ZjIxNWJkLi40NTlmNzZkZmVjODFlZmI0Y2NkMDBmNmY2YmFkZTVkNjY2ZGU0ZjM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0y
MjksNiArMjI5LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIGJv
b2wgc2hvdWxkRW5hYmxlVlA5RGVjb2RlciB7IGZhbHNlIH07CiAgICAgYm9vbCBuZWVkc0luQXBw
QnJvd3NlclByaXZhY3lRdWlya3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbGltaXRzTmF2aWdhdGlv
bnNUb0FwcEJvdW5kRG9tYWlucyB7IGZhbHNlIH07CisgICAgYm9vbCBjYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZSB7IHRydWUgfTsKKwogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIHsgV2ViQ29y
ZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmc6Ok5vIH07CiAKICNpZiBQTEFU
Rk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCBlN2I2OWI3Y2RkN2Q1ZTdkOGZiMTE3ZWU5MmI1OWU1YTVhMmE2N2M2Li5iMWQ0
MTI0MWI1OWI4MWQ0OWFkNjM2ZTEzNTM2ZmY3YmI1NDc4Mzg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTI2NzQsNiArMjY3NCwxNiBA
QCAtICh2b2lkKV9wcmVjb25uZWN0VG9TZXJ2ZXI6KE5TVVJMICopdXJsCiAgICAgX3BhZ2UtPnBy
ZWNvbm5lY3RUbyh1cmwpOwogfQogCistIChCT09MKV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZQor
eworICAgIHJldHVybiBfcGFnZS0+Y2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoKTsKK30KKworLSAo
dm9pZClfc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2U6KEJPT0wpY2FuVXNlQ3JlZGVudGlhbFN0
b3JhZ2UKK3sKKyAgICBfcGFnZS0+c2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoY2FuVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UpOworfQorCiAtIChpZCA8X1dLSW5wdXREZWxlZ2F0ZT4pX2lucHV0RGVs
ZWdhdGUKIHsKICAgICByZXR1cm4gX2lucHV0RGVsZWdhdGUuZ2V0QXV0b3JlbGVhc2VkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZh
dGUuaAppbmRleCBjN2IzZTljNDQ1NTdjZjU5YTAyZTQ1OTI5M2Y0MDc2ZDVhMTY2YzczLi4wNzE0
YjE3YWE3OTU3ODc3MjViMGJkZTBiN2VjZmE4ODIxN2VmN2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTM1Miw2
ICszNTIsOCBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIAogLSAodm9pZClfcHJlY29ubmVjdFRvU2Vy
dmVyOihOU1VSTCAqKXNlcnZlclVSTCBXS19BUElfQVZBSUxBQkxFKG1hY29zKFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRD
YW5Vc2VDcmVkZW50aWFsU3RvcmFnZTopIEJPT0wgX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIFdL
X0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBl
bmQKIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IGE4NDJkNzExYjQxN2IyYmZmZDEzMWQzOGVjZGRjMGUxMGE4ZGM2ZGMu
LjI2ZDhlMWIwNjNkMGEwN2NlMWViNDI3ZDkwMzFmN2MwZDFkMjM4OTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDQwMiw3ICs0NDAyLDE0IEBAIHZvaWQg
V2ViUGFnZVByb3h5OjpwcmVjb25uZWN0VG8oY29uc3QgVVJMJiB1cmwpCiAgICAgaWYgKCFtX3dl
YnNpdGVEYXRhU3RvcmUtPmNvbmZpZ3VyYXRpb24oKS5hbGxvd3NTZXJ2ZXJQcmVjb25uZWN0KCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5lbnN1cmVO
ZXR3b3JrUHJvY2VzcygpLnByZWNvbm5lY3RUbyhzZXNzaW9uSUQoKSwgaWRlbnRpZmllcigpLCB3
ZWJQYWdlSUQoKSwgdXJsLCB1c2VyQWdlbnQoKSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQ
b2xpY3k6OlVzZSwgbV9pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKKyAgICBhdXRvIHN0
b3JlZENyZWRlbnRpYWxzUG9saWN5ID0gbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSA/IFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpVc2UgOiBXZWJDb3JlOjpTdG9yZWRDcmVkZW50
aWFsc1BvbGljeTo6RG9Ob3RVc2U7CisgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmVuc3Vy
ZU5ldHdvcmtQcm9jZXNzKCkucHJlY29ubmVjdFRvKHNlc3Npb25JRCgpLCBpZGVudGlmaWVyKCks
IHdlYlBhZ2VJRCgpLCB1cmwsIHVzZXJBZ2VudCgpLCBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwg
bV9pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6
OnNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJvb2wgY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2Up
Cit7CisgICAgbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSA9IGNhblVzZUNyZWRlbnRpYWxTdG9y
YWdlOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldENhblVzZUNyZWRlbnRpYWxTdG9y
YWdlKGNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpCkBAIC03ODY1LDYgKzc4
NzIsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMuc2hvdWxkQ2Fw
dHVyZURpc3BsYXlJblVJUHJvY2VzcyA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jb25maWd1
cmF0aW9uKCkuc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2VzcygpOwogICAgIHBhcmFtZXRl
cnMubGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyA9IG1fbGltaXRzTmF2aWdhdGlv
bnNUb0FwcEJvdW5kRG9tYWluczsKICAgICBwYXJhbWV0ZXJzLnNob3VsZFJlbGF4VGhpcmRQYXJ0
eUNvb2tpZUJsb2NraW5nID0gbV9jb25maWd1cmF0aW9uLT5zaG91bGRSZWxheFRoaXJkUGFydHlD
b29raWVCbG9ja2luZygpOworICAgIHBhcmFtZXRlcnMuY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2Ug
PSBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlOwogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHBh
cmFtZXRlcnMudGhlbWVOYW1lID0gcGFnZUNsaWVudCgpLnRoZW1lTmFtZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5YjJlMDcwNzllMWYwMzgyMmQ2NTBkZDIz
ZDdmMDcxYmEyZTQ2NDkxLi40YzIzY2I3NzcwYjA5MjY1NTU5Njk1MWY5ZDkyN2M1NDBjN2ExNDkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc5Myw2ICsxNzkz
LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBwcmVjb25uZWN0VG8oY29uc3QgVVJMJik7CiAKKyAg
ICBib29sIGNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKCkgeyByZXR1cm4gbV9jYW5Vc2VDcmVkZW50
aWFsU3RvcmFnZTsgfQorICAgIHZvaWQgc2V0Q2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UoYm9vbCk7
CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJv
eHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUlu
aXRpYWxpemUoKTsKQEAgLTI4NTAsNiArMjg1Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3Vz
ZXJTY3JpcHRzTm90aWZpZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9saW1pdHNOYXZpZ2F0aW9u
c1RvQXBwQm91bmREb21haW5zIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzRXhlY3V0ZWRBcHBC
b3VuZEJlaGF2aW9yQmVmb3JlTmF2aWdhdGlvbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhblVz
ZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJMb2FkZXJT
dHJhdGVneS5jcHAKaW5kZXggNjRhMDE0ZDA5NTZhYzA4ZjViYTZhOGJmNjMwYzZlMzc5ZDc0OTlm
Ny4uODY0NGQ1OTBmNjc2YzNmNTAwNTNiNzgyMmYwNDcxODU4Y2JiMmYwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViTG9hZGVyU3RyYXRlZ3kuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYkxvYWRlclN0cmF0ZWd5LmNw
cApAQCAtMjkwLDEyICsyOTAsMTIgQEAgdm9pZCBXZWJMb2FkZXJTdHJhdGVneTo6c2NoZWR1bGVM
b2FkRnJvbU5ldHdvcmtQcm9jZXNzKFJlc291cmNlTG9hZGVyJiByZXNvdXJjZUwKICAgICBSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIgPSByZXNvdXJjZUxvYWRlci5pZGVudGlmaWVy
KCk7CiAgICAgQVNTRVJUKGlkZW50aWZpZXIpOwogCi0gICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5n
LCAiKFdlYlByb2Nlc3MpIFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMn
IHdpbGwgYmUgc2NoZWR1bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkg
JWQiLCByZXNvdXJjZUxvYWRlci51cmwoKS5zdHJpbmcoKS5sYXRpbjEoKS5kYXRhKCksIHN0YXRp
Y19jYXN0PGludD4ocmVzb3VyY2VMb2FkZXIucmVxdWVzdCgpLnByaW9yaXR5KCkpKTsKLQogICAg
IENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3kgPSByZXNvdXJjZUxv
YWRlci5zaG91bGRTbmlmZkNvbnRlbnQoKSA/IENvbnRlbnRTbmlmZmluZ1BvbGljeTo6U25pZmZD
b250ZW50IDogQ29udGVudFNuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmQ29udGVudDsKICAgICBD
b250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGljeSBjb250ZW50RW5jb2RpbmdTbmlmZmluZ1BvbGlj
eSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFNuaWZmQ29udGVudEVuY29kaW5nKCkgPyBDb250ZW50
RW5jb2RpbmdTbmlmZmluZ1BvbGljeTo6U25pZmYgOiBDb250ZW50RW5jb2RpbmdTbmlmZmluZ1Bv
bGljeTo6RG9Ob3RTbmlmZjsKICAgICBTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVk
ZW50aWFsc1BvbGljeSA9IHJlc291cmNlTG9hZGVyLnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
KCkgPyBTdG9yZWRDcmVkZW50aWFsc1BvbGljeTo6VXNlIDogU3RvcmVkQ3JlZGVudGlhbHNQb2xp
Y3k6OkRvTm90VXNlOwogCisgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3Mp
IFdlYkxvYWRlclN0cmF0ZWd5OjpzY2hlZHVsZUxvYWQsIHVybCAnJXMnIHdpbGwgYmUgc2NoZWR1
bGVkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIHdpdGggcHJpb3JpdHkgJWQsIHN0b3JlZENyZWRl
bnRpYWxzUG9saWN5ICVpIiwgcmVzb3VyY2VMb2FkZXIudXJsKCkuc3RyaW5nKCkubGF0aW4xKCku
ZGF0YSgpLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc291cmNlTG9hZGVyLnJlcXVlc3QoKS5wcmlvcml0
eSgpKSwgKGludClzdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CisKICAgICBhdXRvKiBmcmFtZSA9
IHJlc291cmNlTG9hZGVyLmZyYW1lKCk7CiAKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyBsb2FkUGFyYW1ldGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggZjY1MjEzYTY5MGJlNDg1Nzc2ODRhOGFhOTY2YzhlZmI3YWRmOWI5
OS4uNmJiNDE3ZjgwNGI2NDAzMWUxYTY2ZDJiNzI2ZjAzYWY0OTIzZjljOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc4MCw2ICs3ODAsOCBA
QCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9u
UGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgaWYgKHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxl
VlA5RGVjb2RlcikKICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5hYmxlVlA5RGVj
b2RlcigpOwogCisgICAgbV9wYWdlLT5zZXRDYW5Vc2VDcmVkZW50aWFsU3RvcmFnZShwYXJhbWV0
ZXJzLmNhblVzZUNyZWRlbnRpYWxTdG9yYWdlKTsKKwogICAgIHVwZGF0ZVRocm90dGxlU3RhdGUo
KTsKIH0KIApAQCAtMTIyOSw2ICsxMjMxLDEyIEBAIHZvaWQgV2ViUGFnZTo6c2V0SGFzUmVzb3Vy
Y2VMb2FkQ2xpZW50KGJvb2wgaGFzKQogICAgICAgICBtX3BhZ2UtPnNldEhhc1Jlc291cmNlTG9h
ZENsaWVudChoYXMpOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldENhblVzZUNyZWRlbnRpYWxTdG9y
YWdlKGJvb2wgaGFzKQoreworICAgIGlmIChtX3BhZ2UpCisgICAgICAgIG1fcGFnZS0+c2V0Q2Fu
VXNlQ3JlZGVudGlhbFN0b3JhZ2UoaGFzKTsKK30KKwogdm9pZCBXZWJQYWdlOjpzZXRUcmFja3NS
ZXBhaW50cyhib29sIHRyYWNrUmVwYWludHMpCiB7CiAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9
IG1haW5GcmFtZVZpZXcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCBlNjQyNWE2M2QyYmVhNzczZmU3NzE5YzllZDZkZWMwNzJiNWE1N2VlLi4yNDc5
ZjIyZWUxODgzNTg4OTkyNjM2YjVkZGE1NGFmNWY0MzQ3N2YxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xNjQ2LDYgKzE2NDYsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcGxhdGZvcm1EaWRTZWxlY3RBbGwoKTsKICAgICAKICAgICB2b2lkIHNldEhh
c1Jlc291cmNlTG9hZENsaWVudChib29sKTsKKyAgICB2b2lkIHNldENhblVzZUNyZWRlbnRpYWxT
dG9yYWdlKGJvb2wpOwogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgdm9pZCBkaWRT
ZWxlY3RJdGVtRnJvbUFjdGl2ZUNvbnRleHRNZW51KGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURh
dGEmKTsKQEAgLTIxMzYsNiArMjEzNyw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtX2xp
bWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9u
YXZpZ2F0aW9uSGFzT2NjdXJlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRp
YWxTdG9yYWdlIHsgdHJ1ZSB9OworCiAgICAgVmVjdG9yPFN0cmluZz4gbV9jb3JzRGlzYWJsaW5n
UGF0dGVybnM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCBkYWY0MDc1MGVhZTJiZjc0MmQzZWM1OGNkNmMz
OGM0YWEyNzljODE4Li5kYzcyODI0MDUzZTliOGFlNTQ3MDFiZTQwZTA4OTEzOTBjYWUzMDg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KQEAgLTYwOSw0ICs2MDksNSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21t
YW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAg
IFNldE5lZWRzRE9NV2luZG93UmVzaXplRXZlbnQoKQogCiAgICAgU2V0SGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KGJvb2wgaGFzKQorICAgIFNldENhblVzZUNyZWRlbnRpYWxTdG9yYWdlKGJvb2wgY2Fu
VXNlKQogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmlu
ZGV4IDg1YTAyZGIwNGMzMjI3Yjk4YzdiY2Q3MGU0MjI0NjdkNjg1NDdkZGUuLjZhM2YyMWM1M2Yz
MjYwOTljN2U2NDdkYzcwNzk0MTExOGJiNmFjYmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxv
ZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wOC0xMSAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIGEgInVzZSBzdG9y
ZWQgY3JlZGVudGlhbHMiIHNldHRpbmcgdG8gV0tXZWJWaWV3LgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNjMzMDgwMTk+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE1Mzg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWNvbm5lY3QubW06CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMC0wOC0xMSAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBpT1M6IFNjcm9sbGluZyBhbmQgdG91Y2gg
ZXZlbnRzIHNwb3JhZGljYWxseSBzdG9wIHdvcmtpbmcgYWZ0ZXIgbmF2aWdhdGluZwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVjb25uZWN0Lm1t
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QcmVjb25uZWN0Lm1tCmlu
ZGV4IGQ1NDEyNmQxYjlkNTMwYTMyOWMzMjlkYmEyMDMwYjg1MzU3MGM2YjcuLmZhYTJjMjJmNTc2
YzczMDgyY2JiZjk2M2IxNmM1NTA2NWZlM2I1NzUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJlY29ubmVjdC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1ByZWNvbm5lY3QubW0KQEAgLTUzLDkgKzUzLDExIEBA
IG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAogVEVTVChQcmVjb25uZWN0LCBIVFRQKQogewor
ICAgIHNpemVfdCBjb25uZWN0aW9uQ291bnQgPSAwOwogICAgIGJvb2wgY29ubmVjdGVkID0gZmFs
c2U7CiAgICAgYm9vbCByZXF1ZXN0ZWQgPSBmYWxzZTsKICAgICBIVFRQU2VydmVyIHNlcnZlcihb
Jl0gKENvbm5lY3Rpb24gY29ubmVjdGlvbikgeworICAgICAgICArK2Nvbm5lY3Rpb25Db3VudDsK
ICAgICAgICAgY29ubmVjdGVkID0gdHJ1ZTsKICAgICAgICAgY29ubmVjdGlvbi5yZWNlaXZlSFRU
UFJlcXVlc3QoWyZdKFZlY3RvcjxjaGFyPiYmKSB7CiAgICAgICAgICAgICByZXF1ZXN0ZWQgPSB0
cnVlOwpAQCAtNjgsNiArNzAsMzggQEAgVEVTVChQcmVjb25uZWN0LCBIVFRQKQogICAgIEVYUEVD
VF9GQUxTRShyZXF1ZXN0ZWQpOwogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnNlcnZlci5yZXF1
ZXN0KCldOwogICAgIFV0aWw6OnJ1bigmcmVxdWVzdGVkKTsKKworICAgIEVYUEVDVF9FUShjb25u
ZWN0aW9uQ291bnQsIDF1KTsKK30KKworVEVTVChQcmVjb25uZWN0LCBDb25uZWN0aW9uQ291bnQp
Cit7CisgICAgc2l6ZV90IGNvbm5lY3Rpb25Db3VudCA9IDA7CisgICAgYm9vbCBhbnlDb25uZWN0
aW9ucyA9IGZhbHNlOworICAgIGJvb2wgcmVxdWVzdGVkID0gZmFsc2U7CisgICAgSFRUUFNlcnZl
ciBzZXJ2ZXIoWyZdIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIHsKKyAgICAgICAgKytjb25uZWN0
aW9uQ291bnQ7CisgICAgICAgIGFueUNvbm5lY3Rpb25zID0gdHJ1ZTsKKyAgICAgICAgY29ubmVj
dGlvbi5yZWNlaXZlSFRUUFJlcXVlc3QoWyZdKFZlY3RvcjxjaGFyPiYmKSB7CisgICAgICAgICAg
ICByZXF1ZXN0ZWQgPSB0cnVlOworICAgICAgICB9KTsKKyAgICB9KTsKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisKKyAgICAvLyBUaGUgcHJlY29ubmVjdCB0
byB0aGUgc2VydmVyIHdpbGwgdXNlIHRoZSBkZWZhdWx0IHNldHRpbmcgb2YgInVzZSB0aGUgY3Jl
ZGVudGlhbCBzdG9yZSIsCisgICAgLy8gYW5kIHRoZXJlZm9yZSB1c2UgdGhlIGNyZWRlbnRpYWwt
c3RvcmUtYmxlc3NlZCBOU1VSTFNlc3Npb24uCisgICAgW3dlYlZpZXcgX3ByZWNvbm5lY3RUb1Nl
cnZlcjpzZXJ2ZXIucmVxdWVzdCgpLlVSTF07CisgICAgVXRpbDo6cnVuKCZhbnlDb25uZWN0aW9u
cyk7CisgICAgVXRpbDo6c3BpblJ1bkxvb3AoMTApOworICAgIEVYUEVDVF9GQUxTRShyZXF1ZXN0
ZWQpOworCisgICAgLy8gVGhlbiB0aGlzIHJlcXVlc3Qgd2lsbCAqbm90KiB1c2UgdGhlIGNyZWRl
bnRpYWwgc3RvcmUsIHRoZXJlZm9yZSB1c2luZyBhIGRpZmZlcmVudCBOU1VSTFNlc3Npb24KKyAg
ICAvLyB0aGF0IGRvZXNuJ3Qga25vdyBhYm91dCB0aGUgYWJvdmUgcHJlY29ubmVjdCwgdHJpZ2dl
cmluZyBhIHNlY29uZCBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIuCisgICAgd2ViVmlldy5nZXQo
KS5fY2FuVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSBOTzsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpzZXJ2ZXIucmVxdWVzdCgpXTsKKyAgICBVdGlsOjpydW4oJnJlcXVlc3RlZCk7CisKKyAgICBF
WFBFQ1RfRVEoY29ubmVjdGlvbkNvdW50LCAydSk7CiB9CiAKIC8vIE1vamF2ZSBDRk5ldHdvcmsg
X3ByZWNvbm5lY3QgU1BJIHNlZW1zIHRvIGhhdmUgYSBidWcgY2F1c2luZyB0aGlzIHRvIHRpbWUg
b3V0Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>