<?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>31142</bug_id>
          
          <creation_ts>2009-11-04 14:25:04 -0800</creation_ts>
          <short_desc>DOM tree selection disappears upon page refresh</short_desc>
          <delta_ts>2009-12-02 10:32:19 -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>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Piotr Petrus">itunesgripes</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>abarth</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>riddlu</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160604</commentid>
    <comment_count>0</comment_count>
    <who name="Piotr Petrus">itunesgripes</who>
    <bug_when>2009-11-04 14:25:04 -0800</bug_when>
    <thetext>Web Inspector doesn’t restore selection for DOM element (HTML tree in the Elements pane) upon page refresh. This is crucial for front-end developers, because we develop sites locally and rely on instant feedback in the browser for any minor change done in the source code (may it be CSS, HTML or JavaScript).

Steps to reproduce: 

1. Open the latest WebKit.app, and right-click on &quot;How can I help&quot; header from the default homepage and choose &quot;Inspect Element&quot;
2. Web Inspector will open and &lt;h2&gt; element will be selected
3. Press Cmd+R to refresh that page
4. Web Inspector will not close, but the selection will be gone – going back to &lt;body&gt; element

What is supposed to happen: If the selected element is still present in the DOM after page refresh, select it again after refresh.

For any other feedback / ideas, I suggest running Firefox + Firebug. They’ve implemented it.

Thanks a lot,
Peter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160606</commentid>
    <comment_count>1</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-11-04 14:28:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/4987510&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167422</commentid>
    <comment_count>2</comment_count>
      <attachid>44041</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-11-30 13:58:04 -0800</bug_when>
    <thetext>Created attachment 44041
[PATCH] Proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167424</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-11-30 14:03:06 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44041 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167983</commentid>
    <comment_count>4</comment_count>
      <attachid>44145</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-02 07:32:36 -0800</bug_when>
    <thetext>Created attachment 44145
[PATCH] Now with no &apos;animation&apos;.

Couple of drive-by improvements here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167984</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-02 07:33:35 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44145 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168023</commentid>
    <comment_count>6</comment_count>
      <attachid>44145</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-12-02 09:34:32 -0800</bug_when>
    <thetext>Comment on attachment 44145
[PATCH] Now with no &apos;animation&apos;.

&gt; +    for (size_t i = 0; i &lt; pathTokens.size()  - 1; i += 2) {

Extra space before &quot;- 1&quot;.


&gt; +        int childNumber = pathTokens[i].toInt(&amp;success);
&gt; +        int nodesCount = innerChildNodeCount(node);

Can these be unsigned/size_t?


&gt; +        String childName = pathTokens[i + 1];

Move this down to where you need it.


&gt; +        for (int j = 0; child &amp;&amp; j &lt; childNumber; ++j)

j should be size_t.


&gt;          ~InspectorDOMAgent();
&gt; +        void reset();

Put a newline before reset so it isn&apos;t grouped with the destructor.


&gt; +        this.reset();
&gt; +        if (!inspectedRootDocument)
&gt;              return;

Put a newline after the reset call.


&gt; +            InjectedScriptAccess.pushNodeByPathToFrontend(this._selectedPathOnReset, selectLastSelectedNode.bind(this));

It seems odd to call a function called &quot;pushNodeByPathToFrontend&quot; from the frontend! Should it just be &quot;nodeByPath&quot; and take a callback?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168057</commentid>
    <comment_count>7</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-12-02 10:32:19 -0800</bug_when>
    <thetext>Landed with comments addressed.

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	LayoutTests/ChangeLog
	A	LayoutTests/inspector/elements-panel-selection-on-refresh-expected.txt
	A	LayoutTests/inspector/elements-panel-selection-on-refresh.html
	M	WebCore/ChangeLog
	M	WebCore/inspector/InjectedScriptHost.cpp
	M	WebCore/inspector/InjectedScriptHost.h
	M	WebCore/inspector/InjectedScriptHost.idl
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorDOMAgent.cpp
	M	WebCore/inspector/InspectorDOMAgent.h
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/ElementsPanel.js
	M	WebCore/inspector/front-end/InjectedScript.js
	M	WebCore/inspector/front-end/InjectedScriptAccess.js
Committed r51601</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44041</attachid>
            <date>2009-11-30 13:58:04 -0800</date>
            <delta_ts>2009-12-02 07:32:36 -0800</delta_ts>
            <desc>[PATCH] Proposed fix</desc>
            <filename>selection_reload</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5M2FiYzg3Li4wMzg4MGQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTEt
MzAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NIHRy
ZWUgc2VsZWN0aW9uIGRpc2FwcGVhcnMgdXBvbiBwYWdlIHJlZnJlc2guCisKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxMTQyCisKKyAgICAgICAgKiBp
bnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9u
LXJlZnJlc2guaHRtbDogQWRkZWQuCisKIDIwMDktMTEtMzAgIEpvc2VwaCBQZWNvcmFybyAgPGpv
ZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlv
bi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50
cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVmcmVzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjU4YmI3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVmcmVzaC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyB0aGF0IGVsZW1lbnRzIHBhbmVsIHByZXNlcnZl
cyBzZWxlY3RlZCBub2RlIG9uIHBhZ2UgcmVmcmVzaC4KKworU2VsZWN0ZWQgZWxlbWVudCBzaG91
bGQgYmUgJ1AnLCB3YXM6ICdQJworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVmcmVzaC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA5ODBhOTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gu
aHRtbApAQCAtMCwwICsxLDY0IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imluc3Bl
Y3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJlbGVtZW50cy10ZXN0cy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkb2l0KCkKK3sKKyAgICBmdW5jdGlvbiBj
YWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICBpZiAocmVzdWx0ID09PSAicmVsb2FkIikK
KyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBvdXRwdXQoIlNlbGVjdGVkIGVsZW1lbnQgc2hvdWxkIGJlICdQJywgd2FzOiAn
IiArIHJlc3VsdCArICInIik7CisgICAgICAgICAgICBub3RpZnlEb25lKCk7CisgICAgICAgIH0K
KyAgICB9CisgICAgZXZhbHVhdGVJbldlYkluc3BlY3RvcigiZnJvbnRlbmRfc2VsZWN0RWxlbWVu
dCIsIGNhbGxiYWNrKTsKK30KKworLy8gRnJvbnRlbmQgZnVuY3Rpb25zLgorCitmdW5jdGlvbiBm
cm9udGVuZF9zZWxlY3RFbGVtZW50KHRlc3RDb250cm9sbGVyKQoreworICAgIGlmICh3aW5kb3cu
cmVmcmVzaENhbGxlZCkgeworICAgICAgICAvLyBXZSBzaG91bGQgaGF2ZSAidGVzdC10b3BpYyIg
ZWxlbWVudCBzZWxlY3RlZCBhZnRlciByZWZyZXNoLgorICAgICAgICB2YXIgc2VsZWN0ZWRFbGVt
ZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50cmVlT3V0bGluZS5zZWxlY3RlZFRy
ZWVFbGVtZW50OworICAgICAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50ID8gc2VsZWN0ZWRFbGVt
ZW50LnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lIDogIm51bGwiOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIFNlbGVjdCB0aGUgInRlc3QtdG9waWMiIGVsZW1lbnQuCisgICAgICAgIHRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgZnJvbnRlbmRfZXhwYW5kRE9NU3Vi
dHJlZShXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQpOworCisgICAgICAgIHRlc3RDb250
cm9sbGVyLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBmcm9udGVuZF9zZWxlY3RFbGVtZW50Q29udGludWF0aW9uKHRlc3RDb250cm9sbGVyKTsKKyAg
ICAgICAgfSk7CisgICAgfQorfQorCitmdW5jdGlvbiBmcm9udGVuZF9zZWxlY3RFbGVtZW50Q29u
dGludWF0aW9uKHRlc3RDb250cm9sbGVyKQoreworICAgIHZhciBpbm5lck1hcHBpbmcgPSBXZWJJ
bnNwZWN0b3IuZG9tQWdlbnQuX2lkVG9ET01Ob2RlOworICAgIGZvciAodmFyIG5vZGVJZCBpbiBp
bm5lck1hcHBpbmcpIHsKKyAgICAgICAgdmFyIG5vZGUgPSBpbm5lck1hcHBpbmdbbm9kZUlkXTsK
KyAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICJQIiAmJiBub2RlLmdldEF0dHJpYnV0ZSgi
aWQiKSA9PT0gInRlc3QtdG9waWMiKSB7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IucGFuZWxz
LmVsZW1lbnRzLnRyZWVPdXRsaW5lLnJldmVhbEFuZFNlbGVjdE5vZGUobm9kZSk7CisgICAgICAg
ICAgICB3aW5kb3cucmVmcmVzaENhbGxlZCA9IHRydWU7CisgICAgICAgICAgICB0ZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCJyZWxvYWQiKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKyAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCJGQUlMIik7Cit9CisKKzwv
c2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9ubG9hZCgpIj4KKzxwIGlkPSJ0ZXN0
LXRvcGljIj4KK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwgcHJlc2VydmVzIHNlbGVjdGVkIG5v
ZGUgb24gcGFnZSByZWZyZXNoLgorPC9wPgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU0OGNjZGQuLjgx
Nzg2ZTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMTEtMzAgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2ViIEluc3BlY3RvcjogRE9NIHRyZWUgc2VsZWN0aW9uIGRpc2FwcGVhcnMgdXBv
biBwYWdlIHJlZnJlc2guCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxMTQyCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVs
LXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWwKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRE9NQWdlbnQuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUu
X3JlbnVtYmVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5cGUucmVzZXQu
c2VsZWN0Tm9kZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5
cGUucmVzZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
Ll9leHBhbmRJbml0aWFsUGF0aCk6CisKIDIwMDktMTEtMzAgIEpvc2VwaCBQZWNvcmFybyAgPGpv
ZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCmluZGV4IDI1MmI1ZjguLmU3MTcw
NjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwor
KysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKQEAgLTE3OSw2ICsx
NzksNyBAQCBXZWJJbnNwZWN0b3IuRE9NTm9kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
bGFzdENoaWxkID0gdGhpcy5jaGlsZHJlblt0aGlzLl9jaGlsZE5vZGVDb3VudCAtIDFdOwogICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2NoaWxkTm9kZUNvdW50OyArK2kpIHsKICAg
ICAgICAgICAgIHZhciBjaGlsZCA9IHRoaXMuY2hpbGRyZW5baV07CisgICAgICAgICAgICBjaGls
ZC5pbmRleCA9IGk7CiAgICAgICAgICAgICBjaGlsZC5uZXh0U2libGluZyA9IGkgKyAxIDwgdGhp
cy5fY2hpbGROb2RlQ291bnQgPyB0aGlzLmNoaWxkcmVuW2kgKyAxXSA6IG51bGw7CiAgICAgICAg
ICAgICBjaGlsZC5wcmV2U2libGluZyA9IGkgLSAxID49IDAgPyB0aGlzLmNoaWxkcmVuW2kgLSAx
XSA6IG51bGw7CiAgICAgICAgICAgICBjaGlsZC5wYXJlbnROb2RlID0gdGhpczsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggNzRmNWRhNi4uNWE3
YzdhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFu
ZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMK
QEAgLTE2NCw2ICsxNjQsMTYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBl
ID0gewogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmZv
Y3VzZWRET01Ob2RlKSB7CisgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBhdGhPblJlc2V0ID0g
W107CisgICAgICAgICAgICB2YXIgbm9kZSA9IHRoaXMuZm9jdXNlZERPTU5vZGU7CisgICAgICAg
ICAgICB3aGlsZSAoImluZGV4IiBpbiBub2RlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fc2Vs
ZWN0ZWRQYXRoT25SZXNldC5wdXNoKG5vZGUuaW5kZXgpOworICAgICAgICAgICAgICAgIHRoaXMu
X3NlbGVjdGVkUGF0aE9uUmVzZXQucHVzaChub2RlLm5vZGVOYW1lKTsKKyAgICAgICAgICAgICAg
ICBub2RlID0gbm9kZS5wYXJlbnROb2RlOworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAg
ICAgICAgdGhpcy5yb290RE9NTm9kZSA9IG51bGw7CiAgICAgICAgIHRoaXMuZm9jdXNlZERPTU5v
ZGUgPSBudWxsOwogCkBAIC0xOTQsMTUgKzIwNCw1MyBAQCBXZWJJbnNwZWN0b3IuRWxlbWVudHNQ
YW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zdXBwcmVzc1Nl
bGVjdEhpZ2hsaWdodCA9IHRydWU7CiAgICAgICAgIHRoaXMucm9vdERPTU5vZGUgPSBpbnNwZWN0
ZWRSb290RG9jdW1lbnQ7CisgICAgICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NTZWxlY3RI
aWdobGlnaHQgPSBmYWxzZTsKIAotICAgICAgICB2YXIgY2FuaWRhdGVGb2N1c05vZGUgPSBpbnNw
ZWN0ZWRSb290RG9jdW1lbnQuYm9keSB8fCBpbnNwZWN0ZWRSb290RG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50OwotICAgICAgICBpZiAoY2FuaWRhdGVGb2N1c05vZGUpIHsKLSAgICAgICAgICAgIHRo
aXMuZm9jdXNlZERPTU5vZGUgPSBjYW5pZGF0ZUZvY3VzTm9kZTsKKyAgICAgICAgZnVuY3Rpb24g
c2VsZWN0Tm9kZShjYW5pZGF0ZUZvY3VzTm9kZSkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KGNhbmlkYXRlRm9jdXNOb2RlKSB7CisgICAgICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5z
dXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IHRydWU7CisgICAgICAgICAgICAgICAgdGhpcy5mb2N1
c2VkRE9NTm9kZSA9IGNhbmlkYXRlRm9jdXNOb2RlOwogCi0gICAgICAgICAgICBpZiAodGhpcy50
cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50KQotICAgICAgICAgICAgICAgIHRoaXMudHJl
ZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudC5leHBhbmQoKTsKKyAgICAgICAgICAgICAgICBp
ZiAodGhpcy50cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50KQorICAgICAgICAgICAgICAg
ICAgICB0aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAg
ICAgICAgICAgICAgdGhpcy50cmVlT3V0bGluZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IGZh
bHNlOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHRoaXMudHJlZU91dGxpbmUu
c3VwcHJlc3NTZWxlY3RIaWdobGlnaHQgPSBmYWxzZTsKKworICAgICAgICBpZiAodGhpcy5fc2Vs
ZWN0ZWRQYXRoT25SZXNldCAmJiB0aGlzLl9zZWxlY3RlZFBhdGhPblJlc2V0Lmxlbmd0aCkgewor
ICAgICAgICAgICAgdGhpcy5fZXhwYW5kSW5pdGlhbFBhdGgoaW5zcGVjdGVkUm9vdERvY3VtZW50
LCB0aGlzLl9zZWxlY3RlZFBhdGhPblJlc2V0LCBzZWxlY3ROb2RlLmJpbmQodGhpcykpOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIHNlbGVjdE5vZGUuY2FsbCh0aGlzLCBpbnNwZWN0ZWRS
b290RG9jdW1lbnQuYm9keSB8fCBpbnNwZWN0ZWRSb290RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkUGF0aE9uUmVzZXQ7CisgICAgfSwKKwor
ICAgIF9leHBhbmRJbml0aWFsUGF0aDogZnVuY3Rpb24ocGFyZW50Tm9kZSwgcGF0aCwgY2FsbGJh
Y2spCisgICAgeworICAgICAgICBmdW5jdGlvbiBwcm9jZXNzQ2hpbGRyZW4oY2hpbGRyZW4pCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHZhciB0cmVlRWxlbWVudCA9IHRoaXMudHJlZU91dGxpbmUu
ZmluZFRyZWVFbGVtZW50KHBhcmVudE5vZGUpOworICAgICAgICAgICAgaWYgKHRyZWVFbGVtZW50
KQorICAgICAgICAgICAgICAgIHRyZWVFbGVtZW50LmV4cGFuZCgpOworCisgICAgICAgICAgICBp
ZiAocGF0aC5sZW5ndGggPT0gMCkgeworICAgICAgICAgICAgICAgIC8vIFJlYWNoZWQgbGFzdCBw
YXRoIGVsZW1lbnQuCisgICAgICAgICAgICAgICAgY2FsbGJhY2socGFyZW50Tm9kZSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgbGVu
Z3RoID0gcGF0aC5sZW5ndGg7CisgICAgICAgICAgICB2YXIgbm9kZU5hbWUgPSBwYXRoW2xlbmd0
aCAtIDFdOworICAgICAgICAgICAgdmFyIG5vZGVJbmRleCA9IHBhdGhbbGVuZ3RoIC0gMl07Cisg
ICAgICAgICAgICB2YXIgbm9kZSA9IGNoaWxkcmVuW25vZGVJbmRleF07CisgICAgICAgICAgICBp
ZiAoIW5vZGUgfHwgbm9kZS5ub2RlTmFtZSAhPT0gbm9kZU5hbWUpIHsKKyAgICAgICAgICAgICAg
ICAvLyBUcmVlIHN0cnVjdHVyZSBoYXMgY2hhbmdlZCAtIHJldHVybiBsYXN0IHVuY2hhbmdlZCBu
b2RlIGluIHBhdGguCisgICAgICAgICAgICAgICAgY2FsbGJhY2socGFyZW50Tm9kZSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5fZXhw
YW5kSW5pdGlhbFBhdGgobm9kZSwgcGF0aC5zbGljZSgwLCBsZW5ndGggLSAyKSwgY2FsbGJhY2sp
OworICAgICAgICB9CisgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5nZXRDaGlsZE5vZGVz
QXN5bmMocGFyZW50Tm9kZSwgcHJvY2Vzc0NoaWxkcmVuLmJpbmQodGhpcykpOwogICAgIH0sCiAK
ICAgICBzZWFyY2hDYW5jZWxlZDogZnVuY3Rpb24oKQo=
</data>
<flag name="review"
          id="25812"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44145</attachid>
            <date>2009-12-02 07:32:36 -0800</date>
            <delta_ts>2009-12-02 09:34:32 -0800</delta_ts>
            <desc>[PATCH] Now with no &apos;animation&apos;.</desc>
            <filename>restore_selection</filename>
            <type>text/plain</type>
            <size>18831</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5NWMxM2M2Li44NjMxMDhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMTIt
MDIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBkaGNwLTE3Mi0yOC0xNzQtMjIwLnNwYi5jb3Jw
Lmdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IERPTSB0cmVlIHNlbGVjdGlvbiBkaXNhcHBlYXJzIHVwb24g
cGFnZSByZWZyZXNoLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zMTE0MgorCisgICAgICAgICogaW5zcGVjdG9yL2VsZW1lbnRzLXBhbmVsLXNlbGVj
dGlvbi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2VsZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTEyLTAxICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBZGFtIFJvYmVuLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Vs
ZW1lbnRzLXBhbmVsLXNlbGVjdGlvbi1vbi1yZWZyZXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24tcmVmcmVzaC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjU4YmI3YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rp
b24tb24tcmVmcmVzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUZXN0cyB0aGF0IGVs
ZW1lbnRzIHBhbmVsIHByZXNlcnZlcyBzZWxlY3RlZCBub2RlIG9uIHBhZ2UgcmVmcmVzaC4KKwor
U2VsZWN0ZWQgZWxlbWVudCBzaG91bGQgYmUgJ1AnLCB3YXM6ICdQJworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwtc2VsZWN0aW9uLW9uLXJlZnJlc2gu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rpb24tb24t
cmVmcmVzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5ODBhOTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZWxlbWVudHMtcGFuZWwt
c2VsZWN0aW9uLW9uLXJlZnJlc2guaHRtbApAQCAtMCwwICsxLDY0IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Imluc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJlbGVtZW50cy10ZXN0cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCitmdW5jdGlvbiBkb2l0
KCkKK3sKKyAgICBmdW5jdGlvbiBjYWxsYmFjayhyZXN1bHQpCisgICAgeworICAgICAgICBpZiAo
cmVzdWx0ID09PSAicmVsb2FkIikKKyAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQo
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBvdXRwdXQoIlNlbGVjdGVkIGVsZW1lbnQg
c2hvdWxkIGJlICdQJywgd2FzOiAnIiArIHJlc3VsdCArICInIik7CisgICAgICAgICAgICBub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgZXZhbHVhdGVJbldlYkluc3BlY3Rvcigi
ZnJvbnRlbmRfc2VsZWN0RWxlbWVudCIsIGNhbGxiYWNrKTsKK30KKworLy8gRnJvbnRlbmQgZnVu
Y3Rpb25zLgorCitmdW5jdGlvbiBmcm9udGVuZF9zZWxlY3RFbGVtZW50KHRlc3RDb250cm9sbGVy
KQoreworICAgIGlmICh3aW5kb3cucmVmcmVzaENhbGxlZCkgeworICAgICAgICAvLyBXZSBzaG91
bGQgaGF2ZSAidGVzdC10b3BpYyIgZWxlbWVudCBzZWxlY3RlZCBhZnRlciByZWZyZXNoLgorICAg
ICAgICB2YXIgc2VsZWN0ZWRFbGVtZW50ID0gV2ViSW5zcGVjdG9yLnBhbmVscy5lbGVtZW50cy50
cmVlT3V0bGluZS5zZWxlY3RlZFRyZWVFbGVtZW50OworICAgICAgICByZXR1cm4gc2VsZWN0ZWRF
bGVtZW50ID8gc2VsZWN0ZWRFbGVtZW50LnJlcHJlc2VudGVkT2JqZWN0Lm5vZGVOYW1lIDogIm51
bGwiOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIFNlbGVjdCB0aGUgInRlc3QtdG9waWMiIGVs
ZW1lbnQuCisgICAgICAgIHRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
ZnJvbnRlbmRfZXhwYW5kRE9NU3VidHJlZShXZWJJbnNwZWN0b3IuZG9tQWdlbnQuZG9jdW1lbnQp
OworCisgICAgICAgIHRlc3RDb250cm9sbGVyLnJ1bkFmdGVyUGVuZGluZ0Rpc3BhdGNoZXMoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBmcm9udGVuZF9zZWxlY3RFbGVtZW50Q29udGludWF0aW9u
KHRlc3RDb250cm9sbGVyKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCitmdW5jdGlvbiBmcm9u
dGVuZF9zZWxlY3RFbGVtZW50Q29udGludWF0aW9uKHRlc3RDb250cm9sbGVyKQoreworICAgIHZh
ciBpbm5lck1hcHBpbmcgPSBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuX2lkVG9ET01Ob2RlOworICAg
IGZvciAodmFyIG5vZGVJZCBpbiBpbm5lck1hcHBpbmcpIHsKKyAgICAgICAgdmFyIG5vZGUgPSBp
bm5lck1hcHBpbmdbbm9kZUlkXTsKKyAgICAgICAgaWYgKG5vZGUubm9kZU5hbWUgPT09ICJQIiAm
JiBub2RlLmdldEF0dHJpYnV0ZSgiaWQiKSA9PT0gInRlc3QtdG9waWMiKSB7CisgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLnRyZWVPdXRsaW5lLnJldmVhbEFuZFNlbGVj
dE5vZGUobm9kZSk7CisgICAgICAgICAgICB3aW5kb3cucmVmcmVzaENhbGxlZCA9IHRydWU7Cisg
ICAgICAgICAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCJyZWxvYWQiKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyAgICB0ZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCJGQUlMIik7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9Im9u
bG9hZCgpIj4KKzxwIGlkPSJ0ZXN0LXRvcGljIj4KK1Rlc3RzIHRoYXQgZWxlbWVudHMgcGFuZWwg
cHJlc2VydmVzIHNlbGVjdGVkIG5vZGUgb24gcGFnZSByZWZyZXNoLgorPC9wPgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IDU0OTI1N2IuLjQ1MzVmYmEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMDktMTItMDIgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBkaGNwLTE3Mi0yOC0xNzQtMjIwLnNwYi5jb3JwLmdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IERPTSB0cmVlIHNlbGVjdGlvbiBkaXNhcHBlYXJzIHVwb24gcGFnZSBy
ZWZyZXNoLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTE0MgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9lbGVtZW50cy1wYW5lbC1zZWxlY3Rp
b24tb24tcmVmcmVzaC5odG1sCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRI
b3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0SG9zdDo6cHVzaE5vZGVC
eVBhdGhUb0Zyb250ZW5kKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6CisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmQuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpyZWxl
YXNlRE9NQWdlbnQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVz
ZXRTY3JpcHRPYmplY3RzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6On5JbnNwZWN0b3JET01B
Z2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cmVzZXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpwdXNoRG9jdW1lbnRUb0Zyb250ZW5kKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50Ojpub2RlRm9yUGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JET01BZ2VudDo6cHVzaE5vZGVQYXRoVG9Gcm9udGVuZCk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5ET01Ob2Rl
LnByb3RvdHlwZS5fcmVudW1iZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRPTUFnZW50LnBy
b3RvdHlwZS5fc2V0RG9jdW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRWxl
bWVudHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3Rv
dHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVudHNQYW5lbC5wcm90b3R5
cGUuc2V0RG9jdW1lbnQuc2VsZWN0RGVmYXVsdE5vZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNldERvY3VtZW50LnNlbGVjdExhc3RTZWxlY3RlZE5v
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlLnNldERv
Y3VtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0Lmpz
OgorICAgICAgICAoSW5qZWN0ZWRTY3JpcHQucHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0QWNjZXNzLmpzOgorCiAy
MDA5LTEyLTAxICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRIb3N0LmNwcAppbmRleCA0MmQ0YjQxLi5mMzI2ZjUyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0SG9zdC5jcHAKQEAgLTEyMyw2ICsxMjMsMTkgQEAgdm9pZCBJbmplY3RlZFNj
cmlwdEhvc3Q6OmFkZE5vZGVzVG9TZWFyY2hSZXN1bHQoY29uc3QgU3RyaW5nJiBub2RlSWRzKQog
ICAgICAgICBmcm9udGVuZC0+YWRkTm9kZXNUb1NlYXJjaFJlc3VsdChub2RlSWRzKTsKIH0KIAor
bG9uZyBJbmplY3RlZFNjcmlwdEhvc3Q6OnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChjb25zdCBT
dHJpbmcmIHBhdGgpCit7CisgICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVj
dG9yRE9NQWdlbnQoKTsKKyAgICBpZiAoIWRvbUFnZW50KQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIE5vZGUqIG5vZGUgPSBkb21BZ2VudC0+bm9kZUZvclBhdGgocGF0aCk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHJldHVybiBkb21BZ2VudC0+cHVzaE5vZGVQ
YXRoVG9Gcm9udGVuZChub2RlKTsKK30KKwogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQogSmF2YVNjcmlwdENhbGxGcmFtZSogSW5qZWN0ZWRTY3JpcHRIb3N0OjpjdXJyZW50Q2FsbEZy
YW1lKCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgKaW5kZXgg
ODczMDQ5OC4uYWEyZmQ3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmgK
QEAgLTYzLDcgKzYzLDEwIEBAIHB1YmxpYzoKICAgICBTY3JpcHRWYWx1ZSB3cmFwT2JqZWN0KGNv
bnN0IFNjcmlwdFZhbHVlJiBvYmplY3QsIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwogICAg
IFNjcmlwdFZhbHVlIHVud3JhcE9iamVjdChjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKICAgICBs
b25nIHB1c2hOb2RlUGF0aFRvRnJvbnRlbmQoTm9kZSogbm9kZSwgYm9vbCBzZWxlY3RJblVJKTsK
KwogICAgIHZvaWQgYWRkTm9kZXNUb1NlYXJjaFJlc3VsdChjb25zdCBTdHJpbmcmIG5vZGVJZHMp
OworICAgIGxvbmcgcHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgcGF0aCk7
CisKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dFUikKICAgICBKYXZhU2NyaXB0Q2FsbEZy
YW1lKiBjdXJyZW50Q2FsbEZyYW1lKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwgYi9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdEhvc3QuaWRsCmluZGV4IGE0MTA4YjMuLmJlNjI3ZWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbApAQCAtNDEsNyArNDEsOSBAQCBtb2R1bGUg
Y29yZSB7CiAgICAgICAgIFtDdXN0b21dIGxvbmcgd3JhcE9iamVjdChpbiBET01PYmplY3Qgb2Jq
ZWN0LCBpbiBET01TdHJpbmcgb2JqZWN0R3JvdXApOwogICAgICAgICBbQ3VzdG9tXSBET01PYmpl
Y3QgdW53cmFwT2JqZWN0KGluIGxvbmcgb2JqZWN0SWQpOwogICAgICAgICBbQ3VzdG9tXSBpbnQg
cHVzaE5vZGVQYXRoVG9Gcm9udGVuZChpbiBET01PYmplY3Qgbm9kZSwgaW4gYm9vbGVhbiBzZWxl
Y3RJblVJKTsKKwogICAgICAgICB2b2lkIGFkZE5vZGVzVG9TZWFyY2hSZXN1bHQoaW4gRE9NU3Ry
aW5nIG5vZGVJZHMpOworICAgICAgICBsb25nIHB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZChpbiBE
T01TdHJpbmcgcGF0aCk7CiAKICNpZiBkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VS
KSAmJiBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUgogICAgICAgICBbQ3VzdG9tXSBET01PYmpl
Y3QgY3VycmVudENhbGxGcmFtZSgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9s
bGVyLmNwcAppbmRleCA0ZTQ2NWU5Li5mMzkyNjE4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb250cm9sbGVyLmNwcApAQCAtNjI1LDkgKzYyNSw5IEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6Y2xvc2UoKQogI2VuZGlmCiAgICAgY2xvc2VXaW5kb3coKTsKIAotICAgIG1fZnJv
bnRlbmQuc2V0KDApOwogICAgIG1faW5qZWN0ZWRTY3JpcHRPYmogPSBTY3JpcHRPYmplY3QoKTsK
ICAgICByZWxlYXNlRE9NQWdlbnQoKTsKKyAgICBtX2Zyb250ZW5kLnNldCgwKTsKICAgICBtX3Rp
bWVsaW5lQWdlbnQgPSAwOwogICAgIG1fc2NyaXB0U3RhdGUgPSAwOwogICAgIGlmIChtX3BhZ2Up
CkBAIC02NjIsNyArNjYyLDcgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZWxlYXNlRE9N
QWdlbnQoKQogICAgIC8vIG1fZG9tQWdlbnQgaXMgUmVmUHRyLiBSZW1vdmUgRE9NIGxpc3RlbmVy
cyBmaXJzdCB0byBlbnN1cmUgdGhhdCB0aGVyZSBhcmUKICAgICAvLyBubyByZWZlcmVuY2VzIHRv
IHRoZSBET00gYWdlbnQgZnJvbSB0aGUgRE9NIHRyZWUuCiAgICAgaWYgKG1fZG9tQWdlbnQpCi0g
ICAgICAgIG1fZG9tQWdlbnQtPnNldERvY3VtZW50KDApOworICAgICAgICBtX2RvbUFnZW50LT5y
ZXNldCgpOwogICAgIG1fZG9tQWdlbnQgPSAwOwogfQogCkBAIC03MjUsNyArNzI1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDb250cm9sbGVyOjpyZXNldFNjcmlwdE9iamVjdHMoKQogICAgICAgICBtX3Rp
bWVsaW5lQWdlbnQtPnJlc2V0KCk7CiAKICAgICBtX2Zyb250ZW5kLT5yZXNldCgpOwotICAgIG1f
ZG9tQWdlbnQtPnNldERvY3VtZW50KDApOworICAgIG1fZG9tQWdlbnQtPnJlc2V0KCk7CiAgICAg
bV9vYmplY3RHcm91cHMuY2xlYXIoKTsKICAgICBtX2lkVG9XcmFwcGVkT2JqZWN0LmNsZWFyKCk7
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKaW5kZXggMmVjNjgxZC4u
Yjk4Zjc4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQu
Y3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcApAQCAtNjgs
MTMgKzY4LDExIEBAIEluc3BlY3RvckRPTUFnZW50OjpJbnNwZWN0b3JET01BZ2VudChJbnNwZWN0
b3JGcm9udGVuZCogZnJvbnRlbmQpCiAKIEluc3BlY3RvckRPTUFnZW50Ojp+SW5zcGVjdG9yRE9N
QWdlbnQoKQogewotICAgIHNldERvY3VtZW50KDApOworICAgIHJlc2V0KCk7CiB9CiAKLXZvaWQg
SW5zcGVjdG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KERvY3VtZW50KiBkb2MpCit2b2lkIEluc3Bl
Y3RvckRPTUFnZW50OjpyZXNldCgpCiB7Ci0gICAgaWYgKGRvYyA9PSBtYWluRnJhbWVEb2N1bWVu
dCgpKQotICAgICAgICByZXR1cm47CiAgICAgZGlzY2FyZEJpbmRpbmdzKCk7CiAKICAgICBMaXN0
SGFzaFNldDxSZWZQdHI8RG9jdW1lbnQ+ID4gY29weSA9IG1fZG9jdW1lbnRzOwpAQCAtODIsMTMg
KzgwLDIxIEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERvY3VtZW50KERvY3VtZW50KiBk
b2MpCiAgICAgICAgIHN0b3BMaXN0ZW5pbmcoKCppdCkuZ2V0KCkpOwogCiAgICAgQVNTRVJUKCFt
X2RvY3VtZW50cy5zaXplKCkpOworfQorCit2b2lkIEluc3BlY3RvckRPTUFnZW50OjpzZXREb2N1
bWVudChEb2N1bWVudCogZG9jKQoreworICAgIGlmIChkb2MgPT0gbWFpbkZyYW1lRG9jdW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzZXQoKTsKIAogICAgIGlmIChkb2MpIHsKICAg
ICAgICAgc3RhcnRMaXN0ZW5pbmcoZG9jKTsKLSAgICAgICAgaWYgKGRvYy0+ZG9jdW1lbnRFbGVt
ZW50KCkpIHsKKyAgICAgICAgaWYgKGRvYy0+ZG9jdW1lbnRFbGVtZW50KCkpCiAgICAgICAgICAg
ICBwdXNoRG9jdW1lbnRUb0Zyb250ZW5kKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgfSBlbHNl
CisgICAgICAgIG1fZnJvbnRlbmQtPnNldERvY3VtZW50KFNjcmlwdE9iamVjdCgpKTsKIH0KIAog
dm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVsZWFzZURhbmdsaW5nTm9kZXMoKQpAQCAtMjM5LDEx
ICsyNDUsMTQgQEAgdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6dW5iaW5kKE5vZGUqIG5vZGUsIE5v
ZGVUb0lkTWFwKiBub2Rlc01hcCkKICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OnB1c2hEb2N1bWVudFRvRnJvbnRlbmQoKQorYm9vbCBJbnNwZWN0b3JET01BZ2VudDo6cHVzaERv
Y3VtZW50VG9Gcm9udGVuZCgpCiB7CiAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbWFpbkZyYW1l
RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFtX2RvY3VtZW50Tm9kZVRvSWRNYXAuY29udGFpbnMoZG9jdW1lbnQpKQogICAgICAg
ICBtX2Zyb250ZW5kLT5zZXREb2N1bWVudChidWlsZE9iamVjdEZvck5vZGUoZG9jdW1lbnQsIDIs
ICZtX2RvY3VtZW50Tm9kZVRvSWRNYXApKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6cHVzaENoaWxkTm9kZXNUb0Zyb250ZW5kKGxvbmcgbm9kZUlkKQpA
QCAtMjc5LDYgKzI4OCwzNiBAQCBOb2RlKiBJbnNwZWN0b3JET01BZ2VudDo6bm9kZUZvcklkKGxv
bmcgaWQpCiAgICAgcmV0dXJuIDA7CiB9CiAKK05vZGUqIEluc3BlY3RvckRPTUFnZW50Ojpub2Rl
Rm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCit7CisgICAgLy8gVGhlIHBhdGggaXMgb2YgZm9y
bSAiMSxIVE1MLDIsQk9EWSwxLERJViIKKyAgICBOb2RlKiBub2RlID0gbWFpbkZyYW1lRG9jdW1l
bnQoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAwOworCisgICAgVmVjdG9yPFN0
cmluZz4gcGF0aFRva2VuczsKKyAgICBwYXRoLnNwbGl0KCIsIiwgZmFsc2UsIHBhdGhUb2tlbnMp
OworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGF0aFRva2Vucy5zaXplKCkgIC0gMTsgaSAr
PSAyKSB7CisgICAgICAgIGJvb2wgc3VjY2VzcyA9IHRydWU7CisgICAgICAgIGludCBjaGlsZE51
bWJlciA9IHBhdGhUb2tlbnNbaV0udG9JbnQoJnN1Y2Nlc3MpOworICAgICAgICBpZiAoIXN1Y2Nl
c3MpCisgICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaW50IG5vZGVzQ291bnQgPSBpbm5l
ckNoaWxkTm9kZUNvdW50KG5vZGUpOworICAgICAgICBpZiAoY2hpbGROdW1iZXIgPj0gbm9kZXND
b3VudCkKKyAgICAgICAgICAgIHJldHVybiAwOworICAgICAgICBTdHJpbmcgY2hpbGROYW1lID0g
cGF0aFRva2Vuc1tpICsgMV07CisKKyAgICAgICAgTm9kZSogY2hpbGQgPSBpbm5lckZpcnN0Q2hp
bGQobm9kZSk7CisgICAgICAgIGZvciAoaW50IGogPSAwOyBjaGlsZCAmJiBqIDwgY2hpbGROdW1i
ZXI7ICsraikKKyAgICAgICAgICAgIGNoaWxkID0gaW5uZXJOZXh0U2libGluZyhjaGlsZCk7CisK
KyAgICAgICAgaWYgKCFjaGlsZCB8fCBjaGlsZC0+bm9kZU5hbWUoKSAhPSBjaGlsZE5hbWUpCisg
ICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgbm9kZSA9IGNoaWxkOworICAgIH0KKyAgICBy
ZXR1cm4gbm9kZTsKK30KKwogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6Z2V0Q2hpbGROb2Rlcyhs
b25nIGNhbGxJZCwgbG9uZyBub2RlSWQpCiB7CiAgICAgcHVzaENoaWxkTm9kZXNUb0Zyb250ZW5k
KG5vZGVJZCk7CkBAIC0yOTAsNyArMzI5LDggQEAgbG9uZyBJbnNwZWN0b3JET01BZ2VudDo6cHVz
aE5vZGVQYXRoVG9Gcm9udGVuZChOb2RlKiBub2RlVG9QdXNoKQogICAgIEFTU0VSVChub2RlVG9Q
dXNoKTsgIC8vIEludmFsaWQgaW5wdXQKIAogICAgIC8vIElmIHdlIGFyZSBzZW5kaW5nIGluZm9y
bWF0aW9uIHRvIHRoZSBjbGllbnQgdGhhdCBpcyBjdXJyZW50bHkgYmVpbmcgY3JlYXRlZC4gU2Vu
ZCByb290IG5vZGUgZmlyc3QuCi0gICAgcHVzaERvY3VtZW50VG9Gcm9udGVuZCgpOworICAgIGlm
ICghcHVzaERvY3VtZW50VG9Gcm9udGVuZCgpKQorICAgICAgICByZXR1cm4gMDsKIAogICAgIC8v
IFJldHVybiBpZCBpbiBjYXNlIHRoZSBub2RlIGlzIGtub3duLgogICAgIGxvbmcgcmVzdWx0ID0g
bV9kb2N1bWVudE5vZGVUb0lkTWFwLmdldChub2RlVG9QdXNoKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JET01BZ2VudC5oCmluZGV4IDNmNzM2ZjcuLmZiNjUwNDggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtODIsNiArODIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgSW5zcGVjdG9yRE9NQWdlbnQoSW5zcGVjdG9yRnJvbnRlbmQqIGZyb250ZW5k
KTsKICAgICAgICAgfkluc3BlY3RvckRPTUFnZW50KCk7CisgICAgICAgIHZvaWQgcmVzZXQoKTsK
IAogICAgICAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBFdmVudExpc3RlbmVyJiBv
dGhlcik7CiAKQEAgLTk3LDYgKzk4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2
b2lkIHJlbGVhc2VEYW5nbGluZ05vZGVzKCk7CiAKICAgICAgICAgTm9kZSogbm9kZUZvcklkKGxv
bmcgbm9kZUlkKTsKKyAgICAgICAgTm9kZSogbm9kZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
KTsKICAgICAgICAgbG9uZyBwdXNoTm9kZVBhdGhUb0Zyb250ZW5kKE5vZGUqIG5vZGUpOwogCiAg
ICBwcml2YXRlOgpAQCAtMTA5LDcgKzExMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgbG9uZyBiaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CiAgICAgICAg
IHZvaWQgdW5iaW5kKE5vZGUqIG5vZGUsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CiAKLSAgICAg
ICAgdm9pZCBwdXNoRG9jdW1lbnRUb0Zyb250ZW5kKCk7CisgICAgICAgIGJvb2wgcHVzaERvY3Vt
ZW50VG9Gcm9udGVuZCgpOwogICAgICAgICB2b2lkIHB1c2hDaGlsZE5vZGVzVG9Gcm9udGVuZChs
b25nIG5vZGVJZCk7CiAKICAgICAgICAgU2NyaXB0T2JqZWN0IGJ1aWxkT2JqZWN0Rm9yTm9kZShO
b2RlKiBub2RlLCBpbnQgZGVwdGgsIE5vZGVUb0lkTWFwKiBub2Rlc01hcCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMgYi9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRE9NQWdlbnQuanMKaW5kZXggYmRhY2U3ZS4uMjhkYWZlYiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzCisrKyBiL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcwpAQCAtMTc5LDYgKzE3OSw3IEBAIFdl
Ykluc3BlY3Rvci5ET01Ob2RlLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5sYXN0Q2hpbGQg
PSB0aGlzLmNoaWxkcmVuW3RoaXMuX2NoaWxkTm9kZUNvdW50IC0gMV07CiAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fY2hpbGROb2RlQ291bnQ7ICsraSkgewogICAgICAgICAgICAg
dmFyIGNoaWxkID0gdGhpcy5jaGlsZHJlbltpXTsKKyAgICAgICAgICAgIGNoaWxkLmluZGV4ID0g
aTsKICAgICAgICAgICAgIGNoaWxkLm5leHRTaWJsaW5nID0gaSArIDEgPCB0aGlzLl9jaGlsZE5v
ZGVDb3VudCA/IHRoaXMuY2hpbGRyZW5baSArIDFdIDogbnVsbDsKICAgICAgICAgICAgIGNoaWxk
LnByZXZTaWJsaW5nID0gaSAtIDEgPj0gMCA/IHRoaXMuY2hpbGRyZW5baSAtIDFdIDogbnVsbDsK
ICAgICAgICAgICAgIGNoaWxkLnBhcmVudE5vZGUgPSB0aGlzOwpAQCAtMzczLDEzICszNzQsMTMg
QEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3RvdHlwZSA9IHsKICAgICBfc2V0RG9jdW1lbnQ6
IGZ1bmN0aW9uKHBheWxvYWQpCiAgICAgewogICAgICAgICB0aGlzLl9pZFRvRE9NTm9kZSA9IHt9
OwotICAgICAgICBpZiAocGF5bG9hZCkgeworICAgICAgICBpZiAocGF5bG9hZCAmJiAiaWQiIGlu
IHBheWxvYWQpIHsKICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9y
LkRPTURvY3VtZW50KHRoaXMsIHRoaXMuX3dpbmRvdywgcGF5bG9hZCk7CiAgICAgICAgICAgICB0
aGlzLl9pZFRvRE9NTm9kZVtwYXlsb2FkLmlkXSA9IHRoaXMuZG9jdW1lbnQ7CiAgICAgICAgICAg
ICB0aGlzLl9iaW5kTm9kZXModGhpcy5kb2N1bWVudC5jaGlsZHJlbik7CiAgICAgICAgIH0gZWxz
ZQogICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IG51bGw7Ci0gICAgICAgIFdlYkluc3BlY3Rv
ci5wYW5lbHMuZWxlbWVudHMucmVzZXQoKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnBhbmVscy5l
bGVtZW50cy5zZXREb2N1bWVudCh0aGlzLmRvY3VtZW50KTsKICAgICB9LAogCiAgICAgX3NldERl
dGFjaGVkUm9vdDogZnVuY3Rpb24ocGF5bG9hZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0VsZW1lbnRzUGFuZWwuanMKaW5kZXggODRhM2U4Ni4uODFhZGQzMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKKysrIGIvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanMKQEAgLTE2NCw2ICsxNjQsMTcg
QEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgcmVzZXQ6
IGZ1bmN0aW9uKCkKICAgICB7CisgICAgICAgIGlmICh0aGlzLmZvY3VzZWRET01Ob2RlKSB7Cisg
ICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFBhdGhPblJlc2V0ID0gW107CisgICAgICAgICAgICB2
YXIgbm9kZSA9IHRoaXMuZm9jdXNlZERPTU5vZGU7CisgICAgICAgICAgICB3aGlsZSAoImluZGV4
IiBpbiBub2RlKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldC5w
dXNoKG5vZGUubm9kZU5hbWUpOworICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkUGF0aE9u
UmVzZXQucHVzaChub2RlLmluZGV4KTsKKyAgICAgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJl
bnROb2RlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRQYXRoT25S
ZXNldC5yZXZlcnNlKCk7CisgICAgICAgIH0KKwogICAgICAgICB0aGlzLnJvb3RET01Ob2RlID0g
bnVsbDsKICAgICAgICAgdGhpcy5mb2N1c2VkRE9NTm9kZSA9IG51bGw7CiAKQEAgLTE3OCwyNiAr
MTg5LDUxIEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1BhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICBkZWxldGUgdGhpcy5jdXJyZW50UXVlcnk7CiAgICAgICAgIHRoaXMuc2VhcmNoQ2FuY2Vs
ZWQoKTsKKyAgICB9LAogCi0gICAgICAgIHZhciBkb21XaW5kb3cgPSBXZWJJbnNwZWN0b3IuZG9t
QWdlbnQuZG9tV2luZG93OwotICAgICAgICBpZiAoIWRvbVdpbmRvdyB8fCAhZG9tV2luZG93LmRv
Y3VtZW50IHx8ICFkb21XaW5kb3cuZG9jdW1lbnQuZmlyc3RDaGlsZCkKKyAgICBzZXREb2N1bWVu
dDogZnVuY3Rpb24oaW5zcGVjdGVkUm9vdERvY3VtZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5y
ZXNldCgpOworICAgICAgICBpZiAoIWluc3BlY3RlZFJvb3REb2N1bWVudCkKICAgICAgICAgICAg
IHJldHVybjsKIAotICAgICAgICB2YXIgaW5zcGVjdGVkUm9vdERvY3VtZW50ID0gZG9tV2luZG93
LmRvY3VtZW50OwogICAgICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cigiRE9NTm9kZUluc2VydGVkIiwgdGhpcy5fbm9kZUluc2VydGVkLmJpbmQodGhpcykpOwogICAg
ICAgICBpbnNwZWN0ZWRSb290RG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NTm9kZVJlbW92
ZWQiLCB0aGlzLl9ub2RlUmVtb3ZlZC5iaW5kKHRoaXMpKTsKIAogICAgICAgICB0aGlzLnRyZWVP
dXRsaW5lLnN1cHByZXNzU2VsZWN0SGlnaGxpZ2h0ID0gdHJ1ZTsKICAgICAgICAgdGhpcy5yb290
RE9NTm9kZSA9IGluc3BlY3RlZFJvb3REb2N1bWVudDsKKyAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IGZhbHNlOworCisgICAgICAgIGZ1bmN0aW9uIHNl
bGVjdERlZmF1bHROb2RlKCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy50cmVlT3V0bGlu
ZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IHRydWU7CisgICAgICAgICAgICB2YXIgY2FuZGlk
YXRlRm9jdXNOb2RlID0gaW5zcGVjdGVkUm9vdERvY3VtZW50LmJvZHkgfHwgaW5zcGVjdGVkUm9v
dERvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKKyAgICAgICAgICAgIGlmIChjYW5kaWRhdGVGb2N1
c05vZGUpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRET01Ob2RlID0gY2FuZGlkYXRl
Rm9jdXNOb2RlOwogCi0gICAgICAgIHZhciBjYW5pZGF0ZUZvY3VzTm9kZSA9IGluc3BlY3RlZFJv
b3REb2N1bWVudC5ib2R5IHx8IGluc3BlY3RlZFJvb3REb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7
Ci0gICAgICAgIGlmIChjYW5pZGF0ZUZvY3VzTm9kZSkgewotICAgICAgICAgICAgdGhpcy5mb2N1
c2VkRE9NTm9kZSA9IGNhbmlkYXRlRm9jdXNOb2RlOworICAgICAgICAgICAgICAgIGlmICh0aGlz
LnRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQpCisgICAgICAgICAgICAgICAgICAgIHRo
aXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudC5leHBhbmQoKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNlbGVjdExhc3RTZWxlY3RlZE5vZGUo
bm9kZUlkKQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgbm9kZSA9IG5vZGVJZCA/IFdlYklu
c3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQobm9kZUlkKSA6IDA7CisgICAgICAgICAgICBpZiAo
IW5vZGUpIHsKKyAgICAgICAgICAgICAgICBzZWxlY3REZWZhdWx0Tm9kZS5jYWxsKHRoaXMpOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgaWYg
KHRoaXMudHJlZU91dGxpbmUuc2VsZWN0ZWRUcmVlRWxlbWVudCkKLSAgICAgICAgICAgICAgICB0
aGlzLnRyZWVPdXRsaW5lLnNlbGVjdGVkVHJlZUVsZW1lbnQuZXhwYW5kKCk7CisgICAgICAgICAg
ICB0aGlzLnRyZWVPdXRsaW5lLnN1cHByZXNzU2VsZWN0SGlnaGxpZ2h0ID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHRoaXMuZm9jdXNlZERPTU5vZGUgPSBub2RlOworICAgICAgICAgICAgdGhpcy50cmVl
T3V0bGluZS5zdXBwcmVzc1NlbGVjdEhpZ2hsaWdodCA9IGZhbHNlOwogICAgICAgICB9Ci0gICAg
ICAgIHRoaXMudHJlZU91dGxpbmUuc3VwcHJlc3NTZWxlY3RIaWdobGlnaHQgPSBmYWxzZTsKKwor
ICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldCkKKyAgICAgICAgICAgIEluamVj
dGVkU2NyaXB0QWNjZXNzLnB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZCh0aGlzLl9zZWxlY3RlZFBh
dGhPblJlc2V0LCBzZWxlY3RMYXN0U2VsZWN0ZWROb2RlLmJpbmQodGhpcykpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBzZWxlY3REZWZhdWx0Tm9kZS5jYWxsKHRoaXMpOworICAgICAgICBk
ZWxldGUgdGhpcy5fc2VsZWN0ZWRQYXRoT25SZXNldDsKICAgICB9LAogCiAgICAgc2VhcmNoQ2Fu
Y2VsZWQ6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9JbmplY3RlZFNjcmlwdC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbmplY3Rl
ZFNjcmlwdC5qcwppbmRleCBlNzFlYWZhLi4yY2VhMmQ5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0LmpzCkBAIC0xMDUwLDYgKzEwNTAsMTMgQEAgSW5q
ZWN0ZWRTY3JpcHQucHVzaE5vZGVUb0Zyb250ZW5kID0gZnVuY3Rpb24ob2JqZWN0UHJveHkpCiAg
ICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZVBhdGhUb0Zyb250ZW5kKG9iamVj
dCwgZmFsc2UpOwogfQogCitJbmplY3RlZFNjcmlwdC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRlbmQg
PSBmdW5jdGlvbihwYXRoKQoreworICAgIC8vIFdlIG1ha2UgdGhpcyBjYWxsIHRocm91Z2ggdGhl
IGluamVjdGVkIHNjcmlwdCBvbmx5IHRvIGdldCBhIG5pY2UKKyAgICAvLyBjYWxsYmFjayBmb3Ig
aXQuCisgICAgcmV0dXJuIEluamVjdGVkU2NyaXB0SG9zdC5wdXNoTm9kZUJ5UGF0aFRvRnJvbnRl
bmQocGF0aC5qb2luKCIsIikpOworfQorCiAvLyBDYWxsZWQgZnJvbSB3aXRoaW4gSW5zcGVjdG9y
Q29udHJvbGxlciBvbiB0aGUgJ2luc3BlY3RlZCBwYWdlJyBzaWRlLgogSW5qZWN0ZWRTY3JpcHQu
Y3JlYXRlUHJveHlPYmplY3QgPSBmdW5jdGlvbihvYmplY3QsIG9iamVjdElkLCBhYmJyZXZpYXRl
KQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2Ny
aXB0QWNjZXNzLmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0luamVjdGVkU2NyaXB0
QWNjZXNzLmpzCmluZGV4IDZkMDU3MzIuLjllY2I4NTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9JbmplY3RlZFNjcmlwdEFjY2Vzcy5qcworKysgYi9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuanMKQEAgLTcwLDYgKzcwLDcg
QEAgSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJnZXRTdHlsZXMiKTsKIElu
amVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigib3BlbkluSW5zcGVjdGVkV2luZG93
Iik7CiBJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoInBlcmZvcm1TZWFyY2gi
KTsKIEluamVjdGVkU2NyaXB0QWNjZXNzLl9pbnN0YWxsSGFuZGxlcigicHVzaE5vZGVUb0Zyb250
ZW5kIik7CitJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIoInB1c2hOb2RlQnlQ
YXRoVG9Gcm9udGVuZCIpOwogSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJz
ZWFyY2hDYW5jZWxlZCIpOwogSW5qZWN0ZWRTY3JpcHRBY2Nlc3MuX2luc3RhbGxIYW5kbGVyKCJz
ZXRQcm9wZXJ0eVZhbHVlIik7CiBJbmplY3RlZFNjcmlwdEFjY2Vzcy5faW5zdGFsbEhhbmRsZXIo
InNldFN0eWxlUHJvcGVydHkiKTsK
</data>
<flag name="review"
          id="25932"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>