<?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>21883</bug_id>
          
          <creation_ts>2008-10-25 01:04:27 -0700</creation_ts>
          <short_desc>[CAIRO] globalAlpha has to be stored and restored</short_desc>
          <delta_ts>2008-10-30 07:19:07 -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>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://developer.mozilla.org/samples/canvas-tutorial/5_1_canvas_savestate.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Cairo</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alp</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>96657</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-25 01:04:27 -0700</bug_when>
    <thetext>globalAlpha has to be stored and restored after calling save() or restore().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96658</commentid>
    <comment_count>1</comment_count>
      <attachid>24673</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-25 01:06:19 -0700</bug_when>
    <thetext>Created attachment 24673
save/restore globalAlpha

I added a stack (vector) to GraphicsContext to save and restore globalAlpha values on calling ctx.save() or ctx.restore().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96839</commentid>
    <comment_count>2</comment_count>
      <attachid>24706</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-27 23:39:01 -0700</bug_when>
    <thetext>Created attachment 24706
save/restore globalAlpha

there was a little bug in GraphicsContext::setAlpha()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96853</commentid>
    <comment_count>3</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-10-28 07:17:26 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Created an attachment (id=24706) [edit]
&gt; save/restore globalAlpha
&gt; 
&gt; there was a little bug in GraphicsContext::setAlpha()
&gt; 

GraphicsContext already keeps a stack with internal state (see GraphicsContext.cpp GraphicsContext::save() and GraphicsContextPrivate.h). I was thinking it might be better to add an &apos;alpha&apos; field to that and let GraphicsContext do the work for us so we don&apos;t need to maintain our own stack of alpha values for GraphicsContextCairo. Could you take a look into that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96870</commentid>
    <comment_count>4</comment_count>
      <attachid>24717</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2008-10-28 09:14:45 -0700</bug_when>
    <thetext>Created attachment 24717
save/restore globalAlpha

(In reply to comment #3)
&gt; GraphicsContext already keeps a stack with internal state (see
&gt; GraphicsContext.cpp GraphicsContext::save() and GraphicsContextPrivate.h). I
&gt; was thinking it might be better to add an &apos;alpha&apos; field to that and let
&gt; GraphicsContext do the work for us so we don&apos;t need to maintain our own stack
&gt; of alpha values for GraphicsContextCairo. Could you take a look into that?

I spoke to esedeidel via IRC as I implemented the current version of globalAlpha. And he didn&apos;t like the idea to change GraphicsContextPrivate.h. A globalAlpha variable is only needed on cairo and would waste space for other platforms.
Or we use #if PLATFORM(CAIRO).

This second patch uses the alternative. Only One patch should be reviewed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>96948</commentid>
    <comment_count>5</comment_count>
      <attachid>24717</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-10-28 18:56:49 -0700</bug_when>
    <thetext>Comment on attachment 24717
save/restore globalAlpha

This version of the patch looks pretty good. It makes sense to use the WebCore graphics state stack here rather than maintaining separate stacks that have to be maintained manually. Some comments..


&gt;Index: WebCore/platform/graphics/GraphicsContextPrivate.h
&gt;===================================================================
&gt;--- WebCore/platform/graphics/GraphicsContextPrivate.h	(revision 37888)
&gt;+++ WebCore/platform/graphics/GraphicsContextPrivate.h	(working copy)
&gt;@@ -50,6 +50,9 @@ namespace WebCore {
&gt;             : textDrawingMode(cTextFill)
&gt;             , strokeStyle(SolidStroke)
&gt;             , strokeThickness(0)

This would usually be &apos;1.0f&apos;:

&gt;+#if PLATFORM(CAIRO)
&gt;+            , globalAlpha(1)
&gt;+#endif


I think we&apos;ll still need to go through this code some time later and make sure we&apos;re using globalAlpha consistently everywhere it&apos;s needed, and to avoid creating temporary surfaces (which can be inefficient) where globalAlpha can just be multiplied with the pen color&apos;s alpha, but that doesn&apos;t really block this getting landed.

Going to wait for the build to get fixed before r+&apos;ing and to give anyone else who&apos;s interested a chance to comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97114</commentid>
    <comment_count>6</comment_count>
      <attachid>24706</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-10-30 07:14:49 -0700</bug_when>
    <thetext>Comment on attachment 24706
save/restore globalAlpha

r-. Other patch you proposed is the way to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97115</commentid>
    <comment_count>7</comment_count>
      <attachid>24717</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-10-30 07:15:43 -0700</bug_when>
    <thetext>Comment on attachment 24717
save/restore globalAlpha

r=me

Will change the &apos;0&apos; to &apos;1.0f&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97116</commentid>
    <comment_count>8</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-10-30 07:19:07 -0700</bug_when>
    <thetext>Landed in r38001.

Dirk: I did notice a performance issue we might want to look at.

   case SolidColorSpace:
        if (strokeColor().alpha()) {
            setColor(cr, strokeColor());
            if (m_common-&gt;state.globalAlpha &lt; 1.0f) {
                cairo_push_group(cr);
                cairo_paint_with_alpha(cr, m_common-&gt;state.globalAlpha);
                cairo_pop_group_to_source(cr);
            }
            cairo_stroke(cr);
        }
        break;

^ Temporary groups are pretty expensive in Cairo IIRC, especially if they&apos;re not clipped. It would be better to just change setColor(cr, strokeColor()) to set the cairo color to the right alpha value and stroke etc. directly. Anyway, that&apos;s a different issue for a different bug, just thought I&apos;d let you know.

Cheers</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24673</attachid>
            <date>2008-10-25 01:06:19 -0700</date>
            <delta_ts>2008-10-28 09:14:45 -0700</delta_ts>
            <desc>save/restore globalAlpha</desc>
            <filename>globalAlpha.patch</filename>
            <type>text/plain</type>
            <size>5416</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzg4NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMjUgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWlybydz
IGdsb2JhbEFscGhhIGhhcyB0byBiZSBzdG9yZWQgYW5kIHJlbG9hZGVkIG9uIGNhbGxpbmcKKyAg
ICAgICAgc2F2ZSgpIGFuZCByZXN0b3JlKCkuIFNvIHdlIG5lZWQgYSBzdGFjayBmb3IgZ2xvYmFs
QWxwaGEuCisKKyAgICAgICAgKiBDaGFuZ2VMb2c6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0
QWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRBbHBoYSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToKKwogMjAwOC0xMC0yNCAg
U2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCB3aW5kb3dzIGJ1aWxk
LgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHJldmlzaW9uIDM3ODc5KQorKysgV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEyOCwxMiArMTI4LDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzYXZlUGxhdGZv
cm1TdGF0ZSgKIHsKICAgICBjYWlyb19zYXZlKG1fZGF0YS0+Y3IpOwogICAgIG1fZGF0YS0+c2F2
ZSgpOworICAgIG1fZGF0YS0+Z2xvYmFsQWxwaGEuYXBwZW5kKG1fZGF0YS0+Z2xvYmFsQWxwaGEu
bGFzdCgpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRl
KCkKIHsKICAgICBjYWlyb19yZXN0b3JlKG1fZGF0YS0+Y3IpOwogICAgIG1fZGF0YS0+cmVzdG9y
ZSgpOworICAgIG1fZGF0YS0+Z2xvYmFsQWxwaGEucmVtb3ZlTGFzdCgpOwogfQogCiAvLyBEcmF3
cyBhIGZpbGxlZCByZWN0YW5nbGUgd2l0aCBhIHN0cm9rZWQgYm9yZGVyLgpAQCAtNDQ3LDIwICs0
NDksMjAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKCkKICAgICAgICAgaWYgKGZp
bGxDb2xvcigpLmFscGhhKCkpIHsKICAgICAgICAgICAgIHNldENvbG9yKGNyLCBmaWxsQ29sb3Io
KSk7CiAgICAgICAgICAgICBjYWlyb19jbGlwKGNyKTsKLSAgICAgICAgICAgIGNhaXJvX3BhaW50
X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOworICAgICAgICAgICAgY2Fpcm9f
cGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBoYS5sYXN0KCkpOwogICAgICAg
ICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0dGVybkNvbG9yU3BhY2U6CiAgICAgICAg
IGNhaXJvX3NldF9zb3VyY2UoY3IsIG1fY29tbW9uLT5zdGF0ZS5maWxsUGF0dGVybi5nZXQoKS0+
Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGdldENUTSgpKSk7CiAgICAgICAgIGNhaXJvX2NsaXAoY3Ip
OwotICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhh
KTsKKyAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBo
YS5sYXN0KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEdyYWRpZW50Q29sb3JTcGFjZToK
ICAgICAgICAgY2Fpcm9fcGF0dGVybl90KiBwYXR0ZXJuID0gbV9jb21tb24tPnN0YXRlLmZpbGxH
cmFkaWVudC5nZXQoKS0+cGxhdGZvcm1HcmFkaWVudCgpOwogICAgICAgICBwYXR0ZXJuID0gYXBw
bHlTcHJlYWRNZXRob2QocGF0dGVybiwgc3ByZWFkTWV0aG9kKCkpOwogICAgICAgICBjYWlyb19z
ZXRfc291cmNlKGNyLCBwYXR0ZXJuKTsKICAgICAgICAgY2Fpcm9fY2xpcChjcik7Ci0gICAgICAg
IGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOworICAgICAg
ICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhLmxhc3QoKSk7
CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYWlyb19yZXN0b3JlKGNyKTsKQEAgLTQ3Nyw5
ICs0NzksOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgY2FzZSBT
b2xpZENvbG9yU3BhY2U6CiAgICAgICAgIGlmIChzdHJva2VDb2xvcigpLmFscGhhKCkpIHsKICAg
ICAgICAgICAgIHNldENvbG9yKGNyLCBzdHJva2VDb2xvcigpKTsKLSAgICAgICAgICAgIGlmICht
X2RhdGEtPmdsb2JhbEFscGhhIDwgMS4wZikgeworICAgICAgICAgICAgaWYgKG1fZGF0YS0+Z2xv
YmFsQWxwaGEubGFzdCgpIDwgMS4wZikgewogICAgICAgICAgICAgICAgIGNhaXJvX3B1c2hfZ3Jv
dXAoY3IpOwotICAgICAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0
YS0+Z2xvYmFsQWxwaGEpOworICAgICAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEo
Y3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEubGFzdCgpKTsKICAgICAgICAgICAgICAgICBjYWlyb19w
b3BfZ3JvdXBfdG9fc291cmNlKGNyKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNhaXJv
X3N0cm9rZShjcik7CkBAIC00ODcsOSArNDg5LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVBhdGgoKQogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdHRlcm5Db2xvclNwYWNlOgog
ICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlUGF0dGVy
bi5nZXQoKS0+Y3JlYXRlUGxhdGZvcm1QYXR0ZXJuKGdldENUTSgpKSk7Ci0gICAgICAgIGlmICht
X2RhdGEtPmdsb2JhbEFscGhhIDwgMS4wZikgeworICAgICAgICBpZiAobV9kYXRhLT5nbG9iYWxB
bHBoYS5sYXN0KCkgPCAxLjBmKSB7CiAgICAgICAgICAgICBjYWlyb19wdXNoX2dyb3VwKGNyKTsK
LSAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxw
aGEpOworICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9i
YWxBbHBoYS5sYXN0KCkpOwogICAgICAgICAgICAgY2Fpcm9fcG9wX2dyb3VwX3RvX3NvdXJjZShj
cik7CiAgICAgICAgIH0KICAgICAgICAgY2Fpcm9fc3Ryb2tlKGNyKTsKQEAgLTQ5OCw5ICs1MDAs
OSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgICAgIGNhaXJvX3Bh
dHRlcm5fdCogcGF0dGVybiA9IG1fY29tbW9uLT5zdGF0ZS5zdHJva2VHcmFkaWVudC5nZXQoKS0+
cGxhdGZvcm1HcmFkaWVudCgpOwogICAgICAgICBwYXR0ZXJuID0gYXBwbHlTcHJlYWRNZXRob2Qo
cGF0dGVybiwgc3ByZWFkTWV0aG9kKCkpOwogICAgICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBw
YXR0ZXJuKTsKLSAgICAgICAgaWYgKG1fZGF0YS0+Z2xvYmFsQWxwaGEgPCAxLjBmKSB7CisgICAg
ICAgIGlmIChtX2RhdGEtPmdsb2JhbEFscGhhLmxhc3QoKSA8IDEuMGYpIHsKICAgICAgICAgICAg
IGNhaXJvX3B1c2hfZ3JvdXAoY3IpOwotICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBo
YShjciwgbV9kYXRhLT5nbG9iYWxBbHBoYSk7CisgICAgICAgICAgICBjYWlyb19wYWludF93aXRo
X2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhLmxhc3QoKSk7CiAgICAgICAgICAgICBjYWly
b19wb3BfZ3JvdXBfdG9fc291cmNlKGNyKTsKICAgICAgICAgfQogICAgICAgICBjYWlyb19zdHJv
a2UoY3IpOwpAQCAtODg3LDEyICs4ODksMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldE1p
dGVyTGltaXQoZmxvYQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QWxwaGEoZmxvYXQgYWxw
aGEpCiB7Ci0gICAgbV9kYXRhLT5nbG9iYWxBbHBoYSA9IGFscGhhOworICAgIG1fZGF0YS0+Z2xv
YmFsQWxwaGEuYXBwZW5kKGFscGhhKTsKIH0KIAogZmxvYXQgR3JhcGhpY3NDb250ZXh0OjpnZXRB
bHBoYSgpCiB7Ci0gICAgcmV0dXJuIG1fZGF0YS0+Z2xvYmFsQWxwaGE7CisgICAgcmV0dXJuIG1f
ZGF0YS0+Z2xvYmFsQWxwaGEubGFzdCgpOwogfQogCiBzdGF0aWMgaW5saW5lIGNhaXJvX29wZXJh
dG9yX3QgdG9DYWlyb09wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9yIG9wKQpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVD
YWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
cGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAkocmV2aXNpb24gMzc4NzkpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZUNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDYgKzU0LDcgQEAgcHVibGljOgogICAg
ICAgICAsIG1fdHJhbnNwYXJlbmN5Q291bnQoMCkKICNlbmRpZgogICAgIHsKKyAgICAgICAgZ2xv
YmFsQWxwaGEuYXBwZW5kKDEuMGYpOwogICAgIH0KIAogICAgIH5HcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGUoKQpAQCAtODgsNyArODksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIGNh
aXJvX3QqIGNyOwotICAgIGZsb2F0IGdsb2JhbEFscGhhOworICAgIFZlY3RvcjxmbG9hdD4gZ2xv
YmFsQWxwaGE7CiAgICAgVmVjdG9yPGZsb2F0PiBsYXllcnM7CiAKICNpZiBQTEFURk9STShHVEsp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24706</attachid>
            <date>2008-10-27 23:39:01 -0700</date>
            <delta_ts>2008-10-30 07:14:49 -0700</delta_ts>
            <desc>save/restore globalAlpha</desc>
            <filename>globalAlpha.patch</filename>
            <type>text/plain</type>
            <size>5418</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMDgtMTAtMjcgIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWlybydz
IGdsb2JhbEFscGhhIGhhcyB0byBiZSBzdG9yZWQgYW5kIHJlbG9hZGVkIG9uIGNhbGxpbmcKKyAg
ICAgICAgc2F2ZSgpIGFuZCByZXN0b3JlKCkuIFNvIHdlIG5lZWQgYSBzdGFjayBmb3IgZ2xvYmFs
QWxwaGEuCisKKyAgICAgICAgKiBDaGFuZ2VMb2c6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0OjpzYXZlUGxhdGZvcm1TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnJlc3RvcmVQbGF0Zm9ybVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0
QWxwaGEpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRBbHBoYSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3Jt
UHJpdmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToKKwogMjAwOC0xMC0yNSAg
R2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBwbGUuY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdl
ZC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0
Q2Fpcm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
R3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCShyZXZpc2lvbiAzNzg4OCkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMjgsMTIgKzEyOCwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2F2ZVBsYXRm
b3JtU3RhdGUoCiB7CiAgICAgY2Fpcm9fc2F2ZShtX2RhdGEtPmNyKTsKICAgICBtX2RhdGEtPnNh
dmUoKTsKKyAgICBtX2RhdGEtPmdsb2JhbEFscGhhLmFwcGVuZChtX2RhdGEtPmdsb2JhbEFscGhh
Lmxhc3QoKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZXN0b3JlUGxhdGZvcm1TdGF0
ZSgpCiB7CiAgICAgY2Fpcm9fcmVzdG9yZShtX2RhdGEtPmNyKTsKICAgICBtX2RhdGEtPnJlc3Rv
cmUoKTsKKyAgICBtX2RhdGEtPmdsb2JhbEFscGhhLnJlbW92ZUxhc3QoKTsKIH0KIAogLy8gRHJh
d3MgYSBmaWxsZWQgcmVjdGFuZ2xlIHdpdGggYSBzdHJva2VkIGJvcmRlci4KQEAgLTQ0NywyMCAr
NDQ5LDIwIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCgpCiAgICAgICAgIGlmIChm
aWxsQ29sb3IoKS5hbHBoYSgpKSB7CiAgICAgICAgICAgICBzZXRDb2xvcihjciwgZmlsbENvbG9y
KCkpOwogICAgICAgICAgICAgY2Fpcm9fY2xpcChjcik7Ci0gICAgICAgICAgICBjYWlyb19wYWlu
dF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAgIGNhaXJv
X3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEubGFzdCgpKTsKICAgICAg
ICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdHRlcm5Db2xvclNwYWNlOgogICAgICAg
ICBjYWlyb19zZXRfc291cmNlKGNyLCBtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4uZ2V0KCkt
PmNyZWF0ZVBsYXRmb3JtUGF0dGVybihnZXRDVE0oKSkpOwogICAgICAgICBjYWlyb19jbGlwKGNy
KTsKLSAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBo
YSk7CisgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxw
aGEubGFzdCgpKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHcmFkaWVudENvbG9yU3BhY2U6
CiAgICAgICAgIGNhaXJvX3BhdHRlcm5fdCogcGF0dGVybiA9IG1fY29tbW9uLT5zdGF0ZS5maWxs
R3JhZGllbnQuZ2V0KCktPnBsYXRmb3JtR3JhZGllbnQoKTsKICAgICAgICAgcGF0dGVybiA9IGFw
cGx5U3ByZWFkTWV0aG9kKHBhdHRlcm4sIHNwcmVhZE1ldGhvZCgpKTsKICAgICAgICAgY2Fpcm9f
c2V0X3NvdXJjZShjciwgcGF0dGVybik7CiAgICAgICAgIGNhaXJvX2NsaXAoY3IpOwotICAgICAg
ICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhKTsKKyAgICAg
ICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBoYS5sYXN0KCkp
OwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CkBAIC00Nzcs
OSArNDc5LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgIGNhc2Ug
U29saWRDb2xvclNwYWNlOgogICAgICAgICBpZiAoc3Ryb2tlQ29sb3IoKS5hbHBoYSgpKSB7CiAg
ICAgICAgICAgICBzZXRDb2xvcihjciwgc3Ryb2tlQ29sb3IoKSk7Ci0gICAgICAgICAgICBpZiAo
bV9kYXRhLT5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKKyAgICAgICAgICAgIGlmIChtX2RhdGEtPmds
b2JhbEFscGhhLmxhc3QoKSA8IDEuMGYpIHsKICAgICAgICAgICAgICAgICBjYWlyb19wdXNoX2dy
b3VwKGNyKTsKLSAgICAgICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2Rh
dGEtPmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhh
KGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhLmxhc3QoKSk7CiAgICAgICAgICAgICAgICAgY2Fpcm9f
cG9wX2dyb3VwX3RvX3NvdXJjZShjcik7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBjYWly
b19zdHJva2UoY3IpOwpAQCAtNDg3LDkgKzQ4OSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpz
dHJva2VQYXRoKCkKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQYXR0ZXJuQ29sb3JTcGFjZToK
ICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwgbV9jb21tb24tPnN0YXRlLnN0cm9rZVBhdHRl
cm4uZ2V0KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihnZXRDVE0oKSkpOwotICAgICAgICBpZiAo
bV9kYXRhLT5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKKyAgICAgICAgaWYgKG1fZGF0YS0+Z2xvYmFs
QWxwaGEubGFzdCgpIDwgMS4wZikgewogICAgICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChjcik7
Ci0gICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFs
cGhhKTsKKyAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xv
YmFsQWxwaGEubGFzdCgpKTsKICAgICAgICAgICAgIGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2Uo
Y3IpOwogICAgICAgICB9CiAgICAgICAgIGNhaXJvX3N0cm9rZShjcik7CkBAIC00OTgsOSArNTAw
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgICAgICBjYWlyb19w
YXR0ZXJuX3QqIHBhdHRlcm4gPSBtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlR3JhZGllbnQuZ2V0KCkt
PnBsYXRmb3JtR3JhZGllbnQoKTsKICAgICAgICAgcGF0dGVybiA9IGFwcGx5U3ByZWFkTWV0aG9k
KHBhdHRlcm4sIHNwcmVhZE1ldGhvZCgpKTsKICAgICAgICAgY2Fpcm9fc2V0X3NvdXJjZShjciwg
cGF0dGVybik7Ci0gICAgICAgIGlmIChtX2RhdGEtPmdsb2JhbEFscGhhIDwgMS4wZikgeworICAg
ICAgICBpZiAobV9kYXRhLT5nbG9iYWxBbHBoYS5sYXN0KCkgPCAxLjBmKSB7CiAgICAgICAgICAg
ICBjYWlyb19wdXNoX2dyb3VwKGNyKTsKLSAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxw
aGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOworICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0
aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBoYS5sYXN0KCkpOwogICAgICAgICAgICAgY2Fp
cm9fcG9wX2dyb3VwX3RvX3NvdXJjZShjcik7CiAgICAgICAgIH0KICAgICAgICAgY2Fpcm9fc3Ry
b2tlKGNyKTsKQEAgLTg4NywxMiArODg5LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzZXRN
aXRlckxpbWl0KGZsb2EKIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldEFscGhhKGZsb2F0IGFs
cGhhKQogewotICAgIG1fZGF0YS0+Z2xvYmFsQWxwaGEgPSBhbHBoYTsKKyAgICBtX2RhdGEtPmds
b2JhbEFscGhhLmxhc3QoKSA9IGFscGhhOwogfQogCiBmbG9hdCBHcmFwaGljc0NvbnRleHQ6Omdl
dEFscGhhKCkKIHsKLSAgICByZXR1cm4gbV9kYXRhLT5nbG9iYWxBbHBoYTsKKyAgICByZXR1cm4g
bV9kYXRhLT5nbG9iYWxBbHBoYS5sYXN0KCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgY2Fpcm9fb3Bl
cmF0b3JfdCB0b0NhaXJvT3BlcmF0b3IoQ29tcG9zaXRlT3BlcmF0b3Igb3ApCkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0
ZUNhaXJvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9H
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCShyZXZpc2lvbiAzNzg4OCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Q
cml2YXRlQ2Fpcm8uaAkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICwgbV90cmFuc3BhcmVuY3lDb3VudCgwKQogI2VuZGlmCiAgICAgeworICAgICAgICBn
bG9iYWxBbHBoYS5hcHBlbmQoMS4wZik7CiAgICAgfQogCiAgICAgfkdyYXBoaWNzQ29udGV4dFBs
YXRmb3JtUHJpdmF0ZSgpCkBAIC04OCw3ICs4OSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAg
Y2Fpcm9fdCogY3I7Ci0gICAgZmxvYXQgZ2xvYmFsQWxwaGE7CisgICAgVmVjdG9yPGZsb2F0PiBn
bG9iYWxBbHBoYTsKICAgICBWZWN0b3I8ZmxvYXQ+IGxheWVyczsKIAogI2lmIFBMQVRGT1JNKEdU
SykK
</data>
<flag name="review"
          id="11294"
          type_id="1"
          status="-"
          setter="alp"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24717</attachid>
            <date>2008-10-28 09:14:45 -0700</date>
            <delta_ts>2008-10-30 07:15:43 -0700</delta_ts>
            <desc>save/restore globalAlpha</desc>
            <filename>globalAlpha.patch</filename>
            <type>text/plain</type>
            <size>5965</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNzkyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMDgtMTAtMjggIERpcmsgU2NodWx6ZSAgPHZiczg1QGdteC5kZT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWlybydz
IGdsb2JhbEFscGhhIGhhcyB0byBiZSBzdG9yZWQgYW5kIHJlbG9hZGVkIG9uIGNhbGxpbmcKKyAg
ICAgICAgc2F2ZSgpIGFuZCByZXN0b3JlKCkuIFdlIHVzZSB0aGUgcG93ZXIgb2YgR3JhcGhpY3ND
b250ZXh0U3RhdGUgZm9yIHRoaXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHRQcml2YXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRT
dGF0ZTo6R3JhcGhpY3NDb250ZXh0U3RhdGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
OjpzdHJva2VQYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c2V0QWxw
aGEpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRBbHBoYSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2
YXRlQ2Fpcm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJp
dmF0ZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToKKwogMjAwOC0xMC0yOCAgQWxl
eGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dFByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dFByaXZhdGUuaAkocmV2aXNpb24gMzc4ODgpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTAsNiArNTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICA6IHRleHREcmF3
aW5nTW9kZShjVGV4dEZpbGwpCiAgICAgICAgICAgICAsIHN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tl
KQogICAgICAgICAgICAgLCBzdHJva2VUaGlja25lc3MoMCkKKyNpZiBQTEFURk9STShDQUlSTykK
KyAgICAgICAgICAgICwgZ2xvYmFsQWxwaGEoMSkKKyNlbmRpZgogICAgICAgICAgICAgLCBzdHJv
a2VDb2xvclNwYWNlKFNvbGlkQ29sb3JTcGFjZSkKICAgICAgICAgICAgICwgc3Ryb2tlQ29sb3Io
Q29sb3I6OmJsYWNrKQogICAgICAgICAgICAgLCBmaWxsUnVsZShSVUxFX05PTlpFUk8pCkBAIC02
NSw2ICs2OCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgCiAgICAgICAgIFN0cm9r
ZVN0eWxlIHN0cm9rZVN0eWxlOwogICAgICAgICBmbG9hdCBzdHJva2VUaGlja25lc3M7CisjaWYg
UExBVEZPUk0oQ0FJUk8pCisgICAgICAgIGZsb2F0IGdsb2JhbEFscGhhOworI2VuZGlmCiAgICAg
ICAgIENvbG9yU3BhY2Ugc3Ryb2tlQ29sb3JTcGFjZTsKICAgICAgICAgQ29sb3Igc3Ryb2tlQ29s
b3I7CiAgICAgICAgIFJlZlB0cjxHcmFkaWVudD4gc3Ryb2tlR3JhZGllbnQ7CkluZGV4OiBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4
dENhaXJvLmNwcAkocmV2aXNpb24gMzc4ODgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ3LDIw
ICs0NDcsMjAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxQYXRoKCkKICAgICAgICAgaWYg
KGZpbGxDb2xvcigpLmFscGhhKCkpIHsKICAgICAgICAgICAgIHNldENvbG9yKGNyLCBmaWxsQ29s
b3IoKSk7CiAgICAgICAgICAgICBjYWlyb19jbGlwKGNyKTsKLSAgICAgICAgICAgIGNhaXJvX3Bh
aW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+Z2xvYmFsQWxwaGEpOworICAgICAgICAgICAgY2Fp
cm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhKTsKICAg
ICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFBhdHRlcm5Db2xvclNwYWNlOgogICAg
ICAgICBjYWlyb19zZXRfc291cmNlKGNyLCBtX2NvbW1vbi0+c3RhdGUuZmlsbFBhdHRlcm4uZ2V0
KCktPmNyZWF0ZVBsYXRmb3JtUGF0dGVybihnZXRDVE0oKSkpOwogICAgICAgICBjYWlyb19jbGlw
KGNyKTsKLSAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxB
bHBoYSk7CisgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fY29tbW9uLT5zdGF0
ZS5nbG9iYWxBbHBoYSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgR3JhZGllbnRDb2xvclNw
YWNlOgogICAgICAgICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBtX2NvbW1vbi0+c3RhdGUu
ZmlsbEdyYWRpZW50LmdldCgpLT5wbGF0Zm9ybUdyYWRpZW50KCk7CiAgICAgICAgIHBhdHRlcm4g
PSBhcHBseVNwcmVhZE1ldGhvZChwYXR0ZXJuLCBzcHJlYWRNZXRob2QoKSk7CiAgICAgICAgIGNh
aXJvX3NldF9zb3VyY2UoY3IsIHBhdHRlcm4pOwogICAgICAgICBjYWlyb19jbGlwKGNyKTsKLSAg
ICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9kYXRhLT5nbG9iYWxBbHBoYSk7Cisg
ICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxB
bHBoYSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYWlyb19yZXN0b3JlKGNyKTsKQEAg
LTQ3Nyw5ICs0NzcsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAg
Y2FzZSBTb2xpZENvbG9yU3BhY2U6CiAgICAgICAgIGlmIChzdHJva2VDb2xvcigpLmFscGhhKCkp
IHsKICAgICAgICAgICAgIHNldENvbG9yKGNyLCBzdHJva2VDb2xvcigpKTsKLSAgICAgICAgICAg
IGlmIChtX2RhdGEtPmdsb2JhbEFscGhhIDwgMS4wZikgeworICAgICAgICAgICAgaWYgKG1fY29t
bW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSA8IDEuMGYpIHsKICAgICAgICAgICAgICAgICBjYWlyb19w
dXNoX2dyb3VwKGNyKTsKLSAgICAgICAgICAgICAgICBjYWlyb19wYWludF93aXRoX2FscGhhKGNy
LCBtX2RhdGEtPmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAgICAgICBjYWlyb19wYWludF93aXRo
X2FscGhhKGNyLCBtX2NvbW1vbi0+c3RhdGUuZ2xvYmFsQWxwaGEpOwogICAgICAgICAgICAgICAg
IGNhaXJvX3BvcF9ncm91cF90b19zb3VyY2UoY3IpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgY2Fpcm9fc3Ryb2tlKGNyKTsKQEAgLTQ4Nyw5ICs0ODcsOSBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUGF0dGVybkNvbG9y
U3BhY2U6CiAgICAgICAgIGNhaXJvX3NldF9zb3VyY2UoY3IsIG1fY29tbW9uLT5zdGF0ZS5zdHJv
a2VQYXR0ZXJuLmdldCgpLT5jcmVhdGVQbGF0Zm9ybVBhdHRlcm4oZ2V0Q1RNKCkpKTsKLSAgICAg
ICAgaWYgKG1fZGF0YS0+Z2xvYmFsQWxwaGEgPCAxLjBmKSB7CisgICAgICAgIGlmIChtX2NvbW1v
bi0+c3RhdGUuZ2xvYmFsQWxwaGEgPCAxLjBmKSB7CiAgICAgICAgICAgICBjYWlyb19wdXNoX2dy
b3VwKGNyKTsKLSAgICAgICAgICAgIGNhaXJvX3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fZGF0YS0+
Z2xvYmFsQWxwaGEpOworICAgICAgICAgICAgY2Fpcm9fcGFpbnRfd2l0aF9hbHBoYShjciwgbV9j
b21tb24tPnN0YXRlLmdsb2JhbEFscGhhKTsKICAgICAgICAgICAgIGNhaXJvX3BvcF9ncm91cF90
b19zb3VyY2UoY3IpOwogICAgICAgICB9CiAgICAgICAgIGNhaXJvX3N0cm9rZShjcik7CkBAIC00
OTgsOSArNDk4LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoKQogICAgICAg
ICBjYWlyb19wYXR0ZXJuX3QqIHBhdHRlcm4gPSBtX2NvbW1vbi0+c3RhdGUuc3Ryb2tlR3JhZGll
bnQuZ2V0KCktPnBsYXRmb3JtR3JhZGllbnQoKTsKICAgICAgICAgcGF0dGVybiA9IGFwcGx5U3By
ZWFkTWV0aG9kKHBhdHRlcm4sIHNwcmVhZE1ldGhvZCgpKTsKICAgICAgICAgY2Fpcm9fc2V0X3Nv
dXJjZShjciwgcGF0dGVybik7Ci0gICAgICAgIGlmIChtX2RhdGEtPmdsb2JhbEFscGhhIDwgMS4w
ZikgeworICAgICAgICBpZiAobV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhIDwgMS4wZikgewog
ICAgICAgICAgICAgY2Fpcm9fcHVzaF9ncm91cChjcik7Ci0gICAgICAgICAgICBjYWlyb19wYWlu
dF93aXRoX2FscGhhKGNyLCBtX2RhdGEtPmdsb2JhbEFscGhhKTsKKyAgICAgICAgICAgIGNhaXJv
X3BhaW50X3dpdGhfYWxwaGEoY3IsIG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSk7CiAgICAg
ICAgICAgICBjYWlyb19wb3BfZ3JvdXBfdG9fc291cmNlKGNyKTsKICAgICAgICAgfQogICAgICAg
ICBjYWlyb19zdHJva2UoY3IpOwpAQCAtODg3LDEyICs4ODcsMTIgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHQ6OnNldE1pdGVyTGltaXQoZmxvYQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c2V0QWxw
aGEoZmxvYXQgYWxwaGEpCiB7Ci0gICAgbV9kYXRhLT5nbG9iYWxBbHBoYSA9IGFscGhhOworICAg
IG1fY29tbW9uLT5zdGF0ZS5nbG9iYWxBbHBoYSA9IGFscGhhOwogfQogCiBmbG9hdCBHcmFwaGlj
c0NvbnRleHQ6OmdldEFscGhhKCkKIHsKLSAgICByZXR1cm4gbV9kYXRhLT5nbG9iYWxBbHBoYTsK
KyAgICByZXR1cm4gbV9jb21tb24tPnN0YXRlLmdsb2JhbEFscGhhOwogfQogCiBzdGF0aWMgaW5s
aW5lIGNhaXJvX29wZXJhdG9yX3QgdG9DYWlyb09wZXJhdG9yKENvbXBvc2l0ZU9wZXJhdG9yIG9w
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQ
bGF0Zm9ybVByaXZhdGVDYWlyby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAkocmV2aXNp
b24gMzc4ODgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDYg
QEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlIHsKIHB1YmxpYzoKICAgICBH
cmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGUoKQogICAgICAgICA6IGNyKDApCi0gICAgICAg
ICwgZ2xvYmFsQWxwaGEoMS4wZikKICNpZiBQTEFURk9STShHVEspCiAgICAgICAgICwgZXhwb3Nl
KDApCiAjZWxpZiBQTEFURk9STShXSU4pCkBAIC04OCw3ICs4Nyw2IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAgICAgY2Fpcm9fdCogY3I7Ci0gICAgZmxvYXQgZ2xvYmFsQWxwaGE7CiAgICAgVmVjdG9y
PGZsb2F0PiBsYXllcnM7CiAKICNpZiBQTEFURk9STShHVEspCg==
</data>
<flag name="review"
          id="11301"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>