<?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>56559</bug_id>
          
          <creation_ts>2011-03-17 06:49:46 -0700</creation_ts>
          <short_desc>Web Inspector: Scrolling and navigation is not smooth on a script with many long lines</short_desc>
          <delta_ts>2011-03-23 03:30:31 -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>0</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>podivilov</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369035</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-03-17 06:49:46 -0700</bug_when>
    <thetext>Now we highlight all lines in the visible area synchronously. It takes noticeable time on source files that have many long lines (for example, obfuscated JavaScript code of GMail). Thus, scrolling and navigation via keys is not smooth on such cases. We should paint lines asynchronously.

Tested on a file with 2K lines, 1M of bytes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369037</commentid>
    <comment_count>1</comment_count>
      <attachid>86053</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-03-17 07:01:16 -0700</bug_when>
    <thetext>Created attachment 86053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369042</commentid>
    <comment_count>2</comment_count>
      <attachid>86055</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-03-17 07:52:04 -0700</bug_when>
    <thetext>Created attachment 86055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369043</commentid>
    <comment_count>3</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-03-17 07:53:51 -0700</bug_when>
    <thetext>FYI. Diff between the first and the second patches:


--- a/Source/WebCore/inspector/front-end/TextViewer.js
+++ b/Source/WebCore/inspector/front-end/TextViewer.js
@@ -844,9 +844,9 @@ WebInspector.TextEditorMainPanel.prototype = {
         if (!this._scheduledPaintLines)
             return;
 
-        if (this._dirtyLines) {
-            // Reschedule the timer.
-            this._paintScheduledLinesTimer = setTimeout(this._paintScheduledLines.bind(this), 10);
+        // Reschedule the timer if we still can not paint the lines, or the user is scrolling.
+        if (this._dirtyLines || this._repaintAllTimer) {
+            this._paintScheduledLinesTimer = setTimeout(this._paintScheduledLines.bind(this), 50);
             return;
         }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371381</commentid>
    <comment_count>4</comment_count>
      <attachid>86055</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-22 07:27:39 -0700</bug_when>
    <thetext>Comment on attachment 86055
Patch

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

&gt; Source/WebCore/inspector/front-end/TextViewer.js:838
&gt; +    _paintScheduledLines: function(opt_skipRestoreSelection)

We don&apos;t use opt_ prefix in the inspector code.

&gt; Source/WebCore/inspector/front-end/TextViewer.js:899
&gt; +        if (this._dirtyLines || this._scheduledPaintLines || this._paintLinesOperationsCredit &lt; 0) {

You should check for this._paintLinesOperationsCredit &lt; 0 at line 891 after painting next line and if the credit is exceeded schedule painting of all rest lines in the chunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371382</commentid>
    <comment_count>5</comment_count>
      <attachid>86055</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-22 07:28:10 -0700</bug_when>
    <thetext>Comment on attachment 86055
Patch

Please address the comments before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372036</commentid>
    <comment_count>6</comment_count>
      <attachid>86055</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2011-03-23 02:23:50 -0700</bug_when>
    <thetext>Comment on attachment 86055
Patch

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

&gt;&gt; Source/WebCore/inspector/front-end/TextViewer.js:838
&gt;&gt; +    _paintScheduledLines: function(opt_skipRestoreSelection)
&gt; 
&gt; We don&apos;t use opt_ prefix in the inspector code.

done

&gt;&gt; Source/WebCore/inspector/front-end/TextViewer.js:899
&gt;&gt; +        if (this._dirtyLines || this._scheduledPaintLines || this._paintLinesOperationsCredit &lt; 0) {
&gt; 
&gt; You should check for this._paintLinesOperationsCredit &lt; 0 at line 891 after painting next line and if the credit is exceeded schedule painting of all rest lines in the chunk.

done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372056</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-23 03:30:31 -0700</bug_when>
    <thetext>Committed r81760: &lt;http://trac.webkit.org/changeset/81760&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86053</attachid>
            <date>2011-03-17 07:01:16 -0700</date>
            <delta_ts>2011-03-17 07:51:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56559-20110317170114.patch</filename>
            <type>text/plain</type>
            <size>8711</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEzNDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYjliZTZiODNiNWVjYzk4
YWU0NmNmNjVkMmQ2MDIzYmZlZmM1MWNiLi45NTY3NDQ0MjQxZmVkYzE1MTg0NjdhMWJlZGU2NzYx
ZGRmOTIyYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTcgIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNjcm9sbGluZyBhbmQgbmF2
aWdhdGlvbiBpcyBub3Qgc21vb3RoIG9uIGEgc2NyaXB0IHdpdGggbWFueSBsb25nIGxpbmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjU1OQorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwucHJvdG90eXBlLl9leHBhbmRDaHVua3Mp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9l
eHBhbmRDaHVua3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlLl9oaWdobGlnaHREYXRhUmVhZHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9zY2hlZHVsZVBhaW50TGluZXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9wYWludFNjaGVk
dWxlZExpbmVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZS5fcmVzdG9yZVBhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fcGFpbnRMaW5lcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50
TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5
cGUuX2FwcGx5RG9tVXBkYXRlcyk6CisKIDIwMTEtMDMtMTcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dFZpZXdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFZpZXdlci5qcwppbmRleCBiNGM4OTE1M2Y2YTNlMThhYTE3ZTQxZWMzNmYyZDA5YjYz
YTRjOGE1Li43NWQxYzZjMWI5OWI4OWJlN2NmOTA5ODU2OGM2YzdkMGQ0YTc3YTVmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC00
MzUsNiArNDM1LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfZXhwYW5kQ2h1bmtzOiBmdW5jdGlv
bihmcm9tSW5kZXgsIHRvSW5kZXgpCisgICAgeworICAgICAgICAvLyBGaXJzdCBjb2xsYXBzZSBj
aHVua3MgdG8gY29sbGVjdCB0aGUgRE9NIGVsZW1lbnRzIGludG8gYSBjYWNoZSB0byByZXVzZSB0
aGVtIGxhdGVyLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyb21JbmRleDsgKytpKQor
ICAgICAgICAgICAgdGhpcy5fdGV4dENodW5rc1tpXS5leHBhbmRlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHZhciBpID0gdG9JbmRleDsgaSA8IHRoaXMuX3RleHRDaHVua3MubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICB0aGlzLl90ZXh0Q2h1bmtzW2ldLmV4cGFuZGVkID0gZmFsc2U7CisgICAg
ICAgIGZvciAodmFyIGkgPSBmcm9tSW5kZXg7IGkgPCB0b0luZGV4OyArK2kpCisgICAgICAgICAg
ICB0aGlzLl90ZXh0Q2h1bmtzW2ldLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgX3Rv
dGFsSGVpZ2h0OiBmdW5jdGlvbihmaXJzdEVsZW1lbnQsIGxhc3RFbGVtZW50KQogICAgIHsKICAg
ICAgICAgbGFzdEVsZW1lbnQgPSAobGFzdEVsZW1lbnQgfHwgZmlyc3RFbGVtZW50KS5uZXh0RWxl
bWVudFNpYmxpbmc7CkBAIC00ODksMTIgKzUwMCw2IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
R3V0dGVyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsodGhpcywgc3RhcnRMaW5lLCBlbmRMaW5lKTsKICAgICB9
LAogCi0gICAgX2V4cGFuZENodW5rczogZnVuY3Rpb24oZnJvbUluZGV4LCB0b0luZGV4KQotICAg
IHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl90ZXh0Q2h1bmtzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgdGhpcy5fdGV4dENodW5rc1tpXS5leHBhbmRlZCA9IChmcm9tSW5k
ZXggPD0gaSAmJiBpIDwgdG9JbmRleCk7Ci0gICAgfSwKLQogICAgIHRleHRDaGFuZ2VkOiBmdW5j
dGlvbihvbGRSYW5nZSwgbmV3UmFuZ2UpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3RleHRD
aHVua3MpIHsKQEAgLTc5NCw4ICs3OTksOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLmhpZ2hsaWdodChs
YXN0VmlzaWJsZUxpbmUpOwogICAgICAgICBkZWxldGUgdGhpcy5fbXV0ZUhpZ2hsaWdodExpc3Rl
bmVyOwogCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGV4dENodW5rcy5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX3RleHRDaHVua3NbaV0uZXhwYW5kZWQgPSAoZnJv
bUluZGV4IDw9IGkgJiYgaSA8IHRvSW5kZXgpOworICAgICAgICB0aGlzLl9yZXN0b3JlUGFpbnRM
aW5lc09wZXJhdGlvbnNDcmVkaXQoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JD
aHVua2VkUGFuZWwucHJvdG90eXBlLl9leHBhbmRDaHVua3MuY2FsbCh0aGlzLCBmcm9tSW5kZXgs
IHRvSW5kZXgpOwogCiAgICAgICAgIHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsK
ICAgICB9LApAQCAtODA0LDQxICs4MDksNzIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX211dGVIaWdobGln
aHRMaXN0ZW5lcikKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fcmVzdG9yZVBh
aW50TGluZXNPcGVyYXRpb25zQ3JlZGl0KCk7CiAgICAgICAgIHRoaXMuX3BhaW50TGluZXMoZnJv
bUxpbmUsIHRvTGluZSwgdHJ1ZSAvKnJlc3RvcmVTZWxlY3Rpb24qLyk7CiAgICAgfSwKIAotICAg
IF9tYXJrU2tpcHBlZFBhaW50TGluZXM6IGZ1bmN0aW9uKHN0YXJ0TGluZSwgZW5kTGluZSkKKyAg
ICBfc2NoZWR1bGVQYWludExpbmVzOiBmdW5jdGlvbihzdGFydExpbmUsIGVuZExpbmUpCiAgICAg
ewotICAgICAgICBpZiAoIXRoaXMuX3NraXBwZWRQYWludExpbmVzKQotICAgICAgICAgICAgdGhp
cy5fc2tpcHBlZFBhaW50TGluZXMgPSBbIHsgc3RhcnRMaW5lOiBzdGFydExpbmUsIGVuZExpbmU6
IGVuZExpbmUgfSBdOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fc2tpcHBlZFBhaW50TGluZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgY2h1bmsgPSB0aGlzLl9za2lwcGVkUGFpbnRMaW5lc1tpXTsKKyAgICAgICAgaWYg
KCF0aGlzLl9zY2hlZHVsZWRQYWludExpbmVzKSB7CisgICAgICAgICAgICB0aGlzLl9zY2hlZHVs
ZWRQYWludExpbmVzID0gWyB7IHN0YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5l
IH0gXTsKKyAgICAgICAgICAgIHRoaXMuX3BhaW50U2NoZWR1bGVkTGluZXNUaW1lciA9IHNldFRp
bWVvdXQodGhpcy5fcGFpbnRTY2hlZHVsZWRMaW5lcy5iaW5kKHRoaXMpLCAxMCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NjaGVkdWxl
ZFBhaW50TGluZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2h1bmsgPSB0
aGlzLl9zY2hlZHVsZWRQYWludExpbmVzW2ldOwogICAgICAgICAgICAgICAgIGlmIChjaHVuay5z
dGFydExpbmUgPD0gZW5kTGluZSAmJiBjaHVuay5lbmRMaW5lID49IHN0YXJ0TGluZSkgewogICAg
ICAgICAgICAgICAgICAgICBjaHVuay5zdGFydExpbmUgPSBNYXRoLm1pbihjaHVuay5zdGFydExp
bmUsIHN0YXJ0TGluZSk7CiAgICAgICAgICAgICAgICAgICAgIGNodW5rLmVuZExpbmUgPSBNYXRo
Lm1heChjaHVuay5lbmRMaW5lLCBlbmRMaW5lKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2h1bmsuc3RhcnRMaW5l
ID4gZW5kTGluZSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY2hlZHVsZWRQYWludExp
bmVzLnNwbGljZShpLCAwLCB7IHN0YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5l
IH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5fc2tpcHBlZFBhaW50TGluZXMucHVzaCh7IHN0
YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5lIH0pOworICAgICAgICAgICAgdGhp
cy5fc2NoZWR1bGVkUGFpbnRMaW5lcy5wdXNoKHsgc3RhcnRMaW5lOiBzdGFydExpbmUsIGVuZExp
bmU6IGVuZExpbmUgfSk7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX3BhaW50U2tpcHBlZExp
bmVzOiBmdW5jdGlvbigpCisgICAgX3BhaW50U2NoZWR1bGVkTGluZXM6IGZ1bmN0aW9uKG9wdF9z
a2lwUmVzdG9yZVNlbGVjdGlvbikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2tpcHBlZFBh
aW50TGluZXMgfHwgdGhpcy5fZGlydHlMaW5lcykKKyAgICAgICAgaWYgKHRoaXMuX3BhaW50U2No
ZWR1bGVkTGluZXNUaW1lcikKKyAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9wYWludFNj
aGVkdWxlZExpbmVzVGltZXIpOworICAgICAgICBkZWxldGUgdGhpcy5fcGFpbnRTY2hlZHVsZWRM
aW5lc1RpbWVyOworCisgICAgICAgIGlmICghdGhpcy5fc2NoZWR1bGVkUGFpbnRMaW5lcykKICAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9za2lw
cGVkUGFpbnRMaW5lcy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGNodW5rID0gdGhp
cy5fc2tpcHBlZFBhaW50TGluZXNbaV07CisKKyAgICAgICAgaWYgKHRoaXMuX2RpcnR5TGluZXMp
IHsKKyAgICAgICAgICAgIC8vIFJlc2NoZWR1bGUgdGhlIHRpbWVyLgorICAgICAgICAgICAgdGhp
cy5fcGFpbnRTY2hlZHVsZWRMaW5lc1RpbWVyID0gc2V0VGltZW91dCh0aGlzLl9wYWludFNjaGVk
dWxlZExpbmVzLmJpbmQodGhpcyksIDEwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorCisgICAgICAgIHZhciBzY2hlZHVsZWRQYWludExpbmVzID0gdGhpcy5fc2NoZWR1bGVkUGFp
bnRMaW5lczsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3NjaGVkdWxlZFBhaW50TGluZXM7CisKKyAg
ICAgICAgdmFyIHNlbGVjdGlvbiA9IG9wdF9za2lwUmVzdG9yZVNlbGVjdGlvbiA/IG51bGwgOiB0
aGlzLl9nZXRTZWxlY3Rpb24oKTsKKworICAgICAgICB0aGlzLl9yZXN0b3JlUGFpbnRMaW5lc09w
ZXJhdGlvbnNDcmVkaXQoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzY2hlZHVsZWRQ
YWludExpbmVzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgY2h1bmsgPSBzY2hlZHVs
ZWRQYWludExpbmVzW2ldOwogICAgICAgICAgICAgdGhpcy5fcGFpbnRMaW5lcyhjaHVuay5zdGFy
dExpbmUsIGNodW5rLmVuZExpbmUpOwogICAgICAgICB9Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9z
a2lwcGVkUGFpbnRMaW5lczsKKyAgICAgICAgdGhpcy5fcmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rp
b24pOworICAgIH0sCisKKyAgICBfcmVzdG9yZVBhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0OiBm
dW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0NyZWRp
dCA9IDI1MDsKICAgICB9LAogCiAgICAgX3BhaW50TGluZXM6IGZ1bmN0aW9uKGZyb21MaW5lLCB0
b0xpbmUsIHJlc3RvcmVTZWxlY3Rpb24pCiAgICAgewotICAgICAgICBpZiAodGhpcy5fZGlydHlM
aW5lcykgewotICAgICAgICAgICAgdGhpcy5fbWFya1NraXBwZWRQYWludExpbmVzKGZyb21MaW5l
LCB0b0xpbmUpOworICAgICAgICBpZiAoZnJvbUxpbmUgPj0gdG9MaW5lKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9kaXJ0eUxpbmVzIHx8IHRoaXMuX3NjaGVkdWxl
ZFBhaW50TGluZXMpIHsKKyAgICAgICAgICAgIHRoaXMuX3NjaGVkdWxlUGFpbnRMaW5lcyhmcm9t
TGluZSwgdG9MaW5lKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC04NjAs
OCArODk2LDggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0g
ewogCiAgICAgX3BhaW50TGluZTogZnVuY3Rpb24obGluZVJvdywgbGluZU51bWJlcikKICAgICB7
Ci0gICAgICAgIGlmICh0aGlzLl9kaXJ0eUxpbmVzKSB7Ci0gICAgICAgICAgICB0aGlzLl9tYXJr
U2tpcHBlZFBhaW50TGluZXMobGluZU51bWJlciwgbGluZU51bWJlciArIDEpOworICAgICAgICBp
ZiAodGhpcy5fZGlydHlMaW5lcyB8fCB0aGlzLl9zY2hlZHVsZWRQYWludExpbmVzIHx8IHRoaXMu
X3BhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0IDwgMCkgeworICAgICAgICAgICAgdGhpcy5fc2No
ZWR1bGVQYWludExpbmVzKGxpbmVOdW1iZXIsIGxpbmVOdW1iZXIgKyAxKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogCkBAIC04OTYsMTMgKzkzMiwxNyBAQCBXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
IChwbGFpblRleHRTdGFydCAhPT0gLTEpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMu
X2FwcGVuZFRleHROb2RlKGxpbmVSb3csIGxpbmUuc3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0LCBq
KSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwbGFpblRleHRTdGFydCA9IC0xOworICAgICAg
ICAgICAgICAgICAgICAgICAgLS10aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0NyZWRpdDsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9hcHBlbmRTcGFu
KGxpbmVSb3csIGxpbmUuc3Vic3RyaW5nKGosIGogKyBhdHRyaWJ1dGUubGVuZ3RoKSwgYXR0cmli
dXRlLnRva2VuVHlwZSk7CiAgICAgICAgICAgICAgICAgICAgIGogKz0gYXR0cmlidXRlLmxlbmd0
aDsKKyAgICAgICAgICAgICAgICAgICAgLS10aGlzLl9wYWludExpbmVzT3BlcmF0aW9uc0NyZWRp
dDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAocGxh
aW5UZXh0U3RhcnQgIT09IC0xKQorICAgICAgICAgICAgaWYgKHBsYWluVGV4dFN0YXJ0ICE9PSAt
MSkgewogICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFRleHROb2RlKGxpbmVSb3csIGxpbmUu
c3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0LCBsaW5lLmxlbmd0aCkpOworICAgICAgICAgICAgICAg
IC0tdGhpcy5fcGFpbnRMaW5lc09wZXJhdGlvbnNDcmVkaXQ7CisgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAodGhpcy5fcmFuZ2VUb01hcmsgJiYgdGhpcy5fcmFuZ2VUb01hcmsuc3RhcnRM
aW5lID09PSBsaW5lTnVtYmVyKQogICAgICAgICAgICAgICAgIHRoaXMuX21hcmtlZFJhbmdlRWxl
bWVudCA9IGhpZ2hsaWdodFNlYXJjaFJlc3VsdChsaW5lUm93LCB0aGlzLl9yYW5nZVRvTWFyay5z
dGFydENvbHVtbiwgdGhpcy5fcmFuZ2VUb01hcmsuZW5kQ29sdW1uIC0gdGhpcy5fcmFuZ2VUb01h
cmsuc3RhcnRDb2x1bW4pOwogICAgICAgICAgICAgaWYgKGxpbmVSb3cuZGVjb3JhdGlvbnNFbGVt
ZW50KQpAQCAtMTIwNCw3ICsxMjQ0LDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZW1vdmVEZWNvcmF0aW9uc0luUmFuZ2Uo
b2xkUmFuZ2UpOwogICAgICAgICB0aGlzLl91cGRhdGVDaHVua3NGb3JSYW5nZXMob2xkUmFuZ2Us
IG5ld1JhbmdlKTsKICAgICAgICAgdGhpcy5fdXBkYXRlSGlnaGxpZ2h0c0ZvclJhbmdlKG5ld1Jh
bmdlKTsKLSAgICAgICAgdGhpcy5fcGFpbnRTa2lwcGVkTGluZXMoKTsKKyAgICAgICAgdGhpcy5f
cGFpbnRTY2hlZHVsZWRMaW5lcyh0cnVlKTsKICAgICAgICAgdGhpcy5lbmREb21VcGRhdGVzKCk7
CiAKICAgICAgICAgdGhpcy5fcmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rpb24pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86055</attachid>
            <date>2011-03-17 07:52:04 -0700</date>
            <delta_ts>2011-03-23 02:23:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56559-20110317175201.patch</filename>
            <type>text/plain</type>
            <size>8792</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEzNDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYjliZTZiODNiNWVjYzk4
YWU0NmNmNjVkMmQ2MDIzYmZlZmM1MWNiLi45NTY3NDQ0MjQxZmVkYzE1MTg0NjdhMWJlZGU2NzYx
ZGRmOTIyYTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTcgIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFNjcm9sbGluZyBhbmQgbmF2
aWdhdGlvbiBpcyBub3Qgc21vb3RoIG9uIGEgc2NyaXB0IHdpdGggbWFueSBsb25nIGxpbmVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjU1OQorCisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JDaHVua2VkUGFuZWwucHJvdG90eXBlLl9leHBhbmRDaHVua3Mp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9l
eHBhbmRDaHVua3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
cHJvdG90eXBlLl9oaWdobGlnaHREYXRhUmVhZHkpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRl
eHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9zY2hlZHVsZVBhaW50TGluZXMpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLl9wYWludFNjaGVk
dWxlZExpbmVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnBy
b3RvdHlwZS5fcmVzdG9yZVBhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fcGFpbnRMaW5lcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX3BhaW50
TGluZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5
cGUuX2FwcGx5RG9tVXBkYXRlcyk6CisKIDIwMTEtMDMtMTcgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW5kcmVhcyBLbGluZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dFZpZXdlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvVGV4dFZpZXdlci5qcwppbmRleCBiNGM4OTE1M2Y2YTNlMThhYTE3ZTQxZWMzNmYyZDA5YjYz
YTRjOGE1Li5mYWM4ZTM5NzY3YTg5NWQ0OTU2ODNkOGE5ODJkODRiNDU5ZDI1ZmNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRWaWV3ZXIuanMKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0Vmlld2VyLmpzCkBAIC00
MzUsNiArNDM1LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yQ2h1bmtlZFBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKKyAgICBfZXhwYW5kQ2h1bmtzOiBmdW5jdGlv
bihmcm9tSW5kZXgsIHRvSW5kZXgpCisgICAgeworICAgICAgICAvLyBGaXJzdCBjb2xsYXBzZSBj
aHVua3MgdG8gY29sbGVjdCB0aGUgRE9NIGVsZW1lbnRzIGludG8gYSBjYWNoZSB0byByZXVzZSB0
aGVtIGxhdGVyLgorICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZyb21JbmRleDsgKytpKQor
ICAgICAgICAgICAgdGhpcy5fdGV4dENodW5rc1tpXS5leHBhbmRlZCA9IGZhbHNlOworICAgICAg
ICBmb3IgKHZhciBpID0gdG9JbmRleDsgaSA8IHRoaXMuX3RleHRDaHVua3MubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICB0aGlzLl90ZXh0Q2h1bmtzW2ldLmV4cGFuZGVkID0gZmFsc2U7CisgICAg
ICAgIGZvciAodmFyIGkgPSBmcm9tSW5kZXg7IGkgPCB0b0luZGV4OyArK2kpCisgICAgICAgICAg
ICB0aGlzLl90ZXh0Q2h1bmtzW2ldLmV4cGFuZGVkID0gdHJ1ZTsKKyAgICB9LAorCiAgICAgX3Rv
dGFsSGVpZ2h0OiBmdW5jdGlvbihmaXJzdEVsZW1lbnQsIGxhc3RFbGVtZW50KQogICAgIHsKICAg
ICAgICAgbGFzdEVsZW1lbnQgPSAobGFzdEVsZW1lbnQgfHwgZmlyc3RFbGVtZW50KS5uZXh0RWxl
bWVudFNpYmxpbmc7CkBAIC00ODksMTIgKzUwMCw2IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
R3V0dGVyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yR3V0dGVyQ2h1bmsodGhpcywgc3RhcnRMaW5lLCBlbmRMaW5lKTsKICAgICB9
LAogCi0gICAgX2V4cGFuZENodW5rczogZnVuY3Rpb24oZnJvbUluZGV4LCB0b0luZGV4KQotICAg
IHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl90ZXh0Q2h1bmtzLmxlbmd0aDsg
KytpKQotICAgICAgICAgICAgdGhpcy5fdGV4dENodW5rc1tpXS5leHBhbmRlZCA9IChmcm9tSW5k
ZXggPD0gaSAmJiBpIDwgdG9JbmRleCk7Ci0gICAgfSwKLQogICAgIHRleHRDaGFuZ2VkOiBmdW5j
dGlvbihvbGRSYW5nZSwgbmV3UmFuZ2UpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX3RleHRD
aHVua3MpIHsKQEAgLTc5NCw4ICs3OTksOCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2hpZ2hsaWdodGVyLmhpZ2hsaWdodChs
YXN0VmlzaWJsZUxpbmUpOwogICAgICAgICBkZWxldGUgdGhpcy5fbXV0ZUhpZ2hsaWdodExpc3Rl
bmVyOwogCi0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fdGV4dENodW5rcy5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgIHRoaXMuX3RleHRDaHVua3NbaV0uZXhwYW5kZWQgPSAoZnJv
bUluZGV4IDw9IGkgJiYgaSA8IHRvSW5kZXgpOworICAgICAgICB0aGlzLl9yZXN0b3JlUGFpbnRM
aW5lc09wZXJhdGlvbnNDcmVkaXQoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JD
aHVua2VkUGFuZWwucHJvdG90eXBlLl9leHBhbmRDaHVua3MuY2FsbCh0aGlzLCBmcm9tSW5kZXgs
IHRvSW5kZXgpOwogCiAgICAgICAgIHRoaXMuX3Jlc3RvcmVTZWxlY3Rpb24oc2VsZWN0aW9uKTsK
ICAgICB9LApAQCAtODA0LDQxICs4MDksNzIgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX211dGVIaWdobGln
aHRMaXN0ZW5lcikKICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgdGhpcy5fcmVzdG9yZVBh
aW50TGluZXNPcGVyYXRpb25zQ3JlZGl0KCk7CiAgICAgICAgIHRoaXMuX3BhaW50TGluZXMoZnJv
bUxpbmUsIHRvTGluZSwgdHJ1ZSAvKnJlc3RvcmVTZWxlY3Rpb24qLyk7CiAgICAgfSwKIAotICAg
IF9tYXJrU2tpcHBlZFBhaW50TGluZXM6IGZ1bmN0aW9uKHN0YXJ0TGluZSwgZW5kTGluZSkKKyAg
ICBfc2NoZWR1bGVQYWludExpbmVzOiBmdW5jdGlvbihzdGFydExpbmUsIGVuZExpbmUpCiAgICAg
ewotICAgICAgICBpZiAoIXRoaXMuX3NraXBwZWRQYWludExpbmVzKQotICAgICAgICAgICAgdGhp
cy5fc2tpcHBlZFBhaW50TGluZXMgPSBbIHsgc3RhcnRMaW5lOiBzdGFydExpbmUsIGVuZExpbmU6
IGVuZExpbmUgfSBdOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgdGhpcy5fc2tpcHBlZFBhaW50TGluZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAg
ICAgICB2YXIgY2h1bmsgPSB0aGlzLl9za2lwcGVkUGFpbnRMaW5lc1tpXTsKKyAgICAgICAgaWYg
KCF0aGlzLl9zY2hlZHVsZWRQYWludExpbmVzKSB7CisgICAgICAgICAgICB0aGlzLl9zY2hlZHVs
ZWRQYWludExpbmVzID0gWyB7IHN0YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5l
IH0gXTsKKyAgICAgICAgICAgIHRoaXMuX3BhaW50U2NoZWR1bGVkTGluZXNUaW1lciA9IHNldFRp
bWVvdXQodGhpcy5fcGFpbnRTY2hlZHVsZWRMaW5lcy5iaW5kKHRoaXMpLCAxMCk7CisgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NjaGVkdWxl
ZFBhaW50TGluZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICB2YXIgY2h1bmsgPSB0
aGlzLl9zY2hlZHVsZWRQYWludExpbmVzW2ldOwogICAgICAgICAgICAgICAgIGlmIChjaHVuay5z
dGFydExpbmUgPD0gZW5kTGluZSAmJiBjaHVuay5lbmRMaW5lID49IHN0YXJ0TGluZSkgewogICAg
ICAgICAgICAgICAgICAgICBjaHVuay5zdGFydExpbmUgPSBNYXRoLm1pbihjaHVuay5zdGFydExp
bmUsIHN0YXJ0TGluZSk7CiAgICAgICAgICAgICAgICAgICAgIGNodW5rLmVuZExpbmUgPSBNYXRo
Lm1heChjaHVuay5lbmRMaW5lLCBlbmRMaW5lKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoY2h1bmsuc3RhcnRMaW5l
ID4gZW5kTGluZSkgeworICAgICAgICAgICAgICAgICAgICB0aGlzLl9zY2hlZHVsZWRQYWludExp
bmVzLnNwbGljZShpLCAwLCB7IHN0YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5l
IH0pOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5fc2tpcHBlZFBhaW50TGluZXMucHVzaCh7IHN0
YXJ0TGluZTogc3RhcnRMaW5lLCBlbmRMaW5lOiBlbmRMaW5lIH0pOworICAgICAgICAgICAgdGhp
cy5fc2NoZWR1bGVkUGFpbnRMaW5lcy5wdXNoKHsgc3RhcnRMaW5lOiBzdGFydExpbmUsIGVuZExp
bmU6IGVuZExpbmUgfSk7CiAgICAgICAgIH0KICAgICB9LAogCi0gICAgX3BhaW50U2tpcHBlZExp
bmVzOiBmdW5jdGlvbigpCisgICAgX3BhaW50U2NoZWR1bGVkTGluZXM6IGZ1bmN0aW9uKG9wdF9z
a2lwUmVzdG9yZVNlbGVjdGlvbikKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc2tpcHBlZFBh
aW50TGluZXMgfHwgdGhpcy5fZGlydHlMaW5lcykKKyAgICAgICAgaWYgKHRoaXMuX3BhaW50U2No
ZWR1bGVkTGluZXNUaW1lcikKKyAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9wYWludFNj
aGVkdWxlZExpbmVzVGltZXIpOworICAgICAgICBkZWxldGUgdGhpcy5fcGFpbnRTY2hlZHVsZWRM
aW5lc1RpbWVyOworCisgICAgICAgIGlmICghdGhpcy5fc2NoZWR1bGVkUGFpbnRMaW5lcykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAvLyBSZXNjaGVkdWxlIHRoZSB0aW1lciBpZiB3
ZSBjYW4gbm90IHBhaW50IHRoZSBsaW5lcyB5ZXQsIG9yIHRoZSB1c2VyIGlzIHNjcm9sbGluZy4K
KyAgICAgICAgaWYgKHRoaXMuX2RpcnR5TGluZXMgfHwgdGhpcy5fcmVwYWludEFsbFRpbWVyKSB7
CisgICAgICAgICAgICB0aGlzLl9wYWludFNjaGVkdWxlZExpbmVzVGltZXIgPSBzZXRUaW1lb3V0
KHRoaXMuX3BhaW50U2NoZWR1bGVkTGluZXMuYmluZCh0aGlzKSwgNTApOwogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NraXBwZWRQYWludExp
bmVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgY2h1bmsgPSB0aGlzLl9za2lwcGVk
UGFpbnRMaW5lc1tpXTsKKyAgICAgICAgfQorCisgICAgICAgIHZhciBzY2hlZHVsZWRQYWludExp
bmVzID0gdGhpcy5fc2NoZWR1bGVkUGFpbnRMaW5lczsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3Nj
aGVkdWxlZFBhaW50TGluZXM7CisKKyAgICAgICAgdmFyIHNlbGVjdGlvbiA9IG9wdF9za2lwUmVz
dG9yZVNlbGVjdGlvbiA/IG51bGwgOiB0aGlzLl9nZXRTZWxlY3Rpb24oKTsKKworICAgICAgICB0
aGlzLl9yZXN0b3JlUGFpbnRMaW5lc09wZXJhdGlvbnNDcmVkaXQoKTsKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBzY2hlZHVsZWRQYWludExpbmVzLmxlbmd0aDsgKytpKSB7CisgICAgICAg
ICAgICB2YXIgY2h1bmsgPSBzY2hlZHVsZWRQYWludExpbmVzW2ldOwogICAgICAgICAgICAgdGhp
cy5fcGFpbnRMaW5lcyhjaHVuay5zdGFydExpbmUsIGNodW5rLmVuZExpbmUpOwogICAgICAgICB9
Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9za2lwcGVkUGFpbnRMaW5lczsKKyAgICAgICAgdGhpcy5f
cmVzdG9yZVNlbGVjdGlvbihzZWxlY3Rpb24pOworICAgIH0sCisKKyAgICBfcmVzdG9yZVBhaW50
TGluZXNPcGVyYXRpb25zQ3JlZGl0OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9w
YWludExpbmVzT3BlcmF0aW9uc0NyZWRpdCA9IDI1MDsKICAgICB9LAogCiAgICAgX3BhaW50TGlu
ZXM6IGZ1bmN0aW9uKGZyb21MaW5lLCB0b0xpbmUsIHJlc3RvcmVTZWxlY3Rpb24pCiAgICAgewot
ICAgICAgICBpZiAodGhpcy5fZGlydHlMaW5lcykgewotICAgICAgICAgICAgdGhpcy5fbWFya1Nr
aXBwZWRQYWludExpbmVzKGZyb21MaW5lLCB0b0xpbmUpOworICAgICAgICBpZiAoZnJvbUxpbmUg
Pj0gdG9MaW5lKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmICh0aGlzLl9kaXJ0
eUxpbmVzIHx8IHRoaXMuX3NjaGVkdWxlZFBhaW50TGluZXMpIHsKKyAgICAgICAgICAgIHRoaXMu
X3NjaGVkdWxlUGFpbnRMaW5lcyhmcm9tTGluZSwgdG9MaW5lKTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogCkBAIC04NjAsOCArODk2LDggQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgX3BhaW50TGluZTogZnVuY3Rpb24obGlu
ZVJvdywgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9kaXJ0eUxpbmVzKSB7
Ci0gICAgICAgICAgICB0aGlzLl9tYXJrU2tpcHBlZFBhaW50TGluZXMobGluZU51bWJlciwgbGlu
ZU51bWJlciArIDEpOworICAgICAgICBpZiAodGhpcy5fZGlydHlMaW5lcyB8fCB0aGlzLl9zY2hl
ZHVsZWRQYWludExpbmVzIHx8IHRoaXMuX3BhaW50TGluZXNPcGVyYXRpb25zQ3JlZGl0IDwgMCkg
eworICAgICAgICAgICAgdGhpcy5fc2NoZWR1bGVQYWludExpbmVzKGxpbmVOdW1iZXIsIGxpbmVO
dW1iZXIgKyAxKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCkBAIC04OTYsMTMg
KzkzMiwxNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7
CiAgICAgICAgICAgICAgICAgICAgIGlmIChwbGFpblRleHRTdGFydCAhPT0gLTEpIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFRleHROb2RlKGxpbmVSb3csIGxpbmUuc3Vi
c3RyaW5nKHBsYWluVGV4dFN0YXJ0LCBqKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBwbGFp
blRleHRTdGFydCA9IC0xOworICAgICAgICAgICAgICAgICAgICAgICAgLS10aGlzLl9wYWludExp
bmVzT3BlcmF0aW9uc0NyZWRpdDsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgICAgICB0aGlzLl9hcHBlbmRTcGFuKGxpbmVSb3csIGxpbmUuc3Vic3RyaW5nKGosIGogKyBh
dHRyaWJ1dGUubGVuZ3RoKSwgYXR0cmlidXRlLnRva2VuVHlwZSk7CiAgICAgICAgICAgICAgICAg
ICAgIGogKz0gYXR0cmlidXRlLmxlbmd0aDsKKyAgICAgICAgICAgICAgICAgICAgLS10aGlzLl9w
YWludExpbmVzT3BlcmF0aW9uc0NyZWRpdDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICBpZiAocGxhaW5UZXh0U3RhcnQgIT09IC0xKQorICAgICAgICAgICAg
aWYgKHBsYWluVGV4dFN0YXJ0ICE9PSAtMSkgewogICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVu
ZFRleHROb2RlKGxpbmVSb3csIGxpbmUuc3Vic3RyaW5nKHBsYWluVGV4dFN0YXJ0LCBsaW5lLmxl
bmd0aCkpOworICAgICAgICAgICAgICAgIC0tdGhpcy5fcGFpbnRMaW5lc09wZXJhdGlvbnNDcmVk
aXQ7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodGhpcy5fcmFuZ2VUb01hcmsgJiYg
dGhpcy5fcmFuZ2VUb01hcmsuc3RhcnRMaW5lID09PSBsaW5lTnVtYmVyKQogICAgICAgICAgICAg
ICAgIHRoaXMuX21hcmtlZFJhbmdlRWxlbWVudCA9IGhpZ2hsaWdodFNlYXJjaFJlc3VsdChsaW5l
Um93LCB0aGlzLl9yYW5nZVRvTWFyay5zdGFydENvbHVtbiwgdGhpcy5fcmFuZ2VUb01hcmsuZW5k
Q29sdW1uIC0gdGhpcy5fcmFuZ2VUb01hcmsuc3RhcnRDb2x1bW4pOwogICAgICAgICAgICAgaWYg
KGxpbmVSb3cuZGVjb3JhdGlvbnNFbGVtZW50KQpAQCAtMTIwNCw3ICsxMjQ0LDcgQEAgV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9y
ZW1vdmVEZWNvcmF0aW9uc0luUmFuZ2Uob2xkUmFuZ2UpOwogICAgICAgICB0aGlzLl91cGRhdGVD
aHVua3NGb3JSYW5nZXMob2xkUmFuZ2UsIG5ld1JhbmdlKTsKICAgICAgICAgdGhpcy5fdXBkYXRl
SGlnaGxpZ2h0c0ZvclJhbmdlKG5ld1JhbmdlKTsKLSAgICAgICAgdGhpcy5fcGFpbnRTa2lwcGVk
TGluZXMoKTsKKyAgICAgICAgdGhpcy5fcGFpbnRTY2hlZHVsZWRMaW5lcyh0cnVlKTsKICAgICAg
ICAgdGhpcy5lbmREb21VcGRhdGVzKCk7CiAKICAgICAgICAgdGhpcy5fcmVzdG9yZVNlbGVjdGlv
bihzZWxlY3Rpb24pOwo=
</data>
<flag name="review"
          id="78273"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>