<?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>43070</bug_id>
          
          <creation_ts>2010-07-27 12:52:32 -0700</creation_ts>
          <short_desc>[chromium] Let PlatformContextSkia draw to a GLES2Canvas in addition to an SkCanvas</short_desc>
          <delta_ts>2010-07-27 14:38:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>256768</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 12:52:32 -0700</bug_when>
    <thetext>[chromium] Let PlatformContextSkia draw to a GLES2Canvas in addition to an SkCanvas</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256769</commentid>
    <comment_count>1</comment_count>
      <attachid>62729</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 12:55:25 -0700</bug_when>
    <thetext>Created attachment 62729
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256770</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 12:56:10 -0700</bug_when>
    <thetext>Attachment 62729 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/skia/PlatformContextSkia.cpp:780:  uint32_t is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 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>256786</commentid>
    <comment_count>3</comment_count>
      <attachid>62729</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2010-07-27 13:21:45 -0700</bug_when>
    <thetext>Comment on attachment 62729
Patch

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:706
 +                      m_canvas-&gt;getDevice()-&gt;width(), m_canvas-&gt;getDevice()-&gt;height()};
width and height already computed (above).

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:733
 +              // Last drawn in software; upload everything we&apos;ve drawn
WebKit style doesn&apos;t say whether comments should be full sentences ending in periods or not, but you should probably pick one...

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:737
 +              // the hardware stuff.
... or the other.  :)

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:749
 +              int height = m_canvas-&gt;getDevice()-&gt;height();
width &amp; height superfluous here.

WebCore/platform/graphics/skia/PlatformContextSkia.h:50
 +  #endif
Not your fault, but we should probably move PlatformContextSkia into the WebCore namespace at some point.

WebCore/platform/graphics/skia/PlatformContextSkia.h:197
 +      void forceToSoftware() const;
forceToSoftware() is kind of awkwardly-named.  Suggest updateBuffer() or syncBuffers() or syncCanvas() or syncSoftwareCanvas() or ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256803</commentid>
    <comment_count>4</comment_count>
      <attachid>62739</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 13:45:14 -0700</bug_when>
    <thetext>Created attachment 62739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256804</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 13:46:03 -0700</bug_when>
    <thetext>Went for full sentences (or something approximating them) and syncSoftwareCanvas().  Please take another look :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256807</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-27 13:47:56 -0700</bug_when>
    <thetext>Attachment 62739 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/skia/PlatformContextSkia.cpp:775:  uint32_t is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 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>256825</commentid>
    <comment_count>7</comment_count>
      <attachid>62739</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-07-27 14:16:21 -0700</bug_when>
    <thetext>Comment on attachment 62739
Patch

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:679
 +  void PlatformContextSkia::setGLES2Context(WebCore::GLES2Context* context, const WebCore::IntSize&amp; size)
This code should really be within the WebCore namespace :)

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:212
 +      , m_GPUCanvas(0)
style-nit: m_gpuCanvas &lt;- acronym at the start of a term should be lowercase.

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:687
 +      if (m_useGPU) {
nit: consider returning early if !m_useGPU to reduce indentation of the interesting
part of this function.  of course, if you don&apos;t like this style for the shorter
methods and prefer consistency, then ignore this nit.

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:689
 +              // Depending on the blend mode we need to one of a few things:
nit: &quot;need to _do_ one...&quot;

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:744
 +          if (m_backingStoreState == Hardware) {
nit: no brackets around single line statements

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:762
 +      // FIXME: Keep a texture around for this rather than constantly creating/destroying  one.
nit: &quot;destroying  one&quot;  &lt;- one space instead of two

WebCore/platform/graphics/skia/PlatformContextSkia.cpp:775
 +      WTF::OwnArrayPtr&lt;uint32_t&gt; buf(new uint32_t[width]);
ordinarily people drop the WTF:: prefix for OwnArrayPtr.  the header
file has a using WTF::OwnArrayPtr.

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256844</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 14:35:42 -0700</bug_when>
    <thetext>Thanks for the review.  I think we will move the code that manages the two backing stores to some common location and refactor it to not be skia-specific at some point in the future, but for now this is expedient.

Fixed the nits locally, will land by hand.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>256849</commentid>
    <comment_count>9</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-07-27 14:38:04 -0700</bug_when>
    <thetext>Committed r64161: &lt;http://trac.webkit.org/changeset/64161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62729</attachid>
            <date>2010-07-27 12:55:25 -0700</date>
            <delta_ts>2010-07-27 13:45:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43070-20100727125524.patch</filename>
            <type>text/plain</type>
            <size>12666</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDY0MjVkMTIwNmQ2YWU0NTM5NGU3ODMwNDkyMjA2OTE4NjBkNzBjMC4uNTNiNzg4MzRkZDJlNjJh
M2NiZGMwNDllZmZlYTQ0ODc1OGI4ZjA1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNy0yNyAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gTGV0IFBsYXRmb3JtQ29udGV4
dFNraWEgZHJhdyB0byBhIEdMRVMyQ2FudmFzIGluIGFkZGl0aW9uIHRvIGFuIFNrQ2FudmFzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzA3MAorCisg
ICAgICAgIFRoaXMgYWRkcyBhIEdMRVMyQ2FudmFzIGFzIGRyYXdpbmcgc3VyZmFjZSB0byBQbGF0
Zm9ybUNvbnRleHRTa2lhIGFuZCBsZXRzIGNhbGxlcnMKKyAgICAgICAgaXNzdWUgZHJhdyBjb21t
YW5kcyB0byBlaXRoZXIuICBUaGUgUGxhdGZvcm1Db250ZXh0U2tpYSBrZWVwcyB0cmFjayBvZiB3
aGVyZQorICAgICAgICByZW5kZXJpbmcgcmVzdWx0cyBhcmUgYmVpbmcgYWNjdW11bGF0ZWQgYW5k
IGNhbiBibGVuZCB0aGUgaGFyZHdhcmUgYW5kIHNvZnR3YXJlCisgICAgICAgIGJhY2tpbmcgc3Rv
cmVzIGludG8gZWFjaCBvdGhlciB3aGVuIG5lY2Vzc2FyeS4KKworICAgICAgICBTdGlsbCBqdXN0
IHBsdW1iaW5nLCBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdM
RVMyQ2FudmFzOjpHTEVTMkNhbnZhcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR0xFUzJDYW52YXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6UGxh
dGZvcm1Db250ZXh0U2tpYSk6CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRHTEVT
MkNvbnRleHQpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdhcmVEcmF3
KToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZUhhcmR3YXJlRHJhdyk6CisgICAg
ICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpmb3JjZVRvU29mdHdhcmUpOgorICAgICAgICAoUGxh
dGZvcm1Db250ZXh0U2tpYTo6dXBsb2FkU29mdHdhcmVUb0hhcmR3YXJlKToKKyAgICAgICAgKFBs
YXRmb3JtQ29udGV4dFNraWE6OnJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAg
KFBsYXRmb3JtQ29udGV4dFNraWE6OnVzZUdQVSk6CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRT
a2lhOjpncHVDYW52YXMpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdh
cmVEcmF3KToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZUhhcmR3YXJlRHJhdyk6
CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpmb3JjZVRvU29mdHdhcmUpOgorICAgICAg
ICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6KToKKwogMjAxMC0wNy0yNiAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVy
YS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJD
YW52YXMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZh
cy5jcHAKaW5kZXggNWIxNWU2MjBmNGY3YTJhZWNjZDFmM2QwMzI5NzFkZWZmMzc1YmRkOC4uZWMx
ODhjODI3NWUwN2IyOTI1YjQ1NjE0MmEwZjUxOTlkMGJkYTk1MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgc3RydWN0IEdMRVMyQ2FudmFzOjpTdGF0ZSB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1f
Y3RtOwogfTsKIAotR0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKEdMRVMyQ29udGV4dCogY29udGV4
dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorR0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKEdMRVMy
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICA6IG1fZ2xlczJDb250
ZXh0KGNvbnRleHQpCiAgICAgLCBtX3F1YWRWZXJ0aWNlcygwKQogICAgICwgbV9xdWFkSW5kaWNl
cygwKQpAQCAtODcsMTcgKzg3LDE1IEBAIEdMRVMyQ2FudmFzOjpHTEVTMkNhbnZhcyhHTEVTMkNv
bnRleHQqIGNvbnRleHQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAsIG1fdGV4U2FtcGxl
ckxvY2F0aW9uKC0xKQogICAgICwgbV90ZXhBbHBoYUxvY2F0aW9uKC0xKQogICAgICwgbV90ZXhQ
b3NpdGlvbkxvY2F0aW9uKC0xKQotICAgICwgbV93aWR0aCh3aWR0aCkKLSAgICAsIG1faGVpZ2h0
KGhlaWdodCkKICAgICAsIG1fc3RhdGUoMCkKIHsKICAgICBtX2ZsaXBNYXRyaXgudHJhbnNsYXRl
KC0xLjBmLCAxLjBmKTsKLSAgICBtX2ZsaXBNYXRyaXguc2NhbGUoMi4wZiAvIHdpZHRoLCAtMi4w
ZiAvIGhlaWdodCk7CisgICAgbV9mbGlwTWF0cml4LnNjYWxlKDIuMGYgLyBzaXplLndpZHRoKCks
IC0yLjBmIC8gc2l6ZS5oZWlnaHQoKSk7CiAKICAgICBtX2dsZXMyQ29udGV4dC0+bWFrZUN1cnJl
bnQoKTsKLSAgICBtX2dsZXMyQ29udGV4dC0+cmVzaXplT2Zmc2NyZWVuQ29udGVudChJbnRTaXpl
KHdpZHRoLCBoZWlnaHQpKTsKKyAgICBtX2dsZXMyQ29udGV4dC0+cmVzaXplT2Zmc2NyZWVuQ29u
dGVudChzaXplKTsKICAgICBtX2dsZXMyQ29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKLSAgICBnbFZp
ZXdwb3J0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgIGdsVmlld3BvcnQoMCwgMCwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKIAogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoU3RhdGUo
KSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2subGFzdCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5oCmluZGV4IDgwMmIyMDBkOTNj
OThjOGRkYjIyY2E0ZmRkZWQyOGMxZGY1ZTE2ZjIuLmUzYTdhM2JkNjNjMzIwMmMzM2M4ODM2ZjA3
MGJlZWZlNGU0ZDU3NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR0xFUzJDYW52YXMuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dMRVMyQ2FudmFzLmgKQEAgLTUzLDcgKzUzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5hdGl2
ZUltYWdlUHRyLCBSZWZQdHI8R0xFUzJUZXh0dXJlPiA+IFRleHR1cmVIYXNoTWFwOwogCiBjbGFz
cyBHTEVTMkNhbnZhcyA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgR0xFUzJD
YW52YXMoR0xFUzJDb250ZXh0KiBjb250ZXh0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAg
IEdMRVMyQ2FudmFzKEdMRVMyQ29udGV4dCosIGNvbnN0IEludFNpemUmKTsKICAgICB+R0xFUzJD
YW52YXMoKTsKIAogICAgIHZvaWQgZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQ29s
b3ImLCBDb2xvclNwYWNlKTsKQEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGludCBt
X3RleFNhbXBsZXJMb2NhdGlvbjsKICAgICBpbnQgbV90ZXhBbHBoYUxvY2F0aW9uOwogICAgIGlu
dCBtX3RleFBvc2l0aW9uTG9jYXRpb247Ci0gICAgaW50IG1fd2lkdGg7Ci0gICAgaW50IG1faGVp
Z2h0OwogICAgIEFmZmluZVRyYW5zZm9ybSBtX2ZsaXBNYXRyaXg7CiAgICAgVGV4dHVyZUhhc2hN
YXAgbV90ZXh0dXJlczsKICAgICBDb21wb3NpdGVPcGVyYXRvciBtX2xhc3RDb21wb3NpdGVPcDsg
Ly8gVGhpcyBpcyB0aGUgb25lIGxhc3Qgc2V0LCBub3QgbmVjZXNzYXJpbHkgdGhlIG9uZSBpbiB0
aGUgc3RhdGUgc3RhY2suCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5kZXggMTViZDliNGU3MzdjZGRkNmYwNTNjN2Rk
NzNjNWQ3NzI5NDU3OTg3Yy4uYzFmNjliMmM1NDQ5ODQ2MjUyYWEzM2IwOGFkNzYxMmU2MTFlYzc2
NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29u
dGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9y
bUNvbnRleHRTa2lhLmNwcApAQCAtNDQsNyArNDQsMTUgQEAKICNpbmNsdWRlICJTa1NoYWRlci5o
IgogI2luY2x1ZGUgIlNrRGFzaFBhdGhFZmZlY3QuaCIKIAorI2lmIFVTRShHTEVTMl9SRU5ERVJJ
TkcpCisjaW5jbHVkZSAiR0xFUzJDYW52YXMuaCIKKyNpbmNsdWRlICJHTEVTMkNvbnRleHQuaCIK
KyNpbmNsdWRlICJHTEVTMlRleHR1cmUuaCIKKyNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KKyNlbmRp
ZgorCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIApAQCAt
MTk5LDYgKzIwNywxMSBAQCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lh
KHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAjaWYgT1MoV0lORE9XUykKICAgICAsIG1f
ZHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpCiAjZW5kaWYKKyNpZiBVU0UoR0xFUzJfUkVOREVS
SU5HKQorICAgICwgbV91c2VHUFUoZmFsc2UpCisgICAgLCBtX0dQVUNhbnZhcygwKQorICAgICwg
bV9iYWNraW5nU3RvcmVTdGF0ZShOb25lKQorI2VuZGlmCiB7CiAgICAgbV9zdGF0ZVN0YWNrLmFw
cGVuZChTdGF0ZSgpKTsKICAgICBtX3N0YXRlID0gJm1fc3RhdGVTdGFjay5sYXN0KCk7CkBAIC02
NjEsMyArNjc0LDExOSBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OmFwcGx5QW50aUFsaWFz
ZWRDbGlwUGF0aHMoV1RGOjpWZWN0b3I8U2tQYXRoPiYgcGF0aHMpCiAKICAgICBtX2NhbnZhcy0+
cmVzdG9yZSgpOwogfQorCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKK3ZvaWQgUGxhdGZvcm1D
b250ZXh0U2tpYTo6c2V0R0xFUzJDb250ZXh0KFdlYkNvcmU6OkdMRVMyQ29udGV4dCogY29udGV4
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX3VzZUdQVSA9IHRydWU7
CisgICAgbV9HUFVDYW52YXMgPSBuZXcgV2ViQ29yZTo6R0xFUzJDYW52YXMoY29udGV4dCwgc2l6
ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdhcmVEcmF3KCkgY29u
c3QKK3sKKyAgICBpZiAobV91c2VHUFUpIHsKKyAgICAgICAgaWYgKG1fYmFja2luZ1N0b3JlU3Rh
dGUgPT0gSGFyZHdhcmUpIHsKKyAgICAgICAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUgYmxlbmQg
bW9kZSB3ZSBuZWVkIHRvIG9uZSBvZiBhIGZldyB0aGluZ3M6CisKKyAgICAgICAgICAgIC8vICog
Rm9yIGFzc29jaWF0aXZlIGJsZW5kIG1vZGVzLCB3ZSBjYW4gZHJhdyBpbnRvIGFuIGluaXRpYWxs
eSBlbXB0eQorICAgICAgICAgICAgLy8gY2FudmFzIGFuZCB0aGVuIGNvbXBvc2l0ZSB0aGUgcmVz
dWx0cyBvbiB0b3Agb2YgdGhlIGhhcmR3YXJlIGRyYXduCisgICAgICAgICAgICAvLyByZXN1bHRz
IGJlZm9yZSB0aGUgbmV4dCBoYXJkd2FyZSBkcmF3IG9yIHN3YXBCdWZmZXJzKCkuCisKKyAgICAg
ICAgICAgIC8vICogRm9yIG5vbi1hc3NvY2lhdGl2ZSBibGVuZCBtb2RlcyB3ZSBoYXZlIHRvIGRv
IGEgcmVhZGJhY2sgYW5kIHRoZW4KKyAgICAgICAgICAgIC8vIHNvZnR3YXJlIGRyYXcuICBXaGVu
IHdlIHJlLXVwbG9hZCBpbiB0aGlzIG1vZGUgd2UgaGF2ZSB0byBibG93CisgICAgICAgICAgICAv
LyBhd2F5IHdoYXRldmVyIGlzIGluIHRoZSBoYXJkd2FyZSBiYWNraW5nIHN0b3JlIChkbyBhIGNv
cHkgaW5zdGVhZAorICAgICAgICAgICAgLy8gb2YgYSBjb21wb3NpdGluZyBvcGVyYXRpb24pLgor
CisgICAgICAgICAgICBpbnQgd2lkdGggPSBtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPndpZHRoKCk7
CisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gbV9jYW52YXMtPmdldERldmljZSgpLT5oZWlnaHQo
KTsKKyAgICAgICAgICAgIGlmIChtX3N0YXRlLT5tX3hmZXJNb2RlID09IFNrWGZlcm1vZGU6OmtT
cmNPdmVyX01vZGUpIHsKKyAgICAgICAgICAgICAgICAvLyBMYXN0IGRyYXduIG9uIGhhcmR3YXJl
OyBjbGVhciBvdXQgdGhlIGNhbnZhcworICAgICAgICAgICAgICAgIG1fY2FudmFzLT5zYXZlKCk7
CisgICAgICAgICAgICAgICAgU2tSZWN0IGJvdW5kcyA9IHswLCAwLAorICAgICAgICAgICAgICAg
ICAgICBtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPndpZHRoKCksIG1fY2FudmFzLT5nZXREZXZpY2Uo
KS0+aGVpZ2h0KCl9OworICAgICAgICAgICAgICAgIG1fY2FudmFzLT5jbGlwUmVjdChib3VuZHMs
IFNrUmVnaW9uOjprUmVwbGFjZV9PcCk7CisgICAgICAgICAgICAgICAgbV9jYW52YXMtPmRyYXdB
UkdCKDAsIDAsIDAsIDAsIFNrWGZlcm1vZGU6OmtDbGVhcl9Nb2RlKTsKKyAgICAgICAgICAgICAg
ICBtX2NhbnZhcy0+cmVzdG9yZSgpOworICAgICAgICAgICAgICAgIC8vIFN0YXJ0IGNvbXBvc2l0
aW5nIGludG8gdGhlIGVtcHR5IGNhbnZhcy4KKyAgICAgICAgICAgICAgICBtX2JhY2tpbmdTdG9y
ZVN0YXRlID0gTWl4ZWQ7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHJl
YWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCk7CisgICAgICAgICAgICAgICAgLy8gV2hlbiB3ZSBz
d2l0Y2ggYmFjayB0byBoYXJkd2FyZSBjb3B5IHRoZSByZXN1bHRzLCBkb24ndCBjb21wb3NpdGUK
KyAgICAgICAgICAgICAgICBtX2JhY2tpbmdTdG9yZVN0YXRlID0gU29mdHdhcmU7CisgICAgICAg
ICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAobV9iYWNraW5nU3RvcmVTdGF0ZSA9PSBNaXhlZCkg
eworICAgICAgICAgICAgaWYgKG1fc3RhdGUtPm1feGZlck1vZGUgIT0gU2tYZmVybW9kZTo6a1Ny
Y092ZXJfTW9kZSkgeworICAgICAgICAgICAgICAgIC8vIEhhdmUgdG8gY29tcG9zaXRlIG91ciBj
dXJyZW50bHkgc29mdHdhcmUgZHJhd24gZGF0YQorICAgICAgICAgICAgICAgIHVwbG9hZFNvZnR3
YXJlVG9IYXJkd2FyZShXZWJDb3JlOjpDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICAgICAgICAg
ICAgICAvLyBUaGVuIGRvIGEgcmVhZGJhY2sgc28gd2UgY2FuIGhhcmR3YXJlIGRyYXcgc3R1ZmYK
KyAgICAgICAgICAgICAgICByZWFkYmFja0hhcmR3YXJlVG9Tb2Z0d2FyZSgpOworICAgICAgICAg
ICAgICAgIG1fYmFja2luZ1N0b3JlU3RhdGUgPSBTb2Z0d2FyZTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpwcmVIYXJkd2Fy
ZURyYXcoKSBjb25zdAoreworICAgIGlmIChtX3VzZUdQVSkgeworICAgICAgICBpZiAobV9iYWNr
aW5nU3RvcmVTdGF0ZSA9PSBTb2Z0d2FyZSkgeworICAgICAgICAgICAgLy8gTGFzdCBkcmF3biBp
biBzb2Z0d2FyZTsgdXBsb2FkIGV2ZXJ5dGhpbmcgd2UndmUgZHJhd24KKyAgICAgICAgICAgIHVw
bG9hZFNvZnR3YXJlVG9IYXJkd2FyZShXZWJDb3JlOjpDb21wb3NpdGVDb3B5KTsKKyAgICAgICAg
fSBlbHNlIGlmIChtX2JhY2tpbmdTdG9yZVN0YXRlID09IE1peGVkKSB7CisgICAgICAgICAgICAv
LyBTdHVmZiBpbiBzb2Z0d2FyZS9oYXJkd2FyZSwgY29tcG9zaXRlIHRoZSBzb2Z0d2FyZSBzdHVm
ZiBvbiB0b3Agb2YKKyAgICAgICAgICAgIC8vIHRoZSBoYXJkd2FyZSBzdHVmZi4KKyAgICAgICAg
ICAgIHVwbG9hZFNvZnR3YXJlVG9IYXJkd2FyZShXZWJDb3JlOjpDb21wb3NpdGVTb3VyY2VPdmVy
KTsKKyAgICAgICAgfQorICAgICAgICBtX2JhY2tpbmdTdG9yZVN0YXRlID0gSGFyZHdhcmU7Cisg
ICAgfQorfQorCit2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OmZvcmNlVG9Tb2Z0d2FyZSgpIGNv
bnN0Cit7CisgICAgaWYgKG1fdXNlR1BVKSB7CisgICAgICAgIGlmIChtX2JhY2tpbmdTdG9yZVN0
YXRlID09IEhhcmR3YXJlKSB7CisgICAgICAgICAgICBpbnQgd2lkdGggPSBtX2NhbnZhcy0+Z2V0
RGV2aWNlKCktPndpZHRoKCk7CisgICAgICAgICAgICBpbnQgaGVpZ2h0ID0gbV9jYW52YXMtPmdl
dERldmljZSgpLT5oZWlnaHQoKTsKKyAgICAgICAgICAgIHJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3
YXJlKCk7CisgICAgICAgIH0gZWxzZSBpZiAobV9iYWNraW5nU3RvcmVTdGF0ZSA9PSBNaXhlZCkg
eworICAgICAgICAgICAgLy8gSGF2ZSB0byBjb21wb3NpdGUgb3VyIGN1cnJlbnRseSBzb2Z0d2Fy
ZSBkcmF3biBkYXRhCisgICAgICAgICAgICB1cGxvYWRTb2Z0d2FyZVRvSGFyZHdhcmUoV2ViQ29y
ZTo6Q29tcG9zaXRlU291cmNlT3Zlcik7CisgICAgICAgICAgICAvLyBUaGVuIGRvIGEgcmVhZGJh
Y2sKKyAgICAgICAgICAgIHJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCk7CisgICAgICAgICAg
ICBtX2JhY2tpbmdTdG9yZVN0YXRlID0gU29mdHdhcmU7CisgICAgICAgIH0KKyAgICAgICAgbV9i
YWNraW5nU3RvcmVTdGF0ZSA9IFNvZnR3YXJlOworICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybUNv
bnRleHRTa2lhOjp1cGxvYWRTb2Z0d2FyZVRvSGFyZHdhcmUoV2ViQ29yZTo6Q29tcG9zaXRlT3Bl
cmF0b3Igb3ApIGNvbnN0Cit7CisgICAgY29uc3QgU2tCaXRtYXAmIGJpdG1hcCA9IG1fY2FudmFz
LT5nZXREZXZpY2UoKS0+YWNjZXNzQml0bWFwKGZhbHNlKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxz
IGxvY2soYml0bWFwKTsKKyAgICBtX0dQVUNhbnZhcy0+Z2xlczJDb250ZXh0KCktPm1ha2VDdXJy
ZW50KCk7CisgICAgLy8gRklYTUU6IGtlZXAgYSB0ZXh0dXJlIGFyb3VuZCBmb3IgdGhpcyByYXRo
ZXIgdGhhbiBjb25zdGFudGx5IGNyZWF0aW5nL2Rlc3Ryb3lpbmcgIG9uZS4KKyAgICBSZWZQdHI8
V2ViQ29yZTo6R0xFUzJUZXh0dXJlPiB0ZXh0dXJlID0gV2ViQ29yZTo6R0xFUzJUZXh0dXJlOjpj
cmVhdGUoV2ViQ29yZTo6R0xFUzJUZXh0dXJlOjpCR1JBOCwgYml0bWFwLndpZHRoKCksIGJpdG1h
cC5oZWlnaHQoKSk7CisgICAgdGV4dHVyZS0+bG9hZChiaXRtYXAuZ2V0UGl4ZWxzKCkpOworICAg
IFdlYkNvcmU6OkludFJlY3QgcmVjdCgwLCAwLCBiaXRtYXAud2lkdGgoKSwgYml0bWFwLmhlaWdo
dCgpKTsKKyAgICBncHVDYW52YXMoKS0+ZHJhd1RleHR1cmVkUmVjdCh0ZXh0dXJlLmdldCgpLCBy
ZWN0LCByZWN0LCBXZWJDb3JlOjpEZXZpY2VDb2xvclNwYWNlLCBvcCk7Cit9CisKK3ZvaWQgUGxh
dGZvcm1Db250ZXh0U2tpYTo6cmVhZGJhY2tIYXJkd2FyZVRvU29mdHdhcmUoKSBjb25zdAorewor
ICAgIGNvbnN0IFNrQml0bWFwJiBiaXRtYXAgPSBtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vz
c0JpdG1hcCh0cnVlKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGxvY2soYml0bWFwKTsKKyAgICBt
X0dQVUNhbnZhcy0+Z2xlczJDb250ZXh0KCktPm1ha2VDdXJyZW50KCk7CisgICAgaW50IHdpZHRo
ID0gYml0bWFwLndpZHRoKCksIGhlaWdodCA9IGJpdG1hcC5oZWlnaHQoKTsKKyAgICBXVEY6Ok93
bkFycmF5UHRyPHVpbnQzMl90PiBidWYobmV3IHVpbnQzMl90W3dpZHRoXSk7CisgICAgLy8gRmxp
cHMgdGhlIGltYWdlIHZlcnRpY2FsbHkKKyAgICBmb3IgKGludCB5ID0gMDsgeSA8IGhlaWdodDsg
Kyt5KSB7CisgICAgICAgIHVpbnQzMl90KiBwaXhlbHMgPSBiaXRtYXAuZ2V0QWRkcjMyKDAsIHkp
OworICAgICAgICBnbFJlYWRQaXhlbHMoMCwgaGVpZ2h0IC0gMSAtIHksIHdpZHRoLCAxLCBHTF9S
R0JBLCBHTF9VTlNJR05FRF9CWVRFLCBwaXhlbHMpOworICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IHdpZHRoOyArK2kpIHsKKyAgICAgICAgICAgIHVpbnQzMl90IHBpeGVsID0gcGl4ZWxzW2ld
OworICAgICAgICAgICAgLy8gU3dpenpsZXMgZnJvbSBSR0JBIC0+IEJHUkEKKyAgICAgICAgICAg
IHBpeGVsc1tpXSA9IHBpeGVsICYgMHhGRjAwRkYwMCB8ICgocGl4ZWwgJiAweDAwRkYwMDAwKSA+
PiAxNikgfCAoKHBpeGVsICYgMHgwMDAwMDBGRikgPDwgMTYpOworICAgICAgICB9CisgICAgfQor
fQorI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxh
dGZvcm1Db250ZXh0U2tpYS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaAppbmRleCA4OGE4ZWM3Yjc1N2U5MTc3YTQ3MGMyZTJjMTc0NTBmNWQ2
ZDI1OWVmLi4zODQxMDQxNzFlOTE5ZmZhNzU4ODRiY2ViNTljMmVkZGI1ZjYwZjBjIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
LmgKQEAgLTQxLDYgKzQxLDE0IEBACiAjaW5jbHVkZSAiU2tQYWludC5oIgogI2luY2x1ZGUgIlNr
UGF0aC5oIgogCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2VudW0gQ29tcG9zaXRlT3BlcmF0b3I7CitjbGFzcyBHTEVTMkNhbnZhczsKK2NsYXNzIEdMRVMy
Q29udGV4dDsKK30KKyNlbmRpZgorCiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAvLyBUaGlz
IGNsYXNzIGhvbGRzIHRoZSBwbGF0Zm9ybS1zcGVjaWZpYyBzdGF0ZSBmb3IgR3JhcGhpY3NDb250
ZXh0LiBXZSBwdXQKQEAgLTE3NCw2ICsxODIsMjQgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW1h
Z2VSZXNhbXBsaW5nSGludChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzcmNTaXplLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmIGRzdFNpemUpOwogICAgIHZvaWQgY2xlYXJJbWFnZVJlc2FtcGxp
bmdIaW50KCk7CiAgICAgYm9vbCBoYXNJbWFnZVJlc2FtcGxpbmdIaW50KCkgY29uc3Q7CisjaWYg
VVNFKEdMRVMyX1JFTkRFUklORykKKyAgICBib29sIHVzZUdQVSgpIHsgcmV0dXJuIG1fdXNlR1BV
OyB9CisgICAgdm9pZCBzZXRHTEVTMkNvbnRleHQoV2ViQ29yZTo6R0xFUzJDb250ZXh0KiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIFdlYkNvcmU6OkdMRVMyQ2FudmFzKiBncHVDYW52
YXMoKSBjb25zdCB7IHJldHVybiBtX0dQVUNhbnZhcy5nZXQoKTsgfQorI2VuZGlmCisKKyNpZiBV
U0UoR0xFUzJfUkVOREVSSU5HKQorICAgIC8vIENhbGwgdGhlc2UgYmVmb3JlIG1ha2luZyBhIGNh
bGwgdGhhdCBtYW5pcHVsYXRlcyB0aGUgdW5kZXJseWluZworICAgIC8vIHNraWE6OlBsYXRmb3Jt
Q2FudmFzIG9yIFdlYkNvcmU6OkdMRVMyQ2FudmFzCisgICAgdm9pZCBwcmVTb2Z0d2FyZURyYXco
KSBjb25zdDsKKyAgICB2b2lkIHByZUhhcmR3YXJlRHJhdygpIGNvbnN0OworICAgIC8vIENhbGwg
dGhlc2UgdG8gZm9yY2UgdGhlIHNraWE6OlBsYXRmb3JtQ2FudmFzIHRvIGNvbnRhaW4gYWxsIHJl
bmRlcmluZyByZXN1bHRzLgorICAgIHZvaWQgZm9yY2VUb1NvZnR3YXJlKCkgY29uc3Q7CisjZWxz
ZQorICAgIHZvaWQgcHJlU29mdHdhcmVEcmF3KCkgY29uc3Qge30KKyAgICB2b2lkIHByZUhhcmR3
YXJlRHJhdygpIGNvbnN0IHt9CisgICAgdm9pZCBmb3JjZVRvU29mdHdhcmUoKSBjb25zdCB7fQor
I2VuZGlmCiAKIHByaXZhdGU6CiAjaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCkBAIC0xODMs
NiArMjA5LDExIEBAIHByaXZhdGU6CiAjZW5kaWYKICAgICB2b2lkIGFwcGx5QW50aUFsaWFzZWRD
bGlwUGF0aHMoV1RGOjpWZWN0b3I8U2tQYXRoPiYgcGF0aHMpOwogCisjaWYgVVNFKEdMRVMyX1JF
TkRFUklORykKKyAgICB2b2lkIHVwbG9hZFNvZnR3YXJlVG9IYXJkd2FyZShXZWJDb3JlOjpDb21w
b3NpdGVPcGVyYXRvcikgY29uc3Q7CisgICAgdm9pZCByZWFkYmFja0hhcmR3YXJlVG9Tb2Z0d2Fy
ZSgpIGNvbnN0OworI2VuZGlmCisKICAgICAvLyBEZWZpbmVzIGRyYXdpbmcgc3R5bGUuCiAgICAg
c3RydWN0IFN0YXRlOwogCkBAIC0yMDYsNiArMjM3LDExIEBAIHByaXZhdGU6CiAjaWYgT1MoV0lO
RE9XUykKICAgICBib29sIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXI7CiAjZW5kaWYKKyNpZiBVU0Uo
R0xFUzJfUkVOREVSSU5HKQorICAgIGJvb2wgbV91c2VHUFU7CisgICAgT3duUHRyPFdlYkNvcmU6
OkdMRVMyQ2FudmFzPiBtX0dQVUNhbnZhczsKKyAgICBtdXRhYmxlIGVudW0geyBOb25lLCBTb2Z0
d2FyZSwgTWl4ZWQsIEhhcmR3YXJlIH0gbV9iYWNraW5nU3RvcmVTdGF0ZTsKKyNlbmRpZgogfTsK
IAotI2VuZGlmICAvLyBQbGF0Zm9ybUNvbnRleHRTa2lhX2gKKyNlbmRpZiAvLyBQbGF0Zm9ybUNv
bnRleHRTa2lhX2gK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62739</attachid>
            <date>2010-07-27 13:45:14 -0700</date>
            <delta_ts>2010-07-27 14:16:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43070-20100727134513.patch</filename>
            <type>text/plain</type>
            <size>12428</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDY0MjVkMTIwNmQ2YWU0NTM5NGU3ODMwNDkyMjA2OTE4NjBkNzBjMC4uNTNiNzg4MzRkZDJlNjJh
M2NiZGMwNDllZmZlYTQ0ODc1OGI4ZjA1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNy0yNyAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtjaHJvbWl1bV0gTGV0IFBsYXRmb3JtQ29udGV4
dFNraWEgZHJhdyB0byBhIEdMRVMyQ2FudmFzIGluIGFkZGl0aW9uIHRvIGFuIFNrQ2FudmFzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MzA3MAorCisg
ICAgICAgIFRoaXMgYWRkcyBhIEdMRVMyQ2FudmFzIGFzIGRyYXdpbmcgc3VyZmFjZSB0byBQbGF0
Zm9ybUNvbnRleHRTa2lhIGFuZCBsZXRzIGNhbGxlcnMKKyAgICAgICAgaXNzdWUgZHJhdyBjb21t
YW5kcyB0byBlaXRoZXIuICBUaGUgUGxhdGZvcm1Db250ZXh0U2tpYSBrZWVwcyB0cmFjayBvZiB3
aGVyZQorICAgICAgICByZW5kZXJpbmcgcmVzdWx0cyBhcmUgYmVpbmcgYWNjdW11bGF0ZWQgYW5k
IGNhbiBibGVuZCB0aGUgaGFyZHdhcmUgYW5kIHNvZnR3YXJlCisgICAgICAgIGJhY2tpbmcgc3Rv
cmVzIGludG8gZWFjaCBvdGhlciB3aGVuIG5lY2Vzc2FyeS4KKworICAgICAgICBTdGlsbCBqdXN0
IHBsdW1iaW5nLCBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0dMRVMyQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdM
RVMyQ2FudmFzOjpHTEVTMkNhbnZhcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR0xFUzJDYW52YXMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuY3BwOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6UGxh
dGZvcm1Db250ZXh0U2tpYSk6CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRHTEVT
MkNvbnRleHQpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdhcmVEcmF3
KToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZUhhcmR3YXJlRHJhdyk6CisgICAg
ICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpmb3JjZVRvU29mdHdhcmUpOgorICAgICAgICAoUGxh
dGZvcm1Db250ZXh0U2tpYTo6dXBsb2FkU29mdHdhcmVUb0hhcmR3YXJlKToKKyAgICAgICAgKFBs
YXRmb3JtQ29udGV4dFNraWE6OnJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaDoKKyAgICAgICAg
KFBsYXRmb3JtQ29udGV4dFNraWE6OnVzZUdQVSk6CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRT
a2lhOjpncHVDYW52YXMpOgorICAgICAgICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdh
cmVEcmF3KToKKyAgICAgICAgKFBsYXRmb3JtQ29udGV4dFNraWE6OnByZUhhcmR3YXJlRHJhdyk6
CisgICAgICAgIChQbGF0Zm9ybUNvbnRleHRTa2lhOjpmb3JjZVRvU29mdHdhcmUpOgorICAgICAg
ICAoUGxhdGZvcm1Db250ZXh0U2tpYTo6KToKKwogMjAxMC0wNy0yNiAgUGF0cmljayBHYW5zdGVy
ZXIgIDxwYXJvZ2FAcGFyb2dhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50IFRhbXVy
YS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vR0xFUzJD
YW52YXMuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZh
cy5jcHAKaW5kZXggNWIxNWU2MjBmNGY3YTJhZWNjZDFmM2QwMzI5NzFkZWZmMzc1YmRkOC4uZWMx
ODhjODI3NWUwN2IyOTI1YjQ1NjE0MmEwZjUxOTlkMGJkYTk1MyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5jcHAKQEAgLTczLDcgKzcz
LDcgQEAgc3RydWN0IEdMRVMyQ2FudmFzOjpTdGF0ZSB7CiAgICAgQWZmaW5lVHJhbnNmb3JtIG1f
Y3RtOwogfTsKIAotR0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKEdMRVMyQ29udGV4dCogY29udGV4
dCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQorR0xFUzJDYW52YXM6OkdMRVMyQ2FudmFzKEdMRVMy
Q29udGV4dCogY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICA6IG1fZ2xlczJDb250
ZXh0KGNvbnRleHQpCiAgICAgLCBtX3F1YWRWZXJ0aWNlcygwKQogICAgICwgbV9xdWFkSW5kaWNl
cygwKQpAQCAtODcsMTcgKzg3LDE1IEBAIEdMRVMyQ2FudmFzOjpHTEVTMkNhbnZhcyhHTEVTMkNv
bnRleHQqIGNvbnRleHQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKICAgICAsIG1fdGV4U2FtcGxl
ckxvY2F0aW9uKC0xKQogICAgICwgbV90ZXhBbHBoYUxvY2F0aW9uKC0xKQogICAgICwgbV90ZXhQ
b3NpdGlvbkxvY2F0aW9uKC0xKQotICAgICwgbV93aWR0aCh3aWR0aCkKLSAgICAsIG1faGVpZ2h0
KGhlaWdodCkKICAgICAsIG1fc3RhdGUoMCkKIHsKICAgICBtX2ZsaXBNYXRyaXgudHJhbnNsYXRl
KC0xLjBmLCAxLjBmKTsKLSAgICBtX2ZsaXBNYXRyaXguc2NhbGUoMi4wZiAvIHdpZHRoLCAtMi4w
ZiAvIGhlaWdodCk7CisgICAgbV9mbGlwTWF0cml4LnNjYWxlKDIuMGYgLyBzaXplLndpZHRoKCks
IC0yLjBmIC8gc2l6ZS5oZWlnaHQoKSk7CiAKICAgICBtX2dsZXMyQ29udGV4dC0+bWFrZUN1cnJl
bnQoKTsKLSAgICBtX2dsZXMyQ29udGV4dC0+cmVzaXplT2Zmc2NyZWVuQ29udGVudChJbnRTaXpl
KHdpZHRoLCBoZWlnaHQpKTsKKyAgICBtX2dsZXMyQ29udGV4dC0+cmVzaXplT2Zmc2NyZWVuQ29u
dGVudChzaXplKTsKICAgICBtX2dsZXMyQ29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKLSAgICBnbFZp
ZXdwb3J0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgIGdsVmlld3BvcnQoMCwgMCwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKIAogICAgIG1fc3RhdGVTdGFjay5hcHBlbmQoU3RhdGUo
KSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2subGFzdCgpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9HTEVTMkNhbnZhcy5oCmluZGV4IDgwMmIyMDBkOTNj
OThjOGRkYjIyY2E0ZmRkZWQyOGMxZGY1ZTE2ZjIuLmUzYTdhM2JkNjNjMzIwMmMzM2M4ODM2ZjA3
MGJlZWZlNGU0ZDU3NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vR0xFUzJDYW52YXMuaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0dMRVMyQ2FudmFzLmgKQEAgLTUzLDcgKzUzLDcgQEAgdHlwZWRlZiBIYXNoTWFwPE5hdGl2
ZUltYWdlUHRyLCBSZWZQdHI8R0xFUzJUZXh0dXJlPiA+IFRleHR1cmVIYXNoTWFwOwogCiBjbGFz
cyBHTEVTMkNhbnZhcyA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBwdWJsaWM6Ci0gICAgR0xFUzJD
YW52YXMoR0xFUzJDb250ZXh0KiBjb250ZXh0LCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOworICAg
IEdMRVMyQ2FudmFzKEdMRVMyQ29udGV4dCosIGNvbnN0IEludFNpemUmKTsKICAgICB+R0xFUzJD
YW52YXMoKTsKIAogICAgIHZvaWQgZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQ29s
b3ImLCBDb2xvclNwYWNlKTsKQEAgLTEwMyw4ICsxMDMsNiBAQCBwcml2YXRlOgogICAgIGludCBt
X3RleFNhbXBsZXJMb2NhdGlvbjsKICAgICBpbnQgbV90ZXhBbHBoYUxvY2F0aW9uOwogICAgIGlu
dCBtX3RleFBvc2l0aW9uTG9jYXRpb247Ci0gICAgaW50IG1fd2lkdGg7Ci0gICAgaW50IG1faGVp
Z2h0OwogICAgIEFmZmluZVRyYW5zZm9ybSBtX2ZsaXBNYXRyaXg7CiAgICAgVGV4dHVyZUhhc2hN
YXAgbV90ZXh0dXJlczsKICAgICBDb21wb3NpdGVPcGVyYXRvciBtX2xhc3RDb21wb3NpdGVPcDsg
Ly8gVGhpcyBpcyB0aGUgb25lIGxhc3Qgc2V0LCBub3QgbmVjZXNzYXJpbHkgdGhlIG9uZSBpbiB0
aGUgc3RhdGUgc3RhY2suCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5kZXggMTViZDliNGU3MzdjZGRkNmYwNTNjN2Rk
NzNjNWQ3NzI5NDU3OTg3Yy4uMTY0YjVhNjhmMTIzMzQ5MThhMTA5OTU3YjQwZTk1MjRjOTg5YWY4
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29u
dGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9y
bUNvbnRleHRTa2lhLmNwcApAQCAtNDQsNyArNDQsMTUgQEAKICNpbmNsdWRlICJTa1NoYWRlci5o
IgogI2luY2x1ZGUgIlNrRGFzaFBhdGhFZmZlY3QuaCIKIAorI2lmIFVTRShHTEVTMl9SRU5ERVJJ
TkcpCisjaW5jbHVkZSAiR0xFUzJDYW52YXMuaCIKKyNpbmNsdWRlICJHTEVTMkNvbnRleHQuaCIK
KyNpbmNsdWRlICJHTEVTMlRleHR1cmUuaCIKKyNpbmNsdWRlIDxHTEVTMi9nbDIuaD4KKyNlbmRp
ZgorCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvT3duQXJyYXlQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIApAQCAt
MTk5LDYgKzIwNywxMSBAQCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lh
KHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAjaWYgT1MoV0lORE9XUykKICAgICAsIG1f
ZHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpCiAjZW5kaWYKKyNpZiBVU0UoR0xFUzJfUkVOREVS
SU5HKQorICAgICwgbV91c2VHUFUoZmFsc2UpCisgICAgLCBtX0dQVUNhbnZhcygwKQorICAgICwg
bV9iYWNraW5nU3RvcmVTdGF0ZShOb25lKQorI2VuZGlmCiB7CiAgICAgbV9zdGF0ZVN0YWNrLmFw
cGVuZChTdGF0ZSgpKTsKICAgICBtX3N0YXRlID0gJm1fc3RhdGVTdGFjay5sYXN0KCk7CkBAIC02
NjEsMyArNjc0LDExNCBAQCB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OmFwcGx5QW50aUFsaWFz
ZWRDbGlwUGF0aHMoV1RGOjpWZWN0b3I8U2tQYXRoPiYgcGF0aHMpCiAKICAgICBtX2NhbnZhcy0+
cmVzdG9yZSgpOwogfQorCisjaWYgVVNFKEdMRVMyX1JFTkRFUklORykKK3ZvaWQgUGxhdGZvcm1D
b250ZXh0U2tpYTo6c2V0R0xFUzJDb250ZXh0KFdlYkNvcmU6OkdMRVMyQ29udGV4dCogY29udGV4
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBtX3VzZUdQVSA9IHRydWU7
CisgICAgbV9HUFVDYW52YXMgPSBuZXcgV2ViQ29yZTo6R0xFUzJDYW52YXMoY29udGV4dCwgc2l6
ZSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlU29mdHdhcmVEcmF3KCkgY29u
c3QKK3sKKyAgICBpZiAobV91c2VHUFUpIHsKKyAgICAgICAgaWYgKG1fYmFja2luZ1N0b3JlU3Rh
dGUgPT0gSGFyZHdhcmUpIHsKKyAgICAgICAgICAgIC8vIERlcGVuZGluZyBvbiB0aGUgYmxlbmQg
bW9kZSB3ZSBuZWVkIHRvIG9uZSBvZiBhIGZldyB0aGluZ3M6CisKKyAgICAgICAgICAgIC8vICog
Rm9yIGFzc29jaWF0aXZlIGJsZW5kIG1vZGVzLCB3ZSBjYW4gZHJhdyBpbnRvIGFuIGluaXRpYWxs
eSBlbXB0eQorICAgICAgICAgICAgLy8gY2FudmFzIGFuZCB0aGVuIGNvbXBvc2l0ZSB0aGUgcmVz
dWx0cyBvbiB0b3Agb2YgdGhlIGhhcmR3YXJlIGRyYXduCisgICAgICAgICAgICAvLyByZXN1bHRz
IGJlZm9yZSB0aGUgbmV4dCBoYXJkd2FyZSBkcmF3IG9yIHN3YXBCdWZmZXJzKCkuCisKKyAgICAg
ICAgICAgIC8vICogRm9yIG5vbi1hc3NvY2lhdGl2ZSBibGVuZCBtb2RlcyB3ZSBoYXZlIHRvIGRv
IGEgcmVhZGJhY2sgYW5kIHRoZW4KKyAgICAgICAgICAgIC8vIHNvZnR3YXJlIGRyYXcuICBXaGVu
IHdlIHJlLXVwbG9hZCBpbiB0aGlzIG1vZGUgd2UgaGF2ZSB0byBibG93CisgICAgICAgICAgICAv
LyBhd2F5IHdoYXRldmVyIGlzIGluIHRoZSBoYXJkd2FyZSBiYWNraW5nIHN0b3JlIChkbyBhIGNv
cHkgaW5zdGVhZAorICAgICAgICAgICAgLy8gb2YgYSBjb21wb3NpdGluZyBvcGVyYXRpb24pLgor
CisgICAgICAgICAgICBpZiAobV9zdGF0ZS0+bV94ZmVyTW9kZSA9PSBTa1hmZXJtb2RlOjprU3Jj
T3Zlcl9Nb2RlKSB7CisgICAgICAgICAgICAgICAgLy8gTGFzdCBkcmF3biBvbiBoYXJkd2FyZTsg
Y2xlYXIgb3V0IHRoZSBjYW52YXMuCisgICAgICAgICAgICAgICAgbV9jYW52YXMtPnNhdmUoKTsK
KyAgICAgICAgICAgICAgICBTa1JlY3QgYm91bmRzID0gezAsIDAsIG1fY2FudmFzLT5nZXREZXZp
Y2UoKS0+d2lkdGgoKSwgbV9jYW52YXMtPmdldERldmljZSgpLT5oZWlnaHQoKX07CisgICAgICAg
ICAgICAgICAgbV9jYW52YXMtPmNsaXBSZWN0KGJvdW5kcywgU2tSZWdpb246OmtSZXBsYWNlX09w
KTsKKyAgICAgICAgICAgICAgICBtX2NhbnZhcy0+ZHJhd0FSR0IoMCwgMCwgMCwgMCwgU2tYZmVy
bW9kZTo6a0NsZWFyX01vZGUpOworICAgICAgICAgICAgICAgIG1fY2FudmFzLT5yZXN0b3JlKCk7
CisgICAgICAgICAgICAgICAgLy8gU3RhcnQgY29tcG9zaXRpbmcgaW50byB0aGUgZW1wdHkgY2Fu
dmFzLgorICAgICAgICAgICAgICAgIG1fYmFja2luZ1N0b3JlU3RhdGUgPSBNaXhlZDsKKyAgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcmVhZGJhY2tIYXJkd2FyZVRvU29mdHdh
cmUoKTsKKyAgICAgICAgICAgICAgICAvLyBXaGVuIHdlIHN3aXRjaCBiYWNrIHRvIGhhcmR3YXJl
IGNvcHkgdGhlIHJlc3VsdHMsIGRvbid0IGNvbXBvc2l0ZS4KKyAgICAgICAgICAgICAgICBtX2Jh
Y2tpbmdTdG9yZVN0YXRlID0gU29mdHdhcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxz
ZSBpZiAobV9iYWNraW5nU3RvcmVTdGF0ZSA9PSBNaXhlZCkgeworICAgICAgICAgICAgaWYgKG1f
c3RhdGUtPm1feGZlck1vZGUgIT0gU2tYZmVybW9kZTo6a1NyY092ZXJfTW9kZSkgeworICAgICAg
ICAgICAgICAgIC8vIEhhdmUgdG8gY29tcG9zaXRlIG91ciBjdXJyZW50bHkgc29mdHdhcmUgZHJh
d24gZGF0YS4uLgorICAgICAgICAgICAgICAgIHVwbG9hZFNvZnR3YXJlVG9IYXJkd2FyZShXZWJD
b3JlOjpDb21wb3NpdGVTb3VyY2VPdmVyKTsKKyAgICAgICAgICAgICAgICAvLyB0aGVuIGRvIGEg
cmVhZGJhY2sgc28gd2UgY2FuIGhhcmR3YXJlIGRyYXcgc3R1ZmYuCisgICAgICAgICAgICAgICAg
cmVhZGJhY2tIYXJkd2FyZVRvU29mdHdhcmUoKTsKKyAgICAgICAgICAgICAgICBtX2JhY2tpbmdT
dG9yZVN0YXRlID0gU29mdHdhcmU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9
CisKK3ZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6cHJlSGFyZHdhcmVEcmF3KCkgY29uc3QKK3sK
KyAgICBpZiAobV91c2VHUFUpIHsKKyAgICAgICAgaWYgKG1fYmFja2luZ1N0b3JlU3RhdGUgPT0g
U29mdHdhcmUpIHsKKyAgICAgICAgICAgIC8vIExhc3QgZHJhd24gaW4gc29mdHdhcmU7IHVwbG9h
ZCBldmVyeXRoaW5nIHdlJ3ZlIGRyYXduLgorICAgICAgICAgICAgdXBsb2FkU29mdHdhcmVUb0hh
cmR3YXJlKFdlYkNvcmU6OkNvbXBvc2l0ZUNvcHkpOworICAgICAgICB9IGVsc2UgaWYgKG1fYmFj
a2luZ1N0b3JlU3RhdGUgPT0gTWl4ZWQpIHsKKyAgICAgICAgICAgIC8vIFN0dWZmIGluIHNvZnR3
YXJlL2hhcmR3YXJlLCBjb21wb3NpdGUgdGhlIHNvZnR3YXJlIHN0dWZmIG9uIHRvcCBvZgorICAg
ICAgICAgICAgLy8gdGhlIGhhcmR3YXJlIHN0dWZmLgorICAgICAgICAgICAgdXBsb2FkU29mdHdh
cmVUb0hhcmR3YXJlKFdlYkNvcmU6OkNvbXBvc2l0ZVNvdXJjZU92ZXIpOworICAgICAgICB9Cisg
ICAgICAgIG1fYmFja2luZ1N0b3JlU3RhdGUgPSBIYXJkd2FyZTsKKyAgICB9Cit9CisKK3ZvaWQg
UGxhdGZvcm1Db250ZXh0U2tpYTo6c3luY1NvZnR3YXJlQ2FudmFzKCkgY29uc3QKK3sKKyAgICBp
ZiAobV91c2VHUFUpIHsKKyAgICAgICAgaWYgKG1fYmFja2luZ1N0b3JlU3RhdGUgPT0gSGFyZHdh
cmUpIHsKKyAgICAgICAgICAgIHJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCk7CisgICAgICAg
IH0gZWxzZSBpZiAobV9iYWNraW5nU3RvcmVTdGF0ZSA9PSBNaXhlZCkgeworICAgICAgICAgICAg
Ly8gSGF2ZSB0byBjb21wb3NpdGUgb3VyIGN1cnJlbnRseSBzb2Z0d2FyZSBkcmF3biBkYXRhLi4K
KyAgICAgICAgICAgIHVwbG9hZFNvZnR3YXJlVG9IYXJkd2FyZShXZWJDb3JlOjpDb21wb3NpdGVT
b3VyY2VPdmVyKTsKKyAgICAgICAgICAgIC8vIHRoZW4gZG8gYSByZWFkYmFjay4KKyAgICAgICAg
ICAgIHJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCk7CisgICAgICAgICAgICBtX2JhY2tpbmdT
dG9yZVN0YXRlID0gU29mdHdhcmU7CisgICAgICAgIH0KKyAgICAgICAgbV9iYWNraW5nU3RvcmVT
dGF0ZSA9IFNvZnR3YXJlOworICAgIH0KK30KKwordm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjp1
cGxvYWRTb2Z0d2FyZVRvSGFyZHdhcmUoV2ViQ29yZTo6Q29tcG9zaXRlT3BlcmF0b3Igb3ApIGNv
bnN0Cit7CisgICAgY29uc3QgU2tCaXRtYXAmIGJpdG1hcCA9IG1fY2FudmFzLT5nZXREZXZpY2Uo
KS0+YWNjZXNzQml0bWFwKGZhbHNlKTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGxvY2soYml0bWFw
KTsKKyAgICBtX0dQVUNhbnZhcy0+Z2xlczJDb250ZXh0KCktPm1ha2VDdXJyZW50KCk7CisgICAg
Ly8gRklYTUU6IEtlZXAgYSB0ZXh0dXJlIGFyb3VuZCBmb3IgdGhpcyByYXRoZXIgdGhhbiBjb25z
dGFudGx5IGNyZWF0aW5nL2Rlc3Ryb3lpbmcgIG9uZS4KKyAgICBSZWZQdHI8V2ViQ29yZTo6R0xF
UzJUZXh0dXJlPiB0ZXh0dXJlID0gV2ViQ29yZTo6R0xFUzJUZXh0dXJlOjpjcmVhdGUoV2ViQ29y
ZTo6R0xFUzJUZXh0dXJlOjpCR1JBOCwgYml0bWFwLndpZHRoKCksIGJpdG1hcC5oZWlnaHQoKSk7
CisgICAgdGV4dHVyZS0+bG9hZChiaXRtYXAuZ2V0UGl4ZWxzKCkpOworICAgIFdlYkNvcmU6Oklu
dFJlY3QgcmVjdCgwLCAwLCBiaXRtYXAud2lkdGgoKSwgYml0bWFwLmhlaWdodCgpKTsKKyAgICBn
cHVDYW52YXMoKS0+ZHJhd1RleHR1cmVkUmVjdCh0ZXh0dXJlLmdldCgpLCByZWN0LCByZWN0LCBX
ZWJDb3JlOjpEZXZpY2VDb2xvclNwYWNlLCBvcCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1Db250ZXh0
U2tpYTo6cmVhZGJhY2tIYXJkd2FyZVRvU29mdHdhcmUoKSBjb25zdAoreworICAgIGNvbnN0IFNr
Qml0bWFwJiBiaXRtYXAgPSBtX2NhbnZhcy0+Z2V0RGV2aWNlKCktPmFjY2Vzc0JpdG1hcCh0cnVl
KTsKKyAgICBTa0F1dG9Mb2NrUGl4ZWxzIGxvY2soYml0bWFwKTsKKyAgICBtX0dQVUNhbnZhcy0+
Z2xlczJDb250ZXh0KCktPm1ha2VDdXJyZW50KCk7CisgICAgaW50IHdpZHRoID0gYml0bWFwLndp
ZHRoKCksIGhlaWdodCA9IGJpdG1hcC5oZWlnaHQoKTsKKyAgICBXVEY6Ok93bkFycmF5UHRyPHVp
bnQzMl90PiBidWYobmV3IHVpbnQzMl90W3dpZHRoXSk7CisgICAgLy8gRmxpcHMgdGhlIGltYWdl
IHZlcnRpY2FsbHkuCisgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7ICsreSkgeworICAg
ICAgICB1aW50MzJfdCogcGl4ZWxzID0gYml0bWFwLmdldEFkZHIzMigwLCB5KTsKKyAgICAgICAg
Z2xSZWFkUGl4ZWxzKDAsIGhlaWdodCAtIDEgLSB5LCB3aWR0aCwgMSwgR0xfUkdCQSwgR0xfVU5T
SUdORURfQllURSwgcGl4ZWxzKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB3aWR0aDsg
KytpKSB7CisgICAgICAgICAgICB1aW50MzJfdCBwaXhlbCA9IHBpeGVsc1tpXTsKKyAgICAgICAg
ICAgIC8vIFN3aXp6bGVzIGZyb20gUkdCQSAtPiBCR1JBLgorICAgICAgICAgICAgcGl4ZWxzW2ld
ID0gcGl4ZWwgJiAweEZGMDBGRjAwIHwgKChwaXhlbCAmIDB4MDBGRjAwMDApID4+IDE2KSB8ICgo
cGl4ZWwgJiAweDAwMDAwMEZGKSA8PCAxNik7CisgICAgICAgIH0KKyAgICB9Cit9CisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRl
eHRTa2lhLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0
U2tpYS5oCmluZGV4IDg4YThlYzdiNzU3ZTkxNzdhNDcwYzJlMmMxNzQ1MGY1ZDZkMjU5ZWYuLmZl
YmM0NWExZDUyYWZjMmNiYjhhODAzNmUzNTJjZTA3ZjhjNWQ0ZGMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaApAQCAtNDEs
NiArNDEsMTQgQEAKICNpbmNsdWRlICJTa1BhaW50LmgiCiAjaW5jbHVkZSAiU2tQYXRoLmgiCiAK
KyNpZiBVU0UoR0xFUzJfUkVOREVSSU5HKQorbmFtZXNwYWNlIFdlYkNvcmUgeworZW51bSBDb21w
b3NpdGVPcGVyYXRvcjsKK2NsYXNzIEdMRVMyQ2FudmFzOworY2xhc3MgR0xFUzJDb250ZXh0Owor
fQorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIC8vIFRoaXMgY2xhc3MgaG9s
ZHMgdGhlIHBsYXRmb3JtLXNwZWNpZmljIHN0YXRlIGZvciBHcmFwaGljc0NvbnRleHQuIFdlIHB1
dApAQCAtMTc0LDYgKzE4MiwyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbWFnZVJlc2FtcGxp
bmdIaW50KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNyY1NpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgZHN0U2l6ZSk7CiAgICAgdm9pZCBjbGVhckltYWdlUmVzYW1wbGluZ0hpbnQoKTsK
ICAgICBib29sIGhhc0ltYWdlUmVzYW1wbGluZ0hpbnQoKSBjb25zdDsKKyNpZiBVU0UoR0xFUzJf
UkVOREVSSU5HKQorICAgIGJvb2wgdXNlR1BVKCkgeyByZXR1cm4gbV91c2VHUFU7IH0KKyAgICB2
b2lkIHNldEdMRVMyQ29udGV4dChXZWJDb3JlOjpHTEVTMkNvbnRleHQqLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJik7CisgICAgV2ViQ29yZTo6R0xFUzJDYW52YXMqIGdwdUNhbnZhcygpIGNvbnN0
IHsgcmV0dXJuIG1fR1BVQ2FudmFzLmdldCgpOyB9CisjZW5kaWYKKworI2lmIFVTRShHTEVTMl9S
RU5ERVJJTkcpCisgICAgLy8gQ2FsbCB0aGVzZSBiZWZvcmUgbWFraW5nIGEgY2FsbCB0aGF0IG1h
bmlwdWxhdGVzIHRoZSB1bmRlcmx5aW5nCisgICAgLy8gc2tpYTo6UGxhdGZvcm1DYW52YXMgb3Ig
V2ViQ29yZTo6R0xFUzJDYW52YXMKKyAgICB2b2lkIHByZVNvZnR3YXJlRHJhdygpIGNvbnN0Owor
ICAgIHZvaWQgcHJlSGFyZHdhcmVEcmF3KCkgY29uc3Q7CisgICAgLy8gQ2FsbCB0byBmb3JjZSB0
aGUgc2tpYTo6UGxhdGZvcm1DYW52YXMgdG8gY29udGFpbiBhbGwgcmVuZGVyaW5nIHJlc3VsdHMu
CisgICAgdm9pZCBzeW5jU29mdHdhcmVDYW52YXMoKSBjb25zdDsKKyNlbHNlCisgICAgdm9pZCBw
cmVTb2Z0d2FyZURyYXcoKSBjb25zdCB7fQorICAgIHZvaWQgcHJlSGFyZHdhcmVEcmF3KCkgY29u
c3Qge30KKyAgICB2b2lkIHN5bmNTb2Z0d2FyZUNhbnZhcygpIGNvbnN0IHt9CisjZW5kaWYKIAog
cHJpdmF0ZToKICNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKQEAgLTE4Myw2ICsyMDksMTEg
QEAgcHJpdmF0ZToKICNlbmRpZgogICAgIHZvaWQgYXBwbHlBbnRpQWxpYXNlZENsaXBQYXRocyhX
VEY6OlZlY3RvcjxTa1BhdGg+JiBwYXRocyk7CiAKKyNpZiBVU0UoR0xFUzJfUkVOREVSSU5HKQor
ICAgIHZvaWQgdXBsb2FkU29mdHdhcmVUb0hhcmR3YXJlKFdlYkNvcmU6OkNvbXBvc2l0ZU9wZXJh
dG9yKSBjb25zdDsKKyAgICB2b2lkIHJlYWRiYWNrSGFyZHdhcmVUb1NvZnR3YXJlKCkgY29uc3Q7
CisjZW5kaWYKKwogICAgIC8vIERlZmluZXMgZHJhd2luZyBzdHlsZS4KICAgICBzdHJ1Y3QgU3Rh
dGU7CiAKQEAgLTIwNiw2ICsyMzcsMTEgQEAgcHJpdmF0ZToKICNpZiBPUyhXSU5ET1dTKQogICAg
IGJvb2wgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcjsKICNlbmRpZgorI2lmIFVTRShHTEVTMl9SRU5E
RVJJTkcpCisgICAgYm9vbCBtX3VzZUdQVTsKKyAgICBPd25QdHI8V2ViQ29yZTo6R0xFUzJDYW52
YXM+IG1fR1BVQ2FudmFzOworICAgIG11dGFibGUgZW51bSB7IE5vbmUsIFNvZnR3YXJlLCBNaXhl
ZCwgSGFyZHdhcmUgfSBtX2JhY2tpbmdTdG9yZVN0YXRlOworI2VuZGlmCiB9OwogCi0jZW5kaWYg
IC8vIFBsYXRmb3JtQ29udGV4dFNraWFfaAorI2VuZGlmIC8vIFBsYXRmb3JtQ29udGV4dFNraWFf
aAo=
</data>
<flag name="review"
          id="50974"
          type_id="1"
          status="+"
          setter="fishd"
    />
    <flag name="commit-queue"
          id="50982"
          type_id="3"
          status="-"
          setter="fishd"
    />
          </attachment>
      

    </bug>

</bugzilla>