<?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>27706</bug_id>
          
          <creation_ts>2009-07-27 04:45:56 -0700</creation_ts>
          <short_desc>WebCore NPAPI implementations should share more code</short_desc>
          <delta_ts>2009-09-10 01:32:50 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tor Arne Vestbø">vestbo</reporter>
          <assigned_to name="Tor Arne Vestbø">vestbo</assigned_to>
          <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134890</commentid>
    <comment_count>0</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 04:45:56 -0700</bug_when>
    <thetext>This is a meta-bug for collecting patches that try to merge some of the code in the various PluginView implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134895</commentid>
    <comment_count>1</comment_count>
      <attachid>33535</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:16:07 -0700</bug_when>
    <thetext>Created attachment 33535
Refactor the common parts out of PluginView::init() and add platformInit()


Reviewed by NOBODY (OOPS!).

Refactor the common parts out of PluginView::init() and add platformInit()

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

PluginViewMac used to call stop() in some cases, but this error handling
should be unified across the different implementations, so removing for now.

m_hasPendingGeometryChange is now initialized in the initializer list
instead of in PluginViewQt&apos;s init()

* plugins/PluginView.cpp:
(WebCore::PluginView::handleEvent):
(WebCore::PluginView::init):
(WebCore::PluginView::bindingInstance):
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
(WebCore::PluginView::platformInit):
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 71 insertions(+), 100 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134896</commentid>
    <comment_count>2</comment_count>
      <attachid>33536</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:16:32 -0700</bug_when>
    <thetext>Created attachment 33536
Join the various versions of PluginView::stop() into one shared implementation

Reviewed by NOBODY (OOPS!).

Join the various versions of PluginView::stop() into one shared implementation

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

The platform-dependent bits are now ifdef&apos;ed in the shared implementation,
using the XP_ defines (XP_WIN, XP_MACOSX, XP_UNIX) from npapi.h

Differences to the original implementation are as follows:

- The Qt port unregistered the plugin before calling NP_SetWindow
with a 0 window handle. Now it&apos;s done after (similar to Win)

- The GTK and Qt ports unregistered the plugin before clearing
the m_npWindow.ws_info struct. Now it&apos;s done after.

- The Win port constructed the DropAllLocks after unsubclassing
the window. Now it&apos;s done before.

- The Mac, Qt, and GTK ports did not pass a NPSavedData struct
to NP_Destroy (like the Win port). Now all ports do.

- The Win port did not call PluginView::setCurrentPluginView()
before calling to NP-functions. Now it does.

* plugins/PluginView.cpp:
(WebCore::PluginView::start):
(WebCore::PluginView::~PluginView):
(WebCore::PluginView::stop):
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
(WebCore::PluginView::getValueStatic):
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::handlePostReadFile):
---
 7 files changed, 110 insertions(+), 181 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134897</commentid>
    <comment_count>3</comment_count>
      <attachid>33537</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:16:48 -0700</bug_when>
    <thetext>Created attachment 33537
Unregister plugin from PluginMainThreadScheduler if NPP_New fails

Reviewed by NOBODY (OOPS!).

Unregister plugin from PluginMainThreadScheduler if NPP_New fails

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

Since the plugin has not been started yet (m_isStarted is not set),
calling stop() will not have any affect, so we manually unregister
in start() before returning.

* plugins/PluginView.cpp:
(WebCore::PluginView::start):
---
 2 files changed, 18 insertions(+), 1 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134898</commentid>
    <comment_count>4</comment_count>
      <attachid>33538</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:17:08 -0700</bug_when>
    <thetext>Created attachment 33538
Join the various PluginView destructors into one shared implementation

Reviewed by NOBODY (OOPS!).

Join the various PluginView destructors into one shared implementation

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

Differences to the original implementation are as follows:

- The Mac port does not set m_window to 0 anymore.

- The Qt port used to delete the platform plugin widget as
the last step. Now this is done before cleaning up the
script objects and unloading the plugin package (like
the Win port).

* plugins/PluginView.cpp:
(WebCore::PluginView::~PluginView):
* plugins/PluginViewNone.cpp:
(WebCore::PluginView::updatePluginWidget):
* plugins/gtk/PluginViewGtk.cpp:
(WebCore::PluginView::platformInit):
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
(WebCore::PluginView::platformInit):
* plugins/win/PluginViewWin.cpp:
(WebCore::PluginView::init):
---
 7 files changed, 59 insertions(+), 74 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134899</commentid>
    <comment_count>5</comment_count>
      <attachid>33539</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:17:28 -0700</bug_when>
    <thetext>Created attachment 33539
Share implementation of PluginView::userAgent() and userAgentStatic()

Reviewed by NOBODY (OOPS!).

Share implementation of PluginView::userAgent() and userAgentStatic()

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

Differences to the original implementation are as follows:

- The Win port used to return 0 for userAgentStatic, but now
returns the quirk mode MozillaUserAgent as the other ports.

* plugins/PluginView.cpp:
(WebCore::PluginView::userAgent):
(WebCore::PluginView::userAgentStatic):
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 7 files changed, 49 insertions(+), 87 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134900</commentid>
    <comment_count>6</comment_count>
      <attachid>33540</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-27 06:27:19 -0700</bug_when>
    <thetext>Created attachment 33540
Refactor the common parts out of PluginView::init() and add platformInit()

Reviewed by NOBODY (OOPS!).

Refactor the common parts out of PluginView::init() and add platformInit()

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

PluginViewMac used to call stop() in some cases, but this error handling
should be unified across the different implementations, so removing for now.

m_hasPendingGeometryChange is now initialized in the initializer list
instead of in PluginViewQt&apos;s init()

* plugins/PluginView.cpp:
(WebCore::PluginView::handleEvent):
(WebCore::PluginView::init):
(WebCore::PluginView::bindingInstance):
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
(WebCore::PluginView::platformInit):
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 71 insertions(+), 100 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135944</commentid>
    <comment_count>7</comment_count>
      <attachid>33536</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-30 12:49:08 -0700</bug_when>
    <thetext>Comment on attachment 33536
Join the various versions of PluginView::stop() into one shared implementation

This looks very good, although it should use our PLATFORM defines instead of those from npapi.h Marking r- for this reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135993</commentid>
    <comment_count>8</comment_count>
      <attachid>33539</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-30 13:56:59 -0700</bug_when>
    <thetext>Comment on attachment 33539
Share implementation of PluginView::userAgent() and userAgentStatic()

Looks great, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135995</commentid>
    <comment_count>9</comment_count>
      <attachid>33536</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-30 13:57:21 -0700</bug_when>
    <thetext>Comment on attachment 33536
Join the various versions of PluginView::stop() into one shared implementation

Actually, this is OK and it&apos;s certainly better than what we have now :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136045</commentid>
    <comment_count>10</comment_count>
      <attachid>33537</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2009-07-30 15:16:08 -0700</bug_when>
    <thetext>Comment on attachment 33537
Unregister plugin from PluginMainThreadScheduler if NPP_New fails

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136144</commentid>
    <comment_count>11</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-07-31 05:38:25 -0700</bug_when>
    <thetext>Thanks for the reviews Anders!

On the subject of defines, what&apos;s the exact meaning of ENABLE(NETSCAPE_PLUGIN_API)? Does it refer to the NPAPI-JS-bindings only, or NPAPI support in general? 

The reason I&apos;m asking is that the Mac NPAPI implementation in WebKit wrap all files with #if ENABLE(NETSCAPE_PLUGIN_API), but in the WebCore NPAPI implementations it&apos;s a little more spread out, for example only around PluginView::userAgentStatic() and PluginView::getValueStatic(). What&apos;s the correct usage of this macro/define? 

Thanks :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136296</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-31 16:30:36 -0700</bug_when>
    <thetext>Yay!  This is awesome!  Aren&apos;t some of these already landed?  In which case they should have their flags cleared...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136460</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-08-01 09:09:21 -0700</bug_when>
    <thetext>Really cool patches Tor Arne! Great work!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136554</commentid>
    <comment_count>14</comment_count>
      <attachid>33536</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-02 06:59:05 -0700</bug_when>
    <thetext>Comment on attachment 33536
Join the various versions of PluginView::stop() into one shared implementation

Landed in r46697</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136555</commentid>
    <comment_count>15</comment_count>
      <attachid>33537</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-02 07:00:48 -0700</bug_when>
    <thetext>Comment on attachment 33537
Unregister plugin from PluginMainThreadScheduler if NPP_New fails

Landed in r46698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136556</commentid>
    <comment_count>16</comment_count>
      <attachid>33539</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-02 07:09:46 -0700</bug_when>
    <thetext>Comment on attachment 33539
Share implementation of PluginView::userAgent() and userAgentStatic()

Landed in r46699</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>136560</commentid>
    <comment_count>17</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-02 07:35:49 -0700</bug_when>
    <thetext>I&apos;ll rework the last two patches to match the changes in r46649</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143645</commentid>
    <comment_count>18</comment_count>
      <attachid>38812</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-31 06:21:18 -0700</bug_when>
    <thetext>Created attachment 38812
Share PluginView::init() between ports

Patch by Tor Arne Vestbø &lt;tor.arne.vestbo@nokia.com&gt; on 2009-08-31
Reviewed by NOBODY (OOPS!).

The port-spesific bits are moved to platformStart(), which now returns
a bool based on the success of the platformStart.

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

PluginViewMac used to call stop() in some cases, but this error handling
should be unified across the different implementations, so removing for now.

m_hasPendingGeometryChange is now initialized in the initializer list
instead of in PluginViewQt&apos;s init()

* plugins/PluginView.cpp:
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 83 insertions(+), 119 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143646</commentid>
    <comment_count>19</comment_count>
      <attachid>38813</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-08-31 06:21:27 -0700</bug_when>
    <thetext>Created attachment 38813
Join the various PluginView destructors into one shared implementation

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

Differences to the original implementation are as follows:

- The Mac port does not set m_window to 0 anymore

- The Qt port used to delete the platform plugin widget as
the last step. Now this is done before cleaning up the
script objects and unloading the plugin package (like
the Win port).

* plugins/PluginView.cpp:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 7 files changed, 79 insertions(+), 101 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143652</commentid>
    <comment_count>20</comment_count>
      <attachid>38812</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-31 08:11:15 -0700</bug_when>
    <thetext>Comment on attachment 38812
Share PluginView::init() between ports

Why are these &quot;regressions&quot; OK?

Why is it OK for example to not call stop()?  I&apos;d rather have #ifdef MAC the common code for now than to change behavior with these patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143856</commentid>
    <comment_count>21</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-01 04:54:56 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 38812 [details])
&gt; Why are these &quot;regressions&quot; OK?

Good point. I&apos;ll upload a new set of patches where the first &quot;regression&quot;, the setting m_window to 0 is restored ifdefed. The stop() case was introduced by me for the PluginViewMac (which is currenly only used by the Qt port, not the Mac port which has the plugin code in WebKit), but was not the right thing to do.

We called stop() to make sure the plugin would not be still running and doing loading etc when it wasn&apos;t supported and visible to the user, but the right thing to do is to protect those operations that should not be allowed by guards using m_status and m_isStarted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143860</commentid>
    <comment_count>22</comment_count>
      <attachid>38860</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-01 05:19:59 -0700</bug_when>
    <thetext>Created attachment 38860
Share PluginView::init() between ports

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

The port-spesific bits are moved to platformStart(), which now returns
a bool based on the success of the platformStart.

m_hasPendingGeometryChange is now initialized in the initializer list
instead of in PluginViewQt&apos;s init()

PluginViewMac (currently used only by the Qt port) used to manually call
stop() in the case where an unsupported drawing or event model was detected.
This was wrong, as the m_status and m_isStarted fields should be used to
guard against doing operations on a plugin in this intermediate state.

* plugins/PluginView.cpp:
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 85 insertions(+), 119 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143861</commentid>
    <comment_count>23</comment_count>
      <attachid>38861</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-01 05:20:08 -0700</bug_when>
    <thetext>Created attachment 38861
Join the various PluginView destructors into one shared implementation

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

The Qt port used to delete the platform plugin widget as the last step.
Now this is done before cleaning up the script objects and unloading the
plugin package, similar to how the Win port does it.

* plugins/PluginView.cpp:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 7 files changed, 78 insertions(+), 101 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143874</commentid>
    <comment_count>24</comment_count>
      <attachid>38860</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-01 06:31:44 -0700</bug_when>
    <thetext>Comment on attachment 38860
Share PluginView::init() between ports

The return seems unnecessary now:
221         m_status = PluginStatusCanNotLoadPlugin;
 222         return false;
 223     }

This won&apos;t compile:
bool PluginView::platformStart()
123123 {
124124     notImplemented();
125125 }

Otherwise this looks good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143875</commentid>
    <comment_count>25</comment_count>
      <attachid>38861</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-01 06:34:01 -0700</bug_when>
    <thetext>Comment on attachment 38861
Join the various PluginView destructors into one shared implementation

Seems this could easily be shared in a platformStop() or destroyPlatformPluginWidget() method:
0 #if defined(XP_WIN)
 261        DestroyWindow(platformPluginWidget());
 262 #elif defined(XP_MACOSX)
 263        setPlatformPluginWidget(0);
 264 #elif defined(XP_UNIX) &amp;&amp; PLATFORM(QT)
 265        // TODO: Should this be done for GTK too?
 266        delete platformPluginWidget();
 267 #endif

r- for the above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144179</commentid>
    <comment_count>26</comment_count>
      <attachid>38920</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-02 03:22:57 -0700</bug_when>
    <thetext>Created attachment 38920
Join the various PluginView destructors into one shared implementation

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

The Qt port used to delete the platform plugin widget as the last step.
Now this is done before cleaning up the script objects and unloading the
plugin package, similar to how the Win port does it.

* plugins/PluginView.cpp:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 89 insertions(+), 97 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144180</commentid>
    <comment_count>27</comment_count>
      <attachid>38921</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-02 03:23:05 -0700</bug_when>
    <thetext>Created attachment 38921
Share PluginView::init() between ports

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

The port-spesific bits are moved to platformStart(), which now returns
a bool based on the success of the platformStart.

m_hasPendingGeometryChange is now initialized in the initializer list
instead of in PluginViewQt&apos;s init()

PluginViewMac (currently used only by the Qt port) used to manually call
stop() in the case where an unsupported drawing or event model was detected.
This was wrong, as the m_status and m_isStarted fields should be used to
guard against doing operations on a plugin in this intermediate state.

* plugins/PluginView.cpp:
* plugins/PluginView.h:
* plugins/PluginViewNone.cpp:
* plugins/gtk/PluginViewGtk.cpp:
* plugins/mac/PluginViewMac.cpp:
* plugins/qt/PluginViewQt.cpp:
* plugins/win/PluginViewWin.cpp:
---
 8 files changed, 86 insertions(+), 119 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144183</commentid>
    <comment_count>28</comment_count>
      <attachid>38920</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 03:27:20 -0700</bug_when>
    <thetext>Comment on attachment 38920
Join the various PluginView destructors into one shared implementation

LGTM.  cq- the ChangeLog patch would confuse svn-apply.  Besides, you&apos;re a committer. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144184</commentid>
    <comment_count>29</comment_count>
      <attachid>38921</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-02 03:28:33 -0700</bug_when>
    <thetext>Comment on attachment 38921
Share PluginView::init() between ports

Style:
     if (!platformStart()) {
 221         m_status = PluginStatusCanNotLoadPlugin;
 222     }

Otherwise looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>144185</commentid>
    <comment_count>30</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-02 03:31:12 -0700</bug_when>
    <thetext>Thanks Eric! I&apos;ll fix the style and commit myself :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146119</commentid>
    <comment_count>31</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-09-10 01:32:50 -0700</bug_when>
    <thetext>Closing, as I don&apos;t have any more patches for this at the moment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33535</attachid>
            <date>2009-07-27 06:16:07 -0700</date>
            <delta_ts>2009-07-27 06:27:55 -0700</delta_ts>
            <desc>Refactor the common parts out of PluginView::init() and add platformInit()
</desc>
            <filename>bug-27706-20090727151605.patch</filename>
            <type>text/plain</type>
            <size>9710</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmM4MGVjYi4uNzM5NzI5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzMiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFJlZmFjdG9yIHRoZSBjb21tb24gcGFydHMgb3V0IG9m
IFBsdWdpblZpZXc6OmluaXQoKSBhbmQgYWRkIHBsYXRmb3JtSW5pdCgpCisgICAgICAgIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKyAgICAg
ICAgCisgICAgICAgIFBsdWdpblZpZXdNYWMgdXNlZCB0byBjYWxsIHN0b3AoKSBpbiBzb21lIGNh
c2VzLCBidXQgdGhpcyBlcnJvciBoYW5kbGluZworICAgICAgICBzaG91bGQgYmUgdW5pZmllZCBh
Y3Jvc3MgdGhlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMsIHNvIHJlbW92aW5nIGZvciBub3cu
CisgICAgICAgIAorICAgICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSBpcyBub3cgaW5p
dGlhbGl6ZWQgaW4gdGhlIGluaXRpYWxpemVyIGxpc3QKKyAgICAgICAgaW5zdGVhZCBvZiBpbiBQ
bHVnaW5WaWV3UXQncyBpbml0KCkKKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3Ojppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmJpbmRpbmdJbnN0YW5jZSk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHA6CisgICAgICAgICogcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgICogcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQpOgorICAgICAg
ICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9Q
bHVnaW5WaWV3V2luLmNwcDoKKworMjAwOS0wNy0yNyAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5h
cm5lLnZlc3Rib0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKICAgICAgICAgQWRkIG91dHB1dCBkaXJlY3RvcnkgZm9yIFZTIHByZS1idWlsZCBzdGVw
cyB0byBlbmFibGUgb3V0LW9mLXRyZWUgYnVpbGRzCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAwCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
N2YxZDViYS4uMzJkZDY0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTQ5LDYgKzE0OSwz
NCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAg
aGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsK
IH0KIAordm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdp
blZpZXc6OmluaXQoKTogSW5pdGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1l
KCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faGF2ZUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIGlmICghbV9w
bHVnaW4pIHsKKyAgICAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZp
bmRQbHVnaW4pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3BsdWdpbi0+
bG9hZCgpKSB7CisgICAgICAgIG1fcGx1Z2luID0gMDsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFzdGFydCgpIHx8ICFwbGF0Zm9ybUluaXQoKSkgeworICAgICAgICBtX3N0YXR1cyA9IFBs
dWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKK30KKwogYm9vbCBQ
bHVnaW5WaWV3OjpzdGFydCgpCiB7CiAgICAgaWYgKG1faXNTdGFydGVkKQpAQCAtNjI3LDYgKzY1
NSw5IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgLCBtX2RyYXdpbmdNb2RlbChOUERy
YXdpbmdNb2RlbCgtMSkpCiAgICAgLCBtX2V2ZW50TW9kZWwoTlBFdmVudE1vZGVsKC0xKSkKICNl
bmRpZgorI2lmIGRlZmluZWQoUV9XU19YMTEpCisgICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNo
YW5nZShmYWxzZSkKKyNlbmRpZgogICAgICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQog
ICAgICwgbV9tYW51YWxTdHJlYW0oMCkKICAgICAsIG1faXNKYXZhU2NyaXB0UGF1c2VkKGZhbHNl
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggOTVkNzNkYi4uOWNlYTJkMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCkBAIC0xOTYsNiArMTk2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZv
aWQgc2V0UGFyYW1ldGVycyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKICAgICAgICAgdm9pZCBpbml0KCk7CisgICAg
ICAgIGJvb2wgcGxhdGZvcm1Jbml0KCk7CiAgICAgICAgIGJvb2wgc3RhcnQoKTsKICAgICAgICAg
dm9pZCBzdG9wKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRQbHVnaW5WaWV3KFBs
dWdpblZpZXcqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCmluZGV4IGEzYjZhMTcuLmU1
Mjg5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBA
IFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFBsdWdpblZpZXc6OmluaXQoKQordm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcAppbmRleCAyZjBlODA4Li43OTljNTQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmll
d0d0ay5jcHAKQEAgLTUxOSwyOCArNTE5LDggQEAgcGx1Z19yZW1vdmVkX2NiKEd0a1NvY2tldCAq
c29ja2V0LCBncG9pbnRlcikKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3
Ojppbml0KCkKK3ZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAgICBpZiAobV9o
YXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVJbml0aWFsaXplZCA9
IHRydWU7Ci0KLSAgICBpZiAoIW1fcGx1Z2luKSB7Ci0gICAgICAgIEFTU0VSVChtX3N0YXR1cyA9
PSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmICghbV9wbHVnaW4tPmxvYWQoKSkgewotICAgICAgICBtX3BsdWdpbiA9IDA7Ci0g
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmICghc3RhcnQoKSkgewotICAgICAgICBtX3N0YXR1cyA9
IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBs
dWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRoaXMpOwogICAgICAgICBKU0M6OkpTTG9j
azo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhmYWxzZSk7CkBAIC01OTksNyArNTc5LDcgQEAg
dm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29u
dGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKQogICAgICAgICB1cGRh
dGVQbHVnaW5XaWRnZXQoKTsgLy8gd2FzOiBzZXROUFdpbmRvd0lmTmVlZGVkKCksIGJ1dCB0aGlz
IGRvZXNuJ3QgcHJvZHVjZSAweDAgcmVjdHMgYXQgZmlyc3QgZ28KIAotICAgIG1fc3RhdHVzID0g
UGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5OworICAgIHJldHVybiB0cnVlOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApp
bmRleCA1YTQwOWJlLi4wMTg2ZmEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5j
cHAKQEAgLTEyNSwzMSArMTI1LDggQEAgc3RhdGljIGlubGluZSBJbnRQb2ludCB0b3BMZXZlbE9m
ZnNldEZvcihQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLSBMaWZl
dGltZSBtYW5hZ2VtZW50IC0tLS0tLS0tLS0tLS0tLS0tCiAKLXZvaWQgUGx1Z2luVmlldzo6aW5p
dCgpCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtSW5pdCgpCiB7Ci0gICAgTE9HKFBsdWdpbnMs
ICJQbHVnaW5WaWV3Ojppbml0KCk6IEluaXRpYWxpemluZyBwbHVnLWluICclcyciLCBtX3BsdWdp
bi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQot
ICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgaWYg
KCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2Fu
Tm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGx1
Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBtX3N0YXR1cyA9
IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5O
b3RMb2FkUGx1Z2luOwotICAgICAgICBzdG9wKCk7IC8vIE1ha2Ugc3VyZSB3ZSB1bnJlZ2lzdGVy
IHRoZSBwbHVnaW4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChtX2RyYXdpbmdN
b2RlbCA9PSBOUERyYXdpbmdNb2RlbCgtMSkpIHsKICAgICAgICAgLy8gV2UgZGVmYXVsdCB0byBR
dWlja0RyYXcsIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgaXQsCiAgICAgICAgIC8vIHNp
bmNlIHRoYXQncyB3aGF0IFNhZmFyaSBkb2VzLCBhbmQgc29tZSBwbHVnaW5zIGV4cGVjdCB0aGlz
CkBAIC0xODAsOCArMTU3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgbV9z
dGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwogICAgICAgICBMT0coUGx1Z2lu
cywgIlBsdWctaW4gJyVzJyB1c2VzIHVuc3VwcG9ydGVkIGV2ZW50IG1vZGVsICVzIiwKICAgICAg
ICAgICAgICAgICBtX3BsdWdpbi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCksIHByZXR0eU5hbWVGb3JF
dmVudE1vZGVsKG1fZXZlbnRNb2RlbCkpOwotICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChnZXRWYWx1ZVN0YXRp
YyhOUE5WYXJpYWJsZShOUE5Wc3VwcG9ydHNRdWlja0RyYXdCb29sICsgbV9kcmF3aW5nTW9kZWwp
LCAmZHJhd2luZ01vZGVsU3VwcG9ydGVkKSAhPSBOUEVSUl9OT19FUlJPUgpAQCAtMTg5LDE5ICsx
NjUsMTggQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwogICAgICAgICBMT0coUGx1Z2lucywgIlBsdWctaW4g
JyVzJyB1c2VzIHVuc3VwcG9ydGVkIGRyYXdpbmcgbW9kZWwgJXMiLAogICAgICAgICAgICAgICAg
IG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRhdGEoKSwgcHJldHR5TmFtZUZvckRyYXdpbmdNb2Rl
bChtX2RyYXdpbmdNb2RlbCkpOwotICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0
KG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsK
IAogICAgIHNob3coKTsKIAotICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vz
c2Z1bGx5OwotCiAgICAgLy8gVE9ETzogSW1wbGVtZW50IG51bGwgdGltZXIgdGhyb3R0bGluZyBk
ZXBlbmRpbmcgb24gcGx1Z2luIGFjdGl2YXRpb24KICAgICBtX251bGxFdmVudFRpbWVyLnNldChu
ZXcgVGltZXI8UGx1Z2luVmlldz4odGhpcywgJlBsdWdpblZpZXc6Om51bGxFdmVudFRpbWVyRmly
ZWQpKTsKICAgICBtX251bGxFdmVudFRpbWVyLT5zdGFydFJlcGVhdGluZygwLjAyKTsKKworICAg
IHJldHVybiB0cnVlOwogfQogCiBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IDhhMjQ0NmYuLmFmMjQzYzUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCkBAIC00NTIsMzAgKzQ1Miw4IEBAIFBsdWdpblZpZXc6On5QbHVn
aW5WaWV3KCkKICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAg
ICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVJbml0
aWFsaXplZCA9IHRydWU7Ci0KLSAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IGZhbHNl
OwotCi0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1
Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
aWYgKG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5W
aWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRy
b3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoZmFsc2UpOwpAQCAtNDg5LDkgKzQ2Nyw5IEBAIHZvaWQg
UGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5D
b250YWluZXJRdCh0aGlzLCBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1XaW5kb3coKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCiAgICAgc2hvdygpOwog
CiAgICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCAqd3NpID0gbmV3IE5QU2V0V2luZG93Q2Fs
bGJhY2tTdHJ1Y3QoKTsKQEAgLTUxNCw3ICs0OTIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQo
KQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAgICAgfQogCi0gICAgbV9zdGF0dXMg
PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3Bw
CmluZGV4IDQ2NDBiNGQuLjhkOWMxZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcApAQCAtOTMwLDI2ICs5MzAsNiBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAKIHZv
aWQgUGx1Z2luVmlldzo6aW5pdCgpCiB7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgaWYgKCFt
X3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2FuTm90
RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGx1Z2lu
LT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBtX3N0YXR1cyA9IFBs
dWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RM
b2FkUGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKG1faXNXaW5kb3dl
ZCkgewogICAgICAgICByZWdpc3RlclBsdWdpblZpZXcoKTsKICAgICAgICAgc2V0VXBPZmZzY3Jl
ZW5QYWludGluZ0hvb2tzKGhvb2tlZEJlZ2luUGFpbnQsIGhvb2tlZEVuZFBhaW50KTsKQEAgLTk4
Niw3ICs5NjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogICAgIGlmICghbV9wbHVnaW4t
PnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwpKQog
ICAgICAgICBzZXROUFdpbmRvd1JlY3QoZnJhbWVSZWN0KCkpOwogCi0gICAgbV9zdGF0dXMgPSBQ
bHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33536</attachid>
            <date>2009-07-27 06:16:32 -0700</date>
            <delta_ts>2009-08-31 06:20:56 -0700</delta_ts>
            <desc>Join the various versions of PluginView::stop() into one shared implementation</desc>
            <filename>bug-27706-20090727151630.patch</filename>
            <type>text/plain</type>
            <size>12028</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NzM5NzI5Ny4uYzNkMDJlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiw0NiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgdmVyc2lvbnMgb2YgUGx1
Z2luVmlldzo6c3RvcCgpIGludG8gb25lIHNoYXJlZCBpbXBsZW1lbnRhdGlvbgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwNgorCisgICAgICAg
IFRoZSBwbGF0Zm9ybS1kZXBlbmRlbnQgYml0cyBhcmUgbm93IGlmZGVmJ2VkIGluIHRoZSBzaGFy
ZWQgaW1wbGVtZW50YXRpb24sCisgICAgICAgIHVzaW5nIHRoZSBYUF8gZGVmaW5lcyAoWFBfV0lO
LCBYUF9NQUNPU1gsIFhQX1VOSVgpIGZyb20gbnBhcGkuaAorICAgICAgICAKKyAgICAgICAgRGlm
ZmVyZW5jZXMgdG8gdGhlIG9yaWdpbmFsIGltcGxlbWVudGF0aW9uIGFyZSBhcyBmb2xsb3dzOgor
CisgICAgICAgICAgICAtIFRoZSBRdCBwb3J0IHVucmVnaXN0ZXJlZCB0aGUgcGx1Z2luIGJlZm9y
ZSBjYWxsaW5nIE5QX1NldFdpbmRvdworICAgICAgICAgICAgICB3aXRoIGEgMCB3aW5kb3cgaGFu
ZGxlLiBOb3cgaXQncyBkb25lIGFmdGVyIChzaW1pbGFyIHRvIFdpbikKKworICAgICAgICAgICAg
LSBUaGUgR1RLIGFuZCBRdCBwb3J0cyB1bnJlZ2lzdGVyZWQgdGhlIHBsdWdpbiBiZWZvcmUgY2xl
YXJpbmcKKyAgICAgICAgICAgICAgdGhlIG1fbnBXaW5kb3cud3NfaW5mbyBzdHJ1Y3QuIE5vdyBp
dCdzIGRvbmUgYWZ0ZXIuCisgICAgICAgICAgICAgIAorICAgICAgICAgICAgLSBUaGUgV2luIHBv
cnQgY29uc3RydWN0ZWQgdGhlIERyb3BBbGxMb2NrcyBhZnRlciB1bnN1YmNsYXNzaW5nCisgICAg
ICAgICAgICAgIHRoZSB3aW5kb3cuIE5vdyBpdCdzIGRvbmUgYmVmb3JlLgorICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgIC0gVGhlIE1hYywgUXQsIGFuZCBHVEsgcG9ydHMgZGlkIG5vdCBwYXNz
IGEgTlBTYXZlZERhdGEgc3RydWN0CisgICAgICAgICAgICAgIHRvIE5QX0Rlc3Ryb3kgKGxpa2Ug
dGhlIFdpbiBwb3J0KS4gTm93IGFsbCBwb3J0cyBkby4KKworICAgICAgICAgICAgLSBUaGUgV2lu
IHBvcnQgZGlkIG5vdCBjYWxsIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KCkKKyAg
ICAgICAgICAgICAgYmVmb3JlIGNhbGxpbmcgdG8gTlAtZnVuY3Rpb25zLiBOb3cgaXQgZG9lcy4g
ICAgICAgICAgICAgIAorCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdp
blZpZXc6On5QbHVnaW5WaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnN0b3Ap
OgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwOgorICAgICAgICAqIHBsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZp
ZXdNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6Z2V0VmFsdWVTdGF0aWMp
OgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKiBwbHVn
aW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmhhbmRsZVBvc3RSZWFkRmlsZSk6CisKKzIwMDktMDctMjcgIFRvciBBcm5lIFZlc3Riw7ggIDx0
b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCiAgICAgICAgIFJlZmFjdG9yIHRoZSBjb21tb24gcGFydHMgb3V0IG9mIFBsdWdp
blZpZXc6OmluaXQoKSBhbmQgYWRkIHBsYXRmb3JtSW5pdCgpCiAgICAgICAgIAogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcAppbmRleCAzMmRkNjQ1Li5hNDMyYzhmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBA
IC0yMTMsNiArMjEzLDc2IEBAIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQoKQogICAgIHJldHVybiB0
cnVlOwogfQogCit2b2lkIFBsdWdpblZpZXc6OnN0b3AoKQoreworICAgIGlmICghbV9pc1N0YXJ0
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c3Rv
cCgpOiBTdG9wcGluZyBwbHVnLWluICclcyciLCBtX3BsdWdpbi0+bmFtZSgpLnV0ZjgoKS5kYXRh
KCkpOworCisgICAgSGFzaFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+IHN0cmVhbXMgPSBtX3N0
cmVhbXM7CisgICAgSGFzaFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+OjppdGVyYXRvciBlbmQg
PSBzdHJlYW1zLmVuZCgpOworICAgIGZvciAoSGFzaFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+
OjppdGVyYXRvciBpdCA9IHN0cmVhbXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICgqaXQpLT5zdG9wKCk7CisgICAgICAgIGRpc2Nvbm5lY3RTdHJlYW0oKCppdCkuZ2V0KCkp
OworICAgIH0KKworICAgIEFTU0VSVChtX3N0cmVhbXMuaXNFbXB0eSgpKTsKKworICAgIG1faXNT
dGFydGVkID0gZmFsc2U7CisKKyAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxM
b2NrcyhmYWxzZSk7CisKKyNpZmRlZiBYUF9XSU4KKyAgICAvLyBVbnN1YmNsYXNzIHRoZSB3aW5k
b3cKKyAgICBpZiAobV9pc1dpbmRvd2VkKSB7CisgICAgICAgIFdORFBST0MgY3VycmVudFduZFBy
b2MgPSAoV05EUFJPQylHZXRXaW5kb3dMb25nUHRyKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCksIEdX
TFBfV05EUFJPQyk7CisKKyAgICAgICAgaWYgKGN1cnJlbnRXbmRQcm9jID09IFBsdWdpblZpZXdX
bmRQcm9jKQorICAgICAgICAgICAgU2V0V2luZG93TG9uZ1B0cihwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpLCBHV0xQX1dORFBST0MsIChMT05HKW1fcGx1Z2luV25kUHJvYyk7CisgICAgfQorI2VuZGlm
CisKKyNpZiAhZGVmaW5lZChYUF9NQUNPU1gpCisgICAgLy8gQ2xlYXIgdGhlIHdpbmRvdworICAg
IG1fbnBXaW5kb3cud2luZG93ID0gMDsKKworICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3Mo
KS0+c2V0d2luZG93ICYmICFtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtE
b250U2V0TnVsbFdpbmRvd0hhbmRsZU9uRGVzdHJveSkpIHsKKyAgICAgICAgUGx1Z2luVmlldzo6
c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7CisgICAgICAgIHNldENhbGxpbmdQbHVnaW4odHJ1
ZSk7CisgICAgICAgIG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR3aW5kb3cobV9pbnN0YW5j
ZSwgJm1fbnBXaW5kb3cpOworICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsKKyAgICAg
ICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7CisgICAgfQorCisjaWZkZWYg
WFBfVU5JWAorICAgIGlmIChtX2lzV2luZG93ZWQgJiYgbV9ucFdpbmRvdy53c19pbmZvKQorICAg
ICAgICAgICBkZWxldGUgKE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKiltX25wV2luZG93Lndz
X2luZm87CisgICAgbV9ucFdpbmRvdy53c19pbmZvID0gMDsKKyNlbmRpZgorCisjZW5kaWYgLy8g
IWRlZmluZWQoWFBfTUFDT1NYKQorCisgICAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2No
ZWR1bGVyKCkudW5yZWdpc3RlclBsdWdpbihtX2luc3RhbmNlKTsKKworICAgIE5QU2F2ZWREYXRh
KiBzYXZlZERhdGEgPSAwOworICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRo
aXMpOworICAgIHNldENhbGxpbmdQbHVnaW4odHJ1ZSk7CisgICAgTlBFcnJvciBucEVyciA9IG1f
cGx1Z2luLT5wbHVnaW5GdW5jcygpLT5kZXN0cm95KG1faW5zdGFuY2UsICZzYXZlZERhdGEpOwor
ICAgIHNldENhbGxpbmdQbHVnaW4oZmFsc2UpOworICAgIExPR19OUEVSUk9SKG5wRXJyKTsKKyAg
ICBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKKworICAgIGlmIChzYXZlZERh
dGEpIHsKKyAgICAgICAgLy8gVE9ETzogQWN0dWFsbHkgc2F2ZSB0aGlzIGRhdGEgaW5zdGVhZCBv
ZiBqdXN0IGRpc2NhcmRpbmcgaXQKKyAgICAgICAgaWYgKHNhdmVkRGF0YS0+YnVmKQorICAgICAg
ICAgICAgTlBOX01lbUZyZWUoc2F2ZWREYXRhLT5idWYpOworICAgICAgICBOUE5fTWVtRnJlZShz
YXZlZERhdGEpOworICAgIH0KKworICAgIG1faW5zdGFuY2UtPnBkYXRhID0gMDsKK30KKwogdm9p
ZCBQbHVnaW5WaWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyhQbHVnaW5WaWV3KiBwbHVnaW5WaWV3
KQogewogICAgIHNfY3VycmVudFBsdWdpblZpZXcgPSBwbHVnaW5WaWV3OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3Tm9uZS5jcHAKaW5kZXggZTUyODkwMS4uMWIzMWIyOSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlld05vbmUuY3BwCkBAIC03MywxMSArNzMsNiBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2lu
ZG93UmVjdChjb25zdCBJbnRSZWN0JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lk
IFBsdWdpblZpZXc6OnN0b3AoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGNvbnN0
IGNoYXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDc5OWM1NDMuLjFjYzFlMWIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysrIGIv
V2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApAQCAtMjU4LDUzICsyNTgsNiBA
QCB2b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudFZpc2libGUoYm9vbCB2aXNpYmxlKQogICAgIH0K
IH0KIAotdm9pZCBQbHVnaW5WaWV3OjpzdG9wKCkKLXsKLSAgICBpZiAoIW1faXNTdGFydGVkKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBIYXNoU2V0PFJlZlB0cjxQbHVnaW5TdHJlYW0+ID4gc3Ry
ZWFtcyA9IG1fc3RyZWFtczsKLSAgICBIYXNoU2V0PFJlZlB0cjxQbHVnaW5TdHJlYW0+ID46Oml0
ZXJhdG9yIGVuZCA9IHN0cmVhbXMuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PFJlZlB0cjxQbHVn
aW5TdHJlYW0+ID46Oml0ZXJhdG9yIGl0ID0gc3RyZWFtcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpIHsKLSAgICAgICAgKCppdCktPnN0b3AoKTsKLSAgICAgICAgZGlzY29ubmVjdFN0cmVhbSgo
Kml0KS5nZXQoKSk7Ci0gICAgfQotCi0gICAgQVNTRVJUKG1fc3RyZWFtcy5pc0VtcHR5KCkpOwot
Ci0gICAgbV9pc1N0YXJ0ZWQgPSBmYWxzZTsKLSAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tz
IGRyb3BBbGxMb2NrcyhmYWxzZSk7Ci0KLSAgICAvLyBDbGVhciB0aGUgd2luZG93Ci0gICAgbV9u
cFdpbmRvdy53aW5kb3cgPSAwOwotICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0
d2luZG93ICYmICFtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEb250U2V0
TnVsbFdpbmRvd0hhbmRsZU9uRGVzdHJveSkpIHsKLSAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3Vy
cmVudFBsdWdpblZpZXcodGhpcyk7Ci0gICAgICAgIHNldENhbGxpbmdQbHVnaW4odHJ1ZSk7Ci0g
ICAgICAgIG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR3aW5kb3cobV9pbnN0YW5jZSwgJm1f
bnBXaW5kb3cpOwotICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsKLSAgICAgICAgUGx1
Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7Ci0gICAgfQotCi0gICAgUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkudW5yZWdpc3RlclBsdWdpbihtX2luc3RhbmNl
KTsKLQotI2lmZGVmIFhQX1VOSVgKLSAgICBpZiAobV9pc1dpbmRvd2VkICYmIG1fbnBXaW5kb3cu
d3NfaW5mbykKLSAgICAgICAgICAgZGVsZXRlIChOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0ICop
bV9ucFdpbmRvdy53c19pbmZvOwotICAgIG1fbnBXaW5kb3cud3NfaW5mbyA9IDA7Ci0jZW5kaWYK
LQotICAgIC8vIERlc3Ryb3kgdGhlIHBsdWdpbgotICAgIHsKLSAgICAgICAgUGx1Z2luVmlldzo6
c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7Ci0gICAgICAgIHNldENhbGxpbmdQbHVnaW4odHJ1
ZSk7Ci0gICAgICAgIG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5kZXN0cm95KG1faW5zdGFuY2Us
IDApOwotICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsKLSAgICAgICAgUGx1Z2luVmll
dzo6c2V0Q3VycmVudFBsdWdpblZpZXcoMCk7Ci0gICAgfQotCi0gICAgbV9pbnN0YW5jZS0+cGRh
dGEgPSAwOwotfQotCiBzdGF0aWMgY29uc3QgY2hhciogTW96aWxsYVVzZXJBZ2VudCA9ICJNb3pp
bGxhLzUuMCAoWDExOyBVOyBMaW51eCBpNjg2OyBlbi1VUzsgcnY6MS44LjEpIEdlY2tvLzIwMDYx
MDEwIEZpcmVmb3gvMi4wIjsKIAogY29uc3QgY2hhciogUGx1Z2luVmlldzo6dXNlckFnZW50KCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDAxODZmYTAuLjdlZjVlYjgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKKysrIGIv
V2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMTk4LDM4ICsxOTgsNiBA
QCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAgICAgbV93aW5kb3cgPSAwOwogfQogCi12b2lk
IFBsdWdpblZpZXc6OnN0b3AoKQotewotICAgIGlmICghbV9pc1N0YXJ0ZWQpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6c3RvcCgpOiBTdG9wcGluZyBw
bHVnLWluICclcyciLCBtX3BsdWdpbi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgSGFz
aFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+IHN0cmVhbXMgPSBtX3N0cmVhbXM7Ci0gICAgSGFz
aFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+OjppdGVyYXRvciBlbmQgPSBzdHJlYW1zLmVuZCgp
OwotICAgIGZvciAoSGFzaFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+OjppdGVyYXRvciBpdCA9
IHN0cmVhbXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICgqaXQpLT5zdG9w
KCk7Ci0gICAgICAgIGRpc2Nvbm5lY3RTdHJlYW0oKCppdCkuZ2V0KCkpOwotICAgIH0KLQotICAg
IEFTU0VSVChtX3N0cmVhbXMuaXNFbXB0eSgpKTsKLQotICAgIG1faXNTdGFydGVkID0gZmFsc2U7
Ci0KLSAgICBKU0M6OkpTTG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhmYWxzZSk7Ci0K
LSAgICBQbHVnaW5NYWluVGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS51bnJlZ2lzdGVyUGx1
Z2luKG1faW5zdGFuY2UpOwotCi0gICAgLy8gRGVzdHJveSB0aGUgcGx1Z2luCi0gICAgUGx1Z2lu
Vmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7Ci0gICAgc2V0Q2FsbGluZ1BsdWdpbih0
cnVlKTsKLSAgICBtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+ZGVzdHJveShtX2luc3RhbmNlLCAw
KTsKLSAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsKLSAgICBQbHVnaW5WaWV3OjpzZXRDdXJy
ZW50UGx1Z2luVmlldygwKTsKLQotICAgIG1faW5zdGFuY2UtPnBkYXRhID0gMDsKLX0KLQogLy8g
VXNlZCBiZWZvcmUgdGhlIHBsdWdpbiB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkIHByb3Blcmx5
LCBhbmQgYXMgYQogLy8gZmFsbGJhY2sgZm9yIHZhcmlhYmxlcyB0aGF0IGRvIG5vdCByZXF1aXJl
IGEgdmlldyB0byByZXNvbHZlLgogTlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZVN0YXRpYyhO
UE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
dWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwCmluZGV4IGFmMjQzYzUuLjFlZjU4MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3
UXQuY3BwCkBAIC0yMjcsNTEgKzIyNyw2IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50Vmlz
aWJsZShib29sIHZpc2libGUpCiAgICAgICAgIHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPnNldFZp
c2libGUodmlzaWJsZSk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCi17Ci0gICAgaWYg
KCFtX2lzU3RhcnRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgSGFzaFNldDxSZWZQdHI8UGx1
Z2luU3RyZWFtPiA+IHN0cmVhbXMgPSBtX3N0cmVhbXM7Ci0gICAgSGFzaFNldDxSZWZQdHI8UGx1
Z2luU3RyZWFtPiA+OjppdGVyYXRvciBlbmQgPSBzdHJlYW1zLmVuZCgpOwotICAgIGZvciAoSGFz
aFNldDxSZWZQdHI8UGx1Z2luU3RyZWFtPiA+OjppdGVyYXRvciBpdCA9IHN0cmVhbXMuYmVnaW4o
KTsgaXQgIT0gZW5kOyArK2l0KSB7Ci0gICAgICAgICgqaXQpLT5zdG9wKCk7Ci0gICAgICAgIGRp
c2Nvbm5lY3RTdHJlYW0oKCppdCkuZ2V0KCkpOwotICAgIH0KLQotICAgIEFTU0VSVChtX3N0cmVh
bXMuaXNFbXB0eSgpKTsKLQotICAgIG1faXNTdGFydGVkID0gZmFsc2U7Ci0KLSAgICBKU0M6OkpT
TG9jazo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhmYWxzZSk7Ci0KLSAgICBQbHVnaW5NYWlu
VGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS51bnJlZ2lzdGVyUGx1Z2luKG1faW5zdGFuY2Up
OwotCi0gICAgLy8gQ2xlYXIgdGhlIHdpbmRvdwotICAgIG1fbnBXaW5kb3cud2luZG93ID0gMDsK
LSAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPnNldHdpbmRvdyAmJiAhbV9wbHVnaW4t
PnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFNldE51bGxXaW5kb3dIYW5kbGVPbkRl
c3Ryb3kpKSB7Ci0gICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRoaXMp
OwotICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKHRydWUpOwotICAgICAgICBtX3BsdWdpbi0+cGx1
Z2luRnVuY3MoKS0+c2V0d2luZG93KG1faW5zdGFuY2UsICZtX25wV2luZG93KTsKLSAgICAgICAg
c2V0Q2FsbGluZ1BsdWdpbihmYWxzZSk7Ci0gICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQ
bHVnaW5WaWV3KDApOwotICAgIH0KLQotICAgIGRlbGV0ZSAoTlBTZXRXaW5kb3dDYWxsYmFja1N0
cnVjdCAqKW1fbnBXaW5kb3cud3NfaW5mbzsKLSAgICBtX25wV2luZG93LndzX2luZm8gPSAwOwot
Ci0gICAgLy8gRGVzdHJveSB0aGUgcGx1Z2luCi0gICAgewotICAgICAgICBQbHVnaW5WaWV3Ojpz
ZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKLSAgICAgICAgc2V0Q2FsbGluZ1BsdWdpbih0cnVl
KTsKLSAgICAgICAgbV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmRlc3Ryb3kobV9pbnN0YW5jZSwg
MCk7Ci0gICAgICAgIHNldENhbGxpbmdQbHVnaW4oZmFsc2UpOwotICAgICAgICBQbHVnaW5WaWV3
OjpzZXRDdXJyZW50UGx1Z2luVmlldygwKTsKLSAgICB9Ci0KLSAgICBtX2luc3RhbmNlLT5wZGF0
YSA9IDA7Ci19Ci0KIHN0YXRpYyBjb25zdCBjaGFyKiBNb3ppbGxhVXNlckFnZW50ID0gIk1vemls
bGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGVuLVVTOyBydjoxLjguMSkgR2Vja28vMjAwNjEw
MTAgRmlyZWZveC8yLjAiOwogCiBjb25zdCBjaGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggOGQ5YzFmNS4uODkyMDNiNCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysgYi9X
ZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC02ODMsNTggKzY4Myw2IEBA
IHZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCiAg
ICAgfQogfQogCi12b2lkIFBsdWdpblZpZXc6OnN0b3AoKQotewotICAgIGlmICghbV9pc1N0YXJ0
ZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEhhc2hTZXQ8UmVmUHRyPFBsdWdpblN0cmVhbT4g
PiBzdHJlYW1zID0gbV9zdHJlYW1zOwotICAgIEhhc2hTZXQ8UmVmUHRyPFBsdWdpblN0cmVhbT4g
Pjo6aXRlcmF0b3IgZW5kID0gc3RyZWFtcy5lbmQoKTsKLSAgICBmb3IgKEhhc2hTZXQ8UmVmUHRy
PFBsdWdpblN0cmVhbT4gPjo6aXRlcmF0b3IgaXQgPSBzdHJlYW1zLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkgewotICAgICAgICAoKml0KS0+c3RvcCgpOwotICAgICAgICBkaXNjb25uZWN0U3Ry
ZWFtKCgqaXQpLmdldCgpKTsKLSAgICB9Ci0KLSAgICBBU1NFUlQobV9zdHJlYW1zLmlzRW1wdHko
KSk7Ci0KLSAgICBtX2lzU3RhcnRlZCA9IGZhbHNlOwotCi0gICAgLy8gVW5zdWJjbGFzcyB0aGUg
d2luZG93Ci0gICAgaWYgKG1faXNXaW5kb3dlZCkgewotICAgICAgICBXTkRQUk9DIGN1cnJlbnRX
bmRQcm9jID0gKFdORFBST0MpR2V0V2luZG93TG9uZ1B0cihwbGF0Zm9ybVBsdWdpbldpZGdldCgp
LCBHV0xQX1dORFBST0MpOwotICAgICAgICAKLSAgICAgICAgaWYgKGN1cnJlbnRXbmRQcm9jID09
IFBsdWdpblZpZXdXbmRQcm9jKQotICAgICAgICAgICAgU2V0V2luZG93TG9uZ1B0cihwbGF0Zm9y
bVBsdWdpbldpZGdldCgpLCBHV0xQX1dORFBST0MsIChMT05HKW1fcGx1Z2luV25kUHJvYyk7Ci0g
ICAgfQotCi0gICAgSlNDOjpKU0xvY2s6OkRyb3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoZmFsc2Up
OwotCi0gICAgLy8gQ2xlYXIgdGhlIHdpbmRvdwotICAgIG1fbnBXaW5kb3cud2luZG93ID0gMDsK
LSAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPnNldHdpbmRvdyAmJiAhbV9wbHVnaW4t
PnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFNldE51bGxXaW5kb3dIYW5kbGVPbkRl
c3Ryb3kpKSB7Ci0gICAgICAgIHNldENhbGxpbmdQbHVnaW4odHJ1ZSk7Ci0gICAgICAgIG1fcGx1
Z2luLT5wbHVnaW5GdW5jcygpLT5zZXR3aW5kb3cobV9pbnN0YW5jZSwgJm1fbnBXaW5kb3cpOwot
ICAgICAgICBzZXRDYWxsaW5nUGx1Z2luKGZhbHNlKTsKLSAgICB9Ci0KLSAgICBQbHVnaW5NYWlu
VGhyZWFkU2NoZWR1bGVyOjpzY2hlZHVsZXIoKS51bnJlZ2lzdGVyUGx1Z2luKG1faW5zdGFuY2Up
OwotCi0gICAgLy8gRGVzdHJveSB0aGUgcGx1Z2luCi0gICAgTlBTYXZlZERhdGEqIHNhdmVkRGF0
YSA9IDA7Ci0gICAgc2V0Q2FsbGluZ1BsdWdpbih0cnVlKTsKLSAgICBOUEVycm9yIG5wRXJyID0g
bV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmRlc3Ryb3kobV9pbnN0YW5jZSwgJnNhdmVkRGF0YSk7
Ci0gICAgc2V0Q2FsbGluZ1BsdWdpbihmYWxzZSk7Ci0gICAgTE9HX05QRVJST1IobnBFcnIpOwot
Ci0gICAgaWYgKHNhdmVkRGF0YSkgewotICAgICAgICBpZiAoc2F2ZWREYXRhLT5idWYpCi0gICAg
ICAgICAgICBOUE5fTWVtRnJlZShzYXZlZERhdGEtPmJ1Zik7Ci0gICAgICAgIE5QTl9NZW1GcmVl
KHNhdmVkRGF0YSk7Ci0gICAgfQotCi0gICAgbV9pbnN0YW5jZS0+cGRhdGEgPSAwOwotfQotCiBj
b25zdCBjaGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnRTdGF0aWMoKQogewogICAgIHJldHVybiAw
Ow==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33537</attachid>
            <date>2009-07-27 06:16:48 -0700</date>
            <delta_ts>2009-08-31 06:21:04 -0700</delta_ts>
            <desc>Unregister plugin from PluginMainThreadScheduler if NPP_New fails</desc>
            <filename>bug-27706-20090727151646.patch</filename>
            <type>text/plain</type>
            <size>1337</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzNkMDJlNS4uMjlkM2I2OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyMSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFVucmVnaXN0ZXIgcGx1Z2luIGZyb20gUGx1Z2luTWFp
blRocmVhZFNjaGVkdWxlciBpZiBOUFBfTmV3IGZhaWxzCisgICAgICAgIAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKyAgICAgICAgCisgICAg
ICAgIFNpbmNlIHRoZSBwbHVnaW4gaGFzIG5vdCBiZWVuIHN0YXJ0ZWQgeWV0IChtX2lzU3RhcnRl
ZCBpcyBub3Qgc2V0KSwKKyAgICAgICAgY2FsbGluZyBzdG9wKCkgd2lsbCBub3QgaGF2ZSBhbnkg
YWZmZWN0LCBzbyB3ZSBtYW51YWxseSB1bnJlZ2lzdGVyCisgICAgICAgIGluIHN0YXJ0KCkgYmVm
b3JlIHJldHVybmluZy4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGFydCk6CisKKzIwMDktMDctMjcgIFRvciBBcm5l
IFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgdmVyc2lvbnMg
b2YgUGx1Z2luVmlldzo6c3RvcCgpIGludG8gb25lIHNoYXJlZCBpbXBsZW1lbnRhdGlvbgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwNgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IGE0MzJjOGYuLmQyZjA4ZDggMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5jcHAKQEAgLTE5OCw4ICsxOTgsMTAgQEAgYm9vbCBQbHVnaW5WaWV3OjpzdGFydCgpCiAgICAg
ICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KDApOwogICAgIH0KIAotICAgIGlm
IChucEVyciAhPSBOUEVSUl9OT19FUlJPUikKKyAgICBpZiAobnBFcnIgIT0gTlBFUlJfTk9fRVJS
T1IpIHsKKyAgICAgICAgUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlcjo6c2NoZWR1bGVyKCkudW5y
ZWdpc3RlclBsdWdpbihtX2luc3RhbmNlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
IAogICAgIG1faXNTdGFydGVkID0gdHJ1ZTs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33538</attachid>
            <date>2009-07-27 06:17:08 -0700</date>
            <delta_ts>2009-08-02 07:36:21 -0700</delta_ts>
            <desc>Join the various PluginView destructors into one shared implementation</desc>
            <filename>bug-27706-20090727151706.patch</filename>
            <type>text/plain</type>
            <size>6392</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MjlkM2I2OC4uMWY1MmY0NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgUGx1Z2luVmlldyBkZXN0
cnVjdG9ycyBpbnRvIG9uZSBzaGFyZWQgaW1wbGVtZW50YXRpb24KKyAgICAgICAgCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwNgorCisgICAgICAg
IERpZmZlcmVuY2VzIHRvIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBhcmUgYXMgZm9sbG93
czoKKyAgICAgICAgCisgICAgICAgICAgICAtIFRoZSBNYWMgcG9ydCBkb2VzIG5vdCBzZXQgbV93
aW5kb3cgdG8gMCBhbnltb3JlLgorICAgICAgICAgICAgCisgICAgICAgICAgICAtIFRoZSBRdCBw
b3J0IHVzZWQgdG8gZGVsZXRlIHRoZSBwbGF0Zm9ybSBwbHVnaW4gd2lkZ2V0IGFzCisgICAgICAg
ICAgICAgIHRoZSBsYXN0IHN0ZXAuIE5vdyB0aGlzIGlzIGRvbmUgYmVmb3JlIGNsZWFuaW5nIHVw
IHRoZQorICAgICAgICAgICAgICBzY3JpcHQgb2JqZWN0cyBhbmQgdW5sb2FkaW5nIHRoZSBwbHVn
aW4gcGFja2FnZSAobGlrZQorICAgICAgICAgICAgICB0aGUgV2luIHBvcnQpLiAKKworICAgICAg
ICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
Ojp+UGx1Z2luVmlldyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAg
ICAqIHBsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGxhdGZvcm1Jbml0KToKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3
TWFjLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQpOgorICAgICAgICAqIHBsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aW5p
dCk6CisKKzIwMDktMDctMjcgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAg
IFVucmVnaXN0ZXIgcGx1Z2luIGZyb20gUGx1Z2luTWFpblRocmVhZFNjaGVkdWxlciBpZiBOUFBf
TmV3IGZhaWxzCiAgICAgICAgIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mjc3MDYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCBkMmYwOGQ4Li43N2M0
MDg2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC02OCw2ICs2OCwxMCBAQAogI2luY2x1ZGUg
PHJ1bnRpbWUvSlNWYWx1ZS5oPgogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAKKyNpZiBk
ZWZpbmVkKFhQX1VOSVgpICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFXaWRnZXQ+CisjZW5k
aWYKKwogdXNpbmcgSlNDOjpFeGVjU3RhdGU7CiB1c2luZyBKU0M6OkpTTG9jazsKIHVzaW5nIEpT
Qzo6SlNPYmplY3Q7CkBAIC0yMTUsNiArMjE5LDMyIEBAIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQo
KQogICAgIHJldHVybiB0cnVlOwogfQogCitQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCit7Cisg
ICAgTE9HKFBsdWdpbnMsICJQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpIik7CisKKyAgICBzdG9w
KCk7CisKKyAgICBkZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7CisKKyAgICBmcmVlU3RyaW5n
QXJyYXkobV9wYXJhbU5hbWVzLCBtX3BhcmFtQ291bnQpOworICAgIGZyZWVTdHJpbmdBcnJheSht
X3BhcmFtVmFsdWVzLCBtX3BhcmFtQ291bnQpOworCisgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lk
Z2V0KCkpIHsKKyNpZiBkZWZpbmVkKFhQX1dJTikKKyAgICAgICBEZXN0cm95V2luZG93KHBsYXRm
b3JtUGx1Z2luV2lkZ2V0KCkpOworI2VsaWYgZGVmaW5lZChYUF9VTklYKSAmJiBQTEFURk9STShR
VCkKKyAgICAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBkb25lIGZvciBHVEsgdG9vPworICAg
ICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOworI2VuZGlmCisgICAgfQorCisgICAg
bV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBTY3JpcHRPYmplY3RzRm9yUGx1Z2luKHRo
aXMpOworCisgICAgaWYgKG1fcGx1Z2luICYmICEobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5z
KFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikpKQorICAgICAgICBtX3BsdWdpbi0+dW5sb2Fk
KCk7Cit9CisKIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCiB7CiAgICAgaWYgKCFtX2lzU3RhcnRl
ZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAgYi9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCmluZGV4IDFiMzFiMjkuLjhkNjdlYjkgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcApAQCAtMTI4LDExICsxMjgsNiBAQCB2b2lkIFBs
dWdpblZpZXc6OmZvcmNlUmVkcmF3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1QbHVn
aW5WaWV3Ojp+UGx1Z2luVmlldygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9p
ZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCAxY2MxZTFiLi5jMTQ0YjBhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dl
YkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTQ1MSwyMSArNDUxLDYgQEAg
dm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgICAgIGd0a193aWRnZXRfcXVldWVf
ZHJhdyhtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3co
KSk7CiB9CiAKLVBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKLXsKLSAgICBzdG9wKCk7Ci0KLSAg
ICBkZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7Ci0KLSAgICBmcmVlU3RyaW5nQXJyYXkobV9w
YXJhbU5hbWVzLCBtX3BhcmFtQ291bnQpOwotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtVmFs
dWVzLCBtX3BhcmFtQ291bnQpOwotCi0gICAgbV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFu
dXBTY3JpcHRPYmplY3RzRm9yUGx1Z2luKHRoaXMpOwotCi0gICAgaWYgKG1fcGx1Z2luICYmICEo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikp
KQotICAgICAgICBtX3BsdWdpbi0+dW5sb2FkKCk7Ci19Ci0KIHN0YXRpYyBnYm9vbGVhbgogcGx1
Z19yZW1vdmVkX2NiKEd0a1NvY2tldCAqc29ja2V0LCBncG9pbnRlcikKIHsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
bWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDdlZjVlYjguLjZiYjExZTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMTc5LDI1ICsxNzksNiBAQCBib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtSW5pdCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBsdWdpblZpZXc6
On5QbHVnaW5WaWV3KCkKLXsKLSAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6On5QbHVnaW5W
aWV3KCkiKTsKLQotICAgIHN0b3AoKTsKLQotICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3JlcXVlc3Rz
KTsKLQotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtTmFtZXMsIG1fcGFyYW1Db3VudCk7Ci0g
ICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1WYWx1ZXMsIG1fcGFyYW1Db3VudCk7Ci0KLSAgICBt
X3BhcmVudEZyYW1lLT5zY3JpcHQoKS0+Y2xlYW51cFNjcmlwdE9iamVjdHNGb3JQbHVnaW4odGhp
cyk7Ci0KLSAgICBpZiAobV9wbHVnaW4gJiYgIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMo
UGx1Z2luUXVpcmtEb250VW5sb2FkUGx1Z2luKSkpCi0gICAgICAgIG1fcGx1Z2luLT51bmxvYWQo
KTsKLQotICAgIG1fd2luZG93ID0gMDsKLX0KLQogLy8gVXNlZCBiZWZvcmUgdGhlIHBsdWdpbiB2
aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkIHByb3Blcmx5LCBhbmQgYXMgYQogLy8gZmFsbGJhY2sg
Zm9yIHZhcmlhYmxlcyB0aGF0IGRvIG5vdCByZXF1aXJlIGEgdmlldyB0byByZXNvbHZlLgogTlBF
cnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9p
ZCogdmFsdWUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNw
cCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IDFlZjU4MTAuLmQ1
OTA1ZjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC0zOTAsMjMgKzM5MCw2
IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLVBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKLXsKLSAgICBzdG9wKCk7Ci0KLSAgICBk
ZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7Ci0KLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJh
bU5hbWVzLCBtX3BhcmFtQ291bnQpOwotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtVmFsdWVz
LCBtX3BhcmFtQ291bnQpOwotCi0gICAgbV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBT
Y3JpcHRPYmplY3RzRm9yUGx1Z2luKHRoaXMpOwotCi0gICAgaWYgKG1fcGx1Z2luICYmICEobV9w
bHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikpKQot
ICAgICAgICBtX3BsdWdpbi0+dW5sb2FkKCk7Ci0KLSAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5X
aWRnZXQoKTsKLX0KLQogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQoKQogewogICAgIGlm
IChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0dmFsdWUpIHsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpblZpZXdXaW4uY3BwCmluZGV4IDg5MjAzYjQuLmE1N2U2MjEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dp
bi9QbHVnaW5WaWV3V2luLmNwcApAQCAtODU4LDI0ICs4NTgsNiBAQCB2b2lkIFBsdWdpblZpZXc6
OmZvcmNlUmVkcmF3KCkKICAgICAgICAgOjpVcGRhdGVXaW5kb3cod2luZG93SGFuZGxlRm9yUGxh
dGZvcm1XaWRnZXQocGFyZW50KCkgPyBwYXJlbnQoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdp
bmRvdygpIDogMCkpOwogfQogCi1QbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCi17Ci0gICAgc3Rv
cCgpOwotCi0gICAgZGVsZXRlQWxsVmFsdWVzKG1fcmVxdWVzdHMpOwotCi0gICAgZnJlZVN0cmlu
Z0FycmF5KG1fcGFyYW1OYW1lcywgbV9wYXJhbUNvdW50KTsKLSAgICBmcmVlU3RyaW5nQXJyYXko
bV9wYXJhbVZhbHVlcywgbV9wYXJhbUNvdW50KTsKLQotICAgIGlmIChwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpKQotICAgICAgICBEZXN0cm95V2luZG93KHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwot
Ci0gICAgbV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBTY3JpcHRPYmplY3RzRm9yUGx1
Z2luKHRoaXMpOwotCi0gICAgaWYgKG1fcGx1Z2luICYmICFtX3BsdWdpbi0+cXVpcmtzKCkuY29u
dGFpbnMoUGx1Z2luUXVpcmtEb250VW5sb2FkUGx1Z2luKSkKLSAgICAgICAgbV9wbHVnaW4tPnVu
bG9hZCgpOwotfQotCiB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogewogICAgIGlmIChtX2lzV2lu
ZG93ZWQpIHs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33539</attachid>
            <date>2009-07-27 06:17:28 -0700</date>
            <delta_ts>2009-08-31 06:21:11 -0700</delta_ts>
            <desc>Share implementation of PluginView::userAgent() and userAgentStatic()</desc>
            <filename>bug-27706-20090727151726.patch</filename>
            <type>text/plain</type>
            <size>6912</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWY1MmY0NC4uZjVhODM4ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyOCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFNoYXJlIGltcGxlbWVudGF0aW9uIG9mIFBsdWdpblZp
ZXc6OnVzZXJBZ2VudCgpIGFuZCB1c2VyQWdlbnRTdGF0aWMoKQorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwNgorCisgICAgICAgIERpZmZlcmVu
Y2VzIHRvIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBhcmUgYXMgZm9sbG93czoKKyAgICAg
ICAgCisgICAgICAgICAgICAtIFRoZSBXaW4gcG9ydCB1c2VkIHRvIHJldHVybiAwIGZvciB1c2Vy
QWdlbnRTdGF0aWMsIGJ1dCBub3cKKyAgICAgICAgICAgICAgcmV0dXJucyB0aGUgcXVpcmsgbW9k
ZSBNb3ppbGxhVXNlckFnZW50IGFzIHRoZSBvdGhlciBwb3J0cy4KKworICAgICAgICAqIHBsdWdp
bnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1c2VyQWdl
bnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6dXNlckFnZW50U3RhdGljKToKKyAg
ICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL2d0
ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFj
LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAgICog
cGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKKzIwMDktMDctMjcgIFRvciBBcm5lIFZl
c3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgUGx1Z2luVmlldyBk
ZXN0cnVjdG9ycyBpbnRvIG9uZSBzaGFyZWQgaW1wbGVtZW50YXRpb24KICAgICAgICAgCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcwNgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCmluZGV4IDc3YzQwODYuLmU0ZDhjNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTExMzcsNCArMTEzNywzMSBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50TWlzc2luZ1Bs
dWdpbkljb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JgogICAgIGNv
bnRleHQtPnJlc3RvcmUoKTsKIH0KIAorc3RhdGljIGNvbnN0IGNoYXIqIE1vemlsbGFVc2VyQWdl
bnQgPSAiTW96aWxsYS81LjAgKCIKKyNpZiBkZWZpbmVkKFhQX01BQ09TWCkKKyAgICAgICAgIk1h
Y2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFg7IgorI2VsaWYgZGVmaW5lZChYUF9XSU4pCisgICAg
ICAgICJXaW5kb3dzOyBVOyBXaW5kb3dzIE5UIDUuMTsiCisjZWxpZiBkZWZpbmVkKFhQX1VOSVgp
CisgICAgICAgICJYMTE7IFU7IExpbnV4IGk2ODY7IgorI2VuZGlmCisgICAgICAgICIgZW4tVVM7
IHJ2OjEuOC4xKSBHZWNrby8yMDA2MTAxMCBGaXJlZm94LzIuMCI7CisKK2NvbnN0IGNoYXIqIFBs
dWdpblZpZXc6OnVzZXJBZ2VudCgpCit7CisgICAgaWYgKG1fcGx1Z2luLT5xdWlya3MoKS5jb250
YWlucyhQbHVnaW5RdWlya1dhbnRzTW96aWxsYVVzZXJBZ2VudCkpCisgICAgICAgIHJldHVybiBN
b3ppbGxhVXNlckFnZW50OworCisgICAgaWYgKG1fdXNlckFnZW50LmlzTnVsbCgpKQorICAgICAg
ICBtX3VzZXJBZ2VudCA9IG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT51c2VyQWdlbnQobV91cmwp
LnV0ZjgoKTsKKworICAgIHJldHVybiBtX3VzZXJBZ2VudC5kYXRhKCk7Cit9CisKK2NvbnN0IGNo
YXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudFN0YXRpYygpCit7CisgICAgcmV0dXJuIE1vemlsbGFV
c2VyQWdlbnQ7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5W
aWV3Tm9uZS5jcHAKaW5kZXggOGQ2N2ViOS4uYmYyY2M3YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d05vbmUuY3BwCkBAIC03MywyMCArNzMsNiBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93
UmVjdChjb25zdCBJbnRSZWN0JikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1jb25zdCBj
aGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIDA7Ci19Ci0KLSNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLWNvbnN0
IGNoYXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudFN0YXRpYygpCi17Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLSNlbmRpZgotCiBOUEVycm9yIFBsdWdpblZpZXc6Omhh
bmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mLCB1aW50MzIsIGNvbnN0IGNoYXIqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcApp
bmRleCBjMTQ0YjBhLi4xNzljN2U4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5j
cHAKQEAgLTI1OCwyNSArMjU4LDYgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnRWaXNpYmxl
KGJvb2wgdmlzaWJsZSkKICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBNb3ppbGxhVXNl
ckFnZW50ID0gIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGVuLVVTOyBydjoxLjgu
MSkgR2Vja28vMjAwNjEwMTAgRmlyZWZveC8yLjAiOwotCi1jb25zdCBjaGFyKiBQbHVnaW5WaWV3
Ojp1c2VyQWdlbnQoKQotewotICAgIGlmIChtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1
Z2luUXVpcmtXYW50c01vemlsbGFVc2VyQWdlbnQpKQotICAgICAgICByZXR1cm4gTW96aWxsYVVz
ZXJBZ2VudDsKLQotICAgIGlmIChtX3VzZXJBZ2VudC5pc051bGwoKSkKLSAgICAgICAgbV91c2Vy
QWdlbnQgPSBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KG1fdXJsKS51dGY4KCk7
Ci0KLSAgICByZXR1cm4gbV91c2VyQWdlbnQuZGF0YSgpOwotfQotCi1jb25zdCBjaGFyKiBQbHVn
aW5WaWV3Ojp1c2VyQWdlbnRTdGF0aWMoKQotewotICAgIC8vRklYTUUgLSBMaWUgYW5kIHNheSB3
ZSBhcmUgTW96aWxsYQotICAgIHJldHVybiBNb3ppbGxhVXNlckFnZW50OwotfQotCiBOUEVycm9y
IFBsdWdpblZpZXc6OmhhbmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mIGJ1ZmZlciwgdWlu
dDMyIGxlbiwgY29uc3QgY2hhciogYnVmKQogewogICAgIFN0cmluZyBmaWxlbmFtZShidWYsIGxl
bik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwIGIv
V2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAppbmRleCA2YmIxMWU3Li5mM2U4
MGViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKQEAgLTY0OCwyNCArNjQ4
LDYgQEAgYm9vbCBQbHVnaW5WaWV3OjpkaXNwYXRjaE5QRXZlbnQoTlBFdmVudCYgZXZlbnQpCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0gTWlzY2VsbGFuZW91cyAgLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBNb3ppbGxhVXNlckFnZW50ID0gIk1vemlsbGEvNS4wIChY
MTE7IFU7IExpbnV4IGk2ODY7IGVuLVVTOyBydjoxLjguMSkgR2Vja28vMjAwNjEwMTAgRmlyZWZv
eC8yLjAiOwotCi1jb25zdCBjaGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQotewotICAgIGlm
IChtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtXYW50c01vemlsbGFVc2Vy
QWdlbnQpKQotICAgICAgICByZXR1cm4gTW96aWxsYVVzZXJBZ2VudDsKLQotICAgIGlmIChtX3Vz
ZXJBZ2VudC5pc051bGwoKSkKLSAgICAgICAgbV91c2VyQWdlbnQgPSBtX3BhcmVudEZyYW1lLT5s
b2FkZXIoKS0+dXNlckFnZW50KG1fdXJsKS51dGY4KCk7Ci0KLSAgICByZXR1cm4gbV91c2VyQWdl
bnQuZGF0YSgpOwotfQotCi1jb25zdCBjaGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnRTdGF0aWMo
KQotewotICAgIHJldHVybiBNb3ppbGxhVXNlckFnZW50OwotfQotCiBOUEVycm9yIFBsdWdpblZp
ZXc6OmhhbmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mIGJ1ZmZlciwgdWludDMyIGxlbiwg
Y29uc3QgY2hhciogYnVmKQogewogICAgIFN0cmluZyBmaWxlbmFtZShidWYsIGxlbik7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGQ1OTA1ZjAuLjM1YWU1NDIgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1
Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC0yMjcsMjUgKzIyNyw2IEBAIHZvaWQgUGx1Z2lu
Vmlldzo6c2V0UGFyZW50VmlzaWJsZShib29sIHZpc2libGUpCiAgICAgICAgIHBsYXRmb3JtUGx1
Z2luV2lkZ2V0KCktPnNldFZpc2libGUodmlzaWJsZSk7CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFy
KiBNb3ppbGxhVXNlckFnZW50ID0gIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGVu
LVVTOyBydjoxLjguMSkgR2Vja28vMjAwNjEwMTAgRmlyZWZveC8yLjAiOwotCi1jb25zdCBjaGFy
KiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnQoKQotewotICAgIGlmIChtX3BsdWdpbi0+cXVpcmtzKCku
Y29udGFpbnMoUGx1Z2luUXVpcmtXYW50c01vemlsbGFVc2VyQWdlbnQpKQotICAgICAgICByZXR1
cm4gTW96aWxsYVVzZXJBZ2VudDsKLQotICAgIGlmIChtX3VzZXJBZ2VudC5pc051bGwoKSkKLSAg
ICAgICAgbV91c2VyQWdlbnQgPSBtX3BhcmVudEZyYW1lLT5sb2FkZXIoKS0+dXNlckFnZW50KG1f
dXJsKS51dGY4KCk7Ci0KLSAgICByZXR1cm4gbV91c2VyQWdlbnQuZGF0YSgpOwotfQotCi1jb25z
dCBjaGFyKiBQbHVnaW5WaWV3Ojp1c2VyQWdlbnRTdGF0aWMoKQotewotICAgIC8vIEZJWE1FIC0g
SnVzdCBzYXkgd2UgYXJlIE1vemlsbGEKLSAgICByZXR1cm4gTW96aWxsYVVzZXJBZ2VudDsKLX0K
LQogTlBFcnJvciBQbHVnaW5WaWV3OjpoYW5kbGVQb3N0UmVhZEZpbGUoVmVjdG9yPGNoYXI+JiBi
dWZmZXIsIHVpbnQzMiBsZW4sIGNvbnN0IGNoYXIqIGJ1ZikKIHsKICAgICBTdHJpbmcgZmlsZW5h
bWUoYnVmLCBsZW4pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3
V2luLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggYTU3
ZTYyMS4uYTcwOTUzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3
V2luLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC05
Niw4ICs5Niw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBjb25zdCBMUENXU1RSIGtX
ZWJQbHVnaW5WaWV3ZG93Q2xhc3NOYW1lID0gTCJXZWJQbHVnaW5WaWV3IjsKIGNvbnN0IExQQ1dT
VFIga1dlYlBsdWdpblZpZXdQcm9wZXJ0eSA9IEwiV2ViUGx1Z2luVmlld1Byb3BlcnR5IjsKIAot
c3RhdGljIGNvbnN0IGNoYXIqIE1vemlsbGFVc2VyQWdlbnQgPSAiTW96aWxsYS81LjAgKFdpbmRv
d3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1VUzsgcnY6MS44LjEpIEdlY2tvLzIwMDYxMDEwIEZp
cmVmb3gvMi4wIjsKLQogLy8gVGhlIGNvZGUgdXNlZCB0byBob29rIEJlZ2luUGFpbnQvRW5kUGFp
bnQgb3JpZ2luYWxseSBjYW1lIGZyb20KIC8vIDxodHRwOi8vd3d3LmZlbmd5dWFuLmNvbS9hcnRp
Y2xlL3dtcHJpbnQuaHRtbD4uCiAvLyBDb3B5cmlnaHQgKEMpIDIwMDAgYnkgRmVuZyBZdWFuICh3
d3cuZmVuZ3l1YW4uY29tKS4KQEAgLTY4MywyMSArNjgxLDYgQEAgdm9pZCBQbHVnaW5WaWV3Ojpz
ZXROUFdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICB9CiB9CiAKLWNvbnN0IGNo
YXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudFN0YXRpYygpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0K
LWNvbnN0IGNoYXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgpCi17Ci0gICAgaWYgKG1fcGx1Z2lu
LT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya1dhbnRzTW96aWxsYVVzZXJBZ2VudCkpCi0g
ICAgICAgIHJldHVybiBNb3ppbGxhVXNlckFnZW50OwotCi0gICAgaWYgKG1fdXNlckFnZW50Lmlz
TnVsbCgpKQotICAgICAgICBtX3VzZXJBZ2VudCA9IG1fcGFyZW50RnJhbWUtPmxvYWRlcigpLT51
c2VyQWdlbnQobV91cmwpLnV0ZjgoKTsKLSAgICByZXR1cm4gbV91c2VyQWdlbnQuZGF0YSgpOwot
fQotCiBOUEVycm9yIFBsdWdpblZpZXc6OmhhbmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4m
IGJ1ZmZlciwgdWludDMyIGxlbiwgY29uc3QgY2hhciogYnVmKQogewogICAgIFN0cmluZyBmaWxl
bmFtZShidWYsIGxlbik7
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33540</attachid>
            <date>2009-07-27 06:27:19 -0700</date>
            <delta_ts>2009-08-02 07:36:30 -0700</delta_ts>
            <desc>Refactor the common parts out of PluginView::init() and add platformInit()</desc>
            <filename>bug-27706-20090727152717.patch</filename>
            <type>text/plain</type>
            <size>9710</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmM4MGVjYi4uNzM5NzI5NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzMiBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFJlZmFjdG9yIHRoZSBjb21tb24gcGFydHMgb3V0IG9m
IFBsdWdpblZpZXc6OmluaXQoKSBhbmQgYWRkIHBsYXRmb3JtSW5pdCgpCisgICAgICAgIAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKyAgICAg
ICAgCisgICAgICAgIFBsdWdpblZpZXdNYWMgdXNlZCB0byBjYWxsIHN0b3AoKSBpbiBzb21lIGNh
c2VzLCBidXQgdGhpcyBlcnJvciBoYW5kbGluZworICAgICAgICBzaG91bGQgYmUgdW5pZmllZCBh
Y3Jvc3MgdGhlIGRpZmZlcmVudCBpbXBsZW1lbnRhdGlvbnMsIHNvIHJlbW92aW5nIGZvciBub3cu
CisgICAgICAgIAorICAgICAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSBpcyBub3cgaW5p
dGlhbGl6ZWQgaW4gdGhlIGluaXRpYWxpemVyIGxpc3QKKyAgICAgICAgaW5zdGVhZCBvZiBpbiBQ
bHVnaW5WaWV3UXQncyBpbml0KCkKKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpoYW5kbGVFdmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpQbHVnaW5WaWV3Ojppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OmJpbmRpbmdJbnN0YW5jZSk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAg
ICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHA6CisgICAgICAgICogcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHA6CisgICAgICAgICogcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQpOgorICAgICAg
ICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9Q
bHVnaW5WaWV3V2luLmNwcDoKKworMjAwOS0wNy0yNyAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5h
cm5lLnZlc3Rib0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKICAgICAgICAgQWRkIG91dHB1dCBkaXJlY3RvcnkgZm9yIFZTIHByZS1idWlsZCBzdGVw
cyB0byBlbmFibGUgb3V0LW9mLXRyZWUgYnVpbGRzCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzAwCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
N2YxZDViYS4uMzJkZDY0NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTQ5LDYgKzE0OSwz
NCBAQCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAg
aGFuZGxlS2V5Ym9hcmRFdmVudChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsK
IH0KIAordm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdp
blZpZXc6OmluaXQoKTogSW5pdGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1l
KCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCisgICAgICAg
IHJldHVybjsKKworICAgIG1faGF2ZUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIGlmICghbV9w
bHVnaW4pIHsKKyAgICAgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZp
bmRQbHVnaW4pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3BsdWdpbi0+
bG9hZCgpKSB7CisgICAgICAgIG1fcGx1Z2luID0gMDsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aWYgKCFzdGFydCgpIHx8ICFwbGF0Zm9ybUluaXQoKSkgeworICAgICAgICBtX3N0YXR1cyA9IFBs
dWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKK30KKwogYm9vbCBQ
bHVnaW5WaWV3OjpzdGFydCgpCiB7CiAgICAgaWYgKG1faXNTdGFydGVkKQpAQCAtNjI3LDYgKzY1
NSw5IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiAgICAgLCBtX2RyYXdpbmdNb2RlbChOUERy
YXdpbmdNb2RlbCgtMSkpCiAgICAgLCBtX2V2ZW50TW9kZWwoTlBFdmVudE1vZGVsKC0xKSkKICNl
bmRpZgorI2lmIGRlZmluZWQoUV9XU19YMTEpCisgICAgLCBtX2hhc1BlbmRpbmdHZW9tZXRyeUNo
YW5nZShmYWxzZSkKKyNlbmRpZgogICAgICwgbV9sb2FkTWFudWFsbHkobG9hZE1hbnVhbGx5KQog
ICAgICwgbV9tYW51YWxTdHJlYW0oMCkKICAgICAsIG1faXNKYXZhU2NyaXB0UGF1c2VkKGZhbHNl
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggOTVkNzNkYi4uOWNlYTJkMSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCkBAIC0xOTYsNiArMTk2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZv
aWQgc2V0UGFyYW1ldGVycyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKICAgICAgICAgdm9pZCBpbml0KCk7CisgICAg
ICAgIGJvb2wgcGxhdGZvcm1Jbml0KCk7CiAgICAgICAgIGJvb2wgc3RhcnQoKTsKICAgICAgICAg
dm9pZCBzdG9wKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRQbHVnaW5WaWV3KFBs
dWdpblZpZXcqKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5j
cHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCmluZGV4IGEzYjZhMTcuLjM4
MTQ5MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBA
IFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFBsdWdpblZpZXc6OmluaXQoKQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUluaXQoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3Rr
LmNwcAppbmRleCAyZjBlODA4Li43YWRhODJmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmll
d0d0ay5jcHAKQEAgLTUxOSwyOCArNTE5LDggQEAgcGx1Z19yZW1vdmVkX2NiKEd0a1NvY2tldCAq
c29ja2V0LCBncG9pbnRlcikKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3
Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAgICBpZiAobV9o
YXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVJbml0aWFsaXplZCA9
IHRydWU7Ci0KLSAgICBpZiAoIW1fcGx1Z2luKSB7Ci0gICAgICAgIEFTU0VSVChtX3N0YXR1cyA9
PSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmICghbV9wbHVnaW4tPmxvYWQoKSkgewotICAgICAgICBtX3BsdWdpbiA9IDA7Ci0g
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmICghc3RhcnQoKSkgewotICAgICAgICBtX3N0YXR1cyA9
IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
ICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBs
dWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3KHRoaXMpOwogICAgICAgICBKU0M6OkpTTG9j
azo6RHJvcEFsbExvY2tzIGRyb3BBbGxMb2NrcyhmYWxzZSk7CkBAIC01OTksNyArNTc5LDcgQEAg
dm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29u
dGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKQogICAgICAgICB1cGRh
dGVQbHVnaW5XaWRnZXQoKTsgLy8gd2FzOiBzZXROUFdpbmRvd0lmTmVlZGVkKCksIGJ1dCB0aGlz
IGRvZXNuJ3QgcHJvZHVjZSAweDAgcmVjdHMgYXQgZmlyc3QgZ28KIAotICAgIG1fc3RhdHVzID0g
UGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5OworICAgIHJldHVybiB0cnVlOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApp
bmRleCA1YTQwOWJlLi4wMTg2ZmEwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1Bs
dWdpblZpZXdNYWMuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5j
cHAKQEAgLTEyNSwzMSArMTI1LDggQEAgc3RhdGljIGlubGluZSBJbnRQb2ludCB0b3BMZXZlbE9m
ZnNldEZvcihQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLSBMaWZl
dGltZSBtYW5hZ2VtZW50IC0tLS0tLS0tLS0tLS0tLS0tCiAKLXZvaWQgUGx1Z2luVmlldzo6aW5p
dCgpCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtSW5pdCgpCiB7Ci0gICAgTE9HKFBsdWdpbnMs
ICJQbHVnaW5WaWV3Ojppbml0KCk6IEluaXRpYWxpemluZyBwbHVnLWluICclcyciLCBtX3BsdWdp
bi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQot
ICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgaWYg
KCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2Fu
Tm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGx1
Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBtX3N0YXR1cyA9
IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5O
b3RMb2FkUGx1Z2luOwotICAgICAgICBzdG9wKCk7IC8vIE1ha2Ugc3VyZSB3ZSB1bnJlZ2lzdGVy
IHRoZSBwbHVnaW4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIGlmIChtX2RyYXdpbmdN
b2RlbCA9PSBOUERyYXdpbmdNb2RlbCgtMSkpIHsKICAgICAgICAgLy8gV2UgZGVmYXVsdCB0byBR
dWlja0RyYXcsIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgaXQsCiAgICAgICAgIC8vIHNp
bmNlIHRoYXQncyB3aGF0IFNhZmFyaSBkb2VzLCBhbmQgc29tZSBwbHVnaW5zIGV4cGVjdCB0aGlz
CkBAIC0xODAsOCArMTU3LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgbV9z
dGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwogICAgICAgICBMT0coUGx1Z2lu
cywgIlBsdWctaW4gJyVzJyB1c2VzIHVuc3VwcG9ydGVkIGV2ZW50IG1vZGVsICVzIiwKICAgICAg
ICAgICAgICAgICBtX3BsdWdpbi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCksIHByZXR0eU5hbWVGb3JF
dmVudE1vZGVsKG1fZXZlbnRNb2RlbCkpOwotICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChnZXRWYWx1ZVN0YXRp
YyhOUE5WYXJpYWJsZShOUE5Wc3VwcG9ydHNRdWlja0RyYXdCb29sICsgbV9kcmF3aW5nTW9kZWwp
LCAmZHJhd2luZ01vZGVsU3VwcG9ydGVkKSAhPSBOUEVSUl9OT19FUlJPUgpAQCAtMTg5LDE5ICsx
NjUsMTggQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwogICAgICAgICBMT0coUGx1Z2lucywgIlBsdWctaW4g
JyVzJyB1c2VzIHVuc3VwcG9ydGVkIGRyYXdpbmcgbW9kZWwgJXMiLAogICAgICAgICAgICAgICAg
IG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRhdGEoKSwgcHJldHR5TmFtZUZvckRyYXdpbmdNb2Rl
bChtX2RyYXdpbmdNb2RlbCkpOwotICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0
KG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsK
IAogICAgIHNob3coKTsKIAotICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vz
c2Z1bGx5OwotCiAgICAgLy8gVE9ETzogSW1wbGVtZW50IG51bGwgdGltZXIgdGhyb3R0bGluZyBk
ZXBlbmRpbmcgb24gcGx1Z2luIGFjdGl2YXRpb24KICAgICBtX251bGxFdmVudFRpbWVyLnNldChu
ZXcgVGltZXI8UGx1Z2luVmlldz4odGhpcywgJlBsdWdpblZpZXc6Om51bGxFdmVudFRpbWVyRmly
ZWQpKTsKICAgICBtX251bGxFdmVudFRpbWVyLT5zdGFydFJlcGVhdGluZygwLjAyKTsKKworICAg
IHJldHVybiB0cnVlOwogfQogCiBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IDhhMjQ0NmYuLmFmMjQzYzUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCkBAIC00NTIsMzAgKzQ1Miw4IEBAIFBsdWdpblZpZXc6On5QbHVn
aW5WaWV3KCkKICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1Jbml0KCkKIHsKLSAg
ICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVJbml0
aWFsaXplZCA9IHRydWU7Ci0KLSAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IGZhbHNl
OwotCi0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1
Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAg
aWYgKG1fcGx1Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5W
aWV3OjpzZXRDdXJyZW50UGx1Z2luVmlldyh0aGlzKTsKICAgICAgICAgSlNDOjpKU0xvY2s6OkRy
b3BBbGxMb2NrcyBkcm9wQWxsTG9ja3MoZmFsc2UpOwpAQCAtNDg5LDkgKzQ2Nyw5IEBAIHZvaWQg
UGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5D
b250YWluZXJRdCh0aGlzLCBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1XaW5kb3coKSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAg
ICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorCiAgICAgc2hvdygpOwog
CiAgICAgTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCAqd3NpID0gbmV3IE5QU2V0V2luZG93Q2Fs
bGJhY2tTdHJ1Y3QoKTsKQEAgLTUxNCw3ICs0OTIsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQo
KQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAgICAgfQogCi0gICAgbV9zdGF0dXMg
PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3Bw
CmluZGV4IDQ2NDBiNGQuLjhkOWMxZjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcApAQCAtOTMwLDI2ICs5MzAsNiBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAKIHZv
aWQgUGx1Z2luVmlldzo6aW5pdCgpCiB7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgaWYgKCFt
X3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2FuTm90
RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGx1Z2lu
LT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBtX3N0YXR1cyA9IFBs
dWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAg
ICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RM
b2FkUGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYgKG1faXNXaW5kb3dl
ZCkgewogICAgICAgICByZWdpc3RlclBsdWdpblZpZXcoKTsKICAgICAgICAgc2V0VXBPZmZzY3Jl
ZW5QYWludGluZ0hvb2tzKGhvb2tlZEJlZ2luUGFpbnQsIGhvb2tlZEVuZFBhaW50KTsKQEAgLTk4
Niw3ICs5NjYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogICAgIGlmICghbV9wbHVnaW4t
PnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwpKQog
ICAgICAgICBzZXROUFdpbmRvd1JlY3QoZnJhbWVSZWN0KCkpOwogCi0gICAgbV9zdGF0dXMgPSBQ
bHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38812</attachid>
            <date>2009-08-31 06:21:18 -0700</date>
            <delta_ts>2009-09-01 05:19:39 -0700</delta_ts>
            <desc>Share PluginView::init() between ports</desc>
            <filename>bug-27706-20090831152116.patch</filename>
            <type>text/plain</type>
            <size>10477</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWIyMzkwOC4uZTg1NGM2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hhcmUgUGx1Z2luVmlldzo6aW5pdCgpIGJldHdl
ZW4gcG9ydHMKKworICAgICAgICBUaGUgcG9ydC1zcGVzaWZpYyBiaXRzIGFyZSBtb3ZlZCB0byBw
bGF0Zm9ybVN0YXJ0KCksIHdoaWNoIG5vdyByZXR1cm5zCisgICAgICAgIGEgYm9vbCBiYXNlZCBv
biB0aGUgc3VjY2VzcyBvZiB0aGUgcGxhdGZvcm1TdGFydC4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKworICAgICAgICBQbHVnaW5WaWV3
TWFjIHVzZWQgdG8gY2FsbCBzdG9wKCkgaW4gc29tZSBjYXNlcywgYnV0IHRoaXMgZXJyb3IgaGFu
ZGxpbmcKKyAgICAgICAgc2hvdWxkIGJlIHVuaWZpZWQgYWNyb3NzIHRoZSBkaWZmZXJlbnQgaW1w
bGVtZW50YXRpb25zLCBzbyByZW1vdmluZyBmb3Igbm93LgorCisgICAgICAgIG1faGFzUGVuZGlu
Z0dlb21ldHJ5Q2hhbmdlIGlzIG5vdyBpbml0aWFsaXplZCBpbiB0aGUgaW5pdGlhbGl6ZXIgbGlz
dAorICAgICAgICBpbnN0ZWFkIG9mIGluIFBsdWdpblZpZXdRdCdzIGluaXQoKQorCisgICAgICAg
ICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcu
aDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoKKyAgICAgICAgKiBwbHVn
aW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5W
aWV3TWFjLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAg
ICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKKzIwMDktMDgtMzEgIFRvciBB
cm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorCiAgICAgICAgIFJldmll
d2VkIGJ5IEFyaXlhIEhpZGF5YXQuCiAKICAgICAgICAgW1F0XSBVbi1ibGFja2xpc3QgU2lsdmVy
bGlnaHQgb24gTWFjCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAg
Yi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggOGVmYjMxNS4uN2VmMWE5ZCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1dlYkNvcmUv
cGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTQ5LDYgKzE0OSwzNCBAQCB2b2lkIFBsdWdpblZp
ZXc6OmhhbmRsZUV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgaGFuZGxlS2V5Ym9hcmRFdmVu
dChzdGF0aWNfY2FzdDxLZXlib2FyZEV2ZW50Kj4oZXZlbnQpKTsKIH0KIAordm9pZCBQbHVnaW5W
aWV3Ojppbml0KCkKK3sKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmluaXQoKTogSW5p
dGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRhdGEoKSk7
CisKKyAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
aGF2ZUluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgIGlmICghbV9wbHVnaW4pIHsKKyAgICAgICAg
QVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4pOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3BsdWdpbi0+bG9hZCgpKSB7CisgICAgICAg
IG1fcGx1Z2luID0gMDsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2Fk
UGx1Z2luOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFzdGFydE9yQWRkVG9V
bnN0YXJ0ZWRMaXN0KCkpIHsKKyAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RM
b2FkUGx1Z2luOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7Cit9CisKIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQo
KQogewogICAgIGlmIChtX2lzU3RhcnRlZCkKQEAgLTE4OSw5ICsyMTcsMTIgQEAgYm9vbCBQbHVn
aW5WaWV3OjpzdGFydCgpCiAKICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nl
c3NmdWxseTsKIAotICAgIHBsYXRmb3JtU3RhcnQoKTsKKyAgICBpZiAoIXBsYXRmb3JtU3RhcnQo
KSkgeworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiB9CiAKIHZv
aWQgUGx1Z2luVmlldzo6c3RvcCgpCkBAIC03NDksNiArNzgwLDkgQEAgUGx1Z2luVmlldzo6UGx1
Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBh
Y2thZ2UqIHAKICAgICAsIG1fZHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsKC0xKSkKICAgICAs
IG1fZXZlbnRNb2RlbChOUEV2ZW50TW9kZWwoLTEpKQogI2VuZGlmCisjaWYgZGVmaW5lZChRX1dT
X1gxMSkKKyAgICAsIG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGZhbHNlKQorI2VuZGlmCiAg
ICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFsbHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgw
KQogICAgICwgbV9pc0phdmFTY3JpcHRQYXVzZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRl
eCA4ZjlkMmRhLi40NDZiYWY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTIwNCw3ICsyMDQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgc3RhcnRPckFkZFRvVW5zdGFydGVk
TGlzdCgpOwogICAgICAgICB2b2lkIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3Nhcnko
KTsKICAgICAgICAgdm9pZCBpbml0KCk7Ci0gICAgICAgIHZvaWQgcGxhdGZvcm1TdGFydCgpOwor
ICAgICAgICBib29sIHBsYXRmb3JtU3RhcnQoKTsKICAgICAgICAgdm9pZCBzdG9wKCk7CiAgICAg
ICAgIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRQbHVnaW5WaWV3KFBsdWdpblZpZXcqKTsKICAgICAg
ICAgTlBFcnJvciBsb2FkKGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBib29sIHNlbmROb3RpZmlj
YXRpb24sIHZvaWQqIG5vdGlmeURhdGEpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1Bs
dWdpblZpZXdOb25lLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKaW5k
ZXggYmU3OTU2Ny4uODYwMGViNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXdOb25lLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC0x
MTksNyArMTE5LDcgQEAgUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCitib29sIFBsdWdpblZpZXc6OnBs
YXRmb3JtU3RhcnQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL2d0
ay9QbHVnaW5WaWV3R3RrLmNwcAppbmRleCAxOWNiOTdhLi4zNzdhNmJiIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTQ1MiwyNyArNDUyLDEwIEBAIHBsdWdfcmVtb3Zl
ZF9jYihHdGtTb2NrZXQgKnNvY2tldCwgZ3BvaW50ZXIpCiAgICAgcmV0dXJuIFRSVUU7CiB9CiAK
LXZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQo
KQogewotICAgIGlmIChtX2hhdmVJbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
aGF2ZUluaXRpYWxpemVkID0gdHJ1ZTsKLQotICAgIGlmICghbV9wbHVnaW4pIHsKLSAgICAgICAg
QVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4pOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX3BsdWdpbi0+bG9hZCgpKSB7Ci0gICAgICAg
IG1fcGx1Z2luID0gMDsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2Fk
UGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFzdGFydCgpKSB7Ci0g
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOworICAgIEFTU0VSVChtX3N0
YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCiAgICAgaWYgKG1fcGx1
Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRD
dXJyZW50UGx1Z2luVmlldyh0aGlzKTsKQEAgLTUzMiwxMSArNTE1LDcgQEAgdm9pZCBQbHVnaW5W
aWV3Ojppbml0KCkKICAgICBpZiAoIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2lu
UXVpcmtEZWZlckZpcnN0U2V0V2luZG93Q2FsbCkpKQogICAgICAgICB1cGRhdGVQbHVnaW5XaWRn
ZXQoKTsgLy8gd2FzOiBzZXROUFdpbmRvd0lmTmVlZGVkKCksIGJ1dCB0aGlzIGRvZXNuJ3QgcHJv
ZHVjZSAweDAgcmVjdHMgYXQgZmlyc3QgZ28KIAotICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVz
TG9hZGVkU3VjY2Vzc2Z1bGx5OwotfQotCi12b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQo
KQoteworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAppbmRleCAyNmY5ZWJhLi40YzFmOGE3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKQEAgLTEyNSwzMCArMTI1LDEwIEBAIHN0
YXRpYyBpbmxpbmUgSW50UG9pbnQgdG9wTGV2ZWxPZmZzZXRGb3IoUGxhdGZvcm1XaWRnZXQgd2lk
Z2V0KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0gTGlmZXRpbWUgbWFuYWdlbWVudCAtLS0tLS0tLS0t
LS0tLS0tLQogCi12b2lkIFBsdWdpblZpZXc6OmluaXQoKQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KCkKIHsKLSAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6OmluaXQoKTogSW5p
dGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRhdGEoKSk7
Ci0KLSAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hh
dmVJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBpZiAoIW1fcGx1Z2luKSB7Ci0gICAgICAgIEFT
U0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9wbHVnaW4tPmxvYWQoKSkgewotICAgICAgICBt
X3BsdWdpbiA9IDA7Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBs
dWdpbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghc3RhcnQoKSkgewotICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHN0
b3AoKTsgLy8gTWFrZSBzdXJlIHdlIHVucmVnaXN0ZXIgdGhlIHBsdWdpbgotICAgICAgICByZXR1
cm47Ci0gICAgfQorICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CisgICAgQVNTRVJUKG1fc3RhdHVz
ID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKICAgICBpZiAobV9kcmF3aW5n
TW9kZWwgPT0gTlBEcmF3aW5nTW9kZWwoLTEpKSB7CiAgICAgICAgIC8vIFdlIGRlZmF1bHQgdG8g
UXVpY2tEcmF3LCBldmVuIHRob3VnaCB3ZSBkb24ndCBzdXBwb3J0IGl0LApAQCAtMTgwLDggKzE2
MCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIG1fc3RhdHVzID0gUGx1Z2lu
U3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKICAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnLWluICcl
cycgdXNlcyB1bnN1cHBvcnRlZCBldmVudCBtb2RlbCAlcyIsCiAgICAgICAgICAgICAgICAgbV9w
bHVnaW4tPm5hbWUoKS51dGY4KCkuZGF0YSgpLCBwcmV0dHlOYW1lRm9yRXZlbnRNb2RlbChtX2V2
ZW50TW9kZWwpKTsKLSAgICAgICAgc3RvcCgpOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoZ2V0VmFsdWVTdGF0aWMoTlBOVmFyaWFibGUo
TlBOVnN1cHBvcnRzUXVpY2tEcmF3Qm9vbCArIG1fZHJhd2luZ01vZGVsKSwgJmRyYXdpbmdNb2Rl
bFN1cHBvcnRlZCkgIT0gTlBFUlJfTk9fRVJST1IKQEAgLTE4OSwxOSArMTY4LDE4IEBAIHZvaWQg
UGx1Z2luVmlldzo6aW5pdCgpCiAgICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90
TG9hZFBsdWdpbjsKICAgICAgICAgTE9HKFBsdWdpbnMsICJQbHVnLWluICclcycgdXNlcyB1bnN1
cHBvcnRlZCBkcmF3aW5nIG1vZGVsICVzIiwKICAgICAgICAgICAgICAgICBtX3BsdWdpbi0+bmFt
ZSgpLnV0ZjgoKS5kYXRhKCksIHByZXR0eU5hbWVGb3JEcmF3aW5nTW9kZWwobV9kcmF3aW5nTW9k
ZWwpKTsKLSAgICAgICAgc3RvcCgpOwotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldChtX3BhcmVudEZyYW1l
LT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSk7CiAKICAgICBzaG93KCk7
CiAKLSAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKLQogICAg
IC8vIFRPRE86IEltcGxlbWVudCBudWxsIHRpbWVyIHRocm90dGxpbmcgZGVwZW5kaW5nIG9uIHBs
dWdpbiBhY3RpdmF0aW9uCiAgICAgbV9udWxsRXZlbnRUaW1lci5zZXQobmV3IFRpbWVyPFBsdWdp
blZpZXc+KHRoaXMsICZQbHVnaW5WaWV3OjpudWxsRXZlbnRUaW1lckZpcmVkKSk7CiAgICAgbV9u
dWxsRXZlbnRUaW1lci0+c3RhcnRSZXBlYXRpbmcoMC4wMik7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQpAQCAtNzE3LDExICs2OTUsNiBAQCBOUEVy
cm9yIFBsdWdpblZpZXc6OmhhbmRsZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mIGJ1ZmZlciwg
dWludDMyIGxlbiwgY29uc3QgYwogICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKIH0KIAotdm9p
ZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKLXsKLX0KLQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbHNlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmll
d1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGEwMmE4
ZmQuLmRiYmQ4OGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC00NTMsMjkg
KzQ1MywxMCBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAgICAgZGVsZXRlIHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCitib29sIFBsdWdp
blZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewotICAgIGlmIChtX2hhdmVJbml0aWFsaXplZCkKLSAg
ICAgICAgcmV0dXJuOwotICAgIG1faGF2ZUluaXRpYWxpemVkID0gdHJ1ZTsKLQotICAgIG1faGFz
UGVuZGluZ0dlb21ldHJ5Q2hhbmdlID0gZmFsc2U7Ci0KLSAgICBpZiAoIW1fcGx1Z2luKSB7Ci0g
ICAgICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9wbHVnaW4tPmxvYWQoKSkgewot
ICAgICAgICBtX3BsdWdpbiA9IDA7Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2Fu
Tm90TG9hZFBsdWdpbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghc3RhcnQo
KSkgewotICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKKyAgICBBU1NF
UlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIAogICAgIGlm
IChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmll
dzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7CkBAIC00OTAsOSArNDcxLDkgQEAgdm9pZCBQ
bHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgc2V0UGxhdGZvcm1XaWRnZXQobmV3IFBsdWdpbkNv
bnRhaW5lclF0KHRoaXMsIG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0
Zm9ybVdpbmRvdygpKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CisKICAgICBzaG93KCk7CiAK
ICAgICBOUFNldFdpbmRvd0NhbGxiYWNrU3RydWN0ICp3c2kgPSBuZXcgTlBTZXRXaW5kb3dDYWxs
YmFja1N0cnVjdCgpOwpAQCAtNTE1LDEyICs0OTYsNyBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQo
KQogICAgICAgICBzZXROUFdpbmRvd0lmTmVlZGVkKCk7CiAgICAgfQogCi0gICAgbV9zdGF0dXMg
PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCi17Ci19Ci0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggNGU5NGZl
Yi4uY2ZhMWUyMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2lu
LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC05NzUs
MzIgKzk3NSw3IEBAIFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICAgICAgICAgbV9wbHVnaW4t
PnVubG9hZCgpOwogfQogCi12b2lkIFBsdWdpblZpZXc6OmluaXQoKQotewotICAgIGlmIChtX2hh
dmVJbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1faGF2ZUluaXRpYWxpemVkID0g
dHJ1ZTsKLQotICAgIGlmICghbV9wbHVnaW4pIHsKLSAgICAgICAgQVNTRVJUKG1fc3RhdHVzID09
IFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4pOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
Ci0gICAgaWYgKCFtX3BsdWdpbi0+bG9hZCgpKSB7Ci0gICAgICAgIG1fcGx1Z2luID0gMDsKLSAg
ICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFzdGFydE9yQWRkVG9VbnN0YXJ0ZWRMaXN0KCkpIHsK
LSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNj
ZXNzZnVsbHk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCitib29sIFBs
dWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CiAg
ICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CkBA
IC0xMDQ3LDYgKzEwMjIsOCBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogCiAg
ICAgaWYgKCFtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEZWZlckZpcnN0
U2V0V2luZG93Q2FsbCkpCiAgICAgICAgIHNldE5QV2luZG93UmVjdChmcmFtZVJlY3QoKSk7CisK
KyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38813</attachid>
            <date>2009-08-31 06:21:27 -0700</date>
            <delta_ts>2009-09-01 05:19:49 -0700</delta_ts>
            <desc>Join the various PluginView destructors into one shared implementation</desc>
            <filename>bug-27706-20090831152124.patch</filename>
            <type>text/plain</type>
            <size>7607</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZTg1NGM2Yi4uYTA4OTVhMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKKyAgICAgICAgSm9pbiB0aGUgdmFy
aW91cyBQbHVnaW5WaWV3IGRlc3RydWN0b3JzIGludG8gb25lIHNoYXJlZCBpbXBsZW1lbnRhdGlv
bgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzcw
NgorCisgICAgICAgIERpZmZlcmVuY2VzIHRvIHRoZSBvcmlnaW5hbCBpbXBsZW1lbnRhdGlvbiBh
cmUgYXMgZm9sbG93czoKKworICAgICAgICAgICAgLSBUaGUgTWFjIHBvcnQgZG9lcyBub3Qgc2V0
IG1fd2luZG93IHRvIDAgYW55bW9yZQorCisgICAgICAgICAgICAtIFRoZSBRdCBwb3J0IHVzZWQg
dG8gZGVsZXRlIHRoZSBwbGF0Zm9ybSBwbHVnaW4gd2lkZ2V0IGFzCisgICAgICAgICAgICAgIHRo
ZSBsYXN0IHN0ZXAuIE5vdyB0aGlzIGlzIGRvbmUgYmVmb3JlIGNsZWFuaW5nIHVwIHRoZQorICAg
ICAgICAgICAgICBzY3JpcHQgb2JqZWN0cyBhbmQgdW5sb2FkaW5nIHRoZSBwbHVnaW4gcGFja2Fn
ZSAobGlrZQorICAgICAgICAgICAgICB0aGUgV2luIHBvcnQpLgorCisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHA6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKKzIw
MDktMDgtMzEgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCiAgICAgICAgIFNoYXJlIFBs
dWdpblZpZXc6OmluaXQoKSBiZXR3ZWVuIHBvcnRzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
N2VmMWE5ZC4uMTliNmExMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNjgsNiArNjgsMTAg
QEAKICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlw
ZS5oPgogCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxR
V2lkZ2V0PgorI2VuZGlmCisKIHVzaW5nIEpTQzo6RXhlY1N0YXRlOwogdXNpbmcgSlNDOjpKU0xv
Y2s7CiB1c2luZyBKU0M6OkpTT2JqZWN0OwpAQCAtMTc3LDYgKzE4MSwyMCBAQCB2b2lkIFBsdWdp
blZpZXc6OmluaXQoKQogICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1
bGx5OwogfQogCitib29sIFBsdWdpblZpZXc6OnN0YXJ0T3JBZGRUb1Vuc3RhcnRlZExpc3QoKQor
eworICAgIGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIW1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+Y2FuU3RhcnRQbHVnaW5zKCkpIHsK
KyAgICAgICAgbV9wYXJlbnRGcmFtZS0+cGFnZSgpLT5hZGRVbnN0YXJ0ZWRQbHVnaW4odGhpcyk7
CisgICAgICAgIG1faXNXYWl0aW5nVG9TdGFydCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBzdGFydCgpOworfQorCiBib29sIFBsdWdpblZpZXc6OnN0
YXJ0KCkKIHsKICAgICBpZiAobV9pc1N0YXJ0ZWQpCkBAIC0yMjUsNiArMjQzLDQ1IEBAIGJvb2wg
UGx1Z2luVmlldzo6c3RhcnQoKQogICAgIHJldHVybiAobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVz
TG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIH0KIAorUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQorewor
ICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKSIpOworCisgICAgcmVt
b3ZlRnJvbVVuc3RhcnRlZExpc3RJZk5lY2Vzc2FyeSgpOworCisgICAgc3RvcCgpOworCisgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fcmVxdWVzdHMpOworCisgICAgZnJlZVN0cmluZ0FycmF5KG1fcGFy
YW1OYW1lcywgbV9wYXJhbUNvdW50KTsKKyAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVl
cywgbV9wYXJhbUNvdW50KTsKKworICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSB7Cisj
aWYgZGVmaW5lZChYUF9XSU4pCisgICAgICAgRGVzdHJveVdpbmRvdyhwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpKTsKKyNlbGlmIGRlZmluZWQoWFBfVU5JWCkgJiYgUExBVEZPUk0oUVQpCisgICAgICAg
Ly8gVE9ETzogU2hvdWxkIHRoaXMgYmUgZG9uZSBmb3IgR1RLIHRvbz8KKyAgICAgICBkZWxldGUg
cGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKKyNlbmRpZgorICAgIH0KKworICAgIG1fcGFyZW50RnJh
bWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0T2JqZWN0c0ZvclBsdWdpbih0aGlzKTsKKworICAg
IGlmIChtX3BsdWdpbiAmJiAhKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWly
a0RvbnRVbmxvYWRQbHVnaW4pKSkKKyAgICAgICAgbV9wbHVnaW4tPnVubG9hZCgpOworfQorCit2
b2lkIFBsdWdpblZpZXc6OnJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3NhcnkoKQorewor
ICAgIGlmICghbV9pc1dhaXRpbmdUb1N0YXJ0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
IW1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYXJlbnRG
cmFtZS0+cGFnZSgpLT5yZW1vdmVVbnN0YXJ0ZWRQbHVnaW4odGhpcyk7Cit9CisKIHZvaWQgUGx1
Z2luVmlldzo6c3RvcCgpCiB7CiAgICAgaWYgKCFtX2lzU3RhcnRlZCkKQEAgLTMzOCwzMSArMzk1
LDYgQEAgc3RhdGljIGJvb2wgZ2V0U3RyaW5nKFNjcmlwdENvbnRyb2xsZXIqIHByb3h5LCBKU1Zh
bHVlIHJlc3VsdCwgU3RyaW5nJiBzdHJpbmcpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
UGx1Z2luVmlldzo6c3RhcnRPckFkZFRvVW5zdGFydGVkTGlzdCgpCi17Ci0gICAgaWYgKCFtX3Bh
cmVudEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghbV9w
YXJlbnRGcmFtZS0+cGFnZSgpLT5jYW5TdGFydFBsdWdpbnMoKSkgewotICAgICAgICBtX3BhcmVu
dEZyYW1lLT5wYWdlKCktPmFkZFVuc3RhcnRlZFBsdWdpbih0aGlzKTsKLSAgICAgICAgbV9pc1dh
aXRpbmdUb1N0YXJ0ID0gdHJ1ZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHN0YXJ0KCk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6cmVtb3ZlRnJvbVVuc3RhcnRl
ZExpc3RJZk5lY2Vzc2FyeSgpCi17Ci0gICAgaWYgKCFtX2lzV2FpdGluZ1RvU3RhcnQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5wYWdlKCktPnJlbW92ZVVuc3RhcnRlZFBsdWdp
bih0aGlzKTsKLX0KLQogdm9pZCBQbHVnaW5WaWV3OjpwZXJmb3JtUmVxdWVzdChQbHVnaW5SZXF1
ZXN0KiByZXF1ZXN0KQogewogICAgIGlmICghbV9pc1N0YXJ0ZWQpCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXdOb25lLmNwcAppbmRleCA4NjAwZWI1Li45YjdjMmE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
Tm9uZS5jcHAKQEAgLTExNCwxMSArMTE0LDYgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJh
dygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotUGx1Z2luVmlldzo6flBsdWdpblZpZXco
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZv
cm1TdGFydCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdp
blZpZXdHdGsuY3BwCmluZGV4IDM3N2E2YmIuLjJhYjJlOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9Q
bHVnaW5WaWV3R3RrLmNwcApAQCAtNDMxLDIxICs0MzEsNiBAQCB2b2lkIFBsdWdpblZpZXc6OmZv
cmNlUmVkcmF3KCkKICAgICAgICAgZ3RrX3dpZGdldF9xdWV1ZV9kcmF3KG1fcGFyZW50RnJhbWUt
PnZpZXcoKS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsKIH0KIAotUGx1Z2luVmll
dzo6flBsdWdpblZpZXcoKQotewotICAgIHN0b3AoKTsKLQotICAgIGRlbGV0ZUFsbFZhbHVlcyht
X3JlcXVlc3RzKTsKLQotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtTmFtZXMsIG1fcGFyYW1D
b3VudCk7Ci0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1WYWx1ZXMsIG1fcGFyYW1Db3VudCk7
Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5zY3JpcHQoKS0+Y2xlYW51cFNjcmlwdE9iamVjdHNGb3JQ
bHVnaW4odGhpcyk7Ci0KLSAgICBpZiAobV9wbHVnaW4gJiYgIShtX3BsdWdpbi0+cXVpcmtzKCku
Y29udGFpbnMoUGx1Z2luUXVpcmtEb250VW5sb2FkUGx1Z2luKSkpCi0gICAgICAgIG1fcGx1Z2lu
LT51bmxvYWQoKTsKLX0KLQogc3RhdGljIGdib29sZWFuCiBwbHVnX3JlbW92ZWRfY2IoR3RrU29j
a2V0ICpzb2NrZXQsIGdwb2ludGVyKQogewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL21h
Yy9QbHVnaW5WaWV3TWFjLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5j
cHAKaW5kZXggNGMxZjhhNy4uYzE2YmVjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL21h
Yy9QbHVnaW5WaWV3TWFjLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdN
YWMuY3BwCkBAIC0xODIsMjUgKzE4Miw2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFy
dCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKLXsK
LSAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkiKTsKLQotICAgIHN0
b3AoKTsKLQotICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3JlcXVlc3RzKTsKLQotICAgIGZyZWVTdHJp
bmdBcnJheShtX3BhcmFtTmFtZXMsIG1fcGFyYW1Db3VudCk7Ci0gICAgZnJlZVN0cmluZ0FycmF5
KG1fcGFyYW1WYWx1ZXMsIG1fcGFyYW1Db3VudCk7Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5zY3Jp
cHQoKS0+Y2xlYW51cFNjcmlwdE9iamVjdHNGb3JQbHVnaW4odGhpcyk7Ci0KLSAgICBpZiAobV9w
bHVnaW4gJiYgIShtX3BsdWdpbi0+cXVpcmtzKCkuY29udGFpbnMoUGx1Z2luUXVpcmtEb250VW5s
b2FkUGx1Z2luKSkpCi0gICAgICAgIG1fcGx1Z2luLT51bmxvYWQoKTsKLQotICAgIG1fd2luZG93
ID0gMDsKLX0KLQogLy8gVXNlZCBiZWZvcmUgdGhlIHBsdWdpbiB2aWV3IGhhcyBiZWVuIGluaXRp
YWxpemVkIHByb3Blcmx5LCBhbmQgYXMgYQogLy8gZmFsbGJhY2sgZm9yIHZhcmlhYmxlcyB0aGF0
IGRvIG5vdCByZXF1aXJlIGEgdmlldyB0byByZXNvbHZlLgogTlBFcnJvciBQbHVnaW5WaWV3Ojpn
ZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCmluZGV4IGRiYmQ4OGIuLjQyY2JkZGQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5WaWV3UXQuY3BwCkBAIC00MzYsMjMgKzQzNiw2IEBAIHZvaWQgUGx1Z2luVmll
dzo6Zm9yY2VSZWRyYXcoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLVBsdWdpblZpZXc6
On5QbHVnaW5WaWV3KCkKLXsKLSAgICBzdG9wKCk7Ci0KLSAgICBkZWxldGVBbGxWYWx1ZXMobV9y
ZXF1ZXN0cyk7Ci0KLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbU5hbWVzLCBtX3BhcmFtQ291
bnQpOwotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtVmFsdWVzLCBtX3BhcmFtQ291bnQpOwot
Ci0gICAgbV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBTY3JpcHRPYmplY3RzRm9yUGx1
Z2luKHRoaXMpOwotCi0gICAgaWYgKG1fcGx1Z2luICYmICEobV9wbHVnaW4tPnF1aXJrcygpLmNv
bnRhaW5zKFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikpKQotICAgICAgICBtX3BsdWdpbi0+
dW5sb2FkKCk7Ci0KLSAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKLX0KLQogYm9v
bCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQp
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBiL1dl
YkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggY2ZhMWUyMi4uNzY3OGU1
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAorKysg
Yi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC05NTUsMjYgKzk1NSw2
IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgICAgICA6OlVwZGF0ZVdpbmRv
dyh3aW5kb3dIYW5kbGVGb3JQbGF0Zm9ybVdpZGdldChwYXJlbnQoKSA/IHBhcmVudCgpLT5ob3N0
V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkgOiAwKSk7CiB9CiAKLVBsdWdpblZpZXc6On5QbHVn
aW5WaWV3KCkKLXsKLSAgICByZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCk7Ci0K
LSAgICBzdG9wKCk7Ci0KLSAgICBkZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7Ci0KLSAgICBm
cmVlU3RyaW5nQXJyYXkobV9wYXJhbU5hbWVzLCBtX3BhcmFtQ291bnQpOwotICAgIGZyZWVTdHJp
bmdBcnJheShtX3BhcmFtVmFsdWVzLCBtX3BhcmFtQ291bnQpOwotCi0gICAgaWYgKHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCkpCi0gICAgICAgIERlc3Ryb3lXaW5kb3cocGxhdGZvcm1QbHVnaW5XaWRn
ZXQoKSk7Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5zY3JpcHQoKS0+Y2xlYW51cFNjcmlwdE9iamVj
dHNGb3JQbHVnaW4odGhpcyk7Ci0KLSAgICBpZiAobV9wbHVnaW4gJiYgIW1fcGx1Z2luLT5xdWly
a3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKQotICAgICAgICBtX3Bs
dWdpbi0+dW5sb2FkKCk7Ci19Ci0KIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7
CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTs=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38860</attachid>
            <date>2009-09-01 05:19:59 -0700</date>
            <delta_ts>2009-09-02 03:22:41 -0700</delta_ts>
            <desc>Share PluginView::init() between ports</desc>
            <filename>bug-27706-20090901141956.patch</filename>
            <type>text/plain</type>
            <size>10641</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWIyMzkwOC4uZmQ4MTUzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hhcmUgUGx1Z2luVmlldzo6aW5pdCgpIGJldHdl
ZW4gcG9ydHMKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc3MDYKKworICAgICAgICBUaGUgcG9ydC1zcGVzaWZpYyBiaXRzIGFyZSBtb3ZlZCB0byBw
bGF0Zm9ybVN0YXJ0KCksIHdoaWNoIG5vdyByZXR1cm5zCisgICAgICAgIGEgYm9vbCBiYXNlZCBv
biB0aGUgc3VjY2VzcyBvZiB0aGUgcGxhdGZvcm1TdGFydC4KKworICAgICAgICBtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSBpcyBub3cgaW5pdGlhbGl6ZWQgaW4gdGhlIGluaXRpYWxpemVyIGxp
c3QKKyAgICAgICAgaW5zdGVhZCBvZiBpbiBQbHVnaW5WaWV3UXQncyBpbml0KCkKKworICAgICAg
ICBQbHVnaW5WaWV3TWFjIChjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IHRoZSBRdCBwb3J0KSB1c2Vk
IHRvIG1hbnVhbGx5IGNhbGwgCisgICAgICAgIHN0b3AoKSBpbiB0aGUgY2FzZSB3aGVyZSBhbiB1
bnN1cHBvcnRlZCBkcmF3aW5nIG9yIGV2ZW50IG1vZGVsIHdhcyBkZXRlY3RlZC4KKyAgICAgICAg
VGhpcyB3YXMgd3JvbmcsIGFzIHRoZSBtX3N0YXR1cyBhbmQgbV9pc1N0YXJ0ZWQgZmllbGRzIHNo
b3VsZCBiZSB1c2VkIHRvIAorICAgICAgICBndWFyZCBhZ2FpbnN0IGRvaW5nIG9wZXJhdGlvbnMg
b24gYSBwbHVnaW4gaW4gdGhpcyBpbnRlcm1lZGlhdGUgc3RhdGUuCisKKyAgICAgICAgKiBwbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwOgorICAgICAgICAqIHBsdWdpbnMvZ3Rr
L1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMu
Y3BwOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKiBw
bHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKworMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
QXJpeWEgSGlkYXlhdC4KIAogICAgICAgICBbUXRdIFVuLWJsYWNrbGlzdCBTaWx2ZXJsaWdodCBv
biBNYWMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA4ZWZiMzE1Li44NjkzYzhmIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCkBAIC0xNDksNiArMTQ5LDM0IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRp
Y19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOwogfQogCit2b2lkIFBsdWdpblZpZXc6Omlu
aXQoKQoreworICAgIGlmIChtX2hhdmVJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgaWYgKCFtX3BsdWdpbikgeworICAg
ICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6Omlu
aXQoKTogSW5pdGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgp
LmRhdGEoKSk7CisKKyAgICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKKyAgICAgICAgbV9wbHVn
aW4gPSAwOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXN0YXJ0T3JBZGRUb1Vuc3RhcnRl
ZExpc3QoKSkgeworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVn
aW47CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1
c0xvYWRlZFN1Y2Nlc3NmdWxseTsKK30KKwogYm9vbCBQbHVnaW5WaWV3OjpzdGFydCgpCiB7CiAg
ICAgaWYgKG1faXNTdGFydGVkKQpAQCAtMTg5LDkgKzIxNywxMiBAQCBib29sIFBsdWdpblZpZXc6
OnN0YXJ0KCkKIAogICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5
OwogCi0gICAgcGxhdGZvcm1TdGFydCgpOworICAgIGlmICghcGxhdGZvcm1TdGFydCgpKSB7Cisg
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiAobV9z
dGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIH0KIAogdm9pZCBQbHVn
aW5WaWV3OjpzdG9wKCkKQEAgLTc0OSw2ICs3ODAsOSBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSog
cAogICAgICwgbV9kcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwoLTEpKQogICAgICwgbV9ldmVu
dE1vZGVsKE5QRXZlbnRNb2RlbCgtMSkpCiAjZW5kaWYKKyNpZiBkZWZpbmVkKFFfV1NfWDExKQor
ICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UoZmFsc2UpCisjZW5kaWYKICAgICAsIG1f
bG9hZE1hbnVhbGx5KGxvYWRNYW51YWxseSkKICAgICAsIG1fbWFudWFsU3RyZWFtKDApCiAgICAg
LCBtX2lzSmF2YVNjcmlwdFBhdXNlZChmYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lu
cy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDhmOWQy
ZGEuLjQ0NmJhZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMjA0LDcgKzIwNCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBzdGFydE9yQWRkVG9VbnN0YXJ0ZWRMaXN0KCk7
CiAgICAgICAgIHZvaWQgcmVtb3ZlRnJvbVVuc3RhcnRlZExpc3RJZk5lY2Vzc2FyeSgpOwogICAg
ICAgICB2b2lkIGluaXQoKTsKLSAgICAgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0KCk7CisgICAgICAg
IGJvb2wgcGxhdGZvcm1TdGFydCgpOwogICAgICAgICB2b2lkIHN0b3AoKTsKICAgICAgICAgc3Rh
dGljIHZvaWQgc2V0Q3VycmVudFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgICAgICBOUEVy
cm9yIGxvYWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgc2VuZE5vdGlmaWNhdGlvbiwg
dm9pZCogbm90aWZ5RGF0YSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
d05vbmUuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAppbmRleCBiZTc5
NTY3Li44NjAwZWI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKQEAgLTExOSw3ICsx
MTksNyBAQCBQbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1T
dGFydCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdp
blZpZXdHdGsuY3BwCmluZGV4IDE5Y2I5N2EuLjM3N2E2YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL2d0ay9Q
bHVnaW5WaWV3R3RrLmNwcApAQCAtNDUyLDI3ICs0NTIsMTAgQEAgcGx1Z19yZW1vdmVkX2NiKEd0
a1NvY2tldCAqc29ja2V0LCBncG9pbnRlcikKICAgICByZXR1cm4gVFJVRTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7Ci0g
ICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5p
dGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQo
bV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVn
aW4gPSAwOwotICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAg
bV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICByZXR1cm47
Ci0gICAgfQorICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CisgICAgQVNTRVJUKG1fc3RhdHVzID09
IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKICAgICBpZiAobV9wbHVnaW4tPnBs
dWdpbkZ1bmNzKCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQ
bHVnaW5WaWV3KHRoaXMpOwpAQCAtNTMyLDExICs1MTUsNyBAQCB2b2lkIFBsdWdpblZpZXc6Omlu
aXQoKQogICAgIGlmICghKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0Rl
ZmVyRmlyc3RTZXRXaW5kb3dDYWxsKSkpCiAgICAgICAgIHVwZGF0ZVBsdWdpbldpZGdldCgpOyAv
LyB3YXM6IHNldE5QV2luZG93SWZOZWVkZWQoKSwgYnV0IHRoaXMgZG9lc24ndCBwcm9kdWNlIDB4
MCByZWN0cyBhdCBmaXJzdCBnbwogCi0gICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNMb2FkZWRT
dWNjZXNzZnVsbHk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCi17Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
bWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDI2ZjllYmEuLjRjMWY4YTcgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMTI1LDMwICsxMjUsMTAgQEAgc3RhdGljIGlu
bGluZSBJbnRQb2ludCB0b3BMZXZlbE9mZnNldEZvcihQbGF0Zm9ybVdpZGdldCB3aWRnZXQpCiAK
IC8vIC0tLS0tLS0tLS0tLS0tLSBMaWZldGltZSBtYW5hZ2VtZW50IC0tLS0tLS0tLS0tLS0tLS0t
CiAKLXZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3Rh
cnQoKQogewotICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6aW5pdCgpOiBJbml0aWFsaXpp
bmcgcGx1Zy1pbiAnJXMnIiwgbV9wbHVnaW4tPm5hbWUoKS51dGY4KCkuZGF0YSgpKTsKLQotICAg
IGlmIChtX2hhdmVJbml0aWFsaXplZCkKLSAgICAgICAgcmV0dXJuOwotICAgIG1faGF2ZUluaXRp
YWxpemVkID0gdHJ1ZTsKLQotICAgIGlmICghbV9wbHVnaW4pIHsKLSAgICAgICAgQVNTRVJUKG1f
c3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4pOwotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKCFtX3BsdWdpbi0+bG9hZCgpKSB7Ci0gICAgICAgIG1fcGx1Z2lu
ID0gMDsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwot
ICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFzdGFydCgpKSB7Ci0gICAgICAgIG1f
c3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAgc3RvcCgpOyAv
LyBNYWtlIHN1cmUgd2UgdW5yZWdpc3RlciB0aGUgcGx1Z2luCi0gICAgICAgIHJldHVybjsKLSAg
ICB9CisgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKKyAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1
Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIAogICAgIGlmIChtX2RyYXdpbmdNb2RlbCA9
PSBOUERyYXdpbmdNb2RlbCgtMSkpIHsKICAgICAgICAgLy8gV2UgZGVmYXVsdCB0byBRdWlja0Ry
YXcsIGV2ZW4gdGhvdWdoIHdlIGRvbid0IHN1cHBvcnQgaXQsCkBAIC0xODAsOCArMTYwLDcgQEAg
dm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXND
YW5Ob3RMb2FkUGx1Z2luOwogICAgICAgICBMT0coUGx1Z2lucywgIlBsdWctaW4gJyVzJyB1c2Vz
IHVuc3VwcG9ydGVkIGV2ZW50IG1vZGVsICVzIiwKICAgICAgICAgICAgICAgICBtX3BsdWdpbi0+
bmFtZSgpLnV0ZjgoKS5kYXRhKCksIHByZXR0eU5hbWVGb3JFdmVudE1vZGVsKG1fZXZlbnRNb2Rl
bCkpOwotICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KIAogICAgIGlmIChnZXRWYWx1ZVN0YXRpYyhOUE5WYXJpYWJsZShOUE5Wc3Vw
cG9ydHNRdWlja0RyYXdCb29sICsgbV9kcmF3aW5nTW9kZWwpLCAmZHJhd2luZ01vZGVsU3VwcG9y
dGVkKSAhPSBOUEVSUl9OT19FUlJPUgpAQCAtMTg5LDE5ICsxNjgsMTggQEAgdm9pZCBQbHVnaW5W
aWV3Ojppbml0KCkKICAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1
Z2luOwogICAgICAgICBMT0coUGx1Z2lucywgIlBsdWctaW4gJyVzJyB1c2VzIHVuc3VwcG9ydGVk
IGRyYXdpbmcgbW9kZWwgJXMiLAogICAgICAgICAgICAgICAgIG1fcGx1Z2luLT5uYW1lKCkudXRm
OCgpLmRhdGEoKSwgcHJldHR5TmFtZUZvckRyYXdpbmdNb2RlbChtX2RyYXdpbmdNb2RlbCkpOwot
ICAgICAgICBzdG9wKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAogICAgIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0KG1fcGFyZW50RnJhbWUtPnZpZXco
KS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVdpbmRvdygpKTsKIAogICAgIHNob3coKTsKIAotICAg
IG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5OwotCiAgICAgLy8gVE9E
TzogSW1wbGVtZW50IG51bGwgdGltZXIgdGhyb3R0bGluZyBkZXBlbmRpbmcgb24gcGx1Z2luIGFj
dGl2YXRpb24KICAgICBtX251bGxFdmVudFRpbWVyLnNldChuZXcgVGltZXI8UGx1Z2luVmlldz4o
dGhpcywgJlBsdWdpblZpZXc6Om51bGxFdmVudFRpbWVyRmlyZWQpKTsKICAgICBtX251bGxFdmVu
dFRpbWVyLT5zdGFydFJlcGVhdGluZygwLjAyKTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiBQ
bHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCkBAIC03MTcsMTEgKzY5NSw2IEBAIE5QRXJyb3IgUGx1
Z2luVmlldzo6aGFuZGxlUG9zdFJlYWRGaWxlKFZlY3RvcjxjaGFyPiYgYnVmZmVyLCB1aW50MzIg
bGVuLCBjb25zdCBjCiAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwogfQogCi12b2lkIFBsdWdp
blZpZXc6OnBsYXRmb3JtU3RhcnQoKQotewotfQotCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2Vsc2UKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggYTAyYThmZC4uZGJi
ZDg4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysr
IGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTQ1MywyOSArNDUzLDEw
IEBAIFBsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKICAgICBkZWxldGUgcGxhdGZvcm1QbHVnaW5X
aWRnZXQoKTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6
cGxhdGZvcm1TdGFydCgpCiB7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxpemVkKQotICAgICAgICBy
ZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwotCi0gICAgbV9oYXNQZW5kaW5n
R2VvbWV0cnlDaGFuZ2UgPSBmYWxzZTsKLQotICAgIGlmICghbV9wbHVnaW4pIHsKLSAgICAgICAg
QVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0Nhbk5vdEZpbmRQbHVnaW4pOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFtX3BsdWdpbi0+bG9hZCgpKSB7Ci0gICAgICAg
IG1fcGx1Z2luID0gMDsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2Fk
UGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFzdGFydCgpKSB7Ci0g
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOworICAgIEFTU0VSVChtX3N0
YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwogCiAgICAgaWYgKG1fcGx1
Z2luLT5wbHVnaW5GdW5jcygpLT5nZXR2YWx1ZSkgewogICAgICAgICBQbHVnaW5WaWV3OjpzZXRD
dXJyZW50UGx1Z2luVmlldyh0aGlzKTsKQEAgLTQ5MCw5ICs0NzEsOSBAQCB2b2lkIFBsdWdpblZp
ZXc6OmluaXQoKQogICAgICAgICBzZXRQbGF0Zm9ybVdpZGdldChuZXcgUGx1Z2luQ29udGFpbmVy
UXQodGhpcywgbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2lu
ZG93KCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgICAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVy
bjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KKwogICAgIHNob3coKTsKIAogICAgIE5Q
U2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QgKndzaSA9IG5ldyBOUFNldFdpbmRvd0NhbGxiYWNrU3Ry
dWN0KCk7CkBAIC01MTUsMTIgKzQ5Niw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCiAgICAg
ICAgIHNldE5QV2luZG93SWZOZWVkZWQoKTsKICAgICB9CiAKLSAgICBtX3N0YXR1cyA9IFBsdWdp
blN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKLXsKLX0KLQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwIGIv
V2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAppbmRleCA0ZTk0ZmViLi5jZmEx
ZTIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCisr
KyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTk3NSwzMiArOTc1
LDcgQEAgUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQogICAgICAgICBtX3BsdWdpbi0+dW5sb2Fk
KCk7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCi17Ci0gICAgaWYgKG1faGF2ZUluaXRp
YWxpemVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwot
Ci0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2lu
U3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBt
X3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0T3JBZGRUb1Vuc3RhcnRlZExpc3QoKSkgewotICAgICAg
ICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxs
eTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKK2Jvb2wgUGx1Z2luVmll
dzo6cGxhdGZvcm1TdGFydCgpCiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKICAgICBBU1NF
UlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKQEAgLTEwNDcs
NiArMTAyMiw4IEBAIHZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAKICAgICBpZiAo
IW1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RlZmVyRmlyc3RTZXRXaW5k
b3dDYWxsKSkKICAgICAgICAgc2V0TlBXaW5kb3dSZWN0KGZyYW1lUmVjdCgpKTsKKworICAgIHJl
dHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38861</attachid>
            <date>2009-09-01 05:20:08 -0700</date>
            <delta_ts>2009-09-02 03:22:49 -0700</delta_ts>
            <desc>Join the various PluginView destructors into one shared implementation</desc>
            <filename>bug-27706-20090901142005.patch</filename>
            <type>text/plain</type>
            <size>7555</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmQ4MTUzZC4uYzg4MzA4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgUGx1Z2luVmlldyBkZXN0
cnVjdG9ycyBpbnRvIG9uZSBzaGFyZWQgaW1wbGVtZW50YXRpb24KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKworICAgICAgICBUaGUgUXQg
cG9ydCB1c2VkIHRvIGRlbGV0ZSB0aGUgcGxhdGZvcm0gcGx1Z2luIHdpZGdldCBhcyB0aGUgbGFz
dCBzdGVwLgorICAgICAgICBOb3cgdGhpcyBpcyBkb25lIGJlZm9yZSBjbGVhbmluZyB1cCB0aGUg
c2NyaXB0IG9iamVjdHMgYW5kIHVubG9hZGluZyB0aGUKKyAgICAgICAgcGx1Z2luIHBhY2thZ2Us
IHNpbWlsYXIgdG8gaG93IHRoZSBXaW4gcG9ydCBkb2VzIGl0LgorCisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHA6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKKzIw
MDktMDgtMzEgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFNoYXJlIFBs
dWdpblZpZXc6OmluaXQoKSBiZXR3ZWVuIHBvcnRzCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzA2CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
ODY5M2M4Zi4uNDcyN2NhOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNjgsNiArNjgsMTAg
QEAKICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlw
ZS5oPgogCisjaWYgZGVmaW5lZChYUF9VTklYKSAmJiBQTEFURk9STShRVCkKKyNpbmNsdWRlIDxR
V2lkZ2V0PgorI2VuZGlmCisKIHVzaW5nIEpTQzo6RXhlY1N0YXRlOwogdXNpbmcgSlNDOjpKU0xv
Y2s7CiB1c2luZyBKU0M6OkpTT2JqZWN0OwpAQCAtMTc3LDYgKzE4MSwyMCBAQCB2b2lkIFBsdWdp
blZpZXc6OmluaXQoKQogICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1
bGx5OwogfQogCitib29sIFBsdWdpblZpZXc6OnN0YXJ0T3JBZGRUb1Vuc3RhcnRlZExpc3QoKQor
eworICAgIGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIW1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+Y2FuU3RhcnRQbHVnaW5zKCkpIHsK
KyAgICAgICAgbV9wYXJlbnRGcmFtZS0+cGFnZSgpLT5hZGRVbnN0YXJ0ZWRQbHVnaW4odGhpcyk7
CisgICAgICAgIG1faXNXYWl0aW5nVG9TdGFydCA9IHRydWU7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKworICAgIHJldHVybiBzdGFydCgpOworfQorCiBib29sIFBsdWdpblZpZXc6OnN0
YXJ0KCkKIHsKICAgICBpZiAobV9pc1N0YXJ0ZWQpCkBAIC0yMjUsNiArMjQzLDQ3IEBAIGJvb2wg
UGx1Z2luVmlldzo6c3RhcnQoKQogICAgIHJldHVybiAobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVz
TG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIH0KIAorUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQorewor
ICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKSIpOworCisgICAgcmVt
b3ZlRnJvbVVuc3RhcnRlZExpc3RJZk5lY2Vzc2FyeSgpOworCisgICAgc3RvcCgpOworCisgICAg
ZGVsZXRlQWxsVmFsdWVzKG1fcmVxdWVzdHMpOworCisgICAgZnJlZVN0cmluZ0FycmF5KG1fcGFy
YW1OYW1lcywgbV9wYXJhbUNvdW50KTsKKyAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVl
cywgbV9wYXJhbUNvdW50KTsKKworICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSB7Cisj
aWYgZGVmaW5lZChYUF9XSU4pCisgICAgICAgRGVzdHJveVdpbmRvdyhwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpKTsKKyNlbGlmIGRlZmluZWQoWFBfTUFDT1NYKQorICAgICAgIHNldFBsYXRmb3JtUGx1
Z2luV2lkZ2V0KDApOworI2VsaWYgZGVmaW5lZChYUF9VTklYKSAmJiBQTEFURk9STShRVCkKKyAg
ICAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBkb25lIGZvciBHVEsgdG9vPworICAgICAgIGRl
bGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOworI2VuZGlmCisgICAgfQorCisgICAgbV9wYXJl
bnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBTY3JpcHRPYmplY3RzRm9yUGx1Z2luKHRoaXMpOwor
CisgICAgaWYgKG1fcGx1Z2luICYmICEobV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdp
blF1aXJrRG9udFVubG9hZFBsdWdpbikpKQorICAgICAgICBtX3BsdWdpbi0+dW5sb2FkKCk7Cit9
CisKK3ZvaWQgUGx1Z2luVmlldzo6cmVtb3ZlRnJvbVVuc3RhcnRlZExpc3RJZk5lY2Vzc2FyeSgp
Cit7CisgICAgaWYgKCFtX2lzV2FpdGluZ1RvU3RhcnQpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bh
cmVudEZyYW1lLT5wYWdlKCktPnJlbW92ZVVuc3RhcnRlZFBsdWdpbih0aGlzKTsKK30KKwogdm9p
ZCBQbHVnaW5WaWV3OjpzdG9wKCkKIHsKICAgICBpZiAoIW1faXNTdGFydGVkKQpAQCAtMzM4LDMx
ICszOTcsNiBAQCBzdGF0aWMgYm9vbCBnZXRTdHJpbmcoU2NyaXB0Q29udHJvbGxlciogcHJveHks
IEpTVmFsdWUgcmVzdWx0LCBTdHJpbmcmIHN0cmluZykKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBQbHVnaW5WaWV3OjpzdGFydE9yQWRkVG9VbnN0YXJ0ZWRMaXN0KCkKLXsKLSAgICBpZiAo
IW1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KCFtX3BhcmVudEZyYW1lLT5wYWdlKCktPmNhblN0YXJ0UGx1Z2lucygpKSB7Ci0gICAgICAgIG1f
cGFyZW50RnJhbWUtPnBhZ2UoKS0+YWRkVW5zdGFydGVkUGx1Z2luKHRoaXMpOwotICAgICAgICBt
X2lzV2FpdGluZ1RvU3RhcnQgPSB0cnVlOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0K
LSAgICByZXR1cm4gc3RhcnQoKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3OjpyZW1vdmVGcm9tVW5z
dGFydGVkTGlzdElmTmVjZXNzYXJ5KCkKLXsKLSAgICBpZiAoIW1faXNXYWl0aW5nVG9TdGFydCkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+cmVtb3ZlVW5zdGFydGVk
UGx1Z2luKHRoaXMpOwotfQotCiB2b2lkIFBsdWdpblZpZXc6OnBlcmZvcm1SZXF1ZXN0KFBsdWdp
blJlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgaWYgKCFtX2lzU3RhcnRlZCkKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1
Z2luVmlld05vbmUuY3BwCmluZGV4IDg2MDBlYjUuLjliN2MyYTkgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXdOb25lLmNwcApAQCAtMTE0LDExICsxMTQsNiBAQCB2b2lkIFBsdWdpblZpZXc6OmZvcmNl
UmVkcmF3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi1QbHVnaW5WaWV3Ojp+UGx1Z2lu
VmlldygpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBQbHVnaW5WaWV3Ojpw
bGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHAKaW5kZXggMzc3YTZiYi4uMmFiMmU4YSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMv
Z3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC00MzEsMjEgKzQzMSw2IEBAIHZvaWQgUGx1Z2luVmll
dzo6Zm9yY2VSZWRyYXcoKQogICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcobV9wYXJlbnRG
cmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkpOwogfQogCi1QbHVn
aW5WaWV3Ojp+UGx1Z2luVmlldygpCi17Ci0gICAgc3RvcCgpOwotCi0gICAgZGVsZXRlQWxsVmFs
dWVzKG1fcmVxdWVzdHMpOwotCi0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1OYW1lcywgbV9w
YXJhbUNvdW50KTsKLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVlcywgbV9wYXJhbUNv
dW50KTsKLQotICAgIG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0T2JqZWN0
c0ZvclBsdWdpbih0aGlzKTsKLQotICAgIGlmIChtX3BsdWdpbiAmJiAhKG1fcGx1Z2luLT5xdWly
a3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKSkKLSAgICAgICAgbV9w
bHVnaW4tPnVubG9hZCgpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4KIHBsdWdfcmVtb3ZlZF9jYihH
dGtTb2NrZXQgKnNvY2tldCwgZ3BvaW50ZXIpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3
TWFjLmNwcAppbmRleCA0YzFmOGE3Li5jMTZiZWM4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdp
bnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5jcHAKQEAgLTE4MiwyNSArMTgyLDYgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bVN0YXJ0KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUGx1Z2luVmlldzo6flBsdWdpblZpZXco
KQotewotICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKSIpOwotCi0g
ICAgc3RvcCgpOwotCi0gICAgZGVsZXRlQWxsVmFsdWVzKG1fcmVxdWVzdHMpOwotCi0gICAgZnJl
ZVN0cmluZ0FycmF5KG1fcGFyYW1OYW1lcywgbV9wYXJhbUNvdW50KTsKLSAgICBmcmVlU3RyaW5n
QXJyYXkobV9wYXJhbVZhbHVlcywgbV9wYXJhbUNvdW50KTsKLQotICAgIG1fcGFyZW50RnJhbWUt
PnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0T2JqZWN0c0ZvclBsdWdpbih0aGlzKTsKLQotICAgIGlm
IChtX3BsdWdpbiAmJiAhKG1fcGx1Z2luLT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0Rv
bnRVbmxvYWRQbHVnaW4pKSkKLSAgICAgICAgbV9wbHVnaW4tPnVubG9hZCgpOwotCi0gICAgbV93
aW5kb3cgPSAwOwotfQotCiAvLyBVc2VkIGJlZm9yZSB0aGUgcGx1Z2luIHZpZXcgaGFzIGJlZW4g
aW5pdGlhbGl6ZWQgcHJvcGVybHksIGFuZCBhcyBhCiAvLyBmYWxsYmFjayBmb3IgdmFyaWFibGVz
IHRoYXQgZG8gbm90IHJlcXVpcmUgYSB2aWV3IHRvIHJlc29sdmUuCiBOUEVycm9yIFBsdWdpblZp
ZXc6OmdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggZGJiZDg4Yi4uNDJjYmRkZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29yZS9w
bHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTQzNiwyMyArNDM2LDYgQEAgdm9pZCBQbHVn
aW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotUGx1Z2lu
Vmlldzo6flBsdWdpblZpZXcoKQotewotICAgIHN0b3AoKTsKLQotICAgIGRlbGV0ZUFsbFZhbHVl
cyhtX3JlcXVlc3RzKTsKLQotICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtTmFtZXMsIG1fcGFy
YW1Db3VudCk7Ci0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1WYWx1ZXMsIG1fcGFyYW1Db3Vu
dCk7Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5zY3JpcHQoKS0+Y2xlYW51cFNjcmlwdE9iamVjdHNG
b3JQbHVnaW4odGhpcyk7Ci0KLSAgICBpZiAobV9wbHVnaW4gJiYgIShtX3BsdWdpbi0+cXVpcmtz
KCkuY29udGFpbnMoUGx1Z2luUXVpcmtEb250VW5sb2FkUGx1Z2luKSkpCi0gICAgICAgIG1fcGx1
Z2luLT51bmxvYWQoKTsKLQotICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOwotfQot
CiBib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogewogICAgIEFTU0VSVChtX2lzU3Rh
cnRlZCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAppbmRleCBjZmExZTIyLi43
Njc4ZTU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKQEAgLTk1NSwyNiAr
OTU1LDYgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb3JjZVJlZHJhdygpCiAgICAgICAgIDo6VXBkYXRl
V2luZG93KHdpbmRvd0hhbmRsZUZvclBsYXRmb3JtV2lkZ2V0KHBhcmVudCgpID8gcGFyZW50KCkt
Pmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSA6IDApKTsKIH0KIAotUGx1Z2luVmlldzo6
flBsdWdpblZpZXcoKQotewotICAgIHJlbW92ZUZyb21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3Nhcnko
KTsKLQotICAgIHN0b3AoKTsKLQotICAgIGRlbGV0ZUFsbFZhbHVlcyhtX3JlcXVlc3RzKTsKLQot
ICAgIGZyZWVTdHJpbmdBcnJheShtX3BhcmFtTmFtZXMsIG1fcGFyYW1Db3VudCk7Ci0gICAgZnJl
ZVN0cmluZ0FycmF5KG1fcGFyYW1WYWx1ZXMsIG1fcGFyYW1Db3VudCk7Ci0KLSAgICBpZiAocGxh
dGZvcm1QbHVnaW5XaWRnZXQoKSkKLSAgICAgICAgRGVzdHJveVdpbmRvdyhwbGF0Zm9ybVBsdWdp
bldpZGdldCgpKTsKLQotICAgIG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0
T2JqZWN0c0ZvclBsdWdpbih0aGlzKTsKLQotICAgIGlmIChtX3BsdWdpbiAmJiAhbV9wbHVnaW4t
PnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikpCi0gICAgICAg
IG1fcGx1Z2luLT51bmxvYWQoKTsKLX0KLQogYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0
KCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOw==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38920</attachid>
            <date>2009-09-02 03:22:57 -0700</date>
            <delta_ts>2009-09-02 03:27:19 -0700</delta_ts>
            <desc>Join the various PluginView destructors into one shared implementation</desc>
            <filename>bug-27706-20090902122255.patch</filename>
            <type>text/plain</type>
            <size>8408</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmQ4MTUzZC4uYzg4MzA4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNSBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIEpvaW4gdGhlIHZhcmlvdXMgUGx1Z2luVmlldyBkZXN0
cnVjdG9ycyBpbnRvIG9uZSBzaGFyZWQgaW1wbGVtZW50YXRpb24KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc3MDYKKworICAgICAgICBUaGUgUXQg
cG9ydCB1c2VkIHRvIGRlbGV0ZSB0aGUgcGxhdGZvcm0gcGx1Z2luIHdpZGdldCBhcyB0aGUgbGFz
dCBzdGVwLgorICAgICAgICBOb3cgdGhpcyBpcyBkb25lIGJlZm9yZSBjbGVhbmluZyB1cCB0aGUg
c2NyaXB0IG9iamVjdHMgYW5kIHVubG9hZGluZyB0aGUKKyAgICAgICAgcGx1Z2luIHBhY2thZ2Us
IHNpbWlsYXIgdG8gaG93IHRoZSBXaW4gcG9ydCBkb2VzIGl0LgorCisgICAgICAgICogcGx1Z2lu
cy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcDoK
KyAgICAgICAgKiBwbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcDoKKyAgICAgICAgKiBwbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZp
ZXdRdC5jcHA6CisgICAgICAgICogcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHA6CisKKzIw
MDktMDgtMzEgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFNoYXJlIFBs
dWdpblZpZXc6OmluaXQoKSBiZXR3ZWVuIHBvcnRzCiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3NzA2CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXgg
NDUxYTNhMC4uMDA3MDAwNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTc3LDYgKzE3Nywy
MCBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVz
TG9hZGVkU3VjY2Vzc2Z1bGx5OwogfQogCitib29sIFBsdWdpblZpZXc6OnN0YXJ0T3JBZGRUb1Vu
c3RhcnRlZExpc3QoKQoreworICAgIGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIW1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+Y2FuU3Rh
cnRQbHVnaW5zKCkpIHsKKyAgICAgICAgbV9wYXJlbnRGcmFtZS0+cGFnZSgpLT5hZGRVbnN0YXJ0
ZWRQbHVnaW4odGhpcyk7CisgICAgICAgIG1faXNXYWl0aW5nVG9TdGFydCA9IHRydWU7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBzdGFydCgpOworfQorCiBib29s
IFBsdWdpblZpZXc6OnN0YXJ0KCkKIHsKICAgICBpZiAobV9pc1N0YXJ0ZWQpCkBAIC0yMjQsNiAr
MjM4LDM4IEBAIGJvb2wgUGx1Z2luVmlldzo6c3RhcnQoKQogICAgIHJldHVybiAobV9zdGF0dXMg
PT0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5KTsKIH0KIAorUGx1Z2luVmlldzo6flBs
dWdpblZpZXcoKQoreworICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBsdWdpblZpZXco
KSIpOworCisgICAgcmVtb3ZlRnJvbVVuc3RhcnRlZExpc3RJZk5lY2Vzc2FyeSgpOworCisgICAg
c3RvcCgpOworCisgICAgZGVsZXRlQWxsVmFsdWVzKG1fcmVxdWVzdHMpOworCisgICAgZnJlZVN0
cmluZ0FycmF5KG1fcGFyYW1OYW1lcywgbV9wYXJhbUNvdW50KTsKKyAgICBmcmVlU3RyaW5nQXJy
YXkobV9wYXJhbVZhbHVlcywgbV9wYXJhbUNvdW50KTsKKworICAgIHBsYXRmb3JtRGVzdHJveSgp
OworCisgICAgbV9wYXJlbnRGcmFtZS0+c2NyaXB0KCktPmNsZWFudXBTY3JpcHRPYmplY3RzRm9y
UGx1Z2luKHRoaXMpOworCisgICAgaWYgKG1fcGx1Z2luICYmICEobV9wbHVnaW4tPnF1aXJrcygp
LmNvbnRhaW5zKFBsdWdpblF1aXJrRG9udFVubG9hZFBsdWdpbikpKQorICAgICAgICBtX3BsdWdp
bi0+dW5sb2FkKCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6cmVtb3ZlRnJvbVVuc3RhcnRlZExp
c3RJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYgKCFtX2lzV2FpdGluZ1RvU3RhcnQpCisgICAgICAg
IHJldHVybjsKKworICAgIGlmICghbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX3BhcmVudEZyYW1lLT5wYWdlKCktPnJlbW92ZVVuc3RhcnRlZFBsdWdpbih0
aGlzKTsKK30KKwogdm9pZCBQbHVnaW5WaWV3OjpzdG9wKCkKIHsKICAgICBpZiAoIW1faXNTdGFy
dGVkKQpAQCAtMzM3LDMxICszODMsNiBAQCBzdGF0aWMgYm9vbCBnZXRTdHJpbmcoU2NyaXB0Q29u
dHJvbGxlciogcHJveHksIEpTVmFsdWUgcmVzdWx0LCBTdHJpbmcmIHN0cmluZykKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotYm9vbCBQbHVnaW5WaWV3OjpzdGFydE9yQWRkVG9VbnN0YXJ0ZWRMaXN0
KCkKLXsKLSAgICBpZiAoIW1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKCFtX3BhcmVudEZyYW1lLT5wYWdlKCktPmNhblN0YXJ0UGx1Z2lucygp
KSB7Ci0gICAgICAgIG1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+YWRkVW5zdGFydGVkUGx1Z2luKHRo
aXMpOwotICAgICAgICBtX2lzV2FpdGluZ1RvU3RhcnQgPSB0cnVlOwotICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RhcnQoKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3
OjpyZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCkKLXsKLSAgICBpZiAoIW1faXNX
YWl0aW5nVG9TdGFydCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX3BhcmVudEZyYW1l
LT5wYWdlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFyZW50RnJhbWUtPnBhZ2UoKS0+
cmVtb3ZlVW5zdGFydGVkUGx1Z2luKHRoaXMpOwotfQotCiB2b2lkIFBsdWdpblZpZXc6OnBlcmZv
cm1SZXF1ZXN0KFBsdWdpblJlcXVlc3QqIHJlcXVlc3QpCiB7CiAgICAgaWYgKCFtX2lzU3RhcnRl
ZCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJDb3JlL3Bs
dWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDQ0NmJhZjguLjU0YzEwNjUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuaApAQCAtMjA2LDYgKzIwNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9p
ZCBpbml0KCk7CiAgICAgICAgIGJvb2wgcGxhdGZvcm1TdGFydCgpOwogICAgICAgICB2b2lkIHN0
b3AoKTsKKyAgICAgICAgdm9pZCBwbGF0Zm9ybURlc3Ryb3koKTsKICAgICAgICAgc3RhdGljIHZv
aWQgc2V0Q3VycmVudFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgICAgICBOUEVycm9yIGxv
YWQoY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGJvb2wgc2VuZE5vdGlmaWNhdGlvbiwgdm9pZCog
bm90aWZ5RGF0YSk7CiAgICAgICAgIE5QRXJyb3IgaGFuZGxlUG9zdChjb25zdCBjaGFyKiB1cmws
IGNvbnN0IGNoYXIqIHRhcmdldCwgdWludDMyIGxlbiwgY29uc3QgY2hhciogYnVmLCBib29sIGZp
bGUsIHZvaWQqIG5vdGlmeURhdGEsIGJvb2wgc2VuZE5vdGlmaWNhdGlvbiwgYm9vbCBhbGxvd0hl
YWRlcnMpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBi
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKaW5kZXggYTYxMTE4OC4uODM1NWM2
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9X
ZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC0xMTQsMTYgKzExNCwxNiBAQCB2
b2lkIFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci1QbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCitib29sIFBsdWdpblZpZXc6OnBsYXRmb3JtU3Rh
cnQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKK3ZvaWQgUGx1Z2luVmlldzo6cGxhdGZv
cm1EZXN0b3J5KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotCi0gICAgcmV0dXJuIHRydWU7
CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50VmlzaWJsZShib29sKQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lu
cy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggMzc3YTZiYi4uNDZiMGZjNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3Bs
dWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC00MzEsMjEgKzQzMSw2IEBAIHZvaWQgUGx1
Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgICAgICBndGtfd2lkZ2V0X3F1ZXVlX2RyYXcobV9w
YXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkpOwogfQog
Ci1QbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCi17Ci0gICAgc3RvcCgpOwotCi0gICAgZGVsZXRl
QWxsVmFsdWVzKG1fcmVxdWVzdHMpOwotCi0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1OYW1l
cywgbV9wYXJhbUNvdW50KTsKLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVlcywgbV9w
YXJhbUNvdW50KTsKLQotICAgIG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0
T2JqZWN0c0ZvclBsdWdpbih0aGlzKTsKLQotICAgIGlmIChtX3BsdWdpbiAmJiAhKG1fcGx1Z2lu
LT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKSkKLSAgICAg
ICAgbV9wbHVnaW4tPnVubG9hZCgpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4KIHBsdWdfcmVtb3Zl
ZF9jYihHdGtTb2NrZXQgKnNvY2tldCwgZ3BvaW50ZXIpCiB7CkBAIC01MTgsNSArNTAzLDkgQEAg
Ym9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAor
dm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01h
Yy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDRjMWY4
YTcuLmQwYTMyODggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01h
Yy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMTgy
LDIzICsxODIsMTAgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotUGx1Z2luVmlldzo6flBsdWdpblZpZXcoKQordm9pZCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybURlc3Ryb3koKQogewotICAgIExPRyhQbHVnaW5zLCAiUGx1Z2luVmlldzo6flBs
dWdpblZpZXcoKSIpOwotCi0gICAgc3RvcCgpOwotCi0gICAgZGVsZXRlQWxsVmFsdWVzKG1fcmVx
dWVzdHMpOwotCi0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1OYW1lcywgbV9wYXJhbUNvdW50
KTsKLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVlcywgbV9wYXJhbUNvdW50KTsKLQot
ICAgIG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0T2JqZWN0c0ZvclBsdWdp
bih0aGlzKTsKLQotICAgIGlmIChtX3BsdWdpbiAmJiAhKG1fcGx1Z2luLT5xdWlya3MoKS5jb250
YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKSkKLSAgICAgICAgbV9wbHVnaW4tPnVu
bG9hZCgpOwotCi0gICAgbV93aW5kb3cgPSAwOworICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpKQorICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCgwKTsKIH0KIAogLy8gVXNlZCBi
ZWZvcmUgdGhlIHBsdWdpbiB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkIHByb3Blcmx5LCBhbmQg
YXMgYQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCBkYmJkODhiLi5mZGVhYzJm
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9X
ZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtNDM2LDIzICs0MzYsNiBAQCB2
b2lkIFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQog
Ci1QbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygpCi17Ci0gICAgc3RvcCgpOwotCi0gICAgZGVsZXRl
QWxsVmFsdWVzKG1fcmVxdWVzdHMpOwotCi0gICAgZnJlZVN0cmluZ0FycmF5KG1fcGFyYW1OYW1l
cywgbV9wYXJhbUNvdW50KTsKLSAgICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbVZhbHVlcywgbV9w
YXJhbUNvdW50KTsKLQotICAgIG1fcGFyZW50RnJhbWUtPnNjcmlwdCgpLT5jbGVhbnVwU2NyaXB0
T2JqZWN0c0ZvclBsdWdpbih0aGlzKTsKLQotICAgIGlmIChtX3BsdWdpbiAmJiAhKG1fcGx1Z2lu
LT5xdWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKSkKLSAgICAg
ICAgbV9wbHVnaW4tPnVubG9hZCgpOwotCi0gICAgZGVsZXRlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCk7Ci19Ci0KIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7CiAgICAgQVNTRVJU
KG1faXNTdGFydGVkKTsKQEAgLTQ5OSw0ICs0ODIsMTAgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybVN0YXJ0KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBQbHVnaW5WaWV3OjpwbGF0
Zm9ybURlc3Ryb3koKQoreworICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQorICAgICAg
ICBkZWxldGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBi
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggY2ZhMWUyMi4uOWVl
OGVlNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAor
KysgYi9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCkBAIC05NTUsMjYgKzk1
NSw2IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQogICAgICAgICA6OlVwZGF0ZVdp
bmRvdyh3aW5kb3dIYW5kbGVGb3JQbGF0Zm9ybVdpZGdldChwYXJlbnQoKSA/IHBhcmVudCgpLT5o
b3N0V2luZG93KCktPnBsYXRmb3JtV2luZG93KCkgOiAwKSk7CiB9CiAKLVBsdWdpblZpZXc6On5Q
bHVnaW5WaWV3KCkKLXsKLSAgICByZW1vdmVGcm9tVW5zdGFydGVkTGlzdElmTmVjZXNzYXJ5KCk7
Ci0KLSAgICBzdG9wKCk7Ci0KLSAgICBkZWxldGVBbGxWYWx1ZXMobV9yZXF1ZXN0cyk7Ci0KLSAg
ICBmcmVlU3RyaW5nQXJyYXkobV9wYXJhbU5hbWVzLCBtX3BhcmFtQ291bnQpOwotICAgIGZyZWVT
dHJpbmdBcnJheShtX3BhcmFtVmFsdWVzLCBtX3BhcmFtQ291bnQpOwotCi0gICAgaWYgKHBsYXRm
b3JtUGx1Z2luV2lkZ2V0KCkpCi0gICAgICAgIERlc3Ryb3lXaW5kb3cocGxhdGZvcm1QbHVnaW5X
aWRnZXQoKSk7Ci0KLSAgICBtX3BhcmVudEZyYW1lLT5zY3JpcHQoKS0+Y2xlYW51cFNjcmlwdE9i
amVjdHNGb3JQbHVnaW4odGhpcyk7Ci0KLSAgICBpZiAobV9wbHVnaW4gJiYgIW1fcGx1Z2luLT5x
dWlya3MoKS5jb250YWlucyhQbHVnaW5RdWlya0RvbnRVbmxvYWRQbHVnaW4pKQotICAgICAgICBt
X3BsdWdpbi0+dW5sb2FkKCk7Ci19Ci0KIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgp
CiB7CiAgICAgQVNTRVJUKG1faXNTdGFydGVkKTsKQEAgLTEwMjYsNCArMTAwNiwxMCBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lk
IFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCit7CisgICAgaWYgKHBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KCkpCisgICAgICAgIERlc3Ryb3lXaW5kb3cocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>
<flag name="review"
          id="19918"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="19921"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38921</attachid>
            <date>2009-09-02 03:23:05 -0700</date>
            <delta_ts>2009-09-02 03:28:32 -0700</delta_ts>
            <desc>Share PluginView::init() between ports</desc>
            <filename>bug-27706-20090902122303.patch</filename>
            <type>text/plain</type>
            <size>10682</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWIyMzkwOC4uZmQ4MTUzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2hhcmUgUGx1Z2luVmlldzo6aW5pdCgpIGJldHdl
ZW4gcG9ydHMKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9Mjc3MDYKKworICAgICAgICBUaGUgcG9ydC1zcGVzaWZpYyBiaXRzIGFyZSBtb3ZlZCB0byBw
bGF0Zm9ybVN0YXJ0KCksIHdoaWNoIG5vdyByZXR1cm5zCisgICAgICAgIGEgYm9vbCBiYXNlZCBv
biB0aGUgc3VjY2VzcyBvZiB0aGUgcGxhdGZvcm1TdGFydC4KKworICAgICAgICBtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZSBpcyBub3cgaW5pdGlhbGl6ZWQgaW4gdGhlIGluaXRpYWxpemVyIGxp
c3QKKyAgICAgICAgaW5zdGVhZCBvZiBpbiBQbHVnaW5WaWV3UXQncyBpbml0KCkKKworICAgICAg
ICBQbHVnaW5WaWV3TWFjIChjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IHRoZSBRdCBwb3J0KSB1c2Vk
IHRvIG1hbnVhbGx5IGNhbGwgCisgICAgICAgIHN0b3AoKSBpbiB0aGUgY2FzZSB3aGVyZSBhbiB1
bnN1cHBvcnRlZCBkcmF3aW5nIG9yIGV2ZW50IG1vZGVsIHdhcyBkZXRlY3RlZC4KKyAgICAgICAg
VGhpcyB3YXMgd3JvbmcsIGFzIHRoZSBtX3N0YXR1cyBhbmQgbV9pc1N0YXJ0ZWQgZmllbGRzIHNo
b3VsZCBiZSB1c2VkIHRvIAorICAgICAgICBndWFyZCBhZ2FpbnN0IGRvaW5nIG9wZXJhdGlvbnMg
b24gYSBwbHVnaW4gaW4gdGhpcyBpbnRlcm1lZGlhdGUgc3RhdGUuCisKKyAgICAgICAgKiBwbHVn
aW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwOgorICAgICAgICAqIHBsdWdpbnMvZ3Rr
L1BsdWdpblZpZXdHdGsuY3BwOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMu
Y3BwOgorICAgICAgICAqIHBsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcDoKKyAgICAgICAgKiBw
bHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKworMjAwOS0wOC0zMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
QXJpeWEgSGlkYXlhdC4KIAogICAgICAgICBbUXRdIFVuLWJsYWNrbGlzdCBTaWx2ZXJsaWdodCBv
biBNYWMKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNv
cmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA4ZWZiMzE1Li40NTFhM2EwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCkBAIC0xNDksNiArMTQ5LDM0IEBAIHZvaWQgUGx1Z2luVmlldzo6aGFu
ZGxlRXZlbnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBoYW5kbGVLZXlib2FyZEV2ZW50KHN0YXRp
Y19jYXN0PEtleWJvYXJkRXZlbnQqPihldmVudCkpOwogfQogCit2b2lkIFBsdWdpblZpZXc6Omlu
aXQoKQoreworICAgIGlmIChtX2hhdmVJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgaWYgKCFtX3BsdWdpbikgeworICAg
ICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coUGx1Z2lucywgIlBsdWdpblZpZXc6Omlu
aXQoKTogSW5pdGlhbGl6aW5nIHBsdWctaW4gJyVzJyIsIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgp
LmRhdGEoKSk7CisKKyAgICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKKyAgICAgICAgbV9wbHVn
aW4gPSAwOworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXN0YXJ0T3JBZGRUb1Vuc3RhcnRl
ZExpc3QoKSkgeworICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVn
aW47CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1
c0xvYWRlZFN1Y2Nlc3NmdWxseTsKK30KKwogYm9vbCBQbHVnaW5WaWV3OjpzdGFydCgpCiB7CiAg
ICAgaWYgKG1faXNTdGFydGVkKQpAQCAtMTg5LDkgKzIxNywxMSBAQCBib29sIFBsdWdpblZpZXc6
OnN0YXJ0KCkKIAogICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5
OwogCi0gICAgcGxhdGZvcm1TdGFydCgpOworICAgIGlmICghcGxhdGZvcm1TdGFydCgpKSB7Cisg
ICAgICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKKyAgICB9CiAK
LSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gKG1fc3RhdHVzID09IFBsdWdpblN0YXR1c0xv
YWRlZFN1Y2Nlc3NmdWxseSk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCkBAIC03NDks
NiArNzc5LDkgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNv
bnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICAgICAsIG1fZHJhd2luZ01vZGVs
KE5QRHJhd2luZ01vZGVsKC0xKSkKICAgICAsIG1fZXZlbnRNb2RlbChOUEV2ZW50TW9kZWwoLTEp
KQogI2VuZGlmCisjaWYgZGVmaW5lZChRX1dTX1gxMSkKKyAgICAsIG1faGFzUGVuZGluZ0dlb21l
dHJ5Q2hhbmdlKGZhbHNlKQorI2VuZGlmCiAgICAgLCBtX2xvYWRNYW51YWxseShsb2FkTWFudWFs
bHkpCiAgICAgLCBtX21hbnVhbFN0cmVhbSgwKQogICAgICwgbV9pc0phdmFTY3JpcHRQYXVzZWQo
ZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCA4ZjlkMmRhLi40NDZiYWY4IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKQEAgLTIwNCw3ICsyMDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGJvb2wgc3RhcnRPckFkZFRvVW5zdGFydGVkTGlzdCgpOwogICAgICAgICB2b2lkIHJlbW92ZUZy
b21VbnN0YXJ0ZWRMaXN0SWZOZWNlc3NhcnkoKTsKICAgICAgICAgdm9pZCBpbml0KCk7Ci0gICAg
ICAgIHZvaWQgcGxhdGZvcm1TdGFydCgpOworICAgICAgICBib29sIHBsYXRmb3JtU3RhcnQoKTsK
ICAgICAgICAgdm9pZCBzdG9wKCk7CiAgICAgICAgIHN0YXRpYyB2b2lkIHNldEN1cnJlbnRQbHVn
aW5WaWV3KFBsdWdpblZpZXcqKTsKICAgICAgICAgTlBFcnJvciBsb2FkKGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmLCBib29sIHNlbmROb3RpZmljYXRpb24sIHZvaWQqIG5vdGlmeURhdGEpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcCBiL1dlYkNvcmUvcGx1
Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAKaW5kZXggYmU3OTU2Ny4uYTYxMTE4OCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvUGx1Z2luVmlld05vbmUuY3BwCkBAIC0xMTksOSArMTE5LDExIEBAIFBsdWdpblZpZXc6On5Q
bHVnaW5WaWV3KCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBsdWdpblZpZXc6
OmluaXQoKQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6c2V0
UGFyZW50VmlzaWJsZShib29sKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVn
aW5WaWV3R3RrLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5k
ZXggMTljYjk3YS4uMzc3YTZiYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVn
aW5WaWV3R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3Bw
CkBAIC00NTIsMjcgKzQ1MiwxMCBAQCBwbHVnX3JlbW92ZWRfY2IoR3RrU29ja2V0ICpzb2NrZXQs
IGdwb2ludGVyKQogICAgIHJldHVybiBUUlVFOwogfQogCi12b2lkIFBsdWdpblZpZXc6OmluaXQo
KQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIHsKLSAgICBpZiAobV9oYXZlSW5p
dGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hhdmVJbml0aWFsaXplZCA9IHRydWU7
Ci0KLSAgICBpZiAoIW1fcGx1Z2luKSB7Ci0gICAgICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVn
aW5TdGF0dXNDYW5Ob3RGaW5kUGx1Z2luKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmICghbV9wbHVnaW4tPmxvYWQoKSkgewotICAgICAgICBtX3BsdWdpbiA9IDA7Ci0gICAgICAg
IG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmICghc3RhcnQoKSkgewotICAgICAgICBtX3N0YXR1cyA9IFBsdWdp
blN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgQVNT
RVJUKG1faXNTdGFydGVkKTsKKyAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2luU3RhdHVzTG9h
ZGVkU3VjY2Vzc2Z1bGx5KTsKIAogICAgIGlmIChtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+Z2V0
dmFsdWUpIHsKICAgICAgICAgUGx1Z2luVmlldzo6c2V0Q3VycmVudFBsdWdpblZpZXcodGhpcyk7
CkBAIC01MzIsMTEgKzUxNSw3IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCiAgICAgaWYgKCEo
bV9wbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRv
d0NhbGwpKSkKICAgICAgICAgdXBkYXRlUGx1Z2luV2lkZ2V0KCk7IC8vIHdhczogc2V0TlBXaW5k
b3dJZk5lZWRlZCgpLCBidXQgdGhpcyBkb2Vzbid0IHByb2R1Y2UgMHgwIHJlY3RzIGF0IGZpcnN0
IGdvCiAKLSAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseTsKLX0K
LQotdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKLXsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5z
L21hYy9QbHVnaW5WaWV3TWFjLmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01h
Yy5jcHAKaW5kZXggMjZmOWViYS4uNGMxZjhhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5z
L21hYy9QbHVnaW5WaWV3TWFjLmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZp
ZXdNYWMuY3BwCkBAIC0xMjUsMzAgKzEyNSwxMCBAQCBzdGF0aWMgaW5saW5lIEludFBvaW50IHRv
cExldmVsT2Zmc2V0Rm9yKFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKIAogLy8gLS0tLS0tLS0tLS0t
LS0tIExpZmV0aW1lIG1hbmFnZW1lbnQgLS0tLS0tLS0tLS0tLS0tLS0KIAotdm9pZCBQbHVnaW5W
aWV3Ojppbml0KCkKK2Jvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiB7Ci0gICAgTE9H
KFBsdWdpbnMsICJQbHVnaW5WaWV3Ojppbml0KCk6IEluaXRpYWxpemluZyBwbHVnLWluICclcyci
LCBtX3BsdWdpbi0+bmFtZSgpLnV0ZjgoKS5kYXRhKCkpOwotCi0gICAgaWYgKG1faGF2ZUluaXRp
YWxpemVkKQotICAgICAgICByZXR1cm47Ci0gICAgbV9oYXZlSW5pdGlhbGl6ZWQgPSB0cnVlOwot
Ci0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMgPT0gUGx1Z2lu
U3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwotICAgICAgICBt
X3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMgPSBQbHVnaW5T
dGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICBzdG9wKCk7IC8vIE1ha2Ugc3VyZSB3ZSB1
bnJlZ2lzdGVyIHRoZSBwbHVnaW4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBBU1NFUlQo
bV9pc1N0YXJ0ZWQpOworICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNMb2FkZWRT
dWNjZXNzZnVsbHkpOwogCiAgICAgaWYgKG1fZHJhd2luZ01vZGVsID09IE5QRHJhd2luZ01vZGVs
KC0xKSkgewogICAgICAgICAvLyBXZSBkZWZhdWx0IHRvIFF1aWNrRHJhdywgZXZlbiB0aG91Z2gg
d2UgZG9uJ3Qgc3VwcG9ydCBpdCwKQEAgLTE4MCw4ICsxNjAsNyBAQCB2b2lkIFBsdWdpblZpZXc6
OmluaXQoKQogICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47
CiAgICAgICAgIExPRyhQbHVnaW5zLCAiUGx1Zy1pbiAnJXMnIHVzZXMgdW5zdXBwb3J0ZWQgZXZl
bnQgbW9kZWwgJXMiLAogICAgICAgICAgICAgICAgIG1fcGx1Z2luLT5uYW1lKCkudXRmOCgpLmRh
dGEoKSwgcHJldHR5TmFtZUZvckV2ZW50TW9kZWwobV9ldmVudE1vZGVsKSk7Ci0gICAgICAgIHN0
b3AoKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAg
ICAgaWYgKGdldFZhbHVlU3RhdGljKE5QTlZhcmlhYmxlKE5QTlZzdXBwb3J0c1F1aWNrRHJhd0Jv
b2wgKyBtX2RyYXdpbmdNb2RlbCksICZkcmF3aW5nTW9kZWxTdXBwb3J0ZWQpICE9IE5QRVJSX05P
X0VSUk9SCkBAIC0xODksMTkgKzE2OCwxOCBAQCB2b2lkIFBsdWdpblZpZXc6OmluaXQoKQogICAg
ICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47CiAgICAgICAgIExP
RyhQbHVnaW5zLCAiUGx1Zy1pbiAnJXMnIHVzZXMgdW5zdXBwb3J0ZWQgZHJhd2luZyBtb2RlbCAl
cyIsCiAgICAgICAgICAgICAgICAgbV9wbHVnaW4tPm5hbWUoKS51dGY4KCkuZGF0YSgpLCBwcmV0
dHlOYW1lRm9yRHJhd2luZ01vZGVsKG1fZHJhd2luZ01vZGVsKSk7Ci0gICAgICAgIHN0b3AoKTsK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgc2V0
UGxhdGZvcm1QbHVnaW5XaWRnZXQobV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCkt
PnBsYXRmb3JtV2luZG93KCkpOwogCiAgICAgc2hvdygpOwogCi0gICAgbV9zdGF0dXMgPSBQbHVn
aW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHk7Ci0KICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgbnVs
bCB0aW1lciB0aHJvdHRsaW5nIGRlcGVuZGluZyBvbiBwbHVnaW4gYWN0aXZhdGlvbgogICAgIG1f
bnVsbEV2ZW50VGltZXIuc2V0KG5ldyBUaW1lcjxQbHVnaW5WaWV3Pih0aGlzLCAmUGx1Z2luVmll
dzo6bnVsbEV2ZW50VGltZXJGaXJlZCkpOwogICAgIG1fbnVsbEV2ZW50VGltZXItPnN0YXJ0UmVw
ZWF0aW5nKDAuMDIpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIFBsdWdpblZpZXc6On5QbHVn
aW5WaWV3KCkKQEAgLTcxNywxMSArNjk1LDYgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpoYW5kbGVQ
b3N0UmVhZEZpbGUoVmVjdG9yPGNoYXI+JiBidWZmZXIsIHVpbnQzMiBsZW4sIGNvbnN0IGMKICAg
ICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6cGxhdGZvcm1T
dGFydCgpCi17Ci19Ci0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZWxzZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAgYi9XZWJDb3JlL3BsdWdp
bnMvcXQvUGx1Z2luVmlld1F0LmNwcAppbmRleCBhMDJhOGZkLi5kYmJkODhiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2luVmlld1F0LmNwcAorKysgYi9XZWJDb3JlL3BsdWdp
bnMvcXQvUGx1Z2luVmlld1F0LmNwcApAQCAtNDUzLDI5ICs0NTMsMTAgQEAgUGx1Z2luVmlldzo6
flBsdWdpblZpZXcoKQogICAgIGRlbGV0ZSBwbGF0Zm9ybVBsdWdpbldpZGdldCgpOwogfQogCi12
b2lkIFBsdWdpblZpZXc6OmluaXQoKQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkK
IHsKLSAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2hh
dmVJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9
IGZhbHNlOwotCi0gICAgaWYgKCFtX3BsdWdpbikgewotICAgICAgICBBU1NFUlQobV9zdGF0dXMg
PT0gUGx1Z2luU3RhdHVzQ2FuTm90RmluZFBsdWdpbik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBpZiAoIW1fcGx1Z2luLT5sb2FkKCkpIHsKLSAgICAgICAgbV9wbHVnaW4gPSAwOwot
ICAgICAgICBtX3N0YXR1cyA9IFBsdWdpblN0YXR1c0Nhbk5vdExvYWRQbHVnaW47Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoIXN0YXJ0KCkpIHsKLSAgICAgICAgbV9zdGF0dXMg
PSBQbHVnaW5TdGF0dXNDYW5Ob3RMb2FkUGx1Z2luOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIEFTU0VSVChtX2lzU3RhcnRlZCk7CisgICAgQVNTRVJUKG1fc3RhdHVzID09IFBsdWdpblN0
YXR1c0xvYWRlZFN1Y2Nlc3NmdWxseSk7CiAKICAgICBpZiAobV9wbHVnaW4tPnBsdWdpbkZ1bmNz
KCktPmdldHZhbHVlKSB7CiAgICAgICAgIFBsdWdpblZpZXc6OnNldEN1cnJlbnRQbHVnaW5WaWV3
KHRoaXMpOwpAQCAtNDkwLDkgKzQ3MSw5IEBAIHZvaWQgUGx1Z2luVmlldzo6aW5pdCgpCiAgICAg
ICAgIHNldFBsYXRmb3JtV2lkZ2V0KG5ldyBQbHVnaW5Db250YWluZXJRdCh0aGlzLCBtX3BhcmVu
dEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZvcm1XaW5kb3coKSkpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1
Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQorCiAgICAgc2hvdygpOwogCiAgICAgTlBTZXRXaW5kb3dDYWxsYmFj
a1N0cnVjdCAqd3NpID0gbmV3IE5QU2V0V2luZG93Q2FsbGJhY2tTdHJ1Y3QoKTsKQEAgLTUxNSwx
MiArNDk2LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkKICAgICAgICAgc2V0TlBXaW5kb3dJ
Zk5lZWRlZCgpOwogICAgIH0KIAotICAgIG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3Vj
Y2Vzc2Z1bGx5OworICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFBsdWdpblZpZXc6OnBsYXRm
b3JtU3RhcnQoKQotewotfQotCi0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
d2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IDRlOTRmZWIuLmNmYTFlMjIgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKKysrIGIvV2ViQ29yZS9wbHVn
aW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcApAQCAtOTc1LDMyICs5NzUsNyBAQCBQbHVnaW5WaWV3
Ojp+UGx1Z2luVmlldygpCiAgICAgICAgIG1fcGx1Z2luLT51bmxvYWQoKTsKIH0KIAotdm9pZCBQ
bHVnaW5WaWV3Ojppbml0KCkKLXsKLSAgICBpZiAobV9oYXZlSW5pdGlhbGl6ZWQpCi0gICAgICAg
IHJldHVybjsKLSAgICBtX2hhdmVJbml0aWFsaXplZCA9IHRydWU7Ci0KLSAgICBpZiAoIW1fcGx1
Z2luKSB7Ci0gICAgICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQbHVnaW5TdGF0dXNDYW5Ob3RGaW5k
UGx1Z2luKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICghbV9wbHVnaW4tPmxv
YWQoKSkgewotICAgICAgICBtX3BsdWdpbiA9IDA7Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1Z2lu
U3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
ICghc3RhcnRPckFkZFRvVW5zdGFydGVkTGlzdCgpKSB7Ci0gICAgICAgIG1fc3RhdHVzID0gUGx1
Z2luU3RhdHVzQ2FuTm90TG9hZFBsdWdpbjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IG1fc3RhdHVzID0gUGx1Z2luU3RhdHVzTG9hZGVkU3VjY2Vzc2Z1bGx5OwotfQotCi12b2lkIFBs
dWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQorYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0
KCkKIHsKICAgICBBU1NFUlQobV9pc1N0YXJ0ZWQpOwogICAgIEFTU0VSVChtX3N0YXR1cyA9PSBQ
bHVnaW5TdGF0dXNMb2FkZWRTdWNjZXNzZnVsbHkpOwpAQCAtMTA0Nyw2ICsxMDIyLDggQEAgdm9p
ZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIAogICAgIGlmICghbV9wbHVnaW4tPnF1aXJr
cygpLmNvbnRhaW5zKFBsdWdpblF1aXJrRGVmZXJGaXJzdFNldFdpbmRvd0NhbGwpKQogICAgICAg
ICBzZXROUFdpbmRvd1JlY3QoZnJhbWVSZWN0KCkpOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmU=
</data>
<flag name="review"
          id="19919"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="19922"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>