<?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>198788</bug_id>
          
          <creation_ts>2019-06-12 07:21:05 -0700</creation_ts>
          <short_desc>(Async scrolling) Handle &apos;position:fixed&apos; inside &apos;position:sticky&apos; correctly.</short_desc>
          <delta_ts>2019-06-12 11:27:43 -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>Scrolling</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1544067</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-12 07:21:05 -0700</bug_when>
    <thetext>https://www.fandom.com/explore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544069</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-12 07:21:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/51589759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544082</commentid>
    <comment_count>2</comment_count>
      <attachid>371955</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-12 07:34:22 -0700</bug_when>
    <thetext>Created attachment 371955
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544095</commentid>
    <comment_count>3</comment_count>
      <attachid>371955</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-12 08:23:29 -0700</bug_when>
    <thetext>Comment on attachment 371955
patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        REGRESSION(r245818): Async scrolling: Fixed position banner jumps around page

Change the title to make it clear this is about fixed inside sticky.

&gt; Source/WebCore/page/scrolling/cocoa/ScrollingTreeFixedNode.mm:106
&gt; +            if (is&lt;ScrollingTreePositionedNode&gt;(*ancestor)) {
&gt; +                auto&amp; positioningAncestor = downcast&lt;ScrollingTreePositionedNode&gt;(*ancestor);
&gt; +                // See if sticky node already handled this positioning node.
&gt; +                // FIXME: Include positioning node information to sticky/fixed node to avoid these tests.
&gt; +                if (lastStickyNode &amp;&amp; lastStickyNode-&gt;layer() == positioningAncestor.layer())
&gt; +                    continue;
&gt; +                if (positioningAncestor.layer() != m_layer)
&gt; +                    overflowScrollDelta -= positioningAncestor.scrollDeltaSinceLastCommit();
&gt; +                continue;
&gt; +            }
&gt; +
&gt; +            if (is&lt;ScrollingTreeStickyNode&gt;(*ancestor)) {
&gt; +                auto&amp; stickyNode = downcast&lt;ScrollingTreeStickyNode&gt;(*ancestor);
&gt; +                overflowScrollDelta += stickyNode.scrollDeltaSinceLastCommit();
&gt; +                lastStickyNode = &amp;stickyNode;
&gt; +                continue;
&gt; +            }

It seems weird for ScrollingTreeFixedNode to have to test all its ancestor node types. This was the problem that the old delta was trying to solve, I think; these ancestors should pass state down the tree for the applyLayerPositions() tree walk.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3057
&gt; +        if (ancestor-&gt;hasCompositedScrollableOverflow())
&gt; +            return true;

But this might not be in the ancestor paint order chain. A simple fixed -&gt; non-stacking overflow -&gt; fixed should not need to composite the inner fixed. I think we only need to composite the inner fixed if some paint-order ancestor has a scrolling tree node (but we can&apos;t do that check at this stage).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544107</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-12 08:42:05 -0700</bug_when>
    <thetext>&gt; It seems weird for ScrollingTreeFixedNode to have to test all its ancestor
&gt; node types. This was the problem that the old delta was trying to solve, I
&gt; think; these ancestors should pass state down the tree for the
&gt; applyLayerPositions() tree walk.

The old approach had multiple problems. It didn&apos;t work unless update started from the root (which it doesn&apos;t in most cases). It couldn&apos;t handle sticky without additional parameters. 

This is much easier to reason about and when we have decent test coverage we can factor this differently.


&gt; &gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:3057
&gt; &gt; +        if (ancestor-&gt;hasCompositedScrollableOverflow())
&gt; &gt; +            return true;
&gt; 
&gt; But this might not be in the ancestor paint order chain. A simple fixed -&gt;
&gt; non-stacking overflow -&gt; fixed should not need to composite the inner fixed.
&gt; I think we only need to composite the inner fixed if some paint-order
&gt; ancestor has a scrolling tree node (but we can&apos;t do that check at this
&gt; stage).

Unnecessary nodes should be harmless. You&apos;ll probably need to write the optimal version of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544132</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-06-12 09:19:11 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #4)

&gt; Unnecessary nodes should be harmless. You&apos;ll probably need to write the
&gt; optimal version of this.

They have memory cost, potentially significant (triggering jetsams).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544157</commentid>
    <comment_count>6</comment_count>
      <attachid>371973</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-12 10:44:31 -0700</bug_when>
    <thetext>Created attachment 371973
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544172</commentid>
    <comment_count>7</comment_count>
      <attachid>371973</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-12 11:27:42 -0700</bug_when>
    <thetext>Comment on attachment 371973
patch

Clearing flags on attachment: 371973

Committed r246367: &lt;https://trac.webkit.org/changeset/246367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1544173</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-12 11:27:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371955</attachid>
            <date>2019-06-12 07:34:22 -0700</date>
            <delta_ts>2019-06-12 10:44:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fixed-inside-sticky-3.patch</filename>
            <type>text/plain</type>
            <size>36058</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NjM1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTA2LTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OKHIyNDU4MTgp
OiBBc3luYyBzY3JvbGxpbmc6IEZpeGVkIHBvc2l0aW9uIGJhbm5lciBqdW1wcyBhcm91bmQgcGFn
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4Nzg4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTU4OTc1OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIYW5kbGUgJ3Bvc2l0aW9uOmZpeGVkJyBpbnNp
ZGUgJ3Bvc2l0aW9uOnN0aWNreScgY29ycmVjdGx5LgorCisgICAgICAgIEFsc28gZml4IG5lc3Rl
ZCAncG9zaXRpb246Zml4ZWQnIGluIGNhc2Ugd2hlcmUgdGhlcmUgaXMgYW4gb3ZlcmZsb3cgc2Ny
b2xsZXIgYmV0d2VlbiB0aGVtLgorCisgICAgICAgIFRlc3RzOiBzY3JvbGxpbmdjb29yZGluYXRv
ci9pb3MvZml4ZWQtaW5zaWRlLW92ZXJmbG93LWluc2lkZS1maXhlZC5odG1sCisgICAgICAgICAg
ICAgICBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFtZS5o
dG1sCisgICAgICAgICAgICAgICBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRl
LXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0LTIuaHRtbAorICAgICAgICAgICAgICAgc2Nyb2xs
aW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktbm8tc3RhY2tpbmctY29udGV4
dC5odG1sCisgICAgICAgICAgICAgICBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5z
aWRlLXN0aWNreS1zdGFja2luZy1jb250ZXh0Lmh0bWwKKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL2NvY29hL1Njcm9sbGluZ1RyZWVGaXhlZE5vZGUubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlRml4ZWROb2RlOjphcHBseUxheWVyUG9zaXRpb25zKToKKworICAgICAgICBU
YWtlIG9mZnNldHMgZnJvbSBzdGlja3kgbm9kZXMgaW50byBhY2NvdW50LgorCisgICAgICAgICog
cGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpsYXllcik6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW06CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y29tcHV0ZUxheWVyUG9zaXRpb24gY29u
c3QpOgorCisgICAgICAgIEZhY3RvciBpbnRvIGEgZnVuY3Rpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjphcHBseUxheWVyUG9zaXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpzY3JvbGxEZWx0YVNpbmNlTGFz
dENvbW1pdCBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmlzVmlld3Bv
cnRDb25zdHJhaW5lZEZpeGVkT3JTdGlja3lMYXllciBjb25zdCk6CisKKyAgICAgICAgV2UgbmVl
ZCB0byBnZW5lcmF0ZSBhIHNjcm9sbGluZyB0cmVlIG5vZGUgZm9yIHBvc2l0aW9uOmZpeGVkIGlu
IG5lc3RlZCBjYXNlIGlmIHRoZXJlIGlzIGFuIG92ZXJmbG93IHNjcm9sbGVyCisgICAgICAgIGJl
dHdlZW4gdGhlIGxheWVycy4KKwogMjAxOS0wNi0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2NhaXJvXVtTVkddIFB1dHRpbmcgbXVsdGlw
bGUgcGF0aCBlbGVtZW50cyBpbiBjbGlwcGF0aCBjYXVzZXMgcmVuZGVyaW5nIGFydGlmYWN0cwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZUZp
eGVkTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9j
b2NvYS9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLm1tCShyZXZpc2lvbiAyNDYzNDgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJTY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlLmgiCiAjaW1wb3J0ICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlLmgiCiAjaW1wb3J0ICJTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUuaCIKKyNp
bXBvcnQgIlNjcm9sbGluZ1RyZWVTdGlja3lOb2RlLmgiCiAjaW1wb3J0ICJXZWJDb3JlQ0FMYXll
ckV4dHJhcy5oIgogI2ltcG9ydCA8d3RmL3RleHQvVGV4dFN0cmVhbS5oPgogCkBAIC03MCwxMyAr
NzEsOCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmFwcGx5TGF5ZXJQCiB7CiAgICAg
YXV0byBjb21wdXRlTGF5ZXJQb3NpdGlvbiA9IFsmXSB7CiAgICAgICAgIEZsb2F0U2l6ZSBvdmVy
Zmxvd1Njcm9sbERlbHRhOworICAgICAgICBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZSogbGFzdFN0
aWNreU5vZGUgPSBudWxscHRyOwogICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gcGFyZW50
KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgewotICAgICAgICAg
ICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKmFuY2VzdG9yKSkgewotICAg
ICAgICAgICAgICAgIGF1dG8mIHBvc2l0aW9uaW5nQW5jZXN0b3IgPSBkb3duY2FzdDxTY3JvbGxp
bmdUcmVlUG9zaXRpb25lZE5vZGU+KCphbmNlc3Rvcik7Ci0gICAgICAgICAgICAgICAgaWYgKHBv
c2l0aW9uaW5nQW5jZXN0b3IubGF5ZXIoKSAhPSBtX2xheWVyKQotICAgICAgICAgICAgICAgICAg
ICBvdmVyZmxvd1Njcm9sbERlbHRhIC09IHBvc2l0aW9uaW5nQW5jZXN0b3Iuc2Nyb2xsRGVsdGFT
aW5jZUxhc3RDb21taXQoKTsKLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgaWYgKGlzPFNj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGU+KCphbmNlc3RvcikpIHsKICAgICAgICAgICAg
ICAgICAvLyBGaXhlZCBub2RlcyBhcmUgcG9zaXRpb25lZCByZWxhdGl2ZSB0byB0aGUgY29udGFp
bmluZyBmcmFtZSBzY3JvbGxpbmcgbm9kZS4KICAgICAgICAgICAgICAgICAvLyBXZSBiYWlsIG91
dCBhZnRlciBmaW5kaW5nIG9uZS4KQEAgLTg4LDYgKzg0LDMwIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZTo6YXBwbHlMYXllclAKICAgICAgICAgICAgICAgICAvLyBUbyBrZWVwIHRoZSBs
YXllciBzdGlsbCBkdXJpbmcgYXN5bmMgc2Nyb2xsaW5nIHdlIGFkanVzdCBieSBob3cgbXVjaCB0
aGUgcG9zaXRpb24gaGFzIGNoYW5nZWQgc2luY2UgbGF5b3V0LgogICAgICAgICAgICAgICAgIGF1
dG8mIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGU+KCphbmNlc3Rvcik7CiAgICAgICAgICAgICAgICAgb3ZlcmZsb3dTY3JvbGxEZWx0YSAt
PSBvdmVyZmxvd05vZGUuc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKTsKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzPFNjcm9s
bGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKmFuY2VzdG9yKSkgeworICAgICAgICAgICAgICAgIGF1
dG8mIHBvc2l0aW9uaW5nQW5jZXN0b3IgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlUG9zaXRpb25l
ZE5vZGU+KCphbmNlc3Rvcik7CisgICAgICAgICAgICAgICAgLy8gU2VlIGlmIHN0aWNreSBub2Rl
IGFscmVhZHkgaGFuZGxlZCB0aGlzIHBvc2l0aW9uaW5nIG5vZGUuCisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IEluY2x1ZGUgcG9zaXRpb25pbmcgbm9kZSBpbmZvcm1hdGlvbiB0byBzdGlja3kv
Zml4ZWQgbm9kZSB0byBhdm9pZCB0aGVzZSB0ZXN0cy4KKyAgICAgICAgICAgICAgICBpZiAobGFz
dFN0aWNreU5vZGUgJiYgbGFzdFN0aWNreU5vZGUtPmxheWVyKCkgPT0gcG9zaXRpb25pbmdBbmNl
c3Rvci5sYXllcigpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAg
ICAgICBpZiAocG9zaXRpb25pbmdBbmNlc3Rvci5sYXllcigpICE9IG1fbGF5ZXIpCisgICAgICAg
ICAgICAgICAgICAgIG92ZXJmbG93U2Nyb2xsRGVsdGEgLT0gcG9zaXRpb25pbmdBbmNlc3Rvci5z
Y3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpOworICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGU+KCphbmNlc3RvcikpIHsKKyAgICAgICAgICAgICAgICBhdXRvJiBzdGlja3lOb2RlID0gZG93
bmNhc3Q8U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU+KCphbmNlc3Rvcik7CisgICAgICAgICAgICAg
ICAgb3ZlcmZsb3dTY3JvbGxEZWx0YSArPSBzdGlja3lOb2RlLnNjcm9sbERlbHRhU2luY2VMYXN0
Q29tbWl0KCk7CisgICAgICAgICAgICAgICAgbGFzdFN0aWNreU5vZGUgPSAmc3RpY2t5Tm9kZTsK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKGlzPFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU+KCphbmNlc3RvcikpIHsKKyAgICAgICAgICAg
ICAgICAvLyBUaGUgYW5jZXN0b3IgZml4ZWQgbm9kZSBoYXMgYWxyZWFkeSBhcHBsaWVkIHRoZSBu
ZWVkZWQgY29ycmVjdGlvbnMgdG8gc2F5IHB1dC4KKyAgICAgICAgICAgICAgICByZXR1cm4gbV9j
b25zdHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCkgLSBvdmVyZmxvd1Njcm9sbERl
bHRhOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5n
VHJlZVN0aWNreU5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oCShyZXZpc2lvbiAyNDYzNDgpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlU3RpY2t5
Tm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxMiArNDEsMTggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB+U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUoKTsKIAorICAgIEZsb2F0U2l6ZSBzY3Jv
bGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0OworCisgICAgQ0FMYXllciAqbGF5ZXIoKSB7
IHJldHVybiBtX2xheWVyLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZVN0
aWNreU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICB2b2lkIGNv
bW1pdFN0YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRpb25zKCkgb3ZlcnJpZGU7CiAKKyAgICBGbG9h
dFBvaW50IGNvbXB1dGVMYXllclBvc2l0aW9uKCkgY29uc3Q7CisKICAgICB2b2lkIGR1bXBQcm9w
ZXJ0aWVzKFdURjo6VGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9y
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIFN0aWNreVBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50
cyBtX2NvbnN0cmFpbnRzOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29j
b2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW0JKHJldmlz
aW9uIDI0NjM0OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9s
bGluZ1RyZWVTdGlja3lOb2RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNvbW1pdFN0YXQKICAgICAgICAgbV9jb25zdHJh
aW50cyA9IHN0aWNreVN0YXRlTm9kZS52aWV3cG9ydENvbnN0cmFpbnRzKCk7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmFwcGx5TGF5ZXJQb3NpdGlvbnMoKQorRmxvYXRQb2lu
dCBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y29tcHV0ZUxheWVyUG9zaXRpb24oKSBjb25zdAog
ewogICAgIGF1dG8gY29tcHV0ZUxheWVyUG9zaXRpb25Gb3JTY3JvbGxpbmdOb2RlID0gWyZdKFNj
cm9sbGluZ1RyZWVOb2RlJiBzY3JvbGxpbmdOb2RlKSB7CiAgICAgICAgIEZsb2F0UmVjdCBjb25z
dHJhaW5pbmdSZWN0OwpAQCAtODAsNDEgKzgwLDQyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVN0aWNr
eU5vZGU6OmFwcGx5TGF5ZXIKICAgICAgICAgcmV0dXJuIG1fY29uc3RyYWludHMubGF5ZXJQb3Np
dGlvbkZvckNvbnN0cmFpbmluZ1JlY3QoY29uc3RyYWluaW5nUmVjdCk7CiAgICAgfTsKIAotICAg
IGF1dG8gY29tcHV0ZUxheWVyUG9zaXRpb24gPSBbJl0gewotICAgICAgICBmb3IgKGF1dG8qIGFu
Y2VzdG9yID0gcGFyZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQo
KSkgewotICAgICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKmFu
Y2VzdG9yKSkgewotICAgICAgICAgICAgICAgIGF1dG8mIHBvc2l0aW9uaW5nQW5jZXN0b3IgPSBk
b3duY2FzdDxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+KCphbmNlc3Rvcik7Ci0KLSAgICAg
ICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0byBkbyBhbnl0aGluZyBmb3IgU2Nyb2xs
UG9zaXRpb25pbmdCZWhhdmlvcjo6U3RhdGlvbmFyeT8KLSAgICAgICAgICAgICAgICBpZiAocG9z
aXRpb25pbmdBbmNlc3Rvci5zY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yKCkgPT0gU2Nyb2xsUG9z
aXRpb25pbmdCZWhhdmlvcjo6TW92ZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBvc2l0
aW9uaW5nQW5jZXN0b3IucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKS5pc0VtcHR5KCkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgYXV0
byBvdmVyZmxvd05vZGUgPSBzY3JvbGxpbmdUcmVlKCkubm9kZUZvcklEKHBvc2l0aW9uaW5nQW5j
ZXN0b3IucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKVswXSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmICghb3ZlcmZsb3dOb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0KLSAgICAgICAgICAgICAgICAgICAgYXV0byBwb3NpdGlvbiA9IGNvbXB1dGVMYXllclBvc2l0
aW9uRm9yU2Nyb2xsaW5nTm9kZSgqb3ZlcmZsb3dOb2RlKTsKLQotICAgICAgICAgICAgICAgICAg
ICBpZiAocG9zaXRpb25pbmdBbmNlc3Rvci5sYXllcigpID09IG1fbGF5ZXIpIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIFdlJ2xsIGFsc28gZG8gdGhlIGFkanVzdG1lbnQgdGhlIHBvc2l0
aW9uaW5nIG5vZGUgd291bGQgZG8uCi0gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiAt
PSBwb3NpdGlvbmluZ0FuY2VzdG9yLnNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCk7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiBwb3NpdGlvbjsKKyAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gcGFyZW50KCk7
IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgeworICAgICAgICBpZiAo
aXM8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlPigqYW5jZXN0b3IpKSB7CisgICAgICAgICAg
ICBhdXRvJiBwb3NpdGlvbmluZ0FuY2VzdG9yID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVBvc2l0
aW9uZWROb2RlPigqYW5jZXN0b3IpOworCisgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCB0byBkbyBhbnl0aGluZyBmb3IgU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6U3RhdGlvbmFy
eT8KKyAgICAgICAgICAgIGlmIChwb3NpdGlvbmluZ0FuY2VzdG9yLnNjcm9sbFBvc2l0aW9uaW5n
QmVoYXZpb3IoKSA9PSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpNb3ZlcykgeworICAgICAg
ICAgICAgICAgIGlmIChwb3NpdGlvbmluZ0FuY2VzdG9yLnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGlu
Z05vZGVzKCkuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgICAgICBhdXRvIG92ZXJmbG93Tm9kZSA9IHNjcm9sbGluZ1RyZWUoKS5ub2RlRm9ySUQocG9z
aXRpb25pbmdBbmNlc3Rvci5yZWxhdGVkT3ZlcmZsb3dTY3JvbGxpbmdOb2RlcygpWzBdKTsKKyAg
ICAgICAgICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkKKyAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisKKyAgICAgICAgICAgICAgICBhdXRvIHBvc2l0aW9uID0gY29tcHV0ZUxheWVyUG9zaXRp
b25Gb3JTY3JvbGxpbmdOb2RlKCpvdmVyZmxvd05vZGUpOworCisgICAgICAgICAgICAgICAgaWYg
KHBvc2l0aW9uaW5nQW5jZXN0b3IubGF5ZXIoKSA9PSBtX2xheWVyKSB7CisgICAgICAgICAgICAg
ICAgICAgIC8vIFdlJ2xsIGFsc28gZG8gdGhlIGFkanVzdG1lbnQgdGhlIHBvc2l0aW9uaW5nIG5v
ZGUgd291bGQgZG8uCisgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uIC09IHBvc2l0aW9uaW5n
QW5jZXN0b3Iuc2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKTsKICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU+KCphbmNlc3RvcikpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNvbXB1dGVMYXllclBv
c2l0aW9uRm9yU2Nyb2xsaW5nTm9kZSgqYW5jZXN0b3IpOwogCi0gICAgICAgICAgICBpZiAoaXM8
U2Nyb2xsaW5nVHJlZUZpeGVkTm9kZT4oKmFuY2VzdG9yKSB8fCBpczxTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZT4oKmFuY2VzdG9yKSkgewotICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB3ZSBu
ZWVkIHNjcm9sbGluZyB0cmVlIG5vZGVzIGF0IGFsbCBmb3IgbmVzdGVkIGNhc2VzPwotICAgICAg
ICAgICAgICAgIHJldHVybiBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gcG9zaXRpb247CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBtX2Nv
bnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQoKTsKLSAgICB9OworICAgICAgICBp
ZiAoaXM8U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGU+KCphbmNlc3RvcikpCisgICAgICAgICAg
ICByZXR1cm4gY29tcHV0ZUxheWVyUG9zaXRpb25Gb3JTY3JvbGxpbmdOb2RlKCphbmNlc3Rvcik7
CisKKyAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU+KCphbmNlc3RvcikgfHwg
aXM8U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU+KCphbmNlc3RvcikpIHsKKyAgICAgICAgICAgIC8v
IEZJWE1FOiBEbyB3ZSBuZWVkIHNjcm9sbGluZyB0cmVlIG5vZGVzIGF0IGFsbCBmb3IgbmVzdGVk
IGNhc2VzPworICAgICAgICAgICAgcmV0dXJuIG1fY29uc3RyYWludHMubGF5ZXJQb3NpdGlvbkF0
TGFzdExheW91dCgpOworICAgICAgICB9CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlvdXQoKTsK
K30KIAordm9pZCBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6YXBwbHlMYXllclBvc2l0aW9ucygp
Cit7CiAgICAgYXV0byBsYXllclBvc2l0aW9uID0gY29tcHV0ZUxheWVyUG9zaXRpb24oKTsKIAog
ICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZVN0
aWNreU5vZGUgIiA8PCBzY3JvbGxpbmdOb2RlSUQoKSA8PCAiIGNvbnN0cmFpbmluZ1JlY3RBdExh
c3RMYXlvdXQgIiA8PCBtX2NvbnN0cmFpbnRzLmNvbnN0cmFpbmluZ1JlY3RBdExhc3RMYXlvdXQo
KSA8PCAiIGxhc3QgbGF5ZXIgcG9zICIgPDwgbV9jb25zdHJhaW50cy5sYXllclBvc2l0aW9uQXRM
YXN0TGF5b3V0KCkgPDwgIiBsYXllclBvc2l0aW9uICIgPDwgbGF5ZXJQb3NpdGlvbik7CkBAIC0x
MjIsNiArMTIzLDEyIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmFwcGx5TGF5ZXIK
ICAgICBbbV9sYXllciBfd2ViX3NldExheWVyVG9wTGVmdFBvc2l0aW9uOmxheWVyUG9zaXRpb24g
LSBtX2NvbnN0cmFpbnRzLmFsaWdubWVudE9mZnNldCgpXTsKIH0KIAorRmxvYXRTaXplIFNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlOjpzY3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0Cit7
CisgICAgYXV0byBsYXllclBvc2l0aW9uID0gY29tcHV0ZUxheWVyUG9zaXRpb24oKTsKKyAgICBy
ZXR1cm4gbGF5ZXJQb3NpdGlvbiAtIG1fY29uc3RyYWludHMubGF5ZXJQb3NpdGlvbkF0TGFzdExh
eW91dCgpOworfQorCiB2b2lkIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpkdW1wUHJvcGVydGll
cyhUZXh0U3RyZWFtJiB0cywgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IgYmVoYXZp
b3IpIGNvbnN0CiB7CiAgICAgdHMgPDwgInN0aWNreSBub2RlIjsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCShyZXZpc2lv
biAyNDYzNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzA1Miw4ICszMDUyLDEwIEBAIGJvb2wgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjppc1ZpZXdwb3J0Q28KICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gRklYTUU6IEhhbmRsZSBmaXhlZCBpbnNpZGUgb2YgYSB0cmFuc2Zvcm0sIHdoaWNoIHNo
b3VsZCBub3QgYmVoYXZlIGFzIGZpeGVkLgotICAgIGZvciAoYXV0byogc3RhY2tpbmdDb250ZXh0
ID0gbGF5ZXIuc3RhY2tpbmdDb250ZXh0KCk7IHN0YWNraW5nQ29udGV4dDsgc3RhY2tpbmdDb250
ZXh0ID0gc3RhY2tpbmdDb250ZXh0LT5zdGFja2luZ0NvbnRleHQoKSkgewotICAgICAgICBpZiAo
c3RhY2tpbmdDb250ZXh0LT5pc0NvbXBvc2l0ZWQoKSAmJiBzdGFja2luZ0NvbnRleHQtPnJlbmRl
cmVyKCkuaXNGaXhlZFBvc2l0aW9uZWQoKSkKKyAgICBmb3IgKGF1dG8qIGFuY2VzdG9yID0gbGF5
ZXIucGFyZW50KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnQoKSkgewor
ICAgICAgICBpZiAoYW5jZXN0b3ItPmhhc0NvbXBvc2l0ZWRTY3JvbGxhYmxlT3ZlcmZsb3coKSkK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoYW5jZXN0b3ItPmlzU3RhY2tp
bmdDb250ZXh0KCkgJiYgYW5jZXN0b3ItPmlzQ29tcG9zaXRlZCgpICYmIGFuY2VzdG9yLT5yZW5k
ZXJlcigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDYzNDgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMiBAQAorMjAxOS0wNi0xMiAgQW50dGkgS29p
dmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMjQ1ODE4KTog
QXN5bmMgc2Nyb2xsaW5nOiBGaXhlZCBwb3NpdGlvbiBiYW5uZXIganVtcHMgYXJvdW5kIHBhZ2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5ODc4OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTE1ODk3NTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4
ZWQtaW5zaWRlLW92ZXJmbG93LWluc2lkZS1maXhlZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLW92ZXJmbG93LWlu
c2lkZS1maXhlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9p
b3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFtZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFtZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5z
aWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0LTItZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktbm8t
c3RhY2tpbmctY29udGV4dC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3Jk
aW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVk
LWluc2lkZS1zdGlja3ktbm8tc3RhY2tpbmctY29udGV4dC5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1zdGFja2luZy1j
b250ZXh0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5h
dG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LXN0YWNraW5nLWNvbnRleHQuaHRtbDogQWRkZWQu
CisKIDIwMTktMDYtMTEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgW2lPU10gSWRlbXBvdGVudCB0ZXh0IGF1dG9zaXppbmcgbmVlZHMgdG8gcmVhY3Qg
cHJvcGVybHkgdG8gdmlld3BvcnQgY2hhbmdlcwpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsaW5n
Y29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1vdmVyZmxvdy1pbnNpZGUtZml4ZWQtZXhwZWN0
ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9p
b3MvZml4ZWQtaW5zaWRlLW92ZXJmbG93LWluc2lkZS1maXhlZC1leHBlY3RlZC5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1p
bnNpZGUtb3ZlcmZsb3ctaW5zaWRlLWZpeGVkLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw3MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxp
bmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
aW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAg
ICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAg
ICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICB6LWluZGV4OiAw
OworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICAuZml4ZWQtb3V0ZXIgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAg
ICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cisg
ICAgICAgIH0KKworICAgICAgICAuZml4ZWQgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVk
OworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAg
ICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisKKyAgICAgICAgLmNvbnRh
aW5lciB7CisgICAgICAgICAgICBtYXJnaW46IDQwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJw
eCBzb2xpZCByZWQ7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAg
IDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5j
IGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAgICAgICAg
ICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zY3JvbGxlcicpLnNjcm9sbFRvKDAsIDIwMCk7
CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2Up
OworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0iZml4ZWQt
b3V0ZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4K
KyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rp
dj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9s
bGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtb3ZlcmZsb3ctaW5zaWRlLWZpeGVkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2Zp
eGVkLWluc2lkZS1vdmVyZmxvdy1pbnNpZGUtZml4ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLW92ZXJmbG93
LWluc2lkZS1maXhlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFs
OkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cisg
ICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAg
ICA8c3R5bGU+CisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7
CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4Owor
ICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxv
dzogc2Nyb2xsOworICAgICAgICAgICAgei1pbmRleDogMDsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLmZpeGVkLW91dGVyIHsK
KyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisKKyAgICAgICAgLmZp
eGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIHRvcDogMTAw
cHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjog
Ymx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgbWFy
Z2luOiA0MHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmVkOworICAgICAgICAg
ICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0
PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQorICAg
ICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQor
ICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVXBkYXRl
c0Rpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmltbWVkaWF0ZVNj
cm9sbEVsZW1lbnRBdENvbnRlbnRQb2ludFRvT2Zmc2V0KDUwLCA1MCwgMCwgMjAwLCBzY3JvbGxV
cGRhdGVzRGlzYWJsZWQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2Fk
JywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGNsYXNzPSJmaXhlZC1vdXRlciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4K
KyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iZml4ZWQiPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3kt
ZnJhbWUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxpbmdj
b29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFtZS1leHBlY3RlZC5odG1sCShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhl
ZC1pbnNpZGUtc3RpY2t5LWZyYW1lLWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFi
bGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlh
bC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAg
ICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAg
ICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAg
ICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICB6LWluZGV4OiAwOworICAg
ICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAuc3RpY2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgICAg
ICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgICB9CisKKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsK
KyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAg
ICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5jb250YWlu
ZXIgeworICAgICAgICAgICAgbWFyZ2luOiA0MHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHgg
c29saWQgcmVkOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhc3luYyBm
dW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCF0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAg
ICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgICAgICAg
ICB3aW5kb3cuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVu
c3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN0
aWNreSI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaXhlZCI+CisgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1m
cmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9y
L2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LWZyYW1lLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktZnJh
bWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY4IEBACis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1l
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+CisgICAgPHN0eWxlPgor
ICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsK
KyAgICAgICAgICAgIHotaW5kZXg6IDA7CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5zdGlja3kgeworICAgICAgICAgICAgcG9z
aXRpb246IC13ZWJraXQtc3RpY2t5OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAg
ICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKworICAgICAgICAuZml4ZWQgewor
ICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAg
ICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAg
ICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOwor
ICAgICAgICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBtYXJnaW46IDQw
cHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgICAgICAgICBoZWln
aHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25zdCBzY3JvbGxVcGRhdGVzRGlzYWJs
ZWQgPSB0cnVlOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuaW1tZWRpYXRlU2Nyb2xsRWxl
bWVudEF0Q29udGVudFBvaW50VG9PZmZzZXQoNTAsIDUwLCAwLCAyMDAsIHNjcm9sbFVwZGF0ZXNE
aXNhYmxlZCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rl
c3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgIDxkaXYgY2xhc3M9InN0aWNreSI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJmaXhlZCI+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+
CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxp
bmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0
LTItZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0LTItZXhw
ZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGlu
YXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0LTItZXhwZWN0
ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4g
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJu
YWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1l
U2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5h
bWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+CisgICAgPHN0eWxlPgor
ICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICAg
ICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAg
IGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsK
KyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgLnN0aWNreSB7CisgICAgICAgICAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7Cisg
ICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAg
ICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsK
KyAgICAgICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4
ZWQ7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogMTAwcHg7Cisg
ICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKworICAgICAgICAuY29u
dGFpbmVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsKKyAgICAgICAgICAgIGJvcmRlcjog
MnB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICAgICAg
d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxz
Y3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3Jp
cHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBl
ci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoJy5zY3JvbGxlcicpLnNjcm9sbFRvKDAsIDIwMCk7CisgICAgICAgICAgICBhd2Fp
dCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RpY2t5Ij4KKyAg
ICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaXhlZCI+CisgICAgICAgICAgICAgICAgPC9kaXY+
CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4
ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0LTIuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNr
eS1uby1zdGFja2luZy1jb250ZXh0LTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2lu
Zy1jb250ZXh0LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRy
dWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpB
c3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+CisgICAg
PHN0eWxlPgorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgbWFyZ2luOiAxMHB4Owor
ICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAzMDBweDsKKyAg
ICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAgb3ZlcmZsb3c6
IHNjcm9sbDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgLnN0aWNreSB7CisgICAgICAgICAgICBwb3NpdGlvbjogLXdlYmtpdC1z
dGlja3k7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsKKyAgICAgICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAgICAgICAgICBwb3Np
dGlvbjogZml4ZWQ7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDog
MTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAgIGhlaWdodDogNTBw
eDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKworICAg
ICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsKKyAgICAgICAgICAg
IGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAg
ICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9u
IGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25z
dCBzY3JvbGxVcGRhdGVzRGlzYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIuaW1tZWRpYXRlU2Nyb2xsRWxlbWVudEF0Q29udGVudFBvaW50VG9PZmZzZXQoNTAsIDUwLCAw
LCAyMDAsIHNjcm9sbFVwZGF0ZXNEaXNhYmxlZCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0aWNreSI+CisgICAgICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iZml4ZWQiPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAg
ICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lk
ZS1zdGlja3ktbm8tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5
LW5vLXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1z
dGFja2luZy1jb250ZXh0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3
MSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRy
dWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2Fs
ZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1h
cmdpbjogMTBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB3aWR0
aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAg
ICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cisg
ICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5zdGlja3kgeworICAgICAgICAgICAgcG9zaXRp
b246IC13ZWJraXQtc3RpY2t5OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICB3
aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKworICAgICAgICAuZml4ZWQgeworICAg
ICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAg
ICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAg
ICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAg
ICAgICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBtYXJnaW46IDQwcHg7
CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgICAgICAgICBoZWlnaHQ6
IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50
YXRpb25VcGRhdGUoKTsKKyAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zY3Jv
bGxlcicpLnNjcm9sbFRvKDAsIDIwMCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5lbnN1
cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3Rl
bmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRh
aW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGlja3kiPgorICAgICAgICAgICAgICAg
IDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAg
IDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3Rp
Y2t5LW5vLXN0YWNraW5nLWNvbnRleHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9z
Y3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1j
b250ZXh0Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRp
bmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktbm8tc3RhY2tpbmctY29udGV4dC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpBc3luY092
ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdF
bmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+CisgICAgICAgIC5z
Y3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBoZWlnaHQ6
IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgYm9yZGVyOiAx
cHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuc3Rp
Y2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgICAgICAgICAg
IHRvcDogMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9
CisKKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAg
ICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAg
IHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5jb250YWluZXIgewor
ICAgICAgICAgICAgbWFyZ2luOiA0MHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQg
cmVkOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxl
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhc3luYyBmdW5jdGlv
biBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgY29u
c3Qgc2Nyb2xsVXBkYXRlc0Rpc2FibGVkID0gdHJ1ZTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLmltbWVkaWF0ZVNjcm9sbEVsZW1lbnRBdENvbnRlbnRQb2ludFRvT2Zmc2V0KDUwLCA1MCwg
MCwgMjAwLCBzY3JvbGxVcGRhdGVzRGlzYWJsZWQpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9
ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGlja3kiPgorICAgICAgICAg
ICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAg
ICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNp
ZGUtc3RpY2t5LXN0YWNraW5nLWNvbnRleHQtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1z
dGFja2luZy1jb250ZXh0LWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktc3RhY2tpbmct
Y29udGV4dC1leHBlY3RlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBpbnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVy
bmFsOkFzeW5jRnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+
CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4K
KyAgICA8c3R5bGU+CisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4
OworICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVy
Zmxvdzogc2Nyb2xsOworICAgICAgICAgICAgei1pbmRleDogMDsKKyAgICAgICAgICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnN0aWNreSB7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7CisgICAgICAgICAgICB0b3A6IDBw
eDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorCisgICAg
ICAgIC5maXhlZCB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICB0
b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDog
NTBweDsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQt
Y29sb3I6IGJsdWU7CisgICAgICAgIH0KKworICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAg
ICAgIG1hcmdpbjogNDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAg
ICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNj
cmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVs
cGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAgZG9jdW1lbnQucXVl
cnlTZWxlY3RvcignLnNjcm9sbGVyJykuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICAgICAgICAgIGF3
YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRv
dy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxk
aXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGlja3kiPgor
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgICAgICA8L2Rp
dj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9m
aXhlZC1pbnNpZGUtc3RpY2t5LXN0YWNraW5nLWNvbnRleHQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1z
dGFja2luZy1jb250ZXh0Lmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc2Nyb2xs
aW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktc3RhY2tpbmctY29udGV4dC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpB
c3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+CisgICAg
ICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBo
ZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAg
ICAgICAgICAgei1pbmRleDogMDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnN0aWNreSB7CisgICAgICAgICAgICBwb3NpdGlv
bjogLXdlYmtpdC1zdGlja3k7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAg
ICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAg
ICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICAgIH0KKworICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsK
KyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDog
NTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNvbnN0IHNjcm9sbFVwZGF0ZXNEaXNhYmxlZCA9
IHRydWU7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5pbW1lZGlhdGVTY3JvbGxFbGVtZW50
QXRDb250ZW50UG9pbnRUb09mZnNldCg1MCwgNTAsIDAsIDIwMCwgc2Nyb2xsVXBkYXRlc0Rpc2Fi
bGVkKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwg
ZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0i
c2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAg
PGRpdiBjbGFzcz0ic3RpY2t5Ij4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmaXhlZCI+
CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9k
aXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="387734"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371973</attachid>
            <date>2019-06-12 10:44:31 -0700</date>
            <delta_ts>2019-06-12 11:27:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fixed-inside-sticky-4.patch</filename>
            <type>text/plain</type>
            <size>36054</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NjM1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE5LTA2LTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICAoQXN5bmMgc2Nyb2xsaW5nKSBI
YW5kbGUgJ3Bvc2l0aW9uOmZpeGVkJyBpbnNpZGUgJ3Bvc2l0aW9uOnN0aWNreScgY29ycmVjdGx5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4Nzg4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MTU4OTc1OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgSGFuZGxlICdwb3NpdGlvbjpmaXhlZCcgaW5zaWRl
ICdwb3NpdGlvbjpzdGlja3knIGNvcnJlY3RseS4KKworICAgICAgICBBbHNvIGZpeCBuZXN0ZWQg
J3Bvc2l0aW9uOmZpeGVkJyBpbiBjYXNlIHdoZXJlIHRoZXJlIGlzIGFuIG92ZXJmbG93IHNjcm9s
bGVyIGJldHdlZW4gdGhlbS4KKworICAgICAgICBUZXN0czogc2Nyb2xsaW5nY29vcmRpbmF0b3Iv
aW9zL2ZpeGVkLWluc2lkZS1vdmVyZmxvdy1pbnNpZGUtZml4ZWQuaHRtbAorICAgICAgICAgICAg
ICAgc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktZnJhbWUuaHRt
bAorICAgICAgICAgICAgICAgc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1z
dGlja3ktbm8tc3RhY2tpbmctY29udGV4dC0yLmh0bWwKKyAgICAgICAgICAgICAgIHNjcm9sbGlu
Z2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQu
aHRtbAorICAgICAgICAgICAgICAgc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lk
ZS1zdGlja3ktc3RhY2tpbmctY29udGV4dC5odG1sCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9jb2NvYS9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZUZpeGVkTm9kZTo6YXBwbHlMYXllclBvc2l0aW9ucyk6CisKKyAgICAgICAgVGFr
ZSBvZmZzZXRzIGZyb20gc3RpY2t5IG5vZGVzIGludG8gYWNjb3VudC4KKworICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6bGF5ZXIpOgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNvbXB1dGVMYXllclBvc2l0aW9uIGNvbnN0
KToKKworICAgICAgICBGYWN0b3IgaW50byBhIGZ1bmN0aW9uLgorCisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6YXBwbHlMYXllclBvc2l0aW9ucyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6c2Nyb2xsRGVsdGFTaW5jZUxhc3RD
b21taXQgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjppc1ZpZXdwb3J0
Q29uc3RyYWluZWRGaXhlZE9yU3RpY2t5TGF5ZXIgY29uc3QpOgorCisgICAgICAgIFdlIG5lZWQg
dG8gZ2VuZXJhdGUgYSBzY3JvbGxpbmcgdHJlZSBub2RlIGZvciBwb3NpdGlvbjpmaXhlZCBpbiBu
ZXN0ZWQgY2FzZSBpZiB0aGVyZSBpcyBhbiBvdmVyZmxvdyBzY3JvbGxlcgorICAgICAgICBiZXR3
ZWVuIHRoZSBsYXllcnMuCisKIDIwMTktMDYtMTIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjYWlyb11bU1ZHXSBQdXR0aW5nIG11bHRpcGxl
IHBhdGggZWxlbWVudHMgaW4gY2xpcHBhdGggY2F1c2VzIHJlbmRlcmluZyBhcnRpZmFjdHMKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVGaXhl
ZE5vZGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29j
b2EvU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5tbQkocmV2aXNpb24gMjQ2MzQ4KQorKysgU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZS5oIgogI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZS5oIgogI2ltcG9ydCAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlLmgiCisjaW1w
b3J0ICJTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oIgogI2ltcG9ydCAiV2ViQ29yZUNBTGF5ZXJF
eHRyYXMuaCIKICNpbXBvcnQgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIApAQCAtNzAsMTMgKzcx
LDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjphcHBseUxheWVyUAogewogICAgIGF1
dG8gY29tcHV0ZUxheWVyUG9zaXRpb24gPSBbJl0gewogICAgICAgICBGbG9hdFNpemUgb3ZlcmZs
b3dTY3JvbGxEZWx0YTsKKyAgICAgICAgU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUqIGxhc3RTdGlj
a3lOb2RlID0gbnVsbHB0cjsKICAgICAgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IHBhcmVudCgp
OyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKLSAgICAgICAgICAg
IGlmIChpczxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+KCphbmNlc3RvcikpIHsKLSAgICAg
ICAgICAgICAgICBhdXRvJiBwb3NpdGlvbmluZ0FuY2VzdG9yID0gZG93bmNhc3Q8U2Nyb2xsaW5n
VHJlZVBvc2l0aW9uZWROb2RlPigqYW5jZXN0b3IpOwotICAgICAgICAgICAgICAgIGlmIChwb3Np
dGlvbmluZ0FuY2VzdG9yLmxheWVyKCkgIT0gbV9sYXllcikKLSAgICAgICAgICAgICAgICAgICAg
b3ZlcmZsb3dTY3JvbGxEZWx0YSAtPSBwb3NpdGlvbmluZ0FuY2VzdG9yLnNjcm9sbERlbHRhU2lu
Y2VMYXN0Q29tbWl0KCk7Ci0gICAgICAgICAgICB9Ci0KICAgICAgICAgICAgIGlmIChpczxTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlPigqYW5jZXN0b3IpKSB7CiAgICAgICAgICAgICAg
ICAgLy8gRml4ZWQgbm9kZXMgYXJlIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gdGhlIGNvbnRhaW5p
bmcgZnJhbWUgc2Nyb2xsaW5nIG5vZGUuCiAgICAgICAgICAgICAgICAgLy8gV2UgYmFpbCBvdXQg
YWZ0ZXIgZmluZGluZyBvbmUuCkBAIC04OCw2ICs4NCwzMCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVG
aXhlZE5vZGU6OmFwcGx5TGF5ZXJQCiAgICAgICAgICAgICAgICAgLy8gVG8ga2VlcCB0aGUgbGF5
ZXIgc3RpbGwgZHVyaW5nIGFzeW5jIHNjcm9sbGluZyB3ZSBhZGp1c3QgYnkgaG93IG11Y2ggdGhl
IHBvc2l0aW9uIGhhcyBjaGFuZ2VkIHNpbmNlIGxheW91dC4KICAgICAgICAgICAgICAgICBhdXRv
JiBvdmVyZmxvd05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlPigqYW5jZXN0b3IpOwogICAgICAgICAgICAgICAgIG92ZXJmbG93U2Nyb2xsRGVsdGEgLT0g
b3ZlcmZsb3dOb2RlLnNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCk7CisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChpczxTY3JvbGxp
bmdUcmVlUG9zaXRpb25lZE5vZGU+KCphbmNlc3RvcikpIHsKKyAgICAgICAgICAgICAgICBhdXRv
JiBwb3NpdGlvbmluZ0FuY2VzdG9yID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWRO
b2RlPigqYW5jZXN0b3IpOworICAgICAgICAgICAgICAgIC8vIFNlZSBpZiBzdGlja3kgbm9kZSBh
bHJlYWR5IGhhbmRsZWQgdGhpcyBwb3NpdGlvbmluZyBub2RlLgorICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJbmNsdWRlIHBvc2l0aW9uaW5nIG5vZGUgaW5mb3JtYXRpb24gdG8gc3RpY2t5L2Zp
eGVkIG5vZGUgdG8gYXZvaWQgdGhlc2UgdGVzdHMuCisgICAgICAgICAgICAgICAgaWYgKGxhc3RT
dGlja3lOb2RlICYmIGxhc3RTdGlja3lOb2RlLT5sYXllcigpID09IHBvc2l0aW9uaW5nQW5jZXN0
b3IubGF5ZXIoKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAg
ICAgaWYgKHBvc2l0aW9uaW5nQW5jZXN0b3IubGF5ZXIoKSAhPSBtX2xheWVyKQorICAgICAgICAg
ICAgICAgICAgICBvdmVyZmxvd1Njcm9sbERlbHRhIC09IHBvc2l0aW9uaW5nQW5jZXN0b3Iuc2Ny
b2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTdGlja3lOb2Rl
PigqYW5jZXN0b3IpKSB7CisgICAgICAgICAgICAgICAgYXV0byYgc3RpY2t5Tm9kZSA9IGRvd25j
YXN0PFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlPigqYW5jZXN0b3IpOworICAgICAgICAgICAgICAg
IG92ZXJmbG93U2Nyb2xsRGVsdGEgKz0gc3RpY2t5Tm9kZS5zY3JvbGxEZWx0YVNpbmNlTGFzdENv
bW1pdCgpOworICAgICAgICAgICAgICAgIGxhc3RTdGlja3lOb2RlID0gJnN0aWNreU5vZGU7Cisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlm
IChpczxTY3JvbGxpbmdUcmVlRml4ZWROb2RlPigqYW5jZXN0b3IpKSB7CisgICAgICAgICAgICAg
ICAgLy8gVGhlIGFuY2VzdG9yIGZpeGVkIG5vZGUgaGFzIGFscmVhZHkgYXBwbGllZCB0aGUgbmVl
ZGVkIGNvcnJlY3Rpb25zIHRvIHNheSBwdXQuCisgICAgICAgICAgICAgICAgcmV0dXJuIG1fY29u
c3RyYWludHMubGF5ZXJQb3NpdGlvbkF0TGFzdExheW91dCgpIC0gb3ZlcmZsb3dTY3JvbGxEZWx0
YTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1Ry
ZWVTdGlja3lOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvY29jb2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaAkocmV2aXNpb24gMjQ2MzQ4KQorKysg
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTIgKzQxLDE4IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgflNjcm9sbGluZ1RyZWVTdGlja3lOb2RlKCk7CiAKKyAgICBGbG9hdFNpemUgc2Nyb2xs
RGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdDsKKworICAgIENBTGF5ZXIgKmxheWVyKCkgeyBy
ZXR1cm4gbV9sYXllci5nZXQoKTsgfQorCiBwcml2YXRlOgogICAgIFNjcm9sbGluZ1RyZWVTdGlj
a3lOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgdm9pZCBjb21t
aXRTdGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRl
OwogICAgIHZvaWQgYXBwbHlMYXllclBvc2l0aW9ucygpIG92ZXJyaWRlOwogCisgICAgRmxvYXRQ
b2ludCBjb21wdXRlTGF5ZXJQb3NpdGlvbigpIGNvbnN0OworCiAgICAgdm9pZCBkdW1wUHJvcGVy
dGllcyhXVEY6OlRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikg
Y29uc3Qgb3ZlcnJpZGU7CiAKICAgICBTdGlja3lQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMg
bV9jb25zdHJhaW50czsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29h
L1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCShyZXZpc2lv
biAyNDYzNDgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjYsNyArNjYsNyBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjb21taXRTdGF0CiAgICAgICAgIG1fY29uc3RyYWlu
dHMgPSBzdGlja3lTdGF0ZU5vZGUudmlld3BvcnRDb25zdHJhaW50cygpOwogfQogCi12b2lkIFNj
cm9sbGluZ1RyZWVTdGlja3lOb2RlOjphcHBseUxheWVyUG9zaXRpb25zKCkKK0Zsb2F0UG9pbnQg
U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNvbXB1dGVMYXllclBvc2l0aW9uKCkgY29uc3QKIHsK
ICAgICBhdXRvIGNvbXB1dGVMYXllclBvc2l0aW9uRm9yU2Nyb2xsaW5nTm9kZSA9IFsmXShTY3Jv
bGxpbmdUcmVlTm9kZSYgc2Nyb2xsaW5nTm9kZSkgewogICAgICAgICBGbG9hdFJlY3QgY29uc3Ry
YWluaW5nUmVjdDsKQEAgLTgwLDQxICs4MCw0MiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTdGlja3lO
b2RlOjphcHBseUxheWVyCiAgICAgICAgIHJldHVybiBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRp
b25Gb3JDb25zdHJhaW5pbmdSZWN0KGNvbnN0cmFpbmluZ1JlY3QpOwogICAgIH07CiAKLSAgICBh
dXRvIGNvbXB1dGVMYXllclBvc2l0aW9uID0gWyZdIHsKLSAgICAgICAgZm9yIChhdXRvKiBhbmNl
c3RvciA9IHBhcmVudCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkp
IHsKLSAgICAgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+KCphbmNl
c3RvcikpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBwb3NpdGlvbmluZ0FuY2VzdG9yID0gZG93
bmNhc3Q8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlPigqYW5jZXN0b3IpOwotCi0gICAgICAg
ICAgICAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQgdG8gZG8gYW55dGhpbmcgZm9yIFNjcm9sbFBv
c2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk/Ci0gICAgICAgICAgICAgICAgaWYgKHBvc2l0
aW9uaW5nQW5jZXN0b3Iuc2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcigpID09IFNjcm9sbFBvc2l0
aW9uaW5nQmVoYXZpb3I6Ok1vdmVzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlv
bmluZ0FuY2VzdG9yLnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGluZ05vZGVzKCkuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8g
b3ZlcmZsb3dOb2RlID0gc2Nyb2xsaW5nVHJlZSgpLm5vZGVGb3JJRChwb3NpdGlvbmluZ0FuY2Vz
dG9yLnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGluZ05vZGVzKClbMF0pOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoIW92ZXJmbG93Tm9kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gcG9zaXRpb24gPSBjb21wdXRlTGF5ZXJQb3NpdGlv
bkZvclNjcm9sbGluZ05vZGUoKm92ZXJmbG93Tm9kZSk7Ci0KLSAgICAgICAgICAgICAgICAgICAg
aWYgKHBvc2l0aW9uaW5nQW5jZXN0b3IubGF5ZXIoKSA9PSBtX2xheWVyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAvLyBXZSdsbCBhbHNvIGRvIHRoZSBhZGp1c3RtZW50IHRoZSBwb3NpdGlv
bmluZyBub2RlIHdvdWxkIGRvLgotICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb24gLT0g
cG9zaXRpb25pbmdBbmNlc3Rvci5zY3JvbGxEZWx0YVNpbmNlTGFzdENvbW1pdCgpOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gcG9zaXRpb247CisgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IHBhcmVudCgpOyBh
bmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGlz
PFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKmFuY2VzdG9yKSkgeworICAgICAgICAgICAg
YXV0byYgcG9zaXRpb25pbmdBbmNlc3RvciA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVQb3NpdGlv
bmVkTm9kZT4oKmFuY2VzdG9yKTsKKworICAgICAgICAgICAgLy8gRklYTUU6IERvIHdlIG5lZWQg
dG8gZG8gYW55dGhpbmcgZm9yIFNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk/
CisgICAgICAgICAgICBpZiAocG9zaXRpb25pbmdBbmNlc3Rvci5zY3JvbGxQb3NpdGlvbmluZ0Jl
aGF2aW9yKCkgPT0gU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6TW92ZXMpIHsKKyAgICAgICAg
ICAgICAgICBpZiAocG9zaXRpb25pbmdBbmNlc3Rvci5yZWxhdGVkT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgYXV0byBvdmVyZmxvd05vZGUgPSBzY3JvbGxpbmdUcmVlKCkubm9kZUZvcklEKHBvc2l0
aW9uaW5nQW5jZXN0b3IucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKVswXSk7CisgICAg
ICAgICAgICAgICAgaWYgKCFvdmVyZmxvd05vZGUpCisgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICAgICAgYXV0byBwb3NpdGlvbiA9IGNvbXB1dGVMYXllclBvc2l0aW9u
Rm9yU2Nyb2xsaW5nTm9kZSgqb3ZlcmZsb3dOb2RlKTsKKworICAgICAgICAgICAgICAgIGlmIChw
b3NpdGlvbmluZ0FuY2VzdG9yLmxheWVyKCkgPT0gbV9sYXllcikgeworICAgICAgICAgICAgICAg
ICAgICAvLyBXZSdsbCBhbHNvIGRvIHRoZSBhZGp1c3RtZW50IHRoZSBwb3NpdGlvbmluZyBub2Rl
IHdvdWxkIGRvLgorICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiAtPSBwb3NpdGlvbmluZ0Fu
Y2VzdG9yLnNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCk7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlPigqYW5jZXN0b3IpKQotICAgICAgICAgICAgICAgIHJldHVybiBjb21wdXRlTGF5ZXJQb3Np
dGlvbkZvclNjcm9sbGluZ05vZGUoKmFuY2VzdG9yKTsKIAotICAgICAgICAgICAgaWYgKGlzPFNj
cm9sbGluZ1RyZWVGaXhlZE5vZGU+KCphbmNlc3RvcikgfHwgaXM8U2Nyb2xsaW5nVHJlZVN0aWNr
eU5vZGU+KCphbmNlc3RvcikpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgbmVl
ZCBzY3JvbGxpbmcgdHJlZSBub2RlcyBhdCBhbGwgZm9yIG5lc3RlZCBjYXNlcz8KLSAgICAgICAg
ICAgICAgICByZXR1cm4gbV9jb25zdHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uOwogICAgICAgICAgICAgfQogICAgICAg
ICB9Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbV9jb25z
dHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCk7Ci0gICAgfTsKKyAgICAgICAgaWYg
KGlzPFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlPigqYW5jZXN0b3IpKQorICAgICAgICAgICAg
cmV0dXJuIGNvbXB1dGVMYXllclBvc2l0aW9uRm9yU2Nyb2xsaW5nTm9kZSgqYW5jZXN0b3IpOwor
CisgICAgICAgIGlmIChpczxTY3JvbGxpbmdUcmVlRml4ZWROb2RlPigqYW5jZXN0b3IpIHx8IGlz
PFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlPigqYW5jZXN0b3IpKSB7CisgICAgICAgICAgICAvLyBG
SVhNRTogRG8gd2UgbmVlZCBzY3JvbGxpbmcgdHJlZSBub2RlcyBhdCBhbGwgZm9yIG5lc3RlZCBj
YXNlcz8KKyAgICAgICAgICAgIHJldHVybiBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExh
c3RMYXlvdXQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gbV9jb25zdHJhaW50cy5sYXllclBvc2l0aW9uQXRMYXN0TGF5b3V0KCk7Cit9
CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmFwcGx5TGF5ZXJQb3NpdGlvbnMoKQor
ewogICAgIGF1dG8gbGF5ZXJQb3NpdGlvbiA9IGNvbXB1dGVMYXllclBvc2l0aW9uKCk7CiAKICAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWVTdGlj
a3lOb2RlICIgPDwgc2Nyb2xsaW5nTm9kZUlEKCkgPDwgIiBjb25zdHJhaW5pbmdSZWN0QXRMYXN0
TGF5b3V0ICIgPDwgbV9jb25zdHJhaW50cy5jb25zdHJhaW5pbmdSZWN0QXRMYXN0TGF5b3V0KCkg
PDwgIiBsYXN0IGxheWVyIHBvcyAiIDw8IG1fY29uc3RyYWludHMubGF5ZXJQb3NpdGlvbkF0TGFz
dExheW91dCgpIDw8ICIgbGF5ZXJQb3NpdGlvbiAiIDw8IGxheWVyUG9zaXRpb24pOwpAQCAtMTIy
LDYgKzEyMywxMiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjphcHBseUxheWVyCiAg
ICAgW21fbGF5ZXIgX3dlYl9zZXRMYXllclRvcExlZnRQb3NpdGlvbjpsYXllclBvc2l0aW9uIC0g
bV9jb25zdHJhaW50cy5hbGlnbm1lbnRPZmZzZXQoKV07CiB9CiAKK0Zsb2F0U2l6ZSBTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZTo6c2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdAorewor
ICAgIGF1dG8gbGF5ZXJQb3NpdGlvbiA9IGNvbXB1dGVMYXllclBvc2l0aW9uKCk7CisgICAgcmV0
dXJuIGxheWVyUG9zaXRpb24gLSBtX2NvbnN0cmFpbnRzLmxheWVyUG9zaXRpb25BdExhc3RMYXlv
dXQoKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6ZHVtcFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYgdHMsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yIGJlaGF2aW9y
KSBjb25zdAogewogICAgIHRzIDw8ICJzdGlja3kgbm9kZSI7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24g
MjQ2MzQ4KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwNTIsOCArMzA1MiwxMCBAQCBib29sIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6aXNWaWV3cG9ydENvCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IC8vIEZJWE1FOiBIYW5kbGUgZml4ZWQgaW5zaWRlIG9mIGEgdHJhbnNmb3JtLCB3aGljaCBzaG91
bGQgbm90IGJlaGF2ZSBhcyBmaXhlZC4KLSAgICBmb3IgKGF1dG8qIHN0YWNraW5nQ29udGV4dCA9
IGxheWVyLnN0YWNraW5nQ29udGV4dCgpOyBzdGFja2luZ0NvbnRleHQ7IHN0YWNraW5nQ29udGV4
dCA9IHN0YWNraW5nQ29udGV4dC0+c3RhY2tpbmdDb250ZXh0KCkpIHsKLSAgICAgICAgaWYgKHN0
YWNraW5nQ29udGV4dC0+aXNDb21wb3NpdGVkKCkgJiYgc3RhY2tpbmdDb250ZXh0LT5yZW5kZXJl
cigpLmlzRml4ZWRQb3NpdGlvbmVkKCkpCisgICAgZm9yIChhdXRvKiBhbmNlc3RvciA9IGxheWVy
LnBhcmVudCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50KCkpIHsKKyAg
ICAgICAgaWYgKGFuY2VzdG9yLT5oYXNDb21wb3NpdGVkU2Nyb2xsYWJsZU92ZXJmbG93KCkpCisg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5pc1N0YWNraW5n
Q29udGV4dCgpICYmIGFuY2VzdG9yLT5pc0NvbXBvc2l0ZWQoKSAmJiBhbmNlc3Rvci0+cmVuZGVy
ZXIoKS5pc0ZpeGVkUG9zaXRpb25lZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ2MzQ4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTktMDYtMTIgIEFudHRpIEtvaXZp
c3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIChBc3luYyBzY3JvbGxpbmcpIEhhbmRs
ZSAncG9zaXRpb246Zml4ZWQnIGluc2lkZSAncG9zaXRpb246c3RpY2t5JyBjb3JyZWN0bHkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg3ODgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxNTg5NzU5PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1p
bnNpZGUtb3ZlcmZsb3ctaW5zaWRlLWZpeGVkLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtb3ZlcmZsb3ctaW5zaWRl
LWZpeGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9m
aXhlZC1pbnNpZGUtc3RpY2t5LWZyYW1lLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LWZyYW1lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHNjcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUt
c3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFj
a2luZy1jb250ZXh0LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0
b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktbm8tc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5z
aWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHNj
cm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LXN0YWNraW5nLWNvbnRl
eHQtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogc2Nyb2xsaW5nY29vcmRpbmF0b3Iv
aW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktc3RhY2tpbmctY29udGV4dC5odG1sOiBBZGRlZC4KKwog
MjAxOS0wNi0xMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbaU9TXSBJZGVtcG90ZW50IHRleHQgYXV0b3NpemluZyBuZWVkcyB0byByZWFjdCBwcm9w
ZXJseSB0byB2aWV3cG9ydCBjaGFuZ2VzCkluZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29y
ZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLW92ZXJmbG93LWluc2lkZS1maXhlZC1leHBlY3RlZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9m
aXhlZC1pbnNpZGUtb3ZlcmZsb3ctaW5zaWRlLWZpeGVkLWV4cGVjdGVkLmh0bWwJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lk
ZS1vdmVyZmxvdy1pbnNpZGUtZml4ZWQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0Vu
YWJsZWQ9dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0
aWFsLXNjYWxlPTEuMCI+CisgICAgPHN0eWxlPgorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAg
ICAgICAgbWFyZ2luOiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAg
ICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOwor
ICAgICAgICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgICAgIHotaW5kZXg6IDA7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAg
ICAgIC5maXhlZC1vdXRlciB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAg
ICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhl
aWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAg
ICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7Cisg
ICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAgICAgbGVmdDogMTAwcHg7CisgICAgICAg
ICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAgIGhlaWdodDogNTBweDsKKyAgICAgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgIH0KKworICAgICAgICAuY29udGFpbmVy
IHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNv
bGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDogNTAwMHB4OworICAgICAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVu
Y3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1
bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAg
IGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAg
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjcm9sbGVyJykuc2Nyb2xsVG8oMCwgMjAwKTsKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7Cisg
ICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJmaXhlZC1vdXRl
ciI+CisgICAgICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZml4ZWQiPgorICAg
ICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2Pgor
ICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsaW5n
Y29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1vdmVyZmxvdy1pbnNpZGUtZml4ZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQt
aW5zaWRlLW92ZXJmbG93LWluc2lkZS1maXhlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtb3ZlcmZsb3ctaW5z
aWRlLWZpeGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBF
IGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVl
IGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5
bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8
bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAg
ICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAg
ICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAgIG92ZXJmbG93OiBz
Y3JvbGw7CisgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuZml4ZWQtb3V0ZXIgeworICAg
ICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAg
ICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKworICAgICAgICAuZml4ZWQg
eworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgdG9wOiAxMDBweDsK
KyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDUwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgICAgICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAgICAgICAgICBtYXJnaW46
IDQwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgICAgICAgICBo
ZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRvVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAg
ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25zdCBzY3JvbGxVcGRhdGVzRGlz
YWJsZWQgPSB0cnVlOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuaW1tZWRpYXRlU2Nyb2xs
RWxlbWVudEF0Q29udGVudFBvaW50VG9PZmZzZXQoNTAsIDUwLCAwLCAyMDAsIHNjcm9sbFVwZGF0
ZXNEaXNhYmxlZCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBk
b1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYg
Y2xhc3M9ImZpeGVkLW91dGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJmaXhlZCI+CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4K
KyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFt
ZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3Jk
aW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LWZyYW1lLWV4cGVjdGVkLmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWlu
c2lkZS1zdGlja3ktZnJhbWUtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDcwIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4
aWJsZVZpZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9
dHJ1ZSBpbnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNj
YWxlPTEuMCI+CisgICAgPHN0eWxlPgorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAg
bWFyZ2luOiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdp
ZHRoOiAzMDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAg
ICAgICAgb3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgICAgIHotaW5kZXg6IDA7CisgICAgICAg
ICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5z
dGlja3kgeworICAgICAgICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OworICAgICAgICAg
ICAgdG9wOiAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWln
aHQ6IDIwMHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAg
IH0KKworICAgICAgICAuZml4ZWQgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAg
ICAgICAgICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAg
ICAgd2lkdGg6IDUwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7
CisgICAgICAgICAgICBtYXJnaW46IDQwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xp
ZCByZWQ7CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIGRvVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBh
d2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRhdGUoKTsKKyAgICAgICAgICAgIHdp
bmRvdy5zY3JvbGxUbygwLCAyMDApOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuZW5zdXJl
UHJlc2VudGF0aW9uVXBkYXRlKCk7CisKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3RpY2t5
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LWZyYW1l
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9z
L2ZpeGVkLWluc2lkZS1zdGlja3ktZnJhbWUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRU
ZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1mcmFtZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjggQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpB
c3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+CisgICAg
ICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBo
ZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAg
ICAgICAgICAgei1pbmRleDogMDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgLnN0aWNreSB7CisgICAgICAgICAgICBwb3NpdGlv
bjogLXdlYmtpdC1zdGlja3k7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAg
ICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAg
ICAgICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAg
IGhlaWdodDogNTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
ICAgIH0KKworICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsK
KyAgICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDog
NTAwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAg
ICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNvbnN0IHNjcm9sbFVwZGF0ZXNEaXNhYmxlZCA9
IHRydWU7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5pbW1lZGlhdGVTY3JvbGxFbGVtZW50
QXRDb250ZW50UG9pbnRUb09mZnNldCg1MCwgNTAsIDAsIDIwMCwgc2Nyb2xsVXBkYXRlc0Rpc2Fi
bGVkKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwg
ZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic3RpY2t5Ij4KKyAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGluZ2Nv
b3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtMi1l
eHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5h
dG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtMi1leHBlY3Rl
ZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9y
L2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtMi1leHBlY3RlZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBpbnRlcm5hbDpB
c3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5jRnJhbWVTY3Jv
bGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0i
dmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+CisgICAg
ICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAgICAgICAgICBo
ZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Nyb2xsOworICAg
ICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAgIAorICAgICAg
ICAuc3RpY2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgICAg
ICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAg
ICAgICB9CisKKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsK
KyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAg
ICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5jb250YWlu
ZXIgeworICAgICAgICAgICAgbWFyZ2luOiA0MHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHgg
c29saWQgcmVkOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgICAgICB3aWxs
LWNoYW5nZTogdHJhbnNmb3JtOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkK
KyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVu
c3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignLnNjcm9sbGVyJykuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICAgICAgICAgIGF3YWl0IFVJ
SGVscGVyLmVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3JvbGxlciI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzdGlja3kiPgorICAgICAg
ICAgICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAgICAgICAgICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1p
bnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRleHQtMi5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5v
LXN0YWNraW5nLWNvbnRleHQtMi5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3Nj
cm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNv
bnRleHQtMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBo
dG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBp
bnRlcm5hbDpBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZD10cnVlIGludGVybmFsOkFzeW5j
RnJhbWVTY3JvbGxpbmdFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1l
dGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5
bGU+CisgICAgICAgIC5zY3JvbGxlciB7CisgICAgICAgICAgICBtYXJnaW46IDEwcHg7CisgICAg
ICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAg
ICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgICAgICAgICBvdmVyZmxvdzogc2Ny
b2xsOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAg
IAorICAgICAgICAuc3RpY2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNr
eTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAg
ICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworICAgICAgICB9CisKKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9u
OiBmaXhlZDsKKyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBw
eDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4Owor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgfQorCisgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgbWFyZ2luOiA0MHB4OworICAgICAgICAgICAgYm9y
ZGVyOiAycHggc29saWQgcmVkOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAg
ICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cisg
ICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9U
ZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGNvbnN0IHNj
cm9sbFVwZGF0ZXNEaXNhYmxlZCA9IHRydWU7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5p
bW1lZGlhdGVTY3JvbGxFbGVtZW50QXRDb250ZW50UG9pbnRUb09mZnNldCg1MCwgNTAsIDAsIDIw
MCwgc2Nyb2xsVXBkYXRlc0Rpc2FibGVkKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBjbGFzcz0ic2Nyb2xsZXIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250
YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0ic3RpY2t5Ij4KKyAgICAgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJmaXhlZCI+CisgICAgICAgICAgICAgICAgPC9kaXY+CisgICAgICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0
aWNreS1uby1zdGFja2luZy1jb250ZXh0LWV4cGVjdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3ktbm8t
c3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNr
aW5nLWNvbnRleHQtZXhwZWN0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBA
Cis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZp
ZXdwb3J0PXRydWUgaW50ZXJuYWw6QXN5bmNPdmVyZmxvd1Njcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBp
bnRlcm5hbDpBc3luY0ZyYW1lU2Nyb2xsaW5nRW5hYmxlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxo
ZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEu
MCI+CisgICAgPHN0eWxlPgorICAgICAgICAuc2Nyb2xsZXIgeworICAgICAgICAgICAgbWFyZ2lu
OiAxMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAz
MDBweDsKKyAgICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgICAgICAgICAg
b3ZlcmZsb3c6IHNjcm9sbDsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgLnN0aWNreSB7CisgICAgICAgICAgICBwb3NpdGlvbjog
LXdlYmtpdC1zdGlja3k7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorCisgICAgICAgIC5maXhlZCB7CisgICAgICAg
ICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICB0b3A6IDEwMHB4OworICAgICAgICAg
ICAgbGVmdDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogNTBweDsKKyAgICAgICAgICAgIGhl
aWdodDogNTBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAg
IH0KKworICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogNDBweDsKKyAg
ICAgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICAgICAgICAgIGhlaWdodDogNTAw
MHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAgeworICAgICAg
ICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5ydW5VSVNjcmlwdCkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVByZXNlbnRhdGlv
blVwZGF0ZSgpOworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNjcm9sbGVy
Jykuc2Nyb2xsVG8oMCwgMjAwKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmVuc3VyZVBy
ZXNlbnRhdGlvblVwZGF0ZSgpOworCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0aWNreSI+CisgICAgICAgICAgICAgICAgPGRp
diBjbGFzcz0iZml4ZWQiPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAgICAgPC9k
aXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1zdGlja3kt
bm8tc3RhY2tpbmctY29udGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Njcm9s
bGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LW5vLXN0YWNraW5nLWNvbnRl
eHQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxpbmdjb29yZGluYXRv
ci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1uby1zdGFja2luZy1jb250ZXh0Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5jT3ZlcmZs
b3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJs
ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIg
Y29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgLnNjcm9s
bGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGhlaWdodDogMzAw
cHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6IDFweCBz
b2xpZCBibGFjazsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC5zdGlja3kg
eworICAgICAgICAgICAgcG9zaXRpb246IC13ZWJraXQtc3RpY2t5OworICAgICAgICAgICAgdG9w
OiAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDIw
MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgICAgIH0KKwor
ICAgICAgICAuZml4ZWQgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAg
ICAgdG9wOiAxMDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDEwMHB4OworICAgICAgICAgICAgd2lk
dGg6IDUwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOworICAgICAgICB9CisKKyAgICAgICAgLmNvbnRhaW5lciB7CisgICAg
ICAgICAgICBtYXJnaW46IDQwcHg7CisgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7
CisgICAgICAgICAgICBoZWlnaHQ6IDUwMDBweDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+Cisg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIGRv
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBjb25zdCBz
Y3JvbGxVcGRhdGVzRGlzYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
aW1tZWRpYXRlU2Nyb2xsRWxlbWVudEF0Q29udGVudFBvaW50VG9PZmZzZXQoNTAsIDUwLCAwLCAy
MDAsIHNjcm9sbFVwZGF0ZXNEaXNhYmxlZCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlz
dGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iY29u
dGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0aWNreSI+CisgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iZml4ZWQiPgorICAgICAgICAgICAgICAgIDwvZGl2PgorICAgICAgICAg
ICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVkLWluc2lkZS1z
dGlja3ktc3RhY2tpbmctY29udGV4dC1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LXN0YWNr
aW5nLWNvbnRleHQtZXhwZWN0ZWQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9z
Y3JvbGxpbmdjb29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1zdGFja2luZy1jb250
ZXh0LWV4cGVjdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MSBAQAorPCFET0NU
WVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIGludGVybmFsOkFzeW5jT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6
QXN5bmNGcmFtZVNjcm9sbGluZ0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorICAg
IDxzdHlsZT4KKyAgICAgICAgLnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsK
KyAgICAgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAgIG92ZXJmbG93
OiBzY3JvbGw7CisgICAgICAgICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgcG9zaXRpb246
IHJlbGF0aXZlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAuc3RpY2t5IHsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgICAgICAgICAgIHRvcDogMHB4Owor
ICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisKKyAgICAgICAg
LmZpeGVkIHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIHRvcDog
MTAwcHg7CisgICAgICAgICAgICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4
OworICAgICAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xv
cjogYmx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAg
bWFyZ2luOiA0MHB4OworICAgICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmVkOworICAgICAg
ICAgICAgaGVpZ2h0OiA1MDAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIu
ZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCcuc2Nyb2xsZXInKS5zY3JvbGxUbygwLCAyMDApOworICAgICAgICAgICAgYXdhaXQg
VUlIZWxwZXIuZW5zdXJlUHJlc2VudGF0aW9uVXBkYXRlKCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFk
ZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBkb1Rlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgY2xhc3M9InNjcm9sbGVyIj4KKyAgICAgICAgPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9InN0aWNreSI+CisgICAg
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iZml4ZWQiPgorICAgICAgICAgICAgICAgIDwvZGl2Pgor
ICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL2ZpeGVk
LWluc2lkZS1zdGlja3ktc3RhY2tpbmctY29udGV4dC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3Njcm9sbGluZ2Nvb3JkaW5hdG9yL2lvcy9maXhlZC1pbnNpZGUtc3RpY2t5LXN0YWNr
aW5nLWNvbnRleHQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9zY3JvbGxpbmdj
b29yZGluYXRvci9pb3MvZml4ZWQtaW5zaWRlLXN0aWNreS1zdGFja2luZy1jb250ZXh0Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGludGVybmFsOkFzeW5j
T3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkPXRydWUgaW50ZXJuYWw6QXN5bmNGcmFtZVNjcm9sbGlu
Z0VuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3
cG9ydCIgY29udGVudD0iaW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAg
LnNjcm9sbGVyIHsKKyAgICAgICAgICAgIG1hcmdpbjogMTBweDsKKyAgICAgICAgICAgIGhlaWdo
dDogMzAwcHg7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICBib3JkZXI6
IDFweCBzb2xpZCBibGFjazsKKyAgICAgICAgICAgIG92ZXJmbG93OiBzY3JvbGw7CisgICAgICAg
ICAgICB6LWluZGV4OiAwOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICAuc3RpY2t5IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiAt
d2Via2l0LXN0aWNreTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAgICAgICAgd2lkdGg6
IDIwMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91
bmQtY29sb3I6IGdyZWVuOworICAgICAgICB9CisKKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIHRvcDogMTAwcHg7CisgICAgICAgICAg
ICBsZWZ0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiA1MHB4OworICAgICAgICAgICAgaGVp
Z2h0OiA1MHB4OworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAg
fQorCisgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgbWFyZ2luOiA0MHB4OworICAg
ICAgICAgICAgYm9yZGVyOiAycHggc29saWQgcmVkOworICAgICAgICAgICAgaGVpZ2h0OiA1MDAw
cHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICAgICAgY29uc3Qgc2Nyb2xsVXBkYXRlc0Rpc2FibGVkID0gdHJ1
ZTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmltbWVkaWF0ZVNjcm9sbEVsZW1lbnRBdENv
bnRlbnRQb2ludFRvT2Zmc2V0KDUwLCA1MCwgMCwgMjAwLCBzY3JvbGxVcGRhdGVzRGlzYWJsZWQp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICAg
ICAgCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxz
ZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJzY3Jv
bGxlciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJzdGlja3kiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZpeGVkIj4KKyAg
ICAgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4K
KyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>