<?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>107526</bug_id>
          
          <creation_ts>2013-01-22 01:56:11 -0800</creation_ts>
          <short_desc>Optimize some operations for float type in texture format conversions of WebGL</short_desc>
          <delta_ts>2013-02-02 14:34:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Jun Jiang">jun.a.jiang</reporter>
          <assigned_to name="Jun Jiang">jun.a.jiang</assigned_to>
          <cc>dino</cc>
    
    <cc>kbr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>812804</commentid>
    <comment_count>0</comment_count>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-01-22 01:56:11 -0800</bug_when>
    <thetext>In the implementation of texture format conversion for WebGL, some operations for float type could be optimized. One is that, divide operations could be reduced to once from twice. The other is that, use memcpy() to copy a pack of float type instead of one by one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>812812</commentid>
    <comment_count>1</comment_count>
      <attachid>183934</attachid>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-01-22 02:04:32 -0800</bug_when>
    <thetext>Created attachment 183934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813131</commentid>
    <comment_count>2</comment_count>
      <attachid>183934</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-01-22 10:16:03 -0800</bug_when>
    <thetext>Comment on attachment 183934
Patch

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

Optimizations look fine. I’m a little concerned that we truncate rather than rounding after multiplying by scale factors. I’m not sure that’s the correct calculation. I also wonder if there’s an even faster branch-free way to compute those scale factors?

Someone should fix the style mistake all over this file, calling the type &quot;unsigned int&quot; when the WebKit coding style suggests calling it just &quot;unsigned&quot;.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.cpp:1177
&gt; +    ASSERT(source &amp;&amp; destination);

Two thoughts:

1) We never do ASSERT with &amp;&amp; in it. We always prefer two separate assertions in such cases so we can more easily figure out which one has failed.
2) It seems unnecessary to assert these pointers are non-zero here. Such pointers could be scattered all over the code; there’s no particular reason to expect null pointers here or to assume it would be hard to diagnose a null pointer related crash inside memcpy.

Based on that, I suggest removing this line of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813948</commentid>
    <comment_count>3</comment_count>
      <attachid>184167</attachid>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-01-23 00:38:52 -0800</bug_when>
    <thetext>Created attachment 184167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>813977</commentid>
    <comment_count>4</comment_count>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-01-23 01:07:04 -0800</bug_when>
    <thetext>Hi, Darin. Thanks for your comments. I had changed and rebased the patch. As you had suggested, it was really unnecessary to add the ASSERT() there. And for the issue that we truncate rather than rounding after multiplying by scale factors, I agree that rounding may have a smaller deviation than truncate. But I am not quite sure if this is the only criteria in design to choose the implementation. Therefore, the truncate behavior is not changed and left for future change if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814587</commentid>
    <comment_count>5</comment_count>
      <attachid>184167</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-01-23 13:45:13 -0800</bug_when>
    <thetext>Comment on attachment 184167
Patch

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

Looks good. I&apos;d prefer not to override darin&apos;s r+; would it be too much trouble to upload a new patch? Then it can be cq+&apos;d easily.

&gt; Source/WebCore/ChangeLog:6
&gt; +        Reviewed by NOBODY (OOPS!).

At this point you can and should change this line to say &quot;Reviewed by Darin Adler.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814881</commentid>
    <comment_count>6</comment_count>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-01-23 17:33:51 -0800</bug_when>
    <thetext>Hi, Darin. Could you help to review and merge it ? As Kenneth mentioned, I should add &quot;Reviewed by Darin Adler.&quot; in the Changelog but I miss it. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822739</commentid>
    <comment_count>7</comment_count>
      <attachid>186038</attachid>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-02-01 07:12:56 -0800</bug_when>
    <thetext>Created attachment 186038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822741</commentid>
    <comment_count>8</comment_count>
    <who name="Jun Jiang">jun.a.jiang</who>
    <bug_when>2013-02-01 07:15:39 -0800</bug_when>
    <thetext>Re-base the patch and modify the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823711</commentid>
    <comment_count>9</comment_count>
      <attachid>186038</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-02 14:29:42 -0800</bug_when>
    <thetext>Comment on attachment 186038
Patch

Looks fine. You already have Darin&apos;s review and don&apos;t need another. Submitting to CQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823712</commentid>
    <comment_count>10</comment_count>
      <attachid>186038</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-02 14:34:08 -0800</bug_when>
    <thetext>Comment on attachment 186038
Patch

Clearing flags on attachment: 186038

Committed r141706: &lt;http://trac.webkit.org/changeset/141706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>823713</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-02 14:34:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>183934</attachid>
            <date>2013-01-22 02:04:32 -0800</date>
            <delta_ts>2013-01-23 00:38:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107526-20130122180321.patch</filename>
            <type>text/plain</type>
            <size>6681</size>
            <attacher name="Jun Jiang">jun.a.jiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwMzk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2IyZDRhN2Q1ZTM3NDM3
ODc4OWU3YjI1ZTk2MTFhYWFkY2MzNDRhNS4uNDQ3NmI0NDY4Y2QwMzc3ZWVmYzU1ZGYyOTJjMThk
NzIwYmUwNjc5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAxLTIyICBKdW4g
SmlhbmcgIDxqdW4uYS5qaWFuZ0BpbnRlbC5jb20+CisKKyAgICAgICAgT3B0aW1pemUgc29tZSBv
cGVyYXRpb25zIGZvciBmbG9hdCB0eXBlIGluIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb25zIG9m
IFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
b21lIHNtYWxsIGNoYW5nZXMgYXJlIG1hZGUgdG8gb3B0aW1pemUgdGhlIG9wZXJhdGlvbnMgZm9y
IGZsb2F0IHR5cGUgaW4gdGhlIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb24gb2YgV2ViR0wgdG8g
aW1wcm92ZSBwZXJmb3JtYW5jZS4KKworICAgICAgICBBbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVu
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTAxLTIyICBBZGFtIEJhcnRoICA8YWJh
cnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRU5BQkxFKE5FV19YTUwpIGlzbid0IHVzZWQgYnkg
YW55b25lIGFuZCBubyBvbmUgaXMgYWN0aXZlbHkgd29ya2luZyBvbiBpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCmlu
ZGV4IDc2NjkwMTdmNDlkM2UzZWJlODRiMjkyMjI4ZGRjYjJlMjJjOThiZjkuLmYwOTEyMTBlYzE1
NmY2NDk0MDUyYzgwZjBlZjM1NDU5NzIzMDFjMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTg3Nyw3ICs4
NzcsNyBAQCB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9SOFByZW11bHRpcGx5KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpbwogdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRv
UjhVbm11bHRpcGx5KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IDEuMGYgLyAoc291cmNlWzNdID8gc291cmNlWzNdIC8gMjU1LjBmIDogMS4wZik7CisgICAgICAg
IGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4w
ZjsKICAgICAgICAgdWludDhfdCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KHNvdXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIGRlc3RpbmF0
aW9uWzBdID0gc291cmNlUjsKICAgICAgICAgc291cmNlICs9IDQ7CkBAIC05MTEsNyArOTExLDcg
QEAgdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvUkE4UHJlbXVsdGlwbHkoY29uc3QgdWludDhfdCog
c291cmNlLCB1aW50OF90KiBkZXN0aW5hdGkKIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1JBOFVu
bXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4w
ZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwog
ICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2Fz
dDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgZGVzdGluYXRpb25b
MF0gPSBzb3VyY2VSOwogICAgICAgICBkZXN0aW5hdGlvblsxXSA9IHNvdXJjZVszXTsKQEAgLTk1
MCw3ICs5NTAsNyBAQCB2b2lkIHBhY2tPbmVSb3dPZlJHQkE4VG9SR0I4UHJlbXVsdGlwbHkoY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdAogdm9pZCBwYWNrT25lUm93T2ZS
R0JBOFRvUkdCOFVubXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0
aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVk
IGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxl
RmFjdG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsK
KyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2Vb
M10gOiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90
PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAg
dWludDhfdCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHNvdXJjZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMl0pICogc2NhbGVG
YWN0b3IpOwpAQCAtOTgyLDcgKzk4Miw3IEBAIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1JHQkE4
UHJlbXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hCiB2b2lk
IHBhY2tPbmVSb3dPZlJHQkE4VG9SR0JBOFVubXVsdGlwbHkoY29uc3QgdWludDhfdCogc291cmNl
LCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAg
ICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAg
ICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAy
NTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAy
NTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0
aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFj
dG9yKTsKICAgICAgICAgdWludDhfdCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3Rh
dGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4
X3Qgc291cmNlQiA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3Vy
Y2VbMl0pICogc2NhbGVGYWN0b3IpOwpAQCAtMTAzMCw3ICsxMDMwLDcgQEAgdm9pZCBwYWNrT25l
Um93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDQ0NDRQcmVtdWx0aXBseShjb25zdCB1aW50OF90KiBz
b3VyY2UsIHVpbnQKIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ0NDQ0VW5t
dWx0aXBseShjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5z
aWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4w
ZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwog
ICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2Fz
dDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3Vy
Y2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsxXSkg
KiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMl0pICogc2NhbGVGYWN0b3IpOwpAQCAt
MTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBwYWNrT25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU1
NTFQcmVtdWx0aXBseShjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQKIHZvaWQgcGFja09uZVJv
d09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NTUxVW5tdWx0aXBseShjb25zdCB1aW50OF90KiBzb3Vy
Y2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBpeGVsc1BlclJvdykKIHsK
ICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0g
ICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10g
LyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10g
PyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBz
dGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxl
RmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4o
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVp
bnQ4X3Qgc291cmNlQiA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihz
b3VyY2VbMl0pICogc2NhbGVGYWN0b3IpOwpAQCAtMTEyNCw3ICsxMTI0LDcgQEAgdm9pZCBwYWNr
T25lUm93T2ZSR0JBOFRvVW5zaWduZWRTaG9ydDU2NVByZW11bHRpcGx5KGNvbnN0IHVpbnQ4X3Qq
IHNvdXJjZSwgdWludDEKIHZvaWQgcGFja09uZVJvd09mUkdCQThUb1Vuc2lnbmVkU2hvcnQ1NjVV
bm11bHRpcGx5KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBpbnQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAw
OyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKLSAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAx
LjBmIC8gKHNvdXJjZVszXSA/IHNvdXJjZVszXSAvIDI1NS4wZiA6IDEuMGYpOworICAgICAgICBm
bG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7
CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlUiA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19j
YXN0PGZsb2F0Pihzb3VyY2VbMF0pICogc2NhbGVGYWN0b3IpOwogICAgICAgICB1aW50OF90IHNv
dXJjZUcgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzFd
KSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3VyY2VCID0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsyXSkgKiBzY2FsZUZhY3Rvcik7CkBA
IC0xMTc0LDE0ICsxMTc0LDggQEAgdm9pZCBwYWNrT25lUm93T2ZSR0JBMzJGVG9SR0IzMkZVbm11
bHRpcGx5KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGkKIC8vIFVzZWQgb25s
eSBkdXJpbmcgUkdCQTggb3IgQkdSQTggLT4gZmxvYXRpbmctcG9pbnQgdXBsb2Fkcy4KIHZvaWQg
cGFja09uZVJvd09mUkdCQTMyRlRvUkdCQTMyRihjb25zdCBmbG9hdCogc291cmNlLCBmbG9hdCog
ZGVzdGluYXRpb24sIHVuc2lnbmVkIGludCBwaXhlbHNQZXJSb3cpCiB7Ci0gICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKLSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07
Ci0gICAgICAgIGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzJdOwotICAgICAgICBkZXN0aW5hdGlv
blszXSA9IHNvdXJjZVszXTsKLSAgICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0
aW9uICs9IDQ7Ci0gICAgfQorICAgIEFTU0VSVChzb3VyY2UgJiYgZGVzdGluYXRpb24pOworICAg
IG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQZXJSb3cgKiA0ICogc2l6ZW9mKGZs
b2F0KSk7CiB9CiAKIHZvaWQgcGFja09uZVJvd09mUkdCQTMyRlRvUkdCQTMyRlByZW11bHRpcGx5
KGNvbnN0IGZsb2F0KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgaW50IHBp
eGVsc1BlclJvdykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184167</attachid>
            <date>2013-01-23 00:38:52 -0800</date>
            <delta_ts>2013-02-01 07:12:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107526-20130123163741.patch</filename>
            <type>text/plain</type>
            <size>7363</size>
            <attacher name="Jun Jiang">jun.a.jiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE2OGI2MjNkZWIyODg0
ODk3OGVkMGJiNjZjNzU4NTVjYjMwNmRhMC4uYjk5YWNkZmRhNGIxZDhiOWJiNzkxYWM3ZmJjMGI1
ZTU3YjVmZmNiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAxLTIzICBKdW4g
SmlhbmcgIDxqdW4uYS5qaWFuZ0BpbnRlbC5jb20+CisKKyAgICAgICAgT3B0aW1pemUgc29tZSBv
cGVyYXRpb25zIGZvciBmbG9hdCB0eXBlIGluIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb25zIG9m
IFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBT
b21lIHNtYWxsIGNoYW5nZXMgYXJlIG1hZGUgdG8gb3B0aW1pemUgdGhlIG9wZXJhdGlvbnMgZm9y
IGZsb2F0IHR5cGUgaW4gdGhlIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb24gb2YgV2ViR0wgdG8g
aW1wcm92ZSBwZXJmb3JtYW5jZS4KKworICAgICAgICBBbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVu
dCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTAxLTIzICBObydhbSBSb3NlbnRoYWwg
IDxub2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1RleG1hcF0gUmVuYW1lIFRleHR1cmVNYXBw
ZXJTaGFkZXJNYW5hZ2VyLiogVGV4dHVyZU1hcHBlclNoYWRlclByb2dyYW0uKgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3Bw
CmluZGV4IDI4MjhlYWUxNjBhZTQxNzc0Y2NmYmJlN2ZlYTNkM2MyNzg5OGUzZmUuLjdkYjNmZGU0
Mjg0ZWNkZTA4NmRiODZlODZiYjM2ZDU0ODBhNTVhY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKQEAgLTgyNCw3
ICs4MjQsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29u
dGV4dDNEOjpEYXRhRm9ybWF0UjgsIEdyYXBoaWNzQ29udAogdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFI4LCBHcmFwaGljc0Nv
bnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykK
IHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7
Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2Vb
M10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2Vb
M10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIg
PSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNj
YWxlRmFjdG9yKTsKICAgICAgICAgZGVzdGluYXRpb25bMF0gPSBzb3VyY2VSOwogICAgICAgICBz
b3VyY2UgKz0gNDsKQEAgLTg1OCw3ICs4NTgsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUg
dm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkE4LCBHcmFwaGljc0Nvbgog
dGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0
YUZvcm1hdFJBOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90
LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1
bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkg
PCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEuMGYg
LyAoc291cmNlWzNdID8gc291cmNlWzNdIC8gMjU1LjBmIDogMS4wZik7CisgICAgICAgIGZsb2F0
IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKICAg
ICAgICAgdWludDhfdCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHNvdXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIGRlc3RpbmF0aW9uWzBd
ID0gc291cmNlUjsKICAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbM107CkBAIC04OTcs
NyArODk3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0Nv
bnRleHQzRDo6RGF0YUZvcm1hdFJHQjgsIEdyYXBoaWNzQ28KIHRlbXBsYXRlPD4gQUxXQVlTX0lO
TElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I4LCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVp
bnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJv
dykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytp
KSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3Vy
Y2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3Vy
Y2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJj
ZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAq
IHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWlu
dDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAg
ICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZs
b2F0Pihzb3VyY2VbMl0pICogc2NhbGVGYWN0b3IpOwpAQCAtOTM1LDcgKzkzNSw3IEBAIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBOCwgR3JhcGhpY3NDCiB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdy
YXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBo
YURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1
aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQogewogICAgIGZvciAo
dW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsKLSAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gKHNvdXJjZVszXSA/IHNvdXJjZVszXSAvIDI1NS4wZiA6
IDEuMGYpOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVszXSA/IDI1NS4wZiAv
IHNvdXJjZVszXSA6IDEuMGY7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlUiA9IHN0YXRpY19jYXN0
PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMF0pICogc2NhbGVGYWN0b3IpOwog
ICAgICAgICB1aW50OF90IHNvdXJjZUcgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2Fz
dDxmbG9hdD4oc291cmNlWzFdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3Vy
Y2VCID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsyXSkg
KiBzY2FsZUZhY3Rvcik7CkBAIC05ODMsNyArOTgzLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5M
SU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE0NDQ0LCBHcmFw
aGkKIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5
LCB1aW50OF90LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVz
dGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGlu
dCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAg
ICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10g
OiAxLjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90Pihz
dGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWlu
dDhfdCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNv
dXJjZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMl0pICogc2NhbGVGYWN0
b3IpOwpAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQg
cGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkE1NTUxLCBHcmFwaGkKIHRlbXBs
YXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3Jt
YXRSR0JBNTU1MSwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhhRG9Vbm11bHRpcGx5LCB1aW50OF90
LCB1aW50MTZfdD4oY29uc3QgdWludDhfdCogc291cmNlLCB1aW50MTZfdCogZGVzdGluYXRpb24s
IHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsg
aSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gMS4w
ZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAgICAgZmxv
YXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAxLjBmOwog
ICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2Fz
dDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhfdCBzb3Vy
Y2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVsxXSkg
KiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMl0pICogc2NhbGVGYWN0b3IpOwpAQCAt
MTA3Nyw3ICsxMDc3LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQjU2NSwgR3JhcGhpY3MKIHRlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0I1NjUs
IEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+
KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBw
aXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQ
ZXJSb3c7ICsraSkgewotICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEuMGYgLyAoc291cmNl
WzNdID8gc291cmNlWzNdIC8gMjU1LjBmIDogMS4wZik7CisgICAgICAgIGZsb2F0IHNjYWxlRmFj
dG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKICAgICAgICAgdWlu
dDhfdCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNv
dXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlRyA9IHN0YXRp
Y19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMV0pICogc2NhbGVGYWN0
b3IpOwogICAgICAgICB1aW50OF90IHNvdXJjZUIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0
aWNfY2FzdDxmbG9hdD4oc291cmNlWzJdKSAqIHNjYWxlRmFjdG9yKTsKQEAgLTExMjcsMTQgKzEx
MjcsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4
dDNEOjpEYXRhRm9ybWF0UkdCMzJGLCBHcmFwaGljcwogLy8gVXNlZCBvbmx5IGR1cmluZyBSR0JB
OCBvciBCR1JBOCAtPiBmbG9hdGluZy1wb2ludCB1cGxvYWRzLgogdGVtcGxhdGU8PiBBTFdBWVNf
SU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJHQkEzMkYsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvTm90aGluZywgZmxvYXQsIGZsb2F0Pihjb25zdCBmbG9h
dCogc291cmNlLCBmbG9hdCogZGVzdGluYXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsK
LSAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0g
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlWzBdOwotICAgICAgICBkZXN0aW5hdGlvblsx
XSA9IHNvdXJjZVsxXTsKLSAgICAgICAgZGVzdGluYXRpb25bMl0gPSBzb3VyY2VbMl07Ci0gICAg
ICAgIGRlc3RpbmF0aW9uWzNdID0gc291cmNlWzNdOwotICAgICAgICBzb3VyY2UgKz0gNDsKLSAg
ICAgICAgZGVzdGluYXRpb24gKz0gNDsKLSAgICB9CisgICAgbWVtY3B5KGRlc3RpbmF0aW9uLCBz
b3VyY2UsIHBpeGVsc1BlclJvdyAqIDQgKiBzaXplb2YoZmxvYXQpKTsKIH0KIAogdGVtcGxhdGU8
PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJH
QkEzMkYsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvUHJlbXVsdGlwbHksIGZsb2F0LCBmbG9h
dD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxvYXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186038</attachid>
            <date>2013-02-01 07:12:56 -0800</date>
            <delta_ts>2013-02-02 14:34:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107526-20130201231142.patch</filename>
            <type>text/plain</type>
            <size>7349</size>
            <attacher name="Jun Jiang">jun.a.jiang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNTg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE5ZjQxYTFmYjRhYWVm
NDk3NWUxNGQ0YTYzNTc3NDUwMmJhNWU2Ni4uMGMzNmFiZjMwNjE4ZGMwOWVmOGZjYjBmNmUxNTBj
OTkwOTE0Y2NkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAyLTAxICBKdW4g
SmlhbmcgIDxqdW4uYS5qaWFuZ0BpbnRlbC5jb20+CisKKyAgICAgICAgT3B0aW1pemUgc29tZSBv
cGVyYXRpb25zIGZvciBmbG9hdCB0eXBlIGluIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb25zIG9m
IFdlYkdMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc1MjYKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBTb21l
IHNtYWxsIGNoYW5nZXMgYXJlIG1hZGUgdG8gb3B0aW1pemUgdGhlIG9wZXJhdGlvbnMgZm9yIGZs
b2F0IHR5cGUgaW4gdGhlIHRleHR1cmUgZm9ybWF0IGNvbnZlcnNpb24gb2YgV2ViR0wgdG8gaW1w
cm92ZSBwZXJmb3JtYW5jZS4KKworICAgICAgICBBbHJlYWR5IGNvdmVyZWQgYnkgY3VycmVudCB0
ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEzLTAyLTAxICBQYXZlbCBGZWxkbWFuICA8cGZl
bGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZvbGxvdyB1cCB0
byByMTQxMjYwOiBmaXhpbmcgcmVuYW1lZCBzdHlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcAppbmRleCAyODI4ZWFl
MTYwYWU0MTc3NGNjZmJiZTdmZWEzZDNjMjc4OThlM2ZlLi43ZGIzZmRlNDI4NGVjZGUwODZkYjg2
ZTg2YmIzNmQ1NDgwYTU1YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuY3BwCkBAIC04MjQsNyArODI0LDcgQEAgdGVt
cGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZv
cm1hdFI4LCBHcmFwaGljc0NvbnQKIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFscGhh
RG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2UsIHVp
bnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1
bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBmbG9h
dCBzY2FsZUZhY3RvciA9IDEuMGYgLyAoc291cmNlWzNdID8gc291cmNlWzNdIC8gMjU1LjBmIDog
MS4wZik7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8g
c291cmNlWzNdIDogMS4wZjsKICAgICAgICAgdWludDhfdCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzBdID0gc291cmNlUjsKICAgICAgICAgc291cmNlICs9IDQ7CkBA
IC04NTgsNyArODU4LDcgQEAgdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFw
aGljc0NvbnRleHQzRDo6RGF0YUZvcm1hdFJBOCwgR3JhcGhpY3NDb24KIHRlbXBsYXRlPD4gQUxX
QVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSQTgsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDhfdD4oY29u
c3QgdWludDhfdCogc291cmNlLCB1aW50OF90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxz
UGVyUm93KQogewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93
OyArK2kpIHsKLSAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gKHNvdXJjZVszXSA/
IHNvdXJjZVszXSAvIDI1NS4wZiA6IDEuMGYpOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9
IHNvdXJjZVszXSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CiAgICAgICAgIHVpbnQ4X3Qg
c291cmNlUiA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2Vb
MF0pICogc2NhbGVGYWN0b3IpOwogICAgICAgICBkZXN0aW5hdGlvblswXSA9IHNvdXJjZVI7CiAg
ICAgICAgIGRlc3RpbmF0aW9uWzFdID0gc291cmNlWzNdOwpAQCAtODk3LDcgKzg5Nyw3IEBAIHRl
bXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFG
b3JtYXRSR0I4LCBHcmFwaGljc0NvCiB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNr
PEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCOCwgR3JhcGhpY3NDb250ZXh0M0Q6OkFs
cGhhRG9Vbm11bHRpcGx5LCB1aW50OF90LCB1aW50OF90Pihjb25zdCB1aW50OF90KiBzb3VyY2Us
IHVpbnQ4X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9y
ICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBm
bG9hdCBzY2FsZUZhY3RvciA9IDEuMGYgLyAoc291cmNlWzNdID8gc291cmNlWzNdIC8gMjU1LjBm
IDogMS4wZik7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBm
IC8gc291cmNlWzNdIDogMS4wZjsKICAgICAgICAgdWludDhfdCBzb3VyY2VSID0gc3RhdGljX2Nh
c3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7
CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlRyA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19j
YXN0PGZsb2F0Pihzb3VyY2VbMV0pICogc2NhbGVGYWN0b3IpOwogICAgICAgICB1aW50OF90IHNv
dXJjZUIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzJd
KSAqIHNjYWxlRmFjdG9yKTsKQEAgLTkzNSw3ICs5MzUsNyBAQCB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTgsIEdyYXBo
aWNzQwogdGVtcGxhdGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQz
RDo6RGF0YUZvcm1hdFJHQkE4LCBHcmFwaGljc0NvbnRleHQzRDo6QWxwaGFEb1VubXVsdGlwbHks
IHVpbnQ4X3QsIHVpbnQ4X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDhfdCogZGVzdGlu
YXRpb24sIHVuc2lnbmVkIHBpeGVsc1BlclJvdykKIHsKICAgICBmb3IgKHVuc2lnbmVkIGludCBp
ID0gMDsgaSA8IHBpeGVsc1BlclJvdzsgKytpKSB7Ci0gICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gMS4wZiAvIChzb3VyY2VbM10gPyBzb3VyY2VbM10gLyAyNTUuMGYgOiAxLjBmKTsKKyAgICAg
ICAgZmxvYXQgc2NhbGVGYWN0b3IgPSBzb3VyY2VbM10gPyAyNTUuMGYgLyBzb3VyY2VbM10gOiAx
LjBmOwogICAgICAgICB1aW50OF90IHNvdXJjZVIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0
aWNfY2FzdDxmbG9hdD4oc291cmNlWzBdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAgdWludDhf
dCBzb3VyY2VHID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJj
ZVsxXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlQiA9IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMl0pICogc2NhbGVGYWN0b3Ip
OwpAQCAtOTgzLDcgKzk4Myw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8
R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNDQ0NCwgR3JhcGhpCiB0ZW1wbGF0ZTw+
IEFMV0FZU19JTkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdC
QTQ0NDQsIEdyYXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWlu
dDE2X3Q+KGNvbnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNp
Z25lZCBwaXhlbHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBw
aXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEuMGYgLyAo
c291cmNlWzNdID8gc291cmNlWzNdIC8gMjU1LjBmIDogMS4wZik7CisgICAgICAgIGZsb2F0IHNj
YWxlRmFjdG9yID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKICAgICAg
ICAgdWludDhfdCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHNvdXJjZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlRyA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMV0pICogc2Nh
bGVGYWN0b3IpOwogICAgICAgICB1aW50OF90IHNvdXJjZUIgPSBzdGF0aWNfY2FzdDx1aW50OF90
PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzJdKSAqIHNjYWxlRmFjdG9yKTsKQEAgLTEwMzEs
NyArMTAzMSw3IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3ND
b250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBNTU1MSwgR3JhcGhpCiB0ZW1wbGF0ZTw+IEFMV0FZU19J
TkxJTkUgdm9pZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCQTU1NTEsIEdy
YXBoaWNzQ29udGV4dDNEOjpBbHBoYURvVW5tdWx0aXBseSwgdWludDhfdCwgdWludDE2X3Q+KGNv
bnN0IHVpbnQ4X3QqIHNvdXJjZSwgdWludDE2X3QqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhl
bHNQZXJSb3cpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJS
b3c7ICsraSkgewotICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IDEuMGYgLyAoc291cmNlWzNd
ID8gc291cmNlWzNdIC8gMjU1LjBmIDogMS4wZik7CisgICAgICAgIGZsb2F0IHNjYWxlRmFjdG9y
ID0gc291cmNlWzNdID8gMjU1LjBmIC8gc291cmNlWzNdIDogMS4wZjsKICAgICAgICAgdWludDhf
dCBzb3VyY2VSID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KHNvdXJj
ZVswXSkgKiBzY2FsZUZhY3Rvcik7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlRyA9IHN0YXRpY19j
YXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMV0pICogc2NhbGVGYWN0b3Ip
OwogICAgICAgICB1aW50OF90IHNvdXJjZUIgPSBzdGF0aWNfY2FzdDx1aW50OF90PihzdGF0aWNf
Y2FzdDxmbG9hdD4oc291cmNlWzJdKSAqIHNjYWxlRmFjdG9yKTsKQEAgLTEwNzcsNyArMTA3Nyw3
IEBAIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6
OkRhdGFGb3JtYXRSR0I1NjUsIEdyYXBoaWNzCiB0ZW1wbGF0ZTw+IEFMV0FZU19JTkxJTkUgdm9p
ZCBwYWNrPEdyYXBoaWNzQ29udGV4dDNEOjpEYXRhRm9ybWF0UkdCNTY1LCBHcmFwaGljc0NvbnRl
eHQzRDo6QWxwaGFEb1VubXVsdGlwbHksIHVpbnQ4X3QsIHVpbnQxNl90Pihjb25zdCB1aW50OF90
KiBzb3VyY2UsIHVpbnQxNl90KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQog
ewogICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgcGl4ZWxzUGVyUm93OyArK2kpIHsK
LSAgICAgICAgZmxvYXQgc2NhbGVGYWN0b3IgPSAxLjBmIC8gKHNvdXJjZVszXSA/IHNvdXJjZVsz
XSAvIDI1NS4wZiA6IDEuMGYpOworICAgICAgICBmbG9hdCBzY2FsZUZhY3RvciA9IHNvdXJjZVsz
XSA/IDI1NS4wZiAvIHNvdXJjZVszXSA6IDEuMGY7CiAgICAgICAgIHVpbnQ4X3Qgc291cmNlUiA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHN0YXRpY19jYXN0PGZsb2F0Pihzb3VyY2VbMF0pICogc2Nh
bGVGYWN0b3IpOwogICAgICAgICB1aW50OF90IHNvdXJjZUcgPSBzdGF0aWNfY2FzdDx1aW50OF90
PihzdGF0aWNfY2FzdDxmbG9hdD4oc291cmNlWzFdKSAqIHNjYWxlRmFjdG9yKTsKICAgICAgICAg
dWludDhfdCBzb3VyY2VCID0gc3RhdGljX2Nhc3Q8dWludDhfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHNvdXJjZVsyXSkgKiBzY2FsZUZhY3Rvcik7CkBAIC0xMTI3LDE0ICsxMTI3LDcgQEAgdGVtcGxh
dGU8PiBBTFdBWVNfSU5MSU5FIHZvaWQgcGFjazxHcmFwaGljc0NvbnRleHQzRDo6RGF0YUZvcm1h
dFJHQjMyRiwgR3JhcGhpY3MKIC8vIFVzZWQgb25seSBkdXJpbmcgUkdCQTggb3IgQkdSQTggLT4g
ZmxvYXRpbmctcG9pbnQgdXBsb2Fkcy4KIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElORSB2b2lkIHBh
Y2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGljc0NvbnRleHQz
RDo6QWxwaGFEb05vdGhpbmcsIGZsb2F0LCBmbG9hdD4oY29uc3QgZmxvYXQqIHNvdXJjZSwgZmxv
YXQqIGRlc3RpbmF0aW9uLCB1bnNpZ25lZCBwaXhlbHNQZXJSb3cpCiB7Ci0gICAgZm9yICh1bnNp
Z25lZCBpbnQgaSA9IDA7IGkgPCBwaXhlbHNQZXJSb3c7ICsraSkgewotICAgICAgICBkZXN0aW5h
dGlvblswXSA9IHNvdXJjZVswXTsKLSAgICAgICAgZGVzdGluYXRpb25bMV0gPSBzb3VyY2VbMV07
Ci0gICAgICAgIGRlc3RpbmF0aW9uWzJdID0gc291cmNlWzJdOwotICAgICAgICBkZXN0aW5hdGlv
blszXSA9IHNvdXJjZVszXTsKLSAgICAgICAgc291cmNlICs9IDQ7Ci0gICAgICAgIGRlc3RpbmF0
aW9uICs9IDQ7Ci0gICAgfQorICAgIG1lbWNweShkZXN0aW5hdGlvbiwgc291cmNlLCBwaXhlbHNQ
ZXJSb3cgKiA0ICogc2l6ZW9mKGZsb2F0KSk7CiB9CiAKIHRlbXBsYXRlPD4gQUxXQVlTX0lOTElO
RSB2b2lkIHBhY2s8R3JhcGhpY3NDb250ZXh0M0Q6OkRhdGFGb3JtYXRSR0JBMzJGLCBHcmFwaGlj
c0NvbnRleHQzRDo6QWxwaGFEb1ByZW11bHRpcGx5LCBmbG9hdCwgZmxvYXQ+KGNvbnN0IGZsb2F0
KiBzb3VyY2UsIGZsb2F0KiBkZXN0aW5hdGlvbiwgdW5zaWduZWQgcGl4ZWxzUGVyUm93KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>