<?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>206314</bug_id>
          
          <creation_ts>2020-01-15 13:55:17 -0800</creation_ts>
          <short_desc>Use Visible Position to calculate Positions for highlights</short_desc>
          <delta_ts>2020-01-30 13:15:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1607152</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-15 13:55:17 -0800</bug_when>
    <thetext>Use Visible Position to calculate Positions for highlights</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607160</commentid>
    <comment_count>1</comment_count>
      <attachid>387845</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-15 14:14:53 -0800</bug_when>
    <thetext>Created attachment 387845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607220</commentid>
    <comment_count>2</comment_count>
      <attachid>387845</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-15 16:14:11 -0800</bug_when>
    <thetext>Comment on attachment 387845
Patch

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

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:85
&gt; +        auto visibleSelection = VisibleSelection(Range::create(*rangeGroup-&gt;m_document.get(), data-&gt;range));

It makes no sense to create a Range just so that we can create VisibleSelection. r- because of this.
Once again, Range is a very expensive object to create so we should avoid making one.
Just add a new constructor of VisibleSelection which takes StaticRange instead.
Also, what guarantees that boundary points of StaticRange still point to nodes in the same document at this point?

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:49
&gt; +    HighlightRangeData(StaticRange&amp;&amp; range)

Nit: Please define this before all data members and place a blank line
between member functions &amp; member variables to visually separate them.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:71
&gt; +    

Nit: whitespace.

&gt; Source/WebCore/editing/TextManipulationController.cpp:-209
&gt; -

This seems like an unrelated change. Please revert.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1055
&gt; +                

Ditto. Revert.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1060
&gt; +                    highlightData.setContext({startRenderer, endRenderer, static_cast&lt;unsigned&gt;(startOffset), static_cast&lt;unsigned&gt;(endOffset)});

Ditto.

&gt; Source/WebCore/rendering/SelectionRangeData.cpp:170
&gt; -    if (&amp;renderer == m_selectionContext.start() || renderer.isDescendantOf(m_selectionContext.start())) {
&gt; +    if (&amp;renderer == m_selectionContext.start() /*|| renderer.isDescendantOf(m_selectionContext.start())*/) {

What&apos;s happening with this? We don&apos;t commit commented out code like this.

&gt; Source/WebCore/rendering/SelectionRangeData.cpp:176
&gt; -    if (&amp;renderer == m_selectionContext.end() || renderer.isDescendantOf(m_selectionContext.end()))
&gt; +    if (&amp;renderer == m_selectionContext.end() /*|| renderer.isDescendantOf(m_selectionContext.end())*/)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607252</commentid>
    <comment_count>3</comment_count>
      <attachid>387873</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-15 17:12:45 -0800</bug_when>
    <thetext>Created attachment 387873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607290</commentid>
    <comment_count>4</comment_count>
      <attachid>387882</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-15 18:08:21 -0800</bug_when>
    <thetext>Created attachment 387882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607306</commentid>
    <comment_count>5</comment_count>
      <attachid>387882</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-15 18:38:39 -0800</bug_when>
    <thetext>Comment on attachment 387882
Patch

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

Okay, the new patch looks better but there is one security bug in this patch so we need to fix that before I can r+ it.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:80
&gt; +    

Nit: whitespace.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:84
&gt; +        if (!data || !areNodesConnectedInSameTreeScope(data-&gt;range-&gt;startContainer(), data-&gt;range-&gt;endContainer()))
&gt; +            return;

Hm... areNodesConnectedInSameTreeScope returns true when both nodes are disconnected. We want to check that.
So we need to exit early when !data-&gt;range-&gt;startContainer().isConnected().
In fact, it might be simpler to just check that &amp;data-&gt;range-&gt;startContainer().treeScope() == &amp;data-&gt;range-&gt;endContainer().treeScope()

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:86
&gt; +        auto visibleSelection = VisibleSelection(data-&gt;range);

Why not just: VisibleSelection visibleSelection(data-&gt;range);

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.cpp:88
&gt; +        data-&gt;startPosition = visibleSelection.visibleStart().deepEquivalent();
&gt; +        data-&gt;endPosition = visibleSelection.visibleEnd().deepEquivalent();

Let&apos;s not safe to access data here.
Construction of VisibleSelection and calls to visibleStart or visibleEnd can easy trigger a sync layout,
execute arbitrary JS and delete this highlight group.

You should either check nullity of weakData after each call, or make a copy of HighightRangeData at the beginning.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:47
&gt; +    static Ref&lt;HighlightRangeData&gt; create(Ref&lt;StaticRange&gt;&amp;&amp; range)

Nit: Need a blank line between the constructor &amp; this static member function.

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:71
&gt; +    Vector&lt;Ref&lt;HighlightRangeData&gt;&gt; m_rangesData; // TODO: use a HashSet instead of a Vector &lt;rdar://problem/57760614&gt;

Nit: Use FIXME instead.

&gt; Source/WebCore/dom/Range.cpp:48
&gt; +#include &quot;StaticRange.h&quot;

Why do we need to include StaticRange.h here?

&gt; Source/WebCore/dom/Range.h:47
&gt; +class StaticRange;

Ditto.

&gt; Source/WebCore/editing/VisibleSelection.cpp:106
&gt; +    validate();

We should assert that the caller has checked both start &amp; end belong to the same document here.
i.e. check that &amp;staticRange.startContainer()-&gt;treeScope() == &amp;staticRange.endContainer()-&gt;treeScope().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607326</commentid>
    <comment_count>6</comment_count>
      <attachid>387888</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-15 19:40:58 -0800</bug_when>
    <thetext>Created attachment 387888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607564</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-16 11:34:05 -0800</bug_when>
    <thetext>Looks like CSS highlight tests are failing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607837</commentid>
    <comment_count>8</comment_count>
      <attachid>388005</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-16 19:30:11 -0800</bug_when>
    <thetext>Created attachment 388005
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607882</commentid>
    <comment_count>9</comment_count>
      <attachid>388005</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-16 23:21:00 -0800</bug_when>
    <thetext>Comment on attachment 388005
Patch

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

&gt; Source/WebCore/dom/Document.cpp:2747
&gt; +        for (auto&amp; highlight : m_highlightMap-&gt;map()) {
&gt; +            for (auto&amp; rangeData : highlight.value-&gt;rangesData()) {

These iterations aren&apos;t safe because you&apos;re constructing VisibleSelection inside.
Constructing VisibleSelection can result in layout to be updated and execute arbitrary JS code.
We probably have to make a copy of highlight groups to a Vector instead.
For each highlight group, we also need to make a Vector of WeakPtr to range data or something.

&gt; Source/WebCore/dom/Document.cpp:2748
&gt; +                if ((rangeData-&gt;startPosition.isNotNull() &amp;&amp; rangeData-&gt;endPosition.isNotNull()) || (&amp;rangeData-&gt;range-&gt;startContainer()-&gt;treeScope() != &amp;rangeData-&gt;range-&gt;endContainer()-&gt;treeScope()))

Hm... instead of using positions being null as a way of detecting positions not being set,
can we use Optional like Optional&lt;pair&lt;Position, Position&gt;&gt; or add a dedicated boolean flag?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608252</commentid>
    <comment_count>10</comment_count>
      <attachid>388101</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-17 15:42:57 -0800</bug_when>
    <thetext>Created attachment 388101
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608281</commentid>
    <comment_count>11</comment_count>
      <attachid>388101</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-01-17 16:29:12 -0800</bug_when>
    <thetext>Comment on attachment 388101
Patch

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

&gt; Source/WebCore/dom/Document.cpp:2751
&gt; +                if ((!rangeData-&gt;startPosition.hasValue() || !rangeData-&gt;endPosition.hasValue())
&gt; +                    &amp;&amp; (&amp;rangeData-&gt;range-&gt;startContainer()-&gt;treeScope() == &amp;rangeData-&gt;range-&gt;endContainer()-&gt;treeScope()))
&gt; +                    rangesData.append(makeWeakPtr(rangeData.ptr()));

This is a complicated expression. Can we continue early instead? i.e.
if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
    continue;
if (rangeData-&gt;range-&gt;startContainer()-&gt;treeScope() != &amp;rangeData-&gt;range-&gt;endContainer()-&gt;treeScope())
    continue;
rangesData.append(makeWeakPtr(rangeData.ptr()));

&gt; Source/WebCore/dom/Document.cpp:2765
&gt; +            if (weakRangeData.get()) {

Continue when !weakRangeData instead?

&gt; Source/WebCore/dom/Document.cpp:2766
&gt; +                if (!rangeData-&gt;startPosition.hasValue())

I don&apos;t think we need to check this since it&apos;s unlikely that Page::updateRendering would have ran by updating the layout.
Even if did, there is no harm in re-setting to the new position value.

&gt; Source/WebCore/dom/Document.cpp:2767
&gt; +                    rangeData-&gt;startPosition = visibleSelection.visibleStart().deepEquivalent();

Need to do this instead: rangeData-&gt;startPosition = startPosition

&gt; Source/WebCore/dom/Document.cpp:2768
&gt; +                if (!rangeData-&gt;endPosition.hasValue())

Ditto.

&gt; Source/WebCore/dom/Document.cpp:2769
&gt; +                    rangeData-&gt;endPosition = visibleSelection.visibleEnd().deepEquivalent();

Ditto.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:1047
&gt; +            if (rangeData-&gt;startPosition.hasValue() &amp;&amp; rangeData-&gt;endPosition.hasValue()) {

Nit: It&apos;s more succinct to say: rangeData-&gt;startPosition &amp;&amp; rangeData-&gt;endPosition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608313</commentid>
    <comment_count>12</comment_count>
      <attachid>388101</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-17 16:49:32 -0800</bug_when>
    <thetext>Comment on attachment 388101
Patch

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

&gt; Source/WebCore/Modules/highlight/HighlightRangeGroup.h:38
&gt; +class Position;

Nit - you don&apos;t need the forward declaration here if you also #include &quot;Position.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608324</commentid>
    <comment_count>13</comment_count>
      <attachid>388121</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-17 17:30:26 -0800</bug_when>
    <thetext>Created attachment 388121
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608337</commentid>
    <comment_count>14</comment_count>
      <attachid>388121</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-17 18:13:22 -0800</bug_when>
    <thetext>Comment on attachment 388121
Patch for landing

Clearing flags on attachment: 388121

Committed r254785: &lt;https://trac.webkit.org/changeset/254785&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608338</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-17 18:13:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608339</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-17 18:14:12 -0800</bug_when>
    <thetext>&lt;rdar://problem/58703201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1613110</commentid>
    <comment_count>17</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-01-30 13:15:46 -0800</bug_when>
    <thetext>*** Bug 205529 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387845</attachid>
            <date>2020-01-15 14:14:53 -0800</date>
            <delta_ts>2020-01-15 17:12:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200115141452.patch</filename>
            <type>text/plain</type>
            <size>24208</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uNjRiZjBiMzcyNDZlOGU4YzAwYmIxOTJlM2IyNjM0
N2E2MzYwMzQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIFN0YXRpY1Jh
bmdlIGlzIGFkZGVkIHRvIGEgSGlnaGxpZ2h0UmFuZ2VHcm91cCwgc2NoZWR1bGUgdGhlIGNyZWF0
aW9uIG9mIGEgUG9zaXRpb24gb3V0c2lkZSBvZiB0aGUgCisgICAgICAgIFJlbmRlcmluZyBjb2Rl
LCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJsZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBt
YWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxzbywgYWRkIHRoZSBhYmlsaXR5IHRvIG1h
a2UgYSBSYW5nZSBmcm9tIGEgU3RhdGljIFJhbmdlIHRvIHNpbXBsaWZ5IHRoZSBjb2RlIGFuZCBo
ZWxwIGV4cGFuZCBzcGVjIGNvdmVyYWdlLgorCisgICAgICAgIFVwZGF0ZWQgVGVzdDoKKyAgICAg
ICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbDoKKyAg
ICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtcmVwbGFjZS5odG1sOgorICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sOgorCisgICAgICAgICogTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpI
aWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlrZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZSk6CisgICAgICAgICogTW9k
dWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oOgorICAgICAgICAoV2ViQ29yZTo6
SGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0
UmFuZ2VEYXRhOjpIaWdobGlnaHRSYW5nZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0UmFuZ2VHcm91cDo6cmFuZ2VzRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSYW5nZUdyb3VwOjpyYW5nZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsOgorICAgICAgICAqIGRvbS9SYW5n
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZTo6Y3JlYXRlKToKKyAgICAgICAgKiBkb20v
UmFuZ2UuaDoKKyAgICAgICAgKiBlZGl0aW5nL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyOjpzY2hlZHVs
ZU9ic2VydmFydGlvblVwZGF0ZSk6CisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRz
Rm9ySGlnaGxpZ2h0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdl
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnNlbGVjdGlv
blN0YXRlRm9yUmVuZGVyZXIpOgorCiAyMDIwLTAxLTEzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5r
aXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgUGxh
eVN0YXRpb24gYW5kIGNsYW5nLWNsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAppbmRleCBkZDUzY2JiZWQyYTZm
YjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVhZjY4Li4yNWExYTljMGFiZjg2ZDQ0OGNhNzQwZmZlNDc3
M2YxNzA1ODhlMWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApAQCAtMjYsNDggKzI2LDY5IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIgogCisjaW5j
bHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RP
TVNldExpa2UuaCIKICNpbmNsdWRlICJKU1N0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiUHJvcGVy
dHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRl
ICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgorI2luY2x1ZGUg
IlZpc2libGVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8
U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCitIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5n
ZUdyb3VwKERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAg
IDogbV9kb2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCiB7Ci0gICAgbV9yYW5nZXMuYXBw
ZW5kKFdURk1vdmUocmFuZ2UpKTsKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsK
KyAgICBhZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7CiB9CiAKLVJlZjxIaWdobGlnaHRSYW5n
ZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQor
UmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFN0YXRpY1JhbmdlJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChkb2N1bWVudCwgcmFuZ2UpKTsKIH0KIAogdm9pZCBI
aWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJiBzZXQp
CiB7Ci0gICAgZm9yIChhdXRvJiByYW5nZSA6IG1fcmFuZ2VzKQotICAgICAgICBzZXQuYWRkPElE
TEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlKTsKKyAgICBmb3IgKGF1dG8mIHJhbmdlRGF0
YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGljUmFu
Z2U+PihyYW5nZURhdGEtPnJhbmdlKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjpy
ZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJu
IG1fcmFuZ2VzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1Jh
bmdlPiYgY3VycmVudCkgewotICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsK
KyAgICByZXR1cm4gbV9yYW5nZXNEYXRhLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29u
c3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1
cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7CiAgICAgfSk7CiB9CiAKIHZvaWQgSGln
aGxpZ2h0UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSgpCiB7Ci0gICAgbV9yYW5nZXMuY2xl
YXIoKTsKKyAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5n
ZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChub3RG
b3VuZCAhPSBtX3Jhbmdlcy5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1Jh
bmdlPiYgY3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsgfSkpCisgICAg
aWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3Qg
UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsgcmV0dXJuIGN1cnJlbnQuZ2V0KCku
cmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7IH0pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9y
YW5nZXMuYXBwZW5kKG1ha2VSZWYocmFuZ2UpKTsKKyAgICAKKyAgICBhdXRvIGhpZ2hpZ2h0UmFu
Z2VEYXRhID0gSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUoV1RGTW92ZShyYW5nZSkpOworICAg
IAorICAgIG1fZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRl
cm5hbEFzeW5jVGFzaywgW3dlYWtEYXRhID0gbWFrZVdlYWtQdHIoaGlnaGlnaHRSYW5nZURhdGEu
cHRyKCkpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKV0geworICAgICAgICBhdXRvKiBk
YXRhID0gd2Vha0RhdGEuZ2V0KCk7CisgICAgICAgIGF1dG8qIHJhbmdlR3JvdXAgPSB3ZWFrVGhp
cy5nZXQoKTsKKyAgICAgICAgaWYgKCFkYXRhIHx8ICFyYW5nZUdyb3VwKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAKKyAgICAgICAgYXV0byB2aXNpYmxlU2VsZWN0aW9uID0gVmlzaWJs
ZVNlbGVjdGlvbihSYW5nZTo6Y3JlYXRlKCpyYW5nZUdyb3VwLT5tX2RvY3VtZW50LmdldCgpLCBk
YXRhLT5yYW5nZSkpOworICAgICAgICBkYXRhLT5zdGFydFBvc2l0aW9uID0gdmlzaWJsZVNlbGVj
dGlvbi52aXNpYmxlU3RhcnQoKS5kZWVwRXF1aXZhbGVudCgpOworICAgICAgICBkYXRhLT5lbmRQ
b3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFsZW50KCk7
CisgICAgfSk7CisgICAgCisgICAgbV9yYW5nZXNEYXRhLmFwcGVuZChXVEZNb3ZlKGhpZ2hpZ2h0
UmFuZ2VEYXRhKSk7CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAppbmRl
eCA5NzI0NTA2M2Q1NmFmMWEyYjQ0ZTAxZTdhMWE0OTFjMmMyYjhiN2I2Li41M2ZhMmQ5MGY4OTlk
OGRjNmMwMzJjNzcwYjhjNTIzNWFiMGMxZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAi
UG9zaXRpb24uaCIKICNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAKQEAgLTM0LDI0ICszNSw0MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFz
cyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgRE9NU2V0QWRhcHRlcjsKIGNsYXNzIFN0YXRp
Y1JhbmdlOworY2xhc3MgUG9zaXRpb247CiBjbGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFy
YXRpb247CiAKLWNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxI
aWdobGlnaHRSYW5nZUdyb3VwPiB7CitzdHJ1Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhIDogUmVmQ291
bnRlZDxIaWdobGlnaHRSYW5nZURhdGE+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0
UmFuZ2VEYXRhPiB7CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShT
dGF0aWNSYW5nZSYmIHJhbmdlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlnaGxpZ2h0UmFuZ2VEYXRhKFdURk1vdmUocmFuZ2UpKSk7CisgICAgfQorICAgIFJlZjxTdGF0
aWNSYW5nZT4gcmFuZ2U7CisgICAgUG9zaXRpb24gc3RhcnRQb3NpdGlvbjsKKyAgICBQb3NpdGlv
biBlbmRQb3NpdGlvbjsKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoU3RhdGljUmFuZ2UmJiByYW5n
ZSkKKyAgICAgICAgOiByYW5nZShtYWtlUmVmKHJhbmdlKSkKKyAgICB7CisgICAgfQorfTsKKwor
Y2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodFJh
bmdlR3JvdXA+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRlKFN0YXRp
Y1JhbmdlJik7CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBjcmVhdGUoRG9j
dW1lbnQmLCBTdGF0aWNSYW5nZSYpOwogICAgIAogICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgp
OwogICAgIGJvb2wgYWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJik7CiAgICAgYm9vbCByZW1vdmVG
cm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNldExp
a2UoRE9NU2V0QWRhcHRlciYpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxSZWY8U3RhdGljUmFu
Z2U+PiYgcmFuZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKyAgICBjb25zdCBWZWN0
b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4g
bV9yYW5nZXNEYXRhOyB9CiAKICAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0
eWxlRGVjbGFyYXRpb24mIHN0eWxlKCk7CiAgICAgCiBwcml2YXRlOgotICAgIFZlY3RvcjxSZWY8
U3RhdGljUmFuZ2U+PiBtX3JhbmdlczsgLy8gVE9ETzogdXNlIGEgSGFzaFNldCBpbnN0ZWFkIG9m
IGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KLSAgICBleHBsaWNpdCBIaWdobGln
aHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJik7CisgICAgVmVjdG9yPFJlZjxIaWdobGln
aHRSYW5nZURhdGE+PiBtX3Jhbmdlc0RhdGE7IC8vIFRPRE86IHVzZSBhIEhhc2hTZXQgaW5zdGVh
ZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+CisgICAgZXhwbGljaXQgSGln
aGxpZ2h0UmFuZ2VHcm91cChEb2N1bWVudCYsIFJlZjxTdGF0aWNSYW5nZT4mJik7CisgICAgCisg
ICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwK
aW5kZXggNGZjMDAxM2QzNDU2YjM5ODczOWNhNmQyYjJjNjc1MTFlMGIxODExNy4uZTZlYjcyZmMz
ODliN2Q1YWY3MWUxZDcwOTQwMmJlNzU3MDAyOTNjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGwKQEAgLTI1
LDYgKzI1LDcgQEAKIAogWwogICAgIENvbnN0cnVjdG9yKFN0YXRpY1JhbmdlIHJhbmdlKSwKKyAg
ICBDb25zdHJ1Y3RvckNhbGxXaXRoPURvY3VtZW50LAogICAgIEVuYWJsZWRBdFJ1bnRpbWU9SGln
aGxpZ2h0QVBJLAogICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUKIF0gaW50ZXJmYWNlIEhp
Z2hsaWdodFJhbmdlR3JvdXAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jhbmdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggOWMxMTM0MDVlMjc3NWNm
N2YwNWM3ZjhhYzNmYTE4MDBiM2Q0NTk3Zi4uMjE2ZmQxMDA3ZTkwYTU0ZjQ5MDllNTE1NTNmNDI3
NjdjNzY0OTM1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVk
ZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY29w
ZWRFdmVudFF1ZXVlLmgiCisjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJUZXh0
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24uaCIKICNpbmNsdWRlICJWaXNp
YmxlVW5pdHMuaCIKQEAgLTEyNCw2ICsxMjUsMTEgQEAgUmVmPFJhbmdlPiBSYW5nZTo6Y3JlYXRl
KERvY3VtZW50JiBvd25lckRvY3VtZW50LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHZpc2libGUK
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSYW5nZShvd25lckRvY3VtZW50LCBzdGFydC5hbmNo
b3JOb2RlKCksIHN0YXJ0LmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIGVuZC5hbmNob3JOb2Rl
KCksIGVuZC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpKSk7CiB9CiAKK1JlZjxSYW5nZT4gUmFu
Z2U6OmNyZWF0ZShEb2N1bWVudCYgb3duZXJEb2N1bWVudCwgY29uc3QgU3RhdGljUmFuZ2UmIHN0
YXRpY1JhbmdlKQoreworICAgIHJldHVybiBjcmVhdGUob3duZXJEb2N1bWVudCwgY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLnN0YXJ0Q29udGFpbmVyKCksIHN0YXRpY1Jh
bmdlLnN0YXJ0T2Zmc2V0KCkpLCBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oc3RhdGljUmFu
Z2UuZW5kQ29udGFpbmVyKCksIHN0YXRpY1JhbmdlLmVuZE9mZnNldCgpKSk7Cit9CisKIFJhbmdl
Ojp+UmFuZ2UoKQogewogICAgIG1fb3duZXJEb2N1bWVudC0+ZGV0YWNoUmFuZ2UoKnRoaXMpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuaAppbmRleCBiNDkzYzdjZDQ2ZDU1MTk1OTBlZmQ5N2U1ZGVjN2I5YzQ5YzQyYjZm
Li40ODNhY2Q1YTYyYjQ3YmQzNDU2N2Q0Y2EzOWVlZWRhOTEyMWJiYTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
aApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZVdpdGhJbmRleDsKIGNs
YXNzIFJlbmRlclRleHQ7CiBjbGFzcyBTZWxlY3Rpb25SZWN0OworY2xhc3MgU3RhdGljUmFuZ2U7
CiBjbGFzcyBUZXh0OwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCkBAIC01Myw2ICs1NCw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJhbmdlPiBjcmVhdGUoRG9j
dW1lbnQmLCBSZWZQdHI8Tm9kZT4mJiBzdGFydENvbnRhaW5lciwgaW50IHN0YXJ0T2Zmc2V0LCBS
ZWZQdHI8Tm9kZT4mJiBlbmRDb250YWluZXIsIGludCBlbmRPZmZzZXQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBSZWY8UmFuZ2U+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IFBvc2l0aW9u
JiwgY29uc3QgUG9zaXRpb24mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJhbmdl
PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxl
UG9zaXRpb24mKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFJhbmdlPiBjcmVhdGUo
RG9jdW1lbnQmLCBjb25zdCBTdGF0aWNSYW5nZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5SYW5n
ZSgpOwogCiAgICAgRG9jdW1lbnQmIG93bmVyRG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX293
bmVyRG9jdW1lbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFu
aXB1bGF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggY2RlOWE3OGM4ZmU3ZGExMzFlMTFmNDRmNGJi
MDkxYzVmZTZmMDJmMy4uNzZlYTBlZjYyNjk1YjdkMTUwZGQzYTg1N2ZkNjc1Y2I0MmY1MjQ3NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0TWFuaXB1bGF0aW9uQ29u
dHJvbGxlci5jcHAKQEAgLTIwNiw3ICsyMDYsNiBAQCB2b2lkIFRleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyOjpzY2hlZHVsZU9ic2VydmFydGlvblVwZGF0ZSgpCiB7CiAgICAgaWYgKCFtX2RvY3Vt
ZW50KQogICAgICAgICByZXR1cm47Ci0KICAgICBtX2RvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6SW50ZXJuYWxBc3luY1Rhc2ssIFt3ZWFrVGhpcyA9IG1ha2VXZWFr
UHRyKCp0aGlzKV0gewogICAgICAgICBhdXRvKiBjb250cm9sbGVyID0gd2Vha1RoaXMuZ2V0KCk7
CiAgICAgICAgIGlmICghY29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcAppbmRleCA5NjY5NzI4YTc5NjBiYmI0OTM5ZjUyNTE2NjI0Y2I2ZTkwNGUw
MDI1Li40Mzg5ZDY3MTAwOTgxZjY5ZDA5NzMxODFlODhlNzRjYzk5NWEzZDAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0xMDQzLDIwICsxMDQzLDIx
IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNG
b3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBw
YXJlbnRSZW5kZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdo
dCwgaGlnaGxpZ2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwogICAgICAgICBpZiAoIXJlbmRlclN0
eWxlKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGZvciAoYXV0byYgc3RhdGljUmFu
Z2UgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlcygpKSB7Ci0gICAgICAgICAgICBQb3NpdGlvbiBz
dGFydFBvcyA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS0+c3RhcnRD
b250YWluZXIoKSwgc3RhdGljUmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpOwotICAgICAgICAgICAgUG9z
aXRpb24gZW5kUG9zID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLT5l
bmRDb250YWluZXIoKSwgc3RhdGljUmFuZ2UtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZm9yIChh
dXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAg
ICAgICAgUG9zaXRpb24gc3RhcnRQb3MgPSByYW5nZURhdGEtPnN0YXJ0UG9zaXRpb247CisgICAg
ICAgICAgICBQb3NpdGlvbiBlbmRQb3MgPSByYW5nZURhdGEtPmVuZFBvc2l0aW9uOwogCiAgICAg
ICAgICAgICBpZiAoc3RhcnRQb3MuaXNOb3ROdWxsKCkgJiYgZW5kUG9zLmlzTm90TnVsbCgpKSB7
CiAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlcmVyID0gc3RhcnRQb3Mu
ZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsKICAgICAgICAgICAgICAgICBpbnQgc3RhcnRP
ZmZzZXQgPSBzdGFydFBvcy5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpOwogICAgICAgICAgICAg
ICAgIFJlbmRlck9iamVjdCogZW5kUmVuZGVyZXIgPSBlbmRQb3MuZGVwcmVjYXRlZE5vZGUoKS0+
cmVuZGVyZXIoKTsKICAgICAgICAgICAgICAgICBpbnQgZW5kT2Zmc2V0ID0gZW5kUG9zLmRlcHJl
Y2F0ZWRFZGl0aW5nT2Zmc2V0KCk7CisgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
QVNTRVJUKHN0YXJ0T2Zmc2V0ID49IDAgJiYgZW5kT2Zmc2V0ID49IDApOwogICAgICAgICAgICAg
ICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCiAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIGF1dG8gaGlnaGxpZ2h0RGF0YSA9IFNlbGVj
dGlvblJhbmdlRGF0YShyZW5kZXJlcigpLnZpZXcoKSk7Ci0gICAgICAgICAgICAgICAgaGlnaGxp
Z2h0RGF0YS5zZXRDb250ZXh0KHtzdGFydFJlbmRlcmVyLCBlbmRSZW5kZXJlciwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KHN0YXJ0T2Zmc2V0KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZE9mZnNl
dCl9KTsKKyAgICAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0RGF0YS5zZXRDb250ZXh0KHtzdGFy
dFJlbmRlcmVyLCBlbmRSZW5kZXJlciwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHN0YXJ0T2Zmc2V0
KSwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGVuZE9mZnNldCl9KTsKICAgICAgICAgICAgICAgICBh
dXRvIFtoaWdobGlnaHRTdGFydCwgaGlnaGxpZ2h0RW5kXSA9IGhpZ2hsaWdodFN0YXJ0RW5kKGhp
Z2hsaWdodERhdGEpOwogICAgICAgICAgICAgICAgIGlmIChoaWdobGlnaHRTdGFydCA8IGhpZ2hs
aWdodEVuZCkKICAgICAgICAgICAgICAgICAgICAgbWFya2VkVGV4dHMuYXBwZW5kKHsgaGlnaGxp
Z2h0U3RhcnQsIGhpZ2hsaWdodEVuZCwgTWFya2VkVGV4dDo6SGlnaGxpZ2h0LCBudWxscHRyLCBo
aWdobGlnaHQua2V5IH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Nl
bGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9u
UmFuZ2VEYXRhLmNwcAppbmRleCA5ODQ0MTlmZGYxZGRiNzNkMDNjZTMyZWNkMGU2ZWJiMTExMTY4
MmRlLi41NmUzYzE1NmRkNGI4MzYyYzczZjFiN2U0N2Q0ZTVlZDgzNWYzOTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMTY3LDEz
ICsxNjcsMTMgQEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBTZWxlY3Rpb25SYW5nZURh
dGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIoUmVuZGUKICAgICAvLyBQbGFubmVkIGZpeCBp
biBhIGZvbGxvd3VwOiA8cmRhcjovL3Byb2JsZW0vNTgwOTU5MjM+CiAgICAgLy8gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUyOQogICAgIAotICAgIGlmICgmcmVu
ZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgcmVuZGVyZXIuaXNEZXNjZW5k
YW50T2YobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpKSB7CisgICAgaWYgKCZyZW5kZXJlciA9
PSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSAvKnx8IHJlbmRlcmVyLmlzRGVzY2VuZGFudE9m
KG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKSovKSB7CiAgICAgICAgIGlmIChtX3NlbGVjdGlv
bkNvbnRleHQuc3RhcnQoKSAmJiBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkgJiYgbV9zZWxlY3Rp
b25Db250ZXh0LnN0YXJ0KCkgPT0gbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpKQogICAgICAgICAg
ICAgcmV0dXJuIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uQm90aDsKICAgICAgICAgaWYgKG1fc2Vs
ZWN0aW9uQ29udGV4dC5zdGFydCgpKQogICAgICAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6
U2VsZWN0aW9uU3RhcnQ7CiAgICAgfQotICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25D
b250ZXh0LmVuZCgpIHx8IHJlbmRlcmVyLmlzRGVzY2VuZGFudE9mKG1fc2VsZWN0aW9uQ29udGV4
dC5lbmQoKSkpCisgICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkg
Lyp8fCByZW5kZXJlci5pc0Rlc2NlbmRhbnRPZihtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpKi8p
CiAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkVuZDsKIAogICAgIFJlbmRl
ck9iamVjdCogc2VsZWN0aW9uRW5kID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYzA1OTZlOGZlODFjODI1
M2UzYjY2YTM4ODk1OWU2ZjNhYjgxNzFjLi45ODQ3OTVjOThjZDUzNDYzODA0NDg1MWI3YjljYzU2
ZTQ5MTJiOTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMTUgIE1lZ2FuIEdhcmRu
ZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgVmlzaWJsZSBQb3Np
dGlvbiB0byBjYWxjdWxhdGUgUG9zaXRpb25zIGZvciBoaWdobGlnaHRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYzMTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGhpZ2hsaWdodC9yZXNvdXJjZXMv
aGlnaGxpZ2h0LWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sOgorICAgICAgICAqIGh0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWw6
CisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0
LXJlcGxhY2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LXRleHQuaHRtbDoKKwogMjAyMC0wMS0xMyAgQ2hyaXMgTG9yZCAgPGNsb3JkQGln
YWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjUzNjgzKTogW0dUS11bV1BFXSBMb3Rz
IG9mIG9mZnNjcmVlbi1jYW52YXMgV1BUIHRlc3RzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sCmluZGV4IDAyN2Rh
ZjQzMGUyYWE3ZjI1YjNjYTkzYWJkOWRjYWM1YWE2Zjk4OTkuLjg4NDg4N2I4MjdlNjk1YTA4NDA5
OTRlYmIwMDcxN2E0YjEyYTE5M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9y
ZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0
L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbApAQCAtMTMsNiArMTMsNiBAQAogCiA8c2Ny
aXB0PgogbGV0IGhpZ2hsaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdoaWdobGlnaHQn
KTsKLWxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LCBzdGFydE9mZnNldDogMCwg
ZW5kQ29udGFpbmVyOiBoaWdobGlnaHQsIGVuZE9mZnNldDogNH0pKTsKK2xldCBoaWdobGlnaHRS
YW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRD
b250YWluZXI6IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CiBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5o
dG1sCmluZGV4IGUyMDJjOTk4MWJjM2ExMTk5YzViNDU1YTFkMjY3MzJlM2JiMzc1ZjkuLmJhZjcx
ZTA5NmU3ZDc0NGE0NDQxNzMyNWYwYWFiZTI2MmI2OTc5OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3Mt
ZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKQEAgLTM0LDEyICszNCwx
MiBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RleHQzJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGV4dDQnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXh0NScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudDEsIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MSwg
ZW5kT2Zmc2V0OiA3fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogdGV4
dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogN30pKTsKIAotICAgICAgICBsZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEsIHN0YXJ0T2Zmc2V0OiAxMCwgZW5k
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIsIGVuZE9mZnNldDogNH0pKTsKLSAgICAgICAgaGlnaGxp
Z2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRF
bGVtZW50Miwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MywgZW5k
T2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhpZ2hsaWdo
dFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAgICAgICAgbGV0IGhp
Z2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLCBzdGFydE9mZnNldDogMTAsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQ1LCBlbmRPZmZzZXQ6IDEyfSkpOworICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDEyfSkpOwogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGln
aHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwogICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQo
ImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4
dC1jYXNjYWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1h
cGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCmluZGV4IDA1MzRhYjUzMTM3NzhmYTM0Njkz
NWYwNmQ4NThkMmUzM2ViMGRkMzUuLmNkZTk3YzRiZmY3NGI3ZjcyOGZmMjk3YjdlYjM4NzA4MWI2
OGIwZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbApAQCAt
MjYsOCArMjYsOCBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQxID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3RleHQxJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGV4dDInKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50MyA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MycpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VH
cm91cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50MSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQxLCBlbmRPZmZzZXQ6IDN9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAuYWRk
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Miwgc3RhcnRPZmZz
ZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLCBlbmRPZmZzZXQ6IDl9KSk7CisgICAg
ICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0s
IHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDN9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA5fSkpOwogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1o
aWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKICAgICA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC1yZXBsYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCmluZGV4IDE3YWMxZDZkZDAyZjljNWNh
OWQ5MjQ5MGY3N2Y0Y2FhMDY1ZmRlNDcuLjcwMTNhNjYzMzVlYmU0NjI1YTQ0YzdlNjNjZmRmMDdi
NjcyY2FiNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbApA
QCAtMTgsMTAgKzE4LDEwIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgdGV4dEVsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKLSAgICAgICAgbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0pKTsK
IAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRP
ZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogNH0pKTsKLSAg
ICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxl
bWVudCwgZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCisgICAgICAgIGxldCBoaWdobGlnaHRSYW5n
ZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAg
ICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsgICAgICAg
IAogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdo
bGlnaHRSYW5nZUdyb3VwMSk7CiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1o
aWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5o
dG1sCmluZGV4IDQ2YTVhN2E3NDE4MWRkYTZlMzBiN2EyMzM0YTBlMWM1ZmUxOGRlMWMuLjRhYmY0
MzAwMjgwYThhODMxOTdlODIyOWQ4NDg4YzgyMzYyMDg2YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC5odG1sCkBAIC0yNiwxNCArMjYsMTQgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxl
dCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAg
ICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDEs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0
IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRP
ZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAyfSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdo
bGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVt
ZW50LCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0
OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWlu
ZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAzLCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsK
KyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNn0pKTsKIAot
ICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRPZmZz
ZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogOH0pKTsKLSAgICAg
ICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogOSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVu
dCwgZW5kT2Zmc2V0OiAxMH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDog
MTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMTN9KSk7CisgICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogOH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiA5LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogMTB9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAxM30pKTsKICAgICAgICAgCiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387873</attachid>
            <date>2020-01-15 17:12:45 -0800</date>
            <delta_ts>2020-01-15 18:08:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200115171244.patch</filename>
            <type>text/plain</type>
            <size>23415</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uYTE4OGJlNmVhOTZhZGRjNDM1ZWI0OTg2YmY2ZTM5
NTk5MmQyNzIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIFN0YXRpY1Jh
bmdlIGlzIGFkZGVkIHRvIGEgSGlnaGxpZ2h0UmFuZ2VHcm91cCwgc2NoZWR1bGUgdGhlIGNyZWF0
aW9uIG9mIGEgUG9zaXRpb24gb3V0c2lkZSBvZiB0aGUgCisgICAgICAgIFJlbmRlcmluZyBjb2Rl
LCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJsZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBt
YWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxzbywgYWRkIHRoZSBhYmlsaXR5IHRvIG1h
a2UgYSBWaXNpYmxlU2VsZWN0aW9uIGZyb20gYSBTdGF0aWMgUmFuZ2UgdG8gc2ltcGxpZnkgdGhl
IGNvZGUuCisKKyAgICAgICAgVXBkYXRlZCBUZXN0OgorICAgICAgICAqIExheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVu
dHMuaHRtbDoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sOgorICAgICAgICAqIExheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0
bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC10ZXh0Lmh0bWw6CisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdl
R3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6OkhpZ2hsaWdo
dFJhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyYW5n
ZXNEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJh
bmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29sbGVjdE1h
cmtlZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVj
dGlvblJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIpOgorCiAyMDIwLTAxLTEzICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgUGxheVN0YXRpb24gYW5kIGNsYW5nLWNsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAppbmRleCBkZDUz
Y2JiZWQyYTZmYjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVhZjY4Li5kM2UwNDAxOTBiOTNlZTQ0MGQ5
Zjk2YTg1NjExZmZhYjI3ODJkMjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApAQCAtMjYsNDggKzI2LDcw
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
IgogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNs
dWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgogI2luY2x1ZGUgIkpT
U3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24u
aCIKKyNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCisjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWYuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1IaWdobGlnaHRSYW5n
ZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKK0hp
Z2hsaWdodFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoRG9jdW1lbnQmIGRvY3VtZW50
LCBSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgOiBtX2RvY3VtZW50KG1ha2VXZWFrUHRy
KGRvY3VtZW50KSkKIHsKLSAgICBtX3Jhbmdlcy5hcHBlbmQoV1RGTW92ZShyYW5nZSkpOworICAg
IGF1dG8gbXlSYW5nZSA9IFdURk1vdmUocmFuZ2UpOworICAgIGFkZFRvU2V0TGlrZShteVJhbmdl
LmdldCgpKTsKIH0KIAotUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3Jv
dXA6OmNyZWF0ZShTdGF0aWNSYW5nZSYgcmFuZ2UpCitSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4g
SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgU3RhdGljUmFu
Z2UmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlR3Jv
dXAocmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZUdyb3Vw
KGRvY3VtZW50LCByYW5nZSkpOwogfQogCiB2b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRp
YWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImIHNldCkKIHsKLSAgICBmb3IgKGF1dG8mIHJhbmdl
IDogbV9yYW5nZXMpCi0gICAgICAgIHNldC5hZGQ8SURMSW50ZXJmYWNlPFN0YXRpY1JhbmdlPj4o
cmFuZ2UpOworICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAg
ICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOwog
fQogCiBib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0
YXRpY1JhbmdlJiByYW5nZSkKIHsKLSAgICByZXR1cm4gbV9yYW5nZXMucmVtb3ZlRmlyc3RNYXRj
aGluZyhbJnJhbmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7Ci0gICAgICAg
IHJldHVybiBjdXJyZW50LmdldCgpID09IHJhbmdlOworICAgIHJldHVybiBtX3Jhbmdlc0RhdGEu
cmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRh
PiYgY3VycmVudCkgeworICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9
PSByYW5nZTsKICAgICB9KTsKIH0KIAogdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZy
b21TZXRMaWtlKCkKIHsKLSAgICBtX3Jhbmdlcy5jbGVhcigpOworICAgIG1fcmFuZ2VzRGF0YS5j
bGVhcigpOwogfQogCiBib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZShTdGF0
aWNSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzLmZpbmRNYXRj
aGluZyhbJnJhbmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7IHJldHVybiBj
dXJyZW50LmdldCgpID09IHJhbmdlOyB9KSkKKyAgICBpZiAobm90Rm91bmQgIT0gbV9yYW5nZXNE
YXRhLmZpbmRNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYg
Y3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsgfSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBtX3Jhbmdlcy5hcHBlbmQobWFrZVJlZihyYW5n
ZSkpOworICAgIAorICAgIGF1dG8gaGlnaGlnaHRSYW5nZURhdGEgPSBIaWdobGlnaHRSYW5nZURh
dGE6OmNyZWF0ZShXVEZNb3ZlKHJhbmdlKSk7CisgICAgCisgICAgbV9kb2N1bWVudC0+ZXZlbnRM
b29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkludGVybmFsQXN5bmNUYXNrLCBbd2Vha0RhdGEg
PSBtYWtlV2Vha1B0cihoaWdoaWdodFJhbmdlRGF0YS5wdHIoKSksIHdlYWtUaGlzID0gbWFrZVdl
YWtQdHIoKnRoaXMpXSB7CisgICAgICAgIGF1dG8qIGRhdGEgPSB3ZWFrRGF0YS5nZXQoKTsKKyAg
ICAgICAgYXV0byogcmFuZ2VHcm91cCA9IHdlYWtUaGlzLmdldCgpOworICAgICAgICBpZiAoIWRh
dGEgfHwgIXJhbmdlR3JvdXApCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIAorICAgICAg
ICBhdXRvIHZpc2libGVTZWxlY3Rpb24gPSBWaXNpYmxlU2VsZWN0aW9uKGRhdGEtPnJhbmdlKTsK
KyAgICAgICAgZGF0YS0+c3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZVN0
YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKKyAgICAgICAgZGF0YS0+ZW5kUG9zaXRpb24gPSB2aXNp
YmxlU2VsZWN0aW9uLnZpc2libGVFbmQoKS5kZWVwRXF1aXZhbGVudCgpOworICAgIH0pOworICAg
IAorICAgIG1fcmFuZ2VzRGF0YS5hcHBlbmQoV1RGTW92ZShoaWdoaWdodFJhbmdlRGF0YSkpOwor
ICAgIAogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKaW5kZXggOTcyNDUwNjNkNTZh
ZjFhMmI0NGUwMWU3YTFhNDkxYzJjMmI4YjdiNi4uOTg3NjZiNjQ0YWI0YzQ5NWU0ZTcwMDUzZGIz
YjNiMzY2ZTA4NzdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGln
aHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAj
aW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCkBA
IC0zNCwyNCArMzUsNDIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNs
YXJhdGlvbjsKIGNsYXNzIERPTVNldEFkYXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKK2NsYXNz
IFBvc2l0aW9uOwogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOwogCi1jbGFz
cyBIaWdobGlnaHRSYW5nZUdyb3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VH
cm91cD4geworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0
UmFuZ2VEYXRhPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4gewor
ICAgIAorICAgIEhpZ2hsaWdodFJhbmdlRGF0YShTdGF0aWNSYW5nZSYmIHJhbmdlKQorICAgICAg
ICA6IHJhbmdlKG1ha2VSZWYocmFuZ2UpKQorICAgIHsKKyAgICB9CisgICAgc3RhdGljIFJlZjxI
aWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShTdGF0aWNSYW5nZSYmIHJhbmdlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VEYXRhKFdURk1vdmUocmFu
Z2UpKSk7CisgICAgfQorICAgIAorICAgIFJlZjxTdGF0aWNSYW5nZT4gcmFuZ2U7CisgICAgUG9z
aXRpb24gc3RhcnRQb3NpdGlvbjsKKyAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbjsKK307CisKK2Ns
YXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRSYW5n
ZUdyb3VwPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNS
YW5nZSYpOworICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRlKERvY3Vt
ZW50JiwgU3RhdGljUmFuZ2UmKTsKICAgICAKICAgICB2b2lkIGNsZWFyRnJvbVNldExpa2UoKTsK
ICAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYpOwogICAgIGJvb2wgcmVtb3ZlRnJv
bVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsKICAgICB2b2lkIGluaXRpYWxpemVTZXRMaWtl
KERPTVNldEFkYXB0ZXImKTsKICAgICAKLSAgICBjb25zdCBWZWN0b3I8UmVmPFN0YXRpY1Jhbmdl
Pj4mIHJhbmdlcygpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzOyB9CisgICAgY29uc3QgVmVjdG9y
PFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiYgcmFuZ2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFuZ2VzRGF0YTsgfQogCiAgICAgLy8gRklYTUU6IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHls
ZURlY2xhcmF0aW9uJiBzdHlsZSgpOwogICAgIAogcHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPFN0
YXRpY1JhbmdlPj4gbV9yYW5nZXM7IC8vIFRPRE86IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBh
IFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0
UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYpOworICAgIFZlY3RvcjxSZWY8SGlnaGxpZ2h0
UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBUT0RPOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQg
b2YgYSBWZWN0b3IgPHJkYXI6Ly9wcm9ibGVtLzU3NzYwNjE0PgorICAgIGV4cGxpY2l0IEhpZ2hs
aWdodFJhbmdlR3JvdXAoRG9jdW1lbnQmLCBSZWY8U3RhdGljUmFuZ2U+JiYpOworICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmluZGV4IDRm
YzAwMTNkMzQ1NmIzOTg3MzljYTZkMmIyYzY3NTExZTBiMTgxMTcuLmU2ZWI3MmZjMzg5YjdkNWFm
NzFlMWQ3MDk0MDJiZTc1NzAwMjkzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCkBAIC0yNSw2ICsyNSw3
IEBACiAKIFsKICAgICBDb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSksCisgICAgQ29uc3Ry
dWN0b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQ
SSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRS
YW5nZUdyb3VwIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IDljMTEzNDA1ZTI3NzVjZjdmMDVjN2Y4
YWMzZmExODAwYjNkNDU5N2YuLmNhYzM3NWVmMzNiY2E0NTUxYThiMzYyZDZlOWMzZDgxMjE5ZGYy
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIlJlbmRl
clRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRR
dWV1ZS5oIgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRz
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oCmluZGV4IGI0OTNjN2NkNDZkNTUxOTU5MGVmZDk3ZTVkZWM3YjljNDlj
NDJiNmYuLmEwMWY4MmU3NWMxMmY2ZDlkNTlhMzZhMDE4YjExYzAxZWI1YWY0ZGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNzIE5vZGU7CiBjbGFzcyBOb2RlV2l0aEluZGV4
OwogY2xhc3MgUmVuZGVyVGV4dDsKIGNsYXNzIFNlbGVjdGlvblJlY3Q7CitjbGFzcyBTdGF0aWNS
YW5nZTsKIGNsYXNzIFRleHQ7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDA5YWE3MzJkNWEyNjJlNDBj
ODY3ODY4NTUwY2RkYTI4MDAxODQ5NTkuLjhiODJlNmFlYjAyZDE4ZTgzOTdmMjYxNGQyZTIxN2Nh
YjdmYmMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTdGF0
aWNSYW5nZS5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVV
bml0cy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC05Niw2ICs5NywxNSBAQCBWaXNpYmxlU2Vs
ZWN0aW9uOjpWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFJhbmdlJiByYW5nZSwgRUFmZmluaXR5IGFm
ZmluaXR5LCBib29sCiAgICAgdmFsaWRhdGUoKTsKIH0KIAorVmlzaWJsZVNlbGVjdGlvbjo6Vmlz
aWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYgc3RhdGljUmFuZ2UsIEVBZmZpbml0eSBh
ZmZpbml0eSwgYm9vbCBpc0RpcmVjdGlvbmFsKQorICAgIDogbV9iYXNlKGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5zdGFydENvbnRhaW5lcigpLCBzdGF0aWNSYW5nZS5z
dGFydE9mZnNldCgpKSkKKyAgICAsIG1fZXh0ZW50KGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihzdGF0aWNSYW5nZS5lbmRDb250YWluZXIoKSwgc3RhdGljUmFuZ2UuZW5kT2Zmc2V0KCkpKQor
ICAgICwgbV9hZmZpbml0eShhZmZpbml0eSkKKyAgICAsIG1faXNEaXJlY3Rpb25hbChpc0RpcmVj
dGlvbmFsKQoreworICAgIHZhbGlkYXRlKCk7Cit9CisKIFZpc2libGVTZWxlY3Rpb24gVmlzaWJs
ZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRlbnRzT2ZOb2RlKE5vZGUqIG5vZGUpCiB7CiAg
ICAgQVNTRVJUKCFlZGl0aW5nSWdub3Jlc0NvbnRlbnQoKm5vZGUpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKaW5kZXggYTk0M2RhOGE3NzcyZDZjY2NiZmUyYWM3
ZDhlZmZhMTQ3YjFmOGMxYS4uMmQ0MmQ4ZjdlZjFmYTIxZjI4OTAzM2ZhZDZiODMxZWEwYzNlM2Rk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKQEAgLTMxLDYg
KzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zaXRpb247CitjbGFzcyBT
dGF0aWNSYW5nZTsKIAogY29uc3QgRUFmZmluaXR5IFNFTF9ERUZBVUxUX0FGRklOSVRZID0gRE9X
TlNUUkVBTTsKIGVudW0gU2VsZWN0aW9uRGlyZWN0aW9uIDogdWludDhfdCB7IERpcmVjdGlvbkZv
cndhcmQsIERpcmVjdGlvbkJhY2t3YXJkLCBEaXJlY3Rpb25SaWdodCwgRGlyZWN0aW9uTGVmdCB9
OwpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAgICAgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBQ
b3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgRUFmZmluaXR5ID0gU0VMX0RFRkFVTFRfQUZGSU5J
VFksIGJvb2wgaXNEaXJlY3Rpb25hbCA9IGZhbHNlKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZp
c2libGVTZWxlY3Rpb24oY29uc3QgUmFuZ2UmLCBFQWZmaW5pdHkgPSBTRUxfREVGQVVMVF9BRkZJ
TklUWSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOworICAgIFdFQkNPUkVfRVhQT1JUIFZp
c2libGVTZWxlY3Rpb24oY29uc3QgU3RhdGljUmFuZ2UmLCBFQWZmaW5pdHkgPSBTRUxfREVGQVVM
VF9BRkZJTklUWSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwogICAgIAogICAgIFdFQkNP
UkVfRVhQT1JUIFZpc2libGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCBp
c0RpcmVjdGlvbmFsID0gZmFsc2UpOwogICAgIFdFQkNPUkVfRVhQT1JUIFZpc2libGVTZWxlY3Rp
b24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCBp
c0RpcmVjdGlvbmFsID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRl
eHRCb3guY3BwCmluZGV4IDk2Njk3MjhhNzk2MGJiYjQ5MzlmNTI1MTY2MjRjYjZlOTA0ZTAwMjUu
LjEzMzNmOTBjNGQ0NGNlZDc5OTdlNjk0NTVmYTA3ZTBlYTY1MGY2YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTEwNDMsOSArMTA0Myw5IEBAIFZl
Y3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JIaWdo
bGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRS
ZW5kZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGln
aGxpZ2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwogICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQog
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGZvciAoYXV0byYgc3RhdGljUmFuZ2UgOiBo
aWdobGlnaHQudmFsdWUtPnJhbmdlcygpKSB7Ci0gICAgICAgICAgICBQb3NpdGlvbiBzdGFydFBv
cyA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS0+c3RhcnRDb250YWlu
ZXIoKSwgc3RhdGljUmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpOwotICAgICAgICAgICAgUG9zaXRpb24g
ZW5kUG9zID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLT5lbmRDb250
YWluZXIoKSwgc3RhdGljUmFuZ2UtPmVuZE9mZnNldCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiBy
YW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAg
UG9zaXRpb24gc3RhcnRQb3MgPSByYW5nZURhdGEtPnN0YXJ0UG9zaXRpb247CisgICAgICAgICAg
ICBQb3NpdGlvbiBlbmRQb3MgPSByYW5nZURhdGEtPmVuZFBvc2l0aW9uOwogCiAgICAgICAgICAg
ICBpZiAoc3RhcnRQb3MuaXNOb3ROdWxsKCkgJiYgZW5kUG9zLmlzTm90TnVsbCgpKSB7CiAgICAg
ICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBzdGFydFJlbmRlcmVyID0gc3RhcnRQb3MuZGVwcmVj
YXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Nl
bGVjdGlvblJhbmdlRGF0YS5jcHAKaW5kZXggOTg0NDE5ZmRmMWRkYjczZDAzY2UzMmVjZDBlNmVi
YjExMTE2ODJkZS4uZDIxODg5MDU3MDNmZTdjOWU5Nzg1NGZmMzI1YWQwNGUyYzRlYjYyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAg
LTE2NywxMyArMTY3LDEzIEBAIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uU3RhdGUgU2VsZWN0aW9u
UmFuZ2VEYXRhOjpzZWxlY3Rpb25TdGF0ZUZvclJlbmRlcmVyKFJlbmRlCiAgICAgLy8gUGxhbm5l
ZCBmaXggaW4gYSBmb2xsb3d1cDogPHJkYXI6Ly9wcm9ibGVtLzU4MDk1OTIzPgogICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU1MjkKICAgICAKLSAgICBp
ZiAoJnJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpIHx8IHJlbmRlcmVyLmlz
RGVzY2VuZGFudE9mKG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKSkgeworICAgIGlmICgmcmVu
ZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpIHsKICAgICAgICAgaWYgKG1fc2Vs
ZWN0aW9uQ29udGV4dC5zdGFydCgpICYmIG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSAmJiBtX3Nl
bGVjdGlvbkNvbnRleHQuc3RhcnQoKSA9PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpCiAgICAg
ICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25Cb3RoOwogICAgICAgICBpZiAo
bV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpCiAgICAgICAgICAgICByZXR1cm4gUmVuZGVyT2Jq
ZWN0OjpTZWxlY3Rpb25TdGFydDsKICAgICB9Ci0gICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVj
dGlvbkNvbnRleHQuZW5kKCkgfHwgcmVuZGVyZXIuaXNEZXNjZW5kYW50T2YobV9zZWxlY3Rpb25D
b250ZXh0LmVuZCgpKSkKKyAgICBpZiAoJnJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5l
bmQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uRW5kOwogCiAgICAg
UmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25FbmQgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFjMDU5NmU4ZmU4
MWM4MjUzZTNiNjZhMzg4OTU5ZTZmM2FiODE3MWMuLjk4NDc5NWM5OGNkNTM0NjM4MDQ0ODUxYjdi
OWNjNTZlNDkxMmI5MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMS0xNSAgTWVnYW4g
R2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBWaXNpYmxl
IFBvc2l0aW9uIHRvIGNhbGN1bGF0ZSBQb3NpdGlvbnMgZm9yIGhpZ2hsaWdodHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjMxNAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaGlnaGxpZ2h0L3Jlc291
cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWw6CisgICAgICAg
ICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUu
aHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtcmVwbGFjZS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sOgorCiAyMDIwLTAxLTEzICBDaHJpcyBMb3JkICA8Y2xv
cmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTM2ODMpOiBbR1RLXVtXUEVd
IExvdHMgb2Ygb2Zmc2NyZWVuLWNhbnZhcyBXUFQgdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbCBiL0xh
eW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKaW5kZXgg
MDI3ZGFmNDMwZTJhYTdmMjViM2NhOTNhYmQ5ZGNhYzVhYTZmOTg5OS4uODg0ODg3YjgyN2U2OTVh
MDg0MDk5NGViYjAwNzE3YTRiMTJhMTkzYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaGlnaGxp
Z2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9oaWdo
bGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sCkBAIC0xMyw2ICsxMyw2IEBACiAK
IDxzY3JpcHQ+CiBsZXQgaGlnaGxpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hpZ2hs
aWdodCcpOwotbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQsIHN0YXJ0T2Zmc2V0
OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodCwgZW5kT2Zmc2V0OiA0fSkpOworbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAs
IGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsK
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1l
bnRzLmh0bWwKaW5kZXggZTIwMmM5OTgxYmMzYTExOTljNWI0NTVhMWQyNjczMmUzYmIzNzVmOS4u
YmFmNzFlMDk2ZTdkNzQ0YTQ0NDE3MzI1ZjBhYWJlMjYyYjY5Nzk5YSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFj
cm9zcy1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbApAQCAtMzQsMTIg
KzM0LDEyIEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndGV4dDMnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0ZXh0NCcpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ1ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RleHQ1Jyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3Vw
MSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50MSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1l
bnQxLCBlbmRPZmZzZXQ6IDd9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA3fSkpOwogCi0gICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MSwgc3RhcnRPZmZzZXQ6IDEw
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MiwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBo
aWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
dGV4dEVsZW1lbnQyLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQz
LCBlbmRPZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRl
eHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0pKTsKKyAgICAgICAgaGln
aGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRl
eHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjog
dGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNX0pKTsKIAotICAgICAgICBs
ZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMsIHN0YXJ0T2Zmc2V0OiAxMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUsIGVuZE9mZnNldDogMTJ9KSk7CisgICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQ1LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogMTJ9KSk7CiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhp
Z2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CiAgICAgICAgIENTUy5oaWdobGlnaHRz
LnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC10ZXh0LWNhc2NhZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKaW5kZXggMDUzNGFiNTMxMzc3OGZh
MzQ2OTM1ZjA2ZDg1OGQyZTMzZWIwZGQzNS4uY2RlOTdjNGJmZjc0YjdmNzI4ZmYyOTdiN2ViMzg3
MDgxYjY4YjBkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdo
bGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1s
CkBAIC0yNiw4ICsyNiw4IEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDEgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50MiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MicpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQzID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQzJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudDEsIGVuZE9mZnNldDogM30pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91
cC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLCBzdGFy
dE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIsIGVuZE9mZnNldDogOX0pKTsK
KyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogM30pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cC5hZGQo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNb
MF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDl9KSk7CiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOwogICAgIDwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LXJlcGxhY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKaW5kZXggMTdhYzFkNmRkMDJm
OWM1Y2E5ZDkyNDkwZjc3ZjRjYWEwNjVmZGU0Ny4uNzAxM2E2NjMzNWViZTQ2MjVhNDRjN2U2M2Nm
ZGYwN2I2NzJjYWI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5o
dG1sCkBAIC0xOCwxMCArMTgsMTAgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGxldCB0ZXh0
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScpOwotICAgICAgICBsZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDEsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAy
fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRS
YW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBz
dGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiA0fSkp
OwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRl
eHRFbGVtZW50LCBlbmRPZmZzZXQ6IDZ9KSk7ICAgICAgICAKKyAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDMs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkp
OworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUsIGVu
ZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkpOyAg
ICAgICAgCiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIs
IGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10
ZXh0Lmh0bWwKaW5kZXggNDZhNWE3YTc0MTgxZGRhNmUzMGI3YTIzMzRhMGUxYzVmZTE4ZGUxYy4u
NGFiZjQzMDAyODBhOGE4MzE5N2U4MjI5ZDg0ODhjODIzNjIwODZiNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0Lmh0bWwKQEAgLTI2LDE0ICsyNiwxNCBAQAogCiAgICAgPHNjcmlwdD4KICAgICAg
ICAgbGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0g
ICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3Vw
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNl
dDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAg
ICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcg
U3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBz
dGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3
IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRP
ZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDUsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogNn0pKTsKKyAgICAgICAgbGV0IGhpZ2hs
aWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jhbmdl
KHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6
IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0
fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDUs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA2fSkp
OwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBzdGFy
dE9mZnNldDogNywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiA4fSkpOwot
ICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENv
bnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA5LCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50LCBlbmRPZmZzZXQ6IDEwfSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5h
ZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zm
c2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiAxM30pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiA4fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiAxMH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0
YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDEzfSkpOwogICAgICAgICAKIAogICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQo
ImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387882</attachid>
            <date>2020-01-15 18:08:21 -0800</date>
            <delta_ts>2020-01-15 19:40:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200115180820.patch</filename>
            <type>text/plain</type>
            <size>13745</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uYTE4OGJlNmVhOTZhZGRjNDM1ZWI0OTg2YmY2ZTM5
NTk5MmQyNzIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIFN0YXRpY1Jh
bmdlIGlzIGFkZGVkIHRvIGEgSGlnaGxpZ2h0UmFuZ2VHcm91cCwgc2NoZWR1bGUgdGhlIGNyZWF0
aW9uIG9mIGEgUG9zaXRpb24gb3V0c2lkZSBvZiB0aGUgCisgICAgICAgIFJlbmRlcmluZyBjb2Rl
LCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJsZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBt
YWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxzbywgYWRkIHRoZSBhYmlsaXR5IHRvIG1h
a2UgYSBWaXNpYmxlU2VsZWN0aW9uIGZyb20gYSBTdGF0aWMgUmFuZ2UgdG8gc2ltcGxpZnkgdGhl
IGNvZGUuCisKKyAgICAgICAgVXBkYXRlZCBUZXN0OgorICAgICAgICAqIExheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVu
dHMuaHRtbDoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sOgorICAgICAgICAqIExheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0
bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC10ZXh0Lmh0bWw6CisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdl
R3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6OkhpZ2hsaWdo
dFJhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyYW5n
ZXNEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJh
bmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29sbGVjdE1h
cmtlZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVj
dGlvblJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIpOgorCiAyMDIwLTAxLTEzICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgUGxheVN0YXRpb24gYW5kIGNsYW5nLWNsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAppbmRleCBkZDUz
Y2JiZWQyYTZmYjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVhZjY4Li44NmY2ZTUwY2Q4ODdiYTU5YThl
ODQzOGFjMmFiMzU4OTQ4ZmUyOGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApAQCAtMjYsNDggKzI2LDcw
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
IgogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNs
dWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgogI2luY2x1ZGUgIkpT
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJTdGF0
aWNSYW5nZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIlZpc2li
bGVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGlj
UmFuZ2U+JiYgcmFuZ2UpCitIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3Vw
KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgIDogbV9k
b2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCiB7Ci0gICAgbV9yYW5nZXMuYXBwZW5kKFdU
Rk1vdmUocmFuZ2UpKTsKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsKKyAgICBh
ZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7CiB9CiAKLVJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
PiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQorUmVmPEhp
Z2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIFN0YXRpY1JhbmdlJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChkb2N1bWVudCwgcmFuZ2UpKTsKIH0KIAogdm9pZCBIaWdobGln
aHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJiBzZXQpCiB7Ci0g
ICAgZm9yIChhdXRvJiByYW5nZSA6IG1fcmFuZ2VzKQotICAgICAgICBzZXQuYWRkPElETEludGVy
ZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlKTsKKyAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IG1f
cmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+Pihy
YW5nZURhdGEtPnJhbmdlKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVG
cm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIG1fcmFu
Z2VzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYg
Y3VycmVudCkgewotICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsKKyAgICBy
ZXR1cm4gbV9yYW5nZXNEYXRhLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVm
PEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQu
Z2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7CiAgICAgfSk7CiB9CiAKIHZvaWQgSGlnaGxpZ2h0
UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSgpCiB7Ci0gICAgbV9yYW5nZXMuY2xlYXIoKTsK
KyAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3Vw
OjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChub3RGb3VuZCAh
PSBtX3Jhbmdlcy5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYg
Y3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsgfSkpCisgICAgaWYgKG5v
dEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPEhp
Z2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsgcmV0dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2Uu
Z2V0KCkgPT0gcmFuZ2U7IH0pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9yYW5nZXMu
YXBwZW5kKG1ha2VSZWYocmFuZ2UpKTsKKyAgICAKKyAgICBhdXRvIGhpZ2hpZ2h0UmFuZ2VEYXRh
ID0gSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUocmFuZ2UpOworICAgIAorICAgIG1fZG9jdW1l
bnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywg
W3dlYWtEYXRhID0gbWFrZVdlYWtQdHIoaGlnaGlnaHRSYW5nZURhdGEucHRyKCkpXSB7CisgICAg
ICAgIGF1dG8qIGRhdGEgPSB3ZWFrRGF0YS5nZXQoKTsKKyAgICAgICAgaWYgKCFkYXRhIHx8ICFh
cmVOb2Rlc0Nvbm5lY3RlZEluU2FtZVRyZWVTY29wZShkYXRhLT5yYW5nZS0+c3RhcnRDb250YWlu
ZXIoKSwgZGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpKSkKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgCisgICAgICAgIGF1dG8gdmlzaWJsZVNlbGVjdGlvbiA9IFZpc2libGVTZWxlY3Rp
b24oZGF0YS0+cmFuZ2UpOworICAgICAgICBkYXRhLT5zdGFydFBvc2l0aW9uID0gdmlzaWJsZVNl
bGVjdGlvbi52aXNpYmxlU3RhcnQoKS5kZWVwRXF1aXZhbGVudCgpOworICAgICAgICBkYXRhLT5l
bmRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rpb24udmlzaWJsZUVuZCgpLmRlZXBFcXVpdmFsZW50
KCk7CisgICAgfSk7CisgICAgCisgICAgbV9yYW5nZXNEYXRhLmFwcGVuZChXVEZNb3ZlKGhpZ2hp
Z2h0UmFuZ2VEYXRhKSk7CisgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaApp
bmRleCA5NzI0NTA2M2Q1NmFmMWEyYjQ0ZTAxZTdhMWE0OTFjMmMyYjhiN2I2Li4zNDg4YjQ0MzI2
YWU1MDIzMGRlM2U3MWU1YTc4MDAxZDViZDg3NzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVk
ZSAiUG9zaXRpb24uaCIKICNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CiAKQEAgLTM0LDI0ICszNSw0MiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBDU1NTdHlsZURlY2xhcmF0aW9uOwogY2xhc3MgRE9NU2V0QWRhcHRlcjsKIGNsYXNzIFN0
YXRpY1JhbmdlOworY2xhc3MgUG9zaXRpb247CiBjbGFzcyBQcm9wZXJ0eVNldENTU1N0eWxlRGVj
bGFyYXRpb247CiAKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGEgOiBSZWZDb3VudGVkPEhpZ2hs
aWdodFJhbmdlRGF0YT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxIaWdobGlnaHRSYW5nZURhdGE+
IHsKKyAgICAKKyAgICBIaWdobGlnaHRSYW5nZURhdGEoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdl
KQorICAgICAgICA6IHJhbmdlKFdURk1vdmUocmFuZ2UpKQorICAgIHsKKyAgICB9CisgICAgc3Rh
dGljIFJlZjxIaWdobGlnaHRSYW5nZURhdGE+IGNyZWF0ZShSZWY8U3RhdGljUmFuZ2U+JiYgcmFu
Z2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHRSYW5nZURh
dGEoV1RGTW92ZShyYW5nZSkpKTsKKyAgICB9CisgICAgCisgICAgUmVmPFN0YXRpY1JhbmdlPiBy
YW5nZTsKKyAgICBQb3NpdGlvbiBzdGFydFBvc2l0aW9uOworICAgIFBvc2l0aW9uIGVuZFBvc2l0
aW9uOworfTsKKwogY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBSZWZDb3VudGVk
PEhpZ2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEhpZ2hsaWdo
dFJhbmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOworICAgIHN0YXRpYyBSZWY8SGlnaGxp
Z2h0UmFuZ2VHcm91cD4gY3JlYXRlKERvY3VtZW50JiwgU3RhdGljUmFuZ2UmKTsKICAgICAKICAg
ICB2b2lkIGNsZWFyRnJvbVNldExpa2UoKTsKICAgICBib29sIGFkZFRvU2V0TGlrZShTdGF0aWNS
YW5nZSYpOwogICAgIGJvb2wgcmVtb3ZlRnJvbVNldExpa2UoY29uc3QgU3RhdGljUmFuZ2UmKTsK
ICAgICB2b2lkIGluaXRpYWxpemVTZXRMaWtlKERPTVNldEFkYXB0ZXImKTsKICAgICAKLSAgICBj
b25zdCBWZWN0b3I8UmVmPFN0YXRpY1JhbmdlPj4mIHJhbmdlcygpIGNvbnN0IHsgcmV0dXJuIG1f
cmFuZ2VzOyB9CisgICAgY29uc3QgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURhdGE+PiYgcmFu
Z2VzRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2VzRGF0YTsgfQogCiAgICAgLy8gRklYTUU6
IEFkZCBXRUJDT1JFX0VYUE9SVCBDU1NTdHlsZURlY2xhcmF0aW9uJiBzdHlsZSgpOwogICAgIAog
cHJpdmF0ZToKLSAgICBWZWN0b3I8UmVmPFN0YXRpY1JhbmdlPj4gbV9yYW5nZXM7IC8vIFRPRE86
IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2
MTQ+Ci0gICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYp
OworICAgIFZlY3RvcjxSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gbV9yYW5nZXNEYXRhOyAvLyBU
T0RPOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQgb2YgYSBWZWN0b3IgPHJkYXI6Ly9wcm9ibGVtLzU3
NzYwNjE0PgorICAgIGV4cGxpY2l0IEhpZ2hsaWdodFJhbmdlR3JvdXAoRG9jdW1lbnQmLCBSZWY8
U3RhdGljUmFuZ2U+JiYpOworICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiB9Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGln
aHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hs
aWdodFJhbmdlR3JvdXAuaWRsCmluZGV4IDRmYzAwMTNkMzQ1NmIzOTg3MzljYTZkMmIyYzY3NTEx
ZTBiMTgxMTcuLmU2ZWI3MmZjMzg5YjdkNWFmNzFlMWQ3MDk0MDJiZTc1NzAwMjkzY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3Jv
dXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJh
bmdlR3JvdXAuaWRsCkBAIC0yNSw2ICsyNSw3IEBACiAKIFsKICAgICBDb25zdHJ1Y3RvcihTdGF0
aWNSYW5nZSByYW5nZSksCisgICAgQ29uc3RydWN0b3JDYWxsV2l0aD1Eb2N1bWVudCwKICAgICBF
bmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKICAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRh
YmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdyb3VwIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmlu
ZGV4IDljMTEzNDA1ZTI3NzVjZjdmMDVjN2Y4YWMzZmExODAwYjNkNDU5N2YuLmNhYzM3NWVmMzNi
Y2E0NTUxYThiMzYyZDZlOWMzZDgxMjE5ZGYyOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtNDUs
NiArNDUsNyBAQAogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCiAjaW5jbHVkZSAiU2NvcGVkRXZlbnRRdWV1ZS5oIgorI2luY2x1ZGUgIlN0YXRpY1Jhbmdl
LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9u
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGI0OTNjN2Nk
NDZkNTUxOTU5MGVmZDk3ZTVkZWM3YjljNDljNDJiNmYuLmEwMWY4MmU3NWMxMmY2ZDlkNTlhMzZh
MDE4YjExYzAxZWI1YWY0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC00NCw2ICs0NCw3IEBAIGNsYXNz
IE5vZGU7CiBjbGFzcyBOb2RlV2l0aEluZGV4OwogY2xhc3MgUmVuZGVyVGV4dDsKIGNsYXNzIFNl
bGVjdGlvblJlY3Q7CitjbGFzcyBTdGF0aWNSYW5nZTsKIGNsYXNzIFRleHQ7CiBjbGFzcyBWaXNp
YmxlUG9zaXRpb247CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwCmluZGV4IDA5YWE3MzJkNWEyNjJlNDBjODY3ODY4NTUwY2RkYTI4MDAxODQ5NTkuLjhiODJl
NmFlYjAyZDE4ZTgzOTdmMjYxNGQyZTIxN2NhYjdmYmMxYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBA
IC05Niw2ICs5NywxNSBAQCBWaXNpYmxlU2VsZWN0aW9uOjpWaXNpYmxlU2VsZWN0aW9uKGNvbnN0
IFJhbmdlJiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sCiAgICAgdmFsaWRhdGUoKTsK
IH0KIAorVmlzaWJsZVNlbGVjdGlvbjo6VmlzaWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5n
ZSYgc3RhdGljUmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBpc0RpcmVjdGlvbmFsKQor
ICAgIDogbV9iYXNlKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5zdGFy
dENvbnRhaW5lcigpLCBzdGF0aWNSYW5nZS5zdGFydE9mZnNldCgpKSkKKyAgICAsIG1fZXh0ZW50
KGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5lbmRDb250YWluZXIoKSwg
c3RhdGljUmFuZ2UuZW5kT2Zmc2V0KCkpKQorICAgICwgbV9hZmZpbml0eShhZmZpbml0eSkKKyAg
ICAsIG1faXNEaXJlY3Rpb25hbChpc0RpcmVjdGlvbmFsKQoreworICAgIHZhbGlkYXRlKCk7Cit9
CisKIFZpc2libGVTZWxlY3Rpb24gVmlzaWJsZVNlbGVjdGlvbjo6c2VsZWN0aW9uRnJvbUNvbnRl
bnRzT2ZOb2RlKE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFlZGl0aW5nSWdub3Jlc0NvbnRl
bnQoKm5vZGUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNl
bGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKaW5k
ZXggYTk0M2RhOGE3NzcyZDZjY2NiZmUyYWM3ZDhlZmZhMTQ3YjFmOGMxYS4uMmQ0MmQ4ZjdlZjFm
YTIxZjI4OTAzM2ZhZDZiODMxZWEwYzNlM2RkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmgKQEAgLTMxLDYgKzMxLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgUG9zaXRpb247CitjbGFzcyBTdGF0aWNSYW5nZTsKIAogY29uc3QgRUFmZmluaXR5
IFNFTF9ERUZBVUxUX0FGRklOSVRZID0gRE9XTlNUUkVBTTsKIGVudW0gU2VsZWN0aW9uRGlyZWN0
aW9uIDogdWludDhfdCB7IERpcmVjdGlvbkZvcndhcmQsIERpcmVjdGlvbkJhY2t3YXJkLCBEaXJl
Y3Rpb25SaWdodCwgRGlyZWN0aW9uTGVmdCB9OwpAQCAtNDUsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBQb3NpdGlvbiYsIGNvbnN0IFBvc2l0aW9uJiwgRUFm
ZmluaXR5ID0gU0VMX0RFRkFVTFRfQUZGSU5JVFksIGJvb2wgaXNEaXJlY3Rpb25hbCA9IGZhbHNl
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFZpc2libGVTZWxlY3Rpb24oY29uc3QgUmFuZ2UmLCBF
QWZmaW5pdHkgPSBTRUxfREVGQVVMVF9BRkZJTklUWSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFs
c2UpOworICAgIFdFQkNPUkVfRVhQT1JUIFZpc2libGVTZWxlY3Rpb24oY29uc3QgU3RhdGljUmFu
Z2UmLCBFQWZmaW5pdHkgPSBTRUxfREVGQVVMVF9BRkZJTklUWSwgYm9vbCBpc0RpcmVjdGlvbmFs
ID0gZmFsc2UpOwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIFZpc2libGVTZWxlY3Rpb24oY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwogICAgIFdF
QkNPUkVfRVhQT1JUIFZpc2libGVTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiwgY29u
c3QgVmlzaWJsZVBvc2l0aW9uJiwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCmluZGV4IDk2Njk3MjhhNzk2MGJi
YjQ5MzlmNTI1MTY2MjRjYjZlOTA0ZTAwMjUuLjEzMzNmOTBjNGQ0NGNlZDc5OTdlNjk0NTVmYTA3
ZTBlYTY1MGY2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHAKQEAgLTEwNDMsOSArMTA0Myw5IEBAIFZlY3RvcjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94
Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JIaWdobGlnaHRzKFRleHRQYWludFBoYXNlCiAgICAgICAg
IGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRSZW5kZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxl
KHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxpZ2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwog
ICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGZvciAoYXV0byYgc3RhdGljUmFuZ2UgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlcygpKSB7Ci0g
ICAgICAgICAgICBQb3NpdGlvbiBzdGFydFBvcyA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihzdGF0aWNSYW5nZS0+c3RhcnRDb250YWluZXIoKSwgc3RhdGljUmFuZ2UtPnN0YXJ0T2Zmc2V0
KCkpOwotICAgICAgICAgICAgUG9zaXRpb24gZW5kUG9zID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bv
c2l0aW9uKHN0YXRpY1JhbmdlLT5lbmRDb250YWluZXIoKSwgc3RhdGljUmFuZ2UtPmVuZE9mZnNl
dCgpKTsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJh
bmdlc0RhdGEoKSkgeworICAgICAgICAgICAgUG9zaXRpb24gc3RhcnRQb3MgPSByYW5nZURhdGEt
PnN0YXJ0UG9zaXRpb247CisgICAgICAgICAgICBQb3NpdGlvbiBlbmRQb3MgPSByYW5nZURhdGEt
PmVuZFBvc2l0aW9uOwogCiAgICAgICAgICAgICBpZiAoc3RhcnRQb3MuaXNOb3ROdWxsKCkgJiYg
ZW5kUG9zLmlzTm90TnVsbCgpKSB7CiAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBzdGFy
dFJlbmRlcmVyID0gc3RhcnRQb3MuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKaW5kZXggOTg0
NDE5ZmRmMWRkYjczZDAzY2UzMmVjZDBlNmViYjExMTE2ODJkZS4uZDIxODg5MDU3MDNmZTdjOWU5
Nzg1NGZmMzI1YWQwNGUyYzRlYjYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1NlbGVjdGlvblJhbmdlRGF0YS5jcHAKQEAgLTE2NywxMyArMTY3LDEzIEBAIFJlbmRlck9iamVj
dDo6U2VsZWN0aW9uU3RhdGUgU2VsZWN0aW9uUmFuZ2VEYXRhOjpzZWxlY3Rpb25TdGF0ZUZvclJl
bmRlcmVyKFJlbmRlCiAgICAgLy8gUGxhbm5lZCBmaXggaW4gYSBmb2xsb3d1cDogPHJkYXI6Ly9w
cm9ibGVtLzU4MDk1OTIzPgogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU1MjkKICAgICAKLSAgICBpZiAoJnJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29u
dGV4dC5zdGFydCgpIHx8IHJlbmRlcmVyLmlzRGVzY2VuZGFudE9mKG1fc2VsZWN0aW9uQ29udGV4
dC5zdGFydCgpKSkgeworICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0
YXJ0KCkpIHsKICAgICAgICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpICYmIG1fc2Vs
ZWN0aW9uQ29udGV4dC5lbmQoKSAmJiBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSA9PSBtX3Nl
bGVjdGlvbkNvbnRleHQuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpT
ZWxlY3Rpb25Cb3RoOwogICAgICAgICBpZiAobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpCiAg
ICAgICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGFydDsKICAgICB9Ci0g
ICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkgfHwgcmVuZGVyZXIu
aXNEZXNjZW5kYW50T2YobV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpKSkKKyAgICBpZiAoJnJlbmRl
cmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKICAgICAgICAgcmV0dXJuIFJlbmRlck9i
amVjdDo6U2VsZWN0aW9uRW5kOwogCiAgICAgUmVuZGVyT2JqZWN0KiBzZWxlY3Rpb25FbmQgPSBu
dWxscHRyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387888</attachid>
            <date>2020-01-15 19:40:58 -0800</date>
            <delta_ts>2020-01-16 19:30:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200115194058.patch</filename>
            <type>text/plain</type>
            <size>13153</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uYTE4OGJlNmVhOTZhZGRjNDM1ZWI0OTg2YmY2ZTM5
NTk5MmQyNzIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhIFN0YXRpY1Jh
bmdlIGlzIGFkZGVkIHRvIGEgSGlnaGxpZ2h0UmFuZ2VHcm91cCwgc2NoZWR1bGUgdGhlIGNyZWF0
aW9uIG9mIGEgUG9zaXRpb24gb3V0c2lkZSBvZiB0aGUgCisgICAgICAgIFJlbmRlcmluZyBjb2Rl
LCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJsZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBt
YWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxzbywgYWRkIHRoZSBhYmlsaXR5IHRvIG1h
a2UgYSBWaXNpYmxlU2VsZWN0aW9uIGZyb20gYSBTdGF0aWMgUmFuZ2UgdG8gc2ltcGxpZnkgdGhl
IGNvZGUuCisKKyAgICAgICAgVXBkYXRlZCBUZXN0OgorICAgICAgICAqIExheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVu
dHMuaHRtbDoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sOgorICAgICAgICAqIExheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0
bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC10ZXh0Lmh0bWw6CisKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6
OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3Jv
dXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdl
R3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFu
Z2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAgKiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdo
bGlnaHRSYW5nZUdyb3VwLmg6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZURhdGE6OkhpZ2hsaWdo
dFJhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyYW5n
ZXNEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJh
bmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmNyZWF0ZSk6CisgICAgICAg
ICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5lVGV4dEJveDo6Y29sbGVjdE1h
cmtlZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6CisgICAgICAgICogcmVuZGVyaW5nL1NlbGVj
dGlvblJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6
OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIpOgorCiAyMDIwLTAxLTEzICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZp
eCBmb3IgUGxheVN0YXRpb24gYW5kIGNsYW5nLWNsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAppbmRleCBkZDUz
Y2JiZWQyYTZmYjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVhZjY4Li40OWJkMmM3YjQwYjdlZGRmNGZm
MjlkMzA3NzdjNDg2MGY2ZGFhZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcApAQCAtMjYsNDggKzI2LDc0
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSGlnaGxpZ2h0UmFuZ2VHcm91cC5o
IgogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNs
dWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9NU2V0TGlrZS5oIgogI2luY2x1ZGUgIkpT
U3RhdGljUmFuZ2UuaCIKKyNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTZXRD
U1NTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJTdGF0
aWNSYW5nZS5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIlZpc2li
bGVTZWxlY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGlj
UmFuZ2U+JiYgcmFuZ2UpCitIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3Vw
KERvY3VtZW50JiBkb2N1bWVudCwgUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgIDogbV9k
b2N1bWVudChtYWtlV2Vha1B0cihkb2N1bWVudCkpCiB7Ci0gICAgbV9yYW5nZXMuYXBwZW5kKFdU
Rk1vdmUocmFuZ2UpKTsKKyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsKKyAgICBh
ZGRUb1NldExpa2UobXlSYW5nZS5nZXQoKSk7CiB9CiAKLVJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
PiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQorUmVmPEhp
Z2hsaWdodFJhbmdlR3JvdXA+IEhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQsIFN0YXRpY1JhbmdlJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlnaGxpZ2h0UmFuZ2VHcm91cChkb2N1bWVudCwgcmFuZ2UpKTsKIH0KIAogdm9pZCBIaWdobGln
aHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJiBzZXQpCiB7Ci0g
ICAgZm9yIChhdXRvJiByYW5nZSA6IG1fcmFuZ2VzKQotICAgICAgICBzZXQuYWRkPElETEludGVy
ZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlKTsKKyAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IG1f
cmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJRExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+Pihy
YW5nZURhdGEtPnJhbmdlKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVG
cm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIG1fcmFu
Z2VzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYg
Y3VycmVudCkgewotICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsKKyAgICBy
ZXR1cm4gbV9yYW5nZXNEYXRhLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVm
PEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQu
Z2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7CiAgICAgfSk7CiB9CiAKIHZvaWQgSGlnaGxpZ2h0
UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSgpCiB7Ci0gICAgbV9yYW5nZXMuY2xlYXIoKTsK
KyAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKIH0KIAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3Vw
OjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJhbmdlKQogewotICAgIGlmIChub3RGb3VuZCAh
PSBtX3Jhbmdlcy5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYg
Y3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQoKSA9PSByYW5nZTsgfSkpCisgICAgaWYgKG5v
dEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPEhp
Z2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsgcmV0dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2Uu
Z2V0KCkgPT0gcmFuZ2U7IH0pKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgbV9yYW5nZXMu
YXBwZW5kKG1ha2VSZWYocmFuZ2UpKTsKKyAgICAKKyAgICBhdXRvIGhpZ2hpZ2h0UmFuZ2VEYXRh
ID0gSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUocmFuZ2UpOworICAgIG1fZG9jdW1lbnQtPmV2
ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpJbnRlcm5hbEFzeW5jVGFzaywgW3dlYWtE
YXRhID0gbWFrZVdlYWtQdHIoaGlnaGlnaHRSYW5nZURhdGEucHRyKCkpXSB7CisgICAgICAgIGF1
dG8qIGRhdGEgPSB3ZWFrRGF0YS5nZXQoKTsKKyAgICAgICAgaWYgKCFkYXRhIHx8ICEoJmRhdGEt
PnJhbmdlLT5zdGFydENvbnRhaW5lcigpLT50cmVlU2NvcGUoKSA9PSAmZGF0YS0+cmFuZ2UtPmVu
ZENvbnRhaW5lcigpLT50cmVlU2NvcGUoKSkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IAorICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHZpc2libGVTZWxlY3Rpb24oZGF0YS0+cmFuZ2Up
OworICAgICAgICBhdXRvIHN0YXJ0UG9zaXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVT
dGFydCgpLmRlZXBFcXVpdmFsZW50KCk7CisgICAgICAgIGF1dG8gZW5kUG9zaXRpb24gPSB2aXNp
YmxlU2VsZWN0aW9uLnZpc2libGVFbmQoKS5kZWVwRXF1aXZhbGVudCgpOworICAgICAgICAKKyAg
ICAgICAgaWYgKHdlYWtEYXRhLmdldCgpKSB7CisgICAgICAgICAgICBkYXRhLT5zdGFydFBvc2l0
aW9uID0gc3RhcnRQb3NpdGlvbjsKKyAgICAgICAgICAgIGRhdGEtPmVuZFBvc2l0aW9uID0gZW5k
UG9zaXRpb247CisgICAgICAgIH0KKyAgICB9KTsKKyAgICAKKyAgICBtX3Jhbmdlc0RhdGEuYXBw
ZW5kKFdURk1vdmUoaGlnaGlnaHRSYW5nZURhdGEpKTsKKyAgICAKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxp
Z2h0UmFuZ2VHcm91cC5oCmluZGV4IDk3MjQ1MDYzZDU2YWYxYTJiNDRlMDFlN2ExYTQ5MWMyYzJi
OGI3YjYuLjIyYWYyMTY5NDI2NWY0ZDUzNTc2NDMzZjdkNDc4ZTE0N2M4MzBjYmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0
aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApAQCAtMzQsMjQgKzM1LDQzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVjbGFyYXRpb247CiBjbGFzcyBET01TZXRB
ZGFwdGVyOwogY2xhc3MgU3RhdGljUmFuZ2U7CitjbGFzcyBQb3NpdGlvbjsKIGNsYXNzIFByb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsKIAorc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YSA6
IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VEYXRhPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEhp
Z2hsaWdodFJhbmdlRGF0YT4geworICAgIAorICAgIEhpZ2hsaWdodFJhbmdlRGF0YShSZWY8U3Rh
dGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgICAgIDogcmFuZ2UoV1RGTW92ZShyYW5nZSkpCisgICAg
eworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4gY3JlYXRl
KFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEhpZ2hsaWdodFJhbmdlRGF0YShXVEZNb3ZlKHJhbmdlKSkpOworICAgIH0KKyAgICAK
KyAgICBSZWY8U3RhdGljUmFuZ2U+IHJhbmdlOworICAgIFBvc2l0aW9uIHN0YXJ0UG9zaXRpb247
CisgICAgUG9zaXRpb24gZW5kUG9zaXRpb247Cit9OworCiBjbGFzcyBIaWdobGlnaHRSYW5nZUdy
b3VwIDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gewogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gY3JlYXRlKFN0YXRpY1JhbmdlJik7
CisgICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBjcmVhdGUoRG9jdW1lbnQmLCBT
dGF0aWNSYW5nZSYpOwogICAgIAogICAgIHZvaWQgY2xlYXJGcm9tU2V0TGlrZSgpOwogICAgIGJv
b2wgYWRkVG9TZXRMaWtlKFN0YXRpY1JhbmdlJik7CiAgICAgYm9vbCByZW1vdmVGcm9tU2V0TGlr
ZShjb25zdCBTdGF0aWNSYW5nZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0
QWRhcHRlciYpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiYgcmFu
Z2VzKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKyAgICBjb25zdCBWZWN0b3I8UmVmPEhp
Z2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXNE
YXRhOyB9CiAKICAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlRGVjbGFy
YXRpb24mIHN0eWxlKCk7CiAgICAgCiBwcml2YXRlOgotICAgIFZlY3RvcjxSZWY8U3RhdGljUmFu
Z2U+PiBtX3JhbmdlczsgLy8gVE9ETzogdXNlIGEgSGFzaFNldCBpbnN0ZWFkIG9mIGEgVmVjdG9y
IDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KLSAgICBleHBsaWNpdCBIaWdobGlnaHRSYW5nZUdy
b3VwKFJlZjxTdGF0aWNSYW5nZT4mJik7CisgICAgVmVjdG9yPFJlZjxIaWdobGlnaHRSYW5nZURh
dGE+PiBtX3Jhbmdlc0RhdGE7IC8vIEZJWE1FOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQgb2YgYSBW
ZWN0b3IgPHJkYXI6Ly9wcm9ibGVtLzU3NzYwNjE0PgorICAgIGV4cGxpY2l0IEhpZ2hsaWdodFJh
bmdlR3JvdXAoRG9jdW1lbnQmLCBSZWY8U3RhdGljUmFuZ2U+JiYpOworICAgIFdlYWtQdHI8RG9j
dW1lbnQ+IG1fZG9jdW1lbnQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCmluZGV4IDRmYzAwMTNk
MzQ1NmIzOTg3MzljYTZkMmIyYzY3NTExZTBiMTgxMTcuLmU2ZWI3MmZjMzg5YjdkNWFmNzFlMWQ3
MDk0MDJiZTc1NzAwMjkzY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGln
aGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsCkBAIC0yNSw2ICsyNSw3IEBACiAK
IFsKICAgICBDb25zdHJ1Y3RvcihTdGF0aWNSYW5nZSByYW5nZSksCisgICAgQ29uc3RydWN0b3JD
YWxsV2l0aD1Eb2N1bWVudCwKICAgICBFbmFibGVkQXRSdW50aW1lPUhpZ2hsaWdodEFQSSwKICAg
ICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlCiBdIGludGVyZmFjZSBIaWdobGlnaHRSYW5nZUdy
b3VwIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4
IDA5YWE3MzJkNWEyNjJlNDBjODY3ODY4NTUwY2RkYTI4MDAxODQ5NTkuLmYzMjdjYjMwMzAxYjY4
MDI5MWEzODllOTE5MzkzMmI2YjhkOTYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKKyNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgog
I2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC05Niw2ICs5
NywxNiBAQCBWaXNpYmxlU2VsZWN0aW9uOjpWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFJhbmdlJiBy
YW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sCiAgICAgdmFsaWRhdGUoKTsKIH0KIAorVmlz
aWJsZVNlbGVjdGlvbjo6VmlzaWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYgc3RhdGlj
UmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBpc0RpcmVjdGlvbmFsKQorICAgIDogbV9i
YXNlKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5zdGFydENvbnRhaW5l
cigpLCBzdGF0aWNSYW5nZS5zdGFydE9mZnNldCgpKSkKKyAgICAsIG1fZXh0ZW50KGNyZWF0ZUxl
Z2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5lbmRDb250YWluZXIoKSwgc3RhdGljUmFu
Z2UuZW5kT2Zmc2V0KCkpKQorICAgICwgbV9hZmZpbml0eShhZmZpbml0eSkKKyAgICAsIG1faXNE
aXJlY3Rpb25hbChpc0RpcmVjdGlvbmFsKQoreworICAgIEFTU0VSVCgmc3RhdGljUmFuZ2Uuc3Rh
cnRDb250YWluZXIoKS0+dHJlZVNjb3BlKCkgPT0gJnN0YXRpY1JhbmdlLmVuZENvbnRhaW5lcigp
LT50cmVlU2NvcGUoKSk7CisgICAgdmFsaWRhdGUoKTsKK30KKwogVmlzaWJsZVNlbGVjdGlvbiBW
aXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUoTm9kZSogbm9kZSkK
IHsKICAgICBBU1NFUlQoIWVkaXRpbmdJZ25vcmVzQ29udGVudCgqbm9kZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAppbmRleCBhOTQzZGE4YTc3NzJkNmNjY2Jm
ZTJhYzdkOGVmZmExNDdiMWY4YzFhLi4yZDQyZDhmN2VmMWZhMjFmMjg5MDMzZmFkNmI4MzFlYTBj
M2UzZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaApAQCAt
MzEsNiArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3NpdGlvbjsKK2Ns
YXNzIFN0YXRpY1JhbmdlOwogCiBjb25zdCBFQWZmaW5pdHkgU0VMX0RFRkFVTFRfQUZGSU5JVFkg
PSBET1dOU1RSRUFNOwogZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90IHsgRGlyZWN0
aW9uRm9yd2FyZCwgRGlyZWN0aW9uQmFja3dhcmQsIERpcmVjdGlvblJpZ2h0LCBEaXJlY3Rpb25M
ZWZ0IH07CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9uKGNv
bnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHkgPSBTRUxfREVGQVVMVF9B
RkZJTklUWSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwogCiAgICAgV0VCQ09SRV9FWFBP
UlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBSYW5nZSYsIEVBZmZpbml0eSA9IFNFTF9ERUZBVUxU
X0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYsIEVBZmZpbml0eSA9IFNFTF9E
RUZBVUxUX0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CiAgICAgCiAgICAg
V0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBi
b29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNl
bGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBi
b29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5s
aW5lVGV4dEJveC5jcHAKaW5kZXggOTY2OTcyOGE3OTYwYmJiNDkzOWY1MjUxNjYyNGNiNmU5MDRl
MDAyNS4uMTMzM2Y5MGM0ZDQ0Y2VkNzk5N2U2OTQ1NWZhMDdlMGVhNjUwZjZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMTA0Myw5ICsxMDQzLDkg
QEAgVmVjdG9yPE1hcmtlZFRleHQ+IElubGluZVRleHRCb3g6OmNvbGxlY3RNYXJrZWRUZXh0c0Zv
ckhpZ2hsaWdodHMoVGV4dFBhaW50UGhhc2UKICAgICAgICAgYXV0byByZW5kZXJTdHlsZSA9IHBh
cmVudFJlbmRlcmVyLmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0
LCBoaWdobGlnaHQua2V5IH0sICZwYXJlbnRTdHlsZSk7CiAgICAgICAgIGlmICghcmVuZGVyU3R5
bGUpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZm9yIChhdXRvJiBzdGF0aWNSYW5n
ZSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzKCkpIHsKLSAgICAgICAgICAgIFBvc2l0aW9uIHN0
YXJ0UG9zID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLT5zdGFydENv
bnRhaW5lcigpLCBzdGF0aWNSYW5nZS0+c3RhcnRPZmZzZXQoKSk7Ci0gICAgICAgICAgICBQb3Np
dGlvbiBlbmRQb3MgPSBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oc3RhdGljUmFuZ2UtPmVu
ZENvbnRhaW5lcigpLCBzdGF0aWNSYW5nZS0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBmb3IgKGF1
dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAg
ICAgICBQb3NpdGlvbiBzdGFydFBvcyA9IHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbjsKKyAgICAg
ICAgICAgIFBvc2l0aW9uIGVuZFBvcyA9IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb247CiAKICAgICAg
ICAgICAgIGlmIChzdGFydFBvcy5pc05vdE51bGwoKSAmJiBlbmRQb3MuaXNOb3ROdWxsKCkpIHsK
ICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyZXIgPSBzdGFydFBvcy5k
ZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAppbmRleCA5ODQ0MTlmZGYxZGRiNzNkMDNjZTMyZWNk
MGU2ZWJiMTExMTY4MmRlLi5kMjE4ODkwNTcwM2ZlN2M5ZTk3ODU0ZmYzMjVhZDA0ZTJjNGViNjIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNw
cApAQCAtMTY3LDEzICsxNjcsMTMgQEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBTZWxl
Y3Rpb25SYW5nZURhdGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIoUmVuZGUKICAgICAvLyBQ
bGFubmVkIGZpeCBpbiBhIGZvbGxvd3VwOiA8cmRhcjovL3Byb2JsZW0vNTgwOTU5MjM+CiAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUyOQogICAgIAot
ICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgcmVuZGVy
ZXIuaXNEZXNjZW5kYW50T2YobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpKSB7CisgICAgaWYg
KCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSkgewogICAgICAgICBpZiAo
bV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgJiYgbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpICYm
IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkK
ICAgICAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkJvdGg7CiAgICAgICAg
IGlmIChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSkKICAgICAgICAgICAgIHJldHVybiBSZW5k
ZXJPYmplY3Q6OlNlbGVjdGlvblN0YXJ0OwogICAgIH0KLSAgICBpZiAoJnJlbmRlcmVyID09IG1f
c2VsZWN0aW9uQ29udGV4dC5lbmQoKSB8fCByZW5kZXJlci5pc0Rlc2NlbmRhbnRPZihtX3NlbGVj
dGlvbkNvbnRleHQuZW5kKCkpKQorICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250
ZXh0LmVuZCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25FbmQ7CiAK
ICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388005</attachid>
            <date>2020-01-16 19:30:11 -0800</date>
            <delta_ts>2020-01-17 15:42:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200116193010.patch</filename>
            <type>text/plain</type>
            <size>23060</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uNmI4MDc4MmFiNTNhZGU3ZThmOTlkYWRjOTkwMzFi
YjAwOTQxM2M4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhZnRlciBsYXlv
dXQgaXMgY29tcGxldGUgY3JlYXRlIGEgVmlzaWJsZVNlbGVjdGlvbiBmcm9tIGFuZCBoaWdobGln
aHQgU3RhdGljUmFuZ2VzIHdoaWNoCisgICAgICAgIGRvbid0IGhhdmUgcG9zaXRpb24gZGF0YSB5
ZXQuIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGUgaW5mb3JtYXRpb24gaXMgYXZhaWxibGUg
d2hlbiAKKyAgICAgICAgcmVuZGVyaW5nLCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJs
ZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBtYWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxz
bywgYWRkIHRoZSBhYmlsaXR5IHRvIG1ha2UgYSBWaXNpYmxlU2VsZWN0aW9uIGZyb20gYSBTdGF0
aWMgUmFuZ2UgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCisKKyAgICAgICAgVXBkYXRlZCBUZXN0Ogor
ICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbDoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1s
OgorICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0bWw6CisKKyAgICAgICAg
KiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAg
ICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAg
KiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmg6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSYW5nZURhdGE6OkhpZ2hsaWdodFJhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpI
aWdobGlnaHRSYW5nZUdyb3VwOjpyYW5nZXNEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJhbmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIpOgorCiAy
MDIwLTAxLTEzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgUGxheVN0YXRpb24gYW5kIGNsYW5nLWNsLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRS
YW5nZUdyb3VwLmNwcAppbmRleCBkZDUzY2JiZWQyYTZmYjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVh
ZjY4Li5mYzEyOTQwMGFkNWM2YTIwYmFiM2U0ZDNhZjVjOTIyNDVlYmMzZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmNwcApAQCAtMzIsMTIgKzMyLDE0IEBACiAjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGlj
UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgbV9yYW5nZXMuYXBwZW5kKFdURk1vdmUocmFuZ2UpKTsK
KyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsKKyAgICBhZGRUb1NldExpa2UobXlS
YW5nZS5nZXQoKSk7CiB9CiAKIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5n
ZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQpAQCAtNDcsMjcgKzQ5LDI4IEBAIFJl
ZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGlj
UmFuZ2UmIHJhbmdlKQogCiB2b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRM
aWtlKERPTVNldEFkYXB0ZXImIHNldCkKIHsKLSAgICBmb3IgKGF1dG8mIHJhbmdlIDogbV9yYW5n
ZXMpCi0gICAgICAgIHNldC5hZGQ8SURMSW50ZXJmYWNlPFN0YXRpY1JhbmdlPj4ocmFuZ2UpOwor
ICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRk
PElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOwogfQogCiBib29s
IEhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jhbmdl
JiByYW5nZSkKIHsKLSAgICByZXR1cm4gbV9yYW5nZXMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJh
bmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJldHVybiBj
dXJyZW50LmdldCgpID09IHJhbmdlOworICAgIHJldHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmly
c3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVu
dCkgeworICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsK
ICAgICB9KTsKIH0KIAogdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtl
KCkKIHsKLSAgICBtX3Jhbmdlcy5jbGVhcigpOworICAgIG1fcmFuZ2VzRGF0YS5jbGVhcigpOwog
fQogCiBib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYg
cmFuZ2UpCiB7Ci0gICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzLmZpbmRNYXRjaGluZyhbJnJh
bmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50Lmdl
dCgpID09IHJhbmdlOyB9KSkKKyAgICBpZiAobm90Rm91bmQgIT0gbV9yYW5nZXNEYXRhLmZpbmRN
YXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkg
eyByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsgfSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBtX3Jhbmdlcy5hcHBlbmQobWFrZVJlZihyYW5nZSkpOworICAg
IG1fcmFuZ2VzRGF0YS5hcHBlbmQoSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUocmFuZ2UpKTsK
KyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCmluZGV4IDk3MjQ1MDYzZDU2
YWYxYTJiNDRlMDFlN2ExYTQ5MWMyYzJiOGI3YjYuLjNhZWJkYWNmMTYzODRlMDdjNWY1MDY1ZWI2
NzZlMDUyZWNlOTNmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5oIgog
I2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApA
QCAtMzQsOCArMzUsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNs
YXJhdGlvbjsKIGNsYXNzIERPTVNldEFkYXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKK2NsYXNz
IFBvc2l0aW9uOwogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOwogCitzdHJ1
Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhIDogUmVmQ291bnRlZDxIaWdobGlnaHRSYW5nZURhdGE+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPiB7CisgICAgCisgICAgSGln
aGxpZ2h0UmFuZ2VEYXRhKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKKyAgICAgICAgOiByYW5n
ZShXVEZNb3ZlKHJhbmdlKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0UmFuZ2VEYXRhPiBjcmVhdGUoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VEYXRhKFdURk1vdmUo
cmFuZ2UpKSk7CisgICAgfQorICAgIAorICAgIFJlZjxTdGF0aWNSYW5nZT4gcmFuZ2U7CisgICAg
UG9zaXRpb24gc3RhcnRQb3NpdGlvbjsKKyAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbjsKK307CisK
IGNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHRS
YW5nZUdyb3VwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIaWdobGlnaHRSYW5nZUdyb3Vw
PiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKQEAgLTQ1LDEyICs2NCwxMiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCByZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYpOwogICAgIHZvaWQgaW5p
dGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYpOwogICAgIAotICAgIGNvbnN0IFZlY3RvcjxS
ZWY8U3RhdGljUmFuZ2U+PiYgcmFuZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXM7IH0KKyAg
ICBjb25zdCBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNEYXRhKCkgY29u
c3QgeyByZXR1cm4gbV9yYW5nZXNEYXRhOyB9CiAKICAgICAvLyBGSVhNRTogQWRkIFdFQkNPUkVf
RVhQT1JUIENTU1N0eWxlRGVjbGFyYXRpb24mIHN0eWxlKCk7CiAgICAgCiBwcml2YXRlOgotICAg
IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiBtX3JhbmdlczsgLy8gVE9ETzogdXNlIGEgSGFzaFNl
dCBpbnN0ZWFkIG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4KKyAgICBWZWN0
b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklYTUU6IHVzZSBh
IEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3NjA2MTQ+CiAg
ICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+JiYpOwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjRiYWM2ZGZkZTJhMjUzYmIzM2Q0MmQwYzEy
M2E5YmI1NDQ5ZTcxNy4uYjI2NDNhNTVlNTNhNWViMmYxMmM1ZDA3ODMyYzg1ZjJhOTZiMDU5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNzQwLDYgKzI3NDAsMjIgQEAgSGlnaGxpZ2h0
TWFwJiBEb2N1bWVudDo6aGlnaGxpZ2h0TWFwKCkKICAgICByZXR1cm4gKm1faGlnaGxpZ2h0TWFw
OwogfQogCit2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKQoreworICAg
IGlmIChtX2hpZ2hsaWdodE1hcCkgeworICAgICAgICBmb3IgKGF1dG8mIGhpZ2hsaWdodCA6IG1f
aGlnaGxpZ2h0TWFwLT5tYXAoKSkgeworICAgICAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEg
OiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAgICAgIGlmICgo
cmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uLmlzTm90TnVsbCgpICYmIHJhbmdlRGF0YS0+ZW5kUG9z
aXRpb24uaXNOb3ROdWxsKCkpIHx8ICgmcmFuZ2VEYXRhLT5yYW5nZS0+c3RhcnRDb250YWluZXIo
KS0+dHJlZVNjb3BlKCkgIT0gJnJhbmdlRGF0YS0+cmFuZ2UtPmVuZENvbnRhaW5lcigpLT50cmVl
U2NvcGUoKSkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAg
ICAgVmlzaWJsZVNlbGVjdGlvbiB2aXNpYmxlU2VsZWN0aW9uKHJhbmdlRGF0YS0+cmFuZ2UpOwor
ICAgICAgICAgICAgICAgIHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rp
b24udmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKKyAgICAgICAgICAgICAgICByYW5n
ZURhdGEtPmVuZFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVlcEVx
dWl2YWxlbnQoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKwogU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyKiBEb2N1bWVudDo6c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gcGFyc2VyKCkgPyBwYXJzZXIoKS0+YXNTY3JpcHRhYmxlRG9j
dW1lbnRQYXJzZXIoKSA6IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDYzOGQwNDBm
MzdkMjI0NTdkZmRkMWNhMTQwM2E1YTY3YjRmMzdiNWIuLjVmNDc4OGNjN2NkNTQ5YjQ0ZmJiNWY4
YTViYjRlYWI4NTM0OWRjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTQ3LDYgKzE1NDcs
NyBAQCBwdWJsaWM6CiAgICAgVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVs
YXRpb25Db250cm9sbGVySWZFeGlzdHMoKSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmdldCgpOyB9CiAgICAgICAgIAogICAgIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0TWFw
KCk7CisgICAgdm9pZCB1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMoKTsKIAogcHJvdGVjdGVkOgog
ICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVk
UGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVT
ZWxlY3Rpb24uY3BwCmluZGV4IDA5YWE3MzJkNWEyNjJlNDBjODY3ODY4NTUwY2RkYTI4MDAxODQ5
NTkuLmYzMjdjYjMwMzAxYjY4MDI5MWEzODllOTE5MzkzMmI2YjhkOTYxMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHN0
ZGlvLmg+CkBAIC05Niw2ICs5NywxNiBAQCBWaXNpYmxlU2VsZWN0aW9uOjpWaXNpYmxlU2VsZWN0
aW9uKGNvbnN0IFJhbmdlJiByYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29sCiAgICAgdmFs
aWRhdGUoKTsKIH0KIAorVmlzaWJsZVNlbGVjdGlvbjo6VmlzaWJsZVNlbGVjdGlvbihjb25zdCBT
dGF0aWNSYW5nZSYgc3RhdGljUmFuZ2UsIEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBpc0RpcmVj
dGlvbmFsKQorICAgIDogbV9iYXNlKGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNS
YW5nZS5zdGFydENvbnRhaW5lcigpLCBzdGF0aWNSYW5nZS5zdGFydE9mZnNldCgpKSkKKyAgICAs
IG1fZXh0ZW50KGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5lbmRDb250
YWluZXIoKSwgc3RhdGljUmFuZ2UuZW5kT2Zmc2V0KCkpKQorICAgICwgbV9hZmZpbml0eShhZmZp
bml0eSkKKyAgICAsIG1faXNEaXJlY3Rpb25hbChpc0RpcmVjdGlvbmFsKQoreworICAgIEFTU0VS
VCgmc3RhdGljUmFuZ2Uuc3RhcnRDb250YWluZXIoKS0+dHJlZVNjb3BlKCkgPT0gJnN0YXRpY1Jh
bmdlLmVuZENvbnRhaW5lcigpLT50cmVlU2NvcGUoKSk7CisgICAgdmFsaWRhdGUoKTsKK30KKwog
VmlzaWJsZVNlbGVjdGlvbiBWaXNpYmxlU2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNP
Zk5vZGUoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQoIWVkaXRpbmdJZ25vcmVzQ29udGVudCgq
bm9kZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAppbmRleCBh
OTQzZGE4YTc3NzJkNmNjY2JmZTJhYzdkOGVmZmExNDdiMWY4YzFhLi4yZDQyZDhmN2VmMWZhMjFm
Mjg5MDMzZmFkNmI4MzFlYTBjM2UzZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uaApAQCAtMzEsNiArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBQb3NpdGlvbjsKK2NsYXNzIFN0YXRpY1JhbmdlOwogCiBjb25zdCBFQWZmaW5pdHkgU0VM
X0RFRkFVTFRfQUZGSU5JVFkgPSBET1dOU1RSRUFNOwogZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24g
OiB1aW50OF90IHsgRGlyZWN0aW9uRm9yd2FyZCwgRGlyZWN0aW9uQmFja3dhcmQsIERpcmVjdGlv
blJpZ2h0LCBEaXJlY3Rpb25MZWZ0IH07CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBW
aXNpYmxlU2VsZWN0aW9uKGNvbnN0IFBvc2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBFQWZmaW5p
dHkgPSBTRUxfREVGQVVMVF9BRkZJTklUWSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBSYW5nZSYsIEVBZmZp
bml0eSA9IFNFTF9ERUZBVUxUX0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYs
IEVBZmZpbml0eSA9IFNFTF9ERUZBVUxUX0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBm
YWxzZSk7CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBW
aXNpYmxlUG9zaXRpb24mLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCBiZDBmYWJkZDI4ZDllMDY5YWVhOTllNDE1OThlYTI5NjMwYzQyNjU4Li42NDAx
MGIxMWY4ZDFjMzY0YTI2NjMwNWI5NGM5MDY0MjFmY2Q2NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTEzNTEsNiArMTM1MSwxMCBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAjZW5k
aWYKIAogICAgIGxheW91dElmTmVlZGVkKCk7CisgICAgCisgICAgZm9yRWFjaERvY3VtZW50KFtd
IChEb2N1bWVudCYgZG9jdW1lbnQpIHsKKyAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxpZ2h0
UG9zaXRpb25zKCk7CisgICAgfSk7CiB9CiAKIHZvaWQgUGFnZTo6c3VzcGVuZFNjcmlwdGVkQW5p
bWF0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4
dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5k
ZXggOTY2OTcyOGE3OTYwYmJiNDkzOWY1MjUxNjYyNGNiNmU5MDRlMDAyNS4uMTMzM2Y5MGM0ZDQ0
Y2VkNzk5N2U2OTQ1NWZhMDdlMGVhNjUwZjZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9JbmxpbmVUZXh0Qm94LmNwcApAQCAtMTA0Myw5ICsxMDQzLDkgQEAgVmVjdG9yPE1hcmtlZFRl
eHQ+IElubGluZVRleHRCb3g6OmNvbGxlY3RNYXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMoVGV4dFBh
aW50UGhhc2UKICAgICAgICAgYXV0byByZW5kZXJTdHlsZSA9IHBhcmVudFJlbmRlcmVyLmdldFVu
Y2FjaGVkUHNldWRvU3R5bGUoeyBQc2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0s
ICZwYXJlbnRTdHlsZSk7CiAgICAgICAgIGlmICghcmVuZGVyU3R5bGUpCiAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgZm9yIChhdXRvJiBzdGF0aWNSYW5nZSA6IGhpZ2hsaWdodC52YWx1
ZS0+cmFuZ2VzKCkpIHsKLSAgICAgICAgICAgIFBvc2l0aW9uIHN0YXJ0UG9zID0gY3JlYXRlTGVn
YWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLT5zdGFydENvbnRhaW5lcigpLCBzdGF0aWNS
YW5nZS0+c3RhcnRPZmZzZXQoKSk7Ci0gICAgICAgICAgICBQb3NpdGlvbiBlbmRQb3MgPSBjcmVh
dGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oc3RhdGljUmFuZ2UtPmVuZENvbnRhaW5lcigpLCBzdGF0
aWNSYW5nZS0+ZW5kT2Zmc2V0KCkpOworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhp
Z2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICBQb3NpdGlvbiBzdGFy
dFBvcyA9IHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbjsKKyAgICAgICAgICAgIFBvc2l0aW9uIGVu
ZFBvcyA9IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb247CiAKICAgICAgICAgICAgIGlmIChzdGFydFBv
cy5pc05vdE51bGwoKSAmJiBlbmRQb3MuaXNOb3ROdWxsKCkpIHsKICAgICAgICAgICAgICAgICBS
ZW5kZXJPYmplY3QqIHN0YXJ0UmVuZGVyZXIgPSBzdGFydFBvcy5kZXByZWNhdGVkTm9kZSgpLT5y
ZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlv
blJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VE
YXRhLmNwcAppbmRleCA5ODQ0MTlmZGYxZGRiNzNkMDNjZTMyZWNkMGU2ZWJiMTExMTY4MmRlLi5k
MjE4ODkwNTcwM2ZlN2M5ZTk3ODU0ZmYzMjVhZDA0ZTJjNGViNjIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcApAQCAtMTY3LDEzICsxNjcs
MTMgQEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25TdGF0ZSBTZWxlY3Rpb25SYW5nZURhdGE6OnNl
bGVjdGlvblN0YXRlRm9yUmVuZGVyZXIoUmVuZGUKICAgICAvLyBQbGFubmVkIGZpeCBpbiBhIGZv
bGxvd3VwOiA8cmRhcjovL3Byb2JsZW0vNTgwOTU5MjM+CiAgICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTUyOQogICAgIAotICAgIGlmICgmcmVuZGVyZXIg
PT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgfHwgcmVuZGVyZXIuaXNEZXNjZW5kYW50T2Yo
bV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkpKSB7CisgICAgaWYgKCZyZW5kZXJlciA9PSBtX3Nl
bGVjdGlvbkNvbnRleHQuc3RhcnQoKSkgewogICAgICAgICBpZiAobV9zZWxlY3Rpb25Db250ZXh0
LnN0YXJ0KCkgJiYgbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpICYmIG1fc2VsZWN0aW9uQ29udGV4
dC5zdGFydCgpID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSkKICAgICAgICAgICAgIHJldHVy
biBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkJvdGg7CiAgICAgICAgIGlmIChtX3NlbGVjdGlvbkNv
bnRleHQuc3RhcnQoKSkKICAgICAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlv
blN0YXJ0OwogICAgIH0KLSAgICBpZiAoJnJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5l
bmQoKSB8fCByZW5kZXJlci5pc0Rlc2NlbmRhbnRPZihtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkp
KQorICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpKQogICAgICAg
ICByZXR1cm4gUmVuZGVyT2JqZWN0OjpTZWxlY3Rpb25FbmQ7CiAKICAgICBSZW5kZXJPYmplY3Qq
IHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWMwNTk2ZThmZTgxYzgyNTNlM2I2NmEz
ODg5NTllNmYzYWI4MTcxYy4uOTg0Nzk1Yzk4Y2Q1MzQ2MzgwNDQ4NTFiN2I5Y2M1NmU0OTEyYjkx
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAxLTE1ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2libGUgUG9zaXRpb24gdG8g
Y2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdo
dC1mcmFtZS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sOgorICAgICAg
ICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNl
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC10ZXh0Lmh0bWw6CisKIDIwMjAtMDEtMTMgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI1MzY4Myk6IFtHVEtdW1dQRV0gTG90cyBvZiBvZmZz
Y3JlZW4tY2FudmFzIFdQVCB0ZXN0cyBmYWlsaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
aWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sIGIvTGF5b3V0VGVzdHMvaGln
aGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbAppbmRleCAwMjdkYWY0MzBlMmFh
N2YyNWIzY2E5M2FiZDlkY2FjNWFhNmY5ODk5Li44ODQ4ODdiODI3ZTY5NWEwODQwOTk0ZWJiMDA3
MTdhNGIxMmExOTNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2Vz
L2hpZ2hsaWdodC1mcmFtZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJj
ZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKQEAgLTEzLDYgKzEzLDYgQEAKIAogPHNjcmlwdD4KIGxl
dCBoaWdobGlnaHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaGlnaGxpZ2h0Jyk7Ci1sZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IGhpZ2hsaWdodCwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRh
aW5lcjogaGlnaGxpZ2h0LCBlbmRPZmZzZXQ6IDR9KSk7CitsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVy
OiBoaWdobGlnaHQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOwogQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cCk7CiA8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbAppbmRl
eCBlMjAyYzk5ODFiYzNhMTE5OWM1YjQ1NWExZDI2NzMyZTNiYjM3NWY5Li5iYWY3MWUwOTZlN2Q3
NDRhNDQ0MTczMjVmMGFhYmUyNjJiNjk3OTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCkBAIC0zNCwxMiArMzQsMTIgQEAKICAg
ICAgICAgbGV0IHRleHRFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0Mycp
OwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQ0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHQ0Jyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGV4dDUnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQxLCBzdGFydE9mZnNldDogNCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEsIGVuZE9mZnNl
dDogN30pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdo
dFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQx
LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50
MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDd9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQyLCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdl
R3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIs
IHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDMsIGVuZE9mZnNldDog
NX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdy
b3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDMu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA1fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50Mywgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6
IHRleHRFbGVtZW50NSwgZW5kT2Zmc2V0OiAxMn0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJh
bmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMn0p
KTsKIAogICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhp
Z2hsaWdodFJhbmdlR3JvdXAxKTsKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxl
LWhpZ2hsaWdodDIiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2Fk
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hs
aWdodC10ZXh0LWNhc2NhZGUuaHRtbAppbmRleCAwNTM0YWI1MzEzNzc4ZmEzNDY5MzVmMDZkODU4
ZDJlMzNlYjBkZDM1Li5jZGU5N2M0YmZmNzRiN2Y3MjhmZjI5N2I3ZWIzODcwODFiNjhiMGRlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKQEAgLTI2LDggKzI2
LDggQEAKICAgICAgICAgbGV0IHRleHRFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXh0MScpOwogICAgICAgICBsZXQgdGV4dEVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RleHQyJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGV4dDMnKTsKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBu
ZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudDEsIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MSwg
ZW5kT2Zmc2V0OiAzfSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwLmFkZChuZXcgU3Rh
dGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIsIHN0YXJ0T2Zmc2V0OiA1LCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50MiwgZW5kT2Zmc2V0OiA5fSkpOworICAgICAgICBsZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9m
ZnNldDogMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zm
c2V0OiAzfSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwLmFkZChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogOX0pKTsKIAogICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cCk7CiAgICAgPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVw
bGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAppbmRleCAxN2FjMWQ2ZGQwMmY5YzVjYTlkOTI0OTBm
NzdmNGNhYTA2NWZkZTQ3Li43MDEzYTY2MzM1ZWJlNDYyNWE0NGM3ZTYzY2ZkZjA3YjY3MmNhYjUy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKQEAgLTE4LDEw
ICsxOCwxMCBAQAogCiAgICAgPHNjcmlwdD4KICAgICAgICAgbGV0IHRleHRFbGVtZW50ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5n
ZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0
RWxlbWVudCwgZW5kT2Zmc2V0OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAg
ICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAz
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhp
Z2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVu
ZE9mZnNldDogNn0pKTsgICAgICAgIAorICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIg
PSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAgIGhp
Z2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0
ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7ICAgICAgICAKIAogICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0IiwgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEpOwogICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
IiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbAppbmRl
eCA0NmE1YTdhNzQxODFkZGE2ZTMwYjdhMjMzNGEwZTFjNWZlMThkZTFjLi40YWJmNDMwMDI4MGE4
YTgzMTk3ZTgyMjlkODQ4OGM4MjM2MjA4NmI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRt
bApAQCAtMjYsMTQgKzI2LDE0IEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBsZXQgdGV4dEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKLSAgICAgICAgbGV0IGhp
Z2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1Jh
bmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAxLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAx
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMn0p
KTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3Rh
cnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogNH0pKTsK
LSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRD
b250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0
RWxlbWVudCwgZW5kT2Zmc2V0OiA2fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMywgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAgICAg
IGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDZ9KSk7CiAKLSAgICAgICAg
bGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA3LCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDh9KSk7Ci0gICAgICAgIGhpZ2hs
aWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0
RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9m
ZnNldDogMTB9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRPZmZzZXQ6IDEyLCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDEzfSkpOworICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFu
Z2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNl
dDogNywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDh9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFkZChuZXcgU3RhdGljUmFuZ2Uo
e3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
OSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEw
fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEy
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTN9
KSk7CiAgICAgICAgIAogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388101</attachid>
            <date>2020-01-17 15:42:57 -0800</date>
            <delta_ts>2020-01-17 17:30:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206314-20200117154256.patch</filename>
            <type>text/plain</type>
            <size>24106</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uNmI4MDc4MmFiNTNhZGU3ZThmOTlkYWRjOTkwMzFi
YjAwOTQxM2M4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhZnRlciBsYXlv
dXQgaXMgY29tcGxldGUgY3JlYXRlIGEgVmlzaWJsZVNlbGVjdGlvbiBmcm9tIGFuZCBoaWdobGln
aHQgU3RhdGljUmFuZ2VzIHdoaWNoCisgICAgICAgIGRvbid0IGhhdmUgcG9zaXRpb24gZGF0YSB5
ZXQuIFRoaXMgd2lsbCBtYWtlIHN1cmUgdGhhdCB0aGUgaW5mb3JtYXRpb24gaXMgYXZhaWxibGUg
d2hlbiAKKyAgICAgICAgcmVuZGVyaW5nLCBhcyBWaXNpYmxlIFBvc2l0aW9ucyBhbmQgVmlzaWJs
ZSBTZWxlY3Rpb25zIGNhbm5vdCBiZSBtYWRlIHdoaWxlIHJlbmRlcmluZy4KKyAgICAgICAgQWxz
bywgYWRkIHRoZSBhYmlsaXR5IHRvIG1ha2UgYSBWaXNpYmxlU2VsZWN0aW9uIGZyb20gYSBTdGF0
aWMgUmFuZ2UgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCisKKyAgICAgICAgVXBkYXRlZCBUZXN0Ogor
ICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbDoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9o
dHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1s
OgorICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0bWw6CisKKyAgICAgICAg
KiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXApOgorICAgICAg
ICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRMaWtlKToKKyAgICAgICAgKFdl
YkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmNsZWFyRnJvbVNldExpa2UpOgorICAgICAg
ICAoV2ViQ29yZTo6SGlnaGxpZ2h0UmFuZ2VHcm91cDo6YWRkVG9TZXRMaWtlKToKKyAgICAgICAg
KiBNb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmg6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHRSYW5nZURhdGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIaWdo
bGlnaHRSYW5nZURhdGE6OkhpZ2hsaWdodFJhbmdlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpI
aWdobGlnaHRSYW5nZUdyb3VwOjpyYW5nZXNEYXRhIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkhpZ2hsaWdodFJhbmdlR3JvdXA6OnJhbmdlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5pZGw6CisgICAgICAgICogZWRp
dGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxl
Y3Rpb246OmNyZWF0ZSk6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW5saW5lVGV4dEJveDo6Y29sbGVjdE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0cyBjb25zdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTZWxlY3Rpb25SYW5nZURhdGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIpOgorCiAy
MDIwLTAxLTEzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBmb3IgUGxheVN0YXRpb24gYW5kIGNsYW5nLWNsLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRS
YW5nZUdyb3VwLmNwcAppbmRleCBkZDUzY2JiZWQyYTZmYjkyYmVmYWI2NDdlZTg3YTNiYjFkYzVh
ZjY4Li5mYzEyOTQwMGFkNWM2YTIwYmFiM2U0ZDNhZjVjOTIyNDVlYmMzZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdodC9IaWdobGlnaHRSYW5nZUdy
b3VwLmNwcApAQCAtMzIsMTIgKzMyLDE0IEBACiAjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiU3RhdGljUmFuZ2UuaCIKICNpbmNsdWRlICJTdHls
ZVByb3BlcnRpZXMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogSGlnaGxpZ2h0UmFuZ2VHcm91cDo6SGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGlj
UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgbV9yYW5nZXMuYXBwZW5kKFdURk1vdmUocmFuZ2UpKTsK
KyAgICBhdXRvIG15UmFuZ2UgPSBXVEZNb3ZlKHJhbmdlKTsKKyAgICBhZGRUb1NldExpa2UobXlS
YW5nZS5nZXQoKSk7CiB9CiAKIFJlZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5n
ZUdyb3VwOjpjcmVhdGUoU3RhdGljUmFuZ2UmIHJhbmdlKQpAQCAtNDcsMjcgKzQ5LDI4IEBAIFJl
ZjxIaWdobGlnaHRSYW5nZUdyb3VwPiBIaWdobGlnaHRSYW5nZUdyb3VwOjpjcmVhdGUoU3RhdGlj
UmFuZ2UmIHJhbmdlKQogCiB2b2lkIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmluaXRpYWxpemVTZXRM
aWtlKERPTVNldEFkYXB0ZXImIHNldCkKIHsKLSAgICBmb3IgKGF1dG8mIHJhbmdlIDogbV9yYW5n
ZXMpCi0gICAgICAgIHNldC5hZGQ8SURMSW50ZXJmYWNlPFN0YXRpY1JhbmdlPj4ocmFuZ2UpOwor
ICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogbV9yYW5nZXNEYXRhKQorICAgICAgICBzZXQuYWRk
PElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlRGF0YS0+cmFuZ2UpOwogfQogCiBib29s
IEhpZ2hsaWdodFJhbmdlR3JvdXA6OnJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jhbmdl
JiByYW5nZSkKIHsKLSAgICByZXR1cm4gbV9yYW5nZXMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJnJh
bmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7Ci0gICAgICAgIHJldHVybiBj
dXJyZW50LmdldCgpID09IHJhbmdlOworICAgIHJldHVybiBtX3Jhbmdlc0RhdGEucmVtb3ZlRmly
c3RNYXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVu
dCkgeworICAgICAgICByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsK
ICAgICB9KTsKIH0KIAogdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtl
KCkKIHsKLSAgICBtX3Jhbmdlcy5jbGVhcigpOworICAgIG1fcmFuZ2VzRGF0YS5jbGVhcigpOwog
fQogCiBib29sIEhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZShTdGF0aWNSYW5nZSYg
cmFuZ2UpCiB7Ci0gICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzLmZpbmRNYXRjaGluZyhbJnJh
bmdlXShjb25zdCBSZWY8U3RhdGljUmFuZ2U+JiBjdXJyZW50KSB7IHJldHVybiBjdXJyZW50Lmdl
dCgpID09IHJhbmdlOyB9KSkKKyAgICBpZiAobm90Rm91bmQgIT0gbV9yYW5nZXNEYXRhLmZpbmRN
YXRjaGluZyhbJnJhbmdlXShjb25zdCBSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPiYgY3VycmVudCkg
eyByZXR1cm4gY3VycmVudC5nZXQoKS5yYW5nZS5nZXQoKSA9PSByYW5nZTsgfSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBtX3Jhbmdlcy5hcHBlbmQobWFrZVJlZihyYW5nZSkpOworICAg
IG1fcmFuZ2VzRGF0YS5hcHBlbmQoSGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUocmFuZ2UpKTsK
KyAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCmluZGV4IDk3MjQ1MDYzZDU2
YWYxYTJiNDRlMDFlN2ExYTQ5MWMyYzJiOGI3YjYuLmMzMGVjODhhYTc5OWJkODZiODA4M2VjYjI0
N2YxNTQwNDE3ZTkwNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxp
Z2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hp
Z2hsaWdodC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJQb3NpdGlvbi5oIgog
I2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIApA
QCAtMzQsOCArMzUsMjYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ1NTU3R5bGVEZWNs
YXJhdGlvbjsKIGNsYXNzIERPTVNldEFkYXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsKK2NsYXNz
IFBvc2l0aW9uOwogY2xhc3MgUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOwogCitzdHJ1
Y3QgSGlnaGxpZ2h0UmFuZ2VEYXRhIDogUmVmQ291bnRlZDxIaWdobGlnaHRSYW5nZURhdGE+LCBw
dWJsaWMgQ2FuTWFrZVdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPiB7CisgICAgCisgICAgSGln
aGxpZ2h0UmFuZ2VEYXRhKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKKyAgICAgICAgOiByYW5n
ZShXVEZNb3ZlKHJhbmdlKSkKKyAgICB7CisgICAgfQorICAgIAorICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0UmFuZ2VEYXRhPiBjcmVhdGUoUmVmPFN0YXRpY1JhbmdlPiYmIHJhbmdlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0UmFuZ2VEYXRhKFdURk1vdmUo
cmFuZ2UpKSk7CisgICAgfQorICAgIAorICAgIFJlZjxTdGF0aWNSYW5nZT4gcmFuZ2U7CisgICAg
T3B0aW9uYWw8UG9zaXRpb24+IHN0YXJ0UG9zaXRpb247CisgICAgT3B0aW9uYWw8UG9zaXRpb24+
IGVuZFBvc2l0aW9uOworfTsKKwogY2xhc3MgSGlnaGxpZ2h0UmFuZ2VHcm91cCA6IHB1YmxpYyBS
ZWZDb3VudGVkPEhpZ2hsaWdodFJhbmdlR3JvdXA+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PEhpZ2hsaWdodFJhbmdlR3JvdXA+IGNyZWF0ZShTdGF0aWNSYW5nZSYpOwpAQCAtNDUsMTIgKzY0
LDEyIEBAIHB1YmxpYzoKICAgICBib29sIHJlbW92ZUZyb21TZXRMaWtlKGNvbnN0IFN0YXRpY1Jh
bmdlJik7CiAgICAgdm9pZCBpbml0aWFsaXplU2V0TGlrZShET01TZXRBZGFwdGVyJik7CiAgICAg
Ci0gICAgY29uc3QgVmVjdG9yPFJlZjxTdGF0aWNSYW5nZT4+JiByYW5nZXMoKSBjb25zdCB7IHJl
dHVybiBtX3JhbmdlczsgfQorICAgIGNvbnN0IFZlY3RvcjxSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRh
Pj4mIHJhbmdlc0RhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jhbmdlc0RhdGE7IH0KIAogICAgIC8v
IEZJWE1FOiBBZGQgV0VCQ09SRV9FWFBPUlQgQ1NTU3R5bGVEZWNsYXJhdGlvbiYgc3R5bGUoKTsK
ICAgICAKIHByaXZhdGU6Ci0gICAgVmVjdG9yPFJlZjxTdGF0aWNSYW5nZT4+IG1fcmFuZ2VzOyAv
LyBUT0RPOiB1c2UgYSBIYXNoU2V0IGluc3RlYWQgb2YgYSBWZWN0b3IgPHJkYXI6Ly9wcm9ibGVt
LzU3NzYwNjE0PgorICAgIFZlY3RvcjxSZWY8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4gbV9yYW5nZXNE
YXRhOyAvLyBGSVhNRTogdXNlIGEgSGFzaFNldCBpbnN0ZWFkIG9mIGEgVmVjdG9yIDxyZGFyOi8v
cHJvYmxlbS81Nzc2MDYxND4KICAgICBleHBsaWNpdCBIaWdobGlnaHRSYW5nZUdyb3VwKFJlZjxT
dGF0aWNSYW5nZT4mJik7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAyNGJhYzZk
ZmRlMmEyNTNiYjMzZDQyZDBjMTIzYTliYjU0NDllNzE3Li43NDJmZDY5NDY2NzZjZGE4NzNjODMx
ZDIyZjgxODNlZWZlNDkzM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTI3NDAsNiAr
Mjc0MCwzOCBAQCBIaWdobGlnaHRNYXAmIERvY3VtZW50OjpoaWdobGlnaHRNYXAoKQogICAgIHJl
dHVybiAqbV9oaWdobGlnaHRNYXA7CiB9CiAKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhpZ2hsaWdo
dFBvc2l0aW9ucygpCit7CisgICAgVmVjdG9yPFdlYWtQdHI8SGlnaGxpZ2h0UmFuZ2VEYXRhPj4g
cmFuZ2VzRGF0YTsKKyAgICBpZiAobV9oaWdobGlnaHRNYXApIHsKKyAgICAgICAgZm9yIChhdXRv
JiBoaWdobGlnaHQgOiBtX2hpZ2hsaWdodE1hcC0+bWFwKCkpIHsKKyAgICAgICAgICAgIGZvciAo
YXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoKCFyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24uaGFzVmFsdWUoKSB8fCAh
cmFuZ2VEYXRhLT5lbmRQb3NpdGlvbi5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICAm
JiAoJnJhbmdlRGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnRyZWVTY29wZSgpID09ICZy
YW5nZURhdGEtPnJhbmdlLT5lbmRDb250YWluZXIoKS0+dHJlZVNjb3BlKCkpKQorICAgICAgICAg
ICAgICAgICAgICByYW5nZXNEYXRhLmFwcGVuZChtYWtlV2Vha1B0cihyYW5nZURhdGEucHRyKCkp
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBmb3IgKGF1dG8m
IHdlYWtSYW5nZURhdGEgOiByYW5nZXNEYXRhKSB7CisgICAgICAgIGlmIChhdXRvKiByYW5nZURh
dGEgPSB3ZWFrUmFuZ2VEYXRhLmdldCgpKSB7CisgICAgICAgICAgICBWaXNpYmxlU2VsZWN0aW9u
IHZpc2libGVTZWxlY3Rpb24ocmFuZ2VEYXRhLT5yYW5nZSk7CisgICAgICAgICAgICBQb3NpdGlv
biBzdGFydFBvc2l0aW9uOworICAgICAgICAgICAgUG9zaXRpb24gZW5kUG9zaXRpb247CisgICAg
ICAgICAgICBpZiAoIXJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbi5oYXNWYWx1ZSgpKQorICAgICAg
ICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSB2aXNpYmxlU2VsZWN0aW9uLnZpc2libGVTdGFydCgp
LmRlZXBFcXVpdmFsZW50KCk7CisgICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+ZW5kUG9zaXRp
b24uaGFzVmFsdWUoKSkKKyAgICAgICAgICAgICAgICBlbmRQb3NpdGlvbiA9IHZpc2libGVTZWxl
Y3Rpb24udmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKKyAgICAgICAgICAgIGlmICh3
ZWFrUmFuZ2VEYXRhLmdldCgpKSB7CisgICAgICAgICAgICAgICAgaWYgKCFyYW5nZURhdGEtPnN0
YXJ0UG9zaXRpb24uaGFzVmFsdWUoKSkKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VEYXRhLT5z
dGFydFBvc2l0aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKS5kZWVwRXF1aXZh
bGVudCgpOworICAgICAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbi5oYXNW
YWx1ZSgpKQorICAgICAgICAgICAgICAgICAgICByYW5nZURhdGEtPmVuZFBvc2l0aW9uID0gdmlz
aWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorICAgIH0KK30KKwogU2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKiBEb2N1
bWVudDo6c2NyaXB0YWJsZURvY3VtZW50UGFyc2VyKCkgY29uc3QKIHsKICAgICByZXR1cm4gcGFy
c2VyKCkgPyBwYXJzZXIoKS0+YXNTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKSA6IG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDYzOGQwNDBmMzdkMjI0NTdkZmRkMWNhMTQwM2E1YTY3
YjRmMzdiNWIuLjVmNDc4OGNjN2NkNTQ5YjQ0ZmJiNWY4YTViYjRlYWI4NTM0OWRjY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC0xNTQ3LDYgKzE1NDcsNyBAQCBwdWJsaWM6CiAgICAgVGV4dE1h
bmlwdWxhdGlvbkNvbnRyb2xsZXIqIHRleHRNYW5pcHVsYXRpb25Db250cm9sbGVySWZFeGlzdHMo
KSB7IHJldHVybiBtX3RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmdldCgpOyB9CiAgICAgICAg
IAogICAgIEhpZ2hsaWdodE1hcCYgaGlnaGxpZ2h0TWFwKCk7CisgICAgdm9pZCB1cGRhdGVIaWdo
bGlnaHRQb3NpdGlvbnMoKTsKIAogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxh
Z3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDA5YWE3
MzJkNWEyNjJlNDBjODY3ODY4NTUwY2RkYTI4MDAxODQ5NTkuLmYzMjdjYjMwMzAxYjY4MDI5MWEz
ODllOTE5MzkzMmI2YjhkOTYxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxl
U2VsZWN0aW9uLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNp
bmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1
ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC05Niw2ICs5NywxNiBA
QCBWaXNpYmxlU2VsZWN0aW9uOjpWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFJhbmdlJiByYW5nZSwg
RUFmZmluaXR5IGFmZmluaXR5LCBib29sCiAgICAgdmFsaWRhdGUoKTsKIH0KIAorVmlzaWJsZVNl
bGVjdGlvbjo6VmlzaWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYgc3RhdGljUmFuZ2Us
IEVBZmZpbml0eSBhZmZpbml0eSwgYm9vbCBpc0RpcmVjdGlvbmFsKQorICAgIDogbV9iYXNlKGNy
ZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5zdGFydENvbnRhaW5lcigpLCBz
dGF0aWNSYW5nZS5zdGFydE9mZnNldCgpKSkKKyAgICAsIG1fZXh0ZW50KGNyZWF0ZUxlZ2FjeUVk
aXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS5lbmRDb250YWluZXIoKSwgc3RhdGljUmFuZ2UuZW5k
T2Zmc2V0KCkpKQorICAgICwgbV9hZmZpbml0eShhZmZpbml0eSkKKyAgICAsIG1faXNEaXJlY3Rp
b25hbChpc0RpcmVjdGlvbmFsKQoreworICAgIEFTU0VSVCgmc3RhdGljUmFuZ2Uuc3RhcnRDb250
YWluZXIoKS0+dHJlZVNjb3BlKCkgPT0gJnN0YXRpY1JhbmdlLmVuZENvbnRhaW5lcigpLT50cmVl
U2NvcGUoKSk7CisgICAgdmFsaWRhdGUoKTsKK30KKwogVmlzaWJsZVNlbGVjdGlvbiBWaXNpYmxl
U2VsZWN0aW9uOjpzZWxlY3Rpb25Gcm9tQ29udGVudHNPZk5vZGUoTm9kZSogbm9kZSkKIHsKICAg
ICBBU1NFUlQoIWVkaXRpbmdJZ25vcmVzQ29udGVudCgqbm9kZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAppbmRleCBhOTQzZGE4YTc3NzJkNmNjY2JmZTJhYzdk
OGVmZmExNDdiMWY4YzFhLi4yZDQyZDhmN2VmMWZhMjFmMjg5MDMzZmFkNmI4MzFlYTBjM2UzZGRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaApAQCAtMzEsNiAr
MzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3NpdGlvbjsKK2NsYXNzIFN0
YXRpY1JhbmdlOwogCiBjb25zdCBFQWZmaW5pdHkgU0VMX0RFRkFVTFRfQUZGSU5JVFkgPSBET1dO
U1RSRUFNOwogZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90IHsgRGlyZWN0aW9uRm9y
d2FyZCwgRGlyZWN0aW9uQmFja3dhcmQsIERpcmVjdGlvblJpZ2h0LCBEaXJlY3Rpb25MZWZ0IH07
CkBAIC00NSw2ICs0Niw3IEBAIHB1YmxpYzoKICAgICBWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFBv
c2l0aW9uJiwgY29uc3QgUG9zaXRpb24mLCBFQWZmaW5pdHkgPSBTRUxfREVGQVVMVF9BRkZJTklU
WSwgYm9vbCBpc0RpcmVjdGlvbmFsID0gZmFsc2UpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgVmlz
aWJsZVNlbGVjdGlvbihjb25zdCBSYW5nZSYsIEVBZmZpbml0eSA9IFNFTF9ERUZBVUxUX0FGRklO
SVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgVmlz
aWJsZVNlbGVjdGlvbihjb25zdCBTdGF0aWNSYW5nZSYsIEVBZmZpbml0eSA9IFNFTF9ERUZBVUxU
X0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBmYWxzZSk7CiAgICAgCiAgICAgV0VCQ09S
RV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBib29sIGlz
RGlyZWN0aW9uYWwgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgVmlzaWJsZVNlbGVjdGlv
bihjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBjb25zdCBWaXNpYmxlUG9zaXRpb24mLCBib29sIGlz
RGlyZWN0aW9uYWwgPSBmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBiZDBmYWJkZDI4ZDll
MDY5YWVhOTllNDE1OThlYTI5NjMwYzQyNjU4Li42NDAxMGIxMWY4ZDFjMzY0YTI2NjMwNWI5NGM5
MDY0MjFmY2Q2NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTEzNTEsNiArMTM1MSwxMCBAQCB2
b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAjZW5kaWYKIAogICAgIGxheW91dElmTmVlZGVk
KCk7CisgICAgCisgICAgZm9yRWFjaERvY3VtZW50KFtdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsK
KyAgICAgICAgZG9jdW1lbnQudXBkYXRlSGlnaGxpZ2h0UG9zaXRpb25zKCk7CisgICAgfSk7CiB9
CiAKIHZvaWQgUGFnZTo6c3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9ucygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggOTY2OTcyOGE3OTYwYmJiNDkzOWY1
MjUxNjYyNGNiNmU5MDRlMDAyNS4uNjI5NGY2M2QyZjY4Nzg2ZThiMTg5NzlkZWY1ZThjYzA3ZmZm
YmRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcApAQCAt
MTA0MywxMSArMTA0MywxMCBAQCBWZWN0b3I8TWFya2VkVGV4dD4gSW5saW5lVGV4dEJveDo6Y29s
bGVjdE1hcmtlZFRleHRzRm9ySGlnaGxpZ2h0cyhUZXh0UGFpbnRQaGFzZQogICAgICAgICBhdXRv
IHJlbmRlclN0eWxlID0gcGFyZW50UmVuZGVyZXIuZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBz
ZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkgfSwgJnBhcmVudFN0eWxlKTsKICAgICAg
ICAgaWYgKCFyZW5kZXJTdHlsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBmb3Ig
KGF1dG8mIHN0YXRpY1JhbmdlIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXMoKSkgewotICAgICAg
ICAgICAgUG9zaXRpb24gc3RhcnRQb3MgPSBjcmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oc3Rh
dGljUmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCksIHN0YXRpY1JhbmdlLT5zdGFydE9mZnNldCgpKTsK
LSAgICAgICAgICAgIFBvc2l0aW9uIGVuZFBvcyA9IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlv
bihzdGF0aWNSYW5nZS0+ZW5kQ29udGFpbmVyKCksIHN0YXRpY1JhbmdlLT5lbmRPZmZzZXQoKSk7
Ci0KLSAgICAgICAgICAgIGlmIChzdGFydFBvcy5pc05vdE51bGwoKSAmJiBlbmRQb3MuaXNOb3RO
dWxsKCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUt
PnJhbmdlc0RhdGEoKSkgeworICAgICAgICAgICAgaWYgKHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlv
bi5oYXNWYWx1ZSgpICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24uaGFzVmFsdWUoKSkgeworICAg
ICAgICAgICAgICAgIFBvc2l0aW9uIHN0YXJ0UG9zID0gcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9u
LnZhbHVlKCk7CisgICAgICAgICAgICAgICAgUG9zaXRpb24gZW5kUG9zID0gcmFuZ2VEYXRhLT5l
bmRQb3NpdGlvbi52YWx1ZSgpOwogICAgICAgICAgICAgICAgIFJlbmRlck9iamVjdCogc3RhcnRS
ZW5kZXJlciA9IHN0YXJ0UG9zLmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCk7CiAgICAgICAg
ICAgICAgICAgaW50IHN0YXJ0T2Zmc2V0ID0gc3RhcnRQb3MuZGVwcmVjYXRlZEVkaXRpbmdPZmZz
ZXQoKTsKICAgICAgICAgICAgICAgICBSZW5kZXJPYmplY3QqIGVuZFJlbmRlcmVyID0gZW5kUG9z
LmRlcHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwCmluZGV4IDk4NDQxOWZkZjFkZGI3M2QwM2NlMzJl
Y2QwZTZlYmIxMTExNjgyZGUuLmQyMTg4OTA1NzAzZmU3YzllOTc4NTRmZjMyNWFkMDRlMmM0ZWI2
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEu
Y3BwCkBAIC0xNjcsMTMgKzE2NywxMyBAQCBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXRlIFNl
bGVjdGlvblJhbmdlRGF0YTo6c2VsZWN0aW9uU3RhdGVGb3JSZW5kZXJlcihSZW5kZQogICAgIC8v
IFBsYW5uZWQgZml4IGluIGEgZm9sbG93dXA6IDxyZGFyOi8vcHJvYmxlbS81ODA5NTkyMz4KICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NTI5CiAgICAg
Ci0gICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSB8fCByZW5k
ZXJlci5pc0Rlc2NlbmRhbnRPZihtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSkpIHsKKyAgICBp
ZiAoJnJlbmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKSB7CiAgICAgICAgIGlm
IChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSAmJiBtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkg
JiYgbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgPT0gbV9zZWxlY3Rpb25Db250ZXh0LmVuZCgp
KQogICAgICAgICAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6U2VsZWN0aW9uQm90aDsKICAgICAg
ICAgaWYgKG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpKQogICAgICAgICAgICAgcmV0dXJuIFJl
bmRlck9iamVjdDo6U2VsZWN0aW9uU3RhcnQ7CiAgICAgfQotICAgIGlmICgmcmVuZGVyZXIgPT0g
bV9zZWxlY3Rpb25Db250ZXh0LmVuZCgpIHx8IHJlbmRlcmVyLmlzRGVzY2VuZGFudE9mKG1fc2Vs
ZWN0aW9uQ29udGV4dC5lbmQoKSkpCisgICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNv
bnRleHQuZW5kKCkpCiAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkVuZDsK
IAogICAgIFJlbmRlck9iamVjdCogc2VsZWN0aW9uRW5kID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxYzA1
OTZlOGZlODFjODI1M2UzYjY2YTM4ODk1OWU2ZjNhYjgxNzFjLi45ODQ3OTVjOThjZDUzNDYzODA0
NDg1MWI3YjljYzU2ZTQ5MTJiOTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEtMTUg
IE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ug
VmlzaWJsZSBQb3NpdGlvbiB0byBjYWxjdWxhdGUgUG9zaXRpb25zIGZvciBoaWdobGlnaHRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDYzMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGhpZ2hsaWdo
dC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvY3Nz
L2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sOgor
ICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1j
YXNjYWRlLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQuaHRtbDoKKwogMjAyMC0wMS0xMyAgQ2hyaXMgTG9y
ZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjUzNjgzKTogW0dU
S11bV1BFXSBMb3RzIG9mIG9mZnNjcmVlbi1jYW52YXMgV1BUIHRlc3RzIGZhaWxpbmcKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0
bWwgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1s
CmluZGV4IDAyN2RhZjQzMGUyYWE3ZjI1YjNjYTkzYWJkOWRjYWM1YWE2Zjk4OTkuLjg4NDg4N2I4
MjdlNjk1YTA4NDA5OTRlYmIwMDcxN2E0YjEyYTE5M2EgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbApAQCAtMTMsNiArMTMs
NiBAQAogCiA8c2NyaXB0PgogbGV0IGhpZ2hsaWdodCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdoaWdobGlnaHQnKTsKLWxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LCBzdGFy
dE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBoaWdobGlnaHQsIGVuZE9mZnNldDogNH0pKTsKK2xl
dCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodC5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6
IDR9KSk7CiBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUiLCBoaWdobGlnaHRSYW5nZUdyb3Vw
KTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWFjcm9z
cy1lbGVtZW50cy5odG1sCmluZGV4IGUyMDJjOTk4MWJjM2ExMTk5YzViNDU1YTFkMjY3MzJlM2Ji
Mzc1ZjkuLmJhZjcxZTA5NmU3ZDc0NGE0NDQxNzMyNWYwYWFiZTI2MmI2OTc5OWEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC1hY3Jvc3MtZWxlbWVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3Mv
Y3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKQEAg
LTM0LDEyICszNCwxMiBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQzID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RleHQzJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGV4dDQnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0NScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0
Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEsIHN0YXJ0T2Zmc2V0OiA0LCBlbmRDb250YWluZXI6IHRl
eHRFbGVtZW50MSwgZW5kT2Zmc2V0OiA3fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VH
cm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29u
dGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENv
bnRhaW5lcjogdGV4dEVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogN30pKTsKIAot
ICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91
cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDEsIHN0YXJ0T2Zm
c2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIsIGVuZE9mZnNldDogNH0pKTsKLSAg
ICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250
YWluZXI6IHRleHRFbGVtZW50Miwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRF
bGVtZW50MywgZW5kT2Zmc2V0OiA1fSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDR9KSk7CisgICAg
ICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAyLmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiB0ZXh0RWxlbWVudDIuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250
YWluZXI6IHRleHRFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDV9KSk7CiAKLSAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLCBzdGFydE9mZnNl
dDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQ1LCBlbmRPZmZzZXQ6IDEyfSkpOworICAg
ICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50NS5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDEyfSkpOwogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhh
bXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOwogICAgICAgICBDU1MuaGln
aGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtY2FzY2FkZS5odG1sCmluZGV4IDA1MzRhYjUz
MTM3NzhmYTM0NjkzNWYwNmQ4NThkMmUzM2ViMGRkMzUuLmNkZTk3YzRiZmY3NGI3ZjcyOGZmMjk3
YjdlYjM4NzA4MWI2OGIwZGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2Nh
ZGUuaHRtbApAQCAtMjYsOCArMjYsOCBAQAogICAgICAgICBsZXQgdGV4dEVsZW1lbnQxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQxJyk7CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDIg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDInKTsKICAgICAgICAgbGV0IHRleHRFbGVt
ZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MycpOwotICAgICAgICBsZXQgaGln
aGxpZ2h0UmFuZ2VHcm91cCA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRh
aW5lcjogdGV4dEVsZW1lbnQxLCBlbmRPZmZzZXQ6IDN9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJh
bmdlR3JvdXAuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50
Miwgc3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLCBlbmRPZmZzZXQ6
IDl9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJh
bmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MS5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDN9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3Jv
dXAuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIuY2hp
bGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA5fSkpOwogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwKTsKICAgICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3Mv
Y3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sCmluZGV4IDE3YWMx
ZDZkZDAyZjljNWNhOWQ5MjQ5MGY3N2Y0Y2FhMDY1ZmRlNDcuLjcwMTNhNjYzMzVlYmU0NjI1YTQ0
YzdlNjNjZmRmMDdiNjcyY2FiNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJl
cGxhY2UuaHRtbApAQCAtMTgsMTAgKzE4LDEwIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBs
ZXQgdGV4dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKLSAgICAg
ICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAx
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDJ9KSk7CisgICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAxLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogMn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDIgPSBuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudCwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNl
dDogNH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFp
bmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiA2fSkpOyAgICAgICAgCisgICAgICAgIGxldCBo
aWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0
OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
Nn0pKTsgICAgICAgIAogCiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdo
bGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CiAgICAgICAgIENTUy5oaWdobGlnaHRzLnNl
dCgiZXhhbXBsZS1oaWdobGlnaHQiLCBoaWdobGlnaHRSYW5nZUdyb3VwMik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRl
eHQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC5odG1sCmluZGV4IDQ2YTVhN2E3NDE4MWRkYTZlMzBiN2EyMzM0YTBlMWM1ZmUx
OGRlMWMuLjRhYmY0MzAwMjgwYThhODMxOTdlODIyOWQ4NDg4YzgyMzYyMDg2YjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQt
dGV4dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtdGV4dC5odG1sCkBAIC0yNiwxNCArMjYsMTQgQEAKIAogICAgIDxzY3JpcHQ+
CiAgICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0
MScpOwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3Rh
cnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMn0pKTsK
KyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3Jv
dXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3Vw
MiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWlu
ZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVu
dCwgZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA1
LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDZ9KSk7CisgICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9m
ZnNldDogNH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNS
YW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zm
c2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNl
dDogNn0pKTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVu
dCwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDog
OH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogOSwgZW5kQ29udGFpbmVy
OiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0OiAxMH0pKTsKLSAgICAgICAgaGlnaGxpZ2h0UmFuZ2VH
cm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LCBz
dGFydE9mZnNldDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMTN9
KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxk
Tm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA3LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxk
Tm9kZXNbMF0sIGVuZE9mZnNldDogOH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDMu
YWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIHN0YXJ0T2Zmc2V0OiA5LCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50LmNoaWxkTm9k
ZXNbMF0sIGVuZE9mZnNldDogMTB9KSk7CisgICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAzLmFk
ZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5jaGlsZE5vZGVz
WzBdLCBzdGFydE9mZnNldDogMTIsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rl
c1swXSwgZW5kT2Zmc2V0OiAxM30pKTsKICAgICAgICAgCiAKICAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388121</attachid>
            <date>2020-01-17 17:30:26 -0800</date>
            <delta_ts>2020-01-17 18:13:22 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-206314-20200117173026.patch</filename>
            <type>text/plain</type>
            <size>23886</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFjMGM5MDBmZGMyNTY4
YjAyMjJhZmU0ZjNmYzAxNzU4ZGMzNTA3YS4uODFmNGZlNTZhNWM3N2Q3ZjNmZGVjODNlYzNhMmVi
YzE4YmM0Y2Q0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTAxLTE1ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFZpc2li
bGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGlnaGxpZ2h0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2MzE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFdoZW4gYWZ0ZXIgbGF5b3V0
IGlzIGNvbXBsZXRlIGNyZWF0ZSBhIFZpc2libGVTZWxlY3Rpb24gZnJvbSBhbmQgaGlnaGxpZ2h0
IFN0YXRpY1JhbmdlcyB3aGljaAorICAgICAgICBkb24ndCBoYXZlIHBvc2l0aW9uIGRhdGEgeWV0
LiBUaGlzIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhlIGluZm9ybWF0aW9uIGlzIGF2YWlsYmxlIHdo
ZW4gCisgICAgICAgIHJlbmRlcmluZywgYXMgVmlzaWJsZSBQb3NpdGlvbnMgYW5kIFZpc2libGUg
U2VsZWN0aW9ucyBjYW5ub3QgYmUgbWFkZSB3aGlsZSByZW5kZXJpbmcuCisgICAgICAgIEFsc28s
IGFkZCB0aGUgYWJpbGl0eSB0byBtYWtlIGEgVmlzaWJsZVNlbGVjdGlvbiBmcm9tIGEgU3RhdGlj
IFJhbmdlIHRvIHNpbXBsaWZ5IHRoZSBjb2RlLgorCisgICAgICAgIFVwZGF0ZWQgVGVzdDoKKyAg
ICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWw6CisgICAgICAgICogTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbDoK
KyAgICAgICAgKiBMYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sOgorICAgICAgICAqIExheW91dFRlc3RzL2h0dHAvd3B0
L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sOgorCisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpIaWdobGlnaHRSYW5nZUdyb3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpIaWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlrZSk6CisgICAgICAgIChXZWJD
b3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaWdobGlnaHRSYW5nZUdyb3VwOjpjbGVhckZyb21TZXRMaWtlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhpZ2hsaWdodFJhbmdlR3JvdXA6OmFkZFRvU2V0TGlrZSk6CisgICAgICAgICog
TW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oOgorICAgICAgICAoV2ViQ29y
ZTo6SGlnaGxpZ2h0UmFuZ2VEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SGlnaGxp
Z2h0UmFuZ2VEYXRhOjpIaWdobGlnaHRSYW5nZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SGln
aGxpZ2h0UmFuZ2VHcm91cDo6cmFuZ2VzRGF0YSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
aWdobGlnaHRSYW5nZUdyb3VwOjpyYW5nZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaWRsOgorICAgICAgICAqIGVkaXRp
bmcvVmlzaWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0
aW9uOjpjcmVhdGUpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
bGluZVRleHRCb3g6OmNvbGxlY3RNYXJrZWRUZXh0c0ZvckhpZ2hsaWdodHMgY29uc3QpOgorICAg
ICAgICAqIHJlbmRlcmluZy9TZWxlY3Rpb25SYW5nZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0aW9uUmFuZ2VEYXRhOjpzZWxlY3Rpb25TdGF0ZUZvclJlbmRlcmVyKToKKwogMjAy
MC0wMS0xMyAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIFBsYXlTdGF0aW9uIGFuZCBjbGFuZy1jbC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdl
R3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFu
Z2VHcm91cC5jcHAKaW5kZXggZGQ1M2NiYmVkMmE2ZmI5MmJlZmFiNjQ3ZWU4N2EzYmIxZGM1YWY2
OC4uZmMxMjk0MDBhZDVjNmEyMGJhYjNlNGQzYWY1YzkyMjQ1ZWJjM2Y0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdobGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91
cC5jcHAKQEAgLTMyLDEyICszMiwxNCBAQAogI2luY2x1ZGUgIlByb3BlcnR5U2V0Q1NTU3R5bGVE
ZWNsYXJhdGlvbi5oIgogI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAjaW5jbHVkZSAiU3R5bGVQ
cm9wZXJ0aWVzLmgiCisjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEhpZ2hsaWdodFJhbmdlR3JvdXA6OkhpZ2hsaWdodFJhbmdlR3JvdXAoUmVmPFN0YXRpY1Jh
bmdlPiYmIHJhbmdlKQogewotICAgIG1fcmFuZ2VzLmFwcGVuZChXVEZNb3ZlKHJhbmdlKSk7Cisg
ICAgYXV0byBteVJhbmdlID0gV1RGTW92ZShyYW5nZSk7CisgICAgYWRkVG9TZXRMaWtlKG15UmFu
Z2UuZ2V0KCkpOwogfQogCiBSZWY8SGlnaGxpZ2h0UmFuZ2VHcm91cD4gSGlnaGxpZ2h0UmFuZ2VH
cm91cDo6Y3JlYXRlKFN0YXRpY1JhbmdlJiByYW5nZSkKQEAgLTQ3LDI3ICs0OSwyOCBAQCBSZWY8
SGlnaGxpZ2h0UmFuZ2VHcm91cD4gSGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y3JlYXRlKFN0YXRpY1Jh
bmdlJiByYW5nZSkKIAogdm9pZCBIaWdobGlnaHRSYW5nZUdyb3VwOjppbml0aWFsaXplU2V0TGlr
ZShET01TZXRBZGFwdGVyJiBzZXQpCiB7Ci0gICAgZm9yIChhdXRvJiByYW5nZSA6IG1fcmFuZ2Vz
KQotICAgICAgICBzZXQuYWRkPElETEludGVyZmFjZTxTdGF0aWNSYW5nZT4+KHJhbmdlKTsKKyAg
ICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IG1fcmFuZ2VzRGF0YSkKKyAgICAgICAgc2V0LmFkZDxJ
RExJbnRlcmZhY2U8U3RhdGljUmFuZ2U+PihyYW5nZURhdGEtPnJhbmdlKTsKIH0KIAogYm9vbCBI
aWdobGlnaHRSYW5nZUdyb3VwOjpyZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYg
cmFuZ2UpCiB7Ci0gICAgcmV0dXJuIG1fcmFuZ2VzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZyYW5n
ZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYgY3VycmVudCkgewotICAgICAgICByZXR1cm4gY3Vy
cmVudC5nZXQoKSA9PSByYW5nZTsKKyAgICByZXR1cm4gbV9yYW5nZXNEYXRhLnJlbW92ZUZpcnN0
TWF0Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQp
IHsKKyAgICAgICAgcmV0dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7CiAg
ICAgfSk7CiB9CiAKIHZvaWQgSGlnaGxpZ2h0UmFuZ2VHcm91cDo6Y2xlYXJGcm9tU2V0TGlrZSgp
CiB7Ci0gICAgbV9yYW5nZXMuY2xlYXIoKTsKKyAgICBtX3Jhbmdlc0RhdGEuY2xlYXIoKTsKIH0K
IAogYm9vbCBIaWdobGlnaHRSYW5nZUdyb3VwOjphZGRUb1NldExpa2UoU3RhdGljUmFuZ2UmIHJh
bmdlKQogewotICAgIGlmIChub3RGb3VuZCAhPSBtX3Jhbmdlcy5maW5kTWF0Y2hpbmcoWyZyYW5n
ZV0oY29uc3QgUmVmPFN0YXRpY1JhbmdlPiYgY3VycmVudCkgeyByZXR1cm4gY3VycmVudC5nZXQo
KSA9PSByYW5nZTsgfSkpCisgICAgaWYgKG5vdEZvdW5kICE9IG1fcmFuZ2VzRGF0YS5maW5kTWF0
Y2hpbmcoWyZyYW5nZV0oY29uc3QgUmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4mIGN1cnJlbnQpIHsg
cmV0dXJuIGN1cnJlbnQuZ2V0KCkucmFuZ2UuZ2V0KCkgPT0gcmFuZ2U7IH0pKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgbV9yYW5nZXMuYXBwZW5kKG1ha2VSZWYocmFuZ2UpKTsKKyAgICBt
X3Jhbmdlc0RhdGEuYXBwZW5kKEhpZ2hsaWdodFJhbmdlRGF0YTo6Y3JlYXRlKHJhbmdlKSk7Cisg
ICAgCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaGlnaGxpZ2h0L0hpZ2hsaWdodFJhbmdlR3JvdXAuaAppbmRleCA5NzI0NTA2M2Q1NmFm
MWEyYjQ0ZTAxZTdhMWE0OTFjMmMyYjhiN2I2Li40ZDgxZTllZjcyMzM0MDNmYzMzODVlMTQ2MzFm
Y2IwYTljNWVhNjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2hpZ2hsaWdo
dC9IaWdobGlnaHRSYW5nZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9oaWdo
bGlnaHQvSGlnaGxpZ2h0UmFuZ2VHcm91cC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAiUG9zaXRpb24uaCIKICNp
bmNsdWRlICJTdGF0aWNSYW5nZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKQEAg
LTM2LDYgKzM3LDIzIEBAIGNsYXNzIERPTVNldEFkYXB0ZXI7CiBjbGFzcyBTdGF0aWNSYW5nZTsK
IGNsYXNzIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjsKIAorc3RydWN0IEhpZ2hsaWdo
dFJhbmdlRGF0YSA6IFJlZkNvdW50ZWQ8SGlnaGxpZ2h0UmFuZ2VEYXRhPiwgcHVibGljIENhbk1h
a2VXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4geworICAgIAorICAgIEhpZ2hsaWdodFJhbmdl
RGF0YShSZWY8U3RhdGljUmFuZ2U+JiYgcmFuZ2UpCisgICAgICAgIDogcmFuZ2UoV1RGTW92ZShy
YW5nZSkpCisgICAgeworICAgIH0KKyAgICAKKyAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodFJhbmdl
RGF0YT4gY3JlYXRlKFJlZjxTdGF0aWNSYW5nZT4mJiByYW5nZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodFJhbmdlRGF0YShXVEZNb3ZlKHJhbmdlKSkpOwor
ICAgIH0KKyAgICAKKyAgICBSZWY8U3RhdGljUmFuZ2U+IHJhbmdlOworICAgIE9wdGlvbmFsPFBv
c2l0aW9uPiBzdGFydFBvc2l0aW9uOworICAgIE9wdGlvbmFsPFBvc2l0aW9uPiBlbmRQb3NpdGlv
bjsKK307CisKIGNsYXNzIEhpZ2hsaWdodFJhbmdlR3JvdXAgOiBwdWJsaWMgUmVmQ291bnRlZDxI
aWdobGlnaHRSYW5nZUdyb3VwPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxIaWdobGlnaHRS
YW5nZUdyb3VwPiBjcmVhdGUoU3RhdGljUmFuZ2UmKTsKQEAgLTQ1LDEyICs2MywxMiBAQCBwdWJs
aWM6CiAgICAgYm9vbCByZW1vdmVGcm9tU2V0TGlrZShjb25zdCBTdGF0aWNSYW5nZSYpOwogICAg
IHZvaWQgaW5pdGlhbGl6ZVNldExpa2UoRE9NU2V0QWRhcHRlciYpOwogICAgIAotICAgIGNvbnN0
IFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiYgcmFuZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9yYW5n
ZXM7IH0KKyAgICBjb25zdCBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+JiByYW5nZXNE
YXRhKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZXNEYXRhOyB9CiAKICAgICAvLyBGSVhNRTogQWRk
IFdFQkNPUkVfRVhQT1JUIENTU1N0eWxlRGVjbGFyYXRpb24mIHN0eWxlKCk7CiAgICAgCiBwcml2
YXRlOgotICAgIFZlY3RvcjxSZWY8U3RhdGljUmFuZ2U+PiBtX3JhbmdlczsgLy8gVE9ETzogdXNl
IGEgSGFzaFNldCBpbnN0ZWFkIG9mIGEgVmVjdG9yIDxyZGFyOi8vcHJvYmxlbS81Nzc2MDYxND4K
KyAgICBWZWN0b3I8UmVmPEhpZ2hsaWdodFJhbmdlRGF0YT4+IG1fcmFuZ2VzRGF0YTsgLy8gRklY
TUU6IHVzZSBhIEhhc2hTZXQgaW5zdGVhZCBvZiBhIFZlY3RvciA8cmRhcjovL3Byb2JsZW0vNTc3
NjA2MTQ+CiAgICAgZXhwbGljaXQgSGlnaGxpZ2h0UmFuZ2VHcm91cChSZWY8U3RhdGljUmFuZ2U+
JiYpOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjRiYWM2ZGZkZTJhMjUzYmIz
M2Q0MmQwYzEyM2E5YmI1NDQ5ZTcxNy4uNGI3N2QwYmIxNzU0NmZiODFmMjk5NzU3Y2M2YzgwZjY5
MTBhOWEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yNzQwLDYgKzI3NDAsMzkgQEAg
SGlnaGxpZ2h0TWFwJiBEb2N1bWVudDo6aGlnaGxpZ2h0TWFwKCkKICAgICByZXR1cm4gKm1faGln
aGxpZ2h0TWFwOwogfQogCit2b2lkIERvY3VtZW50Ojp1cGRhdGVIaWdobGlnaHRQb3NpdGlvbnMo
KQoreworICAgIFZlY3RvcjxXZWFrUHRyPEhpZ2hsaWdodFJhbmdlRGF0YT4+IHJhbmdlc0RhdGE7
CisgICAgaWYgKG1faGlnaGxpZ2h0TWFwKSB7CisgICAgICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0
IDogbV9oaWdobGlnaHRNYXAtPm1hcCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIHJhbmdl
RGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAgICAg
aWYgKHJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbiAmJiByYW5nZURhdGEtPmVuZFBvc2l0aW9uKQor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAoJnJhbmdl
RGF0YS0+cmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPnRyZWVTY29wZSgpICE9ICZyYW5nZURhdGEt
PnJhbmdlLT5lbmRDb250YWluZXIoKS0+dHJlZVNjb3BlKCkpCisgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHJhbmdlc0RhdGEuYXBwZW5kKG1ha2VXZWFrUHRy
KHJhbmdlRGF0YS5wdHIoKSkpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorICAg
IAorICAgIGZvciAoYXV0byYgd2Vha1JhbmdlRGF0YSA6IHJhbmdlc0RhdGEpIHsKKyAgICAgICAg
aWYgKGF1dG8qIHJhbmdlRGF0YSA9IHdlYWtSYW5nZURhdGEuZ2V0KCkpIHsKKyAgICAgICAgICAg
IFZpc2libGVTZWxlY3Rpb24gdmlzaWJsZVNlbGVjdGlvbihyYW5nZURhdGEtPnJhbmdlKTsKKyAg
ICAgICAgICAgIFBvc2l0aW9uIHN0YXJ0UG9zaXRpb247CisgICAgICAgICAgICBQb3NpdGlvbiBl
bmRQb3NpdGlvbjsKKyAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uLmhh
c1ZhbHVlKCkpCisgICAgICAgICAgICAgICAgc3RhcnRQb3NpdGlvbiA9IHZpc2libGVTZWxlY3Rp
b24udmlzaWJsZVN0YXJ0KCkuZGVlcEVxdWl2YWxlbnQoKTsKKyAgICAgICAgICAgIGlmICghcmFu
Z2VEYXRhLT5lbmRQb3NpdGlvbi5oYXNWYWx1ZSgpKQorICAgICAgICAgICAgICAgIGVuZFBvc2l0
aW9uID0gdmlzaWJsZVNlbGVjdGlvbi52aXNpYmxlRW5kKCkuZGVlcEVxdWl2YWxlbnQoKTsgLy8g
PE1NRz4gc3dpdGNoIHRvIEVORAorICAgICAgICAgICAgaWYgKCF3ZWFrUmFuZ2VEYXRhLmdldCgp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBy
YW5nZURhdGEtPnN0YXJ0UG9zaXRpb24gPSBzdGFydFBvc2l0aW9uOworICAgICAgICAgICAgcmFu
Z2VEYXRhLT5lbmRQb3NpdGlvbiA9IGVuZFBvc2l0aW9uOworICAgICAgICB9CisgICAgfQorfQor
CiBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIERvY3VtZW50OjpzY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIoKSBjb25zdAogewogICAgIHJldHVybiBwYXJzZXIoKSA/IHBhcnNlcigpLT5hc1Njcmlw
dGFibGVEb2N1bWVudFBhcnNlcigpIDogbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXgg
NjM4ZDA0MGYzN2QyMjQ1N2RmZGQxY2ExNDAzYTVhNjdiNGYzN2I1Yi4uNWY0Nzg4Y2M3Y2Q1NDli
NDRmYmI1ZjhhNWJiNGVhYjg1MzQ5ZGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTE1NDcs
NiArMTU0Nyw3IEBAIHB1YmxpYzoKICAgICBUZXh0TWFuaXB1bGF0aW9uQ29udHJvbGxlciogdGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXJJZkV4aXN0cygpIHsgcmV0dXJuIG1fdGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXIuZ2V0KCk7IH0KICAgICAgICAgCiAgICAgSGlnaGxpZ2h0TWFwJiBoaWdo
bGlnaHRNYXAoKTsKKyAgICB2b2lkIHVwZGF0ZUhpZ2hsaWdodFBvc2l0aW9ucygpOwogCiBwcm90
ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9u
UmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXggMDlhYTczMmQ1YTI2MmU0MGM4Njc4Njg1NTBjZGRh
MjgwMDE4NDk1OS4uZjMyN2NiMzAzMDFiNjgwMjkxYTM4OWU5MTkzOTMyYjZiOGQ5NjExOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCkBAIC0zMiw2ICsz
Miw3IEBACiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdz
LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlN0YXRpY1JhbmdlLmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5j
bHVkZSA8c3RkaW8uaD4KQEAgLTk2LDYgKzk3LDE2IEBAIFZpc2libGVTZWxlY3Rpb246OlZpc2li
bGVTZWxlY3Rpb24oY29uc3QgUmFuZ2UmIHJhbmdlLCBFQWZmaW5pdHkgYWZmaW5pdHksIGJvb2wK
ICAgICB2YWxpZGF0ZSgpOwogfQogCitWaXNpYmxlU2VsZWN0aW9uOjpWaXNpYmxlU2VsZWN0aW9u
KGNvbnN0IFN0YXRpY1JhbmdlJiBzdGF0aWNSYW5nZSwgRUFmZmluaXR5IGFmZmluaXR5LCBib29s
IGlzRGlyZWN0aW9uYWwpCisgICAgOiBtX2Jhc2UoY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9u
KHN0YXRpY1JhbmdlLnN0YXJ0Q29udGFpbmVyKCksIHN0YXRpY1JhbmdlLnN0YXJ0T2Zmc2V0KCkp
KQorICAgICwgbV9leHRlbnQoY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1Jhbmdl
LmVuZENvbnRhaW5lcigpLCBzdGF0aWNSYW5nZS5lbmRPZmZzZXQoKSkpCisgICAgLCBtX2FmZmlu
aXR5KGFmZmluaXR5KQorICAgICwgbV9pc0RpcmVjdGlvbmFsKGlzRGlyZWN0aW9uYWwpCit7Cisg
ICAgQVNTRVJUKCZzdGF0aWNSYW5nZS5zdGFydENvbnRhaW5lcigpLT50cmVlU2NvcGUoKSA9PSAm
c3RhdGljUmFuZ2UuZW5kQ29udGFpbmVyKCktPnRyZWVTY29wZSgpKTsKKyAgICB2YWxpZGF0ZSgp
OworfQorCiBWaXNpYmxlU2VsZWN0aW9uIFZpc2libGVTZWxlY3Rpb246OnNlbGVjdGlvbkZyb21D
b250ZW50c09mTm9kZShOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCghZWRpdGluZ0lnbm9yZXND
b250ZW50KCpub2RlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVTZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5o
CmluZGV4IGE5NDNkYThhNzc3MmQ2Y2NjYmZlMmFjN2Q4ZWZmYTE0N2IxZjhjMWEuLjJkNDJkOGY3
ZWYxZmEyMWYyODkwMzNmYWQ2YjgzMWVhMGMzZTNkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVmlzaWJsZVNlbGVjdGlvbi5oCkBAIC0zMSw2ICszMSw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFBvc2l0aW9uOworY2xhc3MgU3RhdGljUmFuZ2U7CiAKIGNvbnN0IEVBZmZp
bml0eSBTRUxfREVGQVVMVF9BRkZJTklUWSA9IERPV05TVFJFQU07CiBlbnVtIFNlbGVjdGlvbkRp
cmVjdGlvbiA6IHVpbnQ4X3QgeyBEaXJlY3Rpb25Gb3J3YXJkLCBEaXJlY3Rpb25CYWNrd2FyZCwg
RGlyZWN0aW9uUmlnaHQsIERpcmVjdGlvbkxlZnQgfTsKQEAgLTQ1LDYgKzQ2LDcgQEAgcHVibGlj
OgogICAgIFZpc2libGVTZWxlY3Rpb24oY29uc3QgUG9zaXRpb24mLCBjb25zdCBQb3NpdGlvbiYs
IEVBZmZpbml0eSA9IFNFTF9ERUZBVUxUX0FGRklOSVRZLCBib29sIGlzRGlyZWN0aW9uYWwgPSBm
YWxzZSk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFJhbmdl
JiwgRUFmZmluaXR5ID0gU0VMX0RFRkFVTFRfQUZGSU5JVFksIGJvb2wgaXNEaXJlY3Rpb25hbCA9
IGZhbHNlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFN0YXRp
Y1JhbmdlJiwgRUFmZmluaXR5ID0gU0VMX0RFRkFVTFRfQUZGSU5JVFksIGJvb2wgaXNEaXJlY3Rp
b25hbCA9IGZhbHNlKTsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlU2VsZWN0aW9u
KGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGJvb2wgaXNEaXJlY3Rpb25hbCA9IGZhbHNlKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCBWaXNpYmxlU2VsZWN0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYs
IGNvbnN0IFZpc2libGVQb3NpdGlvbiYsIGJvb2wgaXNEaXJlY3Rpb25hbCA9IGZhbHNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCmluZGV4IGJkMGZhYmRkMjhkOWUwNjlhZWE5OWU0MTU5OGVhMjk2MzBjNDI2
NTguLjY0MDEwYjExZjhkMWMzNjRhMjY2MzA1Yjk0YzkwNjQyMWZjZDY0ZjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcApAQCAtMTM1MSw2ICsxMzUxLDEwIEBAIHZvaWQgUGFnZTo6dXBkYXRlUmVuZGVyaW5n
KCkKICNlbmRpZgogCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsKKyAgICAKKyAgICBmb3JFYWNoRG9j
dW1lbnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgeworICAgICAgICBkb2N1bWVudC51cGRhdGVI
aWdobGlnaHRQb3NpdGlvbnMoKTsKKyAgICB9KTsKIH0KIAogdm9pZCBQYWdlOjpzdXNwZW5kU2Ny
aXB0ZWRBbmltYXRpb25zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9J
bmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmNwcAppbmRleCA5NjY5NzI4YTc5NjBiYmI0OTM5ZjUyNTE2NjI0Y2I2ZTkwNGUwMDI1Li43M2Y4
YzVlMDNkOTZjZTRiZmMwZGM5ZTM2ZDQzODc1NWI4Y2E5M2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC0xMDQzLDExICsxMDQzLDEwIEBAIFZlY3Rv
cjxNYXJrZWRUZXh0PiBJbmxpbmVUZXh0Qm94Ojpjb2xsZWN0TWFya2VkVGV4dHNGb3JIaWdobGln
aHRzKFRleHRQYWludFBoYXNlCiAgICAgICAgIGF1dG8gcmVuZGVyU3R5bGUgPSBwYXJlbnRSZW5k
ZXJlci5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxp
Z2h0LmtleSB9LCAmcGFyZW50U3R5bGUpOwogICAgICAgICBpZiAoIXJlbmRlclN0eWxlKQogICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGZvciAoYXV0byYgc3RhdGljUmFuZ2UgOiBoaWdo
bGlnaHQudmFsdWUtPnJhbmdlcygpKSB7Ci0gICAgICAgICAgICBQb3NpdGlvbiBzdGFydFBvcyA9
IGNyZWF0ZUxlZ2FjeUVkaXRpbmdQb3NpdGlvbihzdGF0aWNSYW5nZS0+c3RhcnRDb250YWluZXIo
KSwgc3RhdGljUmFuZ2UtPnN0YXJ0T2Zmc2V0KCkpOwotICAgICAgICAgICAgUG9zaXRpb24gZW5k
UG9zID0gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHN0YXRpY1JhbmdlLT5lbmRDb250YWlu
ZXIoKSwgc3RhdGljUmFuZ2UtPmVuZE9mZnNldCgpKTsKLQotICAgICAgICAgICAgaWYgKHN0YXJ0
UG9zLmlzTm90TnVsbCgpICYmIGVuZFBvcy5pc05vdE51bGwoKSkgeworICAgICAgICBmb3IgKGF1
dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAg
ICAgICBpZiAocmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9uICYmIHJhbmdlRGF0YS0+ZW5kUG9zaXRp
b24pIHsKKyAgICAgICAgICAgICAgICBQb3NpdGlvbiBzdGFydFBvcyA9IHJhbmdlRGF0YS0+c3Rh
cnRQb3NpdGlvbi52YWx1ZSgpOworICAgICAgICAgICAgICAgIFBvc2l0aW9uIGVuZFBvcyA9IHJh
bmdlRGF0YS0+ZW5kUG9zaXRpb24udmFsdWUoKTsKICAgICAgICAgICAgICAgICBSZW5kZXJPYmpl
Y3QqIHN0YXJ0UmVuZGVyZXIgPSBzdGFydFBvcy5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigp
OwogICAgICAgICAgICAgICAgIGludCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zLmRlcHJlY2F0ZWRF
ZGl0aW5nT2Zmc2V0KCk7CiAgICAgICAgICAgICAgICAgUmVuZGVyT2JqZWN0KiBlbmRSZW5kZXJl
ciA9IGVuZFBvcy5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1NlbGVjdGlvblJhbmdlRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvU2VsZWN0aW9uUmFuZ2VEYXRhLmNwcAppbmRleCA5ODQ0MTlmZGYxZGRi
NzNkMDNjZTMyZWNkMGU2ZWJiMTExMTY4MmRlLi5kMjE4ODkwNTcwM2ZlN2M5ZTk3ODU0ZmYzMjVh
ZDA0ZTJjNGViNjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0
aW9uUmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvU2VsZWN0aW9u
UmFuZ2VEYXRhLmNwcApAQCAtMTY3LDEzICsxNjcsMTMgQEAgUmVuZGVyT2JqZWN0OjpTZWxlY3Rp
b25TdGF0ZSBTZWxlY3Rpb25SYW5nZURhdGE6OnNlbGVjdGlvblN0YXRlRm9yUmVuZGVyZXIoUmVu
ZGUKICAgICAvLyBQbGFubmVkIGZpeCBpbiBhIGZvbGxvd3VwOiA8cmRhcjovL3Byb2JsZW0vNTgw
OTU5MjM+CiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NTUyOQogICAgIAotICAgIGlmICgmcmVuZGVyZXIgPT0gbV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0
KCkgfHwgcmVuZGVyZXIuaXNEZXNjZW5kYW50T2YobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkp
KSB7CisgICAgaWYgKCZyZW5kZXJlciA9PSBtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSkgewog
ICAgICAgICBpZiAobV9zZWxlY3Rpb25Db250ZXh0LnN0YXJ0KCkgJiYgbV9zZWxlY3Rpb25Db250
ZXh0LmVuZCgpICYmIG1fc2VsZWN0aW9uQ29udGV4dC5zdGFydCgpID09IG1fc2VsZWN0aW9uQ29u
dGV4dC5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvbkJv
dGg7CiAgICAgICAgIGlmIChtX3NlbGVjdGlvbkNvbnRleHQuc3RhcnQoKSkKICAgICAgICAgICAg
IHJldHVybiBSZW5kZXJPYmplY3Q6OlNlbGVjdGlvblN0YXJ0OwogICAgIH0KLSAgICBpZiAoJnJl
bmRlcmVyID09IG1fc2VsZWN0aW9uQ29udGV4dC5lbmQoKSB8fCByZW5kZXJlci5pc0Rlc2NlbmRh
bnRPZihtX3NlbGVjdGlvbkNvbnRleHQuZW5kKCkpKQorICAgIGlmICgmcmVuZGVyZXIgPT0gbV9z
ZWxlY3Rpb25Db250ZXh0LmVuZCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpTZWxl
Y3Rpb25FbmQ7CiAKICAgICBSZW5kZXJPYmplY3QqIHNlbGVjdGlvbkVuZCA9IG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMWMwNTk2ZThmZTgxYzgyNTNlM2I2NmEzODg5NTllNmYzYWI4MTcxYy4uOTc3MGZiM2I4
YzhkNDk5NTAxNjU1Y2NjZGZjMzhhMDRjMjUyMTk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTAxLTE1ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIFZpc2libGUgUG9zaXRpb24gdG8gY2FsY3VsYXRlIFBvc2l0aW9ucyBmb3IgaGln
aGxpZ2h0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA2MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgICog
aGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbDoKKyAgICAgICAgKiBodHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRz
Lmh0bWw6CisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC10ZXh0LWNhc2NhZGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LXRleHQtcmVwbGFjZS5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC5odG1sOgorCiAyMDIwLTAxLTEzICBD
aHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNTM2
ODMpOiBbR1RLXVtXUEVdIExvdHMgb2Ygb2Zmc2NyZWVuLWNhbnZhcyBXUFQgdGVzdHMgZmFpbGlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQt
ZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL2hpZ2hsaWdodC9yZXNvdXJjZXMvaGlnaGxpZ2h0LWZy
YW1lLmh0bWwKaW5kZXggMDI3ZGFmNDMwZTJhYTdmMjViM2NhOTNhYmQ5ZGNhYzVhYTZmOTg5OS4u
ODg0ODg3YjgyN2U2OTVhMDg0MDk5NGViYjAwNzE3YTRiMTJhMTkzYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L3Jlc291cmNlcy9oaWdobGlnaHQtZnJhbWUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9oaWdobGlnaHQvcmVzb3VyY2VzL2hpZ2hsaWdodC1mcmFtZS5odG1sCkBAIC0x
Myw2ICsxMyw2IEBACiAKIDxzY3JpcHQ+CiBsZXQgaGlnaGxpZ2h0ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2hpZ2hsaWdodCcpOwotbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGln
aHQsIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGhpZ2hsaWdodCwgZW5kT2Zmc2V0OiA0
fSkpOworbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChu
ZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBoaWdobGlnaHQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaGlnaGxpZ2h0LmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogNH0pKTsKIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZSIsIGhpZ2hsaWdodFJh
bmdlR3JvdXApOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRleHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRl
eHQtYWNyb3NzLWVsZW1lbnRzLmh0bWwKaW5kZXggZTIwMmM5OTgxYmMzYTExOTljNWI0NTVhMWQy
NjczMmUzYmIzNzVmOS4uYmFmNzFlMDk2ZTdkNzQ0YTQ0NDE3MzI1ZjBhYWJlMjYyYjY5Nzk5YSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0LWFjcm9zcy1lbGVtZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1hY3Jvc3MtZWxlbWVudHMu
aHRtbApAQCAtMzQsMTIgKzM0LDEyIEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVudDMgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDMnKTsKICAgICAgICAgbGV0IHRleHRFbGVtZW50NCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0NCcpOwogICAgICAgICBsZXQgdGV4dEVsZW1l
bnQ1ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQ1Jyk7Ci0gICAgICAgIGxldCBoaWdo
bGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MSwgc3RhcnRPZmZzZXQ6IDQsIGVuZENvbnRh
aW5lcjogdGV4dEVsZW1lbnQxLCBlbmRPZmZzZXQ6IDd9KSk7CisgICAgICAgIGxldCBoaWdobGln
aHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7
c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
NCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA3
fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRS
YW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50MSwg
c3RhcnRPZmZzZXQ6IDEwLCBlbmRDb250YWluZXI6IHRleHRFbGVtZW50MiwgZW5kT2Zmc2V0OiA0
fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5l
cjogdGV4dEVsZW1lbnQzLCBlbmRPZmZzZXQ6IDV9KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMiA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNH0p
KTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VHcm91cDIuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IHRleHRFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAs
IGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQzLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogNX0p
KTsKIAotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDMgPSBuZXcgSGlnaGxpZ2h0UmFu
Z2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudDMsIHN0
YXJ0T2Zmc2V0OiAxMCwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDUsIGVuZE9mZnNldDogMTJ9
KSk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5n
ZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50My5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMTAsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQ1LmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMTJ9KSk7CiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMu
c2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7CiAgICAgICAg
IENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxpZ2h0UmFuZ2VH
cm91cDIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1jYXNjYWRlLmh0bWwKaW5kZXgg
MDUzNGFiNTMxMzc3OGZhMzQ2OTM1ZjA2ZDg1OGQyZTMzZWIwZGQzNS4uY2RlOTdjNGJmZjc0Yjdm
NzI4ZmYyOTdiN2ViMzg3MDgxYjY4YjBkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LWNhc2NhZGUuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LXRl
eHQtY2FzY2FkZS5odG1sCkBAIC0yNiw4ICsyNiw4IEBACiAgICAgICAgIGxldCB0ZXh0RWxlbWVu
dDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dDEnKTsKICAgICAgICAgbGV0IHRleHRF
bGVtZW50MiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MicpOwogICAgICAgICBsZXQg
dGV4dEVsZW1lbnQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQzJyk7Ci0gICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQxLCBzdGFydE9mZnNldDogMCwg
ZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDEsIGVuZE9mZnNldDogM30pKTsKLSAgICAgICAgaGln
aGxpZ2h0UmFuZ2VHcm91cC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4
dEVsZW1lbnQyLCBzdGFydE9mZnNldDogNSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudDIsIGVu
ZE9mZnNldDogOX0pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAgPSBuZXcgSGln
aGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxl
bWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQxLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogM30pKTsKKyAgICAgICAgaGlnaGxpZ2h0
UmFuZ2VHcm91cC5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiA1LCBlbmRDb250YWluZXI6IHRleHRFbGVt
ZW50Mi5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDl9KSk7CiAKICAgICAgICAgQ1NTLmhpZ2hs
aWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXApOwogICAg
IDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdo
bGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtdGV4dC1yZXBsYWNlLmh0bWwKaW5k
ZXggMTdhYzFkNmRkMDJmOWM1Y2E5ZDkyNDkwZjc3ZjRjYWEwNjVmZGU0Ny4uNzAxM2E2NjMzNWVi
ZTQ2MjVhNDRjN2U2M2NmZGYwN2I2NzJjYWI1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0LXJlcGxhY2UuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LXRleHQtcmVwbGFjZS5odG1sCkBAIC0xOCwxMCArMTgsMTAgQEAKIAogICAgIDxzY3JpcHQ+CiAg
ICAgICAgIGxldCB0ZXh0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0MScp
OwotICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRP
ZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogMn0pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAxID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDEsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiAyfSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMiA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IHRleHRFbGVtZW50LCBzdGFydE9mZnNldDogMywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwg
ZW5kT2Zmc2V0OiA0fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA1LCBl
bmRDb250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDZ9KSk7ICAgICAgICAKKyAgICAg
ICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3IFN0
YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiA2fSkpOyAgICAgICAgCiAKICAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFt
cGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKICAgICAgICAgQ1NTLmhpZ2hs
aWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodCIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdo
bGlnaHQtdGV4dC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQt
YXBpL2hpZ2hsaWdodC10ZXh0Lmh0bWwKaW5kZXggNDZhNWE3YTc0MTgxZGRhNmUzMGI3YTIzMzRh
MGUxYzVmZTE4ZGUxYy4uNGFiZjQzMDAyODBhOGE4MzE5N2U4MjI5ZDg0ODhjODIzNjIwODZiNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC10ZXh0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdo
bGlnaHQtYXBpL2hpZ2hsaWdodC10ZXh0Lmh0bWwKQEAgLTI2LDE0ICsyNiwxNCBAQAogCiAgICAg
PHNjcmlwdD4KICAgICAgICAgbGV0IHRleHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RleHQxJyk7Ci0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdo
bGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVt
ZW50LCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zmc2V0
OiAyfSkpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0
UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMSwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDJ9KSk7CiAKLSAgICAgICAgbGV0IGhpZ2hsaWdodFJh
bmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFy
dENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiAzLCBlbmRDb250YWluZXI6IHRl
eHRFbGVtZW50LCBlbmRPZmZzZXQ6IDR9KSk7Ci0gICAgICAgIGhpZ2hsaWdodFJhbmdlR3JvdXAy
LmFkZChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiB0ZXh0RWxlbWVudCwgc3RhcnRP
ZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIGVuZE9mZnNldDogNn0pKTsKKyAg
ICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAo
bmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDMsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1sw
XSwgZW5kT2Zmc2V0OiA0fSkpOworICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMi5hZGQobmV3
IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDUsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQuY2hpbGROb2Rlc1swXSwg
ZW5kT2Zmc2V0OiA2fSkpOwogCi0gICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRl
eHRFbGVtZW50LCBzdGFydE9mZnNldDogNywgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5k
T2Zmc2V0OiA4fSkpOwotICAgICAgICBoaWdobGlnaHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQsIHN0YXJ0T2Zmc2V0OiA5LCBlbmRD
b250YWluZXI6IHRleHRFbGVtZW50LCBlbmRPZmZzZXQ6IDEwfSkpOwotICAgICAgICBoaWdobGln
aHRSYW5nZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVs
ZW1lbnQsIHN0YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudCwgZW5kT2Zm
c2V0OiAxM30pKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1l
bnQuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDcsIGVuZENvbnRhaW5lcjogdGV4dEVsZW1l
bnQuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiA4fSkpOworICAgICAgICBoaWdobGlnaHRSYW5n
ZUdyb3VwMy5hZGQobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDksIGVuZENvbnRhaW5lcjogdGV4dEVsZW1lbnQu
Y2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxMH0pKTsKKyAgICAgICAgaGlnaGxpZ2h0UmFuZ2VH
cm91cDMuYWRkKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IHRleHRFbGVtZW50LmNo
aWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAxMiwgZW5kQ29udGFpbmVyOiB0ZXh0RWxlbWVudC5j
aGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDEzfSkpOwogICAgICAgICAKIAogICAgICAgICBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAx
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>