<?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>39691</bug_id>
          
          <creation_ts>2010-05-25 15:07:15 -0700</creation_ts>
          <short_desc>[Qt] GraphicsLayer: support tiling</short_desc>
          <delta_ts>2011-01-06 10:42:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38744</blocked>
    
    <blocked>41137</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Noam Rosenthal">noam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ademar</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>ossy</cc>
    
    <cc>smagnuso</cc>
    
    <cc>suresh.voruganti</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>230485</commentid>
    <comment_count>0</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-05-25 15:07:15 -0700</bug_when>
    <thetext>GraphicsLayers in Qt wouldn&apos;t currently work when the layers are very big. They need to be connected to the tiled backing store.
See LayoutTests/compositing/tiling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230524</commentid>
    <comment_count>1</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-05-25 16:38:33 -0700</bug_when>
    <thetext>Apparently right now QtWebkit crashes when using a QGLWidget as a viewport on a site that big, even without AC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233958</commentid>
    <comment_count>2</comment_count>
      <attachid>57822</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-03 15:40:55 -0700</bug_when>
    <thetext>Created attachment 57822
AC + Tiling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233960</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-03 15:43:19 -0700</bug_when>
    <thetext>Attachment 57822 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:391:  Missing spaces around =  [whitespace/operators] [4]
WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:836:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233967</commentid>
    <comment_count>4</comment_count>
      <attachid>57824</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-03 15:50:39 -0700</bug_when>
    <thetext>Created attachment 57824
AC + tiling (style fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233969</commentid>
    <comment_count>5</comment_count>
      <attachid>57825</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-03 15:54:13 -0700</bug_when>
    <thetext>Created attachment 57825
Tiling performance issue

I&apos;ve noticed this while using valgrind - we&apos;re iterating over each pixel to get the tile for it out of a map. This is a bottleneck for a large web-page.
In the patch I jump over the pixels based on the tile size but I&apos;m not sure it&apos;s correct. Antti?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233970</commentid>
    <comment_count>6</comment_count>
      <attachid>57826</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-03 16:04:46 -0700</bug_when>
    <thetext>Created attachment 57826
AC + Tiling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233972</commentid>
    <comment_count>7</comment_count>
      <attachid>57827</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-03 16:06:21 -0700</bug_when>
    <thetext>Created attachment 57827
 AC+ tiling (~uploaded wrong file)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234346</commentid>
    <comment_count>8</comment_count>
      <attachid>57827</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-04 12:54:42 -0700</bug_when>
    <thetext>Comment on attachment 57827
 AC+ tiling (~uploaded wrong file)

Generally looks good to me, but it would be nice if Antti could have a look.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:50
 +  #define GRAPHICS_LAYER_TILING_THRESHOLD 2000
We shouldnt use defines, you can use a static const. and also please do not use capitalized naming, gGraphicsLayerTilingThreshold would be fine.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:119
 +          , public virtual TiledBackingStoreClient
Should have indentation of 4

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:841
 +      return mapFromScene(view-&gt;mapToScene(view-&gt;viewport()-&gt;visibleRegion().boundingRect()).boundingRect()).boundingRect().toAlignedRect();
Wow, lots of bounding here :-) Antti, is there no better way of doing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234361</commentid>
    <comment_count>9</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-04 13:38:51 -0700</bug_when>
    <thetext>&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:841
&gt;  +      return mapFromScene(view-&gt;mapToScene(view-&gt;viewport()-&gt;visibleRegion().boundingRect()).boundingRect()).boundingRect().toAlignedRect();

Actually looking at it again one boundingRect is redundant,
      return mapFromScene(
          view-&gt;mapToScene(view-&gt;viewport()-&gt;visibleRegion().boundingRect())
      ).boundingRect().toAlignedRect();
would also work.
There&apos;s no other way I found to get the visible portion of a QGraphicsItem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237558</commentid>
    <comment_count>10</comment_count>
      <attachid>57827</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-13 07:44:23 -0700</bug_when>
    <thetext>Comment on attachment 57827
 AC+ tiling (~uploaded wrong file)

r- due to my earlier comments.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:534
 +      // FIXME: There&apos;s currently no Qt API to know if a new region of an item is exposed, apart from overloading paint
Have a bug been filed? Would be nice to add the link here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242487</commentid>
    <comment_count>11</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-06-24 06:48:04 -0700</bug_when>
    <thetext>Are we getting an updated patch? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242494</commentid>
    <comment_count>12</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-24 07:07:37 -0700</bug_when>
    <thetext>Kenneth: I want anttik to look at this first to see if the content is right, especially the changes I made to tiling code itself, unless you&apos;re comfortable reviewing that code yourself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>242507</commentid>
    <comment_count>13</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2010-06-24 07:31:12 -0700</bug_when>
    <thetext>if you are going to init the backbuffer with fill, i think it would be nice to fix it properly and call fill on the non-transparent case too. 
Quoting from qpixmap class reference &quot;Warning: This will create a QPixmap with uninitialized data. Call fill() to fill the pixmap with an appropriate color before drawing onto it with QPainter&quot; http://doc.qt.nokia.com/4.6/qpixmap.html#QPixmap-3

I noticed this uninitialized behavior on symbian, while using a test browser with tiles on.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264658</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-14 01:34:39 -0700</bug_when>
    <thetext>No&apos;am is this still relevant?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>301838</commentid>
    <comment_count>15</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-10-29 10:01:14 -0700</bug_when>
    <thetext>Apparently this is causing some issues, reopening</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303797</commentid>
    <comment_count>16</comment_count>
      <attachid>72770</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-11-02 16:57:45 -0700</bug_when>
    <thetext>Created attachment 72770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>303934</commentid>
    <comment_count>17</comment_count>
      <attachid>72770</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-11-03 01:47:55 -0700</bug_when>
    <thetext>Comment on attachment 72770
Patch

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

LGTM

&gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:52
&gt; +#define GRAPHICS_LAYER_TILING_THRESHOLD 2000

Maybe this needs change on a mobile device? Did you check the iphone source dump?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304024</commentid>
    <comment_count>18</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-11-03 07:18:49 -0700</bug_when>
    <thetext>&gt; &gt; WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:52
&gt; &gt; +#define GRAPHICS_LAYER_TILING_THRESHOLD 2000
&gt; 
&gt; Maybe this needs change on a mobile device? Did you check the iphone source dump?
It&apos;s 2000 on relevant mobile devices :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304151</commentid>
    <comment_count>19</comment_count>
      <attachid>72770</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-11-03 11:34:02 -0700</bug_when>
    <thetext>Comment on attachment 72770
Patch

Committed manually, r71253</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304152</commentid>
    <comment_count>20</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-11-03 11:34:41 -0700</bug_when>
    <thetext>committed manually, http://trac.webkit.org/changeset/71253.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304156</commentid>
    <comment_count>21</comment_count>
    <who name="Suresh Voruganti">suresh.voruganti</who>
    <bug_when>2010-11-03 11:38:12 -0700</bug_when>
    <thetext>Fix is required for Qtwebkit 2.1 as this is impacting Meego as said in 41137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305275</commentid>
    <comment_count>22</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2010-11-05 07:40:54 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Fix is required for Qtwebkit 2.1 as this is impacting Meego as said in 41137

As discussed there on bug 41137#c13, this patch doesn&apos;t fix the issue, so I&apos;m removing it as a blocker for 2.1.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57822</attachid>
            <date>2010-06-03 15:40:55 -0700</date>
            <delta_ts>2010-06-03 15:50:39 -0700</delta_ts>
            <desc>AC + Tiling</desc>
            <filename>patch-36961-1.diff</filename>
            <type>text/plain</type>
            <size>11248</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzUzZTljOC4uMTM5ZDAyZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwzOCBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFtRdF0gR3JhcGhpY3NMYXllcjogc3VwcG9ydCB0aWxp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5Njkx
CisKKyAgICAgICAgQ29ubmVjdCBHcmFwaGljc0xheWVyUXQgd2l0aCB0aGUgdGlsZWQgYmFja2lu
Zy1zdG9yZSwgd2hlbiB0aGUgbGF5ZXIgaXMgdG9vIGJpZy4KKyAgICAgICAgVGhlIHRocmVzaG9s
ZCBjb25mb3JtcyB0byB0aGUgdGhyZXNob2xkIGluIHRoZSBXaW5kb3dzIGltcGxlbWVudGF0aW9u
LCB3aWR0aCBvciBoZWlnaHQgPiAyMDAwLgorICAgICAgICBUbyBkbyB0aGlzIGl0IHdhcyBhbHNv
IG5lY2Vzc2FyeSB0byBlbmFibGUgdHJhbnNwYXJlbnQgdGlsZXMsIGFzIHRoZSBncmFwaGljcy1s
YXllciBtYXkgYmUgdHJhbnNwYXJlbnQuCisKKyAgICAgICAgUGVyZm9ybWFuY2UgaXMgbm90IHll
dCBnb29kIGR1ZSB0byBhIGZldyBpc3N1ZXMgaW4gVEJTLCBhbm90aGVyIHBhdGNoIGlzIGNvbWlu
ZyB0byByZWN0aWZ5IHRoYXQuCisKKyAgICAgICAgTGF5b3V0VGVzdHMvZ2VvbWV0cnkvaHVnZS1s
YXllci5odG1sIGFuZCB0aGUgdGVzdHMgdW5kZXIgTGF5b3V0VGVzdHMvdGlsaW5nIG5vdyB3b3Jr
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OnNldFRyYW5zcGFyZW50VGlsZXNF
bmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5o
OgorICAgICAgICAoV2ViQ29yZTo6VGlsZWRCYWNraW5nU3RvcmU6OnRyYW5zcGFyZW50VGlsZXNF
bmFibGVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6R3JhcGhpY3NMYXll
clF0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNhY2hl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6OmZsdXNoQ2hhbmdlcyk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6dGlsZWRCYWNraW5n
U3RvcmVQYWludCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxl
ZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJR
dEltcGw6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L1RpbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUaWxlOjp1cGRhdGVCYWNrQnVmZmVyKToKKworMjAxMC0wNi0wMyAgTm8nYW0gUm9zZW50aGFs
ICA8bm9hbS5yb3NlbnRoYWxAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCiAgICAgICAgIFtRdF0gRml4IGNvbXBpbGF0aW9uIHdpdGggUVRfTk9fRkVB
VFVSRQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzgz
MjQKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdT
dG9yZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNw
cAppbmRleCAxZDZmMjM3Li41ZDY4NjRiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL1RpbGVkQmFja2luZ1N0b3JlLmNwcApAQCAtMzk4LDYgKzM5OCwxMSBAQCB2b2lkIFRpbGVk
QmFja2luZ1N0b3JlOjpzZXRDb250ZW50c0Zyb3plbihib29sIGZyZWV6ZSkKICAgICB9CiB9CiAK
K3ZvaWQgVGlsZWRCYWNraW5nU3RvcmU6OnNldFRyYW5zcGFyZW50VGlsZXNFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICBtX3RyYW5zcGFyZW50VGlsZXMgPSBlbmFibGVkOworfQorCiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tp
bmdTdG9yZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5o
CmluZGV4IDU4NDc3ZGIuLjgzZDZmOGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmgKQEAgLTQ5LDYgKzQ5LDkgQEAgcHVibGljOgogICAgIGJvb2wg
Y29udGVudHNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRzRnJvemVuOyB9CiAgICAg
dm9pZCBzZXRDb250ZW50c0Zyb3plbihib29sKTsKIAorICAgIGJvb2wgdHJhbnNwYXJlbnRUaWxl
c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zcGFyZW50VGlsZXM7IH0KKyAgICB2b2lk
IHNldFRyYW5zcGFyZW50VGlsZXNFbmFibGVkKGJvb2wpOworCiAgICAgdm9pZCBpbnZhbGlkYXRl
KGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRl
eHQqLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgCkBAIC0xMTcsNiArMTIwLDcgQEAgcHJpdmF0ZToK
ICAgICBmbG9hdCBtX3BlbmRpbmdTY2FsZTsKIAogICAgIGJvb2wgbV9jb250ZW50c0Zyb3plbjsK
KyAgICBib29sIG1fdHJhbnNwYXJlbnRUaWxlczsKIAogICAgIGZyaWVuZCBjbGFzcyBUaWxlOwog
fTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXll
clF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNw
cAppbmRleCA2YmE2MWQ4Li5kNDliMGE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCkBAIC0zNiwxMSArMzYsMjEgQEAKICNpbmNsdWRl
IDxRdEd1aS9xZ3JhcGhpY3NlZmZlY3QuaD4KICNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NpdGVt
Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWdyYXBoaWNzc2NlbmUuaD4KKyNpbmNsdWRlIDxRdEd1aS9x
Z3JhcGhpY3N2aWV3Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBhaW50ZXIuaD4KICNpbmNsdWRlIDxR
dEd1aS9xcGl4bWFwLmg+CiAjaW5jbHVkZSA8UXRHdWkvcXBpeG1hcGNhY2hlLmg+CiAjaW5jbHVk
ZSA8UXRHdWkvcXN0eWxlb3B0aW9uLmg+CiAKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9S
RSkKKyNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9yZS5oIgorI2luY2x1ZGUgIlRpbGVkQmFja2lu
Z1N0b3JlQ2xpZW50LmgiCisKKy8vIFRoZSBtaW5pbXVtIHdpZHRoL2hlaWdodCBmb3IgdGlsaW5n
LiBXZSB1c2UgdGhlIHNhbWUgdmFsdWUgYXMgdGhlIFdpbmRvd3MgaW1wbGVtZW50YXRpb24uCisj
ZGVmaW5lIEdSQVBISUNTX0xBWUVSX1RJTElOR19USFJFU0hPTEQgMjAwMAorCisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAjaWZuZGVmIFFUX05PX0dSQVBISUNTRUZGRUNUCkBAIC0x
MDQsNyArMTE0LDExIEBAIHB1YmxpYzoKIH07CiAjZW5kaWYgLy8gUVRfTk9fR1JBUEhJQ1NFRkZF
Q1QKIAotY2xhc3MgR3JhcGhpY3NMYXllclF0SW1wbCA6IHB1YmxpYyBRR3JhcGhpY3NPYmplY3Qg
eworY2xhc3MgR3JhcGhpY3NMYXllclF0SW1wbCA6IHB1YmxpYyBRR3JhcGhpY3NPYmplY3QKKyNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgLCBwdWJsaWMgdmlydHVhbCBU
aWxlZEJhY2tpbmdTdG9yZUNsaWVudAorI2VuZGlmCit7CiAgICAgUV9PQkpFQ1QKIAogcHVibGlj
OgpAQCAtMTc1LDYgKzE4OSwxNSBAQCBwdWJsaWM6CiAgICAgLy8gQ2hyb21lQ2xpZW50UXQ6OnNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllclN5bmMgKG1lYW5pbmcgdGhlIHN5bmMgd2lsbCBoYXBwZW4g
QVNBUCkKICAgICB2b2lkIGZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2ZSA9IHRydWUsIGJvb2wg
Zm9yY2VUcmFuc2Zvcm1VcGRhdGUgPSBmYWxzZSk7CiAKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lO
R19TVE9SRSkKKyAgICAvLyByZWltcGxlbWVudGF0aW9ucyBmcm9tIFRpbGVkQmFja2luZ1N0b3Jl
Q2xpZW50CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRCZWdpbigpOwor
ICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNzQ29udGV4dCos
IGNvbnN0IEludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWlu
dEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhaW50ZWRBcmVhKTsKKyAgICB2aXJ0dWFsIElu
dFJlY3QgdGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdGlsZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpOworI2VuZGlmCisKIHB1YmxpYyBzbG90
czoKICAgICAvLyBXZSBuZWVkIHRvIG5vdGlmeSB0aGUgY2xpZW50IChpZS4gdGhlIGxheWVyIGNv
bXBvc2l0b3IpIHdoZW4gdGhlIGFuaW1hdGlvbiBhY3R1YWxseSBzdGFydHMuCiAgICAgdm9pZCBu
b3RpZnlBbmltYXRpb25TdGFydGVkKCk7CkBAIC0yMjQsNiArMjQ3LDEwIEBAIHB1YmxpYzoKIAog
ICAgIGludCBtX2NoYW5nZU1hc2s7CiAKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkK
KyAgICBUaWxlZEJhY2tpbmdTdG9yZSogbV90aWxlZEJhY2tpbmdTdG9yZTsKKyNlbmRpZgorCiAg
ICAgUVNpemVGIG1fc2l6ZTsKICAgICBRUGl4bWFwQ2FjaGU6OktleSBtX2JhY2tpbmdTdG9yZUtl
eTsKICNpZm5kZWYgUVRfTk9fQU5JTUFUSU9OCkBAIC0yOTMsNiArMzIwLDkgQEAgR3JhcGhpY3NM
YXllclF0SW1wbDo6R3JhcGhpY3NMYXllclF0SW1wbChHcmFwaGljc0xheWVyUXQqIG5ld0xheWVy
KQogICAgICwgbV90cmFuc2Zvcm1BbmltYXRpb25SdW5uaW5nKGZhbHNlKQogICAgICwgbV9vcGFj
aXR5QW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAgICAsIG1fY2hhbmdlTWFzayhOb0NoYW5nZXMp
CisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgLCBtX3RpbGVkQmFja2luZ1N0
b3JlKDApCisjZW5kaWYKICNpZiBFTkFCTEUoM0RfQ0FOVkFTKQogICAgICwgbV9nYzNEKDApCiAj
ZW5kaWYKQEAgLTM0Miw2ICszNzIsMjggQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpy
ZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogICAgIGlmICghbV9sYXllci0+
ZHJhd3NDb250ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8fCFtX3NpemUuaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgY29uc3QgYm9vbCByZXF1aXJlc1RpbGluZyA9IChtX3NpemUud2lkdGgoKSA+IEdS
QVBISUNTX0xBWUVSX1RJTElOR19USFJFU0hPTEQgfHwgbV9zaXplLmhlaWdodCgpID4gR1JBUEhJ
Q1NfTEFZRVJfVElMSU5HX1RIUkVTSE9MRCk7CisgICAgaWYgKHJlcXVpcmVzVGlsaW5nICYmICFt
X3RpbGVkQmFja2luZ1N0b3JlKSB7CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUgPSBuZXcg
VGlsZWRCYWNraW5nU3RvcmUodGhpcyk7CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPnNl
dFRyYW5zcGFyZW50VGlsZXNFbmFibGVkKHRydWUpOworICAgICAgICBtX3RpbGVkQmFja2luZ1N0
b3JlLT5zZXRUaWxlQ3JlYXRpb25EZWxheSgwKTsKKyAgICAgICAgc2V0RmxhZyhJdGVtVXNlc0V4
dGVuZGVkU3R5bGVPcHRpb24sIHRydWUpOworICAgIH0gZWxzZSBpZiAoIXJlcXVpcmVzVGlsaW5n
ICYmIG1fdGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgZGVsZXRlIG1fdGlsZWRCYWNraW5n
U3RvcmU7CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUgPSAwOworICAgICAgICBzZXRGbGFn
KEl0ZW1Vc2VzRXh0ZW5kZWRTdHlsZU9wdGlvbiwgZmFsc2UpOworICAgIH0KKworICAgIGlmICht
X3RpbGVkQmFja2luZ1N0b3JlKSB7CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmFkanVz
dFZpc2libGVSZWN0KCk7CisgICAgICAgIGNvbnN0IFFWZWN0b3I8UVJlY3Q+IHJlY3RzID0gcmVn
aW9uVG9VcGRhdGUucmVjdHMoKTsKKyAgICAgICAgZm9yIChpbnQgaT0wOyBpIDwgcmVjdHMuc2l6
ZSgpOyArK2kpCisgICAgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmludmFsaWRhdGUocmVj
dHNbaV0pOworICAgICAgICByZXR1cm4gUVBpeG1hcCgpOworICAgIH0KKyNlbmRpZgorCiAgICAg
UVJlZ2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKIApA
QCAtNDc4LDEyICs1MzAsMjcgQEAgUVJlY3RGIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmJvdW5kaW5n
UmVjdCgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50ZXIq
IHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0
KiB3aWRnZXQpCiB7CisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgLy8gRklY
TUU6IFRoZXJlJ3MgY3VycmVudGx5IG5vIFF0IEFQSSB0byBrbm93IGlmIGEgbmV3IHJlZ2lvbiBv
ZiBhbiBpdGVtIGlzIGV4cG9zZWQsIGFwYXJ0IGZyb20gb3ZlcmxvYWRpbmcgcGFpbnQKKyAgICAv
LyBzbyBmb3Igbm93IHdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlLgorICAgIGlmIChtX3RpbGVkQmFj
a2luZ1N0b3JlKQorICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNpYmxlUmVj
dCgpOworI2VuZGlmCisKICAgICBpZiAobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3Iu
aXNWYWxpZCgpKQotICAgICAgICBwYWludGVyLT5maWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xv
cihtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikpOworICAgICAgICBwYWludGVyLT5m
aWxsUmVjdChvcHRpb24tPmV4cG9zZWRSZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNr
Z3JvdW5kQ29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlw
ZSkgewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3
c0NvbnRlbnQpIHsKKworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICAg
ICAgaWYgKG1fdGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljc0Nv
bnRleHQgZ2MocGFpbnRlcik7CisgICAgICAgICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+
cGFpbnQoJmdjLCBvcHRpb24tPmV4cG9zZWRSZWN0LnRvQWxpZ25lZFJlY3QoKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBRUGl4
bWFwIGJhY2tpbmdTdG9yZTsKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNo
ZSwgaW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcu
IGlmIGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1f
YmFja2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9
IG1fc2l6ZS50b1NpemUoKSkKQEAgLTUyNSw2ICs1OTIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJR
dEltcGw6OmZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5z
Zm9ybQogewogICAgIC8vIFRoaXMgaXMgdGhlIGJ1bGsgb2YgdGhlIHdvcmsuIHVuZGVyc3RhbmRp
bmcgd2hhdCB0aGUgY29tcG9zaXRvciBpcyB0cnlpbmcgdG8gYWNoaWV2ZSwgd2hhdAogICAgIC8v
IGdyYXBoaWNzdmlldyBjYW4gZG8sIGFuZCB0cnlpbmcgdG8gZmluZCBhIHNhbmUgY29tbW9uLWdy
b3VuZC4KKwogICAgIGlmICghbV9sYXllciB8fCBtX2NoYW5nZU1hc2sgPT0gTm9DaGFuZ2VzKQog
ICAgICAgICBnb3RvIGFmdGVyTGF5ZXJDaGFuZ2VzOwogCkBAIC02NzgsNyArNzQ2LDggQEAgdm9p
ZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wg
Zm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBvciBz
b2xpZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlw
ZSA9PSBIVE1MQ29udGVudFR5cGUpCiAgICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0NvbnRl
bnQucmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdp
b25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CisKKy8vICAgICAgICB1cGRhdGUobV9wZW5kaW5n
Q29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CiAgICAgICAgIG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAgfQogCkBAIC03MjksNiAr
Nzk4LDUwIEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgIH0KIH0KIAorCisjaWYgRU5BQkxFKFRJ
TEVEX0JBQ0tJTkdfU1RPUkUpCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50Lmgp
CisqLwordm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVn
aW4oKQoreworfQorCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgpCisqLwor
dm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBoaWNz
Q29udGV4dCogZ2MsICBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fbGF5ZXItPnBhaW50
R3JhcGhpY3NMYXllckNvbnRlbnRzKCpnYywgcmVjdCk7Cit9CisKKy8qIFxyZWltcCAoVGlsZWRC
YWNraW5nU3RvcmVDbGllbnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVk
QmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSkK
K3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaW50ZWRBcmVhLnNpemUoKTsgKytpKQorICAg
ICAgICB1cGRhdGUoUVJlY3RGKHBhaW50ZWRBcmVhW2ldKSk7Cit9CisKKy8qIFxyZWltcCAoVGls
ZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKKyovCitJbnRSZWN0IEdyYXBoaWNzTGF5ZXJRdEltcGw6
OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkKK3sKKyAgICByZXR1cm4gbV9sYXllci0+
Y29udGVudHNSZWN0KCk7Cit9CisjZW5kaWYKKworSW50UmVjdCBHcmFwaGljc0xheWVyUXRJbXBs
Ojp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkKK3sKKyAgICBjb25zdCBRR3JhcGhpY3NW
aWV3KiB2aWV3ID0gc2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkgPyAwIDogc2NlbmUoKS0+dmll
d3MoKS5maXJzdCgpOworICAgIGlmICghdmlldykgeworICAgICAgICByZXR1cm4gbWFwRnJvbVNj
ZW5lKHNjZW5lKCktPnNjZW5lUmVjdCgpKS5ib3VuZGluZ1JlY3QoKS50b0FsaWduZWRSZWN0KCk7
CisgICAgfQorCisgICAgLy8gQWxsIHdlIGdldCBpcyB0aGUgdmlld3BvcnQncyB2aXNpYmxlIHJl
Z2lvbi4gV2UgaGF2ZSB0byBtYXAgaXQgdG8gdGhlIHNjZW5lIGFuZCB0aGVuIHRvIGl0ZW0gY29v
cmRpbmF0ZXMuCisKKyAgICByZXR1cm4gbWFwRnJvbVNjZW5lKHZpZXctPm1hcFRvU2NlbmUodmll
dy0+dmlld3BvcnQoKS0+dmlzaWJsZVJlZ2lvbigpLmJvdW5kaW5nUmVjdCgpKS5ib3VuZGluZ1Jl
Y3QoKSkuYm91bmRpbmdSZWN0KCkudG9BbGlnbmVkUmVjdCgpOworfQorCisKIHZvaWQgR3JhcGhp
Y3NMYXllclF0SW1wbDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCgpCiB7CiAgICAgLy8gV2ViQ29y
ZSBub3RpZmllcyBqYXZhc2NyaXB0IHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydHMuIEhlcmUgd2Un
cmUgbGV0dGluZyBpdCBrbm93LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UaWxlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3Bw
CmluZGV4IDk2Mjg0NDguLjkzN2E3OGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvVGlsZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1Rp
bGVRdC5jcHAKQEAgLTk3LDkgKzk3LDExIEBAIHZvaWQgVGlsZTo6dXBkYXRlQmFja0J1ZmZlcigp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9iYWNrQnVmZmVyKSB7Ci0gICAgICAgIGlm
ICghbV9idWZmZXIpCisgICAgICAgIGlmICghbV9idWZmZXIpIHsKICAgICAgICAgICAgIG1fYmFj
a0J1ZmZlciA9IG5ldyBRUGl4bWFwKG1fYmFja2luZ1N0b3JlLT5tX3RpbGVTaXplLndpZHRoKCks
IG1fYmFja2luZ1N0b3JlLT5tX3RpbGVTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBpZiAobV9iYWNraW5nU3RvcmUtPnRyYW5zcGFyZW50VGlsZXNFbmFibGVkKCkp
CisgICAgICAgICAgICAgICAgbV9iYWNrQnVmZmVyLT5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Cisg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBDdXJyZW50bHkgYWxsIGJ1ZmZlcnMgYXJl
IHVwZGF0ZWQgc3luY2hyb25vdXNseSBhdCB0aGUgc2FtZSB0aW1lIHNvIHRoZXJlIGlzIG5vIHJl
YWwgbmVlZAogICAgICAgICAgICAgLy8gdG8gaGF2ZSBzZXBhcmF0ZSBiYWNrIGFuZCBmcm9udCBi
dWZmZXJzLiBKdXN0IHVzZSB0aGUgZXhpc3RpbmcgYnVmZmVyLgogICAgICAgICAgICAgbV9iYWNr
QnVmZmVyID0gbV9idWZmZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57824</attachid>
            <date>2010-06-03 15:50:39 -0700</date>
            <delta_ts>2010-06-03 16:04:46 -0700</delta_ts>
            <desc>AC + tiling (style fix)</desc>
            <filename>patch-36961-1.diff</filename>
            <type>text/plain</type>
            <size>9302</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5k
ZXggMWQ2ZjIzNy4uNWQ2ODY0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
aWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5OCw2ICszOTgsMTEgQEAgdm9pZCBUaWxlZEJhY2tp
bmdTdG9yZTo6c2V0Q29udGVudHNGcm96ZW4oYm9vbCBmcmVlemUpCiAgICAgfQogfQogCit2b2lk
IFRpbGVkQmFja2luZ1N0b3JlOjpzZXRUcmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgbV90cmFuc3BhcmVudFRpbGVzID0gZW5hYmxlZDsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAppbmRl
eCA1ODQ3N2RiLi44M2Q2ZjhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRl
bnRzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0Zyb3plbjsgfQogICAgIHZvaWQg
c2V0Q29udGVudHNGcm96ZW4oYm9vbCk7CiAKKyAgICBib29sIHRyYW5zcGFyZW50VGlsZXNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc3BhcmVudFRpbGVzOyB9CisgICAgdm9pZCBzZXRU
cmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZShjb25z
dCBJbnRSZWN0JiBkaXJ0eVJlY3QpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYpOwogICAgIApAQCAtMTE3LDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9wZW5kaW5nU2NhbGU7CiAKICAgICBib29sIG1fY29udGVudHNGcm96ZW47CisgICAg
Ym9vbCBtX3RyYW5zcGFyZW50VGlsZXM7CiAKICAgICBmcmllbmQgY2xhc3MgVGlsZTsKIH07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5k
ZXggMWNjMjFiOC4uYzMxYTY2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtMzYsMTEgKzM2LDIxIEBACiAjaW5jbHVkZSA8UXRH
dWkvcWdyYXBoaWNzZWZmZWN0Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWdyYXBoaWNzaXRlbS5oPgog
I2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3NjZW5lLmg+CisjaW5jbHVkZSA8UXRHdWkvcWdyYXBo
aWNzdmlldy5oPgogI2luY2x1ZGUgPFF0R3VpL3FwYWludGVyLmg+CiAjaW5jbHVkZSA8UXRHdWkv
cXBpeG1hcC5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0
R3VpL3FzdHlsZW9wdGlvbi5oPgogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudC5oIgorCisvLyBUaGUgbWluaW11bSB3aWR0aC9oZWlnaHQgZm9yIHRpbGluZy4gV2Ug
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLgorI2RlZmlu
ZSBHUkFQSElDU19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIDIwMDAKKworI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQSElDU0VGRkVDVApAQCAtMTA0LDcg
KzExNCwxMSBAQCBwdWJsaWM6CiB9OwogI2VuZGlmIC8vIFFUX05PX0dSQVBISUNTRUZGRUNUCiAK
LWNsYXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0IHsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0CisjaWYgRU5B
QkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgICAgICwgcHVibGljIHZpcnR1YWwgVGlsZWRC
YWNraW5nU3RvcmVDbGllbnQKKyNlbmRpZgorewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKQEAg
LTE3NSw2ICsxODksMTUgQEAgcHVibGljOgogICAgIC8vIENocm9tZUNsaWVudFF0OjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJTeW5jIChtZWFuaW5nIHRoZSBzeW5jIHdpbGwgaGFwcGVuIEFTQVAp
CiAgICAgdm9pZCBmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUgPSB0cnVlLCBib29sIGZvcmNl
VHJhbnNmb3JtVXBkYXRlID0gZmFsc2UpOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgLy8gcmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBUaWxlZEJhY2tpbmdTdG9yZUNsaWVu
dAorICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQo
Y29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSk7CisgICAgdmlydHVhbCBJbnRSZWN0
IHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCk7CisgICAgdmlydHVhbCBJbnRSZWN0IHRp
bGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKTsKKyNlbmRpZgorCiBwdWJsaWMgc2xvdHM6CiAg
ICAgLy8gV2UgbmVlZCB0byBub3RpZnkgdGhlIGNsaWVudCAoaWUuIHRoZSBsYXllciBjb21wb3Np
dG9yKSB3aGVuIHRoZSBhbmltYXRpb24gYWN0dWFsbHkgc3RhcnRzLgogICAgIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZCgpOwpAQCAtMjI0LDYgKzI0NywxMCBAQCBwdWJsaWM6CiAKICAgICBp
bnQgbV9jaGFuZ2VNYXNrOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAg
VGlsZWRCYWNraW5nU3RvcmUqIG1fdGlsZWRCYWNraW5nU3RvcmU7CisjZW5kaWYKKwogICAgIFFT
aXplRiBtX3NpemU7CiAgICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNraW5nU3RvcmVLZXk7CiAj
aWZuZGVmIFFUX05PX0FOSU1BVElPTgpAQCAtMjkzLDYgKzMyMCw5IEBAIEdyYXBoaWNzTGF5ZXJR
dEltcGw6OkdyYXBoaWNzTGF5ZXJRdEltcGwoR3JhcGhpY3NMYXllclF0KiBuZXdMYXllcikKICAg
ICAsIG1fdHJhbnNmb3JtQW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAgICAsIG1fb3BhY2l0eUFu
aW1hdGlvblJ1bm5pbmcoZmFsc2UpCiAgICAgLCBtX2NoYW5nZU1hc2soTm9DaGFuZ2VzKQorI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICwgbV90aWxlZEJhY2tpbmdTdG9yZSgw
KQorI2VuZGlmCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKICAgICAsIG1fZ2MzRCgwKQogI2VuZGlm
CkBAIC0zNDIsNiArMzcyLDI4IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNo
ZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBpZiAoIW1fbGF5ZXItPmRyYXdz
Q29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIFFQaXhtYXAoKTsKIAorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
ICAgIGNvbnN0IGJvb2wgcmVxdWlyZXNUaWxpbmcgPSAobV9zaXplLndpZHRoKCkgPiBHUkFQSElD
U19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIHx8IG1fc2l6ZS5oZWlnaHQoKSA+IEdSQVBISUNTX0xB
WUVSX1RJTElOR19USFJFU0hPTEQpOworICAgIGlmIChyZXF1aXJlc1RpbGluZyAmJiAhbV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gbmV3IFRpbGVk
QmFja2luZ1N0b3JlKHRoaXMpOworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5zZXRUcmFu
c3BhcmVudFRpbGVzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+
c2V0VGlsZUNyZWF0aW9uRGVsYXkoMCk7CisgICAgICAgIHNldEZsYWcoSXRlbVVzZXNFeHRlbmRl
ZFN0eWxlT3B0aW9uLCB0cnVlKTsKKyAgICB9IGVsc2UgaWYgKCFyZXF1aXJlc1RpbGluZyAmJiBt
X3RpbGVkQmFja2luZ1N0b3JlKSB7CisgICAgICAgIGRlbGV0ZSBtX3RpbGVkQmFja2luZ1N0b3Jl
OworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gMDsKKyAgICAgICAgc2V0RmxhZyhJdGVt
VXNlc0V4dGVuZGVkU3R5bGVPcHRpb24sIGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAobV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNp
YmxlUmVjdCgpOworICAgICAgICBjb25zdCBRVmVjdG9yPFFSZWN0PiByZWN0cyA9IHJlZ2lvblRv
VXBkYXRlLnJlY3RzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgp
OyArK2kpCisgICAgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmludmFsaWRhdGUocmVjdHNb
aV0pOworICAgICAgICByZXR1cm4gUVBpeG1hcCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgUVJl
Z2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKIApAQCAt
NDc4LDEyICs1MzAsMjcgQEAgUVJlY3RGIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmJvdW5kaW5nUmVj
dCgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBh
aW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0KiB3
aWRnZXQpCiB7CisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgLy8gRklYTUU6
IFRoZXJlJ3MgY3VycmVudGx5IG5vIFF0IEFQSSB0byBrbm93IGlmIGEgbmV3IHJlZ2lvbiBvZiBh
biBpdGVtIGlzIGV4cG9zZWQsIGFwYXJ0IGZyb20gb3ZlcmxvYWRpbmcgcGFpbnQKKyAgICAvLyBz
byBmb3Igbm93IHdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlLgorICAgIGlmIChtX3RpbGVkQmFja2lu
Z1N0b3JlKQorICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNpYmxlUmVjdCgp
OworI2VuZGlmCisKICAgICBpZiAobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQotICAgICAgICBwYWludGVyLT5maWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xvciht
X2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikpOworICAgICAgICBwYWludGVyLT5maWxs
UmVjdChvcHRpb24tPmV4cG9zZWRSZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3Jv
dW5kQ29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkg
ewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3c0Nv
bnRlbnQpIHsKKworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICAgICAg
aWYgKG1fdGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQgZ2MocGFpbnRlcik7CisgICAgICAgICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+cGFp
bnQoJmdjLCBvcHRpb24tPmV4cG9zZWRSZWN0LnRvQWxpZ25lZFJlY3QoKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBRUGl4bWFw
IGJhY2tpbmdTdG9yZTsKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNoZSwg
aW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcuIGlm
IGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFj
a2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1f
c2l6ZS50b1NpemUoKSkKQEAgLTUyNSw2ICs1OTIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OmZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9y
bQogewogICAgIC8vIFRoaXMgaXMgdGhlIGJ1bGsgb2YgdGhlIHdvcmsuIHVuZGVyc3RhbmRpbmcg
d2hhdCB0aGUgY29tcG9zaXRvciBpcyB0cnlpbmcgdG8gYWNoaWV2ZSwgd2hhdAogICAgIC8vIGdy
YXBoaWNzdmlldyBjYW4gZG8sIGFuZCB0cnlpbmcgdG8gZmluZCBhIHNhbmUgY29tbW9uLWdyb3Vu
ZC4KKwogICAgIGlmICghbV9sYXllciB8fCBtX2NoYW5nZU1hc2sgPT0gTm9DaGFuZ2VzKQogICAg
ICAgICBnb3RvIGFmdGVyTGF5ZXJDaGFuZ2VzOwogCkBAIC02NzYsNyArNzQ0LDggQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9y
Y2VVcGRhdGVUcmFuc2Zvcm0KICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBvciBzb2xp
ZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9
PSBIVE1MQ29udGVudFR5cGUpCiAgICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0NvbnRlbnQu
cmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25U
b1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CisKKy8vICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29u
dGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CiAgICAgICAgIG1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAgfQogI2VuZGlmCkBAIC03Mjgs
NiArNzk3LDQ4IEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgIH0KIH0KIAorCisjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50
LmgpCisqLwordm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50
QmVnaW4oKQoreworfQorCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgpCisq
Lwordm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBo
aWNzQ29udGV4dCogZ2MsICBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fbGF5ZXItPnBh
aW50R3JhcGhpY3NMYXllckNvbnRlbnRzKCpnYywgcmVjdCk7Cit9CisKKy8qIFxyZWltcCAoVGls
ZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRp
bGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJl
YSkKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaW50ZWRBcmVhLnNpemUoKTsgKytpKQor
ICAgICAgICB1cGRhdGUoUVJlY3RGKHBhaW50ZWRBcmVhW2ldKSk7Cit9CisKKy8qIFxyZWltcCAo
VGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKKyovCitJbnRSZWN0IEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkKK3sKKyAgICByZXR1cm4gbV9sYXll
ci0+Y29udGVudHNSZWN0KCk7Cit9CisjZW5kaWYKKworSW50UmVjdCBHcmFwaGljc0xheWVyUXRJ
bXBsOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkKK3sKKyAgICBjb25zdCBRR3JhcGhp
Y3NWaWV3KiB2aWV3ID0gc2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkgPyAwIDogc2NlbmUoKS0+
dmlld3MoKS5maXJzdCgpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIG1hcEZyb21T
Y2VuZShzY2VuZSgpLT5zY2VuZVJlY3QoKSkuYm91bmRpbmdSZWN0KCkudG9BbGlnbmVkUmVjdCgp
OworCisgICAgLy8gQWxsIHdlIGdldCBpcyB0aGUgdmlld3BvcnQncyB2aXNpYmxlIHJlZ2lvbi4g
V2UgaGF2ZSB0byBtYXAgaXQgdG8gdGhlIHNjZW5lIGFuZCB0aGVuIHRvIGl0ZW0gY29vcmRpbmF0
ZXMuCisgICAgcmV0dXJuIG1hcEZyb21TY2VuZSh2aWV3LT5tYXBUb1NjZW5lKHZpZXctPnZpZXdw
b3J0KCktPnZpc2libGVSZWdpb24oKS5ib3VuZGluZ1JlY3QoKSkuYm91bmRpbmdSZWN0KCkpLmJv
dW5kaW5nUmVjdCgpLnRvQWxpZ25lZFJlY3QoKTsKK30KKworCiB2b2lkIEdyYXBoaWNzTGF5ZXJR
dEltcGw6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoKQogewogICAgIC8vIFdlYkNvcmUgbm90aWZp
ZXMgamF2YXNjcmlwdCB3aGVuIHRoZSBhbmltYXRpb24gc3RhcnRzLiBIZXJlIHdlJ3JlIGxldHRp
bmcgaXQga25vdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGls
ZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmNwcAppbmRleCA5
NjI4NDQ4Li45MzdhNzhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L1RpbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3Bw
CkBAIC05Nyw5ICs5NywxMSBAQCB2b2lkIFRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIW1fYmFja0J1ZmZlcikgewotICAgICAgICBpZiAoIW1fYnVm
ZmVyKQorICAgICAgICBpZiAoIW1fYnVmZmVyKSB7CiAgICAgICAgICAgICBtX2JhY2tCdWZmZXIg
PSBuZXcgUVBpeG1hcChtX2JhY2tpbmdTdG9yZS0+bV90aWxlU2l6ZS53aWR0aCgpLCBtX2JhY2tp
bmdTdG9yZS0+bV90aWxlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgaWYgKG1fYmFja2luZ1N0b3JlLT50cmFuc3BhcmVudFRpbGVzRW5hYmxlZCgpKQorICAgICAg
ICAgICAgICAgIG1fYmFja0J1ZmZlci0+ZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgLy8gQ3VycmVudGx5IGFsbCBidWZmZXJzIGFyZSB1cGRhdGVk
IHN5bmNocm9ub3VzbHkgYXQgdGhlIHNhbWUgdGltZSBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQK
ICAgICAgICAgICAgIC8vIHRvIGhhdmUgc2VwYXJhdGUgYmFjayBhbmQgZnJvbnQgYnVmZmVycy4g
SnVzdCB1c2UgdGhlIGV4aXN0aW5nIGJ1ZmZlci4KICAgICAgICAgICAgIG1fYmFja0J1ZmZlciA9
IG1fYnVmZmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57825</attachid>
            <date>2010-06-03 15:54:13 -0700</date>
            <delta_ts>2010-11-02 16:57:45 -0700</delta_ts>
            <desc>Tiling performance issue</desc>
            <filename>patch-tiling-perf.diff</filename>
            <type>text/plain</type>
            <size>1170</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5k
ZXggNWQ2ODY0Yi4uYzU3OTgwOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
aWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTc1LDkgKzc1LDExIEBAIHZvaWQgVGlsZWRCYWNraW5n
U3RvcmU6OmludmFsaWRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudHNEaXJ0eVJlY3QpCiAgICAg
CiAgICAgVGlsZTo6Q29vcmRpbmF0ZSB0b3BMZWZ0ID0gdGlsZUNvb3JkaW5hdGVGb3JQb2ludChk
aXJ0eVJlY3QudG9wTGVmdCgpKTsKICAgICBUaWxlOjpDb29yZGluYXRlIGJvdHRvbVJpZ2h0ID0g
dGlsZUNvb3JkaW5hdGVGb3JQb2ludChkaXJ0eVJlY3QuYm90dG9tUmlnaHQoKSk7Ci0gICAgCi0g
ICAgZm9yICh1bnNpZ25lZCB5Q29vcmRpbmF0ZSA9IHRvcExlZnQueSgpOyB5Q29vcmRpbmF0ZSA8
PSBib3R0b21SaWdodC55KCk7ICsreUNvb3JkaW5hdGUpIHsKLSAgICAgICAgZm9yICh1bnNpZ25l
ZCB4Q29vcmRpbmF0ZSA9IHRvcExlZnQueCgpOyB4Q29vcmRpbmF0ZSA8PSBib3R0b21SaWdodC54
KCk7ICsreENvb3JkaW5hdGUpIHsKKyAgICBjb25zdCBpbnQgdGlsZVdpZHRoID0gdGlsZVNpemUo
KS53aWR0aCgpOworICAgIGNvbnN0IGludCB0aWxlSGVpZ2h0ID0gdGlsZVNpemUoKS5oZWlnaHQo
KTsKKworICAgIGZvciAodW5zaWduZWQgeUNvb3JkaW5hdGUgPSB0b3BMZWZ0LnkoKTsgeUNvb3Jk
aW5hdGUgPD0gYm90dG9tUmlnaHQueSgpOyB5Q29vcmRpbmF0ZSArPSB0aWxlSGVpZ2h0KSB7Cisg
ICAgICAgIGZvciAodW5zaWduZWQgeENvb3JkaW5hdGUgPSB0b3BMZWZ0LngoKTsgeENvb3JkaW5h
dGUgPD0gYm90dG9tUmlnaHQueCgpOyB4Q29vcmRpbmF0ZSArPSB0aWxlV2lkdGgpIHsKICAgICAg
ICAgICAgIFJlZlB0cjxUaWxlPiBjdXJyZW50VGlsZSA9IHRpbGVBdChUaWxlOjpDb29yZGluYXRl
KHhDb29yZGluYXRlLCB5Q29vcmRpbmF0ZSkpOwogICAgICAgICAgICAgaWYgKCFjdXJyZW50VGls
ZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57826</attachid>
            <date>2010-06-03 16:04:46 -0700</date>
            <delta_ts>2010-06-03 16:06:21 -0700</delta_ts>
            <desc>AC + Tiling</desc>
            <filename>patch-36961-1.diff</filename>
            <type>text/plain</type>
            <size>9302</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5k
ZXggMWQ2ZjIzNy4uNWQ2ODY0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
aWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5OCw2ICszOTgsMTEgQEAgdm9pZCBUaWxlZEJhY2tp
bmdTdG9yZTo6c2V0Q29udGVudHNGcm96ZW4oYm9vbCBmcmVlemUpCiAgICAgfQogfQogCit2b2lk
IFRpbGVkQmFja2luZ1N0b3JlOjpzZXRUcmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgbV90cmFuc3BhcmVudFRpbGVzID0gZW5hYmxlZDsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAppbmRl
eCA1ODQ3N2RiLi44M2Q2ZjhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRl
bnRzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0Zyb3plbjsgfQogICAgIHZvaWQg
c2V0Q29udGVudHNGcm96ZW4oYm9vbCk7CiAKKyAgICBib29sIHRyYW5zcGFyZW50VGlsZXNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc3BhcmVudFRpbGVzOyB9CisgICAgdm9pZCBzZXRU
cmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZShjb25z
dCBJbnRSZWN0JiBkaXJ0eVJlY3QpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYpOwogICAgIApAQCAtMTE3LDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9wZW5kaW5nU2NhbGU7CiAKICAgICBib29sIG1fY29udGVudHNGcm96ZW47CisgICAg
Ym9vbCBtX3RyYW5zcGFyZW50VGlsZXM7CiAKICAgICBmcmllbmQgY2xhc3MgVGlsZTsKIH07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5k
ZXggMWNjMjFiOC4uYzMxYTY2YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtMzYsMTEgKzM2LDIxIEBACiAjaW5jbHVkZSA8UXRH
dWkvcWdyYXBoaWNzZWZmZWN0Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWdyYXBoaWNzaXRlbS5oPgog
I2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3NjZW5lLmg+CisjaW5jbHVkZSA8UXRHdWkvcWdyYXBo
aWNzdmlldy5oPgogI2luY2x1ZGUgPFF0R3VpL3FwYWludGVyLmg+CiAjaW5jbHVkZSA8UXRHdWkv
cXBpeG1hcC5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0
R3VpL3FzdHlsZW9wdGlvbi5oPgogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudC5oIgorCisvLyBUaGUgbWluaW11bSB3aWR0aC9oZWlnaHQgZm9yIHRpbGluZy4gV2Ug
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLgorI2RlZmlu
ZSBHUkFQSElDU19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIDIwMDAKKworI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQSElDU0VGRkVDVApAQCAtMTA0LDcg
KzExNCwxMSBAQCBwdWJsaWM6CiB9OwogI2VuZGlmIC8vIFFUX05PX0dSQVBISUNTRUZGRUNUCiAK
LWNsYXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0IHsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0CisjaWYgRU5B
QkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgICAgICwgcHVibGljIHZpcnR1YWwgVGlsZWRC
YWNraW5nU3RvcmVDbGllbnQKKyNlbmRpZgorewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKQEAg
LTE3NSw2ICsxODksMTUgQEAgcHVibGljOgogICAgIC8vIENocm9tZUNsaWVudFF0OjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJTeW5jIChtZWFuaW5nIHRoZSBzeW5jIHdpbGwgaGFwcGVuIEFTQVAp
CiAgICAgdm9pZCBmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUgPSB0cnVlLCBib29sIGZvcmNl
VHJhbnNmb3JtVXBkYXRlID0gZmFsc2UpOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgLy8gcmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBUaWxlZEJhY2tpbmdTdG9yZUNsaWVu
dAorICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQo
Y29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSk7CisgICAgdmlydHVhbCBJbnRSZWN0
IHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCk7CisgICAgdmlydHVhbCBJbnRSZWN0IHRp
bGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKTsKKyNlbmRpZgorCiBwdWJsaWMgc2xvdHM6CiAg
ICAgLy8gV2UgbmVlZCB0byBub3RpZnkgdGhlIGNsaWVudCAoaWUuIHRoZSBsYXllciBjb21wb3Np
dG9yKSB3aGVuIHRoZSBhbmltYXRpb24gYWN0dWFsbHkgc3RhcnRzLgogICAgIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZCgpOwpAQCAtMjI0LDYgKzI0NywxMCBAQCBwdWJsaWM6CiAKICAgICBp
bnQgbV9jaGFuZ2VNYXNrOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAg
VGlsZWRCYWNraW5nU3RvcmUqIG1fdGlsZWRCYWNraW5nU3RvcmU7CisjZW5kaWYKKwogICAgIFFT
aXplRiBtX3NpemU7CiAgICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNraW5nU3RvcmVLZXk7CiAj
aWZuZGVmIFFUX05PX0FOSU1BVElPTgpAQCAtMjkzLDYgKzMyMCw5IEBAIEdyYXBoaWNzTGF5ZXJR
dEltcGw6OkdyYXBoaWNzTGF5ZXJRdEltcGwoR3JhcGhpY3NMYXllclF0KiBuZXdMYXllcikKICAg
ICAsIG1fdHJhbnNmb3JtQW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAgICAsIG1fb3BhY2l0eUFu
aW1hdGlvblJ1bm5pbmcoZmFsc2UpCiAgICAgLCBtX2NoYW5nZU1hc2soTm9DaGFuZ2VzKQorI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICwgbV90aWxlZEJhY2tpbmdTdG9yZSgw
KQorI2VuZGlmCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKICAgICAsIG1fZ2MzRCgwKQogI2VuZGlm
CkBAIC0zNDIsNiArMzcyLDI4IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNo
ZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBpZiAoIW1fbGF5ZXItPmRyYXdz
Q29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIFFQaXhtYXAoKTsKIAorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
ICAgIGNvbnN0IGJvb2wgcmVxdWlyZXNUaWxpbmcgPSAobV9zaXplLndpZHRoKCkgPiBHUkFQSElD
U19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIHx8IG1fc2l6ZS5oZWlnaHQoKSA+IEdSQVBISUNTX0xB
WUVSX1RJTElOR19USFJFU0hPTEQpOworICAgIGlmIChyZXF1aXJlc1RpbGluZyAmJiAhbV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gbmV3IFRpbGVk
QmFja2luZ1N0b3JlKHRoaXMpOworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5zZXRUcmFu
c3BhcmVudFRpbGVzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+
c2V0VGlsZUNyZWF0aW9uRGVsYXkoMCk7CisgICAgICAgIHNldEZsYWcoSXRlbVVzZXNFeHRlbmRl
ZFN0eWxlT3B0aW9uLCB0cnVlKTsKKyAgICB9IGVsc2UgaWYgKCFyZXF1aXJlc1RpbGluZyAmJiBt
X3RpbGVkQmFja2luZ1N0b3JlKSB7CisgICAgICAgIGRlbGV0ZSBtX3RpbGVkQmFja2luZ1N0b3Jl
OworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gMDsKKyAgICAgICAgc2V0RmxhZyhJdGVt
VXNlc0V4dGVuZGVkU3R5bGVPcHRpb24sIGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAobV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNp
YmxlUmVjdCgpOworICAgICAgICBjb25zdCBRVmVjdG9yPFFSZWN0PiByZWN0cyA9IHJlZ2lvblRv
VXBkYXRlLnJlY3RzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgp
OyArK2kpCisgICAgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmludmFsaWRhdGUocmVjdHNb
aV0pOworICAgICAgICByZXR1cm4gUVBpeG1hcCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgUVJl
Z2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKIApAQCAt
NDc4LDEyICs1MzAsMjcgQEAgUVJlY3RGIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmJvdW5kaW5nUmVj
dCgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBh
aW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0KiB3
aWRnZXQpCiB7CisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgLy8gRklYTUU6
IFRoZXJlJ3MgY3VycmVudGx5IG5vIFF0IEFQSSB0byBrbm93IGlmIGEgbmV3IHJlZ2lvbiBvZiBh
biBpdGVtIGlzIGV4cG9zZWQsIGFwYXJ0IGZyb20gb3ZlcmxvYWRpbmcgcGFpbnQKKyAgICAvLyBz
byBmb3Igbm93IHdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlLgorICAgIGlmIChtX3RpbGVkQmFja2lu
Z1N0b3JlKQorICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNpYmxlUmVjdCgp
OworI2VuZGlmCisKICAgICBpZiAobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQotICAgICAgICBwYWludGVyLT5maWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xvciht
X2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikpOworICAgICAgICBwYWludGVyLT5maWxs
UmVjdChvcHRpb24tPmV4cG9zZWRSZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3Jv
dW5kQ29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkg
ewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3c0Nv
bnRlbnQpIHsKKworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICAgICAg
aWYgKG1fdGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQgZ2MocGFpbnRlcik7CisgICAgICAgICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+cGFp
bnQoJmdjLCBvcHRpb24tPmV4cG9zZWRSZWN0LnRvQWxpZ25lZFJlY3QoKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBRUGl4bWFw
IGJhY2tpbmdTdG9yZTsKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNoZSwg
aW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcuIGlm
IGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFj
a2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1f
c2l6ZS50b1NpemUoKSkKQEAgLTUyNSw2ICs1OTIsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OmZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9y
bQogewogICAgIC8vIFRoaXMgaXMgdGhlIGJ1bGsgb2YgdGhlIHdvcmsuIHVuZGVyc3RhbmRpbmcg
d2hhdCB0aGUgY29tcG9zaXRvciBpcyB0cnlpbmcgdG8gYWNoaWV2ZSwgd2hhdAogICAgIC8vIGdy
YXBoaWNzdmlldyBjYW4gZG8sIGFuZCB0cnlpbmcgdG8gZmluZCBhIHNhbmUgY29tbW9uLWdyb3Vu
ZC4KKwogICAgIGlmICghbV9sYXllciB8fCBtX2NoYW5nZU1hc2sgPT0gTm9DaGFuZ2VzKQogICAg
ICAgICBnb3RvIGFmdGVyTGF5ZXJDaGFuZ2VzOwogCkBAIC02NzYsNyArNzQ0LDggQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9y
Y2VVcGRhdGVUcmFuc2Zvcm0KICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBvciBzb2xp
ZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9
PSBIVE1MQ29udGVudFR5cGUpCiAgICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0NvbnRlbnQu
cmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25U
b1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CisKKy8vICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29u
dGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CiAgICAgICAgIG1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAgfQogI2VuZGlmCkBAIC03Mjgs
NiArNzk3LDQ4IEBAIGFmdGVyTGF5ZXJDaGFuZ2VzOgogICAgIH0KIH0KIAorCisjaWYgRU5BQkxF
KFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50
LmgpCisqLwordm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50
QmVnaW4oKQoreworfQorCisvKiBccmVpbXAgKFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50LmgpCisq
Lwordm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KEdyYXBo
aWNzQ29udGV4dCogZ2MsICBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fbGF5ZXItPnBh
aW50R3JhcGhpY3NMYXllckNvbnRlbnRzKCpnYywgcmVjdCk7Cit9CisKKy8qIFxyZWltcCAoVGls
ZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRp
bGVkQmFja2luZ1N0b3JlUGFpbnRFbmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJl
YSkKK3sKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IHBhaW50ZWRBcmVhLnNpemUoKTsgKytpKQor
ICAgICAgICB1cGRhdGUoUVJlY3RGKHBhaW50ZWRBcmVhW2ldKSk7Cit9CisKKy8qIFxyZWltcCAo
VGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCkKKyovCitJbnRSZWN0IEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCkKK3sKKyAgICByZXR1cm4gbV9sYXll
ci0+Y29udGVudHNSZWN0KCk7Cit9CisjZW5kaWYKKworSW50UmVjdCBHcmFwaGljc0xheWVyUXRJ
bXBsOjp0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkKK3sKKyAgICBjb25zdCBRR3JhcGhp
Y3NWaWV3KiB2aWV3ID0gc2NlbmUoKS0+dmlld3MoKS5pc0VtcHR5KCkgPyAwIDogc2NlbmUoKS0+
dmlld3MoKS5maXJzdCgpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIG1hcEZyb21T
Y2VuZShzY2VuZSgpLT5zY2VuZVJlY3QoKSkuYm91bmRpbmdSZWN0KCkudG9BbGlnbmVkUmVjdCgp
OworCisgICAgLy8gQWxsIHdlIGdldCBpcyB0aGUgdmlld3BvcnQncyB2aXNpYmxlIHJlZ2lvbi4g
V2UgaGF2ZSB0byBtYXAgaXQgdG8gdGhlIHNjZW5lIGFuZCB0aGVuIHRvIGl0ZW0gY29vcmRpbmF0
ZXMuCisgICAgcmV0dXJuIG1hcEZyb21TY2VuZSh2aWV3LT5tYXBUb1NjZW5lKHZpZXctPnZpZXdw
b3J0KCktPnZpc2libGVSZWdpb24oKS5ib3VuZGluZ1JlY3QoKSkuYm91bmRpbmdSZWN0KCkpLmJv
dW5kaW5nUmVjdCgpLnRvQWxpZ25lZFJlY3QoKTsKK30KKworCiB2b2lkIEdyYXBoaWNzTGF5ZXJR
dEltcGw6Om5vdGlmeUFuaW1hdGlvblN0YXJ0ZWQoKQogewogICAgIC8vIFdlYkNvcmUgbm90aWZp
ZXMgamF2YXNjcmlwdCB3aGVuIHRoZSBhbmltYXRpb24gc3RhcnRzLiBIZXJlIHdlJ3JlIGxldHRp
bmcgaXQga25vdy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGls
ZVF0LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvVGlsZVF0LmNwcAppbmRleCA5
NjI4NDQ4Li45MzdhNzhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0
L1RpbGVRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3Bw
CkBAIC05Nyw5ICs5NywxMSBAQCB2b2lkIFRpbGU6OnVwZGF0ZUJhY2tCdWZmZXIoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIW1fYmFja0J1ZmZlcikgewotICAgICAgICBpZiAoIW1fYnVm
ZmVyKQorICAgICAgICBpZiAoIW1fYnVmZmVyKSB7CiAgICAgICAgICAgICBtX2JhY2tCdWZmZXIg
PSBuZXcgUVBpeG1hcChtX2JhY2tpbmdTdG9yZS0+bV90aWxlU2l6ZS53aWR0aCgpLCBtX2JhY2tp
bmdTdG9yZS0+bV90aWxlU2l6ZS5oZWlnaHQoKSk7Ci0gICAgICAgIGVsc2UgeworICAgICAgICAg
ICAgaWYgKG1fYmFja2luZ1N0b3JlLT50cmFuc3BhcmVudFRpbGVzRW5hYmxlZCgpKQorICAgICAg
ICAgICAgICAgIG1fYmFja0J1ZmZlci0+ZmlsbChRdDo6dHJhbnNwYXJlbnQpOworICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgLy8gQ3VycmVudGx5IGFsbCBidWZmZXJzIGFyZSB1cGRhdGVk
IHN5bmNocm9ub3VzbHkgYXQgdGhlIHNhbWUgdGltZSBzbyB0aGVyZSBpcyBubyByZWFsIG5lZWQK
ICAgICAgICAgICAgIC8vIHRvIGhhdmUgc2VwYXJhdGUgYmFjayBhbmQgZnJvbnQgYnVmZmVycy4g
SnVzdCB1c2UgdGhlIGV4aXN0aW5nIGJ1ZmZlci4KICAgICAgICAgICAgIG1fYmFja0J1ZmZlciA9
IG1fYnVmZmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57827</attachid>
            <date>2010-06-03 16:06:21 -0700</date>
            <delta_ts>2010-11-02 16:57:45 -0700</delta_ts>
            <desc> AC+ tiling (~uploaded wrong file)</desc>
            <filename>patch-36961-1.diff</filename>
            <type>text/plain</type>
            <size>9025</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUu
Y3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKaW5k
ZXggMWQ2ZjIzNy4uNWQ2ODY0YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UaWxlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
aWxlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTM5OCw2ICszOTgsMTEgQEAgdm9pZCBUaWxlZEJhY2tp
bmdTdG9yZTo6c2V0Q29udGVudHNGcm96ZW4oYm9vbCBmcmVlemUpCiAgICAgfQogfQogCit2b2lk
IFRpbGVkQmFja2luZ1N0b3JlOjpzZXRUcmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sIGVuYWJs
ZWQpCit7CisgICAgbV90cmFuc3BhcmVudFRpbGVzID0gZW5hYmxlZDsKK30KKwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3Rv
cmUuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAppbmRl
eCA1ODQ3N2RiLi44M2Q2ZjhhIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5oCkBAIC00OSw2ICs0OSw5IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRl
bnRzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50c0Zyb3plbjsgfQogICAgIHZvaWQg
c2V0Q29udGVudHNGcm96ZW4oYm9vbCk7CiAKKyAgICBib29sIHRyYW5zcGFyZW50VGlsZXNFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV90cmFuc3BhcmVudFRpbGVzOyB9CisgICAgdm9pZCBzZXRU
cmFuc3BhcmVudFRpbGVzRW5hYmxlZChib29sKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZShjb25z
dCBJbnRSZWN0JiBkaXJ0eVJlY3QpOwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0Kiwg
Y29uc3QgSW50UmVjdCYpOwogICAgIApAQCAtMTE3LDYgKzEyMCw3IEBAIHByaXZhdGU6CiAgICAg
ZmxvYXQgbV9wZW5kaW5nU2NhbGU7CiAKICAgICBib29sIG1fY29udGVudHNGcm96ZW47CisgICAg
Ym9vbCBtX3RyYW5zcGFyZW50VGlsZXM7CiAKICAgICBmcmllbmQgY2xhc3MgVGlsZTsKIH07CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5k
ZXggMWNjMjFiOC4uZTRmYmNhNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvR3JhcGhpY3NMYXllclF0LmNwcApAQCAtMzYsMTEgKzM2LDIxIEBACiAjaW5jbHVkZSA8UXRH
dWkvcWdyYXBoaWNzZWZmZWN0Lmg+CiAjaW5jbHVkZSA8UXRHdWkvcWdyYXBoaWNzaXRlbS5oPgog
I2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc3NjZW5lLmg+CisjaW5jbHVkZSA8UXRHdWkvcWdyYXBo
aWNzdmlldy5oPgogI2luY2x1ZGUgPFF0R3VpL3FwYWludGVyLmg+CiAjaW5jbHVkZSA8UXRHdWkv
cXBpeG1hcC5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXBjYWNoZS5oPgogI2luY2x1ZGUgPFF0
R3VpL3FzdHlsZW9wdGlvbi5oPgogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisj
aW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmUuaCIKKyNpbmNsdWRlICJUaWxlZEJhY2tpbmdTdG9y
ZUNsaWVudC5oIgorCisvLyBUaGUgbWluaW11bSB3aWR0aC9oZWlnaHQgZm9yIHRpbGluZy4gV2Ug
dXNlIHRoZSBzYW1lIHZhbHVlIGFzIHRoZSBXaW5kb3dzIGltcGxlbWVudGF0aW9uLgorI2RlZmlu
ZSBHUkFQSElDU19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIDIwMDAKKworI2VuZGlmCisKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogI2lmbmRlZiBRVF9OT19HUkFQSElDU0VGRkVDVApAQCAtMTA0LDcg
KzExNCwxMSBAQCBwdWJsaWM6CiB9OwogI2VuZGlmIC8vIFFUX05PX0dSQVBISUNTRUZGRUNUCiAK
LWNsYXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0IHsKK2Ns
YXNzIEdyYXBoaWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0CisjaWYgRU5B
QkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgICAgICwgcHVibGljIHZpcnR1YWwgVGlsZWRC
YWNraW5nU3RvcmVDbGllbnQKKyNlbmRpZgorewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYzoKQEAg
LTE3NSw2ICsxODksMTUgQEAgcHVibGljOgogICAgIC8vIENocm9tZUNsaWVudFF0OjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJTeW5jIChtZWFuaW5nIHRoZSBzeW5jIHdpbGwgaGFwcGVuIEFTQVAp
CiAgICAgdm9pZCBmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUgPSB0cnVlLCBib29sIGZvcmNl
VHJhbnNmb3JtVXBkYXRlID0gZmFsc2UpOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RP
UkUpCisgICAgLy8gcmVpbXBsZW1lbnRhdGlvbnMgZnJvbSBUaWxlZEJhY2tpbmdTdG9yZUNsaWVu
dAorICAgIHZpcnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50QmVnaW4oKTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGlsZWRCYWNraW5nU3RvcmVQYWludChHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQo
Y29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSk7CisgICAgdmlydHVhbCBJbnRSZWN0
IHRpbGVkQmFja2luZ1N0b3JlQ29udGVudHNSZWN0KCk7CisgICAgdmlydHVhbCBJbnRSZWN0IHRp
bGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKTsKKyNlbmRpZgorCiBwdWJsaWMgc2xvdHM6CiAg
ICAgLy8gV2UgbmVlZCB0byBub3RpZnkgdGhlIGNsaWVudCAoaWUuIHRoZSBsYXllciBjb21wb3Np
dG9yKSB3aGVuIHRoZSBhbmltYXRpb24gYWN0dWFsbHkgc3RhcnRzLgogICAgIHZvaWQgbm90aWZ5
QW5pbWF0aW9uU3RhcnRlZCgpOwpAQCAtMjI0LDYgKzI0NywxMCBAQCBwdWJsaWM6CiAKICAgICBp
bnQgbV9jaGFuZ2VNYXNrOwogCisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAg
VGlsZWRCYWNraW5nU3RvcmUqIG1fdGlsZWRCYWNraW5nU3RvcmU7CisjZW5kaWYKKwogICAgIFFT
aXplRiBtX3NpemU7CiAgICAgUVBpeG1hcENhY2hlOjpLZXkgbV9iYWNraW5nU3RvcmVLZXk7CiAj
aWZuZGVmIFFUX05PX0FOSU1BVElPTgpAQCAtMjkzLDYgKzMyMCw5IEBAIEdyYXBoaWNzTGF5ZXJR
dEltcGw6OkdyYXBoaWNzTGF5ZXJRdEltcGwoR3JhcGhpY3NMYXllclF0KiBuZXdMYXllcikKICAg
ICAsIG1fdHJhbnNmb3JtQW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAgICAsIG1fb3BhY2l0eUFu
aW1hdGlvblJ1bm5pbmcoZmFsc2UpCiAgICAgLCBtX2NoYW5nZU1hc2soTm9DaGFuZ2VzKQorI2lm
IEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICwgbV90aWxlZEJhY2tpbmdTdG9yZSgw
KQorI2VuZGlmCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKICAgICAsIG1fZ2MzRCgwKQogI2VuZGlm
CkBAIC0zNDIsNiArMzcyLDI4IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNo
ZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBpZiAoIW1fbGF5ZXItPmRyYXdz
Q29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIFFQaXhtYXAoKTsKIAorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
ICAgIGNvbnN0IGJvb2wgcmVxdWlyZXNUaWxpbmcgPSAobV9zaXplLndpZHRoKCkgPiBHUkFQSElD
U19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIHx8IG1fc2l6ZS5oZWlnaHQoKSA+IEdSQVBISUNTX0xB
WUVSX1RJTElOR19USFJFU0hPTEQpOworICAgIGlmIChyZXF1aXJlc1RpbGluZyAmJiAhbV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gbmV3IFRpbGVk
QmFja2luZ1N0b3JlKHRoaXMpOworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5zZXRUcmFu
c3BhcmVudFRpbGVzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+
c2V0VGlsZUNyZWF0aW9uRGVsYXkoMCk7CisgICAgICAgIHNldEZsYWcoSXRlbVVzZXNFeHRlbmRl
ZFN0eWxlT3B0aW9uLCB0cnVlKTsKKyAgICB9IGVsc2UgaWYgKCFyZXF1aXJlc1RpbGluZyAmJiBt
X3RpbGVkQmFja2luZ1N0b3JlKSB7CisgICAgICAgIGRlbGV0ZSBtX3RpbGVkQmFja2luZ1N0b3Jl
OworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gMDsKKyAgICAgICAgc2V0RmxhZyhJdGVt
VXNlc0V4dGVuZGVkU3R5bGVPcHRpb24sIGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAobV90aWxl
ZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNp
YmxlUmVjdCgpOworICAgICAgICBjb25zdCBRVmVjdG9yPFFSZWN0PiByZWN0cyA9IHJlZ2lvblRv
VXBkYXRlLnJlY3RzKCk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjdHMuc2l6ZSgp
OyArK2kpCisgICAgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmludmFsaWRhdGUocmVjdHNb
aV0pOworICAgICAgICByZXR1cm4gUVBpeG1hcCgpOworICAgIH0KKyNlbmRpZgorCiAgICAgUVJl
Z2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKIApAQCAt
NDc4LDEyICs1MzAsMjcgQEAgUVJlY3RGIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmJvdW5kaW5nUmVj
dCgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBh
aW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlbSogb3B0aW9uLCBRV2lkZ2V0KiB3
aWRnZXQpCiB7CisjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCisgICAgLy8gRklYTUU6
IFRoZXJlJ3MgY3VycmVudGx5IG5vIFF0IEFQSSB0byBrbm93IGlmIGEgbmV3IHJlZ2lvbiBvZiBh
biBpdGVtIGlzIGV4cG9zZWQsIGFwYXJ0IGZyb20gb3ZlcmxvYWRpbmcgcGFpbnQKKyAgICAvLyBz
byBmb3Igbm93IHdlIGhhdmUgdG8gZG8gdGhpcyBoZXJlLgorICAgIGlmIChtX3RpbGVkQmFja2lu
Z1N0b3JlKQorICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5hZGp1c3RWaXNpYmxlUmVjdCgp
OworI2VuZGlmCisKICAgICBpZiAobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IuaXNW
YWxpZCgpKQotICAgICAgICBwYWludGVyLT5maWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xvciht
X2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikpOworICAgICAgICBwYWludGVyLT5maWxs
UmVjdChvcHRpb24tPmV4cG9zZWRSZWN0LCBRQ29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3Jv
dW5kQ29sb3IpKTsKIAogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkg
ewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3c0Nv
bnRlbnQpIHsKKworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICAgICAgICAg
aWYgKG1fdGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRl
eHQgZ2MocGFpbnRlcik7CisgICAgICAgICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+cGFp
bnQoJmdjLCBvcHRpb24tPmV4cG9zZWRSZWN0LnRvQWxpZ25lZFJlY3QoKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICBRUGl4bWFw
IGJhY2tpbmdTdG9yZTsKICAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNoZSwg
aW4gY2FzZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcuIGlm
IGl0IHdhcyBmdWxsKS4KICAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFj
a2luZ1N0b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1f
c2l6ZS50b1NpemUoKSkKQEAgLTY3Niw3ICs3NDMsMTIgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJ
bXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zv
cm0KICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBvciBzb2xpZCByZWN0YW5nbGVzLgog
ICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9PSBIVE1MQ29udGVudFR5
cGUpCiAgICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUp
OwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGlu
Z1JlY3QoKSk7CisKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgaWYg
KCFtX3RpbGVkQmFja2luZ1N0b3JlKQorI2VuZGlmCisgICAgICAgICAgICB1cGRhdGUobV9wZW5k
aW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7CisKICAgICAgICAgbV9w
ZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKICAgICB9CiAjZW5kaWYK
QEAgLTcyOCw2ICs4MDAsNDggQEAgYWZ0ZXJMYXllckNoYW5nZXM6CiAgICAgfQogfQogCisKKyNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKy8qIFxyZWltcCAoVGlsZWRCYWNraW5nU3Rv
cmVDbGllbnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0
b3JlUGFpbnRCZWdpbigpCit7Cit9CisKKy8qIFxyZWltcCAoVGlsZWRCYWNraW5nU3RvcmVDbGll
bnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlUGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBnYywgIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgbV9s
YXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoKmdjLCByZWN0KTsKK30KKworLyogXHJl
aW1wIChUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oKQorKi8KK3ZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBh
aW50ZWRBcmVhKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFpbnRlZEFyZWEuc2l6ZSgp
OyArK2kpCisgICAgICAgIHVwZGF0ZShRUmVjdEYocGFpbnRlZEFyZWFbaV0pKTsKK30KKworLyog
XHJlaW1wIChUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oKQorKi8KK0ludFJlY3QgR3JhcGhpY3NM
YXllclF0SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKQoreworICAgIHJldHVy
biBtX2xheWVyLT5jb250ZW50c1JlY3QoKTsKK30KKyNlbmRpZgorCitJbnRSZWN0IEdyYXBoaWNz
TGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKQoreworICAgIGNvbnN0
IFFHcmFwaGljc1ZpZXcqIHZpZXcgPSBzY2VuZSgpLT52aWV3cygpLmlzRW1wdHkoKSA/IDAgOiBz
Y2VuZSgpLT52aWV3cygpLmZpcnN0KCk7CisgICAgaWYgKCF2aWV3KQorICAgICAgICByZXR1cm4g
bWFwRnJvbVNjZW5lKHNjZW5lKCktPnNjZW5lUmVjdCgpKS5ib3VuZGluZ1JlY3QoKS50b0FsaWdu
ZWRSZWN0KCk7CisKKyAgICAvLyBBbGwgd2UgZ2V0IGlzIHRoZSB2aWV3cG9ydCdzIHZpc2libGUg
cmVnaW9uLiBXZSBoYXZlIHRvIG1hcCBpdCB0byB0aGUgc2NlbmUgYW5kIHRoZW4gdG8gaXRlbSBj
b29yZGluYXRlcy4KKyAgICByZXR1cm4gbWFwRnJvbVNjZW5lKHZpZXctPm1hcFRvU2NlbmUodmll
dy0+dmlld3BvcnQoKS0+dmlzaWJsZVJlZ2lvbigpLmJvdW5kaW5nUmVjdCgpKS5ib3VuZGluZ1Jl
Y3QoKSkuYm91bmRpbmdSZWN0KCkudG9BbGlnbmVkUmVjdCgpOworfQorCisKIHZvaWQgR3JhcGhp
Y3NMYXllclF0SW1wbDo6bm90aWZ5QW5pbWF0aW9uU3RhcnRlZCgpCiB7CiAgICAgLy8gV2ViQ29y
ZSBub3RpZmllcyBqYXZhc2NyaXB0IHdoZW4gdGhlIGFuaW1hdGlvbiBzdGFydHMuIEhlcmUgd2Un
cmUgbGV0dGluZyBpdCBrbm93LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9UaWxlUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9UaWxlUXQuY3Bw
CmluZGV4IDk2Mjg0NDguLjkzN2E3OGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvVGlsZVF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L1Rp
bGVRdC5jcHAKQEAgLTk3LDkgKzk3LDExIEBAIHZvaWQgVGlsZTo6dXBkYXRlQmFja0J1ZmZlcigp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9iYWNrQnVmZmVyKSB7Ci0gICAgICAgIGlm
ICghbV9idWZmZXIpCisgICAgICAgIGlmICghbV9idWZmZXIpIHsKICAgICAgICAgICAgIG1fYmFj
a0J1ZmZlciA9IG5ldyBRUGl4bWFwKG1fYmFja2luZ1N0b3JlLT5tX3RpbGVTaXplLndpZHRoKCks
IG1fYmFja2luZ1N0b3JlLT5tX3RpbGVTaXplLmhlaWdodCgpKTsKLSAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBpZiAobV9iYWNraW5nU3RvcmUtPnRyYW5zcGFyZW50VGlsZXNFbmFibGVkKCkp
CisgICAgICAgICAgICAgICAgbV9iYWNrQnVmZmVyLT5maWxsKFF0Ojp0cmFuc3BhcmVudCk7Cisg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBDdXJyZW50bHkgYWxsIGJ1ZmZlcnMgYXJl
IHVwZGF0ZWQgc3luY2hyb25vdXNseSBhdCB0aGUgc2FtZSB0aW1lIHNvIHRoZXJlIGlzIG5vIHJl
YWwgbmVlZAogICAgICAgICAgICAgLy8gdG8gaGF2ZSBzZXBhcmF0ZSBiYWNrIGFuZCBmcm9udCBi
dWZmZXJzLiBKdXN0IHVzZSB0aGUgZXhpc3RpbmcgYnVmZmVyLgogICAgICAgICAgICAgbV9iYWNr
QnVmZmVyID0gbV9idWZmZXI7Cg==
</data>
<flag name="review"
          id="42485"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72770</attachid>
            <date>2010-11-02 16:57:45 -0700</date>
            <delta_ts>2010-11-03 11:34:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-39691.diff</filename>
            <type>text/plain</type>
            <size>8081</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmU1MjJhNy4uNWI0MjZiNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMC0xMS0wMiAgTm9hbSBSb3NlbnRo
YWwgIDxub2FtLnJvc2VudGhhbEBub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBHcmFwaGljc0xheWVyOiBzdXBwb3J0IHRpbGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzk2OTEK
KworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgVGlsZWRCYWNraW5nU3RvcmUgaW4gR3JhcGhpY3NM
YXllclF0LCB3aGVuIGEgbGF5ZXIgaXMgdG9vIGxhcmdlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gVGVzdHMgaW4gTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvdGlsaW5nIG5vdyB3b3JrIHdpdGgg
T3BlbkdMIGVuYWJsZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGlj
c0xheWVyUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6R3Jh
cGhpY3NMYXllclF0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBs
Ojp+R3JhcGhpY3NMYXllclF0SW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
UXRJbXBsOjpyZWNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6
OnBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFj
a2luZ1N0b3JlUGFpbnRCZWdpbik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJ
bXBsOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVC
YWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6
dGlsZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCk6CisKIDIwMTAtMTEtMDIgIEFkZWxlIFBldGVy
c29uICA8YWRlbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJh
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVy
UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3Bw
CmluZGV4IGFhN2VkMmYuLmY3Nzk0NDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTM3LDEyICszNywyMSBAQAogI2luY2x1ZGUg
PFF0R3VpL3FncmFwaGljc2VmZmVjdC5oPgogI2luY2x1ZGUgPFF0R3VpL3FncmFwaGljc2l0ZW0u
aD4KICNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3NzY2VuZS5oPgorI2luY2x1ZGUgPFF0R3VpL3Fn
cmFwaGljc3ZpZXcuaD4KICNpbmNsdWRlIDxRdEd1aS9xZ3JhcGhpY3N3aWRnZXQuaD4KICNpbmNs
dWRlIDxRdEd1aS9xcGFpbnRlci5oPgogI2luY2x1ZGUgPFF0R3VpL3FwaXhtYXAuaD4KICNpbmNs
dWRlIDxRdEd1aS9xcGl4bWFwY2FjaGUuaD4KICNpbmNsdWRlIDxRdEd1aS9xc3R5bGVvcHRpb24u
aD4KIAorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorI2luY2x1ZGUgIlRpbGVkQmFj
a2luZ1N0b3JlLmgiCisjaW5jbHVkZSAiVGlsZWRCYWNraW5nU3RvcmVDbGllbnQuaCIKKworLy8g
VGhlIG1pbmltdW0gd2lkdGgvaGVpZ2h0IGZvciB0aWxpbmcuIFdlIHVzZSB0aGUgc2FtZSB2YWx1
ZSBhcyB0aGUgV2luZG93cyBpbXBsZW1lbnRhdGlvbi4KKyNkZWZpbmUgR1JBUEhJQ1NfTEFZRVJf
VElMSU5HX1RIUkVTSE9MRCAyMDAwCisjZW5kaWYKKwogCiAjZGVmaW5lIFFUX0RFQlVHX1JFQ0FD
SEUgMAogI2RlZmluZSBRVF9ERUJVR19DQUNIRURVTVAgMApAQCAtMTEyLDcgKzEyMSwxMSBAQCBw
dWJsaWM6CiB9OwogI2VuZGlmIC8vIFFUX05PX0dSQVBISUNTRUZGRUNUCiAKLWNsYXNzIEdyYXBo
aWNzTGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0IHsKK2NsYXNzIEdyYXBoaWNz
TGF5ZXJRdEltcGwgOiBwdWJsaWMgUUdyYXBoaWNzT2JqZWN0CisjaWYgRU5BQkxFKFRJTEVEX0JB
Q0tJTkdfU1RPUkUpCissIHB1YmxpYyB2aXJ0dWFsIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50Cisj
ZW5kaWYKK3sKICAgICBRX09CSkVDVAogCiBwdWJsaWM6CkBAIC0xODIsNiArMTk1LDE2IEBAIHB1
YmxpYzoKICAgICAvLyBDaHJvbWVDbGllbnRRdDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyU3lu
YyAobWVhbmluZyB0aGUgc3luYyB3aWxsIGhhcHBlbiBBU0FQKQogICAgIHZvaWQgZmx1c2hDaGFu
Z2VzKGJvb2wgcmVjdXJzaXZlID0gdHJ1ZSwgYm9vbCBmb3JjZVRyYW5zZm9ybVVwZGF0ZSA9IGZh
bHNlKTsKIAorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIC8vIHJlaW1wbGVt
ZW50YXRpb25zIGZyb20gVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKKyAgICB2aXJ0dWFsIHZvaWQg
dGlsZWRCYWNraW5nU3RvcmVQYWludEJlZ2luKCk7CisgICAgdmlydHVhbCB2b2lkIHRpbGVkQmFj
a2luZ1N0b3JlUGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCB0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKGNvbnN0IFZlY3RvcjxJbnRSZWN0
PiYgcGFpbnRlZEFyZWEpOworICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlZEJhY2tpbmdTdG9yZUNv
bnRlbnRzUmVjdCgpOworICAgIHZpcnR1YWwgSW50UmVjdCB0aWxlZEJhY2tpbmdTdG9yZVZpc2li
bGVSZWN0KCk7CisgICAgdmlydHVhbCBDb2xvciB0aWxlZEJhY2tpbmdTdG9yZUJhY2tncm91bmRD
b2xvcigpIGNvbnN0OworI2VuZGlmCisKIHB1YmxpYyBzbG90czoKICAgICAvLyBXZSBuZWVkIHRv
IG5vdGlmeSB0aGUgY2xpZW50IChpZS4gdGhlIGxheWVyIGNvbXBvc2l0b3IpIHdoZW4gdGhlIGFu
aW1hdGlvbiBhY3R1YWxseSBzdGFydHMuCiAgICAgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVk
KCk7CkBAIC0yMzIsNyArMjU1LDExIEBAIHB1YmxpYzoKIAogICAgIGludCBtX2NoYW5nZU1hc2s7
CiAKLSAgICBRU2l6ZUYgbV9zaXplOworI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQor
ICAgIFRpbGVkQmFja2luZ1N0b3JlKiBtX3RpbGVkQmFja2luZ1N0b3JlOworI2VuZGlmCisKKyAg
ICBRU2l6ZUYgbV9zaXplOwogICAgIHN0cnVjdCB7CiAgICAgICAgIFFQaXhtYXBDYWNoZTo6S2V5
IGtleTsKICAgICAgICAgUVNpemVGIHNpemU7CkBAIC0zMDMsNiArMzMwLDkgQEAgR3JhcGhpY3NM
YXllclF0SW1wbDo6R3JhcGhpY3NMYXllclF0SW1wbChHcmFwaGljc0xheWVyUXQqIG5ld0xheWVy
KQogICAgICwgbV9vcGFjaXR5QW5pbWF0aW9uUnVubmluZyhmYWxzZSkKICAgICAsIG1fYmxvY2tO
b3RpZnlTeW5jUmVxdWlyZWQoZmFsc2UpCiAgICAgLCBtX2NoYW5nZU1hc2soTm9DaGFuZ2VzKQor
I2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgICwgbV90aWxlZEJhY2tpbmdTdG9y
ZSgwKQorI2VuZGlmCiAjaWYgRU5BQkxFKDNEX0NBTlZBUykKICAgICAsIG1fZ2MzRCgwKQogI2Vu
ZGlmCkBAIC0zMzAsNyArMzYwLDkgQEAgR3JhcGhpY3NMYXllclF0SW1wbDo6fkdyYXBoaWNzTGF5
ZXJRdEltcGwoKQogICAgICAgICAgICAgaXRlbS0+c2V0UGFyZW50SXRlbSgwKTsKICAgICAgICAg
fQogICAgIH0KLQorI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQorICAgIGRlbGV0ZSBt
X3RpbGVkQmFja2luZ1N0b3JlOworI2VuZGlmCiAjaWZuZGVmIFFUX05PX0FOSU1BVElPTgogICAg
IC8vIFdlIGRvLCBob3dldmVyLCBvd24gdGhlIGFuaW1hdGlvbnMuCiAgICAgUUxpc3Q8UVdlYWtQ
b2ludGVyPFFBYnN0cmFjdEFuaW1hdGlvbj4gPjo6aXRlcmF0b3IgaXQ7CkBAIC0zNTIsNiArMzg0
LDI3IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9u
JiByZWdpb25Ub1VwZGF0ZSkKICAgICBpZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1f
c2l6ZS5pc0VtcHR5KCkgfHwgIW1fc2l6ZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBRUGl4
bWFwKCk7CiAKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICBjb25zdCBib29s
IHJlcXVpcmVzVGlsaW5nID0gKG1fc3RhdGUuZHJhd3NDb250ZW50ICYmIG1fY3VycmVudENvbnRl
bnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKSAmJiAobV9zaXplLndpZHRoKCkgPiBH
UkFQSElDU19MQVlFUl9USUxJTkdfVEhSRVNIT0xEIHx8IG1fc2l6ZS5oZWlnaHQoKSA+IEdSQVBI
SUNTX0xBWUVSX1RJTElOR19USFJFU0hPTEQpOworICAgIGlmIChyZXF1aXJlc1RpbGluZyAmJiAh
bV90aWxlZEJhY2tpbmdTdG9yZSkgeworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlID0gbmV3
IFRpbGVkQmFja2luZ1N0b3JlKHRoaXMpOworICAgICAgICBtX3RpbGVkQmFja2luZ1N0b3JlLT5z
ZXRUaWxlQ3JlYXRpb25EZWxheSgwKTsKKyAgICAgICAgc2V0RmxhZyhJdGVtVXNlc0V4dGVuZGVk
U3R5bGVPcHRpb24sIHRydWUpOworICAgIH0gZWxzZSBpZiAoIXJlcXVpcmVzVGlsaW5nICYmIG1f
dGlsZWRCYWNraW5nU3RvcmUpIHsKKyAgICAgICAgZGVsZXRlIG1fdGlsZWRCYWNraW5nU3RvcmU7
CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUgPSAwOworICAgICAgICBzZXRGbGFnKEl0ZW1V
c2VzRXh0ZW5kZWRTdHlsZU9wdGlvbiwgZmFsc2UpOworICAgIH0KKworICAgIGlmIChtX3RpbGVk
QmFja2luZ1N0b3JlKSB7CisgICAgICAgIG1fdGlsZWRCYWNraW5nU3RvcmUtPmFkanVzdFZpc2li
bGVSZWN0KCk7CisgICAgICAgIGNvbnN0IFFWZWN0b3I8UVJlY3Q+IHJlY3RzID0gcmVnaW9uVG9V
cGRhdGUucmVjdHMoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCByZWN0cy5zaXplKCk7
ICsraSkKKyAgICAgICAgICAgbV90aWxlZEJhY2tpbmdTdG9yZS0+aW52YWxpZGF0ZShyZWN0c1tp
XSk7CisgICAgICAgIHJldHVybiBRUGl4bWFwKCk7CisgICAgfQorI2VuZGlmCisKICAgICBRUGl4
bWFwIHBpeG1hcDsKICAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRlOwogICAgIGlm
IChRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmUua2V5LCAmcGl4bWFwKSkgewpAQCAt
NTYyLDggKzYxNSwxNSBAQCBRUmVjdEYgR3JhcGhpY3NMYXllclF0SW1wbDo6Ym91bmRpbmdSZWN0
KCkgY29uc3QKIAogdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludChRUGFpbnRlciogcGFp
bnRlciwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGVtKiBvcHRpb24sIFFXaWRnZXQqIHdp
ZGdldCkKIHsKKyNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKyAgICAvLyBGSVhNRTog
VGhlcmUncyBjdXJyZW50bHkgbm8gUXQgQVBJIHRvIGtub3cgaWYgYSBuZXcgcmVnaW9uIG9mIGFu
IGl0ZW0gaXMgZXhwb3NlZCBvdXRzaWRlIG9mIHRoZSBwYWludCBldmVudC4KKyAgICAvLyBTdWdn
ZXN0ZWQgZm9yIFF0OiBodHRwOi8vYnVncmVwb3J0cy5xdC5ub2tpYS5jb20vYnJvd3NlL1FUQlVH
LTE0ODc3LgorICAgIGlmIChtX3RpbGVkQmFja2luZ1N0b3JlKQorICAgICAgICBtX3RpbGVkQmFj
a2luZ1N0b3JlLT5hZGp1c3RWaXNpYmxlUmVjdCgpOworI2VuZGlmCisKICAgICBpZiAobV9jdXJy
ZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IuaXNWYWxpZCgpKQotICAgICAgICBwYWludGVyLT5m
aWxsUmVjdChvcHRpb24tPnJlY3QsIFFDb2xvcihtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRD
b2xvcikpOworICAgICAgICBwYWludGVyLT5maWxsUmVjdChvcHRpb24tPmV4cG9zZWRSZWN0LCBR
Q29sb3IobV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IpKTsKIAogICAgIHN3aXRjaCAo
bV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkgewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBl
OgpAQCAtODI4LDYgKzg4OCw1NiBAQCBhZnRlckxheWVyQ2hhbmdlczoKICAgICB9CiB9CiAKKyNp
ZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKKy8qIFxyZWltcCAoVGlsZWRCYWNraW5nU3Rv
cmVDbGllbnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0
b3JlUGFpbnRCZWdpbigpCit7Cit9CisKKy8qIFxyZWltcCAoVGlsZWRCYWNraW5nU3RvcmVDbGll
bnQuaCkKKyovCit2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2luZ1N0b3JlUGFp
bnQoR3JhcGhpY3NDb250ZXh0KiBnYywgIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgbV9s
YXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoKmdjLCByZWN0KTsKK30KKworLyogXHJl
aW1wIChUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oKQorKi8KK3ZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBh
aW50ZWRBcmVhKQoreworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcGFpbnRlZEFyZWEuc2l6ZSgp
OyArK2kpCisgICAgICAgIHVwZGF0ZShRUmVjdEYocGFpbnRlZEFyZWFbaV0pKTsKK30KKworLyog
XHJlaW1wIChUaWxlZEJhY2tpbmdTdG9yZUNsaWVudC5oKQorKi8KK0ludFJlY3QgR3JhcGhpY3NM
YXllclF0SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKQoreworICAgIHJldHVy
biBtX2xheWVyLT5jb250ZW50c1JlY3QoKTsKK30KKworLyogXHJlaW1wIChUaWxlZEJhY2tpbmdT
dG9yZUNsaWVudC5oKQorKi8KK0NvbG9yIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnRpbGVkQmFja2lu
Z1N0b3JlQmFja2dyb3VuZENvbG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV9jdXJyZW50Q29udGVu
dC5jb250ZW50VHlwZSA9PSBQaXhtYXBDb250ZW50VHlwZSAmJiAhbV9jdXJyZW50Q29udGVudC5w
aXhtYXAuaGFzQWxwaGFDaGFubmVsKCkpCisgICAgICAgIHJldHVybiBDb2xvcigwLCAwLCAwKTsK
KyAgICAvLyBXZSByZXR1cm4gYSB0cmFuc3BhcmVudCBjb2xvciBzbyB0aGF0IHRoZSB0aWxlcyBp
bml0aWFsaXplIHdpdGggYWxwaGEuCisgICAgcmV0dXJuIENvbG9yKDAsIDAsIDAsIDApOworfQor
I2VuZGlmCisKK0ludFJlY3QgR3JhcGhpY3NMYXllclF0SW1wbDo6dGlsZWRCYWNraW5nU3RvcmVW
aXNpYmxlUmVjdCgpCit7CisgICAgY29uc3QgUUdyYXBoaWNzVmlldyogdmlldyA9IHNjZW5lKCkt
PnZpZXdzKCkuaXNFbXB0eSgpID8gMCA6IHNjZW5lKCktPnZpZXdzKCkuZmlyc3QoKTsKKyAgICBp
ZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBtYXBGcm9tU2NlbmUoc2NlbmUoKS0+c2NlbmVSZWN0
KCkpLmJvdW5kaW5nUmVjdCgpLnRvQWxpZ25lZFJlY3QoKTsKKworICAgIC8vIEFsbCB3ZSBnZXQg
aXMgdGhlIHZpZXdwb3J0J3MgdmlzaWJsZSByZWdpb24uIFdlIGhhdmUgdG8gbWFwIGl0IHRvIHRo
ZSBzY2VuZSBhbmQgdGhlbiB0byBpdGVtIGNvb3JkaW5hdGVzLgorICAgIHJldHVybiBtYXBGcm9t
U2NlbmUodmlldy0+bWFwVG9TY2VuZSh2aWV3LT52aWV3cG9ydCgpLT52aXNpYmxlUmVnaW9uKCku
Ym91bmRpbmdSZWN0KCkpLmJvdW5kaW5nUmVjdCgpKS5ib3VuZGluZ1JlY3QoKS50b0FsaWduZWRS
ZWN0KCk7Cit9CisKIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6bm90aWZ5QW5pbWF0aW9uU3Rh
cnRlZCgpCiB7CiAgICAgLy8gV2ViQ29yZSBub3RpZmllcyBqYXZhc2NyaXB0IHdoZW4gdGhlIGFu
aW1hdGlvbiBzdGFydHMuIEhlcmUgd2UncmUgbGV0dGluZyBpdCBrbm93Lgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>