<?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>147229</bug_id>
          
          <creation_ts>2015-07-23 11:06:29 -0700</creation_ts>
          <short_desc>Web Inspector: Editing non-inspector-stylesheet rule selectors fails after the first change</short_desc>
          <delta_ts>2015-07-25 18:32:12 -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</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>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>burg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>jonowells</cc>
    
    <cc>mattbaker</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1111664</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-23 11:06:29 -0700</bug_when>
    <thetext>* STEPS TO REPRODUCE:
1. Go to http://www.apple.com
2. Inspect the page and modify a non-inspector-stylesheet rule&apos;s selector
3. Click away from the selector editor to commit the change
4. Try to edit another rule&apos;s selector

Expected Result:
The second rule should have the newly edited selector applied.

Actual Result:
The second rule completely ignores the newly edited selector and reverts back to its original selector text on sidebar refresh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111665</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-23 11:07:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/21964842&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111732</commentid>
    <comment_count>2</comment_count>
      <attachid>257375</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-23 14:00:07 -0700</bug_when>
    <thetext>Created attachment 257375
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111755</commentid>
    <comment_count>3</comment_count>
      <attachid>257375</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-07-23 14:27:37 -0700</bug_when>
    <thetext>Comment on attachment 257375
Patch

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

The code change appears correct, but I would like the test to be improved to minimize the chances of it getting skipped.

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:640
&gt; +static bool checkStyleRuleSelector(Document* document, const String&amp; selector)

Might as well use a better name, like isValidSelectorListString(const String&amp;, Document*)

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:678
&gt; +    if (!mutated)

Is this check necessary? In a debug build, we would have asserted. In a release build, it would clear out the inconsistent state, right?

&gt; LayoutTests/inspector/css/modify-rule-selector.html:11
&gt; +    var selectors = [&quot;span.foo&quot;, &quot;.foo&quot;];

It would be better to have the second edited value (.foo) be distinguishable from the original value (.foo).

&gt; LayoutTests/inspector/css/modify-rule-selector.html:29
&gt; +                InspectorTest.log(&quot;\nPASS: selector modified&quot;);

Please restructure this into a logged state and an assertion, so the same test condition is logged in pass and fail cases. Then we can use the actual selector as reference output, rather than the logged message.

InspectorTest.log(&quot;Selector value after mutation: YYY&quot;);
InspectorTest.assert(YYY === expectedYYY, &quot;Selector XXX should be updated to the value expectedYYY.&quot;);

&gt; LayoutTests/inspector/css/modify-rule-selector.html:43
&gt; +    function onStylesRefreshed()

This test has a complicated control flow structure, so it might be worth writing a little comment at the entry point describing the sequence of events. Later, we can convert this into using promises to make the control flow more obvious.

&gt; LayoutTests/inspector/css/modify-rule-selector.html:47
&gt; +            return

return;

&gt; LayoutTests/inspector/css/modify-rule-selector.html:50
&gt; +        modifyRuleSelector(selectors.splice(0, 1)[0]);

I would prefer not to mutate the list of test cases as the test executes. Most other tests maintain an index variable in this situation.

&gt; LayoutTests/inspector/css/modify-rule-selector.html:54
&gt; +        WebInspector.domTreeManager.querySelector(documentNode.id, &quot;.foo&quot;, function(contentNodeId) {

No error handling for failure of requestDocument().

&gt; LayoutTests/inspector/css/modify-rule-selector.html:62
&gt; +            } else {

Better to lead with the exceptional arm of the branch if it&apos;s shorter. Plus, less indentation!

&gt; LayoutTests/inspector/css/modify-rule-selector.html:72
&gt; +    &lt;span class=&quot;foo&quot;&gt;&lt;/span&gt;

Missing description of the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111841</commentid>
    <comment_count>4</comment_count>
      <attachid>257410</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-23 17:08:39 -0700</bug_when>
    <thetext>Created attachment 257410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111856</commentid>
    <comment_count>5</comment_count>
      <attachid>257410</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2015-07-23 17:56:52 -0700</bug_when>
    <thetext>Comment on attachment 257410
Patch

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

&gt; Source/WebCore/inspector/InspectorStyleSheet.cpp:658
&gt; +    bool mutated = styleSheetMutated();
&gt; +    // If the stylesheet is already mutated at this point, that must mean that our data has been modified
&gt; +    // elsewhere. This should never happen as ensureParsedDataReady would return false in that case.
&gt; +    ASSERT(!mutated);

Non-debug builds are now failing to build:

    /Volumes/Data/EWS/WebKit/Source/WebCore/inspector/InspectorStyleSheet.cpp:655:10: error: unused variable &apos;mutated&apos; [-Werror,-Wunused-variable]
        bool mutated = styleSheetMutated();
             ^
    1 error generated.

You can shorten this to just:

    ASSERT(!styleSheetMutated());</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1111906</commentid>
    <comment_count>6</comment_count>
      <attachid>257428</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2015-07-23 20:59:03 -0700</bug_when>
    <thetext>Created attachment 257428
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112043</commentid>
    <comment_count>7</comment_count>
      <attachid>257428</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 11:49:39 -0700</bug_when>
    <thetext>Comment on attachment 257428
Patch

Clearing flags on attachment: 257428

Committed r187352: &lt;http://trac.webkit.org/changeset/187352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112044</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-24 11:49:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112252</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-25 18:23:14 -0700</bug_when>
    <thetext>This test is super flaky. It always times out on Windows and Gtk, and it frequently times out on Yosemite WK2 (both debug and release).

I&apos;m going to skip it on Windows and Gtk, and to mark it as a flaky timeout on Mac WK2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112254</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-07-25 18:32:12 -0700</bug_when>
    <thetext>Added expectations in r187395.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257375</attachid>
            <date>2015-07-23 14:00:07 -0700</date>
            <delta_ts>2015-07-23 17:08:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147229-20150723135851.patch</filename>
            <type>text/plain</type>
            <size>7253</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MjgyZTY1N2M5N2MwMmQwN2I2ZWRkM2E2NjYyOWUyMjJiYWUxZjUwLi5i
NjdjNjA1YWVhMGRlZjY4YjkzOWViZjU1ZTJjYTA5MDM0ZGVjNDViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTUtMDctMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVkaXRpbmcgbm9uLWluc3BlY3Rvci1zdHlsZXNo
ZWV0IHJ1bGUgc2VsZWN0b3JzIGZhaWxzIGFmdGVyIHRoZSBmaXJzdCBjaGFuZ2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzIyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9j
c3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tTdHlsZVJ1bGVTZWxl
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVNoZWV0OjpzZXRSdWxlU2Vs
ZWN0b3IpOgorICAgICAgICBOb3cgY2hlY2tzIHRvIHNlZSBpZiB0aGUgc3R5bGVzaGVldCBpcyBu
b3QgbXV0YXRlZCBiZWZvcmUgbWFraW5nIHRoZSBjaGFuZ2UgdG8gdGhlCisgICAgICAgIHJ1bGUn
cyBzZWxlY3RvciwgYW5kIGlmIHNvIG1hcmsgaXQgYXMgbm90IG11dGF0ZWQgdG8gYWxsb3cgZnV0
dXJlIGVkaXRzLgorCiAyMDE1LTA3LTIzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUgYnVpbGQgZm9yIF9fSVBIT05FX09TX1ZFUlNJT05f
TUlOX1JFUVVJUkVEIDw9IDgwMjAwIHx8ICFIQVZFKEFWS0lUKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCmluZGV4IDA2ZWMxYjZmMmY2NDRj
MmMxZDA2ZDNmZWU5YWJlMTI4ZmMwYTVmOGMuLjc1NWRjMzlmMDE4OGZlNzc2YWVkNjI4ZTE3ZjU2
YmIwZTY4ODg4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
U3R5bGVTaGVldC5jcHAKQEAgLTYzNyw2ICs2MzcsMTMgQEAgU3RyaW5nIEluc3BlY3RvclN0eWxl
U2hlZXQ6OnJ1bGVTZWxlY3Rvcihjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQsIEV4Y2VwdGlvbkNv
ZGUKICAgICByZXR1cm4gcnVsZS0+c2VsZWN0b3JUZXh0KCk7CiB9CiAKK3N0YXRpYyBib29sIGNo
ZWNrU3R5bGVSdWxlU2VsZWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNl
bGVjdG9yKQoreworICAgIENTU1NlbGVjdG9yTGlzdCBzZWxlY3Rvckxpc3Q7CisgICAgY3JlYXRl
Q1NTUGFyc2VyKGRvY3VtZW50KS0+cGFyc2VTZWxlY3RvcihzZWxlY3Rvciwgc2VsZWN0b3JMaXN0
KTsKKyAgICByZXR1cm4gc2VsZWN0b3JMaXN0LmlzVmFsaWQoKTsKK30KKwogYm9vbCBJbnNwZWN0
b3JTdHlsZVNoZWV0OjpzZXRSdWxlU2VsZWN0b3IoY29uc3QgSW5zcGVjdG9yQ1NTSWQmIGlkLCBj
b25zdCBTdHJpbmcmIHNlbGVjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWNo
ZWNrUGFnZVN0eWxlU2hlZXQoZWMpKQpAQCAtNjUyLDYgKzY1OSwxMSBAQCBib29sIEluc3BlY3Rv
clN0eWxlU2hlZXQ6OnNldFJ1bGVTZWxlY3Rvcihjb25zdCBJbnNwZWN0b3JDU1NJZCYgaWQsIGNv
bnN0IFN0cmluZwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgYm9vbCBtdXRh
dGVkID0gc3R5bGVTaGVldE11dGF0ZWQoKTsKKyAgICAvLyBJZiB0aGUgc3R5bGVzaGVldCBpcyBh
bHJlYWR5IG11dGF0ZWQgYXQgdGhpcyBwb2ludCwgdGhhdCBtdXN0IG1lYW4gdGhhdCBvdXIgZGF0
YSBoYXMgYmVlbiBtb2RpZmllZAorICAgIC8vIGVsc2V3aGVyZS4gVGhpcyBzaG91bGQgbmV2ZXIg
aGFwcGVuIGFzIGVuc3VyZVBhcnNlZERhdGFSZWFkeSB3b3VsZCByZXR1cm4gZmFsc2UgaW4gdGhh
dCBjYXNlLgorICAgIEFTU0VSVCghbXV0YXRlZCk7CisKICAgICBydWxlLT5zZXRTZWxlY3RvclRl
eHQoc2VsZWN0b3IpOwogICAgIFJlZlB0cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9
IHJ1bGVTb3VyY2VEYXRhRm9yKCZydWxlLT5zdHlsZSgpKTsKICAgICBpZiAoIXNvdXJjZURhdGEp
IHsKQEAgLTY2MiwxNyArNjc0LDE0IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0UnVs
ZVNlbGVjdG9yKGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCwgY29uc3QgU3RyaW5nCiAgICAgU3Ry
aW5nIHNoZWV0VGV4dCA9IG1fcGFyc2VkU3R5bGVTaGVldC0+dGV4dCgpOwogICAgIHNoZWV0VGV4
dC5yZXBsYWNlKHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZS5zdGFydCwgc291cmNlRGF0YS0+
cnVsZUhlYWRlclJhbmdlLmxlbmd0aCgpLCBzZWxlY3Rvcik7CiAgICAgbV9wYXJzZWRTdHlsZVNo
ZWV0LT5zZXRUZXh0KHNoZWV0VGV4dCk7CisKKyAgICBpZiAoIW11dGF0ZWQpCisgICAgICAgIG1f
cGFnZVN0eWxlU2hlZXQtPmNsZWFySGFkUnVsZXNNdXRhdGlvbigpOworCiAgICAgZmlyZVN0eWxl
U2hlZXRDaGFuZ2VkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGNoZWNr
U3R5bGVSdWxlU2VsZWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIHNlbGVj
dG9yKQotewotICAgIENTU1NlbGVjdG9yTGlzdCBzZWxlY3Rvckxpc3Q7Ci0gICAgY3JlYXRlQ1NT
UGFyc2VyKGRvY3VtZW50KS0+cGFyc2VTZWxlY3RvcihzZWxlY3Rvciwgc2VsZWN0b3JMaXN0KTsK
LSAgICByZXR1cm4gc2VsZWN0b3JMaXN0LmlzVmFsaWQoKTsKLX0KLQogQ1NTU3R5bGVSdWxlKiBJ
bnNwZWN0b3JTdHlsZVNoZWV0OjphZGRSdWxlKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmICghY2hlY2tQYWdlU3R5bGVTaGVldChlYykpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYzFiMmYwY2E2M2QxMzEyNTExMmRkNDUzNTdlZGQ1ZjllNDc3ZjExOS4uODFlZWIxMGIwZGE2
ZDBmYTNhNWJlNmJkNTZhNTE5NjJlMTNkMGUwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE1
LTA3LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBFZGl0aW5nIG5vbi1pbnNwZWN0b3Itc3R5bGVzaGVldCBydWxlIHNlbGVjdG9y
cyBmYWlscyBhZnRlciB0aGUgZmlyc3QgY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0
b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL21vZGlmeS1y
dWxlLXNlbGVjdG9yLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA3LTIzICBNaWNoYWVsIFNhYm9mZiAg
PG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGxpY2F0aW9uIGNhY2hlIGFib3J0KCkg
dGVzdHMgYXJlIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21v
ZGlmeS1ydWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9j
c3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3ItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4MTY1NWQ4
ODg1YTI1NmJkNGM3NWE1Yzc3ZGM5NTAwZGJjMjZmODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKKyAKK1BBU1M6IHNlbGVjdG9yIG1vZGlmaWVkCitPcmlnaW5hbCBTZWxl
Y3RvcjogLmZvbworTmV3IFNlbGVjdG9yOiBzcGFuLmZvbworCitQQVNTOiBzZWxlY3RvciBtb2Rp
ZmllZAorT3JpZ2luYWwgU2VsZWN0b3I6IHNwYW4uZm9vCitOZXcgU2VsZWN0b3I6IC5mb28KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rv
ci5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk1Zjc3MDA4ZGVhZWY2YTc1YzJlMzkyN2RkODI3MTE5ZTU2YTUxOTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxl
LXNlbGVjdG9yLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorLmZvbyB7IGNvbG9yOiByZWQ7IH0KKzwvc3R5bGU+Cis8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9p
bnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsK
KyAgICB2YXIgbm9kZVN0eWxlczsKKyAgICB2YXIgc2VsZWN0b3JzID0gWyJzcGFuLmZvbyIsICIu
Zm9vIl07CisKKyAgICBmdW5jdGlvbiBtb2RpZnlSdWxlU2VsZWN0b3Ioc2VsZWN0b3IpIHsKKyAg
ICAgICAgaWYgKCFub2RlU3R5bGVzLm1hdGNoZWRSdWxlcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QubG9nKCJFUlJPUjogbWlzc2luZyBtYXRjaGVkIHJ1bGVzIik7CisgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJ1bGUgPSBub2RlU3R5bGVzLm1hdGNoZWRSdWxl
c1swXTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0UnVsZVNlbGVjdG9yKHJ1bGUuaWQsIHNlbGVjdG9y
LCBmdW5jdGlvbihlcnJvciwgcGF5bG9hZCkgeworICAgICAgICAgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVSUk9SOiAiICsgZXJyb3IpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAocGF5bG9hZC5zZWxl
Y3Rvckxpc3QudGV4dCA9PT0gc2VsZWN0b3IpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiXG5QQVNTOiBzZWxlY3RvciBtb2RpZmllZCIpOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJPcmlnaW5hbCBTZWxlY3RvcjogIiArIHJ1bGUuc2VsZWN0b3JUZXh0
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiTmV3IFNlbGVjdG9yOiAiICsg
cGF5bG9hZC5zZWxlY3Rvckxpc3QudGV4dCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJcbkZBSUw6IHNlbGVjdG9yIHdhcyBub3QgbW9k
aWZpZWQiKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiT3JpZ2luYWwgU2Vs
ZWN0b3I6ICIgKyBydWxlLnNlbGVjdG9yVGV4dCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIkN1cnJlbnQgU2VsZWN0b3I6ICIgKyBwYXlsb2FkLnNlbGVjdG9yTGlzdC50ZXh0
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBub2RlU3R5bGVzLnJlZnJlc2goKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gb25TdHlsZXNSZWZyZXNoZWQoKQorICAgIHsKKyAgICAg
ICAgaWYgKCFzZWxlY3RvcnMubGVuZ3RoKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNv
bXBsZXRlVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIH0KKworICAgICAgICBt
b2RpZnlSdWxlU2VsZWN0b3Ioc2VsZWN0b3JzLnNwbGljZSgwLCAxKVswXSk7CisgICAgfQorCisg
ICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5jdGlvbihk
b2N1bWVudE5vZGUpIHsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnF1ZXJ5
U2VsZWN0b3IoZG9jdW1lbnROb2RlLmlkLCAiLmZvbyIsIGZ1bmN0aW9uKGNvbnRlbnROb2RlSWQp
IHsKKyAgICAgICAgICAgIGlmIChjb250ZW50Tm9kZUlkKSB7CisgICAgICAgICAgICAgICAgdmFy
IGRvbU5vZGUgPSBXZWJJbnNwZWN0b3IuZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnRO
b2RlSWQpOworICAgICAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXZWJJbnNwZWN0b3IuY3NzU3R5
bGVNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgbm9kZVN0eWxlcy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01O
b2RlU3R5bGVzLkV2ZW50LlJlZnJlc2hlZCwgb25TdHlsZXNSZWZyZXNoZWQsIHRoaXMpOworICAg
ICAgICAgICAgICAgIGlmICghbm9kZVN0eWxlcy5uZWVkc1JlZnJlc2gpCisgICAgICAgICAgICAg
ICAgICAgIG9uU3R5bGVzUmVmcmVzaGVkKCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFUlJPUjogRE9NIG5vZGUgbm90IGZvdW5kLiIp
OworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0pOworICAgIH0pOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHNwYW4gY2xhc3M9ImZvbyI+PC9zcGFuPgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257410</attachid>
            <date>2015-07-23 17:08:39 -0700</date>
            <delta_ts>2015-07-23 20:58:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147229-20150723170723.patch</filename>
            <type>text/plain</type>
            <size>6497</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MjgyZTY1N2M5N2MwMmQwN2I2ZWRkM2E2NjYyOWUyMjJiYWUxZjUwLi44
NDAwNTQ0NWUxOGIyYzE3NDA3YzY1MWUzOTg0NjA2NmQ4YWFiYTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTUtMDctMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVkaXRpbmcgbm9uLWluc3BlY3Rvci1zdHlsZXNo
ZWV0IHJ1bGUgc2VsZWN0b3JzIGZhaWxzIGFmdGVyIHRoZSBmaXJzdCBjaGFuZ2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzIyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9j
c3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVl
dDo6c2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgTm93IGNoZWNrcyB0byBzZWUgaWYgdGhlIHN0
eWxlc2hlZXQgaXMgbm90IG11dGF0ZWQgYmVmb3JlIG1ha2luZyB0aGUgY2hhbmdlIHRvIHRoZQor
ICAgICAgICBydWxlJ3Mgc2VsZWN0b3IsIGFuZCBpZiBzbyBtYXJrIGl0IGFzIG5vdCBtdXRhdGVk
IHRvIGFsbG93IGZ1dHVyZSBlZGl0cy4KKwogMjAxNS0wNy0yMyAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkIGZvciBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSA4MDIwMCB8fCAhSEFWRShBVktJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCAw
NmVjMWI2ZjJmNjQ0YzJjMWQwNmQzZmVlOWFiZTEyOGZjMGE1ZjhjLi5kYTg5NzZjNDRkZGIwNGM5
OWViYWQ2ZmJiMDc0NGNkM2ZiNWE1NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC02NTIsNiArNjUyLDExIEBAIGJvb2wgSW5z
cGVjdG9yU3R5bGVTaGVldDo6c2V0UnVsZVNlbGVjdG9yKGNvbnN0IEluc3BlY3RvckNTU0lkJiBp
ZCwgY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICBib29s
IG11dGF0ZWQgPSBzdHlsZVNoZWV0TXV0YXRlZCgpOworICAgIC8vIElmIHRoZSBzdHlsZXNoZWV0
IGlzIGFscmVhZHkgbXV0YXRlZCBhdCB0aGlzIHBvaW50LCB0aGF0IG11c3QgbWVhbiB0aGF0IG91
ciBkYXRhIGhhcyBiZWVuIG1vZGlmaWVkCisgICAgLy8gZWxzZXdoZXJlLiBUaGlzIHNob3VsZCBu
ZXZlciBoYXBwZW4gYXMgZW5zdXJlUGFyc2VkRGF0YVJlYWR5IHdvdWxkIHJldHVybiBmYWxzZSBp
biB0aGF0IGNhc2UuCisgICAgQVNTRVJUKCFtdXRhdGVkKTsKKwogICAgIHJ1bGUtPnNldFNlbGVj
dG9yVGV4dChzZWxlY3Rvcik7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VE
YXRhID0gcnVsZVNvdXJjZURhdGFGb3IoJnJ1bGUtPnN0eWxlKCkpOwogICAgIGlmICghc291cmNl
RGF0YSkgewpAQCAtNjYyLDYgKzY2Nyw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGVTaGVldDo6c2V0
UnVsZVNlbGVjdG9yKGNvbnN0IEluc3BlY3RvckNTU0lkJiBpZCwgY29uc3QgU3RyaW5nCiAgICAg
U3RyaW5nIHNoZWV0VGV4dCA9IG1fcGFyc2VkU3R5bGVTaGVldC0+dGV4dCgpOwogICAgIHNoZWV0
VGV4dC5yZXBsYWNlKHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZS5zdGFydCwgc291cmNlRGF0
YS0+cnVsZUhlYWRlclJhbmdlLmxlbmd0aCgpLCBzZWxlY3Rvcik7CiAgICAgbV9wYXJzZWRTdHls
ZVNoZWV0LT5zZXRUZXh0KHNoZWV0VGV4dCk7CisgICAgbV9wYWdlU3R5bGVTaGVldC0+Y2xlYXJI
YWRSdWxlc011dGF0aW9uKCk7CiAgICAgZmlyZVN0eWxlU2hlZXRDaGFuZ2VkKCk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzFiMmYwY2E2M2QxMzEyNTExMmRkNDUzNTdlZGQ1ZjllNDc3
ZjExOS4uODFlZWIxMGIwZGE2ZDBmYTNhNWJlNmJkNTZhNTE5NjJlMTNkMGUwYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE1LTA3LTIzICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBFZGl0aW5nIG5vbi1pbnNwZWN0b3Itc3R5bGVz
aGVldCBydWxlIHNlbGVjdG9ycyBmYWlscyBhZnRlciB0aGUgZmlyc3QgY2hhbmdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcyMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9jc3Mv
bW9kaWZ5LXJ1bGUtc2VsZWN0b3ItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA3LTIz
ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEFwcGxpY2F0
aW9uIGNhY2hlIGFib3J0KCkgdGVzdHMgYXJlIGZsYWt5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3ItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlhNGE0Mjc4NjAwZDg0ZDA0NzIwZDBjODM0YjJlYjU4ZmExMzY3NDkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVj
dG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1Rlc3RpbmcgdGhhdCBzZWxlY3RvcnMg
YXJlIGFibGUgdG8gYmUgbW9kaWZpZWQgbW9yZSB0aGFuIG9uY2UuCisKKyAKK1NlbGVjdG9yIGJl
Zm9yZSBtdXRhdGlvbjogLmZvbworU2VsZWN0b3IgYWZ0ZXIgbXV0YXRpb246IHNwYW4uZm9vCisK
K1NlbGVjdG9yIGJlZm9yZSBtdXRhdGlvbjogc3Bhbi5mb28KK1NlbGVjdG9yIGFmdGVyIG11dGF0
aW9uOiBib2R5ID4gLmZvbworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3Nz
L21vZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21v
ZGlmeS1ydWxlLXNlbGVjdG9yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZhYWI0N2UxM2YyMGI3M2Y4ZGUx
YmQ4ZjI4YTBjYmE2ZWI4Y2UxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9jc3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbApAQCAtMCwwICsxLDgxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgLmZvbyB7fQorPC9zdHls
ZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMv
aW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KCkgeworICAgIHZhciBub2RlU3R5bGVzOworICAgIHZhciBzZWxlY3RvcnMgPSBbInNw
YW4uZm9vIiwgImJvZHkgPiAuZm9vIl07CisgICAgdmFyIGluZGV4ID0gMDsKKworICAgIGZ1bmN0
aW9uIG1vZGlmeVJ1bGVTZWxlY3RvcihzZWxlY3RvcikgeworICAgICAgICBpZiAoIW5vZGVTdHls
ZXMubWF0Y2hlZFJ1bGVzLmxlbmd0aCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2co
IkVSUk9SOiBtaXNzaW5nIG1hdGNoZWQgcnVsZXMiKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAg
ICAgICB2YXIgcnVsZSA9IG5vZGVTdHlsZXMubWF0Y2hlZFJ1bGVzWzBdOworICAgICAgICBDU1NB
Z2VudC5zZXRSdWxlU2VsZWN0b3IocnVsZS5pZCwgc2VsZWN0b3IsIGZ1bmN0aW9uKGVycm9yLCBw
YXlsb2FkKSB7CisgICAgICAgICAgICBpZiAoZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiRVJST1I6ICIgKyBlcnJvcik7CisgICAgICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIHZhciBuZXdTZWxlY3RvciA9IHBheWxvYWQuc2VsZWN0b3JM
aXN0LnRleHQ7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiXG5TZWxlY3RvciBiZWZv
cmUgbXV0YXRpb246ICIgKyBydWxlLnNlbGVjdG9yVGV4dCk7CisgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiU2VsZWN0b3IgYWZ0ZXIgbXV0YXRpb246ICIgKyBuZXdTZWxlY3Rvcik7Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChuZXdTZWxlY3RvciA9PT0gc2VsZWN0b3Is
ICJGQUlMOiBTZWxlY3RvciAiICsgbmV3U2VsZWN0b3IgKyAiIHNob3VsZCBiZSB1cGRhdGVkIHRv
ICIgKyBzZWxlY3RvciArICIuIik7CisKKyAgICAgICAgICAgIG5vZGVTdHlsZXMucmVmcmVzaCgp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBFdmVyeSB0aW1lIHRoZSBub2RlU3R5bGVz
IHJlZnJlc2hlcywgYXR0ZW1wdCB0byBjaGFuZ2UgdGhlIHNlbGVjdG9yCisgICAgLy8gb2YgdGhl
IGZpcnN0IHJ1bGUgdG8gdGhlIG5leHQgc2VsZWN0b3IgaW4gdGhlIGxpc3QuCisgICAgZnVuY3Rp
b24gb25TdHlsZXNSZWZyZXNoZWQoKQorICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID49IHNlbGVj
dG9ycy5sZW5ndGgpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBtb2RpZnlSdWxlU2Vs
ZWN0b3Ioc2VsZWN0b3JzW2luZGV4XSk7CisgICAgICAgICsraW5kZXg7CisgICAgfQorCisgICAg
V2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLnJlcXVlc3REb2N1bWVudChmdW5jdGlvbihkb2N1
bWVudE5vZGUpIHsKKyAgICAgICAgaWYgKCFkb2N1bWVudE5vZGUpIHsKKyAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCJFUlJPUjogZG9jdW1lbnQgbm90IGZvdW5kLiIpOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5xdWVyeVNlbGVj
dG9yKGRvY3VtZW50Tm9kZS5pZCwgIi5mb28iLCBmdW5jdGlvbihjb250ZW50Tm9kZUlkKSB7Cisg
ICAgICAgICAgICBpZiAoIWNvbnRlbnROb2RlSWQpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZygiRVJST1I6IERPTSBub2RlIG5vdCBmb3VuZC4iKTsKKyAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdmFyIGRvbU5vZGUgPSBXZWJJbnNwZWN0b3Iu
ZG9tVHJlZU1hbmFnZXIubm9kZUZvcklkKGNvbnRlbnROb2RlSWQpOworICAgICAgICAgICAgbm9k
ZVN0eWxlcyA9IFdlYkluc3BlY3Rvci5jc3NTdHlsZU1hbmFnZXIuc3R5bGVzRm9yTm9kZShkb21O
b2RlKTsKKworICAgICAgICAgICAgbm9kZVN0eWxlcy5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5ET01Ob2RlU3R5bGVzLkV2ZW50LlJlZnJlc2hlZCwgb25TdHlsZXNSZWZyZXNoZWQsIHRo
aXMpOworICAgICAgICAgICAgaWYgKCFub2RlU3R5bGVzLm5lZWRzUmVmcmVzaCkKKyAgICAgICAg
ICAgICAgICBvblN0eWxlc1JlZnJlc2hlZCgpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3Rp
bmcgdGhhdCBzZWxlY3RvcnMgYXJlIGFibGUgdG8gYmUgbW9kaWZpZWQgbW9yZSB0aGFuIG9uY2Uu
PC9wPgorCisgICAgPHNwYW4gY2xhc3M9ImZvbyI+PC9zcGFuPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257428</attachid>
            <date>2015-07-23 20:59:03 -0700</date>
            <delta_ts>2015-07-24 11:49:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147229-20150723205747.patch</filename>
            <type>text/plain</type>
            <size>6468</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MjgyZTY1N2M5N2MwMmQwN2I2ZWRkM2E2NjYyOWUyMjJiYWUxZjUwLi44
NDAwNTQ0NWUxOGIyYzE3NDA3YzY1MWUzOTg0NjA2NmQ4YWFiYTU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTUtMDctMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEVkaXRpbmcgbm9uLWluc3BlY3Rvci1zdHlsZXNo
ZWV0IHJ1bGUgc2VsZWN0b3JzIGZhaWxzIGFmdGVyIHRoZSBmaXJzdCBjaGFuZ2UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzIyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci9j
c3MvbW9kaWZ5LXJ1bGUtc2VsZWN0b3IuaHRtbAorCisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVl
dDo6c2V0UnVsZVNlbGVjdG9yKToKKyAgICAgICAgTm93IGNoZWNrcyB0byBzZWUgaWYgdGhlIHN0
eWxlc2hlZXQgaXMgbm90IG11dGF0ZWQgYmVmb3JlIG1ha2luZyB0aGUgY2hhbmdlIHRvIHRoZQor
ICAgICAgICBydWxlJ3Mgc2VsZWN0b3IsIGFuZCBpZiBzbyBtYXJrIGl0IGFzIG5vdCBtdXRhdGVk
IHRvIGFsbG93IGZ1dHVyZSBlZGl0cy4KKwogMjAxNS0wNy0yMyAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIGJ1aWxkIGZvciBfX0lQSE9O
RV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSA4MDIwMCB8fCAhSEFWRShBVktJVCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCAw
NmVjMWI2ZjJmNjQ0YzJjMWQwNmQzZmVlOWFiZTEyOGZjMGE1ZjhjLi40OWQ5MjFhMDQ4ZDNhZjk4
MjZjOWJjNDRhYjA0OGExYTJmMDNhNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC02NTIsNiArNjUyLDEwIEBAIGJvb2wgSW5z
cGVjdG9yU3R5bGVTaGVldDo6c2V0UnVsZVNlbGVjdG9yKGNvbnN0IEluc3BlY3RvckNTU0lkJiBp
ZCwgY29uc3QgU3RyaW5nCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKKyAgICAvLyBJ
ZiB0aGUgc3R5bGVzaGVldCBpcyBhbHJlYWR5IG11dGF0ZWQgYXQgdGhpcyBwb2ludCwgdGhhdCBt
dXN0IG1lYW4gdGhhdCBvdXIgZGF0YSBoYXMgYmVlbiBtb2RpZmllZAorICAgIC8vIGVsc2V3aGVy
ZS4gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGFzIGVuc3VyZVBhcnNlZERhdGFSZWFkeSB3b3Vs
ZCByZXR1cm4gZmFsc2UgaW4gdGhhdCBjYXNlLgorICAgIEFTU0VSVCghc3R5bGVTaGVldE11dGF0
ZWQoKSk7CisKICAgICBydWxlLT5zZXRTZWxlY3RvclRleHQoc2VsZWN0b3IpOwogICAgIFJlZlB0
cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IHJ1bGVTb3VyY2VEYXRhRm9yKCZydWxl
LT5zdHlsZSgpKTsKICAgICBpZiAoIXNvdXJjZURhdGEpIHsKQEAgLTY2Miw2ICs2NjYsNyBAQCBi
b29sIEluc3BlY3RvclN0eWxlU2hlZXQ6OnNldFJ1bGVTZWxlY3Rvcihjb25zdCBJbnNwZWN0b3JD
U1NJZCYgaWQsIGNvbnN0IFN0cmluZwogICAgIFN0cmluZyBzaGVldFRleHQgPSBtX3BhcnNlZFN0
eWxlU2hlZXQtPnRleHQoKTsKICAgICBzaGVldFRleHQucmVwbGFjZShzb3VyY2VEYXRhLT5ydWxl
SGVhZGVyUmFuZ2Uuc3RhcnQsIHNvdXJjZURhdGEtPnJ1bGVIZWFkZXJSYW5nZS5sZW5ndGgoKSwg
c2VsZWN0b3IpOwogICAgIG1fcGFyc2VkU3R5bGVTaGVldC0+c2V0VGV4dChzaGVldFRleHQpOwor
ICAgIG1fcGFnZVN0eWxlU2hlZXQtPmNsZWFySGFkUnVsZXNNdXRhdGlvbigpOwogICAgIGZpcmVT
dHlsZVNoZWV0Q2hhbmdlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMxYjJmMGNh
NjNkMTMxMjUxMTJkZDQ1MzU3ZWRkNWY5ZTQ3N2YxMTkuLjgxZWViMTBiMGRhNmQwZmEzYTViZTZi
ZDU2YTUxOTYyZTEzZDBlMGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNS0wNy0yMyAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
RWRpdGluZyBub24taW5zcGVjdG9yLXN0eWxlc2hlZXQgcnVsZSBzZWxlY3RvcnMgZmFpbHMgYWZ0
ZXIgdGhlIGZpcnN0IGNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ3MjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9yLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rv
ci5odG1sOiBBZGRlZC4KKwogMjAxNS0wNy0yMyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFw
cGxlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlvbiBjYWNoZSBhYm9ydCgpIHRlc3RzIGFyZSBm
bGFreQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1z
ZWxlY3Rvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1y
dWxlLXNlbGVjdG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTRhNDI3ODYwMGQ4NGQwNDcy
MGQwYzgzNGIyZWI1OGZhMTM2NzQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitUZXN0aW5nIHRoYXQgc2VsZWN0b3JzIGFyZSBhYmxlIHRvIGJlIG1vZGlmaWVkIG1vcmUg
dGhhbiBvbmNlLgorCisgCitTZWxlY3RvciBiZWZvcmUgbXV0YXRpb246IC5mb28KK1NlbGVjdG9y
IGFmdGVyIG11dGF0aW9uOiBzcGFuLmZvbworCitTZWxlY3RvciBiZWZvcmUgbXV0YXRpb246IHNw
YW4uZm9vCitTZWxlY3RvciBhZnRlciBtdXRhdGlvbjogYm9keSA+IC5mb28KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5odG1sIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Nzcy9tb2RpZnktcnVsZS1zZWxlY3Rvci5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE2YWFiNDdlMTNmMjBiNzNmOGRlMWJkOGYyOGEwY2JhNmViOGNlMTYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY3NzL21vZGlmeS1ydWxlLXNlbGVjdG9y
Lmh0bWwKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorICAgIC5mb28ge30KKzwvc3R5bGU+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB2YXIgbm9kZVN0eWxl
czsKKyAgICB2YXIgc2VsZWN0b3JzID0gWyJzcGFuLmZvbyIsICJib2R5ID4gLmZvbyJdOworICAg
IHZhciBpbmRleCA9IDA7CisKKyAgICBmdW5jdGlvbiBtb2RpZnlSdWxlU2VsZWN0b3Ioc2VsZWN0
b3IpIHsKKyAgICAgICAgaWYgKCFub2RlU3R5bGVzLm1hdGNoZWRSdWxlcy5sZW5ndGgpIHsKKyAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJFUlJPUjogbWlzc2luZyBtYXRjaGVkIHJ1bGVz
Iik7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgdmFyIHJ1bGUgPSBub2RlU3R5bGVzLm1h
dGNoZWRSdWxlc1swXTsKKyAgICAgICAgQ1NTQWdlbnQuc2V0UnVsZVNlbGVjdG9yKHJ1bGUuaWQs
IHNlbGVjdG9yLCBmdW5jdGlvbihlcnJvciwgcGF5bG9hZCkgeworICAgICAgICAgICAgaWYgKGVy
cm9yKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVSUk9SOiAiICsgZXJy
b3IpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2YXIgbmV3
U2VsZWN0b3IgPSBwYXlsb2FkLnNlbGVjdG9yTGlzdC50ZXh0OworICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2coIlxuU2VsZWN0b3IgYmVmb3JlIG11dGF0aW9uOiAiICsgcnVsZS5zZWxlY3Rv
clRleHQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlNlbGVjdG9yIGFmdGVyIG11
dGF0aW9uOiAiICsgbmV3U2VsZWN0b3IpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3Nl
cnQobmV3U2VsZWN0b3IgPT09IHNlbGVjdG9yLCAiRkFJTDogU2VsZWN0b3IgIiArIG5ld1NlbGVj
dG9yICsgIiBzaG91bGQgYmUgdXBkYXRlZCB0byAiICsgc2VsZWN0b3IgKyAiLiIpOworCisgICAg
ICAgICAgICBub2RlU3R5bGVzLnJlZnJlc2goKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAg
Ly8gRXZlcnkgdGltZSB0aGUgbm9kZVN0eWxlcyByZWZyZXNoZXMsIGF0dGVtcHQgdG8gY2hhbmdl
IHRoZSBzZWxlY3RvcgorICAgIC8vIG9mIHRoZSBmaXJzdCBydWxlIHRvIHRoZSBuZXh0IHNlbGVj
dG9yIGluIHRoZSBsaXN0LgorICAgIGZ1bmN0aW9uIG9uU3R5bGVzUmVmcmVzaGVkKCkKKyAgICB7
CisgICAgICAgIGlmIChpbmRleCA+PSBzZWxlY3RvcnMubGVuZ3RoKSB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgbW9kaWZ5UnVsZVNlbGVjdG9yKHNlbGVjdG9yc1tpbmRleF0pOworICAg
ICAgICArK2luZGV4OworICAgIH0KKworICAgIFdlYkluc3BlY3Rvci5kb21UcmVlTWFuYWdlci5y
ZXF1ZXN0RG9jdW1lbnQoZnVuY3Rpb24oZG9jdW1lbnROb2RlKSB7CisgICAgICAgIGlmICghZG9j
dW1lbnROb2RlKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiRVJST1I6IGRvY3Vt
ZW50IG5vdCBmb3VuZC4iKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBXZWJJbnNwZWN0
b3IuZG9tVHJlZU1hbmFnZXIucXVlcnlTZWxlY3Rvcihkb2N1bWVudE5vZGUuaWQsICIuZm9vIiwg
ZnVuY3Rpb24oY29udGVudE5vZGVJZCkgeworICAgICAgICAgICAgaWYgKCFjb250ZW50Tm9kZUlk
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkVSUk9SOiBET00gbm9kZSBu
b3QgZm91bmQuIik7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3Qo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHZhciBkb21Ob2RlID0gV2ViSW5zcGVjdG9yLmRvbVRyZWVNYW5hZ2VyLm5vZGVGb3JJZChjb250
ZW50Tm9kZUlkKTsKKyAgICAgICAgICAgIG5vZGVTdHlsZXMgPSBXZWJJbnNwZWN0b3IuY3NzU3R5
bGVNYW5hZ2VyLnN0eWxlc0Zvck5vZGUoZG9tTm9kZSk7CisKKyAgICAgICAgICAgIG5vZGVTdHls
ZXMuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRE9NTm9kZVN0eWxlcy5FdmVudC5SZWZy
ZXNoZWQsIG9uU3R5bGVzUmVmcmVzaGVkLCB0aGlzKTsKKyAgICAgICAgICAgIGlmICghbm9kZVN0
eWxlcy5uZWVkc1JlZnJlc2gpCisgICAgICAgICAgICAgICAgb25TdHlsZXNSZWZyZXNoZWQoKTsK
KyAgICAgICAgfSk7CisgICAgfSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9h
ZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0aW5nIHRoYXQgc2VsZWN0b3JzIGFyZSBhYmxlIHRv
IGJlIG1vZGlmaWVkIG1vcmUgdGhhbiBvbmNlLjwvcD4KKworICAgIDxzcGFuIGNsYXNzPSJmb28i
Pjwvc3Bhbj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>