<?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>207760</bug_id>
          
          <creation_ts>2020-02-14 07:13:01 -0800</creation_ts>
          <short_desc>[Web Animations] Style changes due to Web Animations should not trigger CSS Transitions</short_desc>
          <delta_ts>2020-02-24 02:49:54 -0800</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>
          <dependson>207364</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>dino</cc>
    
    <cc>ldebeasi</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1618964</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 07:13:01 -0800</bug_when>
    <thetext>[Web Animations] Use running animations unaniamted style when considering new CSS Transitions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618965</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-14 07:14:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/59458111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618981</commentid>
    <comment_count>2</comment_count>
      <attachid>390767</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 07:39:15 -0800</bug_when>
    <thetext>Created attachment 390767
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1618982</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 07:40:10 -0800</bug_when>
    <thetext>Note that the patch for review is _not_ expected to build since it depends on the one for bug 207629 and bug 207364. We can retry it once it lands, but the &quot;WIP Patch&quot; for bug 207364 contained all of the code and showed positive bot results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619022</commentid>
    <comment_count>4</comment_count>
      <attachid>390767</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-14 08:43:56 -0800</bug_when>
    <thetext>Comment on attachment 390767
Patch

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

&gt; LayoutTests/ChangeLog:3
&gt; +        [Web Animations] Use running animations unanimated style when considering new CSS Transitions

Should this be &quot;Use running animation&apos;s unanimated style when considering new CSS Transitions&quot;? It&apos;s a bit hard to parse.

I think it&apos;s more like &quot;Style changes due to Web Animations should not trigger transitions&quot;.

&gt; Source/WebCore/animation/KeyframeEffect.cpp:786
&gt; +bool KeyframeEffect::animatesProperty(CSSPropertyID property) const
&gt; +{
&gt; +    if (!m_blendingKeyframes.isEmpty())
&gt; +        return m_blendingKeyframes.properties().contains(property);
&gt; +
&gt; +    for (auto&amp; keyframe : m_parsedKeyframes) {
&gt; +        for (auto keyframeProperty : keyframe.unparsedStyle.keys()) {
&gt; +            if (keyframeProperty == property)
&gt; +                return true;
&gt; +        }
&gt; +    }
&gt; +    return false;
&gt; +}

I wonder if this will become a perf bottleneck. People do make keyframe animations with hundreds of keyframes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619055</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 10:00:28 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 390767 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=390767&amp;action=review
&gt; 
&gt; &gt; LayoutTests/ChangeLog:3
&gt; &gt; +        [Web Animations] Use running animations unanimated style when considering new CSS Transitions
&gt; 
&gt; Should this be &quot;Use running animation&apos;s unanimated style when considering
&gt; new CSS Transitions&quot;? It&apos;s a bit hard to parse.
&gt; 
&gt; I think it&apos;s more like &quot;Style changes due to Web Animations should not
&gt; trigger transitions&quot;.

Much better.

&gt; &gt; Source/WebCore/animation/KeyframeEffect.cpp:786
&gt; &gt; +bool KeyframeEffect::animatesProperty(CSSPropertyID property) const
&gt; &gt; +{
&gt; &gt; +    if (!m_blendingKeyframes.isEmpty())
&gt; &gt; +        return m_blendingKeyframes.properties().contains(property);
&gt; &gt; +
&gt; &gt; +    for (auto&amp; keyframe : m_parsedKeyframes) {
&gt; &gt; +        for (auto keyframeProperty : keyframe.unparsedStyle.keys()) {
&gt; &gt; +            if (keyframeProperty == property)
&gt; &gt; +                return true;
&gt; &gt; +        }
&gt; &gt; +    }
&gt; &gt; +    return false;
&gt; &gt; +}
&gt; 
&gt; I wonder if this will become a perf bottleneck. People do make keyframe
&gt; animations with hundreds of keyframes.

Some more considerations:

    1. We&apos;ll stop iterating as soon as we find the opacity in one keyframe, hopefully sooner than later, good chance we&apos;ll find it right on the first keyframe
    2. This only happens for cases where both a transition and a running animation for the same property are specified
    3. On top of the previous point, this only happens if the running animation has _not_ yet been applied, at any further point the blending keyframes will be resolved and we take the faster path
    4. Finally this only applies to JS-created Web Animations, since CSS Animations have their unanimated style set right away since they&apos;re created during style resolution

I don&apos;t think all of those points are likely to happen all at once outside of specific testing situations, but I could be wrong. If that happens, we can probably find a way to improve on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619088</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-14 11:00:21 -0800</bug_when>
    <thetext>Committed r256627: &lt;https://trac.webkit.org/changeset/256627&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1622098</commentid>
    <comment_count>7</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-02-24 02:49:54 -0800</bug_when>
    <thetext>*** Bug 203081 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>390767</attachid>
            <date>2020-02-14 07:39:15 -0800</date>
            <delta_ts>2020-02-14 08:43:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>207760.patch</filename>
            <type>text/plain</type>
            <size>28941</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0ZjA5NzVhYjBiOC4uNDgzYTNjODg3ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAyMC0wMi0xNCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KKworICAgICAg
ICBbV2ViIEFuaW1hdGlvbnNdIFVzZSBydW5uaW5nIGFuaW1hdGlvbnMgdW5hbmltYXRlZCBzdHls
ZSB3aGVuIGNvbnNpZGVyaW5nIG5ldyBDU1MgVHJhbnNpdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzc2MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNTk0NTgxMTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTWFyayB0aGF0IGEgY291cGxlIG9mIHRlc3RzIGFyZSBubyBsb25nZXIgZmxha3ku
CisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAyLTE0ICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gRW5z
dXJlIENTUyBUcmFuc2l0aW9uIGFuZCBDU1MgQW5pbWF0aW9uIGV2ZW50cyBhcmUgcXVldWVkLCBz
b3J0ZWQgYW5kIGRpc3BhdGNoZWQgYnkgdGhlaXIgdGltZWxpbmUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGUxMzkzYmIwNjZkLi45NGZjZTNiNzMwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNjU0
LDkgKzI2NTQsNiBAQCB3ZWJraXQub3JnL2IvMTc3Nzk5IGFjY2Vzc2liaWxpdHkvdGFibGUtZGV0
ZWN0aW9uLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMTc5MDY5IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVu
dC90aGUtaWZyYW1lLWVsZW1lbnQvc2FuZGJveF8wMzIuaHRtIFsgUGFzcyBGYWlsdXJlIF0KIAot
d2Via2l0Lm9yZy9iLzIwMjEwNyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1h
bmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL3N0eWxlLWNoYW5nZS1ldmVudHMuaHRtbCBb
IFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMjAyMTA4IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Eb2N1bWVudFRpbWVsaW5lL3N0
eWxlLWNoYW5nZS1ldmVudHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8x
NTcwNjggWyBEZWJ1ZyBdIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9z
bmlmZi9pbXBvcnRzY3JpcHRzLmh0bWwgWyBQYXNzIENyYXNoIF0KIHdlYmtpdC5vcmcvYi8xNTcw
NjggWyBSZWxlYXNlIF0gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3Nu
aWZmL2ltcG9ydHNjcmlwdHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCmluZGV4IDhjZTgzNmQ3MjRlLi41NWNkYWQ5NTIyNiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTQgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYiBBbmltYXRpb25zXSBV
c2UgcnVubmluZyBhbmltYXRpb25zIHVuYW5pbWF0ZWQgc3R5bGUgd2hlbiBjb25zaWRlcmluZyBu
ZXcgQ1NTIFRyYW5zaXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDc3NjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5NDU4MTExPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1hcmsgV2ViIFBs
YXRmb3JtIFRlc3RzIHByb2dyZXNzaW9ucy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGFibGUvYW5pbWF0ZS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFj
ZXMvQW5pbWF0aW9uL3N0eWxlLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0RvY3VtZW50VGlt
ZWxpbmUvc3R5bGUtY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3Qvc3R5
bGUtY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQ6CisKIDIwMjAtMDItMTQgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dlYiBBbmltYXRpb25zXSBFbnN1
cmUgQ1NTIFRyYW5zaXRpb24gYW5kIENTUyBBbmltYXRpb24gZXZlbnRzIGFyZSBxdWV1ZWQsIHNv
cnRlZCBhbmQgZGlzcGF0Y2hlZCBieSB0aGVpciB0aW1lbGluZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRl
cmZhY2VzL0FuaW1hdGFibGUvYW5pbWF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5p
bWF0YWJsZS9hbmltYXRlLWV4cGVjdGVkLnR4dAppbmRleCAxNmVjODUzYjUxNC4uNzUxNDQyNmNh
MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRhYmxlL2FuaW1hdGUtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
LWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9BbmltYXRhYmxlL2FuaW1hdGUtZXhwZWN0ZWQudHh0CkBA
IC0xMzIsNyArMTMyLDcgQEAgUEFTUyBFbGVtZW50LmFuaW1hdGUoKSBjb3JyZWN0bHkgc2V0cyB0
aGUgaWQgYXR0cmlidXRlCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGNvcnJlY3RseSBzZXRzIHRo
ZSBBbmltYXRpb24ncyB0aW1lbGluZSAKIFBBU1MgRWxlbWVudC5hbmltYXRlKCkgY29ycmVjdGx5
IHNldHMgdGhlIEFuaW1hdGlvbidzIHRpbWVsaW5lIHdoZW4gdHJpZ2dlcmVkIG9uIGFuIGVsZW1l
bnQgaW4gYSBkaWZmZXJlbnQgZG9jdW1lbnQgCiBQQVNTIEVsZW1lbnQuYW5pbWF0ZSgpIGNhbGxz
IHBsYXkgb24gdGhlIEFuaW1hdGlvbiAKLUZBSUwgRWxlbWVudC5hbmltYXRlKCkgZG9lcyBOT1Qg
dHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCBhc3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBz
aG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BB
U1MgRWxlbWVudC5hbmltYXRlKCkgZG9lcyBOT1QgdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVu
dCAKIFBBU1MgYW5pbWF0ZSgpIHdpdGggcHNldWRvRWxlbWVudCBwYXJhbWV0ZXIgY3JlYXRlcyBh
biBBbmltYXRpb24gb2JqZWN0IAogUEFTUyBhbmltYXRlKCkgd2l0aCBwc2V1ZG9FbGVtZW50IHBh
cmFtZXRlciB3aXRob3V0IGNvbnRlbnQgY3JlYXRlcyBhbiBBbmltYXRpb24gb2JqZWN0IAogUEFT
UyBhbmltYXRlKCkgd2l0aCBwc2V1ZG9FbGVtZW50IHBhcmFtZXRlciAgY3JlYXRlcyBhbiBBbmlt
YXRpb24gb2JqZWN0IGZvciA6Om1hcmtlciAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Bbmlt
YXRpb24vc3R5bGUtY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5p
bWF0aW9uL3N0eWxlLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0CmluZGV4IDhjZTgzNTYxMGZj
Li4xODhjMWRjZTM5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGlvbi9zdHlsZS1j
aGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5pbWF0aW9uL3N0
eWxlLWNoYW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0CkBAIC0xLDI2ICsxLDI2IEBACiAKIFBBU1Mg
QWxsIHByb3BlcnR5IGtleXMgYXJlIHJlY29nbml6ZWQgCi1GQUlMIEFuaW1hdGlvbi5pZCBwcm9k
dWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0
aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1
ZQotRkFJTCBBbmltYXRpb24uZWZmZWN0IHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNoYW5nZSBl
dmVudHMgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxkIE5PVCBoYXZlIGJlZW4gdHJp
Z2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIEFuaW1hdGlvbi50aW1lbGluZSBw
cm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFu
c2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3Qg
dHJ1ZQotRkFJTCBBbmltYXRpb24uc3RhcnRUaW1lIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNo
YW5nZSBldmVudHMgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxkIE5PVCBoYXZlIGJl
ZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIEFuaW1hdGlvbi5jdXJy
ZW50VGltZSBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxz
ZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQotRkFJTCBBbmltYXRpb24ucGxheWJhY2tSYXRlIHByb2R1Y2VzIGV4cGVj
dGVkIHN0eWxlIGNoYW5nZSBldmVudHMgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxk
IE5PVCBoYXZlIGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIEFu
aW1hdGlvbi5wbGF5U3RhdGUgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyBh
c3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgQW5pbWF0aW9uLnJlcGxhY2VTdGF0ZSBwcm9k
dWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0
aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1
ZQotRkFJTCBBbmltYXRpb24ucGVuZGluZyBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2Ug
ZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRy
aWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBBbmltYXRpb24ub25maW5pc2gg
cHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyBhc3NlcnRfZmFsc2U6IEEgdHJh
bnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgZmFsc2UgZ290
IHRydWUKLUZBSUwgQW5pbWF0aW9uLm9uY2FuY2VsIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNo
YW5nZSBldmVudHMgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxkIE5PVCBoYXZlIGJl
ZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIEFuaW1hdGlvbi5vbnJl
bW92ZSBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTog
QSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxz
ZSBnb3QgdHJ1ZQotRkFJTCBBbmltYXRpb24ucmVhZHkgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUg
Y2hhbmdlIGV2ZW50cyBhc3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUg
YmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgQW5pbWF0aW9uLmZp
bmlzaGVkIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNoYW5nZSBldmVudHMgYXNzZXJ0X2ZhbHNl
OiBBIHRyYW5zaXRpb24gc2hvdWxkIE5PVCBoYXZlIGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZh
bHNlIGdvdCB0cnVlCi1GQUlMIEFuaW1hdGlvbi5jYW5jZWwgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5
bGUgY2hhbmdlIGV2ZW50cyBhc3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhh
dmUgYmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgQW5pbWF0aW9u
LmZpbmlzaCBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxz
ZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBm
YWxzZSBnb3QgdHJ1ZQotRkFJTCBBbmltYXRpb24ucGxheSBwcm9kdWNlcyBleHBlY3RlZCBzdHls
ZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2
ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBBbmltYXRpb24u
cGF1c2UgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyBhc3NlcnRfZmFsc2U6
IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgZmFs
c2UgZ290IHRydWUKLUZBSUwgQW5pbWF0aW9uLnVwZGF0ZVBsYXliYWNrUmF0ZSBwcm9kdWNlcyBl
eHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNo
b3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJ
TCBBbmltYXRpb24ucmV2ZXJzZSBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRz
IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJl
ZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBBbmltYXRpb24uaWQgcHJvZHVjZXMgZXhw
ZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLmVmZmVjdCBwcm9kdWNl
cyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIAorUEFTUyBBbmltYXRpb24udGltZWxpbmUg
cHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLnN0
YXJ0VGltZSBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIAorUEFTUyBBbmlt
YXRpb24uY3VycmVudFRpbWUgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAK
K1BBU1MgQW5pbWF0aW9uLnBsYXliYWNrUmF0ZSBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFu
Z2UgZXZlbnRzIAorUEFTUyBBbmltYXRpb24ucGxheVN0YXRlIHByb2R1Y2VzIGV4cGVjdGVkIHN0
eWxlIGNoYW5nZSBldmVudHMgCitQQVNTIEFuaW1hdGlvbi5yZXBsYWNlU3RhdGUgcHJvZHVjZXMg
ZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLnBlbmRpbmcgcHJv
ZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLm9uZmlu
aXNoIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNoYW5nZSBldmVudHMgCitQQVNTIEFuaW1hdGlv
bi5vbmNhbmNlbCBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIAorUEFTUyBB
bmltYXRpb24ub25yZW1vdmUgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAK
K1BBU1MgQW5pbWF0aW9uLnJlYWR5IHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNoYW5nZSBldmVu
dHMgCitQQVNTIEFuaW1hdGlvbi5maW5pc2hlZCBwcm9kdWNlcyBleHBlY3RlZCBzdHlsZSBjaGFu
Z2UgZXZlbnRzIAorUEFTUyBBbmltYXRpb24uY2FuY2VsIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxl
IGNoYW5nZSBldmVudHMgCitQQVNTIEFuaW1hdGlvbi5maW5pc2ggcHJvZHVjZXMgZXhwZWN0ZWQg
c3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLnBsYXkgcHJvZHVjZXMgZXhwZWN0
ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0aW9uLnBhdXNlIHByb2R1Y2VzIGV4
cGVjdGVkIHN0eWxlIGNoYW5nZSBldmVudHMgCitQQVNTIEFuaW1hdGlvbi51cGRhdGVQbGF5YmFj
a1JhdGUgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKK1BBU1MgQW5pbWF0
aW9uLnJldmVyc2UgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyAKIEZBSUwg
QW5pbWF0aW9uLnBlcnNpc3QgcHJvZHVjZXMgZXhwZWN0ZWQgc3R5bGUgY2hhbmdlIGV2ZW50cyBh
c3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKIEZBSUwgQW5pbWF0aW9uLmNvbW1pdFN0eWxlcyBwcm9k
dWNlcyBleHBlY3RlZCBzdHlsZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF90cnVlOiBBIHRyYW5zaXRp
b24gc2hvdWxkIGhhdmUgYmVlbiB0cmlnZ2VyZWQgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZB
SUwgQW5pbWF0aW9uLkFuaW1hdGlvbiBjb25zdHJ1Y3RvciBwcm9kdWNlcyBleHBlY3RlZCBzdHls
ZSBjaGFuZ2UgZXZlbnRzIGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2
ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQorUEFTUyBBbmltYXRpb24u
QW5pbWF0aW9uIGNvbnN0cnVjdG9yIHByb2R1Y2VzIGV4cGVjdGVkIHN0eWxlIGNoYW5nZSBldmVu
dHMgCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9Eb2N1bWVudFRpbWVsaW5lL3N0eWxlLWNo
YW5nZS1ldmVudHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0RvY3VtZW50VGltZWxpbmUv
c3R5bGUtY2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQKaW5kZXggOWJmNmE2MzNhN2MuLjNhMWY4
Y2ViOTU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvRG9jdW1lbnRUaW1lbGluZS9zdHlsZS1j
aGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvRG9jdW1lbnRUaW1l
bGluZS9zdHlsZS1jaGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAot
RkFJTCBEb2N1bWVudFRpbWVsaW5lLmN1cnJlbnRUaW1lIGRvZXMgTk9UIHRyaWdnZXIgYSBzdHls
ZSBjaGFuZ2UgZXZlbnQgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxkIE5PVCBoYXZl
IGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1GQUlMIERvY3VtZW50VGlt
ZWxpbmUgY29uc3RydWN0b3IgZG9lcyBOT1QgdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCBh
c3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKK1BBU1MgRG9jdW1lbnRUaW1lbGluZS5jdXJyZW50VGlt
ZSBkb2VzIE5PVCB0cmlnZ2VyIGEgc3R5bGUgY2hhbmdlIGV2ZW50IAorUEFTUyBEb2N1bWVudFRp
bWVsaW5lIGNvbnN0cnVjdG9yIGRvZXMgTk9UIHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2UgZXZlbnQg
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9zdHlsZS1jaGFuZ2Ut
ZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9zdHlsZS1j
aGFuZ2UtZXZlbnRzLWV4cGVjdGVkLnR4dAppbmRleCAzOTM1NTQ4NjQ5YS4uZDMwOWE0NzgyNzkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2ViLWFuaW1hdGlvbnMvaW50ZXJmYWNlcy9LZXlmcmFtZUVmZmVjdC9zdHlsZS1jaGFuZ2UtZXZl
bnRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvS2V5ZnJhbWVFZmZlY3Qvc3R5bGUt
Y2hhbmdlLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTMgQEAKIAogRkFJTCBBbGwg
cHJvcGVydHkga2V5cyBhcmUgcmVjb2duaXplZCBhc3NlcnRfaW5fYXJyYXk6IFRlc3QgcHJvcGVy
dHkgJ3BzZXVkb0VsZW1lbnQnIHNob3VsZCBiZSBvbmUgb2YgdGhlIHByb3BlcnRpZXMgb24gIEtl
eWZyYW1lRWZmZWN0IHZhbHVlICJwc2V1ZG9FbGVtZW50IiBub3QgaW4gYXJyYXkgWyJnZXRUaW1p
bmciLCAiZ2V0Q29tcHV0ZWRUaW1pbmciLCAidXBkYXRlVGltaW5nIiwgInRhcmdldCIsICJpdGVy
YXRpb25Db21wb3NpdGUiLCAiY29tcG9zaXRlIiwgImdldEtleWZyYW1lcyIsICJzZXRLZXlmcmFt
ZXMiLCAiS2V5ZnJhbWVFZmZlY3QgY29uc3RydWN0b3IiLCAiS2V5ZnJhbWVFZmZlY3QgY29weSBj
b25zdHJ1Y3RvciJdCi1GQUlMIEtleWZyYW1lRWZmZWN0LmdldFRpbWluZyBkb2VzIE5PVCB0cmln
Z2VyIGEgc3R5bGUgY2hhbmdlIGV2ZW50IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3Vs
ZCBOT1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBL
ZXlmcmFtZUVmZmVjdC5nZXRDb21wdXRlZFRpbWluZyBkb2VzIE5PVCB0cmlnZ2VyIGEgc3R5bGUg
Y2hhbmdlIGV2ZW50IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1QgaGF2ZSBi
ZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBLZXlmcmFtZUVmZmVj
dC51cGRhdGVUaW1pbmcgZG9lcyBOT1QgdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCBhc3Nl
cnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQgZXhw
ZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgS2V5ZnJhbWVFZmZlY3QudGFyZ2V0IGRvZXMgTk9U
IHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2UgZXZlbnQgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24g
c2hvdWxkIE5PVCBoYXZlIGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCi1G
QUlMIEtleWZyYW1lRWZmZWN0Lml0ZXJhdGlvbkNvbXBvc2l0ZSBkb2VzIE5PVCB0cmlnZ2VyIGEg
c3R5bGUgY2hhbmdlIGV2ZW50IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1Qg
aGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBLZXlmcmFt
ZUVmZmVjdC5jb21wb3NpdGUgZG9lcyBOT1QgdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCBh
c3NlcnRfZmFsc2U6IEEgdHJhbnNpdGlvbiBzaG91bGQgTk9UIGhhdmUgYmVlbiB0cmlnZ2VyZWQg
ZXhwZWN0ZWQgZmFsc2UgZ290IHRydWUKLUZBSUwgS2V5ZnJhbWVFZmZlY3QuZ2V0S2V5ZnJhbWVz
IGRvZXMgTk9UIHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2UgZXZlbnQgYXNzZXJ0X2ZhbHNlOiBBIHRy
YW5zaXRpb24gc2hvdWxkIE5PVCBoYXZlIGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdv
dCB0cnVlCi1GQUlMIEtleWZyYW1lRWZmZWN0LnNldEtleWZyYW1lcyBkb2VzIE5PVCB0cmlnZ2Vy
IGEgc3R5bGUgY2hhbmdlIGV2ZW50IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBO
T1QgaGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBLZXlm
cmFtZUVmZmVjdC5LZXlmcmFtZUVmZmVjdCBjb25zdHJ1Y3RvciBkb2VzIE5PVCB0cmlnZ2VyIGEg
c3R5bGUgY2hhbmdlIGV2ZW50IGFzc2VydF9mYWxzZTogQSB0cmFuc2l0aW9uIHNob3VsZCBOT1Qg
aGF2ZSBiZWVuIHRyaWdnZXJlZCBleHBlY3RlZCBmYWxzZSBnb3QgdHJ1ZQotRkFJTCBLZXlmcmFt
ZUVmZmVjdC5LZXlmcmFtZUVmZmVjdCBjb3B5IGNvbnN0cnVjdG9yIGRvZXMgTk9UIHRyaWdnZXIg
YSBzdHlsZSBjaGFuZ2UgZXZlbnQgYXNzZXJ0X2ZhbHNlOiBBIHRyYW5zaXRpb24gc2hvdWxkIE5P
VCBoYXZlIGJlZW4gdHJpZ2dlcmVkIGV4cGVjdGVkIGZhbHNlIGdvdCB0cnVlCitQQVNTIEtleWZy
YW1lRWZmZWN0LmdldFRpbWluZyBkb2VzIE5PVCB0cmlnZ2VyIGEgc3R5bGUgY2hhbmdlIGV2ZW50
IAorUEFTUyBLZXlmcmFtZUVmZmVjdC5nZXRDb21wdXRlZFRpbWluZyBkb2VzIE5PVCB0cmlnZ2Vy
IGEgc3R5bGUgY2hhbmdlIGV2ZW50IAorUEFTUyBLZXlmcmFtZUVmZmVjdC51cGRhdGVUaW1pbmcg
ZG9lcyBOT1QgdHJpZ2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCAKK1BBU1MgS2V5ZnJhbWVFZmZl
Y3QudGFyZ2V0IGRvZXMgTk9UIHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2UgZXZlbnQgCitQQVNTIEtl
eWZyYW1lRWZmZWN0Lml0ZXJhdGlvbkNvbXBvc2l0ZSBkb2VzIE5PVCB0cmlnZ2VyIGEgc3R5bGUg
Y2hhbmdlIGV2ZW50IAorUEFTUyBLZXlmcmFtZUVmZmVjdC5jb21wb3NpdGUgZG9lcyBOT1QgdHJp
Z2dlciBhIHN0eWxlIGNoYW5nZSBldmVudCAKK1BBU1MgS2V5ZnJhbWVFZmZlY3QuZ2V0S2V5ZnJh
bWVzIGRvZXMgTk9UIHRyaWdnZXIgYSBzdHlsZSBjaGFuZ2UgZXZlbnQgCitQQVNTIEtleWZyYW1l
RWZmZWN0LnNldEtleWZyYW1lcyBkb2VzIE5PVCB0cmlnZ2VyIGEgc3R5bGUgY2hhbmdlIGV2ZW50
IAorUEFTUyBLZXlmcmFtZUVmZmVjdC5LZXlmcmFtZUVmZmVjdCBjb25zdHJ1Y3RvciBkb2VzIE5P
VCB0cmlnZ2VyIGEgc3R5bGUgY2hhbmdlIGV2ZW50IAorUEFTUyBLZXlmcmFtZUVmZmVjdC5LZXlm
cmFtZUVmZmVjdCBjb3B5IGNvbnN0cnVjdG9yIGRvZXMgTk9UIHRyaWdnZXIgYSBzdHlsZSBjaGFu
Z2UgZXZlbnQgCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOTgwMzcyYjhiYi4uYTkyZjlmZjlkNzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAyMC0wMi0xNCAgQW50b2luZSBRdWludCAgPGdyYW91
dHNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIFVzZSBydW5uaW5nIGFu
aW1hdGlvbnMgdW5hbmltYXRlZCBzdHlsZSB3aGVuIGNvbnNpZGVyaW5nIG5ldyBDU1MgVHJhbnNp
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
Nzc2MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk0NTgxMTE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hpbGUgd2Ugd291bGQgY29uc2lkZXIg
dGhlIHVuYW5pbWF0ZWQgc3R5bGUgb2YgQ1NTIEFuaW1hdGlvbnMgc3BlY2lmaWNhbGx5IHdoZW4g
Y29uc2lkZXJpbmcgd2hhdCB0aGUgInN0YXJ0IiBzdHlsZSB2YWx1ZXMgKGJlZm9yZS1jaGFuZ2Ug
c3R5bGUgaW4gc3BlYyB0ZXJtaW5vbG9neSkKKyAgICAgICAgc2hvdWxkIGJlIHdoZW4gY29uc2lk
ZXJpbmcgd2hldGhlciB0byBzdGFydCBhIENTUyBUcmFuc2l0aW9uIGR1cmluZyBzdHlsZSByZXNv
bHV0aW9uLCB3ZSB3b3VsZCBub3QgY29uc2lkZXIgb3RoZXIgdHlwZXMgb2YgYW5pbWF0aW9ucywg
c3BlY2lmaWNhbGx5IEpTLWNyZWF0ZWQgV2ViCisgICAgICAgIEFuaW1hdGlvbnMuIEhvd2V2ZXIs
IFdlYiBQbGF0Zm9ybSBUZXN0cyBzcGVjaWZpY2FsbHkgdGVzdCB3aGV0aGVyIGNoYW5nZXMgbWFk
ZSB1c2luZyB0aGUgV2ViIEFuaW1hdGlvbnMgQVBJIG1heSB0cmlnZ2VyIHRyYW5zaXRpb25zLCBh
bmQgdW50aWwgbm93IHRoZXkgd291bGQgYmVjYXVzZQorICAgICAgICB0aGUgUmVuZGVyU3R5bGUg
dXNlZCB0byBkZXRlcm1pbmUgdGhlIGJlZm9yZS1jaGFuZ2Ugc3R5bGUgd2FzIHRoZSBzdHlsZSBm
cm9tIHRoZSBwcmV2aW91cyByZXNvbHV0aW9uLCB3aGljaCB3b3VsZCBpbmNsdWRlIGFuaW1hdGVk
IHZhbHVlcy4KKworICAgICAgICBUbyBmaXggdGhpcywgd2UgbWFrZSBpdCBzbyB0aGF0IEtleWZy
YW1lRWZmZWN0IG9iamVjdHMgbm93IGtlZXAgYSBjb3B5IG9mIHRoZSB1bmFuaW1hdGVkIHN0eWxl
IHVzZWQgd2hlbiBibGVuZGluZyBhbmltYXRlZCB2YWx1ZXMgZm9yIHRoZSB2ZXJ5IGZpcnN0IHRp
bWUuIFRoYXQgc3R5bGUKKyAgICAgICAgaXMgY2xlYXJlZCBlYWNoIHRpbWUga2V5ZnJhbWVzIGNo
YW5nZSwgd2hpY2ggaXMgcmFyZSwgYnV0IG1heSBoYXBwZW4gdGhyb3VnaCB0aGUgV2ViIEFuaW1h
dGlvbnMgQVBJLiBUaGVuIGluIEFuaW1hdGlvblRpbWVsaW5lOjp1cGRhdGVDU1NUcmFuc2l0aW9u
c0ZvckVsZW1lbnRBbmRQcm9wZXJ0eSgpLAorICAgICAgICB3ZSBsb29rIGZvciBhIEtleWZyYW1l
RWZmZWN0IGN1cnJlbnRseSBhZmZlY3RpbmcgdGhlIHByb3BlcnR5IGZvciB3aGljaCB3ZSdyZSBj
b25zaWRlcmluZyBzdGFydGluZyBhIENTUyBUcmFuc2l0aW9uLCBhbmQgdXNlIGl0cyB1bmFuaW1h
dGVkIHN0eWxlLgorCisgICAgICAgIElmIHRoYXQgdW5hbmltYXRlZCBzdHlsZSBoYXMgbm90IGJl
ZW4gc2V0IHlldCwgdGhpcyBpcyBiZWNhdXNlIHRoZSBLZXlmcmFtZUVmZmVjdCBoYXMgbm90IGhh
ZCBhIGNoYW5jZSB0byBhcHBseSBpdHNlbGYgd2l0aCBhIG5vbi1udWxsIHByb2dyZXNzLiBJbiB0
aGlzIGNhc2UsIHRoZSBiZWZvcmUtY2hhbmdlCisgICAgICAgIGFuZCBhZnRlci1jaGFuZ2Ugc3R5
bGVzIHNob3VsZCBiZSB0aGUgc2FtZSBpbiBvcmRlciB0byBwcmV2ZW50IGEgdHJhbnNpdGlvbiBm
cm9tIGJlaW5nIHRyaWdnZXJlZCBhcyB0aGUgdW5hbmltYXRlZCBzdHlsZSBmb3IgdGhpcyBrZXlm
cmFtZSBlZmZlY3Qgd2lsbCBtb3N0IGxpa2VseSBiZSB0aGlzCisgICAgICAgIGFmdGVyLWNoYW5n
ZSBzdHlsZSwgb3IgYW55IGZ1dHVyZSBzdHlsZSBjaGFuZ2UgdGhhdCBtYXkgaGFwcGVuIGJlZm9y
ZSB0aGUga2V5ZnJhbWUgZWZmZWN0IHN0YXJ0cyBibGVuZGluZyBhbmltYXRlZCB2YWx1ZXMuCisK
KyAgICAgICAgRmluYWxseSwgdHJhY2tpbmcgdGhlIHVuYW5pbWF0ZWQgc3R5bGUgYXQgdGhlIEtl
eWZyYW1lRWZmZWN0IGxldmVsIG1lYW5zIHdlIG5vIGxvbmdlciB0byB0cmFjayBpdCBzcGVjaWZp
Y2FsbHkgZm9yIENTU0FuaW1hdGlvbi4KKworICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25U
aW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjprZXlmcmFtZUVmZmVjdEZvckVsZW1lbnRB
bmRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25UaW1lbGluZTo6dXBkYXRl
Q1NTVHJhbnNpdGlvbnNGb3JFbGVtZW50QW5kUHJvcGVydHkpOgorICAgICAgICAqIGFuaW1hdGlv
bi9BbmltYXRpb25UaW1lbGluZS5oOgorICAgICAgICAqIGFuaW1hdGlvbi9DU1NBbmltYXRpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTQW5pbWF0aW9uOjpDU1NBbmltYXRpb24pOgorICAgICAgICAqIGFuaW1hdGlv
bi9DU1NBbmltYXRpb24uaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmFuaW1hdGVzUHJvcGVydHkgY29u
c3QpOiBCZWNhdXNlIHRoZSBiYWNraW5nIEtleWZyYW1lTGlzdCBvYmplY3QgbWF5IG5vdCBoYXZl
IGJlZW4gY3JlYXRlZCBieSB0aGUgZmlyc3QgdGltZSB3ZSBxdWVyeSBhIEtleWZyYW1lRWZmZWN0
IGR1cmluZworICAgICAgICBDU1MgVHJhbnNpdGlvbnMgcmVzb2x1dGlvbiwgd2UgcHJvdmlkZSBh
IG1ldGhvZCB0aGF0IHdpbGwgY2hlY2sgdGhlIHZhbHVlcyBwcm92aWRlZCBieSB0aGUgV2ViIEFu
aW1hdGlvbnMgQVBJIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IHRhcmdldHMgYSBnaXZlbiBDU1Mg
cHJvcGVydHkuCisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y2xlYXJCbGVuZGlu
Z0tleWZyYW1lcyk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZURl
Y2xhcmF0aXZlQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMpOgorICAgICAgICAoV2ViQ29yZTo6
S2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVDU1NBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6YXBwbHkpOgorICAgICAgICAqIGFuaW1h
dGlvbi9LZXlmcmFtZUVmZmVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6
OnVuYW5pbWF0ZWRTdHlsZSBjb25zdCk6CisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5p
bWF0ZWRFbGVtZW50VXBkYXRlKToKKwogMjAyMC0wMi0xNCAgQW50b2luZSBRdWludCAgPGdyYW91
dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV2ViIEFuaW1hdGlvbnNdIEVuc3VyZSBDU1MgVHJh
bnNpdGlvbiBhbmQgQ1NTIEFuaW1hdGlvbiBldmVudHMgYXJlIHF1ZXVlZCwgc29ydGVkIGFuZCBk
aXNwYXRjaGVkIGJ5IHRoZWlyIHRpbWVsaW5lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0FuaW1hdGlvblRpbWVsaW5lLmNwcAppbmRleCA2Y2I3N2U4MDY0OS4uMWRiYzJlNGVhOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvblRpbWVsaW5lLmNwcApAQCAt
MzUyLDE1ICszNTIsMTcgQEAgdm9pZCBBbmltYXRpb25UaW1lbGluZTo6dXBkYXRlQ1NTQW5pbWF0
aW9uc0ZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmUKICAgICBrZXlmcmFtZUVm
ZmVjdFN0YWNrLnNldENTU0FuaW1hdGlvbkxpc3QoY3VycmVudEFuaW1hdGlvbkxpc3QpOwogfQog
Ci1SZWZQdHI8V2ViQW5pbWF0aW9uPiBBbmltYXRpb25UaW1lbGluZTo6Y3NzQW5pbWF0aW9uRm9y
RWxlbWVudEFuZFByb3BlcnR5KEVsZW1lbnQmIGVsZW1lbnQsIENTU1Byb3BlcnR5SUQgcHJvcGVy
dHkpCitzdGF0aWMgS2V5ZnJhbWVFZmZlY3QqIGtleWZyYW1lRWZmZWN0Rm9yRWxlbWVudEFuZFBy
b3BlcnR5KEVsZW1lbnQmIGVsZW1lbnQsIENTU1Byb3BlcnR5SUQgcHJvcGVydHkpCiB7Ci0gICAg
UmVmUHRyPFdlYkFuaW1hdGlvbj4gbWF0Y2hpbmdBbmltYXRpb247Ci0gICAgZm9yIChjb25zdCBh
dXRvJiBhbmltYXRpb24gOiBtX2VsZW1lbnRUb0NTU0FuaW1hdGlvbnNNYXAuZ2V0KCZlbGVtZW50
KSkgewotICAgICAgICBhdXRvKiBlZmZlY3QgPSBhbmltYXRpb24tPmVmZmVjdCgpOwotICAgICAg
ICBpZiAoaXM8S2V5ZnJhbWVFZmZlY3Q+KGVmZmVjdCkgJiYgZG93bmNhc3Q8S2V5ZnJhbWVFZmZl
Y3Q+KGVmZmVjdCktPmFuaW1hdGVkUHJvcGVydGllcygpLmNvbnRhaW5zKHByb3BlcnR5KSkKLSAg
ICAgICAgICAgIG1hdGNoaW5nQW5pbWF0aW9uID0gYW5pbWF0aW9uOworICAgIGlmIChhdXRvKiBr
ZXlmcmFtZUVmZmVjdFN0YWNrID0gZWxlbWVudC5rZXlmcmFtZUVmZmVjdFN0YWNrKCkpIHsKKyAg
ICAgICAgYXV0byBlZmZlY3RzID0ga2V5ZnJhbWVFZmZlY3RTdGFjay0+c29ydGVkRWZmZWN0cygp
OworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGVmZmVjdCA6IG1ha2VSZXZlcnNlZFJhbmdlKGVm
ZmVjdHMpKSB7CisgICAgICAgICAgICBpZiAoZWZmZWN0LT5hbmltYXRlc1Byb3BlcnR5KHByb3Bl
cnR5KSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZWZmZWN0LmdldCgpOworICAgICAgICB9CiAg
ICAgfQotICAgIHJldHVybiBtYXRjaGluZ0FuaW1hdGlvbjsKKworICAgIHJldHVybiBudWxscHRy
OwogfQogCiBzdGF0aWMgYm9vbCBwcm9wZXJ0eUluU3R5bGVNYXRjaGVzVmFsdWVGb3JUcmFuc2l0
aW9uSW5NYXAoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBBbmltYXRpb25UaW1lbGluZTo6UHJvcGVydHlUb1RyYW5zaXRpb25NYXAmIHRyYW5zaXRpb25z
KQpAQCAtNDYwLDkgKzQ2MiwyMSBAQCB2b2lkIEFuaW1hdGlvblRpbWVsaW5lOjp1cGRhdGVDU1NU
cmFuc2l0aW9uc0ZvckVsZW1lbnRBbmRQcm9wZXJ0eShFbGVtZW50JiBlbGVtZQogICAgICAgICAg
ICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGF1dG8gZXhpc3RpbmdBbmltYXRpb24gPSBj
c3NBbmltYXRpb25Gb3JFbGVtZW50QW5kUHJvcGVydHkoZWxlbWVudCwgcHJvcGVydHkpKQotICAg
ICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0FuaW1hdGlvbj4oZXhpc3RpbmdBbmltYXRpb24u
Z2V0KCkpLT51bmFuaW1hdGVkU3R5bGUoKTsKKyAgICAgICAgaWYgKGF1dG8qIGtleWZyYW1lRWZm
ZWN0ID0ga2V5ZnJhbWVFZmZlY3RGb3JFbGVtZW50QW5kUHJvcGVydHkoZWxlbWVudCwgcHJvcGVy
dHkpKSB7CisgICAgICAgICAgICAvLyBJZiB3ZSBhbHJlYWR5IGhhdmUgYSBrZXlmcmFtZSBlZmZl
Y3QgdGFyZ2V0aW5nIHRoaXMgcHJvcGVydHksIHdlIHNob3VsZCB1c2UgaXRzIHVuYW5pbWF0ZWQg
c3R5bGUgdG8gZGV0ZXJtaW5lIHdoYXQgdGhlIHBvdGVudGlhbAorICAgICAgICAgICAgLy8gc3Rh
cnQgdmFsdWUgb2YgdGhlIHRyYW5zaXRpb24gc2hvdWQgYmUgdG8gbWFrZSBzdXJlIHRoYXQgd2Ug
ZG9uJ3QgYWNjb3VudCBmb3IgYW5pbWF0ZWQgdmFsdWVzIHRoYXQgd291bGQgaGF2ZSBiZWVuIGJs
ZW5kZWQgb250bworICAgICAgICAgICAgLy8gdGhlIHN0eWxlIGFwcGxpZWQgZHVyaW5nIHRoZSBs
YXN0IHN0eWxlIHJlc29sdXRpb24uCisgICAgICAgICAgICBpZiAoYXV0byogdW5hbmltYXRlZFN0
eWxlID0ga2V5ZnJhbWVFZmZlY3QtPnVuYW5pbWF0ZWRTdHlsZSgpKQorICAgICAgICAgICAgICAg
IHJldHVybiAqdW5hbmltYXRlZFN0eWxlOworCisgICAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEg
a2V5ZnJhbWUgZWZmZWN0IHRhcmdldGluZyB0aGlzIHByb3BlcnR5LCBidXQgaXQgZG9lc24ndCB5
ZXQgaGF2ZSBhbiB1bmFuaW1hdGVkIHN0eWxlLCB0aGlzIGlzIGJlY2F1c2UgaXQgaGFzIG5vdAor
ICAgICAgICAgICAgLy8gaGFkIGEgY2hhbmNlIHRvIGFwcGx5IGl0c2VsZiB3aXRoIGEgbm9uLW51
bGwgcHJvZ3Jlc3MuIEluIHRoaXMgY2FzZSwgdGhlIGJlZm9yZS1jaGFuZ2UgYW5kIGFmdGVyLWNo
YW5nZSBzdHlsZXMgc2hvdWxkIGJlIHRoZQorICAgICAgICAgICAgLy8gc2FtZSBpbiBvcmRlciB0
byBwcmV2ZW50IGEgdHJhbnNpdGlvbiBmcm9tIGJlaW5nIHRyaWdnZXJlZCBhcyB0aGUgdW5hbmlt
YXRlZCBzdHlsZSBmb3IgdGhpcyBrZXlmcmFtZSBlZmZlY3Qgd2lsbCBtb3N0IGxpa2VseQorICAg
ICAgICAgICAgLy8gYmUgdGhpcyBhZnRlci1jaGFuZ2Ugc3R5bGUsIG9yIGFueSBmdXR1cmUgc3R5
bGUgY2hhbmdlIHRoYXQgbWF5IGhhcHBlbiBiZWZvcmUgdGhlIGtleWZyYW1lIGVmZmVjdCBzdGFy
dHMgYmxlbmRpbmcgYW5pbWF0ZWQgdmFsdWVzLgorICAgICAgICAgICAgcmV0dXJuIGFmdGVyQ2hh
bmdlU3R5bGU7CisgICAgICAgIH0KIAorICAgICAgICAvLyBJbiBhbnkgb3RoZXIgc2NlbmFyaW8s
IHRoZSBiZWZvcmUtY2hhbmdlIHN0eWxlIHNob3VsZCBiZSB0aGUgcHJldmlvdXNseSByZXNvbHZl
ZCBzdHlsZSBmb3IgdGhpcyBlbGVtZW50LgogICAgICAgICByZXR1cm4gY3VycmVudFN0eWxlOwog
ICAgIH0oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
blRpbWVsaW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uVGltZWxpbmUu
aAppbmRleCA3YjhhOGI4MTk2NC4uZWIyMWFjOGIyN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9BbmltYXRpb25UaW1lbGluZS5oCkBAIC04OCw3ICs4OCw2IEBAIHByaXZhdGU6CiAg
ICAgdXNpbmcgRWxlbWVudFRvQ1NTQW5pbWF0aW9uc01hcCA9IEhhc2hNYXA8RWxlbWVudCosIENT
U0FuaW1hdGlvbkNvbGxlY3Rpb24+OwogCiAgICAgdm9pZCB1cGRhdGVHbG9iYWxQb3NpdGlvbihX
ZWJBbmltYXRpb24mKTsKLSAgICBSZWZQdHI8V2ViQW5pbWF0aW9uPiBjc3NBbmltYXRpb25Gb3JF
bGVtZW50QW5kUHJvcGVydHkoRWxlbWVudCYsIENTU1Byb3BlcnR5SUQpOwogICAgIFByb3BlcnR5
VG9UcmFuc2l0aW9uTWFwJiBlbnN1cmVSdW5uaW5nVHJhbnNpdGlvbnNCeVByb3BlcnR5KEVsZW1l
bnQmKTsKICAgICB2b2lkIHVwZGF0ZUNTU1RyYW5zaXRpb25zRm9yRWxlbWVudEFuZFByb3BlcnR5
KEVsZW1lbnQmLCBDU1NQcm9wZXJ0eUlELCBjb25zdCBSZW5kZXJTdHlsZSYgY3VycmVudFN0eWxl
LCBjb25zdCBSZW5kZXJTdHlsZSYgYWZ0ZXJDaGFuZ2VTdHlsZSwgUHJvcGVydHlUb1RyYW5zaXRp
b25NYXAmLCBQcm9wZXJ0eVRvVHJhbnNpdGlvbk1hcCYsIGNvbnN0IE1vbm90b25pY1RpbWUpOwog
ICAgIHZvaWQgcmVtb3ZlQ1NTQW5pbWF0aW9uQ3JlYXRlZEJ5TWFya3VwKEVsZW1lbnQmLCBDU1NB
bmltYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5jcHAKaW5k
ZXggZmVjZjAyYWMwZTMuLjJkMWIzYTUyNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQ1NTQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
Q1NTQW5pbWF0aW9uLmNwcApAQCAtMzksNyArMzksNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
X0lNUEwoQ1NTQW5pbWF0aW9uKTsKIAogUmVmPENTU0FuaW1hdGlvbj4gQ1NTQW5pbWF0aW9uOjpj
cmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgY29uc3QgQW5pbWF0aW9uJiBiYWNraW5nQW5p
bWF0aW9uLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBu
ZXdTdHlsZSkKIHsKLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ1NTQW5pbWF0aW9u
KG93bmluZ0VsZW1lbnQsIGJhY2tpbmdBbmltYXRpb24sIG5ld1N0eWxlKSk7CisgICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IENTU0FuaW1hdGlvbihvd25pbmdFbGVtZW50LCBiYWNraW5n
QW5pbWF0aW9uKSk7CiAgICAgcmVzdWx0LT5pbml0aWFsaXplKG9sZFN0eWxlLCBuZXdTdHlsZSk7
CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYkFuaW1hdGlvbihy
ZXN1bHQuZ2V0KCkpOwpAQCAtNDcsMTAgKzQ3LDkgQEAgUmVmPENTU0FuaW1hdGlvbj4gQ1NTQW5p
bWF0aW9uOjpjcmVhdGUoRWxlbWVudCYgb3duaW5nRWxlbWVudCwgY29uc3QgQW5pbWF0aW9uJgog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLUNTU0FuaW1hdGlvbjo6Q1NTQW5pbWF0aW9uKEVsZW1l
bnQmIGVsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYgYmFja2luZ0FuaW1hdGlvbiwgY29uc3QgUmVu
ZGVyU3R5bGUmIHVuYW5pbWF0ZWRTdHlsZSkKK0NTU0FuaW1hdGlvbjo6Q1NTQW5pbWF0aW9uKEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEFuaW1hdGlvbiYgYmFja2luZ0FuaW1hdGlvbikKICAgICA6
IERlY2xhcmF0aXZlQW5pbWF0aW9uKGVsZW1lbnQsIGJhY2tpbmdBbmltYXRpb24pCiAgICAgLCBt
X2FuaW1hdGlvbk5hbWUoYmFja2luZ0FuaW1hdGlvbi5uYW1lKCkpCi0gICAgLCBtX3VuYW5pbWF0
ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIodW5hbmltYXRlZFN0eWxlKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1hdGlvbi5oCmluZGV4IDIyZThkMTU5NzVlLi5j
YmUwYjQyMGM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0NTU0FuaW1h
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9DU1NBbmltYXRpb24uaApAQCAt
NDIsNyArNDIsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQ1NTQW5pbWF0aW9uKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYW5pbWF0aW9uTmFtZTsgfQotICAgIGNvbnN0IFJlbmRlclN0
eWxlJiB1bmFuaW1hdGVkU3R5bGUoKSBjb25zdCB7IHJldHVybiAqbV91bmFuaW1hdGVkU3R5bGU7
IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGJpbmRpbmdzUGxheSgpIGZpbmFsOwogICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IGJpbmRpbmdzUGF1c2UoKSBmaW5hbDsKQEAgLTUyLDEwICs1MSw5IEBA
IHByb3RlY3RlZDoKICAgICBSZWY8QW5pbWF0aW9uRXZlbnRCYXNlPiBjcmVhdGVFdmVudChjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZSBlbGFwc2VkVGltZSwgY29uc3QgU3RyaW5n
JiBwc2V1ZG9JZCwgT3B0aW9uYWw8U2Vjb25kcz4gdGltZWxpbmVUaW1lKSBmaW5hbDsKIAogcHJp
dmF0ZToKLSAgICBDU1NBbmltYXRpb24oRWxlbWVudCYsIGNvbnN0IEFuaW1hdGlvbiYsIGNvbnN0
IFJlbmRlclN0eWxlJik7CisgICAgQ1NTQW5pbWF0aW9uKEVsZW1lbnQmLCBjb25zdCBBbmltYXRp
b24mKTsKIAogICAgIFN0cmluZyBtX2FuaW1hdGlvbk5hbWU7Ci0gICAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0eWxlPiBtX3VuYW5pbWF0ZWRTdHlsZTsKICAgICBib29sIG1fc3RpY2t5UGF1c2Vk
IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZl
Y3QuY3BwCmluZGV4IGIzMWNlZjYwYWMxLi4wOWVjZDdhNjJhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC03NzEsNiArNzcxLDIwIEBAIHZvaWQg
S2V5ZnJhbWVFZmZlY3Q6OnVwZGF0ZUJsZW5kaW5nS2V5ZnJhbWVzKFJlbmRlclN0eWxlJiBlbGVt
ZW50U3R5bGUpCiAgICAgc2V0QmxlbmRpbmdLZXlmcmFtZXMoa2V5ZnJhbWVMaXN0KTsKIH0KIAor
Ym9vbCBLZXlmcmFtZUVmZmVjdDo6YW5pbWF0ZXNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5KSBjb25zdAoreworICAgIGlmICghbV9ibGVuZGluZ0tleWZyYW1lcy5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKS5jb250YWlucyhw
cm9wZXJ0eSk7CisKKyAgICBmb3IgKGF1dG8mIGtleWZyYW1lIDogbV9wYXJzZWRLZXlmcmFtZXMp
IHsKKyAgICAgICAgZm9yIChhdXRvIGtleWZyYW1lUHJvcGVydHkgOiBrZXlmcmFtZS51bnBhcnNl
ZFN0eWxlLmtleXMoKSkgeworICAgICAgICAgICAgaWYgKGtleWZyYW1lUHJvcGVydHkgPT0gcHJv
cGVydHkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCiBib29sIEtleWZyYW1lRWZmZWN0Ojpmb3JjZUxheW91dElm
TmVlZGVkKCkKIHsKICAgICBpZiAoIW1fbmVlZHNGb3JjZWRMYXlvdXQgfHwgIW1fdGFyZ2V0KQpA
QCAtNzkyLDYgKzgwNiw3IEBAIGJvb2wgS2V5ZnJhbWVFZmZlY3Q6OmZvcmNlTGF5b3V0SWZOZWVk
ZWQoKQogdm9pZCBLZXlmcmFtZUVmZmVjdDo6Y2xlYXJCbGVuZGluZ0tleWZyYW1lcygpCiB7CiAg
ICAgbV9ibGVuZGluZ0tleWZyYW1lc1NvdXJjZSA9IEJsZW5kaW5nS2V5ZnJhbWVzU291cmNlOjpX
ZWJBbmltYXRpb247CisgICAgbV91bmFuaW1hdGVkU3R5bGUgPSBudWxscHRyOwogICAgIG1fYmxl
bmRpbmdLZXlmcmFtZXMuY2xlYXIoKTsKIH0KIApAQCAtOTEwLDEyICs5MjUsMTIgQEAgdm9pZCBL
ZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZURlY2xhcmF0aXZlQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFt
ZXMoY29uc3QgUmVuZGVyU3QKIHsKICAgICBBU1NFUlQoaXM8RGVjbGFyYXRpdmVBbmltYXRpb24+
KGFuaW1hdGlvbigpKSk7CiAgICAgaWYgKGlzPENTU0FuaW1hdGlvbj4oYW5pbWF0aW9uKCkpKQot
ICAgICAgICBjb21wdXRlQ1NTQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMoKTsKKyAgICAgICAg
Y29tcHV0ZUNTU0FuaW1hdGlvbkJsZW5kaW5nS2V5ZnJhbWVzKG5ld1N0eWxlKTsKICAgICBlbHNl
IGlmIChpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkpCiAgICAgICAgIGNvbXB1dGVDU1NU
cmFuc2l0aW9uQmxlbmRpbmdLZXlmcmFtZXMob2xkU3R5bGUsIG5ld1N0eWxlKTsKIH0KIAotdm9p
ZCBLZXlmcmFtZUVmZmVjdDo6Y29tcHV0ZUNTU0FuaW1hdGlvbkJsZW5kaW5nS2V5ZnJhbWVzKCkK
K3ZvaWQgS2V5ZnJhbWVFZmZlY3Q6OmNvbXB1dGVDU1NBbmltYXRpb25CbGVuZGluZ0tleWZyYW1l
cyhjb25zdCBSZW5kZXJTdHlsZSYgdW5hbmltYXRlZFN0eWxlKQogewogICAgIEFTU0VSVChpczxD
U1NBbmltYXRpb24+KGFuaW1hdGlvbigpKSk7CiAKQEAgLTkyNCw3ICs5MzksNyBAQCB2b2lkIEtl
eWZyYW1lRWZmZWN0Ojpjb21wdXRlQ1NTQW5pbWF0aW9uQmxlbmRpbmdLZXlmcmFtZXMoKQogCiAg
ICAgS2V5ZnJhbWVMaXN0IGtleWZyYW1lTGlzdChiYWNraW5nQW5pbWF0aW9uLm5hbWUoKSk7CiAg
ICAgaWYgKGF1dG8qIHN0eWxlU2NvcGUgPSBTdHlsZTo6U2NvcGU6OmZvck9yZGluYWwoKm1fdGFy
Z2V0LCBiYWNraW5nQW5pbWF0aW9uLm5hbWVTdHlsZVNjb3BlT3JkaW5hbCgpKSkKLSAgICAgICAg
c3R5bGVTY29wZS0+cmVzb2x2ZXIoKS5rZXlmcmFtZVN0eWxlc0ZvckFuaW1hdGlvbigqbV90YXJn
ZXQsICZjc3NBbmltYXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpLCBrZXlmcmFtZUxpc3QpOworICAg
ICAgICBzdHlsZVNjb3BlLT5yZXNvbHZlcigpLmtleWZyYW1lU3R5bGVzRm9yQW5pbWF0aW9uKCpt
X3RhcmdldCwgJnVuYW5pbWF0ZWRTdHlsZSwga2V5ZnJhbWVMaXN0KTsKIAogICAgIC8vIEVuc3Vy
ZSByZXNvdXJjZSBsb2FkcyBmb3IgYWxsIHRoZSBmcmFtZXMuCiAgICAgZm9yIChhdXRvJiBrZXlm
cmFtZSA6IGtleWZyYW1lTGlzdC5rZXlmcmFtZXMoKSkgewpAQCAtMTA5MSw2ICsxMTA2LDkgQEAg
dm9pZCBLZXlmcmFtZUVmZmVjdDo6YXBwbHkoUmVuZGVyU3R5bGUmIHRhcmdldFN0eWxlKQogICAg
IGlmICghY29tcHV0ZWRUaW1pbmcucHJvZ3Jlc3MpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlm
ICghbV91bmFuaW1hdGVkU3R5bGUpCisgICAgICAgIG1fdW5hbmltYXRlZFN0eWxlID0gUmVuZGVy
U3R5bGU6OmNsb25lUHRyKHRhcmdldFN0eWxlKTsKKwogICAgIHNldEFuaW1hdGVkUHJvcGVydGll
c0luU3R5bGUodGFyZ2V0U3R5bGUsIGNvbXB1dGVkVGltaW5nLnByb2dyZXNzLnZhbHVlKCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5oCmluZGV4IGU4OGQy
MjU1NmQyLi5iMjg1NThhYzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmgKQEAgLTE0NCw2ICsxNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjb21wdXRlRGVj
bGFyYXRpdmVBbmltYXRpb25CbGVuZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXdTdHlsZSk7CiAgICAgY29uc3QgS2V5ZnJhbWVM
aXN0JiBibGVuZGluZ0tleWZyYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fYmxlbmRpbmdLZXlmcmFt
ZXM7IH0KICAgICBjb25zdCBIYXNoU2V0PENTU1Byb3BlcnR5SUQ+JiBhbmltYXRlZFByb3BlcnRp
ZXMoKSBjb25zdCB7IHJldHVybiBtX2JsZW5kaW5nS2V5ZnJhbWVzLnByb3BlcnRpZXMoKTsgfQor
ICAgIGJvb2wgYW5pbWF0ZXNQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIAogICAgIGJv
b2wgY29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3QmKSBjb25zdDsK
ICAgICBib29sIGNvbXB1dGVUcmFuc2Zvcm1lZEV4dGVudFZpYVRyYW5zZm9ybUxpc3QoY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBMYXlvdXRSZWN0JikgY29uc3Q7CkBAIC0x
NTQsNiArMTU1LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNDdXJyZW50bHlBZmZlY3RpbmdQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlELCBBY2NlbGVyYXRlZCA9IEFjY2VsZXJhdGVkOjpObykgY29uc3Q7
CiAgICAgYm9vbCBpc1J1bm5pbmdBY2NlbGVyYXRlZEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1By
b3BlcnR5SUQpIGNvbnN0OwogCisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHVuYW5pbWF0ZWRTdHls
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdW5hbmltYXRlZFN0eWxlLmdldCgpOyB9CisKIHByaXZhdGU6
CiAgICAgS2V5ZnJhbWVFZmZlY3QoRWxlbWVudCopOwogCkBAIC0xNzMsNyArMTc2LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNvbXB1dGVTdGFja2luZ0NvbnRleHRJbXBhY3QoKTsKICAgICB2b2lk
IGNsZWFyQmxlbmRpbmdLZXlmcmFtZXMoKTsKICAgICB2b2lkIHVwZGF0ZUJsZW5kaW5nS2V5ZnJh
bWVzKFJlbmRlclN0eWxlJik7Ci0gICAgdm9pZCBjb21wdXRlQ1NTQW5pbWF0aW9uQmxlbmRpbmdL
ZXlmcmFtZXMoKTsKKyAgICB2b2lkIGNvbXB1dGVDU1NBbmltYXRpb25CbGVuZGluZ0tleWZyYW1l
cyhjb25zdCBSZW5kZXJTdHlsZSYpOwogICAgIHZvaWQgY29tcHV0ZUNTU1RyYW5zaXRpb25CbGVu
ZGluZ0tleWZyYW1lcyhjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUsIGNvbnN0IFJlbmRlclN0
eWxlJiBuZXdTdHlsZSk7CiAgICAgdm9pZCBjb21wdXRlQWNjZWxlcmF0ZWRQcm9wZXJ0aWVzU3Rh
dGUoKTsKICAgICB2b2lkIHNldEJsZW5kaW5nS2V5ZnJhbWVzKEtleWZyYW1lTGlzdCYpOwpAQCAt
MTkwLDYgKzE5Myw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPEFjY2VsZXJhdGVkQWN0aW9uPiBt
X3BlbmRpbmdBY2NlbGVyYXRlZEFjdGlvbnM7CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fdGFyZ2V0
OwogCisgICAgc3RkOjp1bmlxdWVfcHRyPGNvbnN0IFJlbmRlclN0eWxlPiBtX3VuYW5pbWF0ZWRT
dHlsZTsKKwogICAgIEFjY2VsZXJhdGVkQWN0aW9uIG1fbGFzdFJlY29yZGVkQWNjZWxlcmF0ZWRB
Y3Rpb24geyBBY2NlbGVyYXRlZEFjdGlvbjo6U3RvcCB9OwogICAgIEJsZW5kaW5nS2V5ZnJhbWVz
U291cmNlIG1fYmxlbmRpbmdLZXlmcmFtZXNTb3VyY2UgeyBCbGVuZGluZ0tleWZyYW1lc1NvdXJj
ZTo6V2ViQW5pbWF0aW9uIH07CiAgICAgSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uIG1faXRl
cmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uIHsgSXRlcmF0aW9uQ29tcG9zaXRlT3BlcmF0aW9uOjpS
ZXBsYWNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNv
bHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5k
ZXggN2EzMGM2Y2I5ZGMuLjlmMGMzMmEwZmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCkBAIC0zMDYsNyArMzA2LDcgQEAgY29uc3QgUmVuZGVyU3R5bGUq
IFRyZWVSZXNvbHZlcjo6cGFyZW50Qm94U3R5bGVGb3JQc2V1ZG8oY29uc3QgRWxlbWVudFVwZGF0
ZSYgZWwKIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpjcmVhdGVBbmltYXRlZEVsZW1lbnRV
cGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBuZXdTdHlsZSwgRWxlbWVudCYgZWxl
bWVudCwgQ2hhbmdlIHBhcmVudENoYW5nZSkKIHsKICAgICBhdXRvKiBvbGRTdHlsZSA9IGVsZW1l
bnQucmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZSgpOwotICAgIAorCiAgICAgT3B0aW9uU2V0
PEFuaW1hdGlvbkltcGFjdD4gYW5pbWF0aW9uSW1wYWN0OwogCiAgICAgLy8gTmV3IGNvZGUgcGF0
aCBmb3IgQ1NTIEFuaW1hdGlvbnMgYW5kIENTUyBUcmFuc2l0aW9ucy4K
</data>
<flag name="review"
          id="406372"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>