<?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>147001</bug_id>
          
          <creation_ts>2015-07-16 10:12:51 -0700</creation_ts>
          <short_desc>AX: iframe within table cell is inaccessible to VoiceOver</short_desc>
          <delta_ts>2015-07-17 16:33:49 -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>Accessibility</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="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1109886</commentid>
    <comment_count>0</comment_count>
      <attachid>256907</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-16 10:12:51 -0700</bug_when>
    <thetext>Created attachment 256907
a testcase showing that VO will not step into the cell with iframe

The issue is that the table row has an AXGroup child and not an AXCell as we expect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1109933</commentid>
    <comment_count>1</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-16 12:30:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/21106945&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110038</commentid>
    <comment_count>2</comment_count>
      <attachid>256941</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-16 17:58:15 -0700</bug_when>
    <thetext>Created attachment 256941
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110043</commentid>
    <comment_count>3</comment_count>
      <attachid>256941</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-16 18:13:23 -0700</bug_when>
    <thetext>Comment on attachment 256941
patch

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

make sure you add r? if you want a review. you should always do that before adding cq?

&gt; Source/WebCore/ChangeLog:9
&gt; +        Update each table cell&apos;s role once the table adds children.

change this comment to one that explains the problem and explains the solution, succinctly.

&quot;When a table cell is created before its parent table determines if it should be ignored or not, the table cell may cache the wrong role.
Fix that allowing each table cell to update its role after the table makes this determination.&quot;

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:413
&gt; +    // Sometimes the cell gets wrong role that it thinks the parent table is

--&gt; change to : 
&quot;Sometimes the cell gets the wrong role initially because it is created before the parent determines whether it is an accessibility table.
Iterate all the cells and allow them to update their roles now that the table knows its status.&quot;

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:417
&gt; +    if (isExposableThroughAccessibility()) {

we already check this at the top of this method, so this is not necessary to call again

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:418
&gt; +        for (const auto&amp; row : children()) {

you can just integrate through m_rows and then you don&apos;t have to check row-&gt;roleValue()

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:422
&gt; +                AccessibilityObject* cellObj = cell.get();

doesn&apos;t seem necessary to create this local variable

&gt; LayoutTests/ChangeLog:9
&gt; +        Test with iframe within table cell, expect to get the correct cell role as AXCell.

Generally no comment is needed for a layout test that comes with a bug fix, so i would remove this line

&gt; LayoutTests/accessibility/iframe-within-cell.html:14
&gt; +		document.body.focus();

don&apos;t use tabs. only use 4 spaces

&gt; LayoutTests/accessibility/iframe-within-cell.html:17
&gt; +		result.innerText += &quot;Role for iframe cell is:  &quot; + frameRole + &quot; .\n&quot;;

you should use either
debug(message)

or 

shouldBe(&quot;frame.role&quot;, &quot;&apos;AXRole: AXCell&apos;&quot;);

instead of appending text to the result div manually</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110090</commentid>
    <comment_count>4</comment_count>
      <attachid>256957</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-16 21:44:01 -0700</bug_when>
    <thetext>Created attachment 256957
new patch

fix that based on previous comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110233</commentid>
    <comment_count>5</comment_count>
      <attachid>256957</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2015-07-17 15:00:05 -0700</bug_when>
    <thetext>Comment on attachment 256957
new patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        the table cell may cache the wrong role. Fix that allowing each table cell to update its role

Fix that &quot;by&quot; allowing

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:418
&gt; +        if (row-&gt;roleValue() != RowRole)

no need to check the role value since you&apos;re iterating rows and you know all the things are rows

&gt; Source/WebCore/accessibility/AccessibilityTable.cpp:422
&gt; +                cell-&gt;updateAccessibilityRole();

is updateAccessibilityRole() a method on AccessibilityObject? if so, then no need to check if AccessibilityTableCell, you can just call it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110238</commentid>
    <comment_count>6</comment_count>
      <attachid>256999</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-17 15:20:10 -0700</bug_when>
    <thetext>Created attachment 256999
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110239</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 15:23:16 -0700</bug_when>
    <thetext>Attachment 256999 did not pass style-queue:


ERROR: Source/WebCore/accessibility/AccessibilityTable.cpp:420:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110240</commentid>
    <comment_count>8</comment_count>
      <attachid>257000</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2015-07-17 15:28:50 -0700</bug_when>
    <thetext>Created attachment 257000
patch

fix style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110262</commentid>
    <comment_count>9</comment_count>
      <attachid>257000</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 16:33:45 -0700</bug_when>
    <thetext>Comment on attachment 257000
patch

Clearing flags on attachment: 257000

Committed r186974: &lt;http://trac.webkit.org/changeset/186974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1110263</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-07-17 16:33:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>256907</attachid>
            <date>2015-07-16 10:12:51 -0700</date>
            <delta_ts>2015-07-16 10:12:51 -0700</delta_ts>
            <desc>a testcase showing that VO will not step into the cell with iframe</desc>
            <filename>TableWithFrame.html</filename>
            <type>text/html</type>
            <size>1130</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTCAyLjAvL0VOIj4KPEhUTUw+
CiAgICA8SEVBRD4KICAgICAgICA8VElUTEU+CiAgICAgICAgICAgIFBhZ2UgVGl0bGUKICAgICAg
ICA8L1RJVExFPgogICAgICAgIDxTQ1JJUFQ+CiAgICAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJTVEFSVF9CVVRUT04iKS5mb2N1cygpOwogICAgICAgICAgICB9PC9TQ1JJUFQ+CiAg
ICA8L0hFQUQ+CiAgICA8Qk9EWT4KICAgICAgICAKICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRv
biIgaWQ9IlNUQVJUX0JVVFRPTiI+U3RhcnQgQnV0dG9uPC9idXR0b24+CiAgICAgICAgCiAgICAg
ICAgPEJSPjxCUj4KICAgICAgICA8dGFibGUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJv
cmRlcj0yPgogICAgICAgICAgICA8Q2FwdGlvbj50YWJsZSBBPC9DYXB0aW9uPgogICAgICAgICAg
ICA8dHI+CiAgICAgICAgICAgICAgICA8dGQ+IENlbGwgQSA8L3RkPgogICAgICAgICAgICAgICAg
PHRkPiBDZWxsIEIgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4gQ2VsbCBDIDwvdGQ+CiAgICAg
ICAgICAgIDwvdHI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgIDx0ZD4gQ2VsbCBE
IDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+CiAgICAgICAgICAgICAgICAgICAgPGlmcmFtZSBu
YW1lPSJNeSBGcmFtZSIgc3JjPSJodHRwOi8vd3d3LmFwcGxlLmNvbSIgd2lkdGg9IjEwMCUiPjwv
aWZyYW1lPgogICAgICAgICAgICAgICAgPC90ZD4KICAgICAgICAgICAgICAgIDx0ZD4gQ2VsbCBG
IDwvdGQ+CiAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAg
IDx0ZD4gQ2VsbCBHIDwvdGQ+CiAgICAgICAgICAgICAgICA8dGQ+IENlbGwgSCA8L3RkPgogICAg
ICAgICAgICAgICAgPHRkPiBDZWxsIEkgPC90ZD4KICAgICAgICAgICAgPC90cj4KICAgICAgICA8
L3RhYmxlPgogICAgICAgIAogICAgICAgIDxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iRU5EX0JV
VFRPTiI+RW5kIEJ1dHRvbjwvYnV0dG9uPgoKICAgIDwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256941</attachid>
            <date>2015-07-16 17:58:15 -0700</date>
            <delta_ts>2015-07-16 21:44:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4808</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA3LTE2ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGlmcmFtZSB3aXRoaW4gdGFibGUg
Y2VsbCBpcyBpbmFjY2Vzc2libGUgdG8gVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMTA2OTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVwZGF0ZSBlYWNoIHRhYmxlIGNlbGwncyByb2xlIG9uY2UgdGhlIHRhYmxlIGFkZHMgY2hp
bGRyZW4uCisKKyAgICAgICAgVGVzdDogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNlbGwu
aHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbik6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuRnJvbVNlY3Rpb24p
OgorCiAyMDE1LTA3LTE2ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBNZWRpYSBTZXNzaW9uOiBoYW5kbGUgJ1RyYW5zaWVudCcgYW5kICdUcmFuc2llbnQgU29sbycg
aW50ZXJydXB0aW9uIGV2ZW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAkocmV2aXNpb24gMTg2Nzk0KQorKysgU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00MDksNiArNDA5LDIyIEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRD
aGlsZHJlbigpCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogaGVhZGVyQ29udGFpbmVyT2JqZWN0
ID0gaGVhZGVyQ29udGFpbmVyKCk7CiAgICAgaWYgKGhlYWRlckNvbnRhaW5lck9iamVjdCAmJiAh
aGVhZGVyQ29udGFpbmVyT2JqZWN0LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCiAgICAgICAg
IG1fY2hpbGRyZW4uYXBwZW5kKGhlYWRlckNvbnRhaW5lck9iamVjdCk7CisKKyAgICAvLyBTb21l
dGltZXMgdGhlIGNlbGwgZ2V0cyB3cm9uZyByb2xlIHRoYXQgaXQgdGhpbmtzIHRoZSBwYXJlbnQg
dGFibGUgaXMKKyAgICAvLyBub3QgYW4gYWNjZXNzaWJpbGl0eSB0YWJsZS4gSXRlcmF0ZSB0aHJv
dWdoIGFsbCB0aGUgY2VsbHMgYW5kIHVwZGF0ZQorICAgIC8vIHRoZWlyIHJvbGVzIHRvIHByZXZl
bnQgdGhhdC4KKyAgICAvLyBzZWUgYnVnOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ3MDAxCisgICAgaWYgKGlzRXhwb3NhYmxlVGhyb3VnaEFjY2Vzc2liaWxpdHko
KSkgeworICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHJvdyA6IGNoaWxkcmVuKCkpIHsKKyAgICAg
ICAgICAgIGlmIChyb3ctPnJvbGVWYWx1ZSgpICE9IFJvd1JvbGUpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGNlbGwgOiByb3ctPmNoaWxk
cmVuKCkpIHsKKyAgICAgICAgICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBjZWxsT2JqID0g
Y2VsbC5nZXQoKTsKKyAgICAgICAgICAgICAgICBpZiAoaXM8QWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bD4oKmNlbGxPYmopKQorICAgICAgICAgICAgICAgICAgICBjZWxsLT51cGRhdGVBY2Nlc3NpYmls
aXR5Um9sZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIEFj
Y2Vzc2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW5Gcm9tU2VjdGlvbihSZW5kZXJUYWJsZVNlY3Rp
b24qIHRhYmxlU2VjdGlvbiwgdW5zaWduZWQmIG1heENvbHVtbkNvdW50KQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTg2OTE5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTUtMDctMTYgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4K
KworICAgICAgICBBWDogaWZyYW1lIHdpdGhpbiB0YWJsZSBjZWxsIGlzIGluYWNjZXNzaWJsZSB0
byBWb2ljZU92ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0NzAwMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjExMDY5NDU+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB3aXRoIGlmcmFtZSB3
aXRoaW4gdGFibGUgY2VsbCwgZXhwZWN0IHRvIGdldCB0aGUgY29ycmVjdCBjZWxsIHJvbGUgYXMg
QVhDZWxsLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNlbGwtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4t
Y2VsbC5odG1sOiBBZGRlZC4KKwogMjAxNS0wNy0xNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZGlzYXBwZWFyaW5nIHBvc2l0aW9uOmZpeGVk
IGVsZW1lbnRzIGluIGZpeGVkIGxheW91dCBtb2RlCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNlbGwtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNl
bGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1RoaXMgdGVz
dHMgaWZyYW1lIHdpdGhpbiBhIGNlbGwgaXMgYWNjZXNzaWJsZS4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorQ2VsbCBBCQlDZWxsIEMKK1JvbGUgZm9yIGlmcmFtZSBjZWxsIGlzOiBBWFJvbGU6
IEFYQ2VsbCAuCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhp
bi1jZWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJh
bWUtd2l0aGluLWNlbGwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
OSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCXRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKwlkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibXlfZnJhbWVfY2VsbCIpLmZvY3VzKCkKKwlpZiAod2luZG93LmFjY2Vzc2liaWxp
dHlDb250cm9sbGVyKSB7CisJCWRvY3VtZW50LmJvZHkuZm9jdXMoKTsKKwkJdmFyIGZyYW1lRWxl
bWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgibXlf
ZnJhbWVfY2VsbCIpOworCQl2YXIgZnJhbWVSb2xlID0gZnJhbWVFbGVtZW50LnJvbGU7CisJCXJl
c3VsdC5pbm5lclRleHQgKz0gIlJvbGUgZm9yIGlmcmFtZSBjZWxsIGlzOiAgIiArIGZyYW1lUm9s
ZSArICIgLlxuIjsKKwl9Cit9CisgICAgICAgICAgICAKKzwvc2NyaXB0PgorPC9oZWFkPgorICAg
IAorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHRhYmxlIGNlbGxwYWRkaW5nPTAgY2VsbHNw
YWNpbmc9MCBib3JkZXI9Mj4KKzx0cj4KKzx0ZD4gQ2VsbCBBIDwvdGQ+Cis8dGQgaWQ9Im15X2Zy
YW1lX2NlbGwiIGRlc2NyaXB0aW9uPSJDZWxsIEIiPjxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIg
d2lkdGg9IjEwMCUiPjwvaWZyYW1lPjwvdGQ+Cis8dGQ+IENlbGwgQyA8L3RkPgorPC90cj4KKzwv
dGFibGU+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgaWZyYW1lIHdpdGhpbiBhIGNlbGwgaXMgYWNjZXNzaWJsZS4iKTsKKzwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="282052"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="282050"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256957</attachid>
            <date>2015-07-16 21:44:01 -0700</date>
            <delta_ts>2015-07-17 15:20:10 -0700</delta_ts>
            <desc>new patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4780</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NjkyNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTE2ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGlmcmFtZSB3aXRoaW4gdGFibGUg
Y2VsbCBpcyBpbmFjY2Vzc2libGUgdG8gVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMTA2OTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gYSB0YWJsZSBjZWxsIGlzIGNyZWF0ZWQgYmVmb3JlIGl0cyBwYXJlbnQgdGFibGUg
ZGV0ZXJtaW5lcyBpZiBpdCBzaG91bGQgYmUgaWdub3JlZCBvciBub3QsCisgICAgICAgIHRoZSB0
YWJsZSBjZWxsIG1heSBjYWNoZSB0aGUgd3Jvbmcgcm9sZS4gRml4IHRoYXQgYWxsb3dpbmcgZWFj
aCB0YWJsZSBjZWxsIHRvIHVwZGF0ZSBpdHMgcm9sZQorICAgICAgICBhZnRlciB0aGUgdGFibGUg
bWFrZXMgdGhpcyBkZXRlcm1pbmF0aW9uLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkv
aWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6
YWRkQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjphZGRD
aGlsZHJlbkZyb21TZWN0aW9uKToKKwogMjAxNS0wNy0xNiAgTWF0dCBSYWpjYSAgPG1yYWpjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogaGFuZGxlICdUcmFuc2llbnQnIGFu
ZCAnVHJhbnNpZW50IFNvbG8nIGludGVycnVwdGlvbiBldmVudHMKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAJKHJldmlz
aW9uIDE4Njc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDYgKzQwOSwyMCBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRyZW4oKQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhl
YWRlckNvbnRhaW5lck9iamVjdCA9IGhlYWRlckNvbnRhaW5lcigpOwogICAgIGlmIChoZWFkZXJD
b250YWluZXJPYmplY3QgJiYgIWhlYWRlckNvbnRhaW5lck9iamVjdC0+YWNjZXNzaWJpbGl0eUlz
SWdub3JlZCgpKQogICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChoZWFkZXJDb250YWluZXJPYmpl
Y3QpOworCisgICAgLy8gU29tZXRpbWVzIHRoZSBjZWxsIGdldHMgdGhlIHdyb25nIHJvbGUgaW5p
dGlhbGx5IGJlY2F1c2UgaXQgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIHBhcmVudAorICAgIC8vIGRl
dGVybWluZXMgd2hldGhlciBpdCBpcyBhbiBhY2Nlc3NpYmlsaXR5IHRhYmxlLiBJdGVyYXRlIGFs
bCB0aGUgY2VsbHMgYW5kIGFsbG93IHRoZW0gdG8KKyAgICAvLyB1cGRhdGUgdGhlaXIgcm9sZXMg
bm93IHRoYXQgdGhlIHRhYmxlIGtub3dzIGl0cyBzdGF0dXMuCisgICAgLy8gc2VlIGJ1ZzogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzAwMQorICAgIGZvciAoY29u
c3QgYXV0byYgcm93IDogbV9yb3dzKSB7CisgICAgICAgIGlmIChyb3ctPnJvbGVWYWx1ZSgpICE9
IFJvd1JvbGUpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBjZWxsIDogcm93LT5jaGlsZHJlbigpKSB7CisgICAgICAgICAgICBpZiAoaXM8QWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbD4oKmNlbGwuZ2V0KCkpKQorICAgICAgICAgICAgICAgIGNlbGwtPnVwZGF0
ZUFjY2Vzc2liaWxpdHlSb2xlKCk7CisgICAgICAgIH0KKyAgICB9CisKIH0KIAogdm9pZCBBY2Nl
c3NpYmlsaXR5VGFibGU6OmFkZENoaWxkcmVuRnJvbVNlY3Rpb24oUmVuZGVyVGFibGVTZWN0aW9u
KiB0YWJsZVNlY3Rpb24sIHVuc2lnbmVkJiBtYXhDb2x1bW5Db3VudCkKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDE4NjkyNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDE1LTA3LTE2ICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgQVg6IGlmcmFtZSB3aXRoaW4gdGFibGUgY2VsbCBpcyBpbmFjY2Vzc2libGUgdG8g
Vm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDcwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIxMTA2OTQ1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZnJh
bWUtd2l0aGluLWNlbGwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lmcmFtZS13aXRoaW4tY2VsbC5odG1sOiBBZGRlZC4KKwogMjAxNS0wNy0xNiAgU2ltb24g
RnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggZGlzYXBwZWFy
aW5nIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIGluIGZpeGVkIGxheW91dCBtb2RlCkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNl
bGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pZnJhbWUtd2l0aGluLWNlbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKK1RoaXMgdGVzdHMgaWZyYW1lIHdpdGhpbiBhIGNlbGwgaXMgYWNjZXNzaWJsZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUm9sZSBmb3IgaWZyYW1lIGNlbGwgaXM6ICBBWFJv
bGU6IEFYQ2VsbCAuCisKK0NlbGwgQQkJQ2VsbCBDCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lX2NlbGwiKS5mb2N1cygpCisg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVu
dC5ib2R5LmZvY3VzKCk7CisgICAgICAgIHZhciBmcmFtZUVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImZyYW1lX2NlbGwiKTsKKyAgICAgICAg
ZGVidWcoIlJvbGUgZm9yIGlmcmFtZSBjZWxsIGlzOiAgIiArIGZyYW1lRWxlbWVudC5yb2xlICsg
IiAuXG4iKTsKKyAgICB9Cit9CisgICAgICAgICAgICAKKzwvc2NyaXB0PgorPC9oZWFkPgorICAg
IAorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHRhYmxlIGNlbGxwYWRkaW5nPTAgY2VsbHNw
YWNpbmc9MCBib3JkZXI9Mj4KKzx0cj4KKzx0ZD4gQ2VsbCBBIDwvdGQ+Cis8dGQgaWQ9ImZyYW1l
X2NlbGwiIGRlc2NyaXB0aW9uPSJDZWxsIEIiPjxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgd2lk
dGg9IjEwMCUiPjwvaWZyYW1lPjwvdGQ+Cis8dGQ+IENlbGwgQyA8L3RkPgorPC90cj4KKzwvdGFi
bGU+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBpZnJhbWUgd2l0aGluIGEg
Y2VsbCBpcyBhY2Nlc3NpYmxlLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="282066"
          type_id="1"
          status="-"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="282067"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256999</attachid>
            <date>2015-07-17 15:20:10 -0700</date>
            <delta_ts>2015-07-17 15:28:50 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4723</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4Njk2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTE3ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGlmcmFtZSB3aXRoaW4gdGFibGUg
Y2VsbCBpcyBpbmFjY2Vzc2libGUgdG8gVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMTA2OTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gYSB0YWJsZSBjZWxsIGlzIGNyZWF0ZWQgYmVmb3JlIGl0cyBwYXJlbnQgdGFibGUg
ZGV0ZXJtaW5lcyBpZiBpdCBzaG91bGQgYmUgaWdub3JlZCBvciBub3QsCisgICAgICAgIHRoZSB0
YWJsZSBjZWxsIG1heSBjYWNoZSB0aGUgd3Jvbmcgcm9sZS4gRml4IHRoYXQgYnkgYWxsb3dpbmcg
ZWFjaCB0YWJsZSBjZWxsIHRvIHVwZGF0ZSBpdHMgcm9sZQorICAgICAgICBhZnRlciB0aGUgdGFi
bGUgbWFrZXMgdGhpcyBkZXRlcm1pbmF0aW9uLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZTo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjph
ZGRDaGlsZHJlbkZyb21TZWN0aW9uKToKKwogMjAxNS0wNy0xNyAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBUZXJt
Ojppc1VuaXZlcnNhbFRyYW5zaXRpb24oKSBpbmNvcnJlY3RseSBleHBlY3RzIHRoZSBlbmQtb2Yt
bGluZSBhc3NlcnRpb24gaW4gY2hhcmFjdGVyIHNldHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAJKHJldmlzaW9uIDE4
Njc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDYgKzQwOSwxNyBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlUYWJsZTo6YWRkQ2hpbGRyZW4oKQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlckNv
bnRhaW5lck9iamVjdCA9IGhlYWRlckNvbnRhaW5lcigpOwogICAgIGlmIChoZWFkZXJDb250YWlu
ZXJPYmplY3QgJiYgIWhlYWRlckNvbnRhaW5lck9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpKQogICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChoZWFkZXJDb250YWluZXJPYmplY3QpOwor
CisgICAgLy8gU29tZXRpbWVzIHRoZSBjZWxsIGdldHMgdGhlIHdyb25nIHJvbGUgaW5pdGlhbGx5
IGJlY2F1c2UgaXQgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIHBhcmVudAorICAgIC8vIGRldGVybWlu
ZXMgd2hldGhlciBpdCBpcyBhbiBhY2Nlc3NpYmlsaXR5IHRhYmxlLiBJdGVyYXRlIGFsbCB0aGUg
Y2VsbHMgYW5kIGFsbG93IHRoZW0gdG8KKyAgICAvLyB1cGRhdGUgdGhlaXIgcm9sZXMgbm93IHRo
YXQgdGhlIHRhYmxlIGtub3dzIGl0cyBzdGF0dXMuCisgICAgLy8gc2VlIGJ1ZzogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzAwMQorICAgIGZvciAoY29uc3QgYXV0
byYgcm93IDogbV9yb3dzKSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2VsbCA6IHJvdy0+
Y2hpbGRyZW4oKSkgeworICAgICAgICAgICAgY2VsbC0+dXBkYXRlQWNjZXNzaWJpbGl0eVJvbGUo
KTsKKyAgICAgICAgfQorICAgIH0KKwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlUYWJsZTo6YWRk
Q2hpbGRyZW5Gcm9tU2VjdGlvbihSZW5kZXJUYWJsZVNlY3Rpb24qIHRhYmxlU2VjdGlvbiwgdW5z
aWduZWQmIG1heENvbHVtbkNvdW50KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg2OTY1KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUt
MDctMTcgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBWDogaWZyYW1l
IHdpdGhpbiB0YWJsZSBjZWxsIGlzIGluYWNjZXNzaWJsZSB0byBWb2ljZU92ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzAwMQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjExMDY5NDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1j
ZWxsLmh0bWw6IEFkZGVkLgorCiAyMDE1LTA3LTE3ICBTYWFtIGJhcmF0aSAgPHNhYW1iYXJhdGkx
QGdtYWlsLmNvbT4KIAogICAgICAgICBGdW5jdGlvbiBwYXJhbWV0ZXJzIHNob3VsZCBiZSBwYXJz
ZWQgaW4gdGhlIHNhbWUgcGFyc2VyIGFyZW5hIGFzIHRoZSBmdW5jdGlvbiBib2R5CkluZGV4OiBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNl
bGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pZnJhbWUtd2l0aGluLWNlbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTEgQEAKK1RoaXMgdGVzdHMgaWZyYW1lIHdpdGhpbiBhIGNlbGwgaXMgYWNjZXNzaWJsZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorUm9sZSBmb3IgaWZyYW1lIGNlbGwgaXM6ICBBWFJv
bGU6IEFYQ2VsbCAuCisKK0NlbGwgQQkJQ2VsbCBDCkluZGV4OiBMYXlvdXRUZXN0cy9hY2Nlc3Np
YmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gcnVuVGVzdCgp
Cit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lX2NlbGwiKS5mb2N1cygpCisg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBkb2N1bWVu
dC5ib2R5LmZvY3VzKCk7CisgICAgICAgIHZhciBmcmFtZUVsZW1lbnQgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImZyYW1lX2NlbGwiKTsKKyAgICAgICAg
ZGVidWcoIlJvbGUgZm9yIGlmcmFtZSBjZWxsIGlzOiAgIiArIGZyYW1lRWxlbWVudC5yb2xlICsg
IiAuXG4iKTsKKyAgICB9Cit9CisgICAgICAgICAgICAKKzwvc2NyaXB0PgorPC9oZWFkPgorICAg
IAorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHRhYmxlIGNlbGxwYWRkaW5nPTAgY2VsbHNw
YWNpbmc9MCBib3JkZXI9Mj4KKzx0cj4KKzx0ZD4gQ2VsbCBBIDwvdGQ+Cis8dGQgaWQ9ImZyYW1l
X2NlbGwiIGRlc2NyaXB0aW9uPSJDZWxsIEIiPjxpZnJhbWUgc3JjPSJhYm91dDpibGFuayIgd2lk
dGg9IjEwMCUiPjwvaWZyYW1lPjwvdGQ+Cis8dGQ+IENlbGwgQyA8L3RkPgorPC90cj4KKzwvdGFi
bGU+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyBpZnJhbWUgd2l0aGluIGEg
Y2VsbCBpcyBhY2Nlc3NpYmxlLiIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="282107"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
    <flag name="commit-queue"
          id="282108"
          type_id="3"
          status="-"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257000</attachid>
            <date>2015-07-17 15:28:50 -0700</date>
            <delta_ts>2015-07-17 16:33:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>4710</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4Njk2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE1LTA3LTE3ICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IGlmcmFtZSB3aXRoaW4gdGFibGUg
Y2VsbCBpcyBpbmFjY2Vzc2libGUgdG8gVm9pY2VPdmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDcwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzIxMTA2OTQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gYSB0YWJsZSBjZWxsIGlzIGNyZWF0ZWQgYmVmb3JlIGl0cyBwYXJlbnQgdGFibGUg
ZGV0ZXJtaW5lcyBpZiBpdCBzaG91bGQgYmUgaWdub3JlZCBvciBub3QsCisgICAgICAgIHRoZSB0
YWJsZSBjZWxsIG1heSBjYWNoZSB0aGUgd3Jvbmcgcm9sZS4gRml4IHRoYXQgYnkgYWxsb3dpbmcg
ZWFjaCB0YWJsZSBjZWxsIHRvIHVwZGF0ZSBpdHMgcm9sZQorICAgICAgICBhZnRlciB0aGUgdGFi
bGUgbWFrZXMgdGhpcyBkZXRlcm1pbmF0aW9uLgorCisgICAgICAgIFRlc3Q6IGFjY2Vzc2liaWxp
dHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZTo6YWRkQ2hpbGRyZW4pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlOjph
ZGRDaGlsZHJlbkZyb21TZWN0aW9uKToKKwogMjAxNS0wNy0xNyAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29udGVudCBFeHRlbnNpb25zXSBUZXJt
Ojppc1VuaXZlcnNhbFRyYW5zaXRpb24oKSBpbmNvcnJlY3RseSBleHBlY3RzIHRoZSBlbmQtb2Yt
bGluZSBhc3NlcnRpb24gaW4gY2hhcmFjdGVyIHNldHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAJKHJldmlzaW9uIDE4
Njc5NCkKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDA5LDYgKzQwOSwxNiBAQCB2b2lkIEFjY2Vzc2liaWxp
dHlUYWJsZTo6YWRkQ2hpbGRyZW4oKQogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIGhlYWRlckNv
bnRhaW5lck9iamVjdCA9IGhlYWRlckNvbnRhaW5lcigpOwogICAgIGlmIChoZWFkZXJDb250YWlu
ZXJPYmplY3QgJiYgIWhlYWRlckNvbnRhaW5lck9iamVjdC0+YWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZCgpKQogICAgICAgICBtX2NoaWxkcmVuLmFwcGVuZChoZWFkZXJDb250YWluZXJPYmplY3QpOwor
CisgICAgLy8gU29tZXRpbWVzIHRoZSBjZWxsIGdldHMgdGhlIHdyb25nIHJvbGUgaW5pdGlhbGx5
IGJlY2F1c2UgaXQgaXMgY3JlYXRlZCBiZWZvcmUgdGhlIHBhcmVudAorICAgIC8vIGRldGVybWlu
ZXMgd2hldGhlciBpdCBpcyBhbiBhY2Nlc3NpYmlsaXR5IHRhYmxlLiBJdGVyYXRlIGFsbCB0aGUg
Y2VsbHMgYW5kIGFsbG93IHRoZW0gdG8KKyAgICAvLyB1cGRhdGUgdGhlaXIgcm9sZXMgbm93IHRo
YXQgdGhlIHRhYmxlIGtub3dzIGl0cyBzdGF0dXMuCisgICAgLy8gc2VlIGJ1ZzogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzAwMQorICAgIGZvciAoY29uc3QgYXV0
byYgcm93IDogbV9yb3dzKSB7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgY2VsbCA6IHJvdy0+
Y2hpbGRyZW4oKSkKKyAgICAgICAgICAgIGNlbGwtPnVwZGF0ZUFjY2Vzc2liaWxpdHlSb2xlKCk7
CisgICAgfQorCiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbkZyb21T
ZWN0aW9uKFJlbmRlclRhYmxlU2VjdGlvbiogdGFibGVTZWN0aW9uLCB1bnNpZ25lZCYgbWF4Q29s
dW1uQ291bnQpCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxODY5NjUpCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNy0xNyAgTmFuIFdh
bmcgIDxuX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIEFYOiBpZnJhbWUgd2l0aGluIHRhYmxl
IGNlbGwgaXMgaW5hY2Nlc3NpYmxlIHRvIFZvaWNlT3ZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8yMTEwNjk0NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZnJhbWUtd2l0aGluLWNlbGwuaHRtbDogQWRk
ZWQuCisKIDIwMTUtMDctMTcgIFNhYW0gYmFyYXRpICA8c2FhbWJhcmF0aTFAZ21haWwuY29tPgog
CiAgICAgICAgIEZ1bmN0aW9uIHBhcmFtZXRlcnMgc2hvdWxkIGJlIHBhcnNlZCBpbiB0aGUgc2Ft
ZSBwYXJzZXIgYXJlbmEgYXMgdGhlIGZ1bmN0aW9uIGJvZHkKSW5kZXg6IExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRoaW4tY2VsbC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lmcmFtZS13aXRo
aW4tY2VsbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorVGhp
cyB0ZXN0cyBpZnJhbWUgd2l0aGluIGEgY2VsbCBpcyBhY2Nlc3NpYmxlLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCitSb2xlIGZvciBpZnJhbWUgY2VsbCBpczogIEFYUm9sZTogQVhDZWxsIC4K
KworQ2VsbCBBCQlDZWxsIEMKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWZyYW1l
LXdpdGhpbi1jZWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9pZnJhbWUtd2l0aGluLWNlbGwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Fj
Y2Vzc2liaWxpdHkvaWZyYW1lLXdpdGhpbi1jZWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwzNyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZnJhbWVfY2VsbCIpLmZvY3VzKCkKKyAgICBpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIGRvY3VtZW50LmJvZHkuZm9jdXMo
KTsKKyAgICAgICAgdmFyIGZyYW1lRWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFj
Y2Vzc2libGVFbGVtZW50QnlJZCgiZnJhbWVfY2VsbCIpOworICAgICAgICBkZWJ1ZygiUm9sZSBm
b3IgaWZyYW1lIGNlbGwgaXM6ICAiICsgZnJhbWVFbGVtZW50LnJvbGUgKyAiIC5cbiIpOworICAg
IH0KK30KKyAgICAgICAgICAgIAorPC9zY3JpcHQ+Cis8L2hlYWQ+CisgICAgCis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Cis8dGFibGUgY2VsbHBhZGRpbmc9MCBjZWxsc3BhY2luZz0wIGJvcmRl
cj0yPgorPHRyPgorPHRkPiBDZWxsIEEgPC90ZD4KKzx0ZCBpZD0iZnJhbWVfY2VsbCIgZGVzY3Jp
cHRpb249IkNlbGwgQiI+PGlmcmFtZSBzcmM9ImFib3V0OmJsYW5rIiB3aWR0aD0iMTAwJSI+PC9p
ZnJhbWU+PC90ZD4KKzx0ZD4gQ2VsbCBDIDwvdGQ+Cis8L3RyPgorPC90YWJsZT4KKworPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIGlmcmFtZSB3aXRoaW4gYSBjZWxsIGlzIGFjY2Vz
c2libGUuIik7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>