<?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>180646</bug_id>
          
          <creation_ts>2017-12-11 06:11:29 -0800</creation_ts>
          <short_desc>StyleBench improvements</short_desc>
          <delta_ts>2017-12-11 11:42:30 -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>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1380177</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-11 06:11:29 -0800</bug_when>
    <thetext>Add id selectors etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380182</commentid>
    <comment_count>1</comment_count>
      <attachid>328964</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-11 06:22:37 -0800</bug_when>
    <thetext>Created attachment 328964
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380187</commentid>
    <comment_count>2</comment_count>
      <attachid>328967</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-11 07:17:28 -0800</bug_when>
    <thetext>Created attachment 328967
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380190</commentid>
    <comment_count>3</comment_count>
      <attachid>328969</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-11 07:36:50 -0800</bug_when>
    <thetext>Created attachment 328969
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380301</commentid>
    <comment_count>4</comment_count>
      <attachid>328969</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2017-12-11 11:15:02 -0800</bug_when>
    <thetext>Comment on attachment 328969
patch

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

r=me

&gt; PerformanceTests/ChangeLog:8
&gt; +        - Remove :empty rule from global stylesheet. It caused all tests to hit positional pseudo-class code paths.

Do we need a dedicated subtest to cover this pathology, since it showed a performance difference between Safari and Firefox?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380306</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2017-12-11 11:20:07 -0800</bug_when>
    <thetext>&gt; Do we need a dedicated subtest to cover this pathology, since it showed a
&gt; performance difference between Safari and Firefox?

Probably not, it was just a mistake in the test. It is covered by the positional pseudo class test along with other similar cases (we lose to Firefox badly there).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380314</commentid>
    <comment_count>6</comment_count>
      <attachid>328969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-11 11:41:49 -0800</bug_when>
    <thetext>Comment on attachment 328969
patch

Clearing flags on attachment: 328969

Committed r225752: &lt;https://trac.webkit.org/changeset/225752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380315</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-11 11:41:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1380316</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-11 11:42:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/35973513&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328964</attachid>
            <date>2017-12-11 06:22:37 -0800</date>
            <delta_ts>2017-12-11 07:17:28 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-bench-ids.patch</filename>
            <type>text/plain</type>
            <size>6437</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3NDIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE3LTEyLTExICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdHlsZUJlbmNoIGlt
cHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgLSBpbmNsdWRlIHNvbWUgaWQgYXR0cmlidXRlcyBhbmQgaWQgc2VsZWN0b3JzCisgICAgICAg
IC0gY2hhbmNlIHRvIGhhdmUgbW9yZSB0aGFuIDEgY2xhc3NlcyBwZXIgY29tcG91bmQgc2VsZWN0
b3IKKyAgICAgICAgLSBjaGFuZ2UgZGlzdHJpYnV0aW9uIG9mIGVsZW1lbnRzIGFuZCBjbGFzc2Vz
IHRvIGJlIG5vbi11bmlmb3JtCisgICAgICAgIC0gYnVnIGZpeGVzCisKKyAgICAgICAgKiBTdHls
ZUJlbmNoL3Jlc291cmNlcy9zdHlsZS1iZW5jaC5qczoKKyAgICAgICAgKFJhbmRvbS5wcm90b3R5
cGUubnVtYmVyU3F1YXJlV2VpZ2h0ZWRUb0xvdyk6CisgICAgICAgIChSYW5kb20pOgorICAgICAg
ICAoZGVmYXVsdENvbmZpZ3VyYXRpb24pOgorICAgICAgICAocHJvdG90eXBlLnJhbmRvbUVsZW1l
bnROYW1lKToKKyAgICAgICAgKHByb3RvdHlwZS5yYW5kb21JZCk6CisgICAgICAgIChwcm90b3R5
cGUubWFrZUNvbXBvdW5kU2VsZWN0b3IpOgorICAgICAgICAocHJvdG90eXBlLm1ha2VTZWxlY3Rv
cik6CisgICAgICAgIChwcm90b3R5cGUubWFrZUVsZW1lbnQpOgorCiAyMDE3LTEyLTA4ICBLb25z
dGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbcHl0aG9uXSBS
ZXBsYWNlIHByaW50IG9wZXJhdG9yIHdpdGggcHJpbnQoKSBmdW5jdGlvbiBmb3IgcHl0aG9uMyBj
b21wYXRpYmlsaXR5CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL1N0eWxlQmVuY2gvcmVzb3VyY2Vz
L3N0eWxlLWJlbmNoLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1hbmNlVGVzdHMvU3R5bGVCZW5j
aC9yZXNvdXJjZXMvc3R5bGUtYmVuY2guanMJKHJldmlzaW9uIDIyNTYyNSkKKysrIFBlcmZvcm1h
bmNlVGVzdHMvU3R5bGVCZW5jaC9yZXNvdXJjZXMvc3R5bGUtYmVuY2guanMJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDYgKzIxLDEzIEBAIGNsYXNzIFJhbmRvbQogICAgIHsKICAgICAgICAgcmV0dXJu
IHRoaXMubmV4dCAlIHVuZGVyOwogICAgIH0KKworICAgIG51bWJlclNxdWFyZVdlaWdodGVkVG9M
b3codW5kZXIpCisgICAgeworICAgICAgICBjb25zdCByYW5kb20gPSAodGhpcy5uZXh0ICUgMTA0
ODU3NikgLyAxMDQ4NTc2OworICAgICAgICBjb25zdCByYW5kb20yID0gcmFuZG9tICogcmFuZG9t
OworICAgICAgICByZXR1cm4gTWF0aC5mbG9vcihyYW5kb20yICogdW5kZXIpOworICAgIH0KIH0K
IAogZnVuY3Rpb24gbmV4dEFuaW1hdGlvbkZyYW1lKCkKQEAgLTM1LDYgKzQyLDcgQEAgY2xhc3Mg
U3R5bGVCZW5jaAogICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgbmFtZTogJ0RlZmF1bHQn
LAogICAgICAgICAgICAgZWxlbWVudFR5cGVDb3VudDogMTAsCisgICAgICAgICAgICBpZENoYW5j
ZTogMC4wNSwKICAgICAgICAgICAgIGVsZW1lbnRDaGFuY2U6IDAuNSwKICAgICAgICAgICAgIGNs
YXNzQ291bnQ6IDIwMCwKICAgICAgICAgICAgIGNsYXNzQ2hhbmNlOiAwLjMsCkBAIC0xMTAsNiAr
MTE4LDcgQEAgY2xhc3MgU3R5bGVCZW5jaAogICAgIGNvbnN0cnVjdG9yKGNvbmZpZ3VyYXRpb24p
CiAgICAgewogICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOworICAg
ICAgICB0aGlzLmlkQ291bnQgPSAwOwogCiAgICAgICAgIHRoaXMuYmFzZVN0eWxlID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKICAgICAgICAgdGhpcy5iYXNlU3R5bGUudGV4dENv
bnRlbnQgPSBgCkBAIC0xMzcsMTkgKzE0NiwxOSBAQCBjbGFzcyBTdHlsZUJlbmNoCiAgICAgcmFu
ZG9tRWxlbWVudE5hbWUoKQogICAgIHsKICAgICAgICAgY29uc3QgZWxlbWVudFR5cGVDb3VudCA9
IHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50VHlwZUNvdW50OwotICAgICAgICByZXR1cm4gYGVs
ZW0keyB0aGlzLnJhbmRvbS5udW1iZXIoZWxlbWVudFR5cGVDb3VudCkgfWA7CisgICAgICAgIHJl
dHVybiBgZWxlbSR7IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdodGVkVG9Mb3coZWxlbWVu
dFR5cGVDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFuZG9tQ2xhc3NOYW1lKCkKICAgICB7CiAg
ICAgICAgIGNvbnN0IGNsYXNzQ291bnQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uY2xhc3NDb3VudDsK
LSAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51bWJlcihjbGFzc0NvdW50KSB9
YDsKKyAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdo
dGVkVG9Mb3coY2xhc3NDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFuZG9tQ2xhc3NOYW1lRnJv
bVJhbmdlKHJhbmdlKQogICAgIHsKICAgICAgICAgY29uc3QgbWF4aW11bSA9IE1hdGgucm91bmQo
cmFuZ2UgKiB0aGlzLmNvbmZpZ3VyYXRpb24uY2xhc3NDb3VudCk7Ci0gICAgICAgIHJldHVybiBg
Y2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXIobWF4aW11bSkgfWA7CisgICAgICAgIHJldHVybiBg
Y2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXJTcXVhcmVXZWlnaHRlZFRvTG93KG1heGltdW0pIH1g
OwogICAgIH0KIAogICAgIHJhbmRvbUNvbWJpbmF0b3IoKQpAQCAtMTY0LDE5ICsxNzMsMzIgQEAg
Y2xhc3MgU3R5bGVCZW5jaAogICAgICAgICByZXR1cm4gcHNldWRvQ2xhc3Nlc1t0aGlzLnJhbmRv
bS5udW1iZXIocHNldWRvQ2xhc3Nlcy5sZW5ndGgpXQogICAgIH0KIAotICAgIG1ha2VTaW1wbGVT
ZWxlY3RvcihpbmRleCwgbGVuZ3RoKQorICAgIHJhbmRvbUlkKCkKKyAgICB7CisgICAgICAgIGNv
bnN0IGlkQ291bnQgPSB0aGlzLmNvbmZpZ3VyYXRpb24uaWRDaGFuY2UgKiB0aGlzLmNvbmZpZ3Vy
YXRpb24uZWxlbWVudENvdW50IDsKKyAgICAgICAgcmV0dXJuIGBpZCR7IHRoaXMucmFuZG9tLm51
bWJlcihpZENvdW50KSB9YDsKKyAgICB9CisKKyAgICBtYWtlQ29tcG91bmRTZWxlY3RvcihpbmRl
eCwgbGVuZ3RoKQogICAgIHsKKyAgICAgICAgY29uc3QgaXNGaXJzdCA9IGluZGV4ID09IDA7CiAg
ICAgICAgIGNvbnN0IGlzTGFzdCA9IGluZGV4ID09IGxlbmd0aCAtIDE7CiAgICAgICAgIGNvbnN0
IHVzZVBzZXVkb0NsYXNzID0gdGhpcy5yYW5kb20uY2hhbmNlKHRoaXMuY29uZmlndXJhdGlvbi5w
c2V1ZG9DbGFzc0NoYW5jZSkgJiYgdGhpcy5jb25maWd1cmF0aW9uLnBzZXVkb0NsYXNzZXMubGVu
Z3RoOwotICAgICAgICBjb25zdCB1c2VFbGVtZW50ID0gdXNlUHNldWRvQ2xhc3MgfHwgdGhpcy5y
YW5kb20uY2hhbmNlKHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50Q2hhbmNlKTsgLy8gOm50aC1v
Zi10eXBlIGV0YyBvbmx5IG1ha2Ugc2Vuc2Ugd2l0aCBlbGVtZW50Ci0gICAgICAgIGNvbnN0IHVz
ZUNsYXNzID0gIXVzZUVsZW1lbnQgfHwgdGhpcy5yYW5kb20uY2hhbmNlKHRoaXMuY29uZmlndXJh
dGlvbi5jbGFzc0NoYW5jZSk7CisgICAgICAgIGNvbnN0IHVzZUlkID0gaXNGaXJzdCAmJiB0aGlz
LnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLmlkQ2hhbmNlKTsKKyAgICAgICAgY29u
c3QgdXNlRWxlbWVudCA9ICF1c2VJZCAmJiAodXNlUHNldWRvQ2xhc3MgfHwgdGhpcy5yYW5kb20u
Y2hhbmNlKHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50Q2hhbmNlKSk7IC8vIDpudGgtb2YtdHlw
ZSBldGMgb25seSBtYWtlIHNlbnNlIHdpdGggZWxlbWVudAorICAgICAgICBjb25zdCB1c2VDbGFz
cyA9ICF1c2VJZCAmJiAoIXVzZUVsZW1lbnQgfHwgdGhpcy5yYW5kb20uY2hhbmNlKHRoaXMuY29u
ZmlndXJhdGlvbi5jbGFzc0NoYW5jZSkpOwogICAgICAgICBjb25zdCB1c2VCZWZvcmVPckFmdGVy
ID0gaXNMYXN0ICYmIHRoaXMucmFuZG9tLmNoYW5jZSh0aGlzLmNvbmZpZ3VyYXRpb24uYmVmb3Jl
QWZ0ZXJDaGFuY2UpOwogICAgICAgICBsZXQgcmVzdWx0ID0gIiI7CiAgICAgICAgIGlmICh1c2VF
bGVtZW50KQogICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMucmFuZG9tRWxlbWVudE5hbWUoKTsK
KyAgICAgICAgaWYgKHVzZUlkKQorICAgICAgICAgICAgcmVzdWx0ICs9ICIjIiArIHRoaXMucmFu
ZG9tSWQoKTsKICAgICAgICAgaWYgKHVzZUNsYXNzKSB7Ci0gICAgICAgICAgICAvLyBVc2UgYSBz
bWFsbGVyIHBvb2wgb2YgY2xhc3MgbmFtZXMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgc2VsZWN0
b3JzIHRvIGNyZWF0ZSBjb250YWluZXJzLgotICAgICAgICAgICAgcmVzdWx0ICs9ICIuIiArIHRo
aXMucmFuZG9tQ2xhc3NOYW1lRnJvbVJhbmdlKChpbmRleCArIDEpIC8gbGVuZ3RoKTsKKyAgICAg
ICAgICAgIGNvbnN0IGNsYXNzQ291bnQgPSB0aGlzLnJhbmRvbS5udW1iZXJTcXVhcmVXZWlnaHRl
ZFRvTG93KDIpICsgMTsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xhc3NDb3Vu
dDsgKytpKSB7CisgICAgICAgICAgICAgICAgLy8gVXNlIGEgc21hbGxlciBwb29sIG9mIGNsYXNz
IG5hbWVzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIHNlbGVjdG9ycyB0byBjcmVhdGUgY29udGFp
bmVycy4KKyAgICAgICAgICAgICAgICByZXN1bHQgKz0gIi4iICsgdGhpcy5yYW5kb21DbGFzc05h
bWVGcm9tUmFuZ2UoKGluZGV4ICsgMSkgLyBsZW5ndGgpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CiAgICAgICAgIGlmICh1c2VQc2V1ZG9DbGFzcykKICAgICAgICAgICAgIHJlc3VsdCArPSAg
IjoiICsgdGhpcy5yYW5kb21Qc2V1ZG9DbGFzcygpOwpAQCAtMTkyLDEyICsyMTQsMTIgQEAgY2xh
c3MgU3R5bGVCZW5jaAogICAgIG1ha2VTZWxlY3RvcigpCiAgICAgewogICAgICAgICBjb25zdCBs
ZW5ndGggPSB0aGlzLnJhbmRvbS5udW1iZXIodGhpcy5jb25maWd1cmF0aW9uLm1heGltdW1TZWxl
Y3Rvckxlbmd0aCkgKyAxOwotICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5tYWtlU2ltcGxlU2Vs
ZWN0b3IoMCwgbGVuZ3RoKTsKLSAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgeworICAgICAgICBsZXQgcmVzdWx0ID0gdGhpcy5tYWtlQ29tcG91bmRTZWxlY3RvcigwLCBs
ZW5ndGgpOworICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICBjb25zdCBjb21iaW5hdG9yID0gdGhpcy5yYW5kb21Db21iaW5hdG9yKCk7CiAgICAg
ICAgICAgICBpZiAoY29tYmluYXRvciAhPSAnICcpCiAgICAgICAgICAgICAgICAgcmVzdWx0ICs9
ICIgIiArIGNvbWJpbmF0b3I7Ci0gICAgICAgICAgICByZXN1bHQgKz0gIiAiICsgdGhpcy5tYWtl
U2ltcGxlU2VsZWN0b3IoaSwgbGVuZ3RoKTsKKyAgICAgICAgICAgIHJlc3VsdCArPSAiICIgKyB0
aGlzLm1ha2VDb21wb3VuZFNlbGVjdG9yKGksIGxlbmd0aCk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0yNDQsMTAgKzI2NiwxNSBAQCBjbGFzcyBTdHlsZUJl
bmNoCiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRoaXMu
cmFuZG9tRWxlbWVudE5hbWUoKSk7CiAgICAgICAgIGNvbnN0IGhhc0NsYXNzZXMgPSB0aGlzLnJh
bmRvbS5jaGFuY2UoMC41KTsKICAgICAgICAgaWYgKGhhc0NsYXNzZXMpIHsKLSAgICAgICAgICAg
IGNvbnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyKDMpICsgMTsKKyAgICAgICAgICAgIGNv
bnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyU3F1YXJlV2VpZ2h0ZWRUb0xvdygzKSArIDE7
CiAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgICAg
ICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMucmFuZG9tQ2xhc3NOYW1lKCkpOwogICAg
ICAgICB9CisgICAgICAgIGNvbnN0IGhhc0lkID0gdGhpcy5yYW5kb20uY2hhbmNlKHRoaXMuY29u
ZmlndXJhdGlvbi5pZENoYW5jZSk7CisgICAgICAgIGlmIChoYXNJZCkgeworICAgICAgICAgICAg
ZWxlbWVudC5pZCA9IGBpZCR7IHRoaXMuaWRDb3VudCB9YDsKKyAgICAgICAgICAgIHRoaXMuaWRD
b3VudCsrOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328967</attachid>
            <date>2017-12-11 07:17:28 -0800</date>
            <delta_ts>2017-12-11 07:36:50 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-bench-ids-2.patch</filename>
            <type>text/plain</type>
            <size>8897</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3NDIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEyLTExICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdHlsZUJlbmNoIGlt
cHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgLSBSZW1vdmUgOmVtcHR5IHJ1bGUgZnJvbSBnbG9iYWwgc3R5bGVzaGVldC4gSXQgY2F1c2Vk
IGFsbCB0ZXN0cyB0byBoaXQgcG9zaXRpb25hbCBwc2V1ZG8tY2xhc3MgY29kZSBwYXRocy4KKyAg
ICAgICAgLSBJbnN0ZWFkIHVzZSBtaW4td2lkdGggdG8gY3JlYXRlIGVhc3kgZmxleGlibGUgbGF5
b3V0LiBVc2UgaXQgZm9yIDo6YmVmb3JlLzo6YWZ0ZXIgdG9vLgorICAgICAgICAtIEFkZCA6ZW1w
dHkgdG8gcG9zaXRpb25hbCBwc2V1ZG8tY2xhc3MgdGVzdC4KKyAgICAgICAgLSBJbmNsdWRlIHNv
bWUgaWQgYXR0cmlidXRlcyBhbmQgaWQgc2VsZWN0b3JzCisgICAgICAgIC0gQ2hhbmNlIHRvIGhh
dmUgbW9yZSB0aGFuIDEgY2xhc3NlcyBwZXIgY29tcG91bmQgc2VsZWN0b3IKKyAgICAgICAgLSBD
aGFuZ2UgZGlzdHJpYnV0aW9uIG9mIGVsZW1lbnRzIGFuZCBjbGFzc2VzIHRvIGJlIG5vbi11bmlm
b3JtCisgICAgICAgIC0gT3RoZXIgYnVnIGZpeGVzCisKKyAgICAgICAgKiBTdHlsZUJlbmNoL3Jl
c291cmNlcy9zdHlsZS1iZW5jaC5qczoKKyAgICAgICAgKFJhbmRvbS5wcm90b3R5cGUubnVtYmVy
U3F1YXJlV2VpZ2h0ZWRUb0xvdyk6CisgICAgICAgIChSYW5kb20pOgorICAgICAgICAoZGVmYXVs
dENvbmZpZ3VyYXRpb24pOgorICAgICAgICAocHJvdG90eXBlLnJhbmRvbUVsZW1lbnROYW1lKToK
KyAgICAgICAgKHByb3RvdHlwZS5yYW5kb21JZCk6CisgICAgICAgIChwcm90b3R5cGUubWFrZUNv
bXBvdW5kU2VsZWN0b3IpOgorICAgICAgICAocHJvdG90eXBlLm1ha2VTZWxlY3Rvcik6CisgICAg
ICAgIChwcm90b3R5cGUubWFrZUVsZW1lbnQpOgorCiAyMDE3LTEyLTA4ICBLb25zdGFudGluIFRv
a2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbcHl0aG9uXSBSZXBsYWNlIHBy
aW50IG9wZXJhdG9yIHdpdGggcHJpbnQoKSBmdW5jdGlvbiBmb3IgcHl0aG9uMyBjb21wYXRpYmls
aXR5CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL1N0eWxlQmVuY2gvaW5kZXguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL1N0eWxlQmVuY2gvaW5kZXguaHRtbAkocmV2aXNpb24g
MjI1NjI1KQorKysgUGVyZm9ybWFuY2VUZXN0cy9TdHlsZUJlbmNoL2luZGV4Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4K
LSAgICA8dGl0bGU+U3R5bGVCZW5jaCAwLjE8L3RpdGxlPgorICAgIDx0aXRsZT5TdHlsZUJlbmNo
IDAuMjwvdGl0bGU+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9TcGVlZG9t
ZXRlci9yZXNvdXJjZXMvbWFpbi5jc3MiPgogICAgIDxzY3JpcHQgc3JjPSIuLi9TcGVlZG9tZXRl
ci9yZXNvdXJjZXMvbWFpbi5qcyIgZGVmZXI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4u
L1NwZWVkb21ldGVyL3Jlc291cmNlcy9iZW5jaG1hcmstcnVubmVyLmpzIiBkZWZlcj48L3Njcmlw
dD4KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvU3R5bGVCZW5jaC9yZXNvdXJjZXMvc3R5bGUtYmVu
Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9TdHlsZUJlbmNoL3Jlc291cmNl
cy9zdHlsZS1iZW5jaC5qcwkocmV2aXNpb24gMjI1NjI1KQorKysgUGVyZm9ybWFuY2VUZXN0cy9T
dHlsZUJlbmNoL3Jlc291cmNlcy9zdHlsZS1iZW5jaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMjEs
NiArMjEsMTMgQEAgY2xhc3MgUmFuZG9tCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5uZXh0
ICUgdW5kZXI7CiAgICAgfQorCisgICAgbnVtYmVyU3F1YXJlV2VpZ2h0ZWRUb0xvdyh1bmRlcikK
KyAgICB7CisgICAgICAgIGNvbnN0IHJhbmRvbSA9ICh0aGlzLm5leHQgJSAxMDQ4NTc2KSAvIDEw
NDg1NzY7CisgICAgICAgIGNvbnN0IHJhbmRvbTIgPSByYW5kb20gKiByYW5kb207CisgICAgICAg
IHJldHVybiBNYXRoLmZsb29yKHJhbmRvbTIgKiB1bmRlcik7CisgICAgfQogfQogCiBmdW5jdGlv
biBuZXh0QW5pbWF0aW9uRnJhbWUoKQpAQCAtMzUsNiArNDIsNyBAQCBjbGFzcyBTdHlsZUJlbmNo
CiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICBuYW1lOiAnRGVmYXVsdCcsCiAgICAgICAg
ICAgICBlbGVtZW50VHlwZUNvdW50OiAxMCwKKyAgICAgICAgICAgIGlkQ2hhbmNlOiAwLjA1LAog
ICAgICAgICAgICAgZWxlbWVudENoYW5jZTogMC41LAogICAgICAgICAgICAgY2xhc3NDb3VudDog
MjAwLAogICAgICAgICAgICAgY2xhc3NDaGFuY2U6IDAuMywKQEAgLTg1LDYgKzkzLDcgQEAgY2xh
c3MgU3R5bGVCZW5jaAogICAgICAgICAgICAgICAgICdmaXJzdC1vZi10eXBlJywKICAgICAgICAg
ICAgICAgICAnbGFzdC1vZi10eXBlJywKICAgICAgICAgICAgICAgICAnb25seS1vZi10eXBlJywK
KyAgICAgICAgICAgICAgICAnZW1wdHknLAogICAgICAgICAgICAgXSwKICAgICAgICAgfSk7CiAg
ICAgfQpAQCAtMTEwLDYgKzExOSw3IEBAIGNsYXNzIFN0eWxlQmVuY2gKICAgICBjb25zdHJ1Y3Rv
cihjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29u
ZmlndXJhdGlvbjsKKyAgICAgICAgdGhpcy5pZENvdW50ID0gMDsKIAogICAgICAgICB0aGlzLmJh
c2VTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CiAgICAgICAgIHRoaXMu
YmFzZVN0eWxlLnRleHRDb250ZW50ID0gYApAQCAtMTE5LDEwICsxMjksOCBAQCBjbGFzcyBTdHls
ZUJlbmNoCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAjdGVzdHJvb3QgKiB7CiAgICAgICAg
ICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgfQotICAgICAgICAg
ICAgI3Rlc3Ryb290IDplbXB0eSB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6MTBweDsKICAgICAg
ICAgICAgICAgICBoZWlnaHQ6MTBweDsKKyAgICAgICAgICAgICAgICBtaW4td2lkdGg6MTBweDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgYDsKICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRD
aGlsZCh0aGlzLmJhc2VTdHlsZSk7CkBAIC0xMzcsMTkgKzE0NSwxOSBAQCBjbGFzcyBTdHlsZUJl
bmNoCiAgICAgcmFuZG9tRWxlbWVudE5hbWUoKQogICAgIHsKICAgICAgICAgY29uc3QgZWxlbWVu
dFR5cGVDb3VudCA9IHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50VHlwZUNvdW50OwotICAgICAg
ICByZXR1cm4gYGVsZW0keyB0aGlzLnJhbmRvbS5udW1iZXIoZWxlbWVudFR5cGVDb3VudCkgfWA7
CisgICAgICAgIHJldHVybiBgZWxlbSR7IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdodGVk
VG9Mb3coZWxlbWVudFR5cGVDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFuZG9tQ2xhc3NOYW1l
KCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNsYXNzQ291bnQgPSB0aGlzLmNvbmZpZ3VyYXRpb24u
Y2xhc3NDb3VudDsKLSAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51bWJlcihj
bGFzc0NvdW50KSB9YDsKKyAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51bWJl
clNxdWFyZVdlaWdodGVkVG9Mb3coY2xhc3NDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFuZG9t
Q2xhc3NOYW1lRnJvbVJhbmdlKHJhbmdlKQogICAgIHsKICAgICAgICAgY29uc3QgbWF4aW11bSA9
IE1hdGgucm91bmQocmFuZ2UgKiB0aGlzLmNvbmZpZ3VyYXRpb24uY2xhc3NDb3VudCk7Ci0gICAg
ICAgIHJldHVybiBgY2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXIobWF4aW11bSkgfWA7CisgICAg
ICAgIHJldHVybiBgY2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXJTcXVhcmVXZWlnaHRlZFRvTG93
KG1heGltdW0pIH1gOwogICAgIH0KIAogICAgIHJhbmRvbUNvbWJpbmF0b3IoKQpAQCAtMTU4LDI4
ICsxNjYsNDQgQEAgY2xhc3MgU3R5bGVCZW5jaAogICAgICAgICByZXR1cm4gY29tYmluYXRvcnNb
dGhpcy5yYW5kb20ubnVtYmVyKGNvbWJpbmF0b3JzLmxlbmd0aCldCiAgICAgfQogCi0gICAgcmFu
ZG9tUHNldWRvQ2xhc3MoKQorICAgIHJhbmRvbVBzZXVkb0NsYXNzKGlzTGFzdCkKICAgICB7CiAg
ICAgICAgIGNvbnN0IHBzZXVkb0NsYXNzZXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24ucHNldWRvQ2xh
c3NlczsKLSAgICAgICAgcmV0dXJuIHBzZXVkb0NsYXNzZXNbdGhpcy5yYW5kb20ubnVtYmVyKHBz
ZXVkb0NsYXNzZXMubGVuZ3RoKV0KKyAgICAgICAgY29uc3QgcHNldWRvQ2xhc3MgPSBwc2V1ZG9D
bGFzc2VzW3RoaXMucmFuZG9tLm51bWJlcihwc2V1ZG9DbGFzc2VzLmxlbmd0aCldCisgICAgICAg
IGlmICghaXNMYXN0ICYmIHBzZXVkb0NsYXNzID09ICdlbXB0eScpCisgICAgICAgICAgICByZXR1
cm4gdGhpcy5yYW5kb21Qc2V1ZG9DbGFzcyhpc0xhc3QpOworICAgICAgICByZXR1cm4gcHNldWRv
Q2xhc3M7CiAgICAgfQogCi0gICAgbWFrZVNpbXBsZVNlbGVjdG9yKGluZGV4LCBsZW5ndGgpCisg
ICAgcmFuZG9tSWQoKQogICAgIHsKKyAgICAgICAgY29uc3QgaWRDb3VudCA9IHRoaXMuY29uZmln
dXJhdGlvbi5pZENoYW5jZSAqIHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50Q291bnQgOworICAg
ICAgICByZXR1cm4gYGlkJHsgdGhpcy5yYW5kb20ubnVtYmVyKGlkQ291bnQpIH1gOworICAgIH0K
KworICAgIG1ha2VDb21wb3VuZFNlbGVjdG9yKGluZGV4LCBsZW5ndGgpCisgICAgeworICAgICAg
ICBjb25zdCBpc0ZpcnN0ID0gaW5kZXggPT0gMDsKICAgICAgICAgY29uc3QgaXNMYXN0ID0gaW5k
ZXggPT0gbGVuZ3RoIC0gMTsKICAgICAgICAgY29uc3QgdXNlUHNldWRvQ2xhc3MgPSB0aGlzLnJh
bmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLnBzZXVkb0NsYXNzQ2hhbmNlKSAmJiB0aGlz
LmNvbmZpZ3VyYXRpb24ucHNldWRvQ2xhc3Nlcy5sZW5ndGg7Ci0gICAgICAgIGNvbnN0IHVzZUVs
ZW1lbnQgPSB1c2VQc2V1ZG9DbGFzcyB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1
cmF0aW9uLmVsZW1lbnRDaGFuY2UpOyAvLyA6bnRoLW9mLXR5cGUgZXRjIG9ubHkgbWFrZSBzZW5z
ZSB3aXRoIGVsZW1lbnQKLSAgICAgICAgY29uc3QgdXNlQ2xhc3MgPSAhdXNlRWxlbWVudCB8fCB0
aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLmNsYXNzQ2hhbmNlKTsKKyAgICAg
ICAgY29uc3QgdXNlSWQgPSBpc0ZpcnN0ICYmIHRoaXMucmFuZG9tLmNoYW5jZSh0aGlzLmNvbmZp
Z3VyYXRpb24uaWRDaGFuY2UpOworICAgICAgICBjb25zdCB1c2VFbGVtZW50ID0gIXVzZUlkICYm
ICh1c2VQc2V1ZG9DbGFzcyB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9u
LmVsZW1lbnRDaGFuY2UpKTsgLy8gOm50aC1vZi10eXBlIGV0YyBvbmx5IG1ha2Ugc2Vuc2Ugd2l0
aCBlbGVtZW50CisgICAgICAgIGNvbnN0IHVzZUNsYXNzID0gIXVzZUlkICYmICghdXNlRWxlbWVu
dCB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLmNsYXNzQ2hhbmNlKSk7
CiAgICAgICAgIGNvbnN0IHVzZUJlZm9yZU9yQWZ0ZXIgPSBpc0xhc3QgJiYgdGhpcy5yYW5kb20u
Y2hhbmNlKHRoaXMuY29uZmlndXJhdGlvbi5iZWZvcmVBZnRlckNoYW5jZSk7CiAgICAgICAgIGxl
dCByZXN1bHQgPSAiIjsKICAgICAgICAgaWYgKHVzZUVsZW1lbnQpCiAgICAgICAgICAgICByZXN1
bHQgKz0gdGhpcy5yYW5kb21FbGVtZW50TmFtZSgpOworICAgICAgICBpZiAodXNlSWQpCisgICAg
ICAgICAgICByZXN1bHQgKz0gIiMiICsgdGhpcy5yYW5kb21JZCgpOwogICAgICAgICBpZiAodXNl
Q2xhc3MpIHsKLSAgICAgICAgICAgIC8vIFVzZSBhIHNtYWxsZXIgcG9vbCBvZiBjbGFzcyBuYW1l
cyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBzZWxlY3RvcnMgdG8gY3JlYXRlIGNvbnRhaW5lcnMu
Ci0gICAgICAgICAgICByZXN1bHQgKz0gIi4iICsgdGhpcy5yYW5kb21DbGFzc05hbWVGcm9tUmFu
Z2UoKGluZGV4ICsgMSkgLyBsZW5ndGgpOworICAgICAgICAgICAgY29uc3QgY2xhc3NDb3VudCA9
IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdodGVkVG9Mb3coMikgKyAxOworICAgICAgICAg
ICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGFzc0NvdW50OyArK2kpIHsKKyAgICAgICAgICAgICAg
ICAvLyBVc2UgYSBzbWFsbGVyIHBvb2wgb2YgY2xhc3MgbmFtZXMgb24gdGhlIGxlZnQgc2lkZSBv
ZiB0aGUgc2VsZWN0b3JzIHRvIGNyZWF0ZSBjb250YWluZXJzLgorICAgICAgICAgICAgICAgIHJl
c3VsdCArPSAiLiIgKyB0aGlzLnJhbmRvbUNsYXNzTmFtZUZyb21SYW5nZSgoaW5kZXggKyAxKSAv
IGxlbmd0aCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKHVzZVBzZXVk
b0NsYXNzKQotICAgICAgICAgICAgcmVzdWx0ICs9ICAiOiIgKyB0aGlzLnJhbmRvbVBzZXVkb0Ns
YXNzKCk7CisgICAgICAgICAgICByZXN1bHQgKz0gICI6IiArIHRoaXMucmFuZG9tUHNldWRvQ2xh
c3MoaXNMYXN0KTsKICAgICAgICAgaWYgKHVzZUJlZm9yZU9yQWZ0ZXIpIHsKICAgICAgICAgICAg
IGlmICh0aGlzLnJhbmRvbS5jaGFuY2UoMC41KSkKICAgICAgICAgICAgICAgICByZXN1bHQgKz0g
ICI6OmJlZm9yZSI7CkBAIC0xOTIsMTIgKzIxNiwxMiBAQCBjbGFzcyBTdHlsZUJlbmNoCiAgICAg
bWFrZVNlbGVjdG9yKCkKICAgICB7CiAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMucmFuZG9t
Lm51bWJlcih0aGlzLmNvbmZpZ3VyYXRpb24ubWF4aW11bVNlbGVjdG9yTGVuZ3RoKSArIDE7Ci0g
ICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm1ha2VTaW1wbGVTZWxlY3RvcigwLCBsZW5ndGgpOwot
ICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGxldCBy
ZXN1bHQgPSB0aGlzLm1ha2VDb21wb3VuZFNlbGVjdG9yKDAsIGxlbmd0aCk7CisgICAgICAgIGZv
ciAobGV0IGkgPSAxOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0IGNvbWJp
bmF0b3IgPSB0aGlzLnJhbmRvbUNvbWJpbmF0b3IoKTsKICAgICAgICAgICAgIGlmIChjb21iaW5h
dG9yICE9ICcgJykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAiICsgY29tYmluYXRvcjsK
LSAgICAgICAgICAgIHJlc3VsdCArPSAiICIgKyB0aGlzLm1ha2VTaW1wbGVTZWxlY3RvcihpLCBs
ZW5ndGgpOworICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIHRoaXMubWFrZUNvbXBvdW5kU2Vs
ZWN0b3IoaSwgbGVuZ3RoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
IH0KQEAgLTIxMiw3ICsyMzYsNyBAQCBjbGFzcyBTdHlsZUJlbmNoCiAgICAgICAgIGxldCBkZWNs
YXJhdGlvbiA9IGBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoJHt0aGlzLnJhbmRvbUNvbG9yQ29tcG9u
ZW50fSwgJHt0aGlzLnJhbmRvbUNvbG9yQ29tcG9uZW50fSwgJHt0aGlzLnJhbmRvbUNvbG9yQ29t
cG9uZW50fSk7YDsKIAogICAgICAgICBpZiAoc2VsZWN0b3IuZW5kc1dpdGgoJzo6YmVmb3JlJykg
fHwgc2VsZWN0b3IuZW5kc1dpdGgoJzo6YWZ0ZXInKSkKLSAgICAgICAgICAgIGRlY2xhcmF0aW9u
ICs9ICIgY29udGVudDogJ1x4YTAnOyI7CisgICAgICAgICAgICBkZWNsYXJhdGlvbiArPSAiIGNv
bnRlbnQ6ICcnOyBtaW4td2lkdGg6NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsiOwogCiAgICAg
ICAgIHJldHVybiBkZWNsYXJhdGlvbjsKICAgICB9CkBAIC0yNDQsMTAgKzI2OCwxNSBAQCBjbGFz
cyBTdHlsZUJlbmNoCiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KHRoaXMucmFuZG9tRWxlbWVudE5hbWUoKSk7CiAgICAgICAgIGNvbnN0IGhhc0NsYXNzZXMg
PSB0aGlzLnJhbmRvbS5jaGFuY2UoMC41KTsKICAgICAgICAgaWYgKGhhc0NsYXNzZXMpIHsKLSAg
ICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyKDMpICsgMTsKKyAgICAg
ICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyU3F1YXJlV2VpZ2h0ZWRUb0xv
dygzKSArIDE7CiAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kpCiAg
ICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMucmFuZG9tQ2xhc3NOYW1l
KCkpOwogICAgICAgICB9CisgICAgICAgIGNvbnN0IGhhc0lkID0gdGhpcy5yYW5kb20uY2hhbmNl
KHRoaXMuY29uZmlndXJhdGlvbi5pZENoYW5jZSk7CisgICAgICAgIGlmIChoYXNJZCkgeworICAg
ICAgICAgICAgZWxlbWVudC5pZCA9IGBpZCR7IHRoaXMuaWRDb3VudCB9YDsKKyAgICAgICAgICAg
IHRoaXMuaWRDb3VudCsrOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBlbGVtZW50OwogICAg
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328969</attachid>
            <date>2017-12-11 07:36:50 -0800</date>
            <delta_ts>2017-12-11 11:41:49 -0800</delta_ts>
            <desc>patch</desc>
            <filename>style-bench-ids-3.patch</filename>
            <type>text/plain</type>
            <size>9185</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjU3NDIpCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEyLTExICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBTdHlsZUJlbmNoIGlt
cHJvdmVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwNjQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgLSBSZW1vdmUgOmVtcHR5IHJ1bGUgZnJvbSBnbG9iYWwgc3R5bGVzaGVldC4gSXQgY2F1c2Vk
IGFsbCB0ZXN0cyB0byBoaXQgcG9zaXRpb25hbCBwc2V1ZG8tY2xhc3MgY29kZSBwYXRocy4KKyAg
ICAgICAgLSBJbnN0ZWFkIHVzZSBtaW4td2lkdGggdG8gY3JlYXRlIGVhc3kgZmxleGlibGUgbGF5
b3V0LiBVc2UgaXQgZm9yIDo6YmVmb3JlLzo6YWZ0ZXIgdG9vLgorICAgICAgICAtIEFkZCA6ZW1w
dHkgdG8gcG9zaXRpb25hbCBwc2V1ZG8tY2xhc3MgdGVzdC4KKyAgICAgICAgLSBJbmNsdWRlIHNv
bWUgaWQgYXR0cmlidXRlcyBhbmQgaWQgc2VsZWN0b3JzCisgICAgICAgIC0gQ2hhbmNlIHRvIGhh
dmUgbW9yZSB0aGFuIDEgY2xhc3NlcyBwZXIgY29tcG91bmQgc2VsZWN0b3IKKyAgICAgICAgLSBD
aGFuZ2UgZGlzdHJpYnV0aW9uIG9mIGVsZW1lbnRzIGFuZCBjbGFzc2VzIHRvIGJlIG5vbi11bmlm
b3JtCisgICAgICAgIC0gT3RoZXIgYnVnIGZpeGVzCisKKyAgICAgICAgKiBTdHlsZUJlbmNoL3Jl
c291cmNlcy9zdHlsZS1iZW5jaC5qczoKKyAgICAgICAgKFJhbmRvbS5wcm90b3R5cGUubnVtYmVy
U3F1YXJlV2VpZ2h0ZWRUb0xvdyk6CisgICAgICAgIChSYW5kb20pOgorICAgICAgICAoZGVmYXVs
dENvbmZpZ3VyYXRpb24pOgorICAgICAgICAocHJvdG90eXBlLnJhbmRvbUVsZW1lbnROYW1lKToK
KyAgICAgICAgKHByb3RvdHlwZS5yYW5kb21JZCk6CisgICAgICAgIChwcm90b3R5cGUubWFrZUNv
bXBvdW5kU2VsZWN0b3IpOgorICAgICAgICAocHJvdG90eXBlLm1ha2VTZWxlY3Rvcik6CisgICAg
ICAgIChwcm90b3R5cGUubWFrZUVsZW1lbnQpOgorCiAyMDE3LTEyLTA4ICBLb25zdGFudGluIFRv
a2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbcHl0aG9uXSBSZXBsYWNlIHBy
aW50IG9wZXJhdG9yIHdpdGggcHJpbnQoKSBmdW5jdGlvbiBmb3IgcHl0aG9uMyBjb21wYXRpYmls
aXR5CkluZGV4OiBQZXJmb3JtYW5jZVRlc3RzL1N0eWxlQmVuY2gvaW5kZXguaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBQZXJmb3JtYW5jZVRlc3RzL1N0eWxlQmVuY2gvaW5kZXguaHRtbAkocmV2aXNpb24g
MjI1NjI1KQorKysgUGVyZm9ybWFuY2VUZXN0cy9TdHlsZUJlbmNoL2luZGV4Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxoZWFkPgogICAgIDxtZXRhIGh0dHAt
ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4K
LSAgICA8dGl0bGU+U3R5bGVCZW5jaCAwLjE8L3RpdGxlPgorICAgIDx0aXRsZT5TdHlsZUJlbmNo
IDAuMjwvdGl0bGU+CiAgICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9TcGVlZG9t
ZXRlci9yZXNvdXJjZXMvbWFpbi5jc3MiPgogICAgIDxzY3JpcHQgc3JjPSIuLi9TcGVlZG9tZXRl
ci9yZXNvdXJjZXMvbWFpbi5qcyIgZGVmZXI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9Ii4u
L1NwZWVkb21ldGVyL3Jlc291cmNlcy9iZW5jaG1hcmstcnVubmVyLmpzIiBkZWZlcj48L3Njcmlw
dD4KSW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvU3R5bGVCZW5jaC9yZXNvdXJjZXMvc3R5bGUtYmVu
Y2guanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9TdHlsZUJlbmNoL3Jlc291cmNl
cy9zdHlsZS1iZW5jaC5qcwkocmV2aXNpb24gMjI1NjI1KQorKysgUGVyZm9ybWFuY2VUZXN0cy9T
dHlsZUJlbmNoL3Jlc291cmNlcy9zdHlsZS1iZW5jaC5qcwkod29ya2luZyBjb3B5KQpAQCAtMTIs
MTUgKzEyLDI3IEBAIGNsYXNzIFJhbmRvbQogICAgICAgICByZXR1cm4gdGhpcy5zZWVkID0gdGhp
cy5zZWVkICogMTY4MDcgJSAyMTQ3NDgzNjQ3OwogICAgIH0KIAorICAgIHVuZGVyT25lKCkKKyAg
ICB7CisgICAgICAgIHJldHVybiAodGhpcy5uZXh0ICUgMTA0ODU3NikgLyAxMDQ4NTc2OworICAg
IH0KKwogICAgIGNoYW5jZShjaGFuY2UpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5uZXh0
ICUgMTA0ODU3NiA8IGNoYW5jZSAqIDEwNDg1NzY7CisgICAgICAgIHJldHVybiB0aGlzLnVuZGVy
T25lKCkgPCBjaGFuY2U7CiAgICAgfQogCiAgICAgbnVtYmVyKHVuZGVyKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMubmV4dCAlIHVuZGVyOwogICAgIH0KKworICAgIG51bWJlclNxdWFyZVdl
aWdodGVkVG9Mb3codW5kZXIpCisgICAgeworICAgICAgICBjb25zdCByYW5kb20gPSB0aGlzLnVu
ZGVyT25lKCk7CisgICAgICAgIGNvbnN0IHJhbmRvbTIgPSByYW5kb20gKiByYW5kb207CisgICAg
ICAgIHJldHVybiBNYXRoLmZsb29yKHJhbmRvbTIgKiB1bmRlcik7CisgICAgfQogfQogCiBmdW5j
dGlvbiBuZXh0QW5pbWF0aW9uRnJhbWUoKQpAQCAtMzUsNiArNDcsNyBAQCBjbGFzcyBTdHlsZUJl
bmNoCiAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICBuYW1lOiAnRGVmYXVsdCcsCiAgICAg
ICAgICAgICBlbGVtZW50VHlwZUNvdW50OiAxMCwKKyAgICAgICAgICAgIGlkQ2hhbmNlOiAwLjA1
LAogICAgICAgICAgICAgZWxlbWVudENoYW5jZTogMC41LAogICAgICAgICAgICAgY2xhc3NDb3Vu
dDogMjAwLAogICAgICAgICAgICAgY2xhc3NDaGFuY2U6IDAuMywKQEAgLTg1LDYgKzk4LDcgQEAg
Y2xhc3MgU3R5bGVCZW5jaAogICAgICAgICAgICAgICAgICdmaXJzdC1vZi10eXBlJywKICAgICAg
ICAgICAgICAgICAnbGFzdC1vZi10eXBlJywKICAgICAgICAgICAgICAgICAnb25seS1vZi10eXBl
JywKKyAgICAgICAgICAgICAgICAnZW1wdHknLAogICAgICAgICAgICAgXSwKICAgICAgICAgfSk7
CiAgICAgfQpAQCAtMTEwLDYgKzEyNCw3IEBAIGNsYXNzIFN0eWxlQmVuY2gKICAgICBjb25zdHJ1
Y3Rvcihjb25maWd1cmF0aW9uKQogICAgIHsKICAgICAgICAgdGhpcy5jb25maWd1cmF0aW9uID0g
Y29uZmlndXJhdGlvbjsKKyAgICAgICAgdGhpcy5pZENvdW50ID0gMDsKIAogICAgICAgICB0aGlz
LmJhc2VTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CiAgICAgICAgIHRo
aXMuYmFzZVN0eWxlLnRleHRDb250ZW50ID0gYApAQCAtMTE5LDEwICsxMzQsOCBAQCBjbGFzcyBT
dHlsZUJlbmNoCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAjdGVzdHJvb3QgKiB7CiAgICAg
ICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgI3Rlc3Ryb290IDplbXB0eSB7Ci0gICAgICAgICAgICAgICAgd2lkdGg6MTBweDsKICAg
ICAgICAgICAgICAgICBoZWlnaHQ6MTBweDsKKyAgICAgICAgICAgICAgICBtaW4td2lkdGg6MTBw
eDsKICAgICAgICAgICAgIH0KICAgICAgICAgYDsKICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBl
bmRDaGlsZCh0aGlzLmJhc2VTdHlsZSk7CkBAIC0xMzcsMTkgKzE1MCwxOSBAQCBjbGFzcyBTdHls
ZUJlbmNoCiAgICAgcmFuZG9tRWxlbWVudE5hbWUoKQogICAgIHsKICAgICAgICAgY29uc3QgZWxl
bWVudFR5cGVDb3VudCA9IHRoaXMuY29uZmlndXJhdGlvbi5lbGVtZW50VHlwZUNvdW50OwotICAg
ICAgICByZXR1cm4gYGVsZW0keyB0aGlzLnJhbmRvbS5udW1iZXIoZWxlbWVudFR5cGVDb3VudCkg
fWA7CisgICAgICAgIHJldHVybiBgZWxlbSR7IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdo
dGVkVG9Mb3coZWxlbWVudFR5cGVDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFuZG9tQ2xhc3NO
YW1lKCkKICAgICB7CiAgICAgICAgIGNvbnN0IGNsYXNzQ291bnQgPSB0aGlzLmNvbmZpZ3VyYXRp
b24uY2xhc3NDb3VudDsKLSAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51bWJl
cihjbGFzc0NvdW50KSB9YDsKKyAgICAgICAgcmV0dXJuIGBjbGFzcyR7IHRoaXMucmFuZG9tLm51
bWJlclNxdWFyZVdlaWdodGVkVG9Mb3coY2xhc3NDb3VudCkgfWA7CiAgICAgfQogCiAgICAgcmFu
ZG9tQ2xhc3NOYW1lRnJvbVJhbmdlKHJhbmdlKQogICAgIHsKICAgICAgICAgY29uc3QgbWF4aW11
bSA9IE1hdGgucm91bmQocmFuZ2UgKiB0aGlzLmNvbmZpZ3VyYXRpb24uY2xhc3NDb3VudCk7Ci0g
ICAgICAgIHJldHVybiBgY2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXIobWF4aW11bSkgfWA7Cisg
ICAgICAgIHJldHVybiBgY2xhc3MkeyB0aGlzLnJhbmRvbS5udW1iZXJTcXVhcmVXZWlnaHRlZFRv
TG93KG1heGltdW0pIH1gOwogICAgIH0KIAogICAgIHJhbmRvbUNvbWJpbmF0b3IoKQpAQCAtMTU4
LDI4ICsxNzEsNDQgQEAgY2xhc3MgU3R5bGVCZW5jaAogICAgICAgICByZXR1cm4gY29tYmluYXRv
cnNbdGhpcy5yYW5kb20ubnVtYmVyKGNvbWJpbmF0b3JzLmxlbmd0aCldCiAgICAgfQogCi0gICAg
cmFuZG9tUHNldWRvQ2xhc3MoKQorICAgIHJhbmRvbVBzZXVkb0NsYXNzKGlzTGFzdCkKICAgICB7
CiAgICAgICAgIGNvbnN0IHBzZXVkb0NsYXNzZXMgPSB0aGlzLmNvbmZpZ3VyYXRpb24ucHNldWRv
Q2xhc3NlczsKLSAgICAgICAgcmV0dXJuIHBzZXVkb0NsYXNzZXNbdGhpcy5yYW5kb20ubnVtYmVy
KHBzZXVkb0NsYXNzZXMubGVuZ3RoKV0KKyAgICAgICAgY29uc3QgcHNldWRvQ2xhc3MgPSBwc2V1
ZG9DbGFzc2VzW3RoaXMucmFuZG9tLm51bWJlcihwc2V1ZG9DbGFzc2VzLmxlbmd0aCldCisgICAg
ICAgIGlmICghaXNMYXN0ICYmIHBzZXVkb0NsYXNzID09ICdlbXB0eScpCisgICAgICAgICAgICBy
ZXR1cm4gdGhpcy5yYW5kb21Qc2V1ZG9DbGFzcyhpc0xhc3QpOworICAgICAgICByZXR1cm4gcHNl
dWRvQ2xhc3M7CisgICAgfQorCisgICAgcmFuZG9tSWQoKQorICAgIHsKKyAgICAgICAgY29uc3Qg
aWRDb3VudCA9IHRoaXMuY29uZmlndXJhdGlvbi5pZENoYW5jZSAqIHRoaXMuY29uZmlndXJhdGlv
bi5lbGVtZW50Q291bnQgOworICAgICAgICByZXR1cm4gYGlkJHsgdGhpcy5yYW5kb20ubnVtYmVy
KGlkQ291bnQpIH1gOwogICAgIH0KIAotICAgIG1ha2VTaW1wbGVTZWxlY3RvcihpbmRleCwgbGVu
Z3RoKQorICAgIG1ha2VDb21wb3VuZFNlbGVjdG9yKGluZGV4LCBsZW5ndGgpCiAgICAgeworICAg
ICAgICBjb25zdCBpc0ZpcnN0ID0gaW5kZXggPT0gMDsKICAgICAgICAgY29uc3QgaXNMYXN0ID0g
aW5kZXggPT0gbGVuZ3RoIC0gMTsKICAgICAgICAgY29uc3QgdXNlUHNldWRvQ2xhc3MgPSB0aGlz
LnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLnBzZXVkb0NsYXNzQ2hhbmNlKSAmJiB0
aGlzLmNvbmZpZ3VyYXRpb24ucHNldWRvQ2xhc3Nlcy5sZW5ndGg7Ci0gICAgICAgIGNvbnN0IHVz
ZUVsZW1lbnQgPSB1c2VQc2V1ZG9DbGFzcyB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25m
aWd1cmF0aW9uLmVsZW1lbnRDaGFuY2UpOyAvLyA6bnRoLW9mLXR5cGUgZXRjIG9ubHkgbWFrZSBz
ZW5zZSB3aXRoIGVsZW1lbnQKLSAgICAgICAgY29uc3QgdXNlQ2xhc3MgPSAhdXNlRWxlbWVudCB8
fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLmNsYXNzQ2hhbmNlKTsKKyAg
ICAgICAgY29uc3QgdXNlSWQgPSBpc0ZpcnN0ICYmIHRoaXMucmFuZG9tLmNoYW5jZSh0aGlzLmNv
bmZpZ3VyYXRpb24uaWRDaGFuY2UpOworICAgICAgICBjb25zdCB1c2VFbGVtZW50ID0gIXVzZUlk
ICYmICh1c2VQc2V1ZG9DbGFzcyB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0
aW9uLmVsZW1lbnRDaGFuY2UpKTsgLy8gOm50aC1vZi10eXBlIGV0YyBvbmx5IG1ha2Ugc2Vuc2Ug
d2l0aCBlbGVtZW50CisgICAgICAgIGNvbnN0IHVzZUNsYXNzID0gIXVzZUlkICYmICghdXNlRWxl
bWVudCB8fCB0aGlzLnJhbmRvbS5jaGFuY2UodGhpcy5jb25maWd1cmF0aW9uLmNsYXNzQ2hhbmNl
KSk7CiAgICAgICAgIGNvbnN0IHVzZUJlZm9yZU9yQWZ0ZXIgPSBpc0xhc3QgJiYgdGhpcy5yYW5k
b20uY2hhbmNlKHRoaXMuY29uZmlndXJhdGlvbi5iZWZvcmVBZnRlckNoYW5jZSk7CiAgICAgICAg
IGxldCByZXN1bHQgPSAiIjsKICAgICAgICAgaWYgKHVzZUVsZW1lbnQpCiAgICAgICAgICAgICBy
ZXN1bHQgKz0gdGhpcy5yYW5kb21FbGVtZW50TmFtZSgpOworICAgICAgICBpZiAodXNlSWQpCisg
ICAgICAgICAgICByZXN1bHQgKz0gIiMiICsgdGhpcy5yYW5kb21JZCgpOwogICAgICAgICBpZiAo
dXNlQ2xhc3MpIHsKLSAgICAgICAgICAgIC8vIFVzZSBhIHNtYWxsZXIgcG9vbCBvZiBjbGFzcyBu
YW1lcyBvbiB0aGUgbGVmdCBzaWRlIG9mIHRoZSBzZWxlY3RvcnMgdG8gY3JlYXRlIGNvbnRhaW5l
cnMuCi0gICAgICAgICAgICByZXN1bHQgKz0gIi4iICsgdGhpcy5yYW5kb21DbGFzc05hbWVGcm9t
UmFuZ2UoKGluZGV4ICsgMSkgLyBsZW5ndGgpOworICAgICAgICAgICAgY29uc3QgY2xhc3NDb3Vu
dCA9IHRoaXMucmFuZG9tLm51bWJlclNxdWFyZVdlaWdodGVkVG9Mb3coMikgKyAxOworICAgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjbGFzc0NvdW50OyArK2kpIHsKKyAgICAgICAgICAg
ICAgICAvLyBVc2UgYSBzbWFsbGVyIHBvb2wgb2YgY2xhc3MgbmFtZXMgb24gdGhlIGxlZnQgc2lk
ZSBvZiB0aGUgc2VsZWN0b3JzIHRvIGNyZWF0ZSBjb250YWluZXJzLgorICAgICAgICAgICAgICAg
IHJlc3VsdCArPSAiLiIgKyB0aGlzLnJhbmRvbUNsYXNzTmFtZUZyb21SYW5nZSgoaW5kZXggKyAx
KSAvIGxlbmd0aCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgaWYgKHVzZVBz
ZXVkb0NsYXNzKQotICAgICAgICAgICAgcmVzdWx0ICs9ICAiOiIgKyB0aGlzLnJhbmRvbVBzZXVk
b0NsYXNzKCk7CisgICAgICAgICAgICByZXN1bHQgKz0gICI6IiArIHRoaXMucmFuZG9tUHNldWRv
Q2xhc3MoaXNMYXN0KTsKICAgICAgICAgaWYgKHVzZUJlZm9yZU9yQWZ0ZXIpIHsKICAgICAgICAg
ICAgIGlmICh0aGlzLnJhbmRvbS5jaGFuY2UoMC41KSkKICAgICAgICAgICAgICAgICByZXN1bHQg
Kz0gICI6OmJlZm9yZSI7CkBAIC0xOTIsMTIgKzIyMSwxMiBAQCBjbGFzcyBTdHlsZUJlbmNoCiAg
ICAgbWFrZVNlbGVjdG9yKCkKICAgICB7CiAgICAgICAgIGNvbnN0IGxlbmd0aCA9IHRoaXMucmFu
ZG9tLm51bWJlcih0aGlzLmNvbmZpZ3VyYXRpb24ubWF4aW11bVNlbGVjdG9yTGVuZ3RoKSArIDE7
Ci0gICAgICAgIGxldCByZXN1bHQgPSB0aGlzLm1ha2VTaW1wbGVTZWxlY3RvcigwLCBsZW5ndGgp
OwotICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGxl
dCByZXN1bHQgPSB0aGlzLm1ha2VDb21wb3VuZFNlbGVjdG9yKDAsIGxlbmd0aCk7CisgICAgICAg
IGZvciAobGV0IGkgPSAxOyBpIDwgbGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIGNvbnN0IGNv
bWJpbmF0b3IgPSB0aGlzLnJhbmRvbUNvbWJpbmF0b3IoKTsKICAgICAgICAgICAgIGlmIChjb21i
aW5hdG9yICE9ICcgJykKICAgICAgICAgICAgICAgICByZXN1bHQgKz0gIiAiICsgY29tYmluYXRv
cjsKLSAgICAgICAgICAgIHJlc3VsdCArPSAiICIgKyB0aGlzLm1ha2VTaW1wbGVTZWxlY3Rvcihp
LCBsZW5ndGgpOworICAgICAgICAgICAgcmVzdWx0ICs9ICIgIiArIHRoaXMubWFrZUNvbXBvdW5k
U2VsZWN0b3IoaSwgbGVuZ3RoKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gcmVzdWx0Owog
ICAgIH0KQEAgLTIxMiw3ICsyNDEsNyBAQCBjbGFzcyBTdHlsZUJlbmNoCiAgICAgICAgIGxldCBk
ZWNsYXJhdGlvbiA9IGBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoJHt0aGlzLnJhbmRvbUNvbG9yQ29t
cG9uZW50fSwgJHt0aGlzLnJhbmRvbUNvbG9yQ29tcG9uZW50fSwgJHt0aGlzLnJhbmRvbUNvbG9y
Q29tcG9uZW50fSk7YDsKIAogICAgICAgICBpZiAoc2VsZWN0b3IuZW5kc1dpdGgoJzo6YmVmb3Jl
JykgfHwgc2VsZWN0b3IuZW5kc1dpdGgoJzo6YWZ0ZXInKSkKLSAgICAgICAgICAgIGRlY2xhcmF0
aW9uICs9ICIgY29udGVudDogJ1x4YTAnOyI7CisgICAgICAgICAgICBkZWNsYXJhdGlvbiArPSAi
IGNvbnRlbnQ6ICcnOyBtaW4td2lkdGg6NXB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsiOwogCiAg
ICAgICAgIHJldHVybiBkZWNsYXJhdGlvbjsKICAgICB9CkBAIC0yNDQsMTAgKzI3MywxNSBAQCBj
bGFzcyBTdHlsZUJlbmNoCiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KHRoaXMucmFuZG9tRWxlbWVudE5hbWUoKSk7CiAgICAgICAgIGNvbnN0IGhhc0NsYXNz
ZXMgPSB0aGlzLnJhbmRvbS5jaGFuY2UoMC41KTsKICAgICAgICAgaWYgKGhhc0NsYXNzZXMpIHsK
LSAgICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyKDMpICsgMTsKKyAg
ICAgICAgICAgIGNvbnN0IGNvdW50ID0gdGhpcy5yYW5kb20ubnVtYmVyU3F1YXJlV2VpZ2h0ZWRU
b0xvdygzKSArIDE7CiAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyArK2kp
CiAgICAgICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMucmFuZG9tQ2xhc3NO
YW1lKCkpOwogICAgICAgICB9CisgICAgICAgIGNvbnN0IGhhc0lkID0gdGhpcy5yYW5kb20uY2hh
bmNlKHRoaXMuY29uZmlndXJhdGlvbi5pZENoYW5jZSk7CisgICAgICAgIGlmIChoYXNJZCkgewor
ICAgICAgICAgICAgZWxlbWVudC5pZCA9IGBpZCR7IHRoaXMuaWRDb3VudCB9YDsKKyAgICAgICAg
ICAgIHRoaXMuaWRDb3VudCsrOworICAgICAgICB9CiAgICAgICAgIHJldHVybiBlbGVtZW50Owog
ICAgIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>