<?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>33035</bug_id>
          
          <creation_ts>2009-12-29 18:19:38 -0800</creation_ts>
          <short_desc>[Qt] RenderThemeQt::applyTheme is a misnomer and is suboptimally coded.</short_desc>
          <delta_ts>2009-12-30 09:42:20 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>
          
          <blocked>30173</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carol Szabo">carol</reporter>
          <assigned_to name="Carol Szabo">carol</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>hausmann</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>175741</commentid>
    <comment_count>0</comment_count>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-12-29 18:19:38 -0800</bug_when>
    <thetext>RenderThemeQt::applyTheme, does not apply any Theme settings to the CSS Style of the control as it might be interpreted, on the contrary, the larger part of it initializes values in the QStyleOption used to paint controls from the CSS Style settings in WebKit and the status of the control to be painted.
Also, the checks for null style are inconsistent. calls to renderer-&gt;style() and RendererStyle-&gt;controlPart() are repeated needlessly.
Other checks for null pointers are missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175756</commentid>
    <comment_count>1</comment_count>
      <attachid>45630</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-12-29 18:51:18 -0800</bug_when>
    <thetext>Created attachment 45630
Proposed Patch

This patch fixes the issues mentioned in this bug and also fixes some style issues detected by check-webkit-style (header inclusion order and header guard name).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175758</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-29 18:55:43 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45630 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175759</commentid>
    <comment_count>3</comment_count>
      <attachid>45631</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-12-29 19:13:55 -0800</bug_when>
    <thetext>Created attachment 45631
Proposed Patch

Minor fixes in ChangeLog comments, also inlined extracted function since it is used from only one place for readability only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175760</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-29 19:16:11 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45631 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175856</commentid>
    <comment_count>5</comment_count>
      <attachid>45631</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-12-30 01:59:25 -0800</bug_when>
    <thetext>Comment on attachment 45631
Proposed Patch

The patch basically looks fine, but would be better if you split it up, as it is hard to read.

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 52638)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,28 @@
&gt; +2009-12-29  Carol Szabo  &lt;carol.szabo@nokia.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +         [Qt] RenderThemeQt::applyTheme is a misnomer and is suboptimally coded.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=33035

Misses space after this

&gt; +        This patch:
&gt; +        - renames RenderThemeQt::applyTheme to initializeCommonQStyleOptions,
&gt; +        - extracts the palette initialization code to a separate function in order to
&gt; +        provide for readable pointer checking and moves this code up in the function to
&gt; +        allow for future changes to the palette brushes needed for bug 30173,
&gt; +        - optimizes some of the code in the function for readability, speed and size.
&gt; +        - fixes some minor style issues
&gt; +
&gt; +        No new tests because code behavior is not changed.
&gt; +
&gt; +        * platform/qt/RenderThemeQt.cpp:
&gt; +        (WebCore::RenderThemeQt::paintButton):
&gt; +        (WebCore::RenderThemeQt::paintTextField):
&gt; +        (WebCore::RenderThemeQt::paintMenuList):
&gt; +        (WebCore::RenderThemeQt::paintMenuListButton):
&gt; +        (WebCore::initPaletteFromPageClientIfExists):
&gt; +        (WebCore::RenderThemeQt::initializeCommonQStyleOptions):
&gt; +        * platform/qt/RenderThemeQt.h:
&gt; +
&gt;  2009-12-29  Andrei Popescu  &lt;andreip@google.com&gt;
&gt;  
&gt;          Reviewed by Adam Barth.
&gt; Index: WebCore/platform/qt/RenderThemeQt.cpp
&gt; ===================================================================
&gt; --- WebCore/platform/qt/RenderThemeQt.cpp	(revision 52596)
&gt; +++ WebCore/platform/qt/RenderThemeQt.cpp	(working copy)
&gt; @@ -43,10 +43,10 @@
&gt;  #include &quot;HTMLNames.h&quot;
&gt;  #include &quot;NotImplemented.h&quot;
&gt;  #include &quot;Page.h&quot;
&gt; +#include &quot;QWebPageClient.h&quot;
&gt;  #include &quot;RenderBox.h&quot;
&gt;  #include &quot;RenderTheme.h&quot;
&gt;  #include &quot;UserAgentStyleSheets.h&quot;
&gt; -#include &quot;QWebPageClient.h&quot;
&gt;  #include &quot;qwebpage.h&quot;
&gt;  
&gt;  #include &lt;QApplication&gt;
&gt; @@ -477,7 +477,7 @@ bool RenderThemeQt::paintButton(RenderOb
&gt;      option.rect = r;
&gt;      option.state |= QStyle::State_Small;
&gt;  
&gt; -    ControlPart appearance = applyTheme(option, o);
&gt; +    ControlPart appearance = initializeCommonQStyleOptions(option, o);
&gt;      if (appearance == PushButtonPart || appearance == ButtonPart) {
&gt;          option.rect = inflateButtonRect(option.rect, qStyle());
&gt;          p.drawControl(QStyle::CE_PushButton, option);
&gt; @@ -513,7 +513,7 @@ bool RenderThemeQt::paintTextField(Rende
&gt;      panel.features = QStyleOptionFrameV2::None;
&gt;  
&gt;      // Get the correct theme data for a text field
&gt; -    ControlPart appearance = applyTheme(panel, o);
&gt; +    ControlPart appearance = initializeCommonQStyleOptions(panel, o);
&gt;      if (appearance != TextFieldPart
&gt;          &amp;&amp; appearance != SearchFieldPart
&gt;          &amp;&amp; appearance != TextAreaPart
&gt; @@ -575,7 +575,7 @@ bool RenderThemeQt::paintMenuList(Render
&gt;      QStyleOptionComboBox opt;
&gt;      if (p.widget)
&gt;          opt.initFrom(p.widget);
&gt; -    applyTheme(opt, o);
&gt; +    initializeCommonQStyleOptions(opt, o);
&gt;  
&gt;      const QPoint topLeft = r.topLeft();
&gt;      p.painter-&gt;translate(topLeft);
&gt; @@ -615,7 +615,7 @@ bool RenderThemeQt::paintMenuListButton(
&gt;      QStyleOptionComboBox option;
&gt;      if (p.widget)
&gt;          option.initFrom(p.widget);
&gt; -    applyTheme(option, o);
&gt; +    initializeCommonQStyleOptions(option, o);
&gt;      option.rect = r;
&gt;  
&gt;      // for drawing the combo box arrow, rely only on the fallback style
&gt; @@ -712,7 +712,25 @@ bool RenderThemeQt::supportsFocus(Contro
&gt;      }
&gt;  }
&gt;  
&gt; -ControlPart RenderThemeQt::applyTheme(QStyleOption&amp; option, RenderObject* o) const
&gt; +static inline void initPaletteFromPageClientIfExists(QPalette &amp;palette, const RenderObject *o)

Maybe setPalette...

&gt; +{
&gt; +    // If the webview has a custom palette, use it
&gt; +    Page* page = o-&gt;document()-&gt;page();
&gt; +    if (!page)
&gt; +        return;
&gt; +    Chrome* chrome = page-&gt;chrome();
&gt; +    if (!chrome)
&gt; +        return;
&gt; +    ChromeClient* chromeClient = chrome-&gt;client();
&gt; +    if (!chromeClient)
&gt; +        return;
&gt; +    QWebPageClient* pageClient = chromeClient-&gt;platformPageClient();
&gt; +    if (!pageClient)
&gt; +        return;
&gt; +    palette = pageClient-&gt;palette();
&gt; +}
&gt; +
&gt; +ControlPart RenderThemeQt::initializeCommonQStyleOptions(QStyleOption&amp; option, RenderObject* o) const
&gt;  {
&gt;      // Default bits: no focus, no mouse over
&gt;      option.state &amp;= ~(QStyle::State_HasFocus | QStyle::State_MouseOver);
&gt; @@ -724,19 +742,24 @@ ControlPart RenderThemeQt::applyTheme(QS
&gt;          // Readonly is supported on textfields.
&gt;          option.state |= QStyle::State_ReadOnly;
&gt;  
&gt; -    if (supportsFocus(o-&gt;style()-&gt;appearance()) &amp;&amp; isFocused(o)) {
&gt; -        option.state |= QStyle::State_HasFocus;
&gt; -        option.state |= QStyle::State_KeyboardFocusChange;
&gt; -    }
&gt; +    option.direction = Qt::LeftToRight;
&gt;  
&gt;      if (isHovered(o))
&gt;          option.state |= QStyle::State_MouseOver;
&gt;  
&gt; -    option.direction = Qt::LeftToRight;
&gt; -    if (o-&gt;style() &amp;&amp; o-&gt;style()-&gt;direction() == WebCore::RTL)
&gt; -        option.direction = Qt::RightToLeft;
&gt; +    initPaletteFromPageClientIfExists(option.palette, o);
&gt; +    RenderStyle* style = o-&gt;style();
&gt; +    if (!style)
&gt; +        return NoControlPart;
&gt;  
&gt; -    ControlPart result = o-&gt;style()-&gt;appearance();
&gt; +    ControlPart result = style-&gt;appearance();
&gt; +    if (supportsFocus(result) &amp;&amp; isFocused(o)) {
&gt; +        option.state |= QStyle::State_HasFocus;
&gt; +        option.state |= QStyle::State_KeyboardFocusChange;
&gt; +    }
&gt; +
&gt; +    if (style-&gt;direction() == WebCore::RTL)
&gt; +        option.direction = Qt::RightToLeft;
&gt;  
&gt;      switch (result) {
&gt;      case PushButtonPart:
&gt; @@ -753,18 +776,9 @@ ControlPart RenderThemeQt::applyTheme(QS
&gt;              option.state |= QStyle::State_Raised;
&gt;          break;
&gt;      }
&gt; -    }
&gt; -
&gt; -    if (result == RadioPart || result == CheckboxPart)
&gt; +    case RadioPart:
&gt; +    case CheckboxPart:
&gt;          option.state |= (isChecked(o) ? QStyle::State_On : QStyle::State_Off);
&gt; -
&gt; -    // If the owner widget has a custom palette, use it
&gt; -    Page* page = o-&gt;document()-&gt;page();
&gt; -    if (page) {
&gt; -        ChromeClient* client = page-&gt;chrome()-&gt;client();
&gt; -        QWebPageClient* pageClient = client-&gt;platformPageClient();
&gt; -        if (pageClient)
&gt; -            option.palette = pageClient-&gt;palette();
&gt;      }
&gt;  
&gt;      return result;
&gt; Index: WebCore/platform/qt/RenderThemeQt.h
&gt; ===================================================================
&gt; --- WebCore/platform/qt/RenderThemeQt.h	(revision 52596)
&gt; +++ WebCore/platform/qt/RenderThemeQt.h	(working copy)
&gt; @@ -19,8 +19,8 @@
&gt;   * Boston, MA 02110-1301, USA.
&gt;   *
&gt;   */
&gt; -#ifndef RenderThemeQt_H
&gt; -#define RenderThemeQt_H
&gt; +#ifndef RenderThemeQt_h
&gt; +#define RenderThemeQt_h
&gt;  
&gt;  #include &quot;RenderTheme.h&quot;
&gt;  
&gt; @@ -132,7 +132,7 @@ private:
&gt;  private:
&gt;      bool supportsFocus(ControlPart) const;
&gt;  
&gt; -    ControlPart applyTheme(QStyleOption&amp;, RenderObject*) const;
&gt; +    ControlPart initializeCommonQStyleOptions(QStyleOption&amp;, RenderObject*) const;
&gt;  
&gt;      void setButtonPadding(RenderStyle*) const;
&gt;      void setPopupPadding(RenderStyle*) const;
&gt; @@ -180,4 +180,4 @@ private:
&gt;  
&gt;  }
&gt;  
&gt; -#endif
&gt; +#endif // RenderThemeQt_h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175935</commentid>
    <comment_count>6</comment_count>
      <attachid>45665</attachid>
    <who name="Carol Szabo">carol</who>
    <bug_when>2009-12-30 09:07:29 -0800</bug_when>
    <thetext>Created attachment 45665
Proposed Patch; Addressed Kenneth&apos;s concerns</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175936</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-30 09:09:05 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45665 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175942</commentid>
    <comment_count>8</comment_count>
      <attachid>45665</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-12-30 09:32:51 -0800</bug_when>
    <thetext>Comment on attachment 45665
Proposed Patch; Addressed Kenneth&apos;s concerns

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175950</commentid>
    <comment_count>9</comment_count>
      <attachid>45665</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-30 09:42:14 -0800</bug_when>
    <thetext>Comment on attachment 45665
Proposed Patch; Addressed Kenneth&apos;s concerns

Clearing flags on attachment: 45665

Committed r52664: &lt;http://trac.webkit.org/changeset/52664&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175951</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-30 09:42:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45630</attachid>
            <date>2009-12-29 18:51:18 -0800</date>
            <delta_ts>2009-12-29 19:13:55 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>patchFor33035-1.patch</filename>
            <type>text/plain</type>
            <size>6970</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjYzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMTItMjkgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICBbUXRdIFJlbmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUgaXMgYSBtaXNub21tZXIgYW5kIGlzIHN1
Ym9wdGltYWxseSBjb2RlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMzMDM1CisgICAgICAgIFRoaXMgcGF0Y2g6CisgICAgICAgIC0gcmVuYW1lcyBS
ZW5kZXJUaGVtZVF0OjphcHBseVRoZW1lIHRvIGluaXRpYWxpemVDb21tb25RU3R5bGVPcHRpb25z
LAorICAgICAgICAtIGV4dHJhY3RzIHRoZSBwYWxldHRlIGluaXRpYWxpemF0aW9uIGNvZGUgdG8g
YSBzZXBhcmF0ZSBmdW5jdGlvbiBpbiBvcmRlciB0bworICAgICAgICBwcm92aWRlIGZvciByZWFk
YWJsZSBwb2ludGVyIGNoZWNraW5nIGFuZCBtb3ZlcyB0aGlzIGNvZGUgdXAgaW4gdGhlIGZ1bmN0
aW9uIHRvCisgICAgICAgIGFsbG93IGZvciBmdXR1cmUgY2hhbmdlcyB0byB0aGUgcGFsZXR0ZSBi
cnVzaGVzIG5lZWRlZCBmb3IgYnVnIDMwMTczLAorICAgICAgICAtIG9wdGltaXplcyBzb21lIG9m
IHRoZSBjb2RlIGluIHRoZSBmdW5jdGlvbiBmb3IgcmVhZGFiaWxpdHksIHNwZWVkIGFuZCBzaXpl
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIGNvZGUgYmVoYXZpb3IgaXMgbm90IGNo
YW5nZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50VGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lUXQ6OnBhaW50TWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVRdDo6cGFpbnRNZW51TGlzdEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjppbml0UGFsZXR0
ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVR
dDo6aW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuaDoKKwogMjAwOS0xMi0yOSAgQW5kcmVpIFBvcGVzY3UgIDxhbmRyZWlw
QGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkocmV2aXNpb24gNTI1OTYpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Mywx
MCArNDMsMTAgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgog
I2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVk
ZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKLSNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgog
I2luY2x1ZGUgInF3ZWJwYWdlLmgiCiAKICNpbmNsdWRlIDxRQXBwbGljYXRpb24+CkBAIC00Nzcs
NyArNDc3LDcgQEAgYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludEJ1dHRvbihSZW5kZXJPYgogICAg
IG9wdGlvbi5yZWN0ID0gcjsKICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0ZV9TbWFs
bDsKIAotICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBhcHBseVRoZW1lKG9wdGlvbiwgbyk7
CisgICAgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSA9IGluaXRpYWxpemVDb21tb25RU3R5bGVPcHRp
b25zKG9wdGlvbiwgbyk7CiAgICAgaWYgKGFwcGVhcmFuY2UgPT0gUHVzaEJ1dHRvblBhcnQgfHwg
YXBwZWFyYW5jZSA9PSBCdXR0b25QYXJ0KSB7CiAgICAgICAgIG9wdGlvbi5yZWN0ID0gaW5mbGF0
ZUJ1dHRvblJlY3Qob3B0aW9uLnJlY3QsIHFTdHlsZSgpKTsKICAgICAgICAgcC5kcmF3Q29udHJv
bChRU3R5bGU6OkNFX1B1c2hCdXR0b24sIG9wdGlvbik7CkBAIC01MTMsNyArNTEzLDcgQEAgYm9v
bCBSZW5kZXJUaGVtZVF0OjpwYWludFRleHRGaWVsZChSZW5kZQogICAgIHBhbmVsLmZlYXR1cmVz
ID0gUVN0eWxlT3B0aW9uRnJhbWVWMjo6Tm9uZTsKIAogICAgIC8vIEdldCB0aGUgY29ycmVjdCB0
aGVtZSBkYXRhIGZvciBhIHRleHQgZmllbGQKLSAgICBDb250cm9sUGFydCBhcHBlYXJhbmNlID0g
YXBwbHlUaGVtZShwYW5lbCwgbyk7CisgICAgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSA9IGluaXRp
YWxpemVDb21tb25RU3R5bGVPcHRpb25zKHBhbmVsLCBvKTsKICAgICBpZiAoYXBwZWFyYW5jZSAh
PSBUZXh0RmllbGRQYXJ0CiAgICAgICAgICYmIGFwcGVhcmFuY2UgIT0gU2VhcmNoRmllbGRQYXJ0
CiAgICAgICAgICYmIGFwcGVhcmFuY2UgIT0gVGV4dEFyZWFQYXJ0CkBAIC01NzUsNyArNTc1LDcg
QEAgYm9vbCBSZW5kZXJUaGVtZVF0OjpwYWludE1lbnVMaXN0KFJlbmRlcgogICAgIFFTdHlsZU9w
dGlvbkNvbWJvQm94IG9wdDsKICAgICBpZiAocC53aWRnZXQpCiAgICAgICAgIG9wdC5pbml0RnJv
bShwLndpZGdldCk7Ci0gICAgYXBwbHlUaGVtZShvcHQsIG8pOworICAgIGluaXRpYWxpemVDb21t
b25RU3R5bGVPcHRpb25zKG9wdCwgbyk7CiAKICAgICBjb25zdCBRUG9pbnQgdG9wTGVmdCA9IHIu
dG9wTGVmdCgpOwogICAgIHAucGFpbnRlci0+dHJhbnNsYXRlKHRvcExlZnQpOwpAQCAtNjE1LDcg
KzYxNSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRNZW51TGlzdEJ1dHRvbigKICAgICBR
U3R5bGVPcHRpb25Db21ib0JveCBvcHRpb247CiAgICAgaWYgKHAud2lkZ2V0KQogICAgICAgICBv
cHRpb24uaW5pdEZyb20ocC53aWRnZXQpOwotICAgIGFwcGx5VGhlbWUob3B0aW9uLCBvKTsKKyAg
ICBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhvcHRpb24sIG8pOwogICAgIG9wdGlvbi5y
ZWN0ID0gcjsKIAogICAgIC8vIGZvciBkcmF3aW5nIHRoZSBjb21ibyBib3ggYXJyb3csIHJlbHkg
b25seSBvbiB0aGUgZmFsbGJhY2sgc3R5bGUKQEAgLTcxMiw3ICs3MTIsMjUgQEAgYm9vbCBSZW5k
ZXJUaGVtZVF0OjpzdXBwb3J0c0ZvY3VzKENvbnRybwogICAgIH0KIH0KIAotQ29udHJvbFBhcnQg
UmVuZGVyVGhlbWVRdDo6YXBwbHlUaGVtZShRU3R5bGVPcHRpb24mIG9wdGlvbiwgUmVuZGVyT2Jq
ZWN0KiBvKSBjb25zdAorc3RhdGljIHZvaWQgaW5pdFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhp
c3RzKFFQYWxldHRlICZwYWxldHRlLCBjb25zdCBSZW5kZXJPYmplY3QgKm8pCit7CisgICAgLy8g
SWYgdGhlIHdlYnZpZXcgaGFzIGEgY3VzdG9tIHBhbGV0dGUsIHVzZSBpdAorICAgIFBhZ2UqIHBh
Z2UgPSBvLT5kb2N1bWVudCgpLT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm47CisgICAgQ2hyb21lKiBjaHJvbWUgPSBwYWdlLT5jaHJvbWUoKTsKKyAgICBpZiAoIWNocm9t
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIENocm9tZUNsaWVudCogY2hyb21lQ2xpZW50ID0gY2hy
b21lLT5jbGllbnQoKTsKKyAgICBpZiAoIWNocm9tZUNsaWVudCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIFFXZWJQYWdlQ2xpZW50KiBwYWdlQ2xpZW50ID0gY2hyb21lQ2xpZW50LT5wbGF0Zm9ybVBh
Z2VDbGllbnQoKTsKKyAgICBpZiAoIXBhZ2VDbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBw
YWxldHRlID0gcGFnZUNsaWVudC0+cGFsZXR0ZSgpOworfQorCitDb250cm9sUGFydCBSZW5kZXJU
aGVtZVF0Ojppbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhRU3R5bGVPcHRpb24mIG9wdGlv
biwgUmVuZGVyT2JqZWN0KiBvKSBjb25zdAogewogICAgIC8vIERlZmF1bHQgYml0czogbm8gZm9j
dXMsIG5vIG1vdXNlIG92ZXIKICAgICBvcHRpb24uc3RhdGUgJj0gfihRU3R5bGU6OlN0YXRlX0hh
c0ZvY3VzIHwgUVN0eWxlOjpTdGF0ZV9Nb3VzZU92ZXIpOwpAQCAtNzI0LDE5ICs3NDIsMjQgQEAg
Q29udHJvbFBhcnQgUmVuZGVyVGhlbWVRdDo6YXBwbHlUaGVtZShRUwogICAgICAgICAvLyBSZWFk
b25seSBpcyBzdXBwb3J0ZWQgb24gdGV4dGZpZWxkcy4KICAgICAgICAgb3B0aW9uLnN0YXRlIHw9
IFFTdHlsZTo6U3RhdGVfUmVhZE9ubHk7CiAKLSAgICBpZiAoc3VwcG9ydHNGb2N1cyhvLT5zdHls
ZSgpLT5hcHBlYXJhbmNlKCkpICYmIGlzRm9jdXNlZChvKSkgewotICAgICAgICBvcHRpb24uc3Rh
dGUgfD0gUVN0eWxlOjpTdGF0ZV9IYXNGb2N1czsKLSAgICAgICAgb3B0aW9uLnN0YXRlIHw9IFFT
dHlsZTo6U3RhdGVfS2V5Ym9hcmRGb2N1c0NoYW5nZTsKLSAgICB9CisgICAgb3B0aW9uLmRpcmVj
dGlvbiA9IFF0OjpMZWZ0VG9SaWdodDsKIAogICAgIGlmIChpc0hvdmVyZWQobykpCiAgICAgICAg
IG9wdGlvbi5zdGF0ZSB8PSBRU3R5bGU6OlN0YXRlX01vdXNlT3ZlcjsKIAotICAgIG9wdGlvbi5k
aXJlY3Rpb24gPSBRdDo6TGVmdFRvUmlnaHQ7Ci0gICAgaWYgKG8tPnN0eWxlKCkgJiYgby0+c3R5
bGUoKS0+ZGlyZWN0aW9uKCkgPT0gV2ViQ29yZTo6UlRMKQotICAgICAgICBvcHRpb24uZGlyZWN0
aW9uID0gUXQ6OlJpZ2h0VG9MZWZ0OworICAgIGluaXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4
aXN0cyhvcHRpb24ucGFsZXR0ZSwgbyk7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gby0+c3R5
bGUoKTsKKyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gTm9Db250cm9sUGFydDsKIAot
ICAgIENvbnRyb2xQYXJ0IHJlc3VsdCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBD
b250cm9sUGFydCByZXN1bHQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOworICAgIGlmIChzdXBwb3J0
c0ZvY3VzKHJlc3VsdCkgJiYgaXNGb2N1c2VkKG8pKSB7CisgICAgICAgIG9wdGlvbi5zdGF0ZSB8
PSBRU3R5bGU6OlN0YXRlX0hhc0ZvY3VzOworICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxl
OjpTdGF0ZV9LZXlib2FyZEZvY3VzQ2hhbmdlOworICAgIH0KKworICAgIGlmIChzdHlsZS0+ZGly
ZWN0aW9uKCkgPT0gV2ViQ29yZTo6UlRMKQorICAgICAgICBvcHRpb24uZGlyZWN0aW9uID0gUXQ6
OlJpZ2h0VG9MZWZ0OwogCiAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgpAQCAtNzUzLDE4ICs3NzYsOSBAQCBDb250cm9sUGFydCBSZW5kZXJUaGVtZVF0Ojph
cHBseVRoZW1lKFFTCiAgICAgICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0ZV9S
YWlzZWQ7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0ID09
IFJhZGlvUGFydCB8fCByZXN1bHQgPT0gQ2hlY2tib3hQYXJ0KQorICAgIGNhc2UgUmFkaW9QYXJ0
OgorICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICBvcHRpb24uc3RhdGUgfD0gKGlzQ2hl
Y2tlZChvKSA/IFFTdHlsZTo6U3RhdGVfT24gOiBRU3R5bGU6OlN0YXRlX09mZik7Ci0KLSAgICAv
LyBJZiB0aGUgb3duZXIgd2lkZ2V0IGhhcyBhIGN1c3RvbSBwYWxldHRlLCB1c2UgaXQKLSAgICBQ
YWdlKiBwYWdlID0gby0+ZG9jdW1lbnQoKS0+cGFnZSgpOwotICAgIGlmIChwYWdlKSB7Ci0gICAg
ICAgIENocm9tZUNsaWVudCogY2xpZW50ID0gcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpOwotICAg
ICAgICBRV2ViUGFnZUNsaWVudCogcGFnZUNsaWVudCA9IGNsaWVudC0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCk7Ci0gICAgICAgIGlmIChwYWdlQ2xpZW50KQotICAgICAgICAgICAgb3B0aW9uLnBhbGV0
dGUgPSBwYWdlQ2xpZW50LT5wYWxldHRlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsK
SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCShyZXZpc2lvbiA1MjU5NikKKysr
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
OSw4ICsxOSw4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KLSNp
Zm5kZWYgUmVuZGVyVGhlbWVRdF9ICi0jZGVmaW5lIFJlbmRlclRoZW1lUXRfSAorI2lmbmRlZiBS
ZW5kZXJUaGVtZVF0X2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVRdF9oCiAKICNpbmNsdWRlICJSZW5k
ZXJUaGVtZS5oIgogCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAg
Ym9vbCBzdXBwb3J0c0ZvY3VzKENvbnRyb2xQYXJ0KSBjb25zdDsKIAotICAgIENvbnRyb2xQYXJ0
IGFwcGx5VGhlbWUoUVN0eWxlT3B0aW9uJiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgQ29u
dHJvbFBhcnQgaW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMoUVN0eWxlT3B0aW9uJiwgUmVu
ZGVyT2JqZWN0KikgY29uc3Q7CiAKICAgICB2b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5
bGUqKSBjb25zdDsKICAgICB2b2lkIHNldFBvcHVwUGFkZGluZyhSZW5kZXJTdHlsZSopIGNvbnN0
OwpAQCAtMTgwLDQgKzE4MCw0IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8g
UmVuZGVyVGhlbWVRdF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45631</attachid>
            <date>2009-12-29 19:13:55 -0800</date>
            <delta_ts>2009-12-30 09:07:29 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>patchFor33035-2.patch</filename>
            <type>text/plain</type>
            <size>7017</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjYzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMDktMTItMjkgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICBbUXRdIFJlbmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUgaXMgYSBtaXNub21lciBhbmQgaXMgc3Vi
b3B0aW1hbGx5IGNvZGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzMwMzUKKyAgICAgICAgVGhpcyBwYXRjaDoKKyAgICAgICAgLSByZW5hbWVzIFJl
bmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUgdG8gaW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMs
CisgICAgICAgIC0gZXh0cmFjdHMgdGhlIHBhbGV0dGUgaW5pdGlhbGl6YXRpb24gY29kZSB0byBh
IHNlcGFyYXRlIGZ1bmN0aW9uIGluIG9yZGVyIHRvCisgICAgICAgIHByb3ZpZGUgZm9yIHJlYWRh
YmxlIHBvaW50ZXIgY2hlY2tpbmcgYW5kIG1vdmVzIHRoaXMgY29kZSB1cCBpbiB0aGUgZnVuY3Rp
b24gdG8KKyAgICAgICAgYWxsb3cgZm9yIGZ1dHVyZSBjaGFuZ2VzIHRvIHRoZSBwYWxldHRlIGJy
dXNoZXMgbmVlZGVkIGZvciBidWcgMzAxNzMsCisgICAgICAgIC0gb3B0aW1pemVzIHNvbWUgb2Yg
dGhlIGNvZGUgaW4gdGhlIGZ1bmN0aW9uIGZvciByZWFkYWJpbGl0eSwgc3BlZWQgYW5kIHNpemUu
CisgICAgICAgIC0gZml4ZXMgc29tZSBtaW5vciBzdHlsZSBpc3N1ZXMKKworICAgICAgICBObyBu
ZXcgdGVzdHMgYmVjYXVzZSBjb2RlIGJlaGF2aW9yIGlzIG5vdCBjaGFuZ2VkLgorCisgICAgICAg
ICogcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZVF0OjpwYWludEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0
OjpwYWludFRleHRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwYWlu
dE1lbnVMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBhaW50TWVudUxp
c3RCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6aW5pdFBhbGV0dGVGcm9tUGFnZUNsaWVudElm
RXhpc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmluaXRpYWxpemVDb21t
b25RU3R5bGVPcHRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0Lmg6
CisKIDIwMDktMTItMjkgIEFuZHJlaSBQb3Blc2N1ICA8YW5kcmVpcEBnb29nbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0
L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVu
ZGVyVGhlbWVRdC5jcHAJKHJldmlzaW9uIDUyNTk2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9xdC9S
ZW5kZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDEwIEBACiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCisjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJSZW5kZXJC
b3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxl
U2hlZXRzLmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJxd2VicGFn
ZS5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgpAQCAtNDc3LDcgKzQ3Nyw3IEBAIGJvb2wg
UmVuZGVyVGhlbWVRdDo6cGFpbnRCdXR0b24oUmVuZGVyT2IKICAgICBvcHRpb24ucmVjdCA9IHI7
CiAgICAgb3B0aW9uLnN0YXRlIHw9IFFTdHlsZTo6U3RhdGVfU21hbGw7CiAKLSAgICBDb250cm9s
UGFydCBhcHBlYXJhbmNlID0gYXBwbHlUaGVtZShvcHRpb24sIG8pOworICAgIENvbnRyb2xQYXJ0
IGFwcGVhcmFuY2UgPSBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhvcHRpb24sIG8pOwog
ICAgIGlmIChhcHBlYXJhbmNlID09IFB1c2hCdXR0b25QYXJ0IHx8IGFwcGVhcmFuY2UgPT0gQnV0
dG9uUGFydCkgewogICAgICAgICBvcHRpb24ucmVjdCA9IGluZmxhdGVCdXR0b25SZWN0KG9wdGlv
bi5yZWN0LCBxU3R5bGUoKSk7CiAgICAgICAgIHAuZHJhd0NvbnRyb2woUVN0eWxlOjpDRV9QdXNo
QnV0dG9uLCBvcHRpb24pOwpAQCAtNTEzLDcgKzUxMyw3IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6
cGFpbnRUZXh0RmllbGQoUmVuZGUKICAgICBwYW5lbC5mZWF0dXJlcyA9IFFTdHlsZU9wdGlvbkZy
YW1lVjI6Ok5vbmU7CiAKICAgICAvLyBHZXQgdGhlIGNvcnJlY3QgdGhlbWUgZGF0YSBmb3IgYSB0
ZXh0IGZpZWxkCi0gICAgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSA9IGFwcGx5VGhlbWUocGFuZWws
IG8pOworICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBpbml0aWFsaXplQ29tbW9uUVN0eWxl
T3B0aW9ucyhwYW5lbCwgbyk7CiAgICAgaWYgKGFwcGVhcmFuY2UgIT0gVGV4dEZpZWxkUGFydAog
ICAgICAgICAmJiBhcHBlYXJhbmNlICE9IFNlYXJjaEZpZWxkUGFydAogICAgICAgICAmJiBhcHBl
YXJhbmNlICE9IFRleHRBcmVhUGFydApAQCAtNTc1LDcgKzU3NSw3IEBAIGJvb2wgUmVuZGVyVGhl
bWVRdDo6cGFpbnRNZW51TGlzdChSZW5kZXIKICAgICBRU3R5bGVPcHRpb25Db21ib0JveCBvcHQ7
CiAgICAgaWYgKHAud2lkZ2V0KQogICAgICAgICBvcHQuaW5pdEZyb20ocC53aWRnZXQpOwotICAg
IGFwcGx5VGhlbWUob3B0LCBvKTsKKyAgICBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhv
cHQsIG8pOwogCiAgICAgY29uc3QgUVBvaW50IHRvcExlZnQgPSByLnRvcExlZnQoKTsKICAgICBw
LnBhaW50ZXItPnRyYW5zbGF0ZSh0b3BMZWZ0KTsKQEAgLTYxNSw3ICs2MTUsNyBAQCBib29sIFJl
bmRlclRoZW1lUXQ6OnBhaW50TWVudUxpc3RCdXR0b24oCiAgICAgUVN0eWxlT3B0aW9uQ29tYm9C
b3ggb3B0aW9uOwogICAgIGlmIChwLndpZGdldCkKICAgICAgICAgb3B0aW9uLmluaXRGcm9tKHAu
d2lkZ2V0KTsKLSAgICBhcHBseVRoZW1lKG9wdGlvbiwgbyk7CisgICAgaW5pdGlhbGl6ZUNvbW1v
blFTdHlsZU9wdGlvbnMob3B0aW9uLCBvKTsKICAgICBvcHRpb24ucmVjdCA9IHI7CiAKICAgICAv
LyBmb3IgZHJhd2luZyB0aGUgY29tYm8gYm94IGFycm93LCByZWx5IG9ubHkgb24gdGhlIGZhbGxi
YWNrIHN0eWxlCkBAIC03MTIsNyArNzEyLDI1IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6c3VwcG9y
dHNGb2N1cyhDb250cm8KICAgICB9CiB9CiAKLUNvbnRyb2xQYXJ0IFJlbmRlclRoZW1lUXQ6OmFw
cGx5VGhlbWUoUVN0eWxlT3B0aW9uJiBvcHRpb24sIFJlbmRlck9iamVjdCogbykgY29uc3QKK3N0
YXRpYyBpbmxpbmUgdm9pZCBpbml0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMoUVBhbGV0
dGUgJnBhbGV0dGUsIGNvbnN0IFJlbmRlck9iamVjdCAqbykKK3sKKyAgICAvLyBJZiB0aGUgd2Vi
dmlldyBoYXMgYSBjdXN0b20gcGFsZXR0ZSwgdXNlIGl0CisgICAgUGFnZSogcGFnZSA9IG8tPmRv
Y3VtZW50KCktPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBD
aHJvbWUqIGNocm9tZSA9IHBhZ2UtPmNocm9tZSgpOworICAgIGlmICghY2hyb21lKQorICAgICAg
ICByZXR1cm47CisgICAgQ2hyb21lQ2xpZW50KiBjaHJvbWVDbGllbnQgPSBjaHJvbWUtPmNsaWVu
dCgpOworICAgIGlmICghY2hyb21lQ2xpZW50KQorICAgICAgICByZXR1cm47CisgICAgUVdlYlBh
Z2VDbGllbnQqIHBhZ2VDbGllbnQgPSBjaHJvbWVDbGllbnQtPnBsYXRmb3JtUGFnZUNsaWVudCgp
OworICAgIGlmICghcGFnZUNsaWVudCkKKyAgICAgICAgcmV0dXJuOworICAgIHBhbGV0dGUgPSBw
YWdlQ2xpZW50LT5wYWxldHRlKCk7Cit9CisKK0NvbnRyb2xQYXJ0IFJlbmRlclRoZW1lUXQ6Omlu
aXRpYWxpemVDb21tb25RU3R5bGVPcHRpb25zKFFTdHlsZU9wdGlvbiYgb3B0aW9uLCBSZW5kZXJP
YmplY3QqIG8pIGNvbnN0CiB7CiAgICAgLy8gRGVmYXVsdCBiaXRzOiBubyBmb2N1cywgbm8gbW91
c2Ugb3ZlcgogICAgIG9wdGlvbi5zdGF0ZSAmPSB+KFFTdHlsZTo6U3RhdGVfSGFzRm9jdXMgfCBR
U3R5bGU6OlN0YXRlX01vdXNlT3Zlcik7CkBAIC03MjQsMTkgKzc0MiwyNCBAQCBDb250cm9sUGFy
dCBSZW5kZXJUaGVtZVF0OjphcHBseVRoZW1lKFFTCiAgICAgICAgIC8vIFJlYWRvbmx5IGlzIHN1
cHBvcnRlZCBvbiB0ZXh0ZmllbGRzLgogICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpT
dGF0ZV9SZWFkT25seTsKIAotICAgIGlmIChzdXBwb3J0c0ZvY3VzKG8tPnN0eWxlKCktPmFwcGVh
cmFuY2UoKSkgJiYgaXNGb2N1c2VkKG8pKSB7Ci0gICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5
bGU6OlN0YXRlX0hhc0ZvY3VzOwotICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0
ZV9LZXlib2FyZEZvY3VzQ2hhbmdlOwotICAgIH0KKyAgICBvcHRpb24uZGlyZWN0aW9uID0gUXQ6
OkxlZnRUb1JpZ2h0OwogCiAgICAgaWYgKGlzSG92ZXJlZChvKSkKICAgICAgICAgb3B0aW9uLnN0
YXRlIHw9IFFTdHlsZTo6U3RhdGVfTW91c2VPdmVyOwogCi0gICAgb3B0aW9uLmRpcmVjdGlvbiA9
IFF0OjpMZWZ0VG9SaWdodDsKLSAgICBpZiAoby0+c3R5bGUoKSAmJiBvLT5zdHlsZSgpLT5kaXJl
Y3Rpb24oKSA9PSBXZWJDb3JlOjpSVEwpCi0gICAgICAgIG9wdGlvbi5kaXJlY3Rpb24gPSBRdDo6
UmlnaHRUb0xlZnQ7CisgICAgaW5pdFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKG9wdGlv
bi5wYWxldHRlLCBvKTsKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvLT5zdHlsZSgpOworICAg
IGlmICghc3R5bGUpCisgICAgICAgIHJldHVybiBOb0NvbnRyb2xQYXJ0OwogCi0gICAgQ29udHJv
bFBhcnQgcmVzdWx0ID0gby0+c3R5bGUoKS0+YXBwZWFyYW5jZSgpOworICAgIENvbnRyb2xQYXJ0
IHJlc3VsdCA9IHN0eWxlLT5hcHBlYXJhbmNlKCk7CisgICAgaWYgKHN1cHBvcnRzRm9jdXMocmVz
dWx0KSAmJiBpc0ZvY3VzZWQobykpIHsKKyAgICAgICAgb3B0aW9uLnN0YXRlIHw9IFFTdHlsZTo6
U3RhdGVfSGFzRm9jdXM7CisgICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5bGU6OlN0YXRlX0tl
eWJvYXJkRm9jdXNDaGFuZ2U7CisgICAgfQorCisgICAgaWYgKHN0eWxlLT5kaXJlY3Rpb24oKSA9
PSBXZWJDb3JlOjpSVEwpCisgICAgICAgIG9wdGlvbi5kaXJlY3Rpb24gPSBRdDo6UmlnaHRUb0xl
ZnQ7CiAKICAgICBzd2l0Y2ggKHJlc3VsdCkgewogICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CkBA
IC03NTMsMTggKzc3Niw5IEBAIENvbnRyb2xQYXJ0IFJlbmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUo
UVMKICAgICAgICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5bGU6OlN0YXRlX1JhaXNlZDsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQotICAgIH0KLQotICAgIGlmIChyZXN1bHQgPT0gUmFkaW9QYXJ0
IHx8IHJlc3VsdCA9PSBDaGVja2JveFBhcnQpCisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAgY2Fz
ZSBDaGVja2JveFBhcnQ6CiAgICAgICAgIG9wdGlvbi5zdGF0ZSB8PSAoaXNDaGVja2VkKG8pID8g
UVN0eWxlOjpTdGF0ZV9PbiA6IFFTdHlsZTo6U3RhdGVfT2ZmKTsKLQotICAgIC8vIElmIHRoZSBv
d25lciB3aWRnZXQgaGFzIGEgY3VzdG9tIHBhbGV0dGUsIHVzZSBpdAotICAgIFBhZ2UqIHBhZ2Ug
PSBvLT5kb2N1bWVudCgpLT5wYWdlKCk7Ci0gICAgaWYgKHBhZ2UpIHsKLSAgICAgICAgQ2hyb21l
Q2xpZW50KiBjbGllbnQgPSBwYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCk7Ci0gICAgICAgIFFXZWJQ
YWdlQ2xpZW50KiBwYWdlQ2xpZW50ID0gY2xpZW50LT5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKLSAg
ICAgICAgaWYgKHBhZ2VDbGllbnQpCi0gICAgICAgICAgICBvcHRpb24ucGFsZXR0ZSA9IHBhZ2VD
bGllbnQtPnBhbGV0dGUoKTsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHJldmlzaW9uIDUyNTk2KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE5LDggKzE5LDgg
QEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLwotI2lmbmRlZiBSZW5k
ZXJUaGVtZVF0X0gKLSNkZWZpbmUgUmVuZGVyVGhlbWVRdF9ICisjaWZuZGVmIFJlbmRlclRoZW1l
UXRfaAorI2RlZmluZSBSZW5kZXJUaGVtZVF0X2gKIAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAKQEAgLTEzMiw3ICsxMzIsNyBAQCBwcml2YXRlOgogcHJpdmF0ZToKICAgICBib29sIHN1cHBv
cnRzRm9jdXMoQ29udHJvbFBhcnQpIGNvbnN0OwogCi0gICAgQ29udHJvbFBhcnQgYXBwbHlUaGVt
ZShRU3R5bGVPcHRpb24mLCBSZW5kZXJPYmplY3QqKSBjb25zdDsKKyAgICBDb250cm9sUGFydCBp
bml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhRU3R5bGVPcHRpb24mLCBSZW5kZXJPYmplY3Qq
KSBjb25zdDsKIAogICAgIHZvaWQgc2V0QnV0dG9uUGFkZGluZyhSZW5kZXJTdHlsZSopIGNvbnN0
OwogICAgIHZvaWQgc2V0UG9wdXBQYWRkaW5nKFJlbmRlclN0eWxlKikgY29uc3Q7CkBAIC0xODAs
NCArMTgwLDQgQEAgcHJpdmF0ZToKIAogfQogCi0jZW5kaWYKKyNlbmRpZiAvLyBSZW5kZXJUaGVt
ZVF0X2gK
</data>
<flag name="review"
          id="27721"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="27722"
          type_id="3"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45665</attachid>
            <date>2009-12-30 09:07:29 -0800</date>
            <delta_ts>2009-12-30 09:42:14 -0800</delta_ts>
            <desc>Proposed Patch; Addressed Kenneth&apos;s concerns</desc>
            <filename>patchFor33035-3.patch</filename>
            <type>text/plain</type>
            <size>7021</size>
            <attacher name="Carol Szabo">carol</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjU5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMTItMzAgIENhcm9sIFN6YWJvICA8Y2Fyb2wuc3phYm9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICBbUXRdIFJlbmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUgaXMgYSBtaXNub21lciBhbmQgaXMgc3Vi
b3B0aW1hbGx5IGNvZGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzMwMzUKKworICAgICAgICBUaGlzIHBhdGNoOgorICAgICAgICAtIHJlbmFtZXMg
UmVuZGVyVGhlbWVRdDo6YXBwbHlUaGVtZSB0byBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9u
cywKKyAgICAgICAgLSBleHRyYWN0cyB0aGUgcGFsZXR0ZSBpbml0aWFsaXphdGlvbiBjb2RlIHRv
IGEgc2VwYXJhdGUgZnVuY3Rpb24gaW4gb3JkZXIgdG8KKyAgICAgICAgcHJvdmlkZSBmb3IgcmVh
ZGFibGUgcG9pbnRlciBjaGVja2luZyBhbmQgbW92ZXMgdGhpcyBjb2RlIHVwIGluIHRoZSBmdW5j
dGlvbiB0bworICAgICAgICBhbGxvdyBmb3IgZnV0dXJlIGNoYW5nZXMgdG8gdGhlIHBhbGV0dGUg
YnJ1c2hlcyBuZWVkZWQgZm9yIGJ1ZyAzMDE3MywKKyAgICAgICAgLSBvcHRpbWl6ZXMgc29tZSBv
ZiB0aGUgY29kZSBpbiB0aGUgZnVuY3Rpb24gZm9yIHJlYWRhYmlsaXR5LCBzcGVlZCBhbmQgc2l6
ZS4KKyAgICAgICAgLSBmaXhlcyBzb21lIG1pbm9yIHN0eWxlIGlzc3VlcworCisgICAgICAgIE5v
IG5ldyB0ZXN0cyBiZWNhdXNlIGNvZGUgYmVoYXZpb3IgaXMgbm90IGNoYW5nZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRoZW1lUXQ6OnBhaW50QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
UXQ6OnBhaW50VGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBh
aW50TWVudUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGFpbnRNZW51
TGlzdEJ1dHRvbik6CisgICAgICAgIChXZWJDb3JlOjppbml0UGFsZXR0ZUZyb21QYWdlQ2xpZW50
SWZFeGlzdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6aW5pdGlhbGl6ZUNv
bW1vblFTdHlsZU9wdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQu
aDoKKwogMjAwOS0xMi0yOCAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFjaWVqIFN0YWNob3dpYWsuCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHAJKHJldmlzaW9uIDUyNTk2KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTAgKzQzLDEwIEBA
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNp
bmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJS
ZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlVzZXJBZ2Vu
dFN0eWxlU2hlZXRzLmgiCi0jaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJx
d2VicGFnZS5oIgogCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgpAQCAtNDc3LDcgKzQ3Nyw3IEBA
IGJvb2wgUmVuZGVyVGhlbWVRdDo6cGFpbnRCdXR0b24oUmVuZGVyT2IKICAgICBvcHRpb24ucmVj
dCA9IHI7CiAgICAgb3B0aW9uLnN0YXRlIHw9IFFTdHlsZTo6U3RhdGVfU21hbGw7CiAKLSAgICBD
b250cm9sUGFydCBhcHBlYXJhbmNlID0gYXBwbHlUaGVtZShvcHRpb24sIG8pOworICAgIENvbnRy
b2xQYXJ0IGFwcGVhcmFuY2UgPSBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0aW9ucyhvcHRpb24s
IG8pOwogICAgIGlmIChhcHBlYXJhbmNlID09IFB1c2hCdXR0b25QYXJ0IHx8IGFwcGVhcmFuY2Ug
PT0gQnV0dG9uUGFydCkgewogICAgICAgICBvcHRpb24ucmVjdCA9IGluZmxhdGVCdXR0b25SZWN0
KG9wdGlvbi5yZWN0LCBxU3R5bGUoKSk7CiAgICAgICAgIHAuZHJhd0NvbnRyb2woUVN0eWxlOjpD
RV9QdXNoQnV0dG9uLCBvcHRpb24pOwpAQCAtNTEzLDcgKzUxMyw3IEBAIGJvb2wgUmVuZGVyVGhl
bWVRdDo6cGFpbnRUZXh0RmllbGQoUmVuZGUKICAgICBwYW5lbC5mZWF0dXJlcyA9IFFTdHlsZU9w
dGlvbkZyYW1lVjI6Ok5vbmU7CiAKICAgICAvLyBHZXQgdGhlIGNvcnJlY3QgdGhlbWUgZGF0YSBm
b3IgYSB0ZXh0IGZpZWxkCi0gICAgQ29udHJvbFBhcnQgYXBwZWFyYW5jZSA9IGFwcGx5VGhlbWUo
cGFuZWwsIG8pOworICAgIENvbnRyb2xQYXJ0IGFwcGVhcmFuY2UgPSBpbml0aWFsaXplQ29tbW9u
UVN0eWxlT3B0aW9ucyhwYW5lbCwgbyk7CiAgICAgaWYgKGFwcGVhcmFuY2UgIT0gVGV4dEZpZWxk
UGFydAogICAgICAgICAmJiBhcHBlYXJhbmNlICE9IFNlYXJjaEZpZWxkUGFydAogICAgICAgICAm
JiBhcHBlYXJhbmNlICE9IFRleHRBcmVhUGFydApAQCAtNTc1LDcgKzU3NSw3IEBAIGJvb2wgUmVu
ZGVyVGhlbWVRdDo6cGFpbnRNZW51TGlzdChSZW5kZXIKICAgICBRU3R5bGVPcHRpb25Db21ib0Jv
eCBvcHQ7CiAgICAgaWYgKHAud2lkZ2V0KQogICAgICAgICBvcHQuaW5pdEZyb20ocC53aWRnZXQp
OwotICAgIGFwcGx5VGhlbWUob3B0LCBvKTsKKyAgICBpbml0aWFsaXplQ29tbW9uUVN0eWxlT3B0
aW9ucyhvcHQsIG8pOwogCiAgICAgY29uc3QgUVBvaW50IHRvcExlZnQgPSByLnRvcExlZnQoKTsK
ICAgICBwLnBhaW50ZXItPnRyYW5zbGF0ZSh0b3BMZWZ0KTsKQEAgLTYxNSw3ICs2MTUsNyBAQCBi
b29sIFJlbmRlclRoZW1lUXQ6OnBhaW50TWVudUxpc3RCdXR0b24oCiAgICAgUVN0eWxlT3B0aW9u
Q29tYm9Cb3ggb3B0aW9uOwogICAgIGlmIChwLndpZGdldCkKICAgICAgICAgb3B0aW9uLmluaXRG
cm9tKHAud2lkZ2V0KTsKLSAgICBhcHBseVRoZW1lKG9wdGlvbiwgbyk7CisgICAgaW5pdGlhbGl6
ZUNvbW1vblFTdHlsZU9wdGlvbnMob3B0aW9uLCBvKTsKICAgICBvcHRpb24ucmVjdCA9IHI7CiAK
ICAgICAvLyBmb3IgZHJhd2luZyB0aGUgY29tYm8gYm94IGFycm93LCByZWx5IG9ubHkgb24gdGhl
IGZhbGxiYWNrIHN0eWxlCkBAIC03MTIsNyArNzEyLDI1IEBAIGJvb2wgUmVuZGVyVGhlbWVRdDo6
c3VwcG9ydHNGb2N1cyhDb250cm8KICAgICB9CiB9CiAKLUNvbnRyb2xQYXJ0IFJlbmRlclRoZW1l
UXQ6OmFwcGx5VGhlbWUoUVN0eWxlT3B0aW9uJiBvcHRpb24sIFJlbmRlck9iamVjdCogbykgY29u
c3QKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhR
UGFsZXR0ZSAmcGFsZXR0ZSwgY29uc3QgUmVuZGVyT2JqZWN0ICpvKQoreworICAgIC8vIElmIHRo
ZSB3ZWJ2aWV3IGhhcyBhIGN1c3RvbSBwYWxldHRlLCB1c2UgaXQKKyAgICBQYWdlKiBwYWdlID0g
by0+ZG9jdW1lbnQoKS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIENocm9tZSogY2hyb21lID0gcGFnZS0+Y2hyb21lKCk7CisgICAgaWYgKCFjaHJvbWUpCisg
ICAgICAgIHJldHVybjsKKyAgICBDaHJvbWVDbGllbnQqIGNocm9tZUNsaWVudCA9IGNocm9tZS0+
Y2xpZW50KCk7CisgICAgaWYgKCFjaHJvbWVDbGllbnQpCisgICAgICAgIHJldHVybjsKKyAgICBR
V2ViUGFnZUNsaWVudCogcGFnZUNsaWVudCA9IGNocm9tZUNsaWVudC0+cGxhdGZvcm1QYWdlQ2xp
ZW50KCk7CisgICAgaWYgKCFwYWdlQ2xpZW50KQorICAgICAgICByZXR1cm47CisgICAgcGFsZXR0
ZSA9IHBhZ2VDbGllbnQtPnBhbGV0dGUoKTsKK30KKworQ29udHJvbFBhcnQgUmVuZGVyVGhlbWVR
dDo6aW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMoUVN0eWxlT3B0aW9uJiBvcHRpb24sIFJl
bmRlck9iamVjdCogbykgY29uc3QKIHsKICAgICAvLyBEZWZhdWx0IGJpdHM6IG5vIGZvY3VzLCBu
byBtb3VzZSBvdmVyCiAgICAgb3B0aW9uLnN0YXRlICY9IH4oUVN0eWxlOjpTdGF0ZV9IYXNGb2N1
cyB8IFFTdHlsZTo6U3RhdGVfTW91c2VPdmVyKTsKQEAgLTcyNCwxOSArNzQyLDI0IEBAIENvbnRy
b2xQYXJ0IFJlbmRlclRoZW1lUXQ6OmFwcGx5VGhlbWUoUVMKICAgICAgICAgLy8gUmVhZG9ubHkg
aXMgc3VwcG9ydGVkIG9uIHRleHRmaWVsZHMuCiAgICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5
bGU6OlN0YXRlX1JlYWRPbmx5OwogCi0gICAgaWYgKHN1cHBvcnRzRm9jdXMoby0+c3R5bGUoKS0+
YXBwZWFyYW5jZSgpKSAmJiBpc0ZvY3VzZWQobykpIHsKLSAgICAgICAgb3B0aW9uLnN0YXRlIHw9
IFFTdHlsZTo6U3RhdGVfSGFzRm9jdXM7Ci0gICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5bGU6
OlN0YXRlX0tleWJvYXJkRm9jdXNDaGFuZ2U7Ci0gICAgfQorICAgIG9wdGlvbi5kaXJlY3Rpb24g
PSBRdDo6TGVmdFRvUmlnaHQ7CiAKICAgICBpZiAoaXNIb3ZlcmVkKG8pKQogICAgICAgICBvcHRp
b24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0ZV9Nb3VzZU92ZXI7CiAKLSAgICBvcHRpb24uZGlyZWN0
aW9uID0gUXQ6OkxlZnRUb1JpZ2h0OwotICAgIGlmIChvLT5zdHlsZSgpICYmIG8tPnN0eWxlKCkt
PmRpcmVjdGlvbigpID09IFdlYkNvcmU6OlJUTCkKLSAgICAgICAgb3B0aW9uLmRpcmVjdGlvbiA9
IFF0OjpSaWdodFRvTGVmdDsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhv
cHRpb24ucGFsZXR0ZSwgbyk7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gby0+c3R5bGUoKTsK
KyAgICBpZiAoIXN0eWxlKQorICAgICAgICByZXR1cm4gTm9Db250cm9sUGFydDsKIAotICAgIENv
bnRyb2xQYXJ0IHJlc3VsdCA9IG8tPnN0eWxlKCktPmFwcGVhcmFuY2UoKTsKKyAgICBDb250cm9s
UGFydCByZXN1bHQgPSBzdHlsZS0+YXBwZWFyYW5jZSgpOworICAgIGlmIChzdXBwb3J0c0ZvY3Vz
KHJlc3VsdCkgJiYgaXNGb2N1c2VkKG8pKSB7CisgICAgICAgIG9wdGlvbi5zdGF0ZSB8PSBRU3R5
bGU6OlN0YXRlX0hhc0ZvY3VzOworICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0
ZV9LZXlib2FyZEZvY3VzQ2hhbmdlOworICAgIH0KKworICAgIGlmIChzdHlsZS0+ZGlyZWN0aW9u
KCkgPT0gV2ViQ29yZTo6UlRMKQorICAgICAgICBvcHRpb24uZGlyZWN0aW9uID0gUXQ6OlJpZ2h0
VG9MZWZ0OwogCiAgICAgc3dpdGNoIChyZXN1bHQpIHsKICAgICBjYXNlIFB1c2hCdXR0b25QYXJ0
OgpAQCAtNzUzLDE4ICs3NzYsOSBAQCBDb250cm9sUGFydCBSZW5kZXJUaGVtZVF0OjphcHBseVRo
ZW1lKFFTCiAgICAgICAgICAgICBvcHRpb24uc3RhdGUgfD0gUVN0eWxlOjpTdGF0ZV9SYWlzZWQ7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0ID09IFJhZGlv
UGFydCB8fCByZXN1bHQgPT0gQ2hlY2tib3hQYXJ0KQorICAgIGNhc2UgUmFkaW9QYXJ0OgorICAg
IGNhc2UgQ2hlY2tib3hQYXJ0OgogICAgICAgICBvcHRpb24uc3RhdGUgfD0gKGlzQ2hlY2tlZChv
KSA/IFFTdHlsZTo6U3RhdGVfT24gOiBRU3R5bGU6OlN0YXRlX09mZik7Ci0KLSAgICAvLyBJZiB0
aGUgb3duZXIgd2lkZ2V0IGhhcyBhIGN1c3RvbSBwYWxldHRlLCB1c2UgaXQKLSAgICBQYWdlKiBw
YWdlID0gby0+ZG9jdW1lbnQoKS0+cGFnZSgpOwotICAgIGlmIChwYWdlKSB7Ci0gICAgICAgIENo
cm9tZUNsaWVudCogY2xpZW50ID0gcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpOwotICAgICAgICBR
V2ViUGFnZUNsaWVudCogcGFnZUNsaWVudCA9IGNsaWVudC0+cGxhdGZvcm1QYWdlQ2xpZW50KCk7
Ci0gICAgICAgIGlmIChwYWdlQ2xpZW50KQotICAgICAgICAgICAgb3B0aW9uLnBhbGV0dGUgPSBw
YWdlQ2xpZW50LT5wYWxldHRlKCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCShyZXZpc2lvbiA1MjU5NikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4ICsx
OSw4IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KLSNpZm5kZWYg
UmVuZGVyVGhlbWVRdF9ICi0jZGVmaW5lIFJlbmRlclRoZW1lUXRfSAorI2lmbmRlZiBSZW5kZXJU
aGVtZVF0X2gKKyNkZWZpbmUgUmVuZGVyVGhlbWVRdF9oCiAKICNpbmNsdWRlICJSZW5kZXJUaGVt
ZS5oIgogCkBAIC0xMzIsNyArMTMyLDcgQEAgcHJpdmF0ZToKIHByaXZhdGU6CiAgICAgYm9vbCBz
dXBwb3J0c0ZvY3VzKENvbnRyb2xQYXJ0KSBjb25zdDsKIAotICAgIENvbnRyb2xQYXJ0IGFwcGx5
VGhlbWUoUVN0eWxlT3B0aW9uJiwgUmVuZGVyT2JqZWN0KikgY29uc3Q7CisgICAgQ29udHJvbFBh
cnQgaW5pdGlhbGl6ZUNvbW1vblFTdHlsZU9wdGlvbnMoUVN0eWxlT3B0aW9uJiwgUmVuZGVyT2Jq
ZWN0KikgY29uc3Q7CiAKICAgICB2b2lkIHNldEJ1dHRvblBhZGRpbmcoUmVuZGVyU3R5bGUqKSBj
b25zdDsKICAgICB2b2lkIHNldFBvcHVwUGFkZGluZyhSZW5kZXJTdHlsZSopIGNvbnN0OwpAQCAt
MTgwLDQgKzE4MCw0IEBAIHByaXZhdGU6CiAKIH0KIAotI2VuZGlmCisjZW5kaWYgLy8gUmVuZGVy
VGhlbWVRdF9oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>