<?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>240728</bug_id>
          
          <creation_ts>2022-05-20 13:15:03 -0700</creation_ts>
          <short_desc>[Repaint] Do not issue repaint when the ancestor layer has already been scheduled for one</short_desc>
          <delta_ts>2022-05-26 15:23:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>240721</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1870790</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 13:15:03 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870797</commentid>
    <comment_count>1</comment_count>
      <attachid>459627</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-20 13:23:30 -0700</bug_when>
    <thetext>Created attachment 459627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870825</commentid>
    <comment_count>2</comment_count>
      <attachid>459627</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-20 14:36:11 -0700</bug_when>
    <thetext>Comment on attachment 459627
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:448
&gt; +        if (hasLayer())
&gt; +            downcast&lt;RenderLayerModelObject&gt;(*this).layer()-&gt;setRepaintStatus(NeedsFullRepaint);

Just call setLayerNeedsFullRepaint()?

Why not do this in the RendererAndDescendantsRenderersWithLayers clause above too?

Does this cause more extensive repainting than we had before (e.g. when background color changes and the layer has sticking-out children)?

&gt; Source/WebCore/rendering/RenderLayer.cpp:2008
&gt; +RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf, bool* enclosingLayerNeedsFullRepaint) const

Probably nicer to return a std::pair&lt;&gt; or a struct.

&gt; Source/WebCore/rendering/RenderLayer.cpp:2028
&gt; +        if (enclosingLayerNeedsFullRepaint)
&gt; +            *enclosingLayerNeedsFullRepaint = *enclosingLayerNeedsFullRepaint || curr-&gt;needsFullRepaint();

You don&apos;t cut off the ancestor walk here if enclosingLayerNeedsFullRepaint becomes true, but I think you could if you know the caller is just going to bail on this repaint.

&gt; Source/WebCore/rendering/RenderObject.cpp:986
&gt; +    if (!repaintContainer.renderer)
&gt; +        repaintContainer = { fullRepaintIsScheduled(*this), &amp;view };

You&apos;re adding a second ancestor walk here, but can&apos;t you still use repaintContainer.fullRepaintIsScheduled? It should have the correct answer for all layers traversed, possibly other than for the RenderView&apos;s layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870988</commentid>
    <comment_count>3</comment_count>
      <attachid>459644</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-21 21:02:57 -0700</bug_when>
    <thetext>Created attachment 459644
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871038</commentid>
    <comment_count>4</comment_count>
      <attachid>459652</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-22 15:37:08 -0700</bug_when>
    <thetext>Created attachment 459652
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871039</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-22 15:38:49 -0700</bug_when>
    <thetext>This is 10% progression on Design (overall 1.2%)

https://perf.safari.apple.com/v3/#/analysis/task/10120</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871173</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-23 08:06:23 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 459627 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459627&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderElement.cpp:448
&gt; &gt; +        if (hasLayer())
&gt; &gt; +            downcast&lt;RenderLayerModelObject&gt;(*this).layer()-&gt;setRepaintStatus(NeedsFullRepaint);
&gt; 
&gt; Just call setLayerNeedsFullRepaint()?
&gt; 
&gt; Why not do this in the RendererAndDescendantsRenderersWithLayers clause
&gt; above too?
&gt; 
&gt; Does this cause more extensive repainting than we had before (e.g. when
&gt; background color changes and the layer has sticking-out children)?
&gt; 
Removed.


&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2008
&gt; &gt; +RenderLayer* RenderLayer::enclosingCompositingLayerForRepaint(IncludeSelfOrNot includeSelf, bool* enclosingLayerNeedsFullRepaint) const
&gt; 
&gt; Probably nicer to return a std::pair&lt;&gt; or a struct.
Done.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:2028
&gt; &gt; +        if (enclosingLayerNeedsFullRepaint)
&gt; &gt; +            *enclosingLayerNeedsFullRepaint = *enclosingLayerNeedsFullRepaint || curr-&gt;needsFullRepaint();
&gt; 
&gt; You don&apos;t cut off the ancestor walk here if enclosingLayerNeedsFullRepaint
&gt; becomes true, but I think you could if you know the caller is just going to
&gt; bail on this repaint.
I don&apos;t mind adding a dedicated function which bails out early when enclosingLayerNeedsFullRepaint becomes true, but currently some of the clients of this function need the actual enclosing layer regardless of the repaint status.

&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:986
&gt; &gt; +    if (!repaintContainer.renderer)
&gt; &gt; +        repaintContainer = { fullRepaintIsScheduled(*this), &amp;view };
&gt; 
&gt; You&apos;re adding a second ancestor walk here, but can&apos;t you still use
&gt; repaintContainer.fullRepaintIsScheduled? It should have the correct answer
&gt; for all layers traversed, possibly other than for the RenderView&apos;s layer.
This is (mostly) for the non-composited case when we don&apos;t even start walking the layer tree (see view().usesCompositing() in RenderObject::containerForRepaint).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871342</commentid>
    <comment_count>7</comment_count>
      <attachid>459652</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-05-23 16:22:24 -0700</bug_when>
    <thetext>Comment on attachment 459652
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:2050
&gt; +    return { false, nullptr };

Could just return { }

&gt; Source/WebCore/rendering/RenderLayer.h:594
&gt; +        bool fullRepaintIsScheduled { false };

Maybe fullRepaintAlreadyScheduled or dueForFullRepaint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871543</commentid>
    <comment_count>8</comment_count>
      <attachid>459730</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-24 12:29:48 -0700</bug_when>
    <thetext>Created attachment 459730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1871841</commentid>
    <comment_count>9</comment_count>
      <attachid>459769</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-05-25 14:45:07 -0700</bug_when>
    <thetext>Created attachment 459769
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872177</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-26 15:22:17 -0700</bug_when>
    <thetext>Committed r294902 (251025@main): &lt;https://commits.webkit.org/251025@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459769.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872179</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-26 15:23:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/93998698&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459627</attachid>
            <date>2022-05-20 13:23:30 -0700</date>
            <delta_ts>2022-05-21 21:02:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240728-20220520132329.patch</filename>
            <type>text/plain</type>
            <size>8824</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjN2E0ZjQ0Y2RkMTE5N2EyN2EwMmE3MzJmNzVlODc2NWIxNjllM2ViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDIwIE1heSAyMDIyIDEzOjE1OjE4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW1JlcGFpbnRd
IERvIG5vdCBpc3N1ZSByZXBhaW50IHdoZW4gdGhlIGFuY2VzdG9yIGxheWVyIGhhcwogYWxyZWFk
eSBiZWVuIHNjaGVkdWxlZCBmb3Igb25lIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDA3MjgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2hlbiBhIHJlbmRl
cmVyIG5lZWRzIHJlcGFpbnQsIHdlIHdhbGsgdGhlIGxheWVyIHRyZWUgdG8gc2VhcmNoIGZvciB0
aGUgcmVwYWludCBjb250YWluZXIgKHJvb3QgZm9yIGFsbCB0aGUgcGFpbnRzKS4KSWYgd2UgZmlu
ZCBhIGxheWVyIGJldHdlZW4gdGhlIHJlbmRlcmVyIGFuZCB0aGUgcmVwYWludCBjb250YWluZXIg
dGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgYSBmdWxsIHJlcGFpbnQKd2Uga25v
dyB0aGF0IHRoaXMgcmVwYWludCBpcyByZWR1bmRhbnQgYW5kIHdpbGwgYmUgY292ZXJlZCBieSB0
aGUgYW5jZXN0b3IgbGF5ZXIuClNpbmNlIGxheWVycyBwYWludCB0aGVpciBvdmVyZmxvdyBjb250
ZW50LCB0aGlzIHdvcmtzIGV2ZW4gd2hlbiB0aGUgcmVuZGVyZXIgInN0aWNrcyBvdXQiIG9mIHRo
ZSBhbmNlc3RvciBsYXllcidzIHJlbmRlcmVyJ3MgYm9yZGVyIGJveCAoaS5lLiBwcm9kdWNlcyBp
bmsvc2Nyb2xsYWJsZSBvdmVyZmxvdykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OnJlcGFpbnRCZWZvcmVTdHls
ZUNoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKFdl
YkNvcmU6OlJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCBj
b25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CihXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6bmVlZHNGdWxsUmVwYWludCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNvbnRh
aW5lckZvclJlcGFpbnQgY29uc3QpOgooV2ViQ29yZTo6ZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCk6
IFRoaXMgY292ZXJzIHRoZSBjYXNlcyB3aGVuIHRoZSBjb250ZW50IGlzIGVtYmVkZGVkIGluc2lk
ZSBhbiBpZnJhbWUgYW5kIHRoZSBpZnJhbWUncyB2aWV3IGlzIG5vdCBjb21wb3NpdGVkLgoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnRSZWN0YW5nbGUgY29uc3QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50LmNwcCB8ICAyICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwICAgfCAgNiArKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaCAgICAgfCAgMyArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAgIHwgMzIgKysrKysrKysrKysrKysrKy0tLS0tLQogNCBmaWxlcyBjaGFuZ2VkLCAzMyBp
bnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKaW5kZXggMzg4YTdjOTQ0N2I0Li42MTk1MzI4ZWE4NjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTQ0NCw2ICs0NDQs
OCBAQCBib29sIFJlbmRlckVsZW1lbnQ6OnJlcGFpbnRCZWZvcmVTdHlsZUNoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyUwogCiAgICAgaWYgKHNob3VsZFJlcGFpbnRCZWZv
cmVTdHlsZUNoYW5nZSA9PSBSZXF1aXJlZFJlcGFpbnQ6OlJlbmRlcmVyT25seSkgewogICAgICAg
ICByZXBhaW50KCk7CisgICAgICAgIGlmIChoYXNMYXllcigpKQorICAgICAgICAgICAgZG93bmNh
c3Q8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4oKnRoaXMpLmxheWVyKCktPnNldFJlcGFpbnRTdGF0
dXMoTmVlZHNGdWxsUmVwYWludCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNTE0MWY0MjE2NTQxLi5m
OGMzMzgzNWMzNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApA
QCAtMjAwNSw3ICsyMDA1LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdD
b21wb3NpdGluZ0xheWVyKEluY2x1ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3Np
dGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25zdAor
UmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVw
YWludChJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmLCBib29sKiBlbmNsb3NpbmdMYXllck5l
ZWRzRnVsbFJlcGFpbnQpIGNvbnN0CiB7CiAgICAgYXV0byByZXBhaW50VGFyZ2V0Rm9yTGF5ZXIg
PSBbXShjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpIC0+IFJlbmRlckxheWVyKiB7CiAgICAgICAg
IGlmIChjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShsYXllcikpCkBAIC0yMDE2LDEyICsy
MDE2LDE2IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdM
YXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCBpCiAgICAgICAgIAogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9OworICAgIGlmIChlbmNsb3NpbmdMYXllck5lZWRzRnVsbFJlcGFp
bnQpCisgICAgICAgICplbmNsb3NpbmdMYXllck5lZWRzRnVsbFJlcGFpbnQgPSBuZWVkc0Z1bGxS
ZXBhaW50KCk7CiAKICAgICBSZW5kZXJMYXllciogcmVwYWludFRhcmdldCA9IG51bGxwdHI7CiAg
ICAgaWYgKGluY2x1ZGVTZWxmID09IEluY2x1ZGVTZWxmICYmIChyZXBhaW50VGFyZ2V0ID0gcmVw
YWludFRhcmdldEZvckxheWVyKCp0aGlzKSkpCiAgICAgICAgIHJldHVybiByZXBhaW50VGFyZ2V0
OwogCiAgICAgZm9yIChjb25zdCBSZW5kZXJMYXllciogY3VyciA9IHBhaW50T3JkZXJQYXJlbnQo
KTsgY3VycjsgY3VyciA9IGN1cnItPnBhaW50T3JkZXJQYXJlbnQoKSkgeworICAgICAgICBpZiAo
ZW5jbG9zaW5nTGF5ZXJOZWVkc0Z1bGxSZXBhaW50KQorICAgICAgICAgICAgKmVuY2xvc2luZ0xh
eWVyTmVlZHNGdWxsUmVwYWludCA9ICplbmNsb3NpbmdMYXllck5lZWRzRnVsbFJlcGFpbnQgfHwg
Y3Vyci0+bmVlZHNGdWxsUmVwYWludCgpOwogICAgICAgICBpZiAoKHJlcGFpbnRUYXJnZXQgPSBy
ZXBhaW50VGFyZ2V0Rm9yTGF5ZXIoKmN1cnIpKSkKICAgICAgICAgICAgIHJldHVybiByZXBhaW50
VGFyZ2V0OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXgg
MzJhODQxOWNlMWI0Li4xMmY2YzU1NDVkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5oCkBAIC01OTAsNyArNTkwLDcgQEAgcHVibGljOgogCiAgICAgLy8gRW5jbG9zaW5n
IGNvbXBvc2l0aW5nIGxheWVyOyBpZiBpbmNsdWRlU2VsZiBpcyB0cnVlLCBtYXkgcmV0dXJuIHRo
aXMuCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoSW5jbHVkZVNl
bGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKLSAgICBSZW5kZXJMYXllciogZW5jbG9zaW5n
Q29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxm
KSBjb25zdDsKKyAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJl
cGFpbnQoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmLCBib29sKiBlbmNsb3NpbmdMYXll
ck5lZWRzRnVsbFJlcGFpbnQgPSBudWxscHRyKSBjb25zdDsKICAgICAvLyBBbmNlc3RvciBjb21w
b3NpdGluZyBsYXllciwgZXhjbHVkaW5nIHRoaXMuCiAgICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9y
Q29tcG9zaXRpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXIoRXhjbHVkZVNlbGYpOyB9CiAKQEAgLTcyMSw2ICs3MjEsNyBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldFJlcGFpbnRTdGF0dXMoUmVwYWludFN0YXR1cyBzdGF0dXMpIHsgbV9yZXBhaW50U3Rh
dHVzID0gc3RhdHVzOyB9CiAgICAgUmVwYWludFN0YXR1cyByZXBhaW50U3RhdHVzKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVwYWludFN0YXR1cz4obV9yZXBhaW50U3RhdHVzKTsgfQor
ICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludFN0YXR1
cyA9PSBOZWVkc0Z1bGxSZXBhaW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBOZWVkc0Z1bGxSZXBh
aW50Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0OyB9CiAKICAgICBMYXlvdXRVbml0IHN0YXRp
Y0lubGluZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRGb3JQb3NpdGlvbi53aWR0
aCgpOyB9CiAgICAgTGF5b3V0VW5pdCBzdGF0aWNCbG9ja1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1
cm4gbV9vZmZzZXRGb3JQb3NpdGlvbi5oZWlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBlYWViNDllN2Y5NmYuLmQxNDBlZjNlNzVjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTg2MCwxOSArODYw
LDIwIEBAIExheW91dFJlY3QgUmVuZGVyT2JqZWN0OjpwYWludGluZ1Jvb3RSZWN0KExheW91dFJl
Y3QmIHRvcExldmVsUmVjdCkKIFJlbmRlck9iamVjdDo6UmVwYWludENvbnRhaW5lclN0YXR1cyBS
ZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogewogICAgIFJlbmRlckxh
eWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBudWxscHRyOworICAgIGF1dG8gZnVs
bFJlcGFpbnRJc1NjaGVkdWxlZCA9IGZhbHNlOwogCiAgICAgaWYgKHZpZXcoKS51c2VzQ29tcG9z
aXRpbmcoKSkgewotICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0gZW5jbG9z
aW5nTGF5ZXIoKSkgewotICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGNvbXBMYXllciA9IHBhcmVu
dExheWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOwotICAgICAgICAg
ICAgaWYgKGNvbXBMYXllcikKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVyID0gZW5jbG9z
aW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIGNvbXBMYXllciA9IHBhcmVudExh
eWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZiwgJmZ1
bGxSZXBhaW50SXNTY2hlZHVsZWQpKQogICAgICAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIg
PSAmY29tcExheWVyLT5yZW5kZXJlcigpOwogICAgICAgICB9CiAgICAgfQogICAgIGlmICh2aWV3
KCkuaGFzU29mdHdhcmVGaWx0ZXJzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRlckxheWVyKiBwYXJl
bnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKLSAgICAgICAgICAgIFJlbmRlckxheWVyKiBl
bmNsb3NpbmdGaWx0ZXJMYXllciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdGaWx0ZXJMYXllcigp
OwotICAgICAgICAgICAgaWYgKGVuY2xvc2luZ0ZpbHRlckxheWVyKQotICAgICAgICAgICAgICAg
IHJldHVybiB7IGZhbHNlLCAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRlcmVyKCkgfTsKKyAg
ICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgeworICAgICAg
ICAgICAgaWYgKGF1dG8qIGVuY2xvc2luZ0ZpbHRlckxheWVyID0gcGFyZW50TGF5ZXItPmVuY2xv
c2luZ0ZpbHRlckxheWVyKCkpIHsKKyAgICAgICAgICAgICAgICBmdWxsUmVwYWludElzU2NoZWR1
bGVkID0gcGFyZW50TGF5ZXItPm5lZWRzRnVsbFJlcGFpbnQoKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4geyBmdWxsUmVwYWludElzU2NoZWR1bGVkLCAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJl
bmRlcmVyKCkgfTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtODg3LDcg
Kzg4OCw3IEBAIFJlbmRlck9iamVjdDo6UmVwYWludENvbnRhaW5lclN0YXR1cyBSZW5kZXJPYmpl
Y3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgICAgICBpZiAoIXJlcGFpbnRDb250
YWluZXJGcmFnbWVudGVkRmxvdyB8fCByZXBhaW50Q29udGFpbmVyRnJhZ21lbnRlZEZsb3cgIT0g
cGFyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3cpCiAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVy
ID0gcGFyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3c7CiAgICAgfQotICAgIHJldHVybiB7IGZhbHNl
LCByZXBhaW50Q29udGFpbmVyIH07CisgICAgcmV0dXJuIHsgZnVsbFJlcGFpbnRJc1NjaGVkdWxl
ZCwgcmVwYWludENvbnRhaW5lciB9OwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cHJvcGFnYXRl
UmVwYWludFRvUGFyZW50V2l0aE91dGxpbmVBdXRvSWZOZWVkZWQoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCYgcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJl
Y3QpIGNvbnN0CkBAIC05NjEsNiArOTYyLDE1IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50
VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAg
ICAgfQogfQogCitzdGF0aWMgaW5saW5lIGJvb2wgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZChjb25z
dCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIGZvciAoYXV0byogYW5jZXN0b3JMYXll
ciA9IHJlbmRlcmVyLmVuY2xvc2luZ0xheWVyKCk7IGFuY2VzdG9yTGF5ZXI7IGFuY2VzdG9yTGF5
ZXIgPSBhbmNlc3RvckxheWVyLT5wYWludE9yZGVyUGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGFu
Y2VzdG9yTGF5ZXItPm5lZWRzRnVsbFJlcGFpbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBh
aW50KCkgY29uc3QKIHsKICAgICAvLyBEb24ndCByZXBhaW50IGlmIHdlJ3JlIHVucm9vdGVkIChu
b3RlIHRoYXQgdmlldygpIHN0aWxsIHJldHVybnMgdGhlIHZpZXcgd2hlbiB1bnJvb3RlZCkKQEAg
LTk3Miw2ICs5ODIsOSBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGNvbnN0CiAgICAg
ICAgIHJldHVybjsKIAogICAgIGF1dG8gcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJl
cGFpbnQoKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIucmVuZGVyZXIpCisgICAgICAgIHJl
cGFpbnRDb250YWluZXIgPSB7IGZ1bGxSZXBhaW50SXNTY2hlZHVsZWQoKnRoaXMpLCAmdmlldyB9
OworCiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyLmZ1bGxSZXBhaW50SXNTY2hlZHVsZWQpCiAg
ICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyLCBj
bGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKSk7
CiB9CkBAIC05OTIsNiArMTAwNSw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpCiAgICAgZGly
dHlSZWN0Lm1vdmUodmlldy5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0RGVsdGEo
KSk7CiAKICAgICBhdXRvIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7
CisgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKQorICAgICAgICByZXBhaW50Q29u
dGFpbmVyID0geyBmdWxsUmVwYWludElzU2NoZWR1bGVkKCp0aGlzKSwgJnZpZXcgfTsKKwogICAg
IGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElzU2NoZWR1bGVkKQogICAgICAgICBy
ZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lci5yZW5kZXJlciwgY29tcHV0ZVJl
Y3RGb3JSZXBhaW50KGRpcnR5UmVjdCwgcmVwYWludENvbnRhaW5lci5yZW5kZXJlciksIHNob3Vs
ZENsaXBUb0xheWVyKTsKIH0KLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459644</attachid>
            <date>2022-05-21 21:02:57 -0700</date>
            <delta_ts>2022-05-22 15:37:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240728-20220521210256.patch</filename>
            <type>text/plain</type>
            <size>10688</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkYzg3ZjI5ZmIzNDRhMGU3ZWI2N2RiNzVkMTI4MTVlMDkzYWZhYWU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDIxIE1heSAyMDIyIDIwOjUzOjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW1JlcGFpbnRd
IERvIG5vdCBpc3N1ZSByZXBhaW50IHdoZW4gdGhlIGFuY2VzdG9yIGxheWVyIGhhcwogYWxyZWFk
eSBiZWVuIHNjaGVkdWxlZCBmb3Igb25lIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDA3MjgKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2hlbiBhIHJlbmRl
cmVyIG5lZWRzIHJlcGFpbnQsIHdlIHdhbGsgdGhlIGxheWVyIHRyZWUgdG8gc2VhcmNoIGZvciB0
aGUgcmVwYWludCBjb250YWluZXIgKHJvb3QgZm9yIGFsbCB0aGUgcGFpbnRzKS4KSWYgd2UgZmlu
ZCBhIGxheWVyIGJldHdlZW4gdGhlIHJlbmRlcmVyIGFuZCB0aGUgcmVwYWludCBjb250YWluZXIg
dGhhdCBoYXMgYWxyZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgYSBmdWxsIHJlcGFpbnQKd2Uga25v
dyB0aGF0IHRoaXMgcmVwYWludCBpcyByZWR1bmRhbnQgYW5kIHdpbGwgYmUgY292ZXJlZCBieSB0
aGUgYW5jZXN0b3IgbGF5ZXIuClNpbmNlIGxheWVycyBwYWludCB0aGVpciBvdmVyZmxvdyBjb250
ZW50LCB0aGlzIHdvcmtzIGV2ZW4gd2hlbiB0aGUgcmVuZGVyZXIgInN0aWNrcyBvdXQiIG9mIHRo
ZSBhbmNlc3RvciBsYXllcidzIHJlbmRlcmVyJ3MgYm9yZGVyIGJveCAoaS5lLiBwcm9kdWNlcyBp
bmsvc2Nyb2xsYWJsZSBvdmVyZmxvdykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdM
YXllckZvclJlcGFpbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNsaXBDcm9zc2Vz
UGFpbnRpbmdCb3VuZGFyeSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
Q2xpcFJlY3RzIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
aDoKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpuZWVkc0Z1bGxSZXBhaW50IGNvbnN0KToKKiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNvcmU6
OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludEluQ29tcG9zaXRlZEFuY2VzdG9yKToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6Y29udGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpmdWxsUmVwYWlu
dElzU2NoZWR1bGVkKTogVGhpcyBjb3ZlcnMgdGhlIGNhc2VzIHdoZW4gdGhlIGNvbnRlbnQgaXMg
ZW1iZWRkZWQgaW5zaWRlIGFuIGlmcmFtZSBhbmQgdGhlIGlmcmFtZSdzIHZpZXcgaXMgbm90IGNv
bXBvc2l0ZWQuCihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQgY29uc3QpOgooV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpwYWludEJv
eERlY29yYXRpb25zKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwICAgICAgfCAxNCArKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5oICAgICAgICB8ICA3ICsrKystCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAgICAgIHwgMjkgKysrKysrKysrKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMzgg
aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKaW5kZXggY2RjZDM5YjAyNmUxLi5mYThkMTc1MjdlY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjAyNCw3ICsyMDI0LDcgQEAg
UmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKEluY2x1
ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVuZGVy
TGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJ
bmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25zdAorUmVuZGVyTGF5ZXI6OkVuY2xvc2lu
Z0NvbXBvc2l0aW5nTGF5ZXJTdGF0dXMgUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5n
TGF5ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYpIGNvbnN0CiB7CiAg
ICAgYXV0byByZXBhaW50VGFyZ2V0Rm9yTGF5ZXIgPSBbXShjb25zdCBSZW5kZXJMYXllciYgbGF5
ZXIpIC0+IFJlbmRlckxheWVyKiB7CiAgICAgICAgIGlmIChjb21wb3NpdGVkV2l0aE93bkJhY2tp
bmdTdG9yZShsYXllcikpCkBAIC0yMDM2LDE2ICsyMDM2LDE4IEBAIFJlbmRlckxheWVyKiBSZW5k
ZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZP
ck5vdCBpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH07CiAKKyAgICBhdXRvIGFuY2Vz
dG9yTGF5ZXJOZWVkc0Z1bGxSZXBhaW50ID0gbmVlZHNGdWxsUmVwYWludCgpOwogICAgIFJlbmRl
ckxheWVyKiByZXBhaW50VGFyZ2V0ID0gbnVsbHB0cjsKICAgICBpZiAoaW5jbHVkZVNlbGYgPT0g
SW5jbHVkZVNlbGYgJiYgKHJlcGFpbnRUYXJnZXQgPSByZXBhaW50VGFyZ2V0Rm9yTGF5ZXIoKnRo
aXMpKSkKLSAgICAgICAgcmV0dXJuIHJlcGFpbnRUYXJnZXQ7CisgICAgICAgIHJldHVybiB7IGFu
Y2VzdG9yTGF5ZXJOZWVkc0Z1bGxSZXBhaW50LCByZXBhaW50VGFyZ2V0IH07CiAKICAgICBmb3Ig
KGNvbnN0IFJlbmRlckxheWVyKiBjdXJyID0gcGFpbnRPcmRlclBhcmVudCgpOyBjdXJyOyBjdXJy
ID0gY3Vyci0+cGFpbnRPcmRlclBhcmVudCgpKSB7CisgICAgICAgIGFuY2VzdG9yTGF5ZXJOZWVk
c0Z1bGxSZXBhaW50ID0gYW5jZXN0b3JMYXllck5lZWRzRnVsbFJlcGFpbnQgfHwgY3Vyci0+bmVl
ZHNGdWxsUmVwYWludCgpOwogICAgICAgICBpZiAoKHJlcGFpbnRUYXJnZXQgPSByZXBhaW50VGFy
Z2V0Rm9yTGF5ZXIoKmN1cnIpKSkKLSAgICAgICAgICAgIHJldHVybiByZXBhaW50VGFyZ2V0Owor
ICAgICAgICAgICAgcmV0dXJuIHsgYW5jZXN0b3JMYXllck5lZWRzRnVsbFJlcGFpbnQsIHJlcGFp
bnRUYXJnZXQgfTsKICAgICB9CiAgICAgICAgICAKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4geyBmYWxzZSwgbnVsbHB0ciB9OwogfQogCiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6
OmVuY2xvc2luZ0ZpbHRlckxheWVyKEluY2x1ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYpIGNvbnN0
CkBAIC00NjEyLDcgKzQ2MTQsNyBAQCBDbGlwUmVjdHMqIFJlbmRlckxheWVyOjpjbGlwUmVjdHMo
Y29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY29udGV4dCkgY29uc3QKIGJvb2wgUmVuZGVyTGF5ZXI6
OmNsaXBDcm9zc2VzUGFpbnRpbmdCb3VuZGFyeSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcmVu
dCgpLT5lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIoSW5jbHVkZUNvbXBvc2l0ZWRQYWdpbmF0ZWRM
YXllcnMpICE9IGVuY2xvc2luZ1BhZ2luYXRpb25MYXllcihJbmNsdWRlQ29tcG9zaXRlZFBhZ2lu
YXRlZExheWVycykKLSAgICAgICAgfHwgcGFyZW50KCktPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXJGb3JSZXBhaW50KCkgIT0gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsK
KyAgICAgICAgfHwgcGFyZW50KCktPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50
KCkubGF5ZXIgIT0gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKS5sYXllcjsK
IH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0
c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIENsaXBSZWN0cyYgY2xpcFJlY3RzKSBjb25zdApA
QCAtNTgxMSw3ICs1ODEzLDcgQEAgc3RhdGljIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0
cmVhbSYgdHMsIFJlbmRlckxheWVyOjpFdmVudFJlZ2lvbkludmFsaWRhdGkKIGJvb2wgUmVuZGVy
TGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihFdmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNv
biByZWFzb24pCiB7CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBhdXRvKiBjb21w
b3NpdGluZ0xheWVyID0gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKKyAg
ICBhdXRvKiBjb21wb3NpdGluZ0xheWVyID0gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJl
cGFpbnQoKS5sYXllcjsKIAogICAgIGF1dG8gc2hvdWxkSW52YWxpZGF0ZSA9IFsmXSB7CiAgICAg
ICAgIGlmICghY29tcG9zaXRpbmdMYXllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmgKaW5kZXggMmIzNmIyODVkMDBlLi5mMjJhNTU1MjljNTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC01OTAsNyArNTkwLDExIEBAIHB1YmxpYzoKIAogICAg
IC8vIEVuY2xvc2luZyBjb21wb3NpdGluZyBsYXllcjsgaWYgaW5jbHVkZVNlbGYgaXMgdHJ1ZSwg
bWF5IHJldHVybiB0aGlzLgogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdDb21wb3NpdGluZ0xh
eWVyKEluY2x1ZGVTZWxmT3JOb3QgPSBJbmNsdWRlU2VsZikgY29uc3Q7Ci0gICAgUmVuZGVyTGF5
ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3Qg
PSBJbmNsdWRlU2VsZikgY29uc3Q7CisgICAgc3RydWN0IEVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXJTdGF0dXMgeworICAgICAgICBib29sIGZ1bGxSZXBhaW50SXNTY2hlZHVsZWQgeyBmYWxzZSB9
OworICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgeyBudWxscHRyIH07CisgICAgfTsKKyAgICBF
bmNsb3NpbmdDb21wb3NpdGluZ0xheWVyU3RhdHVzIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJG
b3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3QgPSBJbmNsdWRlU2VsZikgY29uc3Q7CiAgICAgLy8g
QW5jZXN0b3IgY29tcG9zaXRpbmcgbGF5ZXIsIGV4Y2x1ZGluZyB0aGlzLgogICAgIFJlbmRlckxh
eWVyKiBhbmNlc3RvckNvbXBvc2l0aW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiBlbmNsb3NpbmdD
b21wb3NpdGluZ0xheWVyKEV4Y2x1ZGVTZWxmKTsgfQogCkBAIC03MjEsNiArNzI1LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRSZXBhaW50U3RhdHVzKFJlcGFpbnRTdGF0dXMgc3RhdHVzKSB7
IG1fcmVwYWludFN0YXR1cyA9IHN0YXR1czsgfQogICAgIFJlcGFpbnRTdGF0dXMgcmVwYWludFN0
YXR1cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFJlcGFpbnRTdGF0dXM+KG1fcmVwYWlu
dFN0YXR1cyk7IH0KKyAgICBib29sIG5lZWRzRnVsbFJlcGFpbnQoKSBjb25zdCB7IHJldHVybiBt
X3JlcGFpbnRTdGF0dXMgPT0gTmVlZHNGdWxsUmVwYWludCB8fCBtX3JlcGFpbnRTdGF0dXMgPT0g
TmVlZHNGdWxsUmVwYWludEZvclBvc2l0aW9uZWRNb3ZlbWVudExheW91dDsgfQogCiAgICAgTGF5
b3V0VW5pdCBzdGF0aWNJbmxpbmVQb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9y
UG9zaXRpb24ud2lkdGgoKTsgfQogICAgIExheW91dFVuaXQgc3RhdGljQmxvY2tQb3NpdGlvbigp
IGNvbnN0IHsgcmV0dXJuIG1fb2Zmc2V0Rm9yUG9zaXRpb24uaGVpZ2h0KCk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
MTk5MDRlNzI5NTA4Li41ZDY2MDUzYjhhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xOTU2LDcgKzE5NTYsNyBAQCB2
b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoUmVu
ZGVyTGF5ZXImIGxheWVyKQogLy8gVGhpcyBtZXRob2QgYXNzdW1lcyB0aGF0IGxheW91dCBpcyB1
cC10by1kYXRlLCB1bmxpa2UgcmVwYWludE9uQ29tcG9zaXRpbmdDaGFuZ2UoKS4KIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50SW5Db21wb3NpdGVkQW5jZXN0b3IoUmVuZGVyTGF5
ZXImIGxheWVyLCBjb25zdCBMYXlvdXRSZWN0JiByZWN0KQogewotICAgIGF1dG8qIGNvbXBvc2l0
ZWRBbmNlc3RvciA9IGxheWVyLmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KEV4
Y2x1ZGVTZWxmKTsKKyAgICBhdXRvKiBjb21wb3NpdGVkQW5jZXN0b3IgPSBsYXllci5lbmNsb3Np
bmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChFeGNsdWRlU2VsZikubGF5ZXI7CiAgICAgaWYg
KCFjb21wb3NpdGVkQW5jZXN0b3IpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCBlYWViNDllN2Y5NmYuLmY5ZWI0YTdmZDY4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTg2Miwx
NyArODYyLDE3IEBAIFJlbmRlck9iamVjdDo6UmVwYWludENvbnRhaW5lclN0YXR1cyBSZW5kZXJP
YmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgIFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBudWxscHRyOwogCiAgICAgaWYgKHZpZXcoKS51c2Vz
Q29tcG9zaXRpbmcoKSkgewotICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0g
ZW5jbG9zaW5nTGF5ZXIoKSkgewotICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGNvbXBMYXllciA9
IHBhcmVudExheWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOwotICAg
ICAgICAgICAgaWYgKGNvbXBMYXllcikKLSAgICAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVy
ID0gJmNvbXBMYXllci0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVy
ID0gZW5jbG9zaW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgYXV0byBjb21wTGF5ZXJTdGF0dXMg
PSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKKyAg
ICAgICAgICAgIGlmIChjb21wTGF5ZXJTdGF0dXMubGF5ZXIpCisgICAgICAgICAgICAgICAgcmVw
YWludENvbnRhaW5lciA9ICZjb21wTGF5ZXJTdGF0dXMubGF5ZXItPnJlbmRlcmVyKCk7CiAgICAg
ICAgIH0KICAgICB9CiAgICAgaWYgKHZpZXcoKS5oYXNTb2Z0d2FyZUZpbHRlcnMoKSkgewotICAg
ICAgICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0gZW5jbG9zaW5nTGF5ZXIoKSkgewot
ICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZpbHRlckxheWVyID0gcGFyZW50TGF5
ZXItPmVuY2xvc2luZ0ZpbHRlckxheWVyKCk7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRMYXll
ciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKKyAgICAgICAgICAgIGF1dG8qIGVuY2xvc2luZ0ZpbHRl
ckxheWVyID0gcGFyZW50TGF5ZXItPmVuY2xvc2luZ0ZpbHRlckxheWVyKCk7CiAgICAgICAgICAg
ICBpZiAoZW5jbG9zaW5nRmlsdGVyTGF5ZXIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIHsgZmFs
c2UsICZlbmNsb3NpbmdGaWx0ZXJMYXllci0+cmVuZGVyZXIoKSB9OworICAgICAgICAgICAgICAg
IHJldHVybiB7IHBhcmVudExheWVyLT5uZWVkc0Z1bGxSZXBhaW50KCksICZlbmNsb3NpbmdGaWx0
ZXJMYXllci0+cmVuZGVyZXIoKSB9OwogICAgICAgICB9CiAgICAgfQogCkBAIC05NjEsNiArOTYx
LDE1IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgfQogfQogCitzdGF0aWMgaW5saW5l
IGJvb2wgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQoreworICAgIGZvciAoYXV0byogYW5jZXN0b3JMYXllciA9IHJlbmRlcmVyLmVuY2xvc2luZ0xh
eWVyKCk7IGFuY2VzdG9yTGF5ZXI7IGFuY2VzdG9yTGF5ZXIgPSBhbmNlc3RvckxheWVyLT5wYWlu
dE9yZGVyUGFyZW50KCkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yTGF5ZXItPm5lZWRzRnVsbFJl
cGFpbnQoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KCkgY29uc3QKIHsKICAgICAvLyBE
b24ndCByZXBhaW50IGlmIHdlJ3JlIHVucm9vdGVkIChub3RlIHRoYXQgdmlldygpIHN0aWxsIHJl
dHVybnMgdGhlIHZpZXcgd2hlbiB1bnJvb3RlZCkKQEAgLTk3Miw2ICs5ODEsOSBAQCB2b2lkIFJl
bmRlck9iamVjdDo6cmVwYWludCgpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8g
cmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBpZiAoIXJlcGFp
bnRDb250YWluZXIucmVuZGVyZXIpCisgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSB7IGZ1bGxS
ZXBhaW50SXNTY2hlZHVsZWQoKnRoaXMpLCAmdmlldyB9OworCiAgICAgaWYgKCFyZXBhaW50Q29u
dGFpbmVyLmZ1bGxSZXBhaW50SXNTY2hlZHVsZWQpCiAgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyLCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVw
YWludChyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKSk7CiB9CkBAIC05OTIsNiArMTAwNCw5IEBA
IHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHIs
IGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpCiAgICAgZGlydHlSZWN0Lm1vdmUodmlldy5mcmFtZVZp
ZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0RGVsdGEoKSk7CiAKICAgICBhdXRvIHJlcGFpbnRD
b250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7CisgICAgaWYgKCFyZXBhaW50Q29udGFp
bmVyLnJlbmRlcmVyKQorICAgICAgICByZXBhaW50Q29udGFpbmVyID0geyBmdWxsUmVwYWludElz
U2NoZWR1bGVkKCp0aGlzKSwgJnZpZXcgfTsKKwogICAgIGlmICghcmVwYWludENvbnRhaW5lci5m
dWxsUmVwYWludElzU2NoZWR1bGVkKQogICAgICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVw
YWludENvbnRhaW5lci5yZW5kZXJlciwgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGRpcnR5UmVjdCwg
cmVwYWludENvbnRhaW5lci5yZW5kZXJlciksIHNob3VsZENsaXBUb0xheWVyKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCAwMzFiNWNlNGU5YjAuLmVkZTg2
M2YzZWQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMzgw
LDcgKzM4MCw3IEBAIHZvaWQgUmVuZGVyVmlldzo6cGFpbnRCb3hEZWNvcmF0aW9ucyhQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmKQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KIAotICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIGNvbXBvc2l0aW5nTGF5ZXIgPSBs
YXllci0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKSkgeworICAgICAgICBp
ZiAoYXV0byogY29tcG9zaXRpbmdMYXllciA9IGxheWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xh
eWVyRm9yUmVwYWludCgpLmxheWVyKSB7CiAgICAgICAgICAgICBpZiAoIWNvbXBvc2l0aW5nTGF5
ZXItPmJhY2tpbmcoKS0+cGFpbnRzSW50b1dpbmRvdygpKSB7CiAgICAgICAgICAgICAgICAgZnJh
bWVWaWV3KCkuc2V0Q2Fubm90QmxpdFRvV2luZG93KCk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0tIAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459652</attachid>
            <date>2022-05-22 15:37:08 -0700</date>
            <delta_ts>2022-05-24 12:29:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240728-20220522153707.patch</filename>
            <type>text/plain</type>
            <size>10678</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5OTRmODI5YTc4NTU5MDJjNzgwMmVjMWJmODJmMWYzYzI0Y2ZmN2QxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDIxIE1heSAyMDIyIDIwOjUzOjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGlz
c3VlIHJlcGFpbnQgd2hlbiB0aGUgYW5jZXN0b3IgbGF5ZXIgaGFzIGFscmVhZHkgYmVlbgogc2No
ZWR1bGVkIGZvciBvbmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
MDcyOAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXaGVuIGEgcmVuZGVyZXIgbmVlZHMg
cmVwYWludCwgd2Ugd2FsayB0aGUgbGF5ZXIgdHJlZSB0byBzZWFyY2ggZm9yIHRoZSByZXBhaW50
IGNvbnRhaW5lciAocm9vdCBmb3IgYWxsIHRoZSBwYWludHMpLgpJZiB3ZSBmaW5kIGEgbGF5ZXIg
YmV0d2VlbiB0aGUgcmVuZGVyZXIgYW5kIHRoZSByZXBhaW50IGNvbnRhaW5lciB0aGF0IGhhcyBh
bHJlYWR5IGJlZW4gc2NoZWR1bGVkIGZvciBhIGZ1bGwgcmVwYWludAp3ZSBrbm93IHRoYXQgdGhp
cyByZXBhaW50IGlzIHJlZHVuZGFudCBhbmQgd2lsbCBiZSBjb3ZlcmVkIGJ5IHRoZSBhbmNlc3Rv
ciBsYXllci4KU2luY2UgbGF5ZXJzIHBhaW50IHRoZWlyIG92ZXJmbG93IGNvbnRlbnQsIHRoaXMg
d29ya3MgZXZlbiB3aGVuIHRoZSByZW5kZXJlciAic3RpY2tzIG91dCIgb2YgdGhlIGFuY2VzdG9y
IGxheWVyJ3MgcmVuZGVyZXIncyBib3JkZXIgYm94IChpLmUuIHByb2R1Y2VzIGluay9zY3JvbGxh
YmxlIG92ZXJmbG93KS4KCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cDoKKFdlYkNvcmU6OlJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVw
YWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2xpcENyb3NzZXNQYWludGluZ0Jv
dW5kYXJ5IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMg
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oOgooV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6Om5lZWRzRnVsbFJlcGFpbnQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjpyZXBhaW50SW5Db21wb3NpdGVkQW5jZXN0b3IpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpj
b250YWluZXJGb3JSZXBhaW50IGNvbnN0KToKKFdlYkNvcmU6OmZ1bGxSZXBhaW50SXNTY2hlZHVs
ZWQpOiBUaGlzIGNvdmVycyB0aGUgY2FzZXMgd2hlbiB0aGUgY29udGVudCBpcyBlbWJlZGRlZCBp
bnNpZGUgYW4gaWZyYW1lIGFuZCB0aGUgaWZyYW1lJ3MgdmlldyBpcyBub3QgY29tcG9zaXRlZC4K
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJP
YmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcDoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OnBhaW50Qm94RGVjb3JhdGlv
bnMpOgotLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICB8
IDE0ICsrKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggICAg
ICAgIHwgIDcgKysrKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAg
ICAgfCAyOSArKysrKysrKysrKysrKy0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAgICAgICAgfCAgMiArLQogNSBmaWxlcyBjaGFuZ2VkLCAzOCBpbnNlcnRpb25z
KCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAppbmRleCBjZGNkMzliMDI2ZTEuLmZhOGQxNzUyN2VjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yMDI0LDcgKzIwMjQsNyBAQCBSZW5kZXJMYXll
ciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoSW5jbHVkZVNlbGZPck5v
dCBpbmNsdWRlU2VsZgogICAgIHJldHVybiBudWxscHRyOwogfQogCi1SZW5kZXJMYXllciogUmVu
ZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxm
T3JOb3QgaW5jbHVkZVNlbGYpIGNvbnN0CitSZW5kZXJMYXllcjo6RW5jbG9zaW5nQ29tcG9zaXRp
bmdMYXllclN0YXR1cyBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJl
cGFpbnQoSW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZikgY29uc3QKIHsKICAgICBhdXRvIHJl
cGFpbnRUYXJnZXRGb3JMYXllciA9IFtdKGNvbnN0IFJlbmRlckxheWVyJiBsYXllcikgLT4gUmVu
ZGVyTGF5ZXIqIHsKICAgICAgICAgaWYgKGNvbXBvc2l0ZWRXaXRoT3duQmFja2luZ1N0b3JlKGxh
eWVyKSkKQEAgLTIwMzYsMTYgKzIwMzYsMTggQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpl
bmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfTsKIAorICAgIGF1dG8gYW5jZXN0b3JMYXllck5l
ZWRzRnVsbFJlcGFpbnQgPSBuZWVkc0Z1bGxSZXBhaW50KCk7CiAgICAgUmVuZGVyTGF5ZXIqIHJl
cGFpbnRUYXJnZXQgPSBudWxscHRyOwogICAgIGlmIChpbmNsdWRlU2VsZiA9PSBJbmNsdWRlU2Vs
ZiAmJiAocmVwYWludFRhcmdldCA9IHJlcGFpbnRUYXJnZXRGb3JMYXllcigqdGhpcykpKQotICAg
ICAgICByZXR1cm4gcmVwYWludFRhcmdldDsKKyAgICAgICAgcmV0dXJuIHsgYW5jZXN0b3JMYXll
ck5lZWRzRnVsbFJlcGFpbnQsIHJlcGFpbnRUYXJnZXQgfTsKIAogICAgIGZvciAoY29uc3QgUmVu
ZGVyTGF5ZXIqIGN1cnIgPSBwYWludE9yZGVyUGFyZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5w
YWludE9yZGVyUGFyZW50KCkpIHsKKyAgICAgICAgYW5jZXN0b3JMYXllck5lZWRzRnVsbFJlcGFp
bnQgPSBhbmNlc3RvckxheWVyTmVlZHNGdWxsUmVwYWludCB8fCBjdXJyLT5uZWVkc0Z1bGxSZXBh
aW50KCk7CiAgICAgICAgIGlmICgocmVwYWludFRhcmdldCA9IHJlcGFpbnRUYXJnZXRGb3JMYXll
cigqY3VycikpKQotICAgICAgICAgICAgcmV0dXJuIHJlcGFpbnRUYXJnZXQ7CisgICAgICAgICAg
ICByZXR1cm4geyBhbmNlc3RvckxheWVyTmVlZHNGdWxsUmVwYWludCwgcmVwYWludFRhcmdldCB9
OwogICAgIH0KICAgICAgICAgIAotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiB7IGZh
bHNlLCBudWxscHRyIH07CiB9CiAKIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5n
RmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZikgY29uc3QKQEAgLTQ2MTIs
NyArNDYxNCw3IEBAIENsaXBSZWN0cyogUmVuZGVyTGF5ZXI6OmNsaXBSZWN0cyhjb25zdCBDbGlw
UmVjdHNDb250ZXh0JiBjb250ZXh0KSBjb25zdAogYm9vbCBSZW5kZXJMYXllcjo6Y2xpcENyb3Nz
ZXNQYWludGluZ0JvdW5kYXJ5KCkgY29uc3QKIHsKICAgICByZXR1cm4gcGFyZW50KCktPmVuY2xv
c2luZ1BhZ2luYXRpb25MYXllcihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycykgIT0g
ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJz
KQotICAgICAgICB8fCBwYXJlbnQoKS0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFp
bnQoKSAhPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOworICAgICAgICB8
fCBwYXJlbnQoKS0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKS5sYXllciAh
PSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpLmxheWVyOwogfQogCiB2b2lk
IFJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYg
Y2xpcFJlY3RzQ29udGV4dCwgQ2xpcFJlY3RzJiBjbGlwUmVjdHMpIGNvbnN0CkBAIC01ODExLDcg
KzU4MTMsNyBAQCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywg
UmVuZGVyTGF5ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aQogYm9vbCBSZW5kZXJMYXllcjo6aW52
YWxpZGF0ZUV2ZW50UmVnaW9uKEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHJlYXNvbikK
IHsKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGF1dG8qIGNvbXBvc2l0aW5nTGF5
ZXIgPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOworICAgIGF1dG8qIGNv
bXBvc2l0aW5nTGF5ZXIgPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpLmxh
eWVyOwogCiAgICAgYXV0byBzaG91bGRJbnZhbGlkYXRlID0gWyZdIHsKICAgICAgICAgaWYgKCFj
b21wb3NpdGluZ0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCAyYjM2YjI4NWQwMGUuLmYyMmE1NTUyOWM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKQEAgLTU5MCw3ICs1OTAsMTEgQEAgcHVibGljOgogCiAgICAgLy8gRW5jbG9z
aW5nIGNvbXBvc2l0aW5nIGxheWVyOyBpZiBpbmNsdWRlU2VsZiBpcyB0cnVlLCBtYXkgcmV0dXJu
IHRoaXMuCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoSW5jbHVk
ZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKLSAgICBSZW5kZXJMYXllciogZW5jbG9z
aW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVT
ZWxmKSBjb25zdDsKKyAgICBzdHJ1Y3QgRW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllclN0YXR1cyB7
CisgICAgICAgIGJvb2wgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCB7IGZhbHNlIH07CisgICAgICAg
IFJlbmRlckxheWVyKiBsYXllciB7IG51bGxwdHIgfTsKKyAgICB9OworICAgIEVuY2xvc2luZ0Nv
bXBvc2l0aW5nTGF5ZXJTdGF0dXMgZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQo
SW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKICAgICAvLyBBbmNlc3RvciBj
b21wb3NpdGluZyBsYXllciwgZXhjbHVkaW5nIHRoaXMuCiAgICAgUmVuZGVyTGF5ZXIqIGFuY2Vz
dG9yQ29tcG9zaXRpbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIGVuY2xvc2luZ0NvbXBvc2l0aW5n
TGF5ZXIoRXhjbHVkZVNlbGYpOyB9CiAKQEAgLTcyMSw2ICs3MjUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldFJlcGFpbnRTdGF0dXMoUmVwYWludFN0YXR1cyBzdGF0dXMpIHsgbV9yZXBhaW50
U3RhdHVzID0gc3RhdHVzOyB9CiAgICAgUmVwYWludFN0YXR1cyByZXBhaW50U3RhdHVzKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8UmVwYWludFN0YXR1cz4obV9yZXBhaW50U3RhdHVzKTsg
fQorICAgIGJvb2wgbmVlZHNGdWxsUmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludFN0
YXR1cyA9PSBOZWVkc0Z1bGxSZXBhaW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBOZWVkc0Z1bGxS
ZXBhaW50Rm9yUG9zaXRpb25lZE1vdmVtZW50TGF5b3V0OyB9CiAKICAgICBMYXlvdXRVbml0IHN0
YXRpY0lubGluZVBvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRGb3JQb3NpdGlvbi53
aWR0aCgpOyB9CiAgICAgTGF5b3V0VW5pdCBzdGF0aWNCbG9ja1Bvc2l0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9vZmZzZXRGb3JQb3NpdGlvbi5oZWlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAxOTkwNGU3Mjk1
MDguLjVkNjYwNTNiOGEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTE5NTYsNyArMTk1Niw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZShSZW5kZXJMYXllciYg
bGF5ZXIpCiAvLyBUaGlzIG1ldGhvZCBhc3N1bWVzIHRoYXQgbGF5b3V0IGlzIHVwLXRvLWRhdGUs
IHVubGlrZSByZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZSgpLgogdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OnJlcGFpbnRJbkNvbXBvc2l0ZWRBbmNlc3RvcihSZW5kZXJMYXllciYgbGF5ZXIs
IGNvbnN0IExheW91dFJlY3QmIHJlY3QpCiB7Ci0gICAgYXV0byogY29tcG9zaXRlZEFuY2VzdG9y
ID0gbGF5ZXIuZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoRXhjbHVkZVNlbGYp
OworICAgIGF1dG8qIGNvbXBvc2l0ZWRBbmNlc3RvciA9IGxheWVyLmVuY2xvc2luZ0NvbXBvc2l0
aW5nTGF5ZXJGb3JSZXBhaW50KEV4Y2x1ZGVTZWxmKS5sYXllcjsKICAgICBpZiAoIWNvbXBvc2l0
ZWRBbmNlc3RvcikKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCmluZGV4IGVhZWI0OWU3Zjk2Zi4uZjllYjRhN2ZkNjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtODYyLDE3ICs4NjIsMTcg
QEAgUmVuZGVyT2JqZWN0OjpSZXBhaW50Q29udGFpbmVyU3RhdHVzIFJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCgpIGNvbnN0CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciA9IG51bGxwdHI7CiAKICAgICBpZiAodmlldygpLnVzZXNDb21wb3NpdGlu
ZygpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdM
YXllcigpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciogY29tcExheWVyID0gcGFyZW50TGF5
ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCk7Ci0gICAgICAgICAgICBp
ZiAoY29tcExheWVyKQotICAgICAgICAgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSAmY29tcExh
eWVyLT5yZW5kZXJlcigpOworICAgICAgICBpZiAoYXV0byogcGFyZW50TGF5ZXIgPSBlbmNsb3Np
bmdMYXllcigpKSB7CisgICAgICAgICAgICBhdXRvIGNvbXBMYXllclN0YXR1cyA9IHBhcmVudExh
eWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOworICAgICAgICAgICAg
aWYgKGNvbXBMYXllclN0YXR1cy5sYXllcikKKyAgICAgICAgICAgICAgICByZXBhaW50Q29udGFp
bmVyID0gJmNvbXBMYXllclN0YXR1cy5sYXllci0+cmVuZGVyZXIoKTsKICAgICAgICAgfQogICAg
IH0KICAgICBpZiAodmlldygpLmhhc1NvZnR3YXJlRmlsdGVycygpKSB7Ci0gICAgICAgIGlmIChS
ZW5kZXJMYXllciogcGFyZW50TGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7Ci0gICAgICAgICAg
ICBSZW5kZXJMYXllciogZW5jbG9zaW5nRmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9z
aW5nRmlsdGVyTGF5ZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVyID0gZW5jbG9z
aW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgYXV0byogZW5jbG9zaW5nRmlsdGVyTGF5ZXIgPSBw
YXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKICAgICAgICAgICAgIGlmIChlbmNs
b3NpbmdGaWx0ZXJMYXllcikKLSAgICAgICAgICAgICAgICByZXR1cm4geyBmYWxzZSwgJmVuY2xv
c2luZ0ZpbHRlckxheWVyLT5yZW5kZXJlcigpIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIHsg
cGFyZW50TGF5ZXItPm5lZWRzRnVsbFJlcGFpbnQoKSwgJmVuY2xvc2luZ0ZpbHRlckxheWVyLT5y
ZW5kZXJlcigpIH07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTk2MSw2ICs5NjEsMTUgQEAgdm9p
ZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0KiByZXBhaW50Q28KICAgICB9CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdWxs
UmVwYWludElzU2NoZWR1bGVkKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCit7CisgICAg
Zm9yIChhdXRvKiBhbmNlc3RvckxheWVyID0gcmVuZGVyZXIuZW5jbG9zaW5nTGF5ZXIoKTsgYW5j
ZXN0b3JMYXllcjsgYW5jZXN0b3JMYXllciA9IGFuY2VzdG9yTGF5ZXItPnBhaW50T3JkZXJQYXJl
bnQoKSkgeworICAgICAgICBpZiAoYW5jZXN0b3JMYXllci0+bmVlZHNGdWxsUmVwYWludCgpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
dm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBjb25zdAogewogICAgIC8vIERvbid0IHJlcGFp
bnQgaWYgd2UncmUgdW5yb290ZWQgKG5vdGUgdGhhdCB2aWV3KCkgc3RpbGwgcmV0dXJucyB0aGUg
dmlldyB3aGVuIHVucm9vdGVkKQpAQCAtOTcyLDYgKzk4MSw5IEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpyZXBhaW50KCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgYXV0byByZXBhaW50Q29u
dGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAgIGlmICghcmVwYWludENvbnRhaW5l
ci5yZW5kZXJlcikKKyAgICAgICAgcmVwYWludENvbnRhaW5lciA9IHsgZnVsbFJlcGFpbnRJc1Nj
aGVkdWxlZCgqdGhpcyksICZ2aWV3IH07CisKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIuZnVs
bFJlcGFpbnRJc1NjaGVkdWxlZCkKICAgICAgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFp
bnRDb250YWluZXIucmVuZGVyZXIsIGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlcGFp
bnRDb250YWluZXIucmVuZGVyZXIpKTsKIH0KQEAgLTk5Miw2ICsxMDA0LDkgQEAgdm9pZCBSZW5k
ZXJPYmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCBzaG91
bGRDbGlwVG9MYXllcikKICAgICBkaXJ0eVJlY3QubW92ZSh2aWV3LmZyYW1lVmlldygpLmxheW91
dENvbnRleHQoKS5sYXlvdXREZWx0YSgpKTsKIAogICAgIGF1dG8gcmVwYWludENvbnRhaW5lciA9
IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBpZiAoIXJlcGFpbnRDb250YWluZXIucmVuZGVy
ZXIpCisgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSB7IGZ1bGxSZXBhaW50SXNTY2hlZHVsZWQo
KnRoaXMpLCAmdmlldyB9OworCiAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyLmZ1bGxSZXBhaW50
SXNTY2hlZHVsZWQpCiAgICAgICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyLnJlbmRlcmVyLCBjb21wdXRlUmVjdEZvclJlcGFpbnQoZGlydHlSZWN0LCByZXBhaW50Q29u
dGFpbmVyLnJlbmRlcmVyKSwgc2hvdWxkQ2xpcFRvTGF5ZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDAzMWI1Y2U0ZTliMC4uZWRlODYzZjNlZDY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC0zODAsNyArMzgwLDcg
QEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25zKFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgICAgIGlmIChSZW5kZXJMYXllciogY29tcG9zaXRpbmdMYXllciA9IGxheWVyLT5lbmNs
b3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpKSB7CisgICAgICAgIGlmIChhdXRvKiBj
b21wb3NpdGluZ0xheWVyID0gbGF5ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBh
aW50KCkubGF5ZXIpIHsKICAgICAgICAgICAgIGlmICghY29tcG9zaXRpbmdMYXllci0+YmFja2lu
ZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsKICAgICAgICAgICAgICAgICBmcmFtZVZpZXcoKS5z
ZXRDYW5ub3RCbGl0VG9XaW5kb3coKTsKICAgICAgICAgICAgICAgICBicmVhazsKLS0gCjIuMzIu
MCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459730</attachid>
            <date>2022-05-24 12:29:48 -0700</date>
            <delta_ts>2022-05-25 14:45:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240728-20220524122948.patch</filename>
            <type>text/plain</type>
            <size>11668</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MTZhMjg0ZTVlNzFmMjQyNjcwNTIyZGI2OWQ3NzI5NDhlZDEyNWE1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDIxIE1heSAyMDIyIDIwOjUzOjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGlz
c3VlIHJlcGFpbnQgd2hlbiB0aGUgYW5jZXN0b3IgbGF5ZXIgaGFzIGFscmVhZHkgYmVlbgogc2No
ZWR1bGVkIGZvciBvbmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
MDcyOAoKUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgoKV2hlbiBhIHJlbmRlcmVyIG5lZWRzIHJl
cGFpbnQsIHdlIHdhbGsgdGhlIGxheWVyIHRyZWUgdG8gc2VhcmNoIGZvciB0aGUgcmVwYWludCBj
b250YWluZXIgKHJvb3QgZm9yIGFsbCB0aGUgcGFpbnRzKS4KSWYgd2UgZmluZCBhIGxheWVyIGJl
dHdlZW4gdGhlIHJlbmRlcmVyIGFuZCB0aGUgcmVwYWludCBjb250YWluZXIgdGhhdCBoYXMgYWxy
ZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgYSBmdWxsIHJlcGFpbnQKd2Uga25vdyB0aGF0IHRoaXMg
cmVwYWludCBpcyByZWR1bmRhbnQgYW5kIHdpbGwgYmUgY292ZXJlZCBieSB0aGUgYW5jZXN0b3Ig
bGF5ZXIuClNpbmNlIGxheWVycyBwYWludCB0aGVpciBvdmVyZmxvdyBjb250ZW50LCB0aGlzIHdv
cmtzIGV2ZW4gd2hlbiB0aGUgcmVuZGVyZXIgInN0aWNrcyBvdXQiIG9mIHRoZSBhbmNlc3RvciBs
YXllcidzIHJlbmRlcmVyJ3MgYm9yZGVyIGJveCAoaS5lLiBwcm9kdWNlcyBpbmsvc2Nyb2xsYWJs
ZSBvdmVyZmxvdykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFp
bnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNsaXBDcm9zc2VzUGFpbnRpbmdCb3Vu
ZGFyeSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpuZWVkc0Z1bGxSZXBhaW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVwYWludEluQ29tcG9zaXRlZEFuY2VzdG9yKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpmdWxsUmVwYWludElzU2NoZWR1bGVk
KTogVGhpcyBjb3ZlcnMgdGhlIGNhc2VzIHdoZW4gdGhlIGNvbnRlbnQgaXMgZW1iZWRkZWQgaW5z
aWRlIGFuIGlmcmFtZSBhbmQgdGhlIGlmcmFtZSdzIHZpZXcgaXMgbm90IGNvbXBvc2l0ZWQuCihX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHA6CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25z
KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAx
NCArKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAg
fCAgNyArKystCiAuLi4vcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgICAgICAg
fCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwg
NDAgKysrKysrKysrKysrKystLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuY3BwICAgICAgIHwgIDIgKy0KIDUgZmlsZXMgY2hhbmdlZCwgNDcgaW5zZXJ0aW9ucygrKSwg
MTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
aW5kZXggY2RjZDM5YjAyNmUxLi5jZjM4YjJiY2EwNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjAyNCw3ICsyMDI0LDcgQEAgUmVuZGVyTGF5ZXIqIFJl
bmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKEluY2x1ZGVTZWxmT3JOb3QgaW5j
bHVkZVNlbGYKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotUmVuZGVyTGF5ZXIqIFJlbmRlckxh
eWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90
IGluY2x1ZGVTZWxmKSBjb25zdAorUmVuZGVyTGF5ZXI6OkVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5
ZXJTdGF0dXMgUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50
KEluY2x1ZGVTZWxmT3JOb3QgaW5jbHVkZVNlbGYpIGNvbnN0CiB7CiAgICAgYXV0byByZXBhaW50
VGFyZ2V0Rm9yTGF5ZXIgPSBbXShjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIpIC0+IFJlbmRlckxh
eWVyKiB7CiAgICAgICAgIGlmIChjb21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShsYXllcikp
CkBAIC0yMDM2LDE2ICsyMDM2LDE4IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9z
aW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCBpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH07CiAKKyAgICBhdXRvIGFuY2VzdG9yTGF5ZXJOZWVkc0Z1
bGxSZXBhaW50ID0gbmVlZHNGdWxsUmVwYWludCgpOwogICAgIFJlbmRlckxheWVyKiByZXBhaW50
VGFyZ2V0ID0gbnVsbHB0cjsKICAgICBpZiAoaW5jbHVkZVNlbGYgPT0gSW5jbHVkZVNlbGYgJiYg
KHJlcGFpbnRUYXJnZXQgPSByZXBhaW50VGFyZ2V0Rm9yTGF5ZXIoKnRoaXMpKSkKLSAgICAgICAg
cmV0dXJuIHJlcGFpbnRUYXJnZXQ7CisgICAgICAgIHJldHVybiB7IGFuY2VzdG9yTGF5ZXJOZWVk
c0Z1bGxSZXBhaW50LCByZXBhaW50VGFyZ2V0IH07CiAKICAgICBmb3IgKGNvbnN0IFJlbmRlckxh
eWVyKiBjdXJyID0gcGFpbnRPcmRlclBhcmVudCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+cGFpbnRP
cmRlclBhcmVudCgpKSB7CisgICAgICAgIGFuY2VzdG9yTGF5ZXJOZWVkc0Z1bGxSZXBhaW50ID0g
YW5jZXN0b3JMYXllck5lZWRzRnVsbFJlcGFpbnQgfHwgY3Vyci0+bmVlZHNGdWxsUmVwYWludCgp
OwogICAgICAgICBpZiAoKHJlcGFpbnRUYXJnZXQgPSByZXBhaW50VGFyZ2V0Rm9yTGF5ZXIoKmN1
cnIpKSkKLSAgICAgICAgICAgIHJldHVybiByZXBhaW50VGFyZ2V0OworICAgICAgICAgICAgcmV0
dXJuIHsgYW5jZXN0b3JMYXllck5lZWRzRnVsbFJlcGFpbnQsIHJlcGFpbnRUYXJnZXQgfTsKICAg
ICB9CiAgICAgICAgICAKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4geyB9OwogfQog
CiBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0ZpbHRlckxheWVyKEluY2x1ZGVT
ZWxmT3JOb3QgaW5jbHVkZVNlbGYpIGNvbnN0CkBAIC00NjEyLDcgKzQ2MTQsNyBAQCBDbGlwUmVj
dHMqIFJlbmRlckxheWVyOjpjbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKIGJvb2wgUmVuZGVyTGF5ZXI6OmNsaXBDcm9zc2VzUGFpbnRpbmdCb3VuZGFyeSgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIHBhcmVudCgpLT5lbmNsb3NpbmdQYWdpbmF0aW9uTGF5ZXIo
SW5jbHVkZUNvbXBvc2l0ZWRQYWdpbmF0ZWRMYXllcnMpICE9IGVuY2xvc2luZ1BhZ2luYXRpb25M
YXllcihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycykKLSAgICAgICAgfHwgcGFyZW50
KCktPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCkgIT0gZW5jbG9zaW5nQ29t
cG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKKyAgICAgICAgfHwgcGFyZW50KCktPmVuY2xvc2lu
Z0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCkubGF5ZXIgIT0gZW5jbG9zaW5nQ29tcG9zaXRp
bmdMYXllckZvclJlcGFpbnQoKS5sYXllcjsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3Vs
YXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIENs
aXBSZWN0cyYgY2xpcFJlY3RzKSBjb25zdApAQCAtNTgxMSw3ICs1ODEzLDcgQEAgc3RhdGljIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIFJlbmRlckxheWVyOjpFdmVudFJl
Z2lvbkludmFsaWRhdGkKIGJvb2wgUmVuZGVyTGF5ZXI6OmludmFsaWRhdGVFdmVudFJlZ2lvbihF
dmVudFJlZ2lvbkludmFsaWRhdGlvblJlYXNvbiByZWFzb24pCiB7CiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKLSAgICBhdXRvKiBjb21wb3NpdGluZ0xheWVyID0gZW5jbG9zaW5nQ29tcG9z
aXRpbmdMYXllckZvclJlcGFpbnQoKTsKKyAgICBhdXRvKiBjb21wb3NpdGluZ0xheWVyID0gZW5j
bG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKS5sYXllcjsKIAogICAgIGF1dG8gc2hv
dWxkSW52YWxpZGF0ZSA9IFsmXSB7CiAgICAgICAgIGlmICghY29tcG9zaXRpbmdMYXllcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMmIzNmIyODVkMDBlLi4wMTNk
ZWZkMjYwMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC01OTAs
NyArNTkwLDExIEBAIHB1YmxpYzoKIAogICAgIC8vIEVuY2xvc2luZyBjb21wb3NpdGluZyBsYXll
cjsgaWYgaW5jbHVkZVNlbGYgaXMgdHJ1ZSwgbWF5IHJldHVybiB0aGlzLgogICAgIFJlbmRlckxh
eWVyKiBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyKEluY2x1ZGVTZWxmT3JOb3QgPSBJbmNsdWRl
U2VsZikgY29uc3Q7Ci0gICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJG
b3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3QgPSBJbmNsdWRlU2VsZikgY29uc3Q7CisgICAgc3Ry
dWN0IEVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJTdGF0dXMgeworICAgICAgICBib29sIGZ1bGxS
ZXBhaW50QWxyZWFkeVNjaGVkdWxlZCB7IGZhbHNlIH07CisgICAgICAgIFJlbmRlckxheWVyKiBs
YXllciB7IG51bGxwdHIgfTsKKyAgICB9OworICAgIEVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJT
dGF0dXMgZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5v
dCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKICAgICAvLyBBbmNlc3RvciBjb21wb3NpdGluZyBsYXll
ciwgZXhjbHVkaW5nIHRoaXMuCiAgICAgUmVuZGVyTGF5ZXIqIGFuY2VzdG9yQ29tcG9zaXRpbmdM
YXllcigpIGNvbnN0IHsgcmV0dXJuIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoRXhjbHVkZVNl
bGYpOyB9CiAKQEAgLTcyMSw2ICs3MjUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFJlcGFp
bnRTdGF0dXMoUmVwYWludFN0YXR1cyBzdGF0dXMpIHsgbV9yZXBhaW50U3RhdHVzID0gc3RhdHVz
OyB9CiAgICAgUmVwYWludFN0YXR1cyByZXBhaW50U3RhdHVzKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8UmVwYWludFN0YXR1cz4obV9yZXBhaW50U3RhdHVzKTsgfQorICAgIGJvb2wgbmVl
ZHNGdWxsUmVwYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVwYWludFN0YXR1cyA9PSBOZWVkc0Z1
bGxSZXBhaW50IHx8IG1fcmVwYWludFN0YXR1cyA9PSBOZWVkc0Z1bGxSZXBhaW50Rm9yUG9zaXRp
b25lZE1vdmVtZW50TGF5b3V0OyB9CiAKICAgICBMYXlvdXRVbml0IHN0YXRpY0lubGluZVBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRGb3JQb3NpdGlvbi53aWR0aCgpOyB9CiAgICAg
TGF5b3V0VW5pdCBzdGF0aWNCbG9ja1Bvc2l0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vZmZzZXRG
b3JQb3NpdGlvbi5oZWlnaHQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAxOTkwNGU3Mjk1MDguLjVkNjYwNTNiOGEw
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAKQEAgLTE5NTYsNyArMTk1Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpyZXBhaW50T25Db21wb3NpdGluZ0NoYW5nZShSZW5kZXJMYXllciYgbGF5ZXIpCiAvLyBUaGlz
IG1ldGhvZCBhc3N1bWVzIHRoYXQgbGF5b3V0IGlzIHVwLXRvLWRhdGUsIHVubGlrZSByZXBhaW50
T25Db21wb3NpdGluZ0NoYW5nZSgpLgogdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnJlcGFp
bnRJbkNvbXBvc2l0ZWRBbmNlc3RvcihSZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IExheW91dFJl
Y3QmIHJlY3QpCiB7Ci0gICAgYXV0byogY29tcG9zaXRlZEFuY2VzdG9yID0gbGF5ZXIuZW5jbG9z
aW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoRXhjbHVkZVNlbGYpOworICAgIGF1dG8qIGNv
bXBvc2l0ZWRBbmNlc3RvciA9IGxheWVyLmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBh
aW50KEV4Y2x1ZGVTZWxmKS5sYXllcjsKICAgICBpZiAoIWNvbXBvc2l0ZWRBbmNlc3RvcikKICAg
ICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CmluZGV4IGVhZWI0OWU3Zjk2Zi4uMTc1ZjkwMTgyNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtODYwLDE5ICs4NjAsMjQgQEAgTGF5b3V0UmVjdCBS
ZW5kZXJPYmplY3Q6OnBhaW50aW5nUm9vdFJlY3QoTGF5b3V0UmVjdCYgdG9wTGV2ZWxSZWN0KQog
UmVuZGVyT2JqZWN0OjpSZXBhaW50Q29udGFpbmVyU3RhdHVzIFJlbmRlck9iamVjdDo6Y29udGFp
bmVyRm9yUmVwYWludCgpIGNvbnN0CiB7CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvbnRhaW5lciA9IG51bGxwdHI7CisgICAgYXV0byBmdWxsUmVwYWludEFscmVhZHlTY2hl
ZHVsZWQgPSBmYWxzZTsKIAogICAgIGlmICh2aWV3KCkudXNlc0NvbXBvc2l0aW5nKCkpIHsKLSAg
ICAgICAgaWYgKFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsK
LSAgICAgICAgICAgIFJlbmRlckxheWVyKiBjb21wTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9z
aW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKLSAgICAgICAgICAgIGlmIChjb21wTGF5
ZXIpCi0gICAgICAgICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZjb21wTGF5ZXItPnJlbmRl
cmVyKCk7CisgICAgICAgIGlmIChhdXRvKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkp
IHsKKyAgICAgICAgICAgIGF1dG8gY29tcExheWVyU3RhdHVzID0gcGFyZW50TGF5ZXItPmVuY2xv
c2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCk7CisgICAgICAgICAgICBpZiAoY29tcExh
eWVyU3RhdHVzLmxheWVyKSB7CisgICAgICAgICAgICAgICAgcmVwYWludENvbnRhaW5lciA9ICZj
b21wTGF5ZXJTdGF0dXMubGF5ZXItPnJlbmRlcmVyKCk7CisgICAgICAgICAgICAgICAgZnVsbFJl
cGFpbnRBbHJlYWR5U2NoZWR1bGVkID0gY29tcExheWVyU3RhdHVzLmZ1bGxSZXBhaW50QWxyZWFk
eVNjaGVkdWxlZDsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICBpZiAodmll
dygpLmhhc1NvZnR3YXJlRmlsdGVycygpKSB7Ci0gICAgICAgIGlmIChSZW5kZXJMYXllciogcGFy
ZW50TGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7Ci0gICAgICAgICAgICBSZW5kZXJMYXllciog
ZW5jbG9zaW5nRmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXllci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIo
KTsKLSAgICAgICAgICAgIGlmIChlbmNsb3NpbmdGaWx0ZXJMYXllcikKLSAgICAgICAgICAgICAg
ICByZXR1cm4geyBmYWxzZSwgJmVuY2xvc2luZ0ZpbHRlckxheWVyLT5yZW5kZXJlcigpIH07Cisg
ICAgICAgIGlmIChhdXRvKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8qIGVuY2xvc2luZ0ZpbHRlckxheWVyID0gcGFyZW50TGF5ZXItPmVuY2xvc2lu
Z0ZpbHRlckxheWVyKCk7CisgICAgICAgICAgICBpZiAoZW5jbG9zaW5nRmlsdGVyTGF5ZXIpIHsK
KyAgICAgICAgICAgICAgICBmdWxsUmVwYWludEFscmVhZHlTY2hlZHVsZWQgPSBwYXJlbnRMYXll
ci0+bmVlZHNGdWxsUmVwYWludCgpOworICAgICAgICAgICAgICAgIHJldHVybiB7IGZ1bGxSZXBh
aW50QWxyZWFkeVNjaGVkdWxlZCwgJmVuY2xvc2luZ0ZpbHRlckxheWVyLT5yZW5kZXJlcigpIH07
CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTg4Nyw3ICs4OTIsNyBAQCBS
ZW5kZXJPYmplY3Q6OlJlcGFpbnRDb250YWluZXJTdGF0dXMgUmVuZGVyT2JqZWN0Ojpjb250YWlu
ZXJGb3JSZXBhaW50KCkgY29uc3QKICAgICAgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyRnJhZ21l
bnRlZEZsb3cgfHwgcmVwYWludENvbnRhaW5lckZyYWdtZW50ZWRGbG93ICE9IHBhcmVudFJlbmRl
ckZyYWdtZW50ZWRGbG93KQogICAgICAgICAgICAgcmVwYWludENvbnRhaW5lciA9IHBhcmVudFJl
bmRlckZyYWdtZW50ZWRGbG93OwogICAgIH0KLSAgICByZXR1cm4geyBmYWxzZSwgcmVwYWludENv
bnRhaW5lciB9OworICAgIHJldHVybiB7IGZ1bGxSZXBhaW50QWxyZWFkeVNjaGVkdWxlZCwgcmVw
YWludENvbnRhaW5lciB9OwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cHJvcGFnYXRlUmVwYWlu
dFRvUGFyZW50V2l0aE91dGxpbmVBdXRvSWZOZWVkZWQoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdCYgcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpIGNv
bnN0CkBAIC05NjEsNiArOTY2LDE3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdD
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgfQog
fQogCitzdGF0aWMgaW5saW5lIGJvb2wgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZChjb25zdCBSZW5k
ZXJPYmplY3QmIHJlbmRlcmVyKQoreworICAgIGlmICghcmVuZGVyZXIudmlldygpLnVzZXNDb21w
b3NpdGluZygpICYmICFyZW5kZXJlci5kb2N1bWVudCgpLm93bmVyRWxlbWVudCgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgZm9yIChhdXRvKiBhbmNlc3RvckxheWVyID0gcmVuZGVyZXIu
ZW5jbG9zaW5nTGF5ZXIoKTsgYW5jZXN0b3JMYXllcjsgYW5jZXN0b3JMYXllciA9IGFuY2VzdG9y
TGF5ZXItPnBhaW50T3JkZXJQYXJlbnQoKSkgeworICAgICAgICBpZiAoYW5jZXN0b3JMYXllci0+
bmVlZHNGdWxsUmVwYWludCgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBjb25zdAog
ewogICAgIC8vIERvbid0IHJlcGFpbnQgaWYgd2UncmUgdW5yb290ZWQgKG5vdGUgdGhhdCB2aWV3
KCkgc3RpbGwgcmV0dXJucyB0aGUgdmlldyB3aGVuIHVucm9vdGVkKQpAQCAtOTcyLDYgKzk4OCw5
IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KCkgY29uc3QKICAgICAgICAgcmV0dXJuOwog
CiAgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOworICAg
IGlmICghcmVwYWludENvbnRhaW5lci5yZW5kZXJlcikKKyAgICAgICAgcmVwYWludENvbnRhaW5l
ciA9IHsgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCgqdGhpcyksICZ2aWV3IH07CisKICAgICBpZiAo
IXJlcGFpbnRDb250YWluZXIuZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCkKICAgICAgICAgcmVwYWlu
dFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIsIGNsaXBwZWRPdmVyZmxv
d1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIpKTsKIH0KQEAgLTk5Miw2
ICsxMDExLDkgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5
b3V0UmVjdCYgciwgYm9vbCBzaG91bGRDbGlwVG9MYXllcikKICAgICBkaXJ0eVJlY3QubW92ZSh2
aWV3LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXREZWx0YSgpKTsKIAogICAgIGF1
dG8gcmVwYWludENvbnRhaW5lciA9IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKKyAgICBpZiAoIXJl
cGFpbnRDb250YWluZXIucmVuZGVyZXIpCisgICAgICAgIHJlcGFpbnRDb250YWluZXIgPSB7IGZ1
bGxSZXBhaW50SXNTY2hlZHVsZWQoKnRoaXMpLCAmdmlldyB9OworCiAgICAgaWYgKCFyZXBhaW50
Q29udGFpbmVyLmZ1bGxSZXBhaW50SXNTY2hlZHVsZWQpCiAgICAgICAgIHJlcGFpbnRVc2luZ0Nv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyLCBjb21wdXRlUmVjdEZvclJlcGFpbnQo
ZGlydHlSZWN0LCByZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKSwgc2hvdWxkQ2xpcFRvTGF5ZXIp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDAzMWI1Y2U0
ZTliMC4uZWRlODYzZjNlZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC0zODAsNyArMzgwLDcgQEAgdm9pZCBSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRp
b25zKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYpCiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChSZW5kZXJMYXllciogY29tcG9zaXRp
bmdMYXllciA9IGxheWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpKSB7
CisgICAgICAgIGlmIChhdXRvKiBjb21wb3NpdGluZ0xheWVyID0gbGF5ZXItPmVuY2xvc2luZ0Nv
bXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KCkubGF5ZXIpIHsKICAgICAgICAgICAgIGlmICghY29t
cG9zaXRpbmdMYXllci0+YmFja2luZygpLT5wYWludHNJbnRvV2luZG93KCkpIHsKICAgICAgICAg
ICAgICAgICBmcmFtZVZpZXcoKS5zZXRDYW5ub3RCbGl0VG9XaW5kb3coKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKLS0gCjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459769</attachid>
            <date>2022-05-25 14:45:07 -0700</date>
            <delta_ts>2022-05-26 15:22:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240728-20220525144506.patch</filename>
            <type>text/plain</type>
            <size>11964</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjMjdkMjJlZGQyMmU5OTBlNzJjM2RjOTA3MDUxN2E4NjdkMzVkZDM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDIxIE1heSAyMDIyIDIwOjUzOjIxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gRG8gbm90IGlz
c3VlIHJlcGFpbnQgd2hlbiB0aGUgYW5jZXN0b3IgbGF5ZXIgaGFzIGFscmVhZHkgYmVlbgogc2No
ZWR1bGVkIGZvciBvbmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0
MDcyOAoKUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgoKV2hlbiBhIHJlbmRlcmVyIG5lZWRzIHJl
cGFpbnQsIHdlIHdhbGsgdGhlIGxheWVyIHRyZWUgdG8gc2VhcmNoIGZvciB0aGUgcmVwYWludCBj
b250YWluZXIgKHJvb3QgZm9yIGFsbCB0aGUgcGFpbnRzKS4KSWYgd2UgZmluZCBhIGxheWVyIGJl
dHdlZW4gdGhlIHJlbmRlcmVyIGFuZCB0aGUgcmVwYWludCBjb250YWluZXIgdGhhdCBoYXMgYWxy
ZWFkeSBiZWVuIHNjaGVkdWxlZCBmb3IgYSBmdWxsIHJlcGFpbnQKd2Uga25vdyB0aGF0IHRoaXMg
cmVwYWludCBpcyByZWR1bmRhbnQgYW5kIHdpbGwgYmUgY292ZXJlZCBieSB0aGUgYW5jZXN0b3Ig
bGF5ZXIuClNpbmNlIGxheWVycyBwYWludCB0aGVpciBvdmVyZmxvdyBjb250ZW50LCB0aGlzIHdv
cmtzIGV2ZW4gd2hlbiB0aGUgcmVuZGVyZXIgInN0aWNrcyBvdXQiIG9mIHRoZSBhbmNlc3RvciBs
YXllcidzIHJlbmRlcmVyJ3MgYm9yZGVyIGJveCAoaS5lLiBwcm9kdWNlcyBpbmsvc2Nyb2xsYWJs
ZSBvdmVyZmxvdykuCgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6
CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFp
bnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNsaXBDcm9zc2VzUGFpbnRpbmdCb3Vu
ZGFyeSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzIGNv
bnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKFdlYkNvcmU6
OlJlbmRlckxheWVyOjpuZWVkc0Z1bGxSZXBhaW50IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKFdlYkNvcmU6OlJlbmRlckxheWVy
Q29tcG9zaXRvcjo6cmVwYWludEluQ29tcG9zaXRlZEFuY2VzdG9yKToKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6Y29u
dGFpbmVyRm9yUmVwYWludCBjb25zdCk6CihXZWJDb3JlOjpmdWxsUmVwYWludElzU2NoZWR1bGVk
KTogVGhpcyBjb3ZlcnMgdGhlIGNhc2VzIHdoZW4gdGhlIGNvbnRlbnQgaXMgZW1iZWRkZWQgaW5z
aWRlIGFuIGlmcmFtZSBhbmQgdGhlIGlmcmFtZSdzIHZpZXcgaXMgbm90IGNvbXBvc2l0ZWQuCihX
ZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpyZXBhaW50UmVjdGFuZ2xlIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHA6CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpwYWludEJveERlY29yYXRpb25z
KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAx
NyArKysrKy0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggICAgICAg
IHwgIDcgKysrLQogLi4uL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwICAgICAg
IHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8
IDQwICsrKysrKysrKysrKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcCAgICAgICB8ICAyICstCiA1IGZpbGVzIGNoYW5nZWQsIDUwIGluc2VydGlvbnMoKyks
IDE4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CmluZGV4IGNkY2QzOWIwMjZlMS4uNTU3NjZlMTFjNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTIwMjQsNyArMjAyNCw3IEBAIFJlbmRlckxheWVyKiBS
ZW5kZXJMYXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllcihJbmNsdWRlU2VsZk9yTm90IGlu
Y2x1ZGVTZWxmCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKLVJlbmRlckxheWVyKiBSZW5kZXJM
YXllcjo6ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5v
dCBpbmNsdWRlU2VsZikgY29uc3QKK1JlbmRlckxheWVyOjpFbmNsb3NpbmdDb21wb3NpdGluZ0xh
eWVyU3RhdHVzIFJlbmRlckxheWVyOjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWlu
dChJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVTZWxmKSBjb25zdAogewogICAgIGF1dG8gcmVwYWlu
dFRhcmdldEZvckxheWVyID0gW10oY29uc3QgUmVuZGVyTGF5ZXImIGxheWVyKSAtPiBSZW5kZXJM
YXllciogewogICAgICAgICBpZiAoY29tcG9zaXRlZFdpdGhPd25CYWNraW5nU3RvcmUobGF5ZXIp
KQpAQCAtMjAzNSwxNyArMjAzNSwyMiBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xv
c2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KEluY2x1ZGVTZWxmT3JOb3QgaQogICAgICAg
ICAKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfTsKKyAgICBhdXRvIGlzRWxpZ2libGVG
b3JGdWxsUmVwYWludENoZWNrID0gWyZdKGNvbnN0IGF1dG8mIGxheWVyKSB7CisgICAgICAgIHJl
dHVybiBsYXllci5pc1NlbGZQYWludGluZ0xheWVyKCkgJiYgIWxheWVyLnJlbmRlcmVyKCkuaGFz
UG90ZW50aWFsbHlTY3JvbGxhYmxlT3ZlcmZsb3coKSAmJiAhaXM8UmVuZGVyVmlldz4obGF5ZXIu
cmVuZGVyZXIoKSk7CisgICAgfTsKIAorICAgIGF1dG8gZnVsbFJlcGFpbnRBbHJlYWR5U2NoZWR1
bGVkID0gaXNFbGlnaWJsZUZvckZ1bGxSZXBhaW50Q2hlY2soKnRoaXMpICYmIG5lZWRzRnVsbFJl
cGFpbnQoKTsKICAgICBSZW5kZXJMYXllciogcmVwYWludFRhcmdldCA9IG51bGxwdHI7CiAgICAg
aWYgKGluY2x1ZGVTZWxmID09IEluY2x1ZGVTZWxmICYmIChyZXBhaW50VGFyZ2V0ID0gcmVwYWlu
dFRhcmdldEZvckxheWVyKCp0aGlzKSkpCi0gICAgICAgIHJldHVybiByZXBhaW50VGFyZ2V0Owor
ICAgICAgICByZXR1cm4geyBmdWxsUmVwYWludEFscmVhZHlTY2hlZHVsZWQsIHJlcGFpbnRUYXJn
ZXQgfTsKIAogICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGN1cnIgPSBwYWludE9yZGVyUGFy
ZW50KCk7IGN1cnI7IGN1cnIgPSBjdXJyLT5wYWludE9yZGVyUGFyZW50KCkpIHsKKyAgICAgICAg
ZnVsbFJlcGFpbnRBbHJlYWR5U2NoZWR1bGVkID0gZnVsbFJlcGFpbnRBbHJlYWR5U2NoZWR1bGVk
IHx8IChpc0VsaWdpYmxlRm9yRnVsbFJlcGFpbnRDaGVjaygqY3VycikgJiYgY3Vyci0+bmVlZHNG
dWxsUmVwYWludCgpKTsKICAgICAgICAgaWYgKChyZXBhaW50VGFyZ2V0ID0gcmVwYWludFRhcmdl
dEZvckxheWVyKCpjdXJyKSkpCi0gICAgICAgICAgICByZXR1cm4gcmVwYWludFRhcmdldDsKKyAg
ICAgICAgICAgIHJldHVybiB7IGZ1bGxSZXBhaW50QWxyZWFkeVNjaGVkdWxlZCwgcmVwYWludFRh
cmdldCB9OwogICAgIH0KICAgICAgICAgIAotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVy
biB7IH07CiB9CiAKIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyTGF5
ZXIoSW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZikgY29uc3QKQEAgLTQ2MTIsNyArNDYxNyw3
IEBAIENsaXBSZWN0cyogUmVuZGVyTGF5ZXI6OmNsaXBSZWN0cyhjb25zdCBDbGlwUmVjdHNDb250
ZXh0JiBjb250ZXh0KSBjb25zdAogYm9vbCBSZW5kZXJMYXllcjo6Y2xpcENyb3NzZXNQYWludGlu
Z0JvdW5kYXJ5KCkgY29uc3QKIHsKICAgICByZXR1cm4gcGFyZW50KCktPmVuY2xvc2luZ1BhZ2lu
YXRpb25MYXllcihJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycykgIT0gZW5jbG9zaW5n
UGFnaW5hdGlvbkxheWVyKEluY2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzKQotICAgICAg
ICB8fCBwYXJlbnQoKS0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKSAhPSBl
bmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOworICAgICAgICB8fCBwYXJlbnQo
KS0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKS5sYXllciAhPSBlbmNsb3Np
bmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpLmxheWVyOwogfQogCiB2b2lkIFJlbmRlckxh
eWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3Rz
Q29udGV4dCwgQ2xpcFJlY3RzJiBjbGlwUmVjdHMpIGNvbnN0CkBAIC01ODExLDcgKzU4MTYsNyBA
QCBzdGF0aWMgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgUmVuZGVyTGF5
ZXI6OkV2ZW50UmVnaW9uSW52YWxpZGF0aQogYm9vbCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZUV2
ZW50UmVnaW9uKEV2ZW50UmVnaW9uSW52YWxpZGF0aW9uUmVhc29uIHJlYXNvbikKIHsKICNpZiBF
TkFCTEUoQVNZTkNfU0NST0xMSU5HKQotICAgIGF1dG8qIGNvbXBvc2l0aW5nTGF5ZXIgPSBlbmNs
b3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOworICAgIGF1dG8qIGNvbXBvc2l0aW5n
TGF5ZXIgPSBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpLmxheWVyOwogCiAg
ICAgYXV0byBzaG91bGRJbnZhbGlkYXRlID0gWyZdIHsKICAgICAgICAgaWYgKCFjb21wb3NpdGlu
Z0xheWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAyYjM2YjI4
NWQwMGUuLjAxM2RlZmQyNjAwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTU5MCw3ICs1OTAsMTEgQEAgcHVibGljOgogCiAgICAgLy8gRW5jbG9zaW5nIGNvbXBv
c2l0aW5nIGxheWVyOyBpZiBpbmNsdWRlU2VsZiBpcyB0cnVlLCBtYXkgcmV0dXJuIHRoaXMuCiAg
ICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIoSW5jbHVkZVNlbGZPck5v
dCA9IEluY2x1ZGVTZWxmKSBjb25zdDsKLSAgICBSZW5kZXJMYXllciogZW5jbG9zaW5nQ29tcG9z
aXRpbmdMYXllckZvclJlcGFpbnQoSW5jbHVkZVNlbGZPck5vdCA9IEluY2x1ZGVTZWxmKSBjb25z
dDsKKyAgICBzdHJ1Y3QgRW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllclN0YXR1cyB7CisgICAgICAg
IGJvb2wgZnVsbFJlcGFpbnRBbHJlYWR5U2NoZWR1bGVkIHsgZmFsc2UgfTsKKyAgICAgICAgUmVu
ZGVyTGF5ZXIqIGxheWVyIHsgbnVsbHB0ciB9OworICAgIH07CisgICAgRW5jbG9zaW5nQ29tcG9z
aXRpbmdMYXllclN0YXR1cyBlbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNs
dWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0OwogICAgIC8vIEFuY2VzdG9yIGNvbXBv
c2l0aW5nIGxheWVyLCBleGNsdWRpbmcgdGhpcy4KICAgICBSZW5kZXJMYXllciogYW5jZXN0b3JD
b21wb3NpdGluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXll
cihFeGNsdWRlU2VsZik7IH0KIApAQCAtNzIxLDYgKzcyNSw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0UmVwYWludFN0YXR1cyhSZXBhaW50U3RhdHVzIHN0YXR1cykgeyBtX3JlcGFpbnRTdGF0
dXMgPSBzdGF0dXM7IH0KICAgICBSZXBhaW50U3RhdHVzIHJlcGFpbnRTdGF0dXMoKSBjb25zdCB7
IHJldHVybiBzdGF0aWNfY2FzdDxSZXBhaW50U3RhdHVzPihtX3JlcGFpbnRTdGF0dXMpOyB9Cisg
ICAgYm9vbCBuZWVkc0Z1bGxSZXBhaW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXBhaW50U3RhdHVz
ID09IE5lZWRzRnVsbFJlcGFpbnQgfHwgbV9yZXBhaW50U3RhdHVzID09IE5lZWRzRnVsbFJlcGFp
bnRGb3JQb3NpdGlvbmVkTW92ZW1lbnRMYXlvdXQ7IH0KIAogICAgIExheW91dFVuaXQgc3RhdGlj
SW5saW5lUG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX29mZnNldEZvclBvc2l0aW9uLndpZHRo
KCk7IH0KICAgICBMYXlvdXRVbml0IHN0YXRpY0Jsb2NrUG9zaXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29mZnNldEZvclBvc2l0aW9uLmhlaWdodCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDE5OTA0ZTcyOTUwOC4u
NWQ2NjA1M2I4YTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTk1Niw3ICsxOTU2LDcgQEAgdm9pZCBSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OnJlcGFpbnRPbkNvbXBvc2l0aW5nQ2hhbmdlKFJlbmRlckxheWVyJiBsYXll
cikKIC8vIFRoaXMgbWV0aG9kIGFzc3VtZXMgdGhhdCBsYXlvdXQgaXMgdXAtdG8tZGF0ZSwgdW5s
aWtlIHJlcGFpbnRPbkNvbXBvc2l0aW5nQ2hhbmdlKCkuCiB2b2lkIFJlbmRlckxheWVyQ29tcG9z
aXRvcjo6cmVwYWludEluQ29tcG9zaXRlZEFuY2VzdG9yKFJlbmRlckxheWVyJiBsYXllciwgY29u
c3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKLSAgICBhdXRvKiBjb21wb3NpdGVkQW5jZXN0b3IgPSBs
YXllci5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChFeGNsdWRlU2VsZik7Cisg
ICAgYXV0byogY29tcG9zaXRlZEFuY2VzdG9yID0gbGF5ZXIuZW5jbG9zaW5nQ29tcG9zaXRpbmdM
YXllckZvclJlcGFpbnQoRXhjbHVkZVNlbGYpLmxheWVyOwogICAgIGlmICghY29tcG9zaXRlZEFu
Y2VzdG9yKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAKaW5kZXggZWFlYjQ5ZTdmOTZmLi4xNzVmOTAxODI3N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC04NjAsMTkgKzg2MCwyNCBAQCBM
YXlvdXRSZWN0IFJlbmRlck9iamVjdDo6cGFpbnRpbmdSb290UmVjdChMYXlvdXRSZWN0JiB0b3BM
ZXZlbFJlY3QpCiBSZW5kZXJPYmplY3Q6OlJlcGFpbnRDb250YWluZXJTdGF0dXMgUmVuZGVyT2Jq
ZWN0Ojpjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3QKIHsKICAgICBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gbnVsbHB0cjsKKyAgICBhdXRvIGZ1bGxSZXBhaW50
QWxyZWFkeVNjaGVkdWxlZCA9IGZhbHNlOwogCiAgICAgaWYgKHZpZXcoKS51c2VzQ29tcG9zaXRp
bmcoKSkgewotICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0gZW5jbG9zaW5n
TGF5ZXIoKSkgewotICAgICAgICAgICAgUmVuZGVyTGF5ZXIqIGNvbXBMYXllciA9IHBhcmVudExh
eWVyLT5lbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludCgpOwotICAgICAgICAgICAg
aWYgKGNvbXBMYXllcikKLSAgICAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVyID0gJmNvbXBM
YXllci0+cmVuZGVyZXIoKTsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVyID0gZW5jbG9z
aW5nTGF5ZXIoKSkgeworICAgICAgICAgICAgYXV0byBjb21wTGF5ZXJTdGF0dXMgPSBwYXJlbnRM
YXllci0+ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKTsKKyAgICAgICAgICAg
IGlmIChjb21wTGF5ZXJTdGF0dXMubGF5ZXIpIHsKKyAgICAgICAgICAgICAgICByZXBhaW50Q29u
dGFpbmVyID0gJmNvbXBMYXllclN0YXR1cy5sYXllci0+cmVuZGVyZXIoKTsKKyAgICAgICAgICAg
ICAgICBmdWxsUmVwYWludEFscmVhZHlTY2hlZHVsZWQgPSBjb21wTGF5ZXJTdGF0dXMuZnVsbFJl
cGFpbnRBbHJlYWR5U2NoZWR1bGVkOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
ICAgIGlmICh2aWV3KCkuaGFzU29mdHdhcmVGaWx0ZXJzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRl
ckxheWVyKiBwYXJlbnRMYXllciA9IGVuY2xvc2luZ0xheWVyKCkpIHsKLSAgICAgICAgICAgIFJl
bmRlckxheWVyKiBlbmNsb3NpbmdGaWx0ZXJMYXllciA9IHBhcmVudExheWVyLT5lbmNsb3NpbmdG
aWx0ZXJMYXllcigpOwotICAgICAgICAgICAgaWYgKGVuY2xvc2luZ0ZpbHRlckxheWVyKQotICAg
ICAgICAgICAgICAgIHJldHVybiB7IGZhbHNlLCAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJlbmRl
cmVyKCkgfTsKKyAgICAgICAgaWYgKGF1dG8qIHBhcmVudExheWVyID0gZW5jbG9zaW5nTGF5ZXIo
KSkgeworICAgICAgICAgICAgYXV0byogZW5jbG9zaW5nRmlsdGVyTGF5ZXIgPSBwYXJlbnRMYXll
ci0+ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoKTsKKyAgICAgICAgICAgIGlmIChlbmNsb3NpbmdGaWx0
ZXJMYXllcikgeworICAgICAgICAgICAgICAgIGZ1bGxSZXBhaW50QWxyZWFkeVNjaGVkdWxlZCA9
IHBhcmVudExheWVyLT5uZWVkc0Z1bGxSZXBhaW50KCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHsgZnVsbFJlcGFpbnRBbHJlYWR5U2NoZWR1bGVkLCAmZW5jbG9zaW5nRmlsdGVyTGF5ZXItPnJl
bmRlcmVyKCkgfTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIApAQCAtODg3LDcg
Kzg5Miw3IEBAIFJlbmRlck9iamVjdDo6UmVwYWludENvbnRhaW5lclN0YXR1cyBSZW5kZXJPYmpl
Y3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgICAgICBpZiAoIXJlcGFpbnRDb250
YWluZXJGcmFnbWVudGVkRmxvdyB8fCByZXBhaW50Q29udGFpbmVyRnJhZ21lbnRlZEZsb3cgIT0g
cGFyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3cpCiAgICAgICAgICAgICByZXBhaW50Q29udGFpbmVy
ID0gcGFyZW50UmVuZGVyRnJhZ21lbnRlZEZsb3c7CiAgICAgfQotICAgIHJldHVybiB7IGZhbHNl
LCByZXBhaW50Q29udGFpbmVyIH07CisgICAgcmV0dXJuIHsgZnVsbFJlcGFpbnRBbHJlYWR5U2No
ZWR1bGVkLCByZXBhaW50Q29udGFpbmVyIH07CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0Ojpwcm9w
YWdhdGVSZXBhaW50VG9QYXJlbnRXaXRoT3V0bGluZUF1dG9JZk5lZWRlZChjb25zdCBSZW5kZXJM
YXllck1vZGVsT2JqZWN0JiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiByZXBh
aW50UmVjdCkgY29uc3QKQEAgLTk2MSw2ICs5NjYsMTcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJl
cGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q28KICAgICB9CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmdWxsUmVwYWludElzU2NoZWR1bGVk
KGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCit7CisgICAgaWYgKCFyZW5kZXJlci52aWV3
KCkudXNlc0NvbXBvc2l0aW5nKCkgJiYgIXJlbmRlcmVyLmRvY3VtZW50KCkub3duZXJFbGVtZW50
KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBmb3IgKGF1dG8qIGFuY2VzdG9yTGF5ZXIg
PSByZW5kZXJlci5lbmNsb3NpbmdMYXllcigpOyBhbmNlc3RvckxheWVyOyBhbmNlc3RvckxheWVy
ID0gYW5jZXN0b3JMYXllci0+cGFpbnRPcmRlclBhcmVudCgpKSB7CisgICAgICAgIGlmIChhbmNl
c3RvckxheWVyLT5uZWVkc0Z1bGxSZXBhaW50KCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWlu
dCgpIGNvbnN0CiB7CiAgICAgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSB1bnJvb3RlZCAobm90
ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1cm5zIHRoZSB2aWV3IHdoZW4gdW5yb290ZWQpCkBAIC05
NzIsNiArOTg4LDkgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBjb25zdAogICAgICAg
ICByZXR1cm47CiAKICAgICBhdXRvIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBh
aW50KCk7CisgICAgaWYgKCFyZXBhaW50Q29udGFpbmVyLnJlbmRlcmVyKQorICAgICAgICByZXBh
aW50Q29udGFpbmVyID0geyBmdWxsUmVwYWludElzU2NoZWR1bGVkKCp0aGlzKSwgJnZpZXcgfTsK
KwogICAgIGlmICghcmVwYWludENvbnRhaW5lci5mdWxsUmVwYWludElzU2NoZWR1bGVkKQogICAg
ICAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lci5yZW5kZXJlciwgY2xp
cHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lci5yZW5kZXJlcikpOwog
fQpAQCAtOTkyLDYgKzEwMTEsOSBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3Rhbmds
ZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xheWVyKQogICAgIGRpcnR5
UmVjdC5tb3ZlKHZpZXcuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxheW91dERlbHRhKCkp
OwogCiAgICAgYXV0byByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOwor
ICAgIGlmICghcmVwYWludENvbnRhaW5lci5yZW5kZXJlcikKKyAgICAgICAgcmVwYWludENvbnRh
aW5lciA9IHsgZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCgqdGhpcyksICZ2aWV3IH07CisKICAgICBp
ZiAoIXJlcGFpbnRDb250YWluZXIuZnVsbFJlcGFpbnRJc1NjaGVkdWxlZCkKICAgICAgICAgcmVw
YWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIsIGNvbXB1dGVSZWN0
Rm9yUmVwYWludChkaXJ0eVJlY3QsIHJlcGFpbnRDb250YWluZXIucmVuZGVyZXIpLCBzaG91bGRD
bGlwVG9MYXllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5k
ZXggMDMxYjVjZTRlOWIwLi5lZGU4NjNmM2VkNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKQEAgLTM4MCw3ICszODAsNyBAQCB2b2lkIFJlbmRlclZpZXc6OnBhaW50
Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JikK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKFJlbmRlckxheWVy
KiBjb21wb3NpdGluZ0xheWVyID0gbGF5ZXItPmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JS
ZXBhaW50KCkpIHsKKyAgICAgICAgaWYgKGF1dG8qIGNvbXBvc2l0aW5nTGF5ZXIgPSBsYXllci0+
ZW5jbG9zaW5nQ29tcG9zaXRpbmdMYXllckZvclJlcGFpbnQoKS5sYXllcikgewogICAgICAgICAg
ICAgaWYgKCFjb21wb3NpdGluZ0xheWVyLT5iYWNraW5nKCktPnBhaW50c0ludG9XaW5kb3coKSkg
ewogICAgICAgICAgICAgICAgIGZyYW1lVmlldygpLnNldENhbm5vdEJsaXRUb1dpbmRvdygpOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMyKQoK
</data>

          </attachment>
      

    </bug>

</bugzilla>