<?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>30354</bug_id>
          
          <creation_ts>2009-10-14 04:36:27 -0700</creation_ts>
          <short_desc>[Qt] Plugins : QGVLauncher crashes on exit</short_desc>
          <delta_ts>2009-10-19 03:44:56 -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>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>www.cnn.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>30385</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Girish Ramakrishnan">girish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154557</commentid>
    <comment_count>0</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-14 04:36:27 -0700</bug_when>
    <thetext>When QGVLauncher is used with a site that uses plugins, it crashes on exit. e.g. QGVLauncher communitymx.com/content/source/E5141/wmodetrans.htm.

Backtrace

#0  0x00000028 in ?? ()
No symbol table info available.
#1  0xb6e043a1 in WebCore::Chrome::repaint (this=0x94be138, windowRect=@0xbffa0a3c, contentChanged=true, immediate=false, repaintContentOnly=false)
    at ../../../WebCore/page/Chrome.cpp:72
No locals.
#2  0xb6ede13c in WebCore::ScrollView::repaintContentRectangle (this=0x95e36b8, rect=@0xbffa0b84, now=false) at ../../../WebCore/platform/ScrollView.cpp:721
	visibleContent = {m_location = {m_x = 61, m_y = 58}, m_size = {m_width = 161, m_height = 81}}
#3  0xb6e4d0ba in WebCore::FrameView::repaintContentRectangle (this=0x95e36b8, r=@0xbffa0b84, immediate=false) at ../../../WebCore/page/FrameView.cpp:863
	delay = 0
	__PRETTY_FUNCTION__ = &quot;virtual void WebCore::FrameView::repaintContentRectangle(const WebCore::IntRect&amp;, bool)&quot;
#4  0xb701acf4 in WebCore::RenderView::repaintViewRectangle (this=0x94deaa4, ur=@0xbffa0b84, immediate=false)
    at ../../../WebCore/rendering/RenderView.cpp:228
	elt = (class WebCore::Element *) 0x0
#5  0xb6fcf273 in WebCore::RenderObject::repaintUsingContainer (this=0x96813bc, repaintContainer=0x94deaa4, r=@0xbffa0b84, immediate=false)
    at ../../../WebCore/rendering/RenderObject.cpp:1117
	v = (class WebCore::RenderView *) 0x94deaa4
	__PRETTY_FUNCTION__ = &quot;void WebCore::RenderObject::repaintUsingContainer(WebCore::RenderBoxModelObject*, const WebCore::IntRect&amp;, bool)&quot;
#6  0xb6fd2748 in WebCore::RenderObject::repaintRectangle (this=0x96813bc, r=@0xbffa0bc8, immediate=false)
    at ../../../WebCore/rendering/RenderObject.cpp:1163
	view = (class WebCore::RenderView *) 0x94deaa4
	dirtyRect = {m_location = {m_x = 61, m_y = 58}, m_size = {m_width = 161, m_height = 81}}
	repaintContainer = (class WebCore::RenderBoxModelObject *) 0x0
#7  0xb6f1394f in WebCore::PluginView::invalidateWindowlessPluginRect (this=0x97207d8, rect=@0xbffa0c10) at ../../../WebCore/plugins/PluginView.cpp:1178
	renderer = (class WebCore::RenderBox *) 0x96813bc
	dirtyRect = {m_location = {m_x = 50, m_y = 12}, m_size = {m_width = 161, m_height = 81}}
#8  0xb70f19da in WebCore::PluginView::invalidateRect (this=0x97207d8, rect=0xbffa0c8c) at ../../../WebCore/plugins/qt/PluginViewQt.cpp:658
	r = {m_location = {m_x = 50, m_y = 12}, m_size = {m_width = 161, m_height = 81}}
#9  0xb70ef98b in NPN_InvalidateRect (instance=0x9720930, invalidRect=0xbffa0c8c) at ../../../WebCore/plugins/npapi.cpp:124
No locals.
#10 0xb13bf7a5 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#11 0xb13c2c7c in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#12 0xb16f8052 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#13 0xb13c2ccf in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#14 0xb17447a4 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#15 0xb13d8731 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#16 0xb13c2ae3 in ?? () from /usr/lib/adobe-flashplugin/libflashplayer.so
No symbol table info available.
#17 0xb3c652b6 in g_timeout_dispatch (source=0x9461240, callback=0xbffa0980, user_data=0xb01ec000) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:3253
No locals.
#18 0xb3c64b88 in IA__g_main_context_dispatch (context=0x9427490) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:1814
No locals.
#19 0xb3c680eb in g_main_context_iterate (context=0x9427490, block=1, dispatch=1, self=0x9424e78) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:2448
	max_priority = 0
	timeout = 0
	some_ready = 1
	nfds = 12
	allocated_nfds = &lt;value optimized out&gt;
	fds = (GPollFD *) 0x9711cc8
	__PRETTY_FUNCTION__ = &quot;g_main_context_iterate&quot;
#20 0xb3c68268 in IA__g_main_context_iteration (context=0x9427490, may_block=1) at /build/buildd/glib2.0-2.20.1/glib/gmain.c:2511
	retval = &lt;value optimized out&gt;
#21 0xb4899ef4 in QEventDispatcherGlib::processEvents (this=0x94251f8, flags={i = -1074130812})
    at /home/girish/Qt/qt-git/src/corelib/kernel/qeventdispatcher_glib.cpp:328
	d = (QEventDispatcherGlibPrivate * const) 0x9425208
	canWait = true
	savedFlags = {i = 0}
	result = 250
#22 0xb4c036ea in QGuiEventDispatcherGlib::processEvents (this=0x94251f8, flags={i = -1074130764})
    at /home/girish/Qt/qt-git/src/gui/kernel/qguieventdispatcher_glib.cpp:202
	d = (QGuiEventDispatcherGlibPrivate * const) 0x9425208
	saved_flags = {i = 0}
	returnValue = 191
#23 0xb485be36 in QEventLoop::processEvents (this=0xbffa1158, flags={i = -1074130680}) at /home/girish/Qt/qt-git/src/corelib/kernel/qeventloop.cpp:149
	d = (QEventLoopPrivate * const) 0x94eca88
#24 0xb485c0a8 in QEventLoop::exec (this=0xbffa1158, flags={i = -1074130592}) at /home/girish/Qt/qt-git/src/corelib/kernel/qeventloop.cpp:201
	d = (QEventLoopPrivate * const) 0x94eca88
	app = (class QCoreApplication *) 0xbffa11d4
	eventLoop = (class QEventLoop *) 0xb46cffe4
---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
#25 0xb486044f in QCoreApplication::exec () at /home/girish/Qt/qt-git/src/corelib/kernel/qcoreapplication.cpp:976
	threadData = (QThreadData *) 0x941ee88
	eventLoop = {&lt;QObject&gt; = {_vptr.QObject = 0xb49aa448, d_ptr = {d = 0x94eca88}}, }
	returnCode = -1208387152
#26 0xb4b2a1e0 in QApplication::exec () at /home/girish/Qt/qt-git/src/gui/kernel/qapplication.cpp:3564
No locals.
#27 0x0804e6e5 in main (argc=Cannot access memory at address 0x28
) at /home/girish/WebKit/WebKit/qt/QGVLauncher/main.cpp:334
	app = {&lt;QCoreApplication&gt; = {&lt;QObject&gt; = {_vptr.QObject = 0xb5604448, d_ptr = {d = 0x941eda0}}, }, }
	url = {d = 0x948fb98}
	args = {&lt;QList&lt;QString&gt;&gt; = {{p = {d = 0x9473520}, d = 0x9473520}}, &lt;No data fields&gt;}
	window = (MainWindow *) 0x94738f8</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154560</commentid>
    <comment_count>1</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-10-14 05:22:29 -0700</bug_when>
    <thetext>girish, could you please fill the &quot;URL&quot; field w/ a known crashing url ..

i have a fix for it, i believe. it works here, implementing an auto tests now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154772</commentid>
    <comment_count>2</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-15 05:57:22 -0700</bug_when>
    <thetext>This is sort of related to 30385. This bug deals with the case where the page has plugins.

The problem is that when the view dies, it takes the platformPluginWidget along with it. But the page is still *alive* and hence PluginView is still alive. So, the problem is that the platformPluginWidget pointer in PluginView is stale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155079</commentid>
    <comment_count>3</comment_count>
      <attachid>41284</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-16 06:27:02 -0700</bug_when>
    <thetext>Created attachment 41284
Patch so far

Identifies one of the problems. The test works. But there is still a bad
pointer somewhere (qgvlauncher still crashes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155463</commentid>
    <comment_count>4</comment_count>
      <attachid>41374</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-18 00:58:21 -0700</bug_when>
    <thetext>Created attachment 41374
Various fixes

Fixes various sources of crashes.

1. This commit depends on the resource file (test.swf) that will get added as part of https://bugs.webkit.org/show_bug.cgi?id=30380.
2. The crash is fixed because the page now gets deleted as a part of r49730. QtWebKit crashes if page is not deleted :/ I have opened  30490 to track this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155466</commentid>
    <comment_count>5</comment_count>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2009-10-18 04:01:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=41374) [details]
&gt; Various fixes
&gt; 
&gt; Fixes various sources of crashes.
&gt; 
&gt; 1. This commit depends on the resource file (test.swf) that will get added as
&gt; part of https://bugs.webkit.org/show_bug.cgi?id=30380.
&gt; 2. The crash is fixed because the page now gets deleted as a part of r49730.
&gt; QtWebKit crashes if page is not deleted :/ I have opened  30490 to track this.

-    if (d-&gt;page)
+    if (d-&gt;page) {
         d-&gt;page-&gt;d-&gt;view = 0;
+        d-&gt;page-&gt;d-&gt;client = 0;
+    }

this has landed already, girish.

great autotests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155481</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-10-18 08:51:52 -0700</bug_when>
    <thetext>+        In addition, setFrameRect()/updatePluginWidget() is called even if the
+        plugin was not succesfully loaded. So, a status check is added to 
+        setNPWindowIfNeeded.

Maybe it makes more sense adding the (m_status != PluginStatusLoadedSuccessfully) there then? Currently with your patch it is not obvious why you have that test.

you could make it a separate &apos;if&apos; and add a comment explaining why that is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155562</commentid>
    <comment_count>7</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-18 22:08:04 -0700</bug_when>
    <thetext>&gt; 
&gt; -    if (d-&gt;page)
&gt; +    if (d-&gt;page) {
&gt;          d-&gt;page-&gt;d-&gt;view = 0;
&gt; +        d-&gt;page-&gt;d-&gt;client = 0;
&gt; +    }
&gt; 
&gt; this has landed already, girish.

Nope, not that I can see (till r49764). The change was only made to qgraphicswebview destructor but not to qwebview (my change is in qwebview).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155563</commentid>
    <comment_count>8</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-18 22:10:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; +        In addition, setFrameRect()/updatePluginWidget() is called even if the
&gt; +        plugin was not succesfully loaded. So, a status check is added to 
&gt; +        setNPWindowIfNeeded.
&gt; 
&gt; Maybe it makes more sense adding the (m_status !=
&gt; PluginStatusLoadedSuccessfully) there then? Currently with your patch it is not
&gt; obvious why you have that test.
&gt; 
&gt; you could make it a separate &apos;if&apos; and add a comment explaining why that is
&gt; done.

Looks like you interchanged comments. This comment is meant for #30380 :-). I will reply on that task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155608</commentid>
    <comment_count>9</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-19 00:50:53 -0700</bug_when>
    <thetext>From https://bugs.webkit.org/show_bug.cgi?id=30380#c8.

(In reply to comment #8)
&gt; Maybe it makes sense making a manual-test as well, so that other ports as GTK
&gt; can use it as well.
&gt; 
&gt; There is already a directory manual-tests somewhere with subdirs qt and gtk.
&gt; Maybe we should add a linux subdir instead and put all plugin manual tests
&gt; there?

Good idea for adding a manual-test! In fact, I already have a bunch of html fields that I have used for testing. I will clean them up. I have created https://bugs.webkit.org/show_bug.cgi?id=30503 since I had lots of ideas for it. Please comment there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155624</commentid>
    <comment_count>10</comment_count>
      <attachid>41374</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-19 02:54:08 -0700</bug_when>
    <thetext>Comment on attachment 41374
Various fixes


&gt;  QWebView::~QWebView()
&gt;  {
&gt; -    if (d-&gt;page)
&gt; +    if (d-&gt;page) {
&gt;          d-&gt;page-&gt;d-&gt;view = 0;
&gt; +        d-&gt;page-&gt;d-&gt;client = 0;
&gt; +    }

As discussed on IRC this might have a bad side effect if someone is doing.

view1-&gt;setPage(page)
view2-&gt;setPage(page)
delete view1;

but we want to solve it by adding a warning to QWebView::setPage.


&gt; +    if (html.contains(&quot;&lt;/embed&gt;&quot;)) {
&gt; +        QTest::qWait(2000); // some reasonable time for the PluginStream to feed test.swf to flash
&gt; +    }

I fear our coding style guidelines wants you to omit the curly braces here. This needs to be fixed when landing. In general it would be nice if we could wait for things like QEvent::UpdateRequest, QEvent::ShowEvent instead of the qWait but in practive we can not. It is making the test a bit fragile but I see it is the best we can do right now.

I&apos;m leaving the commit-queue to &quot;?&quot; as this test wants a resource introduced by another patch and the patch needs a tweak.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155630</commentid>
    <comment_count>11</comment_count>
      <attachid>41409</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-10-19 03:16:25 -0700</bug_when>
    <thetext>Created attachment 41409
Various fixes (2)

Incorp. holger&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155631</commentid>
    <comment_count>12</comment_count>
      <attachid>41409</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-10-19 03:34:02 -0700</bug_when>
    <thetext>Comment on attachment 41409
Various fixes (2)

r=me. The swf file will be there with the other commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155636</commentid>
    <comment_count>13</comment_count>
      <attachid>41409</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 03:44:51 -0700</bug_when>
    <thetext>Comment on attachment 41409
Various fixes (2)

Clearing flags on attachment: 41409

Committed r49770: &lt;http://trac.webkit.org/changeset/49770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155637</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-19 03:44:56 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41284</attachid>
            <date>2009-10-16 06:27:02 -0700</date>
            <delta_ts>2009-10-18 00:58:21 -0700</delta_ts>
            <desc>Patch so far</desc>
            <filename>foo</filename>
            <type>text/plain</type>
            <size>5081</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGFjOWI2NGIxODA2MmVkYjZmMDBhNDBjMmYzYTg4NjEzZmNlZTdhYzEKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgRnJpIE9j
dCAxNiAxNjowNjozMCAyMDA5ICswNTMwCgogICAgW1F0XSBXaW5kb3dlZCBQbHVnaW5zOiBGaXgg
Y3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3LgogICAgCiAgICBU
aGUgUGx1Z2luQ29udGFpbmVyIGlzIGEgY2hpbGQgb2YgUVdlYlZpZXcuIFdoZW4gdGhlIHZpZXcg
Z2V0cyBkZWxldGVkLAogICAgdGhlIFBsdWdpblZpZXcgaXMgbm90IG5vdGlmaWVkIGFib3V0IHRo
ZSBkZWxldGlvbiBvZiBQbHVnaW5Db250YWluZXIuCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkZmExZTZmLi5hNzg0NTI3IDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDA5LTEwLTE2ICBHaXJpc2ggUmFtYWtyaXNobmFuICA8Z2lyaXNoQGZvcndhcmRi
aWFzLmluPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gV2luZG93ZWQgUGx1Z2luczogRml4IGNyYXNoIHdoZW4gUVdlYlBhZ2UgaXMgZGVsZXRl
ZCBhZnRlciBRV2ViVmlldy4KKyAgICAgICAgCisgICAgICAgIFRoZSBQbHVnaW5Db250YWluZXIg
aXMgYSBjaGlsZCBvZiBRV2ViVmlldy4gV2hlbiB0aGUgdmlldyBnZXRzIGRlbGV0ZWQsCisgICAg
ICAgIHRoZSBQbHVnaW5WaWV3IGlzIG5vdCBub3RpZmllZCBhYm91dCB0aGUgZGVsZXRpb24gb2Yg
UGx1Z2luQ29udGFpbmVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDM1NAorCisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJR
dC5jcHA6CisgICAgICAgIChQbHVnaW5Db250YWluZXJRdDo6flBsdWdpbkNvbnRhaW5lclF0KToK
KwogMjAwOS0xMC0xNSAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlhcy5p
bj4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAgYi9XZWJDb3JlL3BsdWdpbnMv
cXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCmluZGV4IDU5YWI1YmMuLmNiODk0YTcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpbkNvbnRhaW5lclF0LmNwcApAQCAtNzMsNiArNzMsNyBAQCBQbHVn
aW5Db250YWluZXJRdDo6UGx1Z2luQ29udGFpbmVyUXQoUGx1Z2luVmlldyogdmlldywgUVdpZGdl
dCogcGFyZW50KQogUGx1Z2luQ29udGFpbmVyUXQ6On5QbHVnaW5Db250YWluZXJRdCgpCiB7CiAg
ICAgZGVsZXRlIG1fY2xpZW50V3JhcHBlcjsKKyAgICBtX3BsdWdpblZpZXctPnNldFBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KDApOwogfQogCiB2b2lkIFBsdWdpbkNvbnRhaW5lclF0Ojpvbl9jbGllbnRD
bG9zZWQoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggZDNlMDY0NC4uNzZmNDhiOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5n
ZUxvZworKysgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMDktMTAt
MTYgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaW5kb3dlZCBQ
bHVnaW5zOiBGaXggY3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3
LgorICAgICAgICAKKyAgICAgICAgVGhlIFBsdWdpbkNvbnRhaW5lciBpcyBhIGNoaWxkIG9mIFFX
ZWJWaWV3LiBXaGVuIHRoZSB2aWV3IGdldHMgZGVsZXRlZCwKKyAgICAgICAgdGhlIFBsdWdpblZp
ZXcgaXMgbm90IG5vdGlmaWVkIGFib3V0IHRoZSBkZWxldGlvbiBvZiBQbHVnaW5Db250YWluZXIu
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMzU0
CisKKyAgICAgICAgKiB0ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm86CisgICAgICAgICogdGVz
dHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6ZGVs
ZXRlUGFnZUFmdGVyVmlld19kYXRhKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6ZGVsZXRlUGFn
ZUFmdGVyVmlldyk6CisKIDIwMDktMTAtMTUgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hA
Zm9yd2FyZGJpYXMuaW4+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvcXdlYnZpZXcucHJvIGIvV2ViS2l0
L3F0L3Rlc3RzL3F3ZWJ2aWV3L3F3ZWJ2aWV3LnBybwppbmRleCBkOWQxMjJjLi5iYmE3YzM5IDEw
MDY0NAotLS0gYS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvcXdlYnZpZXcucHJvCisrKyBiL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm8KQEAgLTQsNSArNCw2IEBAIGluY2x1
ZGUoLi4vLi4vLi4vLi4vV2ViS2l0LnByaSkKIFNPVVJDRVMgICs9IHRzdF9xd2Vidmlldy5jcHAK
IFFUICs9IHRlc3RsaWIgbmV0d29yawogUU1BS0VfUlBBVEhESVIgPSAkJE9VVFBVVF9ESVIvbGli
ICQkUU1BS0VfUlBBVEhESVIKK0RFRklORVMgKz0gU1JDRElSPVxcXCIkJFBXRC9cXFwiCiAKIHN5
bWJpYW46VEFSR0VULlVJRDMgPSAweEEwMDBFNTNGCmRpZmYgLS1naXQgYS9XZWJLaXQvcXQvdGVz
dHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcCBiL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90
c3RfcXdlYnZpZXcuY3BwCmluZGV4IDAxZDBlOTIuLjQ5ODMyM2UgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCisrKyBiL1dlYktpdC9xdC90ZXN0
cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSA8
cW5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8cWRpcml0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8
cXdlYmtpdHZlcnNpb24uaD4KKyNpbmNsdWRlIDxxd2ViZnJhbWUuaD4KIAogY2xhc3MgdHN0X1FX
ZWJWaWV3IDogcHVibGljIFFPYmplY3QKIHsKQEAgLTQyLDYgKzQzLDkgQEAgcHJpdmF0ZSBzbG90
czoKICAgICB2b2lkIGd1ZXNzVXJsRnJvbVN0cmluZ19kYXRhKCk7CiAgICAgdm9pZCBndWVzc1Vy
bEZyb21TdHJpbmcoKTsKICAgICB2b2lkIGdldFdlYktpdFZlcnNpb24oKTsKKworICAgIHZvaWQg
ZGVsZXRlUGFnZUFmdGVyVmlld19kYXRhKCk7CisgICAgdm9pZCBkZWxldGVQYWdlQWZ0ZXJWaWV3
KCk7CiB9OwogCiAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBm
dW5jdGlvbiBpcyBleGVjdXRlZC4KQEAgLTE2Nyw2ICsxNzEsMzggQEAgdm9pZCB0c3RfUVdlYlZp
ZXc6OmdldFdlYktpdFZlcnNpb24oKQogICAgIFFWRVJJRlkocVdlYktpdFZlcnNpb24oKS50b0Rv
dWJsZSgpID4gMCk7CiB9CiAKK3ZvaWQgdHN0X1FXZWJWaWV3OjpkZWxldGVQYWdlQWZ0ZXJWaWV3
X2RhdGEoKQoreworICAgIFFEaXIgcmVzb3VyY2VEaXIoUURpcjo6ZnJvbU5hdGl2ZVNlcGFyYXRv
cnMoU1JDRElSKSArICIuLi9yZXNvdXJjZXMvIik7CisgICAgcmVzb3VyY2VEaXIubWFrZUFic29s
dXRlKCk7CisgICAgY29uc3QgUVN0cmluZyBmbGFzaFBhdGggPSByZXNvdXJjZURpci5hYnNvbHV0
ZUZpbGVQYXRoKCJ0ZXN0LnN3ZiIpOworICAgIGNvbnN0IFFTdHJpbmcgZmxhc2hVcmwgPSBRU3Ry
aW5nKCJmaWxlOi8vJTEiKS5hcmcoZmxhc2hQYXRoKTsKKworICAgIFFUZXN0OjphZGRDb2x1bW48
UVN0cmluZz4oImh0bWwiKTsKKyAgICBRVGVzdDo6bmV3Um93KCJXaXRob3V0UGx1Z2luIikgPDwg
IjxodG1sPjxib2R5IGlkPSdiJz50ZXh0PC9ib2R5PjwvaHRtbD4iOworICAgIFFUZXN0OjpuZXdS
b3coIldpbmRvd2VkUGx1Z2luIikgPDwgUVN0cmluZygiPGh0bWw+PGJvZHkgaWQ9J2InPnRleHQ8
ZW1iZWQgc3JjPVwiJTFcIj48L2VtYmVkPjwvYm9keT48L2h0bWw+IikuYXJnKGZsYXNoVXJsKTsK
KyAgICBRVGVzdDo6bmV3Um93KCJXaW5kb3dsZXNzUGx1Z2luIikgPDwgUVN0cmluZygiPGh0bWw+
PGJvZHkgaWQ9J2InPnRleHQ8ZW1iZWQgc3JjPVwiJTFcIiB3bW9kZT1cInRyYW5zcGFyZW50XCI+
PC9lbWJlZD48L2JvZHk+PC9odG1sPiIpLmFyZyhmbGFzaFVybCk7Cit9CisKK3ZvaWQgdHN0X1FX
ZWJWaWV3OjpkZWxldGVQYWdlQWZ0ZXJWaWV3KCkKK3sKKyAgICBRRkVUQ0goUVN0cmluZywgaHRt
bCk7CisgICAgUVdlYlZpZXcqIHZpZXcxID0gbmV3IFFXZWJWaWV3OworICAgIFFQb2ludGVyPFFX
ZWJQYWdlPiBwYWdlID0gbmV3IFFXZWJQYWdlOworICAgIHZpZXcxLT5zZXRQYWdlKHBhZ2UpOwor
ICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldEF0dHJpYnV0ZShRV2ViU2V0dGluZ3M6OlBsdWdpbnNF
bmFibGVkLCB0cnVlKTsKKyAgICBRV2ViRnJhbWUqIG1haW5GcmFtZSA9IHBhZ2UtPm1haW5GcmFt
ZSgpOworICAgIG1haW5GcmFtZS0+c2V0SHRtbChodG1sKTsKKyAgICBpZiAoaHRtbC5jb250YWlu
cygiPC9lbWJlZD4iKSkgeworICAgICAgICBRVGVzdDo6cVdhaXQoMjAwMCk7IC8vIHNvbWUgcmVh
c29uYWJsZSB0aW1lIGZvciB0aGUgUGx1Z2luU3RyZWFtIHRvIGZlZWQgdGVzdC5zd2YgdG8gZmxh
c2gKKyAgICB9CisKKyAgICBkZWxldGUgdmlldzE7CisgICAgUVZFUklGWShwYWdlICE9IDApOyAv
LyBkZWxldGluZyB2aWV3IG11c3Qgbm90IGhhdmUgZGVsZXRlZCB0aGUgcGFnZSwgc2luY2UgaXQn
cyBub3QgYSBjaGlsZCBvZiB2aWV3CisKKyAgICBkZWxldGUgcGFnZTsgLy8gbXVzdCBub3QgY3Jh
c2gKK30KKwogUVRFU1RfTUFJTih0c3RfUVdlYlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3
Lm1vYyIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41374</attachid>
            <date>2009-10-18 00:58:21 -0700</date>
            <delta_ts>2009-10-19 03:16:25 -0700</delta_ts>
            <desc>Various fixes</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>7601</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDYyZDNjYmM5N2JhZTAyZThjMTcwZDU2YzljY2Y5NjM1NTFjNGYyMTAKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgU3VuIE9j
dCAxOCAxMjo0NjozOSAyMDA5ICswNTMwCgogICAgW1F0XSBXaW5kb3dlZCBQbHVnaW5zOiBGaXgg
Y3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3LgogICAgCiAgICBG
aXhlcyB2YXJpb3VzIHNvdXJjZXMgb2YgY3Jhc2hlczoKICAgIDEuIFRoZSBQbHVnaW5Db250YWlu
ZXIgaXMgYSBjaGlsZCBvZiBRV2ViVmlldy4gV2hlbiB0aGUgdmlldyBnZXRzIGRlbGV0ZWQsCiAg
ICB0aGUgUGx1Z2luVmlldyBpcyBub3Qgbm90aWZpZWQgYWJvdXQgdGhlIGRlbGV0aW9uIG9mIFBs
dWdpbkNvbnRhaW5lci4KICAgIDIuIFFXZWJWaWV3IGRlc3RydWN0b3IgZG9lcyBub3Qgc2V0IGNs
aWVudCB0byAwLgogICAgMy4gU29tZXRpbWVzIHBlbmRpbmcgcGFpbnQgZXZlbnRzIGFyZSBzZW50
IGFmdGVyIHRoZSBwbHVnaW4gaGFzIGRpZWQsIHNvIGFkZAogICAgICAgYSBjaGVjayBpbiBQbHVn
aW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE2Nzk3Ni4uZjkxMGI3ZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAwOS0xMC0xOCAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlh
cy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
UXRdIFdpbmRvd2VkIFBsdWdpbnM6IEZpeCBjcmFzaCB3aGVuIFFXZWJQYWdlIGlzIGRlbGV0ZWQg
YWZ0ZXIgUVdlYlZpZXcuCisgICAgICAgIAorICAgICAgICBGaXhlcyB2YXJpb3VzIHNvdXJjZXMg
b2YgY3Jhc2hlczoKKyAgICAgICAgMS4gVGhlIFBsdWdpbkNvbnRhaW5lciBpcyBhIGNoaWxkIG9m
IFFXZWJWaWV3LiBXaGVuIHRoZSB2aWV3IGdldHMgZGVsZXRlZCwKKyAgICAgICAgdGhlIFBsdWdp
blZpZXcgaXMgbm90IG5vdGlmaWVkIGFib3V0IHRoZSBkZWxldGlvbiBvZiBQbHVnaW5Db250YWlu
ZXIuCisgICAgICAgIDIuIFFXZWJWaWV3IGRlc3RydWN0b3IgZG9lcyBub3Qgc2V0IGNsaWVudCB0
byAwLgorICAgICAgICAzLiBTb21ldGltZXMgcGVuZGluZyBwYWludCBldmVudHMgYXJlIHNlbnQg
YWZ0ZXIgdGhlIHBsdWdpbiBoYXMgZGllZCwgc28gYWRkCisgICAgICAgIGEgY2hlY2sgaW4gUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAzNTQKKworICAgICAgICAqIHBsdWdpbnMvcXQvUGx1
Z2luQ29udGFpbmVyUXQuY3BwOgorICAgICAgICAoUGx1Z2luQ29udGFpbmVyUXQ6On5QbHVnaW5D
b250YWluZXJRdCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisKIDIwMDkt
MTAtMTUgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
dWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
bkNvbnRhaW5lclF0LmNwcAppbmRleCA1OWFiNWJjLi5jYjg5NGE3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKQEAgLTczLDYgKzczLDcgQEAgUGx1Z2luQ29udGFp
bmVyUXQ6OlBsdWdpbkNvbnRhaW5lclF0KFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQqIHBhcmVu
dCkKIFBsdWdpbkNvbnRhaW5lclF0Ojp+UGx1Z2luQ29udGFpbmVyUXQoKQogewogICAgIGRlbGV0
ZSBtX2NsaWVudFdyYXBwZXI7CisgICAgbV9wbHVnaW5WaWV3LT5zZXRQbGF0Zm9ybVBsdWdpbldp
ZGdldCgwKTsKIH0KIAogdm9pZCBQbHVnaW5Db250YWluZXJRdDo6b25fY2xpZW50Q2xvc2VkKCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggMWIzYzc4ZS4uYjA0ZGIzNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTQ2MiwxMiArNDYyLDE1IEBAIHZvaWQg
UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgaWYgKG1fbW9kZSAhPSBOUF9G
VUxMICYmIG1fbW9kZSAhPSBOUF9FTUJFRCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gQ2hl
Y2sgaWYgdGhlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0IHN0aWxsIGV4aXN0cworICAgIGlmIChtX2lz
V2luZG93ZWQgJiYgIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGlmICghbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKICAg
ICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IGZhbHNlOwogCiAgICAgaWYgKG1faXNXaW5k
b3dlZCkgewotICAgICAgICBBU1NFUlQocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CiAgICAgICAg
IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPnNldEdlb21ldHJ5KG1fd2luZG93UmVjdCk7CiAgICAg
ICAgIC8vIGlmIHNldE1hc2sgaXMgc2V0IHdpdGggYW4gZW1wdHkgUVJlZ2lvbiwgbm8gY2xpcHBp
bmcgd2lsbAogICAgICAgICAvLyBiZSBwZXJmb3JtZWQsIHNvIGluIHRoYXQgY2FzZSB3ZSBoaWRl
IHRoZSBwbHVnaW4gdmlldwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAg
Yi9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAppbmRleCBiOTAwNDYyLi5mN2NhYTk0IDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcApAQCAtMjQ1LDggKzI0NSwxMCBAQCBRV2ViVmlldzo6UVdlYlZpZXcoUVdpZGdl
dCAqcGFyZW50KQogKi8KIFFXZWJWaWV3Ojp+UVdlYlZpZXcoKQogewotICAgIGlmIChkLT5wYWdl
KQorICAgIGlmIChkLT5wYWdlKSB7CiAgICAgICAgIGQtPnBhZ2UtPmQtPnZpZXcgPSAwOworICAg
ICAgICBkLT5wYWdlLT5kLT5jbGllbnQgPSAwOworICAgIH0KIAogICAgIGlmIChkLT5wYWdlICYm
IGQtPnBhZ2UtPnBhcmVudCgpID09IHRoaXMpCiAgICAgICAgIGRlbGV0ZSBkLT5wYWdlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
Mjg5MTdiYS4uYTY5MGUyNSAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMTggIEdpcmlzaCBS
YW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaW5kb3dlZCBQbHVnaW5zOiBGaXgg
Y3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3LgorICAgICAgICAK
KyAgICAgICAgRml4ZXMgdmFyaW91cyBzb3VyY2VzIG9mIGNyYXNoZXM6CisgICAgICAgIDEuIFRo
ZSBQbHVnaW5Db250YWluZXIgaXMgYSBjaGlsZCBvZiBRV2ViVmlldy4gV2hlbiB0aGUgdmlldyBn
ZXRzIGRlbGV0ZWQsCisgICAgICAgIHRoZSBQbHVnaW5WaWV3IGlzIG5vdCBub3RpZmllZCBhYm91
dCB0aGUgZGVsZXRpb24gb2YgUGx1Z2luQ29udGFpbmVyLgorICAgICAgICAyLiBRV2ViVmlldyBk
ZXN0cnVjdG9yIGRvZXMgbm90IHNldCBjbGllbnQgdG8gMC4KKyAgICAgICAgMy4gU29tZXRpbWVz
IHBlbmRpbmcgcGFpbnQgZXZlbnRzIGFyZSBzZW50IGFmdGVyIHRoZSBwbHVnaW4gaGFzIGRpZWQs
IHNvIGFkZAorICAgICAgICBhIGNoZWNrIGluIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVk
ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMw
MzU0CisKKyAgICAgICAgKiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZpZXc6On5R
V2ViVmlldyk6CisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvcXdlYnZpZXcucHJvOgorICAgICAg
ICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHA6CisgICAgICAgICh0c3RfUVdlYlZp
ZXc6OnJldXNlUGFnZV9kYXRhKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6cmV1c2VQYWdlKToK
KwogMjAwOS0xMC0xNSAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlhcy5p
bj4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm8gYi9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvcXdlYnZpZXcucHJvCmluZGV4IGQ5ZDEyMmMuLmJiYTdjMzkgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm8KKysrIGIvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJ2aWV3L3F3ZWJ2aWV3LnBybwpAQCAtNCw1ICs0LDYgQEAgaW5jbHVkZSguLi8uLi8uLi8u
Li9XZWJLaXQucHJpKQogU09VUkNFUyAgKz0gdHN0X3F3ZWJ2aWV3LmNwcAogUVQgKz0gdGVzdGxp
YiBuZXR3b3JrCiBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9saWIgJCRRTUFLRV9SUEFU
SERJUgorREVGSU5FUyArPSBTUkNESVI9XFxcIiQkUFdEL1xcXCIKIAogc3ltYmlhbjpUQVJHRVQu
VUlEMyA9IDB4QTAwMEU1M0YKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90
c3RfcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5j
cHAKaW5kZXggMDFkMGU5Mi4uNzA0MzVlOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3Rz
dF9xd2Vidmlldy5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
OSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkg
R2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yNiw2ICsyNyw3IEBACiAjaW5jbHVkZSA8cW5ldHdvcmtyZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8cWRpcml0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KKyNp
bmNsdWRlIDxxd2ViZnJhbWUuaD4KIAogY2xhc3MgdHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmpl
Y3QKIHsKQEAgLTQyLDYgKzQ0LDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGd1ZXNzVXJs
RnJvbVN0cmluZ19kYXRhKCk7CiAgICAgdm9pZCBndWVzc1VybEZyb21TdHJpbmcoKTsKICAgICB2
b2lkIGdldFdlYktpdFZlcnNpb24oKTsKKworICAgIHZvaWQgcmV1c2VQYWdlX2RhdGEoKTsKKyAg
ICB2b2lkIHJldXNlUGFnZSgpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUg
dGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0xNjcsNiArMTcyLDQ1IEBA
IHZvaWQgdHN0X1FXZWJWaWV3OjpnZXRXZWJLaXRWZXJzaW9uKCkKICAgICBRVkVSSUZZKHFXZWJL
aXRWZXJzaW9uKCkudG9Eb3VibGUoKSA+IDApOwogfQogCit2b2lkIHRzdF9RV2ViVmlldzo6cmV1
c2VQYWdlX2RhdGEoKQoreworICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImh0bWwiKTsK
KyAgICBRVGVzdDo6bmV3Um93KCJXaXRob3V0UGx1Z2luIikgPDwgIjxodG1sPjxib2R5IGlkPSdi
Jz50ZXh0PC9ib2R5PjwvaHRtbD4iOworICAgIFFUZXN0OjpuZXdSb3coIldpbmRvd2VkUGx1Z2lu
IikgPDwgUVN0cmluZygiPGh0bWw+PGJvZHkgaWQ9J2InPnRleHQ8ZW1iZWQgc3JjPSdyZXNvdXJj
ZXMvdGVzdC5zd2YnPjwvZW1iZWQ+PC9ib2R5PjwvaHRtbD4iKTsKKyAgICBRVGVzdDo6bmV3Um93
KCJXaW5kb3dsZXNzUGx1Z2luIikgPDwgUVN0cmluZygiPGh0bWw+PGJvZHkgaWQ9J2InPnRleHQ8
ZW1iZWQgc3JjPSdyZXNvdXJjZXMvdGVzdC5zd2YnIHdtb2RlPVwidHJhbnNwYXJlbnRcIj48L2Vt
YmVkPjwvYm9keT48L2h0bWw+Iik7Cit9CisKK3ZvaWQgdHN0X1FXZWJWaWV3OjpyZXVzZVBhZ2Uo
KQoreworICAgIFFEaXI6OnNldEN1cnJlbnQoU1JDRElSKTsKKworICAgIFFGRVRDSChRU3RyaW5n
LCBodG1sKTsKKyAgICBRV2ViVmlldyogdmlldzEgPSBuZXcgUVdlYlZpZXc7CisgICAgUVBvaW50
ZXI8UVdlYlBhZ2U+IHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CisgICAgdmlldzEtPnNldFBhZ2UocGFn
ZSk7CisgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1
Z2luc0VuYWJsZWQsIHRydWUpOworICAgIFFXZWJGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFp
bkZyYW1lKCk7CisgICAgbWFpbkZyYW1lLT5zZXRIdG1sKGh0bWwsIFFVcmw6OmZyb21Mb2NhbEZp
bGUoUURpcjo6Y3VycmVudFBhdGgoKSkpOworICAgIGlmIChodG1sLmNvbnRhaW5zKCI8L2VtYmVk
PiIpKSB7CisgICAgICAgIFFUZXN0OjpxV2FpdCgyMDAwKTsgLy8gc29tZSByZWFzb25hYmxlIHRp
bWUgZm9yIHRoZSBQbHVnaW5TdHJlYW0gdG8gZmVlZCB0ZXN0LnN3ZiB0byBmbGFzaAorICAgIH0K
KworICAgIHZpZXcxLT5zaG93KCk7CisgICAgUVRlc3Q6OnFXYWl0KDIwMDApOworICAgIGRlbGV0
ZSB2aWV3MTsKKyAgICBRVkVSSUZZKHBhZ2UgIT0gMCk7IC8vIGRlbGV0aW5nIHZpZXcgbXVzdCBu
b3QgaGF2ZSBkZWxldGVkIHRoZSBwYWdlLCBzaW5jZSBpdCdzIG5vdCBhIGNoaWxkIG9mIHZpZXcK
KworICAgIFFXZWJWaWV3ICp2aWV3MiA9IG5ldyBRV2ViVmlldzsKKyAgICB2aWV3Mi0+c2V0UGFn
ZShwYWdlKTsKKyAgICB2aWV3Mi0+c2hvdygpOyAvLyBpbiBXaW5kb3dsZXNzIG1vZGUsIHlvdSBz
aG91bGQgc3RpbGwgYmUgYWJsZSB0byBzZWUgdGhlIHBsdWdpbiBoZXJlCisgICAgUVRlc3Q6OnFX
YWl0KDIwMDApOworICAgIGRlbGV0ZSB2aWV3MjsKKworICAgIGRlbGV0ZSBwYWdlOyAvLyBtdXN0
IG5vdCBjcmFzaAorCisgICAgUURpcjo6c2V0Q3VycmVudChRQXBwbGljYXRpb246OmFwcGxpY2F0
aW9uRGlyUGF0aCgpKTsKK30KKwogUVRFU1RfTUFJTih0c3RfUVdlYlZpZXcpCiAjaW5jbHVkZSAi
dHN0X3F3ZWJ2aWV3Lm1vYyIKIAo=
</data>
<flag name="review"
          id="22748"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41409</attachid>
            <date>2009-10-19 03:16:25 -0700</date>
            <delta_ts>2009-10-19 03:44:51 -0700</delta_ts>
            <desc>Various fixes (2)</desc>
            <filename>foo</filename>
            <type>text/plain</type>
            <size>7629</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGFjYjNmMDdhZDFhZTJkYjY2NTY1Y2MyNTU1MDlkYzkwZjI5MDNlMDcKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CkRhdGU6ICAgTW9uIE9j
dCAxOSAxNTo0MjowMSAyMDA5ICswNTMwCgogICAgW1F0XSBXaW5kb3dlZCBQbHVnaW5zOiBGaXgg
Y3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3LgogICAgCiAgICBG
aXhlcyB2YXJpb3VzIHNvdXJjZXMgb2YgY3Jhc2hlczoKICAgIDEuIFRoZSBQbHVnaW5Db250YWlu
ZXIgaXMgYSBjaGlsZCBvZiBRV2ViVmlldy4gV2hlbiB0aGUgdmlldyBnZXRzIGRlbGV0ZWQsCiAg
ICB0aGUgUGx1Z2luVmlldyBpcyBub3Qgbm90aWZpZWQgYWJvdXQgdGhlIGRlbGV0aW9uIG9mIFBs
dWdpbkNvbnRhaW5lci4KICAgIDIuIFFXZWJWaWV3IGRlc3RydWN0b3IgZG9lcyBub3Qgc2V0IGNs
aWVudCB0byAwLgogICAgMy4gU29tZXRpbWVzIHBlbmRpbmcgcGFpbnQgZXZlbnRzIGFyZSBzZW50
IGFmdGVyIHRoZSBwbHVnaW4gaGFzIGRpZWQsIHNvIGFkZAogICAgICAgYSBjaGVjayBpbiBQbHVn
aW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjY2ODQ4Ni4uZDlkNWU3NCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAwOS0xMC0xOCAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlh
cy5pbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
UXRdIFdpbmRvd2VkIFBsdWdpbnM6IEZpeCBjcmFzaCB3aGVuIFFXZWJQYWdlIGlzIGRlbGV0ZWQg
YWZ0ZXIgUVdlYlZpZXcuCisgICAgICAgIAorICAgICAgICBGaXhlcyB2YXJpb3VzIHNvdXJjZXMg
b2YgY3Jhc2hlczoKKyAgICAgICAgMS4gVGhlIFBsdWdpbkNvbnRhaW5lciBpcyBhIGNoaWxkIG9m
IFFXZWJWaWV3LiBXaGVuIHRoZSB2aWV3IGdldHMgZGVsZXRlZCwKKyAgICAgICAgdGhlIFBsdWdp
blZpZXcgaXMgbm90IG5vdGlmaWVkIGFib3V0IHRoZSBkZWxldGlvbiBvZiBQbHVnaW5Db250YWlu
ZXIuCisgICAgICAgIDIuIFFXZWJWaWV3IGRlc3RydWN0b3IgZG9lcyBub3Qgc2V0IGNsaWVudCB0
byAwLgorICAgICAgICAzLiBTb21ldGltZXMgcGVuZGluZyBwYWludCBldmVudHMgYXJlIHNlbnQg
YWZ0ZXIgdGhlIHBsdWdpbiBoYXMgZGllZCwgc28gYWRkCisgICAgICAgIGEgY2hlY2sgaW4gUGx1
Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAzNTQKKworICAgICAgICAqIHBsdWdpbnMvcXQvUGx1
Z2luQ29udGFpbmVyUXQuY3BwOgorICAgICAgICAoUGx1Z2luQ29udGFpbmVyUXQ6On5QbHVnaW5D
b250YWluZXJRdCk6CisgICAgICAgICogcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisKIDIwMDkt
MTAtMTkgIEdpcmlzaCBSYW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
dWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdp
bkNvbnRhaW5lclF0LmNwcAppbmRleCA1OWFiNWJjLi5jYjg5NGE3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsdWdpbnMvcXQvUGx1Z2luQ29udGFpbmVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lu
cy9xdC9QbHVnaW5Db250YWluZXJRdC5jcHAKQEAgLTczLDYgKzczLDcgQEAgUGx1Z2luQ29udGFp
bmVyUXQ6OlBsdWdpbkNvbnRhaW5lclF0KFBsdWdpblZpZXcqIHZpZXcsIFFXaWRnZXQqIHBhcmVu
dCkKIFBsdWdpbkNvbnRhaW5lclF0Ojp+UGx1Z2luQ29udGFpbmVyUXQoKQogewogICAgIGRlbGV0
ZSBtX2NsaWVudFdyYXBwZXI7CisgICAgbV9wbHVnaW5WaWV3LT5zZXRQbGF0Zm9ybVBsdWdpbldp
ZGdldCgwKTsKIH0KIAogdm9pZCBQbHVnaW5Db250YWluZXJRdDo6b25fY2xpZW50Q2xvc2VkKCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9xdC9QbHVnaW5WaWV3UXQuY3BwIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggMDFlZDcwNC4uMjg2MzdhMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKKysrIGIvV2ViQ29y
ZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKQEAgLTQ2NiwxMiArNDY2LDE1IEBAIHZvaWQg
UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCgpCiAgICAgaWYgKG1fbW9kZSAhPSBOUF9G
VUxMICYmIG1fbW9kZSAhPSBOUF9FTUJFRCkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gQ2hl
Y2sgaWYgdGhlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0IHN0aWxsIGV4aXN0cworICAgIGlmIChtX2lz
V2luZG93ZWQgJiYgIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCisgICAgICAgIHJldHVybjsKKwog
ICAgIGlmICghbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2UpCiAgICAgICAgIHJldHVybjsKICAg
ICBtX2hhc1BlbmRpbmdHZW9tZXRyeUNoYW5nZSA9IGZhbHNlOwogCiAgICAgaWYgKG1faXNXaW5k
b3dlZCkgewotICAgICAgICBBU1NFUlQocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CiAgICAgICAg
IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCktPnNldEdlb21ldHJ5KG1fd2luZG93UmVjdCk7CiAgICAg
ICAgIC8vIGlmIHNldE1hc2sgaXMgc2V0IHdpdGggYW4gZW1wdHkgUVJlZ2lvbiwgbm8gY2xpcHBp
bmcgd2lsbAogICAgICAgICAvLyBiZSBwZXJmb3JtZWQsIHNvIGluIHRoYXQgY2FzZSB3ZSBoaWRl
IHRoZSBwbHVnaW4gdmlldwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAg
Yi9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAppbmRleCBiOTAwNDYyLi5mN2NhYTk0IDEwMDY0
NAotLS0gYS9XZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvcXQvQXBpL3F3
ZWJ2aWV3LmNwcApAQCAtMjQ1LDggKzI0NSwxMCBAQCBRV2ViVmlldzo6UVdlYlZpZXcoUVdpZGdl
dCAqcGFyZW50KQogKi8KIFFXZWJWaWV3Ojp+UVdlYlZpZXcoKQogewotICAgIGlmIChkLT5wYWdl
KQorICAgIGlmIChkLT5wYWdlKSB7CiAgICAgICAgIGQtPnBhZ2UtPmQtPnZpZXcgPSAwOworICAg
ICAgICBkLT5wYWdlLT5kLT5jbGllbnQgPSAwOworICAgIH0KIAogICAgIGlmIChkLT5wYWdlICYm
IGQtPnBhZ2UtPnBhcmVudCgpID09IHRoaXMpCiAgICAgICAgIGRlbGV0ZSBkLT5wYWdlOwpkaWZm
IC0tZ2l0IGEvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5kZXgg
NWU0ODg5My4uNTkyZDY1MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMTAtMTggIEdpcmlzaCBS
YW1ha3Jpc2huYW4gIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaW5kb3dlZCBQbHVnaW5zOiBGaXgg
Y3Jhc2ggd2hlbiBRV2ViUGFnZSBpcyBkZWxldGVkIGFmdGVyIFFXZWJWaWV3LgorICAgICAgICAK
KyAgICAgICAgRml4ZXMgdmFyaW91cyBzb3VyY2VzIG9mIGNyYXNoZXM6CisgICAgICAgIDEuIFRo
ZSBQbHVnaW5Db250YWluZXIgaXMgYSBjaGlsZCBvZiBRV2ViVmlldy4gV2hlbiB0aGUgdmlldyBn
ZXRzIGRlbGV0ZWQsCisgICAgICAgIHRoZSBQbHVnaW5WaWV3IGlzIG5vdCBub3RpZmllZCBhYm91
dCB0aGUgZGVsZXRpb24gb2YgUGx1Z2luQ29udGFpbmVyLgorICAgICAgICAyLiBRV2ViVmlldyBk
ZXN0cnVjdG9yIGRvZXMgbm90IHNldCBjbGllbnQgdG8gMC4KKyAgICAgICAgMy4gU29tZXRpbWVz
IHBlbmRpbmcgcGFpbnQgZXZlbnRzIGFyZSBzZW50IGFmdGVyIHRoZSBwbHVnaW4gaGFzIGRpZWQs
IHNvIGFkZAorICAgICAgICBhIGNoZWNrIGluIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVk
ZWQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMw
MzU0CisKKyAgICAgICAgKiBBcGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZpZXc6On5R
V2ViVmlldyk6CisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvcXdlYnZpZXcucHJvOgorICAgICAg
ICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHA6CisgICAgICAgICh0c3RfUVdlYlZp
ZXc6OnJldXNlUGFnZV9kYXRhKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6cmV1c2VQYWdlKToK
KwogMjAwOS0xMC0xOSAgR2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlhcy5p
bj4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm8gYi9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvcXdlYnZpZXcucHJvCmluZGV4IGQ5ZDEyMmMuLmJiYTdjMzkgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy9xd2Vidmlldy5wcm8KKysrIGIvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJ2aWV3L3F3ZWJ2aWV3LnBybwpAQCAtNCw1ICs0LDYgQEAgaW5jbHVkZSguLi8uLi8uLi8u
Li9XZWJLaXQucHJpKQogU09VUkNFUyAgKz0gdHN0X3F3ZWJ2aWV3LmNwcAogUVQgKz0gdGVzdGxp
YiBuZXR3b3JrCiBRTUFLRV9SUEFUSERJUiA9ICQkT1VUUFVUX0RJUi9saWIgJCRRTUFLRV9SUEFU
SERJUgorREVGSU5FUyArPSBTUkNESVI9XFxcIiQkUFdEL1xcXCIKIAogc3ltYmlhbjpUQVJHRVQu
VUlEMyA9IDB4QTAwMEU1M0YKZGlmZiAtLWdpdCBhL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90
c3RfcXdlYnZpZXcuY3BwIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5j
cHAKaW5kZXggMDFkMGU5Mi4uOTIwNDIyMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKKysrIGIvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3Rz
dF9xd2Vidmlldy5jcHAKQEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAw
OSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAgICBDb3B5
cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkg
R2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0yNiw2ICsyNyw3IEBACiAjaW5jbHVkZSA8cW5ldHdvcmtyZXF1ZXN0Lmg+CiAj
aW5jbHVkZSA8cWRpcml0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KKyNp
bmNsdWRlIDxxd2ViZnJhbWUuaD4KIAogY2xhc3MgdHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmpl
Y3QKIHsKQEAgLTQyLDYgKzQ0LDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGd1ZXNzVXJs
RnJvbVN0cmluZ19kYXRhKCk7CiAgICAgdm9pZCBndWVzc1VybEZyb21TdHJpbmcoKTsKICAgICB2
b2lkIGdldFdlYktpdFZlcnNpb24oKTsKKworICAgIHZvaWQgcmV1c2VQYWdlX2RhdGEoKTsKKyAg
ICB2b2lkIHJldXNlUGFnZSgpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUg
dGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0xNjcsNiArMTcyLDQ2IEBA
IHZvaWQgdHN0X1FXZWJWaWV3OjpnZXRXZWJLaXRWZXJzaW9uKCkKICAgICBRVkVSSUZZKHFXZWJL
aXRWZXJzaW9uKCkudG9Eb3VibGUoKSA+IDApOwogfQogCit2b2lkIHRzdF9RV2ViVmlldzo6cmV1
c2VQYWdlX2RhdGEoKQoreworICAgIFFUZXN0OjphZGRDb2x1bW48UVN0cmluZz4oImh0bWwiKTsK
KyAgICBRVGVzdDo6bmV3Um93KCJXaXRob3V0UGx1Z2luIikgPDwgIjxodG1sPjxib2R5IGlkPSdi
Jz50ZXh0PC9ib2R5PjwvaHRtbD4iOworICAgIFFUZXN0OjpuZXdSb3coIldpbmRvd2VkUGx1Z2lu
IikgPDwgUVN0cmluZygiPGh0bWw+PGJvZHkgaWQ9J2InPnRleHQ8ZW1iZWQgc3JjPSdyZXNvdXJj
ZXMvdGVzdC5zd2YnPjwvZW1iZWQ+PC9ib2R5PjwvaHRtbD4iKTsKKyAgICBRVGVzdDo6bmV3Um93
KCJXaW5kb3dsZXNzUGx1Z2luIikgPDwgUVN0cmluZygiPGh0bWw+PGJvZHkgaWQ9J2InPnRleHQ8
ZW1iZWQgc3JjPSdyZXNvdXJjZXMvdGVzdC5zd2YnIHdtb2RlPVwidHJhbnNwYXJlbnRcIj48L2Vt
YmVkPjwvYm9keT48L2h0bWw+Iik7Cit9CisKK3ZvaWQgdHN0X1FXZWJWaWV3OjpyZXVzZVBhZ2Uo
KQoreworICAgIFFEaXI6OnNldEN1cnJlbnQoU1JDRElSKTsKKworICAgIFFGRVRDSChRU3RyaW5n
LCBodG1sKTsKKyAgICBRV2ViVmlldyogdmlldzEgPSBuZXcgUVdlYlZpZXc7CisgICAgUVBvaW50
ZXI8UVdlYlBhZ2U+IHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CisgICAgdmlldzEtPnNldFBhZ2UocGFn
ZSk7CisgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6UGx1
Z2luc0VuYWJsZWQsIHRydWUpOworICAgIFFXZWJGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFp
bkZyYW1lKCk7CisgICAgbWFpbkZyYW1lLT5zZXRIdG1sKGh0bWwsIFFVcmw6OmZyb21Mb2NhbEZp
bGUoUURpcjo6Y3VycmVudFBhdGgoKSkpOworICAgIGlmIChodG1sLmNvbnRhaW5zKCI8L2VtYmVk
PiIpKSB7CisgICAgICAgIC8vIHNvbWUgcmVhc29uYWJsZSB0aW1lIGZvciB0aGUgUGx1Z2luU3Ry
ZWFtIHRvIGZlZWQgdGVzdC5zd2YgdG8gZmxhc2ggYW5kIHN0YXJ0IHBhaW50aW5nCisgICAgICAg
IFFUZXN0OjpxV2FpdCgyMDAwKTsKKyAgICB9CisKKyAgICB2aWV3MS0+c2hvdygpOworICAgIFFU
ZXN0OjpxV2FpdCgyMDAwKTsKKyAgICBkZWxldGUgdmlldzE7CisgICAgUVZFUklGWShwYWdlICE9
IDApOyAvLyBkZWxldGluZyB2aWV3IG11c3Qgbm90IGhhdmUgZGVsZXRlZCB0aGUgcGFnZSwgc2lu
Y2UgaXQncyBub3QgYSBjaGlsZCBvZiB2aWV3CisKKyAgICBRV2ViVmlldyAqdmlldzIgPSBuZXcg
UVdlYlZpZXc7CisgICAgdmlldzItPnNldFBhZ2UocGFnZSk7CisgICAgdmlldzItPnNob3coKTsg
Ly8gaW4gV2luZG93bGVzcyBtb2RlLCB5b3Ugc2hvdWxkIHN0aWxsIGJlIGFibGUgdG8gc2VlIHRo
ZSBwbHVnaW4gaGVyZQorICAgIFFUZXN0OjpxV2FpdCgyMDAwKTsKKyAgICBkZWxldGUgdmlldzI7
CisKKyAgICBkZWxldGUgcGFnZTsgLy8gbXVzdCBub3QgY3Jhc2gKKworICAgIFFEaXI6OnNldEN1
cnJlbnQoUUFwcGxpY2F0aW9uOjphcHBsaWNhdGlvbkRpclBhdGgoKSk7Cit9CisKIFFURVNUX01B
SU4odHN0X1FXZWJWaWV3KQogI2luY2x1ZGUgInRzdF9xd2Vidmlldy5tb2MiCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>