<?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>73474</bug_id>
          
          <creation_ts>2011-11-30 11:14:06 -0800</creation_ts>
          <short_desc>[WinCairo] Correct SimpleFontData for Font Height</short_desc>
          <delta_ts>2011-11-30 14:02:18 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</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="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511923</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 11:14:06 -0800</bug_when>
    <thetext>Several layout tests under WinCairo fail to match the core Apple results because of differences in font height.  This was tracked down to the &quot;shouldApplyMacAscentHack()&quot; case in the CG font handling, which was not properly replicated in the WinCairo branch.

This change brings the WinCairo font handling more closely in alignment with the Apple implementation, and allows us to produce identical results for several test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511934</commentid>
    <comment_count>1</comment_count>
      <attachid>117233</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 11:22:10 -0800</bug_when>
    <thetext>Created attachment 117233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511939</commentid>
    <comment_count>2</comment_count>
      <attachid>117233</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-11-30 11:26:38 -0800</bug_when>
    <thetext>Comment on attachment 117233
Patch

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

&gt; Source/WebCore/platform/graphics/win/SimpleFontDataCairoWin.cpp:91
&gt; +    if (shouldApplyMacAscentHack()) {
&gt; +        // This code comes from FontDataMac.mm. We only ever do this when running regression tests so that our metrics will match Mac.
&gt; +
&gt; +        // We need to adjust Times, Helvetica, and Courier to closely match the
&gt; +        // vertical metrics of their Microsoft counterparts that are the de facto
&gt; +        // web standard. The AppKit adjustment of 20% is too big and is
&gt; +        // incorrectly added to line spacing, so we use a 15% adjustment instead
&gt; +        // and add it to the ascent.
&gt; +        if (!wcscmp(faceName.data(), L&quot;Times&quot;) || !wcscmp(faceName.data(), L&quot;Helvetica&quot;) || !wcscmp(faceName.data(), L&quot;Courier&quot;))
&gt; +            ascent += floorf(((ascent + descent) * 0.15f) + 0.5f);
&gt; +    }

Maybe we should factor this out into a separate function in SimpleFontDataWin.cpp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511952</commentid>
    <comment_count>3</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 11:34:13 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 117233 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117233&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/win/SimpleFontDataCairoWin.cpp:91
&gt; &gt; +    if (shouldApplyMacAscentHack()) {
&gt; &gt; +        // This code comes from FontDataMac.mm. We only ever do this when running regression tests so that our metrics will match Mac.
&gt; &gt; +
&gt; &gt; +        // We need to adjust Times, Helvetica, and Courier to closely match the
&gt; &gt; +        // vertical metrics of their Microsoft counterparts that are the de facto
&gt; &gt; +        // web standard. The AppKit adjustment of 20% is too big and is
&gt; &gt; +        // incorrectly added to line spacing, so we use a 15% adjustment instead
&gt; &gt; +        // and add it to the ascent.
&gt; &gt; +        if (!wcscmp(faceName.data(), L&quot;Times&quot;) || !wcscmp(faceName.data(), L&quot;Helvetica&quot;) || !wcscmp(faceName.data(), L&quot;Courier&quot;))
&gt; &gt; +            ascent += floorf(((ascent + descent) * 0.15f) + 0.5f);
&gt; &gt; +    }
&gt; 
&gt; Maybe we should factor this out into a separate function in SimpleFontDataWin.cpp?

We would need to pass the face name, ascent and descent values by reference so they could be modified. Would it be better to have a &quot;modifyFontForMacAscent(fontName, ascent, descent)&quot; call after the test, or an all-in-one method that checks for the MacAscentHack state and does the work as well?

I.e., is it better to do:
if (shouldApplyMacAscentHack())
    modifyFontForMacAscent(fontName, ascent, descent);

... or:
checkAndmodifyFontForMacAscent(fontName, ascent, descent);

Also, should we encapsulate the &quot;m_isSystemFont = !wcscmp(faceName.data(), L&quot;Lucida Grande&quot;);&quot; test in a function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511960</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-11-30 11:37:36 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 117233 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117233&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/win/SimpleFontDataCairoWin.cpp:91
&gt; &gt; &gt; +    if (shouldApplyMacAscentHack()) {
&gt; &gt; &gt; +        // This code comes from FontDataMac.mm. We only ever do this when running regression tests so that our metrics will match Mac.
&gt; &gt; &gt; +
&gt; &gt; &gt; +        // We need to adjust Times, Helvetica, and Courier to closely match the
&gt; &gt; &gt; +        // vertical metrics of their Microsoft counterparts that are the de facto
&gt; &gt; &gt; +        // web standard. The AppKit adjustment of 20% is too big and is
&gt; &gt; &gt; +        // incorrectly added to line spacing, so we use a 15% adjustment instead
&gt; &gt; &gt; +        // and add it to the ascent.
&gt; &gt; &gt; +        if (!wcscmp(faceName.data(), L&quot;Times&quot;) || !wcscmp(faceName.data(), L&quot;Helvetica&quot;) || !wcscmp(faceName.data(), L&quot;Courier&quot;))
&gt; &gt; &gt; +            ascent += floorf(((ascent + descent) * 0.15f) + 0.5f);
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Maybe we should factor this out into a separate function in SimpleFontDataWin.cpp?
&gt; 
&gt; We would need to pass the face name, ascent and descent values by reference so they could be modified. Would it be better to have a &quot;modifyFontForMacAscent(fontName, ascent, descent)&quot; call after the test, or an all-in-one method that checks for the MacAscentHack state and does the work as well?
&gt; 
&gt; I.e., is it better to do:
&gt; if (shouldApplyMacAscentHack())
&gt;     modifyFontForMacAscent(fontName, ascent, descent);
&gt; 
&gt; ... or:
&gt; checkAndmodifyFontForMacAscent(fontName, ascent, descent);

Only the ascent gets modified. I&apos;d do something like this:

ascent = ascentConsideringMacAscentHack(fontName.data(), ascent, descent);

&gt; Also, should we encapsulate the &quot;m_isSystemFont = !wcscmp(faceName.data(), L&quot;Lucida Grande&quot;);&quot; test in a function?

Maybe, but now we&apos;re getting down the rabbit hole of why more code isn&apos;t shared between SimpleFontDataCGWin and SimpleFontDataCairoWin. The more we can share the better, obviously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512033</commentid>
    <comment_count>5</comment_count>
      <attachid>117254</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 12:48:57 -0800</bug_when>
    <thetext>Created attachment 117254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512043</commentid>
    <comment_count>6</comment_count>
      <attachid>117257</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 12:58:03 -0800</bug_when>
    <thetext>Created attachment 117257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512052</commentid>
    <comment_count>7</comment_count>
      <attachid>117257</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-11-30 13:04:51 -0800</bug_when>
    <thetext>Comment on attachment 117257
Patch

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

&gt; Source/WebCore/platform/graphics/win/SimpleFontDataWin.cpp:80
&gt; +    if (!wcscmp(faceName, L&quot;Times&quot;) || !wcscmp(faceName, L&quot;Helvetica&quot;) || !wcscmp(faceName, L&quot;Courier&quot;))
&gt; +        ascent += floorf(((ascent + descent) * 0.15f) + 0.5f);
&gt; +
&gt; +    return ascent;

You could use an early return instead, something like:

if (wcscmp(...) || wcscmp(...) || wcscmp(...))
    return ascent;

return ascent + floorf(...);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512118</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2011-11-30 14:02:18 -0800</bug_when>
    <thetext>Landed in r101554.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117233</attachid>
            <date>2011-11-30 11:22:10 -0800</date>
            <delta_ts>2011-11-30 12:48:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73474-20111130112210.patch</filename>
            <type>text/plain</type>
            <size>5875</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTUzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDExLTExLTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2luQ2Fpcm9dIENvcnJl
Y3QgU2ltcGxlRm9udERhdGEgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggQXBwbGUgcmVzdWx0cy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDc0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5
IGV4aXN0aW5nIGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0YmFzZXVyaTA1LnhodG1sCisg
ICAgICAgIGFuZCBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGJhc2V1cmkwNy54aHRtbAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3Bw
OiBSZW1vdmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICBvZiAncGxhdGZvcm1DaGFyV2lkdGhJ
bml0JyAobW92ZWQgdG8gU2ltcGxlRm9udERhdGFXaW4uY3BwKQorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJvV2luLmNwcDogUmVtb3ZlIGR1bW15Cisg
ICAgICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1Jbml0KTogQWRkIGxvZ2ljIHRvIGhhbmRsZSB0aGUKKyAgICAgICAgICAnc2hv
dWxkQXBwbHlNYWNBc2NlbnRIYWNrJyBjYXNlLCBhcyB3ZWxsIGFzIHRvIGlkZW50aWZ5IHN5c3Rl
bSBmb250CisgICAgICAgICAgdXNpbmcgdGhlIHNhbWUgY3JpdGVyaWEgYXMgdGhlIEFwcGxlIHBv
cnQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckds
eXBoKTogQWRkIGNoZWNrIGZvcgorICAgICAgICAgIG1pc3NpbmcgZm9udCBkYXRhIHN0YXRlLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KTog
TW92ZWQgZnJvbSB0aGUKKyAgICAgICAgICBDRyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMS0xMS0z
MCAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBJbnNwZWN0IGVsZW1lbnQgZG9lcyBub3QgaGlnaGxpZ2h0IGVsZW1lbnQgaW4g
ZWxlbWVudHMgcGFuZWwgd2hlbiBpbnNwZWN0b3IgaXMgb3BlbmVkLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250
RGF0YUNHV2luLmNwcAkocmV2aXNpb24gMTAxMzkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhQ0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTEsMTUgKzExMSw2IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgpCiAg
ICAgbV9mb250TWV0cmljcy5zZXRVbml0c1BlckVtKHVuaXRzUGVyRW0pOwogfQogCi12b2lkIFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUNoYXJXaWR0aEluaXQoKQotewotICAgIC8vIEdESSBGb250
cyBpbml0IGNoYXJ3aWR0aHMgaW4gaW5pdEdESUZvbnQuCi0gICAgaWYgKCFtX3BsYXRmb3JtRGF0
YS51c2VHREkoKSkgewotICAgICAgICBtX2F2Z0NoYXJXaWR0aCA9IDAuZjsKLSAgICAgICAgbV9t
YXhDaGFyV2lkdGggPSAwLmY7Ci0gICAgICAgIGluaXRDaGFyV2lkdGhzKCk7Ci0gICAgfQotfQog
RmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoIGds
eXBoKSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJvV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
U2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAJKHJldmlzaW9uIDEwMTM5MykKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJvV2luLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNDMsMTUgKzQzLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
dm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKIHsKKyAgICBtX3N5bnRoZXRpY0Jv
bGRPZmZzZXQgPSBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCkgPyAxLjBmIDogMC5mOwog
ICAgIG1fc2NyaXB0Q2FjaGUgPSAwOwogICAgIG1fc2NyaXB0Rm9udFByb3BlcnRpZXMgPSAwOwog
ICAgIG1faXNTeXN0ZW1Gb250ID0gZmFsc2U7CiAKLSAgICBtX3N5bnRoZXRpY0JvbGRPZmZzZXQg
PSBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCkgPyAxLjBmIDogMC5mOwotCiAgICAgaWYg
KG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKQogICAgICAgIHJldHVybiBpbml0R0RJRm9udCgpOwog
CisgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS5zaXplKCkpIHsKKyAgICAgICAgbV9mb250TWV0cmlj
cy5yZXNldCgpOworICAgICAgICBtX2F2Z0NoYXJXaWR0aCA9IDA7CisgICAgICAgIG1fbWF4Q2hh
cldpZHRoID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIEhEQyBoZGMgPSBHZXRE
QygwKTsKICAgICBTYXZlREMoaGRjKTsKIApAQCAtNjYsNiArNzIsMjQgQEAgdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1Jbml0KCkKICAgICBmbG9hdCBkZXNjZW50ID0gdGV4dE1ldHJpY3Mu
dG1EZXNjZW50ICogbWV0cmljc011bHRpcGxpZXI7CiAgICAgZmxvYXQgeEhlaWdodCA9IGFzY2Vu
dCAqIDAuNTZmOyAvLyBCZXN0IGd1ZXNzIGZvciB4SGVpZ2h0IGZvciBub24tVHJ1ZXR5cGUgZm9u
dHMuCiAgICAgZmxvYXQgbGluZUdhcCA9IHRleHRNZXRyaWNzLnRtRXh0ZXJuYWxMZWFkaW5nICog
bWV0cmljc011bHRpcGxpZXI7CisKKyAgICBpbnQgZmFjZUxlbmd0aCA9IDo6R2V0VGV4dEZhY2Uo
aGRjLCAwLCAwKTsKKyAgICBWZWN0b3I8V0NIQVI+IGZhY2VOYW1lKGZhY2VMZW5ndGgpOworICAg
IDo6R2V0VGV4dEZhY2UoaGRjLCBmYWNlTGVuZ3RoLCBmYWNlTmFtZS5kYXRhKCkpOworICAgIG1f
aXNTeXN0ZW1Gb250ID0gIXdjc2NtcChmYWNlTmFtZS5kYXRhKCksIEwiTHVjaWRhIEdyYW5kZSIp
OworIAorICAgIGlmIChzaG91bGRBcHBseU1hY0FzY2VudEhhY2soKSkgeworICAgICAgICAvLyBU
aGlzIGNvZGUgY29tZXMgZnJvbSBGb250RGF0YU1hYy5tbS4gV2Ugb25seSBldmVyIGRvIHRoaXMg
d2hlbiBydW5uaW5nIHJlZ3Jlc3Npb24gdGVzdHMgc28gdGhhdCBvdXIgbWV0cmljcyB3aWxsIG1h
dGNoIE1hYy4KKworICAgICAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCBUaW1lcywgSGVsdmV0aWNh
LCBhbmQgQ291cmllciB0byBjbG9zZWx5IG1hdGNoIHRoZQorICAgICAgICAvLyB2ZXJ0aWNhbCBt
ZXRyaWNzIG9mIHRoZWlyIE1pY3Jvc29mdCBjb3VudGVycGFydHMgdGhhdCBhcmUgdGhlIGRlIGZh
Y3RvCisgICAgICAgIC8vIHdlYiBzdGFuZGFyZC4gVGhlIEFwcEtpdCBhZGp1c3RtZW50IG9mIDIw
JSBpcyB0b28gYmlnIGFuZCBpcworICAgICAgICAvLyBpbmNvcnJlY3RseSBhZGRlZCB0byBsaW5l
IHNwYWNpbmcsIHNvIHdlIHVzZSBhIDE1JSBhZGp1c3RtZW50IGluc3RlYWQKKyAgICAgICAgLy8g
YW5kIGFkZCBpdCB0byB0aGUgYXNjZW50LgorICAgICAgICBpZiAoIXdjc2NtcChmYWNlTmFtZS5k
YXRhKCksIEwiVGltZXMiKSB8fCAhd2NzY21wKGZhY2VOYW1lLmRhdGEoKSwgTCJIZWx2ZXRpY2Ei
KSB8fCAhd2NzY21wKGZhY2VOYW1lLmRhdGEoKSwgTCJDb3VyaWVyIikpCisgICAgICAgICAgICBh
c2NlbnQgKz0gZmxvb3JmKCgoYXNjZW50ICsgZGVzY2VudCkgKiAwLjE1ZikgKyAwLjVmKTsKKyAg
ICB9CisKICAgICBtX2ZvbnRNZXRyaWNzLnNldEFzY2VudChhc2NlbnQpOwogICAgIG1fZm9udE1l
dHJpY3Muc2V0RGVzY2VudChkZXNjZW50KTsKICAgICBtX2ZvbnRNZXRyaWNzLnNldExpbmVHYXAo
bGluZUdhcCk7CkBAIC04NiwxOSArMTEwLDEwIEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRm
b3JtSW5pdCgpCiAgICAgbV9mb250TWV0cmljcy5zZXRYSGVpZ2h0KHhIZWlnaHQpOwogICAgIGNh
aXJvX3dpbjMyX3NjYWxlZF9mb250X2RvbmVfZm9udChzY2FsZWRGb250KTsKIAotICAgIG1faXNT
eXN0ZW1Gb250ID0gZmFsc2U7Ci0gICAgbV9zY3JpcHRDYWNoZSA9IDA7Ci0gICAgbV9zY3JpcHRG
b250UHJvcGVydGllcyA9IDA7Ci0KICAgICBSZXN0b3JlREMoaGRjLCAtMSk7CiAgICAgUmVsZWFz
ZURDKDAsIGhkYyk7CiB9CiAKLXZvaWQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQ2hhcldpZHRo
SW5pdCgpCi17Ci0gICAgLy8gY2hhcndpZHRocyBhcmUgc2V0IGluIHBsYXRmb3JtSW5pdC4KLX0K
LQogRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBo
IGdseXBoKSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKQEAgLTEx
Miw2ICsxMjcsOSBAQCBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdsCiAg
ICAgaWYgKG1fcGxhdGZvcm1EYXRhLnVzZUdESSgpKQogICAgICAgIHJldHVybiB3aWR0aEZvckdE
SUdseXBoKGdseXBoKTsKIAorICAgIGlmICghbV9wbGF0Zm9ybURhdGEuc2l6ZSgpKQorICAgICAg
ICByZXR1cm4gMDsKKwogICAgIEhEQyBoZGMgPSBHZXREQygwKTsKICAgICBTYXZlREMoaGRjKTsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnRE
YXRhV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCShyZXZpc2lvbiAxMDEzOTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFXaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDE2IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmluaXRH
RElGb250KCkKICAgICAgcmV0dXJuOwogfQogCit2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bUNoYXJXaWR0aEluaXQoKQoreworICAgIC8vIEdESSBGb250cyBpbml0IGNoYXJ3aWR0aHMgaW4g
aW5pdEdESUZvbnQuCisgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkgeworICAgICAg
ICBtX2F2Z0NoYXJXaWR0aCA9IDAuZjsKKyAgICAgICAgbV9tYXhDaGFyV2lkdGggPSAwLmY7Cisg
ICAgICAgIGluaXRDaGFyV2lkdGhzKCk7CisgICAgfQorfQorCiB2b2lkIFNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybURlc3Ryb3koKQogewogICAgIFNjcmlwdEZyZWVDYWNoZSgmbV9zY3JpcHRDYWNo
ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117254</attachid>
            <date>2011-11-30 12:48:57 -0800</date>
            <delta_ts>2011-11-30 12:57:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73474-20111130124856.patch</filename>
            <type>text/plain</type>
            <size>8032</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTUzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTExLTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2luQ2Fpcm9dIENvcnJl
Y3QgU2ltcGxlRm9udERhdGEgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggQXBwbGUgcmVzdWx0cy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDc0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5
IGV4aXN0aW5nIGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0YmFzZXVyaTA1LnhodG1sCisg
ICAgICAgIGFuZCBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGJhc2V1cmkwNy54aHRtbAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaDogQWRkIGRlY2xh
cmF0aW9uIGZvciBuZXcKKyAgICAgICAgICAnYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNr
JyBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRh
Q0dXaW4uY3BwOiBSZW1vdmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICBvZiAncGxhdGZvcm1D
aGFyV2lkdGhJbml0JyAobW92ZWQgdG8gU2ltcGxlRm9udERhdGFXaW4uY3BwKS4gQWxzbworICAg
ICAgICAgIHVzZSBuZXcgJ2FzY2VudENvbnNpZGVyaW5nTWFjQXNjZW50SGFjaycgbWV0aG9kLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJvV2luLmNw
cDogUmVtb3ZlIGR1bW15CisgICAgICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KTogQWRkIGxvZ2ljIHRvIGhhbmRsZSB0
aGUKKyAgICAgICAgICAnc2hvdWxkQXBwbHlNYWNBc2NlbnRIYWNrJyBjYXNlLCBhcyB3ZWxsIGFz
IHRvIGlkZW50aWZ5IHN5c3RlbSBmb250CisgICAgICAgICAgdXNpbmcgdGhlIHNhbWUgY3JpdGVy
aWEgYXMgdGhlIEFwcGxlIHBvcnQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdseXBoKTogQWRkIGNoZWNrIGZvcgorICAgICAgICAgIG1pc3Npbmcg
Zm9udCBkYXRhIHN0YXRlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVG
b250RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6YXNjZW50
Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKTogTmV3CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KTogTW92ZWQgZnJvbSB0aGUKKyAgICAgICAg
ICBDRyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMS0xMS0zMCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNwZWN0IGVsZW1l
bnQgZG9lcyBub3QgaGlnaGxpZ2h0IGVsZW1lbnQgaW4gZWxlbWVudHMgcGFuZWwgd2hlbiBpbnNw
ZWN0b3IgaXMgb3BlbmVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiAxMDEzOTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTksNiArMTk5LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgc2V0U2hv
dWxkQXBwbHlNYWNBc2NlbnRIYWNrKGJvb2wpOwogICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5
TWFjQXNjZW50SGFjaygpOworICAgIHN0YXRpYyBmbG9hdCBhc2NlbnRDb25zaWRlcmluZ01hY0Fz
Y2VudEhhY2soY29uc3QgV0NIQVIqLCBmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQpOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShXWCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAJKHJl
dmlzaW9uIDEwMTM5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aW1wbGVGb250RGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsMTcgKzc3LDcgQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKICAgICAgICAgU2VsZWN0T2JqZWN0
KGRjLCBvbGRGb250KTsKICAgICAgICAgUmVsZWFzZURDKDAsIGRjKTsKIAotICAgICAgICBpZiAo
c2hvdWxkQXBwbHlNYWNBc2NlbnRIYWNrKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY29kZSBj
b21lcyBmcm9tIEZvbnREYXRhTWFjLm1tLiBXZSBvbmx5IGV2ZXIgZG8gdGhpcyB3aGVuIHJ1bm5p
bmcgcmVncmVzc2lvbiB0ZXN0cyBzbyB0aGF0IG91ciBtZXRyaWNzIHdpbGwgbWF0Y2ggTWFjLgot
Ci0gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCBUaW1lcywgSGVsdmV0aWNhLCBhbmQg
Q291cmllciB0byBjbG9zZWx5IG1hdGNoIHRoZQotICAgICAgICAgICAgLy8gdmVydGljYWwgbWV0
cmljcyBvZiB0aGVpciBNaWNyb3NvZnQgY291bnRlcnBhcnRzIHRoYXQgYXJlIHRoZSBkZSBmYWN0
bwotICAgICAgICAgICAgLy8gd2ViIHN0YW5kYXJkLiBUaGUgQXBwS2l0IGFkanVzdG1lbnQgb2Yg
MjAlIGlzIHRvbyBiaWcgYW5kIGlzCi0gICAgICAgICAgICAvLyBpbmNvcnJlY3RseSBhZGRlZCB0
byBsaW5lIHNwYWNpbmcsIHNvIHdlIHVzZSBhIDE1JSBhZGp1c3RtZW50IGluc3RlYWQKLSAgICAg
ICAgICAgIC8vIGFuZCBhZGQgaXQgdG8gdGhlIGFzY2VudC4KLSAgICAgICAgICAgIGlmICghd2Nz
Y21wKGZhY2VOYW1lLmRhdGEoKSwgTCJUaW1lcyIpIHx8ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgp
LCBMIkhlbHZldGljYSIpIHx8ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgpLCBMIkNvdXJpZXIiKSkK
LSAgICAgICAgICAgICAgICBmQXNjZW50ICs9IGZsb29yZigoKGZBc2NlbnQgKyBmRGVzY2VudCkg
KiAwLjE1ZikgKyAwLjVmKTsKLSAgICAgICAgfQorICAgICAgICBmQXNjZW50ID0gYXNjZW50Q29u
c2lkZXJpbmdNYWNBc2NlbnRIYWNrKGZhY2VOYW1lLmRhdGEoKSwgZkFzY2VudCwgZkRlc2NlbnQp
OwogICAgIH0KIAogICAgIG1fZm9udE1ldHJpY3Muc2V0QXNjZW50KGZBc2NlbnQpOwpAQCAtMTEx
LDE1ICsxMDEsNiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIG1f
Zm9udE1ldHJpY3Muc2V0VW5pdHNQZXJFbSh1bml0c1BlckVtKTsKIH0KIAotdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KCkKLXsKLSAgICAvLyBHREkgRm9udHMgaW5p
dCBjaGFyd2lkdGhzIGluIGluaXRHRElGb250LgotICAgIGlmICghbV9wbGF0Zm9ybURhdGEudXNl
R0RJKCkpIHsKLSAgICAgICAgbV9hdmdDaGFyV2lkdGggPSAwLmY7Ci0gICAgICAgIG1fbWF4Q2hh
cldpZHRoID0gMC5mOwotICAgICAgICBpbml0Q2hhcldpZHRocygpOwotICAgIH0KLX0KIEZsb2F0
UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkg
Y29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBs
ZUZvbnREYXRhQ2Fpcm9XaW4uY3BwCShyZXZpc2lvbiAxMDEzOTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDE1ICs0MywyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQg
U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgpCiB7CisgICAgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0ID0gbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpID8gMS4wZiA6IDAuZjsKICAgICBt
X3NjcmlwdENhY2hlID0gMDsKICAgICBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzID0gMDsKICAgICBt
X2lzU3lzdGVtRm9udCA9IGZhbHNlOwogCi0gICAgbV9zeW50aGV0aWNCb2xkT2Zmc2V0ID0gbV9w
bGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpID8gMS4wZiA6IDAuZjsKLQogICAgIGlmIChtX3Bs
YXRmb3JtRGF0YS51c2VHREkoKSkKICAgICAgICByZXR1cm4gaW5pdEdESUZvbnQoKTsKIAorICAg
IGlmICghbV9wbGF0Zm9ybURhdGEuc2l6ZSgpKSB7CisgICAgICAgIG1fZm9udE1ldHJpY3MucmVz
ZXQoKTsKKyAgICAgICAgbV9hdmdDaGFyV2lkdGggPSAwOworICAgICAgICBtX21heENoYXJXaWR0
aCA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBIREMgaGRjID0gR2V0REMoMCk7
CiAgICAgU2F2ZURDKGhkYyk7CiAKQEAgLTY2LDYgKzcyLDE0IEBAIHZvaWQgU2ltcGxlRm9udERh
dGE6OnBsYXRmb3JtSW5pdCgpCiAgICAgZmxvYXQgZGVzY2VudCA9IHRleHRNZXRyaWNzLnRtRGVz
Y2VudCAqIG1ldHJpY3NNdWx0aXBsaWVyOwogICAgIGZsb2F0IHhIZWlnaHQgPSBhc2NlbnQgKiAw
LjU2ZjsgLy8gQmVzdCBndWVzcyBmb3IgeEhlaWdodCBmb3Igbm9uLVRydWV0eXBlIGZvbnRzLgog
ICAgIGZsb2F0IGxpbmVHYXAgPSB0ZXh0TWV0cmljcy50bUV4dGVybmFsTGVhZGluZyAqIG1ldHJp
Y3NNdWx0aXBsaWVyOworCisgICAgaW50IGZhY2VMZW5ndGggPSA6OkdldFRleHRGYWNlKGhkYywg
MCwgMCk7CisgICAgVmVjdG9yPFdDSEFSPiBmYWNlTmFtZShmYWNlTGVuZ3RoKTsKKyAgICA6Okdl
dFRleHRGYWNlKGhkYywgZmFjZUxlbmd0aCwgZmFjZU5hbWUuZGF0YSgpKTsKKyAgICBtX2lzU3lz
dGVtRm9udCA9ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgpLCBMIkx1Y2lkYSBHcmFuZGUiKTsKKyAK
KyAgICBhc2NlbnQgPSBhc2NlbnRDb25zaWRlcmluZ01hY0FzY2VudEhhY2soZmFjZU5hbWUuZGF0
YSgpLCBhc2NlbnQsIGRlc2NlbnQpOworCiAgICAgbV9mb250TWV0cmljcy5zZXRBc2NlbnQoYXNj
ZW50KTsKICAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQoZGVzY2VudCk7CiAgICAgbV9mb250
TWV0cmljcy5zZXRMaW5lR2FwKGxpbmVHYXApOwpAQCAtODYsMTkgKzEwMCwxMCBAQCB2b2lkIFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIG1fZm9udE1ldHJpY3Muc2V0WEhlaWdo
dCh4SGVpZ2h0KTsKICAgICBjYWlyb193aW4zMl9zY2FsZWRfZm9udF9kb25lX2ZvbnQoc2NhbGVk
Rm9udCk7CiAKLSAgICBtX2lzU3lzdGVtRm9udCA9IGZhbHNlOwotICAgIG1fc2NyaXB0Q2FjaGUg
PSAwOwotICAgIG1fc2NyaXB0Rm9udFByb3BlcnRpZXMgPSAwOwotCiAgICAgUmVzdG9yZURDKGhk
YywgLTEpOwogICAgIFJlbGVhc2VEQygwLCBoZGMpOwogfQogCi12b2lkIFNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybUNoYXJXaWR0aEluaXQoKQotewotICAgIC8vIGNoYXJ3aWR0aHMgYXJlIHNldCBp
biBwbGF0Zm9ybUluaXQuCi19Ci0KIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1C
b3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURh
dGEudXNlR0RJKCkpCkBAIC0xMTIsNiArMTE3LDkgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbAogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKICAgICAg
ICByZXR1cm4gd2lkdGhGb3JHRElHbHlwaChnbHlwaCk7CiAKKyAgICBpZiAoIW1fcGxhdGZvcm1E
YXRhLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBIREMgaGRjID0gR2V0REMoMCk7
CiAgICAgU2F2ZURDKGhkYyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24g
MTAxMzkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZv
bnREYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMjIgQEAgYm9vbCBTaW1w
bGVGb250RGF0YTo6c2hvdWxkQXBwbHlNYWNBc2NlbgogICAgIHJldHVybiBnX3Nob3VsZEFwcGx5
TWFjQXNjZW50SGFjazsKIH0KIAorZmxvYXQgU2ltcGxlRm9udERhdGE6OmFzY2VudENvbnNpZGVy
aW5nTWFjQXNjZW50SGFjayhjb25zdCBXQ0hBUiogZmFjZU5hbWUsIGZsb2F0IGFzY2VudCwgZmxv
YXQgZGVzY2VudCkKK3sKKyAgICBpZiAoIXNob3VsZEFwcGx5TWFjQXNjZW50SGFjaygpKQorICAg
ICAgICByZXR1cm4gYXNjZW50OworCisgICAgLy8gVGhpcyBjb2RlIGNvbWVzIGZyb20gRm9udERh
dGFNYWMubW0uIFdlIG9ubHkgZXZlciBkbyB0aGlzIHdoZW4gcnVubmluZyByZWdyZXNzaW9uIHRl
c3RzIHNvIHRoYXQgb3VyIG1ldHJpY3Mgd2lsbCBtYXRjaCBNYWMuCisKKyAgICAvLyBXZSBuZWVk
IHRvIGFkanVzdCBUaW1lcywgSGVsdmV0aWNhLCBhbmQgQ291cmllciB0byBjbG9zZWx5IG1hdGNo
IHRoZQorICAgIC8vIHZlcnRpY2FsIG1ldHJpY3Mgb2YgdGhlaXIgTWljcm9zb2Z0IGNvdW50ZXJw
YXJ0cyB0aGF0IGFyZSB0aGUgZGUgZmFjdG8KKyAgICAvLyB3ZWIgc3RhbmRhcmQuIFRoZSBBcHBL
aXQgYWRqdXN0bWVudCBvZiAyMCUgaXMgdG9vIGJpZyBhbmQgaXMKKyAgICAvLyBpbmNvcnJlY3Rs
eSBhZGRlZCB0byBsaW5lIHNwYWNpbmcsIHNvIHdlIHVzZSBhIDE1JSBhZGp1c3RtZW50IGluc3Rl
YWQKKyAgICAvLyBhbmQgYWRkIGl0IHRvIHRoZSBhc2NlbnQuCisgICAgaWYgKCF3Y3NjbXAoZmFj
ZU5hbWUsIEwiVGltZXMiKSB8fCAhd2NzY21wKGZhY2VOYW1lLCBMIkhlbHZldGljYSIpIHx8ICF3
Y3NjbXAoZmFjZU5hbWUsIEwiQ291cmllciIpKQorICAgICAgICBhc2NlbnQgKz0gZmxvb3JmKCgo
YXNjZW50ICsgZGVzY2VudCkgKiAwLjE1ZikgKyAwLjVmKTsKK30KKwogdm9pZCBTaW1wbGVGb250
RGF0YTo6aW5pdEdESUZvbnQoKQogewogICAgIGlmICghbV9wbGF0Zm9ybURhdGEuc2l6ZSgpKSB7
CkBAIC0xMDIsNiArMTE4LDE2IEBAIHZvaWQgU2ltcGxlRm9udERhdGE6OmluaXRHRElGb250KCkK
ICAgICAgcmV0dXJuOwogfQogCit2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUNoYXJXaWR0
aEluaXQoKQoreworICAgIC8vIEdESSBGb250cyBpbml0IGNoYXJ3aWR0aHMgaW4gaW5pdEdESUZv
bnQuCisgICAgaWYgKCFtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkgeworICAgICAgICBtX2F2Z0No
YXJXaWR0aCA9IDAuZjsKKyAgICAgICAgbV9tYXhDaGFyV2lkdGggPSAwLmY7CisgICAgICAgIGlu
aXRDaGFyV2lkdGhzKCk7CisgICAgfQorfQorCiB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bURlc3Ryb3koKQogewogICAgIFNjcmlwdEZyZWVDYWNoZSgmbV9zY3JpcHRDYWNoZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117257</attachid>
            <date>2011-11-30 12:58:03 -0800</date>
            <delta_ts>2011-11-30 13:04:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73474-20111130125802.patch</filename>
            <type>text/plain</type>
            <size>8054</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMTUzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDExLTExLTMwICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2luQ2Fpcm9dIENvcnJl
Y3QgU2ltcGxlRm9udERhdGEgaW1wbGVtZW50YXRpb24gdG8gbWF0Y2ggQXBwbGUgcmVzdWx0cy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNDc0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdGVkIGJ5
IGV4aXN0aW5nIGRvbS94aHRtbC9sZXZlbDMvY29yZS9ub2RlZ2V0YmFzZXVyaTA1LnhodG1sCisg
ICAgICAgIGFuZCBkb20veGh0bWwvbGV2ZWwzL2NvcmUvbm9kZWdldGJhc2V1cmkwNy54aHRtbAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvU2ltcGxlRm9udERhdGEuaDogQWRkIGRlY2xh
cmF0aW9uIGZvciBuZXcKKyAgICAgICAgICAnYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNr
JyBtZXRob2QuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRh
Q0dXaW4uY3BwOiBSZW1vdmUgaW1wbGVtZW50YXRpb24KKyAgICAgICAgICBvZiAncGxhdGZvcm1D
aGFyV2lkdGhJbml0JyAobW92ZWQgdG8gU2ltcGxlRm9udERhdGFXaW4uY3BwKS4gQWxzbworICAg
ICAgICAgIHVzZSBuZXcgJ2FzY2VudENvbnNpZGVyaW5nTWFjQXNjZW50SGFjaycgbWV0aG9kLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNhaXJvV2luLmNw
cDogUmVtb3ZlIGR1bW15CisgICAgICAgICAgaW1wbGVtZW50YXRpb24uCisgICAgICAgIChXZWJD
b3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KTogQWRkIGxvZ2ljIHRvIGhhbmRsZSB0
aGUKKyAgICAgICAgICAnc2hvdWxkQXBwbHlNYWNBc2NlbnRIYWNrJyBjYXNlLCBhcyB3ZWxsIGFz
IHRvIGlkZW50aWZ5IHN5c3RlbSBmb250CisgICAgICAgICAgdXNpbmcgdGhlIHNhbWUgY3JpdGVy
aWEgYXMgdGhlIEFwcGxlIHBvcnQuCisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6
cGxhdGZvcm1XaWR0aEZvckdseXBoKTogQWRkIGNoZWNrIGZvcgorICAgICAgICAgIG1pc3Npbmcg
Zm9udCBkYXRhIHN0YXRlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9TaW1wbGVG
b250RGF0YVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6YXNjZW50
Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKTogTmV3CisgICAgICAgIChXZWJDb3JlOjpTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KTogTW92ZWQgZnJvbSB0aGUKKyAgICAgICAg
ICBDRyBpbXBsZW1lbnRhdGlvbi4KKwogMjAxMS0xMS0zMCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbnNwZWN0IGVsZW1l
bnQgZG9lcyBub3QgaGlnaGxpZ2h0IGVsZW1lbnQgaW4gZWxlbWVudHMgcGFuZWwgd2hlbiBpbnNw
ZWN0b3IgaXMgb3BlbmVkLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
U2ltcGxlRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9TaW1wbGVGb250RGF0YS5oCShyZXZpc2lvbiAxMDEzOTMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9TaW1wbGVGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xOTksNiArMTk5LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgc3RhdGljIHZvaWQgc2V0U2hv
dWxkQXBwbHlNYWNBc2NlbnRIYWNrKGJvb2wpOwogICAgIHN0YXRpYyBib29sIHNob3VsZEFwcGx5
TWFjQXNjZW50SGFjaygpOworICAgIHN0YXRpYyBmbG9hdCBhc2NlbnRDb25zaWRlcmluZ01hY0Fz
Y2VudEhhY2soY29uc3QgV0NIQVIqLCBmbG9hdCBhc2NlbnQsIGZsb2F0IGRlc2NlbnQpOwogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShXWCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9TaW1wbGVGb250RGF0YUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDR1dpbi5jcHAJKHJl
dmlzaW9uIDEwMTM5MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9T
aW1wbGVGb250RGF0YUNHV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcsMTcgKzc3LDcgQEAg
dm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KCkKICAgICAgICAgU2VsZWN0T2JqZWN0
KGRjLCBvbGRGb250KTsKICAgICAgICAgUmVsZWFzZURDKDAsIGRjKTsKIAotICAgICAgICBpZiAo
c2hvdWxkQXBwbHlNYWNBc2NlbnRIYWNrKCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgY29kZSBj
b21lcyBmcm9tIEZvbnREYXRhTWFjLm1tLiBXZSBvbmx5IGV2ZXIgZG8gdGhpcyB3aGVuIHJ1bm5p
bmcgcmVncmVzc2lvbiB0ZXN0cyBzbyB0aGF0IG91ciBtZXRyaWNzIHdpbGwgbWF0Y2ggTWFjLgot
Ci0gICAgICAgICAgICAvLyBXZSBuZWVkIHRvIGFkanVzdCBUaW1lcywgSGVsdmV0aWNhLCBhbmQg
Q291cmllciB0byBjbG9zZWx5IG1hdGNoIHRoZQotICAgICAgICAgICAgLy8gdmVydGljYWwgbWV0
cmljcyBvZiB0aGVpciBNaWNyb3NvZnQgY291bnRlcnBhcnRzIHRoYXQgYXJlIHRoZSBkZSBmYWN0
bwotICAgICAgICAgICAgLy8gd2ViIHN0YW5kYXJkLiBUaGUgQXBwS2l0IGFkanVzdG1lbnQgb2Yg
MjAlIGlzIHRvbyBiaWcgYW5kIGlzCi0gICAgICAgICAgICAvLyBpbmNvcnJlY3RseSBhZGRlZCB0
byBsaW5lIHNwYWNpbmcsIHNvIHdlIHVzZSBhIDE1JSBhZGp1c3RtZW50IGluc3RlYWQKLSAgICAg
ICAgICAgIC8vIGFuZCBhZGQgaXQgdG8gdGhlIGFzY2VudC4KLSAgICAgICAgICAgIGlmICghd2Nz
Y21wKGZhY2VOYW1lLmRhdGEoKSwgTCJUaW1lcyIpIHx8ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgp
LCBMIkhlbHZldGljYSIpIHx8ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgpLCBMIkNvdXJpZXIiKSkK
LSAgICAgICAgICAgICAgICBmQXNjZW50ICs9IGZsb29yZigoKGZBc2NlbnQgKyBmRGVzY2VudCkg
KiAwLjE1ZikgKyAwLjVmKTsKLSAgICAgICAgfQorICAgICAgICBmQXNjZW50ID0gYXNjZW50Q29u
c2lkZXJpbmdNYWNBc2NlbnRIYWNrKGZhY2VOYW1lLmRhdGEoKSwgZkFzY2VudCwgZkRlc2NlbnQp
OwogICAgIH0KIAogICAgIG1fZm9udE1ldHJpY3Muc2V0QXNjZW50KGZBc2NlbnQpOwpAQCAtMTEx
LDE1ICsxMDEsNiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIG1f
Zm9udE1ldHJpY3Muc2V0VW5pdHNQZXJFbSh1bml0c1BlckVtKTsKIH0KIAotdm9pZCBTaW1wbGVG
b250RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KCkKLXsKLSAgICAvLyBHREkgRm9udHMgaW5p
dCBjaGFyd2lkdGhzIGluIGluaXRHRElGb250LgotICAgIGlmICghbV9wbGF0Zm9ybURhdGEudXNl
R0RJKCkpIHsKLSAgICAgICAgbV9hdmdDaGFyV2lkdGggPSAwLmY7Ci0gICAgICAgIG1fbWF4Q2hh
cldpZHRoID0gMC5mOwotICAgICAgICBpbml0Q2hhcldpZHRocygpOwotICAgIH0KLX0KIEZsb2F0
UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkg
Y29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURhdGEudXNlR0RJKCkpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBs
ZUZvbnREYXRhQ2Fpcm9XaW4uY3BwCShyZXZpc2lvbiAxMDEzOTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vU2ltcGxlRm9udERhdGFDYWlyb1dpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDE1ICs0MywyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQg
U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCgpCiB7CisgICAgbV9zeW50aGV0aWNCb2xkT2Zm
c2V0ID0gbV9wbGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpID8gMS4wZiA6IDAuZjsKICAgICBt
X3NjcmlwdENhY2hlID0gMDsKICAgICBtX3NjcmlwdEZvbnRQcm9wZXJ0aWVzID0gMDsKICAgICBt
X2lzU3lzdGVtRm9udCA9IGZhbHNlOwogCi0gICAgbV9zeW50aGV0aWNCb2xkT2Zmc2V0ID0gbV9w
bGF0Zm9ybURhdGEuc3ludGhldGljQm9sZCgpID8gMS4wZiA6IDAuZjsKLQogICAgIGlmIChtX3Bs
YXRmb3JtRGF0YS51c2VHREkoKSkKICAgICAgICByZXR1cm4gaW5pdEdESUZvbnQoKTsKIAorICAg
IGlmICghbV9wbGF0Zm9ybURhdGEuc2l6ZSgpKSB7CisgICAgICAgIG1fZm9udE1ldHJpY3MucmVz
ZXQoKTsKKyAgICAgICAgbV9hdmdDaGFyV2lkdGggPSAwOworICAgICAgICBtX21heENoYXJXaWR0
aCA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBIREMgaGRjID0gR2V0REMoMCk7
CiAgICAgU2F2ZURDKGhkYyk7CiAKQEAgLTY2LDYgKzcyLDE0IEBAIHZvaWQgU2ltcGxlRm9udERh
dGE6OnBsYXRmb3JtSW5pdCgpCiAgICAgZmxvYXQgZGVzY2VudCA9IHRleHRNZXRyaWNzLnRtRGVz
Y2VudCAqIG1ldHJpY3NNdWx0aXBsaWVyOwogICAgIGZsb2F0IHhIZWlnaHQgPSBhc2NlbnQgKiAw
LjU2ZjsgLy8gQmVzdCBndWVzcyBmb3IgeEhlaWdodCBmb3Igbm9uLVRydWV0eXBlIGZvbnRzLgog
ICAgIGZsb2F0IGxpbmVHYXAgPSB0ZXh0TWV0cmljcy50bUV4dGVybmFsTGVhZGluZyAqIG1ldHJp
Y3NNdWx0aXBsaWVyOworCisgICAgaW50IGZhY2VMZW5ndGggPSA6OkdldFRleHRGYWNlKGhkYywg
MCwgMCk7CisgICAgVmVjdG9yPFdDSEFSPiBmYWNlTmFtZShmYWNlTGVuZ3RoKTsKKyAgICA6Okdl
dFRleHRGYWNlKGhkYywgZmFjZUxlbmd0aCwgZmFjZU5hbWUuZGF0YSgpKTsKKyAgICBtX2lzU3lz
dGVtRm9udCA9ICF3Y3NjbXAoZmFjZU5hbWUuZGF0YSgpLCBMIkx1Y2lkYSBHcmFuZGUiKTsKKyAK
KyAgICBhc2NlbnQgPSBhc2NlbnRDb25zaWRlcmluZ01hY0FzY2VudEhhY2soZmFjZU5hbWUuZGF0
YSgpLCBhc2NlbnQsIGRlc2NlbnQpOworCiAgICAgbV9mb250TWV0cmljcy5zZXRBc2NlbnQoYXNj
ZW50KTsKICAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQoZGVzY2VudCk7CiAgICAgbV9mb250
TWV0cmljcy5zZXRMaW5lR2FwKGxpbmVHYXApOwpAQCAtODYsMTkgKzEwMCwxMCBAQCB2b2lkIFNp
bXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQogICAgIG1fZm9udE1ldHJpY3Muc2V0WEhlaWdo
dCh4SGVpZ2h0KTsKICAgICBjYWlyb193aW4zMl9zY2FsZWRfZm9udF9kb25lX2ZvbnQoc2NhbGVk
Rm9udCk7CiAKLSAgICBtX2lzU3lzdGVtRm9udCA9IGZhbHNlOwotICAgIG1fc2NyaXB0Q2FjaGUg
PSAwOwotICAgIG1fc2NyaXB0Rm9udFByb3BlcnRpZXMgPSAwOwotCiAgICAgUmVzdG9yZURDKGhk
YywgLTEpOwogICAgIFJlbGVhc2VEQygwLCBoZGMpOwogfQogCi12b2lkIFNpbXBsZUZvbnREYXRh
OjpwbGF0Zm9ybUNoYXJXaWR0aEluaXQoKQotewotICAgIC8vIGNoYXJ3aWR0aHMgYXJlIHNldCBp
biBwbGF0Zm9ybUluaXQuCi19Ci0KIEZsb2F0UmVjdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1C
b3VuZHNGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURh
dGEudXNlR0RJKCkpCkBAIC0xMTIsNiArMTE3LDkgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBs
YXRmb3JtV2lkdGhGb3JHbAogICAgIGlmIChtX3BsYXRmb3JtRGF0YS51c2VHREkoKSkKICAgICAg
ICByZXR1cm4gd2lkdGhGb3JHRElHbHlwaChnbHlwaCk7CiAKKyAgICBpZiAoIW1fcGxhdGZvcm1E
YXRhLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBIREMgaGRjID0gR2V0REMoMCk7
CiAgICAgU2F2ZURDKGhkYyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbi9TaW1wbGVGb250RGF0YVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZvbnREYXRhV2luLmNwcAkocmV2aXNpb24g
MTAxMzkzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1NpbXBsZUZv
bnREYXRhV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIsMjQgQEAgYm9vbCBTaW1w
bGVGb250RGF0YTo6c2hvdWxkQXBwbHlNYWNBc2NlbgogICAgIHJldHVybiBnX3Nob3VsZEFwcGx5
TWFjQXNjZW50SGFjazsKIH0KIAorZmxvYXQgU2ltcGxlRm9udERhdGE6OmFzY2VudENvbnNpZGVy
aW5nTWFjQXNjZW50SGFjayhjb25zdCBXQ0hBUiogZmFjZU5hbWUsIGZsb2F0IGFzY2VudCwgZmxv
YXQgZGVzY2VudCkKK3sKKyAgICBpZiAoIXNob3VsZEFwcGx5TWFjQXNjZW50SGFjaygpKQorICAg
ICAgICByZXR1cm4gYXNjZW50OworCisgICAgLy8gVGhpcyBjb2RlIGNvbWVzIGZyb20gRm9udERh
dGFNYWMubW0uIFdlIG9ubHkgZXZlciBkbyB0aGlzIHdoZW4gcnVubmluZyByZWdyZXNzaW9uIHRl
c3RzIHNvIHRoYXQgb3VyIG1ldHJpY3Mgd2lsbCBtYXRjaCBNYWMuCisKKyAgICAvLyBXZSBuZWVk
IHRvIGFkanVzdCBUaW1lcywgSGVsdmV0aWNhLCBhbmQgQ291cmllciB0byBjbG9zZWx5IG1hdGNo
IHRoZQorICAgIC8vIHZlcnRpY2FsIG1ldHJpY3Mgb2YgdGhlaXIgTWljcm9zb2Z0IGNvdW50ZXJw
YXJ0cyB0aGF0IGFyZSB0aGUgZGUgZmFjdG8KKyAgICAvLyB3ZWIgc3RhbmRhcmQuIFRoZSBBcHBL
aXQgYWRqdXN0bWVudCBvZiAyMCUgaXMgdG9vIGJpZyBhbmQgaXMKKyAgICAvLyBpbmNvcnJlY3Rs
eSBhZGRlZCB0byBsaW5lIHNwYWNpbmcsIHNvIHdlIHVzZSBhIDE1JSBhZGp1c3RtZW50IGluc3Rl
YWQKKyAgICAvLyBhbmQgYWRkIGl0IHRvIHRoZSBhc2NlbnQuCisgICAgaWYgKCF3Y3NjbXAoZmFj
ZU5hbWUsIEwiVGltZXMiKSB8fCAhd2NzY21wKGZhY2VOYW1lLCBMIkhlbHZldGljYSIpIHx8ICF3
Y3NjbXAoZmFjZU5hbWUsIEwiQ291cmllciIpKQorICAgICAgICBhc2NlbnQgKz0gZmxvb3JmKCgo
YXNjZW50ICsgZGVzY2VudCkgKiAwLjE1ZikgKyAwLjVmKTsKKworICAgIHJldHVybiBhc2NlbnQ7
Cit9CisKIHZvaWQgU2ltcGxlRm9udERhdGE6OmluaXRHRElGb250KCkKIHsKICAgICBpZiAoIW1f
cGxhdGZvcm1EYXRhLnNpemUoKSkgewpAQCAtMTAyLDYgKzEyMCwxNiBAQCB2b2lkIFNpbXBsZUZv
bnREYXRhOjppbml0R0RJRm9udCgpCiAgICAgIHJldHVybjsKIH0KIAordm9pZCBTaW1wbGVGb250
RGF0YTo6cGxhdGZvcm1DaGFyV2lkdGhJbml0KCkKK3sKKyAgICAvLyBHREkgRm9udHMgaW5pdCBj
aGFyd2lkdGhzIGluIGluaXRHRElGb250LgorICAgIGlmICghbV9wbGF0Zm9ybURhdGEudXNlR0RJ
KCkpIHsKKyAgICAgICAgbV9hdmdDaGFyV2lkdGggPSAwLmY7CisgICAgICAgIG1fbWF4Q2hhcldp
ZHRoID0gMC5mOworICAgICAgICBpbml0Q2hhcldpZHRocygpOworICAgIH0KK30KKwogdm9pZCBT
aW1wbGVGb250RGF0YTo6cGxhdGZvcm1EZXN0cm95KCkKIHsKICAgICBTY3JpcHRGcmVlQ2FjaGUo
Jm1fc2NyaXB0Q2FjaGUpOwo=
</data>
<flag name="review"
          id="116639"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>