<?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>78729</bug_id>
          
          <creation_ts>2012-02-15 12:26:23 -0800</creation_ts>
          <short_desc>RealtimeAnalyserNode does not consistently respect .minDecibels</short_desc>
          <delta_ts>2022-02-28 00:06:04 -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>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Rogers">crogers</reporter>
          <assigned_to name="Raymond Toy">rtoy</assigned_to>
          <cc>crogers</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>557457</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-15 12:26:23 -0800</bug_when>
    <thetext>Reported by Christian Corti:

Also a small inconsistency with the code:
 
Line 216:
    double dbMag = !linearValue ? MinDecibels : AudioUtilities::linearToDecibels(linearValue);
 
Line 242:
    double dbMag = !linearValue ? m_minDecibels : AudioUtilities::linearToDecibels(linearValue);
 
shouldn’t you use in both cases m_minDecibels instead of the getter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557506</commentid>
    <comment_count>1</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-15 13:33:20 -0800</bug_when>
    <thetext>I think both should be using MinDecibels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557772</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-15 17:33:46 -0800</bug_when>
    <thetext>But there&apos;s a minDecibels attribute.  Shouldn&apos;t we use the value the user wants?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557886</commentid>
    <comment_count>3</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-15 21:16:44 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; But there&apos;s a minDecibels attribute.  Shouldn&apos;t we use the value the user wants?

Line 208 says 

const double MinDecibels = m_minDecibels.  

Isn&apos;t m_minDecibels the value the user wants?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557910</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-15 22:41:21 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; But there&apos;s a minDecibels attribute.  Shouldn&apos;t we use the value the user wants?
&gt; 
&gt; Line 208 says 
&gt; 
&gt; const double MinDecibels = m_minDecibels.  
&gt; 
&gt; Isn&apos;t m_minDecibels the value the user wants?

Sorry, I didn&apos;t look as closely as I should have.  I guess it&apos;s more of a consistency/style issue then.  I&apos;d recommend changing to directly use m_minDecibels instead of having the unneeded MinDecibels...

It seems like there are some other style problems with this file (I noticed use of 0.0) so maybe we can fix this inconsistency and do some general style cleanup?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558236</commentid>
    <comment_count>5</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 08:47:30 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; But there&apos;s a minDecibels attribute.  Shouldn&apos;t we use the value the user wants?
&gt; &gt; 
&gt; &gt; Line 208 says 
&gt; &gt; 
&gt; &gt; const double MinDecibels = m_minDecibels.  
&gt; &gt; 
&gt; &gt; Isn&apos;t m_minDecibels the value the user wants?
&gt; 
&gt; Sorry, I didn&apos;t look as closely as I should have.  I guess it&apos;s more of a consistency/style issue then.  I&apos;d recommend changing to directly use m_minDecibels instead of having the unneeded MinDecibels...

That&apos;s fine.  I had assumed line 208 existed so that the loop didn&apos;t have to look up m_minDecibels from the object every time.  But perhaps compilers are smart enough to know that m_minDecibels can&apos;t change inside the loop.

&gt; 
&gt; It seems like there are some other style problems with this file (I noticed use of 0.0) so maybe we can fix this inconsistency and do some general style cleanup?

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558405</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-16 11:47:56 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; &gt; But there&apos;s a minDecibels attribute.  Shouldn&apos;t we use the value the user wants?
&gt; &gt; &gt; 
&gt; &gt; &gt; Line 208 says 
&gt; &gt; &gt; 
&gt; &gt; &gt; const double MinDecibels = m_minDecibels.  
&gt; &gt; &gt; 
&gt; &gt; &gt; Isn&apos;t m_minDecibels the value the user wants?
&gt; &gt; 
&gt; &gt; Sorry, I didn&apos;t look as closely as I should have.  I guess it&apos;s more of a consistency/style issue then.  I&apos;d recommend changing to directly use m_minDecibels instead of having the unneeded MinDecibels...
&gt; 
&gt; That&apos;s fine.  I had assumed line 208 existed so that the loop didn&apos;t have to look up m_minDecibels from the object every time.  But perhaps compilers are smart enough to know that m_minDecibels can&apos;t change inside the loop.

No, the compiler can never make that assumption (because another thread might be changing that value), so it will be slightly slower.  So for efficiency&apos;s sake, caching in a local variable is better.  In any case, they should be made consistent.

And just a style nit (my fault since I originally authored that code -- but know better now):

We use a lowercase character to start a constant, so:

    const double MinDecibels = m_minDecibels;

should be:

    const double minDecibels = m_minDecibels;

and same with &quot;RangeScaleFactor&quot; and any other such local constants.


&gt; 
&gt; &gt; 
&gt; &gt; It seems like there are some other style problems with this file (I noticed use of 0.0) so maybe we can fix this inconsistency and do some general style cleanup?
&gt; 
&gt; Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558555</commentid>
    <comment_count>7</comment_count>
      <attachid>127448</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 14:50:18 -0800</bug_when>
    <thetext>Created attachment 127448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558561</commentid>
    <comment_count>8</comment_count>
      <attachid>127448</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-16 14:56:34 -0800</bug_when>
    <thetext>Comment on attachment 127448
Patch

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

&gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:237
&gt; +        const double rangeScaleFactor = m_maxDecibels == minDecibels ? 1.0 : 1.0 / (m_maxDecibels - minDecibels);

This looks really peculiar and inconsistent:    (m_maxDecibels - minDecibels)
it seemed better as it was (m_maxDecibels - m_minDecibels)

we only need the efficiency inside the loop, so you could move the &quot;minDecibels&quot; definition down past this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558569</commentid>
    <comment_count>9</comment_count>
      <attachid>127450</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 15:07:05 -0800</bug_when>
    <thetext>Created attachment 127450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558570</commentid>
    <comment_count>10</comment_count>
      <attachid>127448</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 15:07:50 -0800</bug_when>
    <thetext>Comment on attachment 127448
Patch

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

&gt;&gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:237
&gt;&gt; +        const double rangeScaleFactor = m_maxDecibels == minDecibels ? 1.0 : 1.0 / (m_maxDecibels - minDecibels);
&gt; 
&gt; This looks really peculiar and inconsistent:    (m_maxDecibels - minDecibels)
&gt; it seemed better as it was (m_maxDecibels - m_minDecibels)
&gt; 
&gt; we only need the efficiency inside the loop, so you could move the &quot;minDecibels&quot; definition down past this line

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558788</commentid>
    <comment_count>11</comment_count>
      <attachid>127450</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 18:34:18 -0800</bug_when>
    <thetext>Comment on attachment 127450
Patch

Rejecting attachment 127450 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ebKit/chromium/third_party/yasm/source/patched-yasm --revision 73761 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 73761.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/11540301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558817</commentid>
    <comment_count>12</comment_count>
      <attachid>127450</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-16 19:27:21 -0800</bug_when>
    <thetext>Comment on attachment 127450
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        No new tests. (OOPS!)

Ray, please either remove this, or say these are just cosmetic changes and no new tests needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558859</commentid>
    <comment_count>13</comment_count>
      <attachid>127508</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 20:32:22 -0800</bug_when>
    <thetext>Created attachment 127508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558864</commentid>
    <comment_count>14</comment_count>
      <attachid>127450</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-16 20:36:51 -0800</bug_when>
    <thetext>Comment on attachment 127450
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:12
&gt;&gt; +        No new tests. (OOPS!)
&gt; 
&gt; Ray, please either remove this, or say these are just cosmetic changes and no new tests needed.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558917</commentid>
    <comment_count>15</comment_count>
      <attachid>127508</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-16 22:14:56 -0800</bug_when>
    <thetext>Comment on attachment 127508
Patch

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

&gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:236
&gt; +        const double rangeScaleFactor = m_maxDecibels == m_minDecibels ? 1.0 : 1.0 / (m_maxDecibels - m_minDecibels);

Sorry, I just noticed 1.0

Please fix this and any other similar style issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559230</commentid>
    <comment_count>16</comment_count>
      <attachid>127598</attachid>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-17 08:54:48 -0800</bug_when>
    <thetext>Created attachment 127598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559307</commentid>
    <comment_count>17</comment_count>
      <attachid>127598</attachid>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-17 10:35:12 -0800</bug_when>
    <thetext>Comment on attachment 127598
Patch

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

&gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:181
&gt; +    const double magnitudeScale = 1.0 / DefaultFFTSize;

You missed one here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559330</commentid>
    <comment_count>18</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-17 10:50:40 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 127598 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127598&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:181
&gt; &gt; +    const double magnitudeScale = 1.0 / DefaultFFTSize;
&gt; 
&gt; You missed one here.

No, that would be incorrect since DefaultFFTSize is an integer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559336</commentid>
    <comment_count>19</comment_count>
    <who name="Raymond Toy">rtoy</who>
    <bug_when>2012-02-17 10:53:49 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (From update of attachment 127598 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127598&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:181
&gt; &gt; &gt; +    const double magnitudeScale = 1.0 / DefaultFFTSize;
&gt; &gt; 
&gt; &gt; You missed one here.
&gt; 
&gt; No, that would be incorrect since DefaultFFTSize is an integer.

Oh.  Should that be fftSize instead of DefaultFFTSize since it looks like we&apos;re doing FFTs of size fftSize and not DefaultFFTSize?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559401</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Rogers">crogers</who>
    <bug_when>2012-02-17 11:57:07 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #17)
&gt; &gt; &gt; (From update of attachment 127598 [details] [details] [details])
&gt; &gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=127598&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/webaudio/RealtimeAnalyser.cpp:181
&gt; &gt; &gt; &gt; +    const double magnitudeScale = 1.0 / DefaultFFTSize;
&gt; &gt; &gt; 
&gt; &gt; &gt; You missed one here.
&gt; &gt; 
&gt; &gt; No, that would be incorrect since DefaultFFTSize is an integer.
&gt; 
&gt; Oh.  Should that be fftSize instead of DefaultFFTSize since it looks like we&apos;re doing FFTs of size fftSize and not DefaultFFTSize?

I see.  Yeah, I think this is a bug, but probably better to land this and fix this bug in a separate patch since it&apos;s an unrelated change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559447</commentid>
    <comment_count>21</comment_count>
      <attachid>127598</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 12:57:18 -0800</bug_when>
    <thetext>Comment on attachment 127598
Patch

Clearing flags on attachment: 127598

Committed r108110: &lt;http://trac.webkit.org/changeset/108110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559448</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-17 12:57:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127448</attachid>
            <date>2012-02-16 14:50:18 -0800</date>
            <delta_ts>2012-02-16 15:07:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78729-20120216145017.patch</filename>
            <type>text/plain</type>
            <size>5918</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxYTNkYmJkMTY5MDcx
MTAwZGJmMTc3N2YxNGUyMmFmNjUyODMyYi4uZDlhMzI5MWU4MDY4OGZlZmM3MDJkODhiMzAyZWRl
NjAwMDQ2ZWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTE2ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZWFsdGltZUFuYWx5c2VyTm9k
ZSBkb2VzIG5vdCBjb25zaXN0ZW50bHkgcmVzcGVjdCAubWluRGVjaWJlbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI5CisKKyAgICAgICAgTWFr
ZSB1c2Ugb2YgbV9taW5EZWNpYmVsIGNvbnNpc3RlbnQuICBDbGVhbiB1cCBzb21lIHN0eWxlIGlz
c3VlcworICAgICAgICB3aXRoIG5hbWVzIG9mIGxvY2FsIHZhcmlhYmxlcyBhbmQgc3R5bGUgaXNz
dWVzIHdpdGggZmxvYXQKKyAgICAgICAgY29uc3RhbnRzLgorICAgICAgICAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiB3ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6ZG9GRlRBbmFseXNp
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5j
eURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1
ZW5jeURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRp
bWVEb21haW5EYXRhKToKKwogMjAxMi0wMi0xNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMDc4MzYpOiBmYXN0L2JveC1zaGFkb3cvc3By
ZWFkLmh0bWwgYW5kIGZhc3Qvd3JpdGluZy1tb2RlL2JveC1zaGFkb3ctKi5odG1sIHRlc3RzIGZh
aWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKaW5k
ZXggYTNmODA3ZDgzN2Y3N2M0OWNjYjA0MTU1MGE2YTljOTBkODRjNWUxMS4uNWI1MGJjYWQ2N2I4
MDY0ODQ0OTM2NTJkZThmNzAzMzIxMjU3ZTUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlz
ZXI6OkRlZmF1bHRTbW9vdGhpbmdUaW1lQ29uc3RhbnQgID0gMC44OwotY29uc3QgZG91YmxlIFJl
YWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRNaW5EZWNpYmVscyA9IC0xMDAuMDsKLWNvbnN0IGRvdWJs
ZSBSZWFsdGltZUFuYWx5c2VyOjpEZWZhdWx0TWF4RGVjaWJlbHMgPSAtMzAuMDsKK2NvbnN0IGRv
dWJsZSBSZWFsdGltZUFuYWx5c2VyOjpEZWZhdWx0TWluRGVjaWJlbHMgPSAtMTAwOworY29uc3Qg
ZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRNYXhEZWNpYmVscyA9IC0zMDsKIAogY29u
c3QgdW5zaWduZWQgUmVhbHRpbWVBbmFseXNlcjo6RGVmYXVsdEZGVFNpemUgPSAyMDQ4OwogLy8g
QWxsIEZGVCBpbXBsZW1lbnRhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGhhbmRsZSBwb3dlci1vZi10
d28gc2l6ZXMgTWluRkZUU2l6ZSA8PSBzaXplIDw9IE1heEZGVFNpemUuCkBAIC0xNzUsMTAgKzE3
NSwxMCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmRvRkZUQW5hbHlzaXMoKQogICAgIGZsb2F0
KiBpbWFnUCA9IG1fYW5hbHlzaXNGcmFtZS0+aW1hZ0RhdGEoKTsKIAogICAgIC8vIEJsb3cgYXdh
eSB0aGUgcGFja2VkIG55cXVpc3QgY29tcG9uZW50LgotICAgIGltYWdQWzBdID0gMC4wZjsKKyAg
ICBpbWFnUFswXSA9IDA7CiAgICAgCiAgICAgLy8gTm9ybWFsaXplIHNvIHRoYW4gYW4gaW5wdXQg
c2luZSB3YXZlIGF0IDBkQmZzIHJlZ2lzdGVycyBhcyAwZEJmcyAodW5kbyBGRlQgc2NhbGluZyBm
YWN0b3IpLgotICAgIGNvbnN0IGRvdWJsZSBNYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRG
RlRTaXplOworICAgIGNvbnN0IGRvdWJsZSBtYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRG
RlRTaXplOwogCiAgICAgLy8gQSB2YWx1ZSBvZiAwIGRvZXMgbm8gYXZlcmFnaW5nIHdpdGggdGhl
IHByZXZpb3VzIHJlc3VsdC4gIExhcmdlciB2YWx1ZXMgcHJvZHVjZSBzbG93ZXIsIGJ1dCBzbW9v
dGhlciBjaGFuZ2VzLgogICAgIGRvdWJsZSBrID0gbV9zbW9vdGhpbmdUaW1lQ29uc3RhbnQ7CkBA
IC0xOTAsNyArMTkwLDcgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5c2lzKCkK
ICAgICBzaXplX3QgbiA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICBDb21wbGV4IGMocmVhbFBbaV0sIGltYWdQ
W2ldKTsKLSAgICAgICAgZG91YmxlIHNjYWxhck1hZ25pdHVkZSA9IGFicyhjKSAqIE1hZ25pdHVk
ZVNjYWxlOyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzY2FsYXJNYWduaXR1ZGUgPSBhYnMoYykg
KiBtYWduaXR1ZGVTY2FsZTsgICAgICAgIAogICAgICAgICBkZXN0aW5hdGlvbltpXSA9IGZsb2F0
KGsgKiBkZXN0aW5hdGlvbltpXSArICgxLjAgLSBrKSAqIHNjYWxhck1hZ25pdHVkZSk7CiAgICAg
fQogfQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0RmxvYXRG
cmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICBkb0ZGVEFu
YWx5c2lzKCk7CiAgICAgCiAgICAgLy8gQ29udmVydCBmcm9tIGxpbmVhciBtYWduaXR1ZGUgdG8g
ZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCi0gICAgY29uc3QgZG91YmxlIE1pbkRlY2liZWxzID0g
bV9taW5EZWNpYmVsczsKKyAgICBjb25zdCBkb3VibGUgbWluRGVjaWJlbHMgPSBtX21pbkRlY2li
ZWxzOwogICAgIHVuc2lnbmVkIHNvdXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUo
KTsKICAgICBzaXplX3QgbGVuID0gbWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+
bGVuZ3RoKCkpOwogICAgIGlmIChsZW4gPiAwKSB7CkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBS
ZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5KiBkZXN0
aW5hdGlvbkFycmF5KQogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbjsgKytpKSB7CiAgICAgICAgICAgICBmbG9hdCBsaW5lYXJWYWx1ZSA9IHNvdXJjZVtpXTsK
LSAgICAgICAgICAgIGRvdWJsZSBkYk1hZyA9ICFsaW5lYXJWYWx1ZSA/IE1pbkRlY2liZWxzIDog
QXVkaW9VdGlsaXRpZXM6OmxpbmVhclRvRGVjaWJlbHMobGluZWFyVmFsdWUpOworICAgICAgICAg
ICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJlbHMgOiBBdWRpb1V0aWxp
dGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAgICAgICAgICBkZXN0aW5h
dGlvbltpXSA9IGZsb2F0KGRiTWFnKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzMCwyNCArMjMw
LDI1IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhB
cnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICBkb0ZGVEFuYWx5c2lzKCk7CiAgICAgCiAgICAg
Ly8gQ29udmVydCBmcm9tIGxpbmVhciBtYWduaXR1ZGUgdG8gdW5zaWduZWQtYnl0ZSBkZWNpYmVs
cy4KKyAgICBjb25zdCBkb3VibGUgbWluRGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOwogICAgIHVu
c2lnbmVkIHNvdXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBzaXpl
X3QgbGVuID0gbWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkpOwog
ICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgIGNvbnN0IGRvdWJsZSBSYW5nZVNjYWxlRmFjdG9y
ID0gbV9tYXhEZWNpYmVscyA9PSBtX21pbkRlY2liZWxzID8gMS4wIDogMS4wIC8gKG1fbWF4RGVj
aWJlbHMgLSBtX21pbkRlY2liZWxzKTsKKyAgICAgICAgY29uc3QgZG91YmxlIHJhbmdlU2NhbGVG
YWN0b3IgPSBtX21heERlY2liZWxzID09IG1pbkRlY2liZWxzID8gMS4wIDogMS4wIC8gKG1fbWF4
RGVjaWJlbHMgLSBtaW5EZWNpYmVscyk7CiAKICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZSA9
IG1hZ25pdHVkZUJ1ZmZlcigpLmRhdGEoKTsKICAgICAgICAgdW5zaWduZWQgY2hhciogZGVzdGlu
YXRpb24gPSBkZXN0aW5hdGlvbkFycmF5LT5kYXRhKCk7ICAgICAgICAKICAgICAgICAgCiAgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW47ICsraSkgewogICAgICAgICAgICAgZmxv
YXQgbGluZWFyVmFsdWUgPSBzb3VyY2VbaV07Ci0gICAgICAgICAgICBkb3VibGUgZGJNYWcgPSAh
bGluZWFyVmFsdWUgPyBtX21pbkRlY2liZWxzIDogQXVkaW9VdGlsaXRpZXM6OmxpbmVhclRvRGVj
aWJlbHMobGluZWFyVmFsdWUpOworICAgICAgICAgICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZh
bHVlID8gbWluRGVjaWJlbHMgOiBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5l
YXJWYWx1ZSk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIC8vIFRoZSByYW5nZSBtX21pbkRl
Y2liZWxzIHRvIG1fbWF4RGVjaWJlbHMgd2lsbCBiZSBzY2FsZWQgdG8gYnl0ZSB2YWx1ZXMgZnJv
bSAwIHRvIFVDSEFSX01BWC4KLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZWRWYWx1ZSA9IFVDSEFS
X01BWCAqIChkYk1hZyAtIG1fbWluRGVjaWJlbHMpICogUmFuZ2VTY2FsZUZhY3RvcjsKKyAgICAg
ICAgICAgIGRvdWJsZSBzY2FsZWRWYWx1ZSA9IFVDSEFSX01BWCAqIChkYk1hZyAtIG1pbkRlY2li
ZWxzKSAqIHJhbmdlU2NhbGVGYWN0b3I7CiAKICAgICAgICAgICAgIC8vIENsaXAgdG8gdmFsaWQg
cmFuZ2UuCi0gICAgICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwLjApCi0gICAgICAgICAgICAg
ICAgc2NhbGVkVmFsdWUgPSAwLjA7CisgICAgICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwKQor
ICAgICAgICAgICAgICAgIHNjYWxlZFZhbHVlID0gMDsKICAgICAgICAgICAgIGlmIChzY2FsZWRW
YWx1ZSA+IFVDSEFSX01BWCkKICAgICAgICAgICAgICAgICBzY2FsZWRWYWx1ZSA9IFVDSEFSX01B
WDsKICAgICAgICAgICAgIApAQCAtMjg0LDggKzI4NSw4IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNl
cjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKFVpbnQ4QXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCiAg
ICAgICAgICAgICBkb3VibGUgc2NhbGVkVmFsdWUgPSAxMjguMCAqICh2YWx1ZSArIDEuMCk7CiAK
ICAgICAgICAgICAgIC8vIENsaXAgdG8gdmFsaWQgcmFuZ2UuCi0gICAgICAgICAgICBpZiAoc2Nh
bGVkVmFsdWUgPCAwLjApCi0gICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUgPSAwLjA7CisgICAg
ICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwKQorICAgICAgICAgICAgICAgIHNjYWxlZFZhbHVl
ID0gMDsKICAgICAgICAgICAgIGlmIChzY2FsZWRWYWx1ZSA+IFVDSEFSX01BWCkKICAgICAgICAg
ICAgICAgICBzY2FsZWRWYWx1ZSA9IFVDSEFSX01BWDsKICAgICAgICAgICAgIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127450</attachid>
            <date>2012-02-16 15:07:05 -0800</date>
            <delta_ts>2022-02-28 00:06:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78729-20120216150703.patch</filename>
            <type>text/plain</type>
            <size>5833</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxYTNkYmJkMTY5MDcx
MTAwZGJmMTc3N2YxNGUyMmFmNjUyODMyYi4uZDlhMzI5MWU4MDY4OGZlZmM3MDJkODhiMzAyZWRl
NjAwMDQ2ZWZmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTE2ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZWFsdGltZUFuYWx5c2VyTm9k
ZSBkb2VzIG5vdCBjb25zaXN0ZW50bHkgcmVzcGVjdCAubWluRGVjaWJlbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI5CisKKyAgICAgICAgTWFr
ZSB1c2Ugb2YgbV9taW5EZWNpYmVsIGNvbnNpc3RlbnQuICBDbGVhbiB1cCBzb21lIHN0eWxlIGlz
c3VlcworICAgICAgICB3aXRoIG5hbWVzIG9mIGxvY2FsIHZhcmlhYmxlcyBhbmQgc3R5bGUgaXNz
dWVzIHdpdGggZmxvYXQKKyAgICAgICAgY29uc3RhbnRzLgorICAgICAgICAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEp
CisKKyAgICAgICAgKiB3ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6ZG9GRlRBbmFseXNp
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5j
eURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1
ZW5jeURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRp
bWVEb21haW5EYXRhKToKKwogMjAxMi0wMi0xNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMDc4MzYpOiBmYXN0L2JveC1zaGFkb3cvc3By
ZWFkLmh0bWwgYW5kIGZhc3Qvd3JpdGluZy1tb2RlL2JveC1zaGFkb3ctKi5odG1sIHRlc3RzIGZh
aWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKaW5k
ZXggYTNmODA3ZDgzN2Y3N2M0OWNjYjA0MTU1MGE2YTljOTBkODRjNWUxMS4uNzgwNDRlMmM5NDBk
N2E3NTVlYzliMTUzMDAxNDk5MDVkMzU3MzNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVk
aW8vUmVhbHRpbWVBbmFseXNlci5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlz
ZXI6OkRlZmF1bHRTbW9vdGhpbmdUaW1lQ29uc3RhbnQgID0gMC44OwotY29uc3QgZG91YmxlIFJl
YWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRNaW5EZWNpYmVscyA9IC0xMDAuMDsKLWNvbnN0IGRvdWJs
ZSBSZWFsdGltZUFuYWx5c2VyOjpEZWZhdWx0TWF4RGVjaWJlbHMgPSAtMzAuMDsKK2NvbnN0IGRv
dWJsZSBSZWFsdGltZUFuYWx5c2VyOjpEZWZhdWx0TWluRGVjaWJlbHMgPSAtMTAwOworY29uc3Qg
ZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRNYXhEZWNpYmVscyA9IC0zMDsKIAogY29u
c3QgdW5zaWduZWQgUmVhbHRpbWVBbmFseXNlcjo6RGVmYXVsdEZGVFNpemUgPSAyMDQ4OwogLy8g
QWxsIEZGVCBpbXBsZW1lbnRhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGhhbmRsZSBwb3dlci1vZi10
d28gc2l6ZXMgTWluRkZUU2l6ZSA8PSBzaXplIDw9IE1heEZGVFNpemUuCkBAIC0xNzUsMTAgKzE3
NSwxMCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmRvRkZUQW5hbHlzaXMoKQogICAgIGZsb2F0
KiBpbWFnUCA9IG1fYW5hbHlzaXNGcmFtZS0+aW1hZ0RhdGEoKTsKIAogICAgIC8vIEJsb3cgYXdh
eSB0aGUgcGFja2VkIG55cXVpc3QgY29tcG9uZW50LgotICAgIGltYWdQWzBdID0gMC4wZjsKKyAg
ICBpbWFnUFswXSA9IDA7CiAgICAgCiAgICAgLy8gTm9ybWFsaXplIHNvIHRoYW4gYW4gaW5wdXQg
c2luZSB3YXZlIGF0IDBkQmZzIHJlZ2lzdGVycyBhcyAwZEJmcyAodW5kbyBGRlQgc2NhbGluZyBm
YWN0b3IpLgotICAgIGNvbnN0IGRvdWJsZSBNYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRG
RlRTaXplOworICAgIGNvbnN0IGRvdWJsZSBtYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRG
RlRTaXplOwogCiAgICAgLy8gQSB2YWx1ZSBvZiAwIGRvZXMgbm8gYXZlcmFnaW5nIHdpdGggdGhl
IHByZXZpb3VzIHJlc3VsdC4gIExhcmdlciB2YWx1ZXMgcHJvZHVjZSBzbG93ZXIsIGJ1dCBzbW9v
dGhlciBjaGFuZ2VzLgogICAgIGRvdWJsZSBrID0gbV9zbW9vdGhpbmdUaW1lQ29uc3RhbnQ7CkBA
IC0xOTAsNyArMTkwLDcgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5c2lzKCkK
ICAgICBzaXplX3QgbiA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICBDb21wbGV4IGMocmVhbFBbaV0sIGltYWdQ
W2ldKTsKLSAgICAgICAgZG91YmxlIHNjYWxhck1hZ25pdHVkZSA9IGFicyhjKSAqIE1hZ25pdHVk
ZVNjYWxlOyAgICAgICAgCisgICAgICAgIGRvdWJsZSBzY2FsYXJNYWduaXR1ZGUgPSBhYnMoYykg
KiBtYWduaXR1ZGVTY2FsZTsgICAgICAgIAogICAgICAgICBkZXN0aW5hdGlvbltpXSA9IGZsb2F0
KGsgKiBkZXN0aW5hdGlvbltpXSArICgxLjAgLSBrKSAqIHNjYWxhck1hZ25pdHVkZSk7CiAgICAg
fQogfQpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0RmxvYXRG
cmVxdWVuY3lEYXRhKEZsb2F0MzJBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICBkb0ZGVEFu
YWx5c2lzKCk7CiAgICAgCiAgICAgLy8gQ29udmVydCBmcm9tIGxpbmVhciBtYWduaXR1ZGUgdG8g
ZmxvYXRpbmctcG9pbnQgZGVjaWJlbHMuCi0gICAgY29uc3QgZG91YmxlIE1pbkRlY2liZWxzID0g
bV9taW5EZWNpYmVsczsKKyAgICBjb25zdCBkb3VibGUgbWluRGVjaWJlbHMgPSBtX21pbkRlY2li
ZWxzOwogICAgIHVuc2lnbmVkIHNvdXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUo
KTsKICAgICBzaXplX3QgbGVuID0gbWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+
bGVuZ3RoKCkpOwogICAgIGlmIChsZW4gPiAwKSB7CkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBS
ZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5KiBkZXN0
aW5hdGlvbkFycmF5KQogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbjsgKytpKSB7CiAgICAgICAgICAgICBmbG9hdCBsaW5lYXJWYWx1ZSA9IHNvdXJjZVtpXTsK
LSAgICAgICAgICAgIGRvdWJsZSBkYk1hZyA9ICFsaW5lYXJWYWx1ZSA/IE1pbkRlY2liZWxzIDog
QXVkaW9VdGlsaXRpZXM6OmxpbmVhclRvRGVjaWJlbHMobGluZWFyVmFsdWUpOworICAgICAgICAg
ICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJlbHMgOiBBdWRpb1V0aWxp
dGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAgICAgICAgICBkZXN0aW5h
dGlvbltpXSA9IGZsb2F0KGRiTWFnKTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzMywyMSArMjMz
LDIyIEBAIHZvaWQgUmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEoVWludDhB
cnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICB1bnNpZ25lZCBzb3VyY2VMZW5ndGggPSBtYWdu
aXR1ZGVCdWZmZXIoKS5zaXplKCk7CiAgICAgc2l6ZV90IGxlbiA9IG1pbihzb3VyY2VMZW5ndGgs
IGRlc3RpbmF0aW9uQXJyYXktPmxlbmd0aCgpKTsKICAgICBpZiAobGVuID4gMCkgewotICAgICAg
ICBjb25zdCBkb3VibGUgUmFuZ2VTY2FsZUZhY3RvciA9IG1fbWF4RGVjaWJlbHMgPT0gbV9taW5E
ZWNpYmVscyA/IDEuMCA6IDEuMCAvIChtX21heERlY2liZWxzIC0gbV9taW5EZWNpYmVscyk7Cisg
ICAgICAgIGNvbnN0IGRvdWJsZSByYW5nZVNjYWxlRmFjdG9yID0gbV9tYXhEZWNpYmVscyA9PSBt
X21pbkRlY2liZWxzID8gMS4wIDogMS4wIC8gKG1fbWF4RGVjaWJlbHMgLSBtX21pbkRlY2liZWxz
KTsKKyAgICAgICAgY29uc3QgZG91YmxlIG1pbkRlY2liZWxzID0gbV9taW5EZWNpYmVsczsKIAog
ICAgICAgICBjb25zdCBmbG9hdCogc291cmNlID0gbWFnbml0dWRlQnVmZmVyKCkuZGF0YSgpOwog
ICAgICAgICB1bnNpZ25lZCBjaGFyKiBkZXN0aW5hdGlvbiA9IGRlc3RpbmF0aW9uQXJyYXktPmRh
dGEoKTsgICAgICAgIAogICAgICAgICAKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbjsgKytpKSB7CiAgICAgICAgICAgICBmbG9hdCBsaW5lYXJWYWx1ZSA9IHNvdXJjZVtpXTsK
LSAgICAgICAgICAgIGRvdWJsZSBkYk1hZyA9ICFsaW5lYXJWYWx1ZSA/IG1fbWluRGVjaWJlbHMg
OiBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CisgICAgICAg
ICAgICBkb3VibGUgZGJNYWcgPSAhbGluZWFyVmFsdWUgPyBtaW5EZWNpYmVscyA6IEF1ZGlvVXRp
bGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKGxpbmVhclZhbHVlKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgLy8gVGhlIHJhbmdlIG1fbWluRGVjaWJlbHMgdG8gbV9tYXhEZWNpYmVscyB3aWxs
IGJlIHNjYWxlZCB0byBieXRlIHZhbHVlcyBmcm9tIDAgdG8gVUNIQVJfTUFYLgotICAgICAgICAg
ICAgZG91YmxlIHNjYWxlZFZhbHVlID0gVUNIQVJfTUFYICogKGRiTWFnIC0gbV9taW5EZWNpYmVs
cykgKiBSYW5nZVNjYWxlRmFjdG9yOworICAgICAgICAgICAgZG91YmxlIHNjYWxlZFZhbHVlID0g
VUNIQVJfTUFYICogKGRiTWFnIC0gbWluRGVjaWJlbHMpICogcmFuZ2VTY2FsZUZhY3RvcjsKIAog
ICAgICAgICAgICAgLy8gQ2xpcCB0byB2YWxpZCByYW5nZS4KLSAgICAgICAgICAgIGlmIChzY2Fs
ZWRWYWx1ZSA8IDAuMCkKLSAgICAgICAgICAgICAgICBzY2FsZWRWYWx1ZSA9IDAuMDsKKyAgICAg
ICAgICAgIGlmIChzY2FsZWRWYWx1ZSA8IDApCisgICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUg
PSAwOwogICAgICAgICAgICAgaWYgKHNjYWxlZFZhbHVlID4gVUNIQVJfTUFYKQogICAgICAgICAg
ICAgICAgIHNjYWxlZFZhbHVlID0gVUNIQVJfTUFYOwogICAgICAgICAgICAgCkBAIC0yODQsOCAr
Mjg1LDggQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlVGltZURvbWFpbkRhdGEoVWlu
dDhBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICAgICAgICAgIGRvdWJsZSBzY2FsZWRWYWx1
ZSA9IDEyOC4wICogKHZhbHVlICsgMS4wKTsKIAogICAgICAgICAgICAgLy8gQ2xpcCB0byB2YWxp
ZCByYW5nZS4KLSAgICAgICAgICAgIGlmIChzY2FsZWRWYWx1ZSA8IDAuMCkKLSAgICAgICAgICAg
ICAgICBzY2FsZWRWYWx1ZSA9IDAuMDsKKyAgICAgICAgICAgIGlmIChzY2FsZWRWYWx1ZSA8IDAp
CisgICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUgPSAwOwogICAgICAgICAgICAgaWYgKHNjYWxl
ZFZhbHVlID4gVUNIQVJfTUFYKQogICAgICAgICAgICAgICAgIHNjYWxlZFZhbHVlID0gVUNIQVJf
TUFYOwogICAgICAgICAgICAgCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127508</attachid>
            <date>2012-02-16 20:32:22 -0800</date>
            <delta_ts>2012-02-17 08:54:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78729-20120216203220.patch</filename>
            <type>text/plain</type>
            <size>5862</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxYTNkYmJkMTY5MDcx
MTAwZGJmMTc3N2YxNGUyMmFmNjUyODMyYi4uOGZhNzg5NmI5MmZkNmU0MWEwZjI1OTdiZWU3NmM1
ODlkNGUyNDJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTE2ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZWFsdGltZUFuYWx5c2VyTm9k
ZSBkb2VzIG5vdCBjb25zaXN0ZW50bHkgcmVzcGVjdCAubWluRGVjaWJlbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI5CisKKyAgICAgICAgTWFr
ZSB1c2Ugb2YgbV9taW5EZWNpYmVsIGNvbnNpc3RlbnQuICBDbGVhbiB1cCBzb21lIHN0eWxlIGlz
c3VlcworICAgICAgICB3aXRoIG5hbWVzIG9mIGxvY2FsIHZhcmlhYmxlcyBhbmQgc3R5bGUgaXNz
dWVzIHdpdGggZmxvYXQKKyAgICAgICAgY29uc3RhbnRzLgorICAgICAgICAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZCBi
ZWNhdXNlIGNoYW5nZXMgYXJlIGNvc21ldGljLiAKKworICAgICAgICAqIHdlYmF1ZGlvL1JlYWx0
aW1lQW5hbHlzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5c2lzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0
aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJlcXVlbmN5RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlRnJlcXVlbmN5RGF0YSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlVGltZURvbWFpbkRhdGEpOgorCiAyMDEyLTAyLTE1
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAo
cjEwNzgzNik6IGZhc3QvYm94LXNoYWRvdy9zcHJlYWQuaHRtbCBhbmQgZmFzdC93cml0aW5nLW1v
ZGUvYm94LXNoYWRvdy0qLmh0bWwgdGVzdHMgZmFpbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJh
dWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcAppbmRleCBhM2Y4MDdkODM3Zjc3YzQ5Y2NiMDQxNTUw
YTZhOWM5MGQ4NGM1ZTExLi43ODA0NGUyYzk0MGQ3YTc1NWVjOWIxNTMwMDE0OTkwNWQzNTczM2U4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcApAQCAt
NDUsOCArNDUsOCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBkb3VibGUgUmVhbHRpbWVBbmFseXNlcjo6RGVmYXVsdFNtb290aGluZ1RpbWVDb25z
dGFudCAgPSAwLjg7Ci1jb25zdCBkb3VibGUgUmVhbHRpbWVBbmFseXNlcjo6RGVmYXVsdE1pbkRl
Y2liZWxzID0gLTEwMC4wOwotY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRN
YXhEZWNpYmVscyA9IC0zMC4wOworY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6OkRlZmF1
bHRNaW5EZWNpYmVscyA9IC0xMDA7Citjb25zdCBkb3VibGUgUmVhbHRpbWVBbmFseXNlcjo6RGVm
YXVsdE1heERlY2liZWxzID0gLTMwOwogCiBjb25zdCB1bnNpZ25lZCBSZWFsdGltZUFuYWx5c2Vy
OjpEZWZhdWx0RkZUU2l6ZSA9IDIwNDg7CiAvLyBBbGwgRkZUIGltcGxlbWVudGF0aW9ucyBhcmUg
ZXhwZWN0ZWQgdG8gaGFuZGxlIHBvd2VyLW9mLXR3byBzaXplcyBNaW5GRlRTaXplIDw9IHNpemUg
PD0gTWF4RkZUU2l6ZS4KQEAgLTE3NSwxMCArMTc1LDEwIEBAIHZvaWQgUmVhbHRpbWVBbmFseXNl
cjo6ZG9GRlRBbmFseXNpcygpCiAgICAgZmxvYXQqIGltYWdQID0gbV9hbmFseXNpc0ZyYW1lLT5p
bWFnRGF0YSgpOwogCiAgICAgLy8gQmxvdyBhd2F5IHRoZSBwYWNrZWQgbnlxdWlzdCBjb21wb25l
bnQuCi0gICAgaW1hZ1BbMF0gPSAwLjBmOworICAgIGltYWdQWzBdID0gMDsKICAgICAKICAgICAv
LyBOb3JtYWxpemUgc28gdGhhbiBhbiBpbnB1dCBzaW5lIHdhdmUgYXQgMGRCZnMgcmVnaXN0ZXJz
IGFzIDBkQmZzICh1bmRvIEZGVCBzY2FsaW5nIGZhY3RvcikuCi0gICAgY29uc3QgZG91YmxlIE1h
Z25pdHVkZVNjYWxlID0gMS4wIC8gRGVmYXVsdEZGVFNpemU7CisgICAgY29uc3QgZG91YmxlIG1h
Z25pdHVkZVNjYWxlID0gMS4wIC8gRGVmYXVsdEZGVFNpemU7CiAKICAgICAvLyBBIHZhbHVlIG9m
IDAgZG9lcyBubyBhdmVyYWdpbmcgd2l0aCB0aGUgcHJldmlvdXMgcmVzdWx0LiAgTGFyZ2VyIHZh
bHVlcyBwcm9kdWNlIHNsb3dlciwgYnV0IHNtb290aGVyIGNoYW5nZXMuCiAgICAgZG91YmxlIGsg
PSBtX3Ntb290aGluZ1RpbWVDb25zdGFudDsKQEAgLTE5MCw3ICsxOTAsNyBAQCB2b2lkIFJlYWx0
aW1lQW5hbHlzZXI6OmRvRkZUQW5hbHlzaXMoKQogICAgIHNpemVfdCBuID0gbWFnbml0dWRlQnVm
ZmVyKCkuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAg
ICAgIENvbXBsZXggYyhyZWFsUFtpXSwgaW1hZ1BbaV0pOwotICAgICAgICBkb3VibGUgc2NhbGFy
TWFnbml0dWRlID0gYWJzKGMpICogTWFnbml0dWRlU2NhbGU7ICAgICAgICAKKyAgICAgICAgZG91
YmxlIHNjYWxhck1hZ25pdHVkZSA9IGFicyhjKSAqIG1hZ25pdHVkZVNjYWxlOyAgICAgICAgCiAg
ICAgICAgIGRlc3RpbmF0aW9uW2ldID0gZmxvYXQoayAqIGRlc3RpbmF0aW9uW2ldICsgKDEuMCAt
IGspICogc2NhbGFyTWFnbml0dWRlKTsKICAgICB9CiB9CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9p
ZCBSZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5KiBk
ZXN0aW5hdGlvbkFycmF5KQogICAgIGRvRkZUQW5hbHlzaXMoKTsKICAgICAKICAgICAvLyBDb252
ZXJ0IGZyb20gbGluZWFyIG1hZ25pdHVkZSB0byBmbG9hdGluZy1wb2ludCBkZWNpYmVscy4KLSAg
ICBjb25zdCBkb3VibGUgTWluRGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOworICAgIGNvbnN0IGRv
dWJsZSBtaW5EZWNpYmVscyA9IG1fbWluRGVjaWJlbHM7CiAgICAgdW5zaWduZWQgc291cmNlTGVu
Z3RoID0gbWFnbml0dWRlQnVmZmVyKCkuc2l6ZSgpOwogICAgIHNpemVfdCBsZW4gPSBtaW4oc291
cmNlTGVuZ3RoLCBkZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7CiAgICAgaWYgKGxlbiA+IDAp
IHsKQEAgLTIxNCw3ICsyMTQsNyBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJl
cXVlbmN5RGF0YShGbG9hdDMyQXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgICAgIAogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgICAgIGZs
b2F0IGxpbmVhclZhbHVlID0gc291cmNlW2ldOwotICAgICAgICAgICAgZG91YmxlIGRiTWFnID0g
IWxpbmVhclZhbHVlID8gTWluRGVjaWJlbHMgOiBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNp
YmVscyhsaW5lYXJWYWx1ZSk7CisgICAgICAgICAgICBkb3VibGUgZGJNYWcgPSAhbGluZWFyVmFs
dWUgPyBtaW5EZWNpYmVscyA6IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKGxpbmVh
clZhbHVlKTsKICAgICAgICAgICAgIGRlc3RpbmF0aW9uW2ldID0gZmxvYXQoZGJNYWcpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMjMzLDIxICsyMzMsMjIgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2Vy
OjpnZXRCeXRlRnJlcXVlbmN5RGF0YShVaW50OEFycmF5KiBkZXN0aW5hdGlvbkFycmF5KQogICAg
IHVuc2lnbmVkIHNvdXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBz
aXplX3QgbGVuID0gbWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkp
OwogICAgIGlmIChsZW4gPiAwKSB7Ci0gICAgICAgIGNvbnN0IGRvdWJsZSBSYW5nZVNjYWxlRmFj
dG9yID0gbV9tYXhEZWNpYmVscyA9PSBtX21pbkRlY2liZWxzID8gMS4wIDogMS4wIC8gKG1fbWF4
RGVjaWJlbHMgLSBtX21pbkRlY2liZWxzKTsKKyAgICAgICAgY29uc3QgZG91YmxlIHJhbmdlU2Nh
bGVGYWN0b3IgPSBtX21heERlY2liZWxzID09IG1fbWluRGVjaWJlbHMgPyAxLjAgOiAxLjAgLyAo
bV9tYXhEZWNpYmVscyAtIG1fbWluRGVjaWJlbHMpOworICAgICAgICBjb25zdCBkb3VibGUgbWlu
RGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOwogCiAgICAgICAgIGNvbnN0IGZsb2F0KiBzb3VyY2Ug
PSBtYWduaXR1ZGVCdWZmZXIoKS5kYXRhKCk7CiAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRlc3Rp
bmF0aW9uID0gZGVzdGluYXRpb25BcnJheS0+ZGF0YSgpOyAgICAgICAgCiAgICAgICAgIAogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgICAgIGZs
b2F0IGxpbmVhclZhbHVlID0gc291cmNlW2ldOwotICAgICAgICAgICAgZG91YmxlIGRiTWFnID0g
IWxpbmVhclZhbHVlID8gbV9taW5EZWNpYmVscyA6IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0Rl
Y2liZWxzKGxpbmVhclZhbHVlKTsKKyAgICAgICAgICAgIGRvdWJsZSBkYk1hZyA9ICFsaW5lYXJW
YWx1ZSA/IG1pbkRlY2liZWxzIDogQXVkaW9VdGlsaXRpZXM6OmxpbmVhclRvRGVjaWJlbHMobGlu
ZWFyVmFsdWUpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAvLyBUaGUgcmFuZ2UgbV9taW5E
ZWNpYmVscyB0byBtX21heERlY2liZWxzIHdpbGwgYmUgc2NhbGVkIHRvIGJ5dGUgdmFsdWVzIGZy
b20gMCB0byBVQ0hBUl9NQVguCi0gICAgICAgICAgICBkb3VibGUgc2NhbGVkVmFsdWUgPSBVQ0hB
Ul9NQVggKiAoZGJNYWcgLSBtX21pbkRlY2liZWxzKSAqIFJhbmdlU2NhbGVGYWN0b3I7CisgICAg
ICAgICAgICBkb3VibGUgc2NhbGVkVmFsdWUgPSBVQ0hBUl9NQVggKiAoZGJNYWcgLSBtaW5EZWNp
YmVscykgKiByYW5nZVNjYWxlRmFjdG9yOwogCiAgICAgICAgICAgICAvLyBDbGlwIHRvIHZhbGlk
IHJhbmdlLgotICAgICAgICAgICAgaWYgKHNjYWxlZFZhbHVlIDwgMC4wKQotICAgICAgICAgICAg
ICAgIHNjYWxlZFZhbHVlID0gMC4wOworICAgICAgICAgICAgaWYgKHNjYWxlZFZhbHVlIDwgMCkK
KyAgICAgICAgICAgICAgICBzY2FsZWRWYWx1ZSA9IDA7CiAgICAgICAgICAgICBpZiAoc2NhbGVk
VmFsdWUgPiBVQ0hBUl9NQVgpCiAgICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUgPSBVQ0hBUl9N
QVg7CiAgICAgICAgICAgICAKQEAgLTI4NCw4ICsyODUsOCBAQCB2b2lkIFJlYWx0aW1lQW5hbHlz
ZXI6OmdldEJ5dGVUaW1lRG9tYWluRGF0YShVaW50OEFycmF5KiBkZXN0aW5hdGlvbkFycmF5KQog
ICAgICAgICAgICAgZG91YmxlIHNjYWxlZFZhbHVlID0gMTI4LjAgKiAodmFsdWUgKyAxLjApOwog
CiAgICAgICAgICAgICAvLyBDbGlwIHRvIHZhbGlkIHJhbmdlLgotICAgICAgICAgICAgaWYgKHNj
YWxlZFZhbHVlIDwgMC4wKQotICAgICAgICAgICAgICAgIHNjYWxlZFZhbHVlID0gMC4wOworICAg
ICAgICAgICAgaWYgKHNjYWxlZFZhbHVlIDwgMCkKKyAgICAgICAgICAgICAgICBzY2FsZWRWYWx1
ZSA9IDA7CiAgICAgICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPiBVQ0hBUl9NQVgpCiAgICAgICAg
ICAgICAgICAgc2NhbGVkVmFsdWUgPSBVQ0hBUl9NQVg7CiAgICAgICAgICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127598</attachid>
            <date>2012-02-17 08:54:48 -0800</date>
            <delta_ts>2012-02-17 12:57:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-78729-20120217085447.patch</filename>
            <type>text/plain</type>
            <size>6887</size>
            <attacher name="Raymond Toy">rtoy</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA3ODc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxYTNkYmJkMTY5MDcx
MTAwZGJmMTc3N2YxNGUyMmFmNjUyODMyYi4uZDExZDdmNjYzNjM1MzYxOTUyMDc5YTFmZjZlNjE0
Nzk5MDFiZGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTE2ICBSYXlt
b25kIFRveSAgPHJ0b3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZWFsdGltZUFuYWx5c2VyTm9k
ZSBkb2VzIG5vdCBjb25zaXN0ZW50bHkgcmVzcGVjdCAubWluRGVjaWJlbHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4NzI5CisKKyAgICAgICAgTWFr
ZSB1c2Ugb2YgbV9taW5EZWNpYmVsIGNvbnNpc3RlbnQuICBDbGVhbiB1cCBzb21lIHN0eWxlIGlz
c3VlcworICAgICAgICB3aXRoIG5hbWVzIG9mIGxvY2FsIHZhcmlhYmxlcyBhbmQgc3R5bGUgaXNz
dWVzIHdpdGggZmxvYXQKKyAgICAgICAgY29uc3RhbnRzLgorICAgICAgICAKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2Ug
dGhlIGNoYW5nZXMgYXJlIGNvc21ldGljIGZvciBzdHlsZSBpc3N1ZXMuCisKKyAgICAgICAgKiB3
ZWJhdWRpby9SZWFsdGltZUFuYWx5c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6ZG9GRlRBbmFseXNpcyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZUFuYWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZUZyZXF1ZW5jeURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVBbmFseXNlcjo6Z2V0Qnl0ZVRpbWVEb21haW5EYXRhKToK
KwogMjAxMi0wMi0xNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKHIxMDc4MzYpOiBmYXN0L2JveC1zaGFkb3cvc3ByZWFkLmh0bWwgYW5kIGZh
c3Qvd3JpdGluZy1tb2RlL2JveC1zaGFkb3ctKi5odG1sIHRlc3RzIGZhaWxpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dlYmF1ZGlvL1JlYWx0aW1lQW5hbHlzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFseXNlci5jcHAKaW5kZXggYTNmODA3ZDgzN2Y3
N2M0OWNjYjA0MTU1MGE2YTljOTBkODRjNWUxMS4uNTRhOWQxY2IwNDA4MGMyYmJlNGU3NzI4ZmIy
ZGM4M2M2MTkxMjk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRp
bWVBbmFseXNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd2ViYXVkaW8vUmVhbHRpbWVBbmFs
eXNlci5jcHAKQEAgLTQ1LDggKzQ1LDggQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6OkRlZmF1bHRTbW9v
dGhpbmdUaW1lQ29uc3RhbnQgID0gMC44OwotY29uc3QgZG91YmxlIFJlYWx0aW1lQW5hbHlzZXI6
OkRlZmF1bHRNaW5EZWNpYmVscyA9IC0xMDAuMDsKLWNvbnN0IGRvdWJsZSBSZWFsdGltZUFuYWx5
c2VyOjpEZWZhdWx0TWF4RGVjaWJlbHMgPSAtMzAuMDsKK2NvbnN0IGRvdWJsZSBSZWFsdGltZUFu
YWx5c2VyOjpEZWZhdWx0TWluRGVjaWJlbHMgPSAtMTAwOworY29uc3QgZG91YmxlIFJlYWx0aW1l
QW5hbHlzZXI6OkRlZmF1bHRNYXhEZWNpYmVscyA9IC0zMDsKIAogY29uc3QgdW5zaWduZWQgUmVh
bHRpbWVBbmFseXNlcjo6RGVmYXVsdEZGVFNpemUgPSAyMDQ4OwogLy8gQWxsIEZGVCBpbXBsZW1l
bnRhdGlvbnMgYXJlIGV4cGVjdGVkIHRvIGhhbmRsZSBwb3dlci1vZi10d28gc2l6ZXMgTWluRkZU
U2l6ZSA8PSBzaXplIDw9IE1heEZGVFNpemUuCkBAIC0xMzIsMTMgKzEzMiwxMyBAQCB2b2lkIGFw
cGx5V2luZG93KGZsb2F0KiBwLCBzaXplX3QgbikKICAgICAKICAgICAvLyBCbGFja21hbiB3aW5k
b3cKICAgICBkb3VibGUgYWxwaGEgPSAwLjE2OwotICAgIGRvdWJsZSBhMCA9IDAuNSAqICgxLjAg
LSBhbHBoYSk7CisgICAgZG91YmxlIGEwID0gMC41ICogKDEgLSBhbHBoYSk7CiAgICAgZG91Ymxl
IGExID0gMC41OwogICAgIGRvdWJsZSBhMiA9IDAuNSAqIGFscGhhOwogICAgIAogICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICAgZG91YmxlIHggPSBzdGF0aWNf
Y2FzdDxkb3VibGU+KGkpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihuKTsKLSAgICAgICAgZG91Ymxl
IHdpbmRvdyA9IGEwIC0gYTEgKiBjb3MoMi4wICogcGlEb3VibGUgKiB4KSArIGEyICogY29zKDQu
MCAqIHBpRG91YmxlICogeCk7CisgICAgICAgIGRvdWJsZSB3aW5kb3cgPSBhMCAtIGExICogY29z
KDIgKiBwaURvdWJsZSAqIHgpICsgYTIgKiBjb3MoNCAqIHBpRG91YmxlICogeCk7CiAgICAgICAg
IHBbaV0gKj0gZmxvYXQod2luZG93KTsKICAgICB9CiB9CkBAIC0xNzUsMTAgKzE3NSwxMCBAQCB2
b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmRvRkZUQW5hbHlzaXMoKQogICAgIGZsb2F0KiBpbWFnUCA9
IG1fYW5hbHlzaXNGcmFtZS0+aW1hZ0RhdGEoKTsKIAogICAgIC8vIEJsb3cgYXdheSB0aGUgcGFj
a2VkIG55cXVpc3QgY29tcG9uZW50LgotICAgIGltYWdQWzBdID0gMC4wZjsKKyAgICBpbWFnUFsw
XSA9IDA7CiAgICAgCiAgICAgLy8gTm9ybWFsaXplIHNvIHRoYW4gYW4gaW5wdXQgc2luZSB3YXZl
IGF0IDBkQmZzIHJlZ2lzdGVycyBhcyAwZEJmcyAodW5kbyBGRlQgc2NhbGluZyBmYWN0b3IpLgot
ICAgIGNvbnN0IGRvdWJsZSBNYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRGRlRTaXplOwor
ICAgIGNvbnN0IGRvdWJsZSBtYWduaXR1ZGVTY2FsZSA9IDEuMCAvIERlZmF1bHRGRlRTaXplOwog
CiAgICAgLy8gQSB2YWx1ZSBvZiAwIGRvZXMgbm8gYXZlcmFnaW5nIHdpdGggdGhlIHByZXZpb3Vz
IHJlc3VsdC4gIExhcmdlciB2YWx1ZXMgcHJvZHVjZSBzbG93ZXIsIGJ1dCBzbW9vdGhlciBjaGFu
Z2VzLgogICAgIGRvdWJsZSBrID0gbV9zbW9vdGhpbmdUaW1lQ29uc3RhbnQ7CkBAIC0xOTAsOCAr
MTkwLDggQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpkb0ZGVEFuYWx5c2lzKCkKICAgICBzaXpl
X3QgbiA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IG47ICsraSkgewogICAgICAgICBDb21wbGV4IGMocmVhbFBbaV0sIGltYWdQW2ldKTsKLSAg
ICAgICAgZG91YmxlIHNjYWxhck1hZ25pdHVkZSA9IGFicyhjKSAqIE1hZ25pdHVkZVNjYWxlOyAg
ICAgICAgCi0gICAgICAgIGRlc3RpbmF0aW9uW2ldID0gZmxvYXQoayAqIGRlc3RpbmF0aW9uW2ld
ICsgKDEuMCAtIGspICogc2NhbGFyTWFnbml0dWRlKTsKKyAgICAgICAgZG91YmxlIHNjYWxhck1h
Z25pdHVkZSA9IGFicyhjKSAqIG1hZ25pdHVkZVNjYWxlOyAgICAgICAgCisgICAgICAgIGRlc3Rp
bmF0aW9uW2ldID0gZmxvYXQoayAqIGRlc3RpbmF0aW9uW2ldICsgKDEgLSBrKSAqIHNjYWxhck1h
Z25pdHVkZSk7CiAgICAgfQogfQogCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBSZWFsdGltZUFu
YWx5c2VyOjpnZXRGbG9hdEZyZXF1ZW5jeURhdGEoRmxvYXQzMkFycmF5KiBkZXN0aW5hdGlvbkFy
cmF5KQogICAgIGRvRkZUQW5hbHlzaXMoKTsKICAgICAKICAgICAvLyBDb252ZXJ0IGZyb20gbGlu
ZWFyIG1hZ25pdHVkZSB0byBmbG9hdGluZy1wb2ludCBkZWNpYmVscy4KLSAgICBjb25zdCBkb3Vi
bGUgTWluRGVjaWJlbHMgPSBtX21pbkRlY2liZWxzOworICAgIGNvbnN0IGRvdWJsZSBtaW5EZWNp
YmVscyA9IG1fbWluRGVjaWJlbHM7CiAgICAgdW5zaWduZWQgc291cmNlTGVuZ3RoID0gbWFnbml0
dWRlQnVmZmVyKCkuc2l6ZSgpOwogICAgIHNpemVfdCBsZW4gPSBtaW4oc291cmNlTGVuZ3RoLCBk
ZXN0aW5hdGlvbkFycmF5LT5sZW5ndGgoKSk7CiAgICAgaWYgKGxlbiA+IDApIHsKQEAgLTIxNCw3
ICsyMTQsNyBAQCB2b2lkIFJlYWx0aW1lQW5hbHlzZXI6OmdldEZsb2F0RnJlcXVlbmN5RGF0YShG
bG9hdDMyQXJyYXkqIGRlc3RpbmF0aW9uQXJyYXkpCiAgICAgICAgIAogICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbGVuOyArK2kpIHsKICAgICAgICAgICAgIGZsb2F0IGxpbmVhclZh
bHVlID0gc291cmNlW2ldOwotICAgICAgICAgICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZhbHVl
ID8gTWluRGVjaWJlbHMgOiBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJW
YWx1ZSk7CisgICAgICAgICAgICBkb3VibGUgZGJNYWcgPSAhbGluZWFyVmFsdWUgPyBtaW5EZWNp
YmVscyA6IEF1ZGlvVXRpbGl0aWVzOjpsaW5lYXJUb0RlY2liZWxzKGxpbmVhclZhbHVlKTsKICAg
ICAgICAgICAgIGRlc3RpbmF0aW9uW2ldID0gZmxvYXQoZGJNYWcpOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjMzLDIxICsyMzMsMjIgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlRnJl
cXVlbmN5RGF0YShVaW50OEFycmF5KiBkZXN0aW5hdGlvbkFycmF5KQogICAgIHVuc2lnbmVkIHNv
dXJjZUxlbmd0aCA9IG1hZ25pdHVkZUJ1ZmZlcigpLnNpemUoKTsKICAgICBzaXplX3QgbGVuID0g
bWluKHNvdXJjZUxlbmd0aCwgZGVzdGluYXRpb25BcnJheS0+bGVuZ3RoKCkpOwogICAgIGlmIChs
ZW4gPiAwKSB7Ci0gICAgICAgIGNvbnN0IGRvdWJsZSBSYW5nZVNjYWxlRmFjdG9yID0gbV9tYXhE
ZWNpYmVscyA9PSBtX21pbkRlY2liZWxzID8gMS4wIDogMS4wIC8gKG1fbWF4RGVjaWJlbHMgLSBt
X21pbkRlY2liZWxzKTsKKyAgICAgICAgY29uc3QgZG91YmxlIHJhbmdlU2NhbGVGYWN0b3IgPSBt
X21heERlY2liZWxzID09IG1fbWluRGVjaWJlbHMgPyAxIDogMSAvIChtX21heERlY2liZWxzIC0g
bV9taW5EZWNpYmVscyk7CisgICAgICAgIGNvbnN0IGRvdWJsZSBtaW5EZWNpYmVscyA9IG1fbWlu
RGVjaWJlbHM7CiAKICAgICAgICAgY29uc3QgZmxvYXQqIHNvdXJjZSA9IG1hZ25pdHVkZUJ1ZmZl
cigpLmRhdGEoKTsKICAgICAgICAgdW5zaWduZWQgY2hhciogZGVzdGluYXRpb24gPSBkZXN0aW5h
dGlvbkFycmF5LT5kYXRhKCk7ICAgICAgICAKICAgICAgICAgCiAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBsZW47ICsraSkgewogICAgICAgICAgICAgZmxvYXQgbGluZWFyVmFsdWUg
PSBzb3VyY2VbaV07Ci0gICAgICAgICAgICBkb3VibGUgZGJNYWcgPSAhbGluZWFyVmFsdWUgPyBt
X21pbkRlY2liZWxzIDogQXVkaW9VdGlsaXRpZXM6OmxpbmVhclRvRGVjaWJlbHMobGluZWFyVmFs
dWUpOworICAgICAgICAgICAgZG91YmxlIGRiTWFnID0gIWxpbmVhclZhbHVlID8gbWluRGVjaWJl
bHMgOiBBdWRpb1V0aWxpdGllczo6bGluZWFyVG9EZWNpYmVscyhsaW5lYXJWYWx1ZSk7CiAgICAg
ICAgICAgICAKICAgICAgICAgICAgIC8vIFRoZSByYW5nZSBtX21pbkRlY2liZWxzIHRvIG1fbWF4
RGVjaWJlbHMgd2lsbCBiZSBzY2FsZWQgdG8gYnl0ZSB2YWx1ZXMgZnJvbSAwIHRvIFVDSEFSX01B
WC4KLSAgICAgICAgICAgIGRvdWJsZSBzY2FsZWRWYWx1ZSA9IFVDSEFSX01BWCAqIChkYk1hZyAt
IG1fbWluRGVjaWJlbHMpICogUmFuZ2VTY2FsZUZhY3RvcjsKKyAgICAgICAgICAgIGRvdWJsZSBz
Y2FsZWRWYWx1ZSA9IFVDSEFSX01BWCAqIChkYk1hZyAtIG1pbkRlY2liZWxzKSAqIHJhbmdlU2Nh
bGVGYWN0b3I7CiAKICAgICAgICAgICAgIC8vIENsaXAgdG8gdmFsaWQgcmFuZ2UuCi0gICAgICAg
ICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwLjApCi0gICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUg
PSAwLjA7CisgICAgICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwKQorICAgICAgICAgICAgICAg
IHNjYWxlZFZhbHVlID0gMDsKICAgICAgICAgICAgIGlmIChzY2FsZWRWYWx1ZSA+IFVDSEFSX01B
WCkKICAgICAgICAgICAgICAgICBzY2FsZWRWYWx1ZSA9IFVDSEFSX01BWDsKICAgICAgICAgICAg
IApAQCAtMjgwLDEyICsyODEsMTIgQEAgdm9pZCBSZWFsdGltZUFuYWx5c2VyOjpnZXRCeXRlVGlt
ZURvbWFpbkRhdGEoVWludDhBcnJheSogZGVzdGluYXRpb25BcnJheSkKICAgICAgICAgICAgIC8v
IEJ1ZmZlciBhY2Nlc3MgaXMgcHJvdGVjdGVkIGR1ZSB0byBtb2R1bG8gb3BlcmF0aW9uLgogICAg
ICAgICAgICAgZmxvYXQgdmFsdWUgPSBpbnB1dEJ1ZmZlclsoaSArIHdyaXRlSW5kZXggLSBmZnRT
aXplICsgSW5wdXRCdWZmZXJTaXplKSAlIElucHV0QnVmZmVyU2l6ZV07CiAKLSAgICAgICAgICAg
IC8vIFNjYWxlIGZyb20gbm9taW5hbCAtMS4wIC0+ICsxLjAgdG8gdW5zaWduZWQgYnl0ZS4KLSAg
ICAgICAgICAgIGRvdWJsZSBzY2FsZWRWYWx1ZSA9IDEyOC4wICogKHZhbHVlICsgMS4wKTsKKyAg
ICAgICAgICAgIC8vIFNjYWxlIGZyb20gbm9taW5hbCAtMSAtPiArMSB0byB1bnNpZ25lZCBieXRl
LgorICAgICAgICAgICAgZG91YmxlIHNjYWxlZFZhbHVlID0gMTI4ICogKHZhbHVlICsgMSk7CiAK
ICAgICAgICAgICAgIC8vIENsaXAgdG8gdmFsaWQgcmFuZ2UuCi0gICAgICAgICAgICBpZiAoc2Nh
bGVkVmFsdWUgPCAwLjApCi0gICAgICAgICAgICAgICAgc2NhbGVkVmFsdWUgPSAwLjA7CisgICAg
ICAgICAgICBpZiAoc2NhbGVkVmFsdWUgPCAwKQorICAgICAgICAgICAgICAgIHNjYWxlZFZhbHVl
ID0gMDsKICAgICAgICAgICAgIGlmIChzY2FsZWRWYWx1ZSA+IFVDSEFSX01BWCkKICAgICAgICAg
ICAgICAgICBzY2FsZWRWYWx1ZSA9IFVDSEFSX01BWDsKICAgICAgICAgICAgIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>