<?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>127082</bug_id>
          
          <creation_ts>2014-01-15 21:18:38 -0800</creation_ts>
          <short_desc>Draw all underline segments in a particular run in the same call</short_desc>
          <delta_ts>2014-01-16 16:23:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>aestes</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968592</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-15 21:18:38 -0800</bug_when>
    <thetext>Draw all underline segments in a particular run in the same call</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968595</commentid>
    <comment_count>1</comment_count>
      <attachid>221330</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-15 21:24:55 -0800</bug_when>
    <thetext>Created attachment 221330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968605</commentid>
    <comment_count>2</comment_count>
      <attachid>221330</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-15 22:18:56 -0800</bug_when>
    <thetext>Comment on attachment 221330
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext.h:374
&gt; +        void drawLinesForText(const FloatPoint&amp;, DashArray widths, bool printing);

Should DashArray be passed by value like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968840</commentid>
    <comment_count>3</comment_count>
      <attachid>221330</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-16 11:50:14 -0800</bug_when>
    <thetext>Comment on attachment 221330
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext.h:374
&gt;&gt; +        void drawLinesForText(const FloatPoint&amp;, DashArray widths, bool printing);
&gt; 
&gt; Should DashArray be passed by value like this?

Good point. Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968849</commentid>
    <comment_count>4</comment_count>
      <attachid>221399</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-16 12:15:22 -0800</bug_when>
    <thetext>Created attachment 221399
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968851</commentid>
    <comment_count>5</comment_count>
      <attachid>221399</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-16 12:20:33 -0800</bug_when>
    <thetext>Comment on attachment 221399
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1496
&gt; +    Vector&lt;CGRect&gt; dashBounds;

Inline capacity, and set capacity up front?

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1507
&gt; +    if (fillColor() != strokeColor())

You could avoid doing this comparison twice.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1518
&gt; +    CGContextRef context = platformContext();
&gt; +    CGContextSaveGState(context);

Odd that this is so different. Why save/restore here and not above?

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1525
&gt; +    Vector&lt;CGRect&gt; dashBounds;

Ditto.

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1530
&gt; +    if (m_state.shouldUseContextColors)

Is m_state.shouldUseContextColors iOS-specific? What does it mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968884</commentid>
    <comment_count>6</comment_count>
      <attachid>221399</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-16 12:47:43 -0800</bug_when>
    <thetext>Comment on attachment 221399
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1496
&gt;&gt; +    Vector&lt;CGRect&gt; dashBounds;
&gt; 
&gt; Inline capacity, and set capacity up front?

Done.

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1507
&gt;&gt; +    if (fillColor() != strokeColor())
&gt; 
&gt; You could avoid doing this comparison twice.

Done.

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1518
&gt;&gt; +    CGContextSaveGState(context);
&gt; 
&gt; Odd that this is so different. Why save/restore here and not above?

https://bugs.webkit.org/show_bug.cgi?id=127135

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1525
&gt;&gt; +    Vector&lt;CGRect&gt; dashBounds;
&gt; 
&gt; Ditto.

Done.

&gt;&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1530
&gt;&gt; +    if (m_state.shouldUseContextColors)
&gt; 
&gt; Is m_state.shouldUseContextColors iOS-specific? What does it mean?

Yes, iOS-specific. It appears to be a flag that, when unset, fills the underline with the fillColor() instead of the strokeColor().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968979</commentid>
    <comment_count>7</comment_count>
      <attachid>221399</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-16 16:00:20 -0800</bug_when>
    <thetext>Comment on attachment 221399
Patch

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

&gt; Source/WebCore/platform/graphics/cg/GraphicsContextCG.cpp:1523
&gt; +    FloatRect rect = computeLineBoundsAndAntialiasingModeForText(*this, point, width, printing, shouldAntialiasLine, color);

This line breaks the iOS build. Should width be widths.last() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968983</commentid>
    <comment_count>8</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2014-01-16 16:10:03 -0800</bug_when>
    <thetext>Assuming the answer to my question is yes, I fixed this in http://trac.webkit.org/changeset/162164</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968986</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-01-16 16:23:41 -0800</bug_when>
    <thetext>Yes, it should be. Thanks for fixing this for me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221330</attachid>
            <date>2014-01-15 21:24:55 -0800</date>
            <delta_ts>2014-01-16 12:15:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127082-20140115212454.patch</filename>
            <type>text/plain</type>
            <size>7591</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUxYzY0ZTJkZjAxZjQz
MzkwYjZjZWM5MmEzMGQ2Yzg3NzViZmE2NC4uZjg5MWQxZTY2YWY2ZmE4YzA4YTJkZDVhNDNhOTM2
OGVhNDZiNzc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAxLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRHJhdyBhbGwg
dW5kZXJsaW5lIHNlZ21lbnRzIGluIGEgcGFydGljdWxhciBydW4gaW4gdGhlIHNhbWUgY2FsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBv
ZiBydW5uaW5nIENHQ29udGV4dEZpbGxSZWN0KCkgaW4gYSBsb29wLCB3ZSBjYW4gaW5zdGVhZCBj
YWxsIENHQ29udGV4dEZpbGxSZWN0cygpCisKKyAgICAgICAgSW4gbXkgdGVzdHMsIHRoaXMgc2Vl
bXMgdG8gaGF2ZSBhYm91dCAwLjUlIHNwZWVkdXAuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVh
dGVzIHNvbWUgcmVkdW5kYW50IGNvZGUsIGJ1dCBJIHRoaW5rIHRoYXQgcmVmYWN0b3Jpbmcgd291
bGQgbWFrZSB0aGUgY29kZQorICAgICAgICBtdWNoIGxlc3MgcmVhZGFibGUuIEkgYWxzbyBhbSBo
ZXNpdGFudCB0byBtYWtlIGRyYXdMaW5lRm9yVGV4dCBjYWxsIGRyYXdMaW5lc0ZvclRleHQgYmVj
YXVzZQorICAgICAgICBvZiB0aGUgb3ZlcmhlYWQgb2YgdGhlIHZlY3RvciB0aGF0IHdvdWxkIGJl
IG5lZWRlZC4KKworICAgICAgICBBcyB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UsIG5vIG5l
dyB0ZXN0cyBhcmUgbmVjZXNzYXJ5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lc0ZvclRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZv
cm1Jbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRl
eHRXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5l
c0ZvclRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdTa2lwSW5rVW5kZXJsaW5lKToKKwogMjAxNC0wMS0xNSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIFZhbGlkYXRp
b24gZnVuY3Rpb24gZm9yIGNvbXByZXNzZWQgZm9ybWF0cyBpbmNvcnJlY3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggMjcw
NzJmMjhhODYyMTBiZWRlZDBkNWNiNWQwOGI4MDU1ZjEzOTUzZC4uNGJkZTRjMzYyNGM3NWQxODQy
YWEwYzU0YWRkODNkMjMyMzRiNDZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM3MSw2ICszNzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgRmxvYXRSZWN0IGNvbXB1dGVMaW5lQm91bmRzRm9yVGV4
dChjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcpOwogICAgICAg
ICB2b2lkIGRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lkdGgsIGJv
b2wgcHJpbnRpbmcpOworICAgICAgICB2b2lkIGRyYXdMaW5lc0ZvclRleHQoY29uc3QgRmxvYXRQ
b2ludCYsIERhc2hBcnJheSB3aWR0aHMsIGJvb2wgcHJpbnRpbmcpOwogICAgICAgICBlbnVtIERv
Y3VtZW50TWFya2VyTGluZVN0eWxlIHsKICNpZiBQTEFURk9STShJT1MpCiAgICAgICAgICAgICBU
ZXh0Q2hlY2tpbmdEaWN0YXRpb25QaHJhc2VXaXRoQWx0ZXJuYXRpdmVzTGluZVN0eWxlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCmluZGV4IDIzZDk3M2Q5MmUyY2RjNWZmMGVhNDA1MTUz
YTdlODNjOGQ1MzViNzguLmMyNjczZTM5YTllNTJmOGE2MDMwMmY0M2VlNWE5YzRjZGRlNjQyMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTY0MSw2ICs2NDEsMTIgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBvcmln
aW4sIGZsb2F0IHdpZHRoLCBib28KICAgICBjYWlyb19yZXN0b3JlKGNhaXJvQ29udGV4dCk7CiB9
CiAKK3ZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZXNGb3JUZXh0KGNvbnN0IEZsb2F0UG9p
bnQmIHBvaW50LCBEYXNoQXJyYXkgd2lkdGhzLCBib29sIHByaW50aW5nKQoreworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgd2lkdGhzLnNpemUoKTsgaSArPSAyKQorICAgICAgICBkcmF3TGlu
ZUZvclRleHQoRmxvYXRQb2ludChwb2ludC54KCkgKyB3aWR0aHNbaV0sIHBvaW50LnkoKSksIHdp
ZHRoc1tpKzFdIC0gd2lkdGhzW2ldLCBwcmludGluZyk7Cit9CisKIHZvaWQgR3JhcGhpY3NDb250
ZXh0Ojp1cGRhdGVEb2N1bWVudE1hcmtlclJlc291cmNlcygpCiB7CiAgICAgLy8gVW5uZWNlc3Nh
cnksIHNpbmNlIG91ciBkb2N1bWVudCBtYXJrZXJzIGRvbid0IHVzZSByZXNvdXJjZXMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0Nv
bnRleHRDRy5jcHAKaW5kZXggZGMzMGFmMDAzMzIwMWM4NGZmNmU0ZjhhNWE5YjdlMDFkODdhOTAw
Yy4uZDZiNGQ3YTI1YTljOGVjZTQzNDc3ZDQ4ZjNhYzAyNTMwODdiZTZkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcApAQCAtMTQ4MSw2ICsxNDgxLDYwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3
TGluZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGZsb2F0IHdpZHRoLCBib29sCiAj
ZW5kaWYKIH0KIAordm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5lc0ZvclRleHQoY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQsIERhc2hBcnJheSB3aWR0aHMsIGJvb2wgcHJpbnRpbmcpCit7Cisg
ICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHdp
ZHRocy5zaXplKCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOworCisjaWYgIVBMQVRGT1JNKElPUykK
KyAgICBib29sIHNob3VsZEFudGlhbGlhc0xpbmU7CisgICAgRmxvYXRSZWN0IGJvdW5kcyA9IGNv
bXB1dGVMaW5lQm91bmRzQW5kQW50aWFsaWFzaW5nTW9kZUZvclRleHQoKnRoaXMsIHBvaW50LCB3
aWR0aHMubGFzdCgpLCBwcmludGluZywgc2hvdWxkQW50aWFsaWFzTGluZSk7CisgICAgCisgICAg
VmVjdG9yPENHUmVjdD4gZGFzaEJvdW5kczsKKyAgICBBU1NFUlQoISh3aWR0aHMuc2l6ZSgpICUg
MikpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2lkdGhzLnNpemUoKTsgaSArPSAyKQor
ICAgICAgICBkYXNoQm91bmRzLmFwcGVuZChDR1JlY3RNYWtlKGJvdW5kcy54KCkgKyB3aWR0aHNb
aV0sIGJvdW5kcy55KCksIHdpZHRoc1tpKzFdIC0gd2lkdGhzW2ldLCBib3VuZHMuaGVpZ2h0KCkp
KTsKKworICAgIGJvb2wgc2F2ZWRTaG91bGRBbnRpYWxpYXMgPSBzaG91bGRBbnRpYWxpYXMoKTsK
KyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gc2F2ZWRTaG91bGRBbnRpYWxpYXMgIT0g
c2hvdWxkQW50aWFsaWFzTGluZTsKKworICAgIGlmIChyZXN0b3JlQW50aWFsaWFzTW9kZSkKKyAg
ICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCBzaG91
bGRBbnRpYWxpYXNMaW5lKTsKKworICAgIGlmIChmaWxsQ29sb3IoKSAhPSBzdHJva2VDb2xvcigp
KQorICAgICAgICBzZXRDR0ZpbGxDb2xvcihwbGF0Zm9ybUNvbnRleHQoKSwgc3Ryb2tlQ29sb3Io
KSwgc3Ryb2tlQ29sb3JTcGFjZSgpKTsKKyAgICBDR0NvbnRleHRGaWxsUmVjdHMocGxhdGZvcm1D
b250ZXh0KCksIGRhc2hCb3VuZHMuZGF0YSgpLCBkYXNoQm91bmRzLnNpemUoKSk7CisgICAgaWYg
KGZpbGxDb2xvcigpICE9IHN0cm9rZUNvbG9yKCkpCisgICAgICAgIHNldENHRmlsbENvbG9yKHBs
YXRmb3JtQ29udGV4dCgpLCBmaWxsQ29sb3IoKSwgZmlsbENvbG9yU3BhY2UoKSk7CisgICAgQ0dD
b250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29udGV4dCgpLCBzYXZlZFNob3VsZEFu
dGlhbGlhcyk7CisKKyAgICBpZiAocmVzdG9yZUFudGlhbGlhc01vZGUpCisgICAgICAgIENHQ29u
dGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRleHQoKSwgdHJ1ZSk7CisjZWxzZQor
ICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CisgICAgQ0dDb250
ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKKworICAgIENvbG9yIGNvbG9yKHN0cm9rZUNvbG9yKCkp
OworICAgIAorICAgIGJvb2wgc2hvdWxkQW50aWFsaWFzTGluZTsKKyAgICBGbG9hdFJlY3QgcmVj
dCA9IGNvbXB1dGVMaW5lQm91bmRzQW5kQW50aWFsaWFzaW5nTW9kZUZvclRleHQoKnRoaXMsIHBv
aW50LCB3aWR0aCwgcHJpbnRpbmcsIHNob3VsZEFudGlhbGlhc0xpbmUsIGNvbG9yKTsKKyAgICAK
KyAgICBWZWN0b3I8Q0dSZWN0PiBkYXNoQm91bmRzOworICAgIEFTU0VSVCghKHdpZHRocy5zaXpl
KCkgJSAyKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3aWR0aHMuc2l6ZSgpOyBpICs9
IDIpCisgICAgICAgIGRhc2hCb3VuZHMuYXBwZW5kKENHUmVjdE1ha2UocmVjdC54KCkgKyB3aWR0
aHNbaV0sIHJlY3QueSgpLCB3aWR0aHNbaSsxXSAtIHdpZHRoc1tpXSwgcmVjdC5oZWlnaHQoKSkp
OworCisgICAgaWYgKG1fc3RhdGUuc2hvdWxkVXNlQ29udGV4dENvbG9ycykKKyAgICAgICAgc2V0
Q0dGaWxsQ29sb3IoY29udGV4dCwgY29sb3IsIHN0cm9rZUNvbG9yU3BhY2UoKSk7CisgICAgQ0dD
b250ZXh0RmlsbFJlY3RzKGNvbnRleHQsIGRhc2hCb3VuZHMuZGF0YSgpLCBkYXNoQm91bmRzLnNp
emUoKSk7CisKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNvbnRleHQpOworI2VuZGlmCit9
CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRVUkxGb3JSZWN0KGNvbnN0IFVSTCYgbGluaywg
Y29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4
dFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL0dyYXBo
aWNzQ29udGV4dFdpbkNFLmNwcAppbmRleCAzMzkwMjFjMDU4ZjVkZDNhNTdlOWNiNmVjODYxMDVk
MzIwYWE2NTJmLi4yZmUwNzUxMDI5NjUwYmEwOTFhOTRhZjFmZDliMTljNmNlMTk5NTc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0Nv
bnRleHRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
Y2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCkBAIC05NjYsNiArOTY2LDEyIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHQoY29uc3QgRmxvYXRQb2ludCYgb3JpZ2luLCBm
bG9hdCB3aWR0aCwgYm9vCiAgICAgc2V0U3Ryb2tlU3R5bGUob2xkU3R5bGUpOwogfQogCit2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2lu
dCwgRGFzaEFycmF5IHdpZHRocywgYm9vbCBwcmludGluZykKK3sKKyAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHdpZHRocy5zaXplKCk7IGkgKz0gMikKKyAgICAgICAgZHJhd0xpbmVGb3JUZXh0
KEZsb2F0UG9pbnQocG9pbnQueCgpICsgd2lkdGhzW2ldLCBwb2ludC55KCkpLCB3aWR0aHNbaSsx
XSAtIHdpZHRoc1tpXSwgcHJpbnRpbmcpOworfQorCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6dXBk
YXRlRG9jdW1lbnRNYXJrZXJSZXNvdXJjZXMoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKaW5kZXggYjhkMmRmOWVj
N2NlM2ExZGQ2YmZhNDVjNThmY2RhMmZjODIyYmM2NC4uZjU1ZTc2MGZjZTFiMGM3NDY2ZTlhNjMy
ZWJmOTVmOGE0NGRmMDc5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lu
bGluZVRleHRCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0
Qm94LmNwcApAQCAtMTI3LDggKzEyNyw3IEBAIHN0YXRpYyB2b2lkIGRyYXdTa2lwSW5rVW5kZXJs
aW5lKFRleHRQYWludGVyJiB0ZXh0UGFpbnRlciwgR3JhcGhpY3NDb250ZXh0JiBjb250CiAgICAg
RGFzaEFycmF5IGEgPSB0cmFuc2xhdGVJbnRlcnNlY3Rpb25Qb2ludHNUb1NraXBJbmtCb3VuZGFy
aWVzKGludGVyc2VjdGlvbnMsIHVuZGVybGluZUJvdW5kaW5nQm94LmhlaWdodCgpLCB3aWR0aCk7
CiAKICAgICBBU1NFUlQoIShhLnNpemUoKSAlIDIpKTsKLSAgICBmb3IgKGF1dG8gaSA9IGEuYmVn
aW4oKTsgaSAhPSBhLmVuZCgpOyBpKyssIGkrKykKLSAgICAgICAgY29udGV4dC5kcmF3TGluZUZv
clRleHQoRmxvYXRQb2ludChsb2NhbE9yaWdpbi54KCkgKyAqaSwgbG9jYWxPcmlnaW4ueSgpICsg
dW5kZXJsaW5lT2Zmc2V0KSwgKihpKzEpIC0gKmksIGlzUHJpbnRpbmcpOworICAgIGNvbnRleHQu
ZHJhd0xpbmVzRm9yVGV4dChhZGp1c3RlZExvY2FsT3JpZ2luLCBhLCBpc1ByaW50aW5nKTsKIH0K
ICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221399</attachid>
            <date>2014-01-16 12:15:22 -0800</date>
            <delta_ts>2014-01-16 16:00:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127082-20140116121522.patch</filename>
            <type>text/plain</type>
            <size>7619</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyMDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTUxYzY0ZTJkZjAxZjQz
MzkwYjZjZWM5MmEzMGQ2Yzg3NzViZmE2NC4uZjg5MWQxZTY2YWY2ZmE4YzA4YTJkZDVhNDNhOTM2
OGVhNDZiNzc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE0LTAxLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgRHJhdyBhbGwg
dW5kZXJsaW5lIHNlZ21lbnRzIGluIGEgcGFydGljdWxhciBydW4gaW4gdGhlIHNhbWUgY2FsbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3MDgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBv
ZiBydW5uaW5nIENHQ29udGV4dEZpbGxSZWN0KCkgaW4gYSBsb29wLCB3ZSBjYW4gaW5zdGVhZCBj
YWxsIENHQ29udGV4dEZpbGxSZWN0cygpCisKKyAgICAgICAgSW4gbXkgdGVzdHMsIHRoaXMgc2Vl
bXMgdG8gaGF2ZSBhYm91dCAwLjUlIHNwZWVkdXAuCisKKyAgICAgICAgVGhpcyBwYXRjaCBjcmVh
dGVzIHNvbWUgcmVkdW5kYW50IGNvZGUsIGJ1dCBJIHRoaW5rIHRoYXQgcmVmYWN0b3Jpbmcgd291
bGQgbWFrZSB0aGUgY29kZQorICAgICAgICBtdWNoIGxlc3MgcmVhZGFibGUuIEkgYWxzbyBhbSBo
ZXNpdGFudCB0byBtYWtlIGRyYXdMaW5lRm9yVGV4dCBjYWxsIGRyYXdMaW5lc0ZvclRleHQgYmVj
YXVzZQorICAgICAgICBvZiB0aGUgb3ZlcmhlYWQgb2YgdGhlIHZlY3RvciB0aGF0IHdvdWxkIGJl
IG5lZWRlZC4KKworICAgICAgICBBcyB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UsIG5vIG5l
dyB0ZXN0cyBhcmUgbmVjZXNzYXJ5CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRy
YXdMaW5lc0ZvclRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6cGxhdGZv
cm1Jbml0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9HcmFwaGljc0NvbnRl
eHRXaW5DRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdMaW5l
c0ZvclRleHQpOgorICAgICAgICAqIHJlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdTa2lwSW5rVW5kZXJsaW5lKToKKwogMjAxNC0wMS0xNSAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViR0xdIFZhbGlkYXRp
b24gZnVuY3Rpb24gZm9yIGNvbXByZXNzZWQgZm9ybWF0cyBpbmNvcnJlY3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKaW5kZXggMjcw
NzJmMjhhODYyMTBiZWRlZDBkNWNiNWQwOGI4MDU1ZjEzOTUzZC4uYjE0N2FiMzFjMDc3MDc3ZTVi
MTBlMzk2NTA3Nzg4NWQ2ZWZkNmFhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmgKQEAgLTM3MSw2ICszNzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKICAgICAgICAgRmxvYXRSZWN0IGNvbXB1dGVMaW5lQm91bmRzRm9yVGV4
dChjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lkdGgsIGJvb2wgcHJpbnRpbmcpOwogICAgICAg
ICB2b2lkIGRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiwgZmxvYXQgd2lkdGgsIGJv
b2wgcHJpbnRpbmcpOworICAgICAgICB2b2lkIGRyYXdMaW5lc0ZvclRleHQoY29uc3QgRmxvYXRQ
b2ludCYsIGNvbnN0IERhc2hBcnJheSYgd2lkdGhzLCBib29sIHByaW50aW5nKTsKICAgICAgICAg
ZW51bSBEb2N1bWVudE1hcmtlckxpbmVTdHlsZSB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgICAg
ICAgICAgVGV4dENoZWNraW5nRGljdGF0aW9uUGhyYXNlV2l0aEFsdGVybmF0aXZlc0xpbmVTdHls
ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAppbmRleCAyM2Q5NzNkOTJlMmNkYzVmZjBl
YTQwNTE1M2E3ZTgzYzhkNTM1Yjc4Li4wNjk5ODIxMjNlNGY2ZTI0NmFkM2Y0M2Y4M2U4NDgyZjMw
YzkyMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCkBAIC02NDEsNiArNjQxLDEy
IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHQoY29uc3QgRmxvYXRQb2lu
dCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgYm9vCiAgICAgY2Fpcm9fcmVzdG9yZShjYWlyb0NvbnRl
eHQpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChjb25zdCBG
bG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJpbnRpbmcp
Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3aWR0aHMuc2l6ZSgpOyBpICs9IDIpCisg
ICAgICAgIGRyYXdMaW5lRm9yVGV4dChGbG9hdFBvaW50KHBvaW50LngoKSArIHdpZHRoc1tpXSwg
cG9pbnQueSgpKSwgd2lkdGhzW2krMV0gLSB3aWR0aHNbaV0sIHByaW50aW5nKTsKK30KKwogdm9p
ZCBHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKCkKIHsKICAg
ICAvLyBVbm5lY2Vzc2FyeSwgc2luY2Ugb3VyIGRvY3VtZW50IG1hcmtlcnMgZG9uJ3QgdXNlIHJl
c291cmNlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAppbmRleCBkYzMwYWYwMDMzMjAxYzg0ZmY2ZTRmOGE1
YTliN2UwMWQ4N2E5MDBjLi4zMjY4YWJmYWU5ZTI4YzY5ZGIyNzA3ZTRjNzMyYzFhMjdmNTkxYmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
R3JhcGhpY3NDb250ZXh0Q0cuY3BwCkBAIC0xNDgxLDYgKzE0ODEsNjAgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQ6OmRyYXdMaW5lRm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgZmxvYXQg
d2lkdGgsIGJvb2wKICNlbmRpZgogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVz
Rm9yVGV4dChjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMs
IGJvb2wgcHJpbnRpbmcpCit7CisgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKHdpZHRocy5zaXplKCkgPD0gMCkKKyAgICAgICAgcmV0dXJuOwor
CisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBib29sIHNob3VsZEFudGlhbGlhc0xpbmU7CisgICAg
RmxvYXRSZWN0IGJvdW5kcyA9IGNvbXB1dGVMaW5lQm91bmRzQW5kQW50aWFsaWFzaW5nTW9kZUZv
clRleHQoKnRoaXMsIHBvaW50LCB3aWR0aHMubGFzdCgpLCBwcmludGluZywgc2hvdWxkQW50aWFs
aWFzTGluZSk7CisgICAgCisgICAgVmVjdG9yPENHUmVjdD4gZGFzaEJvdW5kczsKKyAgICBBU1NF
UlQoISh3aWR0aHMuc2l6ZSgpICUgMikpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd2lk
dGhzLnNpemUoKTsgaSArPSAyKQorICAgICAgICBkYXNoQm91bmRzLmFwcGVuZChDR1JlY3RNYWtl
KGJvdW5kcy54KCkgKyB3aWR0aHNbaV0sIGJvdW5kcy55KCksIHdpZHRoc1tpKzFdIC0gd2lkdGhz
W2ldLCBib3VuZHMuaGVpZ2h0KCkpKTsKKworICAgIGJvb2wgc2F2ZWRTaG91bGRBbnRpYWxpYXMg
PSBzaG91bGRBbnRpYWxpYXMoKTsKKyAgICBib29sIHJlc3RvcmVBbnRpYWxpYXNNb2RlID0gc2F2
ZWRTaG91bGRBbnRpYWxpYXMgIT0gc2hvdWxkQW50aWFsaWFzTGluZTsKKworICAgIGlmIChyZXN0
b3JlQW50aWFsaWFzTW9kZSkKKyAgICAgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBs
YXRmb3JtQ29udGV4dCgpLCBzaG91bGRBbnRpYWxpYXNMaW5lKTsKKworICAgIGlmIChmaWxsQ29s
b3IoKSAhPSBzdHJva2VDb2xvcigpKQorICAgICAgICBzZXRDR0ZpbGxDb2xvcihwbGF0Zm9ybUNv
bnRleHQoKSwgc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlQ29sb3JTcGFjZSgpKTsKKyAgICBDR0NvbnRl
eHRGaWxsUmVjdHMocGxhdGZvcm1Db250ZXh0KCksIGRhc2hCb3VuZHMuZGF0YSgpLCBkYXNoQm91
bmRzLnNpemUoKSk7CisgICAgaWYgKGZpbGxDb2xvcigpICE9IHN0cm9rZUNvbG9yKCkpCisgICAg
ICAgIHNldENHRmlsbENvbG9yKHBsYXRmb3JtQ29udGV4dCgpLCBmaWxsQ29sb3IoKSwgZmlsbENv
bG9yU3BhY2UoKSk7CisgICAgQ0dDb250ZXh0U2V0U2hvdWxkQW50aWFsaWFzKHBsYXRmb3JtQ29u
dGV4dCgpLCBzYXZlZFNob3VsZEFudGlhbGlhcyk7CisKKyAgICBpZiAocmVzdG9yZUFudGlhbGlh
c01vZGUpCisgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhwbGF0Zm9ybUNvbnRl
eHQoKSwgdHJ1ZSk7CisjZWxzZQorICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1D
b250ZXh0KCk7CisgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjb250ZXh0KTsKKworICAgIENvbG9y
IGNvbG9yKHN0cm9rZUNvbG9yKCkpOworICAgIAorICAgIGJvb2wgc2hvdWxkQW50aWFsaWFzTGlu
ZTsKKyAgICBGbG9hdFJlY3QgcmVjdCA9IGNvbXB1dGVMaW5lQm91bmRzQW5kQW50aWFsaWFzaW5n
TW9kZUZvclRleHQoKnRoaXMsIHBvaW50LCB3aWR0aCwgcHJpbnRpbmcsIHNob3VsZEFudGlhbGlh
c0xpbmUsIGNvbG9yKTsKKyAgICAKKyAgICBWZWN0b3I8Q0dSZWN0PiBkYXNoQm91bmRzOworICAg
IEFTU0VSVCghKHdpZHRocy5zaXplKCkgJSAyKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCB3aWR0aHMuc2l6ZSgpOyBpICs9IDIpCisgICAgICAgIGRhc2hCb3VuZHMuYXBwZW5kKENHUmVj
dE1ha2UocmVjdC54KCkgKyB3aWR0aHNbaV0sIHJlY3QueSgpLCB3aWR0aHNbaSsxXSAtIHdpZHRo
c1tpXSwgcmVjdC5oZWlnaHQoKSkpOworCisgICAgaWYgKG1fc3RhdGUuc2hvdWxkVXNlQ29udGV4
dENvbG9ycykKKyAgICAgICAgc2V0Q0dGaWxsQ29sb3IoY29udGV4dCwgY29sb3IsIHN0cm9rZUNv
bG9yU3BhY2UoKSk7CisgICAgQ0dDb250ZXh0RmlsbFJlY3RzKGNvbnRleHQsIGRhc2hCb3VuZHMu
ZGF0YSgpLCBkYXNoQm91bmRzLnNpemUoKSk7CisKKyAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRl
KGNvbnRleHQpOworI2VuZGlmCit9CisKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRVUkxGb3JS
ZWN0KGNvbnN0IFVSTCYgbGluaywgY29uc3QgSW50UmVjdCYgZGVzdFJlY3QpCiB7CiAjaWYgIVBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL0dyYXBoaWNzQ29udGV4dFdpbkNFLmNwcAppbmRleCAzMzkwMjFjMDU4
ZjVkZDNhNTdlOWNiNmVjODYxMDVkMzIwYWE2NTJmLi45MDI5ZDMwMTViOTUwODE4NWQ2NThkYThm
YTJhOWI3NjJkMTAwMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW5jZS9HcmFwaGljc0NvbnRleHRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvR3JhcGhpY3NDb250ZXh0V2luQ0UuY3BwCkBAIC05NjYs
NiArOTY2LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3TGluZUZvclRleHQoY29uc3Qg
RmxvYXRQb2ludCYgb3JpZ2luLCBmbG9hdCB3aWR0aCwgYm9vCiAgICAgc2V0U3Ryb2tlU3R5bGUo
b2xkU3R5bGUpOwogfQogCit2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd0xpbmVzRm9yVGV4dChj
b25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRGFzaEFycmF5JiB3aWR0aHMsIGJvb2wgcHJp
bnRpbmcpCit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB3aWR0aHMuc2l6ZSgpOyBpICs9
IDIpCisgICAgICAgIGRyYXdMaW5lRm9yVGV4dChGbG9hdFBvaW50KHBvaW50LngoKSArIHdpZHRo
c1tpXSwgcG9pbnQueSgpKSwgd2lkdGhzW2krMV0gLSB3aWR0aHNbaV0sIHByaW50aW5nKTsKK30K
Kwogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnVwZGF0ZURvY3VtZW50TWFya2VyUmVzb3VyY2VzKCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0lubGluZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwCmluZGV4IGI4ZDJkZjllYzdjZTNhMWRkNmJmYTQ1YzU4ZmNkYTJmYzgyMmJj
NjQuLmY1NWU3NjBmY2UxYjBjNzQ2NmU5YTYzMmViZjk1ZjhhNDRkZjA3OWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTEyNyw4ICsxMjcsNyBAQCBz
dGF0aWMgdm9pZCBkcmF3U2tpcElua1VuZGVybGluZShUZXh0UGFpbnRlciYgdGV4dFBhaW50ZXIs
IEdyYXBoaWNzQ29udGV4dCYgY29udAogICAgIERhc2hBcnJheSBhID0gdHJhbnNsYXRlSW50ZXJz
ZWN0aW9uUG9pbnRzVG9Ta2lwSW5rQm91bmRhcmllcyhpbnRlcnNlY3Rpb25zLCB1bmRlcmxpbmVC
b3VuZGluZ0JveC5oZWlnaHQoKSwgd2lkdGgpOwogCiAgICAgQVNTRVJUKCEoYS5zaXplKCkgJSAy
KSk7Ci0gICAgZm9yIChhdXRvIGkgPSBhLmJlZ2luKCk7IGkgIT0gYS5lbmQoKTsgaSsrLCBpKysp
Ci0gICAgICAgIGNvbnRleHQuZHJhd0xpbmVGb3JUZXh0KEZsb2F0UG9pbnQobG9jYWxPcmlnaW4u
eCgpICsgKmksIGxvY2FsT3JpZ2luLnkoKSArIHVuZGVybGluZU9mZnNldCksICooaSsxKSAtICpp
LCBpc1ByaW50aW5nKTsKKyAgICBjb250ZXh0LmRyYXdMaW5lc0ZvclRleHQoYWRqdXN0ZWRMb2Nh
bE9yaWdpbiwgYSwgaXNQcmludGluZyk7CiB9CiAjZW5kaWYKIAo=
</data>
<flag name="review"
          id="245305"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>