<?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>225075</bug_id>
          
          <creation_ts>2021-04-26 14:17:20 -0700</creation_ts>
          <short_desc>[selectors] Using a modifier key on an element makes it stop matching :focus-visible</short_desc>
          <delta_ts>2021-04-28 01:52:16 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/28709</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BrowserCompat, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>185859</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1754367</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-26 14:17:20 -0700</bug_when>
    <thetext>This is a bug in the current implementation, if you are typing on an &lt;input&gt; it&apos;s matching :focus-visible.
But if you type Ctrl key alone (or another modifier key), the element stops matching :focus-visible.
And &lt;input&gt; should always match :focus-visible when focused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754390</commentid>
    <comment_count>1</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-26 14:41:36 -0700</bug_when>
    <thetext>This happens with any element.

For example if a script caused an element to be focused, the element matches :focus-visible. Then if you type Ctrl it stops to match :focus-visbile.
This is a bug in EventHandler::internalKeyEvent(), we shouldn&apos;t do anything when the user types a key if the element is already matching :focus-visible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754532</commentid>
    <comment_count>2</comment_count>
      <attachid>427130</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 02:50:04 -0700</bug_when>
    <thetext>Created attachment 427130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754533</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-04-27 02:50:53 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754543</commentid>
    <comment_count>4</comment_count>
      <attachid>427132</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 03:26:43 -0700</bug_when>
    <thetext>Created attachment 427132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754556</commentid>
    <comment_count>5</comment_count>
      <attachid>427136</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 05:21:52 -0700</bug_when>
    <thetext>Created attachment 427136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754633</commentid>
    <comment_count>6</comment_count>
      <attachid>427136</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-27 09:12:47 -0700</bug_when>
    <thetext>Comment on attachment 427136
Patch

Looks like tests are hitting assertion failures in Element::setHasFocusVisible. Let’s review a version after this is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754768</commentid>
    <comment_count>7</comment_count>
      <attachid>427190</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 13:43:28 -0700</bug_when>
    <thetext>Created attachment 427190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754769</commentid>
    <comment_count>8</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 13:44:11 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; Comment on attachment 427136 [details]
&gt; Patch
&gt; 
&gt; Looks like tests are hitting assertion failures in
&gt; Element::setHasFocusVisible. Let’s review a version after this is fixed.

Yes sorry, one of the asserts was wrong. The new version should have fixed the crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754844</commentid>
    <comment_count>9</comment_count>
      <attachid>427190</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-27 16:45:24 -0700</bug_when>
    <thetext>Comment on attachment 427190
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        This patches fixed that but avoiding doing any work if the element is already matching :focus-visible when the user type a key.

but *avoids* or *that without doing*

&gt; Source/WebCore/dom/Element.cpp:751
&gt; +    // Elements that support keyboard input (form inputs and contenteditable) always match :focus-visible when focused.
&gt; +    return element.isTextField() || element.isContentEditable();

I guess we can discuss in another issue but why is this special case needed / necessary?
It seems wrong that a shadow host with contenteditable will automatically get a visible focus,
much less any focusable element that&apos;s in an editable region.

&gt; Source/WebCore/dom/Element.cpp:783
&gt; +    if (flag)
&gt; +        ASSERT(focused());

This is just:
ASSERT(!flag || focused());
Or alternatively:
ASSERT(!(flag &amp;&amp; !focused()));

&gt; Source/WebCore/dom/Element.cpp:785
&gt; +    if (focused() &amp;&amp; shouldAlwaysHaveFocusVisibleWhenFocused(*this))
&gt; +        ASSERT(flag);

Similarly here, we can just do:
ASSERT(!focused() || !shouldAlwaysHaveFocusVisibleWhenFocused(*this) || flag);

&gt; Source/WebCore/page/EventHandler.cpp:3548
&gt; +        if (!element.focused() || element.hasFocusVisible())
&gt; +            return;

It&apos;s not really good to create this kind of state dependency.
This code relies on some other code to have called setHasFocusVisible, and it adds more conditions on top of it.
I think what we&apos;re trying to do is to set hasFocusVisible if isn&apos;t already set.
It&apos;s far clearer to write code like this instead:
bool userHasInteractedViaKeyword = keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty());
if (element-&gt;focused() &amp;&amp; userHasInteractedViaKeyword)
    element-&gt;setHasFocusVisible(true);

&gt; Source/WebCore/page/EventHandler.cpp:3552
&gt;          // If the user interacts with the page via the keyboard, the currently focused element should match :focus-visible.
&gt;          // Just typing a modifier key is not considered user interaction with the page, but Shift + a (or Caps Lock + a) is considered an interaction.
&gt; -        return keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty());
&gt; +        element.setHasFocusVisible(keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty()));

This set of key combinations seem rather arbitrary to me.
Where does it come from?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754914</commentid>
    <comment_count>10</comment_count>
      <attachid>427238</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 22:25:06 -0700</bug_when>
    <thetext>Created attachment 427238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754917</commentid>
    <comment_count>11</comment_count>
      <attachid>427190</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-27 22:34:20 -0700</bug_when>
    <thetext>Comment on attachment 427190
Patch

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

Thanks for the review, uploaded new version applying suggested changes.

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        This patches fixed that but avoiding doing any work if the element is already matching :focus-visible when the user type a key.
&gt; 
&gt; but *avoids* or *that without doing*

Done.

&gt;&gt; Source/WebCore/dom/Element.cpp:751
&gt;&gt; +    return element.isTextField() || element.isContentEditable();
&gt; 
&gt; I guess we can discuss in another issue but why is this special case needed / necessary?
&gt; It seems wrong that a shadow host with contenteditable will automatically get a visible focus,
&gt; much less any focusable element that&apos;s in an editable region.

Yeah I guess we could discuss this on a different bug, so I&apos;m not seeing the kind of issue you mention.

For example right now if we have &quot;&lt;div contenteditable&gt;&lt;p&gt;foo&lt;/p&gt;&lt;input&gt;&lt;/div&gt;&quot; and we set &quot;:focus-visible { background: lime; }&quot;, if you focus &quot;foo&quot; you see a green background on the DIV, but if you focus the INPUT, you only see the green background there.

I also tried something like this:
  const shadowRoot = host.attachShadow({mode: &apos;open&apos;, delegatesFocus: true});
  shadowRoot.innerHTML = &apos;&lt;style&gt;:focus-visible { background: magenta; }&lt;/style&gt;&lt;p&gt;foo&lt;/p&gt;&lt;div contenteditable&gt;contenteditable&lt;/div&gt;&apos;;

Similar in this case, if you focus the contenteditable DIV, you see a magenta background, but the shadow host doesn&apos;t match :focus-visible.

Maybe you were thinking on a different example.

&gt;&gt; Source/WebCore/dom/Element.cpp:783
&gt;&gt; +        ASSERT(focused());
&gt; 
&gt; This is just:
&gt; ASSERT(!flag || focused());
&gt; Or alternatively:
&gt; ASSERT(!(flag &amp;&amp; !focused()));

Done.

&gt;&gt; Source/WebCore/dom/Element.cpp:785
&gt;&gt; +        ASSERT(flag);
&gt; 
&gt; Similarly here, we can just do:
&gt; ASSERT(!focused() || !shouldAlwaysHaveFocusVisibleWhenFocused(*this) || flag);

Done.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:3548
&gt;&gt; +            return;
&gt; 
&gt; It&apos;s not really good to create this kind of state dependency.
&gt; This code relies on some other code to have called setHasFocusVisible, and it adds more conditions on top of it.
&gt; I think what we&apos;re trying to do is to set hasFocusVisible if isn&apos;t already set.
&gt; It&apos;s far clearer to write code like this instead:
&gt; bool userHasInteractedViaKeyword = keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty());
&gt; if (element-&gt;focused() &amp;&amp; userHasInteractedViaKeyword)
&gt;     element-&gt;setHasFocusVisible(true);

Yeah, that&apos;s indeed more clear, I&apos;ve done that.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:3552
&gt;&gt; +        element.setHasFocusVisible(keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty()));
&gt; 
&gt; This set of key combinations seem rather arbitrary to me.
&gt; Where does it come from?

In the spec there&apos;s this text (https://drafts.csswg.org/selectors/#the-focus-visible-pseudo):
&quot;If the user interacts with the page via keyboard or some other non-pointing device, indicate focus. (This means keyboard usage may change whether this pseudo-class matches even if it doesn’t affect :focus).&quot;

That&apos;s what we&apos;re implementing here.

There are also some WPT tests that check that if you enter some modifier key (like &quot;Ctrl + y&quot;), :focus-visible doesn&apos;t start matching. But if you type a letter, it actually does.

Do you think other cases should be included/excluded here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754940</commentid>
    <comment_count>12</comment_count>
      <attachid>427190</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-28 00:10:57 -0700</bug_when>
    <thetext>Comment on attachment 427190
Patch

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

&gt;&gt;&gt; Source/WebCore/page/EventHandler.cpp:3552
&gt;&gt;&gt; +        element.setHasFocusVisible(keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty()));
&gt;&gt; 
&gt;&gt; This set of key combinations seem rather arbitrary to me.
&gt;&gt; Where does it come from?
&gt; 
&gt; In the spec there&apos;s this text (https://drafts.csswg.org/selectors/#the-focus-visible-pseudo):
&gt; &quot;If the user interacts with the page via keyboard or some other non-pointing device, indicate focus. (This means keyboard usage may change whether this pseudo-class matches even if it doesn’t affect :focus).&quot;
&gt; 
&gt; That&apos;s what we&apos;re implementing here.
&gt; 
&gt; There are also some WPT tests that check that if you enter some modifier key (like &quot;Ctrl + y&quot;), :focus-visible doesn&apos;t start matching. But if you type a letter, it actually does.
&gt; 
&gt; Do you think other cases should be included/excluded here?

BTW, one thing that I forgot to mention is that Firefox doesn&apos;t do this (https://bugzilla.mozilla.org/show_bug.cgi?id=1688539).
In Firefox :focus-visible matching doesn&apos;t change if you have focused an element with the mouse initially, and then you type any letter.

Also Chromium does something a little bit different than what we have in WebKit. Because in Chromium just typing &quot;Shift&quot; alone, makes the element start matching :focus-visible (but that doesn&apos;t happen for &quot;Ctrl&quot; key). In WebKit the modifier alone doesn&apos;t make any change (neither &quot;Ctrl&quot; or &quot;Shift&quot;).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754941</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-28 00:17:06 -0700</bug_when>
    <thetext>(In reply to Manuel Rego Casasnovas from comment #11)
&gt;
&gt; &gt;&gt; Source/WebCore/dom/Element.cpp:751
&gt; &gt;&gt; +    return element.isTextField() || element.isContentEditable();
&gt; &gt; 
&gt; &gt; I guess we can discuss in another issue but why is this special case needed / necessary?
&gt; &gt; It seems wrong that a shadow host with contenteditable will automatically get a visible focus,
&gt; &gt; much less any focusable element that&apos;s in an editable region.
&gt; 
&gt; Yeah I guess we could discuss this on a different bug, so I&apos;m not seeing the
&gt; kind of issue you mention.
&gt; 
&gt; For example right now if we have &quot;&lt;div
&gt; contenteditable&gt;&lt;p&gt;foo&lt;/p&gt;&lt;input&gt;&lt;/div&gt;&quot; and we set &quot;:focus-visible {
&gt; background: lime; }&quot;, if you focus &quot;foo&quot; you see a green background on the
&gt; DIV, but if you focus the INPUT, you only see the green background there.

That&apos;s not what I&apos;m talking about. isContentEditable() will return true on every node that&apos;s inside an element with contenteditable=true. I don&apos;t think what&apos;s quite what we want. isRootEditableElement() is probably what you&apos;re looking for instead.

&gt; &gt;&gt; Source/WebCore/page/EventHandler.cpp:3552
&gt; &gt;&gt; +        element.setHasFocusVisible(keydown-&gt;modifierKeys().isEmpty() || ((keydown-&gt;shiftKey() || keydown-&gt;capsLockKey()) &amp;&amp; !initialKeyEvent.text().isEmpty()));
&gt; &gt; 
&gt; &gt; This set of key combinations seem rather arbitrary to me.
&gt; &gt; Where does it come from?
&gt; 
&gt; In the spec there&apos;s this text
&gt; (https://drafts.csswg.org/selectors/#the-focus-visible-pseudo):
&gt; &quot;If the user interacts with the page via keyboard or some other non-pointing
&gt; device, indicate focus. (This means keyboard usage may change whether this
&gt; pseudo-class matches even if it doesn’t affect :focus).&quot;
&gt; 
&gt; That&apos;s what we&apos;re implementing here.

I don&apos;t see how or why this behavior is desirable? This is totally different from the way WebKit keeps track of whether a given WKWebView has a focus or not. In macOS / iOS, the concept here is whether the current view is the first responder or not. It has nothing to do with whether the user had interacted with keyboard or not. In fact, we need to be showing the focus ring before the user ever types things into text field on iOS / iPad.

&gt; There are also some WPT tests that check that if you enter some modifier key
&gt; (like &quot;Ctrl + y&quot;), :focus-visible doesn&apos;t start matching. But if you type a
&gt; letter, it actually does.

But why is that behavior useful / desirable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754943</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-28 00:17:54 -0700</bug_when>
    <thetext>Note that there is also a very notable difference between WebKit and other browser engines, which is that when the user tries to type text, we&apos;d move the focus to where the selection is whereas other browsers move the selection to where the focus is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754945</commentid>
    <comment_count>15</comment_count>
      <attachid>427238</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-28 00:18:52 -0700</bug_when>
    <thetext>Comment on attachment 427238
Patch

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

&gt; Source/WebCore/dom/Element.cpp:750
&gt; +    // Elements that support keyboard input (form inputs and contenteditable) always match :focus-visible when focused.

This comment now just repeats what the code says so please remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754952</commentid>
    <comment_count>16</comment_count>
      <attachid>427245</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-28 00:57:58 -0700</bug_when>
    <thetext>Created attachment 427245
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754953</commentid>
    <comment_count>17</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-28 00:59:12 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #15)
&gt; Comment on attachment 427238 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427238&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Element.cpp:750
&gt; &gt; +    // Elements that support keyboard input (form inputs and contenteditable) always match :focus-visible when focused.
&gt; 
&gt; This comment now just repeats what the code says so please remove.

Ok, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754955</commentid>
    <comment_count>18</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2021-04-28 01:00:47 -0700</bug_when>
    <thetext>Let&apos;s discuss the open issues on a separated bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754961</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-28 01:51:46 -0700</bug_when>
    <thetext>Committed r276698 (237112@main): &lt;https://commits.webkit.org/237112@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 427245.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1754962</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-28 01:52:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77254863&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427130</attachid>
            <date>2021-04-27 02:50:04 -0700</date>
            <delta_ts>2021-04-27 03:26:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210427115002.patch</filename>
            <type>text/plain</type>
            <size>12227</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2NDZlNjFhZmE1Mzcy
ODVmOWM2MjM0MThkZDliZGI5NGZiMWVhNi4uYzIzYTVmODllNTM0MTA0OGYzY2U3NjRmYWMyZTI4
NTRjMWJmMTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSB1c2VkIGEgbW9kaWZpZXIga2V5IG9uIGEgZWxlbWVudCB0aGF0
IHdhcyBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZSwgd2Ugc3RvcHBlZCBtYXRjaGluZyA6Zm9jdXMt
dmlzaWJsZS4KKyAgICAgICAgVGhhdCB3YXMgd3JvbmcsIHdlIHNob3VsZG4ndCBqdXN0IHN0YXJ0
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgdXNlZCBidXQg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2hlcyBmaXhlZCB0
aGF0IGJ1dCBhdm9pZGluZyBkb2luZyBhbnkgd29yayBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gdGhlIHVzZXIgdHlwZSBhIGtleS4KKworICAg
ICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
Zm9jdXMtdmlzaWJsZS0wMjEuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKTog
SGVscGVyIG1ldGhvZCBmb3IgaW5wdXRzIGFuZCBjb250ZW50IGVkaXRhYmxlIGVsZW1lbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Rm9jdXMpOiBVc2UgdGhlIG5ldyBoZWxwZXIg
bWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxlKTog
QWRkIGFzc2VydHMgdG8gYXZvaWQgc2V0dGluZy91bnNldHRpbmcgOmZvY3VzLXZpc2libGUgZmxh
ZyB3cm9uZ2x5LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmlzQ29udGVudEVkaXRhYmxlIGNvbnN0KTogSnVzdCBtYXJrIGFzIGNvbnN0LgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUgY29uc3QpOiBEaXR0by4K
KyAgICAgICAgKiBkb20vTm9kZS5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQp
OiBEb24ndCBkbyBhbnl0aGluZyByZWdhcmRpbmcgOmZvY3VzLXZpc2libGUgZmxhZyBpZiB0aGUg
ZWxlbWVudCBhbHJlYWR5IG1hdGNoZXMgOmZvY3VzLXZpc2libGUuCisKIDIwMjEtMDQtMjYgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI3NjI2NCk6IFJlcHJvZHVjaWJsZSBjcmFzaCBpbiBXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6Y2xlYXJGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY0ZDA1NDA0
YTM5NjVjYWY0NWEwNjNkNTJhNWEwZTk0NzkxNzMxYWYuLjkyNWNjNDY3ZWZiNGY1NDQwOTRlZTEy
NThkMzk4ZmY4ZmY0NDhjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTc0NSw2ICs3NDUs
MTIgQEAgdm9pZCBFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sIHBhdXNlLCBTdHls
ZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGEKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIHNo
b3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9y
bSBpbnB1dHMgYW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxl
IHdoZW4gZm9jdXNlZC4KKyAgICByZXR1cm4gZWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGVsZW1l
bnQuaXNDb250ZW50RWRpdGFibGUoKTsKK30KKwogdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29s
IGZsYWcsIEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogewogICAgIGlmIChmbGFnID09IGZv
Y3VzZWQoKSkKQEAgLTc2NCw4ICs3NzAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldEZvY3VzKGJvb2wg
ZmxhZywgRm9jdXNWaXNpYmlsaXR5IHZpc2liaWxpdHkpCiAgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNvbXBv
c2VkVHJlZSgpKQogICAgICAgICBlbGVtZW50LT5zZXRIYXNGb2N1c1dpdGhpbihmbGFnKTsKIAot
ICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9ybSBpbnB1dHMg
YW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxlIHdoZW4gZm9j
dXNlZC4KLSAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmxhZyAmJiAodmlzaWJpbGl0eSA9PSBGb2N1
c1Zpc2liaWxpdHk6OlZpc2libGUgfHwgaXNUZXh0RmllbGQoKSB8fCBpc0NvbnRlbnRFZGl0YWJs
ZSgpKSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9j
dXNWaXNpYmlsaXR5OjpWaXNpYmxlIHx8IHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVu
Rm9jdXNlZCgqdGhpcykpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2libGUo
Ym9vbCBmbGFnKQpAQCAtNzczLDYgKzc3OCwxMyBAQCB2b2lkIEVsZW1lbnQ6OnNldEhhc0ZvY3Vz
VmlzaWJsZShib29sIGZsYWcpCiAgICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkuZm9jdXNW
aXNpYmxlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIGlmIChmbGFnKQorICAgICAgICBBU1NFUlQoZG9jdW1lbnQoKS51c2VyQWN0aW9uRWxlbWVu
dHMoKS5pc0ZvY3VzZWQoKSk7CisgICAgaWYgKHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVX
aGVuRm9jdXNlZCgqdGhpcykpCisgICAgICAgIEFTU0VSVChmbGFnKTsKKyNlbmRpZgorCiAgICAg
aWYgKGhhc0ZvY3VzVmlzaWJsZSgpID09IGZsYWcpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuY3BwCmluZGV4IDhmMGY1NDM1MjJmOGQ5YzU0NDE5MTMwOGRhZWY3YmRiY2Q1MjBhMWIuLmU0
MDgyNjk0MDIzYzhhNWIwZDM3M2ZmNGM3NDFmN2M0ZmUwMjgxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
QEAgLTczMiwxMiArNzMyLDEyIEBAIGNvbnN0IEF0b21TdHJpbmcmIE5vZGU6Om5hbWVzcGFjZVVS
SSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250
ZW50RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsRG9lc05vdEFmZmVjdEVk
aXRhYmlsaXR5LCBTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSAhPSBFZGl0YWJpbGl0eTo6UmVh
ZE9ubHk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUoKQorYm9vbCBO
b2RlOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1
dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSwgU2hvdWxkVXBk
YXRlU3R5bGU6OlVwZGF0ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGUuaAppbmRleCBmM2E3YWI0NGU5N2U3NzlkZjNjYjM2NjA4MmU3Y2JhOTQ0MDM0ZmQ5Li5kZGE2
ZjhhYzJhY2FlOTc3N2FhZTk0ODdlNzZjN2JiOThmOTVmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMx
Nyw4ICszMTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFdmVudFRhcmdldERhdGEoKSBjb25z
dCB7IHJldHVybiBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhKTsgfQog
ICAgIHZvaWQgc2V0SGFzRXZlbnRUYXJnZXREYXRhKGJvb2wgZmxhZykgeyBzZXROb2RlRmxhZyhO
b2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhLCBmbGFnKTsgfQogCi0gICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpOwotICAgIGJvb2wgaXNDb250ZW50UmljaGx5RWRp
dGFibGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29u
c3Q7CisgICAgYm9vbCBpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0OwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpbnNwZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAppbmRleCBkNGM1ZmI4NTRjODhmYjQ0OTkwMjNiZTA3NzI2NjUxYzg0MGIxZGQzLi45ZDky
ZTU4NDdkMTA5NDIwYWRhYjdkNWNhZDAyNmUxYzNiOGRiNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCkBAIC0zNTQzLDE2ICszNTQzLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtl
eUV2ZW50CiAgICAgICAgIGtleWRvd24tPnByZXZlbnREZWZhdWx0KCk7CiAgICAga2V5ZG93bi0+
c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgYXV0byBzaG91bGRNYXRjaEZvY3VzVmlzaWJsZSA9
IFtpbml0aWFsS2V5RXZlbnQsIGtleWRvd25dKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsKLSAg
ICAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBhdXRvIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVlZGVkID0gW2luaXRpYWxLZXlFdmVudCwg
a2V5ZG93bl0oRWxlbWVudCYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWVsZW1lbnQuZm9jdXNl
ZCgpIHx8IGVsZW1lbnQuaGFzRm9jdXNWaXNpYmxlKCkpCisgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgLy8gSWYgdGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHBhZ2UgdmlhIHRoZSBr
ZXlib2FyZCwgdGhlIGN1cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgc2hvdWxkIG1hdGNoIDpmb2N1
cy12aXNpYmxlLgogICAgICAgICAvLyBKdXN0IHR5cGluZyBhIG1vZGlmaWVyIGtleSBpcyBub3Qg
Y29uc2lkZXJlZCB1c2VyIGludGVyYWN0aW9uIHdpdGggdGhlIHBhZ2UsIGJ1dCBTaGlmdCArIGEg
KG9yIENhcHMgTG9jayArIGEpIGlzIGNvbnNpZGVyZWQgYW4gaW50ZXJhY3Rpb24uCi0gICAgICAg
IHJldHVybiBrZXlkb3duLT5tb2RpZmllcktleXMoKS5pc0VtcHR5KCkgfHwgKChrZXlkb3duLT5z
aGlmdEtleSgpIHx8IGtleWRvd24tPmNhcHNMb2NrS2V5KCkpICYmICFpbml0aWFsS2V5RXZlbnQu
dGV4dCgpLmlzRW1wdHkoKSk7CisgICAgICAgIGVsZW1lbnQuc2V0SGFzRm9jdXNWaXNpYmxlKGtl
eWRvd24tPm1vZGlmaWVyS2V5cygpLmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkg
fHwga2V5ZG93bi0+Y2Fwc0xvY2tLZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNF
bXB0eSgpKSk7CiAgICAgfTsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBm
b3JtIGNvbnRyb2xzIGFuZCBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzIyNTA3NSkuCi0gICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1h
dGNoRm9jdXNWaXNpYmxlKCplbGVtZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVk
ZWQoKmVsZW1lbnQpOwogCiAgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZv
cm1FdmVudDo6UmF3S2V5RG93bikgewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtl
eWRvd24pOwpAQCAtMzU5OSwxMiArMzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJu
YWxLZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAog
ICAgIC8vIEZvY3VzIG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNv
IHJlZmV0Y2ggZWxlbWVudC4KICAgICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFr
ZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0
aGUga2V5cHJlc3MgaGFwcGVuZWQgb24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFr
ZXlkb3duUmVzdWx0KSB7Ci0gICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxz
ZSk7CiAgICAgICAgIGVsZW1lbnQgPSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2Zy
YW1lLmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0g
Y29udHJvbHMgYW5kIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3Jn
L2IvMjI1MDc1KS4KLSAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1h
dGNoRm9jdXNWaXNpYmxlKCplbGVtZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlm
TmVlZGVkKCplbGVtZW50KTsKICAgICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5
UHJlc3NFdmVudCA9IGluaXRpYWxLZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDBkZWQ0M2Q3MDdiNDIyMzVjZTg0OWIzMjZhMzdkM2I5ZjgwZjQ5YTYuLmM4N2E3YjJl
NGQzZjA2NTU3OWNmNWQzNjk1ZGQ0OTk5MDhhNjdiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTI3ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3RvcnNdIFVzaW5nIGEgbW9k
aWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlz
aWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3Jz
L2ZvY3VzLXZpc2libGUtMDIxLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBUaW0gTmd1eWVu
ICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgY29udGFpbmluZyBibG9jayB3
aGVuIHJlbGV2YW50IHByb3BlcnRpZXMgYXJlIHNldCBpbiB0aGUgY3VycmVudCBlbGVtZW50IHdp
bGwtY2hhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3Jz
L2ZvY3VzLXZpc2libGUtMDIxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUyOWM2OTJiYTg4
YWIzNTA3Y2E3ZjZiMjE0MjQ1ZDEzYjZkMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZp
c2libGUtMDIxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3Mg
dGhhdCB1c2luZyBhIG1vZGlmaWVyIGtleSBkb2VzIG5vdCBtYWtlIHRoZSBlbGVtZW50IHRvIHN0
b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUuCitJZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZv
Y3VzZWQiIGhhcyBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZB
SUxVUkUuCitQcmVzcyB0aGUgQ3RybCBrZXkuCitJZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3Jl
ZW4gb3V0bGluZSBhbmQgaGFzIG5vdCBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJl
c3VsdCBpcyBTVUNDRVNTLgorRm9jdXNlZAorCitQQVNTICI6Zm9jdXMtdmlzaWJsZSIgc2hvdWxk
IGJlIGEgdmFsaWQgc2VsZWN0b3IKK1BBU1MgQ3RybCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1l
bnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMt
dmlzaWJsZS0wMjEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFh
MmRmNmEzNTAwMzg5MGVlMDYyOWZkOGZjMjc3OTdjYjEwMTNlMTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3Rv
cnMvZm9jdXMtdmlzaWJsZS0wMjEuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPkNTUyBUZXN0IChTZWxlY3RvcnMp
OiBNb2RpZmllciBrZXkgZG9lc24ndCBtYWtlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9j
dXMtdmlzaWJsZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdv
IENhc2Fzbm92YXMiIGhyZWY9Im1haWx0bzpyZWdvQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1
cy12aXNpYmxlLXBzZXVkbyIgLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5nLXRlc3Rjb21tb24uanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorICAjd2FybmluZyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAg
ICBiYWNrZ3JvdW5kOiByZWQ7CisgIH0KKworICBAc3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1
cy12aXNpYmxlKSB7CisgICAgI2luc3RydWN0aW9ucyB7CisgICAgICBkaXNwbGF5OiBub25lOwor
ICAgIH0KKworICAgICN3YXJuaW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAg
fQorCisgIDpmb2N1cy12aXNpYmxlIHsKKyAgICBvdXRsaW5lOiBzb2xpZCB0aGljayBncmVlbjsK
KyAgfQorCisgIDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHsKKyAgICBvdXRsaW5lOiBub25l
OworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgfQorPC9zdHlsZT4KKworVGhpcyB0ZXN0
IGNoZWNrcyB0aGF0IHVzaW5nIGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVsZW1l
bnQgdG8gc3RvcCBtYXRjaGluZyA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4uCis8b2wgaWQ9
Imluc3RydWN0aW9ucyI+CisgIDxsaT5JZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQi
IGhhcyBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUu
PC9saT4KKyAgPGxpPlByZXNzIHRoZSBDdHJsIGtleS48L2xpPgorICA8bGk+SWYgdGhlIGVsZW1l
bnQga2VlcHMgdGhlIGdyZWVuIG91dGxpbmUgYW5kIGhhcyBub3QgYSByZWQgYmFja2dyb3VuZCwg
dGhlbiB0aGUgdGVzdCByZXN1bHQgaXMgU1VDQ0VTUy48L2xpPgorPC9vbD4KKzxwIGlkPSJ3YXJu
aW5nIj5Zb3VyIHVzZXItYWdlbnQgZG9lcyBub3Qgc3VwcG9ydCA8Y29kZT46Zm9jdXMtdmlzaWJs
ZTwvY29kZT4gcHNldWRvLWNsYXNzLCBwbGVhc2UgU0tJUCB0aGlzIHRlc3QuPC9wPgorCis8ZGl2
IGlkPSJ0YXJnZXQiIHRhYmluZGV4PSIwIj5Gb2N1c2VkPC9kaXY+Cis8c2NyaXB0PgorICAvLyBD
aGVjayB0aGF0IDpmb2N1cy12aXNpYmxlIGlzIHN1cHBvcnRlZC4KKyAgdGVzdF92YWxpZF9zZWxl
Y3RvcignOmZvY3VzLXZpc2libGUnKTsKKworICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
ICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0LnN0ZXBfZnVuYygoKSA9PiB7Cisg
ICAgICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5vdXRsaW5lQ29sb3Is
ICJyZ2IoMCwgMTI4LCAwKSIsIGBvdXRsaW5lQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7
dGFyZ2V0LmlkfSBzaG91bGQgYmUgZ3JlZW5gKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGdl
dENvbXB1dGVkU3R5bGUodGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIs
IGBiYWNrZ3JvdW5kQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91
bGQgTk9UIGJlIHJlZGApOworCisgICAgICBjb25zdCBjdHJsX2tleSA9ICdcdUUwMDknOworICAg
ICAgdGVzdF9kcml2ZXIuc2VuZF9rZXlzKHRhcmdldCwgY3RybF9rZXkpOworICAgIH0pKTsKKwor
ICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHQuc3RlcF9mdW5jX2RvbmUoKCkg
PT4geworICAgICAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkub3V0bGlu
ZUNvbG9yLCAicmdiKDAsIDEyOCwgMCkiLCBgb3V0bGluZUNvbG9yIGZvciAke3RhcmdldC50YWdO
YW1lfSMke3RhcmdldC5pZH0gc2hvdWxkIGJlIGdyZWVuYCk7CisgICAgICBhc3NlcnRfbm90X2Vx
dWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwg
MCwgMCkiLCBgYmFja2dyb3VuZENvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5p
ZH0gc2hvdWxkIE5PVCBiZSByZWRgKTsKKyAgICB9KSk7CisKKyAgfSwgIkN0cmwga2V5IGRvZXNu
J3QgbWFrZSBhbiBlbGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUiKTsKKwor
ICB0YXJnZXQuZm9jdXMoKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427132</attachid>
            <date>2021-04-27 03:26:43 -0700</date>
            <delta_ts>2021-04-27 05:21:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210427122642.patch</filename>
            <type>text/plain</type>
            <size>12212</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2NDZlNjFhZmE1Mzcy
ODVmOWM2MjM0MThkZDliZGI5NGZiMWVhNi4uYzIzYTVmODllNTM0MTA0OGYzY2U3NjRmYWMyZTI4
NTRjMWJmMTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSB1c2VkIGEgbW9kaWZpZXIga2V5IG9uIGEgZWxlbWVudCB0aGF0
IHdhcyBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZSwgd2Ugc3RvcHBlZCBtYXRjaGluZyA6Zm9jdXMt
dmlzaWJsZS4KKyAgICAgICAgVGhhdCB3YXMgd3JvbmcsIHdlIHNob3VsZG4ndCBqdXN0IHN0YXJ0
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgdXNlZCBidXQg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2hlcyBmaXhlZCB0
aGF0IGJ1dCBhdm9pZGluZyBkb2luZyBhbnkgd29yayBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gdGhlIHVzZXIgdHlwZSBhIGtleS4KKworICAg
ICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
Zm9jdXMtdmlzaWJsZS0wMjEuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKTog
SGVscGVyIG1ldGhvZCBmb3IgaW5wdXRzIGFuZCBjb250ZW50IGVkaXRhYmxlIGVsZW1lbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Rm9jdXMpOiBVc2UgdGhlIG5ldyBoZWxwZXIg
bWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxlKTog
QWRkIGFzc2VydHMgdG8gYXZvaWQgc2V0dGluZy91bnNldHRpbmcgOmZvY3VzLXZpc2libGUgZmxh
ZyB3cm9uZ2x5LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmlzQ29udGVudEVkaXRhYmxlIGNvbnN0KTogSnVzdCBtYXJrIGFzIGNvbnN0LgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUgY29uc3QpOiBEaXR0by4K
KyAgICAgICAgKiBkb20vTm9kZS5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQp
OiBEb24ndCBkbyBhbnl0aGluZyByZWdhcmRpbmcgOmZvY3VzLXZpc2libGUgZmxhZyBpZiB0aGUg
ZWxlbWVudCBhbHJlYWR5IG1hdGNoZXMgOmZvY3VzLXZpc2libGUuCisKIDIwMjEtMDQtMjYgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI3NjI2NCk6IFJlcHJvZHVjaWJsZSBjcmFzaCBpbiBXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6Y2xlYXJGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY0ZDA1NDA0
YTM5NjVjYWY0NWEwNjNkNTJhNWEwZTk0NzkxNzMxYWYuLjZmYjdhNWM1MmFhZTgzZmY0MzZmYWM1
YmM1ZmM1YzFiZjM0ODdlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTc0NSw2ICs3NDUs
MTIgQEAgdm9pZCBFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sIHBhdXNlLCBTdHls
ZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGEKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIHNo
b3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9y
bSBpbnB1dHMgYW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxl
IHdoZW4gZm9jdXNlZC4KKyAgICByZXR1cm4gZWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGVsZW1l
bnQuaXNDb250ZW50RWRpdGFibGUoKTsKK30KKwogdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29s
IGZsYWcsIEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogewogICAgIGlmIChmbGFnID09IGZv
Y3VzZWQoKSkKQEAgLTc2NCw4ICs3NzAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldEZvY3VzKGJvb2wg
ZmxhZywgRm9jdXNWaXNpYmlsaXR5IHZpc2liaWxpdHkpCiAgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNvbXBv
c2VkVHJlZSgpKQogICAgICAgICBlbGVtZW50LT5zZXRIYXNGb2N1c1dpdGhpbihmbGFnKTsKIAot
ICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9ybSBpbnB1dHMg
YW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxlIHdoZW4gZm9j
dXNlZC4KLSAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmxhZyAmJiAodmlzaWJpbGl0eSA9PSBGb2N1
c1Zpc2liaWxpdHk6OlZpc2libGUgfHwgaXNUZXh0RmllbGQoKSB8fCBpc0NvbnRlbnRFZGl0YWJs
ZSgpKSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9j
dXNWaXNpYmlsaXR5OjpWaXNpYmxlIHx8IHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVu
Rm9jdXNlZCgqdGhpcykpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2libGUo
Ym9vbCBmbGFnKQpAQCAtNzczLDYgKzc3OCwxMyBAQCB2b2lkIEVsZW1lbnQ6OnNldEhhc0ZvY3Vz
VmlzaWJsZShib29sIGZsYWcpCiAgICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkuZm9jdXNW
aXNpYmxlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIGlmIChmbGFnKQorICAgICAgICBBU1NFUlQoaXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQo
KSk7CisgICAgaWYgKHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZCgqdGhp
cykpCisgICAgICAgIEFTU0VSVChmbGFnKTsKKyNlbmRpZgorCiAgICAgaWYgKGhhc0ZvY3VzVmlz
aWJsZSgpID09IGZsYWcpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhm
MGY1NDM1MjJmOGQ5YzU0NDE5MTMwOGRhZWY3YmRiY2Q1MjBhMWIuLmU0MDgyNjk0MDIzYzhhNWIw
ZDM3M2ZmNGM3NDFmN2M0ZmUwMjgxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTczMiwxMiArNzMy
LDEyIEBAIGNvbnN0IEF0b21TdHJpbmcmIE5vZGU6Om5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAg
cmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKQor
Ym9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1
dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsRG9lc05vdEFmZmVjdEVkaXRhYmlsaXR5LCBTaG91
bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSAhPSBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJv
b2wgTm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRS
aWNobHlFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShV
c2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSwgU2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0
ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmM2E3
YWI0NGU5N2U3NzlkZjNjYjM2NjA4MmU3Y2JhOTQ0MDM0ZmQ5Li5kZGE2ZjhhYzJhY2FlOTc3N2Fh
ZTk0ODdlNzZjN2JiOThmOTVmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMxNyw4ICszMTcsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNFdmVudFRhcmdldERhdGEoKSBjb25zdCB7IHJldHVybiBoYXNO
b2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhKTsgfQogICAgIHZvaWQgc2V0SGFz
RXZlbnRUYXJnZXREYXRhKGJvb2wgZmxhZykgeyBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZl
bnRUYXJnZXREYXRhLCBmbGFnKTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0NvbnRl
bnRFZGl0YWJsZSgpOwotICAgIGJvb2wgaXNDb250ZW50UmljaGx5RWRpdGFibGUoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBp
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBpbnNwZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNGM1
ZmI4NTRjODhmYjQ0OTkwMjNiZTA3NzI2NjUxYzg0MGIxZGQzLi45ZDkyZTU4NDdkMTA5NDIwYWRh
YjdkNWNhZDAyNmUxYzNiOGRiNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0zNTQzLDE2ICszNTQzLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2
ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAgICAgICAg
IGtleWRvd24tPnByZXZlbnREZWZhdWx0KCk7CiAgICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1l
bnQpOwogCi0gICAgYXV0byBzaG91bGRNYXRjaEZvY3VzVmlzaWJsZSA9IFtpbml0aWFsS2V5RXZl
bnQsIGtleWRvd25dKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVt
ZW50LmZvY3VzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHNldEhh
c0ZvY3VzVmlzaWJsZUlmTmVlZGVkID0gW2luaXRpYWxLZXlFdmVudCwga2V5ZG93bl0oRWxlbWVu
dCYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWVsZW1lbnQuZm9jdXNlZCgpIHx8IGVsZW1lbnQu
aGFzRm9jdXNWaXNpYmxlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gSWYg
dGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHBhZ2UgdmlhIHRoZSBrZXlib2FyZCwgdGhlIGN1
cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgc2hvdWxkIG1hdGNoIDpmb2N1cy12aXNpYmxlLgogICAg
ICAgICAvLyBKdXN0IHR5cGluZyBhIG1vZGlmaWVyIGtleSBpcyBub3QgY29uc2lkZXJlZCB1c2Vy
IGludGVyYWN0aW9uIHdpdGggdGhlIHBhZ2UsIGJ1dCBTaGlmdCArIGEgKG9yIENhcHMgTG9jayAr
IGEpIGlzIGNvbnNpZGVyZWQgYW4gaW50ZXJhY3Rpb24uCi0gICAgICAgIHJldHVybiBrZXlkb3du
LT5tb2RpZmllcktleXMoKS5pc0VtcHR5KCkgfHwgKChrZXlkb3duLT5zaGlmdEtleSgpIHx8IGtl
eWRvd24tPmNhcHNMb2NrS2V5KCkpICYmICFpbml0aWFsS2V5RXZlbnQudGV4dCgpLmlzRW1wdHko
KSk7CisgICAgICAgIGVsZW1lbnQuc2V0SGFzRm9jdXNWaXNpYmxlKGtleWRvd24tPm1vZGlmaWVy
S2V5cygpLmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkgfHwga2V5ZG93bi0+Y2Fw
c0xvY2tLZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNFbXB0eSgpKSk7CiAgICAg
fTsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBmb3JtIGNvbnRyb2xzIGFu
ZCBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyNTA3NSku
Ci0gICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxl
KCplbGVtZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQoKmVsZW1lbnQpOwog
CiAgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5
RG93bikgewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtleWRvd24pOwpAQCAtMzU5
OSwxMiArMzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25z
dCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAgIC8vIEZvY3VzIG1h
eSBoYXZlIGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNvIHJlZmV0Y2ggZWxlbWVu
dC4KICAgICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFrZSBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0aGUga2V5cHJlc3MgaGFw
cGVuZWQgb24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFrZXlkb3duUmVzdWx0KSB7
Ci0gICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxzZSk7CiAgICAgICAgIGVs
ZW1lbnQgPSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2ZyYW1lLmRvY3VtZW50KCkp
OwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0gY29udHJvbHMgYW5kIGNv
bnRlbnRlZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMjI1MDc1KS4KLSAg
ICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxl
KCplbGVtZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVlZGVkKCplbGVtZW50
KTsKICAgICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5UHJlc3NFdmVudCA9IGlu
aXRpYWxLZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDBkZWQ0M2Q3
MDdiNDIyMzVjZTg0OWIzMjZhMzdkM2I5ZjgwZjQ5YTYuLmM4N2E3YjJlNGQzZjA2NTU3OWNmNWQz
Njk1ZGQ0OTk5MDhhNjdiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIxLTA0LTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFtzZWxlY3RvcnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFu
IGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUt
MDIxLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5j
b20+CiAKICAgICAgICAgQ3JlYXRlIGEgY29udGFpbmluZyBibG9jayB3aGVuIHJlbGV2YW50IHBy
b3BlcnRpZXMgYXJlIHNldCBpbiB0aGUgY3VycmVudCBlbGVtZW50IHdpbGwtY2hhbmdlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9z
ZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUt
MDIxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUyOWM2OTJiYTg4YWIzNTA3Y2E3ZjZiMjE0
MjQ1ZDEzYjZkMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB1c2luZyBhIG1v
ZGlmaWVyIGtleSBkb2VzIG5vdCBtYWtlIHRoZSBlbGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZv
Y3VzLXZpc2libGUuCitJZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBhIHJl
ZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuCitQcmVzcyB0
aGUgQ3RybCBrZXkuCitJZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3JlZW4gb3V0bGluZSBhbmQg
aGFzIG5vdCBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBTVUNDRVNT
LgorRm9jdXNlZAorCitQQVNTICI6Zm9jdXMtdmlzaWJsZSIgc2hvdWxkIGJlIGEgdmFsaWQgc2Vs
ZWN0b3IKK1BBU1MgQ3RybCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1lbnQgdG8gc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVj
dG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMmRmNmEzNTAwMzg5MGVl
MDYyOWZkOGZjMjc3OTdjYjEwMTNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJs
ZS0wMjEuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04IiAvPgorPHRpdGxlPkNTUyBUZXN0IChTZWxlY3RvcnMpOiBNb2RpZmllciBrZXkg
ZG9lc24ndCBtYWtlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZTwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdvIENhc2Fzbm92YXMiIGhy
ZWY9Im1haWx0bzpyZWdvQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1cy12aXNpYmxlLXBzZXVk
byIgLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5nLXRlc3Rjb21tb24uanMiPjwvc2NyaXB0PgorPHN0
eWxlPgorICAjd2FybmluZyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kOiBy
ZWQ7CisgIH0KKworICBAc3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKSB7Cisg
ICAgI2luc3RydWN0aW9ucyB7CisgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKworICAgICN3
YXJuaW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgfQorCisgIDpmb2N1cy12
aXNpYmxlIHsKKyAgICBvdXRsaW5lOiBzb2xpZCB0aGljayBncmVlbjsKKyAgfQorCisgIDpmb2N1
czpub3QoOmZvY3VzLXZpc2libGUpIHsKKyAgICBvdXRsaW5lOiBub25lOworICAgIGJhY2tncm91
bmQtY29sb3I6IHJlZDsKKyAgfQorPC9zdHlsZT4KKworVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHVz
aW5nIGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVsZW1lbnQgdG8gc3RvcCBtYXRj
aGluZyA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4uCis8b2wgaWQ9Imluc3RydWN0aW9ucyI+
CisgIDxsaT5JZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBhIHJlZCBiYWNr
Z3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuPC9saT4KKyAgPGxpPlBy
ZXNzIHRoZSBDdHJsIGtleS48L2xpPgorICA8bGk+SWYgdGhlIGVsZW1lbnQga2VlcHMgdGhlIGdy
ZWVuIG91dGxpbmUgYW5kIGhhcyBub3QgYSByZWQgYmFja2dyb3VuZCwgdGhlbiB0aGUgdGVzdCBy
ZXN1bHQgaXMgU1VDQ0VTUy48L2xpPgorPC9vbD4KKzxwIGlkPSJ3YXJuaW5nIj5Zb3VyIHVzZXIt
YWdlbnQgZG9lcyBub3Qgc3VwcG9ydCA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4gcHNldWRv
LWNsYXNzLCBwbGVhc2UgU0tJUCB0aGlzIHRlc3QuPC9wPgorCis8ZGl2IGlkPSJ0YXJnZXQiIHRh
YmluZGV4PSIwIj5Gb2N1c2VkPC9kaXY+Cis8c2NyaXB0PgorICAvLyBDaGVjayB0aGF0IDpmb2N1
cy12aXNpYmxlIGlzIHN1cHBvcnRlZC4KKyAgdGVzdF92YWxpZF9zZWxlY3RvcignOmZvY3VzLXZp
c2libGUnKTsKKworICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0YXJnZXQuYWRkRXZl
bnRMaXN0ZW5lcigiZm9jdXMiLCB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1
YWxzKGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5vdXRsaW5lQ29sb3IsICJyZ2IoMCwgMTI4LCAw
KSIsIGBvdXRsaW5lQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91
bGQgYmUgZ3JlZW5gKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIsIGBiYWNrZ3JvdW5kQ29s
b3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQgTk9UIGJlIHJlZGAp
OworCisgICAgICBjb25zdCBjdHJsX2tleSA9ICdcdUUwMDknOworICAgICAgdGVzdF9kcml2ZXIu
c2VuZF9rZXlzKHRhcmdldCwgY3RybF9rZXkpOworICAgIH0pKTsKKworICAgIHRhcmdldC5hZGRF
dmVudExpc3RlbmVyKCJrZXl1cCIsIHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgICAgYXNz
ZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkub3V0bGluZUNvbG9yLCAicmdiKDAs
IDEyOCwgMCkiLCBgb3V0bGluZUNvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5p
ZH0gc2hvdWxkIGJlIGdyZWVuYCk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhnZXRDb21wdXRl
ZFN0eWxlKHRhcmdldCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCkiLCBgYmFja2dy
b3VuZENvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5pZH0gc2hvdWxkIE5PVCBi
ZSByZWRgKTsKKyAgICB9KSk7CisKKyAgfSwgIkN0cmwga2V5IGRvZXNuJ3QgbWFrZSBhbiBlbGVt
ZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUiKTsKKworICB0YXJnZXQuZm9jdXMo
KTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427136</attachid>
            <date>2021-04-27 05:21:52 -0700</date>
            <delta_ts>2021-04-27 13:43:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210427142150.patch</filename>
            <type>text/plain</type>
            <size>14025</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2NDZlNjFhZmE1Mzcy
ODVmOWM2MjM0MThkZDliZGI5NGZiMWVhNi4uYzIzYTVmODllNTM0MTA0OGYzY2U3NjRmYWMyZTI4
NTRjMWJmMTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSB1c2VkIGEgbW9kaWZpZXIga2V5IG9uIGEgZWxlbWVudCB0aGF0
IHdhcyBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZSwgd2Ugc3RvcHBlZCBtYXRjaGluZyA6Zm9jdXMt
dmlzaWJsZS4KKyAgICAgICAgVGhhdCB3YXMgd3JvbmcsIHdlIHNob3VsZG4ndCBqdXN0IHN0YXJ0
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgdXNlZCBidXQg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2hlcyBmaXhlZCB0
aGF0IGJ1dCBhdm9pZGluZyBkb2luZyBhbnkgd29yayBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gdGhlIHVzZXIgdHlwZSBhIGtleS4KKworICAg
ICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
Zm9jdXMtdmlzaWJsZS0wMjEuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKTog
SGVscGVyIG1ldGhvZCBmb3IgaW5wdXRzIGFuZCBjb250ZW50IGVkaXRhYmxlIGVsZW1lbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Rm9jdXMpOiBVc2UgdGhlIG5ldyBoZWxwZXIg
bWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxlKTog
QWRkIGFzc2VydHMgdG8gYXZvaWQgc2V0dGluZy91bnNldHRpbmcgOmZvY3VzLXZpc2libGUgZmxh
ZyB3cm9uZ2x5LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmlzQ29udGVudEVkaXRhYmxlIGNvbnN0KTogSnVzdCBtYXJrIGFzIGNvbnN0LgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUgY29uc3QpOiBEaXR0by4K
KyAgICAgICAgKiBkb20vTm9kZS5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQp
OiBEb24ndCBkbyBhbnl0aGluZyByZWdhcmRpbmcgOmZvY3VzLXZpc2libGUgZmxhZyBpZiB0aGUg
ZWxlbWVudCBhbHJlYWR5IG1hdGNoZXMgOmZvY3VzLXZpc2libGUuCisKIDIwMjEtMDQtMjYgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI3NjI2NCk6IFJlcHJvZHVjaWJsZSBjcmFzaCBpbiBXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6Y2xlYXJGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY0ZDA1NDA0
YTM5NjVjYWY0NWEwNjNkNTJhNWEwZTk0NzkxNzMxYWYuLjZmYjdhNWM1MmFhZTgzZmY0MzZmYWM1
YmM1ZmM1YzFiZjM0ODdlYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTc0NSw2ICs3NDUs
MTIgQEAgdm9pZCBFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sIHBhdXNlLCBTdHls
ZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGEKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIHNo
b3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9y
bSBpbnB1dHMgYW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxl
IHdoZW4gZm9jdXNlZC4KKyAgICByZXR1cm4gZWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGVsZW1l
bnQuaXNDb250ZW50RWRpdGFibGUoKTsKK30KKwogdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29s
IGZsYWcsIEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogewogICAgIGlmIChmbGFnID09IGZv
Y3VzZWQoKSkKQEAgLTc2NCw4ICs3NzAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldEZvY3VzKGJvb2wg
ZmxhZywgRm9jdXNWaXNpYmlsaXR5IHZpc2liaWxpdHkpCiAgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNvbXBv
c2VkVHJlZSgpKQogICAgICAgICBlbGVtZW50LT5zZXRIYXNGb2N1c1dpdGhpbihmbGFnKTsKIAot
ICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9ybSBpbnB1dHMg
YW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxlIHdoZW4gZm9j
dXNlZC4KLSAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmxhZyAmJiAodmlzaWJpbGl0eSA9PSBGb2N1
c1Zpc2liaWxpdHk6OlZpc2libGUgfHwgaXNUZXh0RmllbGQoKSB8fCBpc0NvbnRlbnRFZGl0YWJs
ZSgpKSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9j
dXNWaXNpYmlsaXR5OjpWaXNpYmxlIHx8IHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVu
Rm9jdXNlZCgqdGhpcykpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2libGUo
Ym9vbCBmbGFnKQpAQCAtNzczLDYgKzc3OCwxMyBAQCB2b2lkIEVsZW1lbnQ6OnNldEhhc0ZvY3Vz
VmlzaWJsZShib29sIGZsYWcpCiAgICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkuZm9jdXNW
aXNpYmxlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIGlmIChmbGFnKQorICAgICAgICBBU1NFUlQoaXNVc2VyQWN0aW9uRWxlbWVudEZvY3VzZWQo
KSk7CisgICAgaWYgKHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZCgqdGhp
cykpCisgICAgICAgIEFTU0VSVChmbGFnKTsKKyNlbmRpZgorCiAgICAgaWYgKGhhc0ZvY3VzVmlz
aWJsZSgpID09IGZsYWcpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhm
MGY1NDM1MjJmOGQ5YzU0NDE5MTMwOGRhZWY3YmRiY2Q1MjBhMWIuLmU0MDgyNjk0MDIzYzhhNWIw
ZDM3M2ZmNGM3NDFmN2M0ZmUwMjgxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTczMiwxMiArNzMy
LDEyIEBAIGNvbnN0IEF0b21TdHJpbmcmIE5vZGU6Om5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAg
cmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKQor
Ym9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1
dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsRG9lc05vdEFmZmVjdEVkaXRhYmlsaXR5LCBTaG91
bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSAhPSBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJv
b2wgTm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRS
aWNobHlFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShV
c2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSwgU2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0
ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmM2E3
YWI0NGU5N2U3NzlkZjNjYjM2NjA4MmU3Y2JhOTQ0MDM0ZmQ5Li5kZGE2ZjhhYzJhY2FlOTc3N2Fh
ZTk0ODdlNzZjN2JiOThmOTVmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMxNyw4ICszMTcsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBoYXNFdmVudFRhcmdldERhdGEoKSBjb25zdCB7IHJldHVybiBoYXNO
b2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhKTsgfQogICAgIHZvaWQgc2V0SGFz
RXZlbnRUYXJnZXREYXRhKGJvb2wgZmxhZykgeyBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZl
bnRUYXJnZXREYXRhLCBmbGFnKTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0NvbnRl
bnRFZGl0YWJsZSgpOwotICAgIGJvb2wgaXNDb250ZW50UmljaGx5RWRpdGFibGUoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBp
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBpbnNwZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNGM1
ZmI4NTRjODhmYjQ0OTkwMjNiZTA3NzI2NjUxYzg0MGIxZGQzLi45ZDkyZTU4NDdkMTA5NDIwYWRh
YjdkNWNhZDAyNmUxYzNiOGRiNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CkBAIC0zNTQzLDE2ICszNTQzLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2
ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAgICAgICAg
IGtleWRvd24tPnByZXZlbnREZWZhdWx0KCk7CiAgICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1l
bnQpOwogCi0gICAgYXV0byBzaG91bGRNYXRjaEZvY3VzVmlzaWJsZSA9IFtpbml0aWFsS2V5RXZl
bnQsIGtleWRvd25dKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVt
ZW50LmZvY3VzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHNldEhh
c0ZvY3VzVmlzaWJsZUlmTmVlZGVkID0gW2luaXRpYWxLZXlFdmVudCwga2V5ZG93bl0oRWxlbWVu
dCYgZWxlbWVudCkgeworICAgICAgICBpZiAoIWVsZW1lbnQuZm9jdXNlZCgpIHx8IGVsZW1lbnQu
aGFzRm9jdXNWaXNpYmxlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gSWYg
dGhlIHVzZXIgaW50ZXJhY3RzIHdpdGggdGhlIHBhZ2UgdmlhIHRoZSBrZXlib2FyZCwgdGhlIGN1
cnJlbnRseSBmb2N1c2VkIGVsZW1lbnQgc2hvdWxkIG1hdGNoIDpmb2N1cy12aXNpYmxlLgogICAg
ICAgICAvLyBKdXN0IHR5cGluZyBhIG1vZGlmaWVyIGtleSBpcyBub3QgY29uc2lkZXJlZCB1c2Vy
IGludGVyYWN0aW9uIHdpdGggdGhlIHBhZ2UsIGJ1dCBTaGlmdCArIGEgKG9yIENhcHMgTG9jayAr
IGEpIGlzIGNvbnNpZGVyZWQgYW4gaW50ZXJhY3Rpb24uCi0gICAgICAgIHJldHVybiBrZXlkb3du
LT5tb2RpZmllcktleXMoKS5pc0VtcHR5KCkgfHwgKChrZXlkb3duLT5zaGlmdEtleSgpIHx8IGtl
eWRvd24tPmNhcHNMb2NrS2V5KCkpICYmICFpbml0aWFsS2V5RXZlbnQudGV4dCgpLmlzRW1wdHko
KSk7CisgICAgICAgIGVsZW1lbnQuc2V0SGFzRm9jdXNWaXNpYmxlKGtleWRvd24tPm1vZGlmaWVy
S2V5cygpLmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkgfHwga2V5ZG93bi0+Y2Fw
c0xvY2tLZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNFbXB0eSgpKSk7CiAgICAg
fTsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBmb3JtIGNvbnRyb2xzIGFu
ZCBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyNTA3NSku
Ci0gICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxl
KCplbGVtZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQoKmVsZW1lbnQpOwog
CiAgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5
RG93bikgewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtleWRvd24pOwpAQCAtMzU5
OSwxMiArMzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25z
dCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAgIC8vIEZvY3VzIG1h
eSBoYXZlIGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNvIHJlZmV0Y2ggZWxlbWVu
dC4KICAgICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFrZSBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0aGUga2V5cHJlc3MgaGFw
cGVuZWQgb24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFrZXlkb3duUmVzdWx0KSB7
Ci0gICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxzZSk7CiAgICAgICAgIGVs
ZW1lbnQgPSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2ZyYW1lLmRvY3VtZW50KCkp
OwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0gY29udHJvbHMgYW5kIGNv
bnRlbnRlZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMjI1MDc1KS4KLSAg
ICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxl
KCplbGVtZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVlZGVkKCplbGVtZW50
KTsKICAgICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5UHJlc3NFdmVudCA9IGlu
aXRpYWxLZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYTlmNmRlNTk5MTA1YjA1NzY5OWQ1NTM5MDJiNzNlZTQy
YzMyNDI1Li4yYjMzN2VlNWI5OTAzYWFlN2QyNTY2MmQ0ZTJjODM2YjllZWViM2RlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMjcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdv
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdG9yc10gVXNpbmcgYSBtb2RpZmllciBrZXkg
b24gYW4gZWxlbWVudCBtYWtlcyBpdCBzdG9wIG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgorCiAyMDIxLTA0LTI2ICBNYW51ZWwg
UmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyNzYyNjQpOiBSZXByb2R1Y2libGUgY3Jhc2ggaW4gV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1l
bnRTZXQ6OmNsZWFyRmxhZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDBkZWQ0
M2Q3MDdiNDIyMzVjZTg0OWIzMjZhMzdkM2I5ZjgwZjQ5YTYuLmM4N2E3YjJlNGQzZjA2NTU3OWNm
NWQzNjk1ZGQ0OTk5MDhhNjdiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDIxLTA0LTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3RvcnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9u
IGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2li
bGUtMDIxLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgY29udGFpbmluZyBibG9jayB3aGVuIHJlbGV2YW50
IHByb3BlcnRpZXMgYXJlIHNldCBpbiB0aGUgY3VycmVudCBlbGVtZW50IHdpbGwtY2hhbmdlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2li
bGUtMDIxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUyOWM2OTJiYTg4YWIzNTA3Y2E3ZjZi
MjE0MjQ1ZDEzYjZkMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB1c2luZyBh
IG1vZGlmaWVyIGtleSBkb2VzIG5vdCBtYWtlIHRoZSBlbGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcg
OmZvY3VzLXZpc2libGUuCitJZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBh
IHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuCitQcmVz
cyB0aGUgQ3RybCBrZXkuCitJZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3JlZW4gb3V0bGluZSBh
bmQgaGFzIG5vdCBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBTVUND
RVNTLgorRm9jdXNlZAorCitQQVNTICI6Zm9jdXMtdmlzaWJsZSIgc2hvdWxkIGJlIGEgdmFsaWQg
c2VsZWN0b3IKK1BBU1MgQ3RybCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1lbnQgdG8gc3RvcCBt
YXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEu
aHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3Nl
bGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMmRmNmEzNTAwMzg5
MGVlMDYyOWZkOGZjMjc3OTdjYjEwMTNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlz
aWJsZS0wMjEuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPkNTUyBUZXN0IChTZWxlY3RvcnMpOiBNb2RpZmllciBr
ZXkgZG9lc24ndCBtYWtlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZTwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdvIENhc2Fzbm92YXMi
IGhyZWY9Im1haWx0bzpyZWdvQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1cy12aXNpYmxlLXBz
ZXVkbyIgLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5nLXRlc3Rjb21tb24uanMiPjwvc2NyaXB0Pgor
PHN0eWxlPgorICAjd2FybmluZyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5k
OiByZWQ7CisgIH0KKworICBAc3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKSB7
CisgICAgI2luc3RydWN0aW9ucyB7CisgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKworICAg
ICN3YXJuaW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgfQorCisgIDpmb2N1
cy12aXNpYmxlIHsKKyAgICBvdXRsaW5lOiBzb2xpZCB0aGljayBncmVlbjsKKyAgfQorCisgIDpm
b2N1czpub3QoOmZvY3VzLXZpc2libGUpIHsKKyAgICBvdXRsaW5lOiBub25lOworICAgIGJhY2tn
cm91bmQtY29sb3I6IHJlZDsKKyAgfQorPC9zdHlsZT4KKworVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IHVzaW5nIGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVsZW1lbnQgdG8gc3RvcCBt
YXRjaGluZyA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4uCis8b2wgaWQ9Imluc3RydWN0aW9u
cyI+CisgIDxsaT5JZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBhIHJlZCBi
YWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuPC9saT4KKyAgPGxp
PlByZXNzIHRoZSBDdHJsIGtleS48L2xpPgorICA8bGk+SWYgdGhlIGVsZW1lbnQga2VlcHMgdGhl
IGdyZWVuIG91dGxpbmUgYW5kIGhhcyBub3QgYSByZWQgYmFja2dyb3VuZCwgdGhlbiB0aGUgdGVz
dCByZXN1bHQgaXMgU1VDQ0VTUy48L2xpPgorPC9vbD4KKzxwIGlkPSJ3YXJuaW5nIj5Zb3VyIHVz
ZXItYWdlbnQgZG9lcyBub3Qgc3VwcG9ydCA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4gcHNl
dWRvLWNsYXNzLCBwbGVhc2UgU0tJUCB0aGlzIHRlc3QuPC9wPgorCis8ZGl2IGlkPSJ0YXJnZXQi
IHRhYmluZGV4PSIwIj5Gb2N1c2VkPC9kaXY+Cis8c2NyaXB0PgorICAvLyBDaGVjayB0aGF0IDpm
b2N1cy12aXNpYmxlIGlzIHN1cHBvcnRlZC4KKyAgdGVzdF92YWxpZF9zZWxlY3RvcignOmZvY3Vz
LXZpc2libGUnKTsKKworICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0YXJnZXQuYWRk
RXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5vdXRsaW5lQ29sb3IsICJyZ2IoMCwgMTI4
LCAwKSIsIGBvdXRsaW5lQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBz
aG91bGQgYmUgZ3JlZW5gKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIsIGBiYWNrZ3JvdW5k
Q29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQgTk9UIGJlIHJl
ZGApOworCisgICAgICBjb25zdCBjdHJsX2tleSA9ICdcdUUwMDknOworICAgICAgdGVzdF9kcml2
ZXIuc2VuZF9rZXlzKHRhcmdldCwgY3RybF9rZXkpOworICAgIH0pKTsKKworICAgIHRhcmdldC5h
ZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgICAg
YXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkub3V0bGluZUNvbG9yLCAicmdi
KDAsIDEyOCwgMCkiLCBgb3V0bGluZUNvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3Rhcmdl
dC5pZH0gc2hvdWxkIGJlIGdyZWVuYCk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhnZXRDb21w
dXRlZFN0eWxlKHRhcmdldCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCkiLCBgYmFj
a2dyb3VuZENvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5pZH0gc2hvdWxkIE5P
VCBiZSByZWRgKTsKKyAgICB9KSk7CisKKyAgfSwgIkN0cmwga2V5IGRvZXNuJ3QgbWFrZSBhbiBl
bGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUiKTsKKworICB0YXJnZXQuZm9j
dXMoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAyZjEyOWIxMmY1NDcyZjUzMzQ1OTc5ZDhiY2MwZDFkMDVjZmVmZmVmLi41NTMwZTBk
NTc3YmVlYTEwM2YxYmJkYWYyZjJmMDY2YTIwNjUxODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI4Miw2ICszMjgyLDcgQEAgd2Via2l0Lm9yZy9i
LzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9j
dXMtdmlzaWJsZS0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDEyLmh0bWwgWyBTa2lwIF0KIHdl
YmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2Vs
ZWN0b3JzL2ZvY3VzLXZpc2libGUtMDEzLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDk3
MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZp
c2libGUtMDE5Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtc2NyaXB0LWZvY3VzLTAwNC5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMjA5NzM0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLXNjcmlwdC1mb2N1cy0wMDUuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS1zY3JpcHQtZm9jdXMtMDEyLmh0bWwgWyBTa2lw
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427190</attachid>
            <date>2021-04-27 13:43:28 -0700</date>
            <delta_ts>2021-04-27 22:25:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210427224326.patch</filename>
            <type>text/plain</type>
            <size>14019</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2NDZlNjFhZmE1Mzcy
ODVmOWM2MjM0MThkZDliZGI5NGZiMWVhNi4uYzIzYTVmODllNTM0MTA0OGYzY2U3NjRmYWMyZTI4
NTRjMWJmMTU0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSB1c2VkIGEgbW9kaWZpZXIga2V5IG9uIGEgZWxlbWVudCB0aGF0
IHdhcyBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZSwgd2Ugc3RvcHBlZCBtYXRjaGluZyA6Zm9jdXMt
dmlzaWJsZS4KKyAgICAgICAgVGhhdCB3YXMgd3JvbmcsIHdlIHNob3VsZG4ndCBqdXN0IHN0YXJ0
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgdXNlZCBidXQg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2hlcyBmaXhlZCB0
aGF0IGJ1dCBhdm9pZGluZyBkb2luZyBhbnkgd29yayBpZiB0aGUgZWxlbWVudCBpcyBhbHJlYWR5
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gdGhlIHVzZXIgdHlwZSBhIGtleS4KKworICAg
ICAgICBUZXN0OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
Zm9jdXMtdmlzaWJsZS0wMjEuaHRtbAorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6c2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKTog
SGVscGVyIG1ldGhvZCBmb3IgaW5wdXRzIGFuZCBjb250ZW50IGVkaXRhYmxlIGVsZW1lbnRzLgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0Rm9jdXMpOiBVc2UgdGhlIG5ldyBoZWxwZXIg
bWV0aG9kLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxlKTog
QWRkIGFzc2VydHMgdG8gYXZvaWQgc2V0dGluZy91bnNldHRpbmcgOmZvY3VzLXZpc2libGUgZmxh
ZyB3cm9uZ2x5LgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OmlzQ29udGVudEVkaXRhYmxlIGNvbnN0KTogSnVzdCBtYXJrIGFzIGNvbnN0LgorICAgICAg
ICAoV2ViQ29yZTo6Tm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUgY29uc3QpOiBEaXR0by4K
KyAgICAgICAgKiBkb20vTm9kZS5oOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmludGVybmFsS2V5RXZlbnQp
OiBEb24ndCBkbyBhbnl0aGluZyByZWdhcmRpbmcgOmZvY3VzLXZpc2libGUgZmxhZyBpZiB0aGUg
ZWxlbWVudCBhbHJlYWR5IG1hdGNoZXMgOmZvY3VzLXZpc2libGUuCisKIDIwMjEtMDQtMjYgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTiAocjI3NjI2NCk6IFJlcHJvZHVjaWJsZSBjcmFzaCBpbiBXZWJDb3JlOjpVc2VyQWN0aW9u
RWxlbWVudFNldDo6Y2xlYXJGbGFncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDY0ZDA1NDA0
YTM5NjVjYWY0NWEwNjNkNTJhNWEwZTk0NzkxNzMxYWYuLjBmZGEyMDgwZTM1YzQ5OWI5YjIxYzYz
ZWQ4NzkyZGM2ZGUzNzEwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTc0NSw2ICs3NDUs
MTIgQEAgdm9pZCBFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBmbGFnLCBib29sIHBhdXNlLCBTdHls
ZTo6SW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGEKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIHNo
b3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZChjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQoreworICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9y
bSBpbnB1dHMgYW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxl
IHdoZW4gZm9jdXNlZC4KKyAgICByZXR1cm4gZWxlbWVudC5pc1RleHRGaWVsZCgpIHx8IGVsZW1l
bnQuaXNDb250ZW50RWRpdGFibGUoKTsKK30KKwogdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29s
IGZsYWcsIEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogewogICAgIGlmIChmbGFnID09IGZv
Y3VzZWQoKSkKQEAgLTc2NCw4ICs3NzAsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldEZvY3VzKGJvb2wg
ZmxhZywgRm9jdXNWaXNpYmlsaXR5IHZpc2liaWxpdHkpCiAgICAgZm9yIChhdXRvKiBlbGVtZW50
ID0gdGhpczsgZWxlbWVudDsgZWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnRJbkNvbXBv
c2VkVHJlZSgpKQogICAgICAgICBlbGVtZW50LT5zZXRIYXNGb2N1c1dpdGhpbihmbGFnKTsKIAot
ICAgIC8vIEVsZW1lbnRzIHRoYXQgc3VwcG9ydCBrZXlib2FyZCBpbnB1dCAoZm9ybSBpbnB1dHMg
YW5kIGNvbnRlbnRlZGl0YWJsZSkgYWx3YXlzIG1hdGNoIDpmb2N1cy12aXNpYmxlIHdoZW4gZm9j
dXNlZC4KLSAgICBzZXRIYXNGb2N1c1Zpc2libGUoZmxhZyAmJiAodmlzaWJpbGl0eSA9PSBGb2N1
c1Zpc2liaWxpdHk6OlZpc2libGUgfHwgaXNUZXh0RmllbGQoKSB8fCBpc0NvbnRlbnRFZGl0YWJs
ZSgpKSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9j
dXNWaXNpYmlsaXR5OjpWaXNpYmxlIHx8IHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVu
Rm9jdXNlZCgqdGhpcykpKTsKIH0KIAogdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2libGUo
Ym9vbCBmbGFnKQpAQCAtNzczLDYgKzc3OCwxMyBAQCB2b2lkIEVsZW1lbnQ6OnNldEhhc0ZvY3Vz
VmlzaWJsZShib29sIGZsYWcpCiAgICAgaWYgKCFkb2N1bWVudCgpLnNldHRpbmdzKCkuZm9jdXNW
aXNpYmxlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAor
ICAgIGlmIChmbGFnKQorICAgICAgICBBU1NFUlQoZm9jdXNlZCgpKTsKKyAgICBpZiAoZm9jdXNl
ZCgpICYmIHNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZCgqdGhpcykpCisg
ICAgICAgIEFTU0VSVChmbGFnKTsKKyNlbmRpZgorCiAgICAgaWYgKGhhc0ZvY3VzVmlzaWJsZSgp
ID09IGZsYWcpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhmMGY1NDM1
MjJmOGQ5YzU0NDE5MTMwOGRhZWY3YmRiY2Q1MjBhMWIuLmU0MDgyNjk0MDIzYzhhNWIwZDM3M2Zm
NGM3NDFmN2M0ZmUwMjgxZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTczMiwxMiArNzMyLDEyIEBA
IGNvbnN0IEF0b21TdHJpbmcmIE5vZGU6Om5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAgcmV0dXJu
IG51bGxBdG9tKCk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKQorYm9vbCBO
b2RlOjppc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0
YWJpbGl0eShVc2VyU2VsZWN0QWxsRG9lc05vdEFmZmVjdEVkaXRhYmlsaXR5LCBTaG91bGRVcGRh
dGVTdHlsZTo6VXBkYXRlKSAhPSBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJvb2wgTm9k
ZTo6aXNDb250ZW50UmljaGx5RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRSaWNobHlF
ZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2Vs
ZWN0QWxsSXNBbHdheXNOb25FZGl0YWJsZSwgU2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0ZSkgPT0g
RWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNobHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmM2E3YWI0NGU5
N2U3NzlkZjNjYjM2NjA4MmU3Y2JhOTQ0MDM0ZmQ5Li5kZGE2ZjhhYzJhY2FlOTc3N2FhZTk0ODdl
NzZjN2JiOThmOTVmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmgKQEAgLTMxNyw4ICszMTcsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBoYXNFdmVudFRhcmdldERhdGEoKSBjb25zdCB7IHJldHVybiBoYXNOb2RlRmxh
ZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhKTsgfQogICAgIHZvaWQgc2V0SGFzRXZlbnRU
YXJnZXREYXRhKGJvb2wgZmxhZykgeyBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJn
ZXREYXRhLCBmbGFnKTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0NvbnRlbnRFZGl0
YWJsZSgpOwotICAgIGJvb2wgaXNDb250ZW50UmljaGx5RWRpdGFibGUoKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGlzQ29udGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0NvbnRl
bnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnNw
ZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNGM1ZmI4NTRj
ODhmYjQ0OTkwMjNiZTA3NzI2NjUxYzg0MGIxZGQzLi45ZDkyZTU4NDdkMTA5NDIwYWRhYjdkNWNh
ZDAyNmUxYzNiOGRiNjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0z
NTQzLDE2ICszNTQzLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNv
bnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAgICAgICAgIGtleWRv
d24tPnByZXZlbnREZWZhdWx0KCk7CiAgICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1lbnQpOwog
Ci0gICAgYXV0byBzaG91bGRNYXRjaEZvY3VzVmlzaWJsZSA9IFtpbml0aWFsS2V5RXZlbnQsIGtl
eWRvd25dKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVtZW50LmZv
Y3VzZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBhdXRvIHNldEhhc0ZvY3Vz
VmlzaWJsZUlmTmVlZGVkID0gW2luaXRpYWxLZXlFdmVudCwga2V5ZG93bl0oRWxlbWVudCYgZWxl
bWVudCkgeworICAgICAgICBpZiAoIWVsZW1lbnQuZm9jdXNlZCgpIHx8IGVsZW1lbnQuaGFzRm9j
dXNWaXNpYmxlKCkpCisgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gSWYgdGhlIHVz
ZXIgaW50ZXJhY3RzIHdpdGggdGhlIHBhZ2UgdmlhIHRoZSBrZXlib2FyZCwgdGhlIGN1cnJlbnRs
eSBmb2N1c2VkIGVsZW1lbnQgc2hvdWxkIG1hdGNoIDpmb2N1cy12aXNpYmxlLgogICAgICAgICAv
LyBKdXN0IHR5cGluZyBhIG1vZGlmaWVyIGtleSBpcyBub3QgY29uc2lkZXJlZCB1c2VyIGludGVy
YWN0aW9uIHdpdGggdGhlIHBhZ2UsIGJ1dCBTaGlmdCArIGEgKG9yIENhcHMgTG9jayArIGEpIGlz
IGNvbnNpZGVyZWQgYW4gaW50ZXJhY3Rpb24uCi0gICAgICAgIHJldHVybiBrZXlkb3duLT5tb2Rp
ZmllcktleXMoKS5pc0VtcHR5KCkgfHwgKChrZXlkb3duLT5zaGlmdEtleSgpIHx8IGtleWRvd24t
PmNhcHNMb2NrS2V5KCkpICYmICFpbml0aWFsS2V5RXZlbnQudGV4dCgpLmlzRW1wdHkoKSk7Cisg
ICAgICAgIGVsZW1lbnQuc2V0SGFzRm9jdXNWaXNpYmxlKGtleWRvd24tPm1vZGlmaWVyS2V5cygp
LmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkgfHwga2V5ZG93bi0+Y2Fwc0xvY2tL
ZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNFbXB0eSgpKSk7CiAgICAgfTsKLSAg
ICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBmb3JtIGNvbnRyb2xzIGFuZCBjb250
ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIyNTA3NSkuCi0gICAg
ZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxlKCplbGVt
ZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQoKmVsZW1lbnQpOwogCiAgICAg
aWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6UmF3S2V5RG93bikg
ewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtleWRvd24pOwpAQCAtMzU5OSwxMiAr
MzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudChjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAgIC8vIEZvY3VzIG1heSBoYXZl
IGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNvIHJlZmV0Y2ggZWxlbWVudC4KICAg
ICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFrZSBiYWNrd2FyZCBjb21wYXRpYmls
aXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0aGUga2V5cHJlc3MgaGFwcGVuZWQg
b24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFrZXlkb3duUmVzdWx0KSB7Ci0gICAg
ICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxzZSk7CiAgICAgICAgIGVsZW1lbnQg
PSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2ZyYW1lLmRvY3VtZW50KCkpOwogICAg
ICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIC8v
IEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0gY29udHJvbHMgYW5kIGNvbnRlbnRl
ZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMjI1MDc1KS4KLSAgICAgICAg
ZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNWaXNpYmxlKCplbGVt
ZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVlZGVkKCplbGVtZW50KTsKICAg
ICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5UHJlc3NFdmVudCA9IGluaXRpYWxL
ZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCBjYTlmNmRlNTk5MTA1YjA1NzY5OWQ1NTM5MDJiNzNlZTQyYzMyNDI1
Li4yYjMzN2VlNWI5OTAzYWFlN2QyNTY2MmQ0ZTJjODM2YjllZWViM2RlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMjEtMDQtMjcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW3NlbGVjdG9yc10gVXNpbmcgYSBtb2RpZmllciBrZXkgb24gYW4g
ZWxlbWVudCBtYWtlcyBpdCBzdG9wIG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgorCiAyMDIxLTA0LTI2ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNzYy
NjQpOiBSZXByb2R1Y2libGUgY3Jhc2ggaW4gV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1lbnRTZXQ6
OmNsZWFyRmxhZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDBkZWQ0M2Q3MDdi
NDIyMzVjZTg0OWIzMjZhMzdkM2I5ZjgwZjQ5YTYuLmM4N2E3YjJlNGQzZjA2NTU3OWNmNWQzNjk1
ZGQ0OTk5MDhhNjdiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTA0LTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIFtzZWxlY3RvcnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVs
ZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIx
Lmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+
CiAKICAgICAgICAgQ3JlYXRlIGEgY29udGFpbmluZyBibG9jayB3aGVuIHJlbGV2YW50IHByb3Bl
cnRpZXMgYXJlIHNldCBpbiB0aGUgY3VycmVudCBlbGVtZW50IHdpbGwtY2hhbmdlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxl
Y3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIx
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUyOWM2OTJiYTg4YWIzNTA3Y2E3ZjZiMjE0MjQ1
ZDEzYjZkMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB1c2luZyBhIG1vZGlm
aWVyIGtleSBkb2VzIG5vdCBtYWtlIHRoZSBlbGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3Vz
LXZpc2libGUuCitJZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBhIHJlZCBi
YWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuCitQcmVzcyB0aGUg
Q3RybCBrZXkuCitJZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3JlZW4gb3V0bGluZSBhbmQgaGFz
IG5vdCBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBTVUNDRVNTLgor
Rm9jdXNlZAorCitQQVNTICI6Zm9jdXMtdmlzaWJsZSIgc2hvdWxkIGJlIGEgdmFsaWQgc2VsZWN0
b3IKK1BBU1MgQ3RybCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGlu
ZyA6Zm9jdXMtdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9y
cy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMmRmNmEzNTAwMzg5MGVlMDYy
OWZkOGZjMjc3OTdjYjEwMTNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0w
MjEuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04IiAvPgorPHRpdGxlPkNTUyBUZXN0IChTZWxlY3RvcnMpOiBNb2RpZmllciBrZXkgZG9l
c24ndCBtYWtlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZTwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdvIENhc2Fzbm92YXMiIGhyZWY9
Im1haWx0bzpyZWdvQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1cy12aXNpYmxlLXBzZXVkbyIg
Lz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5nLXRlc3Rjb21tb24uanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorICAjd2FybmluZyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNrZ3JvdW5kOiByZWQ7
CisgIH0KKworICBAc3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNpYmxlKSB7CisgICAg
I2luc3RydWN0aW9ucyB7CisgICAgICBkaXNwbGF5OiBub25lOworICAgIH0KKworICAgICN3YXJu
aW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgfQorCisgIDpmb2N1cy12aXNp
YmxlIHsKKyAgICBvdXRsaW5lOiBzb2xpZCB0aGljayBncmVlbjsKKyAgfQorCisgIDpmb2N1czpu
b3QoOmZvY3VzLXZpc2libGUpIHsKKyAgICBvdXRsaW5lOiBub25lOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHJlZDsKKyAgfQorPC9zdHlsZT4KKworVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHVzaW5n
IGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGlu
ZyA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4uCis8b2wgaWQ9Imluc3RydWN0aW9ucyI+Cisg
IDxsaT5JZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBhIHJlZCBiYWNrZ3Jv
dW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuPC9saT4KKyAgPGxpPlByZXNz
IHRoZSBDdHJsIGtleS48L2xpPgorICA8bGk+SWYgdGhlIGVsZW1lbnQga2VlcHMgdGhlIGdyZWVu
IG91dGxpbmUgYW5kIGhhcyBub3QgYSByZWQgYmFja2dyb3VuZCwgdGhlbiB0aGUgdGVzdCByZXN1
bHQgaXMgU1VDQ0VTUy48L2xpPgorPC9vbD4KKzxwIGlkPSJ3YXJuaW5nIj5Zb3VyIHVzZXItYWdl
bnQgZG9lcyBub3Qgc3VwcG9ydCA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4gcHNldWRvLWNs
YXNzLCBwbGVhc2UgU0tJUCB0aGlzIHRlc3QuPC9wPgorCis8ZGl2IGlkPSJ0YXJnZXQiIHRhYmlu
ZGV4PSIwIj5Gb2N1c2VkPC9kaXY+Cis8c2NyaXB0PgorICAvLyBDaGVjayB0aGF0IDpmb2N1cy12
aXNpYmxlIGlzIHN1cHBvcnRlZC4KKyAgdGVzdF92YWxpZF9zZWxlY3RvcignOmZvY3VzLXZpc2li
bGUnKTsKKworICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0YXJnZXQuYWRkRXZlbnRM
aXN0ZW5lcigiZm9jdXMiLCB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxz
KGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5vdXRsaW5lQ29sb3IsICJyZ2IoMCwgMTI4LCAwKSIs
IGBvdXRsaW5lQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQg
YmUgZ3JlZW5gKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFy
Z2V0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIsIGBiYWNrZ3JvdW5kQ29sb3Ig
Zm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQgTk9UIGJlIHJlZGApOwor
CisgICAgICBjb25zdCBjdHJsX2tleSA9ICdcdUUwMDknOworICAgICAgdGVzdF9kcml2ZXIuc2Vu
ZF9rZXlzKHRhcmdldCwgY3RybF9rZXkpOworICAgIH0pKTsKKworICAgIHRhcmdldC5hZGRFdmVu
dExpc3RlbmVyKCJrZXl1cCIsIHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4geworICAgICAgYXNzZXJ0
X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkub3V0bGluZUNvbG9yLCAicmdiKDAsIDEy
OCwgMCkiLCBgb3V0bGluZUNvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5pZH0g
c2hvdWxkIGJlIGdyZWVuYCk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhnZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCkiLCBgYmFja2dyb3Vu
ZENvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5pZH0gc2hvdWxkIE5PVCBiZSBy
ZWRgKTsKKyAgICB9KSk7CisKKyAgfSwgIkN0cmwga2V5IGRvZXNuJ3QgbWFrZSBhbiBlbGVtZW50
IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUiKTsKKworICB0YXJnZXQuZm9jdXMoKTsK
Kzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAyZjEyOWIxMmY1NDcyZjUzMzQ1OTc5ZDhiY2MwZDFkMDVjZmVmZmVmLi41NTMwZTBkNTc3YmVl
YTEwM2YxYmJkYWYyZjJmMDY2YTIwNjUxODg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI4Miw2ICszMjgyLDcgQEAgd2Via2l0Lm9yZy9iLzIwOTcz
NCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlz
aWJsZS0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDEyLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5v
cmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3Jz
L2ZvY3VzLXZpc2libGUtMDEzLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUt
MDE5Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtc2NyaXB0LWZvY3VzLTAwNC5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMjA5NzM0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLXNjcmlwdC1mb2N1cy0wMDUuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9z
ZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS1zY3JpcHQtZm9jdXMtMDEyLmh0bWwgWyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427238</attachid>
            <date>2021-04-27 22:25:06 -0700</date>
            <delta_ts>2021-04-28 00:57:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210428072505.patch</filename>
            <type>text/plain</type>
            <size>14031</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q2NDZlNjFhZmE1Mzcy
ODVmOWM2MjM0MThkZDliZGI5NGZiMWVhNi4uNDQ5NzMyNzJmYzNmNGViMTg1YWQ4OWQyZWM2Yjc3
ZmM3MjEzYjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2hlbiB3ZSB1c2VkIGEgbW9kaWZpZXIga2V5IG9uIGEgZWxlbWVudCB0aGF0
IHdhcyBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZSwgd2Ugc3RvcHBlZCBtYXRjaGluZyA6Zm9jdXMt
dmlzaWJsZS4KKyAgICAgICAgVGhhdCB3YXMgd3JvbmcsIHdlIHNob3VsZG4ndCBqdXN0IHN0YXJ0
IG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlIHdoZW4gYSBtb2RpZmllciBrZXkgaXMgdXNlZCBidXQg
bm90IHRoZSBvdGhlciB3YXkgYXJvdW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2hlcyBmaXhlZCB0
aGF0IHdpdGhvdXQgZG9pbmcgYW55IHdvcmsgaWYgdGhlIGVsZW1lbnQgaXMgYWxyZWFkeSBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZSB3aGVuIHRoZSB1c2VyIHR5cGUgYSBrZXkuCisKKyAgICAgICAg
VGVzdDogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3Vz
LXZpc2libGUtMDIxLmh0bWwKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OnNob3VsZEFsd2F5c0hhdmVGb2N1c1Zpc2libGVXaGVuRm9jdXNlZCk6IEhlbHBl
ciBtZXRob2QgZm9yIGlucHV0cyBhbmQgY29udGVudCBlZGl0YWJsZSBlbGVtZW50cy4KKyAgICAg
ICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEZvY3VzKTogVXNlIHRoZSBuZXcgaGVscGVyIG1ldGhv
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNldEhhc0ZvY3VzVmlzaWJsZSk6IEFkZCBh
c3NlcnRzIHRvIGF2b2lkIHNldHRpbmcvdW5zZXR0aW5nIDpmb2N1cy12aXNpYmxlIGZsYWcgd3Jv
bmdseS4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpp
c0NvbnRlbnRFZGl0YWJsZSBjb25zdCk6IEp1c3QgbWFyayBhcyBjb25zdC4KKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGU6OmlzQ29udGVudFJpY2hseUVkaXRhYmxlIGNvbnN0KTogRGl0dG8uCisgICAg
ICAgICogZG9tL05vZGUuaDogRGl0dG8uCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KTogRG9u
J3QgZG8gYW55dGhpbmcgcmVnYXJkaW5nIDpmb2N1cy12aXNpYmxlIGZsYWcgaWYgdGhlIGVsZW1l
bnQgYWxyZWFkeSBtYXRjaGVzIDpmb2N1cy12aXNpYmxlLgorCiAyMDIxLTA0LTI2ICBNYW51ZWwg
UmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KHIyNzYyNjQpOiBSZXByb2R1Y2libGUgY3Jhc2ggaW4gV2ViQ29yZTo6VXNlckFjdGlvbkVsZW1l
bnRTZXQ6OmNsZWFyRmxhZ3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA2NGQwNTQwNGEzOTY1
Y2FmNDVhMDYzZDUyYTVhMGU5NDc5MTczMWFmLi5lMDZmNjM1MzAyYmFkMTBhOWUyMzIwYjMzNTc5
ZmFjYjQ4MWQ4NDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC03NDUsNiArNzQ1LDEyIEBA
IHZvaWQgRWxlbWVudDo6c2V0QWN0aXZlKGJvb2wgZmxhZywgYm9vbCBwYXVzZSwgU3R5bGU6Oklu
dmFsaWRhdGlvblNjb3BlIGludmFsaWRhCiAgICAgfQogfQogCitzdGF0aWMgYm9vbCBzaG91bGRB
bHdheXNIYXZlRm9jdXNWaXNpYmxlV2hlbkZvY3VzZWQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkK
K3sKKyAgICAvLyBFbGVtZW50cyB0aGF0IHN1cHBvcnQga2V5Ym9hcmQgaW5wdXQgKGZvcm0gaW5w
dXRzIGFuZCBjb250ZW50ZWRpdGFibGUpIGFsd2F5cyBtYXRjaCA6Zm9jdXMtdmlzaWJsZSB3aGVu
IGZvY3VzZWQuCisgICAgcmV0dXJuIGVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBlbGVtZW50Lmlz
Q29udGVudEVkaXRhYmxlKCk7Cit9CisKIHZvaWQgRWxlbWVudDo6c2V0Rm9jdXMoYm9vbCBmbGFn
LCBGb2N1c1Zpc2liaWxpdHkgdmlzaWJpbGl0eSkKIHsKICAgICBpZiAoZmxhZyA9PSBmb2N1c2Vk
KCkpCkBAIC03NjQsOCArNzcwLDcgQEAgdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29sIGZsYWcs
IEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogICAgIGZvciAoYXV0byogZWxlbWVudCA9IHRo
aXM7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5Db21wb3NlZFRy
ZWUoKSkKICAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxhZyk7CiAKLSAgICAv
LyBFbGVtZW50cyB0aGF0IHN1cHBvcnQga2V5Ym9hcmQgaW5wdXQgKGZvcm0gaW5wdXRzIGFuZCBj
b250ZW50ZWRpdGFibGUpIGFsd2F5cyBtYXRjaCA6Zm9jdXMtdmlzaWJsZSB3aGVuIGZvY3VzZWQu
Ci0gICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9jdXNWaXNp
YmlsaXR5OjpWaXNpYmxlIHx8IGlzVGV4dEZpZWxkKCkgfHwgaXNDb250ZW50RWRpdGFibGUoKSkp
OworICAgIHNldEhhc0ZvY3VzVmlzaWJsZShmbGFnICYmICh2aXNpYmlsaXR5ID09IEZvY3VzVmlz
aWJpbGl0eTo6VmlzaWJsZSB8fCBzaG91bGRBbHdheXNIYXZlRm9jdXNWaXNpYmxlV2hlbkZvY3Vz
ZWQoKnRoaXMpKSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxlKGJvb2wg
ZmxhZykKQEAgLTc3Myw2ICs3NzgsMTEgQEAgdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2li
bGUoYm9vbCBmbGFnKQogICAgIGlmICghZG9jdW1lbnQoKS5zZXR0aW5ncygpLmZvY3VzVmlzaWJs
ZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgQVNTRVJUX0VOQUJMRUQKKyAgICBB
U1NFUlQoIWZsYWcgfHwgZm9jdXNlZCgpKTsKKyAgICBBU1NFUlQoIWZvY3VzZWQoKSB8fCAhc2hv
dWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKCp0aGlzKSB8fCBmbGFnKTsKKyNl
bmRpZgorCiAgICAgaWYgKGhhc0ZvY3VzVmlzaWJsZSgpID09IGZsYWcpCiAgICAgICAgIHJldHVy
bjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhmMGY1NDM1MjJmOGQ5YzU0NDE5MTMwOGRhZWY3YmRi
Y2Q1MjBhMWIuLmU0MDgyNjk0MDIzYzhhNWIwZDM3M2ZmNGM3NDFmN2M0ZmUwMjgxZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vTm9kZS5jcHAKQEAgLTczMiwxMiArNzMyLDEyIEBAIGNvbnN0IEF0b21TdHJpbmcmIE5vZGU6
Om5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKLWJvb2wg
Tm9kZTo6aXNDb250ZW50RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRFZGl0YWJsZSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsRG9l
c05vdEFmZmVjdEVkaXRhYmlsaXR5LCBTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSAhPSBFZGl0
YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50UmljaGx5RWRpdGFi
bGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25FZGl0YWJs
ZSwgU2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVkaXRSaWNo
bHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuaAppbmRleCBmM2E3YWI0NGU5N2U3NzlkZjNjYjM2NjA4MmU3Y2JhOTQ0
MDM0ZmQ5Li5kZGE2ZjhhYzJhY2FlOTc3N2FhZTk0ODdlNzZjN2JiOThmOTVmMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmgKQEAgLTMxNyw4ICszMTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFdmVudFRhcmdl
dERhdGEoKSBjb25zdCB7IHJldHVybiBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJn
ZXREYXRhKTsgfQogICAgIHZvaWQgc2V0SGFzRXZlbnRUYXJnZXREYXRhKGJvb2wgZmxhZykgeyBz
ZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhLCBmbGFnKTsgfQogCi0gICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpOwotICAgIGJvb2wgaXNDb250
ZW50UmljaGx5RWRpdGFibGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ29udGVudEVk
aXRhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnNwZWN0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNGM1ZmI4NTRjODhmYjQ0OTkwMjNiZTA3NzI2NjUxYzg0
MGIxZGQzLi5iYjM5MTUwODk4ZTg3Njg3NzJkMzUxM2FjOTMwOWRhMGZhNzgzZmQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNTQzLDE2ICszNTQzLDE1IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYgaW5pdGlhbEtleUV2ZW50CiAgICAgICAgIGtleWRvd24tPnByZXZlbnREZWZhdWx0KCk7CiAg
ICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgYXV0byBzaG91bGRNYXRjaEZv
Y3VzVmlzaWJsZSA9IFtpbml0aWFsS2V5RXZlbnQsIGtleWRvd25dKGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSkKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQorICAgIGF1dG8gc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQgPSBbaW5p
dGlhbEtleUV2ZW50LCBrZXlkb3duXShFbGVtZW50JiBlbGVtZW50KSB7CiAgICAgICAgIC8vIElm
IHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIHRoZSBwYWdlIHZpYSB0aGUga2V5Ym9hcmQsIHRoZSBj
dXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IHNob3VsZCBtYXRjaCA6Zm9jdXMtdmlzaWJsZS4KICAg
ICAgICAgLy8gSnVzdCB0eXBpbmcgYSBtb2RpZmllciBrZXkgaXMgbm90IGNvbnNpZGVyZWQgdXNl
ciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBwYWdlLCBidXQgU2hpZnQgKyBhIChvciBDYXBzIExvY2sg
KyBhKSBpcyBjb25zaWRlcmVkIGFuIGludGVyYWN0aW9uLgotICAgICAgICByZXR1cm4ga2V5ZG93
bi0+bW9kaWZpZXJLZXlzKCkuaXNFbXB0eSgpIHx8ICgoa2V5ZG93bi0+c2hpZnRLZXkoKSB8fCBr
ZXlkb3duLT5jYXBzTG9ja0tleSgpKSAmJiAhaW5pdGlhbEtleUV2ZW50LnRleHQoKS5pc0VtcHR5
KCkpOworICAgICAgICBib29sIHVzZXJIYXNJbnRlcmFjdGVkVmlhS2V5d29yZCA9IGtleWRvd24t
Pm1vZGlmaWVyS2V5cygpLmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkgfHwga2V5
ZG93bi0+Y2Fwc0xvY2tLZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNFbXB0eSgp
KTsKKworICAgICAgICBpZiAoZWxlbWVudC5mb2N1c2VkKCkgJiYgdXNlckhhc0ludGVyYWN0ZWRW
aWFLZXl3b3JkKQorICAgICAgICAgICAgZWxlbWVudC5zZXRIYXNGb2N1c1Zpc2libGUodHJ1ZSk7
CiAgICAgfTsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBmb3JtIGNvbnRy
b2xzIGFuZCBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIy
NTA3NSkuCi0gICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNW
aXNpYmxlKCplbGVtZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQoKmVsZW1l
bnQpOwogCiAgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1FdmVudDo6
UmF3S2V5RG93bikgewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtleWRvd24pOwpA
QCAtMzU5OSwxMiArMzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVu
dChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAgIC8vIEZv
Y3VzIG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNvIHJlZmV0Y2gg
ZWxlbWVudC4KICAgICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFrZSBiYWNrd2Fy
ZCBjb21wYXRpYmlsaXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0aGUga2V5cHJl
c3MgaGFwcGVuZWQgb24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFrZXlkb3duUmVz
dWx0KSB7Ci0gICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxzZSk7CiAgICAg
ICAgIGVsZW1lbnQgPSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2ZyYW1lLmRvY3Vt
ZW50KCkpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0gY29udHJvbHMg
YW5kIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3JnL2IvMjI1MDc1
KS4KLSAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNoRm9jdXNW
aXNpYmxlKCplbGVtZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVlZGVkKCpl
bGVtZW50KTsKICAgICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5UHJlc3NFdmVu
dCA9IGluaXRpYWxLZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYTlmNmRlNTk5MTA1YjA1NzY5OWQ1NTM5MDJi
NzNlZTQyYzMyNDI1Li4yYjMzN2VlNWI5OTAzYWFlN2QyNTY2MmQ0ZTJjODM2YjllZWViM2RlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMjcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMg
IDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdG9yc10gVXNpbmcgYSBtb2RpZmll
ciBrZXkgb24gYW4gZWxlbWVudCBtYWtlcyBpdCBzdG9wIG1hdGNoaW5nIDpmb2N1cy12aXNpYmxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUwNzUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBTa2lwIG5ldyB0ZXN0LgorCiAyMDIxLTA0LTI2ICBN
YW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKHIyNzYyNjQpOiBSZXByb2R1Y2libGUgY3Jhc2ggaW4gV2ViQ29yZTo6VXNlckFjdGlv
bkVsZW1lbnRTZXQ6OmNsZWFyRmxhZ3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4
IDBkZWQ0M2Q3MDdiNDIyMzVjZTg0OWIzMjZhMzdkM2I5ZjgwZjQ5YTYuLmM4N2E3YjJlNGQzZjA2
NTU3OWNmNWQzNjk1ZGQ0OTk5MDhhNjdiM2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA0LTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3RvcnNdIFVzaW5nIGEgbW9kaWZpZXIg
a2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1MDc1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3Vz
LXZpc2libGUtMDIxLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA0LTI2ICBUaW0gTmd1eWVuICA8bnRp
bUBhcHBsZS5jb20+CiAKICAgICAgICAgQ3JlYXRlIGEgY29udGFpbmluZyBibG9jayB3aGVuIHJl
bGV2YW50IHByb3BlcnRpZXMgYXJlIHNldCBpbiB0aGUgY3VycmVudCBlbGVtZW50IHdpbGwtY2hh
bmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3Vz
LXZpc2libGUtMDIxLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjUyOWM2OTJiYTg4YWIzNTA3
Y2E3ZjZiMjE0MjQ1ZDEzYjZkMzU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUt
MDIxLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCB1
c2luZyBhIG1vZGlmaWVyIGtleSBkb2VzIG5vdCBtYWtlIHRoZSBlbGVtZW50IHRvIHN0b3AgbWF0
Y2hpbmcgOmZvY3VzLXZpc2libGUuCitJZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQi
IGhhcyBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUu
CitQcmVzcyB0aGUgQ3RybCBrZXkuCitJZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3JlZW4gb3V0
bGluZSBhbmQgaGFzIG5vdCBhIHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBp
cyBTVUNDRVNTLgorRm9jdXNlZAorCitQQVNTICI6Zm9jdXMtdmlzaWJsZSIgc2hvdWxkIGJlIGEg
dmFsaWQgc2VsZWN0b3IKK1BBU1MgQ3RybCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1lbnQgdG8g
c3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJs
ZS0wMjEuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFhMmRmNmEz
NTAwMzg5MGVlMDYyOWZkOGZjMjc3OTdjYjEwMTNlMTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9j
dXMtdmlzaWJsZS0wMjEuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04IiAvPgorPHRpdGxlPkNTUyBUZXN0IChTZWxlY3RvcnMpOiBNb2Rp
ZmllciBrZXkgZG9lc24ndCBtYWtlIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlz
aWJsZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1hbnVlbCBSZWdvIENhc2Fz
bm92YXMiIGhyZWY9Im1haWx0bzpyZWdvQGlnYWxpYS5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvc2VsZWN0b3JzLTQvI3RoZS1mb2N1cy12aXNp
YmxlLXBzZXVkbyIgLz4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9jc3Mvc3VwcG9ydC9wYXJzaW5nLXRlc3Rjb21tb24uanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorICAjd2FybmluZyB7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICBiYWNr
Z3JvdW5kOiByZWQ7CisgIH0KKworICBAc3VwcG9ydHMgbm90IHNlbGVjdG9yKDpmb2N1cy12aXNp
YmxlKSB7CisgICAgI2luc3RydWN0aW9ucyB7CisgICAgICBkaXNwbGF5OiBub25lOworICAgIH0K
KworICAgICN3YXJuaW5nIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgIH0KKyAgfQorCisg
IDpmb2N1cy12aXNpYmxlIHsKKyAgICBvdXRsaW5lOiBzb2xpZCB0aGljayBncmVlbjsKKyAgfQor
CisgIDpmb2N1czpub3QoOmZvY3VzLXZpc2libGUpIHsKKyAgICBvdXRsaW5lOiBub25lOworICAg
IGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgfQorPC9zdHlsZT4KKworVGhpcyB0ZXN0IGNoZWNr
cyB0aGF0IHVzaW5nIGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVsZW1lbnQgdG8g
c3RvcCBtYXRjaGluZyA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29kZT4uCis8b2wgaWQ9Imluc3Ry
dWN0aW9ucyI+CisgIDxsaT5JZiB0aGUgZWxlbWVudCB0aGF0IHNheXMgIkZvY3VzZWQiIGhhcyBh
IHJlZCBiYWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBhIEZBSUxVUkUuPC9saT4K
KyAgPGxpPlByZXNzIHRoZSBDdHJsIGtleS48L2xpPgorICA8bGk+SWYgdGhlIGVsZW1lbnQga2Vl
cHMgdGhlIGdyZWVuIG91dGxpbmUgYW5kIGhhcyBub3QgYSByZWQgYmFja2dyb3VuZCwgdGhlbiB0
aGUgdGVzdCByZXN1bHQgaXMgU1VDQ0VTUy48L2xpPgorPC9vbD4KKzxwIGlkPSJ3YXJuaW5nIj5Z
b3VyIHVzZXItYWdlbnQgZG9lcyBub3Qgc3VwcG9ydCA8Y29kZT46Zm9jdXMtdmlzaWJsZTwvY29k
ZT4gcHNldWRvLWNsYXNzLCBwbGVhc2UgU0tJUCB0aGlzIHRlc3QuPC9wPgorCis8ZGl2IGlkPSJ0
YXJnZXQiIHRhYmluZGV4PSIwIj5Gb2N1c2VkPC9kaXY+Cis8c2NyaXB0PgorICAvLyBDaGVjayB0
aGF0IDpmb2N1cy12aXNpYmxlIGlzIHN1cHBvcnRlZC4KKyAgdGVzdF92YWxpZF9zZWxlY3Rvcign
OmZvY3VzLXZpc2libGUnKTsKKworICBhc3luY190ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgICB0YXJn
ZXQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBh
c3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5vdXRsaW5lQ29sb3IsICJyZ2Io
MCwgMTI4LCAwKSIsIGBvdXRsaW5lQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0
LmlkfSBzaG91bGQgYmUgZ3JlZW5gKTsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKGdldENvbXB1
dGVkU3R5bGUodGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3IsICJyZ2IoMjU1LCAwLCAwKSIsIGBiYWNr
Z3JvdW5kQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQgTk9U
IGJlIHJlZGApOworCisgICAgICBjb25zdCBjdHJsX2tleSA9ICdcdUUwMDknOworICAgICAgdGVz
dF9kcml2ZXIuc2VuZF9rZXlzKHRhcmdldCwgY3RybF9rZXkpOworICAgIH0pKTsKKworICAgIHRh
cmdldC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsIHQuc3RlcF9mdW5jX2RvbmUoKCkgPT4gewor
ICAgICAgYXNzZXJ0X2VxdWFscyhnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkub3V0bGluZUNvbG9y
LCAicmdiKDAsIDEyOCwgMCkiLCBgb3V0bGluZUNvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMk
e3RhcmdldC5pZH0gc2hvdWxkIGJlIGdyZWVuYCk7CisgICAgICBhc3NlcnRfbm90X2VxdWFscyhn
ZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuYmFja2dyb3VuZENvbG9yLCAicmdiKDI1NSwgMCwgMCki
LCBgYmFja2dyb3VuZENvbG9yIGZvciAke3RhcmdldC50YWdOYW1lfSMke3RhcmdldC5pZH0gc2hv
dWxkIE5PVCBiZSByZWRgKTsKKyAgICB9KSk7CisKKyAgfSwgIkN0cmwga2V5IGRvZXNuJ3QgbWFr
ZSBhbiBlbGVtZW50IHRvIHN0b3AgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUiKTsKKworICB0YXJn
ZXQuZm9jdXMoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAyZjEyOWIxMmY1NDcyZjUzMzQ1OTc5ZDhiY2MwZDFkMDVjZmVmZmVmLi41
NTMwZTBkNTc3YmVlYTEwM2YxYmJkYWYyZjJmMDY2YTIwNjUxODg0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzI4Miw2ICszMjgyLDcgQEAgd2Via2l0
Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3Rv
cnMvZm9jdXMtdmlzaWJsZS0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDEyLmh0bWwgWyBTa2lw
IF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDEzLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcv
Yi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2Zv
Y3VzLXZpc2libGUtMDE5Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIx
Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtc2NyaXB0LWZvY3VzLTAwNC5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjA5NzM0IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLXNjcmlwdC1mb2N1cy0wMDUuaHRt
bCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS1zY3JpcHQtZm9jdXMtMDEyLmh0bWwg
WyBTa2lwIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427245</attachid>
            <date>2021-04-28 00:57:58 -0700</date>
            <delta_ts>2021-04-28 01:51:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225075-20210428095756.patch</filename>
            <type>text/plain</type>
            <size>13820</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzkzMDkzOTU4NzJjYzY4
MThkMDVmOTkzOWVhODgxOThjOWVhOWQ2ZS4uZGZkYmJjNjc2MTUzNWU4N2ZlZTk5MDMzYjgxMDRh
YzgxZjJlYzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTA0LTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtzZWxlY3Rv
cnNdIFVzaW5nIGEgbW9kaWZpZXIga2V5IG9uIGFuIGVsZW1lbnQgbWFrZXMgaXQgc3RvcCBtYXRj
aGluZyA6Zm9jdXMtdmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI1MDc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgor
CisgICAgICAgIFdoZW4gd2UgdXNlZCBhIG1vZGlmaWVyIGtleSBvbiBhIGVsZW1lbnQgdGhhdCB3
YXMgbWF0Y2hpbmcgOmZvY3VzLXZpc2libGUsIHdlIHN0b3BwZWQgbWF0Y2hpbmcgOmZvY3VzLXZp
c2libGUuCisgICAgICAgIFRoYXQgd2FzIHdyb25nLCB3ZSBzaG91bGRuJ3QganVzdCBzdGFydCBt
YXRjaGluZyA6Zm9jdXMtdmlzaWJsZSB3aGVuIGEgbW9kaWZpZXIga2V5IGlzIHVzZWQgYnV0IG5v
dCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KKworICAgICAgICBUaGlzIHBhdGNoZXMgZml4ZWQgdGhh
dCB3aXRob3V0IGRvaW5nIGFueSB3b3JrIGlmIHRoZSBlbGVtZW50IGlzIGFscmVhZHkgbWF0Y2hp
bmcgOmZvY3VzLXZpc2libGUgd2hlbiB0aGUgdXNlciB0eXBlIGEga2V5LgorCisgICAgICAgIFRl
c3Q6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12
aXNpYmxlLTAyMS5odG1sCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpzaG91bGRBbHdheXNIYXZlRm9jdXNWaXNpYmxlV2hlbkZvY3VzZWQpOiBIZWxwZXIg
bWV0aG9kIGZvciBpbnB1dHMgYW5kIGNvbnRlbnQgZWRpdGFibGUgZWxlbWVudHMuCisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjpzZXRGb2N1cyk6IFVzZSB0aGUgbmV3IGhlbHBlciBtZXRob2Qu
CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRIYXNGb2N1c1Zpc2libGUpOiBBZGQgYXNz
ZXJ0cyB0byBhdm9pZCBzZXR0aW5nL3Vuc2V0dGluZyA6Zm9jdXMtdmlzaWJsZSBmbGFnIHdyb25n
bHkuCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6aXND
b250ZW50RWRpdGFibGUgY29uc3QpOiBKdXN0IG1hcmsgYXMgY29uc3QuCisgICAgICAgIChXZWJD
b3JlOjpOb2RlOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSBjb25zdCk6IERpdHRvLgorICAgICAg
ICAqIGRvbS9Ob2RlLmg6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aW50ZXJuYWxLZXlFdmVudCk6IERvbid0
IGRvIGFueXRoaW5nIHJlZ2FyZGluZyA6Zm9jdXMtdmlzaWJsZSBmbGFnIGlmIHRoZSBlbGVtZW50
IGFscmVhZHkgbWF0Y2hlcyA6Zm9jdXMtdmlzaWJsZS4KKwogMjAyMS0wNC0yNiAgUm9iIEJ1aXMg
IDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSByb3VuZGluZyBsb2dpYyBpbiBS
ZW5kZXJHZW9tZXRyeU1hcDo6bWFwQ29udGFpbmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
NjRkMDU0MDRhMzk2NWNhZjQ1YTA2M2Q1MmE1YTBlOTQ3OTE3MzFhZi4uMGVmZWQ1MjNjMGJkMDc3
NDFjYjFiZWFlZGE0ODVjMDY1YTcxNTZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNzQ1
LDYgKzc0NSwxMSBAQCB2b2lkIEVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGZsYWcsIGJvb2wgcGF1
c2UsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29wZSBpbnZhbGlkYQogICAgIH0KIH0KIAorc3RhdGlj
IGJvb2wgc2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQpCit7CisgICAgcmV0dXJuIGVsZW1lbnQuaXNUZXh0RmllbGQoKSB8fCBlbGVt
ZW50LmlzQ29udGVudEVkaXRhYmxlKCk7Cit9CisKIHZvaWQgRWxlbWVudDo6c2V0Rm9jdXMoYm9v
bCBmbGFnLCBGb2N1c1Zpc2liaWxpdHkgdmlzaWJpbGl0eSkKIHsKICAgICBpZiAoZmxhZyA9PSBm
b2N1c2VkKCkpCkBAIC03NjQsOCArNzY5LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRGb2N1cyhib29s
IGZsYWcsIEZvY3VzVmlzaWJpbGl0eSB2aXNpYmlsaXR5KQogICAgIGZvciAoYXV0byogZWxlbWVu
dCA9IHRoaXM7IGVsZW1lbnQ7IGVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50SW5Db21w
b3NlZFRyZWUoKSkKICAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNXaXRoaW4oZmxhZyk7CiAK
LSAgICAvLyBFbGVtZW50cyB0aGF0IHN1cHBvcnQga2V5Ym9hcmQgaW5wdXQgKGZvcm0gaW5wdXRz
IGFuZCBjb250ZW50ZWRpdGFibGUpIGFsd2F5cyBtYXRjaCA6Zm9jdXMtdmlzaWJsZSB3aGVuIGZv
Y3VzZWQuCi0gICAgc2V0SGFzRm9jdXNWaXNpYmxlKGZsYWcgJiYgKHZpc2liaWxpdHkgPT0gRm9j
dXNWaXNpYmlsaXR5OjpWaXNpYmxlIHx8IGlzVGV4dEZpZWxkKCkgfHwgaXNDb250ZW50RWRpdGFi
bGUoKSkpOworICAgIHNldEhhc0ZvY3VzVmlzaWJsZShmbGFnICYmICh2aXNpYmlsaXR5ID09IEZv
Y3VzVmlzaWJpbGl0eTo6VmlzaWJsZSB8fCBzaG91bGRBbHdheXNIYXZlRm9jdXNWaXNpYmxlV2hl
bkZvY3VzZWQoKnRoaXMpKSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2V0SGFzRm9jdXNWaXNpYmxl
KGJvb2wgZmxhZykKQEAgLTc3Myw2ICs3NzcsMTEgQEAgdm9pZCBFbGVtZW50OjpzZXRIYXNGb2N1
c1Zpc2libGUoYm9vbCBmbGFnKQogICAgIGlmICghZG9jdW1lbnQoKS5zZXR0aW5ncygpLmZvY3Vz
VmlzaWJsZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICBBU1NFUlQoIWZsYWcgfHwgZm9jdXNlZCgpKTsKKyAgICBBU1NFUlQoIWZvY3VzZWQoKSB8
fCAhc2hvdWxkQWx3YXlzSGF2ZUZvY3VzVmlzaWJsZVdoZW5Gb2N1c2VkKCp0aGlzKSB8fCBmbGFn
KTsKKyNlbmRpZgorCiAgICAgaWYgKGhhc0ZvY3VzVmlzaWJsZSgpID09IGZsYWcpCiAgICAgICAg
IHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IDhmMGY1NDM1MjJmOGQ5YzU0NDE5MTMwOGRh
ZWY3YmRiY2Q1MjBhMWIuLmU0MDgyNjk0MDIzYzhhNWIwZDM3M2ZmNGM3NDFmN2M0ZmUwMjgxZjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKQEAgLTczMiwxMiArNzMyLDEyIEBAIGNvbnN0IEF0b21TdHJpbmcm
IE5vZGU6Om5hbWVzcGFjZVVSSSgpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAK
LWJvb2wgTm9kZTo6aXNDb250ZW50RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRFZGl0
YWJsZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0
QWxsRG9lc05vdEFmZmVjdEVkaXRhYmlsaXR5LCBTaG91bGRVcGRhdGVTdHlsZTo6VXBkYXRlKSAh
PSBFZGl0YWJpbGl0eTo6UmVhZE9ubHk7CiB9CiAKLWJvb2wgTm9kZTo6aXNDb250ZW50UmljaGx5
RWRpdGFibGUoKQorYm9vbCBOb2RlOjppc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIGNvbXB1dGVFZGl0YWJpbGl0eShVc2VyU2VsZWN0QWxsSXNBbHdheXNOb25F
ZGl0YWJsZSwgU2hvdWxkVXBkYXRlU3R5bGU6OlVwZGF0ZSkgPT0gRWRpdGFiaWxpdHk6OkNhbkVk
aXRSaWNobHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGUuaAppbmRleCBmM2E3YWI0NGU5N2U3NzlkZjNjYjM2NjA4MmU3
Y2JhOTQ0MDM0ZmQ5Li5kZGE2ZjhhYzJhY2FlOTc3N2FhZTk0ODdlNzZjN2JiOThmOTVmMTZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmgKQEAgLTMxNyw4ICszMTcsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFdmVu
dFRhcmdldERhdGEoKSBjb25zdCB7IHJldHVybiBoYXNOb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZl
bnRUYXJnZXREYXRhKTsgfQogICAgIHZvaWQgc2V0SGFzRXZlbnRUYXJnZXREYXRhKGJvb2wgZmxh
ZykgeyBzZXROb2RlRmxhZyhOb2RlRmxhZzo6SGFzRXZlbnRUYXJnZXREYXRhLCBmbGFnKTsgfQog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpOwotICAgIGJvb2wg
aXNDb250ZW50UmljaGx5RWRpdGFibGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzQ29u
dGVudEVkaXRhYmxlKCkgY29uc3Q7CisgICAgYm9vbCBpc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgp
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnNwZWN0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCBkNGM1ZmI4NTRjODhmYjQ0OTkwMjNiZTA3NzI2
NjUxYzg0MGIxZGQzLi5iYjM5MTUwODk4ZTg3Njg3NzJkMzUxM2FjOTMwOWRhMGZhNzgzZmQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0zNTQzLDE2ICszNTQzLDE1IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjppbnRlcm5hbEtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCYgaW5pdGlhbEtleUV2ZW50CiAgICAgICAgIGtleWRvd24tPnByZXZlbnREZWZhdWx0
KCk7CiAgICAga2V5ZG93bi0+c2V0VGFyZ2V0KGVsZW1lbnQpOwogCi0gICAgYXV0byBzaG91bGRN
YXRjaEZvY3VzVmlzaWJsZSA9IFtpbml0aWFsS2V5RXZlbnQsIGtleWRvd25dKGNvbnN0IEVsZW1l
bnQmIGVsZW1lbnQpIHsKLSAgICAgICAgaWYgKCFlbGVtZW50LmZvY3VzZWQoKSkKLSAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLQorICAgIGF1dG8gc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQg
PSBbaW5pdGlhbEtleUV2ZW50LCBrZXlkb3duXShFbGVtZW50JiBlbGVtZW50KSB7CiAgICAgICAg
IC8vIElmIHRoZSB1c2VyIGludGVyYWN0cyB3aXRoIHRoZSBwYWdlIHZpYSB0aGUga2V5Ym9hcmQs
IHRoZSBjdXJyZW50bHkgZm9jdXNlZCBlbGVtZW50IHNob3VsZCBtYXRjaCA6Zm9jdXMtdmlzaWJs
ZS4KICAgICAgICAgLy8gSnVzdCB0eXBpbmcgYSBtb2RpZmllciBrZXkgaXMgbm90IGNvbnNpZGVy
ZWQgdXNlciBpbnRlcmFjdGlvbiB3aXRoIHRoZSBwYWdlLCBidXQgU2hpZnQgKyBhIChvciBDYXBz
IExvY2sgKyBhKSBpcyBjb25zaWRlcmVkIGFuIGludGVyYWN0aW9uLgotICAgICAgICByZXR1cm4g
a2V5ZG93bi0+bW9kaWZpZXJLZXlzKCkuaXNFbXB0eSgpIHx8ICgoa2V5ZG93bi0+c2hpZnRLZXko
KSB8fCBrZXlkb3duLT5jYXBzTG9ja0tleSgpKSAmJiAhaW5pdGlhbEtleUV2ZW50LnRleHQoKS5p
c0VtcHR5KCkpOworICAgICAgICBib29sIHVzZXJIYXNJbnRlcmFjdGVkVmlhS2V5d29yZCA9IGtl
eWRvd24tPm1vZGlmaWVyS2V5cygpLmlzRW1wdHkoKSB8fCAoKGtleWRvd24tPnNoaWZ0S2V5KCkg
fHwga2V5ZG93bi0+Y2Fwc0xvY2tLZXkoKSkgJiYgIWluaXRpYWxLZXlFdmVudC50ZXh0KCkuaXNF
bXB0eSgpKTsKKworICAgICAgICBpZiAoZWxlbWVudC5mb2N1c2VkKCkgJiYgdXNlckhhc0ludGVy
YWN0ZWRWaWFLZXl3b3JkKQorICAgICAgICAgICAgZWxlbWVudC5zZXRIYXNGb2N1c1Zpc2libGUo
dHJ1ZSk7CiAgICAgfTsKLSAgICAvLyBGSVhNRTogVGhpcyBpcyB3cm9uZyBmb3IgdGV4dCBmb3Jt
IGNvbnRyb2xzIGFuZCBjb250ZW50ZWRpdGFibGUgZWxlbWVudHMgKGh0dHBzOi8vd2Via2l0Lm9y
Zy9iLzIyNTA3NSkuCi0gICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNo
Rm9jdXNWaXNpYmxlKCplbGVtZW50KSk7CisgICAgc2V0SGFzRm9jdXNWaXNpYmxlSWZOZWVkZWQo
KmVsZW1lbnQpOwogCiAgICAgaWYgKGluaXRpYWxLZXlFdmVudC50eXBlKCkgPT0gUGxhdGZvcm1F
dmVudDo6UmF3S2V5RG93bikgewogICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEV2ZW50KGtleWRv
d24pOwpAQCAtMzU5OSwxMiArMzU5OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aW50ZXJuYWxL
ZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmIGluaXRpYWxLZXlFdmVudAogICAg
IC8vIEZvY3VzIG1heSBoYXZlIGNoYW5nZWQgZHVyaW5nIGtleWRvd24gaGFuZGxpbmcsIHNvIHJl
ZmV0Y2ggZWxlbWVudC4KICAgICAvLyBCdXQgaWYgd2UgYXJlIGRpc3BhdGNoaW5nIGEgZmFrZSBi
YWNrd2FyZCBjb21wYXRpYmlsaXR5IGtleXByZXNzLCB0aGVuIHdlIHByZXRlbmQgdGhhdCB0aGUg
a2V5cHJlc3MgaGFwcGVuZWQgb24gdGhlIG9yaWdpbmFsIGVsZW1lbnQuCiAgICAgaWYgKCFrZXlk
b3duUmVzdWx0KSB7Ci0gICAgICAgIGVsZW1lbnQtPnNldEhhc0ZvY3VzVmlzaWJsZShmYWxzZSk7
CiAgICAgICAgIGVsZW1lbnQgPSBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChtX2ZyYW1l
LmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIHdyb25nIGZvciB0ZXh0IGZvcm0gY29u
dHJvbHMgYW5kIGNvbnRlbnRlZGl0YWJsZSBlbGVtZW50cyAoaHR0cHM6Ly93ZWJraXQub3JnL2Iv
MjI1MDc1KS4KLSAgICAgICAgZWxlbWVudC0+c2V0SGFzRm9jdXNWaXNpYmxlKHNob3VsZE1hdGNo
Rm9jdXNWaXNpYmxlKCplbGVtZW50KSk7CisgICAgICAgIHNldEhhc0ZvY3VzVmlzaWJsZUlmTmVl
ZGVkKCplbGVtZW50KTsKICAgICB9CiAKICAgICBQbGF0Zm9ybUtleWJvYXJkRXZlbnQga2V5UHJl
c3NFdmVudCA9IGluaXRpYWxLZXlFdmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3OTU2YTRkOWJiMGExMmZlOTQ2OTQ4
MmFkNjMwNzlhMjdhZTgxNjA2Li5hMDRkNWJkNDg4M2RiNzczMmJlZjFjMGQwOWNkOTRjNTEwZTlj
MGYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDQtMjcgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdG9yc10gVXNpbmcgYSBt
b2RpZmllciBrZXkgb24gYW4gZWxlbWVudCBtYWtlcyBpdCBzdG9wIG1hdGNoaW5nIDpmb2N1cy12
aXNpYmxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjUwNzUKKworICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogU2tpcCBuZXcgdGVzdC4KKwogMjAyMS0wNC0y
NiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSByb3VuZGlu
ZyBsb2dpYyBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwQ29udGFpbmVyCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwppbmRleCAwZGVkNDNkNzA3YjQyMjM1Y2U4NDliMzI2YTM3ZDNiOWY4MGY0
OWE2Li45ZTg4ZTdiZjRlYTQ0YmZjNTQwMTUwZWVmMTYzODcwM2FkZTM5NDlkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNC0yNyAgTWFudWVs
IFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0b3Jz
XSBVc2luZyBhIG1vZGlmaWVyIGtleSBvbiBhbiBlbGVtZW50IG1ha2VzIGl0IHN0b3AgbWF0Y2hp
bmcgOmZvY3VzLXZpc2libGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNTA3NQorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUt
MDIxLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEuaHRtbDogQWRkZWQuCisKIDIwMjEtMDQtMjYg
IFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmVhdGUgYSBjb250YWlu
aW5nIGJsb2NrIHdoZW4gcmVsZXZhbnQgcHJvcGVydGllcyBhcmUgc2V0IGluIHRoZSBjdXJyZW50
IGVsZW1lbnQgd2lsbC1jaGFuZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFi
NTI5YzY5MmJhODhhYjM1MDdjYTdmNmIyMTQyNDVkMTNiNmQzNTgKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3Rv
cnMvZm9jdXMtdmlzaWJsZS0wMjEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorVGhpcyB0
ZXN0IGNoZWNrcyB0aGF0IHVzaW5nIGEgbW9kaWZpZXIga2V5IGRvZXMgbm90IG1ha2UgdGhlIGVs
ZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlzaWJsZS4KK0lmIHRoZSBlbGVtZW50IHRo
YXQgc2F5cyAiRm9jdXNlZCIgaGFzIGEgcmVkIGJhY2tncm91bmQsIHRoZW4gdGhlIHRlc3QgcmVz
dWx0IGlzIGEgRkFJTFVSRS4KK1ByZXNzIHRoZSBDdHJsIGtleS4KK0lmIHRoZSBlbGVtZW50IGtl
ZXBzIHRoZSBncmVlbiBvdXRsaW5lIGFuZCBoYXMgbm90IGEgcmVkIGJhY2tncm91bmQsIHRoZW4g
dGhlIHRlc3QgcmVzdWx0IGlzIFNVQ0NFU1MuCitGb2N1c2VkCisKK1BBU1MgIjpmb2N1cy12aXNp
YmxlIiBzaG91bGQgYmUgYSB2YWxpZCBzZWxlY3RvcgorUEFTUyBDdHJsIGtleSBkb2Vzbid0IG1h
a2UgYW4gZWxlbWVudCB0byBzdG9wIG1hdGNoaW5nIDpmb2N1cy12aXNpYmxlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVj
dG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtMDIxLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYWEyZGY2YTM1MDAzODkwZWUwNjI5ZmQ4ZmMyNzc5N2NiMTAxM2UxMAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLTAyMS5odG1sCkBAIC0wLDAgKzEsNjcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiIC8+Cis8dGl0bGU+Q1NTIFRlc3Qg
KFNlbGVjdG9ycyk6IE1vZGlmaWVyIGtleSBkb2Vzbid0IG1ha2UgZWxlbWVudCB0byBzdG9wIG1h
dGNoaW5nIDpmb2N1cy12aXNpYmxlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWFudWVsIFJlZ28gQ2FzYXNub3ZhcyIgaHJlZj0ibWFpbHRvOnJlZ29AaWdhbGlhLmNvbSI+Cis8
bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9zZWxlY3RvcnMt
NC8jdGhlLWZvY3VzLXZpc2libGUtcHNldWRvIiAvPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRy
aXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZl
bmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Nzcy9zdXBwb3J0L3BhcnNpbmctdGVz
dGNvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisgICN3YXJuaW5nIHsKKyAgICBkaXNwbGF5
OiBub25lOworICAgIGJhY2tncm91bmQ6IHJlZDsKKyAgfQorCisgIEBzdXBwb3J0cyBub3Qgc2Vs
ZWN0b3IoOmZvY3VzLXZpc2libGUpIHsKKyAgICAjaW5zdHJ1Y3Rpb25zIHsKKyAgICAgIGRpc3Bs
YXk6IG5vbmU7CisgICAgfQorCisgICAgI3dhcm5pbmcgeworICAgICAgZGlzcGxheTogYmxvY2s7
CisgICAgfQorICB9CisKKyAgOmZvY3VzLXZpc2libGUgeworICAgIG91dGxpbmU6IHNvbGlkIHRo
aWNrIGdyZWVuOworICB9CisKKyAgOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkgeworICAgIG91
dGxpbmU6IG5vbmU7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICB9Cis8L3N0eWxlPgor
CitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgdXNpbmcgYSBtb2RpZmllciBrZXkgZG9lcyBub3QgbWFr
ZSB0aGUgZWxlbWVudCB0byBzdG9wIG1hdGNoaW5nIDxjb2RlPjpmb2N1cy12aXNpYmxlPC9jb2Rl
Pi4KKzxvbCBpZD0iaW5zdHJ1Y3Rpb25zIj4KKyAgPGxpPklmIHRoZSBlbGVtZW50IHRoYXQgc2F5
cyAiRm9jdXNlZCIgaGFzIGEgcmVkIGJhY2tncm91bmQsIHRoZW4gdGhlIHRlc3QgcmVzdWx0IGlz
IGEgRkFJTFVSRS48L2xpPgorICA8bGk+UHJlc3MgdGhlIEN0cmwga2V5LjwvbGk+CisgIDxsaT5J
ZiB0aGUgZWxlbWVudCBrZWVwcyB0aGUgZ3JlZW4gb3V0bGluZSBhbmQgaGFzIG5vdCBhIHJlZCBi
YWNrZ3JvdW5kLCB0aGVuIHRoZSB0ZXN0IHJlc3VsdCBpcyBTVUNDRVNTLjwvbGk+Cis8L29sPgor
PHAgaWQ9Indhcm5pbmciPllvdXIgdXNlci1hZ2VudCBkb2VzIG5vdCBzdXBwb3J0IDxjb2RlPjpm
b2N1cy12aXNpYmxlPC9jb2RlPiBwc2V1ZG8tY2xhc3MsIHBsZWFzZSBTS0lQIHRoaXMgdGVzdC48
L3A+CisKKzxkaXYgaWQ9InRhcmdldCIgdGFiaW5kZXg9IjAiPkZvY3VzZWQ8L2Rpdj4KKzxzY3Jp
cHQ+CisgIC8vIENoZWNrIHRoYXQgOmZvY3VzLXZpc2libGUgaXMgc3VwcG9ydGVkLgorICB0ZXN0
X3ZhbGlkX3NlbGVjdG9yKCc6Zm9jdXMtdmlzaWJsZScpOworCisgIGFzeW5jX3Rlc3QoZnVuY3Rp
b24odCkgeworICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIHQuc3RlcF9mdW5j
KCgpID0+IHsKKyAgICAgIGFzc2VydF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLm91
dGxpbmVDb2xvciwgInJnYigwLCAxMjgsIDApIiwgYG91dGxpbmVDb2xvciBmb3IgJHt0YXJnZXQu
dGFnTmFtZX0jJHt0YXJnZXQuaWR9IHNob3VsZCBiZSBncmVlbmApOworICAgICAgYXNzZXJ0X25v
dF9lcXVhbHMoZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmJhY2tncm91bmRDb2xvciwgInJnYigy
NTUsIDAsIDApIiwgYGJhY2tncm91bmRDb2xvciBmb3IgJHt0YXJnZXQudGFnTmFtZX0jJHt0YXJn
ZXQuaWR9IHNob3VsZCBOT1QgYmUgcmVkYCk7CisKKyAgICAgIGNvbnN0IGN0cmxfa2V5ID0gJ1x1
RTAwOSc7CisgICAgICB0ZXN0X2RyaXZlci5zZW5kX2tleXModGFyZ2V0LCBjdHJsX2tleSk7Cisg
ICAgfSkpOworCisgICAgdGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIiwgdC5zdGVwX2Z1
bmNfZG9uZSgoKSA9PiB7CisgICAgICBhc3NlcnRfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFy
Z2V0KS5vdXRsaW5lQ29sb3IsICJyZ2IoMCwgMTI4LCAwKSIsIGBvdXRsaW5lQ29sb3IgZm9yICR7
dGFyZ2V0LnRhZ05hbWV9IyR7dGFyZ2V0LmlkfSBzaG91bGQgYmUgZ3JlZW5gKTsKKyAgICAgIGFz
c2VydF9ub3RfZXF1YWxzKGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5iYWNrZ3JvdW5kQ29sb3Is
ICJyZ2IoMjU1LCAwLCAwKSIsIGBiYWNrZ3JvdW5kQ29sb3IgZm9yICR7dGFyZ2V0LnRhZ05hbWV9
IyR7dGFyZ2V0LmlkfSBzaG91bGQgTk9UIGJlIHJlZGApOworICAgIH0pKTsKKworICB9LCAiQ3Ry
bCBrZXkgZG9lc24ndCBtYWtlIGFuIGVsZW1lbnQgdG8gc3RvcCBtYXRjaGluZyA6Zm9jdXMtdmlz
aWJsZSIpOworCisgIHRhcmdldC5mb2N1cygpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDJmMTI5YjEyZjU0NzJmNTMzNDU5NzlkOGJj
YzBkMWQwNWNmZWZmZWYuLjU1MzBlMGQ1NzdiZWVhMTAzZjFiYmRhZjJmMmYwNjZhMjA2NTE4ODQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMjgyLDYg
KzMyODIsNyBAQCB3ZWJraXQub3JnL2IvMjA5NzM0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLQogd2Via2l0Lm9yZy9iLzIwOTczNCBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJs
ZS0wMTIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMTMuaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS0wMTkuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzIwOTczNCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMv
Zm9jdXMtdmlzaWJsZS0wMjEuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwOTczNCBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9zZWxlY3RvcnMvZm9jdXMtdmlzaWJsZS1z
Y3JpcHQtZm9jdXMtMDA0Lmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDk3MzQgaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mvc2VsZWN0b3JzL2ZvY3VzLXZpc2libGUtc2Ny
aXB0LWZvY3VzLTAwNS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjA5NzM0IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL3NlbGVjdG9ycy9mb2N1cy12aXNpYmxlLXNjcmlw
dC1mb2N1cy0wMTIuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>