<?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>212689</bug_id>
          
          <creation_ts>2020-06-03 02:11:33 -0700</creation_ts>
          <short_desc>[EME] CDMProxyInstance should not keep CDMInstanceSessions hard referenced</short_desc>
          <delta_ts>2020-06-09 01:24:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cturner</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1658655</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 02:11:33 -0700</bug_when>
    <thetext>[EME] CDMProxy should not keep CDMInstanceSessions hard referenced</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658658</commentid>
    <comment_count>1</comment_count>
      <attachid>400909</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 02:18:05 -0700</bug_when>
    <thetext>Created attachment 400909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658709</commentid>
    <comment_count>2</comment_count>
      <attachid>400922</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-03 08:52:20 -0700</bug_when>
    <thetext>Created attachment 400922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659536</commentid>
    <comment_count>3</comment_count>
      <attachid>400922</attachid>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-06-05 03:22:09 -0700</bug_when>
    <thetext>Comment on attachment 400922
Patch

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

I don&apos;t know about the IDL stuff so I only have a question about the test coverage of the null session purger.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:319
&gt; +        return current == value;

Why do you have to create an empty WeakPtr object to check if it has been cleared? It looks like WeakPtr::operator bool() would be good enough using removeIf?

&gt; Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp:466
&gt; +    return adoptRef(newSession);

AFAICT, the test checks this alone (i.e., the double ref bump that existed before being fixed). But the meat of this patch is the WeakPtr and the null session purger, I don&apos;t understand how the test checks that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659966</commentid>
    <comment_count>4</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-06 08:25:14 -0700</bug_when>
    <thetext>(In reply to Charlie Turner from comment #3)
&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:319
&gt; &gt; +        return current == value;
&gt; 
&gt; Why do you have to create an empty WeakPtr object to check if it has been
&gt; cleared? It looks like WeakPtr::operator bool() would be good enough using
&gt; removeIf?
&gt; 
&gt; &gt; Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp:466
&gt; &gt; +    return adoptRef(newSession);
&gt; 
&gt; AFAICT, the test checks this alone (i.e., the double ref bump that existed
&gt; before being fixed). But the meat of this patch is the WeakPtr and the null
&gt; session purger, I don&apos;t understand how the test checks that?

The session purger is not a big deal, just an insurance but as we discussed in private it is not a big deal, so I am removing it. The rest is tested so I think we&apos;ll be good in the next patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659969</commentid>
    <comment_count>5</comment_count>
      <attachid>401260</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-06 08:30:40 -0700</bug_when>
    <thetext>Created attachment 401260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660051</commentid>
    <comment_count>6</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2020-06-07 03:57:59 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #4)
&gt; (In reply to Charlie Turner from comment #3)
&gt; &gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:319
&gt; &gt; &gt; +        return current == value;
&gt; &gt; 
&gt; &gt; Why do you have to create an empty WeakPtr object to check if it has been
&gt; &gt; cleared? It looks like WeakPtr::operator bool() would be good enough using
&gt; &gt; removeIf?
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp:466
&gt; &gt; &gt; +    return adoptRef(newSession);
&gt; &gt; 
&gt; &gt; AFAICT, the test checks this alone (i.e., the double ref bump that existed
&gt; &gt; before being fixed). But the meat of this patch is the WeakPtr and the null
&gt; &gt; session purger, I don&apos;t understand how the test checks that?
&gt; 
&gt; The session purger is not a big deal, just an insurance but as we discussed
&gt; in private it is not a big deal, so I am removing it. The rest is tested so
&gt; I think we&apos;ll be good in the next patch.

OK, I defer the review of the internals stuff to someone who knows that, perhaps Jer could take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660139</commentid>
    <comment_count>7</comment_count>
      <attachid>401260</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 01:03:43 -0700</bug_when>
    <thetext>Comment on attachment 401260
Patch

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

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeySession.h:89
&gt; +    unsigned internalInstanceSessionObjectRefCount() { return m_instanceSession-&gt;refCount(); }

const

&gt; Source/WebCore/Modules/encryptedmedia/MediaKeys.h:83
&gt; +    unsigned internalInstanceObjectRefCount() { return m_instance-&gt;refCount(); }

const

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:316
&gt; +void CDMInstanceProxy::trackSession(WeakPtr&lt;CDMInstanceSessionProxy&gt;&amp;&amp; session)

It might be better to use trackSession(CDMInstanceSessionProxy&amp; session).
This way, we are sure session is not null.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.h:201
&gt; +    Vector&lt;WeakPtr&lt;CDMInstanceSessionProxy&gt;&gt; m_sessions;

Do we care of m_sessions order? Could we use a WeakHashSet here?
Looking at the code, I do not see where m_sessions is used/read, the only case I see is trackSession.

&gt; Source/WebCore/platform/encryptedmedia/clearkey/CDMClearKey.cpp:464
&gt; +    CDMInstanceSessionClearKey* newSession = new CDMInstanceSessionClearKey(*this);

auto*
It might be a tad better to write it as:
auto newSession = adoptRef(...)
trackSession(newSession.get());
return newSession;

This way, the adoptRef is happening sooner, just after the allocation.

&gt; Source/WebCore/testing/Internals.h:53
&gt; +#include &quot;MediaKeys.h&quot;

Can we forward declare MediaKeySession and MediaKeys?

&gt; Source/WebCore/testing/Internals.h:1032
&gt; +    unsigned mediaKeySessionInternalInstanceSessionObjectRefCount(MediaKeySession&amp;);

Could be const&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660195</commentid>
    <comment_count>8</comment_count>
      <attachid>401333</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-08 07:34:15 -0700</bug_when>
    <thetext>Created attachment 401333
Patch

(In reply to youenn fablet from comment #7)
&gt; &gt; Source/WebCore/testing/Internals.h:53
&gt; &gt; +#include &quot;MediaKeys.h&quot;
&gt; 
&gt; Can we forward declare MediaKeySession and MediaKeys?

Nope, compiler complains.

The rest is handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660228</commentid>
    <comment_count>9</comment_count>
      <attachid>401333</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 08:58:25 -0700</bug_when>
    <thetext>Comment on attachment 401333
Patch

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

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:319
&gt; +    m_sessions.add(session);

It seems m_sessions is only used here.
Can we even go further and remove m_sessions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660229</commentid>
    <comment_count>10</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-06-08 08:59:03 -0700</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #8)
&gt; Created attachment 401333 [details]
&gt; Patch
&gt; 
&gt; (In reply to youenn fablet from comment #7)
&gt; &gt; &gt; Source/WebCore/testing/Internals.h:53
&gt; &gt; &gt; +#include &quot;MediaKeys.h&quot;
&gt; &gt; 
&gt; &gt; Can we forward declare MediaKeySession and MediaKeys?
&gt; 
&gt; Nope, compiler complains.

That is a bit sad. What is the compilation error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660612</commentid>
    <comment_count>11</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-06-09 01:18:55 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #9)
&gt; &gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:319
&gt; &gt; +    m_sessions.add(session);
&gt; 
&gt; It seems m_sessions is only used here.
&gt; Can we even go further and remove m_sessions?

Nope, it will be used later in other patches.

(In reply to youenn fablet from comment #10)
&gt; (In reply to Xabier Rodríguez Calvar from comment #8)
&gt; &gt; Created attachment 401333 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; (In reply to youenn fablet from comment #7)
&gt; &gt; &gt; &gt; Source/WebCore/testing/Internals.h:53
&gt; &gt; &gt; &gt; +#include &quot;MediaKeys.h&quot;
&gt; &gt; &gt; 
&gt; &gt; &gt; Can we forward declare MediaKeySession and MediaKeys?
&gt; &gt; 
&gt; &gt; Nope, compiler complains.
&gt; 
&gt; That is a bit sad. What is the compilation error?

Easy:

DerivedSources/WebCore/JSInternals.cpp:12612:102: error: no viable conversion from &apos;WebCore::MediaKeys&apos; to incomplete type &apos;const MediaKeys&apos;
    auto result = JSValue::encode(toJS&lt;IDLUnsignedLong&gt;(impl.mediaKeysInternalInstanceObjectRefCount(*mediaKeys)));
                                                                                                     ^~~~~~~~~~
/home/calvaris/gnome/WebKit/Source/WebCore/testing/Internals.h:53:7: note: forward declaration of &apos;MediaKeys&apos;
class MediaKeys;
      ^
/home/calvaris/gnome/WebKit/Source/WebCore/testing/Internals.h:1028:70: note: passing argument to parameter here
    unsigned mediaKeysInternalInstanceObjectRefCount(const MediaKeys&amp;) const;
                                                                     ^</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660614</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-09 01:23:33 -0700</bug_when>
    <thetext>Committed r262781: &lt;https://trac.webkit.org/changeset/262781&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401333.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660616</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-09 01:24:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/64154743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660617</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-09 01:24:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/64154744&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400909</attachid>
            <date>2020-06-03 02:18:05 -0700</date>
            <delta_ts>2020-06-03 08:50:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212689-20200603111804.patch</filename>
            <type>text/plain</type>
            <size>13459</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uNjMwN2JlYTg4NWY1MDUzNmM2ODNlY2I3Mzc3Yjk2
Mjk3MmI3MmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ0RNUHJveHkgc2hvdWxkIG5vdCBrZWVwIENETUluc3RhbmNlU2Vzc2lvbnMgaGFyZCByZWZl
cmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZXNzaW9ucyBhcmUgbm93IHRyYWNrZWQgYXMgV2Vha1B0ciBpbnNpZGUgdGhlIENETUluc3RhbmNl
UHJveHkKKyAgICAgICAgaW5zdGVhZCBvZiBSZWZQdHIgYmVjYXVzZSB0aGlzIGNyZWF0ZXMgcmVm
ZXJlbmNpbmcgaXNzdWVzIGFzIHRoZQorICAgICAgICBpbnRlcm5hbCBvYmplY3RzIHNob3VsZCBi
ZSByZWxlYXNlZCB3aGVuIHRoZSBiYWNraW5nIEpTIG9iamVjdCBpcworICAgICAgICBnYXJiYWdl
IGNvbGxlY3RlZC4KKworICAgICAgICBUZXN0OiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJL
ZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5OjpwdXJn
ZU51bGxTZXNzaW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5Ojp0cmFj
a1Nlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5Lmg6
CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVByb3h5Ojp0cmFja1Nlc3Npb24pOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFy
S2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlQ2xlYXJLZXk6OmNyZWF0ZVNl
c3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjptZWRpYUtleXNJbnRlcm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYUtleVNlc3Npb25JbnRlcm5hbElu
c3RhbmNlU2Vzc2lvbk9iamVjdFJlZkNvdW50KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNS0zMSAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBuYW1lZCBpdGVt
IGNvbmRpdGlvbiBmb3IgaW1hZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAppbmRleCBiMmYzMWYzYjI1MGM5MmVi
YTgxYmJlNTdjMzYxMGI0ODI2YTUzZmFhLi5jZjU0NDAwYjVlNTljNWNjZmRiNTViM2NkMjMyNjNl
ODlhZjY1ZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKQEAgLTg2LDYgKzg2LDggQEAgcHVibGljOgogCiAg
ICAgY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWY8U2hhcmVkQnVmZmVyPiwgTWVkaWFLZXlTdGF0
dXM+PiYgc3RhdHVzZXMoKSBjb25zdCB7IHJldHVybiBtX3N0YXR1c2VzOyB9CiAKKyAgICB1bnNp
Z25lZCBpbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJlZkNvdW50KCkgeyByZXR1cm4gbV9p
bnN0YW5jZVNlc3Npb24tPnJlZkNvdW50KCk7IH0KKwogcHJpdmF0ZToKICAgICBNZWRpYUtleVNl
c3Npb24oRG9jdW1lbnQmLCBXZWFrUHRyPE1lZGlhS2V5cz4mJiwgTWVkaWFLZXlTZXNzaW9uVHlw
ZSwgYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIFJlZjxDRE0+JiYsIFJlZjxDRE1JbnN0
YW5jZVNlc3Npb24+JiYpOwogICAgIHZvaWQgZW5xdWV1ZU1lc3NhZ2UoTWVkaWFLZXlNZXNzYWdl
VHlwZSwgY29uc3QgU2hhcmVkQnVmZmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCAyOWNhNjA3OGQ1ZGQwZjgzZTM4ZDFm
YjJjMzM5YzNhMTBjY2UxOTNhLi5lZjRiMGUwMzYzNjYwZmUyMmVlYmQ0M2FkZTg2ZjQ1ZDYxYWJi
YmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlzLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgogICAgIGNvbnN0IHZvaWQqIG5leHRD
aGlsZElkZW50aWZpZXIoKSBjb25zdDsKICNlbmRpZgogCisgICAgdW5zaWduZWQgaW50ZXJuYWxJ
bnN0YW5jZU9iamVjdFJlZkNvdW50KCkgeyByZXR1cm4gbV9pbnN0YW5jZS0+cmVmQ291bnQoKTsg
fQorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFLZXlzKERvY3VtZW50JiwgYm9vbCB1c2VEaXN0aW5j
dGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCwgY29uc3QgVmVjdG9y
PE1lZGlhS2V5U2Vzc2lvblR5cGU+JiwgUmVmPENETT4mJiwgUmVmPENETUluc3RhbmNlPiYmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RN
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJv
eHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0NjRiM2I3Y2Q0OGUzODEuLmM2
ODVlM2U4MjQ4MGFiMGQwODcwMWRkMzIxNzZlMDBlOGFlMjRkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAgLTMxMyw2
ICszMTMsMjEgQEAgdm9pZCBDRE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbShjb25z
dCBLZXlTdG9yZSYga2V5U3RvcmUpCiAgICAgbV9rZXlTdG9yZS5yZW1vdmVBbGxLZXlzRnJvbShr
ZXlTdG9yZSk7CiB9CiAKK3ZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6cHVyZ2VOdWxsU2Vzc2lvbnMo
KQoreworICAgIG1fc2Vzc2lvbnMucmVtb3ZlQWxsTWF0Y2hpbmcoW3ZhbHVlID0gV2Vha1B0cjxD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eT4oKV0gKGNvbnN0IFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNz
aW9uUHJveHk+JiBjdXJyZW50KSB7CisgICAgICAgIHJldHVybiBjdXJyZW50ID09IHZhbHVlOwor
ICAgIH0pOworfQorCit2b2lkIENETUluc3RhbmNlUHJveHk6OnRyYWNrU2Vzc2lvbihXZWFrUHRy
PENETUluc3RhbmNlU2Vzc2lvblByb3h5PiYmIHNlc3Npb24pCit7CisgICAgQVNTRVJUKHNlc3Np
b24pOworICAgIHB1cmdlTnVsbFNlc3Npb25zKCk7CisgICAgQVNTRVJUKCFtX3Nlc3Npb25zLmNv
bnRhaW5zKHNlc3Npb24pKTsKKyAgICBtX3Nlc3Npb25zLmFwcGVuZChXVEZNb3ZlKHNlc3Npb24p
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1Qcm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2M2Q5OGMwZTA1ZjQ3MTM2MGUy
MWEuLjM4M2QwMTliMWFiMmVmMmQ4MGMxZmZiOTJjZTEwMzc5OTViNDU3NDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMTU1
LDYgKzE1NSw5IEBAIHByaXZhdGU6CiAgICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKK2Ns
YXNzIENETUluc3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwg
cHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFj
dG9yeUluaXRpYWxpemF0aW9uOjpFYWdlcj4geworfTsKKwogLy8gQmFzZSBjbGFzcyBmb3IgY29t
bW9uIHNlc3Npb24gbWFuYWdlbWVudCBjb2RlIGFuZCBmb3IgY29tbXVuaWNhdGluZyBtZXNzYWdl
cwogLy8gZnJvbSAicmVhbCBDRE0iIHN0YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0
YW5jZVByb3h5IDogcHVibGljIENETUluc3RhbmNlIHsKQEAgLTE4NSw5ICsxODgsMTEgQEAgcHVi
bGljOgogICAgIHZvaWQgc3RvcHBlZFdhaXRpbmdGb3JLZXkoKTsKIAogcHJvdGVjdGVkOgotICAg
IHZvaWQgdHJhY2tTZXNzaW9uKGNvbnN0IFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IHNlc3Np
b24pIHsgbV9zZXNzaW9ucy5hcHBlbmQoc2Vzc2lvbik7IH0KKyAgICB2b2lkIHRyYWNrU2Vzc2lv
bihXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5PiYmKTsKIAogcHJpdmF0ZToKKyAgICB2
b2lkIHB1cmdlTnVsbFNlc3Npb25zKCk7CisKICAgICBSZWZQdHI8Q0RNUHJveHk+IG1fY2RtUHJv
eHk7CiAgICAgLy8gRklYTUU6IFdlYWtQdHIgZm9yIHRoZSBtX3BsYXllcj8gVGhpcyBpcyBhY2Nl
c3NlZCBmcm9tIGJhY2tncm91bmQgYW5kIG1haW4gdGhyZWFkcywgaXQncwogICAgIC8vIGNvbmNl
cm5pbmcgd2UgY291bGQgYmUgYWNjZXNzaW5nIGl0IGluIHRoZSBtaWRkbGUgb2YgYSBzaHV0ZG93
biBvbiB0aGUgbWFpbi10aHJlYWQsIGVoPwpAQCAtMTk1LDcgKzIwMCw3IEBAIHByaXZhdGU6CiAg
ICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OyAvLyBGSVhNRTogTWFpblRocmVh
ZDxUPj8KIAogICAgIHN0ZDo6YXRvbWljPGludD4gbV9udW1EZWNyeXB0b3JzV2FpdGluZ0Zvcktl
eSB7IDAgfTsKLSAgICBWZWN0b3I8UmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4+IG1fc2Vzc2lv
bnM7CisgICAgVmVjdG9yPFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk+PiBtX3Nlc3Np
b25zOwogCiAgICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5jcHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4u
NTg0ZTE2NDk5YjI4NTA4ZDhlMzg3ZjIwMGZmMmI4YzIyY2NkNTQ5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5
L0NETUNsZWFyS2V5LmNwcApAQCAtNDYxLDkgKzQ2MSw5IEBAIGNvbnN0IFN0cmluZyYgQ0RNSW5z
dGFuY2VDbGVhcktleTo6a2V5U3lzdGVtKCkgY29uc3QKIAogUmVmUHRyPENETUluc3RhbmNlU2Vz
c2lvbj4gQ0RNSW5zdGFuY2VDbGVhcktleTo6Y3JlYXRlU2Vzc2lvbigpCiB7Ci0gICAgUmVmUHRy
PENETUluc3RhbmNlU2Vzc2lvbj4gbmV3U2Vzc2lvbiA9IGFkb3B0UmVmKG5ldyBDRE1JbnN0YW5j
ZVNlc3Npb25DbGVhcktleSgqdGhpcykpOwotICAgIHRyYWNrU2Vzc2lvbihuZXdTZXNzaW9uKTsK
LSAgICByZXR1cm4gbmV3U2Vzc2lvbjsKKyAgICBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSog
bmV3U2Vzc2lvbiA9IG5ldyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSgqdGhpcyk7CisgICAg
dHJhY2tTZXNzaW9uKG1ha2VXZWFrUHRyKG5ld1Nlc3Npb24pKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3U2Vzc2lvbik7CiB9CiAKIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OnJl
cXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlLCBjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUs
IFJlZjxTaGFyZWRCdWZmZXI+JiYgaW5pdERhdGEsIExpY2Vuc2VDYWxsYmFjayYmIGNhbGxiYWNr
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1l
ZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggNjY5N2EwNDU1YmVmMjkxNTViZjU5MDM4
NGY1MmYwNDI5MWFkYzA3Yi4uMDA2YzQ1YWZjZWI2YTZhYTU2NGY4ZjRmMzZjYTllOTJiNGI4OTNi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xl
YXJrZXkvQ0RNQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGlj
OgogICAgIFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oKSBmaW5hbDsK
IH07CiAKLWNsYXNzIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5IGZpbmFsIDogcHVibGljIENE
TUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lv
bkNsZWFyS2V5PiB7CitjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5hbCA6IHB1
YmxpYyBDRE1JbnN0YW5jZVNlc3Npb25Qcm94eSB7CiBwdWJsaWM6CiAgICAgQ0RNSW5zdGFuY2VT
ZXNzaW9uQ2xlYXJLZXkoQ0RNSW5zdGFuY2VDbGVhcktleSYgcGFyZW50KQogICAgICAgICA6IG1f
cGFyZW50SW5zdGFuY2UocGFyZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBkNThiNWNkNGQ4MzIwNjMyYWI0MjQ2MzJlZTgwZGUxM2QzN2Q5NjFkLi4wMjhiOTk5
NWUwYThhMGY4NTEwMDY3ZGYyNzA4MmM0NzcyZGM1ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC01NzY4LDUgKzU3NjgsMTYgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdl
YlhSVGVzdD4+IEludGVybmFsczo6eHJUZXN0KCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5D
UllQVEVEX01FRElBKQordW5zaWduZWQgSW50ZXJuYWxzOjptZWRpYUtleXNJbnRlcm5hbEluc3Rh
bmNlT2JqZWN0UmVmQ291bnQoTWVkaWFLZXlzJiBtZWRpYUtleXMpCit7CisgICAgcmV0dXJuIG1l
ZGlhS2V5cy5pbnRlcm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQoKTsKK30KKwordW5zaWduZWQg
SW50ZXJuYWxzOjptZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJl
ZkNvdW50KE1lZGlhS2V5U2Vzc2lvbiYgbWVkaWFLZXlTZXNzaW9uKQoreworICAgIHJldHVybiBt
ZWRpYUtleVNlc3Npb24uaW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudCgpOwor
fQorI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCmluZGV4IDFlYjg3OTMzY2VmNTBiNzhjNGE1NmZkZWQ3MzU2MjZkOWZmNDk0ZTIuLjEx
MGZlMGQ4MWQ0Y2NlNDk1ODgwZGM0Mzk3N2E3ODY0MDJiM2ZlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaApAQCAtNDgsNiArNDgsMTEgQEAKICNpbmNsdWRlICJNZWRpYUVsZW1lbnRT
ZXNzaW9uLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisjaW5jbHVk
ZSAiTWVkaWFLZXlTZXNzaW9uLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlzLmgiCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25UaW1lbGluZTsKQEAgLTEwMjIs
NiArMTAyNywxMSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVzdD4+
IHhyVGVzdCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHVu
c2lnbmVkIG1lZGlhS2V5c0ludGVybmFsSW5zdGFuY2VPYmplY3RSZWZDb3VudChNZWRpYUtleXMm
KTsKKyAgICB1bnNpZ25lZCBtZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9i
amVjdFJlZkNvdW50KE1lZGlhS2V5U2Vzc2lvbiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1
bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGMxMzk2
YjBiNDBmOWEyY2I3M2IwZGIxNWRhNjhkYzBiZWFiZDRjNTAuLmNhZWY1NTk4ODQ4ZGUxMzM1ZTEz
NjI5NDliOTdhN2ZiZjA2YTgzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTkxMyw0ICs5MTMsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFu
IGRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAKICAgICBb
Q29uZGl0aW9uYWw9V0VCWFIsIE1heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUg
V2ViWFJUZXN0IHhyVGVzdDsKKworICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVu
c2lnbmVkIGxvbmcgbWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KE1lZGlh
S2V5cyBtZWRpYUtleXMpOworICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVuc2ln
bmVkIGxvbmcgbWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZD
b3VudChNZWRpYUtleVNlc3Npb24gc2Vzc2lvbik7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMyMGI3NDkwODBkMWJl
ZDAwNDYyYzUyNzNhYmJjYjA1YTgxN2NlNzEuLjUyNTRmYzM5ODY4M2M2YjFmZTVhODk0MGQxYTFi
NGY4NTQ0NjFkMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNi0wMyAgWGFiaWVyIFJv
ZHJpZ3VleiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtFTUVdIENE
TVByb3h5IHNob3VsZCBub3Qga2VlcCBDRE1JbnN0YW5jZVNlc3Npb25zIGhhcmQgcmVmZXJlbmNl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjg5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRp
YS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFy
S2V5L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNS0z
MSAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBuYW1l
ZCBpdGVtIGNvbmRpdGlvbiBmb3IgaW1hZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRp
YS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9j
bGVhcktleS1zZXNzaW9uLWxpZmUtY3ljbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NzNh
ZTlkNWMyNGM3YTNhNDE5MjA4YjgyOGI0ZDE4YWM3ZjExMWQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lv
bi1saWZlLWN5Y2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK0VNRSBBUEkgaXMg
c3VwcG9ydGVkIE9LCitFWFBFQ1RFRCAoX21lZGlhS2V5c1N5c3RlbUFjY2Vzcy5rZXlTeXN0ZW0g
PT0gJ29yZy53My5jbGVhcmtleScpIE9LCitFWFBFQ1RFRCAoX21lZGlhS2V5cyAhPSAnbnVsbCcp
IE9LCitFWFBFQ1RFRCAodHlwZW9mIF9tZWRpYUtleXMuY3JlYXRlU2Vzc2lvbiA9PSAnZnVuY3Rp
b24nKSBPSworRVhQRUNURUQgKF9tZWRpYUtleVNlc3Npb24uY29uc3RydWN0b3IubmFtZSA9PSAn
TWVkaWFLZXlTZXNzaW9uJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMubWVkaWFLZXlzSW50ZXJu
YWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KF9tZWRpYUtleXMpID09ICcxJykgT0sKK0VYUEVDVEVE
IChpbnRlcm5hbHMubWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RS
ZWZDb3VudChfbWVkaWFLZXlTZXNzaW9uKSA9PSAnMScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJL
ZXktc2Vzc2lvbi1saWZlLWN5Y2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQt
bWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTMyZjU1OTQyZmZhZmZkYzdiMmY1ZjUyNWFiZjk1YjQxMjQ0N2EzYwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktl
eS1zZXNzaW9uLWxpZmUtY3ljbGUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkVuY3J5cHRlZCBDbGVhcktleSBTZXNzaW9u
IGxpZmUgY3ljbGVzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWFzLWVuYy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgdmFyIF9tZWRpYUtleXNTeXN0ZW1BY2Nlc3M7CisgICAgdmFy
IF9tZWRpYUtleXM7CisgICAgdmFyIF9tZWRpYUtleVNlc3Npb247CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0KCkgeworICAgICAgICBpZiAoIW5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1B
Y2Nlc3MpIHsKKyAgICAgICAgICAgIGxvZ1Jlc3VsdChmYWxzZSwgIkVNRSBBUEkgaXMgbm90IHN1
cHBvcnRlZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgbG9nUmVzdWx0KHRydWUsICJFTUUgQVBJIGlzIHN1cHBvcnRlZCIpOworICAgICAgICB9
CisKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IFsKKyAgICAgICAgICAgIHsgICAgaW5pdERhdGFU
eXBlczogWyJjZW5jIl0sCisgICAgICAgICAgICAgICAgIHZpZGVvQ2FwYWJpbGl0aWVzOiBbe2Nv
bnRlbnRUeXBlIDogJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjY0MDAxRiInfV0gfQorICAgICAg
ICBdOworCisgICAgICAgIG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoJ29y
Zy53My5jbGVhcmtleScsIG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24oYWNjZXNzKSB7CisgICAgICAg
ICAgICBfbWVkaWFLZXlzU3lzdGVtQWNjZXNzID0gYWNjZXNzOworICAgICAgICAgICAgdGVzdEV4
cGVjdGVkKCJfbWVkaWFLZXlzU3lzdGVtQWNjZXNzLmtleVN5c3RlbSIsICdvcmcudzMuY2xlYXJr
ZXknKTsKKyAgICAgICAgICAgIHJldHVybiBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCk7CisgICAg
ICAgIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICBfbWVkaWFLZXlzID0g
cmVzdWx0OworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJfbWVkaWFLZXlzIiwgbnVsbCwgIiE9
Iik7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInR5cGVvZiBfbWVkaWFLZXlzLmNyZWF0ZVNl
c3Npb24iLCAnZnVuY3Rpb24nKTsKKyAgICAgICAgICAgIF9tZWRpYUtleVNlc3Npb24gPSBfbWVk
aWFLZXlzLmNyZWF0ZVNlc3Npb24oKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiX21lZGlh
S2V5U2Vzc2lvbi5jb25zdHJ1Y3Rvci5uYW1lIiwgJ01lZGlhS2V5U2Vzc2lvbicpOworICAgICAg
ICAgICAgdGVzdEV4cGVjdGVkKCJpbnRlcm5hbHMubWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9i
amVjdFJlZkNvdW50KF9tZWRpYUtleXMpIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQo
ImludGVybmFscy5tZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJl
ZkNvdW50KF9tZWRpYUtleVNlc3Npb24pIiwgMSk7CisgICAgICAgICAgICBlbmRUZXN0KCk7Cisg
ICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGZhaWx1cmUpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0
KGZhaWx1cmUpOworICAgICAgICB9KTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHZpZGVvPjwvdmlkZW8+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400922</attachid>
            <date>2020-06-03 08:52:20 -0700</date>
            <delta_ts>2020-06-06 08:30:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212689-20200603175219.patch</filename>
            <type>text/plain</type>
            <size>14878</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyMzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3OWI1NzFkNGJlZmU4
Zjc3MTc4NTU5MjMyMGFlN2Y3OWExYjQ3Yy4uZDE4NTIzNmQ2MWQ5ZmRlYWNjMDlkYzMzMGI3MjM3
MTZkMzRjNmQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA2LTAzICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ0RNUHJveHkgc2hvdWxkIG5vdCBrZWVwIENETUluc3RhbmNlU2Vzc2lvbnMgaGFyZCByZWZl
cmVuY2VkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTI2ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
ZXNzaW9ucyBhcmUgbm93IHRyYWNrZWQgYXMgV2Vha1B0ciBpbnNpZGUgdGhlIENETUluc3RhbmNl
UHJveHkKKyAgICAgICAgaW5zdGVhZCBvZiBSZWZQdHIgYmVjYXVzZSB0aGlzIGNyZWF0ZXMgcmVm
ZXJlbmNpbmcgaXNzdWVzIGFzIHRoZQorICAgICAgICBpbnRlcm5hbCBvYmplY3RzIHNob3VsZCBi
ZSByZWxlYXNlZCB3aGVuIHRoZSBiYWNraW5nIEpTIG9iamVjdCBpcworICAgICAgICBnYXJiYWdl
IGNvbGxlY3RlZC4KKworICAgICAgICBUZXN0OiBtZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJL
ZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlw
dGVkbWVkaWEvTWVkaWFLZXlzLmg6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleXMuaWRsOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnB1cmdlTnVsbFNlc3Np
b25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnRyYWNrU2Vzc2lvbik6
CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlUHJveHk6OnRyYWNrU2Vzc2lvbik6IERlbGV0ZWQuCisgICAg
ICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VDbGVhcktleTo6Y3JlYXRlU2Vzc2lvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaDoK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRl
cm5hbHM6Om1lZGlhS2V5c0ludGVybmFsSW5zdGFuY2VPYmplY3RSZWZDb3VudCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6Om1lZGlhS2V5U2Vzc2lvbkludGVybmFsSW5zdGFuY2VTZXNz
aW9uT2JqZWN0UmVmQ291bnQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTA1LTMxICBSb2IgQnVpcyAgPHJi
dWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG5hbWVkIGl0ZW0gY29uZGl0aW9u
IGZvciBpbWFnZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGIyZjMxZjNiMjUwYzkyZWJhODFiYmU1N2Mz
NjEwYjQ4MjZhNTNmYWEuLmNmNTQ0MDBiNWU1OWM1Y2NmZGI1NWIzY2QyMzI2M2U4OWFmNjVmMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFL
ZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleVNlc3Npb24uaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBW
ZWN0b3I8c3RkOjpwYWlyPFJlZjxTaGFyZWRCdWZmZXI+LCBNZWRpYUtleVN0YXR1cz4+JiBzdGF0
dXNlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdHVzZXM7IH0KIAorICAgIHVuc2lnbmVkIGludGVy
bmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoKSB7IHJldHVybiBtX2luc3RhbmNlU2Vz
c2lvbi0+cmVmQ291bnQoKTsgfQorCiBwcml2YXRlOgogICAgIE1lZGlhS2V5U2Vzc2lvbihEb2N1
bWVudCYsIFdlYWtQdHI8TWVkaWFLZXlzPiYmLCBNZWRpYUtleVNlc3Npb25UeXBlLCBib29sIHVz
ZURpc3RpbmN0aXZlSWRlbnRpZmllciwgUmVmPENETT4mJiwgUmVmPENETUluc3RhbmNlU2Vzc2lv
bj4mJik7CiAgICAgdm9pZCBlbnF1ZXVlTWVzc2FnZShNZWRpYUtleU1lc3NhZ2VUeXBlLCBjb25z
dCBTaGFyZWRCdWZmZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbAppbmRleCBiYmU2OGM1MmM2OGFhMjJl
NjQ2M2E2NTgwYmQ0ZDViNzI0YzQwYzI1Li41ZTdmY2FhZDVlZTBhZjk5Yjk3NDNkZDZiYjlmZmNi
NmRhNDRmNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsCkBAIC0zMCw2ICszMCw3IEBACiAgICAgQWN0
aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQSwKICAgICBFbmFi
bGVkQXRSdW50aW1lPUVuY3J5cHRlZE1lZGlhQVBJLAorICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0
aW9uLAogICAgIERpc2FibGVkQnlRdWlyaz1oYXNCcm9rZW5FbmNyeXB0ZWRNZWRpYUFQSVN1cHBv
cnQsCiBdIGludGVyZmFjZSBNZWRpYUtleVNlc3Npb24gOiBFdmVudFRhcmdldCB7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZXNzaW9uSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCAyOWNhNjA3OGQ1ZGQw
ZjgzZTM4ZDFmYjJjMzM5YzNhMTBjY2UxOTNhLi5lZjRiMGUwMzYzNjYwZmUyMmVlYmQ0M2FkZTg2
ZjQ1ZDYxYWJiYmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlzLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgogICAgIGNvbnN0IHZv
aWQqIG5leHRDaGlsZElkZW50aWZpZXIoKSBjb25zdDsKICNlbmRpZgogCisgICAgdW5zaWduZWQg
aW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KCkgeyByZXR1cm4gbV9pbnN0YW5jZS0+cmVm
Q291bnQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFLZXlzKERvY3VtZW50JiwgYm9vbCB1
c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCwgY29u
c3QgVmVjdG9yPE1lZGlhS2V5U2Vzc2lvblR5cGU+JiwgUmVmPENETT4mJiwgUmVmPENETUluc3Rh
bmNlPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleXMuaWRsCmluZGV4IDc0NjMyNDJjNjgxMzBiMDk2ZWQ5NzVjYTUzZTlmMzJmMDM4
YTkwYjcuLjU2MGE2ODM2OGRjMzNmMGEzNGU5MTc3NTgyYjg5YTQ3MGMwNmQyY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5pZGwK
QEAgLTI5LDYgKzI5LDcgQEAKIFsKICAgICBDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUEsCiAg
ICAgRW5hYmxlZEF0UnVudGltZT1FbmNyeXB0ZWRNZWRpYUFQSSwKKyAgICBFeHBvcnRUb1dyYXBw
ZWRGdW5jdGlvbiwKICAgICBEaXNhYmxlZEJ5UXVpcms9aGFzQnJva2VuRW5jcnlwdGVkTWVkaWFB
UElTdXBwb3J0LAogXSBpbnRlcmZhY2UgTWVkaWFLZXlzIHsKICAgICBbQ2FsbFdpdGg9RG9jdW1l
bnQsIE1heVRocm93RXhjZXB0aW9uXSBNZWRpYUtleVNlc3Npb24gY3JlYXRlU2Vzc2lvbihvcHRp
b25hbCBNZWRpYUtleVNlc3Npb25UeXBlIHNlc3Npb25UeXBlID0gInRlbXBvcmFyeSIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3Bw
CmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0NjRiM2I3Y2Q0OGUzODEuLmM2ODVlM2U4
MjQ4MGFiMGQwODcwMWRkMzIxNzZlMDBlOGFlMjRkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAgLTMxMyw2ICszMTMs
MjEgQEAgdm9pZCBDRE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlT
dG9yZSYga2V5U3RvcmUpCiAgICAgbV9rZXlTdG9yZS5yZW1vdmVBbGxLZXlzRnJvbShrZXlTdG9y
ZSk7CiB9CiAKK3ZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6cHVyZ2VOdWxsU2Vzc2lvbnMoKQorewor
ICAgIG1fc2Vzc2lvbnMucmVtb3ZlQWxsTWF0Y2hpbmcoW3ZhbHVlID0gV2Vha1B0cjxDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eT4oKV0gKGNvbnN0IFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uUHJv
eHk+JiBjdXJyZW50KSB7CisgICAgICAgIHJldHVybiBjdXJyZW50ID09IHZhbHVlOworICAgIH0p
OworfQorCit2b2lkIENETUluc3RhbmNlUHJveHk6OnRyYWNrU2Vzc2lvbihXZWFrUHRyPENETUlu
c3RhbmNlU2Vzc2lvblByb3h5PiYmIHNlc3Npb24pCit7CisgICAgQVNTRVJUKHNlc3Npb24pOwor
ICAgIHB1cmdlTnVsbFNlc3Npb25zKCk7CisgICAgQVNTRVJUKCFtX3Nlc3Npb25zLmNvbnRhaW5z
KHNlc3Npb24pKTsKKyAgICBtX3Nlc3Npb25zLmFwcGVuZChXVEZNb3ZlKHNlc3Npb24pKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5oCmluZGV4IGMwMDViNDFjNjA2NzZmZGYzN2Y2M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLjM4
M2QwMTliMWFiMmVmMmQ4MGMxZmZiOTJjZTEwMzc5OTViNDU3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMTU1LDYgKzE1
NSw5IEBAIHByaXZhdGU6CiAgICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKK2NsYXNzIENE
TUluc3RhbmNlU2Vzc2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9yeUlu
aXRpYWxpemF0aW9uOjpFYWdlcj4geworfTsKKwogLy8gQmFzZSBjbGFzcyBmb3IgY29tbW9uIHNl
c3Npb24gbWFuYWdlbWVudCBjb2RlIGFuZCBmb3IgY29tbXVuaWNhdGluZyBtZXNzYWdlcwogLy8g
ZnJvbSAicmVhbCBDRE0iIHN0YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0YW5jZVBy
b3h5IDogcHVibGljIENETUluc3RhbmNlIHsKQEAgLTE4NSw5ICsxODgsMTEgQEAgcHVibGljOgog
ICAgIHZvaWQgc3RvcHBlZFdhaXRpbmdGb3JLZXkoKTsKIAogcHJvdGVjdGVkOgotICAgIHZvaWQg
dHJhY2tTZXNzaW9uKGNvbnN0IFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IHNlc3Npb24pIHsg
bV9zZXNzaW9ucy5hcHBlbmQoc2Vzc2lvbik7IH0KKyAgICB2b2lkIHRyYWNrU2Vzc2lvbihXZWFr
UHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5PiYmKTsKIAogcHJpdmF0ZToKKyAgICB2b2lkIHB1
cmdlTnVsbFNlc3Npb25zKCk7CisKICAgICBSZWZQdHI8Q0RNUHJveHk+IG1fY2RtUHJveHk7CiAg
ICAgLy8gRklYTUU6IFdlYWtQdHIgZm9yIHRoZSBtX3BsYXllcj8gVGhpcyBpcyBhY2Nlc3NlZCBm
cm9tIGJhY2tncm91bmQgYW5kIG1haW4gdGhyZWFkcywgaXQncwogICAgIC8vIGNvbmNlcm5pbmcg
d2UgY291bGQgYmUgYWNjZXNzaW5nIGl0IGluIHRoZSBtaWRkbGUgb2YgYSBzaHV0ZG93biBvbiB0
aGUgbWFpbi10aHJlYWQsIGVoPwpAQCAtMTk1LDcgKzIwMCw3IEBAIHByaXZhdGU6CiAgICAgTWVk
aWFQbGF5ZXIqIG1fcGxheWVyIHsgbnVsbHB0ciB9OyAvLyBGSVhNRTogTWFpblRocmVhZDxUPj8K
IAogICAgIHN0ZDo6YXRvbWljPGludD4gbV9udW1EZWNyeXB0b3JzV2FpdGluZ0ZvcktleSB7IDAg
fTsKLSAgICBWZWN0b3I8UmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4+IG1fc2Vzc2lvbnM7Cisg
ICAgVmVjdG9yPFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk+PiBtX3Nlc3Npb25zOwog
CiAgICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5j
cHAKaW5kZXggZGFhM2NlYzI1MzA2NzE0MGEyZmUzYjUyMjI5NDUwZDA4ODkyM2ZiMy4uNTg0ZTE2
NDk5YjI4NTA4ZDhlMzg3ZjIwMGZmMmI4YzIyY2NkNTQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5LmNwcApAQCAtNDYxLDkgKzQ2MSw5IEBAIGNvbnN0IFN0cmluZyYgQ0RNSW5zdGFuY2VD
bGVhcktleTo6a2V5U3lzdGVtKCkgY29uc3QKIAogUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4g
Q0RNSW5zdGFuY2VDbGVhcktleTo6Y3JlYXRlU2Vzc2lvbigpCiB7Ci0gICAgUmVmUHRyPENETUlu
c3RhbmNlU2Vzc2lvbj4gbmV3U2Vzc2lvbiA9IGFkb3B0UmVmKG5ldyBDRE1JbnN0YW5jZVNlc3Np
b25DbGVhcktleSgqdGhpcykpOwotICAgIHRyYWNrU2Vzc2lvbihuZXdTZXNzaW9uKTsKLSAgICBy
ZXR1cm4gbmV3U2Vzc2lvbjsKKyAgICBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSogbmV3U2Vz
c2lvbiA9IG5ldyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSgqdGhpcyk7CisgICAgdHJhY2tT
ZXNzaW9uKG1ha2VXZWFrUHRyKG5ld1Nlc3Npb24pKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
U2Vzc2lvbik7CiB9CiAKIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OnJlcXVlc3RM
aWNlbnNlKExpY2Vuc2VUeXBlLCBjb25zdCBBdG9tU3RyaW5nJiBpbml0RGF0YVR5cGUsIFJlZjxT
aGFyZWRCdWZmZXI+JiYgaW5pdERhdGEsIExpY2Vuc2VDYWxsYmFjayYmIGNhbGxiYWNrKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2Ns
ZWFya2V5L0NETUNsZWFyS2V5LmgKaW5kZXggNjY5N2EwNDU1YmVmMjkxNTViZjU5MDM4NGY1MmYw
NDI5MWFkYzA3Yi4uMDA2YzQ1YWZjZWI2YTZhYTU2NGY4ZjRmMzZjYTllOTJiNGI4OTNiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9jbGVhcmtleS9DRE1DbGVhcktleS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAg
IFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oKSBmaW5hbDsKIH07CiAK
LWNsYXNzIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETUluc3Rh
bmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvbkNsZWFy
S2V5PiB7CitjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5hbCA6IHB1YmxpYyBD
RE1JbnN0YW5jZVNlc3Npb25Qcm94eSB7CiBwdWJsaWM6CiAgICAgQ0RNSW5zdGFuY2VTZXNzaW9u
Q2xlYXJLZXkoQ0RNSW5zdGFuY2VDbGVhcktleSYgcGFyZW50KQogICAgICAgICA6IG1fcGFyZW50
SW5zdGFuY2UocGFyZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRl
eCBkNThiNWNkNGQ4MzIwNjMyYWI0MjQ2MzJlZTgwZGUxM2QzN2Q5NjFkLi4wMjhiOTk5NWUwYThh
MGY4NTEwMDY3ZGYyNzA4MmM0NzcyZGM1ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCkBAIC01NzY4LDUgKzU3NjgsMTYgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVz
dD4+IEludGVybmFsczo6eHJUZXN0KCkKIAogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVE
X01FRElBKQordW5zaWduZWQgSW50ZXJuYWxzOjptZWRpYUtleXNJbnRlcm5hbEluc3RhbmNlT2Jq
ZWN0UmVmQ291bnQoTWVkaWFLZXlzJiBtZWRpYUtleXMpCit7CisgICAgcmV0dXJuIG1lZGlhS2V5
cy5pbnRlcm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQoKTsKK30KKwordW5zaWduZWQgSW50ZXJu
YWxzOjptZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJlZkNvdW50
KE1lZGlhS2V5U2Vzc2lvbiYgbWVkaWFLZXlTZXNzaW9uKQoreworICAgIHJldHVybiBtZWRpYUtl
eVNlc3Npb24uaW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudCgpOworfQorI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDFlYjg3OTMzY2VmNTBiNzhjNGE1NmZkZWQ3MzU2MjZkOWZmNDk0ZTIuLjExMGZlMGQ4
MWQ0Y2NlNDk1ODgwZGM0Mzk3N2E3ODY0MDJiM2ZlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtNDgsNiArNDgsMTEgQEAKICNpbmNsdWRlICJNZWRpYUVsZW1lbnRTZXNzaW9u
LmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisjaW5jbHVkZSAiTWVk
aWFLZXlTZXNzaW9uLmgiCisjaW5jbHVkZSAiTWVkaWFLZXlzLmgiCisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBBbmltYXRpb25UaW1lbGluZTsKQEAgLTEwMjIsNiArMTAy
NywxMSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVzdD4+IHhyVGVz
dCgpOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHVuc2lnbmVk
IG1lZGlhS2V5c0ludGVybmFsSW5zdGFuY2VPYmplY3RSZWZDb3VudChNZWRpYUtleXMmKTsKKyAg
ICB1bnNpZ25lZCBtZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJl
ZkNvdW50KE1lZGlhS2V5U2Vzc2lvbiYpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGlj
aXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGMxMzk2YjBiNDBm
OWEyY2I3M2IwZGIxNWRhNjhkYzBiZWFiZDRjNTAuLmNhZWY1NTk4ODQ4ZGUxMzM1ZTEzNjI5NDli
OTdhN2ZiZjA2YTgzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkx
Myw0ICs5MTMsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGRlc3Ry
b3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAKICAgICBbQ29uZGl0
aW9uYWw9V0VCWFIsIE1heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJU
ZXN0IHhyVGVzdDsKKworICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVuc2lnbmVk
IGxvbmcgbWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KE1lZGlhS2V5cyBt
ZWRpYUtleXMpOworICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVuc2lnbmVkIGxv
bmcgbWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudChN
ZWRpYUtleVNlc3Npb24gc2Vzc2lvbik7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMyMGI3NDkwODBkMWJlZDAwNDYy
YzUyNzNhYmJjYjA1YTgxN2NlNzEuLjUyNTRmYzM5ODY4M2M2YjFmZTVhODk0MGQxYTFiNGY4NTQ0
NjFkMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0wNi0wMyAgWGFiaWVyIFJvZHJpZ3Vl
eiBDYWx2YXIgIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtFTUVdIENETVByb3h5
IHNob3VsZCBub3Qga2VlcCBDRE1JbnN0YW5jZVNlc3Npb25zIGhhcmQgcmVmZXJlbmNlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2Ns
ZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNS0zMSAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBuYW1lZCBpdGVt
IGNvbmRpdGlvbiBmb3IgaW1hZ2VzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNy
eXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktl
eS1zZXNzaW9uLWxpZmUtY3ljbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1NzNhZTlkNWMy
NGM3YTNhNDE5MjA4YjgyOGI0ZDE4YWM3ZjExMWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZl
LWN5Y2xlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACisKK0VNRSBBUEkgaXMgc3VwcG9y
dGVkIE9LCitFWFBFQ1RFRCAoX21lZGlhS2V5c1N5c3RlbUFjY2Vzcy5rZXlTeXN0ZW0gPT0gJ29y
Zy53My5jbGVhcmtleScpIE9LCitFWFBFQ1RFRCAoX21lZGlhS2V5cyAhPSAnbnVsbCcpIE9LCitF
WFBFQ1RFRCAodHlwZW9mIF9tZWRpYUtleXMuY3JlYXRlU2Vzc2lvbiA9PSAnZnVuY3Rpb24nKSBP
SworRVhQRUNURUQgKF9tZWRpYUtleVNlc3Npb24uY29uc3RydWN0b3IubmFtZSA9PSAnTWVkaWFL
ZXlTZXNzaW9uJykgT0sKK0VYUEVDVEVEIChpbnRlcm5hbHMubWVkaWFLZXlzSW50ZXJuYWxJbnN0
YW5jZU9iamVjdFJlZkNvdW50KF9tZWRpYUtleXMpID09ICcxJykgT0sKK0VYUEVDVEVEIChpbnRl
cm5hbHMubWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3Vu
dChfbWVkaWFLZXlTZXNzaW9uKSA9PSAnMScpIE9LCitFTkQgT0YgVEVTVAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vz
c2lvbi1saWZlLWN5Y2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
Y2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTMy
ZjU1OTQyZmZhZmZkYzdiMmY1ZjUyNWFiZjk1YjQxMjQ0N2EzYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNz
aW9uLWxpZmUtY3ljbGUuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHRpdGxlPkVuY3J5cHRlZCBDbGVhcktleSBTZXNzaW9uIGxpZmUg
Y3ljbGVzPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWFzLWVuYy5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3ZpZGVvLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQ+CisgICAgdmFyIF9tZWRpYUtleXNTeXN0ZW1BY2Nlc3M7CisgICAgdmFyIF9tZWRp
YUtleXM7CisgICAgdmFyIF9tZWRpYUtleVNlc3Npb247CisKKyAgICBmdW5jdGlvbiBydW5UZXN0
KCkgeworICAgICAgICBpZiAoIW5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3Mp
IHsKKyAgICAgICAgICAgIGxvZ1Jlc3VsdChmYWxzZSwgIkVNRSBBUEkgaXMgbm90IHN1cHBvcnRl
ZCIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
bG9nUmVzdWx0KHRydWUsICJFTUUgQVBJIGlzIHN1cHBvcnRlZCIpOworICAgICAgICB9CisKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IFsKKyAgICAgICAgICAgIHsgICAgaW5pdERhdGFUeXBlczog
WyJjZW5jIl0sCisgICAgICAgICAgICAgICAgIHZpZGVvQ2FwYWJpbGl0aWVzOiBbe2NvbnRlbnRU
eXBlIDogJ3ZpZGVvL21wNDsgY29kZWNzPSJhdmMxLjY0MDAxRiInfV0gfQorICAgICAgICBdOwor
CisgICAgICAgIG5hdmlnYXRvci5yZXF1ZXN0TWVkaWFLZXlTeXN0ZW1BY2Nlc3MoJ29yZy53My5j
bGVhcmtleScsIG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24oYWNjZXNzKSB7CisgICAgICAgICAgICBf
bWVkaWFLZXlzU3lzdGVtQWNjZXNzID0gYWNjZXNzOworICAgICAgICAgICAgdGVzdEV4cGVjdGVk
KCJfbWVkaWFLZXlzU3lzdGVtQWNjZXNzLmtleVN5c3RlbSIsICdvcmcudzMuY2xlYXJrZXknKTsK
KyAgICAgICAgICAgIHJldHVybiBhY2Nlc3MuY3JlYXRlTWVkaWFLZXlzKCk7CisgICAgICAgIH0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICBfbWVkaWFLZXlzID0gcmVzdWx0
OworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJfbWVkaWFLZXlzIiwgbnVsbCwgIiE9Iik7Cisg
ICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInR5cGVvZiBfbWVkaWFLZXlzLmNyZWF0ZVNlc3Npb24i
LCAnZnVuY3Rpb24nKTsKKyAgICAgICAgICAgIF9tZWRpYUtleVNlc3Npb24gPSBfbWVkaWFLZXlz
LmNyZWF0ZVNlc3Npb24oKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiX21lZGlhS2V5U2Vz
c2lvbi5jb25zdHJ1Y3Rvci5uYW1lIiwgJ01lZGlhS2V5U2Vzc2lvbicpOworICAgICAgICAgICAg
dGVzdEV4cGVjdGVkKCJpbnRlcm5hbHMubWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJl
ZkNvdW50KF9tZWRpYUtleXMpIiwgMSk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImludGVy
bmFscy5tZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVjdFJlZkNvdW50
KF9tZWRpYUtleVNlc3Npb24pIiwgMSk7CisgICAgICAgICAgICBlbmRUZXN0KCk7CisgICAgICAg
IH0pLmNhdGNoKGZ1bmN0aW9uKGZhaWx1cmUpIHsKKyAgICAgICAgICAgIGZhaWxUZXN0KGZhaWx1
cmUpOworICAgICAgICB9KTsKKyAgICB9CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHZpZGVvPjwvdmlkZW8+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401260</attachid>
            <date>2020-06-06 08:30:40 -0700</date>
            <delta_ts>2020-06-08 07:34:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212689-20200606173038.patch</filename>
            <type>text/plain</type>
            <size>14430</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM1YzAyMTQyNjVjMDVl
ZTAyNGM3ZmNhODQ2MTk3YWMxMTFjMTFkNy4uYWZmZjIzMmIzNDEzZWFjODlhNDE0Mzc0NDNmYWE2
ZmE1MWUyMjJhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIwLTA2LTA2ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV0gQ0RNUHJveHlJbnN0YW5jZSBzaG91bGQgbm90IGtlZXAgQ0RNSW5zdGFuY2VTZXNzaW9ucyBo
YXJkIHJlZmVyZW5jZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxMjY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFNlc3Npb25zIGFyZSBub3cgdHJhY2tlZCBhcyBXZWFrUHRyIGluc2lkZSB0aGUgQ0RN
SW5zdGFuY2VQcm94eQorICAgICAgICBpbnN0ZWFkIG9mIFJlZlB0ciBiZWNhdXNlIHRoaXMgY3Jl
YXRlcyByZWZlcmVuY2luZyBpc3N1ZXMgYXMgdGhlCisgICAgICAgIGludGVybmFsIG9iamVjdHMg
c2hvdWxkIGJlIHJlbGVhc2VkIHdoZW4gdGhlIGJhY2tpbmcgSlMgb2JqZWN0IGlzCisgICAgICAg
IGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgICAgIFRlc3Q6IG1lZGlhL2VuY3J5cHRlZC1tZWRp
YS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxpZmUtY3ljbGUuaHRtbAorCisgICAgICAgICog
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGw6CisgICAgICAgICogTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRl
ZG1lZGlhL01lZGlhS2V5cy5pZGw6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQcm94eTo6dHJhY2tT
ZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oOgor
ICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQcm94eTo6dHJhY2tTZXNzaW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktl
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjpjcmVhdGVTZXNz
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6bWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0
YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMjAtMDYtMDQgIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRU1F
XVtHU3RyZWFtZXJdIGNkbVByb3h5QXR0YWNoZWQgZG9lcyBub3QgbmVlZCB0byBmb3JjZSBhIGJ1
bXAgcmVmIGluIHRoZSBzaWduYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5oCmluZGV4IGIyZjMxZjNiMjUwYzky
ZWJhODFiYmU1N2MzNjEwYjQ4MjZhNTNmYWEuLmNmNTQ0MDBiNWU1OWM1Y2NmZGI1NWIzY2QyMzI2
M2U4OWFmNjVmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaApAQCAtODYsNiArODYsOCBAQCBwdWJsaWM6CiAK
ICAgICBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZjxTaGFyZWRCdWZmZXI+LCBNZWRpYUtleVN0
YXR1cz4+JiBzdGF0dXNlcygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdHVzZXM7IH0KIAorICAgIHVu
c2lnbmVkIGludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoKSB7IHJldHVybiBt
X2luc3RhbmNlU2Vzc2lvbi0+cmVmQ291bnQoKTsgfQorCiBwcml2YXRlOgogICAgIE1lZGlhS2V5
U2Vzc2lvbihEb2N1bWVudCYsIFdlYWtQdHI8TWVkaWFLZXlzPiYmLCBNZWRpYUtleVNlc3Npb25U
eXBlLCBib29sIHVzZURpc3RpbmN0aXZlSWRlbnRpZmllciwgUmVmPENETT4mJiwgUmVmPENETUlu
c3RhbmNlU2Vzc2lvbj4mJik7CiAgICAgdm9pZCBlbnF1ZXVlTWVzc2FnZShNZWRpYUtleU1lc3Nh
Z2VUeXBlLCBjb25zdCBTaGFyZWRCdWZmZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlTZXNzaW9uLmlkbAppbmRleCBiYmU2
OGM1MmM2OGFhMjJlNjQ2M2E2NTgwYmQ0ZDViNzI0YzQwYzI1Li41ZTdmY2FhZDVlZTBhZjk5Yjk3
NDNkZDZiYjlmZmNiNmRhNDRmNmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsCkBAIC0zMCw2ICszMCw3
IEBACiAgICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJ
QSwKICAgICBFbmFibGVkQXRSdW50aW1lPUVuY3J5cHRlZE1lZGlhQVBJLAorICAgIEV4cG9ydFRv
V3JhcHBlZEZ1bmN0aW9uLAogICAgIERpc2FibGVkQnlRdWlyaz1oYXNCcm9rZW5FbmNyeXB0ZWRN
ZWRpYUFQSVN1cHBvcnQsCiBdIGludGVyZmFjZSBNZWRpYUtleVNlc3Npb24gOiBFdmVudFRhcmdl
dCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBzZXNzaW9uSWQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCAy
OWNhNjA3OGQ1ZGQwZjgzZTM4ZDFmYjJjMzM5YzNhMTBjY2UxOTNhLi5lZjRiMGUwMzYzNjYwZmUy
MmVlYmQ0M2FkZTg2ZjQ1ZDYxYWJiYmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmgKQEAgLTgwLDYgKzgwLDggQEAgcHVibGljOgog
ICAgIGNvbnN0IHZvaWQqIG5leHRDaGlsZElkZW50aWZpZXIoKSBjb25zdDsKICNlbmRpZgogCisg
ICAgdW5zaWduZWQgaW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KCkgeyByZXR1cm4gbV9p
bnN0YW5jZS0+cmVmQ291bnQoKTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFLZXlzKERvY3Vt
ZW50JiwgYm9vbCB1c2VEaXN0aW5jdGl2ZUlkZW50aWZpZXIsIGJvb2wgcGVyc2lzdGVudFN0YXRl
QWxsb3dlZCwgY29uc3QgVmVjdG9yPE1lZGlhS2V5U2Vzc2lvblR5cGU+JiwgUmVmPENETT4mJiwg
UmVmPENETUluc3RhbmNlPiYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsCmluZGV4IDc0NjMyNDJjNjgxMzBiMDk2ZWQ5NzVj
YTUzZTlmMzJmMDM4YTkwYjcuLjU2MGE2ODM2OGRjMzNmMGEzNGU5MTc3NTgyYjg5YTQ3MGMwNmQy
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVk
aWFLZXlzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5pZGwKQEAgLTI5LDYgKzI5LDcgQEAKIFsKICAgICBDb25kaXRpb25hbD1FTkNSWVBU
RURfTUVESUEsCiAgICAgRW5hYmxlZEF0UnVudGltZT1FbmNyeXB0ZWRNZWRpYUFQSSwKKyAgICBF
eHBvcnRUb1dyYXBwZWRGdW5jdGlvbiwKICAgICBEaXNhYmxlZEJ5UXVpcms9aGFzQnJva2VuRW5j
cnlwdGVkTWVkaWFBUElTdXBwb3J0LAogXSBpbnRlcmZhY2UgTWVkaWFLZXlzIHsKICAgICBbQ2Fs
bFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uXSBNZWRpYUtleVNlc3Npb24gY3JlYXRl
U2Vzc2lvbihvcHRpb25hbCBNZWRpYUtleVNlc3Npb25UeXBlIHNlc3Npb25UeXBlID0gInRlbXBv
cmFyeSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVk
aWEvQ0RNUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNUHJveHkuY3BwCmluZGV4IDM2YzdjZWY0YWM2YWQyZGNlYWU2YmE5ODA0NjRiM2I3Y2Q0OGUz
ODEuLjA1MjFkOWQ3ZGMyNmQ2Njg4YWQzMTI2Y2RmNWNmYmNjMzE1ZjFjMDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAg
LTMxMyw2ICszMTMsMTMgQEAgdm9pZCBDRE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJv
bShjb25zdCBLZXlTdG9yZSYga2V5U3RvcmUpCiAgICAgbV9rZXlTdG9yZS5yZW1vdmVBbGxLZXlz
RnJvbShrZXlTdG9yZSk7CiB9CiAKK3ZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6dHJhY2tTZXNzaW9u
KFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uUHJveHk+JiYgc2Vzc2lvbikKK3sKKyAgICBBU1NF
UlQoc2Vzc2lvbik7CisgICAgQVNTRVJUKCFtX3Nlc3Npb25zLmNvbnRhaW5zKHNlc3Npb24pKTsK
KyAgICBtX3Nlc3Npb25zLmFwcGVuZChXVEZNb3ZlKHNlc3Npb24pKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4
IGMwMDViNDFjNjA2NzZmZGYzN2Y2M2Q5OGMwZTA1ZjQ3MTM2MGUyMWEuLmUyN2ZhNDc0ZmI3NjA3
MjI2MDAwNjRiZjQ4NTI5NWMzYTcxNWMzMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApAQCAtMTU1LDYgKzE1NSw5IEBAIHByaXZh
dGU6CiAgICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKK2NsYXNzIENETUluc3RhbmNlU2Vz
c2lvblByb3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9u
OjpFYWdlcj4geworfTsKKwogLy8gQmFzZSBjbGFzcyBmb3IgY29tbW9uIHNlc3Npb24gbWFuYWdl
bWVudCBjb2RlIGFuZCBmb3IgY29tbXVuaWNhdGluZyBtZXNzYWdlcwogLy8gZnJvbSAicmVhbCBD
RE0iIHN0YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0YW5jZVByb3h5IDogcHVibGlj
IENETUluc3RhbmNlIHsKQEAgLTE4NSw3ICsxODgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9w
cGVkV2FpdGluZ0ZvcktleSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCB0cmFja1Nlc3Npb24o
Y29uc3QgUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gc2Vzc2lvbikgeyBtX3Nlc3Npb25zLmFw
cGVuZChzZXNzaW9uKTsgfQorICAgIHZvaWQgdHJhY2tTZXNzaW9uKFdlYWtQdHI8Q0RNSW5zdGFu
Y2VTZXNzaW9uUHJveHk+JiYpOwogCiBwcml2YXRlOgogICAgIFJlZlB0cjxDRE1Qcm94eT4gbV9j
ZG1Qcm94eTsKQEAgLTE5NSw3ICsxOTgsNyBAQCBwcml2YXRlOgogICAgIE1lZGlhUGxheWVyKiBt
X3BsYXllciB7IG51bGxwdHIgfTsgLy8gRklYTUU6IE1haW5UaHJlYWQ8VD4/CiAKICAgICBzdGQ6
OmF0b21pYzxpbnQ+IG1fbnVtRGVjcnlwdG9yc1dhaXRpbmdGb3JLZXkgeyAwIH07Ci0gICAgVmVj
dG9yPFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+PiBtX3Nlc3Npb25zOworICAgIFZlY3RvcjxX
ZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvblByb3h5Pj4gbV9zZXNzaW9uczsKIAogICAgIEtleVN0
b3JlIG1fa2V5U3RvcmU7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCmluZGV4IGRh
YTNjZWMyNTMwNjcxNDBhMmZlM2I1MjIyOTQ1MGQwODg5MjNmYjMuLjU4NGUxNjQ5OWIyODUwOGQ4
ZTM4N2YyMDBmZjJiOGMyMmNjZDU0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAK
QEAgLTQ2MSw5ICs0NjEsOSBAQCBjb25zdCBTdHJpbmcmIENETUluc3RhbmNlQ2xlYXJLZXk6Omtl
eVN5c3RlbSgpIGNvbnN0CiAKIFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Npb24+IENETUluc3RhbmNl
Q2xlYXJLZXk6OmNyZWF0ZVNlc3Npb24oKQogewotICAgIFJlZlB0cjxDRE1JbnN0YW5jZVNlc3Np
b24+IG5ld1Nlc3Npb24gPSBhZG9wdFJlZihuZXcgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXko
KnRoaXMpKTsKLSAgICB0cmFja1Nlc3Npb24obmV3U2Vzc2lvbik7Ci0gICAgcmV0dXJuIG5ld1Nl
c3Npb247CisgICAgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkqIG5ld1Nlc3Npb24gPSBuZXcg
Q0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkoKnRoaXMpOworICAgIHRyYWNrU2Vzc2lvbihtYWtl
V2Vha1B0cihuZXdTZXNzaW9uKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ld1Nlc3Npb24pOwog
fQogCiB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5OjpyZXF1ZXN0TGljZW5zZShMaWNl
bnNlVHlwZSwgY29uc3QgQXRvbVN0cmluZyYgaW5pdERhdGFUeXBlLCBSZWY8U2hhcmVkQnVmZmVy
PiYmIGluaXREYXRhLCBMaWNlbnNlQ2FsbGJhY2smJiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5oCmluZGV4IDY2OTdhMDQ1NWJlZjI5MTU1YmY1OTAzODRmNTJmMDQyOTFhZGMwN2Iu
LjAwNmM0NWFmY2ViNmE2YWE1NjRmOGY0ZjM2Y2E5ZTkyYjRiODkzYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaApAQCAtMTA0LDcgKzEwNCw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8Q0RN
SW5zdGFuY2VTZXNzaW9uPiBjcmVhdGVTZXNzaW9uKCkgZmluYWw7CiB9OwogCi1jbGFzcyBDRE1J
bnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5jZVNlc3Npb24s
IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleT4geworY2xh
c3MgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkgZmluYWwgOiBwdWJsaWMgQ0RNSW5zdGFuY2VT
ZXNzaW9uUHJveHkgewogcHVibGljOgogICAgIENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5KENE
TUluc3RhbmNlQ2xlYXJLZXkmIHBhcmVudCkKICAgICAgICAgOiBtX3BhcmVudEluc3RhbmNlKHBh
cmVudCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZDU4YjVjZDRk
ODMyMDYzMmFiNDI0NjMyZWU4MGRlMTNkMzdkOTYxZC4uMDI4Yjk5OTVlMGE4YTBmODUxMDA2N2Rm
MjcwODJjNDc3MmRjNTg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
NTc2OCw1ICs1NzY4LDE2IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+PiBJbnRlcm5h
bHM6OnhyVGVzdCgpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3Vu
c2lnbmVkIEludGVybmFsczo6bWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50
KE1lZGlhS2V5cyYgbWVkaWFLZXlzKQoreworICAgIHJldHVybiBtZWRpYUtleXMuaW50ZXJuYWxJ
bnN0YW5jZU9iamVjdFJlZkNvdW50KCk7Cit9CisKK3Vuc2lnbmVkIEludGVybmFsczo6bWVkaWFL
ZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudChNZWRpYUtleVNl
c3Npb24mIG1lZGlhS2V5U2Vzc2lvbikKK3sKKyAgICByZXR1cm4gbWVkaWFLZXlTZXNzaW9uLmlu
dGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoKTsKK30KKyNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAxZWI4
NzkzM2NlZjUwYjc4YzRhNTZmZGVkNzM1NjI2ZDlmZjQ5NGUyLi4xMTBmZTBkODFkNGNjZTQ5NTg4
MGRjNDM5NzdhNzg2NDAyYjNmZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTQ4LDYgKzQ4LDExIEBACiAjaW5jbHVkZSAiTWVkaWFFbGVtZW50U2Vzc2lvbi5oIgogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorI2luY2x1ZGUgIk1lZGlhS2V5U2Vzc2lv
bi5oIgorI2luY2x1ZGUgIk1lZGlhS2V5cy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgQW5pbWF0aW9uVGltZWxpbmU7CkBAIC0xMDIyLDYgKzEwMjcsMTEgQEAgcHVi
bGljOgogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+PiB4clRlc3QoKTsKICNlbmRp
ZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICB1bnNpZ25lZCBtZWRpYUtleXNJ
bnRlcm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQoTWVkaWFLZXlzJik7CisgICAgdW5zaWduZWQg
bWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudChNZWRp
YUtleVNlc3Npb24mKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFs
cyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBjMTM5NmIwYjQwZjlhMmNiNzNiMGRi
MTVkYTY4ZGMwYmVhYmQ0YzUwLi5jYWVmNTU5ODg0OGRlMTMzNWUxMzYyOTQ5Yjk3YTdmYmYwNmE4
Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC05MTMsNCArOTEzLDcg
QEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgYm9vbGVhbiBkZXN0cm95U2xlZXBEaXNh
Ymxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwogCiAgICAgW0NvbmRpdGlvbmFsPVdFQlhS
LCBNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSVGVzdCB4clRlc3Q7
CisKKyAgICBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBXSB1bnNpZ25lZCBsb25nIG1lZGlh
S2V5c0ludGVybmFsSW5zdGFuY2VPYmplY3RSZWZDb3VudChNZWRpYUtleXMgbWVkaWFLZXlzKTsK
KyAgICBbQ29uZGl0aW9uYWw9RU5DUllQVEVEX01FRElBXSB1bnNpZ25lZCBsb25nIG1lZGlhS2V5
U2Vzc2lvbkludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoTWVkaWFLZXlTZXNz
aW9uIHNlc3Npb24pOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwMjEyYTM3OWYyYTE0M2RhYjNmMjU0ZTgyOWUwMDQ1
YWQxMjVlOWNjLi5iZTdiMWNkMWI0Njc3YzFmY2NjNDI1ZTQzZDY4NGI4YWU0OTdlMTVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDYtMDYgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8
Y2FsdmFyaXNAaWdhbGlhLmNvbT4KKworICAgICAgICBbRU1FXSBDRE1Qcm94eUluc3RhbmNlIHNo
b3VsZCBub3Qga2VlcCBDRE1JbnN0YW5jZVNlc3Npb25zIGhhcmQgcmVmZXJlbmNlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyNjg5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtZWRpYS9lbmNyeXB0
ZWQtbWVkaWEvY2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFy
S2V5LXNlc3Npb24tbGlmZS1jeWNsZS5odG1sOiBBZGRlZC4KKwogMjAyMC0wNi0wMiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0t
dGVzdHMvMmRjb250ZXh0IGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21l
ZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxpZmUtY3ljbGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5
L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjU3
M2FlOWQ1YzI0YzdhM2E0MTkyMDhiODI4YjRkMThhYzdmMTExZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNz
aW9uLWxpZmUtY3ljbGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworRU1FIEFQSSBp
cyBzdXBwb3J0ZWQgT0sKK0VYUEVDVEVEIChfbWVkaWFLZXlzU3lzdGVtQWNjZXNzLmtleVN5c3Rl
bSA9PSAnb3JnLnczLmNsZWFya2V5JykgT0sKK0VYUEVDVEVEIChfbWVkaWFLZXlzICE9ICdudWxs
JykgT0sKK0VYUEVDVEVEICh0eXBlb2YgX21lZGlhS2V5cy5jcmVhdGVTZXNzaW9uID09ICdmdW5j
dGlvbicpIE9LCitFWFBFQ1RFRCAoX21lZGlhS2V5U2Vzc2lvbi5jb25zdHJ1Y3Rvci5uYW1lID09
ICdNZWRpYUtleVNlc3Npb24nKSBPSworRVhQRUNURUQgKGludGVybmFscy5tZWRpYUtleXNJbnRl
cm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQoX21lZGlhS2V5cykgPT0gJzEnKSBPSworRVhQRUNU
RUQgKGludGVybmFscy5tZWRpYUtleVNlc3Npb25JbnRlcm5hbEluc3RhbmNlU2Vzc2lvbk9iamVj
dFJlZkNvdW50KF9tZWRpYUtleVNlc3Npb24pID09ICcxJykgT0sKK0VORCBPRiBURVNUCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVh
cktleS1zZXNzaW9uLWxpZmUtY3ljbGUuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2VuY3J5cHRl
ZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxpZmUtY3ljbGUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MzJmNTU5NDJmZmFmZmRjN2IyZjVmNTI1YWJmOTViNDEyNDQ3YTNjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFy
S2V5LXNlc3Npb24tbGlmZS1jeWNsZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+RW5jcnlwdGVkIENsZWFyS2V5IFNlc3Np
b24gbGlmZSBjeWNsZXM8L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYXMtZW5jLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdD4KKyAgICB2YXIgX21lZGlhS2V5c1N5c3RlbUFjY2VzczsKKyAgICB2
YXIgX21lZGlhS2V5czsKKyAgICB2YXIgX21lZGlhS2V5U2Vzc2lvbjsKKworICAgIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CisgICAgICAgIGlmICghbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3Rl
bUFjY2VzcykgeworICAgICAgICAgICAgbG9nUmVzdWx0KGZhbHNlLCAiRU1FIEFQSSBpcyBub3Qg
c3VwcG9ydGVkIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBsb2dSZXN1bHQodHJ1ZSwgIkVNRSBBUEkgaXMgc3VwcG9ydGVkIik7CisgICAgICAg
IH0KKworICAgICAgICBjb25zdCBvcHRpb25zID0gWworICAgICAgICAgICAgeyAgICBpbml0RGF0
YVR5cGVzOiBbImNlbmMiXSwKKyAgICAgICAgICAgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7
Y29udGVudFR5cGUgOiAndmlkZW8vbXA0OyBjb2RlY3M9ImF2YzEuNjQwMDFGIid9XSB9CisgICAg
ICAgIF07CisKKyAgICAgICAgbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygn
b3JnLnczLmNsZWFya2V5Jywgb3B0aW9ucykudGhlbihmdW5jdGlvbihhY2Nlc3MpIHsKKyAgICAg
ICAgICAgIF9tZWRpYUtleXNTeXN0ZW1BY2Nlc3MgPSBhY2Nlc3M7CisgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoIl9tZWRpYUtleXNTeXN0ZW1BY2Nlc3Mua2V5U3lzdGVtIiwgJ29yZy53My5jbGVh
cmtleScpOworICAgICAgICAgICAgcmV0dXJuIGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKTsKKyAg
ICAgICAgfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgIF9tZWRpYUtleXMg
PSByZXN1bHQ7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIl9tZWRpYUtleXMiLCBudWxsLCAi
IT0iKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidHlwZW9mIF9tZWRpYUtleXMuY3JlYXRl
U2Vzc2lvbiIsICdmdW5jdGlvbicpOworICAgICAgICAgICAgX21lZGlhS2V5U2Vzc2lvbiA9IF9t
ZWRpYUtleXMuY3JlYXRlU2Vzc2lvbigpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJfbWVk
aWFLZXlTZXNzaW9uLmNvbnN0cnVjdG9yLm5hbWUiLCAnTWVkaWFLZXlTZXNzaW9uJyk7CisgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoImludGVybmFscy5tZWRpYUtleXNJbnRlcm5hbEluc3RhbmNl
T2JqZWN0UmVmQ291bnQoX21lZGlhS2V5cykiLCAxKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgiaW50ZXJuYWxzLm1lZGlhS2V5U2Vzc2lvbkludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0
UmVmQ291bnQoX21lZGlhS2V5U2Vzc2lvbikiLCAxKTsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsK
KyAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24oZmFpbHVyZSkgeworICAgICAgICAgICAgZmFpbFRl
c3QoZmFpbHVyZSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8dmlkZW8+PC92aWRlbz4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401333</attachid>
            <date>2020-06-08 07:34:15 -0700</date>
            <delta_ts>2020-06-09 01:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>13469</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMjljNWIwNmZhNGIuLjQzN2EyYzE5NGIwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDIwLTA2LTA2ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW0VNRV0gQ0RNUHJveHlJbnN0YW5jZSBzaG91bGQgbm90IGtlZXAgQ0RN
SW5zdGFuY2VTZXNzaW9ucyBoYXJkIHJlZmVyZW5jZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5
L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxpZmUt
Y3ljbGUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDYtMDYgIFl1c3VrZSBTdXp1a2kgIDx5c3V6dWtp
QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCB3aGVuIHJ1bm5pbmcgd2ViLWFwaXMgZGF0YSBj
b2xsZWN0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9lbmNyeXB0ZWQtbWVkaWEv
Y2xlYXJLZXkvY2xlYXJLZXktc2Vzc2lvbi1saWZlLWN5Y2xlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL21lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxp
ZmUtY3ljbGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMC4uMjU3M2FlOWQ1YzI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEv
ZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCitFTUUgQVBJIGlzIHN1cHBvcnRlZCBPSworRVhQ
RUNURUQgKF9tZWRpYUtleXNTeXN0ZW1BY2Nlc3Mua2V5U3lzdGVtID09ICdvcmcudzMuY2xlYXJr
ZXknKSBPSworRVhQRUNURUQgKF9tZWRpYUtleXMgIT0gJ251bGwnKSBPSworRVhQRUNURUQgKHR5
cGVvZiBfbWVkaWFLZXlzLmNyZWF0ZVNlc3Npb24gPT0gJ2Z1bmN0aW9uJykgT0sKK0VYUEVDVEVE
IChfbWVkaWFLZXlTZXNzaW9uLmNvbnN0cnVjdG9yLm5hbWUgPT0gJ01lZGlhS2V5U2Vzc2lvbicp
IE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLm1lZGlhS2V5c0ludGVybmFsSW5zdGFuY2VPYmplY3RS
ZWZDb3VudChfbWVkaWFLZXlzKSA9PSAnMScpIE9LCitFWFBFQ1RFRCAoaW50ZXJuYWxzLm1lZGlh
S2V5U2Vzc2lvbkludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoX21lZGlhS2V5
U2Vzc2lvbikgPT0gJzEnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1j
eWNsZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2Ns
ZWFyS2V5LXNlc3Npb24tbGlmZS1jeWNsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uOTMyZjU1OTQyZmZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvbWVkaWEvZW5jcnlwdGVkLW1lZGlhL2NsZWFyS2V5L2NsZWFyS2V5LXNlc3Npb24tbGlmZS1j
eWNsZS5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+RW5jcnlwdGVkIENsZWFyS2V5IFNlc3Npb24gbGlmZSBjeWNsZXM8L3Rp
dGxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYXMtZW5jLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vdmlkZW8tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4K
KyAgICB2YXIgX21lZGlhS2V5c1N5c3RlbUFjY2VzczsKKyAgICB2YXIgX21lZGlhS2V5czsKKyAg
ICB2YXIgX21lZGlhS2V5U2Vzc2lvbjsKKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAg
ICAgIGlmICghbmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2VzcykgeworICAgICAg
ICAgICAgbG9nUmVzdWx0KGZhbHNlLCAiRU1FIEFQSSBpcyBub3Qgc3VwcG9ydGVkIik7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2dSZXN1bHQo
dHJ1ZSwgIkVNRSBBUEkgaXMgc3VwcG9ydGVkIik7CisgICAgICAgIH0KKworICAgICAgICBjb25z
dCBvcHRpb25zID0gWworICAgICAgICAgICAgeyAgICBpbml0RGF0YVR5cGVzOiBbImNlbmMiXSwK
KyAgICAgICAgICAgICAgICAgdmlkZW9DYXBhYmlsaXRpZXM6IFt7Y29udGVudFR5cGUgOiAndmlk
ZW8vbXA0OyBjb2RlY3M9ImF2YzEuNjQwMDFGIid9XSB9CisgICAgICAgIF07CisKKyAgICAgICAg
bmF2aWdhdG9yLnJlcXVlc3RNZWRpYUtleVN5c3RlbUFjY2Vzcygnb3JnLnczLmNsZWFya2V5Jywg
b3B0aW9ucykudGhlbihmdW5jdGlvbihhY2Nlc3MpIHsKKyAgICAgICAgICAgIF9tZWRpYUtleXNT
eXN0ZW1BY2Nlc3MgPSBhY2Nlc3M7CisgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoIl9tZWRpYUtl
eXNTeXN0ZW1BY2Nlc3Mua2V5U3lzdGVtIiwgJ29yZy53My5jbGVhcmtleScpOworICAgICAgICAg
ICAgcmV0dXJuIGFjY2Vzcy5jcmVhdGVNZWRpYUtleXMoKTsKKyAgICAgICAgfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgIF9tZWRpYUtleXMgPSByZXN1bHQ7CisgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoIl9tZWRpYUtleXMiLCBudWxsLCAiIT0iKTsKKyAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgidHlwZW9mIF9tZWRpYUtleXMuY3JlYXRlU2Vzc2lvbiIsICdmdW5jdGlv
bicpOworICAgICAgICAgICAgX21lZGlhS2V5U2Vzc2lvbiA9IF9tZWRpYUtleXMuY3JlYXRlU2Vz
c2lvbigpOworICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJfbWVkaWFLZXlTZXNzaW9uLmNvbnN0
cnVjdG9yLm5hbWUiLCAnTWVkaWFLZXlTZXNzaW9uJyk7CisgICAgICAgICAgICB0ZXN0RXhwZWN0
ZWQoImludGVybmFscy5tZWRpYUtleXNJbnRlcm5hbEluc3RhbmNlT2JqZWN0UmVmQ291bnQoX21l
ZGlhS2V5cykiLCAxKTsKKyAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiaW50ZXJuYWxzLm1lZGlh
S2V5U2Vzc2lvbkludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoX21lZGlhS2V5
U2Vzc2lvbikiLCAxKTsKKyAgICAgICAgICAgIGVuZFRlc3QoKTsKKyAgICAgICAgfSkuY2F0Y2go
ZnVuY3Rpb24oZmFpbHVyZSkgeworICAgICAgICAgICAgZmFpbFRlc3QoZmFpbHVyZSk7CisgICAg
ICAgIH0pOworICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKyAgICA8dmlkZW8+PC92aWRlbz4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBhMzU0MThlNWI3NTUuLmYzNWQyN2YyNGNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0
IEBACisyMDIwLTA2LTA2ICBYYWJpZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxp
YS5jb20+CisKKyAgICAgICAgW0VNRV0gQ0RNUHJveHlJbnN0YW5jZSBzaG91bGQgbm90IGtlZXAg
Q0RNSW5zdGFuY2VTZXNzaW9ucyBoYXJkIHJlZmVyZW5jZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjY4OQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlc3Npb25zIGFyZSBub3cgdHJhY2tlZCBhcyBX
ZWFrUHRyIGluc2lkZSB0aGUgQ0RNSW5zdGFuY2VQcm94eQorICAgICAgICBpbnN0ZWFkIG9mIFJl
ZlB0ciBiZWNhdXNlIHRoaXMgY3JlYXRlcyByZWZlcmVuY2luZyBpc3N1ZXMgYXMgdGhlCisgICAg
ICAgIGludGVybmFsIG9iamVjdHMgc2hvdWxkIGJlIHJlbGVhc2VkIHdoZW4gdGhlIGJhY2tpbmcg
SlMgb2JqZWN0IGlzCisgICAgICAgIGdhcmJhZ2UgY29sbGVjdGVkLgorCisgICAgICAgIFRlc3Q6
IG1lZGlhL2VuY3J5cHRlZC1tZWRpYS9jbGVhcktleS9jbGVhcktleS1zZXNzaW9uLWxpZmUtY3lj
bGUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Np
b24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5p
ZGw6CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5pZGw6CisgICAgICAgICogcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
SW5zdGFuY2VQcm94eTo6dHJhY2tTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQcm94eTo6
dHJhY2tTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtl
eS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5
OjpjcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVh
cmtleS9DRE1DbGVhcktleS5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVj
dFJlZkNvdW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWVkaWFLZXlT
ZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudCBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDYtMDcgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEVfVklERU9fVFJBQ0sgaWZkZWYgZ3VhcmRzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNl
c3Npb24uaAppbmRleCBiMmYzMWYzYjI1MGMuLmI3MTAyMGZjMzkzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleVNlc3Npb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5U2Vzc2lvbi5o
CkBAIC04Niw2ICs4Niw4IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8
UmVmPFNoYXJlZEJ1ZmZlcj4sIE1lZGlhS2V5U3RhdHVzPj4mIHN0YXR1c2VzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGF0dXNlczsgfQogCisgICAgdW5zaWduZWQgaW50ZXJuYWxJbnN0YW5jZVNlc3Np
b25PYmplY3RSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zdGFuY2VTZXNzaW9uLT5yZWZD
b3VudCgpOyB9CisKIHByaXZhdGU6CiAgICAgTWVkaWFLZXlTZXNzaW9uKERvY3VtZW50JiwgV2Vh
a1B0cjxNZWRpYUtleXM+JiYsIE1lZGlhS2V5U2Vzc2lvblR5cGUsIGJvb2wgdXNlRGlzdGluY3Rp
dmVJZGVudGlmaWVyLCBSZWY8Q0RNPiYmLCBSZWY8Q0RNSW5zdGFuY2VTZXNzaW9uPiYmKTsKICAg
ICB2b2lkIGVucXVldWVNZXNzYWdlKE1lZGlhS2V5TWVzc2FnZVR5cGUsIGNvbnN0IFNoYXJlZEJ1
ZmZlciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVNlc3Npb24uaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleVNlc3Npb24uaWRsCmluZGV4IGJiZTY4YzUyYzY4YS4uNWU3ZmNhYWQ1ZWUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlh
S2V5U2Vzc2lvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9NZWRpYUtleVNlc3Npb24uaWRsCkBAIC0zMCw2ICszMCw3IEBACiAgICAgQWN0aXZlRE9NT2Jq
ZWN0LAogICAgIENvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQSwKICAgICBFbmFibGVkQXRSdW50
aW1lPUVuY3J5cHRlZE1lZGlhQVBJLAorICAgIEV4cG9ydFRvV3JhcHBlZEZ1bmN0aW9uLAogICAg
IERpc2FibGVkQnlRdWlyaz1oYXNCcm9rZW5FbmNyeXB0ZWRNZWRpYUFQSVN1cHBvcnQsCiBdIGlu
dGVyZmFjZSBNZWRpYUtleVNlc3Npb24gOiBFdmVudFRhcmdldCB7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBzZXNzaW9uSWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaAppbmRleCAyOWNhNjA3OGQ1ZGQuLjJmMzEzNWZk
MzRiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9N
ZWRpYUtleXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5oCkBAIC04MCw2ICs4MCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCB2b2lkKiBuZXh0
Q2hpbGRJZGVudGlmaWVyKCkgY29uc3Q7CiAjZW5kaWYKIAorICAgIHVuc2lnbmVkIGludGVybmFs
SW5zdGFuY2VPYmplY3RSZWZDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5zdGFuY2UtPnJlZkNv
dW50KCk7IH0KKwogcHJvdGVjdGVkOgogICAgIE1lZGlhS2V5cyhEb2N1bWVudCYsIGJvb2wgdXNl
RGlzdGluY3RpdmVJZGVudGlmaWVyLCBib29sIHBlcnNpc3RlbnRTdGF0ZUFsbG93ZWQsIGNvbnN0
IFZlY3RvcjxNZWRpYUtleVNlc3Npb25UeXBlPiYsIFJlZjxDRE0+JiYsIFJlZjxDRE1JbnN0YW5j
ZT4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVk
aWEvTWVkaWFLZXlzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
TWVkaWFLZXlzLmlkbAppbmRleCA3NDYzMjQyYzY4MTMuLjU2MGE2ODM2OGRjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmlkbApA
QCAtMjksNiArMjksNyBAQAogWwogICAgIENvbmRpdGlvbmFsPUVOQ1JZUFRFRF9NRURJQSwKICAg
ICBFbmFibGVkQXRSdW50aW1lPUVuY3J5cHRlZE1lZGlhQVBJLAorICAgIEV4cG9ydFRvV3JhcHBl
ZEZ1bmN0aW9uLAogICAgIERpc2FibGVkQnlRdWlyaz1oYXNCcm9rZW5FbmNyeXB0ZWRNZWRpYUFQ
SVN1cHBvcnQsCiBdIGludGVyZmFjZSBNZWRpYUtleXMgewogICAgIFtDYWxsV2l0aD1Eb2N1bWVu
dCwgTWF5VGhyb3dFeGNlcHRpb25dIE1lZGlhS2V5U2Vzc2lvbiBjcmVhdGVTZXNzaW9uKG9wdGlv
bmFsIE1lZGlhS2V5U2Vzc2lvblR5cGUgc2Vzc2lvblR5cGUgPSAidGVtcG9yYXJ5Iik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAK
aW5kZXggMzZjN2NlZjRhYzZhLi5mOWEwNjdiYjFlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAgLTMxMyw2ICszMTMs
MTIgQEAgdm9pZCBDRE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlT
dG9yZSYga2V5U3RvcmUpCiAgICAgbV9rZXlTdG9yZS5yZW1vdmVBbGxLZXlzRnJvbShrZXlTdG9y
ZSk7CiB9CiAKK3ZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6dHJhY2tTZXNzaW9uKGNvbnN0IENETUlu
c3RhbmNlU2Vzc2lvblByb3h5JiBzZXNzaW9uKQoreworICAgIEFTU0VSVCghbV9zZXNzaW9ucy5j
b250YWlucyhzZXNzaW9uKSk7CisgICAgbV9zZXNzaW9ucy5hZGQoc2Vzc2lvbik7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShFTkNSWVBURURfTUVESUEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Q
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHku
aAppbmRleCBjMDA1YjQxYzYwNjcuLmI0NmVmNjcwYTA1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3JIYXNoLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTU1LDYgKzE1Niw5IEBAIHByaXZhdGU6CiAg
ICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKK2NsYXNzIENETUluc3RhbmNlU2Vzc2lvblBy
b3h5IDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENE
TUluc3RhbmNlU2Vzc2lvblByb3h5LCBXZWFrUHRyRmFjdG9yeUluaXRpYWxpemF0aW9uOjpFYWdl
cj4geworfTsKKwogLy8gQmFzZSBjbGFzcyBmb3IgY29tbW9uIHNlc3Npb24gbWFuYWdlbWVudCBj
b2RlIGFuZCBmb3IgY29tbXVuaWNhdGluZyBtZXNzYWdlcwogLy8gZnJvbSAicmVhbCBDRE0iIHN0
YXRlIGNoYW5nZXMgdG8gSlMuCiBjbGFzcyBDRE1JbnN0YW5jZVByb3h5IDogcHVibGljIENETUlu
c3RhbmNlIHsKQEAgLTE4NSw3ICsxODksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wcGVkV2Fp
dGluZ0ZvcktleSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCB0cmFja1Nlc3Npb24oY29uc3Qg
UmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gc2Vzc2lvbikgeyBtX3Nlc3Npb25zLmFwcGVuZChz
ZXNzaW9uKTsgfQorICAgIHZvaWQgdHJhY2tTZXNzaW9uKGNvbnN0IENETUluc3RhbmNlU2Vzc2lv
blByb3h5Jik7CiAKIHByaXZhdGU6CiAgICAgUmVmUHRyPENETVByb3h5PiBtX2NkbVByb3h5OwpA
QCAtMTk1LDcgKzE5OSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXIqIG1fcGxheWVyIHsg
bnVsbHB0ciB9OyAvLyBGSVhNRTogTWFpblRocmVhZDxUPj8KIAogICAgIHN0ZDo6YXRvbWljPGlu
dD4gbV9udW1EZWNyeXB0b3JzV2FpdGluZ0ZvcktleSB7IDAgfTsKLSAgICBWZWN0b3I8UmVmUHRy
PENETUluc3RhbmNlU2Vzc2lvbj4+IG1fc2Vzc2lvbnM7CisgICAgV2Vha0hhc2hTZXQ8Q0RNSW5z
dGFuY2VTZXNzaW9uUHJveHk+IG1fc2Vzc2lvbnM7CiAKICAgICBLZXlTdG9yZSBtX2tleVN0b3Jl
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5
cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAppbmRleCBkYWEzY2VjMjUzMDYuLmNm
MmQ1ZjFkYjNlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVk
bWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNDYxLDggKzQ2
MSw4IEBAIGNvbnN0IFN0cmluZyYgQ0RNSW5zdGFuY2VDbGVhcktleTo6a2V5U3lzdGVtKCkgY29u
c3QKIAogUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gQ0RNSW5zdGFuY2VDbGVhcktleTo6Y3Jl
YXRlU2Vzc2lvbigpCiB7Ci0gICAgUmVmUHRyPENETUluc3RhbmNlU2Vzc2lvbj4gbmV3U2Vzc2lv
biA9IGFkb3B0UmVmKG5ldyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSgqdGhpcykpOwotICAg
IHRyYWNrU2Vzc2lvbihuZXdTZXNzaW9uKTsKKyAgICBhdXRvIG5ld1Nlc3Npb24gPSBhZG9wdFJl
ZihuZXcgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXkoKnRoaXMpKTsKKyAgICB0cmFja1Nlc3Np
b24oKm5ld1Nlc3Npb24pOwogICAgIHJldHVybiBuZXdTZXNzaW9uOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVh
cktleS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkv
Q0RNQ2xlYXJLZXkuaAppbmRleCA2Njk3YTA0NTViZWYuLjAwNmM0NWFmY2ViNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVh
cmtleS9DRE1DbGVhcktleS5oCkBAIC0xMDQsNyArMTA0LDcgQEAgcHVibGljOgogICAgIFJlZlB0
cjxDRE1JbnN0YW5jZVNlc3Npb24+IGNyZWF0ZVNlc3Npb24oKSBmaW5hbDsKIH07CiAKLWNsYXNz
IENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5IGZpbmFsIDogcHVibGljIENETUluc3RhbmNlU2Vz
c2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5PiB7
CitjbGFzcyBDRE1JbnN0YW5jZVNlc3Npb25DbGVhcktleSBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0
YW5jZVNlc3Npb25Qcm94eSB7CiBwdWJsaWM6CiAgICAgQ0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJL
ZXkoQ0RNSW5zdGFuY2VDbGVhcktleSYgcGFyZW50KQogICAgICAgICA6IG1fcGFyZW50SW5zdGFu
Y2UocGFyZW50KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjZDRh
YWM5MTE3NjEuLjdlOGMyMWQ1NjVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cApAQCAtNTc2Niw1ICs1NzY2LDE2IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+PiBJ
bnRlcm5hbHM6OnhyVGVzdCgpCiAKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJ
QSkKK3Vuc2lnbmVkIEludGVybmFsczo6bWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJl
ZkNvdW50KGNvbnN0IE1lZGlhS2V5cyYgbWVkaWFLZXlzKSBjb25zdAoreworICAgIHJldHVybiBt
ZWRpYUtleXMuaW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KCk7Cit9CisKK3Vuc2lnbmVk
IEludGVybmFsczo6bWVkaWFLZXlTZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RS
ZWZDb3VudChjb25zdCBNZWRpYUtleVNlc3Npb24mIG1lZGlhS2V5U2Vzc2lvbikgY29uc3QKK3sK
KyAgICByZXR1cm4gbWVkaWFLZXlTZXNzaW9uLmludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0
UmVmQ291bnQoKTsKK30KKyNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlM2UzYmQzOTFlYjMuLjRhMTcxYTI4NjYxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC00OCw2ICs0OCwxMSBAQAogI2luY2x1ZGUg
Ik1lZGlhRWxlbWVudFNlc3Npb24uaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKKyNpbmNsdWRlICJNZWRpYUtleVNlc3Npb24uaCIKKyNpbmNsdWRlICJNZWRpYUtleXMu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFuaW1hdGlvblRpbWVs
aW5lOwpAQCAtMTAxOSw2ICsxMDI0LDExIEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25PcjxSZWZQ
dHI8V2ViWFJUZXN0Pj4geHJUZXN0KCk7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShFTkNSWVBURURf
TUVESUEpCisgICAgdW5zaWduZWQgbWVkaWFLZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNv
dW50KGNvbnN0IE1lZGlhS2V5cyYpIGNvbnN0OworICAgIHVuc2lnbmVkIG1lZGlhS2V5U2Vzc2lv
bkludGVybmFsSW5zdGFuY2VTZXNzaW9uT2JqZWN0UmVmQ291bnQoY29uc3QgTWVkaWFLZXlTZXNz
aW9uJikgY29uc3Q7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMo
RG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjM4ZDg3YjI1NmUwLi41Yjc1ODA2ZDcw
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkxMyw0ICs5MTMsNyBA
QCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGRlc3Ryb3lTbGVlcERpc2Fi
bGVyKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllcik7CiAKICAgICBbQ29uZGl0aW9uYWw9V0VCWFIs
IE1heVRocm93RXhjZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJUZXN0IHhyVGVzdDsK
KworICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVuc2lnbmVkIGxvbmcgbWVkaWFL
ZXlzSW50ZXJuYWxJbnN0YW5jZU9iamVjdFJlZkNvdW50KE1lZGlhS2V5cyBtZWRpYUtleXMpOwor
ICAgIFtDb25kaXRpb25hbD1FTkNSWVBURURfTUVESUFdIHVuc2lnbmVkIGxvbmcgbWVkaWFLZXlT
ZXNzaW9uSW50ZXJuYWxJbnN0YW5jZVNlc3Npb25PYmplY3RSZWZDb3VudChNZWRpYUtleVNlc3Np
b24gc2Vzc2lvbik7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>