<?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>58186</bug_id>
          
          <creation_ts>2011-04-08 23:00:29 -0700</creation_ts>
          <short_desc>[chromium] Add lowpass filter and graph to fps indicator</short_desc>
          <delta_ts>2011-04-14 22:13:35 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Nat Duca">nduca</reporter>
          <assigned_to name="Nat Duca">nduca</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fishd</cc>
    
    <cc>nduca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>382726</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-08 23:00:29 -0700</bug_when>
    <thetext>[chromium] Add lowpass filter and graph to fps indicator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382727</commentid>
    <comment_count>1</comment_count>
      <attachid>88919</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-08 23:00:56 -0700</bug_when>
    <thetext>Created attachment 88919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382728</commentid>
    <comment_count>2</comment_count>
      <attachid>88920</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-08 23:06:19 -0700</bug_when>
    <thetext>Created attachment 88920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383597</commentid>
    <comment_count>3</comment_count>
      <attachid>89101</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-11 15:28:16 -0700</bug_when>
    <thetext>Created attachment 89101
Reduce filtering amount a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384695</commentid>
    <comment_count>4</comment_count>
      <attachid>89101</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-12 23:08:33 -0700</bug_when>
    <thetext>Comment on attachment 89101
Reduce filtering amount a bit.

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

looks good overall

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:138
&gt; +    const float attack = 0.1;

&quot;attack&quot; is an interesting choice of variable name.  is that standard
jargon in digital signal processing?  i might have chosen &quot;alpha&quot; (to
match literature) or maybe &quot;sensitivity&quot; (to describe effect).

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:141
&gt; +            printf(&quot;FFT: %f\n&quot;, 1.0 / secForLastFrame);

did you mean to leave this printf here?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:178
&gt; +        // fps graph

this function is getting long.  how about some helper methods?  drawFPS(), drawGraph()?

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.h:37
&gt; +#define CC_HUD_PRESENT_HISTORY_SIZE 64

webkit style is to avoid macros for declaring constants.  instead, please
use a c++ constant.  you could make it scoped to the CCHeadsUpDisplay class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>384980</commentid>
    <comment_count>5</comment_count>
      <attachid>89396</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-13 10:21:16 -0700</bug_when>
    <thetext>Created attachment 89396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385813</commentid>
    <comment_count>6</comment_count>
      <attachid>89396</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-04-14 09:35:11 -0700</bug_when>
    <thetext>Comment on attachment 89396
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:156
&gt; +            m_presentTimeHistoryInSec[(m_currentFrameNumber + kPresentHistorySize - 2) % kPresentHistorySize];

this might read better if this second line were indented so that you get:

  double secForLastFrame = m_presentTimeHistoryInSec[...
                           m_presentTimeHistoryInSec[...

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:165
&gt; +

nit: kill the extra new line here

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:188
&gt; +    int graphLeft = (int)(textWidth + 3);

nit, sorry... you should use C++ style static_cast instead of C-style casts.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:191
&gt; +    double h = (double)height - 2;

ditto for the cast</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>385838</commentid>
    <comment_count>7</comment_count>
      <attachid>89601</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-04-14 10:08:01 -0700</bug_when>
    <thetext>Created attachment 89601
Style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386372</commentid>
    <comment_count>8</comment_count>
      <attachid>89601</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-14 22:13:29 -0700</bug_when>
    <thetext>Comment on attachment 89601
Style fixes

Clearing flags on attachment: 89601

Committed r83944: &lt;http://trac.webkit.org/changeset/83944&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386373</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-14 22:13:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88919</attachid>
            <date>2011-04-08 23:00:56 -0700</date>
            <delta_ts>2011-04-08 23:06:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58186-20110408230054.patch</filename>
            <type>text/plain</type>
            <size>8618</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTliYzY0NzU4YTUxZGNh
MDU2NTk1NDAwNjRmOTBhZjFiYzhiMTJhLi45NzE2MTIzMjllYWViZmZkOTdjNDY5NjZiNDI5NmZj
ZDRiMzA4NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMDggIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGxvd3Bhc3MgZmlsdGVyIGFuZCBncmFw
aCB0byBmcHMgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01ODE4NgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNw
bGF5OjpDQ0hlYWRzVXBEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3Bs
YXk6OmRyYXdIdWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5
OjpvblByZXNlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZDo6cnVuTG9vcCk6CisK
IDIwMTEtMDQtMDggIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3Bs
YXkuY3BwCmluZGV4IDQwNDk0NGI2NWE4OGFmYzRkYzQwYzYwNzQ0YmRjMjg2ZDhmNWFjYzcuLjRm
NmI4MzgzODM1ZmVkZmQ3NGU5MThmZTgyYmIzOGI0MTdkOWQyMGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuY3BwCkBAIC00NCwxMyArNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogQ0NIZWFkc1VwRGlzcGxheTo6Q0NIZWFkc1VwRGlz
cGxheShMYXllclJlbmRlcmVyQ2hyb21pdW0qIG93bmVyKQotICAgIDogbV9jdXJyZW50RnJhbWVO
dW1iZXIoMCkKKyAgICA6IG1fY3VycmVudEZyYW1lTnVtYmVyKDEpCisgICAgLCBtX2ZpbHRlcmVk
RnJhbWVUaW1lKDApCiAgICAgLCBtX2xheWVyUmVuZGVyZXIob3duZXIpCiAgICAgLCBtX3Nob3dG
UFNDb3VudGVyKGZhbHNlKQogICAgICwgbV9zaG93UGxhdGZvcm1MYXllclRyZWUoZmFsc2UpCiB7
CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1swXSA9IGN1cnJlbnRUaW1lKCk7CiAgICAg
bV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sxXSA9IG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNb
MF07CisgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkU7
IGkrKykKKyAgICAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1tpXSA9IDA7CiB9CiAKIEND
SGVhZHNVcERpc3BsYXk6On5DQ0hlYWRzVXBEaXNwbGF5KCkKQEAgLTExMyw1NyArMTE2LDEwNCBA
QCB2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdIdWRDb250ZW50cyhHcmFwaGljc0NvbnRleHQq
IGN0eCwgY29uc3QgSW50U2l6ZSYgaHVkUwogewogICAgIEZvbnREZXNjcmlwdGlvbiBtZWRpdW1G
b250RGVzYzsKICAgICBtZWRpdW1Gb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlw
dGlvbjo6TW9ub3NwYWNlRmFtaWx5KTsKLSAgICBtZWRpdW1Gb250RGVzYy5zZXRDb21wdXRlZFNp
emUoMTIpOworICAgIG1lZGl1bUZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgyMCk7CiAgICAgRm9u
dCBtZWRpdW1Gb250KG1lZGl1bUZvbnREZXNjLCAwLCAwKTsKICAgICBtZWRpdW1Gb250LnVwZGF0
ZSgwKTsKKyAgICBpbnQgbWVkaXVtRm9udEhlaWdodCA9IG1lZGl1bUZvbnQuZm9udE1ldHJpY3Mo
KS5mbG9hdEhlaWdodCgpOwogCiAgICAgRm9udERlc2NyaXB0aW9uIHNtYWxsRm9udERlc2M7CiAg
ICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3Nw
YWNlRmFtaWx5KTsKICAgICBzbWFsbEZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgxMCk7CisKICAg
ICBGb250IHNtYWxsRm9udChzbWFsbEZvbnREZXNjLCAwLCAwKTsKICAgICBzbWFsbEZvbnQudXBk
YXRlKDApOworICAgIGludCBzbWFsbEZvbnRIZWlnaHQgPSBzbWFsbEZvbnQuZm9udE1ldHJpY3Mo
KS5mbG9hdEhlaWdodCgpOworCiAKLSAgICAvLyBXZSBoYXZlbid0IGZpbmlzaGVkIHJlbmRlcmlu
ZyB5ZXQsIHNvIHdlIGRvbid0IG5vdyB0aGUgImN1cnJlbnQiIHByZXNlbnQgdGltZS4KLSAgICAv
LyBTbywgY29uc2lkZXIgdGhlICpsYXN0IHR3byogcHJlc2VudCB0aW1lcyBhbmQgdXNlIHRob3Nl
IGFzIG91ciBwcmVzZW50IHRpbWUuCi0gICAgZG91YmxlIHNlY0Zvckxhc3RGcmFtZSA9IG1fcHJl
c2VudFRpbWVIaXN0b3J5SW5TZWNbKG1fY3VycmVudEZyYW1lTnVtYmVyIC0gMSkgJSAyXSAtIG1f
cHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbbV9jdXJyZW50RnJhbWVOdW1iZXIgJSAyXTsKKyAgICAv
LyBOb3RlIHRoYXQgc2luY2Ugd2UgaGF2ZW4ndCBmaW5pc2hlZCB0aGUgY3VycmVudCBmcmFtZSwg
dGhpcyBhY3R1YWxseSByZXBvcnRzCisgICAgLy8gdGhlIGxhc3QgZnJhbWUncyB0aW1lLgorICAg
IGRvdWJsZSBzZWNGb3JMYXN0RnJhbWUgPSBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjWyhtX2N1
cnJlbnRGcmFtZU51bWJlciArIENDX0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRSAtIDEpICUgQ0Nf
SFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXSAtCisgICAgICAgICAgICBtX3ByZXNlbnRUaW1lSGlz
dG9yeUluU2VjWyhtX2N1cnJlbnRGcmFtZU51bWJlciArIENDX0hVRF9QUkVTRU5UX0hJU1RPUllf
U0laRSAtIDIpICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXTsKIAotICAgIGludCB5ID0g
MTQ7CisgICAgY29uc3QgZmxvYXQgZGVjYXkgPSAwLjAxOworICAgIGlmICghbV9maWx0ZXJlZEZy
YW1lVGltZSkgeworICAgICAgICBpZiAobV9jdXJyZW50RnJhbWVOdW1iZXIgPT0gMikKKyAgICAg
ICAgICAgIG1fZmlsdGVyZWRGcmFtZVRpbWUgPSBzZWNGb3JMYXN0RnJhbWU7CisgICAgfSBlbHNl
CisgICAgICAgIG1fZmlsdGVyZWRGcmFtZVRpbWUgPSAoKDEuMCAtIGRlY2F5KSAqIG1fZmlsdGVy
ZWRGcmFtZVRpbWUpICsgKGRlY2F5ICogc2VjRm9yTGFzdEZyYW1lKTsKIAogICAgIGlmIChtX3No
b3dQbGF0Zm9ybUxheWVyVHJlZSkgewogICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigw
LCAwLCAwLCAxOTIpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY3R4LT5maWxsUmVj
dChGbG9hdFJlY3QoMCwgMCwgaHVkU2l6ZS53aWR0aCgpLCBodWRTaXplLmhlaWdodCgpKSk7CiAg
ICAgfQogCi0gICAgLy8gRHJhdyBmcHMuCi0gICAgU3RyaW5nIHRvcExpbmUgPSAiIjsKLSAgICBp
ZiAoc2VjRm9yTGFzdEZyYW1lID4gMCAmJiBtX3Nob3dGUFNDb3VudGVyKSB7Ci0gICAgICAgIGRv
dWJsZSBmcHMgPSAxLjAgLyBzZWNGb3JMYXN0RnJhbWU7Ci0gICAgICAgIHRvcExpbmUgKz0gU3Ry
aW5nOjpmb3JtYXQoIkZQUzogJTMuMWYiLCBmcHMpOwotICAgIH0KLSAgICBpZiAodG9wTGluZS5s
ZW5ndGgoKSkgeworICAgIGludCBmcHNNZXRlckhlaWdodCA9IG1lZGl1bUZvbnRIZWlnaHQgKyAy
OworICAgIGludCBmcHNNZXRlclRvcCA9IDI7CisgICAgaW50IHBsYXRmb3JtTGF5ZXJUcmVlVG9w
OworICAgIGlmIChtX3Nob3dGUFNDb3VudGVyKQorICAgICAgICBwbGF0Zm9ybUxheWVyVHJlZVRv
cCA9IGZwc01ldGVyVG9wICsgZnBzTWV0ZXJIZWlnaHQgKyAyOworICAgIGVsc2UKKyAgICAgICAg
cGxhdGZvcm1MYXllclRyZWVUb3AgPSAwOworCisgICAgLy8gRHJhdyBmcHMgbWV0ZXIKKyAgICBp
ZiAobV9zaG93RlBTQ291bnRlcikgeworICAgICAgICBTdHJpbmcgdGV4dChTdHJpbmc6OmZvcm1h
dCgiRlBTOiAlNS4xZiIsIDEuMCAvIG1fZmlsdGVyZWRGcmFtZVRpbWUpKTsKKworICAgICAgICBU
ZXh0UnVuIHJ1bih0ZXh0KTsKKyAgICAgICAgZmxvYXQgdGV4dFdpZHRoID0gbWVkaXVtRm9udC53
aWR0aChydW4pICsgMi4wZjsKKyAgICAgICAgZmxvYXQgZnBzR3JhcGhXaWR0aCA9IENDX0hVRF9Q
UkVTRU5UX0hJU1RPUllfU0laRTsKKworICAgICAgICAvLyBiYWNrZ3JvdW5kCiAgICAgICAgIGN0
eC0+c2V0RmlsbENvbG9yKENvbG9yKDAsIDAsIDAsIDI1NSksIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OwotICAgICAgICBUZXh0UnVuIHJ1bih0b3BMaW5lKTsKLSAgICAgICAgY3R4LT5maWxsUmVjdChG
bG9hdFJlY3QoMiwgMiwgbWVkaXVtRm9udC53aWR0aChydW4pICsgMi4wZiwgMTUpKTsKLSAgICAg
ICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJH
Qik7Ci0gICAgICAgIGN0eC0+ZHJhd1RleHQobWVkaXVtRm9udCwgcnVuLCBJbnRQb2ludCgzLCB5
KSk7Ci0gICAgICAgIHkgPSAyNjsKKyAgICAgICAgY3R4LT5maWxsUmVjdChGbG9hdFJlY3QoMiwg
ZnBzTWV0ZXJUb3AsIHRleHRXaWR0aCArIGZwc0dyYXBoV2lkdGgsIGZwc01ldGVySGVpZ2h0KSk7
CisKKyAgICAgICAgLy8gRlBTIHRleHQKKyAgICAgICAgaWYgKG1fZmlsdGVyZWRGcmFtZVRpbWUp
IHsKKyAgICAgICAgICAgIGN0eC0+c2V0RmlsbENvbG9yKENvbG9yKDI1NSwgMCwgMCksIENvbG9y
U3BhY2VEZXZpY2VSR0IpOworICAgICAgICAgICAgY3R4LT5kcmF3VGV4dChtZWRpdW1Gb250LCBy
dW4sIEludFBvaW50KDMsIGZwc01ldGVyVG9wICsgZnBzTWV0ZXJIZWlnaHQgLSA2KSk7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBmcHMgZ3JhcGgKKyAgICAgICAgY29uc3QgZG91YmxlIGxvRlBT
ID0gMC4wOworICAgICAgICBjb25zdCBkb3VibGUgaGlGUFMgPSAxMjAuMDsKKyAgICAgICAgY3R4
LT5zZXRTdHJva2VTdHlsZShTb2xpZFN0cm9rZSk7CisgICAgICAgIGN0eC0+c2V0U3Ryb2tlQ29s
b3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGludCBn
cmFwaExlZnQgPSAoaW50KSh0ZXh0V2lkdGggKyAzKTsKKyAgICAgICAgSW50UG9pbnQgcHJldigt
MSwgMCk7CisgICAgICAgIGludCB4ID0gMDsKKyAgICAgICAgZG91YmxlIGggPSAoZG91YmxlKWZw
c01ldGVySGVpZ2h0IC0gMjsKKyAgICAgICAgZm9yIChpbnQgaSA9IG1fY3VycmVudEZyYW1lTnVt
YmVyICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOyBpICE9IChtX2N1cnJlbnRGcmFtZU51
bWJlciAtIDEpICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOyBpID0gKGkgKyAxKSAlIEND
X0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRSkgeworICAgICAgICAgICAgaW50IGogPSAoaSArIDEp
ICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOworICAgICAgICAgICAgZG91YmxlIGZwcyA9
IDEuMCAvIChtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW2pdIC0gbV9wcmVzZW50VGltZUhpc3Rv
cnlJblNlY1tpXSk7CisgICAgICAgICAgICBkb3VibGUgcCA9IDEgLSAoKGZwcyAtIGxvRlBTKSAv
IChoaUZQUyAtIGxvRlBTKSk7CisgICAgICAgICAgICBpZiAocCA8IDApCisgICAgICAgICAgICAg
ICAgcCA9IDA7CisgICAgICAgICAgICBpZiAocCA+IDEpCisgICAgICAgICAgICAgICAgcCA9IDE7
CisgICAgICAgICAgICBJbnRQb2ludCBjdXIoZ3JhcGhMZWZ0ICsgeCwgMSArIGZwc01ldGVyVG9w
ICsgcCpoKTsKKyAgICAgICAgICAgIGlmIChwcmV2LngoKSAhPSAtMSkKKyAgICAgICAgICAgICAg
ICBjdHgtPmRyYXdMaW5lKHByZXYsIGN1cik7CisgICAgICAgICAgICBwcmV2ID0gY3VyOworICAg
ICAgICAgICAgeCArPSAxOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gRHJhdyBsYXllciB0
cmVlLCBpZiBlbmFibGVkLgogICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZSkgeworICAg
ICAgICBpbnQgeSA9IHBsYXRmb3JtTGF5ZXJUcmVlVG9wICsgc21hbGxGb250SGVpZ2h0IC0gNDsK
ICAgICAgICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURl
dmljZVJHQik7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGxpbmVzOwogICAgICAgICBtX2xheWVy
UmVuZGVyZXItPmxheWVyVHJlZUFzVGV4dCgpLnNwbGl0KCdcbicsIGxpbmVzKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaW5lcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
Y3R4LT5kcmF3VGV4dChzbWFsbEZvbnQsIFRleHRSdW4obGluZXNbaV0pLCBJbnRQb2ludCgyLCB5
KSk7Ci0gICAgICAgICAgICB5ICs9IDEyOworICAgICAgICAgICAgeSArPSBzbWFsbEZvbnRIZWln
aHQgKyAxOwogICAgICAgICB9CiAgICAgfQogfQogCiB2b2lkIENDSGVhZHNVcERpc3BsYXk6Om9u
UHJlc2VudCgpCiB7Ci0gICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1ttX2N1cnJlbnRGcmFt
ZU51bWJlciAlIDJdID0gY3VycmVudFRpbWUoKTsKKyAgICBtX3ByZXNlbnRUaW1lSGlzdG9yeUlu
U2VjW21fY3VycmVudEZyYW1lTnVtYmVyICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXSA9
IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9jdXJyZW50RnJhbWVOdW1iZXIgKz0gMTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NI
ZWFkc1VwRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5oCmluZGV4IGQ1NmY4YWI4ODY3MTk0NWVhZGNlNWNiMzQ5
NDViZTIxMWFiMzk2OTQuLmI2OTYwMTVjZjY1NTk3ZGEyNjFlZTg0ZmVkNDMzNDEyNjFiZGI0Nzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDSGVhZHNVcERpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmgKQEAgLTM0LDYgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgR2VvbWV0cnlCaW5kaW5nOwogY2xhc3MgR3JhcGhpY3NDb250
ZXh0M0Q7CiAKKyNkZWZpbmUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFIDY0CiAvLyBDbGFz
cyB0aGF0IGhhbmRsZXMgZHJhd2luZyBvZiBjb21wb3NpdGVkIHJlbmRlciBsYXllcnMgdXNpbmcg
R0wuCiBjbGFzcyBDQ0hlYWRzVXBEaXNwbGF5IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShD
Q0hlYWRzVXBEaXNwbGF5KTsKQEAgLTYyLDExICs2MywxMyBAQCBwcml2YXRlOgogCiAgICAgaW50
IG1fY3VycmVudEZyYW1lTnVtYmVyOwogCisgICAgZG91YmxlIG1fZmlsdGVyZWRGcmFtZVRpbWU7
CisKICAgICBPd25QdHI8TGF5ZXJUZXh0dXJlPiBtX2h1ZFRleHR1cmU7CiAKICAgICBMYXllclJl
bmRlcmVyQ2hyb21pdW0qIG1fbGF5ZXJSZW5kZXJlcjsKIAotICAgIGRvdWJsZSBtX3ByZXNlbnRU
aW1lSGlzdG9yeUluU2VjWzJdOworICAgIGRvdWJsZSBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2Vj
W0NDX0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRV07CiAKICAgICBib29sIG1fc2hvd0ZQU0NvdW50
ZXI7CiAgICAgYm9vbCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkLmNwcApp
bmRleCAzZjY0ZGZjY2IxNzM2MjdkNGNiYWM4MTI3ODUzOGQxMjVkYTE2MDMwLi45NTY2NTg0NWM1
OGM0OGNhMDYyMjAwMjQyNDhiNzQ3YWJhYjc2MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWQuY3BwCkBAIC03
Myw4ICs3Myw2IEBAIHZvaWQqIENDVGhyZWFkOjpydW5Mb29wKCkKICAgICB3aGlsZSAoT3duUHRy
PFRhc2s+IHRhc2sgPSBtX3F1ZXVlLndhaXRGb3JNZXNzYWdlKCkpCiAgICAgICAgIHRhc2stPnBl
cmZvcm1UYXNrKCk7CiAKLSAgICBkZXRhY2hUaHJlYWQobV90aHJlYWRJRCk7Ci0KICAgICByZXR1
cm4gMDsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88920</attachid>
            <date>2011-04-08 23:06:19 -0700</date>
            <delta_ts>2011-04-11 15:28:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58186-20110408230618.patch</filename>
            <type>text/plain</type>
            <size>8072</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODMyODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZTliYzY0NzU4YTUxZGNh
MDU2NTk1NDAwNjRmOTBhZjFiYzhiMTJhLi45NzE2MTIzMjllYWViZmZkOTdjNDY5NjZiNDI5NmZj
ZDRiMzA4NTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMDggIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGxvd3Bhc3MgZmlsdGVyIGFuZCBncmFw
aCB0byBmcHMgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01ODE4NgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNw
bGF5OjpDQ0hlYWRzVXBEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3Bs
YXk6OmRyYXdIdWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5
OjpvblByZXNlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZDo6cnVuTG9vcCk6CisK
IDIwMTEtMDQtMDggIEFuZHJleSBBZGFpa2luICA8YWFuZHJleUBnb29nbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3Bs
YXkuY3BwCmluZGV4IDQwNDk0NGI2NWE4OGFmYzRkYzQwYzYwNzQ0YmRjMjg2ZDhmNWFjYzcuLmIw
Y2Y2OWVmZDRjNjg5Yjg2MzgyN2JhZTBjZDUyMjk4ZDkyYmJiNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuY3BwCkBAIC00NCwxMyArNDQsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogQ0NIZWFkc1VwRGlzcGxheTo6Q0NIZWFkc1VwRGlz
cGxheShMYXllclJlbmRlcmVyQ2hyb21pdW0qIG93bmVyKQotICAgIDogbV9jdXJyZW50RnJhbWVO
dW1iZXIoMCkKKyAgICA6IG1fY3VycmVudEZyYW1lTnVtYmVyKDEpCisgICAgLCBtX2ZpbHRlcmVk
RnJhbWVUaW1lKDApCiAgICAgLCBtX2xheWVyUmVuZGVyZXIob3duZXIpCiAgICAgLCBtX3Nob3dG
UFNDb3VudGVyKGZhbHNlKQogICAgICwgbV9zaG93UGxhdGZvcm1MYXllclRyZWUoZmFsc2UpCiB7
CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1swXSA9IGN1cnJlbnRUaW1lKCk7CiAgICAg
bV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sxXSA9IG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNb
MF07CisgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkU7
IGkrKykKKyAgICAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1tpXSA9IDA7CiB9CiAKIEND
SGVhZHNVcERpc3BsYXk6On5DQ0hlYWRzVXBEaXNwbGF5KCkKQEAgLTExMyw1NyArMTE2LDEwNCBA
QCB2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdIdWRDb250ZW50cyhHcmFwaGljc0NvbnRleHQq
IGN0eCwgY29uc3QgSW50U2l6ZSYgaHVkUwogewogICAgIEZvbnREZXNjcmlwdGlvbiBtZWRpdW1G
b250RGVzYzsKICAgICBtZWRpdW1Gb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlw
dGlvbjo6TW9ub3NwYWNlRmFtaWx5KTsKLSAgICBtZWRpdW1Gb250RGVzYy5zZXRDb21wdXRlZFNp
emUoMTIpOworICAgIG1lZGl1bUZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgyMCk7CisKICAgICBG
b250IG1lZGl1bUZvbnQobWVkaXVtRm9udERlc2MsIDAsIDApOwogICAgIG1lZGl1bUZvbnQudXBk
YXRlKDApOworICAgIGludCBtZWRpdW1Gb250SGVpZ2h0ID0gbWVkaXVtRm9udC5mb250TWV0cmlj
cygpLmZsb2F0SGVpZ2h0KCk7CiAKICAgICBGb250RGVzY3JpcHRpb24gc21hbGxGb250RGVzYzsK
ICAgICBzbWFsbEZvbnREZXNjLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpNb25v
c3BhY2VGYW1pbHkpOwogICAgIHNtYWxsRm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKDEwKTsKKwog
ICAgIEZvbnQgc21hbGxGb250KHNtYWxsRm9udERlc2MsIDAsIDApOwogICAgIHNtYWxsRm9udC51
cGRhdGUoMCk7CisgICAgaW50IHNtYWxsRm9udEhlaWdodCA9IHNtYWxsRm9udC5mb250TWV0cmlj
cygpLmZsb2F0SGVpZ2h0KCk7CiAKLSAgICAvLyBXZSBoYXZlbid0IGZpbmlzaGVkIHJlbmRlcmlu
ZyB5ZXQsIHNvIHdlIGRvbid0IG5vdyB0aGUgImN1cnJlbnQiIHByZXNlbnQgdGltZS4KLSAgICAv
LyBTbywgY29uc2lkZXIgdGhlICpsYXN0IHR3byogcHJlc2VudCB0aW1lcyBhbmQgdXNlIHRob3Nl
IGFzIG91ciBwcmVzZW50IHRpbWUuCi0gICAgZG91YmxlIHNlY0Zvckxhc3RGcmFtZSA9IG1fcHJl
c2VudFRpbWVIaXN0b3J5SW5TZWNbKG1fY3VycmVudEZyYW1lTnVtYmVyIC0gMSkgJSAyXSAtIG1f
cHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbbV9jdXJyZW50RnJhbWVOdW1iZXIgJSAyXTsKKyAgICAv
LyBOb3RlIHRoYXQgc2luY2Ugd2UgaGF2ZW4ndCBmaW5pc2hlZCB0aGUgY3VycmVudCBmcmFtZSwg
dGhpcyBhY3R1YWxseSByZXBvcnRzCisgICAgLy8gdGhlIGxhc3QgZnJhbWUncyB0aW1lLgorICAg
IGRvdWJsZSBzZWNGb3JMYXN0RnJhbWUgPSBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjWyhtX2N1
cnJlbnRGcmFtZU51bWJlciArIENDX0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRSAtIDEpICUgQ0Nf
SFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXSAtCisgICAgICAgICAgICBtX3ByZXNlbnRUaW1lSGlz
dG9yeUluU2VjWyhtX2N1cnJlbnRGcmFtZU51bWJlciArIENDX0hVRF9QUkVTRU5UX0hJU1RPUllf
U0laRSAtIDIpICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXTsKIAotICAgIGludCB5ID0g
MTQ7CisgICAgY29uc3QgZmxvYXQgZGVjYXkgPSAwLjAxOworICAgIGlmICghbV9maWx0ZXJlZEZy
YW1lVGltZSkgeworICAgICAgICBpZiAobV9jdXJyZW50RnJhbWVOdW1iZXIgPT0gMSkKKyAgICAg
ICAgICAgIG1fZmlsdGVyZWRGcmFtZVRpbWUgPSBzZWNGb3JMYXN0RnJhbWU7CisgICAgfSBlbHNl
CisgICAgICAgIG1fZmlsdGVyZWRGcmFtZVRpbWUgPSAoKDEuMCAtIGRlY2F5KSAqIG1fZmlsdGVy
ZWRGcmFtZVRpbWUpICsgKGRlY2F5ICogc2VjRm9yTGFzdEZyYW1lKTsKIAogICAgIGlmIChtX3No
b3dQbGF0Zm9ybUxheWVyVHJlZSkgewogICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigw
LCAwLCAwLCAxOTIpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY3R4LT5maWxsUmVj
dChGbG9hdFJlY3QoMCwgMCwgaHVkU2l6ZS53aWR0aCgpLCBodWRTaXplLmhlaWdodCgpKSk7CiAg
ICAgfQogCi0gICAgLy8gRHJhdyBmcHMuCi0gICAgU3RyaW5nIHRvcExpbmUgPSAiIjsKLSAgICBp
ZiAoc2VjRm9yTGFzdEZyYW1lID4gMCAmJiBtX3Nob3dGUFNDb3VudGVyKSB7Ci0gICAgICAgIGRv
dWJsZSBmcHMgPSAxLjAgLyBzZWNGb3JMYXN0RnJhbWU7Ci0gICAgICAgIHRvcExpbmUgKz0gU3Ry
aW5nOjpmb3JtYXQoIkZQUzogJTMuMWYiLCBmcHMpOwotICAgIH0KLSAgICBpZiAodG9wTGluZS5s
ZW5ndGgoKSkgeworICAgIGludCBmcHNNZXRlckhlaWdodCA9IG1lZGl1bUZvbnRIZWlnaHQgKyAy
OworICAgIGludCBmcHNNZXRlclRvcCA9IDI7CisgICAgaW50IHBsYXRmb3JtTGF5ZXJUcmVlVG9w
OworICAgIGlmIChtX3Nob3dGUFNDb3VudGVyKQorICAgICAgICBwbGF0Zm9ybUxheWVyVHJlZVRv
cCA9IGZwc01ldGVyVG9wICsgZnBzTWV0ZXJIZWlnaHQgKyAyOworICAgIGVsc2UKKyAgICAgICAg
cGxhdGZvcm1MYXllclRyZWVUb3AgPSAwOworCisgICAgLy8gRHJhdyBmcHMgbWV0ZXIKKyAgICBp
ZiAobV9zaG93RlBTQ291bnRlcikgeworICAgICAgICBTdHJpbmcgdGV4dChTdHJpbmc6OmZvcm1h
dCgiRlBTOiAlNS4xZiIsIDEuMCAvIG1fZmlsdGVyZWRGcmFtZVRpbWUpKTsKKworICAgICAgICBU
ZXh0UnVuIHJ1bih0ZXh0KTsKKyAgICAgICAgZmxvYXQgdGV4dFdpZHRoID0gbWVkaXVtRm9udC53
aWR0aChydW4pICsgMi4wZjsKKyAgICAgICAgZmxvYXQgZnBzR3JhcGhXaWR0aCA9IENDX0hVRF9Q
UkVTRU5UX0hJU1RPUllfU0laRTsKKworICAgICAgICAvLyBiYWNrZ3JvdW5kCiAgICAgICAgIGN0
eC0+c2V0RmlsbENvbG9yKENvbG9yKDAsIDAsIDAsIDI1NSksIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OwotICAgICAgICBUZXh0UnVuIHJ1bih0b3BMaW5lKTsKLSAgICAgICAgY3R4LT5maWxsUmVjdChG
bG9hdFJlY3QoMiwgMiwgbWVkaXVtRm9udC53aWR0aChydW4pICsgMi4wZiwgMTUpKTsKLSAgICAg
ICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJH
Qik7Ci0gICAgICAgIGN0eC0+ZHJhd1RleHQobWVkaXVtRm9udCwgcnVuLCBJbnRQb2ludCgzLCB5
KSk7Ci0gICAgICAgIHkgPSAyNjsKKyAgICAgICAgY3R4LT5maWxsUmVjdChGbG9hdFJlY3QoMiwg
ZnBzTWV0ZXJUb3AsIHRleHRXaWR0aCArIGZwc0dyYXBoV2lkdGgsIGZwc01ldGVySGVpZ2h0KSk7
CisKKyAgICAgICAgLy8gRlBTIHRleHQKKyAgICAgICAgaWYgKG1fZmlsdGVyZWRGcmFtZVRpbWUp
IHsKKyAgICAgICAgICAgIGN0eC0+c2V0RmlsbENvbG9yKENvbG9yKDI1NSwgMCwgMCksIENvbG9y
U3BhY2VEZXZpY2VSR0IpOworICAgICAgICAgICAgY3R4LT5kcmF3VGV4dChtZWRpdW1Gb250LCBy
dW4sIEludFBvaW50KDMsIGZwc01ldGVyVG9wICsgZnBzTWV0ZXJIZWlnaHQgLSA2KSk7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBmcHMgZ3JhcGgKKyAgICAgICAgY29uc3QgZG91YmxlIGxvRlBT
ID0gMC4wOworICAgICAgICBjb25zdCBkb3VibGUgaGlGUFMgPSAxMjAuMDsKKyAgICAgICAgY3R4
LT5zZXRTdHJva2VTdHlsZShTb2xpZFN0cm9rZSk7CisgICAgICAgIGN0eC0+c2V0U3Ryb2tlQ29s
b3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgICAgIGludCBn
cmFwaExlZnQgPSAoaW50KSh0ZXh0V2lkdGggKyAzKTsKKyAgICAgICAgSW50UG9pbnQgcHJldigt
MSwgMCk7CisgICAgICAgIGludCB4ID0gMDsKKyAgICAgICAgZG91YmxlIGggPSAoZG91YmxlKWZw
c01ldGVySGVpZ2h0IC0gMjsKKyAgICAgICAgZm9yIChpbnQgaSA9IG1fY3VycmVudEZyYW1lTnVt
YmVyICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOyBpICE9IChtX2N1cnJlbnRGcmFtZU51
bWJlciAtIDEpICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOyBpID0gKGkgKyAxKSAlIEND
X0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRSkgeworICAgICAgICAgICAgaW50IGogPSAoaSArIDEp
ICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOworICAgICAgICAgICAgZG91YmxlIGZwcyA9
IDEuMCAvIChtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW2pdIC0gbV9wcmVzZW50VGltZUhpc3Rv
cnlJblNlY1tpXSk7CisgICAgICAgICAgICBkb3VibGUgcCA9IDEgLSAoKGZwcyAtIGxvRlBTKSAv
IChoaUZQUyAtIGxvRlBTKSk7CisgICAgICAgICAgICBpZiAocCA8IDApCisgICAgICAgICAgICAg
ICAgcCA9IDA7CisgICAgICAgICAgICBpZiAocCA+IDEpCisgICAgICAgICAgICAgICAgcCA9IDE7
CisgICAgICAgICAgICBJbnRQb2ludCBjdXIoZ3JhcGhMZWZ0ICsgeCwgMSArIGZwc01ldGVyVG9w
ICsgcCpoKTsKKyAgICAgICAgICAgIGlmIChwcmV2LngoKSAhPSAtMSkKKyAgICAgICAgICAgICAg
ICBjdHgtPmRyYXdMaW5lKHByZXYsIGN1cik7CisgICAgICAgICAgICBwcmV2ID0gY3VyOworICAg
ICAgICAgICAgeCArPSAxOworICAgICAgICB9CiAgICAgfQogCiAgICAgLy8gRHJhdyBsYXllciB0
cmVlLCBpZiBlbmFibGVkLgogICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZSkgeworICAg
ICAgICBpbnQgeSA9IHBsYXRmb3JtTGF5ZXJUcmVlVG9wICsgc21hbGxGb250SGVpZ2h0IC0gNDsK
ICAgICAgICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURl
dmljZVJHQik7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGxpbmVzOwogICAgICAgICBtX2xheWVy
UmVuZGVyZXItPmxheWVyVHJlZUFzVGV4dCgpLnNwbGl0KCdcbicsIGxpbmVzKTsKICAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaW5lcy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAg
Y3R4LT5kcmF3VGV4dChzbWFsbEZvbnQsIFRleHRSdW4obGluZXNbaV0pLCBJbnRQb2ludCgyLCB5
KSk7Ci0gICAgICAgICAgICB5ICs9IDEyOworICAgICAgICAgICAgeSArPSBzbWFsbEZvbnRIZWln
aHQ7CiAgICAgICAgIH0KICAgICB9CiB9CiAKIHZvaWQgQ0NIZWFkc1VwRGlzcGxheTo6b25QcmVz
ZW50KCkKIHsKLSAgICBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW21fY3VycmVudEZyYW1lTnVt
YmVyICUgMl0gPSBjdXJyZW50VGltZSgpOworICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNb
bV9jdXJyZW50RnJhbWVOdW1iZXIgJSBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkVdID0gY3Vy
cmVudFRpbWUoKTsKICAgICBtX2N1cnJlbnRGcmFtZU51bWJlciArPSAxOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRz
VXBEaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0hlYWRzVXBEaXNwbGF5LmgKaW5kZXggZDU2ZjhhYjg4NjcxOTQ1ZWFkY2U1Y2IzNDk0NWJl
MjExYWIzOTY5NC4uYjY5NjAxNWNmNjU1OTdkYTI2MWVlODRmZWQ0MzM0MTI2MWJkYjQ3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NI
ZWFkc1VwRGlzcGxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBHZW9tZXRyeUJpbmRpbmc7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQz
RDsKIAorI2RlZmluZSBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkUgNjQKIC8vIENsYXNzIHRo
YXQgaGFuZGxlcyBkcmF3aW5nIG9mIGNvbXBvc2l0ZWQgcmVuZGVyIGxheWVycyB1c2luZyBHTC4K
IGNsYXNzIENDSGVhZHNVcERpc3BsYXkgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENDSGVh
ZHNVcERpc3BsYXkpOwpAQCAtNjIsMTEgKzYzLDEzIEBAIHByaXZhdGU6CiAKICAgICBpbnQgbV9j
dXJyZW50RnJhbWVOdW1iZXI7CiAKKyAgICBkb3VibGUgbV9maWx0ZXJlZEZyYW1lVGltZTsKKwog
ICAgIE93blB0cjxMYXllclRleHR1cmU+IG1faHVkVGV4dHVyZTsKIAogICAgIExheWVyUmVuZGVy
ZXJDaHJvbWl1bSogbV9sYXllclJlbmRlcmVyOwogCi0gICAgZG91YmxlIG1fcHJlc2VudFRpbWVI
aXN0b3J5SW5TZWNbMl07CisgICAgZG91YmxlIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbQ0Nf
SFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFXTsKIAogICAgIGJvb2wgbV9zaG93RlBTQ291bnRlcjsK
ICAgICBib29sIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89101</attachid>
            <date>2011-04-11 15:28:16 -0700</date>
            <delta_ts>2011-04-13 10:21:14 -0700</delta_ts>
            <desc>Reduce filtering amount a bit.</desc>
            <filename>bug-58186-20110411152815.patch</filename>
            <type>text/plain</type>
            <size>8155</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM0NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwOTIzMWE4YjE4ODlmMTQ1
NjM0NTExODgyYzhmYWQ4MzgwNjRhNzg1Li4xNDFmMGFmMGVkNDc3MzE4NTdkMjMzNTk1NTBhZTE2
NGFmZTMwNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMTEgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGxvd3Bhc3MgZmlsdGVyIGFuZCBncmFw
aCB0byBmcHMgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01ODE4NgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNw
bGF5OjpDQ0hlYWRzVXBEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3Bs
YXk6OmRyYXdIdWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5
OjpvblByZXNlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
SGVhZHNVcERpc3BsYXkuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZDo6cnVuTG9vcCk6CisK
IDIwMTEtMDQtMTEgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRz
VXBEaXNwbGF5LmNwcAppbmRleCA0MDQ5NDRiNjVhODhhZmM0ZGM0MGM2MDc0NGJkYzI4NmQ4ZjVh
Y2M3Li4xNzc2OTczZWY3ZmQ4ZWY1MWYyMzMyMjAwYTg1MTFkZTE3Mjc4ODI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBE
aXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmNwcApAQCAtNDQsMTMgKzQ0LDE2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIENDSGVhZHNVcERpc3BsYXk6OkNDSGVh
ZHNVcERpc3BsYXkoTGF5ZXJSZW5kZXJlckNocm9taXVtKiBvd25lcikKLSAgICA6IG1fY3VycmVu
dEZyYW1lTnVtYmVyKDApCisgICAgOiBtX2N1cnJlbnRGcmFtZU51bWJlcigxKQorICAgICwgbV9m
aWx0ZXJlZEZyYW1lVGltZSgwKQogICAgICwgbV9sYXllclJlbmRlcmVyKG93bmVyKQogICAgICwg
bV9zaG93RlBTQ291bnRlcihmYWxzZSkKICAgICAsIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGZh
bHNlKQogewogICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbMF0gPSBjdXJyZW50VGltZSgp
OwogICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbMV0gPSBtX3ByZXNlbnRUaW1lSGlzdG9y
eUluU2VjWzBdOworICAgIGZvciAoaW50IGkgPSAyOyBpIDwgQ0NfSFVEX1BSRVNFTlRfSElTVE9S
WV9TSVpFOyBpKyspCisgICAgICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbaV0gPSAwOwog
fQogCiBDQ0hlYWRzVXBEaXNwbGF5Ojp+Q0NIZWFkc1VwRGlzcGxheSgpCkBAIC0xMTMsNTcgKzEx
NiwxMDYgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5OjpkcmF3SHVkQ29udGVudHMoR3JhcGhpY3ND
b250ZXh0KiBjdHgsIGNvbnN0IEludFNpemUmIGh1ZFMKIHsKICAgICBGb250RGVzY3JpcHRpb24g
bWVkaXVtRm9udERlc2M7CiAgICAgbWVkaXVtRm9udERlc2Muc2V0R2VuZXJpY0ZhbWlseShGb250
RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7Ci0gICAgbWVkaXVtRm9udERlc2Muc2V0Q29t
cHV0ZWRTaXplKDEyKTsKKyAgICBtZWRpdW1Gb250RGVzYy5zZXRDb21wdXRlZFNpemUoMjApOwor
CiAgICAgRm9udCBtZWRpdW1Gb250KG1lZGl1bUZvbnREZXNjLCAwLCAwKTsKICAgICBtZWRpdW1G
b250LnVwZGF0ZSgwKTsKKyAgICBpbnQgbWVkaXVtRm9udEhlaWdodCA9IG1lZGl1bUZvbnQuZm9u
dE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpOwogCiAgICAgRm9udERlc2NyaXB0aW9uIHNtYWxsRm9u
dERlc2M7CiAgICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlv
bjo6TW9ub3NwYWNlRmFtaWx5KTsKICAgICBzbWFsbEZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgx
MCk7CisKICAgICBGb250IHNtYWxsRm9udChzbWFsbEZvbnREZXNjLCAwLCAwKTsKICAgICBzbWFs
bEZvbnQudXBkYXRlKDApOwotCi0gICAgLy8gV2UgaGF2ZW4ndCBmaW5pc2hlZCByZW5kZXJpbmcg
eWV0LCBzbyB3ZSBkb24ndCBub3cgdGhlICJjdXJyZW50IiBwcmVzZW50IHRpbWUuCi0gICAgLy8g
U28sIGNvbnNpZGVyIHRoZSAqbGFzdCB0d28qIHByZXNlbnQgdGltZXMgYW5kIHVzZSB0aG9zZSBh
cyBvdXIgcHJlc2VudCB0aW1lLgotICAgIGRvdWJsZSBzZWNGb3JMYXN0RnJhbWUgPSBtX3ByZXNl
bnRUaW1lSGlzdG9yeUluU2VjWyhtX2N1cnJlbnRGcmFtZU51bWJlciAtIDEpICUgMl0gLSBtX3By
ZXNlbnRUaW1lSGlzdG9yeUluU2VjW21fY3VycmVudEZyYW1lTnVtYmVyICUgMl07Ci0KLSAgICBp
bnQgeSA9IDE0OworICAgIGludCBzbWFsbEZvbnRIZWlnaHQgPSBzbWFsbEZvbnQuZm9udE1ldHJp
Y3MoKS5mbG9hdEhlaWdodCgpOworCisgICAgLy8gTm90ZSB0aGF0IHNpbmNlIHdlIGhhdmVuJ3Qg
ZmluaXNoZWQgdGhlIGN1cnJlbnQgZnJhbWUsIHRoaXMgYWN0dWFsbHkgcmVwb3J0cworICAgIC8v
IHRoZSBsYXN0IGZyYW1lJ3MgdGltZS4KKyAgICBkb3VibGUgc2VjRm9yTGFzdEZyYW1lID0gbV9w
cmVzZW50VGltZUhpc3RvcnlJblNlY1sobV9jdXJyZW50RnJhbWVOdW1iZXIgKyBDQ19IVURfUFJF
U0VOVF9ISVNUT1JZX1NJWkUgLSAxKSAlIENDX0hVRF9QUkVTRU5UX0hJU1RPUllfU0laRV0gLQor
ICAgICAgICAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sobV9jdXJyZW50RnJhbWVOdW1i
ZXIgKyBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkUgLSAyKSAlIENDX0hVRF9QUkVTRU5UX0hJ
U1RPUllfU0laRV07CisKKyAgICBjb25zdCBmbG9hdCBhdHRhY2sgPSAwLjE7CisgICAgaWYgKCFt
X2ZpbHRlcmVkRnJhbWVUaW1lKSB7CisgICAgICAgIGlmIChtX2N1cnJlbnRGcmFtZU51bWJlciA9
PSAyKSB7CisgICAgICAgICAgICBwcmludGYoIkZGVDogJWZcbiIsIDEuMCAvIHNlY0Zvckxhc3RG
cmFtZSk7CisgICAgICAgICAgICBtX2ZpbHRlcmVkRnJhbWVUaW1lID0gc2VjRm9yTGFzdEZyYW1l
OworICAgICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIG1fZmlsdGVyZWRGcmFtZVRpbWUgPSAo
KDEuMCAtIGF0dGFjaykgKiBtX2ZpbHRlcmVkRnJhbWVUaW1lKSArIChhdHRhY2sgKiBzZWNGb3JM
YXN0RnJhbWUpOwogCiAgICAgaWYgKG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlKSB7CiAgICAgICAg
IGN0eC0+c2V0RmlsbENvbG9yKENvbG9yKDAsIDAsIDAsIDE5MiksIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwogICAgICAgICBjdHgtPmZpbGxSZWN0KEZsb2F0UmVjdCgwLCAwLCBodWRTaXplLndpZHRo
KCksIGh1ZFNpemUuaGVpZ2h0KCkpKTsKICAgICB9CiAKLSAgICAvLyBEcmF3IGZwcy4KLSAgICBT
dHJpbmcgdG9wTGluZSA9ICIiOwotICAgIGlmIChzZWNGb3JMYXN0RnJhbWUgPiAwICYmIG1fc2hv
d0ZQU0NvdW50ZXIpIHsKLSAgICAgICAgZG91YmxlIGZwcyA9IDEuMCAvIHNlY0Zvckxhc3RGcmFt
ZTsKLSAgICAgICAgdG9wTGluZSArPSBTdHJpbmc6OmZvcm1hdCgiRlBTOiAlMy4xZiIsIGZwcyk7
Ci0gICAgfQotICAgIGlmICh0b3BMaW5lLmxlbmd0aCgpKSB7CisgICAgaW50IGZwc01ldGVySGVp
Z2h0ID0gbWVkaXVtRm9udEhlaWdodCArIDI7CisgICAgaW50IGZwc01ldGVyVG9wID0gMjsKKyAg
ICBpbnQgcGxhdGZvcm1MYXllclRyZWVUb3A7CisgICAgaWYgKG1fc2hvd0ZQU0NvdW50ZXIpCisg
ICAgICAgIHBsYXRmb3JtTGF5ZXJUcmVlVG9wID0gZnBzTWV0ZXJUb3AgKyBmcHNNZXRlckhlaWdo
dCArIDI7CisgICAgZWxzZQorICAgICAgICBwbGF0Zm9ybUxheWVyVHJlZVRvcCA9IDA7CisKKyAg
ICAvLyBEcmF3IGZwcyBtZXRlcgorICAgIGlmIChtX3Nob3dGUFNDb3VudGVyKSB7CisgICAgICAg
IFN0cmluZyB0ZXh0KFN0cmluZzo6Zm9ybWF0KCJGUFM6ICU1LjFmIiwgMS4wIC8gbV9maWx0ZXJl
ZEZyYW1lVGltZSkpOworCisgICAgICAgIFRleHRSdW4gcnVuKHRleHQpOworICAgICAgICBmbG9h
dCB0ZXh0V2lkdGggPSBtZWRpdW1Gb250LndpZHRoKHJ1bikgKyAyLjBmOworICAgICAgICBmbG9h
dCBmcHNHcmFwaFdpZHRoID0gQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFOworCisgICAgICAg
IC8vIGJhY2tncm91bmQKICAgICAgICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMCwgMCwgMCwg
MjU1KSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIFRleHRSdW4gcnVuKHRvcExpbmUp
OwotICAgICAgICBjdHgtPmZpbGxSZWN0KEZsb2F0UmVjdCgyLCAyLCBtZWRpdW1Gb250LndpZHRo
KHJ1bikgKyAyLjBmLCAxNSkpOwotICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigyNTUs
IDAsIDApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY3R4LT5kcmF3VGV4dChtZWRp
dW1Gb250LCBydW4sIEludFBvaW50KDMsIHkpKTsKLSAgICAgICAgeSA9IDI2OworICAgICAgICBj
dHgtPmZpbGxSZWN0KEZsb2F0UmVjdCgyLCBmcHNNZXRlclRvcCwgdGV4dFdpZHRoICsgZnBzR3Jh
cGhXaWR0aCwgZnBzTWV0ZXJIZWlnaHQpKTsKKworICAgICAgICAvLyBGUFMgdGV4dAorICAgICAg
ICBpZiAobV9maWx0ZXJlZEZyYW1lVGltZSkgeworICAgICAgICAgICAgY3R4LT5zZXRGaWxsQ29s
b3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgICAgICAgICBj
dHgtPmRyYXdUZXh0KG1lZGl1bUZvbnQsIHJ1biwgSW50UG9pbnQoMywgZnBzTWV0ZXJUb3AgKyBm
cHNNZXRlckhlaWdodCAtIDYpKTsKKyAgICAgICAgfQorCisgICAgICAgIC8vIGZwcyBncmFwaAor
ICAgICAgICBjb25zdCBkb3VibGUgbG9GUFMgPSAwLjA7CisgICAgICAgIGNvbnN0IGRvdWJsZSBo
aUZQUyA9IDEyMC4wOworICAgICAgICBjdHgtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsK
KyAgICAgICAgY3R4LT5zZXRTdHJva2VDb2xvcihDb2xvcigyNTUsIDAsIDApLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKKyAgICAgICAgaW50IGdyYXBoTGVmdCA9IChpbnQpKHRleHRXaWR0aCArIDMp
OworICAgICAgICBJbnRQb2ludCBwcmV2KC0xLCAwKTsKKyAgICAgICAgaW50IHggPSAwOworICAg
ICAgICBkb3VibGUgaCA9IChkb3VibGUpZnBzTWV0ZXJIZWlnaHQgLSAyOworICAgICAgICBmb3Ig
KGludCBpID0gbV9jdXJyZW50RnJhbWVOdW1iZXIgJSBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJ
WkU7IGkgIT0gKG1fY3VycmVudEZyYW1lTnVtYmVyIC0gMSkgJSBDQ19IVURfUFJFU0VOVF9ISVNU
T1JZX1NJWkU7IGkgPSAoaSArIDEpICUgQ0NfSFVEX1BSRVNFTlRfSElTVE9SWV9TSVpFKSB7Cisg
ICAgICAgICAgICBpbnQgaiA9IChpICsgMSkgJSBDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkU7
CisgICAgICAgICAgICBkb3VibGUgZnBzID0gMS4wIC8gKG1fcHJlc2VudFRpbWVIaXN0b3J5SW5T
ZWNbal0gLSBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW2ldKTsKKyAgICAgICAgICAgIGRvdWJs
ZSBwID0gMSAtICgoZnBzIC0gbG9GUFMpIC8gKGhpRlBTIC0gbG9GUFMpKTsKKyAgICAgICAgICAg
IGlmIChwIDwgMCkKKyAgICAgICAgICAgICAgICBwID0gMDsKKyAgICAgICAgICAgIGlmIChwID4g
MSkKKyAgICAgICAgICAgICAgICBwID0gMTsKKyAgICAgICAgICAgIEludFBvaW50IGN1cihncmFw
aExlZnQgKyB4LCAxICsgZnBzTWV0ZXJUb3AgKyBwKmgpOworICAgICAgICAgICAgaWYgKHByZXYu
eCgpICE9IC0xKQorICAgICAgICAgICAgICAgIGN0eC0+ZHJhd0xpbmUocHJldiwgY3VyKTsKKyAg
ICAgICAgICAgIHByZXYgPSBjdXI7CisgICAgICAgICAgICB4ICs9IDE7CisgICAgICAgIH0KICAg
ICB9CiAKICAgICAvLyBEcmF3IGxheWVyIHRyZWUsIGlmIGVuYWJsZWQuCiAgICAgaWYgKG1fc2hv
d1BsYXRmb3JtTGF5ZXJUcmVlKSB7CisgICAgICAgIGludCB5ID0gcGxhdGZvcm1MYXllclRyZWVU
b3AgKyBzbWFsbEZvbnRIZWlnaHQgLSA0OwogICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xv
cigyNTUsIDAsIDApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgVmVjdG9yPFN0cmlu
Zz4gbGluZXM7CiAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+bGF5ZXJUcmVlQXNUZXh0KCkuc3Bs
aXQoJ1xuJywgbGluZXMpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpbmVzLnNp
emUoKTsgKytpKSB7CiAgICAgICAgICAgICBjdHgtPmRyYXdUZXh0KHNtYWxsRm9udCwgVGV4dFJ1
bihsaW5lc1tpXSksIEludFBvaW50KDIsIHkpKTsKLSAgICAgICAgICAgIHkgKz0gMTI7CisgICAg
ICAgICAgICB5ICs9IHNtYWxsRm9udEhlaWdodDsKICAgICAgICAgfQogICAgIH0KIH0KIAogdm9p
ZCBDQ0hlYWRzVXBEaXNwbGF5OjpvblByZXNlbnQoKQogewotICAgIG1fcHJlc2VudFRpbWVIaXN0
b3J5SW5TZWNbbV9jdXJyZW50RnJhbWVOdW1iZXIgJSAyXSA9IGN1cnJlbnRUaW1lKCk7CisgICAg
bV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1ttX2N1cnJlbnRGcmFtZU51bWJlciAlIENDX0hVRF9Q
UkVTRU5UX0hJU1RPUllfU0laRV0gPSBjdXJyZW50VGltZSgpOwogICAgIG1fY3VycmVudEZyYW1l
TnVtYmVyICs9IDE7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuaAppbmRleCBkNTZm
OGFiODg2NzE5NDVlYWRjZTVjYjM0OTQ1YmUyMTFhYjM5Njk0Li5iNjk2MDE1Y2Y2NTU5N2RhMjYx
ZWU4NGZlZDQzMzQxMjYxYmRiNDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5oCkBA
IC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEdlb21ldHJ5QmluZGlu
ZzsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDNEOwogCisjZGVmaW5lIENDX0hVRF9QUkVTRU5UX0hJ
U1RPUllfU0laRSA2NAogLy8gQ2xhc3MgdGhhdCBoYW5kbGVzIGRyYXdpbmcgb2YgY29tcG9zaXRl
ZCByZW5kZXIgbGF5ZXJzIHVzaW5nIEdMLgogY2xhc3MgQ0NIZWFkc1VwRGlzcGxheSB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoQ0NIZWFkc1VwRGlzcGxheSk7CkBAIC02MiwxMSArNjMsMTMg
QEAgcHJpdmF0ZToKIAogICAgIGludCBtX2N1cnJlbnRGcmFtZU51bWJlcjsKIAorICAgIGRvdWJs
ZSBtX2ZpbHRlcmVkRnJhbWVUaW1lOworCiAgICAgT3duUHRyPExheWVyVGV4dHVyZT4gbV9odWRU
ZXh0dXJlOwogCiAgICAgTGF5ZXJSZW5kZXJlckNocm9taXVtKiBtX2xheWVyUmVuZGVyZXI7CiAK
LSAgICBkb3VibGUgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1syXTsKKyAgICBkb3VibGUgbV9w
cmVzZW50VGltZUhpc3RvcnlJblNlY1tDQ19IVURfUFJFU0VOVF9ISVNUT1JZX1NJWkVdOwogCiAg
ICAgYm9vbCBtX3Nob3dGUFNDb3VudGVyOwogICAgIGJvb2wgbV9zaG93UGxhdGZvcm1MYXllclRy
ZWU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89396</attachid>
            <date>2011-04-13 10:21:16 -0700</date>
            <delta_ts>2011-04-14 10:07:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58186-20110413102115.patch</filename>
            <type>text/plain</type>
            <size>9205</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM1ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNjNhODFkYzc1OWFkYzZk
ZDQxZTk4MzE5ZmZjNDI2MGY1NmNlMmU1Li5lOTBjNzkyYjljMTlhODIwNTBmYzYzNzhjZjRmOWI3
MmZhYTY2YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMTMgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGxvd3Bhc3MgZmlsdGVyIGFuZCBncmFw
aCB0byBmcHMgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01ODE4NgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNw
bGF5OjpDQ0hlYWRzVXBEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3Bs
YXk6OmRyYXdIdWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5
OjpkcmF3RlBTQ291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5Ojpk
cmF3UGxhdGZvcm1MYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxh
eTo6b25QcmVzZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0hlYWRzVXBEaXNwbGF5Lmg6CisKIDIwMTEtMDQtMTIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0hlYWRzVXBEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCmluZGV4IDQwNDk0NGI2NWE4OGFmYzRkYzQw
YzYwNzQ0YmRjMjg2ZDhmNWFjYzcuLjc0YzFlNWY2MWVmNWQzYjcwMTJkYjczMTQ1YjM2ODY0NTBm
YWM1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCkBAIC00NCwxMyArNDQs
MzAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogQ0NIZWFk
c1VwRGlzcGxheTo6Q0NIZWFkc1VwRGlzcGxheShMYXllclJlbmRlcmVyQ2hyb21pdW0qIG93bmVy
KQotICAgIDogbV9jdXJyZW50RnJhbWVOdW1iZXIoMCkKKyAgICA6IG1fY3VycmVudEZyYW1lTnVt
YmVyKDEpCisgICAgLCBtX2ZpbHRlcmVkRnJhbWVUaW1lKDApCiAgICAgLCBtX2xheWVyUmVuZGVy
ZXIob3duZXIpCiAgICAgLCBtX3Nob3dGUFNDb3VudGVyKGZhbHNlKQogICAgICwgbV9zaG93UGxh
dGZvcm1MYXllclRyZWUoZmFsc2UpCiB7CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sw
XSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sxXSA9IG1f
cHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbMF07CisgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBrUHJl
c2VudEhpc3RvcnlTaXplOyBpKyspCisgICAgICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNb
aV0gPSAwOworCisgICAgRm9udERlc2NyaXB0aW9uIG1lZGl1bUZvbnREZXNjOworICAgIG1lZGl1
bUZvbnREZXNjLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1p
bHkpOworICAgIG1lZGl1bUZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgyMCk7CisKKyAgICBtX21l
ZGl1bUZvbnQgPSBhZG9wdFB0cihuZXcgRm9udChtZWRpdW1Gb250RGVzYywgMCwgMCkpOworICAg
IG1fbWVkaXVtRm9udC0+dXBkYXRlKDApOworCisgICAgRm9udERlc2NyaXB0aW9uIHNtYWxsRm9u
dERlc2M7CisgICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlv
bjo6TW9ub3NwYWNlRmFtaWx5KTsKKyAgICBzbWFsbEZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgx
MCk7CisKKyAgICBtX3NtYWxsRm9udCA9IGFkb3B0UHRyKG5ldyBGb250KHNtYWxsRm9udERlc2Ms
IDAsIDApKTsKKyAgICBtX3NtYWxsRm9udC0+dXBkYXRlKDApOwogfQogCiBDQ0hlYWRzVXBEaXNw
bGF5Ojp+Q0NIZWFkc1VwRGlzcGxheSgpCkBAIC0xMTEsNTkgKzEyOCw5OSBAQCB2b2lkIENDSGVh
ZHNVcERpc3BsYXk6OmRyYXcoKQogCiB2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdIdWRDb250
ZW50cyhHcmFwaGljc0NvbnRleHQqIGN0eCwgY29uc3QgSW50U2l6ZSYgaHVkU2l6ZSkKIHsKLSAg
ICBGb250RGVzY3JpcHRpb24gbWVkaXVtRm9udERlc2M7Ci0gICAgbWVkaXVtRm9udERlc2Muc2V0
R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7Ci0gICAgbWVk
aXVtRm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKDEyKTsKLSAgICBGb250IG1lZGl1bUZvbnQobWVk
aXVtRm9udERlc2MsIDAsIDApOwotICAgIG1lZGl1bUZvbnQudXBkYXRlKDApOwotCi0gICAgRm9u
dERlc2NyaXB0aW9uIHNtYWxsRm9udERlc2M7Ci0gICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmlj
RmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KTsKLSAgICBzbWFsbEZvbnRE
ZXNjLnNldENvbXB1dGVkU2l6ZSgxMCk7Ci0gICAgRm9udCBzbWFsbEZvbnQoc21hbGxGb250RGVz
YywgMCwgMCk7Ci0gICAgc21hbGxGb250LnVwZGF0ZSgwKTsKLQotICAgIC8vIFdlIGhhdmVuJ3Qg
ZmluaXNoZWQgcmVuZGVyaW5nIHlldCwgc28gd2UgZG9uJ3Qgbm93IHRoZSAiY3VycmVudCIgcHJl
c2VudCB0aW1lLgotICAgIC8vIFNvLCBjb25zaWRlciB0aGUgKmxhc3QgdHdvKiBwcmVzZW50IHRp
bWVzIGFuZCB1c2UgdGhvc2UgYXMgb3VyIHByZXNlbnQgdGltZS4KLSAgICBkb3VibGUgc2VjRm9y
TGFzdEZyYW1lID0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sobV9jdXJyZW50RnJhbWVOdW1i
ZXIgLSAxKSAlIDJdIC0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1ttX2N1cnJlbnRGcmFtZU51
bWJlciAlIDJdOwotCi0gICAgaW50IHkgPSAxNDsKLQogICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZSkgewogICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigwLCAwLCAwLCAxOTIp
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY3R4LT5maWxsUmVjdChGbG9hdFJlY3Qo
MCwgMCwgaHVkU2l6ZS53aWR0aCgpLCBodWRTaXplLmhlaWdodCgpKSk7CiAgICAgfQogCi0gICAg
Ly8gRHJhdyBmcHMuCi0gICAgU3RyaW5nIHRvcExpbmUgPSAiIjsKLSAgICBpZiAoc2VjRm9yTGFz
dEZyYW1lID4gMCAmJiBtX3Nob3dGUFNDb3VudGVyKSB7Ci0gICAgICAgIGRvdWJsZSBmcHMgPSAx
LjAgLyBzZWNGb3JMYXN0RnJhbWU7Ci0gICAgICAgIHRvcExpbmUgKz0gU3RyaW5nOjpmb3JtYXQo
IkZQUzogJTMuMWYiLCBmcHMpOwotICAgIH0KLSAgICBpZiAodG9wTGluZS5sZW5ndGgoKSkgewot
ICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigwLCAwLCAwLCAyNTUpLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICAgICAgVGV4dFJ1biBydW4odG9wTGluZSk7Ci0gICAgICAgIGN0eC0+
ZmlsbFJlY3QoRmxvYXRSZWN0KDIsIDIsIG1lZGl1bUZvbnQud2lkdGgocnVuKSArIDIuMGYsIDE1
KSk7CisgICAgaW50IGZwc0NvdW50ZXJIZWlnaHQgPSBtX21lZGl1bUZvbnQtPmZvbnRNZXRyaWNz
KCkuZmxvYXRIZWlnaHQoKSArIDI7CisgICAgaW50IGZwc0NvdW50ZXJUb3AgPSAyOworICAgIGlu
dCBwbGF0Zm9ybUxheWVyVHJlZVRvcDsKKyAgICBpZiAobV9zaG93RlBTQ291bnRlcikKKyAgICAg
ICAgcGxhdGZvcm1MYXllclRyZWVUb3AgPSBmcHNDb3VudGVyVG9wICsgZnBzQ291bnRlckhlaWdo
dCArIDI7CisgICAgZWxzZQorICAgICAgICBwbGF0Zm9ybUxheWVyVHJlZVRvcCA9IDA7CisKKyAg
ICBpZiAobV9zaG93RlBTQ291bnRlcikKKyAgICAgICAgZHJhd0ZQU0NvdW50ZXIoY3R4LCBmcHND
b3VudGVyVG9wLCBmcHNDb3VudGVySGVpZ2h0KTsKKworICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZSkKKyAgICAgICAgZHJhd1BsYXRmb3JtTGF5ZXJUcmVlKGN0eCwgcGxhdGZvcm1MYXll
clRyZWVUb3ApOworfQorCit2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdGUFNDb3VudGVyKEdy
YXBoaWNzQ29udGV4dCogY3R4LCBpbnQgdG9wLCBpbnQgaGVpZ2h0KQoreworICAgIC8vIE5vdGUg
dGhhdCBzaW5jZSB3ZSBoYXZlbid0IGZpbmlzaGVkIHRoZSBjdXJyZW50IGZyYW1lLCB0aGUgRlBT
IGNvdW50ZXIKKyAgICAvLyBhY3R1YWxseSByZXBvcnRzIHRoZSBsYXN0IGZyYW1lJ3MgdGltZS4K
KyAgICBkb3VibGUgc2VjRm9yTGFzdEZyYW1lID0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1so
bV9jdXJyZW50RnJhbWVOdW1iZXIgKyBrUHJlc2VudEhpc3RvcnlTaXplIC0gMSkgJSBrUHJlc2Vu
dEhpc3RvcnlTaXplXSAtCisgICAgICAgICAgICBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjWyht
X2N1cnJlbnRGcmFtZU51bWJlciArIGtQcmVzZW50SGlzdG9yeVNpemUgLSAyKSAlIGtQcmVzZW50
SGlzdG9yeVNpemVdOworCisgICAgLy8gRmlsdGVyIHRoZSBmcmFtZSB0aW1lcyB0byBhdm9pZCBz
cGlrZXMuCisgICAgY29uc3QgZmxvYXQgYWxwaGEgPSAwLjE7CisgICAgaWYgKCFtX2ZpbHRlcmVk
RnJhbWVUaW1lKSB7CisgICAgICAgIGlmIChtX2N1cnJlbnRGcmFtZU51bWJlciA9PSAyKQorICAg
ICAgICAgICAgbV9maWx0ZXJlZEZyYW1lVGltZSA9IHNlY0Zvckxhc3RGcmFtZTsKKyAgICB9IGVs
c2UKKyAgICAgICAgbV9maWx0ZXJlZEZyYW1lVGltZSA9ICgoMS4wIC0gYWxwaGEpICogbV9maWx0
ZXJlZEZyYW1lVGltZSkgKyAoYWxwaGEgKiBzZWNGb3JMYXN0RnJhbWUpOworCisKKyAgICAvLyBD
cmVhdGUgJiBtZWFzdXJlIEZQUyB0ZXh0LgorICAgIFN0cmluZyB0ZXh0KFN0cmluZzo6Zm9ybWF0
KCJGUFM6ICU1LjFmIiwgMS4wIC8gbV9maWx0ZXJlZEZyYW1lVGltZSkpOworICAgIFRleHRSdW4g
cnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IG1fbWVkaXVtRm9udC0+d2lkdGgocnVu
KSArIDIuMGY7CisgICAgZmxvYXQgZ3JhcGhXaWR0aCA9IGtQcmVzZW50SGlzdG9yeVNpemU7CisK
KyAgICAvLyBEcmF3IGJhY2tncm91bmQuCisgICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMCwg
MCwgMCwgMjU1KSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY3R4LT5maWxsUmVjdChGbG9h
dFJlY3QoMiwgdG9wLCB0ZXh0V2lkdGggKyBncmFwaFdpZHRoLCBoZWlnaHQpKTsKKworICAgIC8v
IERyYXcgRlBTIHRleHQuCisgICAgaWYgKG1fZmlsdGVyZWRGcmFtZVRpbWUpIHsKICAgICAgICAg
Y3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JTcGFjZURldmljZVJHQik7
Ci0gICAgICAgIGN0eC0+ZHJhd1RleHQobWVkaXVtRm9udCwgcnVuLCBJbnRQb2ludCgzLCB5KSk7
Ci0gICAgICAgIHkgPSAyNjsKKyAgICAgICAgY3R4LT5kcmF3VGV4dCgqbV9tZWRpdW1Gb250LCBy
dW4sIEludFBvaW50KDMsIHRvcCArIGhlaWdodCAtIDYpKTsKICAgICB9CiAKLSAgICAvLyBEcmF3
IGxheWVyIHRyZWUsIGlmIGVuYWJsZWQuCi0gICAgaWYgKG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVl
KSB7Ci0gICAgICAgIGN0eC0+c2V0RmlsbENvbG9yKENvbG9yKDI1NSwgMCwgMCksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IpOwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsaW5lczsKLSAgICAgICAgbV9s
YXllclJlbmRlcmVyLT5sYXllclRyZWVBc1RleHQoKS5zcGxpdCgnXG4nLCBsaW5lcyk7Ci0gICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGluZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ICAgIGN0eC0+ZHJhd1RleHQoc21hbGxGb250LCBUZXh0UnVuKGxpbmVzW2ldKSwgSW50UG9pbnQo
MiwgeSkpOwotICAgICAgICAgICAgeSArPSAxMjsKLSAgICAgICAgfQorICAgIC8vIERyYXcgRlBT
IGdyYXBoLgorICAgIGNvbnN0IGRvdWJsZSBsb0ZQUyA9IDAuMDsKKyAgICBjb25zdCBkb3VibGUg
aGlGUFMgPSAxMjAuMDsKKyAgICBjdHgtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsKKyAg
ICBjdHgtPnNldFN0cm9rZUNvbG9yKENvbG9yKDI1NSwgMCwgMCksIENvbG9yU3BhY2VEZXZpY2VS
R0IpOworICAgIGludCBncmFwaExlZnQgPSAoaW50KSh0ZXh0V2lkdGggKyAzKTsKKyAgICBJbnRQ
b2ludCBwcmV2KC0xLCAwKTsKKyAgICBpbnQgeCA9IDA7CisgICAgZG91YmxlIGggPSAoZG91Ymxl
KWhlaWdodCAtIDI7CisgICAgZm9yIChpbnQgaSA9IG1fY3VycmVudEZyYW1lTnVtYmVyICUga1By
ZXNlbnRIaXN0b3J5U2l6ZTsgaSAhPSAobV9jdXJyZW50RnJhbWVOdW1iZXIgLSAxKSAlIGtQcmVz
ZW50SGlzdG9yeVNpemU7IGkgPSAoaSArIDEpICUga1ByZXNlbnRIaXN0b3J5U2l6ZSkgeworICAg
ICAgICBpbnQgaiA9IChpICsgMSkgJSBrUHJlc2VudEhpc3RvcnlTaXplOworICAgICAgICBkb3Vi
bGUgZnBzID0gMS4wIC8gKG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbal0gLSBtX3ByZXNlbnRU
aW1lSGlzdG9yeUluU2VjW2ldKTsKKyAgICAgICAgZG91YmxlIHAgPSAxIC0gKChmcHMgLSBsb0ZQ
UykgLyAoaGlGUFMgLSBsb0ZQUykpOworICAgICAgICBpZiAocCA8IDApCisgICAgICAgICAgICBw
ID0gMDsKKyAgICAgICAgaWYgKHAgPiAxKQorICAgICAgICAgICAgcCA9IDE7CisgICAgICAgIElu
dFBvaW50IGN1cihncmFwaExlZnQgKyB4LCAxICsgdG9wICsgcCpoKTsKKyAgICAgICAgaWYgKHBy
ZXYueCgpICE9IC0xKQorICAgICAgICAgICAgY3R4LT5kcmF3TGluZShwcmV2LCBjdXIpOworICAg
ICAgICBwcmV2ID0gY3VyOworICAgICAgICB4ICs9IDE7CisgICAgfQorfQorCit2b2lkIENDSGVh
ZHNVcERpc3BsYXk6OmRyYXdQbGF0Zm9ybUxheWVyVHJlZShHcmFwaGljc0NvbnRleHQqIGN0eCwg
aW50IHRvcCkKK3sKKyAgICBmbG9hdCBzbWFsbEZvbnRIZWlnaHQgPSBtX3NtYWxsRm9udC0+Zm9u
dE1ldHJpY3MoKS5mbG9hdEhlaWdodCgpOworICAgIGludCB5ID0gdG9wICsgc21hbGxGb250SGVp
Z2h0IC0gNDsKKyAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigyNTUsIDAsIDApLCBDb2xvclNw
YWNlRGV2aWNlUkdCKTsKKyAgICBWZWN0b3I8U3RyaW5nPiBsaW5lczsKKyAgICBtX2xheWVyUmVu
ZGVyZXItPmxheWVyVHJlZUFzVGV4dCgpLnNwbGl0KCdcbicsIGxpbmVzKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxpbmVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGN0eC0+ZHJhd1Rl
eHQoKm1fc21hbGxGb250LCBUZXh0UnVuKGxpbmVzW2ldKSwgSW50UG9pbnQoMiwgeSkpOworICAg
ICAgICB5ICs9IHNtYWxsRm9udEhlaWdodDsKICAgICB9CiB9CiAKIHZvaWQgQ0NIZWFkc1VwRGlz
cGxheTo6b25QcmVzZW50KCkKIHsKLSAgICBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW21fY3Vy
cmVudEZyYW1lTnVtYmVyICUgMl0gPSBjdXJyZW50VGltZSgpOworICAgIG1fcHJlc2VudFRpbWVI
aXN0b3J5SW5TZWNbbV9jdXJyZW50RnJhbWVOdW1iZXIgJSBrUHJlc2VudEhpc3RvcnlTaXplXSA9
IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9jdXJyZW50RnJhbWVOdW1iZXIgKz0gMTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NI
ZWFkc1VwRGlzcGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5oCmluZGV4IGQ1NmY4YWI4ODY3MTk0NWVhZGNlNWNiMzQ5
NDViZTIxMWFiMzk2OTQuLjA5ZjE5OGFjMTQ1ZDc3NjM0ZDFiMWY1NDM5ZjcxMGQ4NDZlMzdlMjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDSGVhZHNVcERpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0hlYWRzVXBEaXNwbGF5LmgKQEAgLTI3LDggKzI3LDEwIEBACiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAKKyNpbmNsdWRlICJGb250LmgiCiAjaW5j
bHVkZSAiTGF5ZXJSZW5kZXJlckNocm9taXVtLmgiCiAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBHZW9tZXRyeUJpbmRpbmc7CkBAIC01OSwxNyArNjEsMjYgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBleHBsaWNpdCBDQ0hlYWRzVXBEaXNwbGF5KExheWVyUmVuZGVyZXJDaHJvbWl1
bSogb3duZXIpOwogICAgIHZvaWQgZHJhd0h1ZENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IEludFNpemUmIGh1ZFNpemUpOworICAgIHZvaWQgZHJhd0ZQU0NvdW50ZXIoR3JhcGhpY3ND
b250ZXh0KiwgaW50IHRvcCwgaW50IGhlaWdodCk7CisgICAgdm9pZCBkcmF3UGxhdGZvcm1MYXll
clRyZWUoR3JhcGhpY3NDb250ZXh0KiwgaW50IHRvcCk7CisKIAogICAgIGludCBtX2N1cnJlbnRG
cmFtZU51bWJlcjsKIAorICAgIGRvdWJsZSBtX2ZpbHRlcmVkRnJhbWVUaW1lOworCiAgICAgT3du
UHRyPExheWVyVGV4dHVyZT4gbV9odWRUZXh0dXJlOwogCiAgICAgTGF5ZXJSZW5kZXJlckNocm9t
aXVtKiBtX2xheWVyUmVuZGVyZXI7CiAKLSAgICBkb3VibGUgbV9wcmVzZW50VGltZUhpc3RvcnlJ
blNlY1syXTsKKyAgICBzdGF0aWMgY29uc3QgaW50IGtQcmVzZW50SGlzdG9yeVNpemUgPSA2NDsK
KyAgICBkb3VibGUgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1trUHJlc2VudEhpc3RvcnlTaXpl
XTsKIAogICAgIGJvb2wgbV9zaG93RlBTQ291bnRlcjsKICAgICBib29sIG1fc2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlOworCisgICAgT3duUHRyPEZvbnQ+IG1fc21hbGxGb250OworICAgIE93blB0cjxG
b250PiBtX21lZGl1bUZvbnQ7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89601</attachid>
            <date>2011-04-14 10:08:01 -0700</date>
            <delta_ts>2011-04-14 22:13:29 -0700</delta_ts>
            <desc>Style fixes</desc>
            <filename>bug-58186-20110414100800.patch</filename>
            <type>text/plain</type>
            <size>9244</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM1ODQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwNjNhODFkYzc1OWFkYzZk
ZDQxZTk4MzE5ZmZjNDI2MGY1NmNlMmU1Li5lOTBjNzkyYjljMTlhODIwNTBmYzYzNzhjZjRmOWI3
MmZhYTY2YjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDQtMTMgIE5hdCBE
dWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGxvd3Bhc3MgZmlsdGVyIGFuZCBncmFw
aCB0byBmcHMgaW5kaWNhdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01ODE4NgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NIZWFkc1VwRGlzcGxheS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNw
bGF5OjpDQ0hlYWRzVXBEaXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkNDSGVhZHNVcERpc3Bs
YXk6OmRyYXdIdWRDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5
OjpkcmF3RlBTQ291bnRlcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0hlYWRzVXBEaXNwbGF5Ojpk
cmF3UGxhdGZvcm1MYXllclRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxh
eTo6b25QcmVzZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0hlYWRzVXBEaXNwbGF5Lmg6CisKIDIwMTEtMDQtMTIgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1h
bkBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q0hlYWRzVXBEaXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCmluZGV4IDQwNDk0NGI2NWE4OGFmYzRkYzQw
YzYwNzQ0YmRjMjg2ZDhmNWFjYzcuLmE3YzY2YjM3ZWM2M2EyMjY3YjZmZDYxYzJjYTVjZWRjNjAz
ODM5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwCkBAIC00NCwxMyArNDQs
MzAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogQ0NIZWFk
c1VwRGlzcGxheTo6Q0NIZWFkc1VwRGlzcGxheShMYXllclJlbmRlcmVyQ2hyb21pdW0qIG93bmVy
KQotICAgIDogbV9jdXJyZW50RnJhbWVOdW1iZXIoMCkKKyAgICA6IG1fY3VycmVudEZyYW1lTnVt
YmVyKDEpCisgICAgLCBtX2ZpbHRlcmVkRnJhbWVUaW1lKDApCiAgICAgLCBtX2xheWVyUmVuZGVy
ZXIob3duZXIpCiAgICAgLCBtX3Nob3dGUFNDb3VudGVyKGZhbHNlKQogICAgICwgbV9zaG93UGxh
dGZvcm1MYXllclRyZWUoZmFsc2UpCiB7CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sw
XSA9IGN1cnJlbnRUaW1lKCk7CiAgICAgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sxXSA9IG1f
cHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbMF07CisgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBrUHJl
c2VudEhpc3RvcnlTaXplOyBpKyspCisgICAgICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNb
aV0gPSAwOworCisgICAgRm9udERlc2NyaXB0aW9uIG1lZGl1bUZvbnREZXNjOworICAgIG1lZGl1
bUZvbnREZXNjLnNldEdlbmVyaWNGYW1pbHkoRm9udERlc2NyaXB0aW9uOjpNb25vc3BhY2VGYW1p
bHkpOworICAgIG1lZGl1bUZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgyMCk7CisKKyAgICBtX21l
ZGl1bUZvbnQgPSBhZG9wdFB0cihuZXcgRm9udChtZWRpdW1Gb250RGVzYywgMCwgMCkpOworICAg
IG1fbWVkaXVtRm9udC0+dXBkYXRlKDApOworCisgICAgRm9udERlc2NyaXB0aW9uIHNtYWxsRm9u
dERlc2M7CisgICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlv
bjo6TW9ub3NwYWNlRmFtaWx5KTsKKyAgICBzbWFsbEZvbnREZXNjLnNldENvbXB1dGVkU2l6ZSgx
MCk7CisKKyAgICBtX3NtYWxsRm9udCA9IGFkb3B0UHRyKG5ldyBGb250KHNtYWxsRm9udERlc2Ms
IDAsIDApKTsKKyAgICBtX3NtYWxsRm9udC0+dXBkYXRlKDApOwogfQogCiBDQ0hlYWRzVXBEaXNw
bGF5Ojp+Q0NIZWFkc1VwRGlzcGxheSgpCkBAIC0xMTEsNTkgKzEyOCw5OCBAQCB2b2lkIENDSGVh
ZHNVcERpc3BsYXk6OmRyYXcoKQogCiB2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdIdWRDb250
ZW50cyhHcmFwaGljc0NvbnRleHQqIGN0eCwgY29uc3QgSW50U2l6ZSYgaHVkU2l6ZSkKIHsKLSAg
ICBGb250RGVzY3JpcHRpb24gbWVkaXVtRm9udERlc2M7Ci0gICAgbWVkaXVtRm9udERlc2Muc2V0
R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246Ok1vbm9zcGFjZUZhbWlseSk7Ci0gICAgbWVk
aXVtRm9udERlc2Muc2V0Q29tcHV0ZWRTaXplKDEyKTsKLSAgICBGb250IG1lZGl1bUZvbnQobWVk
aXVtRm9udERlc2MsIDAsIDApOwotICAgIG1lZGl1bUZvbnQudXBkYXRlKDApOwotCi0gICAgRm9u
dERlc2NyaXB0aW9uIHNtYWxsRm9udERlc2M7Ci0gICAgc21hbGxGb250RGVzYy5zZXRHZW5lcmlj
RmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6TW9ub3NwYWNlRmFtaWx5KTsKLSAgICBzbWFsbEZvbnRE
ZXNjLnNldENvbXB1dGVkU2l6ZSgxMCk7Ci0gICAgRm9udCBzbWFsbEZvbnQoc21hbGxGb250RGVz
YywgMCwgMCk7Ci0gICAgc21hbGxGb250LnVwZGF0ZSgwKTsKLQotICAgIC8vIFdlIGhhdmVuJ3Qg
ZmluaXNoZWQgcmVuZGVyaW5nIHlldCwgc28gd2UgZG9uJ3Qgbm93IHRoZSAiY3VycmVudCIgcHJl
c2VudCB0aW1lLgotICAgIC8vIFNvLCBjb25zaWRlciB0aGUgKmxhc3QgdHdvKiBwcmVzZW50IHRp
bWVzIGFuZCB1c2UgdGhvc2UgYXMgb3VyIHByZXNlbnQgdGltZS4KLSAgICBkb3VibGUgc2VjRm9y
TGFzdEZyYW1lID0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1sobV9jdXJyZW50RnJhbWVOdW1i
ZXIgLSAxKSAlIDJdIC0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1ttX2N1cnJlbnRGcmFtZU51
bWJlciAlIDJdOwotCi0gICAgaW50IHkgPSAxNDsKLQogICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZSkgewogICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigwLCAwLCAwLCAxOTIp
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICAgICAgY3R4LT5maWxsUmVjdChGbG9hdFJlY3Qo
MCwgMCwgaHVkU2l6ZS53aWR0aCgpLCBodWRTaXplLmhlaWdodCgpKSk7CiAgICAgfQogCi0gICAg
Ly8gRHJhdyBmcHMuCi0gICAgU3RyaW5nIHRvcExpbmUgPSAiIjsKLSAgICBpZiAoc2VjRm9yTGFz
dEZyYW1lID4gMCAmJiBtX3Nob3dGUFNDb3VudGVyKSB7Ci0gICAgICAgIGRvdWJsZSBmcHMgPSAx
LjAgLyBzZWNGb3JMYXN0RnJhbWU7Ci0gICAgICAgIHRvcExpbmUgKz0gU3RyaW5nOjpmb3JtYXQo
IkZQUzogJTMuMWYiLCBmcHMpOwotICAgIH0KLSAgICBpZiAodG9wTGluZS5sZW5ndGgoKSkgewot
ICAgICAgICBjdHgtPnNldEZpbGxDb2xvcihDb2xvcigwLCAwLCAwLCAyNTUpLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICAgICAgVGV4dFJ1biBydW4odG9wTGluZSk7Ci0gICAgICAgIGN0eC0+
ZmlsbFJlY3QoRmxvYXRSZWN0KDIsIDIsIG1lZGl1bUZvbnQud2lkdGgocnVuKSArIDIuMGYsIDE1
KSk7CisgICAgaW50IGZwc0NvdW50ZXJIZWlnaHQgPSBtX21lZGl1bUZvbnQtPmZvbnRNZXRyaWNz
KCkuZmxvYXRIZWlnaHQoKSArIDI7CisgICAgaW50IGZwc0NvdW50ZXJUb3AgPSAyOworICAgIGlu
dCBwbGF0Zm9ybUxheWVyVHJlZVRvcDsKKyAgICBpZiAobV9zaG93RlBTQ291bnRlcikKKyAgICAg
ICAgcGxhdGZvcm1MYXllclRyZWVUb3AgPSBmcHNDb3VudGVyVG9wICsgZnBzQ291bnRlckhlaWdo
dCArIDI7CisgICAgZWxzZQorICAgICAgICBwbGF0Zm9ybUxheWVyVHJlZVRvcCA9IDA7CisKKyAg
ICBpZiAobV9zaG93RlBTQ291bnRlcikKKyAgICAgICAgZHJhd0ZQU0NvdW50ZXIoY3R4LCBmcHND
b3VudGVyVG9wLCBmcHNDb3VudGVySGVpZ2h0KTsKKworICAgIGlmIChtX3Nob3dQbGF0Zm9ybUxh
eWVyVHJlZSkKKyAgICAgICAgZHJhd1BsYXRmb3JtTGF5ZXJUcmVlKGN0eCwgcGxhdGZvcm1MYXll
clRyZWVUb3ApOworfQorCit2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdGUFNDb3VudGVyKEdy
YXBoaWNzQ29udGV4dCogY3R4LCBpbnQgdG9wLCBpbnQgaGVpZ2h0KQoreworICAgIC8vIE5vdGUg
dGhhdCBzaW5jZSB3ZSBoYXZlbid0IGZpbmlzaGVkIHRoZSBjdXJyZW50IGZyYW1lLCB0aGUgRlBT
IGNvdW50ZXIKKyAgICAvLyBhY3R1YWxseSByZXBvcnRzIHRoZSBsYXN0IGZyYW1lJ3MgdGltZS4K
KyAgICBkb3VibGUgc2VjRm9yTGFzdEZyYW1lID0gbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1so
bV9jdXJyZW50RnJhbWVOdW1iZXIgKyBrUHJlc2VudEhpc3RvcnlTaXplIC0gMSkgJSBrUHJlc2Vu
dEhpc3RvcnlTaXplXSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcHJlc2VudFRp
bWVIaXN0b3J5SW5TZWNbKG1fY3VycmVudEZyYW1lTnVtYmVyICsga1ByZXNlbnRIaXN0b3J5U2l6
ZSAtIDIpICUga1ByZXNlbnRIaXN0b3J5U2l6ZV07CisKKyAgICAvLyBGaWx0ZXIgdGhlIGZyYW1l
IHRpbWVzIHRvIGF2b2lkIHNwaWtlcy4KKyAgICBjb25zdCBmbG9hdCBhbHBoYSA9IDAuMTsKKyAg
ICBpZiAoIW1fZmlsdGVyZWRGcmFtZVRpbWUpIHsKKyAgICAgICAgaWYgKG1fY3VycmVudEZyYW1l
TnVtYmVyID09IDIpCisgICAgICAgICAgICBtX2ZpbHRlcmVkRnJhbWVUaW1lID0gc2VjRm9yTGFz
dEZyYW1lOworICAgIH0gZWxzZQorICAgICAgICBtX2ZpbHRlcmVkRnJhbWVUaW1lID0gKCgxLjAg
LSBhbHBoYSkgKiBtX2ZpbHRlcmVkRnJhbWVUaW1lKSArIChhbHBoYSAqIHNlY0Zvckxhc3RGcmFt
ZSk7CisKKyAgICAvLyBDcmVhdGUgJiBtZWFzdXJlIEZQUyB0ZXh0LgorICAgIFN0cmluZyB0ZXh0
KFN0cmluZzo6Zm9ybWF0KCJGUFM6ICU1LjFmIiwgMS4wIC8gbV9maWx0ZXJlZEZyYW1lVGltZSkp
OworICAgIFRleHRSdW4gcnVuKHRleHQpOworICAgIGZsb2F0IHRleHRXaWR0aCA9IG1fbWVkaXVt
Rm9udC0+d2lkdGgocnVuKSArIDIuMGY7CisgICAgZmxvYXQgZ3JhcGhXaWR0aCA9IGtQcmVzZW50
SGlzdG9yeVNpemU7CisKKyAgICAvLyBEcmF3IGJhY2tncm91bmQuCisgICAgY3R4LT5zZXRGaWxs
Q29sb3IoQ29sb3IoMCwgMCwgMCwgMjU1KSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY3R4
LT5maWxsUmVjdChGbG9hdFJlY3QoMiwgdG9wLCB0ZXh0V2lkdGggKyBncmFwaFdpZHRoLCBoZWln
aHQpKTsKKworICAgIC8vIERyYXcgRlBTIHRleHQuCisgICAgaWYgKG1fZmlsdGVyZWRGcmFtZVRp
bWUpIHsKICAgICAgICAgY3R4LT5zZXRGaWxsQ29sb3IoQ29sb3IoMjU1LCAwLCAwKSwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgICAgIGN0eC0+ZHJhd1RleHQobWVkaXVtRm9udCwgcnVuLCBJ
bnRQb2ludCgzLCB5KSk7Ci0gICAgICAgIHkgPSAyNjsKKyAgICAgICAgY3R4LT5kcmF3VGV4dCgq
bV9tZWRpdW1Gb250LCBydW4sIEludFBvaW50KDMsIHRvcCArIGhlaWdodCAtIDYpKTsKICAgICB9
CiAKLSAgICAvLyBEcmF3IGxheWVyIHRyZWUsIGlmIGVuYWJsZWQuCi0gICAgaWYgKG1fc2hvd1Bs
YXRmb3JtTGF5ZXJUcmVlKSB7Ci0gICAgICAgIGN0eC0+c2V0RmlsbENvbG9yKENvbG9yKDI1NSwg
MCwgMCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICBWZWN0b3I8U3RyaW5nPiBsaW5l
czsKLSAgICAgICAgbV9sYXllclJlbmRlcmVyLT5sYXllclRyZWVBc1RleHQoKS5zcGxpdCgnXG4n
LCBsaW5lcyk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGluZXMuc2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgICAgIGN0eC0+ZHJhd1RleHQoc21hbGxGb250LCBUZXh0UnVuKGxpbmVz
W2ldKSwgSW50UG9pbnQoMiwgeSkpOwotICAgICAgICAgICAgeSArPSAxMjsKLSAgICAgICAgfQor
ICAgIC8vIERyYXcgRlBTIGdyYXBoLgorICAgIGNvbnN0IGRvdWJsZSBsb0ZQUyA9IDAuMDsKKyAg
ICBjb25zdCBkb3VibGUgaGlGUFMgPSAxMjAuMDsKKyAgICBjdHgtPnNldFN0cm9rZVN0eWxlKFNv
bGlkU3Ryb2tlKTsKKyAgICBjdHgtPnNldFN0cm9rZUNvbG9yKENvbG9yKDI1NSwgMCwgMCksIENv
bG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGludCBncmFwaExlZnQgPSBzdGF0aWNfY2FzdDxpbnQ+
KHRleHRXaWR0aCArIDMpOworICAgIEludFBvaW50IHByZXYoLTEsIDApOworICAgIGludCB4ID0g
MDsKKyAgICBkb3VibGUgaCA9IHN0YXRpY19jYXN0PGRvdWJsZT4oaGVpZ2h0IC0gMik7CisgICAg
Zm9yIChpbnQgaSA9IG1fY3VycmVudEZyYW1lTnVtYmVyICUga1ByZXNlbnRIaXN0b3J5U2l6ZTsg
aSAhPSAobV9jdXJyZW50RnJhbWVOdW1iZXIgLSAxKSAlIGtQcmVzZW50SGlzdG9yeVNpemU7IGkg
PSAoaSArIDEpICUga1ByZXNlbnRIaXN0b3J5U2l6ZSkgeworICAgICAgICBpbnQgaiA9IChpICsg
MSkgJSBrUHJlc2VudEhpc3RvcnlTaXplOworICAgICAgICBkb3VibGUgZnBzID0gMS4wIC8gKG1f
cHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbal0gLSBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW2ld
KTsKKyAgICAgICAgZG91YmxlIHAgPSAxIC0gKChmcHMgLSBsb0ZQUykgLyAoaGlGUFMgLSBsb0ZQ
UykpOworICAgICAgICBpZiAocCA8IDApCisgICAgICAgICAgICBwID0gMDsKKyAgICAgICAgaWYg
KHAgPiAxKQorICAgICAgICAgICAgcCA9IDE7CisgICAgICAgIEludFBvaW50IGN1cihncmFwaExl
ZnQgKyB4LCAxICsgdG9wICsgcCpoKTsKKyAgICAgICAgaWYgKHByZXYueCgpICE9IC0xKQorICAg
ICAgICAgICAgY3R4LT5kcmF3TGluZShwcmV2LCBjdXIpOworICAgICAgICBwcmV2ID0gY3VyOwor
ICAgICAgICB4ICs9IDE7CisgICAgfQorfQorCit2b2lkIENDSGVhZHNVcERpc3BsYXk6OmRyYXdQ
bGF0Zm9ybUxheWVyVHJlZShHcmFwaGljc0NvbnRleHQqIGN0eCwgaW50IHRvcCkKK3sKKyAgICBm
bG9hdCBzbWFsbEZvbnRIZWlnaHQgPSBtX3NtYWxsRm9udC0+Zm9udE1ldHJpY3MoKS5mbG9hdEhl
aWdodCgpOworICAgIGludCB5ID0gdG9wICsgc21hbGxGb250SGVpZ2h0IC0gNDsKKyAgICBjdHgt
PnNldEZpbGxDb2xvcihDb2xvcigyNTUsIDAsIDApLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAg
ICBWZWN0b3I8U3RyaW5nPiBsaW5lczsKKyAgICBtX2xheWVyUmVuZGVyZXItPmxheWVyVHJlZUFz
VGV4dCgpLnNwbGl0KCdcbicsIGxpbmVzKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxp
bmVzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGN0eC0+ZHJhd1RleHQoKm1fc21hbGxGb250LCBU
ZXh0UnVuKGxpbmVzW2ldKSwgSW50UG9pbnQoMiwgeSkpOworICAgICAgICB5ICs9IHNtYWxsRm9u
dEhlaWdodDsKICAgICB9CiB9CiAKIHZvaWQgQ0NIZWFkc1VwRGlzcGxheTo6b25QcmVzZW50KCkK
IHsKLSAgICBtX3ByZXNlbnRUaW1lSGlzdG9yeUluU2VjW21fY3VycmVudEZyYW1lTnVtYmVyICUg
Ml0gPSBjdXJyZW50VGltZSgpOworICAgIG1fcHJlc2VudFRpbWVIaXN0b3J5SW5TZWNbbV9jdXJy
ZW50RnJhbWVOdW1iZXIgJSBrUHJlc2VudEhpc3RvcnlTaXplXSA9IGN1cnJlbnRUaW1lKCk7CiAg
ICAgbV9jdXJyZW50RnJhbWVOdW1iZXIgKz0gMTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlz
cGxheS5oCmluZGV4IGQ1NmY4YWI4ODY3MTk0NWVhZGNlNWNiMzQ5NDViZTIxMWFiMzk2OTQuLjA5
ZjE5OGFjMTQ1ZDc3NjM0ZDFiMWY1NDM5ZjcxMGQ4NDZlMzdlMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVhZHNVcERpc3BsYXku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0hl
YWRzVXBEaXNwbGF5LmgKQEAgLTI3LDggKzI3LDEwIEBACiAKICNpZiBVU0UoQUNDRUxFUkFURURf
Q09NUE9TSVRJTkcpCiAKKyNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiTGF5ZXJSZW5kZXJl
ckNocm9taXVtLmgiCiAKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBHZW9tZXRyeUJp
bmRpbmc7CkBAIC01OSwxNyArNjEsMjYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBleHBsaWNp
dCBDQ0hlYWRzVXBEaXNwbGF5KExheWVyUmVuZGVyZXJDaHJvbWl1bSogb3duZXIpOwogICAgIHZv
aWQgZHJhd0h1ZENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFNpemUmIGh1ZFNp
emUpOworICAgIHZvaWQgZHJhd0ZQU0NvdW50ZXIoR3JhcGhpY3NDb250ZXh0KiwgaW50IHRvcCwg
aW50IGhlaWdodCk7CisgICAgdm9pZCBkcmF3UGxhdGZvcm1MYXllclRyZWUoR3JhcGhpY3NDb250
ZXh0KiwgaW50IHRvcCk7CisKIAogICAgIGludCBtX2N1cnJlbnRGcmFtZU51bWJlcjsKIAorICAg
IGRvdWJsZSBtX2ZpbHRlcmVkRnJhbWVUaW1lOworCiAgICAgT3duUHRyPExheWVyVGV4dHVyZT4g
bV9odWRUZXh0dXJlOwogCiAgICAgTGF5ZXJSZW5kZXJlckNocm9taXVtKiBtX2xheWVyUmVuZGVy
ZXI7CiAKLSAgICBkb3VibGUgbV9wcmVzZW50VGltZUhpc3RvcnlJblNlY1syXTsKKyAgICBzdGF0
aWMgY29uc3QgaW50IGtQcmVzZW50SGlzdG9yeVNpemUgPSA2NDsKKyAgICBkb3VibGUgbV9wcmVz
ZW50VGltZUhpc3RvcnlJblNlY1trUHJlc2VudEhpc3RvcnlTaXplXTsKIAogICAgIGJvb2wgbV9z
aG93RlBTQ291bnRlcjsKICAgICBib29sIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOworCisgICAg
T3duUHRyPEZvbnQ+IG1fc21hbGxGb250OworICAgIE93blB0cjxGb250PiBtX21lZGl1bUZvbnQ7
CiB9OwogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>