<?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>212103</bug_id>
          
          <creation_ts>2020-05-19 13:03:19 -0700</creation_ts>
          <short_desc>[Web Animations] Animation engine should not wake up every tick for steps timing functions</short_desc>
          <delta_ts>2024-05-21 02:40:10 -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>Animations</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654144</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-19 13:03:19 -0700</bug_when>
    <thetext>[Web Animations] Animation engine should not wake up every tick for steps timing functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654150</commentid>
    <comment_count>1</comment_count>
      <attachid>399764</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-19 13:12:08 -0700</bug_when>
    <thetext>Created attachment 399764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654151</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-19 13:12:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/62737868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654158</commentid>
    <comment_count>3</comment_count>
      <attachid>399764</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-19 13:26:25 -0700</bug_when>
    <thetext>Comment on attachment 399764
Patch

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

&gt; Source/WebCore/animation/AnimationEffect.cpp:547
&gt; +    if (!is&lt;StepsTimingFunction&gt;(m_timingFunction))
&gt; +        return WTF::nullopt;

Does this get called for animations whose keyframes all have the same value? Or did we optimize those out earlier?

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1825
&gt; +        if (intervalEndProgress &lt;= iterationProgress)
&gt; +            continue;
&gt; +
&gt; +        if (!i)
&gt; +            break;

This is pretty confusing. The !i makes it always break after i=0, but you continue earlier. Easier to grok if it&apos;s flipped around somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654167</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-19 13:48:00 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 399764 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399764&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/AnimationEffect.cpp:547
&gt; &gt; +    if (!is&lt;StepsTimingFunction&gt;(m_timingFunction))
&gt; &gt; +        return WTF::nullopt;
&gt; 
&gt; Does this get called for animations whose keyframes all have the same value?
&gt; Or did we optimize those out earlier?

We don’t optimize this case in any way for now. So this would get called for any animation.

&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1825
&gt; &gt; +        if (intervalEndProgress &lt;= iterationProgress)
&gt; &gt; +            continue;
&gt; &gt; +
&gt; &gt; +        if (!i)
&gt; &gt; +            break;
&gt; 
&gt; This is pretty confusing. The !i makes it always break after i=0, but you
&gt; continue earlier. Easier to grok if it&apos;s flipped around somehow.

The order matters here. We just want to be sure that we don’t deal with an implicit 0% keyframe since we wouldn’t have a blending keyframe for that and would otherwise crash trying to access its timing function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654374</commentid>
    <comment_count>5</comment_count>
      <attachid>399827</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 03:45:53 -0700</bug_when>
    <thetext>Created attachment 399827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654376</commentid>
    <comment_count>6</comment_count>
      <attachid>399828</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 03:49:03 -0700</bug_when>
    <thetext>Created attachment 399828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654407</commentid>
    <comment_count>7</comment_count>
      <attachid>399835</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 06:59:14 -0700</bug_when>
    <thetext>Created attachment 399835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654442</commentid>
    <comment_count>8</comment_count>
      <attachid>399835</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-05-20 08:15:30 -0700</bug_when>
    <thetext>Comment on attachment 399835
Patch

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

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1476
&gt; +    if (index &lt; 0)
&gt; +        return nullptr;

size_t is unsigned, this can never happen.

&gt; Source/WebCore/animation/KeyframeEffect.cpp:1837
&gt; +Optional&lt;double&gt; KeyframeEffect::progressUntilNextStep(double iterationProgress) const

&quot;progress until&quot; is a bit ambiguous here. Maybe &quot;progress at next step&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654475</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 09:24:31 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 399835 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399835&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1476
&gt; &gt; +    if (index &lt; 0)
&gt; &gt; +        return nullptr;
&gt; 
&gt; size_t is unsigned, this can never happen.

Will remove in commit.

&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:1837
&gt; &gt; +Optional&lt;double&gt; KeyframeEffect::progressUntilNextStep(double iterationProgress) const
&gt; 
&gt; &quot;progress until&quot; is a bit ambiguous here. Maybe &quot;progress at next step&quot;?

&quot;progress at next step&quot; would not be correct, what we want to know is &quot;how much progress until the next step&quot;. I think within the context of determining the amount of time before the next step, which is the only scenario in which this method is used, this is clear enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654479</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 09:26:25 -0700</bug_when>
    <thetext>Committed r261926: &lt;https://trac.webkit.org/changeset/261926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654481</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-05-20 09:29:57 -0700</bug_when>
    <thetext>Committed r261927: &lt;https://trac.webkit.org/changeset/261927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2036689</commentid>
    <comment_count>12</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2024-05-21 02:40:10 -0700</bug_when>
    <thetext>*** Bug 45447 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399764</attachid>
            <date>2020-05-19 13:12:08 -0700</date>
            <delta_ts>2020-05-20 03:45:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212103-20200519221206.patch</filename>
            <type>text/plain</type>
            <size>19220</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5YmIwMzY1NzFmMTgxODE5ODA1N2M3
ZWE1YjQ1YjBkMzc4NTk1ZGIuLmJkNTE5NTJmMGQ1NGE1YjAzMmM5NjRlMjU2ODQ5MGU1NzIyYmVk
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDUtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdp
bmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgU2Vjb25kcyB0byBiZSBkaXZpZGVk
IG9yIG11bHRpcGxpZWQgYnkgYSBkb3VibGUgd2l0aCBvcGVyYW5kcyBpbiBhbnkgb3JkZXIuCisK
KyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAg
ICAgICAoV1RGOjpvcGVyYXRvci8pOgorCiAyMDIwLTA1LTE1ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBob3N0IHBhcnNlciBmYWls
IG9uIF4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkMWU1ZGVmYWJmYzdkZGNlZDExYjI0Y2JiYmZlMmU5MzMwMDdj
N2FkLi42ZmRhODE2MjE2OTAwZTY4OTYzODQxZDI5NjQ0N2Q0MDA2ZTFiNmZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDUtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdpbmUgc2hv
dWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEwMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1v
Zi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWwKKyAg
ICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1z
dGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUuaHRtbAorCisgICAgICAgIFdoZW4gYW4g
YW5pbWF0aW9uIHVzZXMgYSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwgaXQgd2lsbCBhcHBlYXIg
dG8gYW5pbWF0ZSBkaXNjcmV0ZWx5IGJldHdlZW4gdmFsdWVzIHN1Y2gKKyAgICAgICAgdGhhdCB0
aGVyZSBpcyBvbmx5IG4gdmlzdWFsIGNoYW5nZXMsIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBz
dGVwcyBwcm92aWRlZC4gVGhpcyBnaXZlcyB1cyBhbiBvcHBvcnR1bml0eQorICAgICAgICB0byBi
ZSBtb3JlIGVmZmljaWVudCB3aGVuIHNjaGVkdWxpbmcgYW5pbWF0aW9ucyB1c2luZyBzdGVwcygp
IHRpbWluZyBmdW5jdGlvbnMuCisKKyAgICAgICAgSW4gV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0
VGljaygpIHdlIG5vdyBhc2sgdGhlIGFzc29jaWF0ZWQgZWZmZWN0IGZvciB0aGUgYW1vdW50IG9m
IHByb2dyZXNzIHVudGlsIHRoZSBuZXh0CisgICAgICAgIHN0ZXAuIEZvciBhbiBlZmZlY3Qtd2lk
ZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgaXRlcmF0
aW9uIHByb2dyZXNzLiBGb3IgYW5pbWF0aW9ucworICAgICAgICB3aXRoIGEgbGluZWFyIGVmZmVj
dC13aWRlIHRpbWluZyBmdW5jdGlvbiAodGhlIGRlZmF1bHQpLCB3ZSBoYXZlIHRvIG1hcCB0aGUg
cHJvdmlkZWQgaXRlcmF0aW9uIHByb2dyZXNzIHRvCisgICAgICAgIGEga2V5ZnJhbWUgaW50ZXJ2
YWwsIHByb3ZpZGVkIHRoYXQgaW50ZXJ2YWwgdXNlcyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9u
LgorCisgICAgICAgIFRoZSBuZXcge0FuaW1hdGlvbnxLZXlmcmFtZX1FZmZlY3Q6OnByb2dyZXNz
VW50aWxOZXh0U3RlcCgpIG1ldGhvZCByZXR1cm5zIFdURjo6bnVsbG9wdCBmb3IgYW55IG90aGVy
IGNhc2UuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gdGVzdCB0aGlzLCB3ZSBhZGQgYSBuZXcgaW50
ZXJuYWxzLnRpbWVUb05leHRBbmltYXRpb25UaWNrKGFuaW1hdGlvbikgbWV0aG9kIHdoaWNoIHdl
IHVzZSBpbiB0aGUKKyAgICAgICAgdHdvIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGFuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0
Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAgY29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9Bbmlt
YXRpb25FZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnNldEJsZW5kaW5nS2V5ZnJhbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1Vz
ZVN0ZXBzVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OnByb2dyZXNzVW50aWxOZXh0U3RlcCBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0Lmg6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJBbmltYXRpb246OnRpbWVUb05leHRUaWNrIGNvbnN0KToKKyAgICAg
ICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmg6CisgICAgICAgICogYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5pZGw6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjp0aW1lVG9OZXh0QW5pbWF0aW9uVGljayBjb25zdCk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDUtMTcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtCRkNdIEludHJvZHVjZSBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmggYi9Tb3VyY2UvV1RGL3d0
Zi9TZWNvbmRzLmgKaW5kZXggOTdmN2RiZmNlODdkMTIxNTUyNGUxY2FmNzc1MGY5YWQxOWQ1YmQ3
Ny4uYzFiZTM5MjczODJlYjZiZmU5NTMwNzhmZTViYTIwMTdmMmY5MjliNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvU2Vjb25kcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuaApA
QCAtMzMyLDYgKzMzMiwxNiBAQCBjb25zdGV4cHIgU2Vjb25kcyBvcGVyYXRvciIiIF9ucyh1bnNp
Z25lZCBsb25nIGxvbmcgbmFub3NlY29uZHMpCiAKIH0gLy8gaW5saW5lIHNlY29uZHNfbGl0ZXJh
bHMKIAoraW5saW5lIFNlY29uZHMgb3BlcmF0b3IqKGRvdWJsZSBzY2FsYXIsIFNlY29uZHMgc2Vj
b25kcykKK3sKKyAgICByZXR1cm4gU2Vjb25kcyhzY2FsYXIgKiBzZWNvbmRzLnZhbHVlKCkpOwor
fQorCitpbmxpbmUgU2Vjb25kcyBvcGVyYXRvci8oZG91YmxlIHNjYWxhciwgU2Vjb25kcyBzZWNv
bmRzKQoreworICAgIHJldHVybiBTZWNvbmRzKHNjYWxhciAvIHNlY29uZHMudmFsdWUoKSk7Cit9
CisKIFdURl9FWFBPUlRfUFJJVkFURSBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
LCBTZWNvbmRzKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCmluZGV4IDdlZTViNTQ0MjM1NWMyYTVkMTZiNmQ0ZDY5
MzI3NTI1YzM2Y2RmN2IuLjcyOGE5YjMzMTI2ZmVhYTI1YjNjNTQ1NmJkMWZlMTRkNDgyNDcyNDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCkBAIC01
NDEsNCArNTQxLDE0IEBAIHZvaWQgQW5pbWF0aW9uRWZmZWN0OjpzZXRUaW1pbmdGdW5jdGlvbihj
b25zdCBSZWZQdHI8VGltaW5nRnVuY3Rpb24+JiB0aW1pbmdGdW5jCiAgICAgbV90aW1pbmdGdW5j
dGlvbiA9IHRpbWluZ0Z1bmN0aW9uOwogfQogCitPcHRpb25hbDxkb3VibGU+IEFuaW1hdGlvbkVm
ZmVjdDo6cHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSBpdGVyYXRpb25Qcm9ncmVzcykgY29u
c3QKK3sKKyAgICBpZiAoIWlzPFN0ZXBzVGltaW5nRnVuY3Rpb24+KG1fdGltaW5nRnVuY3Rpb24p
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgYXV0byBudW1iZXJPZlN0ZXBz
ID0gZG93bmNhc3Q8U3RlcHNUaW1pbmdGdW5jdGlvbj4oKm1fdGltaW5nRnVuY3Rpb24pLm51bWJl
ck9mU3RlcHMoKTsKKyAgICBhdXRvIG5leHRTdGVwUHJvZ3Jlc3MgPSBjZWlsKGl0ZXJhdGlvblBy
b2dyZXNzICogbnVtYmVyT2ZTdGVwcykgLyBudW1iZXJPZlN0ZXBzOworICAgIHJldHVybiBuZXh0
U3RlcFByb2dyZXNzIC0gaXRlcmF0aW9uUHJvZ3Jlc3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaAppbmRleCA5
NWM2NGM1YzU5NWJlZDlkYTZmMzIzMTNlMzFhZjlkMDdkM2VkOWU5Li4zYzQ1Y2UwOGFhYjY4Mjky
YTVkYjc1ZTcxMDIwNzIwMzE1NDk2ZjFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Fu
aW1hdGlvbkVmZmVjdC5oCkBAIC0xMDIsNiArMTAyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1
cGRhdGVTdGF0aWNUaW1pbmdQcm9wZXJ0aWVzKCk7CiAKKyAgICB2aXJ0dWFsIE9wdGlvbmFsPGRv
dWJsZT4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSkgY29uc3Q7CisKIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBBbmltYXRpb25FZmZlY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggMTEwZWIxZTRjYzIzOTYyMjhmZDExZmJiNjg4
N2MyYWRhYjZmNmFhOC4uNTU0NDRlMzI0YWRhMTA5MzA4ZTJmY2E0ZTRlZWU4NjU1MjI5ZDNhNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC04NDYs
NiArODQ2LDcgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6c2V0QmxlbmRpbmdLZXlmcmFtZXMoS2V5
ZnJhbWVMaXN0JiBibGVuZGluZ0tleWZyYW1lcykKICAgICBjb21wdXRlZE5lZWRzRm9yY2VkTGF5
b3V0KCk7CiAgICAgY29tcHV0ZVN0YWNraW5nQ29udGV4dEltcGFjdCgpOwogICAgIGNvbXB1dGVB
Y2NlbGVyYXRlZFByb3BlcnRpZXNTdGF0ZSgpOworICAgIGNvbXB1dGVTb21lS2V5ZnJhbWVzVXNl
U3RlcHNUaW1pbmdGdW5jdGlvbigpOwogCiAgICAgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1
bmN0aW9uTGlzdHMoKTsKICAgICBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygp
OwpAQCAtMTI2NSw2ICsxMjY2LDE4IEBAIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVBY2Nl
bGVyYXRlZFByb3BlcnRpZXNTdGF0ZSgpCiAgICAgICAgIG1fYWNjZWxlcmF0ZWRQcm9wZXJ0aWVz
U3RhdGUgPSBBY2NlbGVyYXRlZFByb3BlcnRpZXM6OkFsbDsKIH0KIAordm9pZCBLZXlmcmFtZUVm
ZmVjdDo6Y29tcHV0ZVNvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWluZ0Z1bmN0aW9uKCkKK3sKKyAg
ICBtX3NvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWluZ0Z1bmN0aW9uID0gZmFsc2U7CisgICAgc2l6
ZV90IG51bWJlck9mS2V5ZnJhbWVzID0gbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCk7CisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1iZXJPZktleWZyYW1lczsgaSsrKSB7CisgICAgICAg
IGlmIChpczxTdGVwc1RpbWluZ0Z1bmN0aW9uPihtX2JsZW5kaW5nS2V5ZnJhbWVzW2ldLnRpbWlu
Z0Z1bmN0aW9uKCkpKSB7CisgICAgICAgICAgICBtX3NvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWlu
Z0Z1bmN0aW9uID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0K
K30KKwogdm9pZCBLZXlmcmFtZUVmZmVjdDo6Z2V0QW5pbWF0ZWRTdHlsZShzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+JiBhbmltYXRlZFN0eWxlKQogewogICAgIGlmICghcmVuZGVyZXIoKSB8
fCAhYW5pbWF0aW9uKCkpCkBAIC0xNzk1LDQgKzE4MDgsMzYgQEAgYm9vbCBLZXlmcmFtZUVmZmVj
dDo6cmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9ibGVuZGluZ0tl
eWZyYW1lc1NvdXJjZSA9PSBCbGVuZGluZ0tleWZyYW1lc1NvdXJjZTo6V2ViQW5pbWF0aW9uICYm
IHRhcmdldHNQc2V1ZG9FbGVtZW50KCk7CiB9CiAKK09wdGlvbmFsPGRvdWJsZT4gS2V5ZnJhbWVF
ZmZlY3Q6OnByb2dyZXNzVW50aWxOZXh0U3RlcChkb3VibGUgaXRlcmF0aW9uUHJvZ3Jlc3MpIGNv
bnN0Cit7CisgICAgaWYgKGF1dG8gcHJvZ3Jlc3MgPSBBbmltYXRpb25FZmZlY3Q6OnByb2dyZXNz
VW50aWxOZXh0U3RlcChpdGVyYXRpb25Qcm9ncmVzcykpCisgICAgICAgIHJldHVybiBwcm9ncmVz
czsKKworICAgIGlmICghaXM8TGluZWFyVGltaW5nRnVuY3Rpb24+KHRpbWluZ0Z1bmN0aW9uKCkp
IHx8ICFtX3NvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWluZ0Z1bmN0aW9uKQorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworCisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2JsZW5kaW5n
S2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGF1dG8gaW50ZXJ2YWxFbmRQcm9ncmVz
cyA9IG1fYmxlbmRpbmdLZXlmcmFtZXNbaV0ua2V5KCk7CisgICAgICAgIGlmIChpbnRlcnZhbEVu
ZFByb2dyZXNzIDw9IGl0ZXJhdGlvblByb2dyZXNzKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgaWYgKCFpKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgYXV0byYgcHJl
dmlvdXNLZXlmcmFtZSA9IG1fYmxlbmRpbmdLZXlmcmFtZXNbaSAtIDFdOworICAgICAgICBhdXRv
IHByZXZpb3VzS2V5ZnJhbWVUaW1pbmdGdW5jdGlvbiA9IHByZXZpb3VzS2V5ZnJhbWUudGltaW5n
RnVuY3Rpb24oKTsKKyAgICAgICAgaWYgKCFpczxTdGVwc1RpbWluZ0Z1bmN0aW9uPihwcmV2aW91
c0tleWZyYW1lVGltaW5nRnVuY3Rpb24pKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
YXV0byBudW1iZXJPZlN0ZXBzID0gZG93bmNhc3Q8U3RlcHNUaW1pbmdGdW5jdGlvbj4oKnByZXZp
b3VzS2V5ZnJhbWVUaW1pbmdGdW5jdGlvbikubnVtYmVyT2ZTdGVwcygpOworICAgICAgICBhdXRv
IGludGVydmFsU3RhcnRQcm9ncmVzcyA9IHByZXZpb3VzS2V5ZnJhbWUua2V5KCk7CisgICAgICAg
IGF1dG8gaW50ZXJ2YWxQcm9ncmVzcyA9IGludGVydmFsRW5kUHJvZ3Jlc3MgLSBpbnRlcnZhbFN0
YXJ0UHJvZ3Jlc3M7CisgICAgICAgIGF1dG8gaXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRUb0N1cnJl
bnRJbnRlcnZhbCA9IChpdGVyYXRpb25Qcm9ncmVzcyAtIGludGVydmFsU3RhcnRQcm9ncmVzcykg
LyBpbnRlcnZhbFByb2dyZXNzOworICAgICAgICBhdXRvIG5leHRTdGVwUHJvZ3Jlc3MgPSBjZWls
KGl0ZXJhdGlvblByb2dyZXNzTWFwcGVkVG9DdXJyZW50SW50ZXJ2YWwgKiBudW1iZXJPZlN0ZXBz
KSAvIG51bWJlck9mU3RlcHM7CisgICAgICAgIHJldHVybiAobmV4dFN0ZXBQcm9ncmVzcyAtIGl0
ZXJhdGlvblByb2dyZXNzTWFwcGVkVG9DdXJyZW50SW50ZXJ2YWwpICogaW50ZXJ2YWxQcm9ncmVz
czsKKyAgICB9CisKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4
IGJlNzQ1OTgyY2Q2MTNhYzkwMGNjNzQ0Y2MwZDU0ZDI1OTViZjkxMGEuLmE4YmIxMDFlNmM0Nzc3
YWM5NDEyNDBkYWM5NmMwMGNiYmNiMzFhNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5oCkBAIC0xODUsMTIgKzE4NSwxNCBAQCBwcml2YXRlOgogICAgIFJlZjxj
b25zdCBBbmltYXRpb24+IGJhY2tpbmdBbmltYXRpb25Gb3JDb21wb3NpdGVkUmVuZGVyZXIoKSBj
b25zdDsKICAgICB2b2lkIGNvbXB1dGVkTmVlZHNGb3JjZWRMYXlvdXQoKTsKICAgICB2b2lkIGNv
bXB1dGVTdGFja2luZ0NvbnRleHRJbXBhY3QoKTsKKyAgICB2b2lkIGNvbXB1dGVTb21lS2V5ZnJh
bWVzVXNlU3RlcHNUaW1pbmdGdW5jdGlvbigpOwogICAgIHZvaWQgY2xlYXJCbGVuZGluZ0tleWZy
YW1lcygpOwogICAgIHZvaWQgdXBkYXRlQmxlbmRpbmdLZXlmcmFtZXMoUmVuZGVyU3R5bGUmKTsK
ICAgICB2b2lkIGNvbXB1dGVDU1NBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5k
ZXJTdHlsZSYpOwogICAgIHZvaWQgY29tcHV0ZUNTU1RyYW5zaXRpb25CbGVuZGluZ0tleWZyYW1l
cyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHls
ZSk7CiAgICAgdm9pZCBjb21wdXRlQWNjZWxlcmF0ZWRQcm9wZXJ0aWVzU3RhdGUoKTsKICAgICB2
b2lkIHNldEJsZW5kaW5nS2V5ZnJhbWVzKEtleWZyYW1lTGlzdCYpOworICAgIE9wdGlvbmFsPGRv
dWJsZT4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSkgY29uc3QgZmluYWw7CiAgICAgdm9p
ZCBjaGVja0Zvck1hdGNoaW5nVHJhbnNmb3JtRnVuY3Rpb25MaXN0cygpOwogICAgIHZvaWQgY2hl
Y2tGb3JNYXRjaGluZ0ZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKICAgICB2b2lkIGNoZWNrRm9yTWF0
Y2hpbmdDb2xvckZpbHRlckZ1bmN0aW9uTGlzdHMoKTsKQEAgLTIyMiw2ICsyMjQsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAgICAgYm9vbCBtX2NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0c01hdGNoIHsg
ZmFsc2UgfTsKICAgICBib29sIG1faW5UYXJnZXRFZmZlY3RTdGFjayB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX3NvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWluZ0Z1bmN0aW9uIHsgZmFsc2UgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5jcHAKaW5kZXggY2QwNTEzOGJkNzg2ZDhlYmRhMzk0NmI2ZTdmNGZlYzQ3YWI4MzBi
ZS4uNzNmOTY5YzIyOTBhYmVhMjc3MDhiODZjYWMxM2MxMGE0ZWVjYTA2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAKQEAgLTE0ODIsNiArMTQ4MiwxMSBAQCBT
ZWNvbmRzIFdlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFRpY2soKSBjb25zdAogICAgICAgICAgICAg
Ly8gRnVsbHktYWNjZWxlcmF0ZWQgcnVubmluZyBhbmltYXRpb25zIGluIHRoZSAiYWN0aXZlIiBw
aGFzZSBjYW4gd2FpdCB1bnRpbCB0aGV5IGVuZGVkLgogICAgICAgICAgICAgcmV0dXJuIChlZmZl
Y3QuZW5kVGltZSgpIC0gdGltaW5nLmxvY2FsVGltZS52YWx1ZSgpKSAvIHBsYXliYWNrUmF0ZTsK
ICAgICAgICAgfQorICAgICAgICBpZiAoYXV0byBpdGVyYXRpb25Qcm9ncmVzcyA9IGVmZmVjdC5n
ZXRDb21wdXRlZFRpbWluZygpLnNpbXBsZUl0ZXJhdGlvblByb2dyZXNzKSB7CisgICAgICAgICAg
ICAvLyBJbiBjYXNlIHdlJ3JlIGluIGEgcmFuZ2UgdGhhdCB1c2VzIGEgc3RlcHMoKSB0aW1pbmcg
ZnVuY3Rpb24sIHdlIGNhbiBjb21wdXRlIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHN0ZXAgc3Rh
cnRzLgorICAgICAgICAgICAgaWYgKGF1dG8gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwID0gZWZmZWN0
LnByb2dyZXNzVW50aWxOZXh0U3RlcCgqaXRlcmF0aW9uUHJvZ3Jlc3MpKQorICAgICAgICAgICAg
ICAgIHJldHVybiBlZmZlY3QuaXRlcmF0aW9uRHVyYXRpb24oKSAqICpwcm9ncmVzc1VudGlsTmV4
dFN0ZXAgLyBwbGF5YmFja1JhdGU7CisgICAgICAgIH0KICAgICAgICAgLy8gT3RoZXIgYW5pbWF0
aW9ucyBpbiB0aGUgImFjdGl2ZSIgcGhhc2Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSB0aGVpciBhbmlt
YXRlZCB2YWx1ZSBhdCB0aGUgaW1tZWRpYXRlIG5leHQgb3Bwb3J0dW5pdHkuCiAgICAgICAgIHJl
dHVybiAwX3M7CiAgICAgY2FzZSBBbmltYXRpb25FZmZlY3RQaGFzZTo6QWZ0ZXI6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgKaW5kZXggOWZmN2EyZDY2YjRlNTM4ZTk3MDUx
NmJjNGUzOTk1NjAxY2VlZGRkMC4uNTJjYmNmMjZmMWQyMzQ4MWQ0YWRkOTQxNmVjODE3ODA5NTlh
NTk2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaApAQCAtMTIwLDcg
KzEyMCw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbmVlZHNUaWNrKCkgY29uc3Q7CiAgICAgdmly
dHVhbCB2b2lkIHRpY2soKTsKLSAgICBTZWNvbmRzIHRpbWVUb05leHRUaWNrKCkgY29uc3Q7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgU2Vjb25kcyB0aW1lVG9OZXh0VGljaygpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCByZXNvbHZlKFJlbmRlclN0eWxlJik7CiAgICAgdm9pZCBlZmZlY3RUYXJnZXRE
aWRDaGFuZ2UoRWxlbWVudCogcHJldmlvdXNUYXJnZXQsIEVsZW1lbnQqIG5ld1RhcmdldCk7CiAg
ICAgdm9pZCBhY2NlbGVyYXRlZFN0YXRlRGlkQ2hhbmdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uaWRsCmluZGV4IDJhZmYyY2IyZWUzMDVlMjBlYmJlYTk3NDViYjc3
MzAxYjRhNjc2NmQuLjBjZTM4MWE5Y2FkYTA0YzQyZDgwMjkzYzZkY2RhOGJiNjMwZWYxZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsCkBAIC00MSw3ICs0MSw4
IEBAIGVudW0gQW5pbWF0aW9uUmVwbGFjZVN0YXRlIHsKICAgICBFbmFibGVkQXRSdW50aW1lPVdl
YkFuaW1hdGlvbnMsCiAgICAgSW50ZXJmYWNlTmFtZT1BbmltYXRpb24sCiAgICAgQ3VzdG9tQ29u
c3RydWN0b3IoKSwKLSAgICBDdXN0b21Ub0pTT2JqZWN0CisgICAgQ3VzdG9tVG9KU09iamVjdCwK
KyAgICBFeHBvcnRNYWNybz1XRUJDT1JFX0VYUE9SVAogXSBpbnRlcmZhY2UgV2ViQW5pbWF0aW9u
IDogRXZlbnRUYXJnZXQgewogICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7CiAgICAgW0ltcGxl
bWVudGVkQXM9YmluZGluZ3NFZmZlY3RdIGF0dHJpYnV0ZSBBbmltYXRpb25FZmZlY3Q/IGVmZmVj
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA2ZWM3YjQ4Y2JkMjZkNzJh
M2U2Mjg4ODQ2NzhiYmNiNWYzMGY5NTZiLi5hMzhjM2RmYjdiNmI0YmM0NDU0ZDc0Y2RhMWM5Yzc4
NmI0N2MwMTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xOTYsNiAr
MTk2LDcgQEAKICNpbmNsdWRlICJWaWV3cG9ydEFyZ3VtZW50cy5oIgogI2luY2x1ZGUgIlZvaWRD
YWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkFuaW1hdGlvbi5oIgorI2luY2x1ZGUgIldlYkFuaW1h
dGlvblV0aWxpdGllcy5oIgogI2luY2x1ZGUgIldlYkNvcmVKU0NsaWVudERhdGEuaCIKICNpbmNs
dWRlICJXaW5kb3dQcm94eS5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgpAQCAtMTIwMCw2
ICsxMjAxLDExIEBAIHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZBbmltYXRpb25UaW1lbGlu
ZUludmFsaWRhdGlvbnMoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCitkb3VibGUgSW50ZXJu
YWxzOjp0aW1lVG9OZXh0QW5pbWF0aW9uVGljayhXZWJBbmltYXRpb24mIGFuaW1hdGlvbikgY29u
c3QKK3sKKyAgICByZXR1cm4gc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUoYW5pbWF0aW9u
LnRpbWVUb05leHRUaWNrKCkpOworfQorCiBFeGNlcHRpb25PcjxSZWZQdHI8RWxlbWVudD4+IElu
dGVybmFsczo6cHNldWRvRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIHBz
ZXVkb0lkKQogewogICAgIGlmIChwc2V1ZG9JZCAhPSAiYmVmb3JlIiAmJiBwc2V1ZG9JZCAhPSAi
YWZ0ZXIiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMTE5NzFiZDY2MTVlMzQ3
MGNkZGZhOTE5ZjExMTE2ODkzMzFkNDdlNy4uYWI1MmM4Y2ExODhhYzNjNzZkN2FmNzJjN2M2YmE1
ZWU4YzgzMzdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMDYsNiArMTA2
LDcgQEAgY2xhc3MgVGltZVJhbmdlczsKIGNsYXNzIFR5cGVDb252ZXJzaW9uczsKIGNsYXNzIFVu
c3VzcGVuZGFibGVBY3RpdmVET01PYmplY3Q7CiBjbGFzcyBWb2lkQ2FsbGJhY2s7CitjbGFzcyBX
ZWJBbmltYXRpb247CiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiBjbGFzcyBXaW5kb3dQ
cm94eTsKIGNsYXNzIFhNTEh0dHBSZXF1ZXN0OwpAQCAtMjM5LDYgKzI0MCw3IEBAIHB1YmxpYzoK
ICAgICB9OwogICAgIFZlY3RvcjxBY2NlbGVyYXRlZEFuaW1hdGlvbj4gYWNjZWxlcmF0ZWRBbmlt
YXRpb25zRm9yRWxlbWVudChFbGVtZW50Jik7CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZBbmltYXRp
b25UaW1lbGluZUludmFsaWRhdGlvbnMoKSBjb25zdDsKKyAgICBkb3VibGUgdGltZVRvTmV4dEFu
aW1hdGlvblRpY2soV2ViQW5pbWF0aW9uJikgY29uc3Q7CiAKICAgICAvLyBGb3IgYW5pbWF0aW9u
cyB0ZXN0aW5nLCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBhdCBwc2V1ZG8gZWxlbWVudHMuCiAgICAg
RXhjZXB0aW9uT3I8UmVmUHRyPEVsZW1lbnQ+PiBwc2V1ZG9FbGVtZW50KEVsZW1lbnQmLCBjb25z
dCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBjMDJiNGRk
OTI2OGIwZTY3NTE1OWJmNDE4NjhiMGZmMzVjNjk0ZmY4Li4xNWNlNWNkNmE4YWI3OGE2OTFjZTk1
MTdjMzhjN2FlZjNkNGJlOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBA
IC0yOTcsNiArMjk3LDcgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAgICAgLy8gV2ViIEFu
aW1hdGlvbnMgdGVzdGluZy4KICAgICBzZXF1ZW5jZTxBY2NlbGVyYXRlZEFuaW1hdGlvbj4gYWNj
ZWxlcmF0ZWRBbmltYXRpb25zRm9yRWxlbWVudChFbGVtZW50IGVsZW1lbnQpOwogICAgIHVuc2ln
bmVkIGxvbmcgbnVtYmVyT2ZBbmltYXRpb25UaW1lbGluZUludmFsaWRhdGlvbnMoKTsKKyAgICBk
b3VibGUgdGltZVRvTmV4dEFuaW1hdGlvblRpY2soV2ViQW5pbWF0aW9uIGFuaW1hdGlvbik7CiAK
ICAgICAvLyBGb3IgYW5pbWF0aW9ucyB0ZXN0aW5nLCB3ZSBuZWVkIGEgd2F5IHRvIGdldCBhdCBw
c2V1ZG8gZWxlbWVudHMuCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBFbGVtZW50PyBwc2V1ZG9F
bGVtZW50KEVsZW1lbnQgZWxlbWVudCwgRE9NU3RyaW5nIHBzZXVkb0lkKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZDlj
Y2Q5YWY1M2YzYmJlODJjNWMzZGE1YjNhMzBiMWNmZjAxY2FmLi5kZDk1Yzc5ZmY0ZDFmZjZlOWI5
ODY0OGU2OWI3MzBjZTY0NGY5M2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjAtMDUtMTkg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1h
dGlvbnNdIEFuaW1hdGlvbiBlbmdpbmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9y
IHN0ZXBzIHRpbWluZyBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxMjEwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRl
c3RzIHRoYXQgY2hlY2sgdGhhdCBhbiBhbmltYXRpb24gdXNpbmcgYSBzdGVwcygpIHRpbWluZyBm
dW5jdGlvbiBjb3JyZWN0bHkgY29tcHV0ZXMgdGhlIHRpbWUgdG8KKyAgICAgICAgdGhlIG5leHQg
dGljayBhY2NvdW5pbmcgZm9yIHRoZSBmYWN0IHRoYXQgaXQgd29uJ3QgY29tcHV0ZSBhIGRpZmZl
cmVudCBpdGVyYXRpb24gcHJvZ3Jlc3MgdW50aWwgdGhlCisgICAgICAgIG5leHQgc3RlcC4KKwor
ICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVw
cy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWlu
Zy1mdW5jdGlvbi1vbi1lZmZlY3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9u
cy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1r
ZXlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2No
ZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJh
bWUuaHRtbDogQWRkZWQuCisKIDIwMjAtMDUtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIE1vdmUgdG8gbmV3IFBhc3RlYm9hcmQg
QVBJCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2Yt
YW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdp
dGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNTA4YjJkZjM2ZDFiODBkNzBkZDZkMTRjZTRhYzEyN2RhZjVhMTk5OAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24t
d2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBm
b3IgYW4gZWZmZWN0IHdpdGggYSBzdGVwcygpIGVhc2luZy4gCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10
aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25z
L3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVm
ZmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0YjdmMDg1ODRiMWQ4NjdhMzljZjE4MTc1OTE2MmIzZmFm
MDI3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVk
dWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC5o
dG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2PjwvZGl2PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBjb25zdCBhbmltYXRpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJkaXYiKS5hbmltYXRlKHsgbWFyZ2luTGVmdDogIjEwMHB4IiB9LCB7IGR1cmF0aW9uOiAxMDAw
LCBlYXNpbmc6ICJzdGVwcygxMCkiIH0pOworCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5Owor
ICAgIAorICAgIGFuaW1hdGlvbi5jdXJyZW50VGltZSA9IDIyNTsKKyAgICBhc3NlcnRfZXF1YWxz
KGludGVybmFscy50aW1lVG9OZXh0QW5pbWF0aW9uVGljayhhbmltYXRpb24pLCA3NSwgIkNvbXB1
dGluZyB0aGUgdGltZSB1bnRpbCB0aGUgbmV4dCB0aWNrIHdoZW4gcGFydGx5IHRocm91Z2ggYSBz
dGVwcyBpbnRlcnZhbC4iKTsKKyAgICAKKyAgICB0LmRvbmUoKTsKK30sICJDb21wdXRpbmcgdGhl
IHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBmb3IgYW4gZWZmZWN0IHdpdGggYSBzdGVwcygpIGVh
c2luZy4iKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRp
b25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9u
LWtleWZyYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1
bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxMmQ4YzhmOTlkMjI5MjM2OWI0NDNlNjI2Y2ZkZTYw
YTk0ODAwYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3Nj
aGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZy
YW1lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDb21wdXRpbmcgdGhlIHRp
bWUgdW50aWwgdGhlIG5leHQgdGljayBmb3IgYSBrZXlmcmFtZSdzIHdpdGggYSBzdGVwcygpIHRp
bWluZyBmdW5jdGlvbi4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMv
c2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmlt
YXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41ZDVjYTUwZjk5YzRjMjViMDNkOGRkNjA4NGRkYmY0NzZjMzM0Y2I2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlv
bi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS5odG1sCkBAIC0wLDAgKzEs
MjAgQEAKKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8ZGl2PjwvZGl2PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChhc3luYyB0ID0+IHsKKyAg
ICBjb25zdCBhbmltYXRpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKS5hbmltYXRl
KHsKKyAgICAgICAgbWFyZ2luTGVmdDogWyIwIiwgIjI1MHB4IiwgIjUwMHB4IiwgIjc1MHB4Iiwg
IjEwMDBweCJdLAorICAgICAgICBlYXNpbmc6IFsibGluZWFyIiwgImxpbmVhciIsICJzdGVwcygx
MCkiLCAibGluZWFyIl0KKyAgICB9LCAxMDAwKTsKKworICAgIGF3YWl0IGFuaW1hdGlvbi5yZWFk
eTsKKyAgICAKKyAgICBhbmltYXRpb24uY3VycmVudFRpbWUgPSA1MzU7CisgICAgYXNzZXJ0X2Vx
dWFscyhpbnRlcm5hbHMudGltZVRvTmV4dEFuaW1hdGlvblRpY2soYW5pbWF0aW9uKSwgMTUpOwor
CisgICAgdC5kb25lKCk7Cit9LCAiQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRp
Y2sgZm9yIGEga2V5ZnJhbWUncyB3aXRoIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIik7CisK
Kzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399827</attachid>
            <date>2020-05-20 03:45:53 -0700</date>
            <delta_ts>2020-05-20 03:48:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212103-20200520124552.patch</filename>
            <type>text/plain</type>
            <size>22783</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5YmIwMzY1NzFmMTgxODE5ODA1N2M3
ZWE1YjQ1YjBkMzc4NTk1ZGIuLjFkYzhjMDRlNWI2ZDM5YjBjODMwY2RjMTRjNGY5Yzc5YzRmZTgz
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdp
bmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgU2Vjb25kcyB0byBiZSBkaXZpZGVk
IG9yIG11bHRpcGxpZWQgYnkgYSBkb3VibGUgd2l0aCBvcGVyYW5kcyBpbiBhbnkgb3JkZXIuCisK
KyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAg
ICAgICAoV1RGOjpvcGVyYXRvci8pOgorCiAyMDIwLTA1LTE1ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBob3N0IHBhcnNlciBmYWls
IG9uIF4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkMWU1ZGVmYWJmYzdkZGNlZDExYjI0Y2JiYmZlMmU5MzMwMDdj
N2FkLi43NTQzZDA3NDdlMDAyZjg5MGQwNGY1YTg2YmFhZDNlZDVjZmYwNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdpbmUgc2hv
dWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEwMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1v
Zi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWwKKyAg
ICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1z
dGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgd2Vi
YW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmct
ZnVuY3Rpb24uaHRtbAorCisgICAgICAgIFdoZW4gYW4gYW5pbWF0aW9uIHVzZXMgYSBzdGVwcygp
IHRpbWluZyBmdW5jdGlvbiwgaXQgd2lsbCBhcHBlYXIgdG8gYW5pbWF0ZSBkaXNjcmV0ZWx5IGJl
dHdlZW4gdmFsdWVzIHN1Y2gKKyAgICAgICAgdGhhdCB0aGVyZSBpcyBvbmx5IG4gdmlzdWFsIGNo
YW5nZXMsIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBzdGVwcyBwcm92aWRlZC4gVGhpcyBnaXZl
cyB1cyBhbiBvcHBvcnR1bml0eQorICAgICAgICB0byBiZSBtb3JlIGVmZmljaWVudCB3aGVuIHNj
aGVkdWxpbmcgYW5pbWF0aW9ucyB1c2luZyBzdGVwcygpIHRpbWluZyBmdW5jdGlvbnMuCisKKyAg
ICAgICAgSW4gV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0VGljaygpIHdlIG5vdyBhc2sgdGhlIGFz
c29jaWF0ZWQgZWZmZWN0IGZvciB0aGUgYW1vdW50IG9mIHByb2dyZXNzIHVudGlsIHRoZSBuZXh0
CisgICAgICAgIHN0ZXAuIEZvciBhbiBlZmZlY3Qtd2lkZSBzdGVwcygpIHRpbWluZyBmdW5jdGlv
biwgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgaXRlcmF0aW9uIHByb2dyZXNzLiBGb3IgYW5pbWF0
aW9ucworICAgICAgICB3aXRoIGEgbGluZWFyIGVmZmVjdC13aWRlIHRpbWluZyBmdW5jdGlvbiAo
dGhlIGRlZmF1bHQpLCB3ZSBoYXZlIHRvIG1hcCB0aGUgcHJvdmlkZWQgaXRlcmF0aW9uIHByb2dy
ZXNzIHRvCisgICAgICAgIGEga2V5ZnJhbWUgaW50ZXJ2YWwsIHByb3ZpZGVkIHRoYXQgaW50ZXJ2
YWwgdXNlcyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLgorCisgICAgICAgIFRoZSBuZXcge0Fu
aW1hdGlvbnxLZXlmcmFtZX1FZmZlY3Q6OnByb2dyZXNzVW50aWxOZXh0U3RlcCgpIG1ldGhvZCBy
ZXR1cm5zIFdURjo6bnVsbG9wdCBmb3IgYW55IG90aGVyIGNhc2UuCisKKyAgICAgICAgSW4gb3Jk
ZXIgdG8gdGVzdCB0aGlzLCB3ZSBhZGQgYSBuZXcgaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRp
b25UaWNrKGFuaW1hdGlvbikgbWV0aG9kIHdoaWNoIHdlIHVzZSBpbiB0aGUKKyAgICAgICAgdHdv
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAg
Y29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaDoKKyAgICAgICAg
KiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVFZmZlY3Q6OnNldEJsZW5kaW5nS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lRWZmZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJh
bWVBdEluZGV4IGNvbnN0KTogQXZvaWQgYW55IG91dC1vZi1ib3VuZHMgdXNlIG9mIHRoZSB1bmRl
cmx5aW5nIGRhdGEKKyAgICAgICAgc3RydWN0dXJlcyBieSByZXR1cm5pbmcgbnVsbHB0ciBmb3Ig
Y2FzZXMgd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXlmcmFtZS4gV2UgYWxzbyBt
YWtlIHRoZSBmdW5jdGlvbiBjb25zdAorICAgICAgICBzdWNoIHRoYXQgaXQgbWF5IGJlIGNhbGxl
ZCBmcm9tIHByb2dyZXNzVW50aWxOZXh0U3RlcCgpLCBpdCBhbHdheXMgd2FzIGNvbnN0IGJ1dCB3
YXNuJ3QgbWFya2VkIGFzIHN1Y2guCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
cHJvZ3Jlc3NVbnRpbE5leHRTdGVwIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFRpY2sgY29uc3QpOgorICAgICAg
ICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5p
bWF0aW9uLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnRpbWVUb05leHRBbmltYXRpb25UaWNrIGNvbnN0KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wNS0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0JGQ10gSW50cm9kdWNlIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L1NlY29uZHMuaAppbmRleCA5N2Y3ZGJmY2U4N2QxMjE1NTI0ZTFjYWY3NzUwZjlhZDE5ZDViZDc3
Li5jMWJlMzkyNzM4MmViNmJmZTk1MzA3OGZlNWJhMjAxN2YyZjkyOWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmgKKysrIGIvU291cmNlL1dURi93dGYvU2Vjb25kcy5oCkBA
IC0zMzIsNiArMzMyLDE2IEBAIGNvbnN0ZXhwciBTZWNvbmRzIG9wZXJhdG9yIiIgX25zKHVuc2ln
bmVkIGxvbmcgbG9uZyBuYW5vc2Vjb25kcykKIAogfSAvLyBpbmxpbmUgc2Vjb25kc19saXRlcmFs
cwogCitpbmxpbmUgU2Vjb25kcyBvcGVyYXRvciooZG91YmxlIHNjYWxhciwgU2Vjb25kcyBzZWNv
bmRzKQoreworICAgIHJldHVybiBTZWNvbmRzKHNjYWxhciAqIHNlY29uZHMudmFsdWUoKSk7Cit9
CisKK2lubGluZSBTZWNvbmRzIG9wZXJhdG9yLyhkb3VibGUgc2NhbGFyLCBTZWNvbmRzIHNlY29u
ZHMpCit7CisgICAgcmV0dXJuIFNlY29uZHMoc2NhbGFyIC8gc2Vjb25kcy52YWx1ZSgpKTsKK30K
KwogV1RGX0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYs
IFNlY29uZHMpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKaW5kZXggN2VlNWI1NDQyMzU1YzJhNWQxNmI2ZDRkNjkz
Mjc1MjVjMzZjZGY3Yi4uNzI4YTliMzMxMjZmZWFhMjViM2M1NDU2YmQxZmUxNGQ0ODI0NzI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTU0
MSw0ICs1NDEsMTQgQEAgdm9pZCBBbmltYXRpb25FZmZlY3Q6OnNldFRpbWluZ0Z1bmN0aW9uKGNv
bnN0IFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWluZ0Z1bmMKICAgICBtX3RpbWluZ0Z1bmN0
aW9uID0gdGltaW5nRnVuY3Rpb247CiB9CiAKK09wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uRWZm
ZWN0Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlIGl0ZXJhdGlvblByb2dyZXNzKSBjb25z
dAoreworICAgIGlmICghaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4obV90aW1pbmdGdW5jdGlvbikp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG51bWJlck9mU3RlcHMg
PSBkb3duY2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uPigqbV90aW1pbmdGdW5jdGlvbikubnVtYmVy
T2ZTdGVwcygpOworICAgIGF1dG8gbmV4dFN0ZXBQcm9ncmVzcyA9IGNlaWwoaXRlcmF0aW9uUHJv
Z3Jlc3MgKiBudW1iZXJPZlN0ZXBzKSAvIG51bWJlck9mU3RlcHM7CisgICAgcmV0dXJuIG5leHRT
dGVwUHJvZ3Jlc3MgLSBpdGVyYXRpb25Qcm9ncmVzczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCmluZGV4IDk1
YzY0YzVjNTk1YmVkOWRhNmYzMjMxM2UzMWFmOWQwN2QzZWQ5ZTkuLjNjNDVjZTA4YWFiNjgyOTJh
NWRiNzVlNzEwMjA3MjAzMTU0OTZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5p
bWF0aW9uRWZmZWN0LmgKQEAgLTEwMiw2ICsxMDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVw
ZGF0ZVN0YXRpY1RpbWluZ1Byb3BlcnRpZXMoKTsKIAorICAgIHZpcnR1YWwgT3B0aW9uYWw8ZG91
YmxlPiBwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlKSBjb25zdDsKKwogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IEFuaW1hdGlvbkVmZmVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCAxMTBlYjFlNGNjMjM5NjIyOGZkMTFmYmI2ODg3
YzJhZGFiNmY2YWE4Li5hOGFkNGRhZTRlM2IzZDUxNzQ1OGZlODY5MGY0Mzk4OTcwYjUwYzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTg0Niw2
ICs4NDYsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjpzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlm
cmFtZUxpc3QmIGJsZW5kaW5nS2V5ZnJhbWVzKQogICAgIGNvbXB1dGVkTmVlZHNGb3JjZWRMYXlv
dXQoKTsKICAgICBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CiAgICAgY29tcHV0ZUFj
Y2VsZXJhdGVkUHJvcGVydGllc1N0YXRlKCk7CisgICAgY29tcHV0ZVNvbWVLZXlmcmFtZXNVc2VT
dGVwc1RpbWluZ0Z1bmN0aW9uKCk7CiAKICAgICBjaGVja0Zvck1hdGNoaW5nVHJhbnNmb3JtRnVu
Y3Rpb25MaXN0cygpOwogICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7
CkBAIC0xMjY1LDYgKzEyNjYsMTggQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZUFjY2Vs
ZXJhdGVkUHJvcGVydGllc1N0YXRlKCkKICAgICAgICAgbV9hY2NlbGVyYXRlZFByb3BlcnRpZXNT
dGF0ZSA9IEFjY2VsZXJhdGVkUHJvcGVydGllczo6QWxsOwogfQogCit2b2lkIEtleWZyYW1lRWZm
ZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24oKQoreworICAg
IG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24gPSBmYWxzZTsKKyAgICBzaXpl
X3QgbnVtYmVyT2ZLZXlmcmFtZXMgPSBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mS2V5ZnJhbWVzOyBpKyspIHsKKyAgICAgICAg
aWYgKGlzPFN0ZXBzVGltaW5nRnVuY3Rpb24+KG1fYmxlbmRpbmdLZXlmcmFtZXNbaV0udGltaW5n
RnVuY3Rpb24oKSkpIHsKKyAgICAgICAgICAgIG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5n
RnVuY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
fQorCiB2b2lkIEtleWZyYW1lRWZmZWN0OjpnZXRBbmltYXRlZFN0eWxlKHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpCiB7CiAgICAgaWYgKCFyZW5kZXJlcigpIHx8
ICFhbmltYXRpb24oKSkKQEAgLTE0MzksMTUgKzE0NTIsMjMgQEAgdm9pZCBLZXlmcmFtZUVmZmVj
dDo6c2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUs
IGRvdWIKICAgICB9CiB9CiAKLVRpbWluZ0Z1bmN0aW9uKiBLZXlmcmFtZUVmZmVjdDo6dGltaW5n
RnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQorVGltaW5nRnVuY3Rpb24q
IEtleWZyYW1lRWZmZWN0Ojp0aW1pbmdGdW5jdGlvbkZvcktleWZyYW1lQXRJbmRleChzaXplX3Qg
aW5kZXgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhcnNlZEtleWZyYW1lcy5pc0VtcHR5KCkpCisg
ICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIW1f
cGFyc2VkS2V5ZnJhbWVzLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoaW5kZXggPj0gbV9wYXJz
ZWRLZXlmcmFtZXMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IHJldHVybiBtX3BhcnNlZEtleWZyYW1lc1tpbmRleF0udGltaW5nRnVuY3Rpb24uZ2V0KCk7Cisg
ICAgfQogCiAgICAgYXV0byBlZmZlY3RBbmltYXRpb24gPSBhbmltYXRpb24oKTsKICAgICBpZiAo
aXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGVmZmVjdEFuaW1hdGlvbikpIHsKICAgICAgICAgLy8g
SWYgd2UncmUgZGVhbGluZyB3aXRoIGEgQ1NTIEFuaW1hdGlvbiwgdGhlIHRpbWluZyBmdW5jdGlv
biBpcyBzcGVjaWZpZWQgZWl0aGVyIG9uIHRoZSBrZXlmcmFtZSBpdHNlbGYuCiAgICAgICAgIGlm
IChpczxDU1NBbmltYXRpb24+KGVmZmVjdEFuaW1hdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChp
bmRleCA+PSBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IG1fYmxl
bmRpbmdLZXlmcmFtZXNbaW5kZXhdLnRpbWluZ0Z1bmN0aW9uKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRpbWluZ0Z1bmN0aW9uOwogICAgICAgICB9CkBAIC0xNzk1LDQgKzE4MTYsNTcgQEAg
Ym9vbCBLZXlmcmFtZUVmZmVjdDo6cmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lc1NvdXJjZSA9PSBCbGVuZGluZ0tleWZyYW1lc1NvdXJj
ZTo6V2ViQW5pbWF0aW9uICYmIHRhcmdldHNQc2V1ZG9FbGVtZW50KCk7CiB9CiAKK09wdGlvbmFs
PGRvdWJsZT4gS2V5ZnJhbWVFZmZlY3Q6OnByb2dyZXNzVW50aWxOZXh0U3RlcChkb3VibGUgaXRl
cmF0aW9uUHJvZ3Jlc3MpIGNvbnN0Cit7CisgICAgQVNTRVJUKGl0ZXJhdGlvblByb2dyZXNzID49
IDAgJiYgaXRlcmF0aW9uUHJvZ3Jlc3MgPD0gMSk7CisKKyAgICBpZiAoYXV0byBwcm9ncmVzcyA9
IEFuaW1hdGlvbkVmZmVjdDo6cHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGl0ZXJhdGlvblByb2dyZXNz
KSkKKyAgICAgICAgcmV0dXJuIHByb2dyZXNzOworCisgICAgaWYgKCFpczxMaW5lYXJUaW1pbmdG
dW5jdGlvbj4odGltaW5nRnVuY3Rpb24oKSkgfHwgIW1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGlt
aW5nRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAobV9i
bGVuZGluZ0tleWZyYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBhdXRvIHByb2dyZXNzVW50aWxOZXh0U3RlcEluSW50ZXJ2YWwgPSBbaXRlcmF0aW9u
UHJvZ3Jlc3NdKGRvdWJsZSBpbnRlcnZhbFN0YXJ0UHJvZ3Jlc3MsIGRvdWJsZSBpbnRlcnZhbEVu
ZFByb2dyZXNzLCBhdXRvKiB0aW1pbmdGdW5jdGlvbikgLT4gT3B0aW9uYWw8ZG91YmxlPiB7Cisg
ICAgICAgIGlmICghaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4odGltaW5nRnVuY3Rpb24pKQorICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRvIG51bWJlck9mU3Rl
cHMgPSBkb3duY2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uPigqdGltaW5nRnVuY3Rpb24pLm51bWJl
ck9mU3RlcHMoKTsKKyAgICAgICAgYXV0byBpbnRlcnZhbFByb2dyZXNzID0gaW50ZXJ2YWxFbmRQ
cm9ncmVzcyAtIGludGVydmFsU3RhcnRQcm9ncmVzczsKKyAgICAgICAgYXV0byBpdGVyYXRpb25Q
cm9ncmVzc01hcHBlZFRvQ3VycmVudEludGVydmFsID0gKGl0ZXJhdGlvblByb2dyZXNzIC0gaW50
ZXJ2YWxTdGFydFByb2dyZXNzKSAvIGludGVydmFsUHJvZ3Jlc3M7CisgICAgICAgIGF1dG8gbmV4
dFN0ZXBQcm9ncmVzcyA9IGNlaWwoaXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRUb0N1cnJlbnRJbnRl
cnZhbCAqIG51bWJlck9mU3RlcHMpIC8gbnVtYmVyT2ZTdGVwczsKKyAgICAgICAgcmV0dXJuIChu
ZXh0U3RlcFByb2dyZXNzIC0gaXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRUb0N1cnJlbnRJbnRlcnZh
bCkgKiBpbnRlcnZhbFByb2dyZXNzOworICAgIH07CisKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgYXV0byBpbnRl
cnZhbEVuZFByb2dyZXNzID0gbV9ibGVuZGluZ0tleWZyYW1lc1tpXS5rZXkoKTsKKyAgICAgICAg
Ly8gV2UgY2FuIHN0b3Agb25jZSB3ZSBmaW5kIGEga2V5ZnJhbWUgZm9yIHdoaWNoIHRoZSBwcm9n
cmVzcyBpcyBtb3JlIHRoYW4gdGhlIHByb3ZpZGVkIGl0ZXJhdGlvbiBwcm9ncmVzcy4KKyAgICAg
ICAgaWYgKGludGVydmFsRW5kUHJvZ3Jlc3MgPD0gaXRlcmF0aW9uUHJvZ3Jlc3MpCisgICAgICAg
ICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBJbiBjYXNlIHdlJ3JlIG9uIHRoZSBmaXJzdCBr
ZXlmcmFtZSwgdGhlbiB0aGlzIG1lYW5zIHdlIGFyZSBkZWFsaW5nIHdpdGggYW4gaW1wbGljaXQg
MCUga2V5ZnJhbWUuCisgICAgICAgIC8vIFRoaXMgd2lsbCBiZSBhIGxpbmVhciB0aW1pbmcgZnVu
Y3Rpb24gdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIENTUyBBbmltYXRpb24gd2hpY2ggbWln
aHQgaGF2ZQorICAgICAgICAvLyB0aGUgZGVmYXVsdCB0aW1pbmcgZnVuY3Rpb24gZm9yIGl0cyBr
ZXlmcmFtZXMgZGVmaW5lZCBvbiBpdHMgYmFja2luZyBBbmltYXRpb24gb2JqZWN0LgorICAgICAg
ICBpZiAoIWkpIHsKKyAgICAgICAgICAgIGlmIChpczxDU1NBbmltYXRpb24+KGFuaW1hdGlvbigp
KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwSW5JbnRlcnZh
bCgwLCBpbnRlcnZhbEVuZFByb2dyZXNzLCBkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4o
KmFuaW1hdGlvbigpKS5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKSk7CisgICAg
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHByb2dyZXNzVW50aWxOZXh0U3RlcEluSW50ZXJ2YWwobV9ibGVuZGluZ0tleWZyYW1lc1tpIC0g
MV0ua2V5KCksIGludGVydmFsRW5kUHJvZ3Jlc3MsIHRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVB
dEluZGV4KGkgLSAxKSk7CisgICAgfQorCisgICAgLy8gSWYgd2UgZW5kIHVwIGhlcmUsIHRoZW4g
dGhpcyBtZWFucyB3ZSBhcmUgZGVhbGluZyB3aXRoIGFuIGltcGxpY2l0IDEwMCUga2V5ZnJhbWUu
CisgICAgLy8gVGhpcyB3aWxsIGJlIGEgbGluZWFyIHRpbWluZyBmdW5jdGlvbiB1bmxlc3Mgd2Un
cmUgZGVhbGluZyB3aXRoIGEgQ1NTIEFuaW1hdGlvbiB3aGljaCBtaWdodCBoYXZlCisgICAgLy8g
dGhlIGRlZmF1bHQgdGltaW5nIGZ1bmN0aW9uIGZvciBpdHMga2V5ZnJhbWVzIGRlZmluZWQgb24g
aXRzIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVjdC4KKyAgICBhdXRvJiBsYXN0RXhwbGljaXRLZXlm
cmFtZSA9IG1fYmxlbmRpbmdLZXlmcmFtZXNbbV9ibGVuZGluZ0tleWZyYW1lcy5zaXplKCkgLSAx
XTsKKyAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24oKSkpCisgICAgICAgIHJldHVy
biBwcm9ncmVzc1VudGlsTmV4dFN0ZXBJbkludGVydmFsKGxhc3RFeHBsaWNpdEtleWZyYW1lLmtl
eSgpLCAxLCBkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oKmFuaW1hdGlvbigpKS5iYWNr
aW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKSk7CisKKyAgICAvLyBJbiBhbnkgb3RoZXIg
Y2FzZSwgd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggYW4gaW50ZXJ2YWwgd2l0aCBhIHN0ZXBzKCkg
dGltaW5nIGZ1bmN0aW9uLgorICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgK
aW5kZXggYmU3NDU5ODJjZDYxM2FjOTAwY2M3NDRjYzBkNTRkMjU5NWJmOTEwYS4uMTlhZmRmMWVh
MjE1Y2Q4ZDM3OGRmYjc4NWQzZmVkNzFjYjk2NGQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTE4MSwxNiArMTgxLDE4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNjZWxlcmF0ZWRBY3Rpb24pOwogICAg
IHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKCk7CiAgICAgdm9pZCBzZXRBbmltYXRlZFBy
b3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxlJiwgZG91YmxlKTsKLSAgICBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90KTsKKyAgICBUaW1pbmdG
dW5jdGlvbiogdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90KSBjb25zdDsK
ICAgICBSZWY8Y29uc3QgQW5pbWF0aW9uPiBiYWNraW5nQW5pbWF0aW9uRm9yQ29tcG9zaXRlZFJl
bmRlcmVyKCkgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlZE5lZWRzRm9yY2VkTGF5b3V0KCk7CiAg
ICAgdm9pZCBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CisgICAgdm9pZCBjb21wdXRl
U29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24oKTsKICAgICB2b2lkIGNsZWFyQmxl
bmRpbmdLZXlmcmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUJsZW5kaW5nS2V5ZnJhbWVzKFJlbmRl
clN0eWxlJik7CiAgICAgdm9pZCBjb21wdXRlQ1NTQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMo
Y29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB2b2lkIGNvbXB1dGVDU1NUcmFuc2l0aW9uQmxlbmRp
bmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHls
ZSYgbmV3U3R5bGUpOwogICAgIHZvaWQgY29tcHV0ZUFjY2VsZXJhdGVkUHJvcGVydGllc1N0YXRl
KCk7CiAgICAgdm9pZCBzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlmcmFtZUxpc3QmKTsKKyAgICBP
cHRpb25hbDxkb3VibGU+IHByb2dyZXNzVW50aWxOZXh0U3RlcChkb3VibGUpIGNvbnN0IGZpbmFs
OwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1bmN0aW9uTGlzdHMoKTsKICAg
ICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CiAgICAgdm9pZCBj
aGVja0Zvck1hdGNoaW5nQ29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CkBAIC0yMjIsNiArMjI0
LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wgbV9jb2xvckZpbHRlckZ1bmN0aW9uTGlz
dHNNYXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luVGFyZ2V0RWZmZWN0U3RhY2sgeyBmYWxz
ZSB9OworICAgIGJvb2wgbV9zb21lS2V5ZnJhbWVzVXNlU3RlcHNUaW1pbmdGdW5jdGlvbiB7IGZh
bHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGNkMDUxMzhiZDc4NmQ4ZWJkYTM5NDZiNmU3ZjRm
ZWM0N2FiODMwYmUuLjczZjk2OWMyMjkwYWJlYTI3NzA4Yjg2Y2FjMTNjMTBhNGVlY2EwNjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBAIC0xNDgyLDYgKzE0
ODIsMTEgQEAgU2Vjb25kcyBXZWJBbmltYXRpb246OnRpbWVUb05leHRUaWNrKCkgY29uc3QKICAg
ICAgICAgICAgIC8vIEZ1bGx5LWFjY2VsZXJhdGVkIHJ1bm5pbmcgYW5pbWF0aW9ucyBpbiB0aGUg
ImFjdGl2ZSIgcGhhc2UgY2FuIHdhaXQgdW50aWwgdGhleSBlbmRlZC4KICAgICAgICAgICAgIHJl
dHVybiAoZWZmZWN0LmVuZFRpbWUoKSAtIHRpbWluZy5sb2NhbFRpbWUudmFsdWUoKSkgLyBwbGF5
YmFja1JhdGU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gaXRlcmF0aW9uUHJvZ3Jlc3Mg
PSBlZmZlY3QuZ2V0Q29tcHV0ZWRUaW1pbmcoKS5zaW1wbGVJdGVyYXRpb25Qcm9ncmVzcykgewor
ICAgICAgICAgICAgLy8gSW4gY2FzZSB3ZSdyZSBpbiBhIHJhbmdlIHRoYXQgdXNlcyBhIHN0ZXBz
KCkgdGltaW5nIGZ1bmN0aW9uLCB3ZSBjYW4gY29tcHV0ZSB0aGUgdGltZSB1bnRpbCB0aGUgbmV4
dCBzdGVwIHN0YXJ0cy4KKyAgICAgICAgICAgIGlmIChhdXRvIHByb2dyZXNzVW50aWxOZXh0U3Rl
cCA9IGVmZmVjdC5wcm9ncmVzc1VudGlsTmV4dFN0ZXAoKml0ZXJhdGlvblByb2dyZXNzKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9uKCkgKiAqcHJvZ3Jl
c3NVbnRpbE5leHRTdGVwIC8gcGxheWJhY2tSYXRlOworICAgICAgICB9CiAgICAgICAgIC8vIE90
aGVyIGFuaW1hdGlvbnMgaW4gdGhlICJhY3RpdmUiIHBoYXNlIHdpbGwgbmVlZCB0byB1cGRhdGUg
dGhlaXIgYW5pbWF0ZWQgdmFsdWUgYXQgdGhlIGltbWVkaWF0ZSBuZXh0IG9wcG9ydHVuaXR5Lgog
ICAgICAgICByZXR1cm4gMF9zOwogICAgIGNhc2UgQW5pbWF0aW9uRWZmZWN0UGhhc2U6OkFmdGVy
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4IDlmZjdhMmQ2NmI0
ZTUzOGU5NzA1MTZiYzRlMzk5NTYwMWNlZWRkZDAuLjUyY2JjZjI2ZjFkMjM0ODFkNGFkZDk0MTZl
YzgxNzgwOTU5YTU5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJB
bmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmgK
QEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG5lZWRzVGljaygpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCB0aWNrKCk7Ci0gICAgU2Vjb25kcyB0aW1lVG9OZXh0VGljaygp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNlY29uZHMgdGltZVRvTmV4dFRpY2soKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgZWZm
ZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFyZ2V0LCBFbGVtZW50KiBuZXdU
YXJnZXQpOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRTdGF0ZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbAppbmRleCAyYWZmMmNiMmVlMzA1ZTIwZWJi
ZWE5NzQ1YmI3NzMwMWI0YTY3NjZkLi4wY2UzODFhOWNhZGEwNGM0MmQ4MDI5M2M2ZGNkYThiYjYz
MGVmMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbApAQCAt
NDEsNyArNDEsOCBAQCBlbnVtIEFuaW1hdGlvblJlcGxhY2VTdGF0ZSB7CiAgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJBbmltYXRpb25zLAogICAgIEludGVyZmFjZU5hbWU9QW5pbWF0aW9uLAogICAg
IEN1c3RvbUNvbnN0cnVjdG9yKCksCi0gICAgQ3VzdG9tVG9KU09iamVjdAorICAgIEN1c3RvbVRv
SlNPYmplY3QsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQKIF0gaW50ZXJmYWNlIFdl
YkFuaW1hdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nIGlkOwog
ICAgIFtJbXBsZW1lbnRlZEFzPWJpbmRpbmdzRWZmZWN0XSBhdHRyaWJ1dGUgQW5pbWF0aW9uRWZm
ZWN0PyBlZmZlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNmVjN2I0
OGNiZDI2ZDcyYTNlNjI4ODg0Njc4YmJjYjVmMzBmOTU2Yi4uYTM4YzNkZmI3YjZiNGJjNDQ1NGQ3
NGNkYTFjOWM3ODZiNDdjMDE0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMTk2LDYgKzE5Niw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKICNpbmNs
dWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24uaCIKKyNpbmNsdWRl
ICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRh
LmgiCiAjaW5jbHVkZSAiV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIK
QEAgLTEyMDAsNiArMTIwMSwxMSBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mQW5pbWF0
aW9uVGltZWxpbmVJbnZhbGlkYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorZG91
YmxlIEludGVybmFsczo6dGltZVRvTmV4dEFuaW1hdGlvblRpY2soV2ViQW5pbWF0aW9uJiBhbmlt
YXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIHNlY29uZHNUb1dlYkFuaW1hdGlvbnNBUElUaW1l
KGFuaW1hdGlvbi50aW1lVG9OZXh0VGljaygpKTsKK30KKwogRXhjZXB0aW9uT3I8UmVmUHRyPEVs
ZW1lbnQ+PiBJbnRlcm5hbHM6OnBzZXVkb0VsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
U3RyaW5nJiBwc2V1ZG9JZCkKIHsKICAgICBpZiAocHNldWRvSWQgIT0gImJlZm9yZSIgJiYgcHNl
dWRvSWQgIT0gImFmdGVyIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDExOTcx
YmQ2NjE1ZTM0NzBjZGRmYTkxOWYxMTExNjg5MzMxZDQ3ZTcuLmFiNTJjOGNhMTg4YWMzYzc2ZDdh
ZjcyYzdjNmJhNWVlOGM4MzM3YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAt
MTA2LDYgKzEwNiw3IEBAIGNsYXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBUeXBlQ29udmVyc2lvbnM7
CiBjbGFzcyBVbnN1c3BlbmRhYmxlQWN0aXZlRE9NT2JqZWN0OwogY2xhc3MgVm9pZENhbGxiYWNr
OworY2xhc3MgV2ViQW5pbWF0aW9uOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0OwogY2xh
c3MgV2luZG93UHJveHk7CiBjbGFzcyBYTUxIdHRwUmVxdWVzdDsKQEAgLTIzOSw2ICsyNDAsNyBA
QCBwdWJsaWM6CiAgICAgfTsKICAgICBWZWN0b3I8QWNjZWxlcmF0ZWRBbmltYXRpb24+IGFjY2Vs
ZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYpOwogICAgIHVuc2lnbmVkIG51bWJl
ck9mQW5pbWF0aW9uVGltZWxpbmVJbnZhbGlkYXRpb25zKCkgY29uc3Q7CisgICAgZG91YmxlIHRp
bWVUb05leHRBbmltYXRpb25UaWNrKFdlYkFuaW1hdGlvbiYpIGNvbnN0OwogCiAgICAgLy8gRm9y
IGFuaW1hdGlvbnMgdGVzdGluZywgd2UgbmVlZCBhIHdheSB0byBnZXQgYXQgcHNldWRvIGVsZW1l
bnRzLgogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxFbGVtZW50Pj4gcHNldWRvRWxlbWVudChFbGVt
ZW50JiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5k
ZXggYzAyYjRkZDkyNjhiMGU2NzUxNTliZjQxODY4YjBmZjM1YzY5NGZmOC4uMTVjZTVjZDZhOGFi
NzhhNjkxY2U5NTE3YzM4YzdhZWYzZDRiZTlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbApAQCAtMjk3LDYgKzI5Nyw3IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAg
IC8vIFdlYiBBbmltYXRpb25zIHRlc3RpbmcuCiAgICAgc2VxdWVuY2U8QWNjZWxlcmF0ZWRBbmlt
YXRpb24+IGFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCBlbGVtZW50KTsK
ICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mQW5pbWF0aW9uVGltZWxpbmVJbnZhbGlkYXRpb25z
KCk7CisgICAgZG91YmxlIHRpbWVUb05leHRBbmltYXRpb25UaWNrKFdlYkFuaW1hdGlvbiBhbmlt
YXRpb24pOwogCiAgICAgLy8gRm9yIGFuaW1hdGlvbnMgdGVzdGluZywgd2UgbmVlZCBhIHdheSB0
byBnZXQgYXQgcHNldWRvIGVsZW1lbnRzLgogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRWxlbWVu
dD8gcHNldWRvRWxlbWVudChFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBwc2V1ZG9JZCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggZGQ5Y2NkOWFmNTNmM2JiZTgyYzVjM2RhNWIzYTMwYjFjZmYwMWNhZi4uNzRmZTQ0OWU3
YWQ1ZWQ1ZDhmODk2NDcxMzlmYjdhMzY1NWIzNGViMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDIwLTA1LTIwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAg
W1dlYiBBbmltYXRpb25zXSBBbmltYXRpb24gZW5naW5lIHNob3VsZCBub3Qgd2FrZSB1cCBldmVy
eSB0aWNrIGZvciBzdGVwcyB0aW1pbmcgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxMDMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYyNzM3ODY4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0ZXN0cyB0aGF0IGNoZWNrIHRoYXQgYW4gYW5pbWF0aW9uIHVzaW5nIGEgc3RlcHMo
KSB0aW1pbmcgZnVuY3Rpb24gY29ycmVjdGx5IGNvbXB1dGVzIHRoZSB0aW1lIHRvCisgICAgICAg
IHRoZSBuZXh0IHRpY2sgYWNjb3VuaW5nIGZvciB0aGUgZmFjdCB0aGF0IGl0IHdvbid0IGNvbXB1
dGUgYSBkaWZmZXJlbnQgaXRlcmF0aW9uIHByb2dyZXNzIHVudGlsIHRoZQorICAgICAgICBuZXh0
IHN0ZXAuCisKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9u
LXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1z
dGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdl
YmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVu
Y3Rpb24tb24ta2V5ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmlt
YXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9u
LW9uLWtleWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1
bGluZy1vZi1jc3MtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1h
bmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24uaHRtbDogQWRkZWQuCisKIDIwMjAt
MDUtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtHVEtdIE1vdmUgdG8gbmV3IFBhc3RlYm9hcmQgQVBJCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGlt
aW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmlt
YXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9u
LW9uLWVmZmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA4YjJkZjM2ZDFiODBkNzBkZDZk
MTRjZTRhYzEyN2RhZjVhMTk5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFu
aW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rp
b24tb24tZWZmZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBDb21wdXRp
bmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBmb3IgYW4gZWZmZWN0IHdpdGggYSBzdGVw
cygpIGVhc2luZy4gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2No
ZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9u
LXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY0
YjdmMDg1ODRiMWQ4NjdhMzljZjE4MTc1OTE2MmIzZmFmMDI3Y2MKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgt
c3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2
PjwvZGl2PgorPHNjcmlwdD4KKworYXN5bmNfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBh
bmltYXRpb24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJkaXYiKS5hbmltYXRlKHsgbWFyZ2lu
TGVmdDogIjEwMHB4IiB9LCB7IGR1cmF0aW9uOiAxMDAwLCBlYXNpbmc6ICJzdGVwcygxMCkiIH0p
OworCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5OworICAgIAorICAgIGFuaW1hdGlvbi5jdXJy
ZW50VGltZSA9IDIyNTsKKyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy50aW1lVG9OZXh0QW5p
bWF0aW9uVGljayhhbmltYXRpb24pLCA3NSwgIkNvbXB1dGluZyB0aGUgdGltZSB1bnRpbCB0aGUg
bmV4dCB0aWNrIHdoZW4gcGFydGx5IHRocm91Z2ggYSBzdGVwcyBpbnRlcnZhbC4iKTsKKyAgICAK
KyAgICB0LmRvbmUoKTsKK30sICJDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGlj
ayBmb3IgYW4gZWZmZWN0IHdpdGggYSBzdGVwcygpIGVhc2luZy4iKTsKKworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0
aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1z
dGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwN2MyOWY4MjYxM2M4ZGM1NDhhZmUxMTQ3NGQ4OWU4ODM2ZjU5MGMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdp
dGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBm
b3IgYSBrZXlmcmFtZSB3aXRoIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdp
dGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1
bmN0aW9uLW9uLWtleWZyYW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlmY2JkZTMwYTE2MmQ4YmJjNjll
YTE4NjU1ODRlNzMxNDg4NGUyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFu
aW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rp
b24tb24ta2V5ZnJhbWUuaHRtbApAQCAtMCwwICsxLDIwIEBACis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdj48L2Rpdj4KKzxzY3JpcHQ+
CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgYW5pbWF0aW9uID0gZG9jdW1l
bnQucXVlcnlTZWxlY3RvcigiZGl2IikuYW5pbWF0ZSh7CisgICAgICAgIG1hcmdpbkxlZnQ6IFsi
MCIsICIyNTBweCIsICI1MDBweCIsICI3NTBweCIsICIxMDAwcHgiXSwKKyAgICAgICAgZWFzaW5n
OiBbImxpbmVhciIsICJsaW5lYXIiLCAic3RlcHMoMTApIiwgImxpbmVhciJdCisgICAgfSwgMTAw
MCk7CisKKyAgICBhd2FpdCBhbmltYXRpb24ucmVhZHk7CisgICAgCisgICAgYW5pbWF0aW9uLmN1
cnJlbnRUaW1lID0gNTM1OworICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLnRpbWVUb05leHRB
bmltYXRpb25UaWNrKGFuaW1hdGlvbiksIDE1KTsKKworICAgIHQuZG9uZSgpOworfSwgIkNvbXB1
dGluZyB0aGUgdGltZSB1bnRpbCB0aGUgbmV4dCB0aWNrIGZvciBhIGtleWZyYW1lIHdpdGggYSBz
dGVwcygpIHRpbWluZyBmdW5jdGlvbi4iKTsKKworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399828</attachid>
            <date>2020-05-20 03:49:03 -0700</date>
            <delta_ts>2020-05-20 06:59:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212103-20200520124901.patch</filename>
            <type>text/plain</type>
            <size>25225</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ5YmIwMzY1NzFmMTgxODE5ODA1N2M3
ZWE1YjQ1YjBkMzc4NTk1ZGIuLjFkYzhjMDRlNWI2ZDM5YjBjODMwY2RjMTRjNGY5Yzc5YzRmZTgz
MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdp
bmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgU2Vjb25kcyB0byBiZSBkaXZpZGVk
IG9yIG11bHRpcGxpZWQgYnkgYSBkb3VibGUgd2l0aCBvcGVyYW5kcyBpbiBhbnkgb3JkZXIuCisK
KyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAg
ICAgICAoV1RGOjpvcGVyYXRvci8pOgorCiAyMDIwLTA1LTE1ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTWFrZSBob3N0IHBhcnNlciBmYWls
IG9uIF4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCBkMWU1ZGVmYWJmYzdkZGNlZDExYjI0Y2JiYmZlMmU5MzMwMDdj
N2FkLi43NTQzZDA3NDdlMDAyZjg5MGQwNGY1YTg2YmFhZDNlZDVjZmYwNWViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDkgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdpbmUgc2hv
dWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlvbnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEwMworICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1v
Zi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWwKKyAg
ICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1z
dGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgd2Vi
YW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmct
ZnVuY3Rpb24uaHRtbAorCisgICAgICAgIFdoZW4gYW4gYW5pbWF0aW9uIHVzZXMgYSBzdGVwcygp
IHRpbWluZyBmdW5jdGlvbiwgaXQgd2lsbCBhcHBlYXIgdG8gYW5pbWF0ZSBkaXNjcmV0ZWx5IGJl
dHdlZW4gdmFsdWVzIHN1Y2gKKyAgICAgICAgdGhhdCB0aGVyZSBpcyBvbmx5IG4gdmlzdWFsIGNo
YW5nZXMsIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBzdGVwcyBwcm92aWRlZC4gVGhpcyBnaXZl
cyB1cyBhbiBvcHBvcnR1bml0eQorICAgICAgICB0byBiZSBtb3JlIGVmZmljaWVudCB3aGVuIHNj
aGVkdWxpbmcgYW5pbWF0aW9ucyB1c2luZyBzdGVwcygpIHRpbWluZyBmdW5jdGlvbnMuCisKKyAg
ICAgICAgSW4gV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0VGljaygpIHdlIG5vdyBhc2sgdGhlIGFz
c29jaWF0ZWQgZWZmZWN0IGZvciB0aGUgYW1vdW50IG9mIHByb2dyZXNzIHVudGlsIHRoZSBuZXh0
CisgICAgICAgIHN0ZXAuIEZvciBhbiBlZmZlY3Qtd2lkZSBzdGVwcygpIHRpbWluZyBmdW5jdGlv
biwgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgaXRlcmF0aW9uIHByb2dyZXNzLiBGb3IgYW5pbWF0
aW9ucworICAgICAgICB3aXRoIGEgbGluZWFyIGVmZmVjdC13aWRlIHRpbWluZyBmdW5jdGlvbiAo
dGhlIGRlZmF1bHQpLCB3ZSBoYXZlIHRvIG1hcCB0aGUgcHJvdmlkZWQgaXRlcmF0aW9uIHByb2dy
ZXNzIHRvCisgICAgICAgIGEga2V5ZnJhbWUgaW50ZXJ2YWwsIHByb3ZpZGVkIHRoYXQgaW50ZXJ2
YWwgdXNlcyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLgorCisgICAgICAgIFRoZSBuZXcge0Fu
aW1hdGlvbnxLZXlmcmFtZX1FZmZlY3Q6OnByb2dyZXNzVW50aWxOZXh0U3RlcCgpIG1ldGhvZCBy
ZXR1cm5zIFdURjo6bnVsbG9wdCBmb3IgYW55IG90aGVyIGNhc2UuCisKKyAgICAgICAgSW4gb3Jk
ZXIgdG8gdGVzdCB0aGlzLCB3ZSBhZGQgYSBuZXcgaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRp
b25UaWNrKGFuaW1hdGlvbikgbWV0aG9kIHdoaWNoIHdlIHVzZSBpbiB0aGUKKyAgICAgICAgdHdv
IG5ldyB0ZXN0cy4KKworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAg
Y29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuaDoKKyAgICAgICAg
KiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJh
bWVFZmZlY3Q6OnNldEJsZW5kaW5nS2V5ZnJhbWVzKToKKyAgICAgICAgKFdlYkNvcmU6OktleWZy
YW1lRWZmZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJh
bWVBdEluZGV4IGNvbnN0KTogQXZvaWQgYW55IG91dC1vZi1ib3VuZHMgdXNlIG9mIHRoZSB1bmRl
cmx5aW5nIGRhdGEKKyAgICAgICAgc3RydWN0dXJlcyBieSByZXR1cm5pbmcgbnVsbHB0ciBmb3Ig
Y2FzZXMgd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbiBleHBsaWNpdCBrZXlmcmFtZS4gV2UgYWxzbyBt
YWtlIHRoZSBmdW5jdGlvbiBjb25zdAorICAgICAgICBzdWNoIHRoYXQgaXQgbWF5IGJlIGNhbGxl
ZCBmcm9tIHByb2dyZXNzVW50aWxOZXh0U3RlcCgpLCBpdCBhbHdheXMgd2FzIGNvbnN0IGJ1dCB3
YXNuJ3QgbWFya2VkIGFzIHN1Y2guCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6
cHJvZ3Jlc3NVbnRpbE5leHRTdGVwIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJh
bWVFZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6dGltZVRvTmV4dFRpY2sgY29uc3QpOgorICAgICAg
ICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vV2ViQW5p
bWF0aW9uLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OnRpbWVUb05leHRBbmltYXRpb25UaWNrIGNvbnN0KToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wNS0xNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtMRkNdW0JGQ10gSW50cm9kdWNlIFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuaCBiL1NvdXJjZS9XVEYvd3Rm
L1NlY29uZHMuaAppbmRleCA5N2Y3ZGJmY2U4N2QxMjE1NTI0ZTFjYWY3NzUwZjlhZDE5ZDViZDc3
Li5jMWJlMzkyNzM4MmViNmJmZTk1MzA3OGZlNWJhMjAxN2YyZjkyOWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9TZWNvbmRzLmgKKysrIGIvU291cmNlL1dURi93dGYvU2Vjb25kcy5oCkBA
IC0zMzIsNiArMzMyLDE2IEBAIGNvbnN0ZXhwciBTZWNvbmRzIG9wZXJhdG9yIiIgX25zKHVuc2ln
bmVkIGxvbmcgbG9uZyBuYW5vc2Vjb25kcykKIAogfSAvLyBpbmxpbmUgc2Vjb25kc19saXRlcmFs
cwogCitpbmxpbmUgU2Vjb25kcyBvcGVyYXRvciooZG91YmxlIHNjYWxhciwgU2Vjb25kcyBzZWNv
bmRzKQoreworICAgIHJldHVybiBTZWNvbmRzKHNjYWxhciAqIHNlY29uZHMudmFsdWUoKSk7Cit9
CisKK2lubGluZSBTZWNvbmRzIG9wZXJhdG9yLyhkb3VibGUgc2NhbGFyLCBTZWNvbmRzIHNlY29u
ZHMpCit7CisgICAgcmV0dXJuIFNlY29uZHMoc2NhbGFyIC8gc2Vjb25kcy52YWx1ZSgpKTsKK30K
KwogV1RGX0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYs
IFNlY29uZHMpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKaW5kZXggN2VlNWI1NDQyMzU1YzJhNWQxNmI2ZDRkNjkz
Mjc1MjVjMzZjZGY3Yi4uNzI4YTliMzMxMjZmZWFhMjViM2M1NDU2YmQxZmUxNGQ0ODI0NzI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTU0
MSw0ICs1NDEsMTQgQEAgdm9pZCBBbmltYXRpb25FZmZlY3Q6OnNldFRpbWluZ0Z1bmN0aW9uKGNv
bnN0IFJlZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWluZ0Z1bmMKICAgICBtX3RpbWluZ0Z1bmN0
aW9uID0gdGltaW5nRnVuY3Rpb247CiB9CiAKK09wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uRWZm
ZWN0Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlIGl0ZXJhdGlvblByb2dyZXNzKSBjb25z
dAoreworICAgIGlmICghaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4obV90aW1pbmdGdW5jdGlvbikp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG51bWJlck9mU3RlcHMg
PSBkb3duY2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uPigqbV90aW1pbmdGdW5jdGlvbikubnVtYmVy
T2ZTdGVwcygpOworICAgIGF1dG8gbmV4dFN0ZXBQcm9ncmVzcyA9IGNlaWwoaXRlcmF0aW9uUHJv
Z3Jlc3MgKiBudW1iZXJPZlN0ZXBzKSAvIG51bWJlck9mU3RlcHM7CisgICAgcmV0dXJuIG5leHRT
dGVwUHJvZ3Jlc3MgLSBpdGVyYXRpb25Qcm9ncmVzczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCmluZGV4IDk1
YzY0YzVjNTk1YmVkOWRhNmYzMjMxM2UzMWFmOWQwN2QzZWQ5ZTkuLjNjNDVjZTA4YWFiNjgyOTJh
NWRiNzVlNzEwMjA3MjAzMTU0OTZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5p
bWF0aW9uRWZmZWN0LmgKQEAgLTEwMiw2ICsxMDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVw
ZGF0ZVN0YXRpY1RpbWluZ1Byb3BlcnRpZXMoKTsKIAorICAgIHZpcnR1YWwgT3B0aW9uYWw8ZG91
YmxlPiBwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlKSBjb25zdDsKKwogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IEFuaW1hdGlvbkVmZmVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCAxMTBlYjFlNGNjMjM5NjIyOGZkMTFmYmI2ODg3
YzJhZGFiNmY2YWE4Li5hYmVlNTM4NWQyYjc0NDhiNDAzZTk3OTQ1M2Q4ODY4YjYxNTUzOWRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTg0Niw2
ICs4NDYsNyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjpzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlm
cmFtZUxpc3QmIGJsZW5kaW5nS2V5ZnJhbWVzKQogICAgIGNvbXB1dGVkTmVlZHNGb3JjZWRMYXlv
dXQoKTsKICAgICBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CiAgICAgY29tcHV0ZUFj
Y2VsZXJhdGVkUHJvcGVydGllc1N0YXRlKCk7CisgICAgY29tcHV0ZVNvbWVLZXlmcmFtZXNVc2VT
dGVwc1RpbWluZ0Z1bmN0aW9uKCk7CiAKICAgICBjaGVja0Zvck1hdGNoaW5nVHJhbnNmb3JtRnVu
Y3Rpb25MaXN0cygpOwogICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7
CkBAIC0xMjY1LDYgKzEyNjYsMTggQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZUFjY2Vs
ZXJhdGVkUHJvcGVydGllc1N0YXRlKCkKICAgICAgICAgbV9hY2NlbGVyYXRlZFByb3BlcnRpZXNT
dGF0ZSA9IEFjY2VsZXJhdGVkUHJvcGVydGllczo6QWxsOwogfQogCit2b2lkIEtleWZyYW1lRWZm
ZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24oKQoreworICAg
IG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24gPSBmYWxzZTsKKyAgICBzaXpl
X3QgbnVtYmVyT2ZLZXlmcmFtZXMgPSBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsKKyAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IG51bWJlck9mS2V5ZnJhbWVzOyBpKyspIHsKKyAgICAgICAg
aWYgKGlzPFN0ZXBzVGltaW5nRnVuY3Rpb24+KG1fYmxlbmRpbmdLZXlmcmFtZXNbaV0udGltaW5n
RnVuY3Rpb24oKSkpIHsKKyAgICAgICAgICAgIG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5n
RnVuY3Rpb24gPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
fQorCiB2b2lkIEtleWZyYW1lRWZmZWN0OjpnZXRBbmltYXRlZFN0eWxlKHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJTdHlsZT4mIGFuaW1hdGVkU3R5bGUpCiB7CiAgICAgaWYgKCFyZW5kZXJlcigpIHx8
ICFhbmltYXRpb24oKSkKQEAgLTE0MzksMTUgKzE0NTIsMjMgQEAgdm9pZCBLZXlmcmFtZUVmZmVj
dDo6c2V0QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYgdGFyZ2V0U3R5bGUs
IGRvdWIKICAgICB9CiB9CiAKLVRpbWluZ0Z1bmN0aW9uKiBLZXlmcmFtZUVmZmVjdDo6dGltaW5n
RnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90IGluZGV4KQorVGltaW5nRnVuY3Rpb24q
IEtleWZyYW1lRWZmZWN0Ojp0aW1pbmdGdW5jdGlvbkZvcktleWZyYW1lQXRJbmRleChzaXplX3Qg
aW5kZXgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3BhcnNlZEtleWZyYW1lcy5pc0VtcHR5KCkpCisg
ICAgaWYgKGluZGV4IDwgMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoIW1f
cGFyc2VkS2V5ZnJhbWVzLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoaW5kZXggPj0gbV9wYXJz
ZWRLZXlmcmFtZXMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAg
IHJldHVybiBtX3BhcnNlZEtleWZyYW1lc1tpbmRleF0udGltaW5nRnVuY3Rpb24uZ2V0KCk7Cisg
ICAgfQogCiAgICAgYXV0byBlZmZlY3RBbmltYXRpb24gPSBhbmltYXRpb24oKTsKICAgICBpZiAo
aXM8RGVjbGFyYXRpdmVBbmltYXRpb24+KGVmZmVjdEFuaW1hdGlvbikpIHsKICAgICAgICAgLy8g
SWYgd2UncmUgZGVhbGluZyB3aXRoIGEgQ1NTIEFuaW1hdGlvbiwgdGhlIHRpbWluZyBmdW5jdGlv
biBpcyBzcGVjaWZpZWQgZWl0aGVyIG9uIHRoZSBrZXlmcmFtZSBpdHNlbGYuCiAgICAgICAgIGlm
IChpczxDU1NBbmltYXRpb24+KGVmZmVjdEFuaW1hdGlvbikpIHsKKyAgICAgICAgICAgIGlmIChp
bmRleCA+PSBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgICAgIGlmIChhdXRvKiB0aW1pbmdGdW5jdGlvbiA9IG1fYmxl
bmRpbmdLZXlmcmFtZXNbaW5kZXhdLnRpbWluZ0Z1bmN0aW9uKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIHRpbWluZ0Z1bmN0aW9uOwogICAgICAgICB9CkBAIC0xNzk1LDQgKzE4MTYsNTcgQEAg
Ym9vbCBLZXlmcmFtZUVmZmVjdDo6cmVxdWlyZXNQc2V1ZG9FbGVtZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9ibGVuZGluZ0tleWZyYW1lc1NvdXJjZSA9PSBCbGVuZGluZ0tleWZyYW1lc1NvdXJj
ZTo6V2ViQW5pbWF0aW9uICYmIHRhcmdldHNQc2V1ZG9FbGVtZW50KCk7CiB9CiAKK09wdGlvbmFs
PGRvdWJsZT4gS2V5ZnJhbWVFZmZlY3Q6OnByb2dyZXNzVW50aWxOZXh0U3RlcChkb3VibGUgaXRl
cmF0aW9uUHJvZ3Jlc3MpIGNvbnN0Cit7CisgICAgQVNTRVJUKGl0ZXJhdGlvblByb2dyZXNzID49
IDAgJiYgaXRlcmF0aW9uUHJvZ3Jlc3MgPD0gMSk7CisKKyAgICBpZiAoYXV0byBwcm9ncmVzcyA9
IEFuaW1hdGlvbkVmZmVjdDo6cHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGl0ZXJhdGlvblByb2dyZXNz
KSkKKyAgICAgICAgcmV0dXJuIHByb2dyZXNzOworCisgICAgaWYgKCFpczxMaW5lYXJUaW1pbmdG
dW5jdGlvbj4odGltaW5nRnVuY3Rpb24oKSkgfHwgIW1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGlt
aW5nRnVuY3Rpb24pCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBpZiAobV9i
bGVuZGluZ0tleWZyYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisKKyAgICBhdXRvIHByb2dyZXNzVW50aWxOZXh0U3RlcEluSW50ZXJ2YWwgPSBbaXRlcmF0aW9u
UHJvZ3Jlc3NdKGRvdWJsZSBpbnRlcnZhbFN0YXJ0UHJvZ3Jlc3MsIGRvdWJsZSBpbnRlcnZhbEVu
ZFByb2dyZXNzLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pIC0+IE9wdGlvbmFsPGRv
dWJsZT4geworICAgICAgICBpZiAoIWlzPFN0ZXBzVGltaW5nRnVuY3Rpb24+KHRpbWluZ0Z1bmN0
aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICAgICAgYXV0byBu
dW1iZXJPZlN0ZXBzID0gZG93bmNhc3Q8U3RlcHNUaW1pbmdGdW5jdGlvbj4oKnRpbWluZ0Z1bmN0
aW9uKS5udW1iZXJPZlN0ZXBzKCk7CisgICAgICAgIGF1dG8gaW50ZXJ2YWxQcm9ncmVzcyA9IGlu
dGVydmFsRW5kUHJvZ3Jlc3MgLSBpbnRlcnZhbFN0YXJ0UHJvZ3Jlc3M7CisgICAgICAgIGF1dG8g
aXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRUb0N1cnJlbnRJbnRlcnZhbCA9IChpdGVyYXRpb25Qcm9n
cmVzcyAtIGludGVydmFsU3RhcnRQcm9ncmVzcykgLyBpbnRlcnZhbFByb2dyZXNzOworICAgICAg
ICBhdXRvIG5leHRTdGVwUHJvZ3Jlc3MgPSBjZWlsKGl0ZXJhdGlvblByb2dyZXNzTWFwcGVkVG9D
dXJyZW50SW50ZXJ2YWwgKiBudW1iZXJPZlN0ZXBzKSAvIG51bWJlck9mU3RlcHM7CisgICAgICAg
IHJldHVybiAobmV4dFN0ZXBQcm9ncmVzcyAtIGl0ZXJhdGlvblByb2dyZXNzTWFwcGVkVG9DdXJy
ZW50SW50ZXJ2YWwpICogaW50ZXJ2YWxQcm9ncmVzczsKKyAgICB9OworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBtX2JsZW5kaW5nS2V5ZnJhbWVzLnNpemUoKTsgKytpKSB7CisgICAgICAg
IGF1dG8gaW50ZXJ2YWxFbmRQcm9ncmVzcyA9IG1fYmxlbmRpbmdLZXlmcmFtZXNbaV0ua2V5KCk7
CisgICAgICAgIC8vIFdlIGNhbiBzdG9wIG9uY2Ugd2UgZmluZCBhIGtleWZyYW1lIGZvciB3aGlj
aCB0aGUgcHJvZ3Jlc3MgaXMgbW9yZSB0aGFuIHRoZSBwcm92aWRlZCBpdGVyYXRpb24gcHJvZ3Jl
c3MuCisgICAgICAgIGlmIChpbnRlcnZhbEVuZFByb2dyZXNzIDw9IGl0ZXJhdGlvblByb2dyZXNz
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gSW4gY2FzZSB3ZSdyZSBvbiB0
aGUgZmlyc3Qga2V5ZnJhbWUsIHRoZW4gdGhpcyBtZWFucyB3ZSBhcmUgZGVhbGluZyB3aXRoIGFu
IGltcGxpY2l0IDAlIGtleWZyYW1lLgorICAgICAgICAvLyBUaGlzIHdpbGwgYmUgYSBsaW5lYXIg
dGltaW5nIGZ1bmN0aW9uIHVubGVzcyB3ZSdyZSBkZWFsaW5nIHdpdGggYSBDU1MgQW5pbWF0aW9u
IHdoaWNoIG1pZ2h0IGhhdmUKKyAgICAgICAgLy8gdGhlIGRlZmF1bHQgdGltaW5nIGZ1bmN0aW9u
IGZvciBpdHMga2V5ZnJhbWVzIGRlZmluZWQgb24gaXRzIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVj
dC4KKyAgICAgICAgaWYgKCFpKSB7CisgICAgICAgICAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihh
bmltYXRpb24oKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHByb2dyZXNzVW50aWxOZXh0U3Rl
cEluSW50ZXJ2YWwoMCwgaW50ZXJ2YWxFbmRQcm9ncmVzcywgZG93bmNhc3Q8RGVjbGFyYXRpdmVB
bmltYXRpb24+KCphbmltYXRpb24oKSkuYmFja2luZ0FuaW1hdGlvbigpLnRpbWluZ0Z1bmN0aW9u
KCkpOworICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiBwcm9ncmVzc1VudGlsTmV4dFN0ZXBJbkludGVydmFsKG1fYmxlbmRpbmdLZXlm
cmFtZXNbaSAtIDFdLmtleSgpLCBpbnRlcnZhbEVuZFByb2dyZXNzLCB0aW1pbmdGdW5jdGlvbkZv
cktleWZyYW1lQXRJbmRleChpIC0gMSkpOworICAgIH0KKworICAgIC8vIElmIHdlIGVuZCB1cCBo
ZXJlLCB0aGVuIHRoaXMgbWVhbnMgd2UgYXJlIGRlYWxpbmcgd2l0aCBhbiBpbXBsaWNpdCAxMDAl
IGtleWZyYW1lLgorICAgIC8vIFRoaXMgd2lsbCBiZSBhIGxpbmVhciB0aW1pbmcgZnVuY3Rpb24g
dW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIENTUyBBbmltYXRpb24gd2hpY2ggbWlnaHQgaGF2
ZQorICAgIC8vIHRoZSBkZWZhdWx0IHRpbWluZyBmdW5jdGlvbiBmb3IgaXRzIGtleWZyYW1lcyBk
ZWZpbmVkIG9uIGl0cyBiYWNraW5nIEFuaW1hdGlvbiBvYmplY3QuCisgICAgYXV0byYgbGFzdEV4
cGxpY2l0S2V5ZnJhbWUgPSBtX2JsZW5kaW5nS2V5ZnJhbWVzW21fYmxlbmRpbmdLZXlmcmFtZXMu
c2l6ZSgpIC0gMV07CisgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKCkpKQorICAg
ICAgICByZXR1cm4gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwSW5JbnRlcnZhbChsYXN0RXhwbGljaXRL
ZXlmcmFtZS5rZXkoKSwgMSwgZG93bmNhc3Q8RGVjbGFyYXRpdmVBbmltYXRpb24+KCphbmltYXRp
b24oKSkuYmFja2luZ0FuaW1hdGlvbigpLnRpbWluZ0Z1bmN0aW9uKCkpOworCisgICAgLy8gSW4g
YW55IG90aGVyIGNhc2UsIHdlIGFyZSBub3QgZGVhbGluZyB3aXRoIGFuIGludGVydmFsIHdpdGgg
YSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4KKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vS2V5ZnJhbWVFZmZlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFt
ZUVmZmVjdC5oCmluZGV4IGJlNzQ1OTgyY2Q2MTNhYzkwMGNjNzQ0Y2MwZDU0ZDI1OTViZjkxMGEu
LjE5YWZkZjFlYTIxNWNkOGQzNzhkZmI3ODVkM2ZlZDcxY2I5NjRkMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCkBAIC0xODEsMTYgKzE4MSwxOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgYWRkUGVuZGluZ0FjY2VsZXJhdGVkQWN0aW9uKEFjY2VsZXJhdGVkQWN0
aW9uKTsKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQWN0aW9ucygpOwogICAgIHZvaWQgc2V0
QW5pbWF0ZWRQcm9wZXJ0aWVzSW5TdHlsZShSZW5kZXJTdHlsZSYsIGRvdWJsZSk7Ci0gICAgVGlt
aW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4KHNpemVfdCk7Cisg
ICAgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4KHNpemVf
dCkgY29uc3Q7CiAgICAgUmVmPGNvbnN0IEFuaW1hdGlvbj4gYmFja2luZ0FuaW1hdGlvbkZvckNv
bXBvc2l0ZWRSZW5kZXJlcigpIGNvbnN0OwogICAgIHZvaWQgY29tcHV0ZWROZWVkc0ZvcmNlZExh
eW91dCgpOwogICAgIHZvaWQgY29tcHV0ZVN0YWNraW5nQ29udGV4dEltcGFjdCgpOworICAgIHZv
aWQgY29tcHV0ZVNvbWVLZXlmcmFtZXNVc2VTdGVwc1RpbWluZ0Z1bmN0aW9uKCk7CiAgICAgdm9p
ZCBjbGVhckJsZW5kaW5nS2V5ZnJhbWVzKCk7CiAgICAgdm9pZCB1cGRhdGVCbGVuZGluZ0tleWZy
YW1lcyhSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgY29tcHV0ZUNTU0FuaW1hdGlvbkJsZW5kaW5n
S2V5ZnJhbWVzKGNvbnN0IFJlbmRlclN0eWxlJik7CiAgICAgdm9pZCBjb21wdXRlQ1NTVHJhbnNp
dGlvbkJsZW5kaW5nS2V5ZnJhbWVzKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSwgY29uc3Qg
UmVuZGVyU3R5bGUmIG5ld1N0eWxlKTsKICAgICB2b2lkIGNvbXB1dGVBY2NlbGVyYXRlZFByb3Bl
cnRpZXNTdGF0ZSgpOwogICAgIHZvaWQgc2V0QmxlbmRpbmdLZXlmcmFtZXMoS2V5ZnJhbWVMaXN0
Jik7CisgICAgT3B0aW9uYWw8ZG91YmxlPiBwcm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdUcmFuc2Zvcm1GdW5jdGlvbkxp
c3RzKCk7CiAgICAgdm9pZCBjaGVja0Zvck1hdGNoaW5nRmlsdGVyRnVuY3Rpb25MaXN0cygpOwog
ICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ0NvbG9yRmlsdGVyRnVuY3Rpb25MaXN0cygpOwpAQCAt
MjIyLDYgKzIyNCw3IEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICBib29sIG1fY29sb3JGaWx0ZXJG
dW5jdGlvbkxpc3RzTWF0Y2ggeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pblRhcmdldEVmZmVjdFN0
YWNrIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVu
Y3Rpb24geyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcAppbmRleCBjZDA1MTM4YmQ3ODZkOGViZGEz
OTQ2YjZlN2Y0ZmVjNDdhYjgzMGJlLi43M2Y5NjljMjI5MGFiZWEyNzcwOGI4NmNhYzEzYzEwYTRl
ZWNhMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcApAQCAt
MTQ4Miw2ICsxNDgyLDExIEBAIFNlY29uZHMgV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0VGljaygp
IGNvbnN0CiAgICAgICAgICAgICAvLyBGdWxseS1hY2NlbGVyYXRlZCBydW5uaW5nIGFuaW1hdGlv
bnMgaW4gdGhlICJhY3RpdmUiIHBoYXNlIGNhbiB3YWl0IHVudGlsIHRoZXkgZW5kZWQuCiAgICAg
ICAgICAgICByZXR1cm4gKGVmZmVjdC5lbmRUaW1lKCkgLSB0aW1pbmcubG9jYWxUaW1lLnZhbHVl
KCkpIC8gcGxheWJhY2tSYXRlOwogICAgICAgICB9CisgICAgICAgIGlmIChhdXRvIGl0ZXJhdGlv
blByb2dyZXNzID0gZWZmZWN0LmdldENvbXB1dGVkVGltaW5nKCkuc2ltcGxlSXRlcmF0aW9uUHJv
Z3Jlc3MpIHsKKyAgICAgICAgICAgIC8vIEluIGNhc2Ugd2UncmUgaW4gYSByYW5nZSB0aGF0IHVz
ZXMgYSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwgd2UgY2FuIGNvbXB1dGUgdGhlIHRpbWUgdW50
aWwgdGhlIG5leHQgc3RlcCBzdGFydHMuCisgICAgICAgICAgICBpZiAoYXV0byBwcm9ncmVzc1Vu
dGlsTmV4dFN0ZXAgPSBlZmZlY3QucHJvZ3Jlc3NVbnRpbE5leHRTdGVwKCppdGVyYXRpb25Qcm9n
cmVzcykpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVmZmVjdC5pdGVyYXRpb25EdXJhdGlvbigp
ICogKnByb2dyZXNzVW50aWxOZXh0U3RlcCAvIHBsYXliYWNrUmF0ZTsKKyAgICAgICAgfQogICAg
ICAgICAvLyBPdGhlciBhbmltYXRpb25zIGluIHRoZSAiYWN0aXZlIiBwaGFzZSB3aWxsIG5lZWQg
dG8gdXBkYXRlIHRoZWlyIGFuaW1hdGVkIHZhbHVlIGF0IHRoZSBpbW1lZGlhdGUgbmV4dCBvcHBv
cnR1bml0eS4KICAgICAgICAgcmV0dXJuIDBfczsKICAgICBjYXNlIEFuaW1hdGlvbkVmZmVjdFBo
YXNlOjpBZnRlcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmlt
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaAppbmRleCA5
ZmY3YTJkNjZiNGU1MzhlOTcwNTE2YmM0ZTM5OTU2MDFjZWVkZGQwLi41MmNiY2YyNmYxZDIzNDgx
ZDRhZGQ5NDE2ZWM4MTc4MDk1OWE1OTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vV2ViQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5oCkBAIC0xMjAsNyArMTIwLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBuZWVkc1Rp
Y2soKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgdGljaygpOwotICAgIFNlY29uZHMgdGltZVRv
TmV4dFRpY2soKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBTZWNvbmRzIHRpbWVUb05leHRU
aWNrKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoUmVuZGVyU3R5bGUmKTsKICAg
ICB2b2lkIGVmZmVjdFRhcmdldERpZENoYW5nZShFbGVtZW50KiBwcmV2aW91c1RhcmdldCwgRWxl
bWVudCogbmV3VGFyZ2V0KTsKICAgICB2b2lkIGFjY2VsZXJhdGVkU3RhdGVEaWRDaGFuZ2UoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uaWRsIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwKaW5kZXggMmFmZjJjYjJl
ZTMwNWUyMGViYmVhOTc0NWJiNzczMDFiNGE2NzY2ZC4uMGNlMzgxYTljYWRhMDRjNDJkODAyOTNj
NmRjZGE4YmI2MzBlZjFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dl
YkFuaW1hdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlv
bi5pZGwKQEAgLTQxLDcgKzQxLDggQEAgZW51bSBBbmltYXRpb25SZXBsYWNlU3RhdGUgewogICAg
IEVuYWJsZWRBdFJ1bnRpbWU9V2ViQW5pbWF0aW9ucywKICAgICBJbnRlcmZhY2VOYW1lPUFuaW1h
dGlvbiwKICAgICBDdXN0b21Db25zdHJ1Y3RvcigpLAotICAgIEN1c3RvbVRvSlNPYmplY3QKKyAg
ICBDdXN0b21Ub0pTT2JqZWN0LAorICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JUCiBdIGlu
dGVyZmFjZSBXZWJBbmltYXRpb24gOiBFdmVudFRhcmdldCB7CiAgICAgYXR0cmlidXRlIERPTVN0
cmluZyBpZDsKICAgICBbSW1wbGVtZW50ZWRBcz1iaW5kaW5nc0VmZmVjdF0gYXR0cmlidXRlIEFu
aW1hdGlvbkVmZmVjdD8gZWZmZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmlu
ZGV4IDZlYzdiNDhjYmQyNmQ3MmEzZTYyODg4NDY3OGJiY2I1ZjMwZjk1NmIuLmEzOGMzZGZiN2I2
YjRiYzQ0NTRkNzRjZGExYzljNzg2YjQ3YzAxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKQEAgLTE5Niw2ICsxOTYsNyBAQAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRz
LmgiCiAjaW5jbHVkZSAiVm9pZENhbGxiYWNrLmgiCiAjaW5jbHVkZSAiV2ViQW5pbWF0aW9uLmgi
CisjaW5jbHVkZSAiV2ViQW5pbWF0aW9uVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUpT
Q2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldpbmRvd1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2Vy
VGhyZWFkLmgiCkBAIC0xMjAwLDYgKzEyMDEsMTEgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpudW1i
ZXJPZkFuaW1hdGlvblRpbWVsaW5lSW52YWxpZGF0aW9ucygpIGNvbnN0CiAgICAgcmV0dXJuIDA7
CiB9CiAKK2RvdWJsZSBJbnRlcm5hbHM6OnRpbWVUb05leHRBbmltYXRpb25UaWNrKFdlYkFuaW1h
dGlvbiYgYW5pbWF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBzZWNvbmRzVG9XZWJBbmltYXRp
b25zQVBJVGltZShhbmltYXRpb24udGltZVRvTmV4dFRpY2soKSk7Cit9CisKIEV4Y2VwdGlvbk9y
PFJlZlB0cjxFbGVtZW50Pj4gSW50ZXJuYWxzOjpwc2V1ZG9FbGVtZW50KEVsZW1lbnQmIGVsZW1l
bnQsIGNvbnN0IFN0cmluZyYgcHNldWRvSWQpCiB7CiAgICAgaWYgKHBzZXVkb0lkICE9ICJiZWZv
cmUiICYmIHBzZXVkb0lkICE9ICJhZnRlciIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCAxMTk3MWJkNjYxNWUzNDcwY2RkZmE5MTlmMTExMTY4OTMzMWQ0N2U3Li5hYjUyYzhjYTE4
OGFjM2M3NmQ3YWY3MmM3YzZiYTVlZThjODMzN2I2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBjbGFzcyBUaW1lUmFuZ2VzOwogY2xhc3MgVHlwZUNv
bnZlcnNpb25zOwogY2xhc3MgVW5zdXNwZW5kYWJsZUFjdGl2ZURPTU9iamVjdDsKIGNsYXNzIFZv
aWRDYWxsYmFjazsKK2NsYXNzIFdlYkFuaW1hdGlvbjsKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDsKIGNsYXNzIFdpbmRvd1Byb3h5OwogY2xhc3MgWE1MSHR0cFJlcXVlc3Q7CkBAIC0yMzks
NiArMjQwLDcgQEAgcHVibGljOgogICAgIH07CiAgICAgVmVjdG9yPEFjY2VsZXJhdGVkQW5pbWF0
aW9uPiBhY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQmKTsKICAgICB1bnNp
Z25lZCBudW1iZXJPZkFuaW1hdGlvblRpbWVsaW5lSW52YWxpZGF0aW9ucygpIGNvbnN0OworICAg
IGRvdWJsZSB0aW1lVG9OZXh0QW5pbWF0aW9uVGljayhXZWJBbmltYXRpb24mKSBjb25zdDsKIAog
ICAgIC8vIEZvciBhbmltYXRpb25zIHRlc3RpbmcsIHdlIG5lZWQgYSB3YXkgdG8gZ2V0IGF0IHBz
ZXVkbyBlbGVtZW50cy4KICAgICBFeGNlcHRpb25PcjxSZWZQdHI8RWxlbWVudD4+IHBzZXVkb0Vs
ZW1lbnQoRWxlbWVudCYsIGNvbnN0IFN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IGMwMmI0ZGQ5MjY4YjBlNjc1MTU5YmY0MTg2OGIwZmYzNWM2OTRmZjguLjE1
Y2U1Y2Q2YThhYjc4YTY5MWNlOTUxN2MzOGM3YWVmM2Q0YmU5ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTI5Nyw2ICsyOTcsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9s
aWN5IHsKICAgICAvLyBXZWIgQW5pbWF0aW9ucyB0ZXN0aW5nLgogICAgIHNlcXVlbmNlPEFjY2Vs
ZXJhdGVkQW5pbWF0aW9uPiBhY2NlbGVyYXRlZEFuaW1hdGlvbnNGb3JFbGVtZW50KEVsZW1lbnQg
ZWxlbWVudCk7CiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkFuaW1hdGlvblRpbWVsaW5lSW52
YWxpZGF0aW9ucygpOworICAgIGRvdWJsZSB0aW1lVG9OZXh0QW5pbWF0aW9uVGljayhXZWJBbmlt
YXRpb24gYW5pbWF0aW9uKTsKIAogICAgIC8vIEZvciBhbmltYXRpb25zIHRlc3RpbmcsIHdlIG5l
ZWQgYSB3YXkgdG8gZ2V0IGF0IHBzZXVkbyBlbGVtZW50cy4KICAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIEVsZW1lbnQ/IHBzZXVkb0VsZW1lbnQoRWxlbWVudCBlbGVtZW50LCBET01TdHJpbmcgcHNl
dWRvSWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGRkOWNjZDlhZjUzZjNiYmU4MmM1YzNkYTViM2EzMGIxY2ZmMDFjYWYu
Ljc0ZmU0NDllN2FkNWVkNWQ4Zjg5NjQ3MTM5ZmI3YTM2NTViMzRlYjEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAyMC0wNS0yMCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgor
CisgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQW5pbWF0aW9uIGVuZ2luZSBzaG91bGQgbm90IHdh
a2UgdXAgZXZlcnkgdGljayBmb3Igc3RlcHMgdGltaW5nIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEyMTAzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS82MjczNzg2OD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGQgdGVzdHMgdGhhdCBjaGVjayB0aGF0IGFuIGFuaW1hdGlvbiB1c2lu
ZyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uIGNvcnJlY3RseSBjb21wdXRlcyB0aGUgdGltZSB0
bworICAgICAgICB0aGUgbmV4dCB0aWNrIGFjY291bmluZyBmb3IgdGhlIGZhY3QgdGhhdCBpdCB3
b24ndCBjb21wdXRlIGEgZGlmZmVyZW50IGl0ZXJhdGlvbiBwcm9ncmVzcyB1bnRpbCB0aGUKKyAg
ICAgICAgbmV4dCBzdGVwLgorCisgICAgICAgICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9m
LWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1lZmZlY3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0
aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMt
dGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWlu
Zy1mdW5jdGlvbi1vbi1rZXlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJhbmltYXRp
b25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlv
bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGlu
Zy1vZi1jc3MtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLmh0bWw6IEFkZGVk
LgorCiAyMDIwLTA1LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBNb3ZlIHRvIG5ldyBQYXN0ZWJvYXJkIEFQSQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRo
LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1lZmZlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWlu
Zy1mdW5jdGlvbi1vbi1lZmZlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwOGIyZGYzNmQx
YjgwZDcwZGQ2ZDE0Y2U0YWMxMjdkYWY1YTE5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGlt
aW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGFuIGVmZmVjdCB3
aXRoIGEgc3RlcHMoKSBlYXNpbmcuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmlt
YXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9u
LW9uLWVmZmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9m
LWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1lZmZlY3QuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNGI3ZjA4NTg0YjFkODY3YTM5Y2YxODE3NTkxNjJiM2ZhZjAyN2NjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1h
dGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1lZmZlY3QuaHRtbApAQCAtMCwwICsx
LDE3IEBACis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPGRpdj48L2Rpdj4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgYW5pbWF0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IikuYW5pbWF0
ZSh7IG1hcmdpbkxlZnQ6ICIxMDBweCIgfSwgeyBkdXJhdGlvbjogMTAwMCwgZWFzaW5nOiAic3Rl
cHMoMTApIiB9KTsKKworICAgIGF3YWl0IGFuaW1hdGlvbi5yZWFkeTsKKyAgICAKKyAgICBhbmlt
YXRpb24uY3VycmVudFRpbWUgPSAyMjU7CisgICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMudGlt
ZVRvTmV4dEFuaW1hdGlvblRpY2soYW5pbWF0aW9uKSwgNzUsICJDb21wdXRpbmcgdGhlIHRpbWUg
dW50aWwgdGhlIG5leHQgdGljayB3aGVuIHBhcnRseSB0aHJvdWdoIGEgc3RlcHMgaW50ZXJ2YWwu
Iik7CisgICAgCisgICAgdC5kb25lKCk7Cit9LCAiQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRo
ZSBuZXh0IHRpY2sgZm9yIGFuIGVmZmVjdCB3aXRoIGEgc3RlcHMoKSBlYXNpbmcuIik7CisKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5n
LW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0
aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MDdjMjlmODI2MTNjOGRjNTQ4YWZlMTE0NzRkODllODgzNmY1OTBjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFu
aW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSBu
ZXh0IHRpY2sgZm9yIGEga2V5ZnJhbWUgd2l0aCBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFu
aW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBz
LXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5ZmNiZGUzMGEx
NjJkOGJiYzY5ZWExODY1NTg0ZTczMTQ4ODRlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGlt
aW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXY+PC9kaXY+
Cis8c2NyaXB0PgorCithc3luY190ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGFuaW1hdGlv
biA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImRpdiIpLmFuaW1hdGUoeworICAgICAgICBtYXJn
aW5MZWZ0OiBbIjAiLCAiMjUwcHgiLCAiNTAwcHgiLCAiNzUwcHgiLCAiMTAwMHB4Il0sCisgICAg
ICAgIGVhc2luZzogWyJsaW5lYXIiLCAibGluZWFyIiwgInN0ZXBzKDEwKSIsICJsaW5lYXIiXQor
ICAgIH0sIDEwMDApOworCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5OworICAgIAorICAgIGFu
aW1hdGlvbi5jdXJyZW50VGltZSA9IDUzNTsKKyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy50
aW1lVG9OZXh0QW5pbWF0aW9uVGljayhhbmltYXRpb24pLCAxNSk7CisKKyAgICB0LmRvbmUoKTsK
K30sICJDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBmb3IgYSBrZXlmcmFt
ZSB3aXRoIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24uIik7CisKKzwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRp
b24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1zdGVwcy10aW1p
bmctZnVuY3Rpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmY2M1YzhhMTM2ZDM1ODhhNDlj
MDBhMWI4MjYyODUwN2I0OGFlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJh
bmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1m
dW5jdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ29tcHV0aW5nIHRo
ZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGEgQ1NTIEFuaW1hdGlvbiB3aXRoIGltcGxp
Y2l0IGFuZCBleHBsaWNpdCBzdGVwcygpIHRpbWluZyBmdW5jdGlvbnMuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13
aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9u
cy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24u
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi45MWUyZmNkYWYxNzRjM2Y4NzhiNTBmYjRhNzQzNmQ1Y2UxMTQzNWQx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5n
LW9mLWNzcy1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24uaHRtbApAQCAtMCww
ICsxLDM5IEBACis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorCisgICAgZGl2IHsKKyAgICAgICAgYW5pbWF0aW9uOiBhbmltIDFz
IHN0ZXBzKDEwKTsKKyAgICB9CisKKyAgICBAa2V5ZnJhbWVzIGFuaW0geworICAgICAgICAyNSUg
eyBtYXJnaW4tbGVmdDogMjUwcHggfQorICAgICAgICA1MCUgeyBtYXJnaW4tbGVmdDogNTAwcHg7
IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBzKDUpOyB9CisgICAgICAgIDc1JSB7IG1h
cmdpbi1sZWZ0OiA3NTBweCB9CisgICAgfQorCis8L3N0eWxlPgorPGRpdj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgYW5pbWF0aW9uID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IikuZ2V0QW5pbWF0aW9ucygpWzBdOworCisgICAgYXdh
aXQgYW5pbWF0aW9uLnJlYWR5OworICAgIAorICAgIGFuaW1hdGlvbi5jdXJyZW50VGltZSA9IDEw
OworICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRpb25UaWNrKGFu
aW1hdGlvbiksIDE1LCAiUHJvZ3Jlc3MgY29udGFpbmVkIGluIHRoZSBpbnRlcnZhbCBmb3IgYW4g
aW1wbGljaXQgMCUga2V5ZnJhbWUuIik7CisKKyAgICBhbmltYXRpb24uY3VycmVudFRpbWUgPSAy
NjU7CisgICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMudGltZVRvTmV4dEFuaW1hdGlvblRpY2so
YW5pbWF0aW9uKSwgMTAsICJQcm9ncmVzcyBjb250YWluZWQgaW4gdGhlIGludGVydmFsIGZvciBh
biBleHBsaWNpdCBrZXlmcmFtZSB3aXRoIGFuIGltcGxpY2l0IHN0ZXBzKCkgdGltaW5nLWZ1bmN0
aW9uLiIpOworCisgICAgYW5pbWF0aW9uLmN1cnJlbnRUaW1lID0gNTEwOworICAgIGFzc2VydF9l
cXVhbHMoaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRpb25UaWNrKGFuaW1hdGlvbiksIDQwLCAi
UHJvZ3Jlc3MgY29udGFpbmVkIGluIHRoZSBpbnRlcnZhbCBmb3IgYW4gZXhwbGljaXQga2V5ZnJh
bWUgd2l0aCBhbiBleHBsaWNpdCBzdGVwcygpIHRpbWluZy1mdW5jdGlvbi4iKTsKKworICAgIGFu
aW1hdGlvbi5jdXJyZW50VGltZSA9IDc4MDsKKyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy50
aW1lVG9OZXh0QW5pbWF0aW9uVGljayhhbmltYXRpb24pLCAyMCwgIlByb2dyZXNzIGNvbnRhaW5l
ZCBpbiB0aGUgaW50ZXJ2YWwgZm9yIGFuIGltcGxpY2l0IDEwMCUga2V5ZnJhbWUuIik7CisKKyAg
ICB0LmRvbmUoKTsKK30sICJDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayBm
b3IgYSBDU1MgQW5pbWF0aW9uIHdpdGggaW1wbGljaXQgYW5kIGV4cGxpY2l0IHN0ZXBzKCkgdGlt
aW5nIGZ1bmN0aW9ucy4iKTsKKworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399835</attachid>
            <date>2020-05-20 06:59:14 -0700</date>
            <delta_ts>2020-05-20 08:15:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-212103-20200520155912.patch</filename>
            <type>text/plain</type>
            <size>28660</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxOTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNkOTQwNTA1NTgxZTllNWM0NGE1ZTc1
YjI2MGRmMTBkY2FlMDRkODMuLmM5NTQ4NzI3MjJiNDFkMjkzYWU0M2FiNGU4MzgzODRmN2JjZDc3
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQgIDxncmFv
dXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlvbiBlbmdp
bmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBmdW5jdGlv
bnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMjEw
MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsb3cgU2Vjb25kcyB0byBiZSBkaXZpZGVk
IG9yIG11bHRpcGxpZWQgYnkgYSBkb3VibGUgd2l0aCBvcGVyYW5kcyBpbiBhbnkgb3JkZXIuCisK
KyAgICAgICAgKiB3dGYvU2Vjb25kcy5oOgorICAgICAgICAoV1RGOjpvcGVyYXRvciopOgorICAg
ICAgICAoV1RGOjpvcGVyYXRvci8pOgorCiAyMDIwLTA1LTE5ICBBZHJpYW4gUGVyZXogZGUgQ2Fz
dHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgV1RGOjpMb2NrZWRQcmludFN0cmVh
bSBzaG91bGQgYmUgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2OWE5Y2FjYTFhMjg1NzEzMGJkYjljNTg4
OTEzMDkwY2JjN2Q0ZWIwLi5lNGFjZDcxMTk4NTVmNjhlNWIwOGYwZDNhMmEyYzljYjAwMDgyYzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjAtMDUtMjAgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEFuaW1hdGlv
biBlbmdpbmUgc2hvdWxkIG5vdCB3YWtlIHVwIGV2ZXJ5IHRpY2sgZm9yIHN0ZXBzIHRpbWluZyBm
dW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxMjEwMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjI3Mzc4Njg+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IHdlYmFuaW1hdGlvbnMv
c2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZm
ZWN0Lmh0bWwKKyAgICAgICAgICAgICAgIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmlt
YXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUuaHRtbAorICAgICAg
ICAgICAgICAgd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1l
eHBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tc29tZS1rZXlmcmFtZXMuaHRtbAorICAg
ICAgICAgICAgICAgd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0
aC1pbXBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24uaHRtbAorCisgICAgICAgIFdoZW4gYW4g
YW5pbWF0aW9uIHVzZXMgYSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwgaXQgd2lsbCBhcHBlYXIg
dG8gYW5pbWF0ZSBkaXNjcmV0ZWx5IGJldHdlZW4gdmFsdWVzIHN1Y2gKKyAgICAgICAgdGhhdCB0
aGVyZSBpcyBvbmx5IG4gdmlzdWFsIGNoYW5nZXMsIHdoZXJlIG4gaXMgdGhlIG51bWJlciBvZiBz
dGVwcyBwcm92aWRlZC4gVGhpcyBnaXZlcyB1cyBhbiBvcHBvcnR1bml0eQorICAgICAgICB0byBi
ZSBtb3JlIGVmZmljaWVudCB3aGVuIHNjaGVkdWxpbmcgYW5pbWF0aW9ucyB1c2luZyBzdGVwcygp
IHRpbWluZyBmdW5jdGlvbnMuCisKKyAgICAgICAgSW4gV2ViQW5pbWF0aW9uOjp0aW1lVG9OZXh0
VGljaygpIHdlIG5vdyBhc2sgdGhlIGFzc29jaWF0ZWQgZWZmZWN0IGZvciB0aGUgYW1vdW50IG9m
IHByb2dyZXNzIHVudGlsIHRoZSBuZXh0CisgICAgICAgIHN0ZXAuIEZvciBhbiBlZmZlY3Qtd2lk
ZSBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwgd2UgY2FuIHVzZSB0aGUgcHJvdmlkZWQgaXRlcmF0
aW9uIHByb2dyZXNzLiBGb3IgYW5pbWF0aW9ucworICAgICAgICB3aXRoIGEgbGluZWFyIGVmZmVj
dC13aWRlIHRpbWluZyBmdW5jdGlvbiAodGhlIGRlZmF1bHQpLCB3ZSBoYXZlIHRvIG1hcCB0aGUg
cHJvdmlkZWQgaXRlcmF0aW9uIHByb2dyZXNzIHRvCisgICAgICAgIGEga2V5ZnJhbWUgaW50ZXJ2
YWwsIHByb3ZpZGVkIHRoYXQgaW50ZXJ2YWwgdXNlcyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9u
LgorCisgICAgICAgIFRoZSBuZXcge0FuaW1hdGlvbnxLZXlmcmFtZX1FZmZlY3Q6OnByb2dyZXNz
VW50aWxOZXh0U3RlcCgpIG1ldGhvZCByZXR1cm5zIFdURjo6bnVsbG9wdCBmb3IgYW55IG90aGVy
IGNhc2UuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gdGVzdCB0aGlzLCB3ZSBhZGQgYSBuZXcgaW50
ZXJuYWxzLnRpbWVUb05leHRBbmltYXRpb25UaWNrKGFuaW1hdGlvbikgbWV0aG9kIHdoaWNoIHdl
IHVzZSBpbiB0aGUKKyAgICAgICAgdHdvIG5ldyB0ZXN0cy4KKworICAgICAgICAqIGFuaW1hdGlv
bi9BbmltYXRpb25FZmZlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0
Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAgY29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9Bbmlt
YXRpb25FZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OnNldEJsZW5kaW5nS2V5ZnJhbWVzKToK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZmZWN0Ojpjb21wdXRlU29tZUtleWZyYW1lc1Vz
ZVN0ZXBzVGltaW5nRnVuY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OnRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4IGNvbnN0KTogQXZvaWQgYW55IG91dC1v
Zi1ib3VuZHMgdXNlIG9mIHRoZSB1bmRlcmx5aW5nIGRhdGEKKyAgICAgICAgc3RydWN0dXJlcyBi
eSByZXR1cm5pbmcgbnVsbHB0ciBmb3IgY2FzZXMgd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhbiBleHBs
aWNpdCBrZXlmcmFtZS4gV2UgYWxzbyBtYWtlIHRoZSBmdW5jdGlvbiBjb25zdAorICAgICAgICBz
dWNoIHRoYXQgaXQgbWF5IGJlIGNhbGxlZCBmcm9tIHByb2dyZXNzVW50aWxOZXh0U3RlcCgpLCBp
dCBhbHdheXMgd2FzIGNvbnN0IGJ1dCB3YXNuJ3QgbWFya2VkIGFzIHN1Y2guCisgICAgICAgIChX
ZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6cHJvZ3Jlc3NVbnRpbE5leHRTdGVwIGNvbnN0KToKKyAg
ICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuaDoKKyAgICAgICAgKiBhbmltYXRpb24v
V2ViQW5pbWF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkFuaW1hdGlvbjo6dGltZVRv
TmV4dFRpY2sgY29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9XZWJBbmltYXRpb24uaDoKKyAg
ICAgICAgKiBhbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnRpbWVUb05leHRBbmlt
YXRpb25UaWNrIGNvbnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wNS0yMCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWxsb3cgY2FsbGluZyBWaWRlb1NhbXBsZU9i
c2VydmVyOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSBmcm9tIGEgYmFja2dyb3VuZCB0aHJlYWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1NlY29uZHMuaCBiL1NvdXJjZS9XVEYvd3RmL1NlY29u
ZHMuaAppbmRleCA5N2Y3ZGJmY2U4N2QxMjE1NTI0ZTFjYWY3NzUwZjlhZDE5ZDViZDc3Li5jMWJl
MzkyNzM4MmViNmJmZTk1MzA3OGZlNWJhMjAxN2YyZjkyOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9TZWNvbmRzLmgKKysrIGIvU291cmNlL1dURi93dGYvU2Vjb25kcy5oCkBAIC0zMzIs
NiArMzMyLDE2IEBAIGNvbnN0ZXhwciBTZWNvbmRzIG9wZXJhdG9yIiIgX25zKHVuc2lnbmVkIGxv
bmcgbG9uZyBuYW5vc2Vjb25kcykKIAogfSAvLyBpbmxpbmUgc2Vjb25kc19saXRlcmFscwogCitp
bmxpbmUgU2Vjb25kcyBvcGVyYXRvciooZG91YmxlIHNjYWxhciwgU2Vjb25kcyBzZWNvbmRzKQor
eworICAgIHJldHVybiBTZWNvbmRzKHNjYWxhciAqIHNlY29uZHMudmFsdWUoKSk7Cit9CisKK2lu
bGluZSBTZWNvbmRzIG9wZXJhdG9yLyhkb3VibGUgc2NhbGFyLCBTZWNvbmRzIHNlY29uZHMpCit7
CisgICAgcmV0dXJuIFNlY29uZHMoc2NhbGFyIC8gc2Vjb25kcy52YWx1ZSgpKTsKK30KKwogV1RG
X0VYUE9SVF9QUklWQVRFIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIFNlY29u
ZHMpOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Fu
aW1hdGlvbkVmZmVjdC5jcHAKaW5kZXggN2VlNWI1NDQyMzU1YzJhNWQxNmI2ZDRkNjkzMjc1MjVj
MzZjZGY3Yi4uNzI4YTliMzMxMjZmZWFhMjViM2M1NDU2YmQxZmUxNGQ0ODI0NzI0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTU0MSw0ICs1
NDEsMTQgQEAgdm9pZCBBbmltYXRpb25FZmZlY3Q6OnNldFRpbWluZ0Z1bmN0aW9uKGNvbnN0IFJl
ZlB0cjxUaW1pbmdGdW5jdGlvbj4mIHRpbWluZ0Z1bmMKICAgICBtX3RpbWluZ0Z1bmN0aW9uID0g
dGltaW5nRnVuY3Rpb247CiB9CiAKK09wdGlvbmFsPGRvdWJsZT4gQW5pbWF0aW9uRWZmZWN0Ojpw
cm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlIGl0ZXJhdGlvblByb2dyZXNzKSBjb25zdAorewor
ICAgIGlmICghaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4obV90aW1pbmdGdW5jdGlvbikpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBhdXRvIG51bWJlck9mU3RlcHMgPSBkb3du
Y2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uPigqbV90aW1pbmdGdW5jdGlvbikubnVtYmVyT2ZTdGVw
cygpOworICAgIGF1dG8gbmV4dFN0ZXBQcm9ncmVzcyA9IGNlaWwoaXRlcmF0aW9uUHJvZ3Jlc3Mg
KiBudW1iZXJPZlN0ZXBzKSAvIG51bWJlck9mU3RlcHM7CisgICAgcmV0dXJuIG5leHRTdGVwUHJv
Z3Jlc3MgLSBpdGVyYXRpb25Qcm9ncmVzczsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5oCmluZGV4IDk1YzY0YzVj
NTk1YmVkOWRhNmYzMjMxM2UzMWFmOWQwN2QzZWQ5ZTkuLjNjNDVjZTA4YWFiNjgyOTJhNWRiNzVl
NzEwMjA3MjAzMTU0OTZmMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25FZmZlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9u
RWZmZWN0LmgKQEAgLTEwMiw2ICsxMDIsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZVN0
YXRpY1RpbWluZ1Byb3BlcnRpZXMoKTsKIAorICAgIHZpcnR1YWwgT3B0aW9uYWw8ZG91YmxlPiBw
cm9ncmVzc1VudGlsTmV4dFN0ZXAoZG91YmxlKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IEFuaW1hdGlvbkVmZmVjdCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tl
eWZyYW1lRWZmZWN0LmNwcAppbmRleCAxMTBlYjFlNGNjMjM5NjIyOGZkMTFmYmI2ODg3YzJhZGFi
NmY2YWE4Li5kZmZiYmM4NjgyYmQyMjE2MTIwMGZmNWIyM2NjMTRlNjE2Y2U4MzE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKQEAgLTg0Niw2ICs4NDYs
NyBAQCB2b2lkIEtleWZyYW1lRWZmZWN0OjpzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlmcmFtZUxp
c3QmIGJsZW5kaW5nS2V5ZnJhbWVzKQogICAgIGNvbXB1dGVkTmVlZHNGb3JjZWRMYXlvdXQoKTsK
ICAgICBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CiAgICAgY29tcHV0ZUFjY2VsZXJh
dGVkUHJvcGVydGllc1N0YXRlKCk7CisgICAgY29tcHV0ZVNvbWVLZXlmcmFtZXNVc2VTdGVwc1Rp
bWluZ0Z1bmN0aW9uKCk7CiAKICAgICBjaGVja0Zvck1hdGNoaW5nVHJhbnNmb3JtRnVuY3Rpb25M
aXN0cygpOwogICAgIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CkBAIC0x
MjY1LDYgKzEyNjYsMzYgQEAgdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZUFjY2VsZXJhdGVk
UHJvcGVydGllc1N0YXRlKCkKICAgICAgICAgbV9hY2NlbGVyYXRlZFByb3BlcnRpZXNTdGF0ZSA9
IEFjY2VsZXJhdGVkUHJvcGVydGllczo6QWxsOwogfQogCit2b2lkIEtleWZyYW1lRWZmZWN0Ojpj
b21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24oKQoreworICAgIG1fc29t
ZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24gPSBmYWxzZTsKKworICAgIHNpemVfdCBu
dW1iZXJPZktleWZyYW1lcyA9IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOworCisgICAgLy8g
SWYgd2UncmUgZGVhbGluZyB3aXRoIGEgQ1NTIEFuaW1hdGlvbiBhbmQgaXQgc3BlY2lmaWVzIGEg
ZGVmYXVsdCBzdGVwcygpIHRpbWluZyBmdW5jdGlvbiwKKyAgICAvLyB3ZSBuZWVkIHRvIGNoZWNr
IHRoYXQgYW55IG9mIHRoZSBzcGVjaWZpZWQga2V5ZnJhbWVzIGVpdGhlciBkb2VzIG5vdCBoYXZl
IGFuIGV4cGxpY2l0IHRpbWluZworICAgIC8vIGZ1bmN0aW9uIG9yIHNwZWNpZmllcyBhbiBleHBs
aWNpdCBzdGVwcygpIHRpbWluZyBmdW5jdGlvbi4KKyAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihh
bmltYXRpb24oKSkgJiYgaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4oZG93bmNhc3Q8RGVjbGFyYXRp
dmVBbmltYXRpb24+KCphbmltYXRpb24oKSkuYmFja2luZ0FuaW1hdGlvbigpLnRpbWluZ0Z1bmN0
aW9uKCkpKSB7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZLZXlmcmFt
ZXM7IGkrKykgeworICAgICAgICAgICAgYXV0byogdGltaW5nRnVuY3Rpb24gPSBtX2JsZW5kaW5n
S2V5ZnJhbWVzW2ldLnRpbWluZ0Z1bmN0aW9uKCk7CisgICAgICAgICAgICBpZiAoIXRpbWluZ0Z1
bmN0aW9uIHx8IGlzPFN0ZXBzVGltaW5nRnVuY3Rpb24+KHRpbWluZ0Z1bmN0aW9uKSkgeworICAg
ICAgICAgICAgICAgIG1fc29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24gPSB0cnVl
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gRm9yIGFueSBvdGhlciB0eXBlIG9mIGFuaW1h
dGlvbiwgd2UganVzdCBuZWVkIHRvIGNoZWNrIHdoZXRoZXIgYW55IG9mIHRoZSBrZXlmcmFtZXMg
c3BlY2lmeQorICAgIC8vIGFuIGV4cGxpY2l0IHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLgorICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtYmVyT2ZLZXlmcmFtZXM7IGkrKykgeworICAgICAg
ICBpZiAoaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4obV9ibGVuZGluZ0tleWZyYW1lc1tpXS50aW1p
bmdGdW5jdGlvbigpKSkgeworICAgICAgICAgICAgbV9zb21lS2V5ZnJhbWVzVXNlU3RlcHNUaW1p
bmdGdW5jdGlvbiA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9
Cit9CisKIHZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmdldEFuaW1hdGVkU3R5bGUoc3RkOjp1bmlxdWVf
cHRyPFJlbmRlclN0eWxlPiYgYW5pbWF0ZWRTdHlsZSkKIHsKICAgICBpZiAoIXJlbmRlcmVyKCkg
fHwgIWFuaW1hdGlvbigpKQpAQCAtMTQzOSwxNSArMTQ3MCwyMyBAQCB2b2lkIEtleWZyYW1lRWZm
ZWN0OjpzZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxlJiB0YXJnZXRTdHls
ZSwgZG91YgogICAgIH0KIH0KIAotVGltaW5nRnVuY3Rpb24qIEtleWZyYW1lRWZmZWN0Ojp0aW1p
bmdGdW5jdGlvbkZvcktleWZyYW1lQXRJbmRleChzaXplX3QgaW5kZXgpCitUaW1pbmdGdW5jdGlv
biogS2V5ZnJhbWVFZmZlY3Q6OnRpbWluZ0Z1bmN0aW9uRm9yS2V5ZnJhbWVBdEluZGV4KHNpemVf
dCBpbmRleCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcGFyc2VkS2V5ZnJhbWVzLmlzRW1wdHkoKSkK
KyAgICBpZiAoaW5kZXggPCAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICgh
bV9wYXJzZWRLZXlmcmFtZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChpbmRleCA+PSBtX3Bh
cnNlZEtleWZyYW1lcy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAg
ICAgcmV0dXJuIG1fcGFyc2VkS2V5ZnJhbWVzW2luZGV4XS50aW1pbmdGdW5jdGlvbi5nZXQoKTsK
KyAgICB9CiAKICAgICBhdXRvIGVmZmVjdEFuaW1hdGlvbiA9IGFuaW1hdGlvbigpOwogICAgIGlm
IChpczxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oZWZmZWN0QW5pbWF0aW9uKSkgewogICAgICAgICAv
LyBJZiB3ZSdyZSBkZWFsaW5nIHdpdGggYSBDU1MgQW5pbWF0aW9uLCB0aGUgdGltaW5nIGZ1bmN0
aW9uIGlzIHNwZWNpZmllZCBlaXRoZXIgb24gdGhlIGtleWZyYW1lIGl0c2VsZi4KICAgICAgICAg
aWYgKGlzPENTU0FuaW1hdGlvbj4oZWZmZWN0QW5pbWF0aW9uKSkgeworICAgICAgICAgICAgaWYg
KGluZGV4ID49IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpKQorICAgICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgICAgICAgICAgaWYgKGF1dG8qIHRpbWluZ0Z1bmN0aW9uID0gbV9i
bGVuZGluZ0tleWZyYW1lc1tpbmRleF0udGltaW5nRnVuY3Rpb24oKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gdGltaW5nRnVuY3Rpb247CiAgICAgICAgIH0KQEAgLTE3OTUsNCArMTgzNCw1NyBA
QCBib29sIEtleWZyYW1lRWZmZWN0OjpyZXF1aXJlc1BzZXVkb0VsZW1lbnQoKSBjb25zdAogICAg
IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzU291cmNlID09IEJsZW5kaW5nS2V5ZnJhbWVzU291
cmNlOjpXZWJBbmltYXRpb24gJiYgdGFyZ2V0c1BzZXVkb0VsZW1lbnQoKTsKIH0KIAorT3B0aW9u
YWw8ZG91YmxlPiBLZXlmcmFtZUVmZmVjdDo6cHJvZ3Jlc3NVbnRpbE5leHRTdGVwKGRvdWJsZSBp
dGVyYXRpb25Qcm9ncmVzcykgY29uc3QKK3sKKyAgICBBU1NFUlQoaXRlcmF0aW9uUHJvZ3Jlc3Mg
Pj0gMCAmJiBpdGVyYXRpb25Qcm9ncmVzcyA8PSAxKTsKKworICAgIGlmIChhdXRvIHByb2dyZXNz
ID0gQW5pbWF0aW9uRWZmZWN0Ojpwcm9ncmVzc1VudGlsTmV4dFN0ZXAoaXRlcmF0aW9uUHJvZ3Jl
c3MpKQorICAgICAgICByZXR1cm4gcHJvZ3Jlc3M7CisKKyAgICBpZiAoIWlzPExpbmVhclRpbWlu
Z0Z1bmN0aW9uPih0aW1pbmdGdW5jdGlvbigpKSB8fCAhbV9zb21lS2V5ZnJhbWVzVXNlU3RlcHNU
aW1pbmdGdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIGlmICht
X2JsZW5kaW5nS2V5ZnJhbWVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIGF1dG8gcHJvZ3Jlc3NVbnRpbE5leHRTdGVwSW5JbnRlcnZhbCA9IFtpdGVyYXRp
b25Qcm9ncmVzc10oZG91YmxlIGludGVydmFsU3RhcnRQcm9ncmVzcywgZG91YmxlIGludGVydmFs
RW5kUHJvZ3Jlc3MsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikgLT4gT3B0aW9uYWw8
ZG91YmxlPiB7CisgICAgICAgIGlmICghaXM8U3RlcHNUaW1pbmdGdW5jdGlvbj4odGltaW5nRnVu
Y3Rpb24pKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgICAgICBhdXRv
IG51bWJlck9mU3RlcHMgPSBkb3duY2FzdDxTdGVwc1RpbWluZ0Z1bmN0aW9uPigqdGltaW5nRnVu
Y3Rpb24pLm51bWJlck9mU3RlcHMoKTsKKyAgICAgICAgYXV0byBpbnRlcnZhbFByb2dyZXNzID0g
aW50ZXJ2YWxFbmRQcm9ncmVzcyAtIGludGVydmFsU3RhcnRQcm9ncmVzczsKKyAgICAgICAgYXV0
byBpdGVyYXRpb25Qcm9ncmVzc01hcHBlZFRvQ3VycmVudEludGVydmFsID0gKGl0ZXJhdGlvblBy
b2dyZXNzIC0gaW50ZXJ2YWxTdGFydFByb2dyZXNzKSAvIGludGVydmFsUHJvZ3Jlc3M7CisgICAg
ICAgIGF1dG8gbmV4dFN0ZXBQcm9ncmVzcyA9IGNlaWwoaXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRU
b0N1cnJlbnRJbnRlcnZhbCAqIG51bWJlck9mU3RlcHMpIC8gbnVtYmVyT2ZTdGVwczsKKyAgICAg
ICAgcmV0dXJuIChuZXh0U3RlcFByb2dyZXNzIC0gaXRlcmF0aW9uUHJvZ3Jlc3NNYXBwZWRUb0N1
cnJlbnRJbnRlcnZhbCkgKiBpbnRlcnZhbFByb2dyZXNzOworICAgIH07CisKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG1fYmxlbmRpbmdLZXlmcmFtZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgYXV0byBpbnRlcnZhbEVuZFByb2dyZXNzID0gbV9ibGVuZGluZ0tleWZyYW1lc1tpXS5rZXko
KTsKKyAgICAgICAgLy8gV2UgY2FuIHN0b3Agb25jZSB3ZSBmaW5kIGEga2V5ZnJhbWUgZm9yIHdo
aWNoIHRoZSBwcm9ncmVzcyBpcyBtb3JlIHRoYW4gdGhlIHByb3ZpZGVkIGl0ZXJhdGlvbiBwcm9n
cmVzcy4KKyAgICAgICAgaWYgKGludGVydmFsRW5kUHJvZ3Jlc3MgPD0gaXRlcmF0aW9uUHJvZ3Jl
c3MpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBJbiBjYXNlIHdlJ3JlIG9u
IHRoZSBmaXJzdCBrZXlmcmFtZSwgdGhlbiB0aGlzIG1lYW5zIHdlIGFyZSBkZWFsaW5nIHdpdGgg
YW4gaW1wbGljaXQgMCUga2V5ZnJhbWUuCisgICAgICAgIC8vIFRoaXMgd2lsbCBiZSBhIGxpbmVh
ciB0aW1pbmcgZnVuY3Rpb24gdW5sZXNzIHdlJ3JlIGRlYWxpbmcgd2l0aCBhIENTUyBBbmltYXRp
b24gd2hpY2ggbWlnaHQgaGF2ZQorICAgICAgICAvLyB0aGUgZGVmYXVsdCB0aW1pbmcgZnVuY3Rp
b24gZm9yIGl0cyBrZXlmcmFtZXMgZGVmaW5lZCBvbiBpdHMgYmFja2luZyBBbmltYXRpb24gb2Jq
ZWN0LgorICAgICAgICBpZiAoIWkpIHsKKyAgICAgICAgICAgIGlmIChpczxDU1NBbmltYXRpb24+
KGFuaW1hdGlvbigpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJvZ3Jlc3NVbnRpbE5leHRT
dGVwSW5JbnRlcnZhbCgwLCBpbnRlcnZhbEVuZFByb2dyZXNzLCBkb3duY2FzdDxEZWNsYXJhdGl2
ZUFuaW1hdGlvbj4oKmFuaW1hdGlvbigpKS5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rp
b24oKSk7CisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisKKyAg
ICAgICAgcmV0dXJuIHByb2dyZXNzVW50aWxOZXh0U3RlcEluSW50ZXJ2YWwobV9ibGVuZGluZ0tl
eWZyYW1lc1tpIC0gMV0ua2V5KCksIGludGVydmFsRW5kUHJvZ3Jlc3MsIHRpbWluZ0Z1bmN0aW9u
Rm9yS2V5ZnJhbWVBdEluZGV4KGkgLSAxKSk7CisgICAgfQorCisgICAgLy8gSWYgd2UgZW5kIHVw
IGhlcmUsIHRoZW4gdGhpcyBtZWFucyB3ZSBhcmUgZGVhbGluZyB3aXRoIGFuIGltcGxpY2l0IDEw
MCUga2V5ZnJhbWUuCisgICAgLy8gVGhpcyB3aWxsIGJlIGEgbGluZWFyIHRpbWluZyBmdW5jdGlv
biB1bmxlc3Mgd2UncmUgZGVhbGluZyB3aXRoIGEgQ1NTIEFuaW1hdGlvbiB3aGljaCBtaWdodCBo
YXZlCisgICAgLy8gdGhlIGRlZmF1bHQgdGltaW5nIGZ1bmN0aW9uIGZvciBpdHMga2V5ZnJhbWVz
IGRlZmluZWQgb24gaXRzIGJhY2tpbmcgQW5pbWF0aW9uIG9iamVjdC4KKyAgICBhdXRvJiBsYXN0
RXhwbGljaXRLZXlmcmFtZSA9IG1fYmxlbmRpbmdLZXlmcmFtZXNbbV9ibGVuZGluZ0tleWZyYW1l
cy5zaXplKCkgLSAxXTsKKyAgICBpZiAoaXM8Q1NTQW5pbWF0aW9uPihhbmltYXRpb24oKSkpCisg
ICAgICAgIHJldHVybiBwcm9ncmVzc1VudGlsTmV4dFN0ZXBJbkludGVydmFsKGxhc3RFeHBsaWNp
dEtleWZyYW1lLmtleSgpLCAxLCBkb3duY2FzdDxEZWNsYXJhdGl2ZUFuaW1hdGlvbj4oKmFuaW1h
dGlvbigpKS5iYWNraW5nQW5pbWF0aW9uKCkudGltaW5nRnVuY3Rpb24oKSk7CisKKyAgICAvLyBJ
biBhbnkgb3RoZXIgY2FzZSwgd2UgYXJlIG5vdCBkZWFsaW5nIHdpdGggYW4gaW50ZXJ2YWwgd2l0
aCBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLgorICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmgKaW5kZXggYmU3NDU5ODJjZDYxM2FjOTAwY2M3NDRjYzBkNTRkMjU5NWJmOTEw
YS4uMTlhZmRmMWVhMjE1Y2Q4ZDM3OGRmYjc4NWQzZmVkNzFjYjk2NGQzNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmgKQEAgLTE4MSwxNiArMTgxLDE4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBhZGRQZW5kaW5nQWNjZWxlcmF0ZWRBY3Rpb24oQWNjZWxlcmF0ZWRB
Y3Rpb24pOwogICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRBY3Rpb25zKCk7CiAgICAgdm9pZCBz
ZXRBbmltYXRlZFByb3BlcnRpZXNJblN0eWxlKFJlbmRlclN0eWxlJiwgZG91YmxlKTsKLSAgICBU
aW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6ZV90KTsK
KyAgICBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb25Gb3JLZXlmcmFtZUF0SW5kZXgoc2l6
ZV90KSBjb25zdDsKICAgICBSZWY8Y29uc3QgQW5pbWF0aW9uPiBiYWNraW5nQW5pbWF0aW9uRm9y
Q29tcG9zaXRlZFJlbmRlcmVyKCkgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlZE5lZWRzRm9yY2Vk
TGF5b3V0KCk7CiAgICAgdm9pZCBjb21wdXRlU3RhY2tpbmdDb250ZXh0SW1wYWN0KCk7CisgICAg
dm9pZCBjb21wdXRlU29tZUtleWZyYW1lc1VzZVN0ZXBzVGltaW5nRnVuY3Rpb24oKTsKICAgICB2
b2lkIGNsZWFyQmxlbmRpbmdLZXlmcmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUJsZW5kaW5nS2V5
ZnJhbWVzKFJlbmRlclN0eWxlJik7CiAgICAgdm9pZCBjb21wdXRlQ1NTQW5pbWF0aW9uQmxlbmRp
bmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUmKTsKICAgICB2b2lkIGNvbXB1dGVDU1NUcmFu
c2l0aW9uQmxlbmRpbmdLZXlmcmFtZXMoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlLCBjb25z
dCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpOwogICAgIHZvaWQgY29tcHV0ZUFjY2VsZXJhdGVkUHJv
cGVydGllc1N0YXRlKCk7CiAgICAgdm9pZCBzZXRCbGVuZGluZ0tleWZyYW1lcyhLZXlmcmFtZUxp
c3QmKTsKKyAgICBPcHRpb25hbDxkb3VibGU+IHByb2dyZXNzVW50aWxOZXh0U3RlcChkb3VibGUp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgY2hlY2tGb3JNYXRjaGluZ1RyYW5zZm9ybUZ1bmN0aW9u
TGlzdHMoKTsKICAgICB2b2lkIGNoZWNrRm9yTWF0Y2hpbmdGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7
CiAgICAgdm9pZCBjaGVja0Zvck1hdGNoaW5nQ29sb3JGaWx0ZXJGdW5jdGlvbkxpc3RzKCk7CkBA
IC0yMjIsNiArMjI0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogICAgIGJvb2wgbV9jb2xvckZpbHRl
ckZ1bmN0aW9uTGlzdHNNYXRjaCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luVGFyZ2V0RWZmZWN0
U3RhY2sgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zb21lS2V5ZnJhbWVzVXNlU3RlcHNUaW1pbmdG
dW5jdGlvbiB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCmluZGV4IGNkMDUxMzhiZDc4NmQ4ZWJk
YTM5NDZiNmU3ZjRmZWM0N2FiODMwYmUuLjczZjk2OWMyMjkwYWJlYTI3NzA4Yjg2Y2FjMTNjMTBh
NGVlY2EwNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9XZWJBbmltYXRpb24uY3BwCkBA
IC0xNDgyLDYgKzE0ODIsMTEgQEAgU2Vjb25kcyBXZWJBbmltYXRpb246OnRpbWVUb05leHRUaWNr
KCkgY29uc3QKICAgICAgICAgICAgIC8vIEZ1bGx5LWFjY2VsZXJhdGVkIHJ1bm5pbmcgYW5pbWF0
aW9ucyBpbiB0aGUgImFjdGl2ZSIgcGhhc2UgY2FuIHdhaXQgdW50aWwgdGhleSBlbmRlZC4KICAg
ICAgICAgICAgIHJldHVybiAoZWZmZWN0LmVuZFRpbWUoKSAtIHRpbWluZy5sb2NhbFRpbWUudmFs
dWUoKSkgLyBwbGF5YmFja1JhdGU7CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8gaXRlcmF0
aW9uUHJvZ3Jlc3MgPSBlZmZlY3QuZ2V0Q29tcHV0ZWRUaW1pbmcoKS5zaW1wbGVJdGVyYXRpb25Q
cm9ncmVzcykgeworICAgICAgICAgICAgLy8gSW4gY2FzZSB3ZSdyZSBpbiBhIHJhbmdlIHRoYXQg
dXNlcyBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLCB3ZSBjYW4gY29tcHV0ZSB0aGUgdGltZSB1
bnRpbCB0aGUgbmV4dCBzdGVwIHN0YXJ0cy4KKyAgICAgICAgICAgIGlmIChhdXRvIHByb2dyZXNz
VW50aWxOZXh0U3RlcCA9IGVmZmVjdC5wcm9ncmVzc1VudGlsTmV4dFN0ZXAoKml0ZXJhdGlvblBy
b2dyZXNzKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZWZmZWN0Lml0ZXJhdGlvbkR1cmF0aW9u
KCkgKiAqcHJvZ3Jlc3NVbnRpbE5leHRTdGVwIC8gcGxheWJhY2tSYXRlOworICAgICAgICB9CiAg
ICAgICAgIC8vIE90aGVyIGFuaW1hdGlvbnMgaW4gdGhlICJhY3RpdmUiIHBoYXNlIHdpbGwgbmVl
ZCB0byB1cGRhdGUgdGhlaXIgYW5pbWF0ZWQgdmFsdWUgYXQgdGhlIGltbWVkaWF0ZSBuZXh0IG9w
cG9ydHVuaXR5LgogICAgICAgICByZXR1cm4gMF9zOwogICAgIGNhc2UgQW5pbWF0aW9uRWZmZWN0
UGhhc2U6OkFmdGVyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFu
aW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5oCmluZGV4
IDlmZjdhMmQ2NmI0ZTUzOGU5NzA1MTZiYzRlMzk5NTYwMWNlZWRkZDAuLjUyY2JjZjI2ZjFkMjM0
ODFkNGFkZDk0MTZlYzgxNzgwOTU5YTU5NjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9XZWJBbmltYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2Vi
QW5pbWF0aW9uLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG5lZWRz
VGljaygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCB0aWNrKCk7Ci0gICAgU2Vjb25kcyB0aW1l
VG9OZXh0VGljaygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFNlY29uZHMgdGltZVRvTmV4
dFRpY2soKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShSZW5kZXJTdHlsZSYpOwog
ICAgIHZvaWQgZWZmZWN0VGFyZ2V0RGlkQ2hhbmdlKEVsZW1lbnQqIHByZXZpb3VzVGFyZ2V0LCBF
bGVtZW50KiBuZXdUYXJnZXQpOwogICAgIHZvaWQgYWNjZWxlcmF0ZWRTdGF0ZURpZENoYW5nZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL1dlYkFuaW1hdGlvbi5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0aW9uLmlkbAppbmRleCAyYWZmMmNi
MmVlMzA1ZTIwZWJiZWE5NzQ1YmI3NzMwMWI0YTY3NjZkLi4wY2UzODFhOWNhZGEwNGM0MmQ4MDI5
M2M2ZGNkYThiYjYzMGVmMWU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
V2ViQW5pbWF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vV2ViQW5pbWF0
aW9uLmlkbApAQCAtNDEsNyArNDEsOCBAQCBlbnVtIEFuaW1hdGlvblJlcGxhY2VTdGF0ZSB7CiAg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJBbmltYXRpb25zLAogICAgIEludGVyZmFjZU5hbWU9QW5p
bWF0aW9uLAogICAgIEN1c3RvbUNvbnN0cnVjdG9yKCksCi0gICAgQ3VzdG9tVG9KU09iamVjdAor
ICAgIEN1c3RvbVRvSlNPYmplY3QsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9FWFBPUlQKIF0g
aW50ZXJmYWNlIFdlYkFuaW1hdGlvbiA6IEV2ZW50VGFyZ2V0IHsKICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nIGlkOwogICAgIFtJbXBsZW1lbnRlZEFzPWJpbmRpbmdzRWZmZWN0XSBhdHRyaWJ1dGUg
QW5pbWF0aW9uRWZmZWN0PyBlZmZlY3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggM2NmMGVjMDU4NjIzYjYzMTNkMGQ4YWRjMTY4OGMwZjM0MGUwMWRhNS4uYzczNGY1MGRi
YzI2OGFmMDJiNmI1ZTA4NmIxYzVlOWU5MWExMmQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMTk2LDYgKzE5Niw3IEBACiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVu
dHMuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJBbmltYXRpb24u
aCIKKyNpbmNsdWRlICJXZWJBbmltYXRpb25VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXZWJDb3Jl
SlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV2luZG93UHJveHkuaCIKICNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKQEAgLTEyMDAsNiArMTIwMSwxMSBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om51
bWJlck9mQW5pbWF0aW9uVGltZWxpbmVJbnZhbGlkYXRpb25zKCkgY29uc3QKICAgICByZXR1cm4g
MDsKIH0KIAorZG91YmxlIEludGVybmFsczo6dGltZVRvTmV4dEFuaW1hdGlvblRpY2soV2ViQW5p
bWF0aW9uJiBhbmltYXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIHNlY29uZHNUb1dlYkFuaW1h
dGlvbnNBUElUaW1lKGFuaW1hdGlvbi50aW1lVG9OZXh0VGljaygpKTsKK30KKwogRXhjZXB0aW9u
T3I8UmVmUHRyPEVsZW1lbnQ+PiBJbnRlcm5hbHM6OnBzZXVkb0VsZW1lbnQoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCkKIHsKICAgICBpZiAocHNldWRvSWQgIT0gImJl
Zm9yZSIgJiYgcHNldWRvSWQgIT0gImFmdGVyIikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDBiMWQwYTI4MDcwZThhMTk2YTkwNTQzOGJmMzMzNGVjNmZkYWZjYzcuLjczOGNiYWRi
ODgzN2RmYjQ4MzU2NjQ3N2FiZGI3YjI3YjNlMDU4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMTA2LDYgKzEwNiw3IEBAIGNsYXNzIFRpbWVSYW5nZXM7CiBjbGFzcyBUeXBl
Q29udmVyc2lvbnM7CiBjbGFzcyBVbnN1c3BlbmRhYmxlQWN0aXZlRE9NT2JqZWN0OwogY2xhc3Mg
Vm9pZENhbGxiYWNrOworY2xhc3MgV2ViQW5pbWF0aW9uOwogY2xhc3MgV2ViR0xSZW5kZXJpbmdD
b250ZXh0OwogY2xhc3MgV2luZG93UHJveHk7CiBjbGFzcyBYTUxIdHRwUmVxdWVzdDsKQEAgLTIz
OSw2ICsyNDAsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICBWZWN0b3I8QWNjZWxlcmF0ZWRBbmlt
YXRpb24+IGFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYpOwogICAgIHVu
c2lnbmVkIG51bWJlck9mQW5pbWF0aW9uVGltZWxpbmVJbnZhbGlkYXRpb25zKCkgY29uc3Q7Cisg
ICAgZG91YmxlIHRpbWVUb05leHRBbmltYXRpb25UaWNrKFdlYkFuaW1hdGlvbiYpIGNvbnN0Owog
CiAgICAgLy8gRm9yIGFuaW1hdGlvbnMgdGVzdGluZywgd2UgbmVlZCBhIHdheSB0byBnZXQgYXQg
cHNldWRvIGVsZW1lbnRzLgogICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxFbGVtZW50Pj4gcHNldWRv
RWxlbWVudChFbGVtZW50JiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKaW5kZXggMDJhNDdlZDM3MjMzNGFiZGZjNzM2NjMxNmQzOGUxNTljOWQ0MDE4Ny4u
ZWMyZjc0YzRlOTNhNWQxNTJlNGVhODU2NDNjM2ZmNDYyODg0MTNiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjk3LDYgKzI5Nyw3IEBAIGVudW0gQ29tcG9zaXRpbmdQ
b2xpY3kgewogICAgIC8vIFdlYiBBbmltYXRpb25zIHRlc3RpbmcuCiAgICAgc2VxdWVuY2U8QWNj
ZWxlcmF0ZWRBbmltYXRpb24+IGFjY2VsZXJhdGVkQW5pbWF0aW9uc0ZvckVsZW1lbnQoRWxlbWVu
dCBlbGVtZW50KTsKICAgICB1bnNpZ25lZCBsb25nIG51bWJlck9mQW5pbWF0aW9uVGltZWxpbmVJ
bnZhbGlkYXRpb25zKCk7CisgICAgZG91YmxlIHRpbWVUb05leHRBbmltYXRpb25UaWNrKFdlYkFu
aW1hdGlvbiBhbmltYXRpb24pOwogCiAgICAgLy8gRm9yIGFuaW1hdGlvbnMgdGVzdGluZywgd2Ug
bmVlZCBhIHdheSB0byBnZXQgYXQgcHNldWRvIGVsZW1lbnRzLgogICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gRWxlbWVudD8gcHNldWRvRWxlbWVudChFbGVtZW50IGVsZW1lbnQsIERPTVN0cmluZyBw
c2V1ZG9JZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNGE1M2UzNTEzODBlOTI0ZjUxZGY0MWUyZWYxYWU5OGNlM2ZkNjFh
Ni4uMTE3NjZhYWFiNGJkMmJiN2IyOTJhOGM2MTYxNzI3MDhlOTM3MjMxYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDIwLTA1LTIwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBBbmltYXRpb24gZW5naW5lIHNob3VsZCBub3Qg
d2FrZSB1cCBldmVyeSB0aWNrIGZvciBzdGVwcyB0aW1pbmcgZnVuY3Rpb25zCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTIxMDMKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzYyNzM3ODY4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCB0ZXN0cyB0aGF0IGNoZWNrIHRoYXQgYW4gYW5pbWF0aW9uIHVz
aW5nIGEgc3RlcHMoKSB0aW1pbmcgZnVuY3Rpb24gY29ycmVjdGx5IGNvbXB1dGVzIHRoZSB0aW1l
IHRvCisgICAgICAgIHRoZSBuZXh0IHRpY2sgYWNjb3VuaW5nIGZvciB0aGUgZmFjdCB0aGF0IGl0
IHdvbid0IGNvbXB1dGUgYSBkaWZmZXJlbnQgaXRlcmF0aW9uIHByb2dyZXNzIHVudGlsIHRoZQor
ICAgICAgICBuZXh0IHN0ZXAuCisKKyAgICAgICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmct
b2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmlt
YXRpb24td2l0aC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tZWZmZWN0Lmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHdlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1hbmltYXRpb24td2l0aC1zdGVw
cy10aW1pbmctZnVuY3Rpb24tb24ta2V5ZnJhbWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGlt
aW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYmFuaW1h
dGlvbnMvc2NoZWR1bGluZy1vZi1jc3MtYW5pbWF0aW9uLXdpdGgtZXhwbGljaXQtc3RlcHMtdGlt
aW5nLWZ1bmN0aW9uLW9uLXNvbWUta2V5ZnJhbWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1leHBs
aWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tc29tZS1rZXlmcmFtZXMuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0
aC1pbXBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13aXRoLWlt
cGxpY2l0LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi5odG1sOiBBZGRlZC4KKwogMjAyMC0wNS0xOSAg
TGF1cm8gTW91cmEgIDxsbW91cmFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXVtXUEVdIFVw
ZGF0ZSBzb21lIGV4cGVjdGF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0
aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1v
bi1lZmZlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVs
aW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1lZmZlY3QtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwOGIyZGYzNmQxYjgwZDcwZGQ2ZDE0Y2U0YWMxMjdkYWY1
YTE5OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVk
dWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ29tcHV0aW5nIHRoZSB0aW1lIHVu
dGlsIHRoZSBuZXh0IHRpY2sgZm9yIGFuIGVmZmVjdCB3aXRoIGEgc3RlcHMoKSBlYXNpbmcuIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5p
bWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWVmZmVjdC5odG1sIGIvTGF5b3V0
VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRp
bWluZy1mdW5jdGlvbi1vbi1lZmZlY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNGI3ZjA4NTg0YjFkODY3
YTM5Y2YxODE3NTkxNjJiM2ZhZjAyN2NjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
d2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1m
dW5jdGlvbi1vbi1lZmZlY3QuaHRtbApAQCAtMCwwICsxLDE3IEBACis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdj48L2Rpdj4KKzxzY3Jp
cHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgYW5pbWF0aW9uID0gZG9j
dW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IikuYW5pbWF0ZSh7IG1hcmdpbkxlZnQ6ICIxMDBweCIg
fSwgeyBkdXJhdGlvbjogMTAwMCwgZWFzaW5nOiAic3RlcHMoMTApIiB9KTsKKworICAgIGF3YWl0
IGFuaW1hdGlvbi5yZWFkeTsKKyAgICAKKyAgICBhbmltYXRpb24uY3VycmVudFRpbWUgPSAyMjU7
CisgICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMudGltZVRvTmV4dEFuaW1hdGlvblRpY2soYW5p
bWF0aW9uKSwgNzUsICJDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGljayB3aGVu
IHBhcnRseSB0aHJvdWdoIGEgc3RlcHMgaW50ZXJ2YWwuIik7CisgICAgCisgICAgdC5kb25lKCk7
Cit9LCAiQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGFuIGVmZmVj
dCB3aXRoIGEgc3RlcHMoKSBlYXNpbmcuIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBz
LXRpbWluZy1mdW5jdGlvbi1vbi1rZXlmcmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93
ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1
bmN0aW9uLW9uLWtleWZyYW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDdjMjlmODI2MTNj
OGRjNTQ4YWZlMTE0NzRkODllODgzNmY1OTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWlu
Zy1mdW5jdGlvbi1vbi1rZXlmcmFtZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgQ29tcHV0aW5nIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGEga2V5ZnJhbWUg
d2l0aCBhIHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9uLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWlu
Zy1mdW5jdGlvbi1vbi1rZXlmcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9z
Y2hlZHVsaW5nLW9mLWFuaW1hdGlvbi13aXRoLXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1rZXlm
cmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5ZmNiZGUzMGExNjJkOGJiYzY5ZWExODY1NTg0ZTczMTQ4
ODRlMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVk
dWxpbmctb2YtYW5pbWF0aW9uLXdpdGgtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLW9uLWtleWZyYW1l
Lmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXY+PC9kaXY+Cis8c2NyaXB0PgorCithc3luY190ZXN0
KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGFuaW1hdGlvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0
b3IoImRpdiIpLmFuaW1hdGUoeworICAgICAgICBtYXJnaW5MZWZ0OiBbIjAiLCAiMjUwcHgiLCAi
NTAwcHgiLCAiNzUwcHgiLCAiMTAwMHB4Il0sCisgICAgICAgIGVhc2luZzogWyJsaW5lYXIiLCAi
bGluZWFyIiwgInN0ZXBzKDEwKSIsICJsaW5lYXIiXQorICAgIH0sIDEwMDApOworCisgICAgYXdh
aXQgYW5pbWF0aW9uLnJlYWR5OworICAgIAorICAgIGFuaW1hdGlvbi5jdXJyZW50VGltZSA9IDUz
NTsKKyAgICBhc3NlcnRfZXF1YWxzKGludGVybmFscy50aW1lVG9OZXh0QW5pbWF0aW9uVGljayhh
bmltYXRpb24pLCAxNSk7CisKKyAgICB0LmRvbmUoKTsKK30sICJDb21wdXRpbmcgdGhlIHRpbWUg
dW50aWwgdGhlIG5leHQgdGljayBmb3IgYSBrZXlmcmFtZSB3aXRoIGEgc3RlcHMoKSB0aW1pbmcg
ZnVuY3Rpb24uIik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5p
bWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1leHBsaWNpdC1zdGVwcy10
aW1pbmctZnVuY3Rpb24tb24tc29tZS1rZXlmcmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24td2l0aC1leHBsaWNp
dC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tc29tZS1rZXlmcmFtZXMtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmY2M1YzhhMTM2ZDM1ODhhNDljMDBhMWI4MjYyODUwN2I0OGFlNmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3Nz
LWFuaW1hdGlvbi13aXRoLWV4cGxpY2l0LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1zb21lLWtl
eWZyYW1lcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQ29tcHV0aW5nIHRo
ZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGEgQ1NTIEFuaW1hdGlvbiB3aXRoIGltcGxp
Y2l0IGFuZCBleHBsaWNpdCBzdGVwcygpIHRpbWluZyBmdW5jdGlvbnMuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13
aXRoLWV4cGxpY2l0LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1vbi1zb21lLWtleWZyYW1lcy5odG1s
IGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9mLWNzcy1hbmltYXRpb24t
d2l0aC1leHBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tc29tZS1rZXlmcmFtZXMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45MWUyZmNkYWYxNzRjM2Y4NzhiNTBmYjRhNzQzNmQ1Y2UxMTQzNWQxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5nLW9m
LWNzcy1hbmltYXRpb24td2l0aC1leHBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24tb24tc29t
ZS1rZXlmcmFtZXMuaHRtbApAQCAtMCwwICsxLDM5IEBACis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorCisgICAgZGl2IHsKKyAg
ICAgICAgYW5pbWF0aW9uOiBhbmltIDFzIHN0ZXBzKDEwKTsKKyAgICB9CisKKyAgICBAa2V5ZnJh
bWVzIGFuaW0geworICAgICAgICAyNSUgeyBtYXJnaW4tbGVmdDogMjUwcHggfQorICAgICAgICA1
MCUgeyBtYXJnaW4tbGVmdDogNTAwcHg7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IHN0ZXBz
KDUpOyB9CisgICAgICAgIDc1JSB7IG1hcmdpbi1sZWZ0OiA3NTBweCB9CisgICAgfQorCis8L3N0
eWxlPgorPGRpdj48L2Rpdj4KKzxzY3JpcHQ+CisKK2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgYW5pbWF0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiZGl2IikuZ2V0QW5p
bWF0aW9ucygpWzBdOworCisgICAgYXdhaXQgYW5pbWF0aW9uLnJlYWR5OworICAgIAorICAgIGFu
aW1hdGlvbi5jdXJyZW50VGltZSA9IDEwOworICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLnRp
bWVUb05leHRBbmltYXRpb25UaWNrKGFuaW1hdGlvbiksIDE1LCAiUHJvZ3Jlc3MgY29udGFpbmVk
IGluIHRoZSBpbnRlcnZhbCBmb3IgYW4gaW1wbGljaXQgMCUga2V5ZnJhbWUuIik7CisKKyAgICBh
bmltYXRpb24uY3VycmVudFRpbWUgPSAyNjU7CisgICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMu
dGltZVRvTmV4dEFuaW1hdGlvblRpY2soYW5pbWF0aW9uKSwgMTAsICJQcm9ncmVzcyBjb250YWlu
ZWQgaW4gdGhlIGludGVydmFsIGZvciBhbiBleHBsaWNpdCBrZXlmcmFtZSB3aXRoIGFuIGltcGxp
Y2l0IHN0ZXBzKCkgdGltaW5nLWZ1bmN0aW9uLiIpOworCisgICAgYW5pbWF0aW9uLmN1cnJlbnRU
aW1lID0gNTEwOworICAgIGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRp
b25UaWNrKGFuaW1hdGlvbiksIDQwLCAiUHJvZ3Jlc3MgY29udGFpbmVkIGluIHRoZSBpbnRlcnZh
bCBmb3IgYW4gZXhwbGljaXQga2V5ZnJhbWUgd2l0aCBhbiBleHBsaWNpdCBzdGVwcygpIHRpbWlu
Zy1mdW5jdGlvbi4iKTsKKworICAgIGFuaW1hdGlvbi5jdXJyZW50VGltZSA9IDc4MDsKKyAgICBh
c3NlcnRfZXF1YWxzKGludGVybmFscy50aW1lVG9OZXh0QW5pbWF0aW9uVGljayhhbmltYXRpb24p
LCAyMCwgIlByb2dyZXNzIGNvbnRhaW5lZCBpbiB0aGUgaW50ZXJ2YWwgZm9yIGFuIGltcGxpY2l0
IDEwMCUga2V5ZnJhbWUuIik7CisKKyAgICB0LmRvbmUoKTsKK30sICJDb21wdXRpbmcgdGhlIHRp
bWUgdW50aWwgdGhlIG5leHQgdGljayBmb3IgYSBDU1MgQW5pbWF0aW9uIHdpdGggaW1wbGljaXQg
YW5kIGV4cGxpY2l0IHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9ucy4iKTsKKworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFu
aW1hdGlvbi13aXRoLWltcGxpY2l0LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy93ZWJhbmltYXRpb25zL3NjaGVkdWxpbmctb2YtY3NzLWFuaW1hdGlvbi13
aXRoLWltcGxpY2l0LXN0ZXBzLXRpbWluZy1mdW5jdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZDZkZTEyNDgwMGI5OTMwZmNmM2Y5NjhlZDdkZWQ4NWNjMmRhM2VkMgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1jc3MtYW5pbWF0
aW9uLXdpdGgtaW1wbGljaXQtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBDb21wdXRpbmcgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgdGlj
ayBmb3IgYSBDU1MgQW5pbWF0aW9uIHdpdGggaW1wbGljaXQgc3RlcHMoKSB0aW1pbmcgZnVuY3Rp
b25zLiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYW5pbWF0aW9ucy9zY2hlZHVsaW5n
LW9mLWNzcy1hbmltYXRpb24td2l0aC1pbXBsaWNpdC1zdGVwcy10aW1pbmctZnVuY3Rpb24uaHRt
bCBiL0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1jc3MtYW5pbWF0aW9u
LXdpdGgtaW1wbGljaXQtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5
MDQ3MDdjNzBlMjZkZDAyOWI3OGUyZGZhZjU5Y2QyZmRhNzMwMwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmFuaW1hdGlvbnMvc2NoZWR1bGluZy1vZi1jc3MtYW5pbWF0aW9uLXdp
dGgtaW1wbGljaXQtc3RlcHMtdGltaW5nLWZ1bmN0aW9uLmh0bWwKQEAgLTAsMCArMSwzMSBAQAor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
dHlsZT4KKworICAgIGRpdiB7CisgICAgICAgIGFuaW1hdGlvbjogYW5pbSAxcyBzdGVwcygxMCk7
CisgICAgfQorCisgICAgQGtleWZyYW1lcyBhbmltIHsKKyAgICAgICAgNTAlIHsgbWFyZ2luLWxl
ZnQ6IDUwMHB4OyB9CisgICAgfQorCis8L3N0eWxlPgorPGRpdj48L2Rpdj4KKzxzY3JpcHQ+CisK
K2FzeW5jX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgYW5pbWF0aW9uID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiZGl2IikuZ2V0QW5pbWF0aW9ucygpWzBdOworCisgICAgYXdhaXQgYW5p
bWF0aW9uLnJlYWR5OworICAgIAorICAgIGFuaW1hdGlvbi5jdXJyZW50VGltZSA9IDEwOworICAg
IGFzc2VydF9lcXVhbHMoaW50ZXJuYWxzLnRpbWVUb05leHRBbmltYXRpb25UaWNrKGFuaW1hdGlv
biksIDQwLCAiUHJvZ3Jlc3MgY29udGFpbmVkIGluIHRoZSBpbnRlcnZhbCBmb3IgYW4gaW1wbGlj
aXQgMCUga2V5ZnJhbWUuIik7CisKKyAgICBhbmltYXRpb24uY3VycmVudFRpbWUgPSA5MjA7Cisg
ICAgYXNzZXJ0X2VxdWFscyhpbnRlcm5hbHMudGltZVRvTmV4dEFuaW1hdGlvblRpY2soYW5pbWF0
aW9uKSwgMzAsICJQcm9ncmVzcyBjb250YWluZWQgaW4gdGhlIGludGVydmFsIGZvciBhbiBpbXBs
aWNpdCAxMDAlIGtleWZyYW1lLiIpOworCisgICAgdC5kb25lKCk7Cit9LCAiQ29tcHV0aW5nIHRo
ZSB0aW1lIHVudGlsIHRoZSBuZXh0IHRpY2sgZm9yIGEgQ1NTIEFuaW1hdGlvbiB3aXRoIGltcGxp
Y2l0IHN0ZXBzKCkgdGltaW5nIGZ1bmN0aW9ucy4iKTsKKworPC9zY3JpcHQ+Cg==
</data>
<flag name="review"
          id="415245"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>