<?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>54330</bug_id>
          
          <creation_ts>2011-02-11 18:08:50 -0800</creation_ts>
          <short_desc>[chromium] Cannot use multiple accelerated 2D canvas&apos; in the same render process</short_desc>
          <delta_ts>2011-03-24 17:21:21 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vangelis Kokkevis">vangelis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>reed</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>350193</commentid>
    <comment_count>0</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-02-11 18:08:50 -0800</bug_when>
    <thetext>This is an issue with the accelerated Skia path (ENABLE(SKIA_GPU)) only.

Canvas elements residing in different pages handled by the same Render process all share one GrContext (globally allocated per process) but use different GL contexts (one SharedGraphicsContext3D per page) to draw. This appears to be breaking an assumption in the code that all canvas&apos; using the same GrContext must draw via the same GL context too (which allows for proper state tracking).

An easy way to reproduce a failure is to run chrome in --single-process mode and in two different tabs open pages that contain a canvas element.  The first tab will work fine but the second one won&apos;t.

We should either create a new GrContext per SharedGraphicsContext3D or use a single SharedGraphicsContext3D per process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371580</commentid>
    <comment_count>1</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-22 13:12:40 -0700</bug_when>
    <thetext>Working on  a patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372843</commentid>
    <comment_count>2</comment_count>
      <attachid>86781</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-24 09:26:13 -0700</bug_when>
    <thetext>Created attachment 86781
fix for 54330

Move ownership of the GrContext into SharedGraphicsContext3D, instead of a global.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372884</commentid>
    <comment_count>3</comment_count>
      <attachid>86781</attachid>
    <who name="Stephen White">senorblanco</who>
    <bug_when>2011-03-24 10:13:26 -0700</bug_when>
    <thetext>Comment on attachment 86781
fix for 54330

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

Looks ok to me, modulo nits.

&gt; WebCore/platform/graphics/chromium/DrawingBufferChromium.cpp:177
&gt; +    SkRefCnt_SafeAssign(m_grContext, context);

With both DrawingBuffer and SGC3D taking a ref on the GrContext, ownership semantics are a bit muddy.  If jamesr can confirm that the DrawingBuffer never outlives the SGC3D, we could use a bare pointer, and not take a ref here.

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:469
&gt; +        m_grContext-&gt;setTextureCacheLimits(512, 50 * 1024 * 1024);

These magic numbers should probably be in a constant whose name explains their meaning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372937</commentid>
    <comment_count>4</comment_count>
      <attachid>86781</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-03-24 10:59:28 -0700</bug_when>
    <thetext>Comment on attachment 86781
fix for 54330

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

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.cpp:738
&gt; +        drawingBuffer-&gt;setGrContext(gr);

I realize that calling resetContext() here isn&apos;t the right spot but given that the underlying GC3D context is now (by definition) shared, shouldn&apos;t all the clients be calling resetContext() every time before the GrContext is used?  Should that be encapsulated in SGC3D::getGrContext() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372958</commentid>
    <comment_count>5</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-24 11:21:01 -0700</bug_when>
    <thetext>I have done some testing of multiple uses, and didn&apos;t see a need for the resetContext() call. I propose we add it only when we see it fix a bug (to my mind, it should get called when a client knowingly changes the gl state only).

If we get confirmation that DrawingBuffers always die before the SharedGraphicsContext3D that created the grcontext, then I&apos;ll gladly simplify the setter. I&apos;ll leave it reference counted until then.

Good point about the texture cache limits. I&apos;ll add comments (of course stating that I just made up those values :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372993</commentid>
    <comment_count>6</comment_count>
      <attachid>86811</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-24 12:33:06 -0700</bug_when>
    <thetext>Created attachment 86811
comment two parameters to setTextureCacheLimits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373002</commentid>
    <comment_count>7</comment_count>
      <attachid>86811</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-24 12:45:47 -0700</bug_when>
    <thetext>Comment on attachment 86811
comment two parameters to setTextureCacheLimits

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

DrawingBuffer holds a RefPtr to its associated GraphicsContext3D, so the GraphicsContext3D will never be destroyed before the DrawingBuffer.

Does this code assuming that the GrContext is the only user of the SharedGraphicsContext3D?

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:53
&gt; +// limit the number of textures we hold in the bitmap-&gt;texture cache
&gt; +#define GR_MAX_TEXTURE_COUNT    512
&gt; +// limit the bytes allocated toward textures in the bitmap-&gt;texture cache

Comments in WebKit should start with a capital letter and end with a period.

Also, we typically use static variables of the appropriate type (size_t here) instead of #defines for stuff like this.

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:474
&gt; +        m_grContext-&gt;setTextureCacheLimits(GR_MAX_TEXTURE_COUNT,
&gt; +                                           GR_MAX_TEXTURE_BYTES);

unnecessary line wrap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373009</commentid>
    <comment_count>8</comment_count>
      <attachid>86815</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-24 13:00:42 -0700</bug_when>
    <thetext>Created attachment 86815
Capitalize comments, use static consts, remove LF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373032</commentid>
    <comment_count>9</comment_count>
      <attachid>86815</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-24 13:14:11 -0700</bug_when>
    <thetext>Comment on attachment 86815
Capitalize comments, use static consts, remove LF

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

Style still isn&apos;t quite right, and there are still two unanswered questions:
1.) Given that the lifetime of the GraphicsContext3D is &gt;= the DrawingBuffer, do we need the refcounting on the GrContext here?
2.) Does this code assume that ganesh is the exclusive user of SharedGraphicsContext3D?  That&apos;s not really consistent with the intended design of SGC3D (after all it&apos;s supposed to be shared by multiple cooperative users).

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp:54
&gt; +// Limit the number of textures we hold in the bitmap-&gt;texture cache
&gt; +static const int cMaxTextureCacheCount = 512;
&gt; +// Limit the bytes allocated toward textures in the bitmap-&gt;texture cache
&gt; +static const size_t cMaxTextureCacheBytes = 50 * 1024 * 1024;

missing trailing periods on the comments.

we don&apos;t use the &quot;c&quot; or any other prefix for static constants in WebKit.

&gt; WebCore/platform/graphics/gpu/SharedGraphicsContext3D.h:143
&gt; +    GrContext* getGrContext();

Accessors in WebKit do not use a &apos;get&apos; prefix - this should be &apos;grContext()&apos;.  See http://www.webkit.org/coding/coding-style.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373054</commentid>
    <comment_count>10</comment_count>
      <attachid>86824</attachid>
    <who name="Mike Reed">reed</who>
    <bug_when>2011-03-24 13:48:33 -0700</bug_when>
    <thetext>Created attachment 86824
rename getter (remove get...), take unreferenced ptr in DrawingBuffer, add resetContext(), remove cPrefix to static consts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373057</commentid>
    <comment_count>11</comment_count>
      <attachid>86824</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-03-24 13:52:37 -0700</bug_when>
    <thetext>Comment on attachment 86824
rename getter (remove get...), take unreferenced ptr in DrawingBuffer, add resetContext(), remove cPrefix to static consts.

Seems OK.

This patch was created from within Source/ instead of from the root of the WebKit repo (which you seem to do often).  Please try to cut that out, it makes reviewing harder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373104</commentid>
    <comment_count>12</comment_count>
      <attachid>86824</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2011-03-24 14:34:12 -0700</bug_when>
    <thetext>Comment on attachment 86824
rename getter (remove get...), take unreferenced ptr in DrawingBuffer, add resetContext(), remove cPrefix to static consts.

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

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.cpp:738
&gt;          gr-&gt;resetContext();

I&apos;m not sure that this is the right spot to call resetContext().  Doesn&apos;t reset need to be called before you start using Ganesh if you don&apos;t how what state the underlying GL context is in?   Like I mentioned in my previous comments, at this point Ganesh will be the only client of the shared context and therefore it&apos;s safe to do this.  I just wanted us to have a comment somewhere mentioning that there will be unexpected behavior if the shared GC3D is used elsewhere as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373164</commentid>
    <comment_count>13</comment_count>
      <attachid>86824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-24 16:12:38 -0700</bug_when>
    <thetext>Comment on attachment 86824
rename getter (remove get...), take unreferenced ptr in DrawingBuffer, add resetContext(), remove cPrefix to static consts.

Clearing flags on attachment: 86824

Committed r81915: &lt;http://trac.webkit.org/changeset/81915&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373165</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-24 16:12:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>373222</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-24 17:21:21 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/81915 might have broken Windows 7 Release (Tests)
The following tests are not passing:
fast/images/embed-image.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86781</attachid>
            <date>2011-03-24 09:26:13 -0700</date>
            <delta_ts>2011-03-24 12:33:06 -0700</delta_ts>
            <desc>fix for 54330</desc>
            <filename>grcontext.diff</filename>
            <type>text/plain</type>
            <size>8801</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4MTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjQgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxp
ZmV0aW1lIG1hbmFnZW1lbnQgb2YgZ3JDb250ZXh0IGZyb20gYSBnbG9iYWwgdG8gYmVpbmcKKyAg
ICAgICAgcGVyLVNoYXJlZEdyYXBoaWNzQ29udGV4dDNELCB3aGljaCBjb3JyZWN0bHkgaXMgMTox
IHdpdGggdGhlCisgICAgICAgIHVuZGVybHlpbmcgb3BlbmdsIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDMzMAorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gRXhpc3RpbmcgPGNhbnZhcz4gdGVzdHMgZXhlcmNpc2UgdGhpczoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6On5TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0
R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6
flBsYXRmb3JtQ29udGV4dFNraWEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDExLTAzLTI0ICBCZW4gVGF5
bG9yICA8YmVudGF5bG9yLnNvbHg4NkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EcmF3aW5n
QnVmZmVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAKICNp
ZiBFTkFCTEUoU0tJQV9HUFUpCiAjaW5jbHVkZSAiR3JDb250ZXh0LmgiCisjaW5jbHVkZSAiU2tS
ZWZDbnQuaCIKICNlbmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAt
NDYsMTAgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKFNLSUFf
R1BVKQotZXh0ZXJuIEdyQ29udGV4dCogR2V0R2xvYmFsR3JDb250ZXh0KCk7Ci0jZW5kaWYKLQog
c3RydWN0IERyYXdpbmdCdWZmZXJJbnRlcm5hbCB7CiAgICAgdW5zaWduZWQgb2Zmc2NyZWVuQ29s
b3JUZXh0dXJlOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTkxLDYgKzg4
LDkgQEAgRHJhd2luZ0J1ZmZlcjo6RHJhd2luZ0J1ZmZlcihHcmFwaGljc0NvbgogICAgICwgbV9t
dWx0aXNhbXBsZUZCTygwKQogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCiAgICAg
LCBtX2ludGVybmFsKG5ldyBEcmF3aW5nQnVmZmVySW50ZXJuYWwpCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgICwgbV9nckNvbnRleHQoMCkKKyNlbmRpZgogewogICAgIGlmICghbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmVfdG9f
cGFyZW50X3RleHR1cmUiKSkgewogICAgICAgICBtX2NvbnRleHQuY2xlYXIoKTsKQEAgLTExMCw2
ICsxMTAsMTAgQEAgRHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIoKQogICAgICAgICBtX2lu
dGVybmFsLT5wbGF0Zm9ybUxheWVyLT5zZXREcmF3aW5nQnVmZmVyKDApOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JTYWZlVW5yZWYobV9nckNvbnRleHQpOworI2VuZGlm
CisKICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTEz
Nyw3ICsxNDEsOCBAQCB2b2lkIERyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5CiAg
ICAgLy8gd291bGQgaW5zZXJ0IGEgZmVuY2UgaW50byB0aGUgY2hpbGQgY29tbWFuZCBzdHJlYW0g
dGhhdCB0aGUgY29tcG9zaXRvciBjb3VsZCB3YWl0IGZvci4KICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShTS0lBX0dQVSkKLSAgICBHZXRHbG9iYWxHckNv
bnRleHQoKS0+Zmx1c2goMCk7CisgICAgaWYgKG1fZ3JDb250ZXh0KQorICAgICAgICBtX2dyQ29u
dGV4dC0+Zmx1c2goMCk7CiAjZW5kaWYKICAgICBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RDaHJv
bWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKS0+Y29weVRleHR1cmVUb1BhcmVudFRl
eHR1cmVDSFJPTUlVTShtX2NvbG9yQnVmZmVyLCBwYXJlbnRUZXh0dXJlKTsKICAgICBtX2NvbnRl
eHQtPmZsdXNoKCk7CkBAIC0xNjYsNCArMTcxLDExIEBAIFBsYXRmb3JtM0RPYmplY3QgRHJhd2lu
Z0J1ZmZlcjo6cGxhdGZvcm0KICAgICByZXR1cm4gbV9jb2xvckJ1ZmZlcjsKIH0KIAorI2lmIEVO
QUJMRShTS0lBX0dQVSkKK3ZvaWQgRHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KEdyQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICBTa1JlZkNudF9TYWZlQXNzaWduKG1fZ3JDb250ZXh0LCBjb250
ZXh0KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5oCShyZXZpc2lvbiA4MTc2NikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiAr
NDIsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShTS0lBX0dQVSkKK2NsYXNzIEdyQ29udGV4dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKQEAgLTk1LDYgKzk5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFdpbGxQdWJsaXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENh
bGxiYWNrPiBjYWxsYmFjaykgeyBtX2NhbGxiYWNrID0gY2FsbGJhY2s7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIHZvaWQgc2V0R3JDb250ZXh0KEdyQ29udGV4dCogY3R4
KTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gZ3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogcHJpdmF0ZToKQEAgLTEz
MSw2ICsxMzksMTAgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRy
PFdlYkdMTGF5ZXI+IG1fcGxhdGZvcm1MYXllcjsKICNlbmRpZgorCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgIEdyQ29udGV4dCogbV9nckNvbnRleHQ7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAJKHJldmlzaW9uIDgxNzY2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMCBAQAogI2luY2x1ZGUgIlNvbGlkRmls
bFNoYWRlci5oIgogI2luY2x1ZGUgIlRleFNoYWRlci5oIgogCisjaWYgRU5BQkxFKFNLSUFfR1BV
KQorI2luY2x1ZGUgIkdyQ29udGV4dC5oIgorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYvT3duQXJy
YXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CkBAIC05MCw2ICs5NCw5IEBAIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNE
OjpTaGFyZWRHcmFwaGljc0MKICAgICAsIG1fYmljdWJpY1NoYWRlcihiaWN1YmljU2hhZGVyKQog
ICAgICwgbV9jb252b2x1dGlvblNoYWRlcnMoY29udm9sdXRpb25TaGFkZXJzKQogICAgICwgbV9v
ZXNTdGFuZGFyZERlcml2YXRpdmVzU3VwcG9ydGVkKGZhbHNlKQorI2lmIEVOQUJMRShTS0lBX0dQ
VSkKKyAgICAsIG1fZ3JDb250ZXh0KDApCisjZW5kaWYKIHsKICAgICBhbGxDb250ZXh0cygpLT5h
ZGQodGhpcyk7CiAgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gbV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCk7CkBAIC0xMDcsNiArMTE0LDkgQEAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
On5TaGFyZWRHcmFwaGljcwogewogICAgIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZl
cnRpY2VzKTsKICAgICBhbGxDb250ZXh0cygpLT5yZW1vdmUodGhpcyk7CisjaWYgRU5BQkxFKFNL
SUFfR1BVKQorICAgIEdyU2FmZVVucmVmKG1fZ3JDb250ZXh0KTsKKyNlbmRpZgogfQogCiB2b2lk
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQoKQpAQCAtNDUxLDYg
KzQ2MSwxNyBAQCBEcmF3aW5nQnVmZmVyKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6CiAgICAg
cmV0dXJuIG1fb2Zmc2NyZWVuQnVmZmVyc1tpbmRleF0uZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUo
U0tJQV9HUFUpCitHckNvbnRleHQqIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRHckNvbnRl
eHQoKQoreworICAgIGlmICghbV9nckNvbnRleHQpIHsKKyAgICAgICAgbV9nckNvbnRleHQgPSBH
ckNvbnRleHQ6OkNyZWF0ZUdMU2hhZGVyQ29udGV4dCgpOworICAgICAgICBtX2dyQ29udGV4dC0+
c2V0VGV4dHVyZUNhY2hlTGltaXRzKDUxMiwgNTAgKiAxMDI0ICogMTAyNCk7CisgICAgfQorICAg
IHJldHVybiBtX2dyQ29udGV4dDsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKICNlbmRpZgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3Jh
cGhpY3NDb250ZXh0M0QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCShyZXZpc2lvbiA4MTc2NikKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgJKHdvcmtp
bmcgY29weSkKQEAgLTQzLDYgKzQzLDEwIEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCitjbGFzcyBH
ckNvbnRleHQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBZmZpbmVU
cmFuc2Zvcm07CkBAIC0xMzUsNiArMTM5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVzZUxvb3BC
bGlubkV4dGVyaW9yUHJvZ3JhbSh1bnNpZ25lZCB2ZXJ0ZXhPZmZzZXQsIHVuc2lnbmVkIGtsbU9m
ZnNldCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiwgY29uc3QgQ29sb3ImKTsKICAgICBEcmF3aW5n
QnVmZmVyKiBnZXRPZmZzY3JlZW5CdWZmZXIodW5zaWduZWQgaW5kZXgsIGNvbnN0IEludFNpemUm
KTsKIAorI2lmIEVOQUJMRShTS0lBX0dQVSkKKyAgICBHckNvbnRleHQqIGdldEdyQ29udGV4dCgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QoUGFzc1Jl
ZlB0cjxHcmFwaGljc0NvbnRleHQzRD4sIFBhc3NPd25QdHI8U29saWRGaWxsU2hhZGVyPiwgUGFz
c093blB0cjxUZXhTaGFkZXI+LCBQYXNzT3duUHRyPEJpY3ViaWNTaGFkZXI+LCBQYXNzT3duQXJy
YXlQdHI8T3duUHRyPENvbnZvbHV0aW9uU2hhZGVyPiA+KTsKIApAQCAtMTYxLDYgKzE2OSwxMCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzU3VwcG9ydGVkOwog
CiAgICAgV1RGOjpWZWN0b3I8UmVmUHRyPERyYXdpbmdCdWZmZXI+ID4gbV9vZmZzY3JlZW5CdWZm
ZXJzOworCisjaWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIEdyQ29udGV4dCogbV9nckNvbnRleHQ7
CisjZW5kaWYKIH07CiAKIGNvbnN0IGZsb2F0IGNNYXhTaWdtYSA9IDQuMGY7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNr
aWEuY3BwCShyZXZpc2lvbiA4MTc2NikKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjgsMTggKzY4LDYg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKFNLSUFfR1BVKQotR3JDb250
ZXh0KiBHZXRHbG9iYWxHckNvbnRleHQoKQotewotICAgIHN0YXRpYyBHckNvbnRleHQqIGdHUjsK
LSAgICBpZiAoIWdHUikgewotICAgICAgICBnR1IgPSBHckNvbnRleHQ6OkNyZWF0ZUdMU2hhZGVy
Q29udGV4dCgpOwotICAgICAgICBnR1ItPnNldFRleHR1cmVDYWNoZUxpbWl0cyg1MTIsIDUwICog
MTAyNCAqIDEwMjQpOwotICAgIH0KLSAgICByZXR1cm4gZ0dSOwotfQotI2VuZGlmCi0KIGV4dGVy
biBib29sIGlzUGF0aFNraWFTYWZlKGNvbnN0IFNrTWF0cml4JiB0cmFuc2Zvcm0sIGNvbnN0IFNr
UGF0aCYgcGF0aCk7CiAKIC8vIFN0YXRlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yNDUsNyArMjMzLDcg
QEAgUGxhdGZvcm1Db250ZXh0U2tpYTo6flBsYXRmb3JtQ29udGV4dFNraQogI2lmIEVOQUJMRShT
S0lBX0dQVSkKICAgICAgICAgLy8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgcmVsYXRlZCB0byB0aGlz
IHBsYXRmb3JtIGNvbnRleHQgaGFzIGJlZW4gZmx1c2hlZAogICAgICAgICBpZiAoIW1fdXNlR1BV
KQotICAgICAgICAgICAgR2V0R2xvYmFsR3JDb250ZXh0KCktPmZsdXNoKDApOworICAgICAgICAg
ICAgbV9ncHVDYW52YXMtPmNvbnRleHQoKS0+Z2V0R3JDb250ZXh0KCktPmZsdXNoKDApOwogI2Vu
ZGlmCiAgICAgICAgIG1fZ3B1Q2FudmFzLT5kcmF3aW5nQnVmZmVyKCktPnNldFdpbGxQdWJsaXNo
Q2FsbGJhY2soMCk7CiAgICAgfQpAQCAtNzQ2LDggKzczNCw5IEBAIHZvaWQgUGxhdGZvcm1Db250
ZXh0U2tpYTo6c2V0U2hhcmVkR3JhcGgKICAgICAgICAgY29udGV4dC0+bWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgICAgIG1fZ3B1Q2FudmFzLT5iaW5kRnJhbWVidWZmZXIoKTsKIAotICAgICAg
ICBHckNvbnRleHQqIGdyID0gR2V0R2xvYmFsR3JDb250ZXh0KCk7Ci0gICAgICAgIGdyLT5yZXNl
dENvbnRleHQoKTsKKyAgICAgICAgR3JDb250ZXh0KiBnciA9IGNvbnRleHQtPmdldEdyQ29udGV4
dCgpOworICAgICAgICBkcmF3aW5nQnVmZmVyLT5zZXRHckNvbnRleHQoZ3IpOworCiAgICAgICAg
IFNrRGV2aWNlRmFjdG9yeSogZmFjdG9yeSA9IG5ldyBTa0dwdURldmljZUZhY3RvcnkoZ3IsIFNr
R3B1RGV2aWNlOjpDdXJyZW50M0RBcGlSZW5kZXJUYXJnZXQoKSk7CiAgICAgICAgIFNrRGV2aWNl
KiBkZXZpY2UgPSBmYWN0b3J5LT5uZXdEZXZpY2UobV9jYW52YXMsIFNrQml0bWFwOjprQVJHQl84
ODg4X0NvbmZpZywgZHJhd2luZ0J1ZmZlci0+c2l6ZSgpLndpZHRoKCksIGRyYXdpbmdCdWZmZXIt
PnNpemUoKS5oZWlnaHQoKSwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgbV9jYW52YXMtPnNldERl
dmljZShkZXZpY2UpLT51bnJlZigpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86811</attachid>
            <date>2011-03-24 12:33:06 -0700</date>
            <delta_ts>2011-03-24 13:00:42 -0700</delta_ts>
            <desc>comment two parameters to setTextureCacheLimits</desc>
            <filename>grcontext.diff</filename>
            <type>text/plain</type>
            <size>9100</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4MTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjQgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxp
ZmV0aW1lIG1hbmFnZW1lbnQgb2YgZ3JDb250ZXh0IGZyb20gYSBnbG9iYWwgdG8gYmVpbmcKKyAg
ICAgICAgcGVyLVNoYXJlZEdyYXBoaWNzQ29udGV4dDNELCB3aGljaCBjb3JyZWN0bHkgaXMgMTox
IHdpdGggdGhlCisgICAgICAgIHVuZGVybHlpbmcgb3BlbmdsIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDMzMAorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gRXhpc3RpbmcgPGNhbnZhcz4gdGVzdHMgZXhlcmNpc2UgdGhpczoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6On5TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0
R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6
flBsYXRmb3JtQ29udGV4dFNraWEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDExLTAzLTI0ICBCZW4gVGF5
bG9yICA8YmVudGF5bG9yLnNvbHg4NkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EcmF3aW5n
QnVmZmVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAKICNp
ZiBFTkFCTEUoU0tJQV9HUFUpCiAjaW5jbHVkZSAiR3JDb250ZXh0LmgiCisjaW5jbHVkZSAiU2tS
ZWZDbnQuaCIKICNlbmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAt
NDYsMTAgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKFNLSUFf
R1BVKQotZXh0ZXJuIEdyQ29udGV4dCogR2V0R2xvYmFsR3JDb250ZXh0KCk7Ci0jZW5kaWYKLQog
c3RydWN0IERyYXdpbmdCdWZmZXJJbnRlcm5hbCB7CiAgICAgdW5zaWduZWQgb2Zmc2NyZWVuQ29s
b3JUZXh0dXJlOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTkxLDYgKzg4
LDkgQEAgRHJhd2luZ0J1ZmZlcjo6RHJhd2luZ0J1ZmZlcihHcmFwaGljc0NvbgogICAgICwgbV9t
dWx0aXNhbXBsZUZCTygwKQogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCiAgICAg
LCBtX2ludGVybmFsKG5ldyBEcmF3aW5nQnVmZmVySW50ZXJuYWwpCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgICwgbV9nckNvbnRleHQoMCkKKyNlbmRpZgogewogICAgIGlmICghbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmVfdG9f
cGFyZW50X3RleHR1cmUiKSkgewogICAgICAgICBtX2NvbnRleHQuY2xlYXIoKTsKQEAgLTExMCw2
ICsxMTAsMTAgQEAgRHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIoKQogICAgICAgICBtX2lu
dGVybmFsLT5wbGF0Zm9ybUxheWVyLT5zZXREcmF3aW5nQnVmZmVyKDApOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JTYWZlVW5yZWYobV9nckNvbnRleHQpOworI2VuZGlm
CisKICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTEz
Nyw3ICsxNDEsOCBAQCB2b2lkIERyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5CiAg
ICAgLy8gd291bGQgaW5zZXJ0IGEgZmVuY2UgaW50byB0aGUgY2hpbGQgY29tbWFuZCBzdHJlYW0g
dGhhdCB0aGUgY29tcG9zaXRvciBjb3VsZCB3YWl0IGZvci4KICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShTS0lBX0dQVSkKLSAgICBHZXRHbG9iYWxHckNv
bnRleHQoKS0+Zmx1c2goMCk7CisgICAgaWYgKG1fZ3JDb250ZXh0KQorICAgICAgICBtX2dyQ29u
dGV4dC0+Zmx1c2goMCk7CiAjZW5kaWYKICAgICBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RDaHJv
bWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKS0+Y29weVRleHR1cmVUb1BhcmVudFRl
eHR1cmVDSFJPTUlVTShtX2NvbG9yQnVmZmVyLCBwYXJlbnRUZXh0dXJlKTsKICAgICBtX2NvbnRl
eHQtPmZsdXNoKCk7CkBAIC0xNjYsNCArMTcxLDExIEBAIFBsYXRmb3JtM0RPYmplY3QgRHJhd2lu
Z0J1ZmZlcjo6cGxhdGZvcm0KICAgICByZXR1cm4gbV9jb2xvckJ1ZmZlcjsKIH0KIAorI2lmIEVO
QUJMRShTS0lBX0dQVSkKK3ZvaWQgRHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KEdyQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICBTa1JlZkNudF9TYWZlQXNzaWduKG1fZ3JDb250ZXh0LCBjb250
ZXh0KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5oCShyZXZpc2lvbiA4MTc2NikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiAr
NDIsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShTS0lBX0dQVSkKK2NsYXNzIEdyQ29udGV4dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKQEAgLTk1LDYgKzk5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFdpbGxQdWJsaXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENh
bGxiYWNrPiBjYWxsYmFjaykgeyBtX2NhbGxiYWNrID0gY2FsbGJhY2s7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIHZvaWQgc2V0R3JDb250ZXh0KEdyQ29udGV4dCogY3R4
KTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gZ3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogcHJpdmF0ZToKQEAgLTEz
MSw2ICsxMzksMTAgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRy
PFdlYkdMTGF5ZXI+IG1fcGxhdGZvcm1MYXllcjsKICNlbmRpZgorCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgIEdyQ29udGV4dCogbV9nckNvbnRleHQ7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAJKHJldmlzaW9uIDgxNzY2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxNCBAQAogI2luY2x1ZGUgIlNvbGlkRmls
bFNoYWRlci5oIgogI2luY2x1ZGUgIlRleFNoYWRlci5oIgogCisjaWYgRU5BQkxFKFNLSUFfR1BV
KQorI2luY2x1ZGUgIkdyQ29udGV4dC5oIgorLy8gbGltaXQgdGhlIG51bWJlciBvZiB0ZXh0dXJl
cyB3ZSBob2xkIGluIHRoZSBiaXRtYXAtPnRleHR1cmUgY2FjaGUKKyNkZWZpbmUgR1JfTUFYX1RF
WFRVUkVfQ09VTlQgICAgNTEyCisvLyBsaW1pdCB0aGUgYnl0ZXMgYWxsb2NhdGVkIHRvd2FyZCB0
ZXh0dXJlcyBpbiB0aGUgYml0bWFwLT50ZXh0dXJlIGNhY2hlCisjZGVmaW5lIEdSX01BWF9URVhU
VVJFX0JZVEVTICAgICg1MCAqIDEwMjQgKiAxMDI0KQorI2VuZGlmCisKICNpbmNsdWRlIDx3dGYv
T3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MCw2ICs5OCw5IEBAIFNoYXJlZEdyYXBoaWNzQ29u
dGV4dDNEOjpTaGFyZWRHcmFwaGljc0MKICAgICAsIG1fYmljdWJpY1NoYWRlcihiaWN1YmljU2hh
ZGVyKQogICAgICwgbV9jb252b2x1dGlvblNoYWRlcnMoY29udm9sdXRpb25TaGFkZXJzKQogICAg
ICwgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzU3VwcG9ydGVkKGZhbHNlKQorI2lmIEVOQUJMRShT
S0lBX0dQVSkKKyAgICAsIG1fZ3JDb250ZXh0KDApCisjZW5kaWYKIHsKICAgICBhbGxDb250ZXh0
cygpLT5hZGQodGhpcyk7CiAgICAgRXh0ZW5zaW9uczNEKiBleHRlbnNpb25zID0gbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCk7CkBAIC0xMDcsNiArMTE4LDkgQEAgU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0Q6On5TaGFyZWRHcmFwaGljcwogewogICAgIG1fY29udGV4dC0+ZGVsZXRlQnVmZmVyKG1f
cXVhZFZlcnRpY2VzKTsKICAgICBhbGxDb250ZXh0cygpLT5yZW1vdmUodGhpcyk7CisjaWYgRU5B
QkxFKFNLSUFfR1BVKQorICAgIEdyU2FmZVVucmVmKG1fZ3JDb250ZXh0KTsKKyNlbmRpZgogfQog
CiB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWtlQ29udGV4dEN1cnJlbnQoKQpAQCAt
NDUxLDYgKzQ2NSwxOCBAQCBEcmF3aW5nQnVmZmVyKiBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6
CiAgICAgcmV0dXJuIG1fb2Zmc2NyZWVuQnVmZmVyc1tpbmRleF0uZ2V0KCk7CiB9CiAKKyNpZiBF
TkFCTEUoU0tJQV9HUFUpCitHckNvbnRleHQqIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpnZXRH
ckNvbnRleHQoKQoreworICAgIGlmICghbV9nckNvbnRleHQpIHsKKyAgICAgICAgbV9nckNvbnRl
eHQgPSBHckNvbnRleHQ6OkNyZWF0ZUdMU2hhZGVyQ29udGV4dCgpOworICAgICAgICBtX2dyQ29u
dGV4dC0+c2V0VGV4dHVyZUNhY2hlTGltaXRzKEdSX01BWF9URVhUVVJFX0NPVU5ULAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdSX01BWF9URVhUVVJFX0JZVEVT
KTsKKyAgICB9CisgICAgcmV0dXJuIG1fZ3JDb250ZXh0OworfQorI2VuZGlmCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDgx
NzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250
ZXh0M0QuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsMTAgQEAKICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAorI2lmIEVOQUJMRShTS0lB
X0dQVSkKK2NsYXNzIEdyQ29udGV4dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKQEAgLTEzNSw2ICsxMzksMTAgQEAgcHVibGljOgogICAg
IHZvaWQgdXNlTG9vcEJsaW5uRXh0ZXJpb3JQcm9ncmFtKHVuc2lnbmVkIHZlcnRleE9mZnNldCwg
dW5zaWduZWQga2xtT2Zmc2V0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBDb2xvciYp
OwogICAgIERyYXdpbmdCdWZmZXIqIGdldE9mZnNjcmVlbkJ1ZmZlcih1bnNpZ25lZCBpbmRleCwg
Y29uc3QgSW50U2l6ZSYpOwogCisjaWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIEdyQ29udGV4dCog
Z2V0R3JDb250ZXh0KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBTaGFyZWRHcmFwaGljc0Nv
bnRleHQzRChQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiwgUGFzc093blB0cjxTb2xpZEZp
bGxTaGFkZXI+LCBQYXNzT3duUHRyPFRleFNoYWRlcj4sIFBhc3NPd25QdHI8QmljdWJpY1NoYWRl
cj4sIFBhc3NPd25BcnJheVB0cjxPd25QdHI8Q29udm9sdXRpb25TaGFkZXI+ID4pOwogCkBAIC0x
NjEsNiArMTY5LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX29lc1N0YW5kYXJkRGVyaXZhdGl2
ZXNTdXBwb3J0ZWQ7CiAKICAgICBXVEY6OlZlY3RvcjxSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gPiBt
X29mZnNjcmVlbkJ1ZmZlcnM7CisKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JDb250ZXh0
KiBtX2dyQ29udGV4dDsKKyNlbmRpZgogfTsKIAogY29uc3QgZmxvYXQgY01heFNpZ21hID0gNC4w
ZjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRT
a2lhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxh
dGZvcm1Db250ZXh0U2tpYS5jcHAJKHJldmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OCwxOCArNjgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoU0tJ
QV9HUFUpCi1HckNvbnRleHQqIEdldEdsb2JhbEdyQ29udGV4dCgpCi17Ci0gICAgc3RhdGljIEdy
Q29udGV4dCogZ0dSOwotICAgIGlmICghZ0dSKSB7Ci0gICAgICAgIGdHUiA9IEdyQ29udGV4dDo6
Q3JlYXRlR0xTaGFkZXJDb250ZXh0KCk7Ci0gICAgICAgIGdHUi0+c2V0VGV4dHVyZUNhY2hlTGlt
aXRzKDUxMiwgNTAgKiAxMDI0ICogMTAyNCk7Ci0gICAgfQotICAgIHJldHVybiBnR1I7Ci19Ci0j
ZW5kaWYKLQogZXh0ZXJuIGJvb2wgaXNQYXRoU2tpYVNhZmUoY29uc3QgU2tNYXRyaXgmIHRyYW5z
Zm9ybSwgY29uc3QgU2tQYXRoJiBwYXRoKTsKIAogLy8gU3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg
LTI0NSw3ICsyMzMsNyBAQCBQbGF0Zm9ybUNvbnRleHRTa2lhOjp+UGxhdGZvcm1Db250ZXh0U2tp
CiAjaWYgRU5BQkxFKFNLSUFfR1BVKQogICAgICAgICAvLyBtYWtlIHN1cmUgZXZlcnl0aGluZyBy
ZWxhdGVkIHRvIHRoaXMgcGxhdGZvcm0gY29udGV4dCBoYXMgYmVlbiBmbHVzaGVkCiAgICAgICAg
IGlmICghbV91c2VHUFUpCi0gICAgICAgICAgICBHZXRHbG9iYWxHckNvbnRleHQoKS0+Zmx1c2go
MCk7CisgICAgICAgICAgICBtX2dwdUNhbnZhcy0+Y29udGV4dCgpLT5nZXRHckNvbnRleHQoKS0+
Zmx1c2goMCk7CiAjZW5kaWYKICAgICAgICAgbV9ncHVDYW52YXMtPmRyYXdpbmdCdWZmZXIoKS0+
c2V0V2lsbFB1Ymxpc2hDYWxsYmFjaygwKTsKICAgICB9CkBAIC03NDYsOCArNzM0LDkgQEAgdm9p
ZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRTaGFyZWRHcmFwaAogICAgICAgICBjb250ZXh0LT5t
YWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICAgICAgbV9ncHVDYW52YXMtPmJpbmRGcmFtZWJ1ZmZl
cigpOwogCi0gICAgICAgIEdyQ29udGV4dCogZ3IgPSBHZXRHbG9iYWxHckNvbnRleHQoKTsKLSAg
ICAgICAgZ3ItPnJlc2V0Q29udGV4dCgpOworICAgICAgICBHckNvbnRleHQqIGdyID0gY29udGV4
dC0+Z2V0R3JDb250ZXh0KCk7CisgICAgICAgIGRyYXdpbmdCdWZmZXItPnNldEdyQ29udGV4dChn
cik7CisKICAgICAgICAgU2tEZXZpY2VGYWN0b3J5KiBmYWN0b3J5ID0gbmV3IFNrR3B1RGV2aWNl
RmFjdG9yeShnciwgU2tHcHVEZXZpY2U6OkN1cnJlbnQzREFwaVJlbmRlclRhcmdldCgpKTsKICAg
ICAgICAgU2tEZXZpY2UqIGRldmljZSA9IGZhY3RvcnktPm5ld0RldmljZShtX2NhbnZhcywgU2tC
aXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnLCBkcmF3aW5nQnVmZmVyLT5zaXplKCkud2lkdGgoKSwg
ZHJhd2luZ0J1ZmZlci0+c2l6ZSgpLmhlaWdodCgpLCBmYWxzZSwgZmFsc2UpOwogICAgICAgICBt
X2NhbnZhcy0+c2V0RGV2aWNlKGRldmljZSktPnVucmVmKCk7Cg==
</data>
<flag name="review"
          id="79161"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86815</attachid>
            <date>2011-03-24 13:00:42 -0700</date>
            <delta_ts>2011-03-24 13:48:33 -0700</delta_ts>
            <desc>Capitalize comments, use static consts, remove LF</desc>
            <filename>grcontext.diff</filename>
            <type>text/plain</type>
            <size>9079</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4MTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjQgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxp
ZmV0aW1lIG1hbmFnZW1lbnQgb2YgZ3JDb250ZXh0IGZyb20gYSBnbG9iYWwgdG8gYmVpbmcKKyAg
ICAgICAgcGVyLVNoYXJlZEdyYXBoaWNzQ29udGV4dDNELCB3aGljaCBjb3JyZWN0bHkgaXMgMTox
IHdpdGggdGhlCisgICAgICAgIHVuZGVybHlpbmcgb3BlbmdsIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDMzMAorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gRXhpc3RpbmcgPGNhbnZhcz4gdGVzdHMgZXhlcmNpc2UgdGhpczoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6On5TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0
R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6
flBsYXRmb3JtQ29udGV4dFNraWEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDExLTAzLTI0ICBCZW4gVGF5
bG9yICA8YmVudGF5bG9yLnNvbHg4NkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EcmF3aW5n
QnVmZmVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBACiAKICNp
ZiBFTkFCTEUoU0tJQV9HUFUpCiAjaW5jbHVkZSAiR3JDb250ZXh0LmgiCisjaW5jbHVkZSAiU2tS
ZWZDbnQuaCIKICNlbmRpZgogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAt
NDYsMTAgKzQ3LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgRU5BQkxFKFNLSUFf
R1BVKQotZXh0ZXJuIEdyQ29udGV4dCogR2V0R2xvYmFsR3JDb250ZXh0KCk7Ci0jZW5kaWYKLQog
c3RydWN0IERyYXdpbmdCdWZmZXJJbnRlcm5hbCB7CiAgICAgdW5zaWduZWQgb2Zmc2NyZWVuQ29s
b3JUZXh0dXJlOwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKQEAgLTkxLDYgKzg4
LDkgQEAgRHJhd2luZ0J1ZmZlcjo6RHJhd2luZ0J1ZmZlcihHcmFwaGljc0NvbgogICAgICwgbV9t
dWx0aXNhbXBsZUZCTygwKQogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCiAgICAg
LCBtX2ludGVybmFsKG5ldyBEcmF3aW5nQnVmZmVySW50ZXJuYWwpCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgICwgbV9nckNvbnRleHQoMCkKKyNlbmRpZgogewogICAgIGlmICghbV9jb250ZXh0
LT5nZXRFeHRlbnNpb25zKCktPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9jb3B5X3RleHR1cmVfdG9f
cGFyZW50X3RleHR1cmUiKSkgewogICAgICAgICBtX2NvbnRleHQuY2xlYXIoKTsKQEAgLTExMCw2
ICsxMTAsMTAgQEAgRHJhd2luZ0J1ZmZlcjo6fkRyYXdpbmdCdWZmZXIoKQogICAgICAgICBtX2lu
dGVybmFsLT5wbGF0Zm9ybUxheWVyLT5zZXREcmF3aW5nQnVmZmVyKDApOwogI2VuZGlmCiAKKyNp
ZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JTYWZlVW5yZWYobV9nckNvbnRleHQpOworI2VuZGlm
CisKICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTEz
Nyw3ICsxNDEsOCBAQCB2b2lkIERyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5CiAg
ICAgLy8gd291bGQgaW5zZXJ0IGEgZmVuY2UgaW50byB0aGUgY2hpbGQgY29tbWFuZCBzdHJlYW0g
dGhhdCB0aGUgY29tcG9zaXRvciBjb3VsZCB3YWl0IGZvci4KICAgICBtX2NvbnRleHQtPm1ha2VD
b250ZXh0Q3VycmVudCgpOwogI2lmIEVOQUJMRShTS0lBX0dQVSkKLSAgICBHZXRHbG9iYWxHckNv
bnRleHQoKS0+Zmx1c2goMCk7CisgICAgaWYgKG1fZ3JDb250ZXh0KQorICAgICAgICBtX2dyQ29u
dGV4dC0+Zmx1c2goMCk7CiAjZW5kaWYKICAgICBzdGF0aWNfY2FzdDxFeHRlbnNpb25zM0RDaHJv
bWl1bSo+KG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpKS0+Y29weVRleHR1cmVUb1BhcmVudFRl
eHR1cmVDSFJPTUlVTShtX2NvbG9yQnVmZmVyLCBwYXJlbnRUZXh0dXJlKTsKICAgICBtX2NvbnRl
eHQtPmZsdXNoKCk7CkBAIC0xNjYsNCArMTcxLDExIEBAIFBsYXRmb3JtM0RPYmplY3QgRHJhd2lu
Z0J1ZmZlcjo6cGxhdGZvcm0KICAgICByZXR1cm4gbV9jb2xvckJ1ZmZlcjsKIH0KIAorI2lmIEVO
QUJMRShTS0lBX0dQVSkKK3ZvaWQgRHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KEdyQ29udGV4
dCogY29udGV4dCkKK3sKKyAgICBTa1JlZkNudF9TYWZlQXNzaWduKG1fZ3JDb250ZXh0LCBjb250
ZXh0KTsKK30KKyNlbmRpZgorCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dw
dS9EcmF3aW5nQnVmZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9ncHUvRHJhd2luZ0J1ZmZlci5oCShyZXZpc2lvbiA4MTc2NikKKysrIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiAr
NDIsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShTS0lBX0dQVSkKK2NsYXNzIEdyQ29udGV4dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICNpZiBQTEFURk9STShDSFJPTUlVTSkKQEAgLTk1LDYgKzk5LDEwIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFdpbGxQdWJsaXNoQ2FsbGJhY2soUGFzc093blB0cjxXaWxsUHVibGlzaENh
bGxiYWNrPiBjYWxsYmFjaykgeyBtX2NhbGxiYWNrID0gY2FsbGJhY2s7IH0KICNlbmRpZgogCisj
aWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIHZvaWQgc2V0R3JDb250ZXh0KEdyQ29udGV4dCogY3R4
KTsKKyNlbmRpZgorCiAgICAgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gZ3JhcGhpY3ND
b250ZXh0M0QoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KIAogcHJpdmF0ZToKQEAgLTEz
MSw2ICsxMzksMTAgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRy
PFdlYkdMTGF5ZXI+IG1fcGxhdGZvcm1MYXllcjsKICNlbmRpZgorCisjaWYgRU5BQkxFKFNLSUFf
R1BVKQorICAgIEdyQ29udGV4dCogbV9nckNvbnRleHQ7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1NoYXJl
ZEdyYXBoaWNzQ29udGV4dDNELmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHAJKHJldmlzaW9uIDgxNzY2KQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxNCBAQAogI2luY2x1ZGUgIlNvbGlkRmls
bFNoYWRlci5oIgogI2luY2x1ZGUgIlRleFNoYWRlci5oIgogCisjaWYgRU5BQkxFKFNLSUFfR1BV
KQorI2luY2x1ZGUgIkdyQ29udGV4dC5oIgorLy8gTGltaXQgdGhlIG51bWJlciBvZiB0ZXh0dXJl
cyB3ZSBob2xkIGluIHRoZSBiaXRtYXAtPnRleHR1cmUgY2FjaGUKK3N0YXRpYyBjb25zdCBpbnQg
Y01heFRleHR1cmVDYWNoZUNvdW50ID0gNTEyOworLy8gTGltaXQgdGhlIGJ5dGVzIGFsbG9jYXRl
ZCB0b3dhcmQgdGV4dHVyZXMgaW4gdGhlIGJpdG1hcC0+dGV4dHVyZSBjYWNoZQorc3RhdGljIGNv
bnN0IHNpemVfdCBjTWF4VGV4dHVyZUNhY2hlQnl0ZXMgPSA1MCAqIDEwMjQgKiAxMDI0OworI2Vu
ZGlmCisKICNpbmNsdWRlIDx3dGYvT3duQXJyYXlQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC05MCw2ICs5OCw5
IEBAIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjpTaGFyZWRHcmFwaGljc0MKICAgICAsIG1fYmlj
dWJpY1NoYWRlcihiaWN1YmljU2hhZGVyKQogICAgICwgbV9jb252b2x1dGlvblNoYWRlcnMoY29u
dm9sdXRpb25TaGFkZXJzKQogICAgICwgbV9vZXNTdGFuZGFyZERlcml2YXRpdmVzU3VwcG9ydGVk
KGZhbHNlKQorI2lmIEVOQUJMRShTS0lBX0dQVSkKKyAgICAsIG1fZ3JDb250ZXh0KDApCisjZW5k
aWYKIHsKICAgICBhbGxDb250ZXh0cygpLT5hZGQodGhpcyk7CiAgICAgRXh0ZW5zaW9uczNEKiBl
eHRlbnNpb25zID0gbV9jb250ZXh0LT5nZXRFeHRlbnNpb25zKCk7CkBAIC0xMDcsNiArMTE4LDkg
QEAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6On5TaGFyZWRHcmFwaGljcwogewogICAgIG1fY29u
dGV4dC0+ZGVsZXRlQnVmZmVyKG1fcXVhZFZlcnRpY2VzKTsKICAgICBhbGxDb250ZXh0cygpLT5y
ZW1vdmUodGhpcyk7CisjaWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIEdyU2FmZVVucmVmKG1fZ3JD
b250ZXh0KTsKKyNlbmRpZgogfQogCiB2b2lkIFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjptYWtl
Q29udGV4dEN1cnJlbnQoKQpAQCAtNDUxLDYgKzQ2NSwxNyBAQCBEcmF3aW5nQnVmZmVyKiBTaGFy
ZWRHcmFwaGljc0NvbnRleHQzRDo6CiAgICAgcmV0dXJuIG1fb2Zmc2NyZWVuQnVmZmVyc1tpbmRl
eF0uZ2V0KCk7CiB9CiAKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCitHckNvbnRleHQqIFNoYXJlZEdy
YXBoaWNzQ29udGV4dDNEOjpnZXRHckNvbnRleHQoKQoreworICAgIGlmICghbV9nckNvbnRleHQp
IHsKKyAgICAgICAgbV9nckNvbnRleHQgPSBHckNvbnRleHQ6OkNyZWF0ZUdMU2hhZGVyQ29udGV4
dCgpOworICAgICAgICBtX2dyQ29udGV4dC0+c2V0VGV4dHVyZUNhY2hlTGltaXRzKGNNYXhUZXh0
dXJlQ2FjaGVDb3VudCwgY01heFRleHR1cmVDYWNoZUJ5dGVzKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fZ3JDb250ZXh0OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorI2lmIEVOQUJMRShTS0lBX0dQVSkKK2NsYXNzIEdyQ29udGV4
dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9y
bTsKQEAgLTEzNSw2ICsxMzksMTAgQEAgcHVibGljOgogICAgIHZvaWQgdXNlTG9vcEJsaW5uRXh0
ZXJpb3JQcm9ncmFtKHVuc2lnbmVkIHZlcnRleE9mZnNldCwgdW5zaWduZWQga2xtT2Zmc2V0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBDb2xvciYpOwogICAgIERyYXdpbmdCdWZmZXIq
IGdldE9mZnNjcmVlbkJ1ZmZlcih1bnNpZ25lZCBpbmRleCwgY29uc3QgSW50U2l6ZSYpOwogCisj
aWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIEdyQ29udGV4dCogZ2V0R3JDb250ZXh0KCk7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzRChQYXNzUmVmUHRyPEdy
YXBoaWNzQ29udGV4dDNEPiwgUGFzc093blB0cjxTb2xpZEZpbGxTaGFkZXI+LCBQYXNzT3duUHRy
PFRleFNoYWRlcj4sIFBhc3NPd25QdHI8QmljdWJpY1NoYWRlcj4sIFBhc3NPd25BcnJheVB0cjxP
d25QdHI8Q29udm9sdXRpb25TaGFkZXI+ID4pOwogCkBAIC0xNjEsNiArMTY5LDEwIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXNTdXBwb3J0ZWQ7CiAKICAgICBX
VEY6OlZlY3RvcjxSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gPiBtX29mZnNjcmVlbkJ1ZmZlcnM7CisK
KyNpZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JDb250ZXh0KiBtX2dyQ29udGV4dDsKKyNlbmRp
ZgogfTsKIAogY29uc3QgZmxvYXQgY01heFNpZ21hID0gNC4wZjsKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJ
KHJldmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCwxOCArNjgsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoU0tJQV9HUFUpCi1HckNvbnRleHQqIEdl
dEdsb2JhbEdyQ29udGV4dCgpCi17Ci0gICAgc3RhdGljIEdyQ29udGV4dCogZ0dSOwotICAgIGlm
ICghZ0dSKSB7Ci0gICAgICAgIGdHUiA9IEdyQ29udGV4dDo6Q3JlYXRlR0xTaGFkZXJDb250ZXh0
KCk7Ci0gICAgICAgIGdHUi0+c2V0VGV4dHVyZUNhY2hlTGltaXRzKDUxMiwgNTAgKiAxMDI0ICog
MTAyNCk7Ci0gICAgfQotICAgIHJldHVybiBnR1I7Ci19Ci0jZW5kaWYKLQogZXh0ZXJuIGJvb2wg
aXNQYXRoU2tpYVNhZmUoY29uc3QgU2tNYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgU2tQYXRoJiBw
YXRoKTsKIAogLy8gU3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NSw3ICsyMzMsNyBAQCBQbGF0
Zm9ybUNvbnRleHRTa2lhOjp+UGxhdGZvcm1Db250ZXh0U2tpCiAjaWYgRU5BQkxFKFNLSUFfR1BV
KQogICAgICAgICAvLyBtYWtlIHN1cmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIHRoaXMgcGxhdGZv
cm0gY29udGV4dCBoYXMgYmVlbiBmbHVzaGVkCiAgICAgICAgIGlmICghbV91c2VHUFUpCi0gICAg
ICAgICAgICBHZXRHbG9iYWxHckNvbnRleHQoKS0+Zmx1c2goMCk7CisgICAgICAgICAgICBtX2dw
dUNhbnZhcy0+Y29udGV4dCgpLT5nZXRHckNvbnRleHQoKS0+Zmx1c2goMCk7CiAjZW5kaWYKICAg
ICAgICAgbV9ncHVDYW52YXMtPmRyYXdpbmdCdWZmZXIoKS0+c2V0V2lsbFB1Ymxpc2hDYWxsYmFj
aygwKTsKICAgICB9CkBAIC03NDYsOCArNzM0LDkgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lh
OjpzZXRTaGFyZWRHcmFwaAogICAgICAgICBjb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKTsK
ICAgICAgICAgbV9ncHVDYW52YXMtPmJpbmRGcmFtZWJ1ZmZlcigpOwogCi0gICAgICAgIEdyQ29u
dGV4dCogZ3IgPSBHZXRHbG9iYWxHckNvbnRleHQoKTsKLSAgICAgICAgZ3ItPnJlc2V0Q29udGV4
dCgpOworICAgICAgICBHckNvbnRleHQqIGdyID0gY29udGV4dC0+Z2V0R3JDb250ZXh0KCk7Cisg
ICAgICAgIGRyYXdpbmdCdWZmZXItPnNldEdyQ29udGV4dChncik7CisKICAgICAgICAgU2tEZXZp
Y2VGYWN0b3J5KiBmYWN0b3J5ID0gbmV3IFNrR3B1RGV2aWNlRmFjdG9yeShnciwgU2tHcHVEZXZp
Y2U6OkN1cnJlbnQzREFwaVJlbmRlclRhcmdldCgpKTsKICAgICAgICAgU2tEZXZpY2UqIGRldmlj
ZSA9IGZhY3RvcnktPm5ld0RldmljZShtX2NhbnZhcywgU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29u
ZmlnLCBkcmF3aW5nQnVmZmVyLT5zaXplKCkud2lkdGgoKSwgZHJhd2luZ0J1ZmZlci0+c2l6ZSgp
LmhlaWdodCgpLCBmYWxzZSwgZmFsc2UpOwogICAgICAgICBtX2NhbnZhcy0+c2V0RGV2aWNlKGRl
dmljZSktPnVucmVmKCk7Cg==
</data>
<flag name="review"
          id="79166"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86824</attachid>
            <date>2011-03-24 13:48:33 -0700</date>
            <delta_ts>2011-03-24 16:12:38 -0700</delta_ts>
            <desc>rename getter (remove get...), take unreferenced ptr in DrawingBuffer, add resetContext(), remove cPrefix to static consts.</desc>
            <filename>grcontext.diff</filename>
            <type>text/plain</type>
            <size>8843</size>
            <attacher name="Mike Reed">reed</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA4MTg2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjQgIE1pa2UgUmVlZCAgPHJlZWRAZ29vZ2xlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxp
ZmV0aW1lIG1hbmFnZW1lbnQgb2YgZ3JDb250ZXh0IGZyb20gYSBnbG9iYWwgdG8gYmVpbmcKKyAg
ICAgICAgcGVyLVNoYXJlZEdyYXBoaWNzQ29udGV4dDNELCB3aGljaCBjb3JyZWN0bHkgaXMgMTox
IHdpdGggdGhlCisgICAgICAgIHVuZGVybHlpbmcgb3BlbmdsIGNvbnRleHQuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDMzMAorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gRXhpc3RpbmcgPGNhbnZhcz4gdGVzdHMgZXhlcmNpc2UgdGhpczoKKworICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6On5EcmF3aW5nQnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OnB1Ymxpc2hUb1BsYXRmb3JtTGF5ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhd2luZ0J1ZmZlcjo6c2V0R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRleHQzRC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6On5TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6Z2V0
R3JDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhp
Y3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6
flBsYXRmb3JtQ29udGV4dFNraWEpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QpOgorCiAyMDExLTAzLTI0ICBCZW4gVGF5
bG9yICA8YmVudGF5bG9yLnNvbHg4NkBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAJKHJldmlz
aW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EcmF3aW5n
QnVmZmVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoU0tJQV9HUFUpCi1leHRlcm4gR3JDb250
ZXh0KiBHZXRHbG9iYWxHckNvbnRleHQoKTsKLSNlbmRpZgotCiBzdHJ1Y3QgRHJhd2luZ0J1ZmZl
ckludGVybmFsIHsKICAgICB1bnNpZ25lZCBvZmZzY3JlZW5Db2xvclRleHR1cmU7CiAjaWYgVVNF
KEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQpAQCAtOTEsNiArODcsOSBAQCBEcmF3aW5nQnVmZmVy
OjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29uCiAgICAgLCBtX211bHRpc2FtcGxlRkJPKDApCiAg
ICAgLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIoMCkKICAgICAsIG1faW50ZXJuYWwobmV3IERy
YXdpbmdCdWZmZXJJbnRlcm5hbCkKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgLCBtX2dyQ29u
dGV4dCgwKQorI2VuZGlmCiB7CiAgICAgaWYgKCFtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKS0+
c3VwcG9ydHMoIkdMX0NIUk9NSVVNX2NvcHlfdGV4dHVyZV90b19wYXJlbnRfdGV4dHVyZSIpKSB7
CiAgICAgICAgIG1fY29udGV4dC5jbGVhcigpOwpAQCAtMTM3LDcgKzEzNiw4IEBAIHZvaWQgRHJh
d2luZ0J1ZmZlcjo6cHVibGlzaFRvUGxhdGZvcm1MYXkKICAgICAvLyB3b3VsZCBpbnNlcnQgYSBm
ZW5jZSBpbnRvIHRoZSBjaGlsZCBjb21tYW5kIHN0cmVhbSB0aGF0IHRoZSBjb21wb3NpdG9yIGNv
dWxkIHdhaXQgZm9yLgogICAgIG1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAjaWYg
RU5BQkxFKFNLSUFfR1BVKQotICAgIEdldEdsb2JhbEdyQ29udGV4dCgpLT5mbHVzaCgwKTsKKyAg
ICBpZiAobV9nckNvbnRleHQpCisgICAgICAgIG1fZ3JDb250ZXh0LT5mbHVzaCgwKTsKICNlbmRp
ZgogICAgIHN0YXRpY19jYXN0PEV4dGVuc2lvbnMzRENocm9taXVtKj4obV9jb250ZXh0LT5nZXRF
eHRlbnNpb25zKCkpLT5jb3B5VGV4dHVyZVRvUGFyZW50VGV4dHVyZUNIUk9NSVVNKG1fY29sb3JC
dWZmZXIsIHBhcmVudFRleHR1cmUpOwogICAgIG1fY29udGV4dC0+Zmx1c2goKTsKQEAgLTE2Niw0
ICsxNjYsMTMgQEAgUGxhdGZvcm0zRE9iamVjdCBEcmF3aW5nQnVmZmVyOjpwbGF0Zm9ybQogICAg
IHJldHVybiBtX2NvbG9yQnVmZmVyOwogfQogCisjaWYgRU5BQkxFKFNLSUFfR1BVKQordm9pZCBE
cmF3aW5nQnVmZmVyOjpzZXRHckNvbnRleHQoR3JDb250ZXh0KiBjb250ZXh0KQoreworICAgIC8v
IFdlIGp1c3QgdGFrZSBhIHB0ciB3aXRob3V0IHJlZmVyZW5jaW5nIGl0LCBhcyB3ZSByZXF1aXJl
IHRoYXQgd2UgbmV2ZXIgb3V0bGl2ZQorICAgIC8vIHRoZSBTaGFyZWRHcmFwaGljc0NvbnRleHQz
RCBvYmplY3QgdGhhdCBpcyBnaXZpbmcgdXMgdGhlIGNvbnRleHQuCisgICAgbV9nckNvbnRleHQg
PSBjb250ZXh0OworfQorI2VuZGlmCisKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3B1L0RyYXdpbmdCdWZmZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmgJKHJldmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNlbmRpZgogCisjaWYg
RU5BQkxFKFNLSUFfR1BVKQorY2xhc3MgR3JDb250ZXh0OworI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogI2lmIFBMQVRGT1JNKENIUk9NSVVNKQpAQCAtOTUsNiArOTksMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0V2lsbFB1Ymxpc2hDYWxsYmFjayhQYXNzT3duUHRyPFdpbGxQdWJs
aXNoQ2FsbGJhY2s+IGNhbGxiYWNrKSB7IG1fY2FsbGJhY2sgPSBjYWxsYmFjazsgfQogI2VuZGlm
CiAKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgdm9pZCBzZXRHckNvbnRleHQoR3JDb250ZXh0
KiBjdHgpOworI2VuZGlmCisKICAgICBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBncmFw
aGljc0NvbnRleHQzRCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dDsgfQogCiBwcml2YXRlOgpA
QCAtMTMxLDYgKzEzOSwxMCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBSZXRh
aW5QdHI8V2ViR0xMYXllcj4gbV9wbGF0Zm9ybUxheWVyOwogI2VuZGlmCisKKyNpZiBFTkFCTEUo
U0tJQV9HUFUpCisgICAgR3JDb250ZXh0KiBtX2dyQ29udGV4dDsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ncHUv
U2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3B1L1NoYXJlZEdyYXBoaWNzQ29udGV4dDNELmNwcAkocmV2aXNpb24gODE3
NjYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0NvbnRl
eHQzRC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDE0IEBACiAjaW5jbHVkZSAiU29s
aWRGaWxsU2hhZGVyLmgiCiAjaW5jbHVkZSAiVGV4U2hhZGVyLmgiCiAKKyNpZiBFTkFCTEUoU0tJ
QV9HUFUpCisjaW5jbHVkZSAiR3JDb250ZXh0LmgiCisvLyBMaW1pdCB0aGUgbnVtYmVyIG9mIHRl
eHR1cmVzIHdlIGhvbGQgaW4gdGhlIGJpdG1hcC0+dGV4dHVyZSBjYWNoZS4KK3N0YXRpYyBjb25z
dCBpbnQgbWF4VGV4dHVyZUNhY2hlQ291bnQgPSA1MTI7CisvLyBMaW1pdCB0aGUgYnl0ZXMgYWxs
b2NhdGVkIHRvd2FyZCB0ZXh0dXJlcyBpbiB0aGUgYml0bWFwLT50ZXh0dXJlIGNhY2hlLgorc3Rh
dGljIGNvbnN0IHNpemVfdCBtYXhUZXh0dXJlQ2FjaGVCeXRlcyA9IDUwICogMTAyNCAqIDEwMjQ7
CisjZW5kaWYKKwogI2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTkwLDYg
Kzk4LDkgQEAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6OlNoYXJlZEdyYXBoaWNzQwogICAgICwg
bV9iaWN1YmljU2hhZGVyKGJpY3ViaWNTaGFkZXIpCiAgICAgLCBtX2NvbnZvbHV0aW9uU2hhZGVy
cyhjb252b2x1dGlvblNoYWRlcnMpCiAgICAgLCBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXNTdXBw
b3J0ZWQoZmFsc2UpCisjaWYgRU5BQkxFKFNLSUFfR1BVKQorICAgICwgbV9nckNvbnRleHQoMCkK
KyNlbmRpZgogewogICAgIGFsbENvbnRleHRzKCktPmFkZCh0aGlzKTsKICAgICBFeHRlbnNpb25z
M0QqIGV4dGVuc2lvbnMgPSBtX2NvbnRleHQtPmdldEV4dGVuc2lvbnMoKTsKQEAgLTEwNyw2ICsx
MTgsOSBAQCBTaGFyZWRHcmFwaGljc0NvbnRleHQzRDo6flNoYXJlZEdyYXBoaWNzCiB7CiAgICAg
bV9jb250ZXh0LT5kZWxldGVCdWZmZXIobV9xdWFkVmVydGljZXMpOwogICAgIGFsbENvbnRleHRz
KCktPnJlbW92ZSh0aGlzKTsKKyNpZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JTYWZlVW5yZWYo
bV9nckNvbnRleHQpOworI2VuZGlmCiB9CiAKIHZvaWQgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Q6
Om1ha2VDb250ZXh0Q3VycmVudCgpCkBAIC00NTEsNiArNDY1LDE3IEBAIERyYXdpbmdCdWZmZXIq
IFNoYXJlZEdyYXBoaWNzQ29udGV4dDNEOjoKICAgICByZXR1cm4gbV9vZmZzY3JlZW5CdWZmZXJz
W2luZGV4XS5nZXQoKTsKIH0KIAorI2lmIEVOQUJMRShTS0lBX0dQVSkKK0dyQ29udGV4dCogU2hh
cmVkR3JhcGhpY3NDb250ZXh0M0Q6OmdyQ29udGV4dCgpCit7CisgICAgaWYgKCFtX2dyQ29udGV4
dCkgeworICAgICAgICBtX2dyQ29udGV4dCA9IEdyQ29udGV4dDo6Q3JlYXRlR0xTaGFkZXJDb250
ZXh0KCk7CisgICAgICAgIG1fZ3JDb250ZXh0LT5zZXRUZXh0dXJlQ2FjaGVMaW1pdHMobWF4VGV4
dHVyZUNhY2hlQ291bnQsIG1heFRleHR1cmVDYWNoZUJ5dGVzKTsKKyAgICB9CisgICAgcmV0dXJu
IG1fZ3JDb250ZXh0OworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dwdS9TaGFyZWRHcmFwaGljc0Nv
bnRleHQzRC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3B1L1No
YXJlZEdyYXBoaWNzQ29udGV4dDNELmgJKHJldmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ncHUvU2hhcmVkR3JhcGhpY3NDb250ZXh0M0QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsMTAgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KIAorI2lmIEVOQUJMRShTS0lBX0dQVSkKK2NsYXNzIEdyQ29udGV4
dDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFmZmluZVRyYW5zZm9y
bTsKQEAgLTEzNSw2ICsxMzksMTAgQEAgcHVibGljOgogICAgIHZvaWQgdXNlTG9vcEJsaW5uRXh0
ZXJpb3JQcm9ncmFtKHVuc2lnbmVkIHZlcnRleE9mZnNldCwgdW5zaWduZWQga2xtT2Zmc2V0LCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBDb2xvciYpOwogICAgIERyYXdpbmdCdWZmZXIq
IGdldE9mZnNjcmVlbkJ1ZmZlcih1bnNpZ25lZCBpbmRleCwgY29uc3QgSW50U2l6ZSYpOwogCisj
aWYgRU5BQkxFKFNLSUFfR1BVKQorICAgIEdyQ29udGV4dCogZ3JDb250ZXh0KCk7CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICBTaGFyZWRHcmFwaGljc0NvbnRleHQzRChQYXNzUmVmUHRyPEdyYXBo
aWNzQ29udGV4dDNEPiwgUGFzc093blB0cjxTb2xpZEZpbGxTaGFkZXI+LCBQYXNzT3duUHRyPFRl
eFNoYWRlcj4sIFBhc3NPd25QdHI8QmljdWJpY1NoYWRlcj4sIFBhc3NPd25BcnJheVB0cjxPd25Q
dHI8Q29udm9sdXRpb25TaGFkZXI+ID4pOwogCkBAIC0xNjEsNiArMTY5LDEwIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXNTdXBwb3J0ZWQ7CiAKICAgICBXVEY6
OlZlY3RvcjxSZWZQdHI8RHJhd2luZ0J1ZmZlcj4gPiBtX29mZnNjcmVlbkJ1ZmZlcnM7CisKKyNp
ZiBFTkFCTEUoU0tJQV9HUFUpCisgICAgR3JDb250ZXh0KiBtX2dyQ29udGV4dDsKKyNlbmRpZgog
fTsKIAogY29uc3QgZmxvYXQgY01heFNpZ21hID0gNC4wZjsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAJKHJl
dmlzaW9uIDgxNzY2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OCwxOCArNjgsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLSNpZiBFTkFCTEUoU0tJQV9HUFUpCi1HckNvbnRleHQqIEdldEds
b2JhbEdyQ29udGV4dCgpCi17Ci0gICAgc3RhdGljIEdyQ29udGV4dCogZ0dSOwotICAgIGlmICgh
Z0dSKSB7Ci0gICAgICAgIGdHUiA9IEdyQ29udGV4dDo6Q3JlYXRlR0xTaGFkZXJDb250ZXh0KCk7
Ci0gICAgICAgIGdHUi0+c2V0VGV4dHVyZUNhY2hlTGltaXRzKDUxMiwgNTAgKiAxMDI0ICogMTAy
NCk7Ci0gICAgfQotICAgIHJldHVybiBnR1I7Ci19Ci0jZW5kaWYKLQogZXh0ZXJuIGJvb2wgaXNQ
YXRoU2tpYVNhZmUoY29uc3QgU2tNYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgU2tQYXRoJiBwYXRo
KTsKIAogLy8gU3RhdGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTI0NSw3ICsyMzMsNyBAQCBQbGF0Zm9y
bUNvbnRleHRTa2lhOjp+UGxhdGZvcm1Db250ZXh0U2tpCiAjaWYgRU5BQkxFKFNLSUFfR1BVKQog
ICAgICAgICAvLyBtYWtlIHN1cmUgZXZlcnl0aGluZyByZWxhdGVkIHRvIHRoaXMgcGxhdGZvcm0g
Y29udGV4dCBoYXMgYmVlbiBmbHVzaGVkCiAgICAgICAgIGlmICghbV91c2VHUFUpCi0gICAgICAg
ICAgICBHZXRHbG9iYWxHckNvbnRleHQoKS0+Zmx1c2goMCk7CisgICAgICAgICAgICBtX2dwdUNh
bnZhcy0+Y29udGV4dCgpLT5nckNvbnRleHQoKS0+Zmx1c2goMCk7CiAjZW5kaWYKICAgICAgICAg
bV9ncHVDYW52YXMtPmRyYXdpbmdCdWZmZXIoKS0+c2V0V2lsbFB1Ymxpc2hDYWxsYmFjaygwKTsK
ICAgICB9CkBAIC03NDYsOCArNzM0LDEwIEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0
U2hhcmVkR3JhcGgKICAgICAgICAgY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAg
ICAgIG1fZ3B1Q2FudmFzLT5iaW5kRnJhbWVidWZmZXIoKTsKIAotICAgICAgICBHckNvbnRleHQq
IGdyID0gR2V0R2xvYmFsR3JDb250ZXh0KCk7CisgICAgICAgIEdyQ29udGV4dCogZ3IgPSBjb250
ZXh0LT5nckNvbnRleHQoKTsKICAgICAgICAgZ3ItPnJlc2V0Q29udGV4dCgpOworICAgICAgICBk
cmF3aW5nQnVmZmVyLT5zZXRHckNvbnRleHQoZ3IpOworCiAgICAgICAgIFNrRGV2aWNlRmFjdG9y
eSogZmFjdG9yeSA9IG5ldyBTa0dwdURldmljZUZhY3RvcnkoZ3IsIFNrR3B1RGV2aWNlOjpDdXJy
ZW50M0RBcGlSZW5kZXJUYXJnZXQoKSk7CiAgICAgICAgIFNrRGV2aWNlKiBkZXZpY2UgPSBmYWN0
b3J5LT5uZXdEZXZpY2UobV9jYW52YXMsIFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgZHJh
d2luZ0J1ZmZlci0+c2l6ZSgpLndpZHRoKCksIGRyYXdpbmdCdWZmZXItPnNpemUoKS5oZWlnaHQo
KSwgZmFsc2UsIGZhbHNlKTsKICAgICAgICAgbV9jYW52YXMtPnNldERldmljZShkZXZpY2UpLT51
bnJlZigpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>