<?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>31183</bug_id>
          
          <creation_ts>2009-11-05 13:35:36 -0800</creation_ts>
          <short_desc>[Qt][Mac] flash plugin doesn&apos;t work when using QGraphicsWebView.</short_desc>
          <delta_ts>2009-11-25 01:16:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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>Qt</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31794</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yongjun Zhang">yongjun.zhang</reporter>
          <assigned_to name="Yongjun Zhang">yongjun.zhang</assigned_to>
          <cc>eric</cc>
    
    <cc>girish</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>vestbo</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>160931</commentid>
    <comment_count>0</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-11-05 13:35:36 -0800</bug_when>
    <thetext>Flash plugin doesn&apos;t show any content in QGVLauncher, which uses QGraphcisWebView.  Audio still works; the page shows a blank placeholder in where the plugin suppose to be displayed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160937</commentid>
    <comment_count>1</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-11-05 13:42:18 -0800</bug_when>
    <thetext>The reason is CGContextRef obtained from QGraphicsView is null in function widget-&gt;macCGHandle(), if widget is of class type QGraphicsView.

Although it seems to be a Qt bug, Simon suggested to make a dedicated QPixmap and let the plugin paint on the pixmap, just like how windowless plugin is implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>160945</commentid>
    <comment_count>2</comment_count>
      <attachid>42593</attachid>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-11-05 13:57:15 -0800</bug_when>
    <thetext>Created attachment 42593
first attempt to fix this issue - use a QPixmap to paint plugin content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161317</commentid>
    <comment_count>3</comment_count>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-11-07 00:32:18 -0800</bug_when>
    <thetext>You should initialize the contextRef from the constructor in the initializer list...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>161556</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-11-09 06:26:26 -0800</bug_when>
    <thetext>Also,

+#if PLATFORM(QT)
+    CGContextRelease(m_contextRef);
+#endif

Here you dont check if m_contextRef is non-0, which you do elsewhere. If you need to do that, you should do it both places, or not do it at all.

Also, this patch seems to clutter the code a bit. Maybe try to refactor it into some methods with descriptive names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>162841</commentid>
    <comment_count>5</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-12 01:36:57 -0800</bug_when>
    <thetext>Is the patch supposed to work? Crashes for me after applying on Qt 4.6 with cocoa build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163313</commentid>
    <comment_count>6</comment_count>
    <who name="Yongjun Zhang">yongjun.zhang</who>
    <bug_when>2009-11-13 07:53:35 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Is the patch supposed to work? Crashes for me after applying on Qt 4.6 with
&gt; cocoa build.

It works for me.  could you paste the crash call stack?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163763</commentid>
    <comment_count>7</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 12:54:06 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Is the patch supposed to work? Crashes for me after applying on Qt 4.6 with
&gt; &gt; cocoa build.
&gt; 
&gt; It works for me.  could you paste the crash call stack?

Ok, the crash happens only in 32-bit cocoa builds. Your patch works fine in carbon build. Are plugins in 32-bit cocoa supported? It looks like things like NP_NO_CARBON assume that cocoa is 64-bit only. I haven&apos;t looked into the problem deeply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163764</commentid>
    <comment_count>8</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 13:07:42 -0800</bug_when>
    <thetext>Wondeful patch!

Comments:
1. I don&apos;t agree with using the QPixmap even when we have a platformWidget(). With this patch, QWebView will triple buffer. We should use QPixmap only when we don&apos;t have a view.
2. The pixmap must be resized in updatePlugin(). This is the call back we get when the frame rect changes. Also, you must call initialize with a fill().
3. In transparent mode, the pixmap is not cleared with transparency. You will see that the ball leaves trailing marks in http://www.communitymx.com/content/source/E5141/wmodetrans.htm.
4. npWindow.type must be NPWindowTypeDrawable
5. Doesn&apos;t work there is no QWebPageClient. For example, taking screenshot of a QWebPage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163766</commentid>
    <comment_count>9</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 13:09:39 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; The reason is CGContextRef obtained from QGraphicsView is null in function
&gt; widget-&gt;macCGHandle(), if widget is of class type QGraphicsView.
&gt; 

This is not a Qt bug. QGraphicsView is a scroll area, you can only get the handle for the viewport() when painting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163767</commentid>
    <comment_count>10</comment_count>
      <attachid>43251</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 13:25:06 -0800</bug_when>
    <thetext>Created attachment 43251
Implement plugin rendering

Here&apos;s my take. I was working on this simultaneously for a customer, I have merged my patch and  Yongjun Zhang&apos;s patch.

The idea is that when we don&apos;t have a QWebView as the pluginParent, we set the platformPluginWidget to 0. IOW, have a null platformPluginWidget() indicates to the code that we have to draw to a pixmap. I also prefer that plugins draw directly to the view&apos;s contextref when we have a native handle available.

A really ugly hack I had to do was to create a fake window to please Flash. Chrome does this too - http://src.chromium.org/viewvc/chrome/trunk/src/webkit/glue/plugins/webplugin_delegate_impl_mac.mm?view=markup&amp;pathrev=25433 (grep for fake).

What&apos;s missing: mouse and (keyboard? - i can test this only after i can give it focus :D) events don&apos;t work, printing doesn&apos;t work.

Can someone explain to me how mouse events are sent? Am I reading it right that we send the global pos(!). If so, having to make it work with QGraphicsView presents quite a challenge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163768</commentid>
    <comment_count>11</comment_count>
      <attachid>43252</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 13:53:09 -0800</bug_when>
    <thetext>Created attachment 43252
Implement plugin rendering (2)

Only coding style fixes (the if statement had a brace though it was only one line)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163771</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-11-15 14:14:20 -0800</bug_when>
    <thetext>We seem to be getting a lot of Qt specific code in PluginViewMac. Is that really where they belong? or is it time to make a PluginViewMacQt ? Just wondering.

-        if (QWidget* widget = client-&gt;ownerWidget()) {
+        if (QWidget* widget = qobject_cast&lt;QWidget*&gt;(client-&gt;pluginParent()))

is ownerWidget not needed anymore? or only for linux?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163838</commentid>
    <comment_count>13</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-15 21:04:45 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; We seem to be getting a lot of Qt specific code in PluginViewMac. Is that
&gt; really where they belong? or is it time to make a PluginViewMacQt ? Just
&gt; wondering.
&gt; 

Right now it&apos;s doing ok. But yes, a few more Qt specific changes and we need to start thinking of the above.

&gt; -        if (QWidget* widget = client-&gt;ownerWidget()) {
&gt; +        if (QWidget* widget = qobject_cast&lt;QWidget*&gt;(client-&gt;pluginParent()))
&gt; 
&gt; is ownerWidget not needed anymore? or only for linux?

We still need it to position popups. But yes, ideally, the NPAPI should be modified so that we don&apos;t need to have such a thing as ownerWidget().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163873</commentid>
    <comment_count>14</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-16 00:36:43 -0800</bug_when>
    <thetext>There&apos;s a problem with relying on platformPluginWidget(). For cases like,
m_page-&gt;mainFrame()-&gt;render(&amp;pixmap) and the page is associated with a QWebView the plugin ends drawing to the view instead of the pixmap because we use the context of the platformPluginWidget(). Solution is to use yongjun&apos;s initial approach of redirecting painting of plugin to a pixmap in all cases.

Please reject this patch. I will post a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163875</commentid>
    <comment_count>15</comment_count>
      <attachid>43252</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-16 00:37:55 -0800</bug_when>
    <thetext>Comment on attachment 43252
Implement plugin rendering (2)

Rejecting my own patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163899</commentid>
    <comment_count>16</comment_count>
      <attachid>43280</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-16 02:05:57 -0800</bug_when>
    <thetext>Created attachment 43280
Implement plugin rendering (3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163901</commentid>
    <comment_count>17</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-16 02:07:18 -0800</bug_when>
    <thetext>Attached patch fixes:
1. Printing
2. Plugins use offscreen rendering in all cases.

Only events remains to be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>163974</commentid>
    <comment_count>18</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-16 06:00:57 -0800</bug_when>
    <thetext>Sigh, I should have checked before r?. There is a rather sever performance regression with QWebView. When playing flash, the cpu usage is 90%. Without using the pixmap, it is like 40-60%. I am not too happy about this. Should we just go back to my old patch?

To make my patch work with printing, we have to pass the correct CGContextRef based on the paintDevice (we have to get this from the qpainter)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164194</commentid>
    <comment_count>19</comment_count>
      <attachid>43280</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-17 04:28:58 -0800</bug_when>
    <thetext>Comment on attachment 43280
Implement plugin rendering (3)

Had a discussion with Tor Arne on irc:
1. Decided not to use off screen pixmap in all cases since performance regression not acceptable.
2. Make the contextref code x-platform. Only the QPixmap code will be ifdef&apos;ed Qt.

Also, I have managed to get events working. But I will make that a separate patch.

To get printing and rendering to image to work, we have to probe painter-&gt;device(). I don&apos;t plan to implement this bit atm since it&apos;s not needed for my customer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164200</commentid>
    <comment_count>20</comment_count>
      <attachid>43280</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2009-11-17 05:04:27 -0800</bug_when>
    <thetext>Comment on attachment 43280
Implement plugin rendering (3)

r- as per the earlier comment about doing this in a x-port way and abstracting the QPixmap stuff away in helper functions

&gt; +#if defined(XP_MACOSX)
&gt; +#include &lt;QPixmap&gt;
&gt; +#endif

This needs to be wrapped in a PLATFORM(QT) btw</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164234</commentid>
    <comment_count>21</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-17 08:00:20 -0800</bug_when>
    <thetext>It was really bugging me as to _why_ we painting to pixmap is slow. I found the
root cause for the performance problem. 

+    IntRect r(rect-&gt;left, rect-&gt;top, rect-&gt;right + rect-&gt;left, rect-&gt;bottom +
rect-&gt;top);
+    invalidateRect(r);

Spot the bug :-) 

Fixing that makes QtLauncher and QGVLauncher have pretty much the same
performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164235</commentid>
    <comment_count>22</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-17 08:05:38 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; It was really bugging me as to _why_ we painting to pixmap is slow. I found the
&gt; root cause for the performance problem. 
&gt; 
&gt; +    IntRect r(rect-&gt;left, rect-&gt;top, rect-&gt;right + rect-&gt;left, rect-&gt;bottom +
&gt; rect-&gt;top);
&gt; +    invalidateRect(r);
&gt; 
&gt; Spot the bug :-) 
&gt; 
&gt; Fixing that makes QtLauncher and QGVLauncher have pretty much the same
&gt; performance.

Fantastic :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164495</commentid>
    <comment_count>23</comment_count>
      <attachid>43414</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-18 01:26:52 -0800</bug_when>
    <thetext>Created attachment 43414
Implement Plugin Rendering (4)

Ok, I imagined events working correctly. Mouse clicks work but not mouse over. I am still figuring out how to fix it. In the meantime, can we get the rendering part in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164510</commentid>
    <comment_count>24</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-18 02:18:14 -0800</bug_when>
    <thetext>There is a missing ifdef around this. Any other comments?

+            m_pixmap = QPixmap(m_windowRect.size());
+            m_pixmap.fill(Qt::transparent);
+            m_contextRef = qt_mac_cg_context(&amp;m_pixmap);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164974</commentid>
    <comment_count>25</comment_count>
      <attachid>43502</attachid>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-19 07:48:20 -0800</bug_when>
    <thetext>Created attachment 43502
Implement Plugin Rendering (5)

Latest and greatest patch with the ifdef changes in my previous comment.

Mouse move just does not get processed by Flash. Incredibly frustrating stuff... I would still like to get this patch in since rendering works great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164994</commentid>
    <comment_count>26</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2009-11-19 09:08:08 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; Created an attachment (id=43502) [details]
&gt; Implement Plugin Rendering (5)
&gt; 
&gt; Latest and greatest patch with the ifdef changes in my previous comment.
&gt; 
&gt; Mouse move just does not get processed by Flash. Incredibly frustrating
&gt; stuff... I would still like to get this patch in since rendering works great.

Let me try to ping Tor Arne</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165255</commentid>
    <comment_count>27</comment_count>
      <attachid>43502</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-20 01:25:11 -0800</bug_when>
    <thetext>Comment on attachment 43502
Implement Plugin Rendering (5)

This is a great first step</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165262</commentid>
    <comment_count>28</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-20 03:22:39 -0800</bug_when>
    <thetext>Landed in r51234.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165652</commentid>
    <comment_count>29</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-21 14:18:39 -0800</bug_when>
    <thetext>Closing based on comment above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165789</commentid>
    <comment_count>30</comment_count>
    <who name="Girish Ramakrishnan">girish</who>
    <bug_when>2009-11-22 21:09:53 -0800</bug_when>
    <thetext>Opened 31794 for the events (I cannot change the status of this bug)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166373</commentid>
    <comment_count>31</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2009-11-25 01:16:26 -0800</bug_when>
    <thetext>*** Bug 29446 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42593</attachid>
            <date>2009-11-05 13:57:15 -0800</date>
            <delta_ts>2009-11-10 05:17:26 -0800</delta_ts>
            <desc>first attempt to fix this issue - use a QPixmap to paint plugin content.</desc>
            <filename>mac_plugin_fix.patch</filename>
            <type>text/plain</type>
            <size>5477</size>
            <attacher name="Yongjun Zhang">yongjun.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MDU3NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMDUgIFlvbmdqdW4gWmhhbmcgIDx5b25nanVuLnpoYW5n
QG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzExODMKKyAgICAg
ICAgW1F0XSBmbGFzaCBwbHVnaW4gZG9lc24ndCB3b3JrIHdoZW4gdXNpbmcgUUdyYXBoaWNzV2Vi
Vmlldy4KKworICAgICAgICBJbiBNYWMgUXQsIHVzZSBhIFFQaXhtYXAgb2Zmc2NyZWVuIGJpdG1h
cCB0byBwYWludCBwbHVnaW4gY29udGVudCwgCisgICAgICAgIHRoZSBzYW1lIHdheSBhcyB3aW5k
b3dsZXNzIHBsdWdpbiBpcyBpbXBsZW1lbnRlZC4KKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2lu
Vmlldy5oOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2lu
Vmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwYWludCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdCk6
CisKIDIwMDktMTEtMDUgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2ZXJ0IDUwNTY5IHNpbmNlIGl0IGJyb2tlIFFULiAgQnVpbGQgZml4IGFuZCBqdXN0
IGEgcmV2ZXJ0LCBzbyBubyByZXZpZXcuCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmll
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgJKHJldmlzaW9u
IDUwNTYwKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNiArNDUsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCisjaWYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UVBpeG1hcD4KKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oV0lOX09TKSAmJiBQTEFURk9STShRVCkKIHR5cGVkZWYgc3RydWN0
IEhXTkRfXyogSFdORDsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVBsdWdpbldpZGdldDsKQEAgLTMz
MSw2ICszMzUsMTIgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXROUFdpbmRvd0lmTmVlZGVk
KCk7CiAgICAgICAgIHZvaWQgbnVsbEV2ZW50VGltZXJGaXJlZChUaW1lcjxQbHVnaW5WaWV3Piop
OwogICAgICAgICBQb2ludCBnbG9iYWxNb3VzZVBvc0ZvclBsdWdpbigpIGNvbnN0OworCisjaWYg
UExBVEZPUk0oUVQpCisgICAgICAgIENHQ29udGV4dFJlZiBtX2NvbnRleHRSZWY7CisgICAgICAg
IFFQaXhtYXAgICAgIG1fcGl4bWFwOworI2VuZGlmCisKICNlbmRpZgogCiAjaWYgZGVmaW5lZChR
X1dTX1gxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkluZGV4OiBXZWJDb3JlL3Bs
dWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lu
cy9tYWMvUGx1Z2luVmlld01hYy5jcHAJKHJldmlzaW9uIDUwNTYwKQorKysgV2ViQ29yZS9wbHVn
aW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsNyBA
QCB1c2luZyBKU0M6OlVTdHJpbmc7CiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSA8UVdpZGdl
dD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5jbHVkZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSAi
UVdlYlBhZ2VDbGllbnQuaCIKIFFUX0JFR0lOX05BTUVTUEFDRQogI2lmIFFUX1ZFUlNJT04gPCAw
eDA0MDUwMApAQCAtMTczLDYgKzE3NCw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFy
dCgpCiAgICAgfQogCiAjaWYgUExBVEZPUk0oUVQpCisgICAgbV9jb250ZXh0UmVmID0gMDsKICAg
ICBpZiAoUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXcoKS0+aG9z
dFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkgewogICAgICAgICBpZiAoUVdpZGdldCog
d2lkZ2V0ID0gY2xpZW50LT5vd25lcldpZGdldCgpKSB7CiAgICAgICAgICAgICBzZXRQbGF0Zm9y
bVBsdWdpbldpZGdldCh3aWRnZXQpOwpAQCAtMTkzLDYgKzE5NSw5IEBAIHZvaWQgUGx1Z2luVmll
dzo6cGxhdGZvcm1EZXN0cm95KCkKIHsKICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkK
ICAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoMCk7CisjaWYgUExBVEZPUk0oUVQpCisg
ICAgQ0dDb250ZXh0UmVsZWFzZShtX2NvbnRleHRSZWYpOworI2VuZGlmCiB9CiAKIC8vIFVzZWQg
YmVmb3JlIHRoZSBwbHVnaW4gdmlldyBoYXMgYmVlbiBpbml0aWFsaXplZCBwcm9wZXJseSwgYW5k
IGFzIGEKQEAgLTM1Nyw5ICszNjIsMjggQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lm
TmVlZGVkKCkKICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8fCAhbV9wbHVnaW4t
PnBsdWdpbkZ1bmNzKCktPnNldHdpbmRvdykKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZP
Uk0oUVQpCisgICAgLy8gY3JlYXRlIG9mZnNjcmVlbiBiaXRtYXAKKyAgICBpZiAoIW1fY29udGV4
dFJlZgorICAgICAgICB8fCBtX3dpbmRvd1JlY3Qud2lkdGgoKSAhPSBDR0JpdG1hcENvbnRleHRH
ZXRXaWR0aChtX2NvbnRleHRSZWYpCisgICAgICAgIHx8IG1fd2luZG93UmVjdC5oZWlnaHQoKSAh
PSBDR0JpdG1hcENvbnRleHRHZXRIZWlnaHQobV9jb250ZXh0UmVmKSkgeworICAgICAgICBpZiAo
bV9jb250ZXh0UmVmKQorICAgICAgICAgICAgQ0dDb250ZXh0UmVsZWFzZShtX2NvbnRleHRSZWYp
OworCisgICAgICAgIG1fcGl4bWFwID0gUVBpeG1hcChtX3dpbmRvd1JlY3Qud2lkdGgoKSwgbV93
aW5kb3dSZWN0LmhlaWdodCgpKTsKKyAgICAgICAgbV9jb250ZXh0UmVmID0gcXRfbWFjX2NnX2Nv
bnRleHQoJm1fcGl4bWFwKTsKKworICAgICAgICBpZiAoIW1fY29udGV4dFJlZikKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBDR0NvbnRleHRSZWYgbmV3Q29udGV4dFJlZiA9IG1f
Y29udGV4dFJlZjsKKyNlbHNlCiAgICAgQ0dDb250ZXh0UmVmIG5ld0NvbnRleHRSZWYgPSBjZ0hh
bmRsZUZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKLSAgICBpZiAoIW5ld0NvbnRleHRSZWYp
CisgICAgaWYgKCFuZXdDb250ZXh0UmVmKSB7CiAgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKIAogICAgIFdpbmRvd1JlZiBuZXdXaW5kb3dSZWYgPSBuYXRpdmVXaW5kb3dGb3IocGxhdGZv
cm1QbHVnaW5XaWRnZXQoKSk7CiAgICAgaWYgKCFuZXdXaW5kb3dSZWYpCkBAIC00MzMsOCArNDU3
LDIyIEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiAKICAgICAgICAg
cmV0dXJuOwogCiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOworCisjaWYgIVBM
QVRGT1JNKFFUKQogICAgIEludFBvaW50IG9mZnNldCA9IGZyYW1lUmVjdCgpLmxvY2F0aW9uKCk7
CiAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0
LnkoKSk7CisjZW5kaWYKKworICAgIEludFJlY3QgdGFyZ2V0UmVjdChmcmFtZVJlY3QoKSk7Cisg
ICAgdGFyZ2V0UmVjdC5pbnRlcnNlY3RzKHJlY3QpOworCisgICAgLy8gY2xpcCB0aGUgY29udGV4
dCBzbyB0aGF0IHBsdWdpbiBvbmx5IHVwZGF0ZXMgdGhlIGludGVyZXN0ZWQgYXJlYS4KKyAgICBD
R1JlY3QgcjsKKyAgICByLm9yaWdpbi54ID0gdGFyZ2V0UmVjdC54KCkgLSBmcmFtZVJlY3QoKS54
KCk7CisgICAgci5vcmlnaW4ueSA9IHRhcmdldFJlY3QueSgpIC0gZnJhbWVSZWN0KCkueSgpOwor
ICAgIHIuc2l6ZS53aWR0aCA9IHRhcmdldFJlY3Qud2lkdGgoKTsKKyAgICByLnNpemUuaGVpZ2h0
ID0gdGFyZ2V0UmVjdC5oZWlnaHQoKTsKKyAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNnQ29udGV4
dCwgcik7CiAKICAgICBFdmVudFJlY29yZCBldmVudDsKICAgICBldmVudC53aGF0ID0gdXBkYXRl
RXZ0OwpAQCAtNDQ4LDE4ICs0ODYsMjkgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGlj
c0NvbnRleHQqIAogICAgICAgICBMT0coRXZlbnRzLCAiUGx1Z2luVmlldzo6cGFpbnQoKTogUGFp
bnQgZXZlbnQgbm90IGFjY2VwdGVkIik7CiAKICAgICBDR0NvbnRleHRSZXN0b3JlR1N0YXRlKGNn
Q29udGV4dCk7CisKKyNpZiBQTEFURk9STShRVCkKKyAgICAvLyBwYWludCB0aGUgb2Zmc2NyZWVu
IHBpeG1hcAorICAgIFFQYWludGVyKiBwYWludGVyID0gY29udGV4dC0+cGxhdGZvcm1Db250ZXh0
KCk7CisgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCh0YXJnZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55
KCksIG1fcGl4bWFwLCB0YXJnZXRSZWN0LngoKSAtIGZyYW1lUmVjdCgpLngoKSwgdGFyZ2V0UmVj
dC55KCkgLSBmcmFtZVJlY3QoKS55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5o
ZWlnaHQoKSk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChj
b25zdCBJbnRSZWN0JiByZWN0KQogeworI2lmIFBMQVRGT1JNKFFUKQorICAgIFFXZWJQYWdlQ2xp
ZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxhdGZv
cm1QYWdlQ2xpZW50KCk7CisgICAgY2xpZW50LT51cGRhdGUoY29udmVydFRvQ29udGFpbmluZ1dp
bmRvdyhyZWN0KSk7CisjZWxzZQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAg
ICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT51cGRhdGUoY29udmVydFRvQ29udGFpbmluZ1dp
bmRvdyhyZWN0KSk7CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVj
dChOUFJlY3QqIHJlY3QpCiB7Ci0gICAgLy8gVE9ETzogb3B0aW1pemUKLSAgICBpbnZhbGlkYXRl
KCk7CisgICAgSW50UmVjdCByKHJlY3QtPmxlZnQsIHJlY3QtPnRvcCwgcmVjdC0+cmlnaHQgKyBy
ZWN0LT5sZWZ0LCByZWN0LT5ib3R0b20gKyByZWN0LT50b3ApOworICAgIGludmFsaWRhdGVSZWN0
KHIpOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWdpb24oTlBSZWdpb24gcmVn
aW9uKQo=
</data>
<flag name="review"
          id="24153"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43251</attachid>
            <date>2009-11-15 13:25:06 -0800</date>
            <delta_ts>2009-11-15 13:53:09 -0800</delta_ts>
            <desc>Implement plugin rendering</desc>
            <filename>patty</filename>
            <type>text/plain</type>
            <size>9027</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGQzODdiMjUwMjc4Y2NiMDk0OGJiYjMxNDVhMWM5NGIxNTlhMjEyNzUKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KRGF0ZTogICBTdW4gTm92
IDE1IDIzOjE4OjQ2IDIwMDkgKzA1MzAKCiAgICBJbXBsZW1lbnQgdmlld2xlc3MgcGx1Z2lucyBv
biB0aGUgTWFjLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzc2ZDRhZC4uNWZiN2MyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0xMS0xNSAg
R2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgWW9uZ2p1biBaaGFu
ZyA8eW9uZ2p1bi56aGFuZ0Bub2tpYS5jb20+IGFuZAorICAgICAgICAgICAgICAgICBHaXJpc2gg
UmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAgICAgSW1wbGVtZW50
IHN1cHBvcnQgZm9yIHJlbmRlcmluZyBwbHVnaW5zIG9uIFF0L01hYyB3aGVuIGEgcGFnZSBpcyB1
c2VkCisgICAgICAgIHdpdGhvdXQgYSBRV2ViVmlldyBvciB3aGVuIGluc2lkZSBRR3JhcGhpY3NX
ZWJWaWV3LiBJbiB0aGVzZSBzY2VuZWFyaW9zLAorICAgICAgICBXZSBzZXQgdGhlIHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0IHRvIDAgYW5kIHBhaW50IHRoZSBwbHVnaW4gIGNvbnRlbnQgdG8gYSAKKyAg
ICAgICAgUVBpeG1hcC4gCisgICAgICAgIAorICAgICAgICBJbiBhZGRpdGlvbiwgd2UgY3JlYXRl
IGEgZmFrZSB3aW5kb3cgYW5kIHNldCBpdCdzIFdpbmRvd1JlZiBpbiBOUFdpbmRvdy4gCisgICAg
ICAgIE9ubHkgd2l0aCB0aGlzIFdpbmRvd1JlZiBkb2VzIEZsYXNoIHBhaW50IGNvcnJlY3RseSB0
byB0aGUgUVBpeG1hcC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzExODMKKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAgKiBwbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0
KToKKwogMjAwOS0xMS0xMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
aW5kZXggNzdiNzUyMy4uNTM4MGEzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODE3LDYg
KzgxNywxMCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2lmIGRlZmluZWQoWFBfTUFDT1NY
KQogICAgICwgbV9kcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwoLTEpKQogICAgICwgbV9ldmVu
dE1vZGVsKE5QRXZlbnRNb2RlbCgtMSkpCisjaWYgUExBVEZPUk0oUVQpCisgICAgLCBtX2NvbnRl
eHRSZWYoTlVMTCkKKyAgICAsIG1fZmFrZVdpbmRvdyhOVUxMKQorI2VuZGlmCiAjZW5kaWYKICNp
ZiBkZWZpbmVkKFFfV1NfWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAs
IG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXgg
MGE1N2ZhNi4uOTg1ZWZkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
aAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHaXJpc2ggUmFtYWtyaXNobmFuIDxn
aXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTUwLDYgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwogdHlwZWRlZiBIV05E
IFBsYXRmb3JtUGx1Z2luV2lkZ2V0OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxh
dGZvcm1QbHVnaW5XaWRnZXQ7CisjaWYgZGVmaW5lZChYUF9NQUNPU1gpCisjaW5jbHVkZSA8UVBp
eG1hcD4KKyNlbmRpZgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzI3LDYgKzMzMSwx
MSBAQCBwcml2YXRlOgogICAgICAgICBPd25QdHI8VGltZXI8UGx1Z2luVmlldz4gPiBtX251bGxF
dmVudFRpbWVyOwogICAgICAgICBOUERyYXdpbmdNb2RlbCBtX2RyYXdpbmdNb2RlbDsKICAgICAg
ICAgTlBFdmVudE1vZGVsIG1fZXZlbnRNb2RlbDsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAg
UVBpeG1hcCBtX3BpeG1hcDsKKyAgICAgICAgQ0dDb250ZXh0UmVmIG1fY29udGV4dFJlZjsKKyAg
ICAgICAgV2luZG93UmVmIG1fZmFrZVdpbmRvdzsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0
TlBXaW5kb3dJZk5lZWRlZCgpOwogICAgICAgICB2b2lkIG51bGxFdmVudFRpbWVyRmlyZWQoVGlt
ZXI8UGx1Z2luVmlldz4qKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4
IDY1MjFjODQuLjVlOGZhNDQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApA
QCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03NSw2ICs3Niw3IEBAIHVzaW5nIEpTQzo6VVN0cmluZzsK
ICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRV2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVu
dD4KKyNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogUVRf
QkVHSU5fTkFNRVNQQUNFCiAjaWYgUVRfVkVSU0lPTiA8IDB4MDQwNTAwCkBAIC0xNzQsOSArMTc2
LDE3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAKICNpZiBQTEFURk9STShR
VCkKICAgICBpZiAoUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXco
KS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkgewotICAgICAgICBpZiAoUVdp
ZGdldCogd2lkZ2V0ID0gY2xpZW50LT5vd25lcldpZGdldCgpKSB7CisgICAgICAgIGlmIChRV2lk
Z2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1Z2luUGFyZW50
KCkpKSB7CiAgICAgICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCh3aWRnZXQpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoMCk7CiAg
ICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoMCk7
CisKKyAgICBpZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgOjpSZWN0IHdp
bmRvd19ib3VuZHMgPSB7IDAsIDAsIDEwMCwgMTAwIH07CisgICAgICAgIENyZWF0ZU5ld1dpbmRv
dyhrRG9jdW1lbnRXaW5kb3dDbGFzcywga1dpbmRvd1N0YW5kYXJkRG9jdW1lbnRBdHRyaWJ1dGVz
LCAmd2luZG93X2JvdW5kcywgJm1fZmFrZVdpbmRvdyk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTE5
Myw2ICsyMDMsMTMgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogewogICAg
IGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldp
ZGdldCgwKTsKKyAgICBlbHNlIHsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgQ0dDb250ZXh0
UmVsZWFzZShtX2NvbnRleHRSZWYpOworICAgICAgICBpZiAobV9mYWtlV2luZG93KQorICAgICAg
ICAgICAgRGlzcG9zZVdpbmRvdyhtX2Zha2VXaW5kb3cpOworI2VuZGlmCisgICAgfQogfQogCiAv
LyBVc2VkIGJlZm9yZSB0aGUgcGx1Z2luIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgcHJvcGVy
bHksIGFuZCBhcyBhCkBAIC0zNTcsMTUgKzM3NCwyNiBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5Q
V2luZG93SWZOZWVkZWQoKQogICAgIGlmICghbV9pc1N0YXJ0ZWQgfHwgIXBhcmVudCgpIHx8ICFt
X3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+c2V0d2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBDR0NvbnRleHRSZWYgbmV3Q29udGV4dFJlZiA9IGNnSGFuZGxlRm9yKHBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KCkpOwotICAgIGlmICghbmV3Q29udGV4dFJlZikKKyAgICBDR0NvbnRleHRSZWYgbmV3
Q29udGV4dFJlZiA9IE5VTEw7CisgICAgV2luZG93UmVmIG5ld1dpbmRvd1JlZiA9IE5VTEw7CisK
KyAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBuZXdDb250ZXh0UmVm
ID0gY2dIYW5kbGVGb3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgICAgIG5ld1dpbmRv
d1JlZiA9IG5hdGl2ZVdpbmRvd0ZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKKyAgICAgICAg
bV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93OworICAgIH0gZWxzZSB7CisjaWYg
UExBVEZPUk0oUVQpCisgICAgICAgIG5ld0NvbnRleHRSZWYgPSBtX2NvbnRleHRSZWY7CisgICAg
ICAgIG5ld1dpbmRvd1JlZiA9IG1fZmFrZVdpbmRvdzsKKyAgICAgICAgbV9ucFdpbmRvdy50eXBl
ID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisjZWxzZQogICAgICAgICByZXR1cm47CisjZW5kaWYK
KyAgICB9CiAKLSAgICBXaW5kb3dSZWYgbmV3V2luZG93UmVmID0gbmF0aXZlV2luZG93Rm9yKHBs
YXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwotICAgIGlmICghbmV3V2luZG93UmVmKQorICAgIGlmICgh
bmV3Q29udGV4dFJlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9ucFdpbmRvdy50eXBlID0g
TlBXaW5kb3dUeXBlV2luZG93OwogICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKSZtX25w
Q2dDb250ZXh0OwogICAgIG1fbnBDZ0NvbnRleHQud2luZG93ID0gbmV3V2luZG93UmVmOwogICAg
IG1fbnBDZ0NvbnRleHQuY29udGV4dCA9IG5ld0NvbnRleHRSZWY7CkBAIC00MDksNiArNDM3LDE1
IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBJbnRQb2ludCBv
ZmZzZXQgPSB0b3BMZXZlbE9mZnNldEZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKICAgICBt
X3dpbmRvd1JlY3QubW92ZShvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsKIAorI2lmIFBMQVRGT1JN
KFFUKQorICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiBtX3dpbmRvd1JlY3Quc2l6
ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CisgICAgICAgIENHQ29udGV4dFJlbGVhc2Uo
bV9jb250ZXh0UmVmKTsKKyAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwKG1fd2luZG93UmVjdC5z
aXplKCkpOworICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAg
IG1fY29udGV4dFJlZiA9IHF0X21hY19jZ19jb250ZXh0KCZtX3BpeG1hcCk7CisgICAgfQorI2Vu
ZGlmCisKICAgICBtX2NsaXBSZWN0ID0gd2luZG93Q2xpcFJlY3QoKTsKICAgICBtX2NsaXBSZWN0
Lm1vdmUoLW1fd2luZG93UmVjdC54KCksIC1tX3dpbmRvd1JlY3QueSgpKTsKIApAQCAtNDMzLDgg
KzQ3MCwyOSBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0dDb250ZXh0
U2F2ZUdTdGF0ZShjZ0NvbnRleHQpOwotICAgIEludFBvaW50IG9mZnNldCA9IGZyYW1lUmVjdCgp
LmxvY2F0aW9uKCk7Ci0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0
LngoKSwgb2Zmc2V0LnkoKSk7CisgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAg
ICAgICAgSW50UG9pbnQgb2Zmc2V0ID0gZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAg
Q0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7
CisgICAgfQorCisgICAgSW50UmVjdCB0YXJnZXRSZWN0KGZyYW1lUmVjdCgpKTsKKyAgICB0YXJn
ZXRSZWN0LmludGVyc2VjdHMocmVjdCk7CisKKyAgICAvLyBjbGlwIHRoZSBjb250ZXh0IHNvIHRo
YXQgcGx1Z2luIG9ubHkgdXBkYXRlcyB0aGUgaW50ZXJlc3RlZCBhcmVhLgorICAgIENHUmVjdCBy
OworICAgIHIub3JpZ2luLnggPSB0YXJnZXRSZWN0LngoKSAtIGZyYW1lUmVjdCgpLngoKTsKKyAg
ICByLm9yaWdpbi55ID0gdGFyZ2V0UmVjdC55KCkgLSBmcmFtZVJlY3QoKS55KCk7CisgICAgci5z
aXplLndpZHRoID0gdGFyZ2V0UmVjdC53aWR0aCgpOworICAgIHIuc2l6ZS5oZWlnaHQgPSB0YXJn
ZXRSZWN0LmhlaWdodCgpOworICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCByKTsK
KworI2lmIFBMQVRGT1JNKFFUKQorICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiBt
X2lzVHJhbnNwYXJlbnQpIHsgLy8gY2xlYW4gdGhlIHBpeG1hcCBpbiB0cmFuc3BhcmVudCBtb2Rl
CisgICAgICAgIFFQYWludGVyIHBhaW50ZXIoJm1fcGl4bWFwKTsKKyAgICAgICAgcGFpbnRlci5z
ZXRDb21wb3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAg
ICAgIHBhaW50ZXIuZmlsbFJlY3QoUVJlY3RGKHIub3JpZ2luLngsIHIub3JpZ2luLnksIHIuc2l6
ZS53aWR0aCwgci5zaXplLmhlaWdodCksIFF0Ojp0cmFuc3BhcmVudCk7CisgICAgfQorI2VuZGlm
CiAKICAgICBFdmVudFJlY29yZCBldmVudDsKICAgICBldmVudC53aGF0ID0gdXBkYXRlRXZ0OwpA
QCAtNDQ4LDE4ICs1MDYsMjkgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIExPRyhFdmVudHMsICJQ
bHVnaW5WaWV3OjpwYWludCgpOiBQYWludCBldmVudCBub3QgYWNjZXB0ZWQiKTsKIAogICAgIENH
Q29udGV4dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKKworI2lmIFBMQVRGT1JNKFFUKQorICAg
IGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBRUGFpbnRlciogcGFpbnRl
ciA9IGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICBwYWludGVyLT5kcmF3UGl4
bWFwKHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgbV9waXhtYXAsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRhcmdldFJlY3QueCgpIC0gZnJhbWVSZWN0KCkueCgpLCB0YXJn
ZXRSZWN0LnkoKSAtIGZyYW1lUmVjdCgpLnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRS
ZWN0LmhlaWdodCgpKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZh
bGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdp
bldpZGdldCgpKQogICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT51cGRhdGUoY29udmVy
dFRvQ29udGFpbmluZ1dpbmRvdyhyZWN0KSk7CisgICAgZWxzZSB7CisgICAgICAgIGludmFsaWRh
dGVXaW5kb3dsZXNzUGx1Z2luUmVjdChyZWN0KTsKKyAgICB9CiB9CiAKIHZvaWQgUGx1Z2luVmll
dzo6aW52YWxpZGF0ZVJlY3QoTlBSZWN0KiByZWN0KQogewotICAgIC8vIFRPRE86IG9wdGltaXpl
Ci0gICAgaW52YWxpZGF0ZSgpOworICAgIEludFJlY3QgcihyZWN0LT5sZWZ0LCByZWN0LT50b3As
IHJlY3QtPnJpZ2h0ICsgcmVjdC0+bGVmdCwgcmVjdC0+Ym90dG9tICsgcmVjdC0+dG9wKTsKKyAg
ICBpbnZhbGlkYXRlUmVjdChyKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVn
aW9uKE5QUmVnaW9uIHJlZ2lvbikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43252</attachid>
            <date>2009-11-15 13:53:09 -0800</date>
            <delta_ts>2009-11-16 02:05:57 -0800</delta_ts>
            <desc>Implement plugin rendering (2)</desc>
            <filename>take2</filename>
            <type>text/plain</type>
            <size>9012</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDI0MTc0NTc2NmFhZDJiNGZiODJiMWRmYzFiYzhkMWQzODNlMjk5MGUKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KRGF0ZTogICBTdW4gTm92
IDE1IDIzOjE4OjQ2IDIwMDkgKzA1MzAKCiAgICBJbXBsZW1lbnQgdmlld2xlc3MgcGx1Z2lucyBv
biB0aGUgTWFjLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzc2ZDRhZC4uNWZiN2MyZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAwOS0xMS0xNSAg
R2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgUGF0Y2ggYnkgWW9uZ2p1biBaaGFu
ZyA8eW9uZ2p1bi56aGFuZ0Bub2tpYS5jb20+IGFuZAorICAgICAgICAgICAgICAgICBHaXJpc2gg
UmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CisKKyAgICAgICAgSW1wbGVtZW50
IHN1cHBvcnQgZm9yIHJlbmRlcmluZyBwbHVnaW5zIG9uIFF0L01hYyB3aGVuIGEgcGFnZSBpcyB1
c2VkCisgICAgICAgIHdpdGhvdXQgYSBRV2ViVmlldyBvciB3aGVuIGluc2lkZSBRR3JhcGhpY3NX
ZWJWaWV3LiBJbiB0aGVzZSBzY2VuZWFyaW9zLAorICAgICAgICBXZSBzZXQgdGhlIHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0IHRvIDAgYW5kIHBhaW50IHRoZSBwbHVnaW4gIGNvbnRlbnQgdG8gYSAKKyAg
ICAgICAgUVBpeG1hcC4gCisgICAgICAgIAorICAgICAgICBJbiBhZGRpdGlvbiwgd2UgY3JlYXRl
IGEgZmFrZSB3aW5kb3cgYW5kIHNldCBpdCdzIFdpbmRvd1JlZiBpbiBOUFdpbmRvdy4gCisgICAg
ICAgIE9ubHkgd2l0aCB0aGlzIFdpbmRvd1JlZiBkb2VzIEZsYXNoIHBhaW50IGNvcnJlY3RseSB0
byB0aGUgUVBpeG1hcC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzExODMKKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAgICAgICAgKiBwbHVnaW5z
L1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1EZXN0cm95KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0
KToKKwogMjAwOS0xMS0xMCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
aW5kZXggNzdiNzUyMy4uNTM4MGEzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blZpZXcuY3BwCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtODE3LDYg
KzgxNywxMCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2lmIGRlZmluZWQoWFBfTUFDT1NY
KQogICAgICwgbV9kcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwoLTEpKQogICAgICwgbV9ldmVu
dE1vZGVsKE5QRXZlbnRNb2RlbCgtMSkpCisjaWYgUExBVEZPUk0oUVQpCisgICAgLCBtX2NvbnRl
eHRSZWYoTlVMTCkKKyAgICAsIG1fZmFrZVdpbmRvdyhOVUxMKQorI2VuZGlmCiAjZW5kaWYKICNp
ZiBkZWZpbmVkKFFfV1NfWDExKSAmJiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICAs
IG1faGFzUGVuZGluZ0dlb21ldHJ5Q2hhbmdlKGZhbHNlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
bHVnaW5zL1BsdWdpblZpZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXgg
MGE1N2ZhNi4uOTg1ZWZkZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcu
aAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xLDYgKzEsNyBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBHaXJpc2ggUmFtYWtyaXNobmFuIDxn
aXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTUwLDYgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwogdHlwZWRlZiBIV05E
IFBsYXRmb3JtUGx1Z2luV2lkZ2V0OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxh
dGZvcm1QbHVnaW5XaWRnZXQ7CisjaWYgZGVmaW5lZChYUF9NQUNPU1gpCisjaW5jbHVkZSA8UVBp
eG1hcD4KKyNlbmRpZgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzI3LDYgKzMzMSwx
MSBAQCBwcml2YXRlOgogICAgICAgICBPd25QdHI8VGltZXI8UGx1Z2luVmlldz4gPiBtX251bGxF
dmVudFRpbWVyOwogICAgICAgICBOUERyYXdpbmdNb2RlbCBtX2RyYXdpbmdNb2RlbDsKICAgICAg
ICAgTlBFdmVudE1vZGVsIG1fZXZlbnRNb2RlbDsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAg
UVBpeG1hcCBtX3BpeG1hcDsKKyAgICAgICAgQ0dDb250ZXh0UmVmIG1fY29udGV4dFJlZjsKKyAg
ICAgICAgV2luZG93UmVmIG1fZmFrZVdpbmRvdzsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0
TlBXaW5kb3dJZk5lZWRlZCgpOwogICAgICAgICB2b2lkIG51bGxFdmVudFRpbWVyRmlyZWQoVGlt
ZXI8UGx1Z2luVmlldz4qKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5jcHAgYi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4
IDY1MjFjODQuLmIxMTZhODkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2lu
Vmlld01hYy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApA
QCAtMiw2ICsyLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
R2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC03NSw2ICs3Niw3IEBAIHVzaW5nIEpTQzo6VVN0cmluZzsK
ICNpZiBQTEFURk9STShRVCkKICNpbmNsdWRlIDxRV2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVu
dD4KKyNpbmNsdWRlIDxRUGFpbnRlcj4KICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogUVRf
QkVHSU5fTkFNRVNQQUNFCiAjaWYgUVRfVkVSU0lPTiA8IDB4MDQwNTAwCkBAIC0xNzQsOSArMTc2
LDE2IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAKICNpZiBQTEFURk9STShR
VCkKICAgICBpZiAoUVdlYlBhZ2VDbGllbnQqIGNsaWVudCA9IG1fcGFyZW50RnJhbWUtPnZpZXco
KS0+aG9zdFdpbmRvdygpLT5wbGF0Zm9ybVBhZ2VDbGllbnQoKSkgewotICAgICAgICBpZiAoUVdp
ZGdldCogd2lkZ2V0ID0gY2xpZW50LT5vd25lcldpZGdldCgpKSB7CisgICAgICAgIGlmIChRV2lk
Z2V0KiB3aWRnZXQgPSBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1Z2luUGFyZW50
KCkpKQogICAgICAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQod2lkZ2V0KTsKLSAgICAg
ICAgfQorICAgICAgICBlbHNlCisgICAgICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCgw
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0UGxhdGZvcm1QbHVnaW5XaWRnZXQoMCk7CisKKyAg
ICBpZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgOjpSZWN0IHdpbmRvd19i
b3VuZHMgPSB7IDAsIDAsIDEwMCwgMTAwIH07CisgICAgICAgIENyZWF0ZU5ld1dpbmRvdyhrRG9j
dW1lbnRXaW5kb3dDbGFzcywga1dpbmRvd1N0YW5kYXJkRG9jdW1lbnRBdHRyaWJ1dGVzLCAmd2lu
ZG93X2JvdW5kcywgJm1fZmFrZVdpbmRvdyk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTE5Myw2ICsy
MDIsMTMgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogewogICAgIGlmIChw
bGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCgw
KTsKKyAgICBlbHNlIHsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgQ0dDb250ZXh0UmVsZWFz
ZShtX2NvbnRleHRSZWYpOworICAgICAgICBpZiAobV9mYWtlV2luZG93KQorICAgICAgICAgICAg
RGlzcG9zZVdpbmRvdyhtX2Zha2VXaW5kb3cpOworI2VuZGlmCisgICAgfQogfQogCiAvLyBVc2Vk
IGJlZm9yZSB0aGUgcGx1Z2luIHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgcHJvcGVybHksIGFu
ZCBhcyBhCkBAIC0zNTcsMTUgKzM3MywyNiBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93
SWZOZWVkZWQoKQogICAgIGlmICghbV9pc1N0YXJ0ZWQgfHwgIXBhcmVudCgpIHx8ICFtX3BsdWdp
bi0+cGx1Z2luRnVuY3MoKS0+c2V0d2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBDR0Nv
bnRleHRSZWYgbmV3Q29udGV4dFJlZiA9IGNnSGFuZGxlRm9yKHBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCkpOwotICAgIGlmICghbmV3Q29udGV4dFJlZikKKyAgICBDR0NvbnRleHRSZWYgbmV3Q29udGV4
dFJlZiA9IE5VTEw7CisgICAgV2luZG93UmVmIG5ld1dpbmRvd1JlZiA9IE5VTEw7CisKKyAgICBp
ZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBuZXdDb250ZXh0UmVmID0gY2dI
YW5kbGVGb3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgICAgIG5ld1dpbmRvd1JlZiA9
IG5hdGl2ZVdpbmRvd0ZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKKyAgICAgICAgbV9ucFdp
bmRvdy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93OworICAgIH0gZWxzZSB7CisjaWYgUExBVEZP
Uk0oUVQpCisgICAgICAgIG5ld0NvbnRleHRSZWYgPSBtX2NvbnRleHRSZWY7CisgICAgICAgIG5l
d1dpbmRvd1JlZiA9IG1fZmFrZVdpbmRvdzsKKyAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBX
aW5kb3dUeXBlRHJhd2FibGU7CisjZWxzZQogICAgICAgICByZXR1cm47CisjZW5kaWYKKyAgICB9
CiAKLSAgICBXaW5kb3dSZWYgbmV3V2luZG93UmVmID0gbmF0aXZlV2luZG93Rm9yKHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCkpOwotICAgIGlmICghbmV3V2luZG93UmVmKQorICAgIGlmICghbmV3Q29u
dGV4dFJlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5k
b3dUeXBlV2luZG93OwogICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZvaWQqKSZtX25wQ2dDb250
ZXh0OwogICAgIG1fbnBDZ0NvbnRleHQud2luZG93ID0gbmV3V2luZG93UmVmOwogICAgIG1fbnBD
Z0NvbnRleHQuY29udGV4dCA9IG5ld0NvbnRleHRSZWY7CkBAIC00MDksNiArNDM2LDE1IEBAIHZv
aWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBJbnRQb2ludCBvZmZzZXQg
PSB0b3BMZXZlbE9mZnNldEZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKICAgICBtX3dpbmRv
d1JlY3QubW92ZShvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsKIAorI2lmIFBMQVRGT1JNKFFUKQor
ICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9
IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7CisgICAgICAgIENHQ29udGV4dFJlbGVhc2UobV9jb250
ZXh0UmVmKTsKKyAgICAgICAgbV9waXhtYXAgPSBRUGl4bWFwKG1fd2luZG93UmVjdC5zaXplKCkp
OworICAgICAgICBtX3BpeG1hcC5maWxsKFF0Ojp0cmFuc3BhcmVudCk7CisgICAgICAgIG1fY29u
dGV4dFJlZiA9IHF0X21hY19jZ19jb250ZXh0KCZtX3BpeG1hcCk7CisgICAgfQorI2VuZGlmCisK
ICAgICBtX2NsaXBSZWN0ID0gd2luZG93Q2xpcFJlY3QoKTsKICAgICBtX2NsaXBSZWN0Lm1vdmUo
LW1fd2luZG93UmVjdC54KCksIC1tX3dpbmRvd1JlY3QueSgpKTsKIApAQCAtNDMzLDggKzQ2OSwy
OSBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0dDb250ZXh0U2F2ZUdT
dGF0ZShjZ0NvbnRleHQpOwotICAgIEludFBvaW50IG9mZnNldCA9IGZyYW1lUmVjdCgpLmxvY2F0
aW9uKCk7Ci0gICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0LngoKSwg
b2Zmc2V0LnkoKSk7CisgICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAg
SW50UG9pbnQgb2Zmc2V0ID0gZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgQ0dDb250
ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7CisgICAg
fQorCisgICAgSW50UmVjdCB0YXJnZXRSZWN0KGZyYW1lUmVjdCgpKTsKKyAgICB0YXJnZXRSZWN0
LmludGVyc2VjdHMocmVjdCk7CisKKyAgICAvLyBjbGlwIHRoZSBjb250ZXh0IHNvIHRoYXQgcGx1
Z2luIG9ubHkgdXBkYXRlcyB0aGUgaW50ZXJlc3RlZCBhcmVhLgorICAgIENHUmVjdCByOworICAg
IHIub3JpZ2luLnggPSB0YXJnZXRSZWN0LngoKSAtIGZyYW1lUmVjdCgpLngoKTsKKyAgICByLm9y
aWdpbi55ID0gdGFyZ2V0UmVjdC55KCkgLSBmcmFtZVJlY3QoKS55KCk7CisgICAgci5zaXplLndp
ZHRoID0gdGFyZ2V0UmVjdC53aWR0aCgpOworICAgIHIuc2l6ZS5oZWlnaHQgPSB0YXJnZXRSZWN0
LmhlaWdodCgpOworICAgIENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCByKTsKKworI2lm
IFBMQVRGT1JNKFFUKQorICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSAmJiBtX2lzVHJh
bnNwYXJlbnQpIHsgLy8gY2xlYW4gdGhlIHBpeG1hcCBpbiB0cmFuc3BhcmVudCBtb2RlCisgICAg
ICAgIFFQYWludGVyIHBhaW50ZXIoJm1fcGl4bWFwKTsKKyAgICAgICAgcGFpbnRlci5zZXRDb21w
b3NpdGlvbk1vZGUoUVBhaW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAgICAgIHBh
aW50ZXIuZmlsbFJlY3QoUVJlY3RGKHIub3JpZ2luLngsIHIub3JpZ2luLnksIHIuc2l6ZS53aWR0
aCwgci5zaXplLmhlaWdodCksIFF0Ojp0cmFuc3BhcmVudCk7CisgICAgfQorI2VuZGlmCiAKICAg
ICBFdmVudFJlY29yZCBldmVudDsKICAgICBldmVudC53aGF0ID0gdXBkYXRlRXZ0OwpAQCAtNDQ4
LDE4ICs1MDUsMjggQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIExPRyhFdmVudHMsICJQbHVnaW5W
aWV3OjpwYWludCgpOiBQYWludCBldmVudCBub3QgYWNjZXB0ZWQiKTsKIAogICAgIENHQ29udGV4
dFJlc3RvcmVHU3RhdGUoY2dDb250ZXh0KTsKKworI2lmIFBMQVRGT1JNKFFUKQorICAgIGlmICgh
cGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBRUGFpbnRlciogcGFpbnRlciA9IGNv
bnRleHQtPnBsYXRmb3JtQ29udGV4dCgpOworICAgICAgICBwYWludGVyLT5kcmF3UGl4bWFwKHRh
cmdldFJlY3QueCgpLCB0YXJnZXRSZWN0LnkoKSwgbV9waXhtYXAsIAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRhcmdldFJlY3QueCgpIC0gZnJhbWVSZWN0KCkueCgpLCB0YXJnZXRSZWN0
LnkoKSAtIGZyYW1lUmVjdCgpLnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0Lmhl
aWdodCgpKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRl
UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdl
dCgpKQogICAgICAgICBwbGF0Zm9ybVBsdWdpbldpZGdldCgpLT51cGRhdGUoY29udmVydFRvQ29u
dGFpbmluZ1dpbmRvdyhyZWN0KSk7CisgICAgZWxzZQorICAgICAgICBpbnZhbGlkYXRlV2luZG93
bGVzc1BsdWdpblJlY3QocmVjdCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJl
Y3QoTlBSZWN0KiByZWN0KQogewotICAgIC8vIFRPRE86IG9wdGltaXplCi0gICAgaW52YWxpZGF0
ZSgpOworICAgIEludFJlY3QgcihyZWN0LT5sZWZ0LCByZWN0LT50b3AsIHJlY3QtPnJpZ2h0ICsg
cmVjdC0+bGVmdCwgcmVjdC0+Ym90dG9tICsgcmVjdC0+dG9wKTsKKyAgICBpbnZhbGlkYXRlUmVj
dChyKTsKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVnaW9uKE5QUmVnaW9uIHJl
Z2lvbikK
</data>
<flag name="review"
          id="24958"
          type_id="1"
          status="-"
          setter="girish"
    />
    <flag name="commit-queue"
          id="24959"
          type_id="3"
          status="-"
          setter="girish"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43280</attachid>
            <date>2009-11-16 02:05:57 -0800</date>
            <delta_ts>2009-11-18 01:26:52 -0800</delta_ts>
            <desc>Implement plugin rendering (3)</desc>
            <filename>popa</filename>
            <type>text/plain</type>
            <size>10763</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDI0ODczOWZlNjliZWZjZDJkYzYwMjg4NmJlYTEwNWQxZjQ2OTE4NzMKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KRGF0ZTogICBNb24gTm92
IDE2IDE1OjI2OjQyIDIwMDkgKzA1MzAKCiAgICBQYXRjaCBieSBZb25nanVuIFpoYW5nIDx5b25n
anVuLnpoYW5nQG5va2lhLmNvbT4gYW5kCiAgICAgICAgICAgICBHaXJpc2ggUmFtYWtyaXNobmFu
IDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAgICAKICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBy
ZW5kZXJpbmcgcGx1Z2lucyBvbiBRdC9NYWMgd2hlbiBhIHBhZ2UgaXMgdXNlZAogICAgd2l0aG91
dCBhIFFXZWJWaWV3IG9yIHdoZW4gaW5zaWRlIFFHcmFwaGljc1dlYlZpZXcuCiAgICAKICAgIEN1
cnJlbnRseSwgdGhlIGNvZGUgcHJvdmlkZXMgdGhlIGNnY29udGV4dCBvZiB0aGUgUGxhdGZvcm1Q
bHVnaW5XaWRnZXQgdG8KICAgIHRoZSBwbHVnaW4uIFRoaXMgYXBwcm9hY2ggZG9lcyBub3Qgd29y
ayB3aGVuIHdlIGFyZSBwcmludGluZywgb3IgdXNpbmcKICAgIFFXZWJGcmFtZTo6cmVuZGVyKCkg
dG8gcmVuZGVyIHRvIGEgUUltYWdlL1FQaXhtYXAgc2luY2UgdGhlIHBsdWdpbiBlbmRzCiAgICB1
cCBkcmF3aW5nIG9uIHRoZSBRV2ViVmlldyAoaS5lIHBsYXRmb3JtUGx1Z2luV2lkZ2V0J3MgY2dj
b250ZXh0KSBpbnN0ZWFkCiAgICBvZiB0aGUgUVBhaW50RGV2aWNlJ3MgY29udGV4dC4KICAgIAog
ICAgVG8gc29sdmUgYWxsIGNhc2VzIGFuZCBrZWVwIHRoZSBjb2RlIHNpbXBsZSwgd2UgcmVuZGVy
IHRoZSBwbHVnaW4gdG8gYW4KICAgIG9mZnNjcmVlbiBwaXhtYXAgaW4gYWxsIGNhc2VzLiBUaGlz
IHdheSwgdGhlIHBsdWdpbiBhbHdheXMgcmVuZGVycyB0byB0aGUKICAgIENHQ29udGV4dCBvZiB0
aGUgcGl4bWFwIGFuZCB3ZSB0aGVuIHVzZSBRUGFpbnRlciB0byBibGl0IHRoZSBwaXhtYXAgaW50
bwogICAgdGhlIFFQYWludERldmljZS4KICAgIAogICAgV2UgY3JlYXRlIGEgZmFrZSB3aW5kb3cg
YW5kIHNldCBpdCdzIFdpbmRvd1JlZiBpbiBOUFdpbmRvdy4gT25seSB3aXRoCiAgICB0aGlzIFdp
bmRvd1JlZiBkb2VzIEZsYXNoIHBhaW50IGNvcnJlY3RseSB0byB0aGUgUVBpeG1hcC4gQVRNLCBt
b3VzZSBldmVudHMKICAgIGRvIG5vdCB3b3JrIHdoZW4gdXNpbmcgdGhlIGZha2Ugd2luZG93Lgog
ICAgCiAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzExODMKCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM3
NmQ0YWQuLjBjYjY4OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMDktMTEtMTYgIEdpcmlzaCBSYW1ha3Jp
c2huYW4gIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBieSBZb25nanVuIFpoYW5nIDx5b25nanVuLnpo
YW5nQG5va2lhLmNvbT4gYW5kCisgICAgICAgIEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBm
b3J3YXJkYmlhcy5pbj4KKyAgICAgICAgCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBy
ZW5kZXJpbmcgcGx1Z2lucyBvbiBRdC9NYWMgd2hlbiBhIHBhZ2UgaXMgdXNlZAorICAgICAgICB3
aXRob3V0IGEgUVdlYlZpZXcgb3Igd2hlbiBpbnNpZGUgUUdyYXBoaWNzV2ViVmlldy4KKyAgICAg
ICAgCisgICAgICAgIEN1cnJlbnRseSwgdGhlIGNvZGUgcHJvdmlkZXMgdGhlIGNnY29udGV4dCBv
ZiB0aGUgUGxhdGZvcm1QbHVnaW5XaWRnZXQgdG8KKyAgICAgICAgdGhlIHBsdWdpbi4gVGhpcyBh
cHByb2FjaCBkb2VzIG5vdCB3b3JrIHdoZW4gd2UgYXJlIHByaW50aW5nLCBvciB1c2luZworICAg
ICAgICBRV2ViRnJhbWU6OnJlbmRlcigpIHRvIHJlbmRlciB0byBhIFFJbWFnZS9RUGl4bWFwIHNp
bmNlIHRoZSBwbHVnaW4gZW5kcworICAgICAgICB1cCBkcmF3aW5nIG9uIHRoZSBRV2ViVmlldyAo
aS5lIHBsYXRmb3JtUGx1Z2luV2lkZ2V0J3MgY2djb250ZXh0KSBpbnN0ZWFkCisgICAgICAgIG9m
IHRoZSBRUGFpbnREZXZpY2UncyBjb250ZXh0LgorICAgICAgICAKKyAgICAgICAgVG8gc29sdmUg
YWxsIGNhc2VzIGFuZCBrZWVwIHRoZSBjb2RlIHNpbXBsZSwgd2UgcmVuZGVyIHRoZSBwbHVnaW4g
dG8gYW4KKyAgICAgICAgb2Zmc2NyZWVuIHBpeG1hcCBpbiBhbGwgY2FzZXMuIFRoaXMgd2F5LCB0
aGUgcGx1Z2luIGFsd2F5cyByZW5kZXJzIHRvIHRoZQorICAgICAgICBDR0NvbnRleHQgb2YgdGhl
IHBpeG1hcCBhbmQgd2UgdGhlbiB1c2UgUVBhaW50ZXIgdG8gYmxpdCB0aGUgcGl4bWFwIGludG8K
KyAgICAgICAgdGhlIFFQYWludERldmljZS4KKyAgICAgICAgCisgICAgICAgIFdlIGNyZWF0ZSBh
IGZha2Ugd2luZG93IGFuZCBzZXQgaXQncyBXaW5kb3dSZWYgaW4gTlBXaW5kb3cuIE9ubHkgd2l0
aAorICAgICAgICB0aGlzIFdpbmRvd1JlZiBkb2VzIEZsYXNoIHBhaW50IGNvcnJlY3RseSB0byB0
aGUgUVBpeG1hcC4gQVRNLCBtb3VzZSBldmVudHMKKyAgICAgICAgZG8gbm90IHdvcmsgd2hlbiB1
c2luZyB0aGUgZmFrZSB3aW5kb3cuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzExODMKKworICAgICAgICAqIHBsdWdpbnMvUGx1Z2lu
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KToKKyAg
ICAgICAgKiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL21hYy9QbHVn
aW5WaWV3TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5hdGl2ZVdpbmRvd0Zvcik6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpQbHVn
aW5WaWV3OjpzZXROUFdpbmRvd0lmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZp
ZXc6OnVwZGF0ZVBsdWdpbldpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpw
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdCk6CisK
IDIwMDktMTEtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4
IDc3Yjc1MjMuLjk5MzhmNmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTgxNyw2ICs4MTcs
MTAgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IElu
dFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICNpZiBkZWZpbmVkKFhQX01BQ09TWCkKICAg
ICAsIG1fZHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsKC0xKSkKICAgICAsIG1fZXZlbnRNb2Rl
bChOUEV2ZW50TW9kZWwoLTEpKQorI2lmIFBMQVRGT1JNKFFUKQorICAgICwgbV9jb250ZXh0UmVm
KDApCisgICAgLCBtX2Zha2VXaW5kb3coMCkKKyNlbmRpZgogI2VuZGlmCiAjaWYgZGVmaW5lZChR
X1dTX1gxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX2hhc1BlbmRp
bmdHZW9tZXRyeUNoYW5nZShmYWxzZSkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmggYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IDBhNTdmYTYuLjk4
NWVmZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysrIGIvV2Vi
Q29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndh
cmRiaWFzLmluPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MCw2ICs1MSw5
IEBAIHR5cGVkZWYgc3RydWN0IEhXTkRfXyogSFdORDsKIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVBs
dWdpbldpZGdldDsKICNlbHNlCiB0eXBlZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGx1Z2lu
V2lkZ2V0OworI2lmIGRlZmluZWQoWFBfTUFDT1NYKQorI2luY2x1ZGUgPFFQaXhtYXA+CisjZW5k
aWYKICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMyNyw2ICszMzEsMTEgQEAgcHJpdmF0
ZToKICAgICAgICAgT3duUHRyPFRpbWVyPFBsdWdpblZpZXc+ID4gbV9udWxsRXZlbnRUaW1lcjsK
ICAgICAgICAgTlBEcmF3aW5nTW9kZWwgbV9kcmF3aW5nTW9kZWw7CiAgICAgICAgIE5QRXZlbnRN
b2RlbCBtX2V2ZW50TW9kZWw7CisjaWYgUExBVEZPUk0oUVQpCisgICAgICAgIFFQaXhtYXAgbV9w
aXhtYXA7CisgICAgICAgIENHQ29udGV4dFJlZiBtX2NvbnRleHRSZWY7CisgICAgICAgIFdpbmRv
d1JlZiBtX2Zha2VXaW5kb3c7CisjZW5kaWYKIAogICAgICAgICB2b2lkIHNldE5QV2luZG93SWZO
ZWVkZWQoKTsKICAgICAgICAgdm9pZCBudWxsRXZlbnRUaW1lckZpcmVkKFRpbWVyPFBsdWdpblZp
ZXc+Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3Bw
IGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAppbmRleCA2NTIxYzg0Li44
ZDg2ZjgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3Bw
CisrKyBiL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKQEAgLTIsNiArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IEdpcmlzaCBSYW1h
a3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtNzUsNiArNzYsNyBAQCB1c2luZyBKU0M6OlVTdHJpbmc7CiAjaWYgUExBVEZP
Uk0oUVQpCiAjaW5jbHVkZSA8UVdpZGdldD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5jbHVk
ZSA8UVBhaW50ZXI+CiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKIFFUX0JFR0lOX05BTUVT
UEFDRQogI2lmIFFUX1ZFUlNJT04gPCAweDA0MDUwMApAQCAtOTgsOCArMTAwLDEwIEBAIHN0YXRp
YyBpbnQgbW9kaWZpZXJzRm9yRXZlbnQoVUlFdmVudFdpdGhLZXlTdGF0ZSAqZXZlbnQpOwogc3Rh
dGljIGlubGluZSBXaW5kb3dSZWYgbmF0aXZlV2luZG93Rm9yKFBsYXRmb3JtV2lkZ2V0IHdpZGdl
dCkKIHsKICNpZiBQTEFURk9STShRVCkKLSAgICBpZiAod2lkZ2V0KQorICAgIGlmICh3aWRnZXQp
IHsKKyAgICAgICAgKHZvaWQpIHdpZGdldC0+d2luSWQoKTsgLy8gY3JlYXRlIHRoZSBOU1ZpZXcv
SElWaWV3CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXaW5kb3dSZWY+KHF0X21hY193aW5k
b3dfZm9yKHdpZGdldCkpOworICAgIH0KICNlbmRpZgogICAgIHJldHVybiAwOwogfQpAQCAtMTc0
LDEwICsxNzgsMTIgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVN0YXJ0KCkKIAogI2lmIFBM
QVRGT1JNKFFUKQogICAgIGlmIChRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV9wYXJlbnRGcmFt
ZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFnZUNsaWVudCgpKSB7Ci0gICAgICAg
IGlmIChRV2lkZ2V0KiB3aWRnZXQgPSBjbGllbnQtPm93bmVyV2lkZ2V0KCkpIHsKKyAgICAgICAg
aWYgKFFXaWRnZXQqIHdpZGdldCA9IHFvYmplY3RfY2FzdDxRV2lkZ2V0Kj4oY2xpZW50LT5wbHVn
aW5QYXJlbnQoKSkpCiAgICAgICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCh3aWRnZXQp
OwotICAgICAgICB9CiAgICAgfQorCisgICAgOjpSZWN0IHdpbmRvd0JvdW5kcyA9IHsgMCwgMCwg
MTAwLCAxMDAgfTsKKyAgICBDcmVhdGVOZXdXaW5kb3coa0RvY3VtZW50V2luZG93Q2xhc3MsIGtX
aW5kb3dTdGFuZGFyZERvY3VtZW50QXR0cmlidXRlcywgJndpbmRvd0JvdW5kcywgJm1fZmFrZVdp
bmRvdyk7CiAjZW5kaWYKIAogICAgIHNob3coKTsKQEAgLTE5Myw2ICsxOTksMTIgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldp
ZGdldCgpKQogICAgICAgICBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCgwKTsKKworI2lmIFBMQVRG
T1JNKFFUKQorICAgIENHQ29udGV4dFJlbGVhc2UobV9jb250ZXh0UmVmKTsKKyAgICBpZiAobV9m
YWtlV2luZG93KQorICAgICAgICBEaXNwb3NlV2luZG93KG1fZmFrZVdpbmRvdyk7CisjZW5kaWYK
IH0KIAogLy8gVXNlZCBiZWZvcmUgdGhlIHBsdWdpbiB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVk
IHByb3Blcmx5LCBhbmQgYXMgYQpAQCAtMzU3LDE1ICszNjksMjIgQEAgdm9pZCBQbHVnaW5WaWV3
OjpzZXROUFdpbmRvd0lmTmVlZGVkKCkKICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQo
KSB8fCAhbV9wbHVnaW4tPnBsdWdpbkZ1bmNzKCktPnNldHdpbmRvdykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgQ0dDb250ZXh0UmVmIG5ld0NvbnRleHRSZWYgPSBjZ0hhbmRsZUZvcihwbGF0Zm9y
bVBsdWdpbldpZGdldCgpKTsKLSAgICBpZiAoIW5ld0NvbnRleHRSZWYpCisjaWYgUExBVEZPUk0o
UVQpCisgICAgQ0dDb250ZXh0UmVmIG5ld0NvbnRleHRSZWYgPSBtX2NvbnRleHRSZWY7CisgICAg
V2luZG93UmVmIG5ld1dpbmRvd1JlZiA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkgPyBuYXRpdmVX
aW5kb3dGb3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgOiBtX2Zha2VXaW5kb3c7CisgICAgbV9u
cFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisjZWxzZQorICAgIGlmICghcGxh
dGZvcm1QbHVnaW5XaWRnZXQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQ0dDb250ZXh0UmVm
IG5ld0NvbnRleHRSZWYgPSBjZ0hhbmRsZUZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKICAg
ICBXaW5kb3dSZWYgbmV3V2luZG93UmVmID0gbmF0aXZlV2luZG93Rm9yKHBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KCkpOwotICAgIGlmICghbmV3V2luZG93UmVmKQorICAgIG1fbnBXaW5kb3cudHlwZSA9
IE5QV2luZG93VHlwZVdpbmRvdzsKKyNlbmRpZgorCisgICAgaWYgKCFuZXdDb250ZXh0UmVmKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBtX25wV2luZG93LnR5cGUgPSBOUFdpbmRvd1R5cGVXaW5k
b3c7CiAgICAgbV9ucFdpbmRvdy53aW5kb3cgPSAodm9pZCopJm1fbnBDZ0NvbnRleHQ7CiAgICAg
bV9ucENnQ29udGV4dC53aW5kb3cgPSBuZXdXaW5kb3dSZWY7CiAgICAgbV9ucENnQ29udGV4dC5j
b250ZXh0ID0gbmV3Q29udGV4dFJlZjsKQEAgLTQwOSw2ICs0MjgsMTUgQEAgdm9pZCBQbHVnaW5W
aWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQoKQogICAgIEludFBvaW50IG9mZnNldCA9IHRvcExldmVs
T2Zmc2V0Rm9yKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwogICAgIG1fd2luZG93UmVjdC5tb3Zl
KG9mZnNldC54KCksIG9mZnNldC55KCkpOwogCisjaWYgUExBVEZPUk0oUVQpCisgICAgaWYgKG1f
d2luZG93UmVjdC5zaXplKCkgIT0gb2xkV2luZG93UmVjdC5zaXplKCkpIHsKKyAgICAgICAgQ0dD
b250ZXh0UmVsZWFzZShtX2NvbnRleHRSZWYpOworICAgICAgICBtX3BpeG1hcCA9IFFQaXhtYXAo
bV93aW5kb3dSZWN0LnNpemUoKSk7CisgICAgICAgIG1fcGl4bWFwLmZpbGwoUXQ6OnRyYW5zcGFy
ZW50KTsKKyAgICAgICAgbV9jb250ZXh0UmVmID0gcXRfbWFjX2NnX2NvbnRleHQoJm1fcGl4bWFw
KTsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fY2xpcFJlY3QgPSB3aW5kb3dDbGlwUmVjdCgpOwog
ICAgIG1fY2xpcFJlY3QubW92ZSgtbV93aW5kb3dSZWN0LngoKSwgLW1fd2luZG93UmVjdC55KCkp
OwogCkBAIC00MzMsOCArNDYxLDMxIEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3ND
b250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICByZXR1cm47CiAK
ICAgICBDR0NvbnRleHRTYXZlR1N0YXRlKGNnQ29udGV4dCk7Ci0gICAgSW50UG9pbnQgb2Zmc2V0
ID0gZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKLSAgICBDR0NvbnRleHRUcmFuc2xhdGVDVE0oY2dD
b250ZXh0LCBvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsKKyNpZiAhUExBVEZPUk0oUVQpCisgICAg
aWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgSW50UG9pbnQgb2Zmc2V0ID0g
ZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RNKGNn
Q29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7CisgICAgfQorI2VuZGlmCisKKyAgICBJ
bnRSZWN0IHRhcmdldFJlY3QoZnJhbWVSZWN0KCkpOworICAgIHRhcmdldFJlY3QuaW50ZXJzZWN0
cyhyZWN0KTsKKworICAgIC8vIGNsaXAgdGhlIGNvbnRleHQgc28gdGhhdCBwbHVnaW4gb25seSB1
cGRhdGVzIHRoZSBpbnRlcmVzdGVkIGFyZWEuCisgICAgQ0dSZWN0IHI7CisgICAgci5vcmlnaW4u
eCA9IHRhcmdldFJlY3QueCgpIC0gZnJhbWVSZWN0KCkueCgpOworICAgIHIub3JpZ2luLnkgPSB0
YXJnZXRSZWN0LnkoKSAtIGZyYW1lUmVjdCgpLnkoKTsKKyAgICByLnNpemUud2lkdGggPSB0YXJn
ZXRSZWN0LndpZHRoKCk7CisgICAgci5zaXplLmhlaWdodCA9IHRhcmdldFJlY3QuaGVpZ2h0KCk7
CisgICAgQ0dDb250ZXh0Q2xpcFRvUmVjdChjZ0NvbnRleHQsIHIpOworCisjaWYgUExBVEZPUk0o
UVQpCisgICAgaWYgKG1faXNUcmFuc3BhcmVudCkgeyAvLyBjbGVhbiB0aGUgcGl4bWFwIGluIHRy
YW5zcGFyZW50IG1vZGUKKyAgICAgICAgUVBhaW50ZXIgcGFpbnRlcigmbV9waXhtYXApOworICAg
ICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25Nb2Rl
X0NsZWFyKTsKKyAgICAgICAgcGFpbnRlci5maWxsUmVjdChRUmVjdEYoci5vcmlnaW4ueCwgci5v
cmlnaW4ueSwgci5zaXplLndpZHRoLCByLnNpemUuaGVpZ2h0KSwgUXQ6OnRyYW5zcGFyZW50KTsK
KyAgICB9CisjZW5kaWYKIAogICAgIEV2ZW50UmVjb3JkIGV2ZW50OwogICAgIGV2ZW50LndoYXQg
PSB1cGRhdGVFdnQ7CkBAIC00NDgsMTggKzQ5OSwyOCBAQCB2b2lkIFBsdWdpblZpZXc6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICAgICAg
TE9HKEV2ZW50cywgIlBsdWdpblZpZXc6OnBhaW50KCk6IFBhaW50IGV2ZW50IG5vdCBhY2NlcHRl
ZCIpOwogCiAgICAgQ0dDb250ZXh0UmVzdG9yZUdTdGF0ZShjZ0NvbnRleHQpOworCisjaWYgUExB
VEZPUk0oUVQpCisgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9ybUNvbnRl
eHQoKTsKKyAgICBwYWludGVyLT5kcmF3UGl4bWFwKHRhcmdldFJlY3QueCgpLCB0YXJnZXRSZWN0
LnkoKSwgbV9waXhtYXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0UmVjdC54KCkg
LSBmcmFtZVJlY3QoKS54KCksIHRhcmdldFJlY3QueSgpIC0gZnJhbWVSZWN0KCkueSgpLCB0YXJn
ZXRSZWN0LndpZHRoKCksIHRhcmdldFJlY3QuaGVpZ2h0KCkpOworI2VuZGlmCiB9CiAKIHZvaWQg
UGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKKyNpZiBQ
TEFURk9STShRVCkKKyAgICBpbnZhbGlkYXRlV2luZG93bGVzc1BsdWdpblJlY3QocmVjdCk7Cisj
ZWxzZQogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBwbGF0Zm9ybVBs
dWdpbldpZGdldCgpLT51cGRhdGUoY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhyZWN0KSk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChOUFJlY3QqIHJlY3Qp
CiB7Ci0gICAgLy8gVE9ETzogb3B0aW1pemUKLSAgICBpbnZhbGlkYXRlKCk7CisgICAgSW50UmVj
dCByKHJlY3QtPmxlZnQsIHJlY3QtPnRvcCwgcmVjdC0+cmlnaHQgKyByZWN0LT5sZWZ0LCByZWN0
LT5ib3R0b20gKyByZWN0LT50b3ApOworICAgIGludmFsaWRhdGVSZWN0KHIpOwogfQogCiB2b2lk
IFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWdpb24oTlBSZWdpb24gcmVnaW9uKQo=
</data>
<flag name="review"
          id="24983"
          type_id="1"
          status="-"
          setter="girish"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43414</attachid>
            <date>2009-11-18 01:26:52 -0800</date>
            <delta_ts>2009-11-19 07:48:20 -0800</delta_ts>
            <desc>Implement Plugin Rendering (4)</desc>
            <filename>foo</filename>
            <type>text/plain</type>
            <size>11391</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IGVmZGRlN2IzNDQxOWZmMWRmODVkYjhkOTYyYjc4NmJlYTMzYTZhZWMKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KRGF0ZTogICBXZWQgTm92
IDE4IDE0OjQyOjE2IDIwMDkgKzA1MzAKCiAgICBQYXRjaCBieSBZb25nanVuIFpoYW5nIDx5b25n
anVuLnpoYW5nQG5va2lhLmNvbT4gYW5kCiAgICAgICAgICAgICBHaXJpc2ggUmFtYWtyaXNobmFu
IDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAgICAKICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBy
ZW5kZXJpbmcgcGx1Z2lucyBvbiBRdC9NYWMgd2hlbiBhIHBhZ2UgaXMgdXNlZAogICAgd2l0aG91
dCBhIFFXZWJWaWV3IG9yIHdoZW4gaW5zaWRlIFFHcmFwaGljc1dlYlZpZXcuCiAgICAKICAgIEN1
cnJlbnRseSwgdGhlIGNvZGUgcHJvdmlkZXMgdGhlIGNnY29udGV4dCBvZiB0aGUgUGxhdGZvcm1Q
bHVnaW5XaWRnZXQgdG8KICAgIHRoZSBwbHVnaW4uIFRoaXMgYXBwcm9hY2ggZG9lcyBub3Qgd29y
ayB3aGVuIHdlIGFyZSBwcmludGluZywgb3IgdXNpbmcKICAgIFFXZWJGcmFtZTo6cmVuZGVyKCkg
dG8gcmVuZGVyIHRvIGEgUUltYWdlL1FQaXhtYXAgc2luY2UgdGhlIHBsdWdpbiBlbmRzCiAgICB1
cCBkcmF3aW5nIG9uIHRoZSBRV2ViVmlldyAoaS5lIHBsYXRmb3JtUGx1Z2luV2lkZ2V0J3MgY2dj
b250ZXh0KSBpbnN0ZWFkCiAgICBvZiB0aGUgUVBhaW50RGV2aWNlJ3MgY29udGV4dC4KICAgIAog
ICAgVG8gc29sdmUgYWxsIGNhc2VzIGFuZCBrZWVwIHRoZSBjb2RlIHNpbXBsZSwgd2UgcmVuZGVy
IHRoZSBwbHVnaW4gdG8gYW4KICAgIG9mZnNjcmVlbiBwaXhtYXAgaW4gYWxsIGNhc2VzLiBUaGlz
IHdheSwgdGhlIHBsdWdpbiBhbHdheXMgcmVuZGVycyB0byB0aGUKICAgIENHQ29udGV4dCBvZiB0
aGUgcGl4bWFwIGFuZCB3ZSB0aGVuIHVzZSBRUGFpbnRlciB0byBibGl0IHRoZSBwaXhtYXAgaW50
bwogICAgdGhlIFFQYWludERldmljZS4gV2UgYWxzbyBjcmVhdGUgYSBmYWtlIHdpbmRvdyBhbmQg
c2V0IGl0J3MgV2luZG93UmVmIGluCiAgICBOUFdpbmRvdy4gT25seSB3aXRoIHRoaXMgV2luZG93
UmVmIGRvZXMgRmxhc2ggcGFpbnQgY29ycmVjdGx5IHRvIHRoZSBRUGl4bWFwLgogICAgCiAgICBO
b3csIHRoYXQncyB0aGUgdGhlb3J5LiBJbiBwcmFjdGljZSwgQVRNLCBtb3VzZSBldmVudHMgZG8g
bm90IHdvcmsgd2hlbiB1c2luZwogICAgdGhlIGZha2Ugd2luZG93LiBTbywgc2V0UGxhdGZvcm1Q
bHVnaW5XaWRnZXQoKSBpcyBzdGlsbCBjYWxsZWQgd2hlbiB1c2luZyBRV2ViVmlldwogICAgc28g
dGhhdCB0aGVyZSBhcmUgbm8gcmVncmVzc2lvbnMgYWZ0ZXIgdGhpcyBwYXRjaC4gT25jZSB3ZSBn
ZXQgbW91c2UgZXZlbnRzCiAgICB3b3JraW5nLCBzZXRQbGF0Zm9ybVBsdWdpbldpZGdldCB3aWxs
IGJlIHJlbW92ZWQuCiAgICAKICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTE4MwoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggYzc2ZDRhZC4uMjgwOTliZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAwOS0xMS0xOCAg
R2lyaXNoIFJhbWFrcmlzaG5hbiAgPGdpcmlzaEBNaW5pLU1lLmxvY2FsPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhdGNoIGJ5IFlvbmdqdW4gWmhh
bmcgPHlvbmdqdW4uemhhbmdAbm9raWEuY29tPiBhbmQKKyAgICAgICAgICAgICAgICAgR2lyaXNo
IFJhbWFrcmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgorICAgICAgICAKKyAgICAgICAg
SW1wbGVtZW50IHN1cHBvcnQgZm9yIHJlbmRlcmluZyBwbHVnaW5zIG9uIFF0L01hYyB3aGVuIGEg
cGFnZSBpcyB1c2VkCisgICAgICAgIHdpdGhvdXQgYSBRV2ViVmlldyBvciB3aGVuIGluc2lkZSBR
R3JhcGhpY3NXZWJWaWV3LgorICAgICAgICAKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgY29kZSBw
cm92aWRlcyB0aGUgY2djb250ZXh0IG9mIHRoZSBQbGF0Zm9ybVBsdWdpbldpZGdldCB0bworICAg
ICAgICB0aGUgcGx1Z2luLiBUaGlzIGFwcHJvYWNoIGRvZXMgbm90IHdvcmsgd2hlbiB3ZSBhcmUg
cHJpbnRpbmcsIG9yIHVzaW5nCisgICAgICAgIFFXZWJGcmFtZTo6cmVuZGVyKCkgdG8gcmVuZGVy
IHRvIGEgUUltYWdlL1FQaXhtYXAgc2luY2UgdGhlIHBsdWdpbiBlbmRzCisgICAgICAgIHVwIGRy
YXdpbmcgb24gdGhlIFFXZWJWaWV3IChpLmUgcGxhdGZvcm1QbHVnaW5XaWRnZXQncyBjZ2NvbnRl
eHQpIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIFFQYWludERldmljZSdzIGNvbnRleHQuCisgICAg
ICAgIAorICAgICAgICBUbyBzb2x2ZSBhbGwgY2FzZXMgYW5kIGtlZXAgdGhlIGNvZGUgc2ltcGxl
LCB3ZSByZW5kZXIgdGhlIHBsdWdpbiB0byBhbgorICAgICAgICBvZmZzY3JlZW4gcGl4bWFwIGlu
IGFsbCBjYXNlcy4gVGhpcyB3YXksIHRoZSBwbHVnaW4gYWx3YXlzIHJlbmRlcnMgdG8gdGhlCisg
ICAgICAgIENHQ29udGV4dCBvZiB0aGUgcGl4bWFwIGFuZCB3ZSB0aGVuIHVzZSBRUGFpbnRlciB0
byBibGl0IHRoZSBwaXhtYXAgaW50bworICAgICAgICB0aGUgUVBhaW50RGV2aWNlLiBXZSBhbHNv
IGNyZWF0ZSBhIGZha2Ugd2luZG93IGFuZCBzZXQgaXQncyBXaW5kb3dSZWYgaW4KKyAgICAgICAg
TlBXaW5kb3cuIE9ubHkgd2l0aCB0aGlzIFdpbmRvd1JlZiBkb2VzIEZsYXNoIHBhaW50IGNvcnJl
Y3RseSB0byB0aGUgUVBpeG1hcC4KKyAgICAgICAgCisgICAgICAgIE5vdywgdGhhdCdzIHRoZSB0
aGVvcnkuIEluIHByYWN0aWNlLCBBVE0sIG1vdXNlIGV2ZW50cyBkbyBub3Qgd29yayB3aGVuIHVz
aW5nCisgICAgICAgIHRoZSBmYWtlIHdpbmRvdy4gU28sIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCkgaXMgc3RpbGwgY2FsbGVkIHdoZW4gdXNpbmcgUVdlYlZpZXcKKyAgICAgICAgc28gdGhhdCB0
aGVyZSBhcmUgbm8gcmVncmVzc2lvbnMgYWZ0ZXIgdGhpcyBwYXRjaC4gT25jZSB3ZSBnZXQgbW91
c2UgZXZlbnRzCisgICAgICAgIHdvcmtpbmcsIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0IHdpbGwg
YmUgcmVtb3ZlZC4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMTE4MworCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAgICAgICAqIHBs
dWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6aW52YWxpZGF0
ZVJlY3QpOgorCiAyMDA5LTExLTEwICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAppbmRleCA3N2I3NTIzLi42MmNlNTE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKKysrIGIvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC04
MTcsNiArODE3LDggQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKICNpZiBkZWZpbmVkKFhQX01B
Q09TWCkKICAgICAsIG1fZHJhd2luZ01vZGVsKE5QRHJhd2luZ01vZGVsKC0xKSkKICAgICAsIG1f
ZXZlbnRNb2RlbChOUEV2ZW50TW9kZWwoLTEpKQorICAgICwgbV9jb250ZXh0UmVmKDApCisgICAg
LCBtX2Zha2VXaW5kb3coMCkKICNlbmRpZgogI2lmIGRlZmluZWQoUV9XU19YMTEpICYmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICwgbV9oYXNQZW5kaW5nR2VvbWV0cnlDaGFuZ2Uo
ZmFsc2UpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvV2ViQ29y
ZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCAwYTU3ZmE2Li4xMTJkMzNlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1dlYkNvcmUvcGx1Z2lucy9QbHVn
aW5WaWV3LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsNiArNTEsOSBAQCB0eXBlZGVmIHN0cnVj
dCBIV05EX18qIEhXTkQ7CiB0eXBlZGVmIEhXTkQgUGxhdGZvcm1QbHVnaW5XaWRnZXQ7CiAjZWxz
ZQogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBsdWdpbldpZGdldDsKKyNpZiBkZWZp
bmVkKFhQX01BQ09TWCkgJiYgUExBVEZPUk0oUVQpCisjaW5jbHVkZSA8UVBpeG1hcD4KKyNlbmRp
ZgogI2VuZGlmCiAKIG5hbWVzcGFjZSBKU0MgewpAQCAtMzI3LDYgKzMzMSwxMSBAQCBwcml2YXRl
OgogICAgICAgICBPd25QdHI8VGltZXI8UGx1Z2luVmlldz4gPiBtX251bGxFdmVudFRpbWVyOwog
ICAgICAgICBOUERyYXdpbmdNb2RlbCBtX2RyYXdpbmdNb2RlbDsKICAgICAgICAgTlBFdmVudE1v
ZGVsIG1fZXZlbnRNb2RlbDsKKyAgICAgICAgQ0dDb250ZXh0UmVmIG1fY29udGV4dFJlZjsKKyAg
ICAgICAgV2luZG93UmVmIG1fZmFrZVdpbmRvdzsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAg
UVBpeG1hcCBtX3BpeG1hcDsKKyNlbmRpZgogCiAgICAgICAgIHZvaWQgc2V0TlBXaW5kb3dJZk5l
ZWRlZCgpOwogICAgICAgICB2b2lkIG51bGxFdmVudFRpbWVyRmlyZWQoVGltZXI8UGx1Z2luVmll
dz4qKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAg
Yi9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCmluZGV4IDY1MjFjODQuLjFl
NmQ2M2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAK
KysrIGIvV2ViQ29yZS9wbHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcApAQCAtMiw2ICsyLDcg
QEAKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR2lyaXNoIFJhbWFr
cmlzaG5hbiA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC03NSw2ICs3Niw3IEBAIHVzaW5nIEpTQzo6VVN0cmluZzsKICNpZiBQTEFURk9S
TShRVCkKICNpbmNsdWRlIDxRV2lkZ2V0PgogI2luY2x1ZGUgPFFLZXlFdmVudD4KKyNpbmNsdWRl
IDxRUGFpbnRlcj4KICNpbmNsdWRlICJRV2ViUGFnZUNsaWVudC5oIgogUVRfQkVHSU5fTkFNRVNQ
QUNFCiAjaWYgUVRfVkVSU0lPTiA8IDB4MDQwNTAwCkBAIC0xNzMsMTMgKzE3NSwyMCBAQCBib29s
IFBsdWdpblZpZXc6OnBsYXRmb3JtU3RhcnQoKQogICAgIH0KIAogI2lmIFBMQVRGT1JNKFFUKQor
ICAgIC8vIFNldCB0aGUgcGxhdGZvcm1QbHVnaW5XaWRnZXQgb25seSBpbiB0aGUgY2FzZSBvZiBR
V2ViVmlldyB1bnRpbCB3ZSBnZXQgbW91c2UgZXZlbnRzIHdvcmtpbmcuIAorICAgIC8vIEluIGFs
bCBvdGhlciBjYXNlcywgd2UgdXNlIG9mZi1zY3JlZW4gcmVuZGVyaW5nCiAgICAgaWYgKFFXZWJQ
YWdlQ2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+
cGxhdGZvcm1QYWdlQ2xpZW50KCkpIHsKLSAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IGNs
aWVudC0+b3duZXJXaWRnZXQoKSkgeworICAgICAgICBpZiAoUVdpZGdldCogd2lkZ2V0ID0gcW9i
amVjdF9jYXN0PFFXaWRnZXQqPihjbGllbnQtPnBsdWdpblBhcmVudCgpKSkKICAgICAgICAgICAg
IHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0KHdpZGdldCk7Ci0gICAgICAgIH0KICAgICB9CiAjZW5k
aWYKIAorICAgIC8vIENyZWF0ZSBhIGZha2Ugd2luZG93IHJlbGF0aXZlIHRvIHdoaWNoIGFsbCBl
dmVudHMgd2lsbCBiZSBzZW50IHdoZW4gdXNpbmcgb2Zmc2NyZWVuIHJlbmRlcmluZworICAgIGlm
ICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICA6OlJlY3Qgd2luZG93Qm91bmRz
ID0geyAwLCAwLCAxMDAsIDEwMCB9OworICAgICAgICBDcmVhdGVOZXdXaW5kb3coa0RvY3VtZW50
V2luZG93Q2xhc3MsIGtXaW5kb3dTdGFuZGFyZERvY3VtZW50QXR0cmlidXRlcywgJndpbmRvd0Jv
dW5kcywgJm1fZmFrZVdpbmRvdyk7CisgICAgfQorCiAgICAgc2hvdygpOwogCiAgICAgLy8gVE9E
TzogSW1wbGVtZW50IG51bGwgdGltZXIgdGhyb3R0bGluZyBkZXBlbmRpbmcgb24gcGx1Z2luIGFj
dGl2YXRpb24KQEAgLTE5Myw2ICsyMDIsMTEgQEAgdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybURl
c3Ryb3koKQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBzZXRQ
bGF0Zm9ybVBsdWdpbldpZGdldCgwKTsKKyAgICBlbHNlIHsKKyAgICAgICAgQ0dDb250ZXh0UmVs
ZWFzZShtX2NvbnRleHRSZWYpOworICAgICAgICBpZiAobV9mYWtlV2luZG93KQorICAgICAgICAg
ICAgRGlzcG9zZVdpbmRvdyhtX2Zha2VXaW5kb3cpOworICAgIH0KIH0KIAogLy8gVXNlZCBiZWZv
cmUgdGhlIHBsdWdpbiB2aWV3IGhhcyBiZWVuIGluaXRpYWxpemVkIHByb3Blcmx5LCBhbmQgYXMg
YQpAQCAtMzU3LDE1ICszNzEsMjEgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd0lmTmVl
ZGVkKCkKICAgICBpZiAoIW1faXNTdGFydGVkIHx8ICFwYXJlbnQoKSB8fCAhbV9wbHVnaW4tPnBs
dWdpbkZ1bmNzKCktPnNldHdpbmRvdykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ0dDb250ZXh0
UmVmIG5ld0NvbnRleHRSZWYgPSBjZ0hhbmRsZUZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsK
LSAgICBpZiAoIW5ld0NvbnRleHRSZWYpCi0gICAgICAgIHJldHVybjsKKyAgICBDR0NvbnRleHRS
ZWYgbmV3Q29udGV4dFJlZiA9IDA7CisgICAgV2luZG93UmVmIG5ld1dpbmRvd1JlZiA9IDA7Cisg
ICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgbmV3Q29udGV4dFJlZiA9
IGNnSGFuZGxlRm9yKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOworICAgICAgICBuZXdXaW5kb3dS
ZWYgPSBuYXRpdmVXaW5kb3dGb3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgICAgIG1f
bnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZVdpbmRvdzsKKyAgICB9IGVsc2UgeworICAgICAg
ICBuZXdDb250ZXh0UmVmID0gbV9jb250ZXh0UmVmOworICAgICAgICBuZXdXaW5kb3dSZWYgPSBt
X2Zha2VXaW5kb3c7CisgICAgICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZURyYXdh
YmxlOworICAgIH0KIAotICAgIFdpbmRvd1JlZiBuZXdXaW5kb3dSZWYgPSBuYXRpdmVXaW5kb3dG
b3IocGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7Ci0gICAgaWYgKCFuZXdXaW5kb3dSZWYpCisgICAg
aWYgKCFuZXdDb250ZXh0UmVmIHx8ICFuZXdXaW5kb3dSZWYpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fbnBXaW5kb3cudHlwZSA9IE5QV2luZG93VHlwZVdpbmRvdzsKICAgICBtX25wV2luZG93
LndpbmRvdyA9ICh2b2lkKikmbV9ucENnQ29udGV4dDsKICAgICBtX25wQ2dDb250ZXh0LndpbmRv
dyA9IG5ld1dpbmRvd1JlZjsKICAgICBtX25wQ2dDb250ZXh0LmNvbnRleHQgPSBuZXdDb250ZXh0
UmVmOwpAQCAtNDA5LDYgKzQyOSwxNSBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVBsdWdpbldp
ZGdldCgpCiAgICAgSW50UG9pbnQgb2Zmc2V0ID0gdG9wTGV2ZWxPZmZzZXRGb3IocGxhdGZvcm1Q
bHVnaW5XaWRnZXQoKSk7CiAgICAgbV93aW5kb3dSZWN0Lm1vdmUob2Zmc2V0LngoKSwgb2Zmc2V0
LnkoKSk7CiAKKyAgICBpZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgaWYg
KG1fd2luZG93UmVjdC5zaXplKCkgIT0gb2xkV2luZG93UmVjdC5zaXplKCkpIHsKKyAgICAgICAg
ICAgIENHQ29udGV4dFJlbGVhc2UobV9jb250ZXh0UmVmKTsKKyAgICAgICAgICAgIG1fcGl4bWFw
ID0gUVBpeG1hcChtX3dpbmRvd1JlY3Quc2l6ZSgpKTsKKyAgICAgICAgICAgIG1fcGl4bWFwLmZp
bGwoUXQ6OnRyYW5zcGFyZW50KTsKKyAgICAgICAgICAgIG1fY29udGV4dFJlZiA9IHF0X21hY19j
Z19jb250ZXh0KCZtX3BpeG1hcCk7CisgICAgICAgIH0KKyAgICB9CisKICAgICBtX2NsaXBSZWN0
ID0gd2luZG93Q2xpcFJlY3QoKTsKICAgICBtX2NsaXBSZWN0Lm1vdmUoLW1fd2luZG93UmVjdC54
KCksIC1tX3dpbmRvd1JlY3QueSgpKTsKIApAQCAtNDMzLDggKzQ2MiwyOSBAQCB2b2lkIFBsdWdp
blZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVj
dCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgQ0dDb250ZXh0U2F2ZUdTdGF0ZShjZ0NvbnRleHQp
OwotICAgIEludFBvaW50IG9mZnNldCA9IGZyYW1lUmVjdCgpLmxvY2F0aW9uKCk7Ci0gICAgQ0dD
b250ZXh0VHJhbnNsYXRlQ1RNKGNnQ29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7Cisg
ICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgSW50UG9pbnQgb2Zmc2V0
ID0gZnJhbWVSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgQ0dDb250ZXh0VHJhbnNsYXRlQ1RN
KGNnQ29udGV4dCwgb2Zmc2V0LngoKSwgb2Zmc2V0LnkoKSk7CisgICAgfQorCisgICAgSW50UmVj
dCB0YXJnZXRSZWN0KGZyYW1lUmVjdCgpKTsKKyAgICB0YXJnZXRSZWN0LmludGVyc2VjdHMocmVj
dCk7CisKKyAgICAvLyBjbGlwIHRoZSBjb250ZXh0IHNvIHRoYXQgcGx1Z2luIG9ubHkgdXBkYXRl
cyB0aGUgaW50ZXJlc3RlZCBhcmVhLgorICAgIENHUmVjdCByOworICAgIHIub3JpZ2luLnggPSB0
YXJnZXRSZWN0LngoKSAtIGZyYW1lUmVjdCgpLngoKTsKKyAgICByLm9yaWdpbi55ID0gdGFyZ2V0
UmVjdC55KCkgLSBmcmFtZVJlY3QoKS55KCk7CisgICAgci5zaXplLndpZHRoID0gdGFyZ2V0UmVj
dC53aWR0aCgpOworICAgIHIuc2l6ZS5oZWlnaHQgPSB0YXJnZXRSZWN0LmhlaWdodCgpOworICAg
IENHQ29udGV4dENsaXBUb1JlY3QoY2dDb250ZXh0LCByKTsKKworICAgIGlmICghcGxhdGZvcm1Q
bHVnaW5XaWRnZXQoKSAmJiBtX2lzVHJhbnNwYXJlbnQpIHsgLy8gY2xlYW4gdGhlIHBpeG1hcCBp
biB0cmFuc3BhcmVudCBtb2RlCisjaWYgUExBVEZPUk0oUVQpCisgICAgICAgIFFQYWludGVyIHBh
aW50ZXIoJm1fcGl4bWFwKTsKKyAgICAgICAgcGFpbnRlci5zZXRDb21wb3NpdGlvbk1vZGUoUVBh
aW50ZXI6OkNvbXBvc2l0aW9uTW9kZV9DbGVhcik7CisgICAgICAgIHBhaW50ZXIuZmlsbFJlY3Qo
UVJlY3RGKHIub3JpZ2luLngsIHIub3JpZ2luLnksIHIuc2l6ZS53aWR0aCwgci5zaXplLmhlaWdo
dCksIFF0Ojp0cmFuc3BhcmVudCk7CisjZW5kaWYKKyAgICB9CiAKICAgICBFdmVudFJlY29yZCBl
dmVudDsKICAgICBldmVudC53aGF0ID0gdXBkYXRlRXZ0OwpAQCAtNDQ4LDE4ICs0OTgsMjggQEAg
dm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAgICAgICAgIExPRyhFdmVudHMsICJQbHVnaW5WaWV3OjpwYWludCgpOiBQ
YWludCBldmVudCBub3QgYWNjZXB0ZWQiKTsKIAogICAgIENHQ29udGV4dFJlc3RvcmVHU3RhdGUo
Y2dDb250ZXh0KTsKKworICAgIGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworI2lmIFBM
QVRGT1JNKFFUKQorICAgICAgICBRUGFpbnRlciogcGFpbnRlciA9IGNvbnRleHQtPnBsYXRmb3Jt
Q29udGV4dCgpOworICAgICAgICBwYWludGVyLT5kcmF3UGl4bWFwKHRhcmdldFJlY3QueCgpLCB0
YXJnZXRSZWN0LnkoKSwgbV9waXhtYXAsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh
cmdldFJlY3QueCgpIC0gZnJhbWVSZWN0KCkueCgpLCB0YXJnZXRSZWN0LnkoKSAtIGZyYW1lUmVj
dCgpLnkoKSwgdGFyZ2V0UmVjdC53aWR0aCgpLCB0YXJnZXRSZWN0LmhlaWdodCgpKTsKKyNlbmRp
ZgorICAgIH0KIH0KIAogdm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKQogICAgICAgICBw
bGF0Zm9ybVBsdWdpbldpZGdldCgpLT51cGRhdGUoY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhy
ZWN0KSk7CisgICAgZWxzZQorICAgICAgICBpbnZhbGlkYXRlV2luZG93bGVzc1BsdWdpblJlY3Qo
cmVjdCk7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoTlBSZWN0KiByZWN0
KQogewotICAgIC8vIFRPRE86IG9wdGltaXplCi0gICAgaW52YWxpZGF0ZSgpOworICAgIEludFJl
Y3QgcihyZWN0LT5sZWZ0LCByZWN0LT50b3AsIHJlY3QtPnJpZ2h0IC0gcmVjdC0+bGVmdCwgcmVj
dC0+Ym90dG9tIC0gcmVjdC0+dG9wKTsKKyAgICBpbnZhbGlkYXRlUmVjdChyKTsKIH0KIAogdm9p
ZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVnaW9uKE5QUmVnaW9uIHJlZ2lvbikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43502</attachid>
            <date>2009-11-19 07:48:20 -0800</date>
            <delta_ts>2009-11-20 01:25:10 -0800</delta_ts>
            <desc>Implement Plugin Rendering (5)</desc>
            <filename>latest</filename>
            <type>text/plain</type>
            <size>11347</size>
            <attacher name="Girish Ramakrishnan">girish</attacher>
            
              <data encoding="base64">Y29tbWl0IDczZjQ1OTE0NzdiNWU3N2FhYzhlMzNjNDk4YWE5OTM5ZDlmZTNjMDEKQXV0aG9yOiBH
aXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hATWluaS1NZS5sb2NhbD4KRGF0ZTogICBXZWQgTm92
IDE4IDE2OjM4OjE4IDIwMDkgKzA1MzAKCiAgICBQYXRjaCBieSBZb25nanVuIFpoYW5nIDx5b25n
anVuLnpoYW5nQG5va2lhLmNvbT4gYW5kCiAgICAgICAgICAgICBHaXJpc2ggUmFtYWtyaXNobmFu
IDxnaXJpc2hAZm9yd2FyZGJpYXMuaW4+CiAgICAKICAgIFtRdF0gSW1wbGVtZW50IHN1cHBvcnQg
Zm9yIHJlbmRlcmluZyBwbHVnaW5zIG9uIFF0L01hYyB3aGVuIGEgcGFnZSBpcyB1c2VkCiAgICB3
aXRob3V0IGEgUVdlYlZpZXcgb3Igd2hlbiBpbnNpZGUgUUdyYXBoaWNzV2ViVmlldy4KICAgIAog
ICAgQ3VycmVudGx5LCB0aGUgY29kZSBwcm92aWRlcyB0aGUgY2djb250ZXh0IG9mIHRoZSBQbGF0
Zm9ybVBsdWdpbldpZGdldCB0bwogICAgdGhlIHBsdWdpbi4gVGhpcyBhcHByb2FjaCBkb2VzIG5v
dCB3b3JrIHdoZW4gd2UgYXJlIHByaW50aW5nLCBvciB1c2luZwogICAgUVdlYkZyYW1lOjpyZW5k
ZXIoKSB0byByZW5kZXIgdG8gYSBRSW1hZ2UvUVBpeG1hcCBzaW5jZSB0aGUgcGx1Z2luIGVuZHMK
ICAgIHVwIGRyYXdpbmcgb24gdGhlIFFXZWJWaWV3IChpLmUgcGxhdGZvcm1QbHVnaW5XaWRnZXQn
cyBjZ2NvbnRleHQpIGluc3RlYWQKICAgIG9mIHRoZSBRUGFpbnREZXZpY2UncyBjb250ZXh0Lgog
ICAgCiAgICBUbyBzb2x2ZSBhbGwgY2FzZXMgYW5kIGtlZXAgdGhlIGNvZGUgc2ltcGxlLCB3ZSBy
ZW5kZXIgdGhlIHBsdWdpbiB0byBhbgogICAgb2Zmc2NyZWVuIHBpeG1hcCBpbiBhbGwgY2FzZXMu
IFRoaXMgd2F5LCB0aGUgcGx1Z2luIGFsd2F5cyByZW5kZXJzIHRvIHRoZQogICAgQ0dDb250ZXh0
IG9mIHRoZSBwaXhtYXAgYW5kIHdlIHRoZW4gdXNlIFFQYWludGVyIHRvIGJsaXQgdGhlIHBpeG1h
cCBpbnRvCiAgICB0aGUgUVBhaW50RGV2aWNlLiBXZSBhbHNvIGNyZWF0ZSBhIGZha2Ugd2luZG93
IGFuZCBzZXQgaXQncyBXaW5kb3dSZWYgaW4KICAgIE5QV2luZG93LiBPbmx5IHdpdGggdGhpcyBX
aW5kb3dSZWYgZG9lcyBGbGFzaCBwYWludCBjb3JyZWN0bHkgdG8gdGhlIFFQaXhtYXAuCiAgICAK
ICAgIE5vdywgdGhhdCdzIHRoZSB0aGVvcnkuIEluIHByYWN0aWNlLCBBVE0sIG1vdXNlIGV2ZW50
cyBkbyBub3Qgd29yayB3aGVuIHVzaW5nCiAgICB0aGUgZmFrZSB3aW5kb3cuIFNvLCBzZXRQbGF0
Zm9ybVBsdWdpbldpZGdldCgpIGlzIHN0aWxsIGNhbGxlZCB3aGVuIHVzaW5nIFFXZWJWaWV3CiAg
ICBzbyB0aGF0IHRoZXJlIGFyZSBubyByZWdyZXNzaW9ucyBhZnRlciB0aGlzIHBhdGNoLiBPbmNl
IHdlIGdldCBtb3VzZSBldmVudHMKICAgIHdvcmtpbmcsIHNldFBsYXRmb3JtUGx1Z2luV2lkZ2V0
IHdpbGwgYmUgcmVtb3ZlZC4KICAgIAogICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTMxMTgzCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBjNDEwMGMwLi5kZjMyOWM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDA5LTEx
LTE4ICBHaXJpc2ggUmFtYWtyaXNobmFuICA8Z2lyaXNoQGZvcndhcmRiaWFzLmluPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICBQYXRjaCBieSBZb25nanVu
IFpoYW5nIDx5b25nanVuLnpoYW5nQG5va2lhLmNvbT4gYW5kCisgICAgICAgICAgICAgICAgIEdp
cmlzaCBSYW1ha3Jpc2huYW4gPGdpcmlzaEBmb3J3YXJkYmlhcy5pbj4KKyAgICAgICAgCisgICAg
ICAgIFtRdF0gSW1wbGVtZW50IHN1cHBvcnQgZm9yIHJlbmRlcmluZyBwbHVnaW5zIG9uIFF0L01h
YyB3aGVuIGEgcGFnZSBpcyB1c2VkCisgICAgICAgIHdpdGhvdXQgYSBRV2ViVmlldyBvciB3aGVu
IGluc2lkZSBRR3JhcGhpY3NXZWJWaWV3LgorICAgICAgICAKKyAgICAgICAgQ3VycmVudGx5LCB0
aGUgY29kZSBwcm92aWRlcyB0aGUgY2djb250ZXh0IG9mIHRoZSBQbGF0Zm9ybVBsdWdpbldpZGdl
dCB0bworICAgICAgICB0aGUgcGx1Z2luLiBUaGlzIGFwcHJvYWNoIGRvZXMgbm90IHdvcmsgd2hl
biB3ZSBhcmUgcHJpbnRpbmcsIG9yIHVzaW5nCisgICAgICAgIFFXZWJGcmFtZTo6cmVuZGVyKCkg
dG8gcmVuZGVyIHRvIGEgUUltYWdlL1FQaXhtYXAgc2luY2UgdGhlIHBsdWdpbiBlbmRzCisgICAg
ICAgIHVwIGRyYXdpbmcgb24gdGhlIFFXZWJWaWV3IChpLmUgcGxhdGZvcm1QbHVnaW5XaWRnZXQn
cyBjZ2NvbnRleHQpIGluc3RlYWQKKyAgICAgICAgb2YgdGhlIFFQYWludERldmljZSdzIGNvbnRl
eHQuCisgICAgICAgIAorICAgICAgICBUbyBzb2x2ZSBhbGwgY2FzZXMgYW5kIGtlZXAgdGhlIGNv
ZGUgc2ltcGxlLCB3ZSByZW5kZXIgdGhlIHBsdWdpbiB0byBhbgorICAgICAgICBvZmZzY3JlZW4g
cGl4bWFwIGluIGFsbCBjYXNlcy4gVGhpcyB3YXksIHRoZSBwbHVnaW4gYWx3YXlzIHJlbmRlcnMg
dG8gdGhlCisgICAgICAgIENHQ29udGV4dCBvZiB0aGUgcGl4bWFwIGFuZCB3ZSB0aGVuIHVzZSBR
UGFpbnRlciB0byBibGl0IHRoZSBwaXhtYXAgaW50bworICAgICAgICB0aGUgUVBhaW50RGV2aWNl
LiBXZSBhbHNvIGNyZWF0ZSBhIGZha2Ugd2luZG93IGFuZCBzZXQgaXQncyBXaW5kb3dSZWYgaW4K
KyAgICAgICAgTlBXaW5kb3cuIE9ubHkgd2l0aCB0aGlzIFdpbmRvd1JlZiBkb2VzIEZsYXNoIHBh
aW50IGNvcnJlY3RseSB0byB0aGUgUVBpeG1hcC4KKyAgICAgICAgCisgICAgICAgIE5vdywgdGhh
dCdzIHRoZSB0aGVvcnkuIEluIHByYWN0aWNlLCBBVE0sIG1vdXNlIGV2ZW50cyBkbyBub3Qgd29y
ayB3aGVuIHVzaW5nCisgICAgICAgIHRoZSBmYWtlIHdpbmRvdy4gU28sIHNldFBsYXRmb3JtUGx1
Z2luV2lkZ2V0KCkgaXMgc3RpbGwgY2FsbGVkIHdoZW4gdXNpbmcgUVdlYlZpZXcKKyAgICAgICAg
c28gdGhhdCB0aGVyZSBhcmUgbm8gcmVncmVzc2lvbnMgYWZ0ZXIgdGhpcyBwYXRjaC4gT25jZSB3
ZSBnZXQgbW91c2UgZXZlbnRzCisgICAgICAgIHdvcmtpbmcsIHNldFBsYXRmb3JtUGx1Z2luV2lk
Z2V0IHdpbGwgYmUgcmVtb3ZlZC4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTE4MworCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OlBsdWdpblZpZXcpOgorICAg
ICAgICAqIHBsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAqIHBsdWdpbnMvbWFjL1BsdWdp
blZpZXdNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3kpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c2V0TlBXaW5kb3dJZk5lZWRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
aW52YWxpZGF0ZVJlY3QpOgorCiAyMDA5LTExLTE5ICBPbGl2aWVyIEdvZmZhcnQgIDxvZ29mZmFy
dEB0cm9sbHRlY2guY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvV2ViQ29yZS9wbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDkxYWE4M2EuLjUwMzZjYTUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKQEAgLTgxNSw2ICs4MTUsOCBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1l
KiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogI2lm
IGRlZmluZWQoWFBfTUFDT1NYKQogICAgICwgbV9kcmF3aW5nTW9kZWwoTlBEcmF3aW5nTW9kZWwo
LTEpKQogICAgICwgbV9ldmVudE1vZGVsKE5QRXZlbnRNb2RlbCgtMSkpCisgICAgLCBtX2NvbnRl
eHRSZWYoMCkKKyAgICAsIG1fZmFrZVdpbmRvdygwKQogI2VuZGlmCiAjaWYgZGVmaW5lZChRX1dT
X1gxMSkgJiYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAgICAgLCBtX2hhc1BlbmRpbmdH
ZW9tZXRyeUNoYW5nZSh0cnVlKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuaCBiL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggZmQ4NjE4Ny4uNTdiMWY5
YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwOSBHaXJpc2ggUmFtYWtyaXNobmFuIDxnaXJpc2hAZm9yd2FyZGJp
YXMuaW4+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTUwLDYgKzUxLDkgQEAg
dHlwZWRlZiBzdHJ1Y3QgSFdORF9fKiBIV05EOwogdHlwZWRlZiBIV05EIFBsYXRmb3JtUGx1Z2lu
V2lkZ2V0OwogI2Vsc2UKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1QbHVnaW5XaWRn
ZXQ7CisjaWYgZGVmaW5lZChYUF9NQUNPU1gpICYmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgPFFQ
aXhtYXA+CisjZW5kaWYKICNlbmRpZgogCiBuYW1lc3BhY2UgSlNDIHsKQEAgLTMyNiw2ICszMzAs
MTEgQEAgcHJpdmF0ZToKICAgICAgICAgTlBfQ0dDb250ZXh0IG1fbnBDZ0NvbnRleHQ7CiAgICAg
ICAgIE5QRHJhd2luZ01vZGVsIG1fZHJhd2luZ01vZGVsOwogICAgICAgICBOUEV2ZW50TW9kZWwg
bV9ldmVudE1vZGVsOworICAgICAgICBDR0NvbnRleHRSZWYgbV9jb250ZXh0UmVmOworICAgICAg
ICBXaW5kb3dSZWYgbV9mYWtlV2luZG93OworI2lmIFBMQVRGT1JNKFFUKQorICAgICAgICBRUGl4
bWFwIG1fcGl4bWFwOworI2VuZGlmCiAKICAgICAgICAgdm9pZCBzZXROUFdpbmRvd0lmTmVlZGVk
KCk7CiAgICAgICAgIFBvaW50IGdsb2JhbE1vdXNlUG9zRm9yUGx1Z2luKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwIGIvV2ViQ29yZS9w
bHVnaW5zL21hYy9QbHVnaW5WaWV3TWFjLmNwcAppbmRleCBkNGJmZmNkLi42MDQ0MzEzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsdWdpbnMvbWFjL1BsdWdpblZpZXdNYWMuY3BwCisrKyBiL1dlYkNv
cmUvcGx1Z2lucy9tYWMvUGx1Z2luVmlld01hYy5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDA5IEdpcmlzaCBSYW1ha3Jpc2huYW4gPGdp
cmlzaEBmb3J3YXJkYmlhcy5pbj4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NzUsNiArNzYsNyBAQCB1c2luZyBKU0M6OlVTdHJpbmc7CiAjaWYgUExBVEZPUk0oUVQpCiAjaW5j
bHVkZSA8UVdpZGdldD4KICNpbmNsdWRlIDxRS2V5RXZlbnQ+CisjaW5jbHVkZSA8UVBhaW50ZXI+
CiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKIFFUX0JFR0lOX05BTUVTUEFDRQogI2lmIFFU
X1ZFUlNJT04gPCAweDA0MDUwMApAQCAtMTczLDEzICsxNzUsMjAgQEAgYm9vbCBQbHVnaW5WaWV3
OjpwbGF0Zm9ybVN0YXJ0KCkKICAgICB9CiAKICNpZiBQTEFURk9STShRVCkKKyAgICAvLyBTZXQg
dGhlIHBsYXRmb3JtUGx1Z2luV2lkZ2V0IG9ubHkgaW4gdGhlIGNhc2Ugb2YgUVdlYlZpZXcgdW50
aWwgd2UgZ2V0IG1vdXNlIGV2ZW50cyB3b3JraW5nLiAKKyAgICAvLyBJbiBhbGwgb3RoZXIgY2Fz
ZXMsIHdlIHVzZSBvZmYtc2NyZWVuIHJlbmRlcmluZwogICAgIGlmIChRV2ViUGFnZUNsaWVudCog
Y2xpZW50ID0gbV9wYXJlbnRGcmFtZS0+dmlldygpLT5ob3N0V2luZG93KCktPnBsYXRmb3JtUGFn
ZUNsaWVudCgpKSB7Ci0gICAgICAgIGlmIChRV2lkZ2V0KiB3aWRnZXQgPSBjbGllbnQtPm93bmVy
V2lkZ2V0KCkpIHsKKyAgICAgICAgaWYgKFFXaWRnZXQqIHdpZGdldCA9IHFvYmplY3RfY2FzdDxR
V2lkZ2V0Kj4oY2xpZW50LT5wbHVnaW5QYXJlbnQoKSkpCiAgICAgICAgICAgICBzZXRQbGF0Zm9y
bVBsdWdpbldpZGdldCh3aWRnZXQpOwotICAgICAgICB9CiAgICAgfQogI2VuZGlmCiAKKyAgICAv
LyBDcmVhdGUgYSBmYWtlIHdpbmRvdyByZWxhdGl2ZSB0byB3aGljaCBhbGwgZXZlbnRzIHdpbGwg
YmUgc2VudCB3aGVuIHVzaW5nIG9mZnNjcmVlbiByZW5kZXJpbmcKKyAgICBpZiAoIXBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCkpIHsKKyAgICAgICAgOjpSZWN0IHdpbmRvd0JvdW5kcyA9IHsgMCwgMCwg
MTAwLCAxMDAgfTsKKyAgICAgICAgQ3JlYXRlTmV3V2luZG93KGtEb2N1bWVudFdpbmRvd0NsYXNz
LCBrV2luZG93U3RhbmRhcmREb2N1bWVudEF0dHJpYnV0ZXMsICZ3aW5kb3dCb3VuZHMsICZtX2Zh
a2VXaW5kb3cpOworICAgIH0KKwogICAgIHNob3coKTsKIAogICAgIHJldHVybiB0cnVlOwpAQCAt
MTg5LDYgKzE5OCwxMSBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiB7CiAg
ICAgaWYgKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpCiAgICAgICAgIHNldFBsYXRmb3JtUGx1Z2lu
V2lkZ2V0KDApOworICAgIGVsc2UgeworICAgICAgICBDR0NvbnRleHRSZWxlYXNlKG1fY29udGV4
dFJlZik7CisgICAgICAgIGlmIChtX2Zha2VXaW5kb3cpCisgICAgICAgICAgICBEaXNwb3NlV2lu
ZG93KG1fZmFrZVdpbmRvdyk7CisgICAgfQogfQogCiAvLyBVc2VkIGJlZm9yZSB0aGUgcGx1Z2lu
IHZpZXcgaGFzIGJlZW4gaW5pdGlhbGl6ZWQgcHJvcGVybHksIGFuZCBhcyBhCkBAIC0zNTMsMTUg
KzM2NywyMSBAQCB2b2lkIFBsdWdpblZpZXc6OnNldE5QV2luZG93SWZOZWVkZWQoKQogICAgIGlm
ICghbV9pc1N0YXJ0ZWQgfHwgIXBhcmVudCgpIHx8ICFtX3BsdWdpbi0+cGx1Z2luRnVuY3MoKS0+
c2V0d2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBDR0NvbnRleHRSZWYgbmV3Q29udGV4
dFJlZiA9IGNnSGFuZGxlRm9yKHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkpOwotICAgIGlmICghbmV3
Q29udGV4dFJlZikKLSAgICAgICAgcmV0dXJuOworICAgIENHQ29udGV4dFJlZiBuZXdDb250ZXh0
UmVmID0gMDsKKyAgICBXaW5kb3dSZWYgbmV3V2luZG93UmVmID0gMDsKKyAgICBpZiAocGxhdGZv
cm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBuZXdDb250ZXh0UmVmID0gY2dIYW5kbGVGb3Io
cGxhdGZvcm1QbHVnaW5XaWRnZXQoKSk7CisgICAgICAgIG5ld1dpbmRvd1JlZiA9IG5hdGl2ZVdp
bmRvd0ZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgpKTsKKyAgICAgICAgbV9ucFdpbmRvdy50eXBl
ID0gTlBXaW5kb3dUeXBlV2luZG93OworICAgIH0gZWxzZSB7CisgICAgICAgIG5ld0NvbnRleHRS
ZWYgPSBtX2NvbnRleHRSZWY7CisgICAgICAgIG5ld1dpbmRvd1JlZiA9IG1fZmFrZVdpbmRvdzsK
KyAgICAgICAgbV9ucFdpbmRvdy50eXBlID0gTlBXaW5kb3dUeXBlRHJhd2FibGU7CisgICAgfQog
Ci0gICAgV2luZG93UmVmIG5ld1dpbmRvd1JlZiA9IG5hdGl2ZVdpbmRvd0ZvcihwbGF0Zm9ybVBs
dWdpbldpZGdldCgpKTsKLSAgICBpZiAoIW5ld1dpbmRvd1JlZikKKyAgICBpZiAoIW5ld0NvbnRl
eHRSZWYgfHwgIW5ld1dpbmRvd1JlZikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9ucFdpbmRv
dy50eXBlID0gTlBXaW5kb3dUeXBlV2luZG93OwogICAgIG1fbnBXaW5kb3cud2luZG93ID0gKHZv
aWQqKSZtX25wQ2dDb250ZXh0OwogICAgIG1fbnBDZ0NvbnRleHQud2luZG93ID0gbmV3V2luZG93
UmVmOwogICAgIG1fbnBDZ0NvbnRleHQuY29udGV4dCA9IG5ld0NvbnRleHRSZWY7CkBAIC00MDUs
NiArNDI1LDE3IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1Z2luV2lkZ2V0KCkKICAgICBJ
bnRQb2ludCBvZmZzZXQgPSB0b3BMZXZlbE9mZnNldEZvcihwbGF0Zm9ybVBsdWdpbldpZGdldCgp
KTsKICAgICBtX3dpbmRvd1JlY3QubW92ZShvZmZzZXQueCgpLCBvZmZzZXQueSgpKTsKIAorICAg
IGlmICghcGxhdGZvcm1QbHVnaW5XaWRnZXQoKSkgeworICAgICAgICBpZiAobV93aW5kb3dSZWN0
LnNpemUoKSAhPSBvbGRXaW5kb3dSZWN0LnNpemUoKSkgeworICAgICAgICAgICAgQ0dDb250ZXh0
UmVsZWFzZShtX2NvbnRleHRSZWYpOworI2lmIFBMQVRGT1JNKFFUKQorICAgICAgICAgICAgbV9w
aXhtYXAgPSBRUGl4bWFwKG1fd2luZG93UmVjdC5zaXplKCkpOworICAgICAgICAgICAgbV9waXht
YXAuZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICAgICAgbV9jb250ZXh0UmVmID0gcXRf
bWFjX2NnX2NvbnRleHQoJm1fcGl4bWFwKTsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorCiAg
ICAgbV9jbGlwUmVjdCA9IHdpbmRvd0NsaXBSZWN0KCk7CiAgICAgbV9jbGlwUmVjdC5tb3ZlKC1t
X3dpbmRvd1JlY3QueCgpLCAtbV93aW5kb3dSZWN0LnkoKSk7CiAKQEAgLTQyOSw4ICs0NjAsMjkg
QEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHJldHVybjsKIAogICAgIENHQ29udGV4dFNhdmVHU3Rh
dGUoY2dDb250ZXh0KTsKLSAgICBJbnRQb2ludCBvZmZzZXQgPSBmcmFtZVJlY3QoKS5sb2NhdGlv
bigpOwotICAgIENHQ29udGV4dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIG9mZnNldC54KCksIG9m
ZnNldC55KCkpOworICAgIGlmIChwbGF0Zm9ybVBsdWdpbldpZGdldCgpKSB7CisgICAgICAgIElu
dFBvaW50IG9mZnNldCA9IGZyYW1lUmVjdCgpLmxvY2F0aW9uKCk7CisgICAgICAgIENHQ29udGV4
dFRyYW5zbGF0ZUNUTShjZ0NvbnRleHQsIG9mZnNldC54KCksIG9mZnNldC55KCkpOworICAgIH0K
KworICAgIEludFJlY3QgdGFyZ2V0UmVjdChmcmFtZVJlY3QoKSk7CisgICAgdGFyZ2V0UmVjdC5p
bnRlcnNlY3RzKHJlY3QpOworCisgICAgLy8gY2xpcCB0aGUgY29udGV4dCBzbyB0aGF0IHBsdWdp
biBvbmx5IHVwZGF0ZXMgdGhlIGludGVyZXN0ZWQgYXJlYS4KKyAgICBDR1JlY3QgcjsKKyAgICBy
Lm9yaWdpbi54ID0gdGFyZ2V0UmVjdC54KCkgLSBmcmFtZVJlY3QoKS54KCk7CisgICAgci5vcmln
aW4ueSA9IHRhcmdldFJlY3QueSgpIC0gZnJhbWVSZWN0KCkueSgpOworICAgIHIuc2l6ZS53aWR0
aCA9IHRhcmdldFJlY3Qud2lkdGgoKTsKKyAgICByLnNpemUuaGVpZ2h0ID0gdGFyZ2V0UmVjdC5o
ZWlnaHQoKTsKKyAgICBDR0NvbnRleHRDbGlwVG9SZWN0KGNnQ29udGV4dCwgcik7CisKKyAgICBp
ZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0KCkgJiYgbV9pc1RyYW5zcGFyZW50KSB7IC8vIGNsZWFu
IHRoZSBwaXhtYXAgaW4gdHJhbnNwYXJlbnQgbW9kZQorI2lmIFBMQVRGT1JNKFFUKQorICAgICAg
ICBRUGFpbnRlciBwYWludGVyKCZtX3BpeG1hcCk7CisgICAgICAgIHBhaW50ZXIuc2V0Q29tcG9z
aXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfQ2xlYXIpOworICAgICAgICBwYWlu
dGVyLmZpbGxSZWN0KFFSZWN0RihyLm9yaWdpbi54LCByLm9yaWdpbi55LCByLnNpemUud2lkdGgs
IHIuc2l6ZS5oZWlnaHQpLCBRdDo6dHJhbnNwYXJlbnQpOworI2VuZGlmCisgICAgfQogCiAgICAg
RXZlbnRSZWNvcmQgZXZlbnQ7CiAgICAgZXZlbnQud2hhdCA9IHVwZGF0ZUV2dDsKQEAgLTQ0NCwx
OCArNDk2LDI4IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250
ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogICAgICAgICBMT0coRXZlbnRzLCAiUGx1Z2luVmll
dzo6cGFpbnQoKTogUGFpbnQgZXZlbnQgbm90IGFjY2VwdGVkIik7CiAKICAgICBDR0NvbnRleHRS
ZXN0b3JlR1N0YXRlKGNnQ29udGV4dCk7CisKKyAgICBpZiAoIXBsYXRmb3JtUGx1Z2luV2lkZ2V0
KCkpIHsKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250
ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKTsKKyAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCh0YXJn
ZXRSZWN0LngoKSwgdGFyZ2V0UmVjdC55KCksIG1fcGl4bWFwLCAKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0YXJnZXRSZWN0LngoKSAtIGZyYW1lUmVjdCgpLngoKSwgdGFyZ2V0UmVjdC55
KCkgLSBmcmFtZVJlY3QoKS55KCksIHRhcmdldFJlY3Qud2lkdGgoKSwgdGFyZ2V0UmVjdC5oZWln
aHQoKSk7CisjZW5kaWYKKyAgICB9CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJl
Y3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocGxhdGZvcm1QbHVnaW5XaWRnZXQo
KSkKICAgICAgICAgcGxhdGZvcm1QbHVnaW5XaWRnZXQoKS0+dXBkYXRlKGNvbnZlcnRUb0NvbnRh
aW5pbmdXaW5kb3cocmVjdCkpOworICAgIGVsc2UKKyAgICAgICAgaW52YWxpZGF0ZVdpbmRvd2xl
c3NQbHVnaW5SZWN0KHJlY3QpOwogfQogCiB2b2lkIFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWN0
KE5QUmVjdCogcmVjdCkKIHsKLSAgICAvLyBUT0RPOiBvcHRpbWl6ZQotICAgIGludmFsaWRhdGUo
KTsKKyAgICBJbnRSZWN0IHIocmVjdC0+bGVmdCwgcmVjdC0+dG9wLCByZWN0LT5yaWdodCAtIHJl
Y3QtPmxlZnQsIHJlY3QtPmJvdHRvbSAtIHJlY3QtPnRvcCk7CisgICAgaW52YWxpZGF0ZVJlY3Qo
cik7CiB9CiAKIHZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbiByZWdp
b24pCg==
</data>
<flag name="review"
          id="25222"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>