<?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>59454</bug_id>
          
          <creation_ts>2011-04-26 07:36:57 -0700</creation_ts>
          <short_desc>Web Inspector: [Chromium] Detailed heap snapshot loading / parsing needs to be optimized</short_desc>
          <delta_ts>2011-04-28 07:55:04 -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="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>392442</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-26 07:36:57 -0700</bug_when>
    <thetext>The current approach to snapshots loading and parsing is quite ineffective: first, the whole snapshot is loaded as a JSON string, then it is parsed as a whole. This leads to waste of memory, and can cause problems with _really_ big snapshots. It is possible to parse snapshot on the fly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392447</commentid>
    <comment_count>1</comment_count>
      <attachid>91104</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-26 07:39:52 -0700</bug_when>
    <thetext>Created attachment 91104
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>394425</commentid>
    <comment_count>2</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2011-04-28 07:55:04 -0700</bug_when>
    <thetext>Manually committed http://trac.webkit.org/changeset/85182


2011-04-28  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] Optimize detailed heap snapshots loading / parsing.
        https://bugs.webkit.org/show_bug.cgi?id=59454

        Test: inspector/profiler/heap-snapshot-loader.html

        * inspector/front-end/HeapSnapshot.js:
        (WebInspector.HeapSnapshotLoader):
        (WebInspector.HeapSnapshotLoader.prototype._findBalancedCurlyBrackets):
        (WebInspector.HeapSnapshotLoader.prototype.finishLoading):
        (WebInspector.HeapSnapshotLoader.prototype._parseNodes):
        (WebInspector.HeapSnapshotLoader.prototype._parseStringsArray):
        (WebInspector.HeapSnapshotLoader.prototype.pushJSONChunk):
        * inspector/front-end/HeapSnapshotProxy.js:
        (WebInspector.HeapSnapshotFakeWorker.prototype.postMessage):

2011-04-28  Mikhail Naganov  &lt;mnaganov@chromium.org&gt;

        Reviewed by Yury Semikhatsky.

        Web Inspector: [Chromium] Optimize detailed heap snapshots loading / parsing.
        https://bugs.webkit.org/show_bug.cgi?id=59454

        * inspector/profiler/heap-snapshot-loader-expected.txt: Added.
        * inspector/profiler/heap-snapshot-loader.html: Added.
        * inspector/profiler/heap-snapshot-test.js:
        (initialize_HeapSnapshotTest.InspectorTest.createHeapSnapshotMock):
        (initialize_HeapSnapshotTest):</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>91104</attachid>
            <date>2011-04-26 07:39:52 -0700</date>
            <delta_ts>2011-04-28 07:39:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch-59454</filename>
            <type>text/plain</type>
            <size>11395</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDhlODQxLi41NGNjODJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDQt
MjYgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2hy
b21pdW1dIE9wdGltaXplIGRldGFpbGVkIGhlYXAgc25hcHNob3RzIGxvYWRpbmcgLyBwYXJzaW5n
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTk0NTQK
KworICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBz
aG90LWxvYWRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvcHJvZmlsZXIvaGVh
cC1zbmFwc2hvdC10ZXN0LmpzOgorICAgICAgICAoaW5pdGlhbGl6ZV9IZWFwU25hcHNob3RUZXN0
Lkluc3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jayk6CisgICAgICAgIChpbml0aWFs
aXplX0hlYXBTbmFwc2hvdFRlc3QpOgorCiAyMDExLTA0LTI2ICBDaGFuZyBTaHUgIDxjc2h1QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC1s
b2FkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIz
MGEzOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC1sb2FkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0
ZXN0IGNoZWNrcyBIZWFwU25hcHNob3RzIGxvYWRlci4KKworCitSdW5uaW5nOiBoZWFwU25hcHNo
b3RMb2FkZXJUZXN0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxl
ci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2Zp
bGVyL2hlYXAtc25hcHNob3QtbG9hZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTcyN2QzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9wcm9maWxlci9oZWFwLXNuYXBzaG90LWxvYWRlci5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImhlYXAtc25hcHNob3QtdGVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydFNuYXBzaG90RXF1YWxzID0gZnVuY3Rpb24ocmVmZXJlbmNlLCBhY3R1
YWwpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhKU09OLnN0cmlu
Z2lmeShyZWZlcmVuY2UpLCBKU09OLnN0cmluZ2lmeShhY3R1YWwpKTsKKyAgICB9CisKKyAgICBJ
bnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIGhlYXBTbmFwc2hv
dExvYWRlclRlc3QobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHNvdXJjZSA9IElu
c3BlY3RvclRlc3QuY3JlYXRlSGVhcFNuYXBzaG90TW9jaygpOworICAgICAgICAgICAgdmFyIHNv
dXJjZVN0cmluZ2lmaWVkID0gSlNPTi5zdHJpbmdpZnkoc291cmNlKTsKKyAgICAgICAgICAgIHZh
ciBwYXJ0U2l6ZSA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aCA+PiAzOworICAgICAgICAgICAg
dmFyIGxvYWRlciA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyKCk7CisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMCwgbCA9IHNvdXJjZVN0cmluZ2lmaWVkLmxlbmd0aDsgaSA8
IGw7IGkgKz0gcGFydFNpemUpCisgICAgICAgICAgICAgICAgbG9hZGVyLnB1c2hKU09OQ2h1bmso
c291cmNlU3RyaW5naWZpZWQuc2xpY2UoaSwgaSArIHBhcnRTaXplKSk7CisgICAgICAgICAgICB2
YXIgcmVzdWx0ID0gbG9hZGVyLmZpbmlzaExvYWRpbmcoKTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYXNzZXJ0U25hcHNob3RFcXVhbHMobmV3IFdlYkluc3BlY3Rvci5IZWFwU25hcHNob3Qo
c291cmNlKSwgcmVzdWx0KTsKKyAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfQorICAgIF0p
OworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgor
PHA+CitUaGlzIHRlc3QgY2hlY2tzIEhlYXBTbmFwc2hvdHMgbG9hZGVyLgorPC9wPgorCis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIv
aGVhcC1zbmFwc2hvdC10ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Byb2ZpbGVyL2hl
YXAtc25hcHNob3QtdGVzdC5qcwppbmRleCA4YWRlOWI1Li44OTMzNjVhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvcHJvZmlsZXIvaGVhcC1zbmFwc2hvdC10ZXN0LmpzCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9wcm9maWxlci9oZWFwLXNuYXBzaG90LXRlc3QuanMKQEAg
LTQwLDYgKzQwLDcgQEAgSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrT2JqZWN0
ID0gZnVuY3Rpb24oKQogSW5zcGVjdG9yVGVzdC5jcmVhdGVIZWFwU25hcHNob3RNb2NrID0gZnVu
Y3Rpb24oKQogewogICAgIHJldHVybiB7CisgICAgICAgIHNuYXBzaG90OiB7fSwKICAgICAgICAg
bm9kZXM6IFsKICAgICAgICAgICAgIHsgZmllbGRzOiBbInR5cGUiLCAibmFtZSIsICJpZCIsICJz
ZWxmX3NpemUiLCAicmV0YWluZWRfc2l6ZSIsICJkb21pbmF0b3IiLCAiY2hpbGRyZW5fY291bnQi
LCAiY2hpbGRyZW4iXSwKICAgICAgICAgICAgICAgdHlwZXM6IFtbImhpZGRlbiIsICJvYmplY3Qi
XSwgIiIsICIiLCAiIiwgIiIsICIiLCAiIiwgeyBmaWVsZHM6IFsidHlwZSIsICJuYW1lX29yX2lu
ZGV4IiwgInRvX25vZGUiXSwgdHlwZXM6IFtbImVsZW1lbnQiLCAicHJvcGVydHkiXSwgIiIsICIi
XSB9XSB9LApAQCAtNjEsOCArNjIsNyBAQCBJbnNwZWN0b3JUZXN0LmNyZWF0ZUhlYXBTbmFwc2hv
dE1vY2sgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICAxLCAzLCA0LCA0LCAxMCwgIDEsIDEsIDEs
IDExLCA1NywKICAgICAgICAgICAgIDEsIDQsIDUsIDUsICA1LCAyNywgMCwKICAgICAgICAgICAg
IDEsIDUsIDYsIDYsICA2LCA0MCwgMF0sCi0gICAgICAgIHN0cmluZ3M6IFsiIiwgIkEiLCAiQiIs
ICJDIiwgIkQiLCAiRSIsICJhIiwgImIiLCAiYWMiLCAiYmMiLCAiYmQiLCAiY2UiXSwKLSAgICAg
ICAgc25hcHNob3Q6IHt9CisgICAgICAgIHN0cmluZ3M6IFsiIiwgIkEiLCAiQiIsICJDIiwgIkQi
LCAiRSIsICJhIiwgImIiLCAiYWMiLCAiYmMiLCAiYmQiLCAiY2UiXQogICAgIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNmUzZDkzNi4uOTJiNmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBA
CisyMDExLTA0LTI2ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogW0Nocm9taXVtXSBPcHRpbWl6ZSBkZXRhaWxlZCBoZWFwIHNuYXBzaG90cyBsb2FkaW5n
IC8gcGFyc2luZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU5NDU0CisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL3Byb2ZpbGVyL2hlYXAtc25hcHNo
b3QtbG9hZGVyLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBz
aG90LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdExvYWRlcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyLnByb3RvdHlwZS5fZmluZEJhbGFu
Y2VkQ3VybHlCcmFja2V0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9h
ZGVyLnByb3RvdHlwZS5maW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5IZWFw
U25hcHNob3RMb2FkZXIucHJvdG90eXBlLl9wYXJzZU5vZGVzKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5IZWFwU25hcHNob3RMb2FkZXIucHJvdG90eXBlLl9wYXJzZVN0cmluZ3NBcnJheSk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90TG9hZGVyLnByb3RvdHlwZS5wdXNoSlNP
TkNodW5rKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEZha2VXb3JrZXIucHJvdG90
eXBlLnBvc3RNZXNzYWdlKToKKwogMjAxMS0wNC0yNiAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90LmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3QuanMKaW5kZXggMjc3
ZmRhOS4uMWRmOTNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3QuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9IZWFwU25hcHNob3QuanMKQEAgLTMxLDIxICszMSwxNTQgQEAKIFdlYkluc3BlY3Rvci5I
ZWFwU25hcHNob3RMb2FkZXIgPSBmdW5jdGlvbigpCiB7CiAgICAgdGhpcy5fanNvbiA9ICIiOwor
ICAgIHRoaXMuX3N0YXRlID0gImZpbmQtc25hcHNob3QtaW5mbyI7CisgICAgdGhpcy5fc25hcHNo
b3QgPSB7fTsKIH0KIAogV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdExvYWRlci5wcm90b3R5cGUg
PSB7CisgICAgX2ZpbmRCYWxhbmNlZEN1cmx5QnJhY2tldHM6IGZ1bmN0aW9uKCkKKyAgICB7Cisg
ICAgICAgIHZhciBjb3VudGVyID0gMDsKKyAgICAgICAgdmFyIG9wZW5pbmdCcmFja2V0ID0gInsi
LmNoYXJDb2RlQXQoMCksIGNsb3NpbmdCcmFja2V0ID0gIn0iLmNoYXJDb2RlQXQoMCk7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwLCBsID0gdGhpcy5fanNvbi5sZW5ndGg7IGkgPCBsOyArK2kpIHsK
KyAgICAgICAgICAgIHZhciBjaGFyYWN0ZXIgPSB0aGlzLl9qc29uLmNoYXJDb2RlQXQoaSk7Cisg
ICAgICAgICAgICBpZiAoY2hhcmFjdGVyID09PSBvcGVuaW5nQnJhY2tldCkKKyAgICAgICAgICAg
ICAgICArK2NvdW50ZXI7CisgICAgICAgICAgICBlbHNlIGlmIChjaGFyYWN0ZXIgPT09IGNsb3Np
bmdCcmFja2V0KSB7CisgICAgICAgICAgICAgICAgaWYgKC0tY291bnRlciA9PT0gMCkKKyAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGkgKyAxOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIHJldHVybiAtMTsKKyAgICB9LAorCiAgICAgZmluaXNoTG9hZGluZzogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgaWYgKCF0aGlzLl9qc29uKQogICAgICAgICAgICAgcmV0dXJuIG51
bGw7Ci0gICAgICAgIHZhciByYXdTbmFwc2hvdCA9IEpTT04ucGFyc2UodGhpcy5fanNvbik7Cisg
ICAgICAgIHRoaXMuX3BhcnNlU3RyaW5nc0FycmF5KCk7CiAgICAgICAgIHRoaXMuX2pzb24gPSAi
IjsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90KHJhd1NuYXBz
aG90KTsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBXZWJJbnNwZWN0b3IuSGVhcFNuYXBzaG90
KHRoaXMuX3NuYXBzaG90KTsKKyAgICAgICAgdGhpcy5fanNvbiA9ICIiOworICAgICAgICB0aGlz
Ll9zbmFwc2hvdCA9IHt9OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICBf
cGFyc2VOb2RlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIGluZGV4ID0gMDsKKyAg
ICAgICAgdmFyIGNoYXIwID0gIjAiLmNoYXJDb2RlQXQoMCksIGNoYXI5ID0gIjkiLmNoYXJDb2Rl
QXQoMCksIGNsb3NpbmdCcmFja2V0ID0gIl0iLmNoYXJDb2RlQXQoMCk7CisgICAgICAgIHZhciBs
ZW5ndGggPSB0aGlzLl9qc29uLmxlbmd0aDsKKyAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAg
ICAgICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHZhciBjb2Rl
ID0gdGhpcy5fanNvbi5jaGFyQ29kZUF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2hh
cjAgPD0gY29kZSAmJiBjb2RlIDw9IGNoYXI5KQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgICAgICBlbHNlIGlmIChjb2RlID09PSBjbG9zaW5nQnJhY2tldCkgeworICAg
ICAgICAgICAgICAgICAgICB0aGlzLl9qc29uID0gdGhpcy5fanNvbi5zbGljZShpbmRleCArIDEp
OworICAgICAgICAgICAgICAgICAgICAvLyBTaGF2ZSBvZmYgcHJvdmlzaW9uYWxseSBhbGxvY2F0
ZWQgc3BhY2UuCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYXBzaG90Lm5vZGVzID0gdGhp
cy5fc25hcHNob3Qubm9kZXMuc2xpY2UoMCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKytpbmRleDsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRleCA9PT0gbGVuZ3RoKSB7CisgICAgICAgICAg
ICAgICAgdGhpcy5fanNvbiA9ICIiOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSBpbmRleDsKKyAgICAgICAg
ICAgIHdoaWxlIChpbmRleCA8IGxlbmd0aCkgeworICAgICAgICAgICAgICAgIHZhciBjb2RlID0g
dGhpcy5fanNvbi5jaGFyQ29kZUF0KGluZGV4KTsKKyAgICAgICAgICAgICAgICBpZiAoY2hhcjAg
PiBjb2RlIHx8IGNvZGUgPiBjaGFyOSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgKytpbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChpbmRl
eCA9PT0gbGVuZ3RoKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fanNvbiA9IHRoaXMuX2pzb24u
c2xpY2Uoc3RhcnRJbmRleCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0aGlzLl9zbmFwc2hvdC5ub2Rlcy5wdXNoKHBhcnNlSW50KHRo
aXMuX2pzb24uc2xpY2Uoc3RhcnRJbmRleCwgaW5kZXgpKSk7CisgICAgICAgIH0KKyAgICB9LAor
CisgICAgX3BhcnNlU3RyaW5nc0FycmF5OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIg
Y2xvc2luZ0JyYWNrZXRJbmRleCA9IHRoaXMuX2pzb24ubGFzdEluZGV4T2YoIl0iKTsKKyAgICAg
ICAgaWYgKGNsb3NpbmdCcmFja2V0SW5kZXggPT09IC0xKQorICAgICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJJbmNvbXBsZXRlIEpTT04iKTsKKyAgICAgICAgdGhpcy5fanNvbiA9IHRoaXMuX2pz
b24uc2xpY2UoMCwgY2xvc2luZ0JyYWNrZXRJbmRleCArIDEpOworICAgICAgICB0aGlzLl9zbmFw
c2hvdC5zdHJpbmdzID0gSlNPTi5wYXJzZSh0aGlzLl9qc29uKTsKICAgICB9LAogCiAgICAgcHVz
aEpTT05DaHVuazogZnVuY3Rpb24oY2h1bmspCiAgICAgewogICAgICAgICB0aGlzLl9qc29uICs9
IGNodW5rOworICAgICAgICBzd2l0Y2ggKHRoaXMuX3N0YXRlKSB7CisgICAgICAgIGNhc2UgImZp
bmQtc25hcHNob3QtaW5mbyI6IHsKKyAgICAgICAgICAgIHZhciBzbmFwc2hvdFRva2VuID0gIlwi
c25hcHNob3RcIiI7CisgICAgICAgICAgICB2YXIgc25hcHNob3RUb2tlbkluZGV4ID0gdGhpcy5f
anNvbi5pbmRleE9mKHNuYXBzaG90VG9rZW4pOworICAgICAgICAgICAgaWYgKHNuYXBzaG90VG9r
ZW5JbmRleCA9PT0gLTEpCisgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJTbmFwc2hv
dCB0b2tlbiBub3QgZm91bmQiKTsKKyAgICAgICAgICAgIHRoaXMuX2pzb24gPSB0aGlzLl9qc29u
LnNsaWNlKHNuYXBzaG90VG9rZW5JbmRleCArIHNuYXBzaG90VG9rZW4ubGVuZ3RoICsgMSk7Cisg
ICAgICAgICAgICB0aGlzLl9zdGF0ZSA9ICJwYXJzZS1zbmFwc2hvdC1pbmZvIjsKKyAgICAgICAg
ICAgIHRoaXMucHVzaEpTT05DaHVuaygiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgICAgICBjYXNlICJwYXJzZS1zbmFwc2hvdC1pbmZvIjogeworICAgICAgICAgICAgdmFy
IGNsb3NpbmdCcmFja2V0SW5kZXggPSB0aGlzLl9maW5kQmFsYW5jZWRDdXJseUJyYWNrZXRzKCk7
CisgICAgICAgICAgICBpZiAoY2xvc2luZ0JyYWNrZXRJbmRleCA9PT0gLTEpCisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhpcy5fc25hcHNob3Quc25hcHNob3QgPSBKU09O
LnBhcnNlKHRoaXMuX2pzb24uc2xpY2UoMCwgY2xvc2luZ0JyYWNrZXRJbmRleCkpOworICAgICAg
ICAgICAgdGhpcy5fanNvbiA9IHRoaXMuX2pzb24uc2xpY2UoY2xvc2luZ0JyYWNrZXRJbmRleCk7
CisgICAgICAgICAgICB0aGlzLl9zdGF0ZSA9ICJmaW5kLW5vZGVzIjsKKyAgICAgICAgICAgIHRo
aXMucHVzaEpTT05DaHVuaygiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlICJmaW5kLW5vZGVzIjogeworICAgICAgICAgICAgdmFyIG5vZGVzVG9rZW4gPSAi
XCJub2Rlc1wiIjsKKyAgICAgICAgICAgIHZhciBub2Rlc1Rva2VuSW5kZXggPSB0aGlzLl9qc29u
LmluZGV4T2Yobm9kZXNUb2tlbik7CisgICAgICAgICAgICBpZiAobm9kZXNUb2tlbkluZGV4ID09
PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB2YXIgYnJhY2tldElu
ZGV4ID0gdGhpcy5fanNvbi5pbmRleE9mKCJbIiwgbm9kZXNUb2tlbkluZGV4KTsKKyAgICAgICAg
ICAgIGlmIChicmFja2V0SW5kZXggPT09IC0xKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIHRoaXMuX2pzb24gPSB0aGlzLl9qc29uLnNsaWNlKGJyYWNrZXRJbmRleCArIDEp
OworICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSAicGFyc2Utbm9kZXMtbWV0YS1pbmZvIjsKKyAg
ICAgICAgICAgIHRoaXMucHVzaEpTT05DaHVuaygiIik7CisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQorICAgICAgICBjYXNlICJwYXJzZS1ub2Rlcy1tZXRhLWluZm8iOiB7CisgICAgICAg
ICAgICB2YXIgY2xvc2luZ0JyYWNrZXRJbmRleCA9IHRoaXMuX2ZpbmRCYWxhbmNlZEN1cmx5QnJh
Y2tldHMoKTsKKyAgICAgICAgICAgIGlmIChjbG9zaW5nQnJhY2tldEluZGV4ID09PSAtMSkKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB0aGlzLl9zbmFwc2hvdC5ub2RlcyA9
IFtKU09OLnBhcnNlKHRoaXMuX2pzb24uc2xpY2UoMCwgY2xvc2luZ0JyYWNrZXRJbmRleCkpXTsK
KyAgICAgICAgICAgIHRoaXMuX2pzb24gPSB0aGlzLl9qc29uLnNsaWNlKGNsb3NpbmdCcmFja2V0
SW5kZXgpOworICAgICAgICAgICAgdGhpcy5fc3RhdGUgPSAicGFyc2Utbm9kZXMiOworICAgICAg
ICAgICAgdGhpcy5wdXNoSlNPTkNodW5rKCIiKTsKKyAgICAgICAgICAgIGJyZWFrOyAgICAgICAg
ICAKKyAgICAgICAgfQorICAgICAgICBjYXNlICJwYXJzZS1ub2RlcyI6IHsKKyAgICAgICAgICAg
IGlmICh0aGlzLl9wYXJzZU5vZGVzKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgdGhpcy5fc3RhdGUgPSAiZmluZC1zdHJpbmdzIjsKKyAgICAgICAgICAgIHRoaXMucHVz
aEpTT05DaHVuaygiIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBj
YXNlICJmaW5kLXN0cmluZ3MiOiB7CisgICAgICAgICAgICB2YXIgc3RyaW5nc1Rva2VuID0gIlwi
c3RyaW5nc1wiIjsKKyAgICAgICAgICAgIHZhciBzdHJpbmdzVG9rZW5JbmRleCA9IHRoaXMuX2pz
b24uaW5kZXhPZihzdHJpbmdzVG9rZW4pOworICAgICAgICAgICAgaWYgKHN0cmluZ3NUb2tlbklu
ZGV4ID09PSAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB2YXIgYnJh
Y2tldEluZGV4ID0gdGhpcy5fanNvbi5pbmRleE9mKCJbIiwgc3RyaW5nc1Rva2VuSW5kZXgpOwor
ICAgICAgICAgICAgaWYgKGJyYWNrZXRJbmRleCA9PT0gLTEpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgdGhpcy5fanNvbiA9IHRoaXMuX2pzb24uc2xpY2UoYnJhY2tldElu
ZGV4KTsKKyAgICAgICAgICAgIHRoaXMuX3N0YXRlID0gImFjY3VtdWxhdGUtc3RyaW5ncyI7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBjYXNlICJhY2N1bXVsYXRlLXN0
cmluZ3MiOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICB9CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFBy
b3h5LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IZWFwU25hcHNob3RQ
cm94eS5qcwppbmRleCA5ODYzZDg5Li45NGUyOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0hlYXBTbmFwc2hvdFByb3h5LmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSGVhcFNuYXBzaG90UHJveHkuanMKQEAgLTYzLDcg
KzYzLDggQEAgV2ViSW5zcGVjdG9yLkhlYXBTbmFwc2hvdEZha2VXb3JrZXIucHJvdG90eXBlID0g
ewogICAgIHsKICAgICAgICAgZnVuY3Rpb24gZGlzcGF0Y2goKQogICAgICAgICB7Ci0gICAgICAg
ICAgICB0aGlzLl9kaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZSh7ZGF0YTogbWVzc2FnZX0pOwor
ICAgICAgICAgICAgaWYgKHRoaXMuX2Rpc3BhdGNoZXIpCisgICAgICAgICAgICAgICAgdGhpcy5f
ZGlzcGF0Y2hlci5kaXNwYXRjaE1lc3NhZ2Uoe2RhdGE6IG1lc3NhZ2V9KTsKICAgICAgICAgfQog
ICAgICAgICBzZXRUaW1lb3V0KGRpc3BhdGNoLmJpbmQodGhpcyksIDApOwogICAgIH0sCg==
</data>
<flag name="review"
          id="83877"
          type_id="1"
          status="+"
          setter="yurys"
    />
    <flag name="commit-queue"
          id="83878"
          type_id="3"
          status="-"
          setter="mnaganov"
    />
          </attachment>
      

    </bug>

</bugzilla>