<?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>112264</bug_id>
          
          <creation_ts>2013-03-13 09:15:25 -0700</creation_ts>
          <short_desc>Web Inspector: Flame Chart. Rewrite drawing procedure for better performance.</short_desc>
          <delta_ts>2013-03-14 00:40:37 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>854346</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-13 09:15:25 -0700</bug_when>
    <thetext>The current implementation is slow and produces garbage.
The new one calculates almost everything only once.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854358</commentid>
    <comment_count>1</comment_count>
      <attachid>192936</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-13 09:26:13 -0700</bug_when>
    <thetext>Created attachment 192936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855020</commentid>
    <comment_count>2</comment_count>
      <attachid>192936</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-03-14 00:32:57 -0700</bug_when>
    <thetext>Comment on attachment 192936
Patch

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

&gt; Source/WebCore/inspector/front-end/FlameChart.js:87
&gt; +        var startTimes = new Float32Array(nodeCount);

Does it make any difference compared to new Array(nodeCount) ?

&gt; Source/WebCore/inspector/front-end/FlameChart.js:94
&gt; +        function appendReversedArray(toArray, fromArray) {

style: { on next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855023</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-03-14 00:40:37 -0700</bug_when>
    <thetext>Committed r145790: &lt;http://trac.webkit.org/changeset/145790&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192936</attachid>
            <date>2013-03-13 09:26:13 -0700</date>
            <delta_ts>2013-03-14 00:32:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112264-20130313202209.patch</filename>
            <type>text/plain</type>
            <size>14994</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQwZTk5ZjUxYTJhNmUy
MmExMTEyZGQ1MWI2NmFkZjMxYzdlMDQzMC4uMWY0N2JhYjI0MGE3YWNmZmU1M2M3MjQ3ODQ0ODBk
NjRjYTM1OTZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAzLTEzICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBGbGFtZSBDaGFydC4gUmV3cml0ZSBkcmF3aW5nIHByb2NlZHVyZSBmb3IgYmV0dGVyIHBl
cmZvcm1hbmNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTEyMjY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSSB0cmF2ZXJzZXMgdGhlIHByb2ZpbGUgdHJlZSBpbiBjYWxjdWxhdGVUaW1lbGluZURhdGEg
YW5kIGNhbGN1bGF0ZXMgYWxsIHRoZSBzaXplcyBhbmQgY29sb3JzLgorICAgICAgICBMYXRlciBp
biBkcmF3IGNvZGUgd2UgbGluZWFyeSBwYXNzIHRoZSBhcnJheSBhbmQgZHJhdyBpdGVtcy4KKyAg
ICAgICAgQWxzbyB3ZSBjb3VsZCBlYXNpbHkgc3dhcCB0byBhbm90aGVyIGZvcm1hdCBvZiB0aGUg
cHJvZmlsZS4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qczoK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5fbm9kZUNvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5fY2FsY3VsYXRlVGltZWxpbmVEYXRhLmFwcGVuZFJldmVy
c2VkQXJyYXkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLl9j
YWxjdWxhdGVUaW1lbGluZURhdGEpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQu
cHJvdG90eXBlLl9nZXRQb3BvdmVyQW5jaG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GbGFt
ZUNoYXJ0LnByb3RvdHlwZS5fc2hvd1BvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZs
YW1lQ2hhcnQucHJvdG90eXBlLl9oaWRlUG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmxhbWVDaGFydC5wcm90b3R5cGUuX29uQ2xpY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZs
YW1lQ2hhcnQucHJvdG90eXBlLl9vbk1vdXNlTW92ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RmxhbWVDaGFydC5wcm90b3R5cGUuX2Nvb3JkaW5hdGVzVG9Ob2RlSW5kZXgpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQucHJvdG90eXBlLm9uUmVzaXplKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZS5kcmF3KToKKwogMjAxMy0wMy0xMyAgTWlr
ZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBhc3MgdGhlIFhTU0F1ZGl0
b3IncyByZXBvcnQgVVJMIHRvIHRoZSBYU1NBdWRpdG9yRGVsZWdhdGUgb24gdGhlIG1haW4gdGhy
ZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFt
ZUNoYXJ0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9GbGFtZUNoYXJ0
LmpzCmluZGV4IGJmMzY1MWViN2I4Y2FiNTU0YTA5OGQxZWNjN2JlNjQ5ZTdlZmVjZGUuLmJiZGNh
MGVlZTZlZGQ0NWZjNDFmNmQxZTMxYWE3NTk2NTA5ZGI2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmxhbWVDaGFydC5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZsYW1lQ2hhcnQuanMKQEAgLTQyLDE1ICs0MiwxNiBA
QCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydCA9IGZ1bmN0aW9uKGNwdVByb2ZpbGVWaWV3KQogICAg
IHRoaXMuX2NhbnZhcyA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiY2FudmFzIik7CiAgICAg
dGhpcy5fY3B1UHJvZmlsZVZpZXcgPSBjcHVQcm9maWxlVmlldzsKICAgICB0aGlzLl94U2NhbGVG
YWN0b3IgPSAwLjA7Ci0gICAgdGhpcy5feVNjYWxlRmFjdG9yID0gMTA7Ci0gICAgdGhpcy5fbWlu
V2lkdGggPSAwOworICAgIHRoaXMuX2JhckhlaWdodCA9IDEwOworICAgIHRoaXMuX21pbldpZHRo
ID0gMTsKICAgICB0aGlzLmVsZW1lbnQub25tb3VzZW1vdmUgPSB0aGlzLl9vbk1vdXNlTW92ZS5i
aW5kKHRoaXMpOwogICAgIHRoaXMuZWxlbWVudC5vbmNsaWNrID0gdGhpcy5fb25DbGljay5iaW5k
KHRoaXMpOwogICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92
ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyks
IHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcykpOworICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIu
c2V0VGltZW91dCgzMDApOwogICAgIHRoaXMuX2FuY2hvckVsZW1lbnQgPSB0aGlzLmVsZW1lbnQu
Y3JlYXRlQ2hpbGQoInNwYW4iKTsKICAgICB0aGlzLl9hbmNob3JFbGVtZW50LmNsYXNzTmFtZSA9
ICJpdGVtLWFuY2hvciI7CiAgICAgdGhpcy5fbGlua2lmaWVyID0gbmV3IFdlYkluc3BlY3Rvci5M
aW5raWZpZXIoKTsKLSAgICB0aGlzLl9jb2xvckluZGV4ZXMgPSB7IH07CisgICAgdGhpcy5faGln
aGxpZ2h0ZWROb2RlSW5kZXggPSAtMTsKIH0KIAogV2ViSW5zcGVjdG9yLkZsYW1lQ2hhcnQuRXZl
bnRzID0gewpAQCAtNTgsMTYgKzU5LDEwNiBAQCBXZWJJbnNwZWN0b3IuRmxhbWVDaGFydC5FdmVu
dHMgPSB7CiB9CiAKIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKKyAgICBf
bm9kZUNvdW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgbm9kZXMgPSB0aGlzLl9j
cHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC5jaGlsZHJlbi5zbGljZSgpOworCisgICAgICAgIHZh
ciBub2RlQ291bnQgPSAwOworICAgICAgICB3aGlsZSAobm9kZXMubGVuZ3RoKSB7CisgICAgICAg
ICAgICB2YXIgbm9kZSA9IG5vZGVzLnBvcCgpOworICAgICAgICAgICAgKytub2RlQ291bnQ7Cisg
ICAgICAgICAgICBub2RlcyA9IG5vZGVzLmNvbmNhdChub2RlLmNoaWxkcmVuKTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gbm9kZUNvdW50OworICAgIH0sCisKKyAgICBfY2FsY3VsYXRlVGlt
ZWxpbmVEYXRhOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAodGhpcy5fdGltZWxpbmVE
YXRhKQorICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3RpbWVsaW5lRGF0YTsKKworICAgICAgICBp
ZiAoIXRoaXMuX2NwdVByb2ZpbGVWaWV3LnByb2ZpbGVIZWFkKQorICAgICAgICAgICAgcmV0dXJu
IG51bGw7CisKKyAgICAgICAgdmFyIG5vZGVDb3VudCA9IHRoaXMuX25vZGVDb3VudCgpOworICAg
ICAgICB2YXIgZnVuY3Rpb25Db2xvclBhaXJzID0geyB9OworICAgICAgICB2YXIgY3VycmVudENv
bG9ySW5kZXggPSAwOworCisgICAgICAgIHZhciBzdGFydFRpbWVzID0gbmV3IEZsb2F0MzJBcnJh
eShub2RlQ291bnQpOworICAgICAgICB2YXIgZHVyYXRpb25zID0gbmV3IEZsb2F0MzJBcnJheShu
b2RlQ291bnQpOworICAgICAgICB2YXIgZGVwdGhzID0gbmV3IFVpbnQ4QXJyYXkobm9kZUNvdW50
KTsKKyAgICAgICAgdmFyIG5vZGVzID0gbmV3IEFycmF5KG5vZGVDb3VudCk7CisgICAgICAgIHZh
ciBjb2xvclBhaXJzID0gbmV3IEFycmF5KG5vZGVDb3VudCk7CisgICAgICAgIHZhciBpbmRleCA9
IDA7CisKKyAgICAgICAgZnVuY3Rpb24gYXBwZW5kUmV2ZXJzZWRBcnJheSh0b0FycmF5LCBmcm9t
QXJyYXkpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSBmcm9tQXJyYXkubGVuZ3RoIC0gMTsg
aSA+PSAwOyAtLWkpCisgICAgICAgICAgICAgICAgdG9BcnJheS5wdXNoKGZyb21BcnJheVtpXSk7
CisgICAgICAgIH0KKworICAgICAgICB2YXIgc3RhY2sgPSBbXTsKKyAgICAgICAgYXBwZW5kUmV2
ZXJzZWRBcnJheShzdGFjaywgdGhpcy5fY3B1UHJvZmlsZVZpZXcucHJvZmlsZUhlYWQuY2hpbGRy
ZW4pOworCisgICAgICAgIHZhciBsZXZlbE9mZnNldHMgPSAvKiogQHR5cGUge0FycmF5LjwhbnVt
YmVyPn0gKi8gKFswXSk7CisgICAgICAgIHZhciBsZXZlbEV4aXRJbmRleGVzID0gLyoqIEB0eXBl
IHtBcnJheS48IW51bWJlcj59ICovIChbMF0pOworCisgICAgICAgIHdoaWxlIChzdGFjay5sZW5n
dGgpIHsKKyAgICAgICAgICAgIHZhciBsZXZlbCA9IGxldmVsT2Zmc2V0cy5sZW5ndGggLSAxOwor
ICAgICAgICAgICAgdmFyIG5vZGUgPSBzdGFjay5wb3AoKTsKKyAgICAgICAgICAgIHZhciBvZmZz
ZXQgPSBsZXZlbE9mZnNldHNbbGV2ZWxdOworCisgICAgICAgICAgICB2YXIgZnVuY3Rpb25VSUQg
PSBub2RlLmZ1bmN0aW9uTmFtZSArICI6IiArIG5vZGUudXJsICsgIjoiICsgbm9kZS5saW5lTnVt
YmVyOworICAgICAgICAgICAgdmFyIGNvbG9yUGFpciA9IGZ1bmN0aW9uQ29sb3JQYWlyc1tmdW5j
dGlvblVJRF07CisgICAgICAgICAgICBpZiAoIWNvbG9yUGFpcikgeworICAgICAgICAgICAgICAg
ICsrY3VycmVudENvbG9ySW5kZXg7CisgICAgICAgICAgICAgICAgdmFyIGh1ZSA9IChjdXJyZW50
Q29sb3JJbmRleCAqIDUgKyAxMSAqIChjdXJyZW50Q29sb3JJbmRleCAlIDIpKSAlIDM2MDsKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbkNvbG9yUGFpcnNbZnVuY3Rpb25VSURdID0gY29sb3JQYWly
ID0ge2hpZ2hsaWdodGVkOiAiaHNsKCIgKyBodWUgKyAiLCAxMDAlLCAzMyUpIiwgbm9ybWFsOiAi
aHNsKCIgKyBodWUgKyAiLCAxMDAlLCA2NiUpIn07CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGNvbG9yUGFpcnNbaW5kZXhdID0gY29sb3JQYWlyOworICAgICAgICAgICAgZGVwdGhzW2lu
ZGV4XSA9IGxldmVsOworICAgICAgICAgICAgZHVyYXRpb25zW2luZGV4XSA9IG5vZGUudG90YWxU
aW1lOworICAgICAgICAgICAgc3RhcnRUaW1lc1tpbmRleF0gPSBvZmZzZXQ7CisgICAgICAgICAg
ICBub2Rlc1tpbmRleF0gPSBub2RlOworCisgICAgICAgICAgICArK2luZGV4OworCisgICAgICAg
ICAgICBsZXZlbE9mZnNldHNbbGV2ZWxdICs9IG5vZGUudG90YWxUaW1lOworICAgICAgICAgICAg
aWYgKG5vZGUuY2hpbGRyZW4ubGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgbGV2ZWxFeGl0SW5k
ZXhlcy5wdXNoKHN0YWNrLmxlbmd0aCk7CisgICAgICAgICAgICAgICAgbGV2ZWxPZmZzZXRzLnB1
c2gob2Zmc2V0ICsgbm9kZS5zZWxmVGltZSAvIDIpOworICAgICAgICAgICAgICAgIGFwcGVuZFJl
dmVyc2VkQXJyYXkoc3RhY2ssIG5vZGUuY2hpbGRyZW4pOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICB3aGlsZSAoc3RhY2subGVuZ3RoID09PSBsZXZlbEV4aXRJbmRleGVzW2xldmVsRXhp
dEluZGV4ZXMubGVuZ3RoIC0gMV0pIHsKKyAgICAgICAgICAgICAgICBsZXZlbE9mZnNldHMucG9w
KCk7CisgICAgICAgICAgICAgICAgbGV2ZWxFeGl0SW5kZXhlcy5wb3AoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIHRoaXMuX3RpbWVsaW5lRGF0YSA9IHsKKyAgICAgICAg
ICAgIG5vZGVDb3VudDogbm9kZUNvdW50LAorICAgICAgICAgICAgdG90YWxUaW1lOiB0aGlzLl9j
cHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC50b3RhbFRpbWUsCisgICAgICAgICAgICBzdGFydFRp
bWVzOiBzdGFydFRpbWVzLAorICAgICAgICAgICAgZHVyYXRpb25zOiBkdXJhdGlvbnMsCisgICAg
ICAgICAgICBkZXB0aHM6IGRlcHRocywKKyAgICAgICAgICAgIGNvbG9yUGFpcnM6IGNvbG9yUGFp
cnMsCisgICAgICAgICAgICBub2Rlczogbm9kZXMKKyAgICAgICAgfQorCisgICAgICAgIHJldHVy
biB0aGlzLl90aW1lbGluZURhdGE7CisgICAgfSwKKwogICAgIF9nZXRQb3BvdmVyQW5jaG9yOiBm
dW5jdGlvbigpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2hpZ2hsaWdodGVkTm9kZSkKKyAg
ICAgICAgaWYgKHRoaXMuX2hpZ2hsaWdodGVkTm9kZUluZGV4ID09PSAtMSkKICAgICAgICAgICAg
IHJldHVybiBudWxsOwogICAgICAgICByZXR1cm4gdGhpcy5fYW5jaG9yRWxlbWVudDsKICAgICB9
LAogCiAgICAgX3Nob3dQb3BvdmVyOiBmdW5jdGlvbihhbmNob3IsIHBvcG92ZXIpCiAgICAgewot
ICAgICAgICB2YXIgbm9kZSA9IHRoaXMuX2hpZ2hsaWdodGVkTm9kZTsKKyAgICAgICAgdmFyIG5v
ZGUgPSB0aGlzLl90aW1lbGluZURhdGEubm9kZXNbdGhpcy5faGlnaGxpZ2h0ZWROb2RlSW5kZXhd
OwogICAgICAgICB2YXIgY29udGVudEhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckNv
bnRlbnRIZWxwZXIobm9kZS5mdW5jdGlvbk5hbWUpOwogICAgICAgICBjb250ZW50SGVscGVyLmFw
cGVuZFRleHRSb3coV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJUb3RhbCB0aW1lIiksIE51bWJlci5z
ZWNvbmRzVG9TdHJpbmcobm9kZS50b3RhbFRpbWUgLyAxMDAwLCB0cnVlKSk7CiAgICAgICAgIGNv
bnRlbnRIZWxwZXIuYXBwZW5kVGV4dFJvdyhXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlbGYgdGlt
ZSIpLCBOdW1iZXIuc2Vjb25kc1RvU3RyaW5nKG5vZGUuc2VsZlRpbWUgLyAxMDAwLCB0cnVlKSk7
CkBAIC04MSw2NyArMTcyLDY3IEBAIFdlYkluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9
IHsKICAgICAgICAgcG9wb3Zlci5zaG93KGNvbnRlbnRIZWxwZXIuX2NvbnRlbnRUYWJsZSwgYW5j
aG9yKTsKICAgICB9LAogCisgICAgX2hpZGVQb3BvdmVyOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CisgICAgICAgIHRoaXMuX2xp
bmtpZmllci5yZXNldCgpOworICAgIH0sCisKICAgICBfb25DbGljazogZnVuY3Rpb24oZSkKICAg
ICB7Ci0gICAgICAgIGlmICghdGhpcy5faGlnaGxpZ2h0ZWROb2RlKQorICAgICAgICBpZiAodGhp
cy5faGlnaGxpZ2h0ZWROb2RlSW5kZXggPT09IC0xKQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRmxhbWVDaGFy
dC5FdmVudHMuU2VsZWN0ZWROb2RlLCB0aGlzLl9oaWdobGlnaHRlZE5vZGUpOworICAgICAgICB2
YXIgbm9kZSA9IHRoaXMuX3RpbWVsaW5lRGF0YS5ub2Rlc1t0aGlzLl9oaWdobGlnaHRlZE5vZGVJ
bmRleF07CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5GbGFtZUNoYXJ0LkV2ZW50cy5TZWxlY3RlZE5vZGUsIG5vZGUpOwogICAgIH0sCiAKICAgICBf
b25Nb3VzZU1vdmU6IGZ1bmN0aW9uKGUpCiAgICAgewotICAgICAgICB2YXIgbm9kZSA9IHRoaXMu
X2Nvb3JkaW5hdGVzVG9Ob2RlKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTsKLSAgICAgICAgaWYgKHR5
cGVvZiBub2RlID09PSAndW5kZWZpbmVkJyAmJiAhdGhpcy5faGlnaGxpZ2h0ZWROb2RlKQotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAobm9kZSA9PT0gdGhpcy5faGlnaGxpZ2h0ZWRO
b2RlKQorICAgICAgICB2YXIgbm9kZUluZGV4ID0gdGhpcy5fY29vcmRpbmF0ZXNUb05vZGVJbmRl
eChlLm9mZnNldFgsIGUub2Zmc2V0WSk7CisgICAgICAgIGlmIChub2RlSW5kZXggIT09IHRoaXMu
X2hpZ2hsaWdodGVkTm9kZUluZGV4KSB7CisgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRlZE5v
ZGVJbmRleCA9IG5vZGVJbmRleDsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVQb3BvdmVyKCk7Cisg
ICAgICAgICAgICB0aGlzLnVwZGF0ZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKG5vZGVJ
bmRleCA9PT0gLTEpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGlmICh0aGlzLl9oaWdo
bGlnaHRlZE5vZGUpCi0gICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVy
KCk7Ci0gICAgICAgIHRoaXMuX2hpZ2hsaWdodGVkTm9kZSA9IG5vZGU7Ci0gICAgICAgIHRoaXMu
dXBkYXRlKCk7CisKKyAgICAgICAgdmFyIHRpbWVsaW5lRGF0YSA9IHRoaXMuX3RpbWVsaW5lRGF0
YTsKKworICAgICAgICB2YXIgc3R5bGUgPSB0aGlzLl9hbmNob3JFbGVtZW50LnN0eWxlOworICAg
ICAgICBzdHlsZS53aWR0aCA9IE1hdGguZmxvb3IodGltZWxpbmVEYXRhLmR1cmF0aW9uc1tub2Rl
SW5kZXhdICogdGhpcy5feFNjYWxlRmFjdG9yKSArICJweCI7CisgICAgICAgIHN0eWxlLmhlaWdo
dCA9IHRoaXMuX2JhckhlaWdodCArICJweCI7CisgICAgICAgIHN0eWxlLmxlZnQgPSBNYXRoLmZs
b29yKHRpbWVsaW5lRGF0YS5zdGFydFRpbWVzW25vZGVJbmRleF0gKiB0aGlzLl94U2NhbGVGYWN0
b3IpICsgInB4IjsKKyAgICAgICAgc3R5bGUudG9wID0gTWF0aC5mbG9vcih0aGlzLl9jYW52YXMu
aGVpZ2h0IC0gKHRpbWVsaW5lRGF0YS5kZXB0aHNbbm9kZUluZGV4XSArIDEpICogdGhpcy5fYmFy
SGVpZ2h0KSArICJweCI7CiAgICAgfSwKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7IW51bWJl
cn0geAogICAgICAqIEBwYXJhbSB7IW51bWJlcn0geQogICAgICAqLwotICAgIF9jb29yZGluYXRl
c1RvTm9kZTogZnVuY3Rpb24oeCwgeSkKKyAgICBfY29vcmRpbmF0ZXNUb05vZGVJbmRleDogZnVu
Y3Rpb24oeCwgeSkKICAgICB7Ci0gICAgICAgIHZhciBjdXJzb3JPZmZzZXQgPSB4IC8gdGhpcy5f
eFNjYWxlRmFjdG9yOwotICAgICAgICB2YXIgY3Vyc29yTGV2ZWwgPSAodGhpcy5fY2FudmFzLmhl
aWdodCAtIHkpIC8gdGhpcy5feVNjYWxlRmFjdG9yOwotICAgICAgICB0aGlzLl9oaWdobGlnaHRl
ZE5vZGUgPSBudWxsOwotICAgICAgICB2YXIgY3Vyc29yTm9kZTsKLQotICAgICAgICBmdW5jdGlv
biBmaW5kTm9kZUNhbGxiYWNrKG9mZnNldCwgbGV2ZWwsIG5vZGUpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIGlmIChjdXJzb3JMZXZlbCA+IGxldmVsICYmIGN1cnNvckxldmVsIDwgbGV2ZWwgKyAx
ICYmIGN1cnNvck9mZnNldCA+IG9mZnNldCAmJiBjdXJzb3JPZmZzZXQgPCBvZmZzZXQgKyBub2Rl
LnRvdGFsVGltZSkgewotICAgICAgICAgICAgICAgIGN1cnNvck5vZGUgPSBub2RlOwotICAgICAg
ICAgICAgICAgIHZhciBzdHlsZSA9IHRoaXMuX2FuY2hvckVsZW1lbnQuc3R5bGU7Ci0gICAgICAg
ICAgICAgICAgc3R5bGUud2lkdGggPSBNYXRoLmZsb29yKG5vZGUudG90YWxUaW1lICogdGhpcy5f
eFNjYWxlRmFjdG9yKSArICJweCI7Ci0gICAgICAgICAgICAgICAgc3R5bGUuaGVpZ2h0ID0gdGhp
cy5feVNjYWxlRmFjdG9yICsgInB4IjsKLSAgICAgICAgICAgICAgICBzdHlsZS5sZWZ0ID0gTWF0
aC5mbG9vcihvZmZzZXQgKiB0aGlzLl94U2NhbGVGYWN0b3IpICsgInB4IjsKLSAgICAgICAgICAg
ICAgICBzdHlsZS50b3AgPSBNYXRoLmZsb29yKHRoaXMuX2NhbnZhcy5oZWlnaHQgLSAobGV2ZWwg
KyAxKSAqIHRoaXMuX3lTY2FsZUZhY3RvcikgKyAicHgiOwotICAgICAgICAgICAgfQorICAgICAg
ICB2YXIgdGltZWxpbmVEYXRhID0gdGhpcy5fdGltZWxpbmVEYXRhOworICAgICAgICBpZiAoIXRp
bWVsaW5lRGF0YSkKKyAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgdmFyIGN1cnNvclRp
bWUgPSB4IC8gdGhpcy5feFNjYWxlRmFjdG9yOworICAgICAgICB2YXIgY3Vyc29yTGV2ZWwgPSBN
YXRoLmZsb29yKCh0aGlzLl9jYW52YXMuaGVpZ2h0IC0geSkgLyB0aGlzLl9iYXJIZWlnaHQpOwor
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGltZWxpbmVEYXRhLm5vZGVDb3VudDsgKytp
KSB7CisgICAgICAgICAgICBpZiAoY3Vyc29yVGltZSA8IHRpbWVsaW5lRGF0YS5zdGFydFRpbWVz
W2ldKQorICAgICAgICAgICAgICAgIHJldHVybiAtMTsKKyAgICAgICAgICAgIGlmIChjdXJzb3JU
aW1lIDwgKHRpbWVsaW5lRGF0YS5zdGFydFRpbWVzW2ldICsgdGltZWxpbmVEYXRhLmR1cmF0aW9u
c1tpXSkKKyAgICAgICAgICAgICAgICAmJiBjdXJzb3JMZXZlbCA9PT0gdGltZWxpbmVEYXRhLmRl
cHRoc1tpXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gaTsKICAgICAgICAgfQotICAgICAgICB0
aGlzLl9mb3JFYWNoTm9kZShmaW5kTm9kZUNhbGxiYWNrLmJpbmQodGhpcykpOwotICAgICAgICBy
ZXR1cm4gY3Vyc29yTm9kZTsKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIH0sCiAKICAgICBvblJl
c2l6ZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5kcmF3KHRoaXMuZWxlbWVudC5j
bGllbnRXaWR0aCwgdGhpcy5lbGVtZW50LmNsaWVudEhlaWdodCk7Ci0gICAgICAgIHRoaXMuX3Bv
cG92ZXJIZWxwZXIuaGlkZVBvcG92ZXIoKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHJl
dHVybiB7QXJyYXkuPCFQcm9maWxlckFnZW50LkNQVVByb2ZpbGVOb2RlPiB9Ci0gICAgICovCi0g
ICAgX3Jvb3ROb2RlczogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9jcHVQ
cm9maWxlVmlldy5wcm9maWxlSGVhZCkKLSAgICAgICAgICAgIHJldHVybiBudWxsOwotICAgICAg
ICB0aGlzLl90b3RhbFRpbWUgPSB0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC50b3Rh
bFRpbWU7Ci0gICAgICAgIHJldHVybiB0aGlzLl9jcHVQcm9maWxlVmlldy5wcm9maWxlSGVhZC5j
aGlsZHJlbi5zbGljZSgpOworICAgICAgICB0aGlzLl9oaWRlUG9wb3ZlcigpOworICAgICAgICB0
aGlzLnVwZGF0ZSgpOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE1MCw4OSArMjQxLDM3IEBAIFdl
Ykluc3BlY3Rvci5GbGFtZUNoYXJ0LnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBkcmF3OiBm
dW5jdGlvbih3aWR0aCwgaGVpZ2h0KQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9yb290Tm9k
ZXMoKSkKKyAgICAgICAgdmFyIHRpbWVsaW5lRGF0YSA9IHRoaXMuX2NhbGN1bGF0ZVRpbWVsaW5l
RGF0YSgpOworICAgICAgICBpZiAoIXRpbWVsaW5lRGF0YSkKICAgICAgICAgICAgIHJldHVybjsK
LQogICAgICAgICB0aGlzLl9jYW52YXMuaGVpZ2h0ID0gaGVpZ2h0OwogICAgICAgICB0aGlzLl9j
YW52YXMud2lkdGggPSB3aWR0aDsKKyAgICAgICAgdmFyIHhTY2FsZUZhY3RvciA9IHRoaXMuX3hT
Y2FsZUZhY3RvciA9IHdpZHRoIC8gdGltZWxpbmVEYXRhLnRvdGFsVGltZTsKKyAgICAgICAgdmFy
IGJhckhlaWdodCA9IHRoaXMuX2JhckhlaWdodDsKIAotICAgICAgICB0aGlzLl94U2NhbGVGYWN0
b3IgPSB3aWR0aCAvIHRoaXMuX3RvdGFsVGltZTsKLSAgICAgICAgdGhpcy5fY29sb3JJbmRleCA9
IDA7Ci0KLSAgICAgICAgdGhpcy5fY29udGV4dCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIy
ZCIpOworICAgICAgICB2YXIgY29udGV4dCA9IHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCIyZCIp
OwogCi0gICAgICAgIHRoaXMuX2ZvckVhY2hOb2RlKHRoaXMuX2RyYXdOb2RlLmJpbmQodGhpcykp
OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0geyFudW1iZXJ9IG9mZnNldAotICAg
ICAqIEBwYXJhbSB7IW51bWJlcn0gbGV2ZWwKLSAgICAgKiBAcGFyYW0geyFQcm9maWxlckFnZW50
LkNQVVByb2ZpbGVOb2RlfSBub2RlCi0gICAgICovCi0gICAgX2RyYXdOb2RlOiBmdW5jdGlvbihv
ZmZzZXQsIGxldmVsLCBub2RlKQotICAgIHsKLSAgICAgICAgdmFyIGNvbG9ySW5kZXggPSBub2Rl
LmNvbG9ySW5kZXg7Ci0gICAgICAgIGlmICghY29sb3JJbmRleCkgewotICAgICAgICAgICAgdmFy
IGZ1bmN0aW9uVUlEID0gbm9kZS5mdW5jdGlvbk5hbWUgKyAiOiIgKyBub2RlLnVybCArICI6IiAr
IG5vZGUubGluZU51bWJlcjsKLSAgICAgICAgICAgIGNvbG9ySW5kZXggPSB0aGlzLl9jb2xvcklu
ZGV4ZXNbZnVuY3Rpb25VSURdOwotICAgICAgICAgICAgaWYgKCFjb2xvckluZGV4KQotICAgICAg
ICAgICAgICAgIHRoaXMuX2NvbG9ySW5kZXhlc1tmdW5jdGlvblVJRF0gPSBjb2xvckluZGV4ID0g
Kyt0aGlzLl9jb2xvckluZGV4OwotICAgICAgICAgICAgbm9kZS5jb2xvckluZGV4ID0gY29sb3JJ
bmRleDsKLSAgICAgICAgfQotICAgICAgICB2YXIgaHVlID0gKGNvbG9ySW5kZXggKiA1ICsgMTEg
KiAoY29sb3JJbmRleCAlIDIpKSAlIDM2MDsKLSAgICAgICAgdmFyIGxpZ2h0bmVzcyA9IHRoaXMu
X2hpZ2hsaWdodGVkTm9kZSA9PT0gbm9kZSA/IDMzIDogNjc7Ci0gICAgICAgIHZhciBjb2xvciA9
ICJoc2woIiArIGh1ZSArICIsIDEwMCUsICIgKyBsaWdodG5lc3MgKyAiJSkiOwotICAgICAgICB0
aGlzLl9kcmF3QmFyKHRoaXMuX2NvbnRleHQsIG9mZnNldCwgbGV2ZWwsIG5vZGUsIGNvbG9yKTsK
LSAgICB9LAorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRpbWVsaW5lRGF0YS5ub2RlQ291
bnQ7ICsraSkgeworICAgICAgICAgICAgdmFyIGJhcldpZHRoID0gTWF0aC5mbG9vcih0aW1lbGlu
ZURhdGEuZHVyYXRpb25zW2ldICogeFNjYWxlRmFjdG9yKTsKKyAgICAgICAgICAgIGlmIChiYXJX
aWR0aCA8IHRoaXMuX21pbldpZHRoKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgdmFyIHggPSBNYXRoLmZsb29yKHRpbWVsaW5lRGF0YS5zdGFydFRpbWVzW2ldICogeFNj
YWxlRmFjdG9yKTsKKyAgICAgICAgICAgIHZhciB5ID0gaGVpZ2h0IC0gKHRpbWVsaW5lRGF0YS5k
ZXB0aHNbaV0gKyAxKSAqIGJhckhlaWdodDsKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7IWZ1
bmN0aW9uKCFudW1iZXIsICFudW1iZXIsICFQcm9maWxlckFnZW50LkNQVVByb2ZpbGVOb2RlKX0g
Y2FsbGJhY2sKLSAgICAgKi8KLSAgICBfZm9yRWFjaE5vZGU6IGZ1bmN0aW9uKGNhbGxiYWNrKQot
ICAgIHsKLSAgICAgICAgdmFyIG5vZGVzID0gdGhpcy5fcm9vdE5vZGVzKCk7Ci0gICAgICAgIHZh
ciBsZXZlbE9mZnNldHMgPSAvKiogQHR5cGUge0FycmF5LjwhbnVtYmVyPn0gKi8gKFswXSk7Ci0g
ICAgICAgIHZhciBsZXZlbEV4aXRJbmRleGVzID0gWzBdOworICAgICAgICAgICAgdmFyIGNvbG9y
UGFpciA9IHRpbWVsaW5lRGF0YS5jb2xvclBhaXJzW2ldOworICAgICAgICAgICAgdmFyIGNvbG9y
OworICAgICAgICAgICAgaWYgKHRoaXMuX2hpZ2hsaWdodGVkTm9kZUluZGV4ID09PSBpKQorICAg
ICAgICAgICAgICAgIGNvbG9yID0gIGNvbG9yUGFpci5oaWdobGlnaHRlZDsKKyAgICAgICAgICAg
IGVsc2UKKyAgICAgICAgICAgICAgICBjb2xvciA9IGNvbG9yUGFpci5ub3JtYWw7CiAKLSAgICAg
ICAgd2hpbGUgKG5vZGVzLmxlbmd0aCkgewotICAgICAgICAgICAgdmFyIGxldmVsID0gbGV2ZWxP
ZmZzZXRzLmxlbmd0aCAtIDE7Ci0gICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVzLnBvcCgpOwot
ICAgICAgICAgICAgaWYgKG5vZGUudG90YWxUaW1lICogdGhpcy5feFNjYWxlRmFjdG9yID4gdGhp
cy5fbWluV2lkdGgpIHsKLSAgICAgICAgICAgICAgICB2YXIgb2Zmc2V0ID0gbGV2ZWxPZmZzZXRz
W2xldmVsXTsKLSAgICAgICAgICAgICAgICBjYWxsYmFjayhvZmZzZXQsIGxldmVsLCBub2RlKTsK
LSAgICAgICAgICAgICAgICBsZXZlbE9mZnNldHNbbGV2ZWxdICs9IG5vZGUudG90YWxUaW1lOwot
ICAgICAgICAgICAgICAgIGlmIChub2RlLmNoaWxkcmVuLmxlbmd0aCkgewotICAgICAgICAgICAg
ICAgICAgICBsZXZlbEV4aXRJbmRleGVzLnB1c2gobm9kZXMubGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICAgICAgbGV2ZWxPZmZzZXRzLnB1c2gob2Zmc2V0ICsgbm9kZS5zZWxmVGltZSAvIDIpOwot
ICAgICAgICAgICAgICAgICAgICBub2RlcyA9IG5vZGVzLmNvbmNhdChub2RlLmNoaWxkcmVuKTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICB3aGlsZSAobm9k
ZXMubGVuZ3RoID09PSBsZXZlbEV4aXRJbmRleGVzW2xldmVsRXhpdEluZGV4ZXMubGVuZ3RoIC0g
MV0pIHsKLSAgICAgICAgICAgICAgICBsZXZlbE9mZnNldHMucG9wKCk7Ci0gICAgICAgICAgICAg
ICAgbGV2ZWxFeGl0SW5kZXhlcy5wb3AoKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNv
bnRleHQuYmVnaW5QYXRoKCk7CisgICAgICAgICAgICBjb250ZXh0LnJlY3QoeCwgeSwgYmFyV2lk
dGggLSAxLCBiYXJIZWlnaHQgLSAxKTsKKyAgICAgICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0g
Y29sb3I7CisgICAgICAgICAgICBjb250ZXh0LmZpbGwoKTsKICAgICAgICAgfQogICAgIH0sCiAK
LSAgICAvKioKLSAgICAgKiBAcGFyYW0ge09iamVjdH0gY29udGV4dAotICAgICAqIEBwYXJhbSB7
bnVtYmVyfSBvZmZzZXQKLSAgICAgKiBAcGFyYW0ge251bWJlcn0gbGV2ZWwKLSAgICAgKiBAcGFy
YW0geyFQcm9maWxlckFnZW50LkNQVVByb2ZpbGVOb2RlfSBub2RlCi0gICAgICogQHBhcmFtIHsh
c3RyaW5nfSBoc2xDb2xvcgotICAgICAqLwotICAgIF9kcmF3QmFyOiBmdW5jdGlvbihjb250ZXh0
LCBvZmZzZXQsIGxldmVsLCBub2RlLCBjb2xvcikKLSAgICB7Ci0gICAgICAgIHZhciB3aWR0aCA9
IG5vZGUudG90YWxUaW1lICogdGhpcy5feFNjYWxlRmFjdG9yOwotICAgICAgICB2YXIgaGVpZ2h0
ID0gdGhpcy5feVNjYWxlRmFjdG9yOwotICAgICAgICB2YXIgeCA9IG9mZnNldCAqIHRoaXMuX3hT
Y2FsZUZhY3RvcjsKLSAgICAgICAgdmFyIHkgPSB0aGlzLl9jYW52YXMuaGVpZ2h0IC0gbGV2ZWwg
KiB0aGlzLl95U2NhbGVGYWN0b3IgLSBoZWlnaHQ7Ci0gICAgICAgIGNvbnRleHQuYmVnaW5QYXRo
KCk7Ci0gICAgICAgIGNvbnRleHQucmVjdCh4LCB5LCB3aWR0aCAtIDEsIGhlaWdodCAtIDEpOwot
ICAgICAgICBjb250ZXh0LmZpbGxTdHlsZSA9IGNvbG9yOwotICAgICAgICBjb250ZXh0LmZpbGwo
KTsKLSAgICB9LAotCiAgICAgdXBkYXRlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlz
LmRyYXcodGhpcy5lbGVtZW50LmNsaWVudFdpZHRoLCB0aGlzLmVsZW1lbnQuY2xpZW50SGVpZ2h0
KTsK
</data>
<flag name="review"
          id="214320"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>