<?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>200902</bug_id>
          
          <creation_ts>2019-08-19 16:32:33 -0700</creation_ts>
          <short_desc>[iOS] Should show input view when became first responder if keyboard was showing when the view was resigned</short_desc>
          <delta_ts>2020-03-25 10:12:31 -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 Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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>
          
          <blocked>190571</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>repstein</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1562840</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-19 16:32:33 -0700</bug_when>
    <thetext>We should remember whether the keyboard is showing when the view resigns first responder so that we can show the keyboard (again) when the view becomes first responder. On a iPad without a hardware keyboard, this makes the experience more pleasant when switching back and forth between a tab with a focused editable elements, say like a Google Docs document, and another tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562841</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-19 16:32:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/54231756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1562842</commentid>
    <comment_count>2</comment_count>
      <attachid>376716</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-19 16:34:49 -0700</bug_when>
    <thetext>Created attachment 376716
Work-in-progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563145</commentid>
    <comment_count>3</comment_count>
      <attachid>376782</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-20 11:04:14 -0700</bug_when>
    <thetext>Created attachment 376782
Patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563276</commentid>
    <comment_count>4</comment_count>
      <attachid>376782</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-08-20 15:43:31 -0700</bug_when>
    <thetext>Comment on attachment 376782
Patch and layout tests

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:341
&gt; +    BOOL _shouldShowInputViewForPageReActivation;

Nit - this should probably be …Reactivation instead of …ReActivation.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5277
&gt; +    SetForScope&lt;BOOL&gt; shouldShowInputViewForPageReActivationScope { _shouldShowInputViewForPageReActivation, startInputSessionPolicy == _WKFocusStartsInputSessionPolicyAuto &amp;&amp; (self.isFirstResponder || _becomingFirstResponder) &amp;&amp; activityStateChanges.contains(WebCore::ActivityState::IsFocused) &amp;&amp; _wasResignedWhileShowingInputView };

Nit - we could consider factoring out the self.isFirstResponder || _becomingFirstResponder check into a separate method, and just use the helper in both places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563295</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-20 16:44:14 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Wenson Hsieh from comment #4)
&gt; Comment on attachment 376782 [details]
&gt; Patch and layout tests
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=376782&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.h:341
&gt; &gt; +    BOOL _shouldShowInputViewForPageReActivation;
&gt; 
&gt; Nit - this should probably be …Reactivation instead of …ReActivation.
&gt; 

Yep, will fix.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:5277
&gt; &gt; +    SetForScope&lt;BOOL&gt; shouldShowInputViewForPageReActivationScope { _shouldShowInputViewForPageReActivation, startInputSessionPolicy == _WKFocusStartsInputSessionPolicyAuto &amp;&amp; (self.isFirstResponder || _becomingFirstResponder) &amp;&amp; activityStateChanges.contains(WebCore::ActivityState::IsFocused) &amp;&amp; _wasResignedWhileShowingInputView };
&gt; 
&gt; Nit - we could consider factoring out the self.isFirstResponder ||
&gt; _becomingFirstResponder check into a separate method, and just use the
&gt; helper in both places.

Will factor out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1563744</commentid>
    <comment_count>6</comment_count>
      <attachid>376933</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-21 15:36:27 -0700</bug_when>
    <thetext>Created attachment 376933
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564269</commentid>
    <comment_count>7</comment_count>
      <attachid>377059</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-22 15:21:12 -0700</bug_when>
    <thetext>Created attachment 377059
To land

Rebased patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564271</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-22 15:23:00 -0700</bug_when>
    <thetext>Committed r249031: &lt;https://trac.webkit.org/changeset/249031&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564487</commentid>
    <comment_count>9</comment_count>
    <who name="Russell Epstein">repstein</who>
    <bug_when>2019-08-23 10:15:57 -0700</bug_when>
    <thetext>Reverted r249031 for reason:

Causes multiple test failures on iOS simulator

Committed r249051: &lt;https://trac.webkit.org/changeset/249051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633925</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-25 10:10:34 -0700</bug_when>
    <thetext>(In reply to Russell Epstein from comment #9)
&gt; Reverted r249031 for reason:
&gt; 
&gt; Causes multiple test failures on iOS simulator
&gt; 
&gt; Committed r249051: &lt;https://trac.webkit.org/changeset/249051&gt;

To elaborate more, the reason why the change was rolled out was because it revealed a UIKit bug, &lt;rdar://problem/55201802&gt;. That bug has been fixed in 13.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1633927</commentid>
    <comment_count>11</comment_count>
      <attachid>394514</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-25 10:12:31 -0700</bug_when>
    <thetext>Created attachment 394514
To Land</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376716</attachid>
            <date>2019-08-19 16:34:49 -0700</date>
            <delta_ts>2019-08-20 11:04:13 -0700</delta_ts>
            <desc>Work-in-progress</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>21634</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSA5Yzc3ZmE3Y2QxMmM0OWJlZjRjYjlkODNjODY4MDQ2NTFmNzAzNzdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRhYmF0ZXNAYXBwbGUuY29tPgpEYXRl
OiBNb24sIDE5IEF1ZyAyMDE5IDE2OjM0OjA0IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV29yay1p
bi1wcm9ncmVzcyBmb3IgV0sgQnVnIDIwMDkwMgoKLS0tCiAuLi4vaW9zL3Jlc291cmNlcy9jaGVj
ay1rZXlib2FyZC1vbi1zY3JlZW4uanMgfCAxNSArKysrKysKIC4uLnN0LXJlc3BvbmRlci1hZnRl
ci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCB8IDExICsrKysrCiAuLi5taW5nLWZpcnN0LXJlc3Bv
bmRlci1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgfCA0NCArKysrKysrKysrKysrKysrKysKIC4uLndo
ZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4dCB8IDE4ICsrKysrKysrCiAu
Li5leWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwgfCA0NiArKysrKysr
KysrKysrKysrKysrCiBMYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzICAgICAgICAg
ICAgfCAyNCArKysrKysrKysrCiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50Lmgg
ICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
ICAgICAgIHwgIDIgKy0KIC4uLi9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiB8ICAyICstCiAuLi4vV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1Mu
aCAgfCAgMiArLQogLi4uL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
IHwgIDQgKy0KIC4uLi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oICB8
ICA0ICstCiAuLi4vVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gfCAx
OSArKysrKy0tLQogLi4uL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSAg
IHwgIDYgKy0tCiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCAg
fCAgMiArLQogMTUgZmlsZXMgY2hhbmdlZCwgMTgzIGluc2VydGlvbnMoKyksIDE4IGRlbGV0aW9u
cygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yZXNv
dXJjZXMvY2hlY2sta2V5Ym9hcmQtb24tc2NyZWVuLmpzCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0
b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0ZXItbmF2aWdh
dGlvbi1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLmh0bWwKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29t
aW5nLWZpcnN0LXJlc3BvbmRlci5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVzb3VyY2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIzN2JlYjRhMzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVzb3VyY2VzL2No
ZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcwpAQCAtMCwwICsxLDE1IEBACithc3luYyBmdW5jdGlv
biBjaGVja0tleWJvYXJkT25TY3JlZW4oKQoreworICAgIGlmIChhd2FpdCBVSUhlbHBlci5pc1No
b3dpbmdLZXlib2FyZCgpKQorICAgICAgICB0ZXN0UGFzc2VkKCJLZXlib2FyZCBpcyBvbiBzY3Jl
ZW4uIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJLZXlib2FyZCBzaG91bGQgYmUg
b24gc2NyZWVuLCBidXQgaXMgbm90LiIpOworfQorCithc3luYyBmdW5jdGlvbiBjaGVja0tleWJv
YXJkTm90T25TY3JlZW4oKQoreworICAgIGlmIChhd2FpdCBVSUhlbHBlci5pc1Nob3dpbmdLZXli
b2FyZCgpKQorICAgICAgICB0ZXN0RmFpbGVkKCJLZXlib2FyZCBzaG91bGQgbm90IGJlIG9uIHNj
cmVlbiwgYnV0IGl0IGlzLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdFBhc3NlZCgiS2V5Ym9h
cmQgaXMgbm90IG9uIHNjcmVlbi4iKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2Fy
ZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0
ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmUxZGVkNTg0OTZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmll
bGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBzb2Z0d2FyZSBrZXli
b2FyZCBpcyBub3Qgc2hvd24gZm9yIGFuIGF1dG9mb2N1c2VkIHRleHQgZmllbGQgb24gYmVjb21p
bmcgZmlyc3QgcmVzcG9uZGVyIGFmdGVyIG5hdmlnYXRpbmcgZnJvbSBhIHBhZ2Ugd2l0aCBhIGZv
Y3VzZWQgdGV4dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBiZWNhbWUgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lu
cHV0JykKK1BBU1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNl
ZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJk
LWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRl
ci1uYXZpZ2F0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmZkYzU0YTQyMDNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1i
ZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEs
NDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxpbnB1dCBpZD0iaW5wdXQiIGF1dG9mb2N1cz4gPCEtLSBPbmx5IHJlc3BlY3RlZCBvbiBp
T1Mgd2hlbiBhIGhhcmR3YXJlIGtleWJvYXJkIGlzIGF0dGFjaGVkLiAtLT4KKzxzY3JpcHQ+Cit3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0
IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQor
CisgICAgYXdhaXQgVUlIZWxwZXIuc2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsK
KworICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9jaGVja1Jlc3VsdCIpIHsK
KyAgICAgICAgYXN5bmMgZnVuY3Rpb24gY2hlY2tSZXN1bHRBbmREb25lKCkgeworICAgICAgICAg
ICAgYXdhaXQgY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVuKCk7CisgICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0RWxlbWVudCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgICAgICAgfQorICAgICAgICBhd2FpdCBVSUhlbHBlci5iZWNvbWVGaXJzdFJlc3Bv
bmRlcigpOworICAgICAgICBzaG91bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQuYWN0aXZlRWxlbWVu
dCIsICJkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKSIsIGNoZWNrUmVzdWx0QW5kRG9u
ZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50
QW5kV2FpdEZvcklucHV0U2Vzc2lvbihpbnB1dEVsZW1lbnQpOworICAgICAgICBhd2FpdCBVSUhl
bHBlci5yZXNpZ25GaXJzdFJlc3BvbmRlcigpOworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0
Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiArPSAi
P2NoZWNrUmVzdWx0IjsKKyAgICB9Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQg
dGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIG5vdCBzaG93biBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4
dCBmaWVsZCBvbiBiZWNvbWluZyBmaXJzdCByZXNwb25kZXIgYWZ0ZXIgbmF2aWdhdGluZyBmcm9t
IGEgcGFnZSB3aXRoIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLiIpOworcnVuVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJl
Y29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc0NDVlMGZlMTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1y
ZXNwb25kZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhhdCBp
biBhIGZvY3VzZWQgdGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFu
ZCBzaG93biB3aGVuIHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3Bv
bmRlciwgcmVzcGVjdGl2ZWx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitB
ZnRlciB0YXBwaW5nIDxpbnB1dD46CitQQVNTIEtleWJvYXJkIGlzIG9uIHNjcmVlbi4KKworQWZ0
ZXIgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNj
cmVlbi4KKworQWZ0ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBp
cyBvbiBzY3JlZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5
Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVy
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYzZGI3MmNjMTE1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5
Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbApAQCAtMCwwICsxLDQ2IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
aGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aW5wdXQgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQiKTsK
KworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVy
LiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQgVUlIZWxwZXIuc2V0SGFy
ZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgdGFw
cGluZyAmbHQ7aW5wdXQmZ3Q7OiIpOworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVu
dEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oaW5wdXRFbGVtZW50KTsKKyAgICBhd2FpdCBjaGVja0tl
eWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgcmVzaWduaW5nIGZpcnN0
IHJlc3BvbmRlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25GaXJzdFJlc3BvbmRlcigp
OworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOworICAgIGF3YWl0
IGNoZWNrS2V5Ym9hcmROb3RPblNjcmVlbigpOworCisgICAgZGVidWcoIjxicj5BZnRlciBiZWNv
bWluZyBmaXJzdCByZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuYmVjb21lRmlyc3RS
ZXNwb25kZXIoKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb1Nob3coKTsK
KyAgICBhd2FpdCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRvY3VtZW50LmJvZHku
cmVtb3ZlQ2hpbGQoaW5wdXRFbGVtZW50KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZGVz
Y3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbiBhIGZvY3VzZWQgdGV4dCBmaWVsZCB0aGUgc29m
dHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBzaG93biB3aGVuIHRoZSB3ZWIgdmlldyByZXNp
Z25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgcmVzcGVjdGl2ZWx5LiIpOworcnVuVGVz
dCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcwppbmRleCA4NDMxZWRiMzkzYS4uNThmMzQxNDNlZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcwpAQCAtNTA2LDYgKzUwNiwyMiBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBV
SUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyB3YWl0Rm9yS2V5Ym9h
cmRUb1Nob3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlz
LmlzSU9TRmFtaWx5KCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisK
KyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ0tleWJvYXJkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRpZFNob3dLZXlib2FyZENhbGxiYWNrID0gKCkgPT4gdWlDb250cm9sbGVyLnVpU2NyaXB0
Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAgIH0p
OworICAgIH0KKwogICAgIHN0YXRpYyBnZXRVSUNhcmV0UmVjdCgpCiAgICAgewogICAgICAgICBp
ZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1NGYW1pbHkoKSkKQEAgLTc4NSw2ICs4
MDEsMTQgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICByZXR1
cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRy
b2xsZXIucmVzaWduRmlyc3RSZXNwb25kZXIoKWAsIHJlc29sdmUpKTsKICAgICB9CiAKKyAgICBz
dGF0aWMgYmVjb21lRmlyc3RSZXNwb25kZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlz
V2ViS2l0MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
YHVpQ29udHJvbGxlci5iZWNvbWVGaXJzdFJlc3BvbmRlcigpYCwgcmVzb2x2ZSkpOworICAgIH0K
KwogICAgIHN0YXRpYyBtaW5pbXVtWm9vbVNjYWxlKCkKICAgICB7CiAgICAgICAgIGlmICghdGhp
cy5pc1dlYktpdDIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCBlYzY0
YmM5ZTE2Mi4uOGE0YmQyYzRmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
QEAgLTM4Niw3ICszODYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERp
ZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVy
YWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgQVBJOjpPYmplY3QqIHVzZXJEYXRh
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1v
ZGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1v
ZGUoV2ViQ29yZTo6SW5wdXRNb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZz4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRl
QWZ0ZXJGb2N1cygpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNGb2N1c2luZ0VsZW1lbnQoKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIGludGVycHJldEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sIGlzQ2hhckV2ZW50KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGI0MzgzY2FmODhmLi44NDE2YmI0ZTRmYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE5NDUsNyArMTk0NSw3IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBP
cHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5n
ZXMsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cigpOwotICAgIHZv
aWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKTsK
KyAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0
TW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KTsKICAgICB2b2lk
IGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0
YXRlVXBkYXRlQWZ0ZXJGb2N1cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZWNhZDk1ZTQ2YjUuLjliMWE4MjY4MDg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC00MDgsNyArNDA4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgIEVs
ZW1lbnREaWRGb2N1cyhzdHJ1Y3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIGlu
Zm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUs
IE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hh
bmdlcywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBFbGVtZW50RGlkQmx1cigpCi0g
ICAgRm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoZW51bTp1aW50OF90IFdlYkNvcmU6
OklucHV0TW9kZSBtb2RlKQorICAgIEZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKGVu
dW06dWludDhfdCBXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQogICAgIFNjcm9sbGluZ05v
ZGVTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKQogICAgIFNjcm9sbGluZ05vZGVTY3JvbGxEaWRFbmRT
Y3JvbGwoKQogICAgIFNob3dJbnNwZWN0b3JIaWdobGlnaHQoc3RydWN0IFdlYkNvcmU6OkhpZ2hs
aWdodCBoaWdobGlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCmluZGV4IDMzMzFmZDRkMjMzLi43Yjc1NzYzZjA0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTE1MCw3ICsx
NTAsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clBy
ZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2
aXR5U3RhdGVDaGFuZ2VzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOwogICAgIHZv
aWQgZWxlbWVudERpZEJsdXIoKSBvdmVycmlkZTsKLSAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlk
Q2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBm
b2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUsIE9wdGlv
blNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPikgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aWRSZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc0ZvY3VzaW5nRWxlbWVudCgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2VsZWN0aW9uRGlkQ2hh
bmdlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KaW5kZXggNjc4ZDQwMTI2NTMuLmE4MzQ2YWMwMTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01NzAs
OSArNTcwLDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEJsdXIoKQogICAgIFtt
X2NvbnRlbnRWaWV3IF9lbGVtZW50RGlkQmx1cl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6
OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSBtb2Rl
KQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUo
V2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcykKIHsKLSAgICBbbV9jb250ZW50VmlldyBfZGlk
VXBkYXRlSW5wdXRNb2RlOm1vZGVdOworICAgIFttX2NvbnRlbnRWaWV3IF9kaWRVcGRhdGVJbnB1
dE1vZGU6bW9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczphY3Rpdml0eVN0YXRlQ2hhbmdlc107CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlY2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVy
Rm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDEyN2UzNTJkZmVhLi43ZDM1NzJmNzI2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaApAQCAtMzM3LDYgKzMzNyw4IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7
CiAjZW5kaWYKIAogICAgIEJPT0wgX2tleWJvYXJkRGlkUmVxdWVzdERpc21pc3NhbDsKKyAgICBC
T09MIF93YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0VmlldzsKKyAgICBCT09MIF9zaG91bGRT
aG93SW5wdXRWaWV3Rm9yUGFnZVJlQWN0aXZhdGlvbjsKIAogI2lmIFVTRShVSUtJVF9LRVlCT0FS
RF9BRERJVElPTlMpCiAgICAgQk9PTCBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlOwpAQCAtNDYw
LDcgKzQ2Miw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04oREVDTEFS
RV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV9lbGVtZW50RGlk
Rm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRp
b24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3Vz
Tm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOihPcHRpb25T
ZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pYWN0aXZpdHlTdGF0ZUNoYW5nZXMgdXNl
ck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3Q7CiAtICh2b2lk
KV9lbGVtZW50RGlkQmx1cjsKIC0gKHZvaWQpX2hpZGVDb250ZXh0TWVudUhpbnRDb250YWluZXI7
Ci0tICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdlYkNvcmU6OklucHV0TW9kZSltb2RlOwor
LSAodm9pZClfZGlkVXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZSBhY3Rp
dml0eVN0YXRlQ2hhbmdlczooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+
KWFjdGl2aXR5U3RhdGVDaGFuZ2VzOwogLSAodm9pZClfZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBk
YXRlQWZ0ZXJGb2N1czsKIC0gKHZvaWQpX2hhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFu
Z2VkOwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRiNjYw
NDE3OGFiLi40YTI4NTE5MTE5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC05NDIsNiArOTQyLDcgQEAg
LSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KIAogICAgIFtzZWxmIF9yZXNldElucHV0Vmlld0Rl
ZmVycmFsXTsKICAgICBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiA9IHsgfTsKKyAgICBfd2Fz
UmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZpZXcgPSBOTzsKICAgICAKICAgICBbX2tleWJvYXJk
U2Nyb2xsaW5nQW5pbWF0b3IgaW52YWxpZGF0ZV07CiAgICAgX2tleWJvYXJkU2Nyb2xsaW5nQW5p
bWF0b3IgPSBuaWw7CkBAIC0xMjYwLDcgKzEyNjEsOCBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVz
cG9uZGVyRm9yV2ViVmlldwogCiAgICAgU2V0Rm9yU2NvcGU8Qk9PTD4gcmVzaWduaW5nRmlyc3RS
ZXNwb25kZXJTY29wZSB7IF9yZXNpZ25pbmdGaXJzdFJlc3BvbmRlciwgWUVTIH07CiAKLSAgICBb
c2VsZiBlbmRFZGl0aW5nQW5kVXBkYXRlRm9jdXNBcHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRFZGl0
aW5nUmVhc29uUmVzaWduaW5nRmlyc3RSZXNwb25kZXJdOworICAgIEJPT0wgd2FzS2V5Ym9hcmRP
blNjcmVlbiA9IFVJUGVyaXBoZXJhbEhvc3QuYWN0aXZlSW5zdGFuY2UuaXNPblNjcmVlbjsKKyAg
ICBbc2VsZiBlbmRFZGl0aW5nQW5kVXBkYXRlRm9jdXNBcHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRF
ZGl0aW5nUmVhc29uUmVzaWduaW5nRmlyc3RSZXNwb25kZXJdOyAvLyBNYXkgZGlzbWlzcyB0aGUg
a2V5Ym9hcmQuCiAKICAgICAvLyBJZiB0aGUgdXNlciBleHBsaWNpdGx5IGRpc21pc3NlZCB0aGUg
a2V5Ym9hcmQgdGhlbiB3ZSB3aWxsIGxvc2UgZmlyc3QgcmVzcG9uZGVyCiAgICAgLy8gc3RhdHVz
IG9ubHkgdG8gZ2FpbiBpdCBiYWNrIGFnYWluLiBKdXN0IGRvbid0IHJlc2lnbiBpbiB0aGF0IGNh
c2UuCkBAIC0xMjcyLDYgKzEyNzQsNyBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyRm9y
V2ViVmlldwogICAgIGJvb2wgc3VwZXJEaWRSZXNpZ24gPSBbc3VwZXIgcmVzaWduRmlyc3RSZXNw
b25kZXJdOwogCiAgICAgaWYgKHN1cGVyRGlkUmVzaWduKSB7CisgICAgICAgIF93YXNSZXNpZ25l
ZFdoaWxlU2hvd2luZ0lucHV0VmlldyA9IHdhc0tleWJvYXJkT25TY3JlZW47CiAgICAgICAgIFtz
ZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVdOwogICAgICAgICBfcGFnZS0+YWN0aXZpdHlT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpOwogICAgIH0K
QEAgLTE3MDMsNyArMTcwNiw3IEBAIC0gKEJPT0wpc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJk
VUkKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1cHBvcnQgaW5wdXRtb2RlPSJub25lIiB3aGVu
IHRoZSBoYXJkd2FyZSBrZXlib2FyZCBpcyBhdHRhY2hlZC4KICAgICAvLyBXZSBjdXJyZW50bHkg
cmVmcmFpbiBmcm9tIGRvaW5nIHNvIGJlY2F1c2UgdGhhdCB3b3VsZCBwcmV2ZW50IFVJS2l0IGZy
b20gc2hvd2luZwogICAgIC8vIHRoZSBsYW5ndWFnZSBwaWNrZXIgd2hlbiBwcmVzc2luZyB0aGUg
Z2xvYmUga2V5IHRvIGNoYW5nZSB0aGUgaW5wdXQgbGFuZ3VhZ2UuCi0gICAgaWYgKF9mb2N1c2Vk
RWxlbWVudEluZm9ybWF0aW9uLmlucHV0TW9kZSA9PSBXZWJDb3JlOjpJbnB1dE1vZGU6Ok5vbmUg
JiYgIUdTRXZlbnRJc0hhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZCgpKQorICAgIGlmIChfZm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnB1dE1vZGUgPT0gV2ViQ29yZTo6SW5wdXRNb2RlOjpOb25l
ICYmICFHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoKSAmJiAhX3Nob3VsZFNob3dJ
bnB1dFZpZXdGb3JQYWdlUmVBY3RpdmF0aW9uKQogICAgICAgICByZXR1cm4gTk87CiAKICAgICBy
ZXR1cm4gW3NlbGYgX3Nob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJSWdub3JpbmdJbnB1dE1v
ZGVdOwpAQCAtMzk0OCw2ICszOTUxLDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZQogI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgX3NlZW5IYXJkd2Fy
ZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwogI2VuZGlmCisgICAgX3dhc1Jlc2ln
bmVkV2hpbGVTaG93aW5nSW5wdXRWaWV3ID0gTk87CiAgICAgW3NlbGYgX2VsZW1lbnREaWRCbHVy
XTsKICAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJdOwogICAgIFtz
ZWxmIF9oaWRlQ29udGV4dE1lbnVIaW50Q29udGFpbmVyXTsKQEAgLTUyNzAsNiArNTI3NCw4IEBA
IC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgaWYgKFtpbnB1dERlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1l
bnQ6KV0pCiAgICAgICAgIHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5ID0gW2lucHV0RGVsZWdhdGUg
X3dlYlZpZXc6X3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6Zm9jdXNlZEVs
ZW1lbnRJbmZvLmdldCgpXTsKIAorICAgIFNldEZvclNjb3BlPEJPT0w+IHNob3VsZFNob3dJbnB1
dFZpZXdGb3JQYWdlUmVBY3RpdmF0aW9uU2NvcGUgeyBfc2hvdWxkU2hvd0lucHV0Vmlld0ZvclBh
Z2VSZUFjdGl2YXRpb24sIHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5ID09IF9XS0ZvY3VzU3RhcnRz
SW5wdXRTZXNzaW9uUG9saWN5QXV0byAmJiAoc2VsZi5pc0ZpcnN0UmVzcG9uZGVyIHx8IF9iZWNv
bWluZ0ZpcnN0UmVzcG9uZGVyKSAmJiBhY3Rpdml0eVN0YXRlQ2hhbmdlcy5jb250YWlucyhXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpICYmIF93YXNSZXNpZ25lZFdoaWxlU2hvd2lu
Z0lucHV0VmlldyB9OworCiAgICAgQk9PTCBzaG91bGRTaG93SW5wdXRWaWV3ID0gWyZdIHsKICAg
ICAgICAgc3dpdGNoIChzdGFydElucHV0U2Vzc2lvblBvbGljeSkgewogICAgICAgICBjYXNlIF9X
S0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzoKQEAgLTUyNzksMTAgKzUyODUsNyBA
QCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAgICAgICAgICAgICAgIHJldHVybiBZRVM7CiAK
ICAgICAgICAgICAgIGlmIChzZWxmLmlzRmlyc3RSZXNwb25kZXIgfHwgX2JlY29taW5nRmlyc3RS
ZXNwb25kZXIpIHsKLSAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBzb2Z0d2FyZSBrZXlib2Fy
ZCBpcyBiZWluZyB1c2VkIHRvIGVudGVyIGFuIHVybCwgb25seSB0aGUgZm9jdXMgYWN0aXZpdHkg
c3RhdGUgaXMgY2hhbmdpbmcuCi0gICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCBhdXRv
IGZvY3VzIG9uIHRoZSBwYWdlIGJlaW5nIG5hdmlnYXRlZCB0byBzaG91bGQgYmUgZGlzYWJsZWQs
IHVubGVzcyBhIGhhcmR3YXJlCi0gICAgICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaXMgYXR0YWNo
ZWQuCi0gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5U3RhdGVDaGFuZ2VzICYmIGFjdGl2aXR5
U3RhdGVDaGFuZ2VzICE9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCkKKyAgICAg
ICAgICAgICAgICBpZiAoX3Nob3VsZFNob3dJbnB1dFZpZXdGb3JQYWdlUmVBY3RpdmF0aW9uKQog
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gWUVTOwogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykK
QEAgLTU0ODgsMTIgKzU0OTEsMTQgQEAgLSAodm9pZClfaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJp
bGl0eUNoYW5nZWQKICAgICBbc2VsZiByZWxvYWRJbnB1dFZpZXdzXTsKIH0KIAotLSAodm9pZClf
ZGlkVXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZQorLSAodm9pZClfZGlk
VXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZSBhY3Rpdml0eVN0YXRlQ2hh
bmdlczooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KWFjdGl2aXR5U3Rh
dGVDaGFuZ2VzCiB7CiAgICAgaWYgKCFzZWxmLmlucHV0RGVsZWdhdGUgfHwgX2ZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpCiAg
ICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShXQVRDSE9TKQorICAgIFNldEZvclNjb3Bl
PEJPT0w+IHNob3VsZFNob3dJbnB1dFZpZXdGb3JQYWdlUmVBY3RpdmF0aW9uU2NvcGUgeyBfc2hv
dWxkU2hvd0lucHV0Vmlld0ZvclBhZ2VSZUFjdGl2YXRpb24sIChzZWxmLmlzRmlyc3RSZXNwb25k
ZXIgfHwgX2JlY29taW5nRmlyc3RSZXNwb25kZXIpICYmIGFjdGl2aXR5U3RhdGVDaGFuZ2VzLmNv
bnRhaW5zKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCkgJiYgX3dhc1Jlc2lnbmVk
V2hpbGVTaG93aW5nSW5wdXRWaWV3IH07CisKICAgICBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bi5pbnB1dE1vZGUgPSBtb2RlOwogICAgIFtzZWxmIHJlbG9hZElucHV0Vmlld3NdOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRl
eCBiN2E2YjM5YmE0ZC4uOGM3ZTQwZWVhYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtOTI2LDcgKzkyNiw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjplbGVtZW50RGlkQmx1cigpCiAgICAgcGFnZUNsaWVudCgpLmVsZW1lbnREaWRCbHVy
KCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0
TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2Vk
RWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQog
ewogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fdG91Y2hBbmRQb2ludGVyRXZl
bnRUcmFja2luZy5pc1RyYWNraW5nQW55dGhpbmcoKSkgewpAQCAtOTM1LDcgKzkzNSw3IEBAIHZv
aWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3Jl
OjpJbnB1dE1vZGUgbW9kZSkKICAgICB9CiAjZW5kaWYKIAotICAgIHBhZ2VDbGllbnQoKS5mb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlKTsKKyAgICBwYWdlQ2xpZW50KCkuZm9j
dXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUobW9kZSwgYWN0aXZpdHlTdGF0ZUNoYW5nZXMp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCkKQEAg
LTk0Myw3ICs5NDMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNoUG9p
bnRzKCkKICAgICBpZiAoIW1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgcGFnZUNsaWVudCgpLmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKCpt
X3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2UpOworICAgIHBhZ2VDbGllbnQoKS5mb2N1c2VkRWxlbWVu
dERpZENoYW5nZUlucHV0TW9kZSgqbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlLCB7IH0pOwogICAg
IG1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZSA9IFdURjo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3YmM3NTlhOTUzZS4u
NTRhY2Y3ZDExMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC01NDg1LDcgKzU0ODUsNyBAQCB2b2lkIFdlYlBhZ2U6OmZvY3VzZWRFbGVtZW50
RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIFdlYkNvcgogICAg
IGlmICghaXNUZXh0Rm9ybUNvbnRyb2xPckVkaXRhYmxlQ29udGVudChlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRWxl
bWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlLCBtX2xhc3RBY3Rp
dml0eVN0YXRlQ2hhbmdlcykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obW9kZSk7CiAjZW5k
aWYKLS0gCjIuMjEuMCAoQXBwbGUgR2l0LTEyMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376782</attachid>
            <date>2019-08-20 11:04:14 -0700</date>
            <delta_ts>2019-08-21 15:36:26 -0700</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-200902-20190820110413.patch</filename>
            <type>text/plain</type>
            <size>31197</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzMzAzZjgwY2U1Y2JlMWM4
MjQ5ZjkxZmM0Yzk2OTY2NzYyYmZhYzkuLmM1OWYwZjU4OWRjZTNjYTZmMTY1YmY1Yzc3Mzc0NWM2
ZWI1MmZlMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTktMDgtMjAgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlu
cHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93
aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0
MjMxNzU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdoZW4gcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlciBzYXZlIHdoZXRoZXIgdGhlIHBlcmlwaGVy
YWwgaG9zdCBoYXMgYW4gaW5wdXQgdmlldyBvbiBzY3JlZW4sCisgICAgICAgIGluY2x1ZGluZyB0
aGUgc29mdHdhcmUga2V5Ym9hcmQsIHNvIHRoYXQgd2Ugc2hvdyB0aGUgaW5wdXQgdmlldyhzKSBh
Z2FpbiB3aGVuIHRoZSBXS1dlYlZpZXcKKyAgICAgICAgaXMgbWFkZSBmaXJzdCByZXNwb25kZXIu
IEluIFNhZmFyaSwgdGhpcyBhdm9pZHMgdGhlIG5lZWQgZm9yIGEgcGVyc29uIHRvIGV4cGxpY2l0
bHkgZm9jdXMgYW4KKyAgICAgICAgZWRpdGFibGUgZWxlbWVudCBhZ2FpbiB0byBicmluZyB1cCB0
aGUga2V5Ym9hcmQgd2hlbiByZXR1cm5pbmcgdG8gYSB0YWIgdGhleSB3ZXJlIHByZXZpb3VzbHkK
KyAgICAgICAgdHlwaW5nIGluLiBJdCBhbHNvIG1ha2VzIHRoZSBiZWhhdmlvciBvZiBzd2l0Y2hp
bmcgdGFicyBpbiBTYWZhcmkgd2l0aCBhIHNvZnR3YXJlIGtleWJvYXJkCisgICAgICAgIG1hdGNo
IHRoZSBiZWhhdmlvciBvZiBkb2luZyB0aGUgc2FtZSB0aGluZyB3aGVuIGEgaGFyZHdhcmUga2V5
Ym9hcmQgYXR0YWNoZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Zm9jdXNlZEVsZW1lbnREaWRDaGFu
Z2VJbnB1dE1vZGUpOgorICAgICAgICBQYXNzIGEgZGlmZiBvZiB0aGUgYWN0aXZpdHkgc3RhdGUg
ZnJvbSB0aGUgd2ViIHByb2Nlc3MgdG8gdGhlIFVJIHByb2Nlc3Mgc28gdGhhdCB3ZSBjYW4KKyAg
ICAgICAgZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIGFuIGlucHV0bW9kZSBjaGFuZ2UgYXMgYSByZXN1
bHQgb2YgcGFnZSBkZWFjdGl2YXRpb24gdnMgYSBjaGFuZ2UKKyAgICAgICAgY2F1c2VkIGJ5IHNv
bWUgb3RoZXIgbWVhbnMuIFdlIG5lZWQgdG8gZGlmZmVyZW50aWF0ZSB0aGVzZSBjYXNlcyBiZWNh
dXNlIHdlIHdhbnQgdG8KKyAgICAgICAgaWdub3JlIGEgcGFnZSB0aGF0IHNldHMgaW5wdXRtb2Rl
ICJub25lIiAoaS5lLiBhIHJlcXVlc3QgdG8gaGlkZSB0aGUga2V5Ym9hcmQpIGZyb20gaW5zaWRl
CisgICAgICAgIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBpZiB0aGUgaGFuZGxlciB3YXMgY2FsbGVk
IGFzIHBhcnQgb2YgdGhlIHByb2Nlc3Mgb2YgcGFnZSBhY3RpdmF0aW9uCisgICAgICAgIChpLmUu
IHN3aXRjaGluZyB0byB0aGUgdGFiKS4gR29vZ2xlIERvY3MgaXMgb25lIGV4YW1wbGUgb2YgYSB3
ZWIgc2l0ZSB0aGF0IHNldHMgaW5wdXRtb2RlCisgICAgICAgIHRvICJub25lIiBhcyBhIHJlc3Vs
dCBvZiB0aGUgcGFnZSBhY3RpdmF0aW4gcHJvY2Vzcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2xl
YW51cEludGVyYWN0aW9uXSk6IENsZWFyIG91dCBzdGF0ZS4KKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyByZXNpZ25GaXJzdFJlc3BvbmRlckZvcldlYlZpZXddKTogU2F2ZSB3aGV0aGVyIHRoZSBw
ZXJpcGhlcmFsIGhvc3QgaXMgb24gc2NyZWVuCisgICAgICAgIGludG8gYSBsb2NhbCBiZWZvcmUg
ZW5kaW5nIHRoZSBlZGl0aW5nIHNlc3Npb24uIFdlIHRoZW4gY29weSB0aGUgbG9jYWwgaW50byB0
aGUgaXZhciBpZiB3ZQorICAgICAgICBhY3R1YWxseSB3aWxsIHJlc2lnbi4gVGhpcyBvcmRlcmlu
ZyBpcyBleHBsaWNpdGx5IGRvbmUgYmVjYXVzZToKKyAgICAgICAgICAgICAgICAxLiBFbmRpbmcg
dGhlIGVkaXRpbmcgc2Vzc2lvbiBtYXkgZGlzbWlzcyB0aGUga2V5Ym9hcmQgPT4gd2UgbmVlZCB0
byBxdWVyeSB0aGUgcGVyaXBoZXJhbAorICAgICAgICAgICAgICAgICAgIGhvc3QgZmlyc3QuCisg
ICAgICAgICAgICAgICAgMi4gSWYgdGhlIHZpZXcgaXMgYmVpbmcgcmVzaWduZWQgYXMgYSByZXN1
bHQgb2YgYSBrZXlib2FyZCBkaXNtaXNzYWwgKGkuZS4gYSBwZXJzb24gcHJlc3NlZAorICAgICAg
ICAgICAgICAgICAgIHRoZSBoaWRlIGtleWJvYXJkIGJ1dHRvbiBvbiBpUGFkKSB0aGVuIHRoZSB1
c2VyIGhhcyBpbmRpY2F0ZWQgdGhhdCB0aGV5IGFyZSBmaW5pc2hlZAorICAgICAgICAgICAgICAg
ICAgIHdpdGggdGhlIGtleWJvYXJkIGFuZCB3ZSBkbyBub3Qgd2FudCB0byBzaG93IHRoZSBrZXli
b2FyZCBvbiBwYWdlIHJlLWFjdGl2YXRpb24gPT4gd2UKKyAgICAgICAgICAgICAgICAgICBkbyBu
b3Qgd2FudCB0byBjb3B5IHRoZSBsb2NhbCB0byB0aGUgaXZhci4KKyAgICAgICAgICAgICAgICAz
LiBJZiB0aGUgdmlldyByZWZ1c2VzIHRvIHJlc2lnbiBpdHNlbGYgdGhlbiBpdCBkb2VzIG5vdCBt
YWtlIHNlbnNlIHRvIHNhdmUgdGhlIGtleWJvYXJkCisgICAgICAgICAgICAgICAgICAgc3RhdGUg
YXMgcmVzcG9uZGVyIHN0YXR1cyBoYXNuJ3QgY2hhbmdlZC4KKworICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHNob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJXSk6IElnbm9yZSBpbnB1dCBtb2Rl
IGlmIHRoaXMgbWVzc2FnZSB3YXMgc2VudCBhcworICAgICAgICBwYXJ0IG9mIHBhZ2UgYWN0aXZh
dGlvbi4KKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFt
ZV0pOiBDbGVhciBvdXQgc3RhdGUuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1lbnRE
aWRGb2N1czp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmFjdGl2aXR5U3RhdGVD
aGFuZ2VzOnVzZXJPYmplY3Q6XSk6CisgICAgICAgIFVwZGF0ZSBpdmFyIGlmIHRoaXMgZWxlbWVu
dCBpcyBiZWluZyBmb2N1c2VkIGFzIGEgcmVzdWx0IG9mIHBhZ2UgYWN0aXZhdGlvbi4KKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBfZGlkVXBkYXRlSW5wdXRNb2RlOmFjdGl2aXR5U3RhdGVDaGFu
Z2VzOl0pOiBNb2RpZmllZCB0byB0YWtlIHRoZSBhY3Rpdml0eSBzdGF0ZQorICAgICAgICBkaWZm
LiBJZiB0aGUgaW5wdXQgbW9kZSB3YXMgY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiBwYWdlIGFjdGl2
YXRpb24gdGhlbiB3ZSB3YW50IHRvIHVwZGF0ZSBvdXIgaXZhcgorICAgICAgICBzbyB0aGF0IHdo
ZW4gd2UgY2FsbCAtcmVsb2FkSW5wdXRWaWV3cyBhbmQgVUlLaXQgY2FsbHMgdXMgYmFjayBpbiAt
c2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUkgd2UKKyAgICAgICAgd2lsbCBrbm93IHRvIGln
bm9yZSBpbnB1dG1vZGUgc2V0IHRvICJub25lIiB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgdG8g
c2hvdyB0aGUgYXV0b21hdGljIGtleWJvYXJkIFVJLgorICAgICAgICBOb3RlIHRoYXQgd2UgZG8g
bm90IG5lZWQgdG8gY2hlY2svdHJhY2sgd2hldGhlciBhbiBlYXJsaWVyIC1fZWxlbWVudERpZEZv
Y3VzIGFjdHVhbGx5IHN0YXJ0ZWQgYW4KKyAgICAgICAgaW5wdXQgc2Vzc2lvbiBhcyBwYXJ0IG9m
IHVwZGF0aW5nIHRoZSB2YWx1ZSBvZiBvdXIgaXZhciBiZWNhdXNlIGlmIGFuIGlucHV0IHNlc3Np
b24gd2FzIG5vdCBzdGFydGVkLAorICAgICAgICBzYXkgdGhlIGVtYmVkZGluZyBjbGllbnQgZGlz
YWxsb3dlZCBpdCwgdGhlbiB3ZSB3b3VsZCBub3QgaGF2ZSBhIGZvY3VzZWQgZWxlbWVudCA9PiB3
ZSBlYXJseSByZXR1cm4gZnJvbQorICAgICAgICB0aGlzIGZ1bmN0aW9uLiBBbHNvIHJlbW92ZSBk
dXBsaWNhdGlvbiBhbmQgaW1wcm92ZSBjb2RlIHJlYWRiaWxpdHkgYnkgbWFraW5nIHVzZSBvZiB0
aGUgY29udmVuaWVuY2UgZnVuY3Rpb24KKyAgICAgICAgaGFzRm9jdXNlZEVsZW1lbnQoKSBpbnN0
ZWFkIG9mIGR1cGxpY2F0aW5nIHdoYXQgaXQgZG9lcy4KKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBfZGlkVXBkYXRlSW5wdXRNb2RlOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZv
Y3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKTogTW9kaWZpZWQgdG8gdGFrZSB0aGUgYWN0
aXZpdHkgc3RhdGUgZGlmZgorICAgICAgICBhbmQgcGFzcyBpdCB0aHJvdWdoLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cyk6IFBhc3MgdGhl
IGVtcHR5IHNldCBmb3IgdGhlIGFjdGl2aXR5IHN0YXRlIGRpZmYgdG8KKyAgICAgICAga2VlcCBv
dXIgY3VycmVudCBiZWhhdmlvci4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKTogU2VuZCB0aGUgYWN0aXZpdHkgc3RhdGUgZGlmZiB0byB0aGUgVUkgcHJvY2Vz
cy4KKwogMjAxOS0wNy0yNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gQVNTRVJUSU9OIEZBSUxVUkU6ICFpc01pc3NpbmdQb3N0TGF5b3V0RGF0YSBp
biBXZWJLaXQ6OkVkaXRvclN0YXRlOjpwb3N0TGF5b3V0RGF0YSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QYWdlQ2xpZW50LmgKaW5kZXggZWM2NGJjOWUxNjJjYjdjYTFlNzUzN2U5MzMxZDRmMTM5NTg3
ZWM0MS4uOGE0YmQyYzRmOGRlOTllMTY2YzNjY2IyN2Y5ZjcxNzg3N2ZlZjEyMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMzg2LDcgKzM4Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwg
T3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFu
Z2VzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZWxlbWVu
dERpZEJsdXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBmb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUsIE9wdGlvblNl
dDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBk
aWRSZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCkgPSAwOwogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZvY3VzaW5nRWxlbWVudCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaW50ZXJwcmV0
S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXNDaGFyRXZlbnQp
ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYjQzODNjYWY4
OGYzNzI3MmNmOTQ3N2I2NDAzOWNlOWVmNWM5NDlhMS4uODQxNmJiNGU0ZmIxOGY2YjZhMGYwMDhh
ZDczZGZmNzU5ZjkxOTIxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE5NDUsNyArMTk0NSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1
cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGlu
ZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9p
ZCBlbGVtZW50RGlkQmx1cigpOwotICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1
dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hh
bmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWc+KTsKICAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXgg
ZWNhZDk1ZTQ2YjU0M2FjOTE1MDQwZTYwZWY0MDRiZWQ2NDI2NzE2MS4uOWIxYTgyNjgwODZhN2Jm
ZDVkYTU1NTgzZTg1MDU0MzFmYzMzODYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDA4LDcgKzQwOCw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAKICAgICBFbGVtZW50RGlkRm9jdXMoc3RydWN0IFdlYktpdDo6
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiBpbmZvcm1hdGlvbiwgYm9vbCB1c2VySXNJbnRlcmFj
dGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlT
dGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMsIFdlYktpdDo6VXNlckRhdGEgdXNlckRh
dGEpCiAgICAgRWxlbWVudERpZEJsdXIoKQotICAgIEZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5w
dXRNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSkKKyAgICBGb2N1c2Vk
RWxlbWVudERpZENoYW5nZUlucHV0TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5wdXRNb2Rl
IG1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0
YXRlQ2hhbmdlcykKICAgICBTY3JvbGxpbmdOb2RlU2Nyb2xsV2lsbFN0YXJ0U2Nyb2xsKCkKICAg
ICBTY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBTaG93SW5zcGVjdG9ySGln
aGxpZ2h0KHN0cnVjdCBXZWJDb3JlOjpIaWdobGlnaHQgaGlnaGxpZ2h0KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCAzMzMxZmQ0ZDIz
MzFhY2NiMDZiODc4NzZkZGUyOGJhNjdmYjhhNzVlLi43Yjc1NzYzZjA0ZDBjMTVhODljOTc2Yjdi
N2M2MGJlM2ZhMWUzMjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MuaApAQCAtMTUwLDcgKzE1MCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiwgYm9vbCB1
c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cigpIG92ZXJyaWRl
OwotICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5w
dXRNb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRN
b2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OkZsYWc+KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJlY2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFm
dGVyRm9jdXMoKSBvdmVycmlkZTsKICAgICBib29sIGlzRm9jdXNpbmdFbGVtZW50KCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA2NzhkNDAx
MjY1MzYxNjUzNjk1ZDIwYzQzOGUxODU0ZjM1YmVkMTU0Li5hODM0NmFjMDEzZTRhYTgzYzg2Zjcz
MWIzOWM4ZjUzZmFmM2NhNmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01NzAsOSArNTcwLDkgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZWxlbWVudERpZEJsdXIoKQogICAgIFttX2NvbnRlbnRWaWV3IF9lbGVtZW50RGlkQmx1
cl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5w
dXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSBtb2RlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6Zm9j
dXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUsIE9w
dGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdl
cykKIHsKLSAgICBbbV9jb250ZW50VmlldyBfZGlkVXBkYXRlSW5wdXRNb2RlOm1vZGVdOworICAg
IFttX2NvbnRlbnRWaWV3IF9kaWRVcGRhdGVJbnB1dE1vZGU6bW9kZSBhY3Rpdml0eVN0YXRlQ2hh
bmdlczphY3Rpdml0eVN0YXRlQ2hhbmdlc107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZFJlY2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDEy
N2UzNTJkZmVhNjkwODllNTQ1OTNlNGFiNjVhNGYwNTdiODkyMzEuLjdkMzU3MmY3MjZmYmQwN2M3
OGUwMmVhOGUyMDcxYTM0MzRiMTc1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTMzNyw2ICszMzcsOCBA
QCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogI2VuZGlmCiAKICAgICBCT09MIF9rZXli
b2FyZERpZFJlcXVlc3REaXNtaXNzYWw7CisgICAgQk9PTCBfd2FzUmVzaWduZWRXaGlsZVNob3dp
bmdJbnB1dFZpZXc7CisgICAgQk9PTCBfc2hvdWxkU2hvd0lucHV0Vmlld0ZvclBhZ2VSZUFjdGl2
YXRpb247CiAKICNpZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQogICAgIEJPT0wgX2Nh
bmRpZGF0ZVZpZXdOZWVkc1VwZGF0ZTsKQEAgLTQ2MCw3ICs0NjIsNyBAQCBGT1JfRUFDSF9QUklW
QVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9S
X1dFQl9WSUVXKQogLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOihCT09M
KXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wpYmx1clByZXZpb3VzTm9k
ZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OkZsYWc+KWFjdGl2aXR5U3RhdGVDaGFuZ2VzIHVzZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3Vy
ZUNvZGluZz4gKil1c2VyT2JqZWN0OwogLSAodm9pZClfZWxlbWVudERpZEJsdXI7CiAtICh2b2lk
KV9oaWRlQ29udGV4dE1lbnVIaW50Q29udGFpbmVyOwotLSAodm9pZClfZGlkVXBkYXRlSW5wdXRN
b2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUlucHV0TW9k
ZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUgYWN0aXZpdHlTdGF0ZUNoYW5nZXM6KE9wdGlvblNl
dDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPilhY3Rpdml0eVN0YXRlQ2hhbmdlczsKIC0g
KHZvaWQpX2RpZFJlY2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXM7CiAtICh2b2lkKV9o
YXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZDsKIC0gKHZvaWQpX3NlbGVjdGlvbkNo
YW5nZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA0YjY2MDQxNzhhYjc5ZDliMmRmNTEyYzFiOGI4NGY2
Y2MyYjJhNWI4Li5iNDZiNWEzYzM5NjlmMzE2YWQzOWIzMGI0MGE0MzgxYjA0ODgwM2NkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KQEAgLTk0Miw2ICs5NDIsNyBAQCAtICh2b2lkKWNsZWFudXBJbnRlcmFjdGlv
bgogCiAgICAgW3NlbGYgX3Jlc2V0SW5wdXRWaWV3RGVmZXJyYWxdOwogICAgIF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uID0geyB9OworICAgIF93YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0
VmlldyA9IE5POwogICAgIAogICAgIFtfa2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvciBpbnZhbGlk
YXRlXTsKICAgICBfa2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvciA9IG5pbDsKQEAgLTEyNjAsNyAr
MTI2MSw4IEBAIC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25kZXJGb3JXZWJWaWV3CiAKICAgICBT
ZXRGb3JTY29wZTxCT09MPiByZXNpZ25pbmdGaXJzdFJlc3BvbmRlclNjb3BlIHsgX3Jlc2lnbmlu
Z0ZpcnN0UmVzcG9uZGVyLCBZRVMgfTsKIAotICAgIFtzZWxmIGVuZEVkaXRpbmdBbmRVcGRhdGVG
b2N1c0FwcGVhcmFuY2VXaXRoUmVhc29uOkVuZEVkaXRpbmdSZWFzb25SZXNpZ25pbmdGaXJzdFJl
c3BvbmRlcl07CisgICAgQk9PTCB3YXNLZXlib2FyZE9uU2NyZWVuID0gVUlQZXJpcGhlcmFsSG9z
dC5hY3RpdmVJbnN0YW5jZS5pc09uU2NyZWVuOworICAgIFtzZWxmIGVuZEVkaXRpbmdBbmRVcGRh
dGVGb2N1c0FwcGVhcmFuY2VXaXRoUmVhc29uOkVuZEVkaXRpbmdSZWFzb25SZXNpZ25pbmdGaXJz
dFJlc3BvbmRlcl07IC8vIE1heSBkaXNtaXNzIHRoZSBrZXlib2FyZC4KIAogICAgIC8vIElmIHRo
ZSB1c2VyIGV4cGxpY2l0bHkgZGlzbWlzc2VkIHRoZSBrZXlib2FyZCB0aGVuIHdlIHdpbGwgbG9z
ZSBmaXJzdCByZXNwb25kZXIKICAgICAvLyBzdGF0dXMgb25seSB0byBnYWluIGl0IGJhY2sgYWdh
aW4uIEp1c3QgZG9uJ3QgcmVzaWduIGluIHRoYXQgY2FzZS4KQEAgLTEyNzIsNiArMTI3NCw3IEBA
IC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25kZXJGb3JXZWJWaWV3CiAgICAgYm9vbCBzdXBlckRp
ZFJlc2lnbiA9IFtzdXBlciByZXNpZ25GaXJzdFJlc3BvbmRlcl07CiAKICAgICBpZiAoc3VwZXJE
aWRSZXNpZ24pIHsKKyAgICAgICAgX3dhc1Jlc2lnbmVkV2hpbGVTaG93aW5nSW5wdXRWaWV3ID0g
d2FzS2V5Ym9hcmRPblNjcmVlbjsKICAgICAgICAgW3NlbGYgX2hhbmRsZURPTVBhc3RlUmVxdWVz
dFdpdGhSZXN1bHQ6V2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9yR2Vz
dHVyZV07CiAgICAgICAgIF9wYWdlLT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OklzRm9jdXNlZCk7CiAgICAgfQpAQCAtMTcwMyw3ICsxNzA2LDcgQEAgLSAo
Qk9PTClzaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSQogICAgIC8vIEZJWE1FOiBXZSBzaG91
bGQgc3VwcG9ydCBpbnB1dG1vZGU9Im5vbmUiIHdoZW4gdGhlIGhhcmR3YXJlIGtleWJvYXJkIGlz
IGF0dGFjaGVkLgogICAgIC8vIFdlIGN1cnJlbnRseSByZWZyYWluIGZyb20gZG9pbmcgc28gYmVj
YXVzZSB0aGF0IHdvdWxkIHByZXZlbnQgVUlLaXQgZnJvbSBzaG93aW5nCiAgICAgLy8gdGhlIGxh
bmd1YWdlIHBpY2tlciB3aGVuIHByZXNzaW5nIHRoZSBnbG9iZSBrZXkgdG8gY2hhbmdlIHRoZSBp
bnB1dCBsYW5ndWFnZS4KLSAgICBpZiAoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW5wdXRN
b2RlID09IFdlYkNvcmU6OklucHV0TW9kZTo6Tm9uZSAmJiAhR1NFdmVudElzSGFyZHdhcmVLZXli
b2FyZEF0dGFjaGVkKCkpCisgICAgaWYgKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmlucHV0
TW9kZSA9PSBXZWJDb3JlOjpJbnB1dE1vZGU6Ok5vbmUgJiYgIUdTRXZlbnRJc0hhcmR3YXJlS2V5
Ym9hcmRBdHRhY2hlZCgpICYmICFfc2hvdWxkU2hvd0lucHV0Vmlld0ZvclBhZ2VSZUFjdGl2YXRp
b24pCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hvd0F1
dG9tYXRpY0tleWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV07CkBAIC0zOTQ4LDYgKzM5NTEsNyBA
QCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAjaWYgVVNFKFVJS0lUX0tFWUJP
QVJEX0FERElUSU9OUykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVFbGVt
ZW50ID0gTk87CiAjZW5kaWYKKyAgICBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZpZXcg
PSBOTzsKICAgICBbc2VsZiBfZWxlbWVudERpZEJsdXJdOwogICAgIFtzZWxmIF9jYW5jZWxMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplcl07CiAgICAgW3NlbGYgX2hpZGVDb250ZXh0TWVudUhpbnRD
b250YWluZXJdOwpAQCAtNTI3MCw2ICs1Mjc0LDggQEAgLSAodm9pZClfZWxlbWVudERpZEZvY3Vz
Oihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHUK
ICAgICBpZiAoW2lucHV0RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpkZWNpZGVQb2xpY3lGb3JGb2N1c2VkRWxlbWVudDopXSkKICAgICAgICAgc3RhcnRJbnB1
dFNlc3Npb25Qb2xpY3kgPSBbaW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBkZWNpZGVQ
b2xpY3lGb3JGb2N1c2VkRWxlbWVudDpmb2N1c2VkRWxlbWVudEluZm8uZ2V0KCldOwogCisgICAg
U2V0Rm9yU2NvcGU8Qk9PTD4gc2hvdWxkU2hvd0lucHV0Vmlld0ZvclBhZ2VSZUFjdGl2YXRpb25T
Y29wZSB7IF9zaG91bGRTaG93SW5wdXRWaWV3Rm9yUGFnZVJlQWN0aXZhdGlvbiwgc3RhcnRJbnB1
dFNlc3Npb25Qb2xpY3kgPT0gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBdXRvICYm
IChzZWxmLmlzRmlyc3RSZXNwb25kZXIgfHwgX2JlY29taW5nRmlyc3RSZXNwb25kZXIpICYmIGFj
dGl2aXR5U3RhdGVDaGFuZ2VzLmNvbnRhaW5zKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9j
dXNlZCkgJiYgX3dhc1Jlc2lnbmVkV2hpbGVTaG93aW5nSW5wdXRWaWV3IH07CisKICAgICBCT09M
IHNob3VsZFNob3dJbnB1dFZpZXcgPSBbJl0gewogICAgICAgICBzd2l0Y2ggKHN0YXJ0SW5wdXRT
ZXNzaW9uUG9saWN5KSB7CiAgICAgICAgIGNhc2UgX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Q
b2xpY3lBdXRvOgpAQCAtNTI3OSwxMCArNTI4NSw3IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1
czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAogICAgICAgICAgICAgaWYgKHNlbGYuaXNG
aXJzdFJlc3BvbmRlciB8fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcikgewotICAgICAgICAgICAg
ICAgIC8vIFdoZW4gdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGJlaW5nIHVzZWQgdG8gZW50ZXIg
YW4gdXJsLCBvbmx5IHRoZSBmb2N1cyBhY3Rpdml0eSBzdGF0ZSBpcyBjaGFuZ2luZy4KLSAgICAg
ICAgICAgICAgICAvLyBJbiB0aGlzIGNhc2UsIGF1dG8gZm9jdXMgb24gdGhlIHBhZ2UgYmVpbmcg
bmF2aWdhdGVkIHRvIHNob3VsZCBiZSBkaXNhYmxlZCwgdW5sZXNzIGEgaGFyZHdhcmUKLSAgICAg
ICAgICAgICAgICAvLyBrZXlib2FyZCBpcyBhdHRhY2hlZC4KLSAgICAgICAgICAgICAgICBpZiAo
YWN0aXZpdHlTdGF0ZUNoYW5nZXMgJiYgYWN0aXZpdHlTdGF0ZUNoYW5nZXMgIT0gV2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkKQorICAgICAgICAgICAgICAgIGlmIChfc2hvdWxkU2hv
d0lucHV0Vmlld0ZvclBhZ2VSZUFjdGl2YXRpb24pCiAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBZRVM7CiAKICNpZiBQTEFURk9STShXQVRDSE9TKQpAQCAtNTQ4OCwxMiArNTQ5MSwxNCBAQCAt
ICh2b2lkKV9oYXJkd2FyZUtleWJvYXJkQXZhaWxhYmlsaXR5Q2hhbmdlZAogICAgIFtzZWxmIHJl
bG9hZElucHV0Vmlld3NdOwogfQogCi0tICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdlYkNv
cmU6OklucHV0TW9kZSltb2RlCistICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdlYkNvcmU6
OklucHV0TW9kZSltb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOihPcHRpb25TZXQ8V2ViQ29yZTo6
QWN0aXZpdHlTdGF0ZTo6RmxhZz4pYWN0aXZpdHlTdGF0ZUNoYW5nZXMKIHsKLSAgICBpZiAoIXNl
bGYuaW5wdXREZWxlZ2F0ZSB8fCBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlw
ZSA9PSBXZWJLaXQ6OklucHV0VHlwZTo6Tm9uZSkKKyAgICBpZiAoIXNlbGYuaW5wdXREZWxlZ2F0
ZSB8fCAhaGFzRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pKQogICAg
ICAgICByZXR1cm47CiAKICNpZiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBTZXRGb3JTY29wZTxC
T09MPiBzaG91bGRTaG93SW5wdXRWaWV3Rm9yUGFnZVJlQWN0aXZhdGlvblNjb3BlIHsgX3Nob3Vs
ZFNob3dJbnB1dFZpZXdGb3JQYWdlUmVBY3RpdmF0aW9uLCAoc2VsZi5pc0ZpcnN0UmVzcG9uZGVy
IHx8IF9iZWNvbWluZ0ZpcnN0UmVzcG9uZGVyKSAmJiBhY3Rpdml0eVN0YXRlQ2hhbmdlcy5jb250
YWlucyhXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpICYmIF93YXNSZXNpZ25lZFdo
aWxlU2hvd2luZ0lucHV0VmlldyB9OworCiAgICAgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
aW5wdXRNb2RlID0gbW9kZTsKICAgICBbc2VsZiByZWxvYWRJbnB1dFZpZXdzXTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXgg
YjdhNmIzOWJhNGQ2ODNiOTczNjcxYzAzNTIwMDJhMWVlNTBjN2ZkNC4uOGM3ZTQwZWVhYjIwZjk4
NDZjOTRlZWZlOTEyM2NhMTVkYTBlMTFiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC05MjYsNyArOTI2LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OmVsZW1lbnREaWRCbHVyKCkKICAgICBwYWdlQ2xpZW50KCkuZWxlbWVudERpZEJsdXIo
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRN
b2RlKFdlYkNvcmU6OklucHV0TW9kZSBtb2RlKQordm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRF
bGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSBtb2RlLCBPcHRpb25T
ZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMpCiB7
CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICBpZiAobV90b3VjaEFuZFBvaW50ZXJFdmVu
dFRyYWNraW5nLmlzVHJhY2tpbmdBbnl0aGluZygpKSB7CkBAIC05MzUsNyArOTM1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6
OklucHV0TW9kZSBtb2RlKQogICAgIH0KICNlbmRpZgogCi0gICAgcGFnZUNsaWVudCgpLmZvY3Vz
ZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKG1vZGUpOworICAgIHBhZ2VDbGllbnQoKS5mb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlLCBhY3Rpdml0eVN0YXRlQ2hhbmdlcyk7
CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKQpAQCAt
OTQzLDcgKzk0Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2lu
dHMoKQogICAgIGlmICghbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBwYWdlQ2xpZW50KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoKm1f
cGVuZGluZ0lucHV0TW9kZUNoYW5nZSk7CisgICAgcGFnZUNsaWVudCgpLmZvY3VzZWRFbGVtZW50
RGlkQ2hhbmdlSW5wdXRNb2RlKCptX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2UsIHsgfSk7CiAgICAg
bV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlID0gV1RGOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDdiYzc1OWE5NTNlY2Jh
NGEwOTIwMDNmMDZjOThkOTlkMGM1MmYyM2UuLjU0YWNmN2QxMTMyNTE0Mjc1YzVlN2M5MTFmM2Iw
MzNjYWZlMGMzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCkBAIC01NDg1LDcgKzU0ODUsNyBAQCB2b2lkIFdlYlBhZ2U6OmZvY3VzZWRFbGVtZW50
RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIFdlYkNvcgogICAg
IGlmICghaXNUZXh0Rm9ybUNvbnRyb2xPckVkaXRhYmxlQ29udGVudChlbGVtZW50KSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRWxl
bWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlLCBtX2xhc3RBY3Rp
dml0eVN0YXRlQ2hhbmdlcykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obW9kZSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmYTczYWQyOTBiZjllNzRkZGRmMTRkNjAwNTJlMDAwZTViZjcxYTAxLi5kYjE3
ZmNjZDkyNzJhMjIxMTY1MDU4ZjI3ZmY5NzdmYjlhYjMzZGI3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTktMDgtMjAgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIFNob3VsZCBzaG93IGlucHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9u
ZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MDIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjMxNzU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCB3ZSBzaG93
IHRoZSBrZXlib2FyZCB3aGVuIGJlY29taW5nIGZpcnN0IHJlc3BvbmRlciBpZiB0aGUgdmlldyBy
ZXNpZ25lZCB3aXRoIHRoZQorICAgICAgICBrZXlib2FyZCBvbiBzY3JlZW4uIEFsc28gYWRkIGEg
dGVzdCB0byBlbnN1cmUgdGhhdCB3ZSBrZWVwIG91ciBjdXJyZW50IGJlaGF2aW9yIGFuZCBkbyBO
T1Qgc2hvdyB0aGUga2V5Ym9hcmQKKyAgICAgICAgZm9yIGFuIGF1dG9mb2N1c2VkIHRleHQgZmll
bGQgd2hlbiB0aGUgdmlldyBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlci4KKworICAgICAgICAqIGZh
c3QvZXZlbnRzL2lvcy9yZXNvdXJjZXMvY2hlY2sta2V5Ym9hcmQtb24tc2NyZWVuLmpzOiBBZGRl
ZC4KKyAgICAgICAgKGFzeW5jLmNoZWNrS2V5Ym9hcmRPblNjcmVlbik6CisgICAgICAgIChhc3lu
Yy5jaGVja0tleWJvYXJkTm90T25TY3JlZW4pOgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9z
aG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxkLXdoZW4tYmVjb21p
bmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1h
dXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZp
Z2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJv
YXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXli
b2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25l
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdo
ZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNw
b25kZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAg
ICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb1Nob3cucmV0dXJuLm5ldy5Q
cm9taXNlKTogQWRkZWQuCisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZvcktleWJvYXJk
VG9TaG93KTogQWRkZWQuCisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYmVjb21lRmlyc3RSZXNw
b25kZXIpOiBBZGRlZC4KKwogMjAxOS0wOC0wOCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGEgdGVzdCB0byBlbnN1cmUgdGhhdCB3ZSBkaXNwYXRjaCBr
ZXlkb3duIGFuZCBrZXl1cCBldmVudHMgd2hlbiBtdWx0aXBsZSBrZXlzIGFyZSBwcmVzc2VkIGF0
IHRoZSBzYW1lIHRpbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9y
ZXNvdXJjZXMvY2hlY2sta2V5Ym9hcmQtb24tc2NyZWVuLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTIzN2JlYjRhMzk1ZTYxZDgyM2U1YTk2OGVhZGJlYmI5YmYyODJmNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yZXNvdXJjZXMvY2hlY2sta2V5Ym9h
cmQtb24tc2NyZWVuLmpzCkBAIC0wLDAgKzEsMTUgQEAKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrS2V5
Ym9hcmRPblNjcmVlbigpCit7CisgICAgaWYgKGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0tleWJv
YXJkKCkpCisgICAgICAgIHRlc3RQYXNzZWQoIktleWJvYXJkIGlzIG9uIHNjcmVlbi4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIktleWJvYXJkIHNob3VsZCBiZSBvbiBzY3JlZW4s
IGJ1dCBpcyBub3QuIik7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGNoZWNrS2V5Ym9hcmROb3RPblNj
cmVlbigpCit7CisgICAgaWYgKGF3YWl0IFVJSGVscGVyLmlzU2hvd2luZ0tleWJvYXJkKCkpCisg
ICAgICAgIHRlc3RGYWlsZWQoIktleWJvYXJkIHNob3VsZCBub3QgYmUgb24gc2NyZWVuLCBidXQg
aXQgaXMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0UGFzc2VkKCJLZXlib2FyZCBpcyBub3Qg
b24gc2NyZWVuLiIpOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L3Nob3VsZC1ub3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNv
bWluZy1maXJzdC1yZXNwb25kZXItYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRv
Zm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0
aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMWRlZDU4NDk2ZjFkYmNmYWNjZWY0ZDExMGNi
NzEzMGNjY2U0YWE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1i
ZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBpcyBu
b3Qgc2hvd24gZm9yIGFuIGF1dG9mb2N1c2VkIHRleHQgZmllbGQgb24gYmVjb21pbmcgZmlyc3Qg
cmVzcG9uZGVyIGFmdGVyIG5hdmlnYXRpbmcgZnJvbSBhIHBhZ2Ugd2l0aCBhIGZvY3VzZWQgdGV4
dCBmaWVsZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQu
YWN0aXZlRWxlbWVudCBiZWNhbWUgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0JykKK1BB
U1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRv
Zm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZmRjNTRhNDIwM2VjNzI2ODNlODk2NDk1NWZjYjQwOWRmODY4
NmI5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG91
bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxkLXdoZW4tYmVjb21pbmct
Zmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbApAQCAtMCwwICsxLDQ0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9jaGVj
ay1rZXlib2FyZC1vbi1zY3JlZW4uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5w
dXQgaWQ9ImlucHV0IiBhdXRvZm9jdXM+IDwhLS0gT25seSByZXNwZWN0ZWQgb24gaU9TIHdoZW4g
YSBoYXJkd2FyZSBrZXlib2FyZCBpcyBhdHRhY2hlZC4gLS0+Cis8c2NyaXB0Pgord2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImlucHV0Iik7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlm
ICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBydW4g
aW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF3
YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7CisKKyAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24uc2VhcmNoID09ICI/Y2hlY2tSZXN1bHQiKSB7CisgICAgICAg
IGFzeW5jIGZ1bmN0aW9uIGNoZWNrUmVzdWx0QW5kRG9uZSgpIHsKKyAgICAgICAgICAgIGF3YWl0
IGNoZWNrS2V5Ym9hcmROb3RPblNjcmVlbigpOworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5y
ZW1vdmVDaGlsZChpbnB1dEVsZW1lbnQpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Cisg
ICAgICAgIH0KKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYmVjb21lRmlyc3RSZXNwb25kZXIoKTsK
KyAgICAgICAgc2hvdWxkQmVjb21lRXF1YWwoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAiZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucHV0JykiLCBjaGVja1Jlc3VsdEFuZERvbmUpOworICAg
IH0gZWxzZSB7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRG
b3JJbnB1dFNlc3Npb24oaW5wdXRFbGVtZW50KTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIucmVz
aWduRmlyc3RSZXNwb25kZXIoKTsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJv
YXJkVG9IaWRlKCk7CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgKz0gIj9jaGVja1Jl
c3VsdCI7CisgICAgfQorfQorCitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHRoZSBzb2Z0
d2FyZSBrZXlib2FyZCBpcyBub3Qgc2hvd24gZm9yIGFuIGF1dG9mb2N1c2VkIHRleHQgZmllbGQg
b24gYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyIGFmdGVyIG5hdmlnYXRpbmcgZnJvbSBhIHBhZ2Ug
d2l0aCBhIGZvY3VzZWQgdGV4dCBmaWVsZC4iKTsKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3No
b3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1pbnB1dG1v
ZGUtbm9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1r
ZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1u
b25lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjVlYWM1ZDFhODJhOTgxNDA1YjI5N2UwZWMy
MjE2NDI1M2IwY2IzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
aW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1p
bnB1dG1vZGUtbm9uZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0cyB0
aGF0IGluIGEgZm9jdXNlZCB0ZXh0IGZpZWxkIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBpcyBoaWRk
ZW4gYW5kIHNob3duIHdoZW4gdGhlIHdlYiB2aWV3IHJlc2lnbnMgYW5kIGJlY29tZXMgZmlyc3Qg
cmVzcG9uZGVyLCByZXNwZWN0aXZlbHksIGV2ZW50aG91Z2ggZm9jdXNpbmcgdGhlIHRleHQgZmll
bGQgc2V0cyBpbnB1dG1vZGUgdG8gIm5vbmUiLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworCitBZnRlciB0YXBwaW5nIDxpbnB1dD46CitQQVNTIEtleWJvYXJkIGlzIG9uIHNjcmVl
bi4KKworQWZ0ZXIgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQgaXMg
bm90IG9uIHNjcmVlbi4KKworQWZ0ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBL
ZXlib2FyZCBpcyBvbiBzY3JlZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1pbnB1
dG1vZGUtbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9h
cmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1pbnB1dG1vZGUtbm9uZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ5NzgyYWQ2YjYxMWQyNGUwNDc5Yjc3MGIxYTIzZWMxZjIxYjAzZGUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXli
b2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25l
Lmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY2hlY2sta2V5Ym9hcmQtb24tc2NyZWVuLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGlkPSJpbnB1dCI+Cis8c2NyaXB0Pgord2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImlucHV0Iik7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBy
dW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7CisKKyAg
ICBkZWJ1ZygiPGJyPkFmdGVyIHRhcHBpbmcgJmx0O2lucHV0Jmd0OzoiKTsKKyAgICBhd2FpdCBV
SUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKGlucHV0RWxlbWVu
dCk7CisgICAgYXdhaXQgY2hlY2tLZXlib2FyZE9uU2NyZWVuKCk7CisKKyAgICBkZWJ1ZygiPGJy
PkFmdGVyIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIu
cmVzaWduRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9h
cmRUb0hpZGUoKTsKKyAgICBhd2FpdCBjaGVja0tleWJvYXJkTm90T25TY3JlZW4oKTsKKworICAg
IGRlYnVnKCI8YnI+QWZ0ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOiIpOworICAgIGF3YWl0
IFVJSGVscGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2Fp
dEZvcktleWJvYXJkVG9TaG93KCk7CisgICAgYXdhaXQgY2hlY2tLZXlib2FyZE9uU2NyZWVuKCk7
CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlucHV0RWxlbWVudCk7CisgICAgZmlu
aXNoSlNUZXN0KCk7Cit9CisKK2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIs
ICgpID0+IGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoImlucHV0bW9kZSIsICJub25lIiksIHRy
dWUgLyogY2FwdHVyZSBwaGFzZSAqLyk7CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQg
aW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBh
bmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVjb21lcyBmaXJzdCByZXNw
b25kZXIsIHJlc3BlY3RpdmVseSwgZXZlbnRob3VnaCBmb2N1c2luZyB0aGUgdGV4dCBmaWVsZCBz
ZXRzIGlucHV0bW9kZSB0byAmcXVvdDtub25lJnF1b3Q7LiIpOworcnVuVGVzdCgpOworPC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJl
Y29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzQ0NWUwZmUx
MTI1YTM5NjYzYmFmNDM3MjJmZWUwNDFjNDNmZDkxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3Qt
cmVzcG9uZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoYXQg
aW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBh
bmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVjb21lcyBmaXJzdCByZXNw
b25kZXIsIHJlc3BlY3RpdmVseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKwor
QWZ0ZXIgdGFwcGluZyA8aW5wdXQ+OgorUEFTUyBLZXlib2FyZCBpcyBvbiBzY3JlZW4uCisKK0Fm
dGVyIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXI6CitQQVNTIEtleWJvYXJkIGlzIG5vdCBvbiBz
Y3JlZW4uCisKK0FmdGVyIGJlY29taW5nIGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQg
aXMgb24gc2NyZWVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtl
eWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRl
ci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmYzZGI3MmNjMTE1YTE0ZTlkOTgxNjNkOGYzZWRkOGJjYTYxZmFl
YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1r
ZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci5odG1sCkBAIC0wLDAgKzEsNDYg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2Vz
L2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpbnB1dCBpZD0iaW5wdXQiPgorPHNjcmlwdD4KK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworbGV0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dCIp
OworCithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RGYWlsZWQoIk11c3QgYmUgcnVuIGluIFdlYktpdFRlc3RSdW5u
ZXIuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhd2FpdCBVSUhlbHBlci5zZXRI
YXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoZmFsc2UpOworCisgICAgZGVidWcoIjxicj5BZnRlciB0
YXBwaW5nICZsdDtpbnB1dCZndDs6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVt
ZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbihpbnB1dEVsZW1lbnQpOworICAgIGF3YWl0IGNoZWNr
S2V5Ym9hcmRPblNjcmVlbigpOworCisgICAgZGVidWcoIjxicj5BZnRlciByZXNpZ25pbmcgZmly
c3QgcmVzcG9uZGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLnJlc2lnbkZpcnN0UmVzcG9uZGVy
KCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9IaWRlKCk7CisgICAgYXdh
aXQgY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVuKCk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIGJl
Y29taW5nIGZpcnN0IHJlc3BvbmRlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5iZWNvbWVGaXJz
dFJlc3BvbmRlcigpOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvU2hvdygp
OworICAgIGF3YWl0IGNoZWNrS2V5Ym9hcmRPblNjcmVlbigpOworCisgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChpbnB1dEVsZW1lbnQpOworICAgIGZpbmlzaEpTVGVzdCgpOworfQorCitk
ZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IGluIGEgZm9jdXNlZCB0ZXh0IGZpZWxkIHRoZSBz
b2Z0d2FyZSBrZXlib2FyZCBpcyBoaWRkZW4gYW5kIHNob3duIHdoZW4gdGhlIHdlYiB2aWV3IHJl
c2lnbnMgYW5kIGJlY29tZXMgZmlyc3QgcmVzcG9uZGVyLCByZXNwZWN0aXZlbHkuIik7CitydW5U
ZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVs
cGVyLmpzCmluZGV4IDg0MzFlZGIzOTNhOTczOTQ0NzIwZDdlMmQ1MzVjNWQ0ZmJiOTIyNGQuLjU4
ZjM0MTQzZWU1ZGE0NTE1ZjIxNGFhYzMyZmMxNTcwOTc3NjQxMzUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcwpAQCAtNTA2LDYgKzUwNiwyMiBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFz
cyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyB3YWl0Rm9yS2V5
Ym9hcmRUb1Nob3coKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0MigpIHx8ICF0
aGlzLmlzSU9TRmFtaWx5KCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7
CisKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgCisgICAgICAgICAgICAgICAgKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAodWlDb250cm9sbGVyLmlzU2hvd2luZ0tleWJvYXJkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLmRpZFNob3dLZXlib2FyZENhbGxiYWNrID0gKCkgPT4gdWlDb250cm9sbGVyLnVpU2Ny
aXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7CisgICAgICAg
IH0pOworICAgIH0KKwogICAgIHN0YXRpYyBnZXRVSUNhcmV0UmVjdCgpCiAgICAgewogICAgICAg
ICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1NGYW1pbHkoKSkKQEAgLTc4NSw2
ICs4MDEsMTQgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNv
bnRyb2xsZXIucmVzaWduRmlyc3RSZXNwb25kZXIoKWAsIHJlc29sdmUpKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgYmVjb21lRmlyc3RSZXNwb25kZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlz
LmlzV2ViS2l0MigpKQorICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisg
ICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQoYHVpQ29udHJvbGxlci5iZWNvbWVGaXJzdFJlc3BvbmRlcigpYCwgcmVzb2x2ZSkpOworICAg
IH0KKwogICAgIHN0YXRpYyBtaW5pbXVtWm9vbVNjYWxlKCkKICAgICB7CiAgICAgICAgIGlmICgh
dGhpcy5pc1dlYktpdDIoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>376933</attachid>
            <date>2019-08-21 15:36:27 -0700</date>
            <delta_ts>2019-08-22 15:21:11 -0700</delta_ts>
            <desc>To land</desc>
            <filename>bug-200902-20190821153626.patch</filename>
            <type>text/plain</type>
            <size>32210</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4NTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzMzAzZjgwY2U1Y2JlMWM4
MjQ5ZjkxZmM0Yzk2OTY2NzYyYmZhYzkuLjQwYzA5ZjU2ZTMxYTJjZDg4NTVjY2RiYjkzY2NmYTNj
N2NhMmRlZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTktMDgtMjEgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlu
cHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93
aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0
MjMxNzU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBX
aGVuIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIgc2F2ZSB3aGV0aGVyIHRoZSBwZXJpcGhlcmFs
IGhvc3QgaGFzIGFuIGlucHV0IHZpZXcgb24gc2NyZWVuLAorICAgICAgICBpbmNsdWRpbmcgdGhl
IHNvZnR3YXJlIGtleWJvYXJkLCBzbyB0aGF0IHdlIHNob3cgdGhlIGlucHV0IHZpZXcocykgYWdh
aW4gd2hlbiB0aGUgV0tXZWJWaWV3CisgICAgICAgIGlzIG1hZGUgZmlyc3QgcmVzcG9uZGVyLiBJ
biBTYWZhcmksIHRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBhIHBlcnNvbiB0byBleHBsaWNpdGx5
IGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1lbnQgYWdhaW4gdG8gYnJpbmcgdXAgdGhl
IGtleWJvYXJkIHdoZW4gcmV0dXJuaW5nIHRvIGEgdGFiIHRoZXkgd2VyZSBwcmV2aW91c2x5Cisg
ICAgICAgIHR5cGluZyBpbi4gSXQgYWxzbyBtYWtlcyB0aGUgYmVoYXZpb3Igb2Ygc3dpdGNoaW5n
IHRhYnMgaW4gU2FmYXJpIHdpdGggYSBzb2Z0d2FyZSBrZXlib2FyZAorICAgICAgICBtYXRjaCB0
aGUgYmVoYXZpb3Igb2YgZG9pbmcgdGhlIHNhbWUgdGhpbmcgd2hlbiBhIGhhcmR3YXJlIGtleWJv
YXJkIGF0dGFjaGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKToKKyAgICAgICAgUGFzcyBhIGRpZmYgb2YgdGhlIGFjdGl2aXR5IHN0YXRlIGZy
b20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzIHNvIHRoYXQgd2UgY2FuCisgICAg
ICAgIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhbiBpbnB1dG1vZGUgY2hhbmdlIGFzIGEgcmVzdWx0
IG9mIHBhZ2UgZGVhY3RpdmF0aW9uIHZzIGEgY2hhbmdlCisgICAgICAgIGNhdXNlZCBieSBzb21l
IG90aGVyIG1lYW5zLiBXZSBuZWVkIHRvIGRpZmZlcmVudGlhdGUgdGhlc2UgY2FzZXMgYmVjYXVz
ZSB3ZSB3YW50IHRvCisgICAgICAgIGlnbm9yZSBhIHBhZ2UgdGhhdCBzZXRzIGlucHV0bW9kZSAi
bm9uZSIgKGkuZS4gYSByZXF1ZXN0IHRvIGhpZGUgdGhlIGtleWJvYXJkKSBmcm9tIGluc2lkZQor
ICAgICAgICBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgaWYgdGhlIGhhbmRsZXIgd2FzIGNhbGxlZCBh
cyBwYXJ0IG9mIHRoZSBwcm9jZXNzIG9mIHBhZ2UgYWN0aXZhdGlvbgorICAgICAgICAoaS5lLiBz
d2l0Y2hpbmcgdG8gdGhlIHRhYikuIEdvb2dsZSBEb2NzIGlzIG9uZSBleGFtcGxlIG9mIGEgd2Vi
IHNpdGUgdGhhdCBzZXRzIGlucHV0bW9kZQorICAgICAgICB0byAibm9uZSIgYXMgYSByZXN1bHQg
b2YgdGhlIHBhZ2UgYWN0aXZhdGlvbiBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVh
bnVwSW50ZXJhY3Rpb25dKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOiBTYXZlIHdoZXRoZXIgdGhlIHBl
cmlwaGVyYWwgaG9zdCBpcyBvbiBzY3JlZW4KKyAgICAgICAgaW50byBhIGxvY2FsIGJlZm9yZSBl
bmRpbmcgdGhlIGVkaXRpbmcgc2Vzc2lvbi4gV2UgdGhlbiBjb3B5IHRoZSBsb2NhbCBpbnRvIHRo
ZSBpdmFyIGlmIHdlCisgICAgICAgIGFjdHVhbGx5IHdpbGwgcmVzaWduLiBUaGlzIG9yZGVyaW5n
IGlzIGV4cGxpY2l0bHkgZG9uZSBiZWNhdXNlOgorICAgICAgICAgICAgICAgIDEuIEVuZGluZyB0
aGUgZWRpdGluZyBzZXNzaW9uIG1heSBkaXNtaXNzIHRoZSBrZXlib2FyZCA9PiB3ZSBuZWVkIHRv
IHF1ZXJ5IHRoZSBwZXJpcGhlcmFsCisgICAgICAgICAgICAgICAgICAgaG9zdCBmaXJzdC4KKyAg
ICAgICAgICAgICAgICAyLiBJZiB0aGUgdmlldyBpcyBiZWluZyByZXNpZ25lZCBhcyBhIHJlc3Vs
dCBvZiBhIGtleWJvYXJkIGRpc21pc3NhbCAoaS5lLiBhIHBlcnNvbiBwcmVzc2VkCisgICAgICAg
ICAgICAgICAgICAgdGhlIGhpZGUga2V5Ym9hcmQgYnV0dG9uIG9uIGlQYWQpIHRoZW4gdGhlIHVz
ZXIgaGFzIGluZGljYXRlZCB0aGF0IHRoZXkgYXJlIGZpbmlzaGVkCisgICAgICAgICAgICAgICAg
ICAgd2l0aCB0aGUga2V5Ym9hcmQgYW5kIHdlIGRvIG5vdCB3YW50IHRvIHNob3cgdGhlIGtleWJv
YXJkIG9uIHBhZ2UgcmUtYWN0aXZhdGlvbiA9PiB3ZQorICAgICAgICAgICAgICAgICAgIGRvIG5v
dCB3YW50IHRvIGNvcHkgdGhlIGxvY2FsIHRvIHRoZSBpdmFyLgorICAgICAgICAgICAgICAgIDMu
IElmIHRoZSB2aWV3IHJlZnVzZXMgdG8gcmVzaWduIGl0c2VsZiB0aGVuIGl0IGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gc2F2ZSB0aGUga2V5Ym9hcmQKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSBh
cyByZXNwb25kZXIgc3RhdHVzIGhhc24ndCBjaGFuZ2VkLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHNob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJXSk6IElnbm9yZSBpbnB1dG1vZGU9Im5v
bmUiLCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRG
b3JNYWluRnJhbWVdKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGlzRmlyc3RSZXNwb25kZXJPckJlY29taW5nRmlyc3RSZXNwb25kZXJdKTogQWRkZWQuCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkU2hvd0lucHV0Vmlld09uUGFnZUFjdGl2YXRpb246
XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6dXNl
cklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczp1c2Vy
T2JqZWN0Ol0pOgorICAgICAgICBVcGRhdGUgaXZhciBpZiB0aGlzIGVsZW1lbnQgaXMgYmVpbmcg
Zm9jdXNlZCBhcyBhIHJlc3VsdCBvZiBwYWdlIGFjdGl2YXRpb24uCisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2RpZFVwZGF0ZUlucHV0TW9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczpdKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgYWN0aXZpdHkgc3RhdGUKKyAgICAgICAgZGlmZi4gSWYgdGhlIGlu
cHV0IG1vZGUgd2FzIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgcGFnZSBhY3RpdmF0aW9uIHRoZW4g
d2Ugd2FudCB0byB1cGRhdGUgb3VyIGl2YXIKKyAgICAgICAgc28gdGhhdCB3aGVuIHdlIGNhbGwg
LXJlbG9hZElucHV0Vmlld3MgYW5kIFVJS2l0IGNhbGxzIHVzIGJhY2sgaW4gLXNob3VsZFNob3dB
dXRvbWF0aWNLZXlib2FyZFVJIHdlCisgICAgICAgIHdpbGwga25vdyB0byBpZ25vcmUgaW5wdXRt
b2RlIHNldCB0byAibm9uZSIgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHNob3cgdGhlIGF1
dG9tYXRpYyBrZXlib2FyZCBVSS4KKyAgICAgICAgTm90ZSB0aGF0IHdlIGRvIG5vdCBuZWVkIHRv
IGNoZWNrL3RyYWNrIHdoZXRoZXIgYW4gZWFybGllciAtX2VsZW1lbnREaWRGb2N1cyBhY3R1YWxs
eSBzdGFydGVkIGFuCisgICAgICAgIGlucHV0IHNlc3Npb24gYXMgcGFydCBvZiB1cGRhdGluZyB0
aGUgdmFsdWUgb2Ygb3VyIGl2YXIgYmVjYXVzZSBpZiBhbiBpbnB1dCBzZXNzaW9uIHdhcyBub3Qg
c3RhcnRlZCwKKyAgICAgICAgc2F5IHRoZSBlbWJlZGRpbmcgY2xpZW50IGRpc2FsbG93ZWQgaXQs
IHRoZW4gd2Ugd291bGQgbm90IGhhdmUgYSBmb2N1c2VkIGVsZW1lbnQgPT4gd2UgZWFybHkgcmV0
dXJuIGZyb20KKyAgICAgICAgdGhpcyBmdW5jdGlvbi4gQWxzbyByZW1vdmUgZHVwbGljYXRpb24g
YW5kIGltcHJvdmUgY29kZSByZWFkYmlsaXR5IGJ5IG1ha2luZyB1c2Ugb2YgdGhlIGNvbnZlbmll
bmNlIGZ1bmN0aW9uCisgICAgICAgIGhhc0ZvY3VzZWRFbGVtZW50KCkgaW5zdGVhZCBvZiBkdXBs
aWNhdGluZyB3aGF0IGl0IGRvZXMuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFVwZGF0
ZUlucHV0TW9kZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVu
dERpZENoYW5nZUlucHV0TW9kZSk6IE1vZGlmaWVkIHRvIHRha2UgdGhlIGFjdGl2aXR5IHN0YXRl
IGRpZmYKKyAgICAgICAgYW5kIHBhc3MgaXQgdGhyb3VnaC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMpOiBQYXNzIHRoZSBlbXB0eSBzZXQg
Zm9yIHRoZSBhY3Rpdml0eSBzdGF0ZSBkaWZmIHRvCisgICAgICAgIGtlZXAgb3VyIGN1cnJlbnQg
YmVoYXZpb3IuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSk6
IFNlbmQgdGhlIGFjdGl2aXR5IHN0YXRlIGRpZmYgdG8gdGhlIFVJIHByb2Nlc3MuCiAyMDE5LTA3
LTI2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBB
U1NFUlRJT04gRkFJTFVSRTogIWlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhIGluIFdlYktpdDo6RWRp
dG9yU3RhdGU6OnBvc3RMYXlvdXREYXRhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAppbmRleCBlYzY0YmM5ZTE2MmNiN2NhMWU3NTM3ZTkzMzFkNGYxMzk1ODdlYzQxLi44YTRiZDJj
NGY4ZGU5OWUxNjZjM2NjYjI3ZjlmNzE3ODc3ZmVmMTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGFnZUNsaWVudC5oCkBAIC0zODYsNyArMzg2LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2
b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiwgYm9v
bCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNOb2RlLCBPcHRpb25TZXQ8V2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0ZUNoYW5nZXMsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cigpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2Vi
Q29yZTo6SW5wdXRNb2RlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50RGlk
Q2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWc+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVFZGl0
b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzRm9jdXNp
bmdFbGVtZW50KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCBpc0NoYXJFdmVudCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiNDM4M2NhZjg4ZjM3MjcyY2Y5NDc3
YjY0MDM5Y2U5ZWY1Yzk0OWExLi44NDE2YmI0ZTRmYjE4ZjZiNmEwZjAwOGFkNzNkZmY3NTlmOTE5
MjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTk0NSw3ICsx
OTQ1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQ
cmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rp
dml0eVN0YXRlQ2hhbmdlcywgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lkIGVsZW1lbnREaWRC
bHVyKCk7Ci0gICAgdm9pZCBmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3Jl
OjpJbnB1dE1vZGUpOworICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUo
V2ViQ29yZTo6SW5wdXRNb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Zz4pOwogICAgIHZvaWQgZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCk7CiAgICAgdm9pZCBkaWRS
ZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBlY2FkOTVlNDZiNTQz
YWM5MTUwNDBlNjBlZjQwNGJlZDY0MjY3MTYxLi45YjFhODI2ODA4NmE3YmZkNWRhNTU1ODNlODUw
NTQzMWZjMzM4NjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC00MDgsNyArNDA4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVBy
b3h5IHsKIAogICAgIEVsZW1lbnREaWRGb2N1cyhzdHJ1Y3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uIGluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJs
dXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBh
Y3Rpdml0eVN0YXRlQ2hhbmdlcywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBFbGVt
ZW50RGlkQmx1cigpCi0gICAgRm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoZW51bTp1
aW50OF90IFdlYkNvcmU6OklucHV0TW9kZSBtb2RlKQorICAgIEZvY3VzZWRFbGVtZW50RGlkQ2hh
bmdlSW5wdXRNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQog
ICAgIFNjcm9sbGluZ05vZGVTY3JvbGxXaWxsU3RhcnRTY3JvbGwoKQogICAgIFNjcm9sbGluZ05v
ZGVTY3JvbGxEaWRFbmRTY3JvbGwoKQogICAgIFNob3dJbnNwZWN0b3JIaWdobGlnaHQoc3RydWN0
IFdlYkNvcmU6OkhpZ2hsaWdodCBoaWdobGlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDMzMzFmZDRkMjMzMWFjY2IwNmI4Nzg3
NmRkZTI4YmE2N2ZiOGE3NWUuLjdiNzU3NjNmMDRkMGMxNWE4OWM5NzZiN2I3YzYwYmUzZmExZTMy
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0xNTAsNyArMTUwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZWxlbWVudERpZEZv
Y3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJc0ludGVyYWN0
aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBv
dmVycmlkZTsKICAgICB2b2lkIGVsZW1lbnREaWRCbHVyKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBm
b2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUpIG92ZXJy
aWRlOworICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6
SW5wdXRNb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpIG92
ZXJyaWRlOwogICAgIGJvb2wgaXNGb2N1c2luZ0VsZW1lbnQoKSBvdmVycmlkZTsKICAgICB2b2lk
IHNlbGVjdGlvbkRpZENoYW5nZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDY3OGQ0MDEyNjUzNjE2NTM2OTVk
MjBjNDM4ZTE4NTRmMzViZWQxNTQuLmE4MzQ2YWMwMTNlNGFhODNjODZmNzMxYjM5YzhmNTNmYWYz
Y2E2ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0KQEAgLTU3MCw5ICs1NzAsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbGVtZW50
RGlkQmx1cigpCiAgICAgW21fY29udGVudFZpZXcgX2VsZW1lbnREaWRCbHVyXTsKIH0KIAotdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29y
ZTo6SW5wdXRNb2RlIG1vZGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpmb2N1c2VkRWxlbWVudERp
ZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9uU2V0PFdlYkNv
cmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQogewotICAgIFtt
X2NvbnRlbnRWaWV3IF9kaWRVcGRhdGVJbnB1dE1vZGU6bW9kZV07CisgICAgW21fY29udGVudFZp
ZXcgX2RpZFVwZGF0ZUlucHV0TW9kZTptb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOmFjdGl2aXR5
U3RhdGVDaGFuZ2VzXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVjZWl2ZUVkaXRv
clN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggMTI3ZTM1MmRmZWE2OTA4
OWU1NDU5M2U0YWI2NWE0ZjA1N2I4OTIzMS4uZTY3YWYwODBhNDZhYWRlOGNkN2NjYzNkNzE5Mzdj
MjExYzA2Njg1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzM3LDYgKzMzNyw4IEBAIHN0cnVjdCBXS0F1
dG9Db3JyZWN0aW9uRGF0YSB7CiAjZW5kaWYKIAogICAgIEJPT0wgX2tleWJvYXJkRGlkUmVxdWVz
dERpc21pc3NhbDsKKyAgICBCT09MIF93YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0VmlldzsK
KyAgICBCT09MIF9zaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25l
OwogCiAjaWYgVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBCT09MIF9jYW5kaWRh
dGVWaWV3TmVlZHNVcGRhdGU7CkBAIC00NjAsNyArNDYyLDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9X
S0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJf
VklFVykKIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2Vy
SXNJbnRlcmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgYWN0
aXZpdHlTdGF0ZUNoYW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
PilhY3Rpdml0eVN0YXRlQ2hhbmdlcyB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rp
bmc+ICopdXNlck9iamVjdDsKIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyOwogLSAodm9pZClfaGlk
ZUNvbnRleHRNZW51SGludENvbnRhaW5lcjsKLS0gKHZvaWQpX2RpZFVwZGF0ZUlucHV0TW9kZToo
V2ViQ29yZTo6SW5wdXRNb2RlKW1vZGU7CistICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdl
YkNvcmU6OklucHV0TW9kZSltb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOihPcHRpb25TZXQ8V2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pYWN0aXZpdHlTdGF0ZUNoYW5nZXM7CiAtICh2b2lk
KV9kaWRSZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzOwogLSAodm9pZClfaGFyZHdh
cmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQ7CiAtICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2Vk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KaW5kZXggNGI2NjA0MTc4YWI3OWQ5YjJkZjUxMmMxYjhiODRmNmNjMmIy
YTViOC4uZTY5ZTliNzhlNDQ0NTQ1ZGFjYmIyOGZmYTkwOGY5ODRlZGJlNzBjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCkBAIC05NDIsNiArOTQyLDcgQEAgLSAodm9pZCljbGVhbnVwSW50ZXJhY3Rpb24KIAog
ICAgIFtzZWxmIF9yZXNldElucHV0Vmlld0RlZmVycmFsXTsKICAgICBfZm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbiA9IHsgfTsKKyAgICBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZpZXcg
PSBOTzsKICAgICAKICAgICBbX2tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IgaW52YWxpZGF0ZV07
CiAgICAgX2tleWJvYXJkU2Nyb2xsaW5nQW5pbWF0b3IgPSBuaWw7CkBAIC0xMjYwLDcgKzEyNjEs
OCBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlldwogCiAgICAgU2V0Rm9y
U2NvcGU8Qk9PTD4gcmVzaWduaW5nRmlyc3RSZXNwb25kZXJTY29wZSB7IF9yZXNpZ25pbmdGaXJz
dFJlc3BvbmRlciwgWUVTIH07CiAKLSAgICBbc2VsZiBlbmRFZGl0aW5nQW5kVXBkYXRlRm9jdXNB
cHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRFZGl0aW5nUmVhc29uUmVzaWduaW5nRmlyc3RSZXNwb25k
ZXJdOworICAgIEJPT0wgd2FzS2V5Ym9hcmRPblNjcmVlbiA9IFVJUGVyaXBoZXJhbEhvc3QuYWN0
aXZlSW5zdGFuY2UuaXNPblNjcmVlbjsKKyAgICBbc2VsZiBlbmRFZGl0aW5nQW5kVXBkYXRlRm9j
dXNBcHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRFZGl0aW5nUmVhc29uUmVzaWduaW5nRmlyc3RSZXNw
b25kZXJdOyAvLyBNYXkgZGlzbWlzcyB0aGUga2V5Ym9hcmQuCiAKICAgICAvLyBJZiB0aGUgdXNl
ciBleHBsaWNpdGx5IGRpc21pc3NlZCB0aGUga2V5Ym9hcmQgdGhlbiB3ZSB3aWxsIGxvc2UgZmly
c3QgcmVzcG9uZGVyCiAgICAgLy8gc3RhdHVzIG9ubHkgdG8gZ2FpbiBpdCBiYWNrIGFnYWluLiBK
dXN0IGRvbid0IHJlc2lnbiBpbiB0aGF0IGNhc2UuCkBAIC0xMjcyLDYgKzEyNzQsNyBAQCAtIChC
T09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlldwogICAgIGJvb2wgc3VwZXJEaWRSZXNp
Z24gPSBbc3VwZXIgcmVzaWduRmlyc3RSZXNwb25kZXJdOwogCiAgICAgaWYgKHN1cGVyRGlkUmVz
aWduKSB7CisgICAgICAgIF93YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0VmlldyA9IHdhc0tl
eWJvYXJkT25TY3JlZW47CiAgICAgICAgIFtzZWxmIF9oYW5kbGVET01QYXN0ZVJlcXVlc3RXaXRo
UmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmVd
OwogICAgICAgICBfcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0ZvY3VzZWQpOwogICAgIH0KQEAgLTE3MDMsNyArMTcwNiw3IEBAIC0gKEJPT0wp
c2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUkKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN1
cHBvcnQgaW5wdXRtb2RlPSJub25lIiB3aGVuIHRoZSBoYXJkd2FyZSBrZXlib2FyZCBpcyBhdHRh
Y2hlZC4KICAgICAvLyBXZSBjdXJyZW50bHkgcmVmcmFpbiBmcm9tIGRvaW5nIHNvIGJlY2F1c2Ug
dGhhdCB3b3VsZCBwcmV2ZW50IFVJS2l0IGZyb20gc2hvd2luZwogICAgIC8vIHRoZSBsYW5ndWFn
ZSBwaWNrZXIgd2hlbiBwcmVzc2luZyB0aGUgZ2xvYmUga2V5IHRvIGNoYW5nZSB0aGUgaW5wdXQg
bGFuZ3VhZ2UuCi0gICAgaWYgKF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmlucHV0TW9kZSA9
PSBXZWJDb3JlOjpJbnB1dE1vZGU6Ok5vbmUgJiYgIUdTRXZlbnRJc0hhcmR3YXJlS2V5Ym9hcmRB
dHRhY2hlZCgpKQorICAgIGlmIChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnB1dE1vZGUg
PT0gV2ViQ29yZTo6SW5wdXRNb2RlOjpOb25lICYmICFHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJk
QXR0YWNoZWQoKSAmJiAhX3Nob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJV2hlbklucHV0TW9k
ZU5vbmUpCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIHJldHVybiBbc2VsZiBfc2hvdWxkU2hv
d0F1dG9tYXRpY0tleWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV07CkBAIC0zOTQ4LDYgKzM5NTEs
NyBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAjaWYgVVNFKFVJS0lUX0tF
WUJPQVJEX0FERElUSU9OUykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRpdGFibGVF
bGVtZW50ID0gTk87CiAjZW5kaWYKKyAgICBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZp
ZXcgPSBOTzsKICAgICBbc2VsZiBfZWxlbWVudERpZEJsdXJdOwogICAgIFtzZWxmIF9jYW5jZWxM
b25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CiAgICAgW3NlbGYgX2hpZGVDb250ZXh0TWVudUhp
bnRDb250YWluZXJdOwpAQCAtNTI0Niw2ICs1MjUwLDE2IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNP
YmplY3QgPFdLRm9ybVBlcmlwaGVyYWw+PiBjcmVhdGVJbnB1dFBlcmlwaGVyYWxXaXRoVmlldyhX
ZWJLCiAgICAgfQogfQogCistIChCT09MKWlzRmlyc3RSZXNwb25kZXJPckJlY29taW5nRmlyc3RS
ZXNwb25kZXIKK3sKKyAgICByZXR1cm4gc2VsZi5pc0ZpcnN0UmVzcG9uZGVyIHx8IF9iZWNvbWlu
Z0ZpcnN0UmVzcG9uZGVyOworfQorCistIChCT09MKXNob3VsZFNob3dJbnB1dFZpZXdPblBhZ2VB
Y3RpdmF0aW9uOihjb25zdCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4g
JilhY3Rpdml0eVN0YXRlQ2hhbmdlcworeworICAgIHJldHVybiBbc2VsZiBpc0ZpcnN0UmVzcG9u
ZGVyT3JCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyXSAmJiBhY3Rpdml0eVN0YXRlQ2hhbmdlcy5jb250
YWlucyhXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpICYmIF93YXNSZXNpZ25lZFdo
aWxlU2hvd2luZ0lucHV0VmlldzsKK30KKwogLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25z
dCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHVzZXJJc0lu
dGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05vZGU6KEJPT0wp
Ymx1clByZXZpb3VzTm9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczooT3B0aW9uU2V0PFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWc+KWFjdGl2aXR5U3RhdGVDaGFuZ2VzIHVzZXJPYmplY3Q6KE5T
T2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0CiB7CiAgICAgU2V0Rm9yU2NvcGU8
Qk9PTD4gaXNDaGFuZ2luZ0ZvY3VzRm9yU2NvcGUgeyBfaXNDaGFuZ2luZ0ZvY3VzLCBoYXNGb2N1
c2VkRWxlbWVudChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbikgfTsKQEAgLTUyNzAsNiArNTI4
NCw4IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgaWYgKFtpbnB1dERlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9yRm9jdXNl
ZEVsZW1lbnQ6KV0pCiAgICAgICAgIHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5ID0gW2lucHV0RGVs
ZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yRm9jdXNlZEVsZW1lbnQ6Zm9j
dXNlZEVsZW1lbnRJbmZvLmdldCgpXTsKIAorICAgIFNldEZvclNjb3BlPEJPT0w+IHNob3VsZFNo
b3dBdXRvbWF0aWNLZXlib2FyZFVJV2hlbklucHV0TW9kZU5vbmVTY29wZSB7IF9zaG91bGRTaG93
QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lLCBzdGFydElucHV0U2Vzc2lvblBv
bGljeSA9PSBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUF1dG8gJiYgW3NlbGYgc2hv
dWxkU2hvd0lucHV0Vmlld09uUGFnZUFjdGl2YXRpb246YWN0aXZpdHlTdGF0ZUNoYW5nZXNdIH07
CisKICAgICBCT09MIHNob3VsZFNob3dJbnB1dFZpZXcgPSBbJl0gewogICAgICAgICBzd2l0Y2gg
KHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5KSB7CiAgICAgICAgIGNhc2UgX1dLRm9jdXNTdGFydHNJ
bnB1dFNlc3Npb25Qb2xpY3lBdXRvOgpAQCAtNTI3OCwxMSArNTI5NCw4IEBAIC0gKHZvaWQpX2Vs
ZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilp
bmZvcm1hdGlvbiB1CiAgICAgICAgICAgICBpZiAodXNlcklzSW50ZXJhY3RpbmcpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIFlFUzsKIAotICAgICAgICAgICAgaWYgKHNlbGYuaXNGaXJzdFJlc3Bv
bmRlciB8fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcikgewotICAgICAgICAgICAgICAgIC8vIFdo
ZW4gdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGJlaW5nIHVzZWQgdG8gZW50ZXIgYW4gdXJsLCBv
bmx5IHRoZSBmb2N1cyBhY3Rpdml0eSBzdGF0ZSBpcyBjaGFuZ2luZy4KLSAgICAgICAgICAgICAg
ICAvLyBJbiB0aGlzIGNhc2UsIGF1dG8gZm9jdXMgb24gdGhlIHBhZ2UgYmVpbmcgbmF2aWdhdGVk
IHRvIHNob3VsZCBiZSBkaXNhYmxlZCwgdW5sZXNzIGEgaGFyZHdhcmUKLSAgICAgICAgICAgICAg
ICAvLyBrZXlib2FyZCBpcyBhdHRhY2hlZC4KLSAgICAgICAgICAgICAgICBpZiAoYWN0aXZpdHlT
dGF0ZUNoYW5nZXMgJiYgYWN0aXZpdHlTdGF0ZUNoYW5nZXMgIT0gV2ViQ29yZTo6QWN0aXZpdHlT
dGF0ZTo6SXNGb2N1c2VkKQorICAgICAgICAgICAgaWYgKFtzZWxmIGlzRmlyc3RSZXNwb25kZXJP
ckJlY29taW5nRmlyc3RSZXNwb25kZXJdKSB7CisgICAgICAgICAgICAgICAgaWYgKF9zaG91bGRT
aG93QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gWUVTOwogCiAjaWYgUExBVEZPUk0oV0FUQ0hPUykKQEAgLTU0ODgsMTIgKzU1
MDEsMTMgQEAgLSAodm9pZClfaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQKICAg
ICBbc2VsZiByZWxvYWRJbnB1dFZpZXdzXTsKIH0KIAotLSAodm9pZClfZGlkVXBkYXRlSW5wdXRN
b2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZQorLSAodm9pZClfZGlkVXBkYXRlSW5wdXRNb2Rl
OihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczooT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KWFjdGl2aXR5U3RhdGVDaGFuZ2VzCiB7Ci0g
ICAgaWYgKCFzZWxmLmlucHV0RGVsZWdhdGUgfHwgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
ZWxlbWVudFR5cGUgPT0gV2ViS2l0OjpJbnB1dFR5cGU6Ok5vbmUpCisgICAgaWYgKCFzZWxmLmlu
cHV0RGVsZWdhdGUgfHwgIWhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVudEluZm9ybWF0
aW9uKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgIVBMQVRGT1JNKFdBVENIT1MpCisgICAgU2V0
Rm9yU2NvcGU8Qk9PTD4gc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlXaGVuSW5wdXRNb2Rl
Tm9uZVNjb3BlIHsgX3Nob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJV2hlbklucHV0TW9kZU5v
bmUsIFtzZWxmIHNob3VsZFNob3dJbnB1dFZpZXdPblBhZ2VBY3RpdmF0aW9uOmFjdGl2aXR5U3Rh
dGVDaGFuZ2VzXSB9OwogICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmlucHV0TW9kZSA9
IG1vZGU7CiAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IGI3YTZiMzliYTRk
NjgzYjk3MzY3MWMwMzUyMDAyYTFlZTUwYzdmZDQuLjhjN2U0MGVlYWIyMGY5ODQ2Yzk0ZWVmZTkx
MjNjYTE1ZGEwZTExYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
ZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQpAQCAtOTI2LDcgKzkyNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbGVt
ZW50RGlkQmx1cigpCiAgICAgcGFnZUNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCk7CiB9CiAKLXZv
aWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3Jl
OjpJbnB1dE1vZGUgbW9kZSkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENo
YW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQogewogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpCiAgICAgaWYgKG1fdG91Y2hBbmRQb2ludGVyRXZlbnRUcmFja2luZy5p
c1RyYWNraW5nQW55dGhpbmcoKSkgewpAQCAtOTM1LDcgKzkzNSw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUg
bW9kZSkKICAgICB9CiAjZW5kaWYKIAotICAgIHBhZ2VDbGllbnQoKS5mb2N1c2VkRWxlbWVudERp
ZENoYW5nZUlucHV0TW9kZShtb2RlKTsKKyAgICBwYWdlQ2xpZW50KCkuZm9jdXNlZEVsZW1lbnRE
aWRDaGFuZ2VJbnB1dE1vZGUobW9kZSwgYWN0aXZpdHlTdGF0ZUNoYW5nZXMpOwogfQogCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCkKQEAgLTk0Myw3ICs5NDMs
NyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCkKICAgICBp
ZiAoIW1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFn
ZUNsaWVudCgpLmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKCptX3BlbmRpbmdJbnB1
dE1vZGVDaGFuZ2UpOworICAgIHBhZ2VDbGllbnQoKS5mb2N1c2VkRWxlbWVudERpZENoYW5nZUlu
cHV0TW9kZSgqbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlLCB7IH0pOwogICAgIG1fcGVuZGluZ0lu
cHV0TW9kZUNoYW5nZSA9IFdURjo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3YmM3NTlhOTUzZWNiYTRhMDkyMDAzZjA2
Yzk4ZDk5ZDBjNTJmMjNlLi41NGFjZjdkMTEzMjUxNDI3NWM1ZTdjOTExZjNiMDMzY2FmZTBjM2Zl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAt
NTQ4NSw3ICs1NDg1LDcgQEAgdm9pZCBXZWJQYWdlOjpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlu
cHV0TW9kZShXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50LCBXZWJDb3IKICAgICBpZiAoIWlzVGV4
dEZvcm1Db250cm9sT3JFZGl0YWJsZUNvbnRlbnQoZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEVsZW1lbnREaWRDaGFu
Z2VJbnB1dE1vZGUobW9kZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9j
dXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUobW9kZSwgbV9sYXN0QWN0aXZpdHlTdGF0ZUNo
YW5nZXMpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG1vZGUpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
ZmE3M2FkMjkwYmY5ZTc0ZGRkZjE0ZDYwMDUyZTAwMGU1YmY3MWEwMS4uZGY2ZGRiMTQ1MDUyNWMw
ZDY0ZTkyNjZiYzE0YTZjM2RlMGM1NTU2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTA4
LTIxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBT
aG91bGQgc2hvdyBpbnB1dCB2aWV3IHdoZW4gYmVjYW1lIGZpcnN0IHJlc3BvbmRlciBpZiBrZXli
b2FyZCB3YXMgc2hvd2luZyB3aGVuIHRoZSB2aWV3IHdhcyByZXNpZ25lZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwOTAyCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS81NDIzMTc1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWgu
CisKKyAgICAgICAgQWRkIHRlc3RzIHRvIGVuc3VyZSB0aGF0IHdlIHNob3cgdGhlIGtleWJvYXJk
IHdoZW4gYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyIGlmIHRoZSB2aWV3IHJlc2lnbmVkIHdpdGgg
dGhlCisgICAgICAgIGtleWJvYXJkIG9uIHNjcmVlbi4gQWxzbyBhZGQgYSB0ZXN0IHRvIGVuc3Vy
ZSB0aGF0IHdlIGtlZXAgb3VyIGN1cnJlbnQgYmVoYXZpb3IgYW5kIGRvIE5PVCBzaG93IHRoZSBr
ZXlib2FyZAorICAgICAgICBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCB3aGVuIHRoZSB2
aWV3IGJlY29tZXMgZmlyc3QgcmVzcG9uZGVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMvaW9z
L3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanM6IEFkZGVkLgorICAgICAgICAo
YXN5bmMuY2hlY2tLZXlib2FyZE9uU2NyZWVuKToKKyAgICAgICAgKGFzeW5jLmNoZWNrS2V5Ym9h
cmROb3RPblNjcmVlbik6CisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hv
dy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNw
b25kZXItYWZ0ZXItbmF2aWdhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZp
ZWxkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNv
bWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1pbnB1dG1vZGUtbm9uZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVj
b21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1m
aXJzdC1yZXNwb25kZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAod2luZG93
LlVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvU2hvdy5yZXR1cm4ubmV3LlByb21pc2UpOiBBZGRl
ZC4KKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb1Nob3cpOiBBZGRl
ZC4KKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5iZWNvbWVGaXJzdFJlc3BvbmRlcik6IEFkZGVk
LgorCiAyMDE5LTA4LTA4ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0IHdlIGRpc3BhdGNoIGtleWRvd24gYW5kIGtl
eXVwIGV2ZW50cyB3aGVuIG11bHRpcGxlIGtleXMgYXJlIHByZXNzZWQgYXQgdGhlIHNhbWUgdGlt
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9jaGVj
ay1rZXlib2FyZC1vbi1zY3JlZW4uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVz
b3VyY2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjM3YmViNGEz
OTVlNjFkODIzZTVhOTY4ZWFkYmViYjliZjI4MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4u
anMKQEAgLTAsMCArMSwxNSBAQAorYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2FyZE9uU2NyZWVu
KCkKK3sKKyAgICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQoKSkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiS2V5Ym9hcmQgaXMgb24gc2NyZWVuLiIpOworICAgIGVsc2UKKyAgICAg
ICAgdGVzdEZhaWxlZCgiS2V5Ym9hcmQgc2hvdWxkIGJlIG9uIHNjcmVlbiwgYnV0IGlzIG5vdC4i
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVuKCkKK3sKKyAg
ICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQoKSkKKyAgICAgICAgdGVzdEZh
aWxlZCgiS2V5Ym9hcmQgc2hvdWxkIG5vdCBiZSBvbiBzY3JlZW4sIGJ1dCBpdCBpcy4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIktleWJvYXJkIGlzIG5vdCBvbiBzY3JlZW4uIik7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1z
aG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJl
c3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUxZGVkNTg0OTZmMWRiY2ZhY2NlZjRkMTEwY2I3MTMwY2NjZTRhYTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5v
dC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0
LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIG5vdCBzaG93biBmb3Ig
YW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBiZWNvbWluZyBmaXJzdCByZXNwb25kZXIgYWZ0
ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IGJlY2FtZSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKQorUEFTUyBLZXlib2FyZCBp
cyBub3Qgb24gc2NyZWVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG91
bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxkLXdoZW4tYmVjb21pbmct
Zmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZGM1NGE0MjAzZWM3MjY4M2U4OTY0OTU1ZmNiNDA5ZGY4Njg2Yjk4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1r
ZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25k
ZXItYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoZWNrLWtleWJvYXJkLW9u
LXNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBpZD0iaW5wdXQi
IGF1dG9mb2N1cz4gPCEtLSBPbmx5IHJlc3BlY3RlZCBvbiBpT1Mgd2hlbiBhIGhhcmR3YXJlIGtl
eWJvYXJkIGlzIGF0dGFjaGVkLiAtLT4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5w
dXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0
UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQgVUlIZWxwZXIu
c2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5zZWFyY2ggPT0gIj9jaGVja1Jlc3VsdCIpIHsKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gY2hlY2tSZXN1bHRBbmREb25lKCkgeworICAgICAgICAgICAgYXdhaXQgY2hlY2tLZXlib2Fy
ZE5vdE9uU2NyZWVuKCk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlu
cHV0RWxlbWVudCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAg
ICAgICBhd2FpdCBVSUhlbHBlci5iZWNvbWVGaXJzdFJlc3BvbmRlcigpOworICAgICAgICBzaG91
bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW5wdXQnKSIsIGNoZWNrUmVzdWx0QW5kRG9uZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lv
bihpbnB1dEVsZW1lbnQpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25GaXJzdFJlc3Bv
bmRlcigpOworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiArPSAiP2NoZWNrUmVzdWx0IjsKKyAgICB9
Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJlIGtleWJvYXJk
IGlzIG5vdCBzaG93biBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBiZWNvbWluZyBm
aXJzdCByZXNwb25kZXIgYWZ0ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIGEgZm9jdXNl
ZCB0ZXh0IGZpZWxkLiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4t
YmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEyNWVhYzVkMWE4MmE5ODE0MDViMjk3ZTBlYzIyMTY0MjUzYjBjYjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXli
b2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoYXQgaW4gYSBmb2N1
c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBhbmQgc2hvd24g
d2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVjb21lcyBmaXJzdCByZXNwb25kZXIsIHJl
c3BlY3RpdmVseSwgZXZlbnRob3VnaCBmb2N1c2luZyB0aGUgdGV4dCBmaWVsZCBzZXRzIGlucHV0
bW9kZSB0byAibm9uZSIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0FmdGVy
IHRhcHBpbmcgPGlucHV0PjoKK1BBU1MgS2V5Ym9hcmQgaXMgb24gc2NyZWVuLgorCitBZnRlciBy
ZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBub3Qgb24gc2NyZWVu
LgorCitBZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6CitQQVNTIEtleWJvYXJkIGlzIG9u
IHNjcmVlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2Fy
ZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29t
aW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDk3ODJhZDZiNjExZDI0ZTA0NzliNzcwYjFhMjNlYzFmMjFiMDNkZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVj
b21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUuaHRtbApAQCAtMCww
ICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aW5wdXQgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW5wdXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRU
ZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQgVUlIZWxw
ZXIuc2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGRlYnVnKCI8YnI+
QWZ0ZXIgdGFwcGluZyAmbHQ7aW5wdXQmZ3Q7OiIpOworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oaW5wdXRFbGVtZW50KTsKKyAgICBhd2Fp
dCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgcmVzaWdu
aW5nIGZpcnN0IHJlc3BvbmRlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25GaXJzdFJl
c3BvbmRlcigpOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOwor
ICAgIGF3YWl0IGNoZWNrS2V5Ym9hcmROb3RPblNjcmVlbigpOworCisgICAgZGVidWcoIjxicj5B
ZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuYmVj
b21lRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRU
b1Nob3coKTsKKyAgICBhd2FpdCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXRFbGVtZW50KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgKCkgPT4gaW5wdXRF
bGVtZW50LnNldEF0dHJpYnV0ZSgiaW5wdXRtb2RlIiwgIm5vbmUiKSwgdHJ1ZSAvKiBjYXB0dXJl
IHBoYXNlICovKTsKKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbiBhIGZvY3VzZWQg
dGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBzaG93biB3aGVu
IHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgcmVzcGVj
dGl2ZWx5LCBldmVudGhvdWdoIGZvY3VzaW5nIHRoZSB0ZXh0IGZpZWxkIHNldHMgaW5wdXRtb2Rl
IHRvICZxdW90O25vbmUmcXVvdDsuIik7CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtl
eWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3Qt
cmVzcG9uZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDQ1ZTBmZTExMjVhMzk2NjNiYWY0
MzcyMmZlZTA0MWM0M2ZkOTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBhIGZvY3VzZWQg
dGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBzaG93biB3aGVu
IHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgcmVzcGVj
dGl2ZWx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitBZnRlciB0YXBwaW5n
IDxpbnB1dD46CitQQVNTIEtleWJvYXJkIGlzIG9uIHNjcmVlbi4KKworQWZ0ZXIgcmVzaWduaW5n
IGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVlbi4KKworQWZ0
ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBvbiBzY3JlZW4u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1i
ZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lv
cy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjNkYjcyY2MxMTVhMTRlOWQ5ODE2M2Q4ZjNlZGQ4YmNhNjFmYWVhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4t
YmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2hlY2sta2V5Ym9h
cmQtb24tc2NyZWVuLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGlkPSJp
bnB1dCI+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgaW5w
dXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7CisKK2FzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9h
cmRBdHRhY2hlZChmYWxzZSk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHRhcHBpbmcgJmx0O2lu
cHV0Jmd0OzoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9y
SW5wdXRTZXNzaW9uKGlucHV0RWxlbWVudCk7CisgICAgYXdhaXQgY2hlY2tLZXlib2FyZE9uU2Ny
ZWVuKCk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXI6
Iik7CisgICAgYXdhaXQgVUlIZWxwZXIucmVzaWduRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICBhd2FpdCBjaGVja0tleWJv
YXJkTm90T25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgYmVjb21pbmcgZmlyc3Qg
cmVzcG9uZGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKCk7
CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9TaG93KCk7CisgICAgYXdhaXQg
Y2hlY2tLZXlib2FyZE9uU2NyZWVuKCk7CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGlucHV0RWxlbWVudCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgaW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJv
YXJkIGlzIGhpZGRlbiBhbmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVj
b21lcyBmaXJzdCByZXNwb25kZXIsIHJlc3BlY3RpdmVseS4iKTsKK3J1blRlc3QoKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXgg
ODQzMWVkYjM5M2E5NzM5NDQ3MjBkN2UyZDUzNWM1ZDRmYmI5MjI0ZC4uNThmMzQxNDNlZTVkYTQ1
MTVmMjE0YWFjMzJmYzE1NzA5Nzc2NDEzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpz
CkBAIC01MDYsNiArNTA2LDIyIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsK
ICAgICAgICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIHdhaXRGb3JLZXlib2FyZFRvU2hvdygp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1NGYW1p
bHkoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nS2V5Ym9hcmQpCisgICAgICAgICAgICAg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkU2hv
d0tleWJvYXJkQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgp
OworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQor
CiAgICAgc3RhdGljIGdldFVJQ2FyZXRSZWN0KCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5p
c1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPU0ZhbWlseSgpKQpAQCAtNzg1LDYgKzgwMSwxNCBAQCB3
aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYHVpQ29udHJvbGxlci5yZXNp
Z25GaXJzdFJlc3BvbmRlcigpYCwgcmVzb2x2ZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBiZWNv
bWVGaXJzdFJlc3BvbmRlcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkp
CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgdWlDb250cm9s
bGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKClgLCByZXNvbHZlKSk7CisgICAgfQorCiAgICAgc3Rh
dGljIG1pbmltdW1ab29tU2NhbGUoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0
MigpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377059</attachid>
            <date>2019-08-22 15:21:12 -0700</date>
            <delta_ts>2020-03-25 10:12:30 -0700</delta_ts>
            <desc>To land</desc>
            <filename>bug-200902-20190822152111.patch</filename>
            <type>text/plain</type>
            <size>32162</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxOGE2ZDM1NDY3ZGY2YjUx
ZGJiNjc0MTcyMTExNmE3YzgwNmU1NTQuLmM4ZWJkNmI0ODdiZmNhZjY3YTZjMzI1ZmMyNWM5ODUy
OTNlNWQzOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTktMDgtMjIgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlu
cHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93
aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0
MjMxNzU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBX
aGVuIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIgc2F2ZSB3aGV0aGVyIHRoZSBwZXJpcGhlcmFs
IGhvc3QgaGFzIGFuIGlucHV0IHZpZXcgb24gc2NyZWVuLAorICAgICAgICBpbmNsdWRpbmcgdGhl
IHNvZnR3YXJlIGtleWJvYXJkLCBzbyB0aGF0IHdlIHNob3cgdGhlIGlucHV0IHZpZXcocykgYWdh
aW4gd2hlbiB0aGUgV0tXZWJWaWV3CisgICAgICAgIGlzIG1hZGUgZmlyc3QgcmVzcG9uZGVyLiBJ
biBTYWZhcmksIHRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBhIHBlcnNvbiB0byBleHBsaWNpdGx5
IGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1lbnQgYWdhaW4gdG8gYnJpbmcgdXAgdGhl
IGtleWJvYXJkIHdoZW4gcmV0dXJuaW5nIHRvIGEgdGFiIHRoZXkgd2VyZSBwcmV2aW91c2x5Cisg
ICAgICAgIHR5cGluZyBpbi4gSXQgYWxzbyBtYWtlcyB0aGUgYmVoYXZpb3Igb2Ygc3dpdGNoaW5n
IHRhYnMgaW4gU2FmYXJpIHdpdGggYSBzb2Z0d2FyZSBrZXlib2FyZAorICAgICAgICBtYXRjaCB0
aGUgYmVoYXZpb3Igb2YgZG9pbmcgdGhlIHNhbWUgdGhpbmcgd2hlbiBhIGhhcmR3YXJlIGtleWJv
YXJkIGF0dGFjaGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKToKKyAgICAgICAgUGFzcyBhIGRpZmYgb2YgdGhlIGFjdGl2aXR5IHN0YXRlIGZy
b20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzIHNvIHRoYXQgd2UgY2FuCisgICAg
ICAgIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhbiBpbnB1dG1vZGUgY2hhbmdlIGFzIGEgcmVzdWx0
IG9mIHBhZ2UgZGVhY3RpdmF0aW9uIHZzIGEgY2hhbmdlCisgICAgICAgIGNhdXNlZCBieSBzb21l
IG90aGVyIG1lYW5zLiBXZSBuZWVkIHRvIGRpZmZlcmVudGlhdGUgdGhlc2UgY2FzZXMgYmVjYXVz
ZSB3ZSB3YW50IHRvCisgICAgICAgIGlnbm9yZSBhIHBhZ2UgdGhhdCBzZXRzIGlucHV0bW9kZSAi
bm9uZSIgKGkuZS4gYSByZXF1ZXN0IHRvIGhpZGUgdGhlIGtleWJvYXJkKSBmcm9tIGluc2lkZQor
ICAgICAgICBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgaWYgdGhlIGhhbmRsZXIgd2FzIGNhbGxlZCBh
cyBwYXJ0IG9mIHRoZSBwcm9jZXNzIG9mIHBhZ2UgYWN0aXZhdGlvbgorICAgICAgICAoaS5lLiBz
d2l0Y2hpbmcgdG8gdGhlIHRhYikuIEdvb2dsZSBEb2NzIGlzIG9uZSBleGFtcGxlIG9mIGEgd2Vi
IHNpdGUgdGhhdCBzZXRzIGlucHV0bW9kZQorICAgICAgICB0byAibm9uZSIgYXMgYSByZXN1bHQg
b2YgdGhlIHBhZ2UgYWN0aXZhdGlvbiBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVh
bnVwSW50ZXJhY3Rpb25dKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOiBTYXZlIHdoZXRoZXIgdGhlIHBl
cmlwaGVyYWwgaG9zdCBpcyBvbiBzY3JlZW4KKyAgICAgICAgaW50byBhIGxvY2FsIGJlZm9yZSBl
bmRpbmcgdGhlIGVkaXRpbmcgc2Vzc2lvbi4gV2UgdGhlbiBjb3B5IHRoZSBsb2NhbCBpbnRvIHRo
ZSBpdmFyIGlmIHdlCisgICAgICAgIGFjdHVhbGx5IHdpbGwgcmVzaWduLiBUaGlzIG9yZGVyaW5n
IGlzIGV4cGxpY2l0bHkgZG9uZSBiZWNhdXNlOgorICAgICAgICAgICAgICAgIDEuIEVuZGluZyB0
aGUgZWRpdGluZyBzZXNzaW9uIG1heSBkaXNtaXNzIHRoZSBrZXlib2FyZCA9PiB3ZSBuZWVkIHRv
IHF1ZXJ5IHRoZSBwZXJpcGhlcmFsCisgICAgICAgICAgICAgICAgICAgaG9zdCBmaXJzdC4KKyAg
ICAgICAgICAgICAgICAyLiBJZiB0aGUgdmlldyBpcyBiZWluZyByZXNpZ25lZCBhcyBhIHJlc3Vs
dCBvZiBhIGtleWJvYXJkIGRpc21pc3NhbCAoaS5lLiBhIHBlcnNvbiBwcmVzc2VkCisgICAgICAg
ICAgICAgICAgICAgdGhlIGhpZGUga2V5Ym9hcmQgYnV0dG9uIG9uIGlQYWQpIHRoZW4gdGhlIHVz
ZXIgaGFzIGluZGljYXRlZCB0aGF0IHRoZXkgYXJlIGZpbmlzaGVkCisgICAgICAgICAgICAgICAg
ICAgd2l0aCB0aGUga2V5Ym9hcmQgYW5kIHdlIGRvIG5vdCB3YW50IHRvIHNob3cgdGhlIGtleWJv
YXJkIG9uIHBhZ2UgcmUtYWN0aXZhdGlvbiA9PiB3ZQorICAgICAgICAgICAgICAgICAgIGRvIG5v
dCB3YW50IHRvIGNvcHkgdGhlIGxvY2FsIHRvIHRoZSBpdmFyLgorICAgICAgICAgICAgICAgIDMu
IElmIHRoZSB2aWV3IHJlZnVzZXMgdG8gcmVzaWduIGl0c2VsZiB0aGVuIGl0IGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gc2F2ZSB0aGUga2V5Ym9hcmQKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSBh
cyByZXNwb25kZXIgc3RhdHVzIGhhc24ndCBjaGFuZ2VkLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHNob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJXSk6IElnbm9yZSBpbnB1dG1vZGU9Im5v
bmUiLCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRG
b3JNYWluRnJhbWVdKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGlzRmlyc3RSZXNwb25kZXJPckJlY29taW5nRmlyc3RSZXNwb25kZXJdKTogQWRkZWQuCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkU2hvd0lucHV0Vmlld09uUGFnZUFjdGl2YXRpb246
XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6dXNl
cklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczp1c2Vy
T2JqZWN0Ol0pOgorICAgICAgICBVcGRhdGUgaXZhciBpZiB0aGlzIGVsZW1lbnQgaXMgYmVpbmcg
Zm9jdXNlZCBhcyBhIHJlc3VsdCBvZiBwYWdlIGFjdGl2YXRpb24uCisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2RpZFVwZGF0ZUlucHV0TW9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczpdKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgYWN0aXZpdHkgc3RhdGUKKyAgICAgICAgZGlmZi4gSWYgdGhlIGlu
cHV0IG1vZGUgd2FzIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgcGFnZSBhY3RpdmF0aW9uIHRoZW4g
d2Ugd2FudCB0byB1cGRhdGUgb3VyIGl2YXIKKyAgICAgICAgc28gdGhhdCB3aGVuIHdlIGNhbGwg
LXJlbG9hZElucHV0Vmlld3MgYW5kIFVJS2l0IGNhbGxzIHVzIGJhY2sgaW4gLXNob3VsZFNob3dB
dXRvbWF0aWNLZXlib2FyZFVJIHdlCisgICAgICAgIHdpbGwga25vdyB0byBpZ25vcmUgaW5wdXRt
b2RlIHNldCB0byAibm9uZSIgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHNob3cgdGhlIGF1
dG9tYXRpYyBrZXlib2FyZCBVSS4KKyAgICAgICAgTm90ZSB0aGF0IHdlIGRvIG5vdCBuZWVkIHRv
IGNoZWNrL3RyYWNrIHdoZXRoZXIgYW4gZWFybGllciAtX2VsZW1lbnREaWRGb2N1cyBhY3R1YWxs
eSBzdGFydGVkIGFuCisgICAgICAgIGlucHV0IHNlc3Npb24gYXMgcGFydCBvZiB1cGRhdGluZyB0
aGUgdmFsdWUgb2Ygb3VyIGl2YXIgYmVjYXVzZSBpZiBhbiBpbnB1dCBzZXNzaW9uIHdhcyBub3Qg
c3RhcnRlZCwKKyAgICAgICAgc2F5IHRoZSBlbWJlZGRpbmcgY2xpZW50IGRpc2FsbG93ZWQgaXQs
IHRoZW4gd2Ugd291bGQgbm90IGhhdmUgYSBmb2N1c2VkIGVsZW1lbnQgPT4gd2UgZWFybHkgcmV0
dXJuIGZyb20KKyAgICAgICAgdGhpcyBmdW5jdGlvbi4gQWxzbyByZW1vdmUgZHVwbGljYXRpb24g
YW5kIGltcHJvdmUgY29kZSByZWFkYmlsaXR5IGJ5IG1ha2luZyB1c2Ugb2YgdGhlIGNvbnZlbmll
bmNlIGZ1bmN0aW9uCisgICAgICAgIGhhc0ZvY3VzZWRFbGVtZW50KCkgaW5zdGVhZCBvZiBkdXBs
aWNhdGluZyB3aGF0IGl0IGRvZXMuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFVwZGF0
ZUlucHV0TW9kZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVu
dERpZENoYW5nZUlucHV0TW9kZSk6IE1vZGlmaWVkIHRvIHRha2UgdGhlIGFjdGl2aXR5IHN0YXRl
IGRpZmYKKyAgICAgICAgYW5kIHBhc3MgaXQgdGhyb3VnaC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMpOiBQYXNzIHRoZSBlbXB0eSBzZXQg
Zm9yIHRoZSBhY3Rpdml0eSBzdGF0ZSBkaWZmIHRvCisgICAgICAgIGtlZXAgb3VyIGN1cnJlbnQg
YmVoYXZpb3IuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSk6
IFNlbmQgdGhlIGFjdGl2aXR5IHN0YXRlIGRpZmYgdG8gdGhlIFVJIHByb2Nlc3MuCiAyMDE5LTA4
LTIyICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
bG9nZ2luZyB0aGF0IGNvbnRhaW5zIGEgVVJMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKaW5kZXggZTgyN2JiNDI1MTM2NDI4YzE5MzZjMGY4YjM3NTU0Mjk4N2E2NmExZC4uNzQyMTg3
NzMzNjMxZmNmY2I0MWJiZTA3MjcwMWE0MDdmYzZmODEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaApAQCAtMzg4LDcgKzM4OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29s
IHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgQVBJOjpPYmpl
Y3QqIHVzZXJEYXRhKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUlucHV0Q29udGV4dEFm
dGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
ZWxlbWVudERpZEJsdXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50RGlk
Q2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUsIE9w
dGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWNlaXZlRWRpdG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzKCkgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBpc0ZvY3VzaW5nRWxlbWVudCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaW50
ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXNDaGFy
RXZlbnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNGVh
MTVhM2JjMTgzOTY4N2NlYWUyYWNlNGE5OWI1NTk3OWMzNTYyNS4uZDVkNTBmY2Q1Y2I1NzlhZWMx
ODE3ZGQwNWY0NmUzMmNlZGEyZmIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKQEAgLTE5NDUsNyArMTk0NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJh
Y3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoKTsKICAgICB2b2lkIHVwZGF0ZUlucHV0Q29udGV4dEFmdGVy
Qmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCgpOwotICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRE
aWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKTsKKyAgICB2b2lkIGZvY3VzZWRF
bGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0PFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KTsKICAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3Vj
aFBvaW50cygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1
cygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggNjFkYzFiYzUwMmQ1YzkyNTMzZTI3MWI3ZDE2YzlkZjRjZjI2M2E0My4uODky
NzAxMzM1NGI5Y2VlODdhNGJkZmI2ZmQzMWQxOGNlZTVkOWRlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDA5LDcgKzQwOSw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgRWxlbWVudERpZEZvY3VzKHN0cnVj
dCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gaW5mb3JtYXRpb24sIGJvb2wgdXNl
cklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhKQogICAgIEVsZW1lbnREaWRCbHVyKCkKICAgICBVcGRhdGVJbnB1dENvbnRl
eHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQoKQotICAgIEZvY3VzZWRFbGVtZW50
RGlkQ2hhbmdlSW5wdXRNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSkK
KyAgICBGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6SW5wdXRNb2RlIG1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
PiBhY3Rpdml0eVN0YXRlQ2hhbmdlcykKICAgICBTY3JvbGxpbmdOb2RlU2Nyb2xsV2lsbFN0YXJ0
U2Nyb2xsKCkKICAgICBTY3JvbGxpbmdOb2RlU2Nyb2xsRGlkRW5kU2Nyb2xsKCkKICAgICBTaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KHN0cnVjdCBXZWJDb3JlOjpIaWdobGlnaHQgaGlnaGxpZ2h0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRl
eCBiYjk3YjA1M2JkMGJhNTk2OTZjODc5MWY0MmM1NzVlNzI0MTc4ZjFjLi5lNzJmYzJmZThhYWE2
YTI2OGVmMDVkNzQ0MDI4OTNiMWNkNmRlMGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTUxLDcgKzE1MSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
biYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBB
UEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlSW5wdXRDb250
ZXh0QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkgZmluYWw7CiAgICAgdm9pZCBl
bGVtZW50RGlkQmx1cigpIG92ZXJyaWRlOwotICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFu
Z2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKSBvdmVycmlkZTsKKyAgICB2b2lkIGZvY3Vz
ZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFJl
Y2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXMoKSBvdmVycmlkZTsKICAgICBib29sIGlz
Rm9jdXNpbmdFbGVtZW50KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2Uo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQppbmRleCBkMzkzMGI1ZTdmZDBlNjIwZmY1ZDUxODY4YTc3NTM3Y2E5ZmE0OTEw
Li5mMTU4M2NjMWJlYTIzZmQ5NWQyYzRmYjM5NjNkNWVlZGMwOWRjY2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC01NzMsOSAr
NTczLDkgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZWxlbWVudERpZEJsdXIoKQogICAgIFttX2Nv
bnRlbnRWaWV3IF9lbGVtZW50RGlkQmx1cl07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OmZv
Y3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSBtb2RlKQor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2Vi
Q29yZTo6SW5wdXRNb2RlIG1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcykKIHsKLSAgICBbbV9jb250ZW50VmlldyBfZGlkVXBk
YXRlSW5wdXRNb2RlOm1vZGVdOworICAgIFttX2NvbnRlbnRWaWV3IF9kaWRVcGRhdGVJbnB1dE1v
ZGU6bW9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczphY3Rpdml0eVN0YXRlQ2hhbmdlc107CiB9CiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlY2VpdmVFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9j
dXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oCmluZGV4IDMxMmZlMTRlMmUxMzQ2ZjNmYTc0ZmY2MzdiYzM3ZjYxNjRk
MzE4MTQuLjVlNThjMThhNmFlNjZiYjEzYjQwYzEwNGU4N2YzMmY5MDY5MmYyNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKQEAgLTMzNyw2ICszMzcsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewog
I2VuZGlmCiAKICAgICBCT09MIF9rZXlib2FyZERpZFJlcXVlc3REaXNtaXNzYWw7CisgICAgQk9P
TCBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZpZXc7CisgICAgQk9PTCBfc2hvdWxkU2hv
d0F1dG9tYXRpY0tleWJvYXJkVUlXaGVuSW5wdXRNb2RlTm9uZTsKIAogI2lmIFVTRShVSUtJVF9L
RVlCT0FSRF9BRERJVElPTlMpCiAgICAgQk9PTCBfY2FuZGlkYXRlVmlld05lZWRzVXBkYXRlOwpA
QCAtNDYyLDcgKzQ2NCw3IEBAIEZPUl9FQUNIX1BSSVZBVEVfV0tDT05URU5UVklFV19BQ1RJT04o
REVDTEFSRV9XS0NPTlRFTlRWSUVXX0FDVElPTl9GT1JfV0VCX1ZJRVcpCiAtICh2b2lkKV91cGRh
dGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQ7CiAtICh2b2lk
KV9lbGVtZW50RGlkQmx1cjsKIC0gKHZvaWQpX2hpZGVDb250ZXh0TWVudUhpbnRDb250YWluZXI7
Ci0tICh2b2lkKV9kaWRVcGRhdGVJbnB1dE1vZGU6KFdlYkNvcmU6OklucHV0TW9kZSltb2RlOwor
LSAodm9pZClfZGlkVXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9kZSBhY3Rp
dml0eVN0YXRlQ2hhbmdlczooT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+
KWFjdGl2aXR5U3RhdGVDaGFuZ2VzOwogLSAodm9pZClfZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBk
YXRlQWZ0ZXJGb2N1czsKIC0gKHZvaWQpX2hhcmR3YXJlS2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFu
Z2VkOwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDVmOGRk
YmQzZjVkY2NkOGIwN2JlYWNjOGM0YWFmZTAxODE3OGFjMDIuLjIzMzc3MjQ1N2FmZWFjZWRhNTZh
YTg0M2ZhMzJmNjVkOTBkMzI4M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtOTQzLDYgKzk0Myw3IEBA
IC0gKHZvaWQpY2xlYW51cEludGVyYWN0aW9uCiAKICAgICBbc2VsZiBfcmVzZXRJbnB1dFZpZXdE
ZWZlcnJhbF07CiAgICAgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gPSB7IH07CisgICAgX3dh
c1Jlc2lnbmVkV2hpbGVTaG93aW5nSW5wdXRWaWV3ID0gTk87CiAgICAgCiAgICAgW19rZXlib2Fy
ZFNjcm9sbGluZ0FuaW1hdG9yIGludmFsaWRhdGVdOwogICAgIF9rZXlib2FyZFNjcm9sbGluZ0Fu
aW1hdG9yID0gbmlsOwpAQCAtMTI2MSw3ICsxMjYyLDggQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJl
c3BvbmRlckZvcldlYlZpZXcKIAogICAgIFNldEZvclNjb3BlPEJPT0w+IHJlc2lnbmluZ0ZpcnN0
UmVzcG9uZGVyU2NvcGUgeyBfcmVzaWduaW5nRmlyc3RSZXNwb25kZXIsIFlFUyB9OwogCi0gICAg
W3NlbGYgZW5kRWRpdGluZ0FuZFVwZGF0ZUZvY3VzQXBwZWFyYW5jZVdpdGhSZWFzb246RW5kRWRp
dGluZ1JlYXNvblJlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyXTsKKyAgICBCT09MIHdhc0tleWJvYXJk
T25TY3JlZW4gPSBVSVBlcmlwaGVyYWxIb3N0LmFjdGl2ZUluc3RhbmNlLmlzT25TY3JlZW47Cisg
ICAgW3NlbGYgZW5kRWRpdGluZ0FuZFVwZGF0ZUZvY3VzQXBwZWFyYW5jZVdpdGhSZWFzb246RW5k
RWRpdGluZ1JlYXNvblJlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyXTsgLy8gTWF5IGRpc21pc3MgdGhl
IGtleWJvYXJkLgogCiAgICAgLy8gSWYgdGhlIHVzZXIgZXhwbGljaXRseSBkaXNtaXNzZWQgdGhl
IGtleWJvYXJkIHRoZW4gd2Ugd2lsbCBsb3NlIGZpcnN0IHJlc3BvbmRlcgogICAgIC8vIHN0YXR1
cyBvbmx5IHRvIGdhaW4gaXQgYmFjayBhZ2Fpbi4gSnVzdCBkb24ndCByZXNpZ24gaW4gdGhhdCBj
YXNlLgpAQCAtMTI3Myw2ICsxMjc1LDcgQEAgLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlckZv
cldlYlZpZXcKICAgICBib29sIHN1cGVyRGlkUmVzaWduID0gW3N1cGVyIHJlc2lnbkZpcnN0UmVz
cG9uZGVyXTsKIAogICAgIGlmIChzdXBlckRpZFJlc2lnbikgeworICAgICAgICBfd2FzUmVzaWdu
ZWRXaGlsZVNob3dpbmdJbnB1dFZpZXcgPSB3YXNLZXlib2FyZE9uU2NyZWVuOwogICAgICAgICBb
c2VsZiBfaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdDpXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlXTsKICAgICAgICAgX3BhZ2UtPmFjdGl2aXR5
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkKTsKICAgICB9
CkBAIC0xNzA0LDcgKzE3MDcsNyBAQCAtIChCT09MKXNob3VsZFNob3dBdXRvbWF0aWNLZXlib2Fy
ZFVJCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdXBwb3J0IGlucHV0bW9kZT0ibm9uZSIgd2hl
biB0aGUgaGFyZHdhcmUga2V5Ym9hcmQgaXMgYXR0YWNoZWQuCiAgICAgLy8gV2UgY3VycmVudGx5
IHJlZnJhaW4gZnJvbSBkb2luZyBzbyBiZWNhdXNlIHRoYXQgd291bGQgcHJldmVudCBVSUtpdCBm
cm9tIHNob3dpbmcKICAgICAvLyB0aGUgbGFuZ3VhZ2UgcGlja2VyIHdoZW4gcHJlc3NpbmcgdGhl
IGdsb2JlIGtleSB0byBjaGFuZ2UgdGhlIGlucHV0IGxhbmd1YWdlLgotICAgIGlmIChfZm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnB1dE1vZGUgPT0gV2ViQ29yZTo6SW5wdXRNb2RlOjpOb25l
ICYmICFHU0V2ZW50SXNIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoKSkKKyAgICBpZiAoX2ZvY3Vz
ZWRFbGVtZW50SW5mb3JtYXRpb24uaW5wdXRNb2RlID09IFdlYkNvcmU6OklucHV0TW9kZTo6Tm9u
ZSAmJiAhR1NFdmVudElzSGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKCkgJiYgIV9zaG91bGRTaG93
QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lKQogICAgICAgICByZXR1cm4gTk87
CiAKICAgICByZXR1cm4gW3NlbGYgX3Nob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJSWdub3Jp
bmdJbnB1dE1vZGVdOwpAQCAtMzk3NSw2ICszOTc4LDcgQEAgLSAodm9pZClfZGlkQ29tbWl0TG9h
ZEZvck1haW5GcmFtZQogI2lmIFVTRShVSUtJVF9LRVlCT0FSRF9BRERJVElPTlMpCiAgICAgX3Nl
ZW5IYXJkd2FyZUtleURvd25Jbk5vbkVkaXRhYmxlRWxlbWVudCA9IE5POwogI2VuZGlmCisgICAg
X3dhc1Jlc2lnbmVkV2hpbGVTaG93aW5nSW5wdXRWaWV3ID0gTk87CiAgICAgW3NlbGYgX2VsZW1l
bnREaWRCbHVyXTsKICAgICBbc2VsZiBfY2FuY2VsTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXJd
OwogICAgIFtzZWxmIF9oaWRlQ29udGV4dE1lbnVIaW50Q29udGFpbmVyXTsKQEAgLTUyNzIsNiAr
NTI3NiwxNiBAQCBzdGF0aWMgUmV0YWluUHRyPE5TT2JqZWN0IDxXS0Zvcm1QZXJpcGhlcmFsPj4g
Y3JlYXRlSW5wdXRQZXJpcGhlcmFsV2l0aFZpZXcoV2ViSwogICAgIH0KIH0KIAorLSAoQk9PTClp
c0ZpcnN0UmVzcG9uZGVyT3JCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyCit7CisgICAgcmV0dXJuIHNl
bGYuaXNGaXJzdFJlc3BvbmRlciB8fCBfYmVjb21pbmdGaXJzdFJlc3BvbmRlcjsKK30KKworLSAo
Qk9PTClzaG91bGRTaG93SW5wdXRWaWV3T25QYWdlQWN0aXZhdGlvbjooY29uc3QgT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+ICYpYWN0aXZpdHlTdGF0ZUNoYW5nZXMKK3sK
KyAgICByZXR1cm4gW3NlbGYgaXNGaXJzdFJlc3BvbmRlck9yQmVjb21pbmdGaXJzdFJlc3BvbmRl
cl0gJiYgYWN0aXZpdHlTdGF0ZUNoYW5nZXMuY29udGFpbnMoV2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6SXNGb2N1c2VkKSAmJiBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJbnB1dFZpZXc7Cit9CisK
IC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1c2VySXNJbnRlcmFjdGluZzooQk9PTCl1c2VySXNJbnRl
cmFjdGluZyBibHVyUHJldmlvdXNOb2RlOihCT09MKWJsdXJQcmV2aW91c05vZGUgYWN0aXZpdHlT
dGF0ZUNoYW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPilhY3Rp
dml0eVN0YXRlQ2hhbmdlcyB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICop
dXNlck9iamVjdAogewogICAgIFNldEZvclNjb3BlPEJPT0w+IGlzQ2hhbmdpbmdGb2N1c0ZvclNj
b3BlIHsgX2lzQ2hhbmdpbmdGb2N1cywgaGFzRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb24pIH07CkBAIC01Mjk2LDYgKzUzMTAsOCBAQCAtICh2b2lkKV9lbGVtZW50RGlk
Rm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRp
b24gdQogICAgIGlmIChbaW5wdXREZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvckZvY3VzZWRFbGVtZW50OildKQogICAgICAgICBzdGFy
dElucHV0U2Vzc2lvblBvbGljeSA9IFtpbnB1dERlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRl
Y2lkZVBvbGljeUZvckZvY3VzZWRFbGVtZW50OmZvY3VzZWRFbGVtZW50SW5mby5nZXQoKV07CiAK
KyAgICBTZXRGb3JTY29wZTxCT09MPiBzaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5J
bnB1dE1vZGVOb25lU2NvcGUgeyBfc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlXaGVuSW5w
dXRNb2RlTm9uZSwgc3RhcnRJbnB1dFNlc3Npb25Qb2xpY3kgPT0gX1dLRm9jdXNTdGFydHNJbnB1
dFNlc3Npb25Qb2xpY3lBdXRvICYmIFtzZWxmIHNob3VsZFNob3dJbnB1dFZpZXdPblBhZ2VBY3Rp
dmF0aW9uOmFjdGl2aXR5U3RhdGVDaGFuZ2VzXSB9OworCiAgICAgQk9PTCBzaG91bGRTaG93SW5w
dXRWaWV3ID0gWyZdIHsKICAgICAgICAgc3dpdGNoIChzdGFydElucHV0U2Vzc2lvblBvbGljeSkg
ewogICAgICAgICBjYXNlIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzoKQEAg
LTUzMDQsMTEgKzUzMjAsOCBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktp
dDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAgICAgICAgICAg
aWYgKHVzZXJJc0ludGVyYWN0aW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBZRVM7CiAKLSAg
ICAgICAgICAgIGlmIChzZWxmLmlzRmlyc3RSZXNwb25kZXIgfHwgX2JlY29taW5nRmlyc3RSZXNw
b25kZXIpIHsKLSAgICAgICAgICAgICAgICAvLyBXaGVuIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBp
cyBiZWluZyB1c2VkIHRvIGVudGVyIGFuIHVybCwgb25seSB0aGUgZm9jdXMgYWN0aXZpdHkgc3Rh
dGUgaXMgY2hhbmdpbmcuCi0gICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCBhdXRvIGZv
Y3VzIG9uIHRoZSBwYWdlIGJlaW5nIG5hdmlnYXRlZCB0byBzaG91bGQgYmUgZGlzYWJsZWQsIHVu
bGVzcyBhIGhhcmR3YXJlCi0gICAgICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaXMgYXR0YWNoZWQu
Ci0gICAgICAgICAgICAgICAgaWYgKGFjdGl2aXR5U3RhdGVDaGFuZ2VzICYmIGFjdGl2aXR5U3Rh
dGVDaGFuZ2VzICE9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCkKKyAgICAgICAg
ICAgIGlmIChbc2VsZiBpc0ZpcnN0UmVzcG9uZGVyT3JCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyXSkg
eworICAgICAgICAgICAgICAgIGlmIChfc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlXaGVu
SW5wdXRNb2RlTm9uZSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAogI2lmIFBM
QVRGT1JNKFdBVENIT1MpCkBAIC01NTIyLDEyICs1NTM1LDEzIEBAIC0gKHZvaWQpX2hhcmR3YXJl
S2V5Ym9hcmRBdmFpbGFiaWxpdHlDaGFuZ2VkCiAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107
CiB9CiAKLS0gKHZvaWQpX2RpZFVwZGF0ZUlucHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1v
ZGUKKy0gKHZvaWQpX2RpZFVwZGF0ZUlucHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUg
YWN0aXZpdHlTdGF0ZUNoYW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFnPilhY3Rpdml0eVN0YXRlQ2hhbmdlcwogewotICAgIGlmICghc2VsZi5pbnB1dERlbGVnYXRl
IHx8IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktpdDo6SW5w
dXRUeXBlOjpOb25lKQorICAgIGlmICghc2VsZi5pbnB1dERlbGVnYXRlIHx8ICFoYXNGb2N1c2Vk
RWxlbWVudChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbikpCiAgICAgICAgIHJldHVybjsKIAog
I2lmICFQTEFURk9STShXQVRDSE9TKQorICAgIFNldEZvclNjb3BlPEJPT0w+IHNob3VsZFNob3dB
dXRvbWF0aWNLZXlib2FyZFVJV2hlbklucHV0TW9kZU5vbmVTY29wZSB7IF9zaG91bGRTaG93QXV0
b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lLCBbc2VsZiBzaG91bGRTaG93SW5wdXRW
aWV3T25QYWdlQWN0aXZhdGlvbjphY3Rpdml0eVN0YXRlQ2hhbmdlc10gfTsKICAgICBfZm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnB1dE1vZGUgPSBtb2RlOwogICAgIFtzZWxmIHJlbG9hZElu
cHV0Vmlld3NdOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbQppbmRleCBkZDU2NmQxMTAwZDM5ODM4YTY0ZDJkZDk4MjQ3NjEyMWIyMzlk
MWNkLi44NjhmYmY2ZjY4MWQzNjY4ZDJlNzM3Zjg0YjBjZTI4ZmFiOTlkMGRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTkzMiw3ICs5
MzIsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZWxlbWVudERpZEJsdXIoKQogICAgIHBhZ2VDbGll
bnQoKS5lbGVtZW50RGlkQmx1cigpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEVs
ZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCit2b2lkIFdl
YlBhZ2VQcm94eTo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5w
dXRNb2RlIG1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rp
dml0eVN0YXRlQ2hhbmdlcykKIHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmICht
X3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcuaXNUcmFja2luZ0FueXRoaW5nKCkpIHsKQEAg
LTk0MSw3ICs5NDEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEVsZW1lbnREaWRDaGFu
Z2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCiAgICAgfQogI2VuZGlmCiAKLSAg
ICBwYWdlQ2xpZW50KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUobW9kZSk7Cisg
ICAgcGFnZUNsaWVudCgpLmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKG1vZGUsIGFj
dGl2aXR5U3RhdGVDaGFuZ2VzKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlbGVhc2VB
bGxUb3VjaFBvaW50cygpCkBAIC05NDksNyArOTQ5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpCiAgICAgaWYgKCFtX3BlbmRpbmdJbnB1dE1vZGVDaGFu
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2VDbGllbnQoKS5mb2N1c2VkRWxlbWVudERp
ZENoYW5nZUlucHV0TW9kZSgqbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKTsKKyAgICBwYWdlQ2xp
ZW50KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoKm1fcGVuZGluZ0lucHV0TW9k
ZUNoYW5nZSwgeyB9KTsKICAgICBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2UgPSBXVEY6Om51bGxv
cHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggYTVlNDFhNWE1ZDI0MGMzMmVhMDgxMWE1ZDZlZmY5NDkyOWY5OWFmYy4uOGMyYzU5ZTNi
ZjdmOTc5MmFkZjcxYWQzOWYyOTcyNDE5MjJhMGI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTU1MzUsNyArNTUzNSw3IEBAIHZvaWQgV2Vi
UGFnZTo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6RWxlbWVudCYg
ZWxlbWVudCwgV2ViQ29yCiAgICAgaWYgKCFpc1RleHRGb3JtQ29udHJvbE9yRWRpdGFibGVDb250
ZW50KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKG1vZGUpKTsKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRN
b2RlKG1vZGUsIG1fbGFzdEFjdGl2aXR5U3RhdGVDaGFuZ2VzKSk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShtb2RlKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFhNTA0NWUyOTQ0ZmU3MmI1YzY2NmIxZmRl
NmJiYTcyY2JlYzJiNzkuLjkzYzlkMzFkNTVhMWRiYjg3ODE0MTNmYWRjM2ZjMWZhZGU5ZTFhOGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxOS0wOC0yMiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gU2hvdWxkIHNob3cgaW5wdXQgdmlldyB3aGVu
IGJlY2FtZSBmaXJzdCByZXNwb25kZXIgaWYga2V5Ym9hcmQgd2FzIHNob3dpbmcgd2hlbiB0aGUg
dmlldyB3YXMgcmVzaWduZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMDkwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTQyMzE3NTY+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIEFkZCB0ZXN0cyB0byBl
bnN1cmUgdGhhdCB3ZSBzaG93IHRoZSBrZXlib2FyZCB3aGVuIGJlY29taW5nIGZpcnN0IHJlc3Bv
bmRlciBpZiB0aGUgdmlldyByZXNpZ25lZCB3aXRoIHRoZQorICAgICAgICBrZXlib2FyZCBvbiBz
Y3JlZW4uIEFsc28gYWRkIGEgdGVzdCB0byBlbnN1cmUgdGhhdCB3ZSBrZWVwIG91ciBjdXJyZW50
IGJlaGF2aW9yIGFuZCBkbyBOT1Qgc2hvdyB0aGUga2V5Ym9hcmQKKyAgICAgICAgZm9yIGFuIGF1
dG9mb2N1c2VkIHRleHQgZmllbGQgd2hlbiB0aGUgdmlldyBiZWNvbWVzIGZpcnN0IHJlc3BvbmRl
ci4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9yZXNvdXJjZXMvY2hlY2sta2V5Ym9hcmQt
b24tc2NyZWVuLmpzOiBBZGRlZC4KKyAgICAgICAgKGFzeW5jLmNoZWNrS2V5Ym9hcmRPblNjcmVl
bik6CisgICAgICAgIChhc3luYy5jaGVja0tleWJvYXJkTm90T25TY3JlZW4pOgorICAgICAgICAq
IGZhc3QvZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2Vk
LWZpZWxkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24tZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1z
aG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJl
c3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3Bp
dGUtaW5wdXRtb2RlLW5vbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNw
aXRlLWlucHV0bW9kZS1ub25lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lv
cy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1i
ZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2Vz
L3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRU
b1Nob3cucmV0dXJuLm5ldy5Qcm9taXNlKTogQWRkZWQuCisgICAgICAgICh3aW5kb3cuVUlIZWxw
ZXIud2FpdEZvcktleWJvYXJkVG9TaG93KTogQWRkZWQuCisgICAgICAgICh3aW5kb3cuVUlIZWxw
ZXIuYmVjb21lRmlyc3RSZXNwb25kZXIpOiBBZGRlZC4KKwogMjAxOS0wOC0yMiAgVGltIEhvcnRv
biAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjQ4
OTc0KTogZmFzdC9ldmVudHMvaW9zL3NlbGVjdC1hbGwtd2l0aC1leGlzdGluZy1zZWxlY3Rpb24u
aHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291
cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9pb3MvcmVzb3VyY2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5l
MjM3YmViNGEzOTVlNjFkODIzZTVhOTY4ZWFkYmViYjliZjI4MmY0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1v
bi1zY3JlZW4uanMKQEAgLTAsMCArMSwxNSBAQAorYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2Fy
ZE9uU2NyZWVuKCkKK3sKKyAgICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQo
KSkKKyAgICAgICAgdGVzdFBhc3NlZCgiS2V5Ym9hcmQgaXMgb24gc2NyZWVuLiIpOworICAgIGVs
c2UKKyAgICAgICAgdGVzdEZhaWxlZCgiS2V5Ym9hcmQgc2hvdWxkIGJlIG9uIHNjcmVlbiwgYnV0
IGlzIG5vdC4iKTsKK30KKworYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVu
KCkKK3sKKyAgICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQoKSkKKyAgICAg
ICAgdGVzdEZhaWxlZCgiS2V5Ym9hcmQgc2hvdWxkIG5vdCBiZSBvbiBzY3JlZW4sIGJ1dCBpdCBp
cy4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIktleWJvYXJkIGlzIG5vdCBvbiBz
Y3JlZW4uIik7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hv
dWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5n
LWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1
c2VkLWZpZWxkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24t
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxZGVkNTg0OTZmMWRiY2ZhY2NlZjRkMTEwY2I3MTMw
Y2NjZTRhYTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mv
c2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29t
aW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDExIEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIG5vdCBz
aG93biBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBiZWNvbWluZyBmaXJzdCByZXNw
b25kZXIgYWZ0ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIGEgZm9jdXNlZCB0ZXh0IGZp
ZWxkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5hY3Rp
dmVFbGVtZW50IGJlY2FtZSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKQorUEFTUyBL
ZXlib2FyZCBpcyBub3Qgb24gc2NyZWVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxkLXdoZW4t
YmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1
c2VkLWZpZWxkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZGM1NGE0MjAzZWM3MjY4M2U4OTY0OTU1ZmNiNDA5ZGY4Njg2Yjk4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1u
b3Qtc2hvdy1rZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJz
dC1yZXNwb25kZXItYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoZWNrLWtl
eWJvYXJkLW9uLXNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBp
ZD0iaW5wdXQiIGF1dG9mb2N1cz4gPCEtLSBPbmx5IHJlc3BlY3RlZCBvbiBpT1Mgd2hlbiBhIGhh
cmR3YXJlIGtleWJvYXJkIGlzIGF0dGFjaGVkLiAtLT4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaW5wdXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBX
ZWJLaXRUZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQg
VUlIZWxwZXIuc2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5zZWFyY2ggPT0gIj9jaGVja1Jlc3VsdCIpIHsKKyAgICAgICAgYXN5
bmMgZnVuY3Rpb24gY2hlY2tSZXN1bHRBbmREb25lKCkgeworICAgICAgICAgICAgYXdhaXQgY2hl
Y2tLZXlib2FyZE5vdE9uU2NyZWVuKCk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92
ZUNoaWxkKGlucHV0RWxlbWVudCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgfQorICAgICAgICBhd2FpdCBVSUhlbHBlci5iZWNvbWVGaXJzdFJlc3BvbmRlcigpOworICAg
ICAgICBzaG91bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKSIsIGNoZWNrUmVzdWx0QW5kRG9uZSk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklu
cHV0U2Vzc2lvbihpbnB1dEVsZW1lbnQpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25G
aXJzdFJlc3BvbmRlcigpOworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRU
b0hpZGUoKTsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiArPSAiP2NoZWNrUmVzdWx0
IjsKKyAgICB9Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJl
IGtleWJvYXJkIGlzIG5vdCBzaG93biBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBi
ZWNvbWluZyBmaXJzdCByZXNwb25kZXIgYWZ0ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRo
IGEgZm9jdXNlZCB0ZXh0IGZpZWxkLiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1r
ZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1u
b25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJv
YXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyNWVhYzVkMWE4MmE5ODE0MDViMjk3ZTBlYzIyMTY0
MjUzYjBjYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mv
c2hvdy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0
bW9kZS1ub25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoYXQg
aW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBh
bmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVjb21lcyBmaXJzdCByZXNw
b25kZXIsIHJlc3BlY3RpdmVseSwgZXZlbnRob3VnaCBmb2N1c2luZyB0aGUgdGV4dCBmaWVsZCBz
ZXRzIGlucHV0bW9kZSB0byAibm9uZSIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CisKK0FmdGVyIHRhcHBpbmcgPGlucHV0PjoKK1BBU1MgS2V5Ym9hcmQgaXMgb24gc2NyZWVuLgor
CitBZnRlciByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBub3Qg
b24gc2NyZWVuLgorCitBZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6CitQQVNTIEtleWJv
YXJkIGlzIG9uIHNjcmVlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hv
dy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9k
ZS1ub25lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDk3ODJhZDZiNjExZDI0ZTA0NzliNzcwYjFhMjNlYzFmMjFiMDNkZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUuaHRt
bApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8aW5wdXQgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+Cit3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaW5wdXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBp
biBXZWJLaXRUZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdh
aXQgVUlIZWxwZXIuc2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGRl
YnVnKCI8YnI+QWZ0ZXIgdGFwcGluZyAmbHQ7aW5wdXQmZ3Q7OiIpOworICAgIGF3YWl0IFVJSGVs
cGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oaW5wdXRFbGVtZW50KTsK
KyAgICBhd2FpdCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0
ZXIgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5yZXNp
Z25GaXJzdFJlc3BvbmRlcigpOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRv
SGlkZSgpOworICAgIGF3YWl0IGNoZWNrS2V5Ym9hcmROb3RPblNjcmVlbigpOworCisgICAgZGVi
dWcoIjxicj5BZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlI
ZWxwZXIuYmVjb21lRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9y
S2V5Ym9hcmRUb1Nob3coKTsKKyAgICBhd2FpdCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKwor
ICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXRFbGVtZW50KTsKKyAgICBmaW5pc2hK
U1Rlc3QoKTsKK30KKworaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgKCkg
PT4gaW5wdXRFbGVtZW50LnNldEF0dHJpYnV0ZSgiaW5wdXRtb2RlIiwgIm5vbmUiKSwgdHJ1ZSAv
KiBjYXB0dXJlIHBoYXNlICovKTsKKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbiBh
IGZvY3VzZWQgdGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBz
aG93biB3aGVuIHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRl
ciwgcmVzcGVjdGl2ZWx5LCBldmVudGhvdWdoIGZvY3VzaW5nIHRoZSB0ZXh0IGZpZWxkIHNldHMg
aW5wdXRtb2RlIHRvICZxdW90O25vbmUmcXVvdDsuIik7CitydW5UZXN0KCk7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lv
cy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21p
bmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDQ1ZTBmZTExMjVh
Mzk2NjNiYWY0MzcyMmZlZTA0MWM0M2ZkOTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNw
b25kZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBh
IGZvY3VzZWQgdGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBz
aG93biB3aGVuIHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRl
ciwgcmVzcGVjdGl2ZWx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitBZnRl
ciB0YXBwaW5nIDxpbnB1dD46CitQQVNTIEtleWJvYXJkIGlzIG9uIHNjcmVlbi4KKworQWZ0ZXIg
cmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVl
bi4KKworQWZ0ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBv
biBzY3JlZW4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9h
cmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjNkYjcyY2MxMTVhMTRlOWQ5ODE2M2Q4ZjNlZGQ4YmNhNjFmYWVhYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJv
YXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwKQEAgLTAsMCArMSw0NiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2hl
Y2sta2V5Ym9hcmQtb24tc2NyZWVuLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlu
cHV0IGlkPSJpbnB1dCI+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CitsZXQgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7CisK
K2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4i
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3
YXJlS2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHRhcHBp
bmcgJmx0O2lucHV0Jmd0OzoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRB
bmRXYWl0Rm9ySW5wdXRTZXNzaW9uKGlucHV0RWxlbWVudCk7CisgICAgYXdhaXQgY2hlY2tLZXli
b2FyZE9uU2NyZWVuKCk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHJlc2lnbmluZyBmaXJzdCBy
ZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIucmVzaWduRmlyc3RSZXNwb25kZXIoKTsK
KyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICBhd2FpdCBj
aGVja0tleWJvYXJkTm90T25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgYmVjb21p
bmcgZmlyc3QgcmVzcG9uZGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmJlY29tZUZpcnN0UmVz
cG9uZGVyKCk7CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9TaG93KCk7Cisg
ICAgYXdhaXQgY2hlY2tLZXlib2FyZE9uU2NyZWVuKCk7CisKKyAgICBkb2N1bWVudC5ib2R5LnJl
bW92ZUNoaWxkKGlucHV0RWxlbWVudCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Rlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3
YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBhbmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWdu
cyBhbmQgYmVjb21lcyBmaXJzdCByZXNwb25kZXIsIHJlc3BlY3RpdmVseS4iKTsKK3J1blRlc3Qo
KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIu
anMKaW5kZXggM2I1OGRjNmIwMTI5MTA0ZjU2ZDYzYjJhYzA0NTg3ZjM2NTZiODc1OC4uZThjMDNm
M2RmZmVjMjJmYzY4M2JjOGE4MTRhY2RiZDU3NzNlNjdjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzCkBAIC01MDYsNiArNTA2LDIyIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJ
SGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIHdhaXRGb3JLZXlib2Fy
ZFRvU2hvdygpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMu
aXNJT1NGYW1pbHkoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKwor
ICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nS2V5Ym9hcmQpCisgICAg
ICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAg
ICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xs
ZXIuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRD
b21wbGV0ZSgpOworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7
CisgICAgfQorCiAgICAgc3RhdGljIGdldFVJQ2FyZXRSZWN0KCkKICAgICB7CiAgICAgICAgIGlm
ICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPU0ZhbWlseSgpKQpAQCAtNzkxLDYgKzgw
NywxNCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYHVpQ29udHJv
bGxlci5yZXNpZ25GaXJzdFJlc3BvbmRlcigpYCwgcmVzb2x2ZSkpOwogICAgIH0KIAorICAgIHN0
YXRpYyBiZWNvbWVGaXJzdFJlc3BvbmRlcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNX
ZWJLaXQyKCkpCisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChg
dWlDb250cm9sbGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKClgLCByZXNvbHZlKSk7CisgICAgfQor
CiAgICAgc3RhdGljIG1pbmltdW1ab29tU2NhbGUoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlz
LmlzV2ViS2l0MigpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394514</attachid>
            <date>2020-03-25 10:12:31 -0700</date>
            <delta_ts>2020-03-25 10:12:31 -0700</delta_ts>
            <desc>To Land</desc>
            <filename>bug-200902-20200325101230.patch</filename>
            <type>text/plain</type>
            <size>33407</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJmZjUzZjVjMjhlOGM3OTEw
NTg0OWVkYTU3MzYyZjViM2U2NjUwOGYuLmUyYTAyZmMwOTMzOWFmZGFiY2VjYzE2Y2YxOWMwZWQ1
NzExM2ZjM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMjAtMDMtMjUgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlu
cHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93
aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDA5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0
MjMxNzU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBX
aGVuIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIgc2F2ZSB3aGV0aGVyIHRoZSBwZXJpcGhlcmFs
IGhvc3QgaGFzIGFuIGlucHV0IHZpZXcgb24gc2NyZWVuLAorICAgICAgICBpbmNsdWRpbmcgdGhl
IHNvZnR3YXJlIGtleWJvYXJkLCBzbyB0aGF0IHdlIHNob3cgdGhlIGlucHV0IHZpZXcocykgYWdh
aW4gd2hlbiB0aGUgV0tXZWJWaWV3CisgICAgICAgIGlzIG1hZGUgZmlyc3QgcmVzcG9uZGVyLiBJ
biBTYWZhcmksIHRoaXMgYXZvaWRzIHRoZSBuZWVkIGZvciBhIHBlcnNvbiB0byBleHBsaWNpdGx5
IGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1lbnQgYWdhaW4gdG8gYnJpbmcgdXAgdGhl
IGtleWJvYXJkIHdoZW4gcmV0dXJuaW5nIHRvIGEgdGFiIHRoZXkgd2VyZSBwcmV2aW91c2x5Cisg
ICAgICAgIHR5cGluZyBpbi4gSXQgYWxzbyBtYWtlcyB0aGUgYmVoYXZpb3Igb2Ygc3dpdGNoaW5n
IHRhYnMgaW4gU2FmYXJpIHdpdGggYSBzb2Z0d2FyZSBrZXlib2FyZAorICAgICAgICBtYXRjaCB0
aGUgYmVoYXZpb3Igb2YgZG9pbmcgdGhlIHNhbWUgdGhpbmcgd2hlbiBhIGhhcmR3YXJlIGtleWJv
YXJkIGF0dGFjaGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdl
SW5wdXRNb2RlKToKKyAgICAgICAgUGFzcyBhIGRpZmYgb2YgdGhlIGFjdGl2aXR5IHN0YXRlIGZy
b20gdGhlIHdlYiBwcm9jZXNzIHRvIHRoZSBVSSBwcm9jZXNzIHNvIHRoYXQgd2UgY2FuCisgICAg
ICAgIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBhbiBpbnB1dG1vZGUgY2hhbmdlIGFzIGEgcmVzdWx0
IG9mIHBhZ2UgZGVhY3RpdmF0aW9uIHZzIGEgY2hhbmdlCisgICAgICAgIGNhdXNlZCBieSBzb21l
IG90aGVyIG1lYW5zLiBXZSBuZWVkIHRvIGRpZmZlcmVudGlhdGUgdGhlc2UgY2FzZXMgYmVjYXVz
ZSB3ZSB3YW50IHRvCisgICAgICAgIGlnbm9yZSBhIHBhZ2UgdGhhdCBzZXRzIGlucHV0bW9kZSAi
bm9uZSIgKGkuZS4gYSByZXF1ZXN0IHRvIGhpZGUgdGhlIGtleWJvYXJkKSBmcm9tIGluc2lkZQor
ICAgICAgICBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgaWYgdGhlIGhhbmRsZXIgd2FzIGNhbGxlZCBh
cyBwYXJ0IG9mIHRoZSBwcm9jZXNzIG9mIHBhZ2UgYWN0aXZhdGlvbgorICAgICAgICAoaS5lLiBz
d2l0Y2hpbmcgdG8gdGhlIHRhYikuIEdvb2dsZSBEb2NzIGlzIG9uZSBleGFtcGxlIG9mIGEgd2Vi
IHNpdGUgdGhhdCBzZXRzIGlucHV0bW9kZQorICAgICAgICB0byAibm9uZSIgYXMgYSByZXN1bHQg
b2YgdGhlIHBhZ2UgYWN0aXZhdGlvbiBwcm9jZXNzLgorCisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjbGVh
bnVwSW50ZXJhY3Rpb25dKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlld10pOiBTYXZlIHdoZXRoZXIgdGhlIHBl
cmlwaGVyYWwgaG9zdCBpcyBvbiBzY3JlZW4KKyAgICAgICAgaW50byBhIGxvY2FsIGJlZm9yZSBl
bmRpbmcgdGhlIGVkaXRpbmcgc2Vzc2lvbi4gV2UgdGhlbiBjb3B5IHRoZSBsb2NhbCBpbnRvIHRo
ZSBpdmFyIGlmIHdlCisgICAgICAgIGFjdHVhbGx5IHdpbGwgcmVzaWduLiBUaGlzIG9yZGVyaW5n
IGlzIGV4cGxpY2l0bHkgZG9uZSBiZWNhdXNlOgorICAgICAgICAgICAgICAgIDEuIEVuZGluZyB0
aGUgZWRpdGluZyBzZXNzaW9uIG1heSBkaXNtaXNzIHRoZSBrZXlib2FyZCA9PiB3ZSBuZWVkIHRv
IHF1ZXJ5IHRoZSBwZXJpcGhlcmFsCisgICAgICAgICAgICAgICAgICAgaG9zdCBmaXJzdC4KKyAg
ICAgICAgICAgICAgICAyLiBJZiB0aGUgdmlldyBpcyBiZWluZyByZXNpZ25lZCBhcyBhIHJlc3Vs
dCBvZiBhIGtleWJvYXJkIGRpc21pc3NhbCAoaS5lLiBhIHBlcnNvbiBwcmVzc2VkCisgICAgICAg
ICAgICAgICAgICAgdGhlIGhpZGUga2V5Ym9hcmQgYnV0dG9uIG9uIGlQYWQpIHRoZW4gdGhlIHVz
ZXIgaGFzIGluZGljYXRlZCB0aGF0IHRoZXkgYXJlIGZpbmlzaGVkCisgICAgICAgICAgICAgICAg
ICAgd2l0aCB0aGUga2V5Ym9hcmQgYW5kIHdlIGRvIG5vdCB3YW50IHRvIHNob3cgdGhlIGtleWJv
YXJkIG9uIHBhZ2UgcmUtYWN0aXZhdGlvbiA9PiB3ZQorICAgICAgICAgICAgICAgICAgIGRvIG5v
dCB3YW50IHRvIGNvcHkgdGhlIGxvY2FsIHRvIHRoZSBpdmFyLgorICAgICAgICAgICAgICAgIDMu
IElmIHRoZSB2aWV3IHJlZnVzZXMgdG8gcmVzaWduIGl0c2VsZiB0aGVuIGl0IGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gc2F2ZSB0aGUga2V5Ym9hcmQKKyAgICAgICAgICAgICAgICAgICBzdGF0ZSBh
cyByZXNwb25kZXIgc3RhdHVzIGhhc24ndCBjaGFuZ2VkLgorICAgICAgICAoLVtXS0NvbnRlbnRW
aWV3IHNob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJXSk6IElnbm9yZSBpbnB1dG1vZGU9Im5v
bmUiLCBpZiBuZWVkZWQuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENvbW1pdExvYWRG
b3JNYWluRnJhbWVdKTogQ2xlYXIgb3V0IHN0YXRlLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IGlzRmlyc3RSZXNwb25kZXJPckJlY29taW5nRmlyc3RSZXNwb25kZXJdKTogQWRkZWQuCisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgc2hvdWxkU2hvd0lucHV0Vmlld09uUGFnZUFjdGl2YXRpb246
XSk6IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9lbGVtZW50RGlkRm9jdXM6dXNl
cklzSW50ZXJhY3Rpbmc6Ymx1clByZXZpb3VzTm9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczp1c2Vy
T2JqZWN0Ol0pOgorICAgICAgICBVcGRhdGUgaXZhciBpZiB0aGlzIGVsZW1lbnQgaXMgYmVpbmcg
Zm9jdXNlZCBhcyBhIHJlc3VsdCBvZiBwYWdlIGFjdGl2YXRpb24uCisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgX2RpZFVwZGF0ZUlucHV0TW9kZTphY3Rpdml0eVN0YXRlQ2hhbmdlczpdKTogTW9k
aWZpZWQgdG8gdGFrZSB0aGUgYWN0aXZpdHkgc3RhdGUKKyAgICAgICAgZGlmZi4gSWYgdGhlIGlu
cHV0IG1vZGUgd2FzIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgcGFnZSBhY3RpdmF0aW9uIHRoZW4g
d2Ugd2FudCB0byB1cGRhdGUgb3VyIGl2YXIKKyAgICAgICAgc28gdGhhdCB3aGVuIHdlIGNhbGwg
LXJlbG9hZElucHV0Vmlld3MgYW5kIFVJS2l0IGNhbGxzIHVzIGJhY2sgaW4gLXNob3VsZFNob3dB
dXRvbWF0aWNLZXlib2FyZFVJIHdlCisgICAgICAgIHdpbGwga25vdyB0byBpZ25vcmUgaW5wdXRt
b2RlIHNldCB0byAibm9uZSIgd2hlbiBkZXRlcm1pbmluZyB3aGV0aGVyIHRvIHNob3cgdGhlIGF1
dG9tYXRpYyBrZXlib2FyZCBVSS4KKyAgICAgICAgTm90ZSB0aGF0IHdlIGRvIG5vdCBuZWVkIHRv
IGNoZWNrL3RyYWNrIHdoZXRoZXIgYW4gZWFybGllciAtX2VsZW1lbnREaWRGb2N1cyBhY3R1YWxs
eSBzdGFydGVkIGFuCisgICAgICAgIGlucHV0IHNlc3Npb24gYXMgcGFydCBvZiB1cGRhdGluZyB0
aGUgdmFsdWUgb2Ygb3VyIGl2YXIgYmVjYXVzZSBpZiBhbiBpbnB1dCBzZXNzaW9uIHdhcyBub3Qg
c3RhcnRlZCwKKyAgICAgICAgc2F5IHRoZSBlbWJlZGRpbmcgY2xpZW50IGRpc2FsbG93ZWQgaXQs
IHRoZW4gd2Ugd291bGQgbm90IGhhdmUgYSBmb2N1c2VkIGVsZW1lbnQgPT4gd2UgZWFybHkgcmV0
dXJuIGZyb20KKyAgICAgICAgdGhpcyBmdW5jdGlvbi4gQWxzbyByZW1vdmUgZHVwbGljYXRpb24g
YW5kIGltcHJvdmUgY29kZSByZWFkYmlsaXR5IGJ5IG1ha2luZyB1c2Ugb2YgdGhlIGNvbnZlbmll
bmNlIGZ1bmN0aW9uCisgICAgICAgIGhhc0ZvY3VzZWRFbGVtZW50KCkgaW5zdGVhZCBvZiBkdXBs
aWNhdGluZyB3aGF0IGl0IGRvZXMuCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZFVwZGF0
ZUlucHV0TW9kZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVu
dERpZENoYW5nZUlucHV0TW9kZSk6IE1vZGlmaWVkIHRvIHRha2UgdGhlIGFjdGl2aXR5IHN0YXRl
IGRpZmYKKyAgICAgICAgYW5kIHBhc3MgaXQgdGhyb3VnaC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMpOiBQYXNzIHRoZSBlbXB0eSBzZXQg
Zm9yIHRoZSBhY3Rpdml0eSBzdGF0ZSBkaWZmIHRvCisgICAgICAgIGtlZXAgb3VyIGN1cnJlbnQg
YmVoYXZpb3IuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSk6
IFNlbmQgdGhlIGFjdGl2aXR5IHN0YXRlIGRpZmYgdG8gdGhlIFVJIHByb2Nlc3MuCisKIDIwMjAt
MDMtMjQgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
IEFTU0VSVElPTiBGQUlMVVJFOiAhaXNNaXNzaW5nUG9zdExheW91dERhdGEgaW4gV2ViS2l0OjpF
ZGl0b3JTdGF0ZTo6cG9zdExheW91dERhdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9p
b3MvVUlLaXRTUEkuaAppbmRleCBmNTMxZTQ0MjAwMjIyMGY4MWI2ZDA3YTk3NGY4NDYyYzRlOTQ4
YmU5Li5lMzRkNzc4ZDQwOTM1Y2FiNzM2NzNjYzEwNTljOTNmNjllZGFmMDZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaApAQCAtNDYsNiArNDYsNyBAQAogI2lt
cG9ydCA8VUlLaXQvVUlHZXN0dXJlUmVjb2duaXplcl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtp
dC9VSUltYWdlUGlja2VyQ29udHJvbGxlcl9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUlt
YWdlX1ByaXZhdGUuaD4KKyNpbXBvcnQgPFVJS2l0L1VJSW5wdXRSZXNwb25kZXJDb250cm9sbGVy
Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSUludGVyZmFjZV9Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtp
dC9VSUtleWJvYXJkSW1wbC5oPgogI2ltcG9ydCA8VUlLaXQvVUlLZXlib2FyZElucHV0TW9kZUNv
bnRyb2xsZXIuaD4KQEAgLTU3Myw2ICs1NzQsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVn
ZXIsIFVJRm9jdXNSaW5nVHlwZSkgewogfTsKICNlbmRpZgogCisjaWYgVVNFKFVJS0lUX0tFWUJP
QVJEX0FERElUSU9OUykKK0BpbnRlcmZhY2UgVUlJbnB1dFJlc3BvbmRlckNvbnRyb2xsZXIgOiBO
U09iamVjdAorQGVuZAorCitAaW50ZXJmYWNlIFVJSW5wdXRSZXNwb25kZXJDb250cm9sbGVyICgp
CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNPblNjcmVlbjsKK0BlbmQK
KyNlbmRpZgorCiBAaW50ZXJmYWNlIFVJVmlldyAoKQogKyAoQk9PTClfaXNJbkFuaW1hdGlvbkJs
b2NrOwogLSAoQ0dTaXplKXNpemU7CkBAIC01ODgsNiArNTk4LDkgQEAgdHlwZWRlZiBOU19FTlVN
KE5TVUludGVnZXIsIFVJRm9jdXNSaW5nVHlwZSkgewogLSAodm9pZClfcmVtb3ZlQWxsQW5pbWF0
aW9uczooQk9PTClpbmNsdWRlU3Vidmlld3M7CiAtIChVSUNvbG9yICopX2luaGVyaXRlZEludGVy
YWN0aW9uVGludENvbG9yOwogLSAoTlNTdHJpbmcgKilyZWN1cnNpdmVEZXNjcmlwdGlvbjsKKyNp
ZiBVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQorQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5LCBudWxsYWJsZSkgVUlJbnB1dFJlc3BvbmRlckNvbnRyb2xsZXIgKmlucHV0UmVzcG9u
ZGVyQ29udHJvbGxlcjsKKyNlbmRpZgogI2lmIFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogQHByb3Bl
cnR5IChub25hdG9taWMsIGdldHRlcj1fZm9jdXNSaW5nVHlwZSwgc2V0dGVyPV9zZXRGb2N1c1Jp
bmdUeXBlOikgVUlGb2N1c1JpbmdUeXBlIGZvY3VzUmluZ1R5cGU7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA4M2M5OTY0ZmY3MmMwMDhiM2Q5MjQzMTFjMTJh
NTVjMDI0NGNhYzJkLi4zZmMyNWY5ZDg1MzYyNjU5NzAzOTQ5YjI2OWNlOTQ1MjFhNjZjZjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC00MDYsNyArNDA2LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3Vz
Tm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3Rh
dGVDaGFuZ2VzLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlSW5wdXRDb250ZXh0QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50KCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cigpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdl
YkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUVkaXRvclN0YXRlKCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCBpc0ZvY3VzaW5nRWxlbWVudCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wg
aW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYsIGJvb2wgaXND
aGFyRXZlbnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
NTdhYzU0NGRmODk3NTQ0YzkzNmY3Zjg5ZTI0Y2NkZDI4MmQ2NTkwZC4uNTU4Mjc3OTRmMTkzMTlh
ZGZhZjE0MmZhYjJiMDg3ZjY2ZThkYTA5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTIwOTksNyArMjA5OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50
RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50
ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjb25zdCBVc2VyRGF0YSYpOwog
ICAgIHZvaWQgZWxlbWVudERpZEJsdXIoKTsKICAgICB2b2lkIHVwZGF0ZUlucHV0Q29udGV4dEFm
dGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudCgpOwotICAgIHZvaWQgZm9jdXNlZEVsZW1l
bnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlKTsKKyAgICB2b2lkIGZvY3Vz
ZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OklucHV0TW9kZSwgT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KTsKICAgICB2b2lkIGRpZFJlbGVhc2VBbGxU
b3VjaFBvaW50cygpOwogICAgIHZvaWQgZGlkVXBkYXRlRWRpdG9yU3RhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVh
ZTVhNTcwMjliYTI1NDZmYWYzOGEzMGY2ZWQ4ODkzOTFjNzRlNmEuLjJmMDQyYmEzZDM1NzllYjU0
MmZlMTU4MDcwOTkyODRkYzkyNDQ1NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQxMSw3ICs0MTEsNyBAQCBtZXNzYWdlcyAt
PiBXZWJQYWdlUHJveHkgewogICAgIEVsZW1lbnREaWRGb2N1cyhzdHJ1Y3QgV2ViS2l0OjpGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uIGluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5n
LCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
ICAgICBFbGVtZW50RGlkQmx1cigpCiAgICAgVXBkYXRlSW5wdXRDb250ZXh0QWZ0ZXJCbHVycmlu
Z0FuZFJlZm9jdXNpbmdFbGVtZW50KCkKLSAgICBGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0
TW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCisgICAgRm9jdXNlZEVs
ZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoZW51bTp1aW50OF90IFdlYkNvcmU6OklucHV0TW9kZSBt
b2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlTdGF0
ZUNoYW5nZXMpCiAgICAgU2Nyb2xsaW5nTm9kZVNjcm9sbFdpbGxTdGFydFNjcm9sbCgpCiAgICAg
U2Nyb2xsaW5nTm9kZVNjcm9sbERpZEVuZFNjcm9sbCgpCiAgICAgU2hvd0luc3BlY3RvckhpZ2hs
aWdodChzdHJ1Y3QgV2ViQ29yZTo6SGlnaGxpZ2h0IGhpZ2hsaWdodCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNzc0MGQyNTQ3NDIw
YzNjZDQ4Y2IzZThhZjg0NmZkYzk3N2I1ZTE4Ny4uYWY5M2E3ZTAzZmMzODI0OTY4Yzc5ZTg0YWY0
ZGNjM2NmYWY1ZTllYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKQEAgLTE2MCw3ICsxNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZWxl
bWVudERpZEZvY3VzKGNvbnN0IEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mLCBib29sIHVzZXJJ
c0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUlucHV0Q29udGV4dEFmdGVyQmx1cnJp
bmdBbmRSZWZvY3VzaW5nRWxlbWVudCgpIGZpbmFsOwogICAgIHZvaWQgZWxlbWVudERpZEJsdXIo
KSBvdmVycmlkZTsKLSAgICB2b2lkIGZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdl
YkNvcmU6OklucHV0TW9kZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBmb2N1c2VkRWxlbWVudERpZENo
YW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpGbGFnPikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRVcGRhdGVFZGl0b3JTdGF0
ZSgpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNGb2N1c2luZ0VsZW1lbnQoKSBvdmVycmlkZTsKICAg
ICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDg3NTQxODNlZGM3MGIz
YTM0MWE2NTg0ZWFmMjc3YWYxYmIxZmI0ZGIuLjUxYjA2YTZiNjU4NTU1NzQ2MzY0M2ViMjQwMWVm
MWFkZjM5NWJhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KQEAgLTYzOCw5ICs2MzgsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpl
bGVtZW50RGlkQmx1cigpCiAgICAgW21fY29udGVudFZpZXcgX2VsZW1lbnREaWRCbHVyXTsKIH0K
IAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUo
V2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpmb2N1c2VkRWxl
bWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSwgT3B0aW9uU2V0
PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzKQogewot
ICAgIFttX2NvbnRlbnRWaWV3IF9kaWRVcGRhdGVJbnB1dE1vZGU6bW9kZV07CisgICAgW21fY29u
dGVudFZpZXcgX2RpZFVwZGF0ZUlucHV0TW9kZTptb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOmFj
dGl2aXR5U3RhdGVDaGFuZ2VzXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkVXBkYXRl
RWRpdG9yU3RhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGZiMThiMGM1ZmQzNWFhOGZhMTFmZDBlMWJm
MjgxMzZmNDhmMGMxNGUuLmYzMjZhNjM0MjZjODQ1MDEwMTUzNWRlOGE5OTdlNDVmNjRiMDI2NmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKQEAgLTM1MCw2ICszNTAsOCBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlv
bkRhdGEgewogICAgIFdlYkNvcmU6OlBvaW50ZXJJRCBtX2NvbW1pdFBvdGVudGlhbFRhcFBvaW50
ZXJJZDsKIAogICAgIEJPT0wgX2tleWJvYXJkRGlkUmVxdWVzdERpc21pc3NhbDsKKyAgICBCT09M
IF93YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0VmlldzsKKyAgICBCT09MIF9zaG91bGRTaG93
QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lOwogCiAjaWYgVVNFKFVJS0lUX0tF
WUJPQVJEX0FERElUSU9OUykKICAgICBCT09MIF9jYW5kaWRhdGVWaWV3TmVlZHNVcGRhdGU7CkBA
IC00ODQsNyArNDg2LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihE
RUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3VwZGF0
ZUlucHV0Q29udGV4dEFmdGVyQmx1cnJpbmdBbmRSZWZvY3VzaW5nRWxlbWVudDsKIC0gKHZvaWQp
X2VsZW1lbnREaWRCbHVyOwogLSAodm9pZClfaGlkZVRhcmdldGVkUHJldmlld0NvbnRhaW5lclZp
ZXdzOwotLSAodm9pZClfZGlkVXBkYXRlSW5wdXRNb2RlOihXZWJDb3JlOjpJbnB1dE1vZGUpbW9k
ZTsKKy0gKHZvaWQpX2RpZFVwZGF0ZUlucHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUg
YWN0aXZpdHlTdGF0ZUNoYW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpG
bGFnPilhY3Rpdml0eVN0YXRlQ2hhbmdlczsKIC0gKHZvaWQpX2RpZFVwZGF0ZUVkaXRvclN0YXRl
OwogLSAodm9pZClfaGFyZHdhcmVLZXlib2FyZEF2YWlsYWJpbGl0eUNoYW5nZWQ7CiAtICh2b2lk
KV9zZWxlY3Rpb25DaGFuZ2VkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNTljZGIzMGIzYmM2MDk3YWEz
MzJhYTNiYTE0ZWIwOWM4MTNmNjk2OS4uMzllZGE3Y2QzMDAyZDViZGNhMmMyYTFjN2RhZmU4OWRl
ZDdmYzg2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMDMyLDYgKzEwMzIsNyBAQCAtICh2b2lkKWNs
ZWFuVXBJbnRlcmFjdGlvbgogCiAgICAgW3NlbGYgX3Jlc2V0SW5wdXRWaWV3RGVmZXJyYWxdOwog
ICAgIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uID0geyB9OworICAgIF93YXNSZXNpZ25lZFdo
aWxlU2hvd2luZ0lucHV0VmlldyA9IE5POwogICAgIAogICAgIFtfa2V5Ym9hcmRTY3JvbGxpbmdB
bmltYXRvciBpbnZhbGlkYXRlXTsKICAgICBfa2V5Ym9hcmRTY3JvbGxpbmdBbmltYXRvciA9IG5p
bDsKQEAgLTEzODEsNyArMTM4Miw4IEBAIC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25kZXJGb3JX
ZWJWaWV3CiAKICAgICBTZXRGb3JTY29wZTxCT09MPiByZXNpZ25pbmdGaXJzdFJlc3BvbmRlclNj
b3BlIHsgX3Jlc2lnbmluZ0ZpcnN0UmVzcG9uZGVyLCBZRVMgfTsKIAotICAgIFtzZWxmIGVuZEVk
aXRpbmdBbmRVcGRhdGVGb2N1c0FwcGVhcmFuY2VXaXRoUmVhc29uOkVuZEVkaXRpbmdSZWFzb25S
ZXNpZ25pbmdGaXJzdFJlc3BvbmRlcl07CisgICAgQk9PTCB3YXNLZXlib2FyZE9uU2NyZWVuID0g
c2VsZi5pbnB1dFJlc3BvbmRlckNvbnRyb2xsZXIuaXNPblNjcmVlbjsKKyAgICBbc2VsZiBlbmRF
ZGl0aW5nQW5kVXBkYXRlRm9jdXNBcHBlYXJhbmNlV2l0aFJlYXNvbjpFbmRFZGl0aW5nUmVhc29u
UmVzaWduaW5nRmlyc3RSZXNwb25kZXJdOyAvLyBNYXkgZGlzbWlzcyB0aGUga2V5Ym9hcmQuCiAK
ICAgICAvLyBJZiB0aGUgdXNlciBleHBsaWNpdGx5IGRpc21pc3NlZCB0aGUga2V5Ym9hcmQgdGhl
biB3ZSB3aWxsIGxvc2UgZmlyc3QgcmVzcG9uZGVyCiAgICAgLy8gc3RhdHVzIG9ubHkgdG8gZ2Fp
biBpdCBiYWNrIGFnYWluLiBKdXN0IGRvbid0IHJlc2lnbiBpbiB0aGF0IGNhc2UuCkBAIC0xMzkz
LDYgKzEzOTUsNyBAQCAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyRm9yV2ViVmlldwogICAg
IGJvb2wgc3VwZXJEaWRSZXNpZ24gPSBbc3VwZXIgcmVzaWduRmlyc3RSZXNwb25kZXJdOwogCiAg
ICAgaWYgKHN1cGVyRGlkUmVzaWduKSB7CisgICAgICAgIF93YXNSZXNpZ25lZFdoaWxlU2hvd2lu
Z0lucHV0VmlldyA9IHdhc0tleWJvYXJkT25TY3JlZW47CiAgICAgICAgIFtzZWxmIF9oYW5kbGVE
T01QYXN0ZVJlcXVlc3RXaXRoUmVzdWx0OldlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6
OkRlbmllZEZvckdlc3R1cmVdOwogICAgICAgICBfcGFnZS0+YWN0aXZpdHlTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQsIFdlYktpdDo6V2ViUGFnZVByb3h5
OjpBY3Rpdml0eVN0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUpOwogCkBAIC0xODg0
LDcgKzE4ODcsNyBAQCAtICh2b2lkKV9zY3JvbGxpbmdOb2RlU2Nyb2xsaW5nRGlkRW5kCiAKIC0g
KEJPT0wpc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUkKIHsKLSAgICBpZiAoX2ZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24uaW5wdXRNb2RlID09IFdlYkNvcmU6OklucHV0TW9kZTo6Tm9uZSkK
KyAgICBpZiAoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW5wdXRNb2RlID09IFdlYkNvcmU6
OklucHV0TW9kZTo6Tm9uZSAmJiAhX3Nob3VsZFNob3dBdXRvbWF0aWNLZXlib2FyZFVJV2hlbklu
cHV0TW9kZU5vbmUpCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIHJldHVybiBbc2VsZiBfc2hv
dWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlJZ25vcmluZ0lucHV0TW9kZV07CkBAIC00MjI4LDYg
KzQyMzEsNyBAQCAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCiAjaWYgVVNFKFVJ
S0lUX0tFWUJPQVJEX0FERElUSU9OUykKICAgICBfc2VlbkhhcmR3YXJlS2V5RG93bkluTm9uRWRp
dGFibGVFbGVtZW50ID0gTk87CiAjZW5kaWYKKyAgICBfd2FzUmVzaWduZWRXaGlsZVNob3dpbmdJ
bnB1dFZpZXcgPSBOTzsKICAgICBbc2VsZiBfZWxlbWVudERpZEJsdXJdOwogICAgIFtzZWxmIF9j
YW5jZWxMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CiAgICAgW3NlbGYgX2hpZGVUYXJnZXRl
ZFByZXZpZXdDb250YWluZXJWaWV3c107CkBAIC01NjczLDYgKzU2NzcsMTYgQEAgc3RhdGljIFJl
dGFpblB0cjxOU09iamVjdCA8V0tGb3JtUGVyaXBoZXJhbD4+IGNyZWF0ZUlucHV0UGVyaXBoZXJh
bFdpdGhWaWV3KFdlYksKICNlbmRpZgogfQogCistIChCT09MKWlzRmlyc3RSZXNwb25kZXJPckJl
Y29taW5nRmlyc3RSZXNwb25kZXIKK3sKKyAgICByZXR1cm4gc2VsZi5pc0ZpcnN0UmVzcG9uZGVy
IHx8IF9iZWNvbWluZ0ZpcnN0UmVzcG9uZGVyOworfQorCistIChCT09MKXNob3VsZFNob3dJbnB1
dFZpZXdPblBhZ2VBY3RpdmF0aW9uOihjb25zdCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlT
dGF0ZTo6RmxhZz4gJilhY3Rpdml0eVN0YXRlQ2hhbmdlcworeworICAgIHJldHVybiBbc2VsZiBp
c0ZpcnN0UmVzcG9uZGVyT3JCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyXSAmJiBhY3Rpdml0eVN0YXRl
Q2hhbmdlcy5jb250YWlucyhXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3VzZWQpICYmIF93
YXNSZXNpZ25lZFdoaWxlU2hvd2luZ0lucHV0VmlldzsKK30KKwogLSAodm9pZClfZWxlbWVudERp
ZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0
aW9uIHVzZXJJc0ludGVyYWN0aW5nOihCT09MKXVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91
c05vZGU6KEJPT0wpYmx1clByZXZpb3VzTm9kZSBhY3Rpdml0eVN0YXRlQ2hhbmdlczooT3B0aW9u
U2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+KWFjdGl2aXR5U3RhdGVDaGFuZ2VzIHVz
ZXJPYmplY3Q6KE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0CiB7CiAgICAg
U2V0Rm9yU2NvcGU8Qk9PTD4gaXNDaGFuZ2luZ0ZvY3VzRm9yU2NvcGUgeyBfaXNDaGFuZ2luZ0Zv
Y3VzLCBoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbikgfTsKQEAg
LTU2OTcsNiArNTcxMSw4IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2ViS2l0
OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgaWYgKFtpbnB1
dERlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9s
aWN5Rm9yRm9jdXNlZEVsZW1lbnQ6KV0pCiAgICAgICAgIHN0YXJ0SW5wdXRTZXNzaW9uUG9saWN5
ID0gW2lucHV0RGVsZWdhdGUgX3dlYlZpZXc6c2VsZi53ZWJWaWV3IGRlY2lkZVBvbGljeUZvckZv
Y3VzZWRFbGVtZW50OmZvY3VzZWRFbGVtZW50SW5mby5nZXQoKV07CiAKKyAgICBTZXRGb3JTY29w
ZTxCT09MPiBzaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRVSVdoZW5JbnB1dE1vZGVOb25lU2Nv
cGUgeyBfc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlXaGVuSW5wdXRNb2RlTm9uZSwgc3Rh
cnRJbnB1dFNlc3Npb25Qb2xpY3kgPT0gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lB
dXRvICYmIFtzZWxmIHNob3VsZFNob3dJbnB1dFZpZXdPblBhZ2VBY3RpdmF0aW9uOmFjdGl2aXR5
U3RhdGVDaGFuZ2VzXSB9OworCiAgICAgQk9PTCBzaG91bGRTaG93SW5wdXRWaWV3ID0gWyZdIHsK
ICAgICAgICAgc3dpdGNoIChzdGFydElucHV0U2Vzc2lvblBvbGljeSkgewogICAgICAgICBjYXNl
IF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QXV0bzoKQEAgLTU3MDUsMTEgKzU3MjEs
OCBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAgICAgICAgICAgaWYgKHVzZXJJc0ludGVy
YWN0aW5nKQogICAgICAgICAgICAgICAgIHJldHVybiBZRVM7CiAKLSAgICAgICAgICAgIGlmIChz
ZWxmLmlzRmlyc3RSZXNwb25kZXIgfHwgX2JlY29taW5nRmlyc3RSZXNwb25kZXIpIHsKLSAgICAg
ICAgICAgICAgICAvLyBXaGVuIHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBpcyBiZWluZyB1c2VkIHRv
IGVudGVyIGFuIHVybCwgb25seSB0aGUgZm9jdXMgYWN0aXZpdHkgc3RhdGUgaXMgY2hhbmdpbmcu
Ci0gICAgICAgICAgICAgICAgLy8gSW4gdGhpcyBjYXNlLCBhdXRvIGZvY3VzIG9uIHRoZSBwYWdl
IGJlaW5nIG5hdmlnYXRlZCB0byBzaG91bGQgYmUgZGlzYWJsZWQsIHVubGVzcyBhIGhhcmR3YXJl
Ci0gICAgICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaXMgYXR0YWNoZWQuCi0gICAgICAgICAgICAg
ICAgaWYgKGFjdGl2aXR5U3RhdGVDaGFuZ2VzICYmIGFjdGl2aXR5U3RhdGVDaGFuZ2VzICE9IFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCkKKyAgICAgICAgICAgIGlmIChbc2VsZiBp
c0ZpcnN0UmVzcG9uZGVyT3JCZWNvbWluZ0ZpcnN0UmVzcG9uZGVyXSkgeworICAgICAgICAgICAg
ICAgIGlmIChfc2hvdWxkU2hvd0F1dG9tYXRpY0tleWJvYXJkVUlXaGVuSW5wdXRNb2RlTm9uZSkK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKIAogI2lmIFBMQVRGT1JNKFdBVENIT1Mp
CkBAIC01OTI4LDEyICs1OTQxLDEzIEBAIC0gKHZvaWQpX2hhcmR3YXJlS2V5Ym9hcmRBdmFpbGFi
aWxpdHlDaGFuZ2VkCiAgICAgW3NlbGYgcmVsb2FkSW5wdXRWaWV3c107CiB9CiAKLS0gKHZvaWQp
X2RpZFVwZGF0ZUlucHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUKKy0gKHZvaWQpX2Rp
ZFVwZGF0ZUlucHV0TW9kZTooV2ViQ29yZTo6SW5wdXRNb2RlKW1vZGUgYWN0aXZpdHlTdGF0ZUNo
YW5nZXM6KE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPilhY3Rpdml0eVN0
YXRlQ2hhbmdlcwogewotICAgIGlmICghc2VsZi5pbnB1dERlbGVnYXRlIHx8IF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID09IFdlYktpdDo6SW5wdXRUeXBlOjpOb25lKQor
ICAgIGlmICghc2VsZi5pbnB1dERlbGVnYXRlIHx8ICFoYXNGb2N1c2VkRWxlbWVudChfZm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbikpCiAgICAgICAgIHJldHVybjsKIAogI2lmICFQTEFURk9STShX
QVRDSE9TKQorICAgIFNldEZvclNjb3BlPEJPT0w+IHNob3VsZFNob3dBdXRvbWF0aWNLZXlib2Fy
ZFVJV2hlbklucHV0TW9kZU5vbmVTY29wZSB7IF9zaG91bGRTaG93QXV0b21hdGljS2V5Ym9hcmRV
SVdoZW5JbnB1dE1vZGVOb25lLCBbc2VsZiBzaG91bGRTaG93SW5wdXRWaWV3T25QYWdlQWN0aXZh
dGlvbjphY3Rpdml0eVN0YXRlQ2hhbmdlc10gfTsKICAgICBfZm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbi5pbnB1dE1vZGUgPSBtb2RlOwogICAgIFtzZWxmIHJlbG9hZElucHV0Vmlld3NdOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpp
bmRleCBjNzI2N2E1ODdjOTcxY2YzZDMwZjIzZmU0NGE3MzNmZTBjYWEzMDM1Li41MmM4M2MyYmQ3
ODQxNjNjZDI1YTZlOWI0ZmEyNTk2NThlNTMyMDc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTk5Myw3ICs5OTMsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6ZWxlbWVudERpZEJsdXIoKQogICAgIHBhZ2VDbGllbnQoKS5lbGVtZW50RGlk
Qmx1cigpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Zm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJ
bnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6Zm9j
dXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5wdXRNb2RlIG1vZGUsIE9w
dGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdl
cykKIHsKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgIGlmIChtX3RvdWNoQW5kUG9pbnRl
ckV2ZW50VHJhY2tpbmcuaXNUcmFja2luZ0FueXRoaW5nKCkpIHsKQEAgLTEwMDIsNyArMTAwMiw3
IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShX
ZWJDb3JlOjpJbnB1dE1vZGUgbW9kZSkKICAgICB9CiAjZW5kaWYKIAotICAgIHBhZ2VDbGllbnQo
KS5mb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlKTsKKyAgICBwYWdlQ2xpZW50
KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUobW9kZSwgYWN0aXZpdHlTdGF0ZUNo
YW5nZXMpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRz
KCkKQEAgLTEwMTAsNyArMTAxMCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxs
VG91Y2hQb2ludHMoKQogICAgIGlmICghbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBwYWdlQ2xpZW50KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1
dE1vZGUoKm1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZSk7CisgICAgcGFnZUNsaWVudCgpLmZvY3Vz
ZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKCptX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2UsIHsg
fSk7CiAgICAgbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlID0gV1RGOjpudWxsb3B0OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGI2Mzcw
OWVkY2RjZWI3YjlmNWZlNThmYjY3YzRkOTZmMTMyMWNmMTguLjJiY2IyMzc4NjNmODNlYzUzYWEx
N2Y5MmQwOWYyNTYzNWM1ZjRlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC01NjE2LDcgKzU2MTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmZvY3Vz
ZWRFbGVtZW50RGlkQ2hhbmdlSW5wdXRNb2RlKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQsIFdl
YkNvcgogICAgIGlmICghaXNUZXh0Rm9ybUNvbnRyb2xPckVkaXRhYmxlQ29udGVudChlbGVtZW50
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpG
b2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlKSk7CisgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShtb2RlLCBt
X2xhc3RBY3Rpdml0eVN0YXRlQ2hhbmdlcykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obW9k
ZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA0N2VlYTg4MmExMzk0NjYxMjZiZDQxMzg5Mjk1MGZkOWE3NTQ1
YjIzLi41ODdhOGEyZWE4MzY1NTk3MmUxZTU1Njc4NjUzZjlhZTUzMTQ1NDk2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMjAtMDMtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIFNob3VsZCBzaG93IGlucHV0IHZpZXcgd2hlbiBiZWNhbWUgZmly
c3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdhcyBzaG93aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJl
c2lnbmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDA5MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU0MjMxNzU2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBBZGQgdGVzdHMgdG8gZW5zdXJlIHRoYXQg
d2Ugc2hvdyB0aGUga2V5Ym9hcmQgd2hlbiBiZWNvbWluZyBmaXJzdCByZXNwb25kZXIgaWYgdGhl
IHZpZXcgcmVzaWduZWQgd2l0aCB0aGUKKyAgICAgICAga2V5Ym9hcmQgb24gc2NyZWVuLiBBbHNv
IGFkZCBhIHRlc3QgdG8gZW5zdXJlIHRoYXQgd2Uga2VlcCBvdXIgY3VycmVudCBiZWhhdmlvciBh
bmQgZG8gTk9UIHNob3cgdGhlIGtleWJvYXJkCisgICAgICAgIGZvciBhbiBhdXRvZm9jdXNlZCB0
ZXh0IGZpZWxkIHdoZW4gdGhlIHZpZXcgYmVjb21lcyBmaXJzdCByZXNwb25kZXIuCisKKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9pb3MvcmVzb3VyY2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5q
czogQWRkZWQuCisgICAgICAgIChhc3luYy5jaGVja0tleWJvYXJkT25TY3JlZW4pOgorICAgICAg
ICAoYXN5bmMuY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVuKToKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9pb3Mvc2hvdWxkLW5vdC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVu
LWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1rZXlib2Fy
ZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItYWZ0
ZXItbmF2aWdhdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvc2hv
dy1rZXlib2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9k
ZS1ub25lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3No
b3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZGVzcGl0ZS1pbnB1dG1v
ZGUtbm9uZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXli
b2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmly
c3QtcmVzcG9uZGVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIu
anM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9TaG93LnJldHVy
bi5uZXcuUHJvbWlzZSk6IEFkZGVkLgorICAgICAgICAod2luZG93LlVJSGVscGVyLndhaXRGb3JL
ZXlib2FyZFRvU2hvdyk6IEFkZGVkLgorICAgICAgICAod2luZG93LlVJSGVscGVyLmJlY29tZUZp
cnN0UmVzcG9uZGVyKTogQWRkZWQuCisKIDIwMjAtMDMtMjQgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFTU0VSVElPTiBGQUlMVVJFOiAhaXNNaXNz
aW5nUG9zdExheW91dERhdGEgaW4gV2ViS2l0OjpFZGl0b3JTdGF0ZTo6cG9zdExheW91dERhdGEo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9jaGVj
ay1rZXlib2FyZC1vbi1zY3JlZW4uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvcmVz
b3VyY2VzL2NoZWNrLWtleWJvYXJkLW9uLXNjcmVlbi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjM3YmViNGEz
OTVlNjFkODIzZTVhOTY4ZWFkYmViYjliZjI4MmY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Jlc291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4u
anMKQEAgLTAsMCArMSwxNSBAQAorYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2FyZE9uU2NyZWVu
KCkKK3sKKyAgICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQoKSkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiS2V5Ym9hcmQgaXMgb24gc2NyZWVuLiIpOworICAgIGVsc2UKKyAgICAg
ICAgdGVzdEZhaWxlZCgiS2V5Ym9hcmQgc2hvdWxkIGJlIG9uIHNjcmVlbiwgYnV0IGlzIG5vdC4i
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gY2hlY2tLZXlib2FyZE5vdE9uU2NyZWVuKCkKK3sKKyAg
ICBpZiAoYXdhaXQgVUlIZWxwZXIuaXNTaG93aW5nS2V5Ym9hcmQoKSkKKyAgICAgICAgdGVzdEZh
aWxlZCgiS2V5Ym9hcmQgc2hvdWxkIG5vdCBiZSBvbiBzY3JlZW4sIGJ1dCBpdCBpcy4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RQYXNzZWQoIktleWJvYXJkIGlzIG5vdCBvbiBzY3JlZW4uIik7
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5vdC1z
aG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0LXJl
c3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUxZGVkNTg0OTZmMWRiY2ZhY2NlZjRkMTEwY2I3MTMwY2NjZTRhYTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdWxkLW5v
dC1zaG93LWtleWJvYXJkLWZvci1hdXRvZm9jdXNlZC1maWVsZC13aGVuLWJlY29taW5nLWZpcnN0
LXJlc3BvbmRlci1hZnRlci1uYXZpZ2F0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBA
CitUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIG5vdCBzaG93biBmb3Ig
YW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBiZWNvbWluZyBmaXJzdCByZXNwb25kZXIgYWZ0
ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIGEgZm9jdXNlZCB0ZXh0IGZpZWxkLgorCitP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkb2N1bWVudC5hY3RpdmVFbGVtZW50
IGJlY2FtZSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wdXQnKQorUEFTUyBLZXlib2FyZCBp
cyBub3Qgb24gc2NyZWVuLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG91
bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxkLXdoZW4tYmVjb21pbmct
Zmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9zaG91bGQtbm90LXNob3cta2V5Ym9hcmQtZm9yLWF1dG9mb2N1c2VkLWZpZWxk
LXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWFmdGVyLW5hdmlnYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mZGM1NGE0MjAzZWM3MjY4M2U4OTY0OTU1ZmNiNDA5ZGY4Njg2Yjk4Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3VsZC1ub3Qtc2hvdy1r
ZXlib2FyZC1mb3ItYXV0b2ZvY3VzZWQtZmllbGQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25k
ZXItYWZ0ZXItbmF2aWdhdGlvbi5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NoZWNrLWtleWJvYXJkLW9u
LXNjcmVlbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCBpZD0iaW5wdXQi
IGF1dG9mb2N1cz4gPCEtLSBPbmx5IHJlc3BlY3RlZCBvbiBpT1Mgd2hlbiBhIGhhcmR3YXJlIGtl
eWJvYXJkIGlzIGF0dGFjaGVkLiAtLT4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5w
dXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0
UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQgVUlIZWxwZXIu
c2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5zZWFyY2ggPT0gIj9jaGVja1Jlc3VsdCIpIHsKKyAgICAgICAgYXN5bmMgZnVuY3Rp
b24gY2hlY2tSZXN1bHRBbmREb25lKCkgeworICAgICAgICAgICAgYXdhaXQgY2hlY2tLZXlib2Fy
ZE5vdE9uU2NyZWVuKCk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGlu
cHV0RWxlbWVudCk7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorICAg
ICAgICBhd2FpdCBVSUhlbHBlci5iZWNvbWVGaXJzdFJlc3BvbmRlcigpOworICAgICAgICBzaG91
bGRCZWNvbWVFcXVhbCgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIsICJkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaW5wdXQnKSIsIGNoZWNrUmVzdWx0QW5kRG9uZSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lv
bihpbnB1dEVsZW1lbnQpOworICAgICAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25GaXJzdFJlc3Bv
bmRlcigpOworICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsK
KyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiArPSAiP2NoZWNrUmVzdWx0IjsKKyAgICB9
Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIHNvZnR3YXJlIGtleWJvYXJk
IGlzIG5vdCBzaG93biBmb3IgYW4gYXV0b2ZvY3VzZWQgdGV4dCBmaWVsZCBvbiBiZWNvbWluZyBm
aXJzdCByZXNwb25kZXIgYWZ0ZXIgbmF2aWdhdGluZyBmcm9tIGEgcGFnZSB3aXRoIGEgZm9jdXNl
ZCB0ZXh0IGZpZWxkLiIpOworcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13
aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4t
YmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmEyNWVhYzVkMWE4MmE5ODE0MDViMjk3ZTBlYzIyMTY0MjUzYjBjYjMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXli
b2FyZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoYXQgaW4gYSBmb2N1
c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJvYXJkIGlzIGhpZGRlbiBhbmQgc2hvd24g
d2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVjb21lcyBmaXJzdCByZXNwb25kZXIsIHJl
c3BlY3RpdmVseSwgZXZlbnRob3VnaCBmb2N1c2luZyB0aGUgdGV4dCBmaWVsZCBzZXRzIGlucHV0
bW9kZSB0byAibm9uZSIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0FmdGVy
IHRhcHBpbmcgPGlucHV0PjoKK1BBU1MgS2V5Ym9hcmQgaXMgb24gc2NyZWVuLgorCitBZnRlciBy
ZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBub3Qgb24gc2NyZWVu
LgorCitBZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6CitQQVNTIEtleWJvYXJkIGlzIG9u
IHNjcmVlbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2Fy
ZC13aGVuLWJlY29taW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvc2hvdy1rZXlib2FyZC13aGVuLWJlY29t
aW5nLWZpcnN0LXJlc3BvbmRlci1kZXNwaXRlLWlucHV0bW9kZS1ub25lLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDk3ODJhZDZiNjExZDI0ZTA0NzliNzcwYjFhMjNlYzFmMjFiMDNkZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVj
b21pbmctZmlyc3QtcmVzcG9uZGVyLWRlc3BpdGUtaW5wdXRtb2RlLW5vbmUuaHRtbApAQCAtMCww
ICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9jaGVjay1rZXlib2FyZC1vbi1zY3JlZW4uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8aW5wdXQgaWQ9ImlucHV0Ij4KKzxzY3JpcHQ+Cit3aW5kb3cuanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2xldCBpbnB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aW5wdXQiKTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRU
ZXN0UnVubmVyLiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXdhaXQgVUlIZWxw
ZXIuc2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIGRlYnVnKCI8YnI+
QWZ0ZXIgdGFwcGluZyAmbHQ7aW5wdXQmZ3Q7OiIpOworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2
YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oaW5wdXRFbGVtZW50KTsKKyAgICBhd2Fp
dCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgcmVzaWdu
aW5nIGZpcnN0IHJlc3BvbmRlcjoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5yZXNpZ25GaXJzdFJl
c3BvbmRlcigpOworICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOwor
ICAgIGF3YWl0IGNoZWNrS2V5Ym9hcmROb3RPblNjcmVlbigpOworCisgICAgZGVidWcoIjxicj5B
ZnRlciBiZWNvbWluZyBmaXJzdCByZXNwb25kZXI6Iik7CisgICAgYXdhaXQgVUlIZWxwZXIuYmVj
b21lRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRU
b1Nob3coKTsKKyAgICBhd2FpdCBjaGVja0tleWJvYXJkT25TY3JlZW4oKTsKKworICAgIGRvY3Vt
ZW50LmJvZHkucmVtb3ZlQ2hpbGQoaW5wdXRFbGVtZW50KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsK
K30KKworaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgKCkgPT4gaW5wdXRF
bGVtZW50LnNldEF0dHJpYnV0ZSgiaW5wdXRtb2RlIiwgIm5vbmUiKSwgdHJ1ZSAvKiBjYXB0dXJl
IHBoYXNlICovKTsKKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbiBhIGZvY3VzZWQg
dGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBzaG93biB3aGVu
IHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgcmVzcGVj
dGl2ZWx5LCBldmVudGhvdWdoIGZvY3VzaW5nIHRoZSB0ZXh0IGZpZWxkIHNldHMgaW5wdXRtb2Rl
IHRvICZxdW90O25vbmUmcXVvdDsuIik7CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtl
eWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3Qt
cmVzcG9uZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NDQ1ZTBmZTExMjVhMzk2NjNiYWY0
MzcyMmZlZTA0MWM0M2ZkOTFlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1iZWNvbWluZy1maXJzdC1yZXNwb25kZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK1RoaXMgdGVzdHMgdGhhdCBpbiBhIGZvY3VzZWQg
dGV4dCBmaWVsZCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaXMgaGlkZGVuIGFuZCBzaG93biB3aGVu
IHRoZSB3ZWIgdmlldyByZXNpZ25zIGFuZCBiZWNvbWVzIGZpcnN0IHJlc3BvbmRlciwgcmVzcGVj
dGl2ZWx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCitBZnRlciB0YXBwaW5n
IDxpbnB1dD46CitQQVNTIEtleWJvYXJkIGlzIG9uIHNjcmVlbi4KKworQWZ0ZXIgcmVzaWduaW5n
IGZpcnN0IHJlc3BvbmRlcjoKK1BBU1MgS2V5Ym9hcmQgaXMgbm90IG9uIHNjcmVlbi4KKworQWZ0
ZXIgYmVjb21pbmcgZmlyc3QgcmVzcG9uZGVyOgorUEFTUyBLZXlib2FyZCBpcyBvbiBzY3JlZW4u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Nob3cta2V5Ym9hcmQtd2hlbi1i
ZWNvbWluZy1maXJzdC1yZXNwb25kZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lv
cy9zaG93LWtleWJvYXJkLXdoZW4tYmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjNkYjcyY2MxMTVhMTRlOWQ5ODE2M2Q4ZjNlZGQ4YmNhNjFmYWVhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9zaG93LWtleWJvYXJkLXdoZW4t
YmVjb21pbmctZmlyc3QtcmVzcG9uZGVyLmh0bWwKQEAgLTAsMCArMSw0NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2hlY2sta2V5Ym9h
cmQtb24tc2NyZWVuLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGlkPSJp
bnB1dCI+Cis8c2NyaXB0Pgord2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCitsZXQgaW5w
dXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0Iik7CisKK2FzeW5jIGZ1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdEZhaWxlZCgiTXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5lci4iKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9h
cmRBdHRhY2hlZChmYWxzZSk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHRhcHBpbmcgJmx0O2lu
cHV0Jmd0OzoiKTsKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9y
SW5wdXRTZXNzaW9uKGlucHV0RWxlbWVudCk7CisgICAgYXdhaXQgY2hlY2tLZXlib2FyZE9uU2Ny
ZWVuKCk7CisKKyAgICBkZWJ1ZygiPGJyPkFmdGVyIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXI6
Iik7CisgICAgYXdhaXQgVUlIZWxwZXIucmVzaWduRmlyc3RSZXNwb25kZXIoKTsKKyAgICBhd2Fp
dCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICBhd2FpdCBjaGVja0tleWJv
YXJkTm90T25TY3JlZW4oKTsKKworICAgIGRlYnVnKCI8YnI+QWZ0ZXIgYmVjb21pbmcgZmlyc3Qg
cmVzcG9uZGVyOiIpOworICAgIGF3YWl0IFVJSGVscGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKCk7
CisgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvcktleWJvYXJkVG9TaG93KCk7CisgICAgYXdhaXQg
Y2hlY2tLZXlib2FyZE9uU2NyZWVuKCk7CisKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxk
KGlucHV0RWxlbWVudCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Rlc2NyaXB0aW9uKCJU
aGlzIHRlc3RzIHRoYXQgaW4gYSBmb2N1c2VkIHRleHQgZmllbGQgdGhlIHNvZnR3YXJlIGtleWJv
YXJkIGlzIGhpZGRlbiBhbmQgc2hvd24gd2hlbiB0aGUgd2ViIHZpZXcgcmVzaWducyBhbmQgYmVj
b21lcyBmaXJzdCByZXNwb25kZXIsIHJlc3BlY3RpdmVseS4iKTsKK3J1blRlc3QoKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3VpLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXgg
ZDExMjRmZjg1NDI3MzY1NmE2NTlmOTkwODJiM2VjMjdkNjhjYjkwOS4uNDYxYmM4MzhkODMyMWVm
NzBhZDkwMmY1ODZkY2NmYzY2ZjlkODNhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpz
CkBAIC01NDEsNiArNTQxLDIyIEBAIHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsK
ICAgICAgICAgfSk7CiAgICAgfQogCisgICAgc3RhdGljIHdhaXRGb3JLZXlib2FyZFRvU2hvdygp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1NGYW1p
bHkoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGAKKyAgICAgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nS2V5Ym9hcmQpCisgICAgICAgICAgICAg
ICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkU2hv
d0tleWJvYXJkQ2FsbGJhY2sgPSAoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgp
OworICAgICAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICAgICAgfSk7CisgICAgfQor
CiAgICAgc3RhdGljIGdldFVJQ2FyZXRSZWN0KCkKICAgICB7CiAgICAgICAgIGlmICghdGhpcy5p
c1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPU0ZhbWlseSgpKQpAQCAtODMzLDYgKzg0OSwxNCBAQCB3
aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYHVpQ29udHJvbGxlci5yZXNp
Z25GaXJzdFJlc3BvbmRlcigpYCwgcmVzb2x2ZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBiZWNv
bWVGaXJzdFJlc3BvbmRlcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkp
CisgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChgdWlDb250cm9s
bGVyLmJlY29tZUZpcnN0UmVzcG9uZGVyKClgLCByZXNvbHZlKSk7CisgICAgfQorCiAgICAgc3Rh
dGljIG1pbmltdW1ab29tU2NhbGUoKQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLmlzV2ViS2l0
MigpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>