<?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>222384</bug_id>
          
          <creation_ts>2021-02-24 14:48:22 -0800</creation_ts>
          <short_desc>REGRESSION (r266288): Web Inspector: ::marker shows on every element now</short_desc>
          <delta_ts>2021-03-03 10:00:02 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Nikita Vasilyev">nvasilyev</reporter>
          <assigned_to name="Nikita Vasilyev">nvasilyev</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733085</commentid>
    <comment_count>0</comment_count>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-02-24 14:48:22 -0800</bug_when>
    <thetext>Every element in inspector has a ::marker section in the style sidebar.

Steps To Reproduce:
1. Inspect any web page
2. Select an Element in the Elements tab

Results:
::marker section taking space in the sidebar whether or not the element has a marker.

&lt;rdar://problem/74398791&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733099</commentid>
    <comment_count>1</comment_count>
      <attachid>421461</attachid>
    <who name="Nikita Vasilyev">nvasilyev</who>
    <bug_when>2021-02-24 15:09:22 -0800</bug_when>
    <thetext>Created attachment 421461
Patch

https://nv.github.io/webkit-inspector-bugs/222384_marker-pseudo-element/

Inspect &lt;li&gt;. Both Author (`li::marker`) and UserAgent styles are shown.
Inspect &lt;div&gt;. No `::marker` rules are shown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735051</commentid>
    <comment_count>2</comment_count>
      <attachid>421999</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 15:00:24 -0800</bug_when>
    <thetext>Created attachment 421999
Patch v2.0 - Backend Fix, No Test Yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735068</commentid>
    <comment_count>3</comment_count>
      <attachid>421999</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-02 15:29:39 -0800</bug_when>
    <thetext>Comment on attachment 421999
Patch v2.0 - Backend Fix, No Test Yet

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

&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:510
&gt; +                    if (!matchedRulesProtocolObjects-&gt;length())

good idea :)

&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1106
&gt; +    if (!inspectorStyleSheet || (inspectorStyleSheet-&gt;origin() == Protocol::CSS::StyleSheetOrigin::UserAgent &amp;&amp; rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem))

NIT: I&apos;d recommend splitting this out into two different `if` so that it&apos;s easier to read (less parenthesis/grouping)

NIT: Is there really a benefit to showing even non-UserAgent `::marker` if not `display: list-item`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735079</commentid>
    <comment_count>4</comment_count>
      <attachid>421999</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 15:37:50 -0800</bug_when>
    <thetext>Comment on attachment 421999
Patch v2.0 - Backend Fix, No Test Yet

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1106
&gt;&gt; +    if (!inspectorStyleSheet || (inspectorStyleSheet-&gt;origin() == Protocol::CSS::StyleSheetOrigin::UserAgent &amp;&amp; rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem))
&gt; 
&gt; NIT: I&apos;d recommend splitting this out into two different `if` so that it&apos;s easier to read (less parenthesis/grouping)
&gt; 
&gt; NIT: Is there really a benefit to showing even non-UserAgent `::marker` if not `display: list-item`?

To the second NIT: I was ready to say yes, but after typing my reason for saying yes I realize that it wasn&apos;t a valid reason, so here is my reason for saying no now: If the author defines a blanket `::marker` selector, they would expect it to apply only where markers could apply. If they define a silly selector like `table::marker`, it would still be shown after removing the origin check anyways because its selector no exactly matches `::marker`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735123</commentid>
    <comment_count>5</comment_count>
      <attachid>422023</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 16:34:11 -0800</bug_when>
    <thetext>Created attachment 422023
Patch v2.1 - Review Notes, Added Tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735124</commentid>
    <comment_count>6</comment_count>
      <attachid>422024</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 16:35:37 -0800</bug_when>
    <thetext>Created attachment 422024
Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735131</commentid>
    <comment_count>7</comment_count>
      <attachid>422024</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-02 16:49:12 -0800</bug_when>
    <thetext>Comment on attachment 422024
Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo

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

&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1110
&gt; +    if (rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem)

NIT: I&apos;d swap this around so that we do the `display() `check first (an `enum class` is cheaper to compare than a `String`).

Would this also match the `table::marker` example that you gave?  It seems odd to me that we&apos;d hide `::marker` but not `table::marker`.  Out of curiosity, do we know what any other tools do in these cases?

&gt; LayoutTests/inspector/css/getMatchedStyleForNodeMarkerPseudoId.html:31
&gt; +    async function changeElementDisplayValue(id, value)

unused?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735132</commentid>
    <comment_count>8</comment_count>
      <attachid>422024</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 16:55:28 -0800</bug_when>
    <thetext>Comment on attachment 422024
Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo

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

&gt;&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1110
&gt;&gt; +    if (rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem)
&gt; 
&gt; NIT: I&apos;d swap this around so that we do the `display() `check first (an `enum class` is cheaper to compare than a `String`).
&gt; 
&gt; Would this also match the `table::marker` example that you gave?  It seems odd to me that we&apos;d hide `::marker` but not `table::marker`.  Out of curiosity, do we know what any other tools do in these cases?

It would not match the `table::marker` (see the test where a `#nonListItemWithMarkerSpecified::marker` rule makes it to the frontend). Arguably at the point where such a rule exists, the author has made a mistake. I&apos;m not convinced hiding their mistake from them is worthwhile. As far as other tool implementation, Chrome does not filter any of the `*::marker` selectors, and Firefox filters all of them on elements that don&apos;t support it, even if the author explicitly defined it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735137</commentid>
    <comment_count>9</comment_count>
      <attachid>422024</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-02 17:16:20 -0800</bug_when>
    <thetext>Comment on attachment 422024
Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo

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

&gt;&gt;&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1110
&gt;&gt;&gt; +    if (rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem)
&gt;&gt; 
&gt;&gt; NIT: I&apos;d swap this around so that we do the `display() `check first (an `enum class` is cheaper to compare than a `String`).
&gt;&gt; 
&gt;&gt; Would this also match the `table::marker` example that you gave?  It seems odd to me that we&apos;d hide `::marker` but not `table::marker`.  Out of curiosity, do we know what any other tools do in these cases?
&gt; 
&gt; It would not match the `table::marker` (see the test where a `#nonListItemWithMarkerSpecified::marker` rule makes it to the frontend). Arguably at the point where such a rule exists, the author has made a mistake. I&apos;m not convinced hiding their mistake from them is worthwhile. As far as other tool implementation, Chrome does not filter any of the `*::marker` selectors, and Firefox filters all of them on elements that don&apos;t support it, even if the author explicitly defined it.

I&apos;m not sure I&apos;d call it a &quot;mistake&quot;.  I can envision a scenario where JS toggles between `display: *;` and `display: line-item;` (although I admit that it&apos;s likely a rare occurrence) and the developer has `.foo::marker` on the expectation that it&apos;d only have an effect when `display: list-item;` (kinda like how `::selection` is used very generally on the expectation that it&apos;ll only affect selection).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735141</commentid>
    <comment_count>10</comment_count>
      <attachid>422024</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 17:26:10 -0800</bug_when>
    <thetext>Comment on attachment 422024
Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo

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

&gt;&gt;&gt;&gt; Source/WebCore/inspector/agents/InspectorCSSAgent.cpp:1110
&gt;&gt;&gt;&gt; +    if (rule-&gt;selectorText() == &quot;::marker&quot;_s &amp;&amp; element.computedStyle()-&gt;display() != DisplayType::ListItem)
&gt;&gt;&gt; 
&gt;&gt;&gt; NIT: I&apos;d swap this around so that we do the `display() `check first (an `enum class` is cheaper to compare than a `String`).
&gt;&gt;&gt; 
&gt;&gt;&gt; Would this also match the `table::marker` example that you gave?  It seems odd to me that we&apos;d hide `::marker` but not `table::marker`.  Out of curiosity, do we know what any other tools do in these cases?
&gt;&gt; 
&gt;&gt; It would not match the `table::marker` (see the test where a `#nonListItemWithMarkerSpecified::marker` rule makes it to the frontend). Arguably at the point where such a rule exists, the author has made a mistake. I&apos;m not convinced hiding their mistake from them is worthwhile. As far as other tool implementation, Chrome does not filter any of the `*::marker` selectors, and Firefox filters all of them on elements that don&apos;t support it, even if the author explicitly defined it.
&gt; 
&gt; I&apos;m not sure I&apos;d call it a &quot;mistake&quot;.  I can envision a scenario where JS toggles between `display: *;` and `display: line-item;` (although I admit that it&apos;s likely a rare occurrence) and the developer has `.foo::marker` on the expectation that it&apos;d only have an effect when `display: list-item;` (kinda like how `::selection` is used very generally on the expectation that it&apos;ll only affect selection).

You make a good point, which leads to a desire for consistency, which leads me to conclude that we should just hide it when it doesn&apos;t apply, no matter how specific or general. This might take a hot second to implement, since I think `selectorText()` could be a comma-delimited list of selectors, but I&apos;ve now been convinced we should suppress `::marker` for ALL non-list-item elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735166</commentid>
    <comment_count>11</comment_count>
      <attachid>422032</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 19:24:09 -0800</bug_when>
    <thetext>Created attachment 422032
Patch v2.2 - Revised Approach</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735177</commentid>
    <comment_count>12</comment_count>
      <attachid>422032</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-03-02 20:15:05 -0800</bug_when>
    <thetext>Comment on attachment 422032
Patch v2.2 - Revised Approach

r=me, nice fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735179</commentid>
    <comment_count>13</comment_count>
      <attachid>422032</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-02 20:22:46 -0800</bug_when>
    <thetext>Comment on attachment 422032
Patch v2.2 - Revised Approach

Need to re-baseline the CSS.getMatchedStyleForNode test, as it checks a dump of styles, which is now missing the `::marker` rule we are filtering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735302</commentid>
    <comment_count>14</comment_count>
      <attachid>422094</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-03 08:59:27 -0800</bug_when>
    <thetext>Created attachment 422094
Patch v2.3 - Re-baselined related test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735305</commentid>
    <comment_count>15</comment_count>
      <attachid>422096</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2021-03-03 09:03:59 -0800</bug_when>
    <thetext>Created attachment 422096
Patch v2.3.1 - Re-baselined related test, Added reviewer to changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735334</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-03 09:59:36 -0800</bug_when>
    <thetext>Committed r273821: &lt;https://commits.webkit.org/r273821&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422096.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421461</attachid>
            <date>2021-02-24 15:09:22 -0800</date>
            <delta_ts>2021-03-02 15:00:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>1841</size>
            <attacher name="Nikita Vasilyev">nvasilyev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGM4NTM2NWMyZjExYi4uMWQ3OWNiMTc4ZTRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMi0yNCAgTmlr
aXRhIFZhc2lseWV2ICA8bnZhc2lseWV2QGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9O
IChyMjY2Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVu
dCBub3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjM4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERp
c3BsYXkgVXNlckFnZW50IHN0eWxlcyBmb3IgcHNldWRvLWVsZW1lbnRzIG9ubHkgd2hlbiBub24t
VXNlckFnZW50IChlLmcuIEF1dGhvcikKKyAgICAgICAgc3R5bGVzIGFyZSBkZWZpbmVkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qczoKKyAgICAgICAg
KFdJLkRPTU5vZGVTdHlsZXMucHJvdG90eXBlLnJlZnJlc2guZmV0Y2hlZE1hdGNoZWRTdHlsZXMp
OgorCiAyMDIxLTAyLTE5ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgog
CiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENTUyBHcmlkIEluc3BlY3RvcjogdXNlIGEgY29sb3Ig
cGFsZXR0ZSBmb3IgZGVmYXVsdCBncmlkIG92ZXJsYXkgY29sb3JzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy9ET01Ob2RlU3R5bGVz
LmpzCmluZGV4IDg0ZjVhNjBmNWNiZC4uZDBjOTI3MzRhYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxlcy5qcworKysg
Yi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Nb2RlbHMvRE9NTm9kZVN0eWxl
cy5qcwpAQCAtMjAyLDcgKzIwMiw5IEBAIFdJLkRPTU5vZGVTdHlsZXMgPSBjbGFzcyBET01Ob2Rl
U3R5bGVzIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICB0aGlzLl9wc2V1ZG9FbGVtZW50
cy5jbGVhcigpOwogICAgICAgICAgICAgZm9yIChsZXQge3BzZXVkb0lkLCBtYXRjaGVzfSBvZiBw
c2V1ZG9FbGVtZW50UnVsZXNQYXlsb2FkKSB7CiAgICAgICAgICAgICAgICAgbGV0IHBzZXVkb0Vs
ZW1lbnRSdWxlcyA9IHBhcnNlUnVsZU1hdGNoQXJyYXlQYXlsb2FkKG1hdGNoZXMsIHRoaXMuX25v
ZGUsIGZhbHNlLCBwc2V1ZG9JZCk7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcHNldWRvRWxlbWVu
dHMuc2V0KHBzZXVkb0lkLCB7bWF0Y2hlZFJ1bGVzOiBwc2V1ZG9FbGVtZW50UnVsZXN9KTsKKyAg
ICAgICAgICAgICAgICBsZXQgYWxsVXNlckFnZW50ID0gcHNldWRvRWxlbWVudFJ1bGVzLmV2ZXJ5
KChydWxlKSA9PiBydWxlLnR5cGUgPT09IFdJLkNTU1N0eWxlU2hlZXQuVHlwZS5Vc2VyQWdlbnQp
OworICAgICAgICAgICAgICAgIGlmICghYWxsVXNlckFnZW50KQorICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9wc2V1ZG9FbGVtZW50cy5zZXQocHNldWRvSWQsIHttYXRjaGVkUnVsZXM6IHBzZXVk
b0VsZW1lbnRSdWxlc30pOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0aGlzLl9pbmhl
cml0ZWRSdWxlcyA9IFtdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421999</attachid>
            <date>2021-03-02 15:00:24 -0800</date>
            <delta_ts>2021-03-02 16:34:09 -0800</delta_ts>
            <desc>Patch v2.0 - Backend Fix, No Test Yet</desc>
            <filename>bug-222384-20210302150023.patch</filename>
            <type>text/plain</type>
            <size>6944</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uZTY0MDcyNDM1OWY2ZmI3MDkzZDM4ZWY2OGM1M2Yz
M2YyYzYwOGFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBmaWx0
ZXJpbmcgb2YgYDo6bWFya2VyYCBDU1MgcnVsZSBmcm9tIHRoZSBVc2VyIEFnZW50IHN0eWxlIHNo
ZWV0IHNvIHRoYXQgaXQgaXMgb25seSBzZW50IHRvIHRoZSBmcm9udGVuZCBmb3IKKyAgICAgICAg
bGlzdCBpdGVtIGVsZW1lbnRzLiBBZGRpdGlvbmFsbHksIG1ha2Ugc3VyZSB0aGF0IGlmIGFsbCBy
dWxlcyBoYXZlIGJlZW4gZmlsdGVyZWQgb3V0IGZvciBhIGBwc2V1ZG9JZGAgdGhhdCB0aGUKKyAg
ICAgICAgYHBzZXVkb0lkYCBpcyBub3Qgc2VudCB0byB0aGUgZnJvbnRlbmQgYXMgcGFydCBvZiB0
aGUgZWxlbWVudHMgc3R5bGUuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVT
aGVldC5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6b3JpZ2luIGNv
bnN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRNYXRjaGVkU3R5bGVzRm9y
Tm9kZSk6CisgICAgICAgIC0gSWYgYSBgcHNldWRvSWRgIGhhcyBubyBjb3JyZXNwb25kaW5nIHJ1
bGVzIGFmdGVyIGJ1aWxkaW5nIHRoZSBhcnJheSBvZiBydWxlcywgZG9uJ3Qgc2VuZCB0aGUgYHBz
ZXVkb0lkYCB0byB0aGUKKyAgICAgICAgZnJvbnRlbmQuCisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JDU1NBZ2VudDo6YnVpbGRPYmplY3RGb3JSdWxlKToKKyAgICAgICAgLSBSZWZhY3RvcmVk
IGJvdGggdmFyaWFudHMgb2YgdGhpcyBtZXRob2QgdG8gY29udmVyZ2Ugb24gYSBzaW5nbGUgaW1w
bGVtZW50YXRpb24uCisgICAgICAgIC0gQWRkZWQgZmlsdGVyaW5nIGZvciBVQS1kZWZpbmVkIGA6
Om1hcmtlcmAgc2VsZWN0b3Igb24gbm9uLWBkaXNwbGF5Omxpc3QtaXRlbWAgZWxlbWVudHMuCisg
ICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oOgorCiAyMDIxLTAz
LTAxICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBDU1NGb250RmFj
ZSBzaG91bGQgbm90IG5lZWQgaXRzIG1fZm9udFNlbGVjdG9yIGRhdGEgbWVtYmVyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAppbmRleCA3OGYxNGQy
OTE2YmFhNWMzN2UwMTA5MzkyZjIxZWY2NmE2NTVmNzZjLi45OGQxNDQ2YzhmYzI1YjU4OTA4NjRi
YzI1ZjU0YzY4NjgyNGZjMGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5n
IGlkKCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQogICAgIFN0cmluZyBmaW5hbFVSTCgpIGNvbnN0
OwogICAgIENTU1N0eWxlU2hlZXQqIHBhZ2VTdHlsZVNoZWV0KCkgY29uc3QgeyByZXR1cm4gbV9w
YWdlU3R5bGVTaGVldC5nZXQoKTsgfQorICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5
bGVTaGVldE9yaWdpbiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIHZv
aWQgcmVwYXJzZVN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJik7CiAgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2V0VGV4dChjb25zdCBTdHJpbmcmKTsKICAgICBFeGNlcHRpb25PcjxTdHJpbmc+IHJ1bGVT
ZWxlY3Rvcihjb25zdCBJbnNwZWN0b3JDU1NJZCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCAyMDgxMDk1NjVj
NTNiZjY4YmJkM2M4YmJjNWM1MzU2MmY3NzI0OWJhLi4wNjVmMjNlZTNjNjEzM2Y5NmJjYmJkNmYw
NjI4Njg2NDdjZTQ1ODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNTA0LDEzICs1MDQsMTYgQEAgUHJvdG9j
b2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWZQdHI8SlNPTjo6QXJyYXlPZjxQcm90b2Nv
bDo6Q1NTOjpSdWxlTWF0Y2gKICAgICAgICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRvSWQgPSBQ
c2V1ZG9JZDo6Rmlyc3RQdWJsaWNQc2V1ZG9JZDsgcHNldWRvSWQgPCBQc2V1ZG9JZDo6QWZ0ZXJM
YXN0SW50ZXJuYWxQc2V1ZG9JZDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4oc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHBzZXVkb0lkKSArIDEpKSB7CiAgICAgICAgICAgICAgICAgaWYg
KGF1dG8gcHJvdG9jb2xQc2V1ZG9JZCA9IHByb3RvY29sVmFsdWVGb3JQc2V1ZG9JZChwc2V1ZG9J
ZCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVkUnVsZXMgPSBzdHlsZVJlc29s
dmVyLnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBTdHlsZTo6
UmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVk
UnVsZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMg
PSBQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLnNldFBzZXVkb0lkKHByb3RvY29sUHNldWRvSWQudmFsdWUoKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TWF0Y2hlcyhidWlsZEFycmF5Rm9yTWF0Y2hl
ZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgKmVsZW1lbnQsIHBzZXVkb0lk
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAucmVsZWFzZSgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RGTW92ZShtYXRjaGVzKSk7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRSdWxl
cy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byBtYXRjaGVkUnVsZXNQcm90b2NvbE9iamVjdHMgPSBidWlsZEFycmF5
Rm9yTWF0Y2hlZFJ1bGVMaXN0KG1hdGNoZWRSdWxlcywgc3R5bGVSZXNvbHZlciwgKmVsZW1lbnQs
IHBzZXVkb0lkKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVkUnVsZXNQcm90b2Nv
bE9iamVjdHMtPmxlbmd0aCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlcyA9IFByb3RvY29sOjpDU1M6OlBzZXVkb0lk
TWF0Y2hlczo6Y3JlYXRlKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChw
cm90b2NvbFBzZXVkb0lkLnZhbHVlKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAuc2V0TWF0
Y2hlcyhXVEZNb3ZlKG1hdGNoZWRSdWxlc1Byb3RvY29sT2JqZWN0cykpCisgICAgICAgICAgICAg
ICAgICAgICAgICAucmVsZWFzZSgpOworICAgICAgICAgICAgICAgICAgICBwc2V1ZG9FbGVtZW50
cy0+YWRkSXRlbShXVEZNb3ZlKG1hdGNoZXMpKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTEwODksMjEgKzEwOTIsMjEgQEAgUmVmUHRyPFByb3RvY29s
OjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1bGUoY29u
c3QgU3R5bGUKICAgICAgICAgc3R5bGVSZXNvbHZlci5pbnNwZWN0b3JDU1NPTVdyYXBwZXJzKCku
Y29sbGVjdFNjb3BlV3JhcHBlcnMoc2hhZG93Um9vdC0+c3R5bGVTY29wZSgpKTsKIAogICAgIENT
U1N0eWxlUnVsZSogY3Nzb21XcmFwcGVyID0gc3R5bGVSZXNvbHZlci5pbnNwZWN0b3JDU1NPTVdy
YXBwZXJzKCkuZ2V0V3JhcHBlckZvclJ1bGVJblNoZWV0cyhzdHlsZVJ1bGUpOwotICAgIGlmICgh
Y3Nzb21XcmFwcGVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEluc3BlY3RvclN0
eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSBiaW5kU3R5bGVTaGVldChjc3NvbVdyYXBw
ZXItPnBhcmVudFN0eWxlU2hlZXQoKSk7Ci0gICAgcmV0dXJuIGluc3BlY3RvclN0eWxlU2hlZXQg
PyBpbnNwZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclJ1bGUoY3Nzb21XcmFwcGVyKSA6
IG51bGxwdHI7CisgICAgcmV0dXJuIGJ1aWxkT2JqZWN0Rm9yUnVsZShjc3NvbVdyYXBwZXIsIGVs
ZW1lbnQpOwogfQogCi1SZWZQdHI8UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gSW5zcGVjdG9yQ1NT
QWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCitSZWZQdHI8UHJv
dG9jb2w6OkNTUzo6Q1NTUnVsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVs
ZShDU1NTdHlsZVJ1bGUqIHJ1bGUsIEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFydWxl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEFTU0VSVChydWxlLT5wYXJlbnRTdHls
ZVNoZWV0KCkpOwogICAgIEluc3BlY3RvclN0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQg
PSBiaW5kU3R5bGVTaGVldChydWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkpOwotICAgIHJldHVybiBp
bnNwZWN0b3JTdHlsZVNoZWV0ID8gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JS
dWxlKHJ1bGUpIDogbnVsbHB0cjsKKyAgICAKKyAgICBpZiAoIWluc3BlY3RvclN0eWxlU2hlZXQg
fHwgKGluc3BlY3RvclN0eWxlU2hlZXQtPm9yaWdpbigpID09IFByb3RvY29sOjpDU1M6OlN0eWxl
U2hlZXRPcmlnaW46OlVzZXJBZ2VudCAmJiBydWxlLT5zZWxlY3RvclRleHQoKSA9PSAiOjptYXJr
ZXIiX3MgJiYgZWxlbWVudC5jb21wdXRlZFN0eWxlKCktPmRpc3BsYXkoKSAhPSBEaXNwbGF5VHlw
ZTo6TGlzdEl0ZW0pKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICByZXR1cm4g
aW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JSdWxlKHJ1bGUpOwogfQogCiBSZWY8
SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+PiBJbnNwZWN0b3JDU1NBZ2Vu
dDo6YnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChjb25zdCBWZWN0b3I8UmVmUHRyPGNvbnN0
IFN0eWxlUnVsZT4+JiBtYXRjaGVkUnVsZXMsIFN0eWxlOjpSZXNvbHZlciYgc3R5bGVSZXNvbHZl
ciwgRWxlbWVudCYgZWxlbWVudCwgUHNldWRvSWQgcHNldWRvSWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmgKaW5kZXggMzZiZDFj
YTA2MWU5MzY3MTcwMWUxZGQyNjNlNWQ0ZTE1OGU1MjY1Ni4uMjU4NTIyNzYxZjQ4YzVjZGMyOWE2
NzVjNjdmZTg0N2Y2ZjVkYjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuaApAQCAtMTUyLDcgKzE1Miw3IEBAIHByaXZhdGU6
CiAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpTdHlsZVNoZWV0T3JpZ2luIGRldGVjdE9y
aWdpbihDU1NTdHlsZVNoZWV0KiBwYWdlU3R5bGVTaGVldCwgRG9jdW1lbnQqIG93bmVyRG9jdW1l
bnQpOwogCiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVp
bGRPYmplY3RGb3JSdWxlKGNvbnN0IFN0eWxlUnVsZSosIFN0eWxlOjpSZXNvbHZlciYsIEVsZW1l
bnQmKTsKLSAgICBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBidWls
ZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKik7CisgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVpbGRPYmplY3RGb3JSdWxlKENTU1N0eWxlUnVsZSosIEVs
ZW1lbnQmKTsKICAgICBSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OlJ1bGVNYXRjaD4+IGJ1aWxkQXJyYXlGb3JNYXRjaGVkUnVsZUxpc3QoY29uc3QgVmVjdG9yPFJl
ZlB0cjxjb25zdCBTdHlsZVJ1bGU+PiYsIFN0eWxlOjpSZXNvbHZlciYsIEVsZW1lbnQmLCBQc2V1
ZG9JZCk7CiAgICAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTU3R5bGU+IGJ1
aWxkT2JqZWN0Rm9yQXR0cmlidXRlc1N0eWxlKFN0eWxlZEVsZW1lbnQmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422023</attachid>
            <date>2021-03-02 16:34:11 -0800</date>
            <delta_ts>2021-03-02 16:35:35 -0800</delta_ts>
            <desc>Patch v2.1 - Review Notes, Added Tests</desc>
            <filename>bug-222384-20210302163410.patch</filename>
            <type>text/plain</type>
            <size>11627</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uNTI4ZTQ4NTVhNDFlYzg1NTZmNjdmOWY2MDEwYzgz
ZWZmNzBhMmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGlu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKKwor
ICAgICAgICBBZGQgZmlsdGVyaW5nIG9mIHRoZSBgOjptYXJrZXJgIENTUyBydWxlIGZvciBlbGVt
ZW50cyB0aGF0IGFyZSBub3QgbGlzdCBpdGVtcywgYXMgdGhleSBkbyBubyBhcHBseSB0byB0aGUK
KyAgICAgICAgZWxlbWVudC4gQWRkaXRpb25hbGx5LCBtYWtlIHN1cmUgdGhhdCBpZiBhbGwgcnVs
ZXMgaGF2ZSBiZWVuIGZpbHRlcmVkIG91dCBmb3IgYSBgcHNldWRvSWRgIHRoYXQgdGhlIGBwc2V1
ZG9JZGAKKyAgICAgICAgaXMgbm90IHNlbnQgdG8gdGhlIGZyb250ZW5kIGFzIHBhcnQgb2YgdGhl
IGVsZW1lbnRzIHN0eWxlLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
U1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0
Y2hlZFN0eWxlc0Zvck5vZGUpOgorICAgICAgICAtIElmIGEgYHBzZXVkb0lkYCBoYXMgbm8gY29y
cmVzcG9uZGluZyBydWxlcyBhZnRlciBidWlsZGluZyB0aGUgYXJyYXkgb2YgcnVsZXMsIGRvbid0
IHNlbmQgdGhlIGBwc2V1ZG9JZGAgdG8gdGhlCisgICAgICAgIGZyb250ZW5kLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVsZSk6CisgICAgICAg
IC0gUmVmYWN0b3JlZCBib3RoIHZhcmlhbnRzIG9mIHRoaXMgbWV0aG9kIHRvIGNvbnZlcmdlIG9u
IGEgc2luZ2xlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAtIEFkZGVkIGZpbHRlcmluZyBmb3Ig
YDo6bWFya2VyYCBydWxlcyBvbiBub24tYGRpc3BsYXk6bGlzdC1pdGVtYCBlbGVtZW50cy4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50Lmg6CisKIDIwMjEtMDMt
MDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIENTU0ZvbnRGYWNl
IHNob3VsZCBub3QgbmVlZCBpdHMgbV9mb250U2VsZWN0b3IgZGF0YSBtZW1iZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
aW5kZXggMjA4MTA5NTY1YzUzYmY2OGJiZDNjOGJiYzVjNTM1NjJmNzcyNDliYS4uMjgxM2Q4NTUx
MjUwNTE4MThhZmQyNjZhY2IxMjFlOWQ5YTA2ZWNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTUwNCwxMyAr
NTA0LDE2IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHN0ZDo6dHVwbGU8UmVmUHRyPEpTT046
OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoCiAgICAgICAgICAgICBmb3IgKFBzZXVk
b0lkIHBzZXVkb0lkID0gUHNldWRvSWQ6OkZpcnN0UHVibGljUHNldWRvSWQ7IHBzZXVkb0lkIDwg
UHNldWRvSWQ6OkFmdGVyTGFzdEludGVybmFsUHNldWRvSWQ7IHBzZXVkb0lkID0gc3RhdGljX2Nh
c3Q8UHNldWRvSWQ+KHN0YXRpY19jYXN0PHVuc2lnbmVkPihwc2V1ZG9JZCkgKyAxKSkgewogICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHByb3RvY29sUHNldWRvSWQgPSBwcm90b2NvbFZhbHVlRm9y
UHNldWRvSWQocHNldWRvSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1
bGVzID0gc3R5bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBw
c2V1ZG9JZCwgU3R5bGU6OlJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICghbWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBtYXRjaGVzID0gUHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzOjpjcmVhdGUo
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChwcm90b2NvbFBzZXVk
b0lkLnZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldE1hdGNoZXMoYnVp
bGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsICpl
bGVtZW50LCBwc2V1ZG9JZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2Uo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVtKFdURk1v
dmUobWF0Y2hlcykpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmIChtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzUHJvdG9jb2xPYmpl
Y3RzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVz
b2x2ZXIsICplbGVtZW50LCBwc2V1ZG9JZCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbWF0
Y2hlZFJ1bGVzUHJvdG9jb2xPYmplY3RzLT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBQcm90b2Nv
bDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgICAg
ICAuc2V0UHNldWRvSWQocHJvdG9jb2xQc2V1ZG9JZC52YWx1ZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgLnNldE1hdGNoZXMoV1RGTW92ZShtYXRjaGVkUnVsZXNQcm90b2NvbE9iamVjdHMp
KQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RGTW92ZShtYXRjaGVzKSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMDg5LDIxICsxMDkyLDI1IEBA
IFJlZlB0cjxQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRP
YmplY3RGb3JSdWxlKGNvbnN0IFN0eWxlCiAgICAgICAgIHN0eWxlUmVzb2x2ZXIuaW5zcGVjdG9y
Q1NTT01XcmFwcGVycygpLmNvbGxlY3RTY29wZVdyYXBwZXJzKHNoYWRvd1Jvb3QtPnN0eWxlU2Nv
cGUoKSk7CiAKICAgICBDU1NTdHlsZVJ1bGUqIGNzc29tV3JhcHBlciA9IHN0eWxlUmVzb2x2ZXIu
aW5zcGVjdG9yQ1NTT01XcmFwcGVycygpLmdldFdyYXBwZXJGb3JSdWxlSW5TaGVldHMoc3R5bGVS
dWxlKTsKLSAgICBpZiAoIWNzc29tV3JhcHBlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxl
U2hlZXQoY3Nzb21XcmFwcGVyLT5wYXJlbnRTdHlsZVNoZWV0KCkpOwotICAgIHJldHVybiBpbnNw
ZWN0b3JTdHlsZVNoZWV0ID8gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JSdWxl
KGNzc29tV3JhcHBlcikgOiBudWxscHRyOworICAgIHJldHVybiBidWlsZE9iamVjdEZvclJ1bGUo
Y3Nzb21XcmFwcGVyLCBlbGVtZW50KTsKIH0KIAotUmVmUHRyPFByb3RvY29sOjpDU1M6OkNTU1J1
bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKiBy
dWxlKQorUmVmUHRyPFByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50Ojpi
dWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlLCBFbGVtZW50JiBlbGVtZW50KQog
ewogICAgIGlmICghcnVsZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQo
cnVsZS0+cGFyZW50U3R5bGVTaGVldCgpKTsKICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNw
ZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQocnVsZS0+cGFyZW50U3R5bGVTaGVldCgp
KTsKLSAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldCA/IGluc3BlY3RvclN0eWxlU2hlZXQt
PmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKSA6IG51bGxwdHI7CisgICAgCisgICAgaWYgKCFpbnNw
ZWN0b3JTdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICAvLyBU
aGUgYDo6bWFya2VyYCBzZWxlY3RvciBvbmx5IGFwcGxpZWQgdG8gYERpc3BsYXlUeXBlOjpMaXN0
SXRlbWAuCisgICAgaWYgKHJ1bGUtPnNlbGVjdG9yVGV4dCgpID09ICI6Om1hcmtlciJfcyAmJiBl
bGVtZW50LmNvbXB1dGVkU3R5bGUoKS0+ZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpMaXN0SXRl
bSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgcmV0dXJuIGluc3BlY3RvclN0
eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKTsKIH0KIAogUmVmPEpTT046OkFycmF5
T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJy
YXlGb3JNYXRjaGVkUnVsZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxjb25zdCBTdHlsZVJ1bGU+
PiYgbWF0Y2hlZFJ1bGVzLCBTdHlsZTo6UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQm
IGVsZW1lbnQsIFBzZXVkb0lkIHBzZXVkb0lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDM2YmQxY2EwNjFlOTM2NzE3
MDFlMWRkMjYzZTVkNGUxNThlNTI2NTYuLjI1ODUyMjc2MWY0OGM1Y2RjMjlhNjc1YzY3ZmU4NDdm
NmY1ZGIxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50LmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbiBkZXRlY3RPcmlnaW4oQ1NTU3R5
bGVTaGVldCogcGFnZVN0eWxlU2hlZXQsIERvY3VtZW50KiBvd25lckRvY3VtZW50KTsKIAogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IGJ1aWxkT2JqZWN0Rm9y
UnVsZShjb25zdCBTdHlsZVJ1bGUqLCBTdHlsZTo6UmVzb2x2ZXImLCBFbGVtZW50Jik7Ci0gICAg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVpbGRPYmplY3RGb3JS
dWxlKENTU1N0eWxlUnVsZSopOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1J1bGU+IGJ1aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqLCBFbGVtZW50Jik7CiAg
ICAgUmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+
PiBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8Y29uc3Qg
U3R5bGVSdWxlPj4mLCBTdHlsZTo6UmVzb2x2ZXImLCBFbGVtZW50JiwgUHNldWRvSWQpOwogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiBidWlsZE9iamVjdEZv
ckF0dHJpYnV0ZXNTdHlsZShTdHlsZWRFbGVtZW50Jik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGFhNTY2OThlZTI5
NWMxYTk2ZWUyYmVlYWNiZWZiOTczMDViYTNlLi5jZjY4Njk2OWJhYmZmMWVhZTQ4ODlhNjRhMjFm
Yjc1Y2EzODMxODBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMDIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNjYyODgp
OiBXZWIgSW5zcGVjdG9yOiA6Om1hcmtlciBzaG93cyBvbiBldmVyeSBlbGVtZW50IG5vdworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMzg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBm
b3IgdGhlIGZpbHRlcmluZyBvZiB0aGUgY2F0Y2gtYWxsIGA6Om1hcmtlcmAgc2VsZWN0b3IgZnJv
bSB0aGUgcnVsZSByZXN1bHRzIG9mCisgICAgICAgIGBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9k
ZWAgb24gZWxlbWVudHMgdGhhdCBkb24ndCBzdXBwb3J0IGA6Om1hcmtlcmAuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxl
Rm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTAxICBDaHJpcyBH
YW1icmVsbCAgPGNnYW1icmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFRlc3RzXSBD
b252ZXJ0IGh0dHAvdGVzdHMvZmV0Y2ggY29udmVydCBQSFAgdG8gUHl0aG9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5vZGVNYXJrZXJQ
c2V1ZG9JZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNo
ZWRTdHlsZUZvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2
NDk5OWQ4MmZhY2FhNzIwNjQ3MGVlOTcwMDljMmFlY2UxZTZiYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBz
ZXVkb0lkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyBmb3IgdGhlIENTUy5n
ZXRNYXRjaGVkU3R5bGVGb3JOb2RlIGNvbW1hbmQgYW5kIHRoZSBgOjptYXJrZXJgIENTUyBydWxl
IHNlbGVjdG9yLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ1NTLmdldE1hdGNoZWRTdHls
ZUZvck5vZGUuTWFya2VyUHNldWRvSWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0TWF0
Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRlbQorUEFTUzogRXhwZWN0ZWQg
ZXhhY3RseSAyIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkLk5vbkxp
c3RJdGVtCitQQVNTOiBFeHBlY3RlZCBubyBydWxlcyBlbnRyeSBmb3Igc2VsZWN0b3IgYCo6Om1h
cmtlcmAuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9k
ZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQKK1BBU1M6IEV4
cGVjdGVkIGV4YWN0bHkgMSBydWxlIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVGb3JOb2RlTWFy
a2VyUHNldWRvSWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0
eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAyMzM4NjNjNTBkMTdk
NmU5MzJkMWQ0YmIzZTVjZmUwNDA1OWYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwK
QEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisKKyAgICBsZXQg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNTUy5nZXRNYXRjaGVkU3R5
bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkIik7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7
bmFtZSwgZGVzY3JpcHRpb24sIHNlbGVjdG9yLCBkb21Ob2RlU3R5bGVzSGFuZGxlcn0pCisgICAg
eworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAg
ICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgICAgIGxldCBkb2N1bWVudE5vZGUgPSBhd2FpdCBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1
bWVudCgpOworICAgICAgICAgICAgICAgIGxldCBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUu
cXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBX
SS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGRvbU5vZGUsIGBTaG91bGQgZmluZCBET00gTm9kZSBmb3Igc2VsZWN0b3Ig
JyR7c2VsZWN0b3J9Jy5gKTsKKworICAgICAgICAgICAgICAgIGxldCBkb21Ob2RlU3R5bGVzID0g
V0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGVTdHlsZXMsIGBTaG91bGQgZmluZCBDU1MgU3R5bGVz
IGZvciBET00gTm9kZS5gKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBkb21Ob2RlU3R5bGVzLnJl
ZnJlc2hJZk5lZWRlZCgpOworCisgICAgICAgICAgICAgICAgYXdhaXQgZG9tTm9kZVN0eWxlc0hh
bmRsZXIoZG9tTm9kZVN0eWxlcyk7CisgICAgICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBhc3luYyBmdW5jdGlvbiBjaGFuZ2VFbGVtZW50RGlzcGxheVZhbHVlKGlkLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNo
YW5nZUVsZW1lbnREaXNwbGF5VmFsdWUoIiR7aWR9IiwgIiR7dmFsdWV9IilgKTsKKyAgICB9CisK
KyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9y
Tm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRlbSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBs
aXN0IGl0ZW0gc2hvdWxkIGhhdmUgYm90aCB0aGUgVXNlciBBZ2VudCBhbmQgYXV0aG9yZWQgYDo6
bWFya2VyYCBydWxlcy4iLAorICAgICAgICBzZWxlY3RvcjogIiNsaXN0SXRlbSIsCisgICAgICAg
IGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJLkNTU01hbmFn
ZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5ndGgsIDIsICJF
eHBlY3RlZCBleGFjdGx5IDIgcnVsZXMgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1Mu
Z2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQSBub24tbGlzdCBpdGVtIHNob3VsZCBoYXZlIG5vIGA6Om1hcmtl
cmAgcnVsZXMuIiwKKyAgICAgICAgc2VsZWN0b3I6ICIjbm9uTGlzdEl0ZW0iLAorICAgICAgICBh
c3luYyBkb21Ob2RlU3R5bGVzSGFuZGxlcihzdHlsZXMpIHsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoc3R5bGVzLnBzZXVkb0VsZW1lbnRzLmdldChXSS5DU1NNYW5hZ2Vy
LlBzZXVkb1NlbGVjdG9yTmFtZXMuTWFya2VyKSwgdW5kZWZpbmVkLCAiRXhwZWN0ZWQgbm8gcnVs
ZXMgZW50cnkgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAgICAgICB9CisgICAgfSk7
CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0Y2hlZFN0eWxl
Rm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkEgbm9uLWxpc3QgaXRlbSB3aXRoIGEgYGJhc2Utc2VsZWN0
b3I6Om1hcmtlcmAgc3BlY2lmaWVkIHNob3VsZCBzaG93IG9ubHkgdGhlIHNwZWNpZmllZCBydWxl
LiIsCisgICAgICAgIHNlbGVjdG9yOiAiI25vbkxpc3RJdGVtV2l0aE1hcmtlclNwZWNpZmllZCIs
CisgICAgICAgIGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJ
LkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5n
dGgsIDEsICJFeHBlY3RlZCBleGFjdGx5IDEgcnVsZSBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAu
Iik7CisgICAgICAgIH0KKyAgICB9KTsKKworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICA6Om1hcmtlciB7CisgICAgICAgIGNv
bG9yOiByZWQ7CisgICAgfQorICAgICNub25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQ6Om1h
cmtlciB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQ1NTLmdldE1h
dGNoZWRTdHlsZUZvck5vZGUgY29tbWFuZCBhbmQgdGhlIGA6Om1hcmtlcmAgQ1NTIHJ1bGUgc2Vs
ZWN0b3IuPC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpIGlkPSJsaXN0SXRlbSI+PC9saT4KKyAg
ICA8L3VsPgorICAgIDxkaXYgaWQ9Im5vbkxpc3RJdGVtIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422024</attachid>
            <date>2021-03-02 16:35:37 -0800</date>
            <delta_ts>2021-03-02 19:24:07 -0800</delta_ts>
            <desc>Patch v2.1.1 - Review Notes, Added Tests, Fixed Typo</desc>
            <filename>bug-222384-20210302163536.patch</filename>
            <type>text/plain</type>
            <size>11627</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uNTI4ZTQ4NTVhNDFlYzg1NTZmNjdmOWY2MDEwYzgz
ZWZmNzBhMmRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGlu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKKwor
ICAgICAgICBBZGQgZmlsdGVyaW5nIG9mIHRoZSBgOjptYXJrZXJgIENTUyBydWxlIGZvciBlbGVt
ZW50cyB0aGF0IGFyZSBub3QgbGlzdCBpdGVtcywgYXMgdGhleSBkbyBubyBhcHBseSB0byB0aGUK
KyAgICAgICAgZWxlbWVudC4gQWRkaXRpb25hbGx5LCBtYWtlIHN1cmUgdGhhdCBpZiBhbGwgcnVs
ZXMgaGF2ZSBiZWVuIGZpbHRlcmVkIG91dCBmb3IgYSBgcHNldWRvSWRgIHRoYXQgdGhlIGBwc2V1
ZG9JZGAKKyAgICAgICAgaXMgbm90IHNlbnQgdG8gdGhlIGZyb250ZW5kIGFzIHBhcnQgb2YgdGhl
IGVsZW1lbnRzIHN0eWxlLgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
U1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0
Y2hlZFN0eWxlc0Zvck5vZGUpOgorICAgICAgICAtIElmIGEgYHBzZXVkb0lkYCBoYXMgbm8gY29y
cmVzcG9uZGluZyBydWxlcyBhZnRlciBidWlsZGluZyB0aGUgYXJyYXkgb2YgcnVsZXMsIGRvbid0
IHNlbmQgdGhlIGBwc2V1ZG9JZGAgdG8gdGhlCisgICAgICAgIGZyb250ZW5kLgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVsZSk6CisgICAgICAg
IC0gUmVmYWN0b3JlZCBib3RoIHZhcmlhbnRzIG9mIHRoaXMgbWV0aG9kIHRvIGNvbnZlcmdlIG9u
IGEgc2luZ2xlIGltcGxlbWVudGF0aW9uLgorICAgICAgICAtIEFkZGVkIGZpbHRlcmluZyBmb3Ig
YDo6bWFya2VyYCBydWxlcyBvbiBub24tYGRpc3BsYXk6bGlzdC1pdGVtYCBlbGVtZW50cy4KKyAg
ICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50Lmg6CisKIDIwMjEtMDMt
MDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIENTU0ZvbnRGYWNl
IHNob3VsZCBub3QgbmVlZCBpdHMgbV9mb250U2VsZWN0b3IgZGF0YSBtZW1iZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAK
aW5kZXggMjA4MTA5NTY1YzUzYmY2OGJiZDNjOGJiYzVjNTM1NjJmNzcyNDliYS4uMTgyYjAzNmJj
NDYyZTZkMDY4NGMwNmRhMTVmNDk5MGUxMDAyZDIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTUwNCwxMyAr
NTA0LDE2IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHN0ZDo6dHVwbGU8UmVmUHRyPEpTT046
OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoCiAgICAgICAgICAgICBmb3IgKFBzZXVk
b0lkIHBzZXVkb0lkID0gUHNldWRvSWQ6OkZpcnN0UHVibGljUHNldWRvSWQ7IHBzZXVkb0lkIDwg
UHNldWRvSWQ6OkFmdGVyTGFzdEludGVybmFsUHNldWRvSWQ7IHBzZXVkb0lkID0gc3RhdGljX2Nh
c3Q8UHNldWRvSWQ+KHN0YXRpY19jYXN0PHVuc2lnbmVkPihwc2V1ZG9JZCkgKyAxKSkgewogICAg
ICAgICAgICAgICAgIGlmIChhdXRvIHByb3RvY29sUHNldWRvSWQgPSBwcm90b2NvbFZhbHVlRm9y
UHNldWRvSWQocHNldWRvSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1
bGVzID0gc3R5bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBw
c2V1ZG9JZCwgU3R5bGU6OlJlc29sdmVyOjpBbGxDU1NSdWxlcyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmICghbWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgYXV0byBtYXRjaGVzID0gUHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzOjpjcmVhdGUo
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRQc2V1ZG9JZChwcm90b2NvbFBzZXVk
b0lkLnZhbHVlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnNldE1hdGNoZXMoYnVp
bGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVzb2x2ZXIsICpl
bGVtZW50LCBwc2V1ZG9JZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2Uo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBzZXVkb0VsZW1lbnRzLT5hZGRJdGVtKFdURk1v
dmUobWF0Y2hlcykpOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAg
IGlmIChtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzUHJvdG9jb2xPYmpl
Y3RzID0gYnVpbGRBcnJheUZvck1hdGNoZWRSdWxlTGlzdChtYXRjaGVkUnVsZXMsIHN0eWxlUmVz
b2x2ZXIsICplbGVtZW50LCBwc2V1ZG9JZCk7CisgICAgICAgICAgICAgICAgICAgIGlmICghbWF0
Y2hlZFJ1bGVzUHJvdG9jb2xPYmplY3RzLT5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZXMgPSBQcm90b2Nv
bDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM6OmNyZWF0ZSgpCisgICAgICAgICAgICAgICAgICAgICAg
ICAuc2V0UHNldWRvSWQocHJvdG9jb2xQc2V1ZG9JZC52YWx1ZSgpKQorICAgICAgICAgICAgICAg
ICAgICAgICAgLnNldE1hdGNoZXMoV1RGTW92ZShtYXRjaGVkUnVsZXNQcm90b2NvbE9iamVjdHMp
KQorICAgICAgICAgICAgICAgICAgICAgICAgLnJlbGVhc2UoKTsKKyAgICAgICAgICAgICAgICAg
ICAgcHNldWRvRWxlbWVudHMtPmFkZEl0ZW0oV1RGTW92ZShtYXRjaGVzKSk7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMDg5LDIxICsxMDkyLDI1IEBA
IFJlZlB0cjxQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRP
YmplY3RGb3JSdWxlKGNvbnN0IFN0eWxlCiAgICAgICAgIHN0eWxlUmVzb2x2ZXIuaW5zcGVjdG9y
Q1NTT01XcmFwcGVycygpLmNvbGxlY3RTY29wZVdyYXBwZXJzKHNoYWRvd1Jvb3QtPnN0eWxlU2Nv
cGUoKSk7CiAKICAgICBDU1NTdHlsZVJ1bGUqIGNzc29tV3JhcHBlciA9IHN0eWxlUmVzb2x2ZXIu
aW5zcGVjdG9yQ1NTT01XcmFwcGVycygpLmdldFdyYXBwZXJGb3JSdWxlSW5TaGVldHMoc3R5bGVS
dWxlKTsKLSAgICBpZiAoIWNzc29tV3JhcHBlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxl
U2hlZXQoY3Nzb21XcmFwcGVyLT5wYXJlbnRTdHlsZVNoZWV0KCkpOwotICAgIHJldHVybiBpbnNw
ZWN0b3JTdHlsZVNoZWV0ID8gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JSdWxl
KGNzc29tV3JhcHBlcikgOiBudWxscHRyOworICAgIHJldHVybiBidWlsZE9iamVjdEZvclJ1bGUo
Y3Nzb21XcmFwcGVyLCBlbGVtZW50KTsKIH0KIAotUmVmUHRyPFByb3RvY29sOjpDU1M6OkNTU1J1
bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKiBy
dWxlKQorUmVmUHRyPFByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50Ojpi
dWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlLCBFbGVtZW50JiBlbGVtZW50KQog
ewogICAgIGlmICghcnVsZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBBU1NFUlQo
cnVsZS0+cGFyZW50U3R5bGVTaGVldCgpKTsKICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNw
ZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQocnVsZS0+cGFyZW50U3R5bGVTaGVldCgp
KTsKLSAgICByZXR1cm4gaW5zcGVjdG9yU3R5bGVTaGVldCA/IGluc3BlY3RvclN0eWxlU2hlZXQt
PmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKSA6IG51bGxwdHI7CisgICAgCisgICAgaWYgKCFpbnNw
ZWN0b3JTdHlsZVNoZWV0KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAKKyAgICAvLyBU
aGUgYDo6bWFya2VyYCBzZWxlY3RvciBvbmx5IGFwcGxpZXMgdG8gYERpc3BsYXlUeXBlOjpMaXN0
SXRlbWAuCisgICAgaWYgKHJ1bGUtPnNlbGVjdG9yVGV4dCgpID09ICI6Om1hcmtlciJfcyAmJiBl
bGVtZW50LmNvbXB1dGVkU3R5bGUoKS0+ZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpMaXN0SXRl
bSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgcmV0dXJuIGluc3BlY3RvclN0
eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yUnVsZShydWxlKTsKIH0KIAogUmVmPEpTT046OkFycmF5
T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoPj4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkQXJy
YXlGb3JNYXRjaGVkUnVsZUxpc3QoY29uc3QgVmVjdG9yPFJlZlB0cjxjb25zdCBTdHlsZVJ1bGU+
PiYgbWF0Y2hlZFJ1bGVzLCBTdHlsZTo6UmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIEVsZW1lbnQm
IGVsZW1lbnQsIFBzZXVkb0lkIHBzZXVkb0lkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDM2YmQxY2EwNjFlOTM2NzE3
MDFlMWRkMjYzZTVkNGUxNThlNTI2NTYuLjI1ODUyMjc2MWY0OGM1Y2RjMjlhNjc1YzY3ZmU4NDdm
NmY1ZGIxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9yQ1NTQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNTU0FnZW50LmgKQEAgLTE1Miw3ICsxNTIsNyBAQCBwcml2YXRlOgogICAgIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkNTUzo6U3R5bGVTaGVldE9yaWdpbiBkZXRlY3RPcmlnaW4oQ1NTU3R5
bGVTaGVldCogcGFnZVN0eWxlU2hlZXQsIERvY3VtZW50KiBvd25lckRvY3VtZW50KTsKIAogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1J1bGU+IGJ1aWxkT2JqZWN0Rm9y
UnVsZShjb25zdCBTdHlsZVJ1bGUqLCBTdHlsZTo6UmVzb2x2ZXImLCBFbGVtZW50Jik7Ci0gICAg
UmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gYnVpbGRPYmplY3RGb3JS
dWxlKENTU1N0eWxlUnVsZSopOworICAgIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6
OkNTU1J1bGU+IGJ1aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqLCBFbGVtZW50Jik7CiAg
ICAgUmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2g+
PiBidWlsZEFycmF5Rm9yTWF0Y2hlZFJ1bGVMaXN0KGNvbnN0IFZlY3RvcjxSZWZQdHI8Y29uc3Qg
U3R5bGVSdWxlPj4mLCBTdHlsZTo6UmVzb2x2ZXImLCBFbGVtZW50JiwgUHNldWRvSWQpOwogICAg
IFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpDU1M6OkNTU1N0eWxlPiBidWlsZE9iamVjdEZv
ckF0dHJpYnV0ZXNTdHlsZShTdHlsZWRFbGVtZW50Jik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGFhNTY2OThlZTI5
NWMxYTk2ZWUyYmVlYWNiZWZiOTczMDViYTNlLi5jZjY4Njk2OWJhYmZmMWVhZTQ4ODlhNjRhMjFm
Yjc1Y2EzODMxODBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDMtMDIgIFBhdHJpY2sg
QW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyNjYyODgp
OiBXZWIgSW5zcGVjdG9yOiA6Om1hcmtlciBzaG93cyBvbiBldmVyeSBlbGVtZW50IG5vdworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMzg0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdCBm
b3IgdGhlIGZpbHRlcmluZyBvZiB0aGUgY2F0Y2gtYWxsIGA6Om1hcmtlcmAgc2VsZWN0b3IgZnJv
bSB0aGUgcnVsZSByZXN1bHRzIG9mCisgICAgICAgIGBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9k
ZWAgb24gZWxlbWVudHMgdGhhdCBkb24ndCBzdXBwb3J0IGA6Om1hcmtlcmAuCisKKyAgICAgICAg
KiBpbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxl
Rm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTAxICBDaHJpcyBH
YW1icmVsbCAgPGNnYW1icmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFRlc3RzXSBD
b252ZXJ0IGh0dHAvdGVzdHMvZmV0Y2ggY29udmVydCBQSFAgdG8gUHl0aG9uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5vZGVNYXJrZXJQ
c2V1ZG9JZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNo
ZWRTdHlsZUZvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjk2
NDk5OWQ4MmZhY2FhNzIwNjQ3MGVlOTcwMDljMmFlY2UxZTZiYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBz
ZXVkb0lkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyBmb3IgdGhlIENTUy5n
ZXRNYXRjaGVkU3R5bGVGb3JOb2RlIGNvbW1hbmQgYW5kIHRoZSBgOjptYXJrZXJgIENTUyBydWxl
IHNlbGVjdG9yLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogQ1NTLmdldE1hdGNoZWRTdHls
ZUZvck5vZGUuTWFya2VyUHNldWRvSWQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0TWF0
Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRlbQorUEFTUzogRXhwZWN0ZWQg
ZXhhY3RseSAyIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkLk5vbkxp
c3RJdGVtCitQQVNTOiBFeHBlY3RlZCBubyBydWxlcyBlbnRyeSBmb3Igc2VsZWN0b3IgYCo6Om1h
cmtlcmAuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9k
ZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQKK1BBU1M6IEV4
cGVjdGVkIGV4YWN0bHkgMSBydWxlIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVGb3JOb2RlTWFy
a2VyUHNldWRvSWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0
eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAyMzM4NjNjNTBkMTdk
NmU5MzJkMWQ0YmIzZTVjZmUwNDA1OWYxNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwK
QEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisKKyAgICBsZXQg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNTUy5nZXRNYXRjaGVkU3R5
bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkIik7CisKKyAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7
bmFtZSwgZGVzY3JpcHRpb24sIHNlbGVjdG9yLCBkb21Ob2RlU3R5bGVzSGFuZGxlcn0pCisgICAg
eworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAg
ICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICBhc3luYyB0ZXN0KCkgeworICAgICAgICAg
ICAgICAgIGxldCBkb2N1bWVudE5vZGUgPSBhd2FpdCBXSS5kb21NYW5hZ2VyLnJlcXVlc3REb2N1
bWVudCgpOworICAgICAgICAgICAgICAgIGxldCBub2RlSWQgPSBhd2FpdCBkb2N1bWVudE5vZGUu
cXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgbGV0IGRvbU5vZGUgPSBX
SS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0KGRvbU5vZGUsIGBTaG91bGQgZmluZCBET00gTm9kZSBmb3Igc2VsZWN0b3Ig
JyR7c2VsZWN0b3J9Jy5gKTsKKworICAgICAgICAgICAgICAgIGxldCBkb21Ob2RlU3R5bGVzID0g
V0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGVTdHlsZXMsIGBTaG91bGQgZmluZCBDU1MgU3R5bGVz
IGZvciBET00gTm9kZS5gKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBkb21Ob2RlU3R5bGVzLnJl
ZnJlc2hJZk5lZWRlZCgpOworCisgICAgICAgICAgICAgICAgYXdhaXQgZG9tTm9kZVN0eWxlc0hh
bmRsZXIoZG9tTm9kZVN0eWxlcyk7CisgICAgICAgICAgICB9LAorICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBhc3luYyBmdW5jdGlvbiBjaGFuZ2VFbGVtZW50RGlzcGxheVZhbHVlKGlkLCB2YWx1
ZSkKKyAgICB7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoYGNo
YW5nZUVsZW1lbnREaXNwbGF5VmFsdWUoIiR7aWR9IiwgIiR7dmFsdWV9IilgKTsKKyAgICB9CisK
KyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9y
Tm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRlbSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBs
aXN0IGl0ZW0gc2hvdWxkIGhhdmUgYm90aCB0aGUgVXNlciBBZ2VudCBhbmQgYXV0aG9yZWQgYDo6
bWFya2VyYCBydWxlcy4iLAorICAgICAgICBzZWxlY3RvcjogIiNsaXN0SXRlbSIsCisgICAgICAg
IGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJLkNTU01hbmFn
ZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5ndGgsIDIsICJF
eHBlY3RlZCBleGFjdGx5IDIgcnVsZXMgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1Mu
Z2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbSIsCisgICAg
ICAgIGRlc2NyaXB0aW9uOiAiQSBub24tbGlzdCBpdGVtIHNob3VsZCBoYXZlIG5vIGA6Om1hcmtl
cmAgcnVsZXMuIiwKKyAgICAgICAgc2VsZWN0b3I6ICIjbm9uTGlzdEl0ZW0iLAorICAgICAgICBh
c3luYyBkb21Ob2RlU3R5bGVzSGFuZGxlcihzdHlsZXMpIHsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuZXhwZWN0RXF1YWwoc3R5bGVzLnBzZXVkb0VsZW1lbnRzLmdldChXSS5DU1NNYW5hZ2Vy
LlBzZXVkb1NlbGVjdG9yTmFtZXMuTWFya2VyKSwgdW5kZWZpbmVkLCAiRXhwZWN0ZWQgbm8gcnVs
ZXMgZW50cnkgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAgICAgICB9CisgICAgfSk7
CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0Y2hlZFN0eWxl
Rm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiLAor
ICAgICAgICBkZXNjcmlwdGlvbjogIkEgbm9uLWxpc3QgaXRlbSB3aXRoIGEgYGJhc2Utc2VsZWN0
b3I6Om1hcmtlcmAgc3BlY2lmaWVkIHNob3VsZCBzaG93IG9ubHkgdGhlIHNwZWNpZmllZCBydWxl
LiIsCisgICAgICAgIHNlbGVjdG9yOiAiI25vbkxpc3RJdGVtV2l0aE1hcmtlclNwZWNpZmllZCIs
CisgICAgICAgIGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJ
LkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5n
dGgsIDEsICJFeHBlY3RlZCBleGFjdGx5IDEgcnVsZSBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAu
Iik7CisgICAgICAgIH0KKyAgICB9KTsKKworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmlu
aXNoKCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICA6Om1hcmtlciB7CisgICAgICAgIGNv
bG9yOiByZWQ7CisgICAgfQorICAgICNub25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQ6Om1h
cmtlciB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQ1NTLmdldE1h
dGNoZWRTdHlsZUZvck5vZGUgY29tbWFuZCBhbmQgdGhlIGA6Om1hcmtlcmAgQ1NTIHJ1bGUgc2Vs
ZWN0b3IuPC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpIGlkPSJsaXN0SXRlbSI+PC9saT4KKyAg
ICA8L3VsPgorICAgIDxkaXYgaWQ9Im5vbkxpc3RJdGVtIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJu
b25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422032</attachid>
            <date>2021-03-02 19:24:09 -0800</date>
            <delta_ts>2021-03-03 08:59:25 -0800</delta_ts>
            <desc>Patch v2.2 - Revised Approach</desc>
            <filename>bug-222384-20210302192408.patch</filename>
            <type>text/plain</type>
            <size>9026</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uNGEwMDlhNmUzM2IwMmQwNDdlZGJlYjMzYTQyNjg0
NTkwNDAwMjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGlu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKKwor
ICAgICAgICBBZGQgZmlsdGVyaW5nIG9mIHRoZSBgOjptYXJrZXJgIENTUyBydWxlIGZvciBlbGVt
ZW50cyB0aGF0IGFyZSBub3QgbGlzdCBpdGVtcywgYXMgdGhleSBkbyBubyBhcHBseSB0byB0aGUK
KyAgICAgICAgZWxlbWVudC4KKworICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmdldE1h
dGNoZWRTdHlsZXNGb3JOb2RlKToKKyAgICAgICAgLSBBZGRlZCBmaWx0ZXJpbmcgZm9yIGAqOjpt
YXJrZXJgIHJ1bGVzIG9uIG5vbi1gZGlzcGxheTpsaXN0LWl0ZW1gIGVsZW1lbnRzLgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9yUnVsZSk6CisgICAg
ICAgIC0gRHJpdmUtYnkgcmVmYWN0b3JpbmcgdG8gcmVkdWNlIGNvZGUgZHVwbGljYXRpb24uCisK
IDIwMjEtMDMtMDEgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIENT
U0ZvbnRGYWNlIHNob3VsZCBub3QgbmVlZCBpdHMgbV9mb250U2VsZWN0b3IgZGF0YSBtZW1iZXIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAKaW5kZXggMjA4MTA5NTY1YzUzYmY2OGJiZDNjOGJiYzVjNTM1NjJmNzcyNDliYS4u
ZDE0MzE3YjcxMTU0YWMxZThhNzI1NmQ4OWVkZjU1MTNhYjI3YzIzNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAg
LTUwMiw2ICs1MDIsOSBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxzdGQ6OnR1cGxlPFJlZlB0
cjxKU09OOjpBcnJheU9mPFByb3RvY29sOjpDU1M6OlJ1bGVNYXRjaAogICAgICAgICBpZiAoIWlu
Y2x1ZGVQc2V1ZG8gfHwgKmluY2x1ZGVQc2V1ZG8pIHsKICAgICAgICAgICAgIHBzZXVkb0VsZW1l
bnRzID0gSlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6Q1NTOjpQc2V1ZG9JZE1hdGNoZXM+OjpjcmVh
dGUoKTsKICAgICAgICAgICAgIGZvciAoUHNldWRvSWQgcHNldWRvSWQgPSBQc2V1ZG9JZDo6Rmly
c3RQdWJsaWNQc2V1ZG9JZDsgcHNldWRvSWQgPCBQc2V1ZG9JZDo6QWZ0ZXJMYXN0SW50ZXJuYWxQ
c2V1ZG9JZDsgcHNldWRvSWQgPSBzdGF0aWNfY2FzdDxQc2V1ZG9JZD4oc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KHBzZXVkb0lkKSArIDEpKSB7CisgICAgICAgICAgICAgICAgLy8gYCo6Om1hcmtlcmAg
c2VsZWN0b3JzIGFyZSBvbmx5IGFwcGxpY2FibGUgdG8gZWxlbWVudHMgd2l0aCBgZGlzcGxheTog
bGlzdC1pdGVtYC4KKyAgICAgICAgICAgICAgICBpZiAocHNldWRvSWQgPT0gUHNldWRvSWQ6Ok1h
cmtlciAmJiBlbGVtZW50LT5jb21wdXRlZFN0eWxlKCktPmRpc3BsYXkoKSAhPSBEaXNwbGF5VHlw
ZTo6TGlzdEl0ZW0pCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAg
ICAgIGlmIChhdXRvIHByb3RvY29sUHNldWRvSWQgPSBwcm90b2NvbFZhbHVlRm9yUHNldWRvSWQo
cHNldWRvSWQpKSB7CiAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWF0Y2hlZFJ1bGVzID0gc3R5
bGVSZXNvbHZlci5wc2V1ZG9TdHlsZVJ1bGVzRm9yRWxlbWVudChlbGVtZW50LCBwc2V1ZG9JZCwg
U3R5bGU6OlJlc29sdmVyOjpBbGxDU1NSdWxlcyk7CiAgICAgICAgICAgICAgICAgICAgIGlmICgh
bWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKSkgewpAQCAtMTA4OSwxMSArMTA5Miw3IEBAIFJlZlB0cjxQ
cm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRPYmplY3RGb3JS
dWxlKGNvbnN0IFN0eWxlCiAgICAgICAgIHN0eWxlUmVzb2x2ZXIuaW5zcGVjdG9yQ1NTT01XcmFw
cGVycygpLmNvbGxlY3RTY29wZVdyYXBwZXJzKHNoYWRvd1Jvb3QtPnN0eWxlU2NvcGUoKSk7CiAK
ICAgICBDU1NTdHlsZVJ1bGUqIGNzc29tV3JhcHBlciA9IHN0eWxlUmVzb2x2ZXIuaW5zcGVjdG9y
Q1NTT01XcmFwcGVycygpLmdldFdyYXBwZXJGb3JSdWxlSW5TaGVldHMoc3R5bGVSdWxlKTsKLSAg
ICBpZiAoIWNzc29tV3JhcHBlcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBJbnNw
ZWN0b3JTdHlsZVNoZWV0KiBpbnNwZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQoY3Nz
b21XcmFwcGVyLT5wYXJlbnRTdHlsZVNoZWV0KCkpOwotICAgIHJldHVybiBpbnNwZWN0b3JTdHls
ZVNoZWV0ID8gaW5zcGVjdG9yU3R5bGVTaGVldC0+YnVpbGRPYmplY3RGb3JSdWxlKGNzc29tV3Jh
cHBlcikgOiBudWxscHRyOworICAgIHJldHVybiBidWlsZE9iamVjdEZvclJ1bGUoY3Nzb21XcmFw
cGVyKTsKIH0KIAogUmVmUHRyPFByb3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0Fn
ZW50OjpidWlsZE9iamVjdEZvclJ1bGUoQ1NTU3R5bGVSdWxlKiBydWxlKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGI0YWE1
NjY5OGVlMjk1YzFhOTZlZTJiZWVhY2JlZmI5NzMwNWJhM2UuLjQwNzljZWJkMGViMWJlZTdhYzBh
NjFjNmUzMTA3NTFmNmQwNjI2NmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wMy0wMiAg
UGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAo
cjI2NjI4OCk6IFdlYiBJbnNwZWN0b3I6IDo6bWFya2VyIHNob3dzIG9uIGV2ZXJ5IGVsZW1lbnQg
bm93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIz
ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRl
ZCB0ZXN0IGZvciB0aGUgZmlsdGVyaW5nIG9mIGAqOjptYXJrZXJgIHNlbGVjdG9yIGZyb20gdGhl
IHJ1bGUgcmVzdWx0cyBvZiBgQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGVgIG9uCisgICAgICAg
IGVsZW1lbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBgOjptYXJrZXJgLgorCisgICAgICAgICogaW5z
cGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVGb3JOb2RlTWFya2VyUHNldWRvSWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5v
ZGVNYXJrZXJQc2V1ZG9JZC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0wMSAgQ2hyaXMgR2FtYnJl
bGwgIDxjZ2FtYnJlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlvdXRUZXN0c10gQ29udmVy
dCBodHRwL3Rlc3RzL2ZldGNoIGNvbnZlcnQgUEhQIHRvIFB5dGhvbgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVGb3JOb2RlTWFya2VyUHNldWRv
SWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5
bGVGb3JOb2RlTWFya2VyUHNldWRvSWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MmUzOTJh
Y2M5MzM1MjgwZDc5ZWUwYjAwMTYxNzg3NWM0MWRiNzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZUZvck5vZGVNYXJrZXJQc2V1ZG9J
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdHMgZm9yIHRoZSBDU1MuZ2V0TWF0
Y2hlZFN0eWxlRm9yTm9kZSBjb21tYW5kIGFuZCB0aGUgYDo6bWFya2VyYCBDU1MgcnVsZSBzZWxl
Y3Rvci4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IENTUy5nZXRNYXRjaGVkU3R5bGVGb3JO
b2RlLk1hcmtlclBzZXVkb0lkCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdldE1hdGNoZWRT
dHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTGlzdEl0ZW0KK1BBU1M6IEV4cGVjdGVkIGV4YWN0
bHkgMiBydWxlcyBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAuCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRl
bQorUEFTUzogRXhwZWN0ZWQgbm8gcnVsZXMgZW50cnkgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJg
LgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFy
a2VyUHNldWRvSWQuTm9uTGlzdEl0ZW1XaXRoTWFya2VyU3BlY2lmaWVkCitQQVNTOiBFeHBlY3Rl
ZCBubyBydWxlcyBlbnRyeSBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAuCitQQVNTOiBFeHBlY3Rl
ZCAzIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVGb3JOb2RlTWFya2VyUHNldWRvSWQu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1h
cmtlclBzZXVkb0lkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODMxYTg0YzIyOTE0OWZlMGJlYzUzYzMxNzVh
ZTU3ZTBiOTg5OWMwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwKQEAgLTAsMCArMSw5
MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gY2hhbmdlRWxlbWVudERpc3BsYXlWYWx1ZShpZCwgdmFs
dWUpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSB2
YWx1ZTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9y
VGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQ
c2V1ZG9JZCIpOworCisgICAgZnVuY3Rpb24gYWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9u
LCBzZWxlY3RvciwgZG9tTm9kZVN0eWxlc0hhbmRsZXJ9KQorICAgIHsKKyAgICAgICAgc3VpdGUu
YWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9u
LAorICAgICAgICAgICAgYXN5bmMgdGVzdCgpIHsKKyAgICAgICAgICAgICAgICBsZXQgZG9jdW1l
bnROb2RlID0gYXdhaXQgV0kuZG9tTWFuYWdlci5yZXF1ZXN0RG9jdW1lbnQoKTsKKyAgICAgICAg
ICAgICAgICBsZXQgbm9kZUlkID0gYXdhaXQgZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3Ioc2Vs
ZWN0b3IpOworICAgICAgICAgICAgICAgIGxldCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2Rl
Rm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21O
b2RlLCBgU2hvdWxkIGZpbmQgRE9NIE5vZGUgZm9yIHNlbGVjdG9yICcke3NlbGVjdG9yfScuYCk7
CisKKyAgICAgICAgICAgICAgICBsZXQgZG9tTm9kZVN0eWxlcyA9IFdJLmNzc01hbmFnZXIuc3R5
bGVzRm9yTm9kZShkb21Ob2RlKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2Vy
dChkb21Ob2RlU3R5bGVzLCBgU2hvdWxkIGZpbmQgQ1NTIFN0eWxlcyBmb3IgRE9NIE5vZGUuYCk7
CisgICAgICAgICAgICAgICAgYXdhaXQgZG9tTm9kZVN0eWxlcy5yZWZyZXNoSWZOZWVkZWQoKTsK
KworICAgICAgICAgICAgICAgIGF3YWl0IGRvbU5vZGVTdHlsZXNIYW5kbGVyKGRvbU5vZGVTdHls
ZXMpOworICAgICAgICAgICAgfSwKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVu
Y3Rpb24gY2hhbmdlRWxlbWVudERpc3BsYXlWYWx1ZShpZCwgdmFsdWUpCisgICAgeworICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBjaGFuZ2VFbGVtZW50RGlzcGxh
eVZhbHVlKCIke2lkfSIsICIke3ZhbHVlfSIpYCk7CisgICAgfQorCisgICAgYWRkVGVzdENhc2Uo
eworICAgICAgICBuYW1lOiAiQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRv
SWQuTGlzdEl0ZW0iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkEgbGlzdCBpdGVtIHNob3VsZCBo
YXZlIGJvdGggdGhlIFVzZXIgQWdlbnQgYW5kIGF1dGhvcmVkIGA6Om1hcmtlcmAgcnVsZXMuIiwK
KyAgICAgICAgc2VsZWN0b3I6ICIjbGlzdEl0ZW0iLAorICAgICAgICBhc3luYyBkb21Ob2RlU3R5
bGVzSGFuZGxlcihzdHlsZXMpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1
YWwoc3R5bGVzLnBzZXVkb0VsZW1lbnRzLmdldChXSS5DU1NNYW5hZ2VyLlBzZXVkb1NlbGVjdG9y
TmFtZXMuTWFya2VyKS5tYXRjaGVkUnVsZXMubGVuZ3RoLCAyLCAiRXhwZWN0ZWQgZXhhY3RseSAy
IHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4iKTsKKyAgICAgICAgfQorICAgIH0pOwor
CisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdldE1hdGNoZWRTdHlsZUZv
ck5vZGUuTWFya2VyUHNldWRvSWQuTm9uTGlzdEl0ZW0iLAorICAgICAgICBkZXNjcmlwdGlvbjog
IkEgbm9uLWxpc3QgaXRlbSBzaG91bGQgaGF2ZSBubyBgOjptYXJrZXJgIHJ1bGVzLiIsCisgICAg
ICAgIHNlbGVjdG9yOiAiI25vbkxpc3RJdGVtIiwKKyAgICAgICAgYXN5bmMgZG9tTm9kZVN0eWxl
c0hhbmRsZXIoc3R5bGVzKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFs
KHN0eWxlcy5wc2V1ZG9FbGVtZW50cy5nZXQoV0kuQ1NTTWFuYWdlci5Qc2V1ZG9TZWxlY3Rvck5h
bWVzLk1hcmtlciksIHVuZGVmaW5lZCwgIkV4cGVjdGVkIG5vIHJ1bGVzIGVudHJ5IGZvciBzZWxl
Y3RvciBgKjo6bWFya2VyYC4iKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgYWRkVGVzdENh
c2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNl
dWRvSWQuTm9uTGlzdEl0ZW1XaXRoTWFya2VyU3BlY2lmaWVkIiwKKyAgICAgICAgZGVzY3JpcHRp
b246ICJBIG5vbi1saXN0IGl0ZW0gd2l0aCBhIGBiYXNlLXNlbGVjdG9yOjptYXJrZXJgIHNwZWNp
ZmllZCBzaG91bGQgbm90IHNob3cgdGhlIHNwZWNpZmllZCBydWxlIHVubGVzcyBpdCBiZWNvbWVz
IGEgbGlzdCBpdGVtLiIsCisgICAgICAgIHNlbGVjdG9yOiAiI25vbkxpc3RJdGVtV2l0aE1hcmtl
clNwZWNpZmllZCIsCisgICAgICAgIGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykg
eworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxl
bWVudHMuZ2V0KFdJLkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLCB1bmRl
ZmluZWQsICJFeHBlY3RlZCBubyBydWxlcyBlbnRyeSBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAu
Iik7CisgICAgICAgICAgICBhd2FpdCBjaGFuZ2VFbGVtZW50RGlzcGxheVZhbHVlKCJub25MaXN0
SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiLCAibGlzdC1pdGVtIik7CisgICAgICAgICAgICBhd2Fp
dCBzdHlsZXMucmVmcmVzaCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVh
bChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJLkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JO
YW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5ndGgsIDMsICJFeHBlY3RlZCAzIHJ1bGVzIGZv
ciBzZWxlY3RvciBgKjo6bWFya2VyYC4iKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgc3Vp
dGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICA6
Om1hcmtlciB7CisgICAgICAgIGNvbG9yOiByZWQ7CisgICAgfQorICAgICNub25MaXN0SXRlbVdp
dGhNYXJrZXJTcGVjaWZpZWQ6Om1hcmtlciB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRl
c3RzIGZvciB0aGUgQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUgY29tbWFuZCBhbmQgdGhlIGA6
Om1hcmtlcmAgQ1NTIHJ1bGUgc2VsZWN0b3IuPC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpIGlk
PSJsaXN0SXRlbSI+PC9saT4KKyAgICA8L3VsPgorICAgIDxkaXYgaWQ9Im5vbkxpc3RJdGVtIj48
L2Rpdj4KKyAgICA8ZGl2IGlkPSJub25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422094</attachid>
            <date>2021-03-03 08:59:27 -0800</date>
            <delta_ts>2021-03-03 09:03:57 -0800</delta_ts>
            <desc>Patch v2.3 - Re-baselined related test</desc>
            <filename>bug-222384-20210303085926.patch</filename>
            <type>text/plain</type>
            <size>10880</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uMTI0NWE0YWEzY2UzZTcxMWFmYzY3OWViN2U2OTky
Y2FhZWEyNTViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTAzICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGlu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGVNYXJrZXJQc2V1ZG9JZC5odG1sCisK
KyAgICAgICAgQWRkIGZpbHRlcmluZyBvZiB0aGUgYDo6bWFya2VyYCBDU1MgcnVsZSBmb3IgZWxl
bWVudHMgdGhhdCBhcmUgbm90IGxpc3QgaXRlbXMsIGFzIHRoZXkgZG8gbm8gYXBwbHkgdG8gdGhl
CisgICAgICAgIGVsZW1lbnQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpnZXRN
YXRjaGVkU3R5bGVzRm9yTm9kZSk6CisgICAgICAgIC0gQWRkZWQgZmlsdGVyaW5nIGZvciBgKjo6
bWFya2VyYCBydWxlcyBvbiBub24tYGRpc3BsYXk6bGlzdC1pdGVtYCBlbGVtZW50cy4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1bGUpOgorICAg
ICAgICAtIERyaXZlLWJ5IHJlZmFjdG9yaW5nIHRvIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLgor
CiAyMDIxLTAzLTAxICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBD
U1NGb250RmFjZSBzaG91bGQgbm90IG5lZWQgaXRzIG1fZm9udFNlbGVjdG9yIGRhdGEgbWVtYmVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNT
U0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NT
QWdlbnQuY3BwCmluZGV4IDIwODEwOTU2NWM1M2JmNjhiYmQzYzhiYmM1YzUzNTYyZjc3MjQ5YmEu
LmQxNDMxN2I3MTE1NGFjMWU4YTcyNTZkODllZGY1NTEzYWIyN2MyMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBA
IC01MDIsNiArNTAyLDkgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWZQ
dHI8SlNPTjo6QXJyYXlPZjxQcm90b2NvbDo6Q1NTOjpSdWxlTWF0Y2gKICAgICAgICAgaWYgKCFp
bmNsdWRlUHNldWRvIHx8ICppbmNsdWRlUHNldWRvKSB7CiAgICAgICAgICAgICBwc2V1ZG9FbGVt
ZW50cyA9IEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6UHNldWRvSWRNYXRjaGVzPjo6Y3Jl
YXRlKCk7CiAgICAgICAgICAgICBmb3IgKFBzZXVkb0lkIHBzZXVkb0lkID0gUHNldWRvSWQ6OkZp
cnN0UHVibGljUHNldWRvSWQ7IHBzZXVkb0lkIDwgUHNldWRvSWQ6OkFmdGVyTGFzdEludGVybmFs
UHNldWRvSWQ7IHBzZXVkb0lkID0gc3RhdGljX2Nhc3Q8UHNldWRvSWQ+KHN0YXRpY19jYXN0PHVu
c2lnbmVkPihwc2V1ZG9JZCkgKyAxKSkgeworICAgICAgICAgICAgICAgIC8vIGAqOjptYXJrZXJg
IHNlbGVjdG9ycyBhcmUgb25seSBhcHBsaWNhYmxlIHRvIGVsZW1lbnRzIHdpdGggYGRpc3BsYXk6
IGxpc3QtaXRlbWAuCisgICAgICAgICAgICAgICAgaWYgKHBzZXVkb0lkID09IFBzZXVkb0lkOjpN
YXJrZXIgJiYgZWxlbWVudC0+Y29tcHV0ZWRTdHlsZSgpLT5kaXNwbGF5KCkgIT0gRGlzcGxheVR5
cGU6Okxpc3RJdGVtKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
ICAgICBpZiAoYXV0byBwcm90b2NvbFBzZXVkb0lkID0gcHJvdG9jb2xWYWx1ZUZvclBzZXVkb0lk
KHBzZXVkb0lkKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIG1hdGNoZWRSdWxlcyA9IHN0
eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVSdWxlc0ZvckVsZW1lbnQoZWxlbWVudCwgcHNldWRvSWQs
IFN0eWxlOjpSZXNvbHZlcjo6QWxsQ1NTUnVsZXMpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
IW1hdGNoZWRSdWxlcy5pc0VtcHR5KCkpIHsKQEAgLTEwODksMTEgKzEwOTIsNyBAQCBSZWZQdHI8
UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gSW5zcGVjdG9yQ1NTQWdlbnQ6OmJ1aWxkT2JqZWN0Rm9y
UnVsZShjb25zdCBTdHlsZQogICAgICAgICBzdHlsZVJlc29sdmVyLmluc3BlY3RvckNTU09NV3Jh
cHBlcnMoKS5jb2xsZWN0U2NvcGVXcmFwcGVycyhzaGFkb3dSb290LT5zdHlsZVNjb3BlKCkpOwog
CiAgICAgQ1NTU3R5bGVSdWxlKiBjc3NvbVdyYXBwZXIgPSBzdHlsZVJlc29sdmVyLmluc3BlY3Rv
ckNTU09NV3JhcHBlcnMoKS5nZXRXcmFwcGVyRm9yUnVsZUluU2hlZXRzKHN0eWxlUnVsZSk7Ci0g
ICAgaWYgKCFjc3NvbVdyYXBwZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgSW5z
cGVjdG9yU3R5bGVTaGVldCogaW5zcGVjdG9yU3R5bGVTaGVldCA9IGJpbmRTdHlsZVNoZWV0KGNz
c29tV3JhcHBlci0+cGFyZW50U3R5bGVTaGVldCgpKTsKLSAgICByZXR1cm4gaW5zcGVjdG9yU3R5
bGVTaGVldCA/IGluc3BlY3RvclN0eWxlU2hlZXQtPmJ1aWxkT2JqZWN0Rm9yUnVsZShjc3NvbVdy
YXBwZXIpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gYnVpbGRPYmplY3RGb3JSdWxlKGNzc29tV3Jh
cHBlcik7CiB9CiAKIFJlZlB0cjxQcm90b2NvbDo6Q1NTOjpDU1NSdWxlPiBJbnNwZWN0b3JDU1NB
Z2VudDo6YnVpbGRPYmplY3RGb3JSdWxlKENTU1N0eWxlUnVsZSogcnVsZSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGFh
NTY2OThlZTI5NWMxYTk2ZWUyYmVlYWNiZWZiOTczMDViYTNlLi5kYTM2ZTNmNDQ5NjA4OGRjMjc0
M2QyODc3ZDA5OTEzMjJjNzlkMGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDMtMDMg
IFBhdHJpY2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIyNjYyODgpOiBXZWIgSW5zcGVjdG9yOiA6Om1hcmtlciBzaG93cyBvbiBldmVyeSBlbGVtZW50
IG5vdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIy
Mzg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGVzdCBmb3IgdGhlIGZpbHRlcmluZyBvZiBgKjo6bWFya2VyYCBzZWxlY3RvciBmcm9tIHRo
ZSBydWxlIHJlc3VsdHMgb2YgYENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlYCBvbgorICAgICAg
ICBlbGVtZW50cyB0aGF0IGRvbid0IHN1cHBvcnQgYDo6bWFya2VyYC4KKworICAgICAgICAqIGlu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAtIFVwZGF0ZWQgZXhwZWN0YXRpb25zIHRvIGFjY291bnQgZm9yIHRoZSBhYnNjZW5jZSBvZiB0
aGUgYDo6bWFya2VyYCBydWxlIG9uIG5vbi1saXN0IGVsZW1lbnRzLgorICAgICAgICAqIGluc3Bl
Y3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5v
ZGVNYXJrZXJQc2V1ZG9JZC5odG1sOiBBZGRlZC4KKwogMjAyMS0wMy0wMSAgQ2hyaXMgR2FtYnJl
bGwgIDxjZ2FtYnJlbGxAYXBwbGUuY29tPgogCiAgICAgICAgIFtMYXlvdXRUZXN0c10gQ29udmVy
dCBodHRwL3Rlc3RzL2ZldGNoIGNvbnZlcnQgUEhQIHRvIFB5dGhvbgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlLWV4
cGVjdGVkLnR4dAppbmRleCBlNjdkNzBhZjlmODkxZjBjNjU3YTkwNzQyODQxZWRiNzI4NWFhMWIy
Li42YmU1MjBiNDU4NDdkNTJkOTEwMWI3MzNiM2Q1NjQ5ZDk5MjYyZWY4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JO
b2RlLWV4cGVjdGVkLnR4dApAQCAtMzc4LDU0ICszNzgsNiBAQCBQc2V1ZG86CiAgICAgICB9CiAg
ICAgXQogICB9LAotICB7Ci0gICAgInBzZXVkb0lkIjogIm1hcmtlciIsCi0gICAgIm1hdGNoZXMi
OiBbCi0gICAgICB7Ci0gICAgICAgICJydWxlIjogewotICAgICAgICAgICJzZWxlY3Rvckxpc3Qi
OiB7Ci0gICAgICAgICAgICAic2VsZWN0b3JzIjogWwotICAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgInRleHQiOiAiZGl2OjptYXJrZXIiLAotICAgICAgICAgICAgICAgICJzcGVjaWZp
Y2l0eSI6IFsKLSAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAgICAgICAgICAgICAwLAotICAg
ICAgICAgICAgICAgICAgMgotICAgICAgICAgICAgICAgIF0KLSAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICJ0ZXh0IjogImRpdjo6bWFya2VyIiwKLSAgICAgICAg
ICAgICJyYW5nZSI6ICI8ZmlsdGVyZWQ+IgotICAgICAgICAgIH0sCi0gICAgICAgICAgInNvdXJj
ZUxpbmUiOiAiPGZpbHRlcmVkPiIsCi0gICAgICAgICAgIm9yaWdpbiI6ICJhdXRob3IiLAotICAg
ICAgICAgICJzdHlsZSI6IHsKLSAgICAgICAgICAgICJjc3NQcm9wZXJ0aWVzIjogWwotICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgIm5hbWUiOiAiei1pbmRleCIsCi0gICAgICAgICAg
ICAgICAgInZhbHVlIjogIjMiLAotICAgICAgICAgICAgICAgICJ0ZXh0IjogInotaW5kZXg6IDM7
IiwKLSAgICAgICAgICAgICAgICAicmFuZ2UiOiAiPGZpbHRlcmVkPiIsCi0gICAgICAgICAgICAg
ICAgImltcGxpY2l0IjogZmFsc2UsCi0gICAgICAgICAgICAgICAgInN0YXR1cyI6ICJhY3RpdmUi
Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAic2hvcnRoYW5k
RW50cmllcyI6IFtdLAotICAgICAgICAgICAgInN0eWxlSWQiOiAiPGZpbHRlcmVkPiIsCi0gICAg
ICAgICAgICAid2lkdGgiOiAiIiwKLSAgICAgICAgICAgICJoZWlnaHQiOiAiIiwKLSAgICAgICAg
ICAgICJyYW5nZSI6ICI8ZmlsdGVyZWQ+IiwKLSAgICAgICAgICAgICJjc3NUZXh0IjogIiB6LWlu
ZGV4OiAzOyAiCi0gICAgICAgICAgfSwKLSAgICAgICAgICAic291cmNlVVJMIjogIjxmaWx0ZXJl
ZD4iLAotICAgICAgICAgICJydWxlSWQiOiAiPGZpbHRlcmVkPiIKLSAgICAgICAgfSwKLSAgICAg
ICAgIm1hdGNoaW5nU2VsZWN0b3JzIjogWwotICAgICAgICAgIDAKLSAgICAgICAgXQotICAgICAg
fQotICAgIF0KLSAgfSwKICAgewogICAgICJwc2V1ZG9JZCI6ICJiZWZvcmUiLAogICAgICJtYXRj
aGVzIjogWwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVk
U3R5bGVzRm9yTm9kZU1hcmtlclBzZXVkb0lkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDcyZTM5MmFjYzkzMzUyODBkNzllZTBiMDAxNjE3ODc1YzQxZGI3
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hl
ZFN0eWxlc0Zvck5vZGVNYXJrZXJQc2V1ZG9JZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorVGVzdHMgZm9yIHRoZSBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZSBjb21tYW5kIGFuZCB0
aGUgYDo6bWFya2VyYCBDU1MgcnVsZSBzZWxlY3Rvci4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3Vp
dGU6IENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTGlz
dEl0ZW0KK1BBU1M6IEV4cGVjdGVkIGV4YWN0bHkgMiBydWxlcyBmb3Igc2VsZWN0b3IgYCo6Om1h
cmtlcmAuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9k
ZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbQorUEFTUzogRXhwZWN0ZWQgbm8gcnVsZXMgZW50
cnkgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogQ1NT
LmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTm9uTGlzdEl0ZW1XaXRoTWFy
a2VyU3BlY2lmaWVkCitQQVNTOiBFeHBlY3RlZCBubyBydWxlcyBlbnRyeSBmb3Igc2VsZWN0b3Ig
YCo6Om1hcmtlcmAuCitQQVNTOiBFeHBlY3RlZCAzIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFy
a2VyYC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVk
U3R5bGVzRm9yTm9kZU1hcmtlclBzZXVkb0lkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
Y3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlTWFya2VyUHNldWRvSWQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MzFhODRjMjI5MTQ5ZmUwYmVjNTNjMzE3NWFlNTdlMGI5ODk5YzAxCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZU1h
cmtlclBzZXVkb0lkLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291
cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gY2hh
bmdlRWxlbWVudERpc3BsYXlWYWx1ZShpZCwgdmFsdWUpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoaWQpLnN0eWxlLmRpc3BsYXkgPSB2YWx1ZTsKK30KKworZnVuY3Rpb24gdGVzdCgp
Cit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJDU1Mu
Z2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZCIpOworCisgICAgZnVuY3Rpb24g
YWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBzZWxlY3RvciwgZG9tTm9kZVN0eWxlc0hh
bmRsZXJ9KQorICAgIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAg
bmFtZSwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uLAorICAgICAgICAgICAgYXN5bmMgdGVzdCgp
IHsKKyAgICAgICAgICAgICAgICBsZXQgZG9jdW1lbnROb2RlID0gYXdhaXQgV0kuZG9tTWFuYWdl
ci5yZXF1ZXN0RG9jdW1lbnQoKTsKKyAgICAgICAgICAgICAgICBsZXQgbm9kZUlkID0gYXdhaXQg
ZG9jdW1lbnROb2RlLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpOworICAgICAgICAgICAgICAgIGxl
dCBkb21Ob2RlID0gV0kuZG9tTWFuYWdlci5ub2RlRm9ySWQobm9kZUlkKTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlLCBgU2hvdWxkIGZpbmQgRE9NIE5vZGUg
Zm9yIHNlbGVjdG9yICcke3NlbGVjdG9yfScuYCk7CisKKyAgICAgICAgICAgICAgICBsZXQgZG9t
Tm9kZVN0eWxlcyA9IFdJLmNzc01hbmFnZXIuc3R5bGVzRm9yTm9kZShkb21Ob2RlKTsKKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChkb21Ob2RlU3R5bGVzLCBgU2hvdWxkIGZp
bmQgQ1NTIFN0eWxlcyBmb3IgRE9NIE5vZGUuYCk7CisgICAgICAgICAgICAgICAgYXdhaXQgZG9t
Tm9kZVN0eWxlcy5yZWZyZXNoSWZOZWVkZWQoKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IGRv
bU5vZGVTdHlsZXNIYW5kbGVyKGRvbU5vZGVTdHlsZXMpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgfSk7CisgICAgfQorCisgICAgYXN5bmMgZnVuY3Rpb24gY2hhbmdlRWxlbWVudERpc3BsYXlW
YWx1ZShpZCwgdmFsdWUpCisgICAgeworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV2YWx1
YXRlSW5QYWdlKGBjaGFuZ2VFbGVtZW50RGlzcGxheVZhbHVlKCIke2lkfSIsICIke3ZhbHVlfSIp
YCk7CisgICAgfQorCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdldE1h
dGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTGlzdEl0ZW0iLAorICAgICAgICBkZXNj
cmlwdGlvbjogIkEgbGlzdCBpdGVtIHNob3VsZCBoYXZlIGJvdGggdGhlIFVzZXIgQWdlbnQgYW5k
IGF1dGhvcmVkIGA6Om1hcmtlcmAgcnVsZXMuIiwKKyAgICAgICAgc2VsZWN0b3I6ICIjbGlzdEl0
ZW0iLAorICAgICAgICBhc3luYyBkb21Ob2RlU3R5bGVzSGFuZGxlcihzdHlsZXMpIHsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVzLnBzZXVkb0VsZW1lbnRzLmdl
dChXSS5DU1NNYW5hZ2VyLlBzZXVkb1NlbGVjdG9yTmFtZXMuTWFya2VyKS5tYXRjaGVkUnVsZXMu
bGVuZ3RoLCAyLCAiRXhwZWN0ZWQgZXhhY3RseSAyIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFy
a2VyYC4iKTsKKyAgICAgICAgfQorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAg
ICBuYW1lOiAiQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTm9uTGlz
dEl0ZW0iLAorICAgICAgICBkZXNjcmlwdGlvbjogIkEgbm9uLWxpc3QgaXRlbSBzaG91bGQgaGF2
ZSBubyBgOjptYXJrZXJgIHJ1bGVzLiIsCisgICAgICAgIHNlbGVjdG9yOiAiI25vbkxpc3RJdGVt
IiwKKyAgICAgICAgYXN5bmMgZG9tTm9kZVN0eWxlc0hhbmRsZXIoc3R5bGVzKSB7CisgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlcy5wc2V1ZG9FbGVtZW50cy5nZXQo
V0kuQ1NTTWFuYWdlci5Qc2V1ZG9TZWxlY3Rvck5hbWVzLk1hcmtlciksIHVuZGVmaW5lZCwgIkV4
cGVjdGVkIG5vIHJ1bGVzIGVudHJ5IGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4iKTsKKyAgICAg
ICAgfQorICAgIH0pOworCisgICAgYWRkVGVzdENhc2UoeworICAgICAgICBuYW1lOiAiQ1NTLmdl
dE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQuTm9uTGlzdEl0ZW1XaXRoTWFya2Vy
U3BlY2lmaWVkIiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJBIG5vbi1saXN0IGl0ZW0gd2l0aCBh
IGBiYXNlLXNlbGVjdG9yOjptYXJrZXJgIHNwZWNpZmllZCBzaG91bGQgbm90IHNob3cgdGhlIHNw
ZWNpZmllZCBydWxlIHVubGVzcyBpdCBiZWNvbWVzIGEgbGlzdCBpdGVtLiIsCisgICAgICAgIHNl
bGVjdG9yOiAiI25vbkxpc3RJdGVtV2l0aE1hcmtlclNwZWNpZmllZCIsCisgICAgICAgIGFzeW5j
IGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJLkNTU01hbmFnZXIuUHNl
dWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLCB1bmRlZmluZWQsICJFeHBlY3RlZCBubyBydWxlcyBl
bnRyeSBmb3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAuIik7CisgICAgICAgICAgICBhd2FpdCBjaGFu
Z2VFbGVtZW50RGlzcGxheVZhbHVlKCJub25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiLCAi
bGlzdC1pdGVtIik7CisgICAgICAgICAgICBhd2FpdCBzdHlsZXMucmVmcmVzaCgpOworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0
KFdJLkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5s
ZW5ndGgsIDMsICJFeHBlY3RlZCAzIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4iKTsK
KyAgICAgICAgfQorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7
Cit9Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICA6Om1hcmtlciB7CisgICAgICAgIGNvbG9yOiBy
ZWQ7CisgICAgfQorICAgICNub25MaXN0SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQ6Om1hcmtlciB7
CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGZvciB0aGUgQ1NTLmdldE1hdGNoZWRT
dHlsZUZvck5vZGUgY29tbWFuZCBhbmQgdGhlIGA6Om1hcmtlcmAgQ1NTIHJ1bGUgc2VsZWN0b3Iu
PC9wPgorICAgIDx1bD4KKyAgICAgICAgPGxpIGlkPSJsaXN0SXRlbSI+PC9saT4KKyAgICA8L3Vs
PgorICAgIDxkaXYgaWQ9Im5vbkxpc3RJdGVtIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJub25MaXN0
SXRlbVdpdGhNYXJrZXJTcGVjaWZpZWQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422096</attachid>
            <date>2021-03-03 09:03:59 -0800</date>
            <delta_ts>2021-03-03 09:59:55 -0800</delta_ts>
            <desc>Patch v2.3.1 - Re-baselined related test, Added reviewer to changelogs</desc>
            <filename>bug-222384-20210303090358.patch</filename>
            <type>text/plain</type>
            <size>10876</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwNWU0OGMzYTQxODM1
OTg4NmQ2MDhlMjliMzFjZGU3MjM3Y2Q4Yi4uYjNhYTU4MDJlN2M4ZWY5N2VmOGIzZGYwYjU4ZGEx
OTljNThkNzQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTAzICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjY2
Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBub3cK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4NAor
CisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlTWFya2VyUHNldWRvSWQuaHRtbAorCisg
ICAgICAgIEFkZCBmaWx0ZXJpbmcgb2YgdGhlIGA6Om1hcmtlcmAgQ1NTIHJ1bGUgZm9yIGVsZW1l
bnRzIHRoYXQgYXJlIG5vdCBsaXN0IGl0ZW1zLCBhcyB0aGV5IGRvIG5vIGFwcGx5IHRvIHRoZQor
ICAgICAgICBlbGVtZW50LgorCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JD
U1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TWF0
Y2hlZFN0eWxlc0Zvck5vZGUpOgorICAgICAgICAtIEFkZGVkIGZpbHRlcmluZyBmb3IgYCo6Om1h
cmtlcmAgcnVsZXMgb24gbm9uLWBkaXNwbGF5Omxpc3QtaXRlbWAgZWxlbWVudHMuCisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDU1NBZ2VudDo6YnVpbGRPYmplY3RGb3JSdWxlKToKKyAgICAg
ICAgLSBEcml2ZS1ieSByZWZhY3RvcmluZyB0byByZWR1Y2UgY29kZSBkdXBsaWNhdGlvbi4KKwog
MjAyMS0wMy0wMSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgQ1NT
Rm9udEZhY2Ugc2hvdWxkIG5vdCBuZWVkIGl0cyBtX2ZvbnRTZWxlY3RvciBkYXRhIG1lbWJlcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NB
Z2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0Fn
ZW50LmNwcAppbmRleCAyMDgxMDk1NjVjNTNiZjY4YmJkM2M4YmJjNWM1MzU2MmY3NzI0OWJhLi5k
MTQzMTdiNzExNTRhYzFlOGE3MjU2ZDg5ZWRmNTUxM2FiMjdjMjM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAt
NTAyLDYgKzUwMiw5IEBAIFByb3RvY29sOjpFcnJvclN0cmluZ09yPHN0ZDo6dHVwbGU8UmVmUHRy
PEpTT046OkFycmF5T2Y8UHJvdG9jb2w6OkNTUzo6UnVsZU1hdGNoCiAgICAgICAgIGlmICghaW5j
bHVkZVBzZXVkbyB8fCAqaW5jbHVkZVBzZXVkbykgewogICAgICAgICAgICAgcHNldWRvRWxlbWVu
dHMgPSBKU09OOjpBcnJheU9mPFByb3RvY29sOjpDU1M6OlBzZXVkb0lkTWF0Y2hlcz46OmNyZWF0
ZSgpOwogICAgICAgICAgICAgZm9yIChQc2V1ZG9JZCBwc2V1ZG9JZCA9IFBzZXVkb0lkOjpGaXJz
dFB1YmxpY1BzZXVkb0lkOyBwc2V1ZG9JZCA8IFBzZXVkb0lkOjpBZnRlckxhc3RJbnRlcm5hbFBz
ZXVkb0lkOyBwc2V1ZG9JZCA9IHN0YXRpY19jYXN0PFBzZXVkb0lkPihzdGF0aWNfY2FzdDx1bnNp
Z25lZD4ocHNldWRvSWQpICsgMSkpIHsKKyAgICAgICAgICAgICAgICAvLyBgKjo6bWFya2VyYCBz
ZWxlY3RvcnMgYXJlIG9ubHkgYXBwbGljYWJsZSB0byBlbGVtZW50cyB3aXRoIGBkaXNwbGF5OiBs
aXN0LWl0ZW1gLgorICAgICAgICAgICAgICAgIGlmIChwc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6TWFy
a2VyICYmIGVsZW1lbnQtPmNvbXB1dGVkU3R5bGUoKS0+ZGlzcGxheSgpICE9IERpc3BsYXlUeXBl
OjpMaXN0SXRlbSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAg
ICAgaWYgKGF1dG8gcHJvdG9jb2xQc2V1ZG9JZCA9IHByb3RvY29sVmFsdWVGb3JQc2V1ZG9JZChw
c2V1ZG9JZCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXRjaGVkUnVsZXMgPSBzdHls
ZVJlc29sdmVyLnBzZXVkb1N0eWxlUnVsZXNGb3JFbGVtZW50KGVsZW1lbnQsIHBzZXVkb0lkLCBT
dHlsZTo6UmVzb2x2ZXI6OkFsbENTU1J1bGVzKTsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFt
YXRjaGVkUnVsZXMuaXNFbXB0eSgpKSB7CkBAIC0xMDg5LDExICsxMDkyLDcgQEAgUmVmUHRyPFBy
b3RvY29sOjpDU1M6OkNTU1J1bGU+IEluc3BlY3RvckNTU0FnZW50OjpidWlsZE9iamVjdEZvclJ1
bGUoY29uc3QgU3R5bGUKICAgICAgICAgc3R5bGVSZXNvbHZlci5pbnNwZWN0b3JDU1NPTVdyYXBw
ZXJzKCkuY29sbGVjdFNjb3BlV3JhcHBlcnMoc2hhZG93Um9vdC0+c3R5bGVTY29wZSgpKTsKIAog
ICAgIENTU1N0eWxlUnVsZSogY3Nzb21XcmFwcGVyID0gc3R5bGVSZXNvbHZlci5pbnNwZWN0b3JD
U1NPTVdyYXBwZXJzKCkuZ2V0V3JhcHBlckZvclJ1bGVJblNoZWV0cyhzdHlsZVJ1bGUpOwotICAg
IGlmICghY3Nzb21XcmFwcGVyKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIEluc3Bl
Y3RvclN0eWxlU2hlZXQqIGluc3BlY3RvclN0eWxlU2hlZXQgPSBiaW5kU3R5bGVTaGVldChjc3Nv
bVdyYXBwZXItPnBhcmVudFN0eWxlU2hlZXQoKSk7Ci0gICAgcmV0dXJuIGluc3BlY3RvclN0eWxl
U2hlZXQgPyBpbnNwZWN0b3JTdHlsZVNoZWV0LT5idWlsZE9iamVjdEZvclJ1bGUoY3Nzb21XcmFw
cGVyKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGJ1aWxkT2JqZWN0Rm9yUnVsZShjc3NvbVdyYXBw
ZXIpOwogfQogCiBSZWZQdHI8UHJvdG9jb2w6OkNTUzo6Q1NTUnVsZT4gSW5zcGVjdG9yQ1NTQWdl
bnQ6OmJ1aWxkT2JqZWN0Rm9yUnVsZShDU1NTdHlsZVJ1bGUqIHJ1bGUpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjRhYTU2
Njk4ZWUyOTVjMWE5NmVlMmJlZWFjYmVmYjk3MzA1YmEzZS4uYzg5YzRkMDhkOGM1YWU2YTI1YWY2
NTI1NWMxMjM1MjllMDE0YmE2NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTAzLTAzICBQ
YXRyaWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChy
MjY2Mjg4KTogV2ViIEluc3BlY3RvcjogOjptYXJrZXIgc2hvd3Mgb24gZXZlcnkgZWxlbWVudCBu
b3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjM4
NAorCisgICAgICAgIFJldmlld2VkIGJ5IERldmluIFJvdXNzby4KKworICAgICAgICBBZGRlZCB0
ZXN0IGZvciB0aGUgZmlsdGVyaW5nIG9mIGAqOjptYXJrZXJgIHNlbGVjdG9yIGZyb20gdGhlIHJ1
bGUgcmVzdWx0cyBvZiBgQ1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGVgIG9uCisgICAgICAgIGVs
ZW1lbnRzIHRoYXQgZG9uJ3Qgc3VwcG9ydCBgOjptYXJrZXJgLgorCisgICAgICAgICogaW5zcGVj
dG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZS1leHBlY3RlZC50eHQ6CisgICAgICAgIC0g
VXBkYXRlZCBleHBlY3RhdGlvbnMgdG8gYWNjb3VudCBmb3IgdGhlIGFic2NlbmNlIG9mIHRoZSBg
OjptYXJrZXJgIHJ1bGUgb24gbm9uLWxpc3QgZWxlbWVudHMuCisgICAgICAgICogaW5zcGVjdG9y
L2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZU1hcmtlclBzZXVkb0lkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZU1h
cmtlclBzZXVkb0lkLmh0bWw6IEFkZGVkLgorCiAyMDIxLTAzLTAxICBDaHJpcyBHYW1icmVsbCAg
PGNnYW1icmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAgW0xheW91dFRlc3RzXSBDb252ZXJ0IGh0
dHAvdGVzdHMvZmV0Y2ggY29udmVydCBQSFAgdG8gUHl0aG9uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUtZXhwZWN0
ZWQudHh0CmluZGV4IGU2N2Q3MGFmOWY4OTFmMGM2NTdhOTA3NDI4NDFlZGI3Mjg1YWExYjIuLjZi
ZTUyMGI0NTg0N2Q1MmQ5MTAxYjczM2IzZDU2NDlkOTkyNjJlZjggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3MvZ2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGUt
ZXhwZWN0ZWQudHh0CkBAIC0zNzgsNTQgKzM3OCw2IEBAIFBzZXVkbzoKICAgICAgIH0KICAgICBd
CiAgIH0sCi0gIHsKLSAgICAicHNldWRvSWQiOiAibWFya2VyIiwKLSAgICAibWF0Y2hlcyI6IFsK
LSAgICAgIHsKLSAgICAgICAgInJ1bGUiOiB7Ci0gICAgICAgICAgInNlbGVjdG9yTGlzdCI6IHsK
LSAgICAgICAgICAgICJzZWxlY3RvcnMiOiBbCi0gICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAidGV4dCI6ICJkaXY6Om1hcmtlciIsCi0gICAgICAgICAgICAgICAgInNwZWNpZmljaXR5
IjogWwotICAgICAgICAgICAgICAgICAgMCwKLSAgICAgICAgICAgICAgICAgIDAsCi0gICAgICAg
ICAgICAgICAgICAyCi0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICAgICAgInRleHQiOiAiZGl2OjptYXJrZXIiLAotICAgICAgICAgICAg
InJhbmdlIjogIjxmaWx0ZXJlZD4iCi0gICAgICAgICAgfSwKLSAgICAgICAgICAic291cmNlTGlu
ZSI6ICI8ZmlsdGVyZWQ+IiwKLSAgICAgICAgICAib3JpZ2luIjogImF1dGhvciIsCi0gICAgICAg
ICAgInN0eWxlIjogewotICAgICAgICAgICAgImNzc1Byb3BlcnRpZXMiOiBbCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICAibmFtZSI6ICJ6LWluZGV4IiwKLSAgICAgICAgICAgICAg
ICAidmFsdWUiOiAiMyIsCi0gICAgICAgICAgICAgICAgInRleHQiOiAiei1pbmRleDogMzsiLAot
ICAgICAgICAgICAgICAgICJyYW5nZSI6ICI8ZmlsdGVyZWQ+IiwKLSAgICAgICAgICAgICAgICAi
aW1wbGljaXQiOiBmYWxzZSwKLSAgICAgICAgICAgICAgICAic3RhdHVzIjogImFjdGl2ZSIKLSAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJzaG9ydGhhbmRFbnRy
aWVzIjogW10sCi0gICAgICAgICAgICAic3R5bGVJZCI6ICI8ZmlsdGVyZWQ+IiwKLSAgICAgICAg
ICAgICJ3aWR0aCI6ICIiLAotICAgICAgICAgICAgImhlaWdodCI6ICIiLAotICAgICAgICAgICAg
InJhbmdlIjogIjxmaWx0ZXJlZD4iLAotICAgICAgICAgICAgImNzc1RleHQiOiAiIHotaW5kZXg6
IDM7ICIKLSAgICAgICAgICB9LAotICAgICAgICAgICJzb3VyY2VVUkwiOiAiPGZpbHRlcmVkPiIs
Ci0gICAgICAgICAgInJ1bGVJZCI6ICI8ZmlsdGVyZWQ+IgotICAgICAgICB9LAotICAgICAgICAi
bWF0Y2hpbmdTZWxlY3RvcnMiOiBbCi0gICAgICAgICAgMAotICAgICAgICBdCi0gICAgICB9Ci0g
ICAgXQotICB9LAogICB7CiAgICAgInBzZXVkb0lkIjogImJlZm9yZSIsCiAgICAgIm1hdGNoZXMi
OiBbCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHls
ZXNGb3JOb2RlTWFya2VyUHNldWRvSWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2Nzcy9nZXRNYXRjaGVkU3R5bGVzRm9yTm9kZU1hcmtlclBzZXVkb0lkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNzJlMzkyYWNjOTMzNTI4MGQ3OWVlMGIwMDE2MTc4NzVjNDFkYjczCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9nZXRNYXRjaGVkU3R5
bGVzRm9yTm9kZU1hcmtlclBzZXVkb0lkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitU
ZXN0cyBmb3IgdGhlIENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlIGNvbW1hbmQgYW5kIHRoZSBg
OjptYXJrZXJgIENTUyBydWxlIHNlbGVjdG9yLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTog
Q1NTLmdldE1hdGNoZWRTdHlsZUZvck5vZGUuTWFya2VyUHNldWRvSWQKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRl
bQorUEFTUzogRXhwZWN0ZWQgZXhhY3RseSAyIHJ1bGVzIGZvciBzZWxlY3RvciBgKjo6bWFya2Vy
YC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IENTUy5nZXRNYXRjaGVkU3R5bGVGb3JOb2RlLk1h
cmtlclBzZXVkb0lkLk5vbkxpc3RJdGVtCitQQVNTOiBFeHBlY3RlZCBubyBydWxlcyBlbnRyeSBm
b3Igc2VsZWN0b3IgYCo6Om1hcmtlcmAuCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDU1MuZ2V0
TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJT
cGVjaWZpZWQKK1BBU1M6IEV4cGVjdGVkIG5vIHJ1bGVzIGVudHJ5IGZvciBzZWxlY3RvciBgKjo6
bWFya2VyYC4KK1BBU1M6IEV4cGVjdGVkIDMgcnVsZXMgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJg
LgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHls
ZXNGb3JOb2RlTWFya2VyUHNldWRvSWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jc3Mv
Z2V0TWF0Y2hlZFN0eWxlc0Zvck5vZGVNYXJrZXJQc2V1ZG9JZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgz
MWE4NGMyMjkxNDlmZTBiZWM1M2MzMTc1YWU1N2UwYjk4OTljMDEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL2dldE1hdGNoZWRTdHlsZXNGb3JOb2RlTWFya2Vy
UHNldWRvSWQuaHRtbApAQCAtMCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2Vz
L2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjaGFuZ2VF
bGVtZW50RGlzcGxheVZhbHVlKGlkLCB2YWx1ZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChpZCkuc3R5bGUuZGlzcGxheSA9IHZhbHVlOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkNTUy5nZXRN
YXRjaGVkU3R5bGVGb3JOb2RlLk1hcmtlclBzZXVkb0lkIik7CisKKyAgICBmdW5jdGlvbiBhZGRU
ZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24sIHNlbGVjdG9yLCBkb21Ob2RlU3R5bGVzSGFuZGxl
cn0pCisgICAgeworICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1l
LAorICAgICAgICAgICAgZGVzY3JpcHRpb24sCisgICAgICAgICAgICBhc3luYyB0ZXN0KCkgewor
ICAgICAgICAgICAgICAgIGxldCBkb2N1bWVudE5vZGUgPSBhd2FpdCBXSS5kb21NYW5hZ2VyLnJl
cXVlc3REb2N1bWVudCgpOworICAgICAgICAgICAgICAgIGxldCBub2RlSWQgPSBhd2FpdCBkb2N1
bWVudE5vZGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CisgICAgICAgICAgICAgICAgbGV0IGRv
bU5vZGUgPSBXSS5kb21NYW5hZ2VyLm5vZGVGb3JJZChub2RlSWQpOworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGUsIGBTaG91bGQgZmluZCBET00gTm9kZSBmb3Ig
c2VsZWN0b3IgJyR7c2VsZWN0b3J9Jy5gKTsKKworICAgICAgICAgICAgICAgIGxldCBkb21Ob2Rl
U3R5bGVzID0gV0kuY3NzTWFuYWdlci5zdHlsZXNGb3JOb2RlKGRvbU5vZGUpOworICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KGRvbU5vZGVTdHlsZXMsIGBTaG91bGQgZmluZCBD
U1MgU3R5bGVzIGZvciBET00gTm9kZS5gKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBkb21Ob2Rl
U3R5bGVzLnJlZnJlc2hJZk5lZWRlZCgpOworCisgICAgICAgICAgICAgICAgYXdhaXQgZG9tTm9k
ZVN0eWxlc0hhbmRsZXIoZG9tTm9kZVN0eWxlcyk7CisgICAgICAgICAgICB9LAorICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBhc3luYyBmdW5jdGlvbiBjaGFuZ2VFbGVtZW50RGlzcGxheVZhbHVl
KGlkLCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJ
blBhZ2UoYGNoYW5nZUVsZW1lbnREaXNwbGF5VmFsdWUoIiR7aWR9IiwgIiR7dmFsdWV9IilgKTsK
KyAgICB9CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0Y2hl
ZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5MaXN0SXRlbSIsCisgICAgICAgIGRlc2NyaXB0
aW9uOiAiQSBsaXN0IGl0ZW0gc2hvdWxkIGhhdmUgYm90aCB0aGUgVXNlciBBZ2VudCBhbmQgYXV0
aG9yZWQgYDo6bWFya2VyYCBydWxlcy4iLAorICAgICAgICBzZWxlY3RvcjogIiNsaXN0SXRlbSIs
CisgICAgICAgIGFzeW5jIGRvbU5vZGVTdHlsZXNIYW5kbGVyKHN0eWxlcykgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5leHBlY3RFcXVhbChzdHlsZXMucHNldWRvRWxlbWVudHMuZ2V0KFdJ
LkNTU01hbmFnZXIuUHNldWRvU2VsZWN0b3JOYW1lcy5NYXJrZXIpLm1hdGNoZWRSdWxlcy5sZW5n
dGgsIDIsICJFeHBlY3RlZCBleGFjdGx5IDIgcnVsZXMgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJg
LiIpOworICAgICAgICB9CisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5h
bWU6ICJDU1MuZ2V0TWF0Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRl
bSIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiQSBub24tbGlzdCBpdGVtIHNob3VsZCBoYXZlIG5v
IGA6Om1hcmtlcmAgcnVsZXMuIiwKKyAgICAgICAgc2VsZWN0b3I6ICIjbm9uTGlzdEl0ZW0iLAor
ICAgICAgICBhc3luYyBkb21Ob2RlU3R5bGVzSGFuZGxlcihzdHlsZXMpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXhwZWN0RXF1YWwoc3R5bGVzLnBzZXVkb0VsZW1lbnRzLmdldChXSS5D
U1NNYW5hZ2VyLlBzZXVkb1NlbGVjdG9yTmFtZXMuTWFya2VyKSwgdW5kZWZpbmVkLCAiRXhwZWN0
ZWQgbm8gcnVsZXMgZW50cnkgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAgICAgICB9
CisgICAgfSk7CisKKyAgICBhZGRUZXN0Q2FzZSh7CisgICAgICAgIG5hbWU6ICJDU1MuZ2V0TWF0
Y2hlZFN0eWxlRm9yTm9kZS5NYXJrZXJQc2V1ZG9JZC5Ob25MaXN0SXRlbVdpdGhNYXJrZXJTcGVj
aWZpZWQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIkEgbm9uLWxpc3QgaXRlbSB3aXRoIGEgYGJh
c2Utc2VsZWN0b3I6Om1hcmtlcmAgc3BlY2lmaWVkIHNob3VsZCBub3Qgc2hvdyB0aGUgc3BlY2lm
aWVkIHJ1bGUgdW5sZXNzIGl0IGJlY29tZXMgYSBsaXN0IGl0ZW0uIiwKKyAgICAgICAgc2VsZWN0
b3I6ICIjbm9uTGlzdEl0ZW1XaXRoTWFya2VyU3BlY2lmaWVkIiwKKyAgICAgICAgYXN5bmMgZG9t
Tm9kZVN0eWxlc0hhbmRsZXIoc3R5bGVzKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4
cGVjdEVxdWFsKHN0eWxlcy5wc2V1ZG9FbGVtZW50cy5nZXQoV0kuQ1NTTWFuYWdlci5Qc2V1ZG9T
ZWxlY3Rvck5hbWVzLk1hcmtlciksIHVuZGVmaW5lZCwgIkV4cGVjdGVkIG5vIHJ1bGVzIGVudHJ5
IGZvciBzZWxlY3RvciBgKjo6bWFya2VyYC4iKTsKKyAgICAgICAgICAgIGF3YWl0IGNoYW5nZUVs
ZW1lbnREaXNwbGF5VmFsdWUoIm5vbkxpc3RJdGVtV2l0aE1hcmtlclNwZWNpZmllZCIsICJsaXN0
LWl0ZW0iKTsKKyAgICAgICAgICAgIGF3YWl0IHN0eWxlcy5yZWZyZXNoKCk7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV4cGVjdEVxdWFsKHN0eWxlcy5wc2V1ZG9FbGVtZW50cy5nZXQoV0ku
Q1NTTWFuYWdlci5Qc2V1ZG9TZWxlY3Rvck5hbWVzLk1hcmtlcikubWF0Y2hlZFJ1bGVzLmxlbmd0
aCwgMywgIkV4cGVjdGVkIDMgcnVsZXMgZm9yIHNlbGVjdG9yIGAqOjptYXJrZXJgLiIpOworICAg
ICAgICB9CisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30K
Kzwvc2NyaXB0PgorPHN0eWxlPgorICAgIDo6bWFya2VyIHsKKyAgICAgICAgY29sb3I6IHJlZDsK
KyAgICB9CisgICAgI25vbkxpc3RJdGVtV2l0aE1hcmtlclNwZWNpZmllZDo6bWFya2VyIHsKKyAg
ICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgZm9yIHRoZSBDU1MuZ2V0TWF0Y2hlZFN0eWxl
Rm9yTm9kZSBjb21tYW5kIGFuZCB0aGUgYDo6bWFya2VyYCBDU1MgcnVsZSBzZWxlY3Rvci48L3A+
CisgICAgPHVsPgorICAgICAgICA8bGkgaWQ9Imxpc3RJdGVtIj48L2xpPgorICAgIDwvdWw+Cisg
ICAgPGRpdiBpZD0ibm9uTGlzdEl0ZW0iPjwvZGl2PgorICAgIDxkaXYgaWQ9Im5vbkxpc3RJdGVt
V2l0aE1hcmtlclNwZWNpZmllZCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>