<?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>204937</bug_id>
          
          <creation_ts>2019-12-06 01:12:39 -0800</creation_ts>
          <short_desc>Support for resolving highlight pseudo element style</short_desc>
          <delta_ts>2019-12-08 00:19:06 -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>CSS</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>
          
          <blocked>204903</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1596180</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-06 01:12:39 -0800</bug_when>
    <thetext>::highlight(foo)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596188</commentid>
    <comment_count>1</comment_count>
      <attachid>384996</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-06 01:34:08 -0800</bug_when>
    <thetext>Created attachment 384996
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596256</commentid>
    <comment_count>2</comment_count>
      <attachid>384996</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-06 08:25:33 -0800</bug_when>
    <thetext>Comment on attachment 384996
patch

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

&gt; LayoutTests/ChangeLog:9
&gt; +        * highlight/highlight-pseudo-element-style-expected.txt: Added.
&gt; +        * highlight/highlight-pseudo-element-style.html: Added.

OK for now but the tests should really all be web platform tests.

&gt; LayoutTests/highlight/highlight-pseudo-element-style.html:7
&gt; +::highlight(green-range) { color: green }
&gt; +span::highlight(blue-range) { color: blue }

Would be good to test a style that ::highlight sets but span::highlight does not.

&gt; Source/WebCore/ChangeLog:25
&gt; +        * css/SelectorChecker.h:
&gt; +        * css/parser/CSSSelectorParser.cpp:
&gt; +        (WebCore::CSSSelectorParser::consumePseudo):
&gt; +        * rendering/style/RenderStyle.h:
&gt; +        * style/ElementRuleCollector.cpp:
&gt; +        (WebCore::Style::ElementRuleCollector::ruleMatches):
&gt; +        * style/ElementRuleCollector.h:
&gt; +        (WebCore::Style::PseudoElementRequest::PseudoElementRequest):
&gt; +
&gt; +        Add the requested highlight name.

How does code discover the names of all the applicable highlights for a given element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596258</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-06 08:31:20 -0800</bug_when>
    <thetext>&gt; How does code discover the names of all the applicable highlights for a
&gt; given element?

The spec connects styles with

CSS.highlights.set(&quot;example-highlight&quot;, highlightRangeGroup);

and then you would query for &quot;example-highlight&quot; for all elements within the range. As far as I see there is no need to ever enumerate highlight names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596290</commentid>
    <comment_count>4</comment_count>
      <attachid>385026</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-06 10:35:18 -0800</bug_when>
    <thetext>Created attachment 385026
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596295</commentid>
    <comment_count>5</comment_count>
      <attachid>385026</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 11:18:24 -0800</bug_when>
    <thetext>Comment on attachment 385026
patch

Clearing flags on attachment: 385026

Committed r253210: &lt;https://trac.webkit.org/changeset/253210&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596296</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-06 11:18:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596297</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-06 11:19:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/57705431&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596577</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-07 08:39:41 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; &gt; How does code discover the names of all the applicable highlights for a
&gt; &gt; given element?
&gt; 
&gt; The spec connects styles with
&gt; 
&gt; CSS.highlights.set(&quot;example-highlight&quot;, highlightRangeGroup);
&gt; 
&gt; and then you would query for &quot;example-highlight&quot; for all elements within the
&gt; range. As far as I see there is no need to ever enumerate highlight names.

I meant how does our text painting code find the list of highlights that may apply to an element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596660</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-08 00:18:03 -0800</bug_when>
    <thetext>&gt; I meant how does our text painting code find the list of highlights that may
&gt; apply to an element?

Details depend on how you are representing ranges in the rendering side and who is caching styles, but basically

1) look up which highlight ranges containing the element being painted
2) with the range/element pairs look up the styles (via getUncachedPseudoStyle)
3) cache the style somewhere (maybe in the range itself, maybe extension of getCachedPseudoStyle).

This is a sort of combination how marker and first-line painting currently works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596661</commentid>
    <comment_count>10</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-08 00:19:06 -0800</bug_when>
    <thetext>It would be nice to generalize the existing concepts on rendering side rather than writing yet another separate thing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384996</attachid>
            <date>2019-12-06 01:34:08 -0800</date>
            <delta_ts>2019-12-06 10:35:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>highlight-pseudo-element-style.patch</filename>
            <type>text/plain</type>
            <size>12956</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmM2MDE2YjcxOS4uOGUwNzEwZjQxNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VwcG9ydCBmb3IgcmVzb2x2aW5nIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudCBzdHlsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBoaWdobGlnaHQv
aGlnaGxpZ2h0LXBzZXVkby1lbGVtZW50LXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaGlnaGxpZ2h0L2hpZ2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS5odG1sOiBBZGRl
ZC4KKwogMjAxOS0xMi0wNSAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgbWFwbGlrZSBzaG91bGQgZGVmaW5lIGEgc2V0IG1ldGhvZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LXBzZXVkby1lbGVtZW50LXN0
eWxlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MTg0YWUzMTkxYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGln
aGxpZ2h0LXBzZXVkby1lbGVtZW50LXN0eWxlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBA
CitUZXN0cyBjb21wdXRpbmcgdGhlIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudCBzdHlsZS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLmhpZ2hsaWdodFBz
ZXVkb0VsZW1lbnRDb2xvcignZ3JlZW4tcmFuZ2UnLCB0ZXN0ZGl2KSBpcyAicmdiKDAsIDEyOCwg
MCkiCitQQVNTIGludGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2dyZWVuLXJh
bmdlJywgdGVzdHNwYW4pIGlzICJyZ2IoMCwgMTI4LCAwKSIKK1BBU1MgaW50ZXJuYWxzLmhpZ2hs
aWdodFBzZXVkb0VsZW1lbnRDb2xvcignYmx1ZS1yYW5nZScsIHRlc3RkaXYpIGlzICIiCitQQVNT
IGludGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2JsdWUtcmFuZ2UnLCB0ZXN0
c3BhbikgaXMgInJnYigwLCAwLCAyNTUpIgorUEFTUyBpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRv
RWxlbWVudENvbG9yKCdub24tZXhpc3RlbnQtcmFuZ2UnLCB0ZXN0ZGl2KSBpcyAiIgorUEFTUyBp
bnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdub24tZXhpc3RlbnQtcmFuZ2Un
LCB0ZXN0c3BhbikgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0
LXBzZXVkby1lbGVtZW50LXN0eWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxp
Z2h0LXBzZXVkby1lbGVtZW50LXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjBlYTQxOTJkNTc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aGlnaGxpZ2h0L2hpZ2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS5odG1sCkBAIC0wLDAgKzEs
MjYgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGV4cGVyaW1l
bnRhbDpIaWdobGlnaHRBUElFbmFibGVkPXRydWUgXSAtLT4KKzxodG1sPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyN0ZXN0RGl2IHsg
Y29sb3I6IHJlZCB9Cis6OmhpZ2hsaWdodChncmVlbi1yYW5nZSkgeyBjb2xvcjogZ3JlZW4gfQor
c3Bhbjo6aGlnaGxpZ2h0KGJsdWUtcmFuZ2UpIHsgY29sb3I6IGJsdWUgfQorPC9zdHlsZT4KKzxi
b2R5PgorPGRpdiBpZD10ZXN0ZGl2PgorICAgIDxzcGFuIGlkPXRlc3RzcGFuPjwvc3Bhbj4KKzwv
ZGl2PgorPHNjcmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3RzIGNvbXB1dGluZyB0aGUgaGlnaGxp
Z2h0IHBzZXVkbyBlbGVtZW50IHN0eWxlLiIpOworCitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImlu
dGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2dyZWVuLXJhbmdlJywgdGVzdGRp
dikiLCAicmdiKDAsIDEyOCwgMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxz
LmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignZ3JlZW4tcmFuZ2UnLCB0ZXN0c3BhbikiLCAi
cmdiKDAsIDEyOCwgMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLmhpZ2hs
aWdodFBzZXVkb0VsZW1lbnRDb2xvcignYmx1ZS1yYW5nZScsIHRlc3RkaXYpIiwgIiIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9y
KCdibHVlLXJhbmdlJywgdGVzdHNwYW4pIiwgInJnYigwLCAwLCAyNTUpIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImludGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ25vbi1l
eGlzdGVudC1yYW5nZScsIHRlc3RkaXYpIiwgIiIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJp
bnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdub24tZXhpc3RlbnQtcmFuZ2Un
LCB0ZXN0c3BhbikiLCAiIik7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGQxMTBjMjliNmY4Li45NDY3N2E1NDY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5
IEBACisyMDE5LTEyLTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAg
ICAgICBTdXBwb3J0IGZvciByZXNvbHZpbmcgaGlnaGxpZ2h0IHBzZXVkbyBlbGVtZW50IHN0eWxl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ5MzcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBo
aWdobGlnaHQvaGlnaGxpZ2h0LXBzZXVkby1lbGVtZW50LXN0eWxlLmh0bWwKKworICAgICAgICAq
IGNzcy9TZWxlY3RvckNoZWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVj
a2VyOjpjaGVja09uZSBjb25zdCk6CisKKyAgICAgICAgUmV0dXJucyBhbHdheXMgdHJ1ZSB3aGVu
IGNoZWNrZWQgd2l0aG91dCBwc2V1ZG9JZCwgc28gaXQgZ2V0cyBhZGRlZCB0byB0aGUgc2V0IG9m
IHNlZW4gcHNldWRvIGVsZW1lbnRzLgorICAgICAgICBNYXRjaCBhcmd1bWVudCB3aXRoIHRoZSBw
cm92aWRlZCBoaWdobGlnaHQgbmFtZSBvdGhlcndpc2UuCisKKyAgICAgICAgKiBjc3MvU2VsZWN0
b3JDaGVja2VyLmg6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3RvclBhcnNlcjo6Y29uc3VtZVBzZXVkbyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogc3R5bGUv
RWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1l
bnRSdWxlQ29sbGVjdG9yOjpydWxlTWF0Y2hlcyk6CisgICAgICAgICogc3R5bGUvRWxlbWVudFJ1
bGVDb2xsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQc2V1ZG9FbGVtZW50UmVx
dWVzdDo6UHNldWRvRWxlbWVudFJlcXVlc3QpOgorCisgICAgICAgIEFkZCB0aGUgcmVxdWVzdGVk
IGhpZ2hsaWdodCBuYW1lLgorCisgICAgICAgICogc3R5bGUvU3R5bGVSZXNvbHZlci5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGUuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRD
b2xvcik6CisKKyAgICAgICAgVGVzdGluZyBzdXBwb3J0LgorCisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTktMTIt
MDUgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNd
IFRyaW0gdHJhaWxpbmcgbGV0dGVyLXNwYWNpbmcgYXQgaW5saW5lIGNvbnRhaW5lciBib3VuZGFy
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCA1NTU5ZmJkYmIzNy4u
MTgzNDllMTA1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCkBAIC0x
MTkxLDYgKzExOTEsMTUgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKENoZWNraW5n
Q29udGV4dCYgY2hlY2tpbmdDb250ZXh0LCBjb25zdCBMb2NhbENvbnQKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRWxlbWVudEhpZ2hsaWdodDoKKyAgICAgICAgICAgIC8vIEFsd2F5cyBt
YXRjaGVzIHdoZW4gbm90IHNwZWNpZmljYWxseSByZXF1ZXN0ZWQgc28gaXQgZ2V0cyBhZGRlZCB0
byB0aGUgcHNldWRvSWRTZXQuCisgICAgICAgICAgICBpZiAoY2hlY2tpbmdDb250ZXh0LnBzZXVk
b0lkID09IFBzZXVkb0lkOjpOb25lKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgaWYgKGNoZWNraW5nQ29udGV4dC5wc2V1ZG9JZCAhPSBQc2V1ZG9JZDo6SGlnaGxp
Z2h0KQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBz
ZWxlY3Rvci5hcmd1bWVudExpc3QoKS0+Zmlyc3QoKSA9PSBjaGVja2luZ0NvbnRleHQubmFtZUZv
ckhpZ2h0bGlnaHRQc2V1ZG9FbGVtZW50OworCiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yQ2hlY2tlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5o
CmluZGV4IGNlMzEwMTY2ZjBiLi41Mzc2MzE4MjcyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3Rv
ckNoZWNrZXIuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IFNlbGVj
dG9yQ2hlY2tlcjo6TW9kZSByZXNvbHZpbmdNb2RlOwogICAgICAgICBQc2V1ZG9JZCBwc2V1ZG9J
ZCB7IFBzZXVkb0lkOjpOb25lIH07CiAgICAgICAgIE9wdGlvbmFsPFN0eWxlU2Nyb2xsYmFyU3Rh
dGU+IHNjcm9sbGJhclN0YXRlOworICAgICAgICBBdG9tU3RyaW5nIG5hbWVGb3JIaWdodGxpZ2h0
UHNldWRvRWxlbWVudDsKICAgICAgICAgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgeyBudWxs
cHRyIH07CiAgICAgICAgIGJvb2wgaXNNYXRjaGluZ0hvc3RQc2V1ZG9DbGFzcyB7IGZhbHNlIH07
CiAgICAgICAgIGNvbnN0IEVsZW1lbnQqIHNoYWRvd0hvc3RJblBhcnRSdWxlU2NvcGUgeyBudWxs
cHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1NlbGVjdG9y
UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIu
Y3BwCmluZGV4IDUzOGZmMTBhNGVlLi42MmYyMGM2ODQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTYzMCwxMSArNjMwLDEzIEBA
IHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4gQ1NTU2VsZWN0b3JQYXJzZXI6OmNv
bnN1bWVQc2V1ZG8oQ1NTUGFyc2VyVG9rCiAgICAgICAgICAgICBEaXNhbGxvd1BzZXVkb0VsZW1l
bnRzU2NvcGUgc2NvcGUodGhpcyk7CiAKICAgICAgICAgICAgIGF1dG8mIGlkZW50ID0gYmxvY2su
Y29uc3VtZUluY2x1ZGluZ1doaXRlc3BhY2UoKTsKLSAgICAgICAgICAgIGlmIChpZGVudC50eXBl
KCkgIT0gSWRlbnRUb2tlbikKKyAgICAgICAgICAgIGlmIChpZGVudC50eXBlKCkgIT0gSWRlbnRU
b2tlbiB8fCAhYmxvY2suYXRFbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgICAgICAgICAgYXV0byBhcmd1bWVudExpc3QgPSBtYWtlVW5pcXVlPFZlY3RvcjxBdG9t
U3RyaW5nPj4oKTsKICAgICAgICAgICAgIGFyZ3VtZW50TGlzdC0+YXBwZW5kKGlkZW50LnZhbHVl
KCkudG9BdG9tU3RyaW5nKCkpOworICAgICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50TGlz
dChXVEZNb3ZlKGFyZ3VtZW50TGlzdCkpOworCiAgICAgICAgICAgICByZXR1cm4gc2VsZWN0b3I7
CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFBhcnQ6
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
YzJlYzQ4ZWQ5YzQuLjVkY2IyMWM2NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtMTM0LDcgKzEzNCw3IEBAIHByaXZhdGU6CiBwdWJsaWM6
CiAgICAgUmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUmJik7CiAgICAgUmVuZGVyU3R5bGUmIG9wZXJh
dG9yPShSZW5kZXJTdHlsZSYmKTsKLSAgICB+UmVuZGVyU3R5bGUoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB+UmVuZGVyU3R5bGUoKTsKIAogICAgIFJlbmRlclN0eWxlIHJlcGxhY2UoUmVuZGVyU3R5
bGUmJikgV0FSTl9VTlVTRURfUkVUVVJOOwogCkBAIC0xNzQ3LDcgKzE3NDcsNyBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQ29sb3ImIGJvcmRlclRvcENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdXJy
b3VuZERhdGEtPmJvcmRlci50b3AoKS5jb2xvcigpOyB9CiAgICAgY29uc3QgQ29sb3ImIGJvcmRl
ckJvdHRvbUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9zdXJyb3VuZERhdGEtPmJvcmRlci5ib3R0
b20oKS5jb2xvcigpOyB9CiAgICAgY29uc3QgQ29sb3ImIGJhY2tncm91bmRDb2xvcigpIGNvbnN0
IHsgcmV0dXJuIG1fYmFja2dyb3VuZERhdGEtPmNvbG9yOyB9Ci0gICAgY29uc3QgQ29sb3ImIGNv
bG9yKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgQ29sb3ImIGNvbG9yKCkgY29u
c3Q7CiAgICAgY29uc3QgQ29sb3ImIGNvbHVtblJ1bGVDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1f
cmFyZU5vbkluaGVyaXRlZERhdGEtPm11bHRpQ29sLT5ydWxlLmNvbG9yKCk7IH0KICAgICBjb25z
dCBDb2xvciYgb3V0bGluZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kRGF0YS0+
b3V0bGluZS5jb2xvcigpOyB9CiAgICAgY29uc3QgQ29sb3ImIHRleHRFbXBoYXNpc0NvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9yYXJlSW5oZXJpdGVkRGF0YS0+dGV4dEVtcGhhc2lzQ29sb3I7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAppbmRleCA3
YjAzYzg5YTA3ZC4uZDcwNjhkNTlhOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVt
ZW50UnVsZUNvbGxlY3Rvci5jcHAKQEAgLTQ3Nyw2ICs0NzcsNyBAQCBpbmxpbmUgYm9vbCBFbGVt
ZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhLCB1
bnNpZ25lZAogICAgIFNlbGVjdG9yQ2hlY2tlcjo6Q2hlY2tpbmdDb250ZXh0IGNvbnRleHQobV9t
b2RlKTsKICAgICBjb250ZXh0LnBzZXVkb0lkID0gbV9wc2V1ZG9FbGVtZW50UmVxdWVzdC5wc2V1
ZG9JZDsKICAgICBjb250ZXh0LnNjcm9sbGJhclN0YXRlID0gbV9wc2V1ZG9FbGVtZW50UmVxdWVz
dC5zY3JvbGxiYXJTdGF0ZTsKKyAgICBjb250ZXh0Lm5hbWVGb3JIaWdodGxpZ2h0UHNldWRvRWxl
bWVudCA9IG1fcHNldWRvRWxlbWVudFJlcXVlc3QuaGlnaGxpZ2h0TmFtZTsKICAgICBjb250ZXh0
LmlzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3MgPSBtX2lzTWF0Y2hpbmdIb3N0UHNldWRvQ2xhc3M7
CiAgICAgY29udGV4dC5zaGFkb3dIb3N0SW5QYXJ0UnVsZVNjb3BlID0gbV9zaGFkb3dIb3N0SW5Q
YXJ0UnVsZVNjb3BlLmdldCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9F
bGVtZW50UnVsZUNvbGxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVD
b2xsZWN0b3IuaAppbmRleCAwYjAwYTJlYzAzNC4uMTg4YWE4ZTZkMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaApAQCAtNDYsOCArNDYsMTYgQEAgcHVi
bGljOgogICAgIHsKICAgICB9CiAKKyAgICBQc2V1ZG9FbGVtZW50UmVxdWVzdChQc2V1ZG9JZCBw
c2V1ZG9JZCwgY29uc3QgQXRvbVN0cmluZyYgaGlnaGxpZ2h0TmFtZSkKKyAgICAgICAgOiBwc2V1
ZG9JZChwc2V1ZG9JZCkKKyAgICAgICAgLCBoaWdobGlnaHROYW1lKGhpZ2hsaWdodE5hbWUpCisg
ICAgeworICAgICAgICBBU1NFUlQocHNldWRvSWQgPT0gUHNldWRvSWQ6OkhpZ2hsaWdodCk7Cisg
ICAgfQorCiAgICAgUHNldWRvSWQgcHNldWRvSWQ7CiAgICAgT3B0aW9uYWw8U3R5bGVTY3JvbGxi
YXJTdGF0ZT4gc2Nyb2xsYmFyU3RhdGU7CisgICAgQXRvbVN0cmluZyBoaWdobGlnaHROYW1lOwog
fTsKIAogc3RydWN0IE1hdGNoZWRSdWxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIu
aAppbmRleCBkMWU1ZDQxMDBhYS4uZTdlM2Y3NzAxZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVyLmgKQEAgLTg5LDcgKzg5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBrZXlmcmFt
ZVN0eWxlc0ZvckFuaW1hdGlvbihjb25zdCBFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUqLCBL
ZXlmcmFtZUxpc3QmKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gcHNldWRv
U3R5bGVGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBjb25zdCBQc2V1ZG9FbGVtZW50UmVxdWVz
dCYsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHBh
cmVudEJveFN0eWxlID0gbnVsbHB0ciwgY29uc3QgU2VsZWN0b3JGaWx0ZXIqID0gbnVsbHB0cik7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBwc2V1ZG9T
dHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYsIGNvbnN0IFBzZXVkb0VsZW1lbnRSZXF1ZXN0
JiwgY29uc3QgUmVuZGVyU3R5bGUmIHBhcmVudFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogcGFy
ZW50Qm94U3R5bGUgPSBudWxscHRyLCBjb25zdCBTZWxlY3RvckZpbHRlciogPSBudWxscHRyKTsK
IAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdl
SW5kZXgpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gZGVmYXVsdFN0eWxlRm9y
RWxlbWVudChjb25zdCBFbGVtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmgKaW5kZXgg
ZWQxNGI1YjZjN2EuLjAyYThiYjQ2ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCkBA
IC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxSZWY8UHJvY2Vzc2luZ0luc3Ry
dWN0aW9uPj4gY29sbGVjdFhTTFRyYW5zZm9ybXMoKTsKICNlbmRpZgogCi0gICAgUmVzb2x2ZXIm
IHJlc29sdmVyKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgUmVzb2x2ZXImIHJlc29sdmVyKCk7CiAg
ICAgUmVzb2x2ZXIqIHJlc29sdmVySWZFeGlzdHMoKTsKICAgICB2b2lkIGNsZWFyUmVzb2x2ZXIo
KTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCA3M2RlMDM2NWE4Zi4uMGQwYWEwNzdiMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKQEAgLTE3MCw2ICsxNzAsNyBAQAogI2luY2x1ZGUgIlNwZWxsQ2hlY2tl
ci5oIgogI2luY2x1ZGUgIlN0YXRpY05vZGVMaXN0LmgiCiAjaW5jbHVkZSAiU3RyaW5nQ2FsbGJh
Y2suaCIKKyNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgi
CiAjaW5jbHVkZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5o
IgpAQCAtNTI0Miw2ICs1MjQzLDIyIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRJc1BsYXlpbmdUb0F1
dG9tb3RpdmVIZWFkVW5pdChib29sIGlzUGxheWluZykKICAgICBQbGF0Zm9ybU1lZGlhU2Vzc2lv
bk1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5zZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5p
dChpc1BsYXlpbmcpOwogI2VuZGlmCiB9CisKK1N0cmluZyBJbnRlcm5hbHM6OmhpZ2hsaWdodFBz
ZXVkb0VsZW1lbnRDb2xvcihjb25zdCBTdHJpbmcmIGhpZ2hsaWdodE5hbWUsIEVsZW1lbnQmIGVs
ZW1lbnQpCit7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsK
KworICAgIGF1dG8mIHN0eWxlUmVzb2x2ZXIgPSBlbGVtZW50LmRvY3VtZW50KCkuc3R5bGVTY29w
ZSgpLnJlc29sdmVyKCk7CisgICAgYXV0byogcGFyZW50U3R5bGUgPSBlbGVtZW50LmNvbXB1dGVk
U3R5bGUoKTsKKyAgICBpZiAoIXBhcmVudFN0eWxlKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgYXV0byBzdHlsZSA9IHN0eWxlUmVzb2x2ZXIucHNldWRvU3R5bGVGb3JFbGVtZW50KGVsZW1l
bnQsIHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxpZ2h0TmFtZSB9LCAqcGFyZW50U3R5bGUp
OworICAgIGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gc3R5
bGUtPmNvbG9yKCkuY3NzVGV4dCgpOworfQogICAgIAogSW50ZXJuYWxzOjpUZXh0SW5kaWNhdG9y
SW5mbzo6VGV4dEluZGljYXRvckluZm8oKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
aW5kZXggMjUzMjJlZDNjNDIuLjMxZTk4Zjc4MGU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTkxMSw2ICs5MTEsOCBAQCBwdWJsaWM6CiAgICAgUmVmPEludGVybmFsc1NldExp
a2U+IGNyZWF0ZUludGVybmFsc1NldExpa2UoKTsKICAgICBSZWY8SW50ZXJuYWxzTWFwTGlrZT4g
Y3JlYXRlSW50ZXJuYWxzTWFwTGlrZSgpOwogCisgICAgU3RyaW5nIGhpZ2hsaWdodFBzZXVkb0Vs
ZW1lbnRDb2xvcihjb25zdCBTdHJpbmcmIGhpZ2hsaWdodE5hbWUsIEVsZW1lbnQmKTsKKwogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCog
Y29udGV4dERvY3VtZW50KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
aW5kZXggNDUyOTIxNmNhNjIuLmVlMDAwY2NjYWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCkBAIC04MTksNCArODE5LDYgQEAgZW51bSBDb21wb3NpdGluZ1BvbGljeSB7CiAK
ICAgICBJbnRlcm5hbHNNYXBMaWtlIGNyZWF0ZUludGVybmFsc01hcExpa2UoKTsKICAgICBJbnRl
cm5hbHNTZXRMaWtlIGNyZWF0ZUludGVybmFsc1NldExpa2UoKTsKKworICAgIERPTVN0cmluZyBo
aWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoRE9NU3RyaW5nIGhpZ2hsaWdodE5hbWUsIEVsZW1l
bnQgZWxlbWVudCk7CiB9Owo=
</data>
<flag name="review"
          id="400838"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385026</attachid>
            <date>2019-12-06 10:35:18 -0800</date>
            <delta_ts>2019-12-06 11:18:24 -0800</delta_ts>
            <desc>patch</desc>
            <filename>highlight-pseudo-element-style-2.patch</filename>
            <type>text/plain</type>
            <size>14337</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmM2MDE2YjcxOS4uYjAwNmRlMGRkZDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0xMi0wNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VwcG9ydCBmb3IgcmVzb2x2aW5nIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudCBzdHlsZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0OTM3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogaGlnaGxpZ2h0L2hp
Z2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGhpZ2hsaWdodC9oaWdobGlnaHQtcHNldWRvLWVsZW1lbnQtc3R5bGUuaHRtbDogQWRkZWQu
CisKIDIwMTktMTItMDUgIHlvdWVubiBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIG1hcGxpa2Ugc2hvdWxkIGRlZmluZSBhIHNldCBtZXRob2QKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2hpZ2hsaWdodC9oaWdobGlnaHQtcHNldWRvLWVsZW1lbnQtc3R5bGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHls
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUw
ZmFhYzg1YmQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaGlnaGxpZ2h0L2hpZ2hs
aWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMSBAQAor
VGVzdHMgY29tcHV0aW5nIHRoZSBoaWdobGlnaHQgcHNldWRvIGVsZW1lbnQgc3R5bGUuCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy5oaWdobGlnaHRQc2V1
ZG9FbGVtZW50Q29sb3IoJ2dyZWVuLXllbGxvdy1yYW5nZScsIHRlc3RkaXYpIGlzICJyZ2IoMCwg
MTI4LCAwKSIKK1BBU1MgaW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignZ3Jl
ZW4teWVsbG93LXJhbmdlJywgdGVzdHNwYW4xKSBpcyAicmdiKDAsIDEyOCwgMCkiCitQQVNTIGlu
dGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2dyZWVuLXllbGxvdy1yYW5nZScs
IHRlc3RzcGFuMikgaXMgInJnYigyNTUsIDI1NSwgMCkiCitQQVNTIGludGVybmFscy5oaWdobGln
aHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2dyZWVuLXllbGxvdy1yYW5nZScsIHRlc3RzcGFuMykgaXMg
InJnYigwLCAxMjgsIDApIgorUEFTUyBpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENv
bG9yKCdibHVlLXJhbmdlJywgdGVzdGRpdikgaXMgIiIKK1BBU1MgaW50ZXJuYWxzLmhpZ2hsaWdo
dFBzZXVkb0VsZW1lbnRDb2xvcignYmx1ZS1yYW5nZScsIHRlc3RzcGFuMSkgaXMgIiIKK1BBU1Mg
aW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignYmx1ZS1yYW5nZScsIHRlc3Rz
cGFuMikgaXMgIiIKK1BBU1MgaW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcign
Ymx1ZS1yYW5nZScsIHRlc3RzcGFuMykgaXMgInJnYigwLCAwLCAyNTUpIgorUEFTUyBpbnRlcm5h
bHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdub24tZXhpc3RlbnQtcmFuZ2UnLCB0ZXN0
ZGl2KSBpcyAiIgorUEFTUyBpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdu
b24tZXhpc3RlbnQtcmFuZ2UnLCB0ZXN0c3BhbjEpIGlzICIiCitQQVNTIGludGVybmFscy5oaWdo
bGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ25vbi1leGlzdGVudC1yYW5nZScsIHRlc3RzcGFuMikg
aXMgIiIKK1BBU1MgaW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignbm9uLWV4
aXN0ZW50LXJhbmdlJywgdGVzdHNwYW4zKSBpcyAiIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2hpZ2hs
aWdodC9oaWdobGlnaHQtcHNldWRvLWVsZW1lbnQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2hp
Z2hsaWdodC9oaWdobGlnaHQtcHNldWRvLWVsZW1lbnQtc3R5bGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGU0ZjQ0MWY4NmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9oaWdobGlnaHQvaGlnaGxpZ2h0LXBzZXVkby1lbGVtZW50LXN0eWxlLmh0
bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgZXhwZXJpbWVudGFsOkhpZ2hsaWdodEFQSUVuYWJsZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorI3Rlc3REaXYgeyBjb2xvcjogcmVkIH0KKzo6aGlnaGxpZ2h0KGdyZWVuLXllbGxvdy1yYW5n
ZSkgeyBjb2xvcjogZ3JlZW4gfQorI3Rlc3RzcGFuMTo6aGlnaGxpZ2h0KGdyZWVuLXllbGxvdy1y
YW5nZSkgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyN0ZXN0c3BhbjI6OmhpZ2hsaWdo
dChncmVlbi15ZWxsb3ctcmFuZ2UpIHsgY29sb3I6IHllbGxvdzsgfQorI3Rlc3RzcGFuMzo6aGln
aGxpZ2h0KGJsdWUtcmFuZ2UpIHsgY29sb3I6IGJsdWUgfQorPC9zdHlsZT4KKzxib2R5PgorPGRp
diBpZD10ZXN0ZGl2PgorICAgIDxzcGFuIGlkPXRlc3RzcGFuMT48L3NwYW4+CisgICAgPHNwYW4g
aWQ9dGVzdHNwYW4yPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD10ZXN0c3BhbjM+PC9zcGFuPgorPC9k
aXY+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdHMgY29tcHV0aW5nIHRoZSBoaWdobGln
aHQgcHNldWRvIGVsZW1lbnQgc3R5bGUuIik7CisKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW50
ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignZ3JlZW4teWVsbG93LXJhbmdlJywg
dGVzdGRpdikiLCAicmdiKDAsIDEyOCwgMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW50
ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignZ3JlZW4teWVsbG93LXJhbmdlJywg
dGVzdHNwYW4xKSIsICJyZ2IoMCwgMTI4LCAwKSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJp
bnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdncmVlbi15ZWxsb3ctcmFuZ2Un
LCB0ZXN0c3BhbjIpIiwgInJnYigyNTUsIDI1NSwgMCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignZ3JlZW4teWVsbG93LXJh
bmdlJywgdGVzdHNwYW4zKSIsICJyZ2IoMCwgMTI4LCAwKSIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKCdibHVlLXJhbmdlJywg
dGVzdGRpdikiLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5oaWdobGln
aHRQc2V1ZG9FbGVtZW50Q29sb3IoJ2JsdWUtcmFuZ2UnLCB0ZXN0c3BhbjEpIiwgIiIpOworc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9y
KCdibHVlLXJhbmdlJywgdGVzdHNwYW4yKSIsICIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
aW50ZXJuYWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignYmx1ZS1yYW5nZScsIHRlc3Rz
cGFuMykiLCAicmdiKDAsIDAsIDI1NSkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJu
YWxzLmhpZ2hsaWdodFBzZXVkb0VsZW1lbnRDb2xvcignbm9uLWV4aXN0ZW50LXJhbmdlJywgdGVz
dGRpdikiLCAiIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5oaWdobGlnaHRQ
c2V1ZG9FbGVtZW50Q29sb3IoJ25vbi1leGlzdGVudC1yYW5nZScsIHRlc3RzcGFuMSkiLCAiIik7
CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImludGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50
Q29sb3IoJ25vbi1leGlzdGVudC1yYW5nZScsIHRlc3RzcGFuMikiLCAiIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImludGVybmFscy5oaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoJ25vbi1l
eGlzdGVudC1yYW5nZScsIHRlc3RzcGFuMykiLCAiIik7CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxMTBjMjliNmY4Li5mOWZkMDM1NGRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTEyLTA2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFw
cGxlLmNvbT4KKworICAgICAgICBTdXBwb3J0IGZvciByZXNvbHZpbmcgaGlnaGxpZ2h0IHBzZXVk
byBlbGVtZW50IHN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQ5MzcKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAg
ICAgICAgVGVzdDogaGlnaGxpZ2h0L2hpZ2hsaWdodC1wc2V1ZG8tZWxlbWVudC1zdHlsZS5odG1s
CisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUgY29uc3QpOgorCisgICAgICAgIFJldHVybnMgYWx3
YXlzIHRydWUgd2hlbiBjaGVja2VkIHdpdGhvdXQgcHNldWRvSWQsIHNvIGl0IGdldHMgYWRkZWQg
dG8gdGhlIHNldCBvZiBzZWVuIHBzZXVkbyBlbGVtZW50cy4KKyAgICAgICAgTWF0Y2ggYXJndW1l
bnQgd2l0aCB0aGUgcHJvdmlkZWQgaGlnaGxpZ2h0IG5hbWUgb3RoZXJ3aXNlLgorCisgICAgICAg
ICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTU2VsZWN0
b3JQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3JQYXJzZXI6OmNvbnN1
bWVQc2V1ZG8pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAg
ICAgICAqIHN0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpFbGVtZW50UnVsZUNvbGxlY3Rvcjo6cnVsZU1hdGNoZXMpOgorICAgICAgICAqIHN0
eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UHNl
dWRvRWxlbWVudFJlcXVlc3Q6OlBzZXVkb0VsZW1lbnRSZXF1ZXN0KToKKworICAgICAgICBBZGQg
dGhlIHJlcXVlc3RlZCBoaWdobGlnaHQgbmFtZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlUmVz
b2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVNjb3BlLmg6CisgICAgICAgICogdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpoaWdobGlnaHRQ
c2V1ZG9FbGVtZW50Q29sb3IpOgorCisgICAgICAgIFRlc3Rpbmcgc3VwcG9ydC4KKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDE5LTEyLTA1ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW0xGQ11bSUZDXSBUcmltIHRyYWlsaW5nIGxldHRlci1zcGFjaW5nIGF0IGlubGluZSBjb250
YWluZXIgYm91bmRhcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXgg
NTU1OWZiZGJiMzcuLjE4MzQ5ZTEwNThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVj
a2VyLmNwcApAQCAtMTE5MSw2ICsxMTkxLDE1IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVj
a09uZShDaGVja2luZ0NvbnRleHQmIGNoZWNraW5nQ29udGV4dCwgY29uc3QgTG9jYWxDb250CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorCisgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRIaWdobGlnaHQ6CisgICAgICAgICAg
ICAvLyBBbHdheXMgbWF0Y2hlcyB3aGVuIG5vdCBzcGVjaWZpY2FsbHkgcmVxdWVzdGVkIHNvIGl0
IGdldHMgYWRkZWQgdG8gdGhlIHBzZXVkb0lkU2V0LgorICAgICAgICAgICAgaWYgKGNoZWNraW5n
Q29udGV4dC5wc2V1ZG9JZCA9PSBQc2V1ZG9JZDo6Tm9uZSkKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIGlmIChjaGVja2luZ0NvbnRleHQucHNldWRvSWQgIT0gUHNl
dWRvSWQ6OkhpZ2hsaWdodCkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
ICAgICByZXR1cm4gc2VsZWN0b3IuYXJndW1lbnRMaXN0KCktPmZpcnN0KCkgPT0gY2hlY2tpbmdD
b250ZXh0Lm5hbWVGb3JIaWdodGxpZ2h0UHNldWRvRWxlbWVudDsKKwogICAgICAgICBkZWZhdWx0
OgogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuaAppbmRleCBjZTMxMDE2NmYwYi4uNTM3NjMxODI3MmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVibGljOgogICAgICAg
ICBjb25zdCBTZWxlY3RvckNoZWNrZXI6Ok1vZGUgcmVzb2x2aW5nTW9kZTsKICAgICAgICAgUHNl
dWRvSWQgcHNldWRvSWQgeyBQc2V1ZG9JZDo6Tm9uZSB9OwogICAgICAgICBPcHRpb25hbDxTdHls
ZVNjcm9sbGJhclN0YXRlPiBzY3JvbGxiYXJTdGF0ZTsKKyAgICAgICAgQXRvbVN0cmluZyBuYW1l
Rm9ySGlnaHRsaWdodFBzZXVkb0VsZW1lbnQ7CiAgICAgICAgIGNvbnN0IENvbnRhaW5lck5vZGUq
IHNjb3BlIHsgbnVsbHB0ciB9OwogICAgICAgICBib29sIGlzTWF0Y2hpbmdIb3N0UHNldWRvQ2xh
c3MgeyBmYWxzZSB9OwogICAgICAgICBjb25zdCBFbGVtZW50KiBzaGFkb3dIb3N0SW5QYXJ0UnVs
ZVNjb3BlIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9DU1NTZWxlY3RvclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Nl
bGVjdG9yUGFyc2VyLmNwcAppbmRleCA1MzhmZjEwYTRlZS4uNjJmMjBjNjg0NzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwCkBAIC02MzAs
MTEgKzYzMCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+IENTU1NlbGVj
dG9yUGFyc2VyOjpjb25zdW1lUHNldWRvKENTU1BhcnNlclRvawogICAgICAgICAgICAgRGlzYWxs
b3dQc2V1ZG9FbGVtZW50c1Njb3BlIHNjb3BlKHRoaXMpOwogCiAgICAgICAgICAgICBhdXRvJiBp
ZGVudCA9IGJsb2NrLmNvbnN1bWVJbmNsdWRpbmdXaGl0ZXNwYWNlKCk7Ci0gICAgICAgICAgICBp
ZiAoaWRlbnQudHlwZSgpICE9IElkZW50VG9rZW4pCisgICAgICAgICAgICBpZiAoaWRlbnQudHlw
ZSgpICE9IElkZW50VG9rZW4gfHwgIWJsb2NrLmF0RW5kKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICAgICAgICAgIGF1dG8gYXJndW1lbnRMaXN0ID0gbWFrZVVuaXF1
ZTxWZWN0b3I8QXRvbVN0cmluZz4+KCk7CiAgICAgICAgICAgICBhcmd1bWVudExpc3QtPmFwcGVu
ZChpZGVudC52YWx1ZSgpLnRvQXRvbVN0cmluZygpKTsKKyAgICAgICAgICAgIHNlbGVjdG9yLT5z
ZXRBcmd1bWVudExpc3QoV1RGTW92ZShhcmd1bWVudExpc3QpKTsKKwogICAgICAgICAgICAgcmV0
dXJuIHNlbGVjdG9yOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0VsZW1lbnRQYXJ0OiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCmluZGV4IGMyZWM0OGVkOWM0Li41ZGNiMjFjNjQ2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEzNCw3ICsxMzQsNyBAQCBwcml2
YXRlOgogcHVibGljOgogICAgIFJlbmRlclN0eWxlKFJlbmRlclN0eWxlJiYpOwogICAgIFJlbmRl
clN0eWxlJiBvcGVyYXRvcj0oUmVuZGVyU3R5bGUmJik7Ci0gICAgflJlbmRlclN0eWxlKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgflJlbmRlclN0eWxlKCk7CiAKICAgICBSZW5kZXJTdHlsZSByZXBs
YWNlKFJlbmRlclN0eWxlJiYpIFdBUk5fVU5VU0VEX1JFVFVSTjsKIApAQCAtMTc0Nyw3ICsxNzQ3
LDcgQEAgcHVibGljOgogICAgIGNvbnN0IENvbG9yJiBib3JkZXJUb3BDb2xvcigpIGNvbnN0IHsg
cmV0dXJuIG1fc3Vycm91bmREYXRhLT5ib3JkZXIudG9wKCkuY29sb3IoKTsgfQogICAgIGNvbnN0
IENvbG9yJiBib3JkZXJCb3R0b21Db2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fc3Vycm91bmREYXRh
LT5ib3JkZXIuYm90dG9tKCkuY29sb3IoKTsgfQogICAgIGNvbnN0IENvbG9yJiBiYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdCB7IHJldHVybiBtX2JhY2tncm91bmREYXRhLT5jb2xvcjsgfQotICAgIGNv
bnN0IENvbG9yJiBjb2xvcigpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGNvbnN0IENvbG9y
JiBjb2xvcigpIGNvbnN0OwogICAgIGNvbnN0IENvbG9yJiBjb2x1bW5SdWxlQ29sb3IoKSBjb25z
dCB7IHJldHVybiBtX3JhcmVOb25Jbmhlcml0ZWREYXRhLT5tdWx0aUNvbC0+cnVsZS5jb2xvcigp
OyB9CiAgICAgY29uc3QgQ29sb3ImIG91dGxpbmVDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFj
a2dyb3VuZERhdGEtPm91dGxpbmUuY29sb3IoKTsgfQogICAgIGNvbnN0IENvbG9yJiB0ZXh0RW1w
aGFzaXNDb2xvcigpIGNvbnN0IHsgcmV0dXJuIG1fcmFyZUluaGVyaXRlZERhdGEtPnRleHRFbXBo
YXNpc0NvbG9yOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVs
ZUNvbGxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rv
ci5jcHAKaW5kZXggN2IwM2M4OWEwN2QuLmQ3MDY4ZDU5YTljIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuY3BwCkBAIC00NzcsNiArNDc3LDcgQEAgaW5s
aW5lIGJvb2wgRWxlbWVudFJ1bGVDb2xsZWN0b3I6OnJ1bGVNYXRjaGVzKGNvbnN0IFJ1bGVEYXRh
JiBydWxlRGF0YSwgdW5zaWduZWQKICAgICBTZWxlY3RvckNoZWNrZXI6OkNoZWNraW5nQ29udGV4
dCBjb250ZXh0KG1fbW9kZSk7CiAgICAgY29udGV4dC5wc2V1ZG9JZCA9IG1fcHNldWRvRWxlbWVu
dFJlcXVlc3QucHNldWRvSWQ7CiAgICAgY29udGV4dC5zY3JvbGxiYXJTdGF0ZSA9IG1fcHNldWRv
RWxlbWVudFJlcXVlc3Quc2Nyb2xsYmFyU3RhdGU7CisgICAgY29udGV4dC5uYW1lRm9ySGlnaHRs
aWdodFBzZXVkb0VsZW1lbnQgPSBtX3BzZXVkb0VsZW1lbnRSZXF1ZXN0LmhpZ2hsaWdodE5hbWU7
CiAgICAgY29udGV4dC5pc01hdGNoaW5nSG9zdFBzZXVkb0NsYXNzID0gbV9pc01hdGNoaW5nSG9z
dFBzZXVkb0NsYXNzOwogICAgIGNvbnRleHQuc2hhZG93SG9zdEluUGFydFJ1bGVTY29wZSA9IG1f
c2hhZG93SG9zdEluUGFydFJ1bGVTY29wZS5nZXQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvRWxlbWVudFJ1bGVDb2xsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKaW5kZXggMGIwMGEyZWMwMzQuLjE4OGFhOGU2ZDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9FbGVtZW50UnVsZUNvbGxlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0VsZW1lbnRSdWxlQ29sbGVjdG9yLmgKQEAgLTQ2LDgg
KzQ2LDE2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCisgICAgUHNldWRvRWxlbWVudFJlcXVl
c3QoUHNldWRvSWQgcHNldWRvSWQsIGNvbnN0IEF0b21TdHJpbmcmIGhpZ2hsaWdodE5hbWUpCisg
ICAgICAgIDogcHNldWRvSWQocHNldWRvSWQpCisgICAgICAgICwgaGlnaGxpZ2h0TmFtZShoaWdo
bGlnaHROYW1lKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHBzZXVkb0lkID09IFBzZXVkb0lkOjpI
aWdobGlnaHQpOworICAgIH0KKwogICAgIFBzZXVkb0lkIHBzZXVkb0lkOwogICAgIE9wdGlvbmFs
PFN0eWxlU2Nyb2xsYmFyU3RhdGU+IHNjcm9sbGJhclN0YXRlOworICAgIEF0b21TdHJpbmcgaGln
aGxpZ2h0TmFtZTsKIH07CiAKIHN0cnVjdCBNYXRjaGVkUnVsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVyLmgKaW5kZXggZDFlNWQ0MTAwYWEuLmU3ZTNmNzcwMWU1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVSZXNvbHZlci5oCkBAIC04OSw3ICs4OSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQga2V5ZnJhbWVTdHlsZXNGb3JBbmltYXRpb24oY29uc3QgRWxlbWVudCYsIGNvbnN0IFJl
bmRlclN0eWxlKiwgS2V5ZnJhbWVMaXN0Jik7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+IHBzZXVkb1N0eWxlRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgY29uc3QgUHNldWRv
RWxlbWVudFJlcXVlc3QmLCBjb25zdCBSZW5kZXJTdHlsZSYgcGFyZW50U3R5bGUsIGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRCb3hTdHlsZSA9IG51bGxwdHIsIGNvbnN0IFNlbGVjdG9yRmlsdGVy
KiA9IG51bGxwdHIpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4gcHNldWRvU3R5bGVGb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBjb25zdCBQc2V1ZG9F
bGVtZW50UmVxdWVzdCYsIGNvbnN0IFJlbmRlclN0eWxlJiBwYXJlbnRTdHlsZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIHBhcmVudEJveFN0eWxlID0gbnVsbHB0ciwgY29uc3QgU2VsZWN0b3JGaWx0ZXIq
ID0gbnVsbHB0cik7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9y
UGFnZShpbnQgcGFnZUluZGV4KTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IGRl
ZmF1bHRTdHlsZUZvckVsZW1lbnQoY29uc3QgRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oCmluZGV4IGVkMTRiNWI2YzdhLi4wMmE4YmI0NmVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGUuaApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8UmVmPFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbj4+IGNvbGxlY3RYU0xUcmFuc2Zvcm1zKCk7CiAjZW5kaWYKIAot
ICAgIFJlc29sdmVyJiByZXNvbHZlcigpOworICAgIFdFQkNPUkVfRVhQT1JUIFJlc29sdmVyJiBy
ZXNvbHZlcigpOwogICAgIFJlc29sdmVyKiByZXNvbHZlcklmRXhpc3RzKCk7CiAgICAgdm9pZCBj
bGVhclJlc29sdmVyKCk7CiAgICAgdm9pZCByZWxlYXNlTWVtb3J5KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggNzNkZTAzNjVhOGYuLjBkMGFhMDc3YjJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0xNzAsNiArMTcwLDcgQEAKICNpbmNsdWRl
ICJTcGVsbENoZWNrZXIuaCIKICNpbmNsdWRlICJTdGF0aWNOb2RlTGlzdC5oIgogI2luY2x1ZGUg
IlN0cmluZ0NhbGxiYWNrLmgiCisjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUg
IlN0eWxlUnVsZS5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJTdHlsZVNo
ZWV0Q29udGVudHMuaCIKQEAgLTUyNDIsNiArNTI0MywyMiBAQCB2b2lkIEludGVybmFsczo6c2V0
SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoYm9vbCBpc1BsYXlpbmcpCiAgICAgUGxhdGZv
cm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2V0SXNQbGF5aW5nVG9BdXRv
bW90aXZlSGVhZFVuaXQoaXNQbGF5aW5nKTsKICNlbmRpZgogfQorCitTdHJpbmcgSW50ZXJuYWxz
OjpoaWdobGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoY29uc3QgU3RyaW5nJiBoaWdobGlnaHROYW1l
LCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIGVsZW1lbnQuZG9jdW1lbnQoKS51cGRhdGVTdHls
ZUlmTmVlZGVkKCk7CisKKyAgICBhdXRvJiBzdHlsZVJlc29sdmVyID0gZWxlbWVudC5kb2N1bWVu
dCgpLnN0eWxlU2NvcGUoKS5yZXNvbHZlcigpOworICAgIGF1dG8qIHBhcmVudFN0eWxlID0gZWxl
bWVudC5jb21wdXRlZFN0eWxlKCk7CisgICAgaWYgKCFwYXJlbnRTdHlsZSkKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIGF1dG8gc3R5bGUgPSBzdHlsZVJlc29sdmVyLnBzZXVkb1N0eWxlRm9y
RWxlbWVudChlbGVtZW50LCB7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodE5hbWUgfSwg
KnBhcmVudFN0eWxlKTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIHN0eWxlLT5jb2xvcigpLmNzc1RleHQoKTsKK30KICAgICAKIEludGVybmFsczo6
VGV4dEluZGljYXRvckluZm86OlRleHRJbmRpY2F0b3JJbmZvKCkKIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCmluZGV4IDI1MzIyZWQzYzQyLi4zMWU5OGY3ODBlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCkBAIC05MTEsNiArOTExLDggQEAgcHVibGljOgogICAgIFJlZjxJ
bnRlcm5hbHNTZXRMaWtlPiBjcmVhdGVJbnRlcm5hbHNTZXRMaWtlKCk7CiAgICAgUmVmPEludGVy
bmFsc01hcExpa2U+IGNyZWF0ZUludGVybmFsc01hcExpa2UoKTsKIAorICAgIFN0cmluZyBoaWdo
bGlnaHRQc2V1ZG9FbGVtZW50Q29sb3IoY29uc3QgU3RyaW5nJiBoaWdobGlnaHROYW1lLCBFbGVt
ZW50Jik7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAg
ICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IDQ1MjkyMTZjYTYyLi5lZTAwMGNjY2FmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtODE5LDQgKzgxOSw2IEBAIGVudW0gQ29tcG9zaXRp
bmdQb2xpY3kgewogCiAgICAgSW50ZXJuYWxzTWFwTGlrZSBjcmVhdGVJbnRlcm5hbHNNYXBMaWtl
KCk7CiAgICAgSW50ZXJuYWxzU2V0TGlrZSBjcmVhdGVJbnRlcm5hbHNTZXRMaWtlKCk7CisKKyAg
ICBET01TdHJpbmcgaGlnaGxpZ2h0UHNldWRvRWxlbWVudENvbG9yKERPTVN0cmluZyBoaWdobGln
aHROYW1lLCBFbGVtZW50IGVsZW1lbnQpOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>