<?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>49895</bug_id>
          
          <creation_ts>2010-11-21 20:06:35 -0800</creation_ts>
          <short_desc>Add lastModifiedDate attribute to File interface per File API spec</short_desc>
          <delta_ts>2010-12-20 19:10:43 -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>WebCore Misc.</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></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="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>abarth</cc>
    
    <cc>dimich</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>jarred</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>312207</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-21 20:06:35 -0800</bug_when>
    <thetext>Add lastModifiedDate attribute to File interface per File API spec:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312209</commentid>
    <comment_count>1</comment_count>
      <attachid>74527</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-21 20:39:41 -0800</bug_when>
    <thetext>Created attachment 74527
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312212</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 20:51:14 -0800</bug_when>
    <thetext>Attachment 74527 did not build on gtk:
Build output: http://queues.webkit.org/results/6251084</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312216</commentid>
    <comment_count>3</comment_count>
      <attachid>74529</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-21 21:15:11 -0800</bug_when>
    <thetext>Created attachment 74529
Proposed Patch

Fixed gtk error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312217</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-11-21 21:24:00 -0800</bug_when>
    <thetext>Attachment 74529 did not build on gtk:
Build output: http://queues.webkit.org/results/6165136</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312220</commentid>
    <comment_count>5</comment_count>
      <attachid>74530</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-11-21 21:47:11 -0800</bug_when>
    <thetext>Created attachment 74530
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320942</commentid>
    <comment_count>6</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2010-12-12 22:38:46 -0800</bug_when>
    <thetext>The spec calls for lastModifiedDate to be a DOMString, not a Date.  It wants a &quot;valid date string&quot;:

http://dev.w3.org/html5/spec/Overview.html#valid-date-string

Or in otherwords, YYYY-MM-DD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324544</commentid>
    <comment_count>7</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-12-20 13:38:13 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; The spec calls for lastModifiedDate to be a DOMString, not a Date.  It wants a &quot;valid date string&quot;:
&gt; 
&gt; http://dev.w3.org/html5/spec/Overview.html#valid-date-string
&gt; 
&gt; Or in otherwords, YYYY-MM-DD

The spec has just been updated with a Date object returned for File.lastModifiedData.
http://dev.w3.org/2006/webapi/FileAPI/#dfn-lastModifiedDate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324546</commentid>
    <comment_count>8</comment_count>
    <who name="Jarred Nicholls">jarred</who>
    <bug_when>2010-12-20 13:41:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; The spec calls for lastModifiedDate to be a DOMString, not a Date.  It wants a &quot;valid date string&quot;:
&gt; &gt; 
&gt; &gt; http://dev.w3.org/html5/spec/Overview.html#valid-date-string
&gt; &gt; 
&gt; &gt; Or in otherwords, YYYY-MM-DD
&gt; 
&gt; The spec has just been updated with a Date object returned for File.lastModifiedData.
&gt; http://dev.w3.org/2006/webapi/FileAPI/#dfn-lastModifiedDate

Indeed, good.  When will that be the latest published version you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324675</commentid>
    <comment_count>9</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-12-20 17:36:33 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; The spec calls for lastModifiedDate to be a DOMString, not a Date.  It wants a &quot;valid date string&quot;:
&gt; &gt; &gt; 
&gt; &gt; &gt; http://dev.w3.org/html5/spec/Overview.html#valid-date-string
&gt; &gt; &gt; 
&gt; &gt; &gt; Or in otherwords, YYYY-MM-DD
&gt; &gt; 
&gt; &gt; The spec has just been updated with a Date object returned for File.lastModifiedData.
&gt; &gt; http://dev.w3.org/2006/webapi/FileAPI/#dfn-lastModifiedDate
&gt; 
&gt; Indeed, good.  When will that be the latest published version you think?

Please ping the spec editor about this. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324681</commentid>
    <comment_count>10</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-12-20 18:22:49 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/74380.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324706</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-20 19:10:43 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/74380 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74527</attachid>
            <date>2010-11-21 20:39:41 -0800</date>
            <delta_ts>2010-11-21 21:15:11 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>49895</filename>
            <type>text/plain</type>
            <size>6456</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyLi4zY2I0OGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEt
MjEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXN0TW9kaWZpZWREYXRlIGF0dHJpYnV0
ZSB0byBGaWxlIGludGVyZmFjZSBwZXIgRmlsZSBBUEkgc3BlYworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4OTUKKworICAgICAgICAqIGh0dHAvdGVz
dHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zY3JpcHQtdGVz
dHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwOiBBZGRlZC4KKwogMjAxMC0xMS0yMSAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmMTA3YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZp
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgRmlsZS5sYXN0TW9kaWZpZWRE
YXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC5kYXRhVHJh
bnNmZXIgY29udGFpbnMgYSBGaWxlIG9iamVjdCBvbiBkcm9wLgorUEFTUyBmaWxlLmxhc3RNb2Rp
ZmllZERhdGUgdmVyaWZpZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zp
bGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODllMTczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZXR1cC1maWxlLWlucHV0LWVsZW1lbnQtZm9y
LWRyYWcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9maWxlLWxhc3Qt
bW9kaWZpZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRl
c3RzL2ZpbGUtbGFzdC1tb2RpZmllZC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9zY3JpcHQtdGVzdHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMDQ3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL2ZpbGUtbGFzdC1tb2Rp
ZmllZC5qcwpAQCAtMCwwICsxLDMzIEBACitkZXNjcmlwdGlvbigiVGVzdCBGaWxlLmxhc3RNb2Rp
ZmllZERhdGUuIik7CisKK2Z1bmN0aW9uIG9uRmlsZURyb3AoZmlsZSwgZmlsZVBhdGgpCit7Cisg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwP3Bh
dGg9Li4vbG9jYWwvZmlsZWFwaS8iICsgZmlsZVBhdGgsIGZhbHNlKTsKKyAgICB4aHIuc2VuZCgp
OworICAgIHZhciBleHBlY3RlZERhdGUgPSBuZXcgRGF0ZShwYXJzZUludCh4aHIucmVzcG9uc2VU
ZXh0KSAqIDEwMDApOworICAgIHZhciBhY3R1YWxEYXRlID0gZmlsZS5sYXN0TW9kaWZpZWREYXRl
OworICAgIGlmIChleHBlY3RlZERhdGUudG9TdHJpbmcoKSA9PSBhY3R1YWxEYXRlLnRvU3RyaW5n
KCkpCisgICAgICAgIHRlc3RQYXNzZWQoImZpbGUubGFzdE1vZGlmaWVkRGF0ZSB2ZXJpZmllZCIp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiZmlsZS5sYXN0TW9kaWZpZWREYXRlIGlu
Y29ycmVjdCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgdGVzdEZpbGVQ
YXRoID0gIi4uL3Jlc291cmNlcy9maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0IjsKKyAgICBzZXRG
aWxlSW5wdXREcm9wQ2FsbGJhY2soZnVuY3Rpb24oZmlsZSkgeyBvbkZpbGVEcm9wKGZpbGUsIHRl
c3RGaWxlUGF0aCk7IH0pOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbdGVz
dEZpbGVQYXRoXSk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZmlsZUlucHV0KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICBydW5UZXN0KCk7CisgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzCisgICAg
cmVtb3ZlRmlsZUlucHV0RWxlbWVudCgpOworfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCJUaGlz
IHRlc3QgaXMgbm90IGludGVyYWN0aXZlLCBwbGVhc2UgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVl
Iik7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvZmlsZS1sYXN0LW1vZGlmaWVkLnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5waHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjZjk1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5w
aHAKQEAgLTAsMCArMSw3IEBACis8P3BocAorZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnVVRD
Jyk7CiskZmlsZVBhdGggPSAkX0dFVFsncGF0aCddOworaWYgKGZpbGVfZXhpc3RzKCRmaWxlUGF0
aCkpIHsKKyAgICBlY2hvIGRhdGUoIlUiLCBmaWxlbXRpbWUoJGZpbGVQYXRoKSk7Cit9Cis/Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzQ4NmE3Li5iZjM5ODRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTExLTIxICBKaWFuIExpICA8amlh
bmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGFzdE1vZGlmaWVkRGF0ZSBhdHRyaWJ1dGUgdG8gRmlsZSBpbnRlcmZh
Y2UgcGVyIEZpbGUgQVBJIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ5ODk1CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9sb2NhbC9maWxl
YXBpL2ZpbGUtbGFzdC1tb2RpZmllZC5odG1sCisKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRGF0ZSk6CisgICAgICAgICog
ZmlsZWFwaS9GaWxlLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKwogMjAxMC0xMS0y
MSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCmRpZmYgLS1naXQgYS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZS5jcHAgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggNTFhZGE2Yy4uZGQ4MWY1
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBiL1dlYkNvcmUvZmls
ZWFwaS9GaWxlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSAiRmlsZVN5c3RlbS5o
IgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC02OCw2ICs3MCwxNiBAQCBGaWxlOjpGaWxlKGNvbnN0IFN0cmluZyYgcmVsYXRp
dmVQYXRoLCBjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAjZW5kaWYKIAorZG91YmxlIEZpbGU6Omxh
c3RNb2RpZmllZERhdGUoKSBjb25zdAoreworICAgIHRpbWVfdCBtb2RpZmljYXRpb25UaW1lOwor
ICAgIGlmICghZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoLCBtb2RpZmljYXRpb25UaW1l
KSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBOZWVkcyB0byByZXR1cm4gZXBvY2ggdGlt
ZSBpbiBtaWxsaXNlY29uZHMgZm9yIERhdGUuCisgICAgcmV0dXJuIG1vZGlmaWNhdGlvblRpbWUg
KiAxMDAwLjA7Cit9CisKIHVuc2lnbmVkIGxvbmcgbG9uZyBGaWxlOjpzaXplKCkgY29uc3QKIHsK
ICAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVzIGFzIGxhcmdl
IGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9m
aWxlYXBpL0ZpbGUuaCBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmgKaW5kZXggMDZiMDNjZC4uZDIy
YjAzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9XZWJDb3JlL2Zp
bGVhcGkvRmlsZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFN0cmlu
ZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIGNvbnN0IFN0cmluZyYgbmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGRvdWJsZSBsYXN0TW9kaWZpZWREYXRl
KCkgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgLy8gUmV0dXJucyB0
aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGlzIGZpbGUgaW4gdGhlIGNvbnRleHQgb2YgYSBkaXJlY3Rv
cnkgc2VsZWN0aW9uLgogICAgIGNvbnN0IFN0cmluZyYgd2Via2l0UmVsYXRpdmVQYXRoKCkgY29u
c3QgeyByZXR1cm4gbV9yZWxhdGl2ZVBhdGg7IH0KQEAgLTkxLDQgKzkyLDQgQEAgcHJpdmF0ZToK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRmlsZUxpc3RfaAorI2VuZGlm
IC8vIEZpbGVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsIGIvV2ViQ29y
ZS9maWxlYXBpL0ZpbGUuaWRsCmluZGV4IDE5Mzc5MDEuLjU1NDliZWUgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmlkbAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKQEAg
LTMxLDYgKzMxLDcgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb1N0YXRpY1RhYmxlcwogICAg
IF0gRmlsZSA6IEJsb2IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5h
bWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBEYXRlIGxhc3RNb2RpZmllZERhdGU7CiAj
aWYgZGVmaW5lZChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJiYgRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB3ZWJraXRSZWxhdGl2
ZVBhdGg7CiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="65153"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74529</attachid>
            <date>2010-11-21 21:15:11 -0800</date>
            <delta_ts>2010-11-21 21:47:11 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>49895_2</filename>
            <type>text/plain</type>
            <size>6628</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyLi4zY2I0OGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEt
MjEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXN0TW9kaWZpZWREYXRlIGF0dHJpYnV0
ZSB0byBGaWxlIGludGVyZmFjZSBwZXIgRmlsZSBBUEkgc3BlYworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4OTUKKworICAgICAgICAqIGh0dHAvdGVz
dHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zY3JpcHQtdGVz
dHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwOiBBZGRlZC4KKwogMjAxMC0xMS0yMSAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmMTA3YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZp
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgRmlsZS5sYXN0TW9kaWZpZWRE
YXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC5kYXRhVHJh
bnNmZXIgY29udGFpbnMgYSBGaWxlIG9iamVjdCBvbiBkcm9wLgorUEFTUyBmaWxlLmxhc3RNb2Rp
ZmllZERhdGUgdmVyaWZpZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zp
bGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODllMTczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZXR1cC1maWxlLWlucHV0LWVsZW1lbnQtZm9y
LWRyYWcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9maWxlLWxhc3Qt
bW9kaWZpZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRl
c3RzL2ZpbGUtbGFzdC1tb2RpZmllZC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9zY3JpcHQtdGVzdHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMDQ3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL2ZpbGUtbGFzdC1tb2Rp
ZmllZC5qcwpAQCAtMCwwICsxLDMzIEBACitkZXNjcmlwdGlvbigiVGVzdCBGaWxlLmxhc3RNb2Rp
ZmllZERhdGUuIik7CisKK2Z1bmN0aW9uIG9uRmlsZURyb3AoZmlsZSwgZmlsZVBhdGgpCit7Cisg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwP3Bh
dGg9Li4vbG9jYWwvZmlsZWFwaS8iICsgZmlsZVBhdGgsIGZhbHNlKTsKKyAgICB4aHIuc2VuZCgp
OworICAgIHZhciBleHBlY3RlZERhdGUgPSBuZXcgRGF0ZShwYXJzZUludCh4aHIucmVzcG9uc2VU
ZXh0KSAqIDEwMDApOworICAgIHZhciBhY3R1YWxEYXRlID0gZmlsZS5sYXN0TW9kaWZpZWREYXRl
OworICAgIGlmIChleHBlY3RlZERhdGUudG9TdHJpbmcoKSA9PSBhY3R1YWxEYXRlLnRvU3RyaW5n
KCkpCisgICAgICAgIHRlc3RQYXNzZWQoImZpbGUubGFzdE1vZGlmaWVkRGF0ZSB2ZXJpZmllZCIp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiZmlsZS5sYXN0TW9kaWZpZWREYXRlIGlu
Y29ycmVjdCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgdGVzdEZpbGVQ
YXRoID0gIi4uL3Jlc291cmNlcy9maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0IjsKKyAgICBzZXRG
aWxlSW5wdXREcm9wQ2FsbGJhY2soZnVuY3Rpb24oZmlsZSkgeyBvbkZpbGVEcm9wKGZpbGUsIHRl
c3RGaWxlUGF0aCk7IH0pOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbdGVz
dEZpbGVQYXRoXSk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZmlsZUlucHV0KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICBydW5UZXN0KCk7CisgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzCisgICAg
cmVtb3ZlRmlsZUlucHV0RWxlbWVudCgpOworfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCJUaGlz
IHRlc3QgaXMgbm90IGludGVyYWN0aXZlLCBwbGVhc2UgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVl
Iik7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvZmlsZS1sYXN0LW1vZGlmaWVkLnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5waHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjZjk1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5w
aHAKQEAgLTAsMCArMSw3IEBACis8P3BocAorZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnVVRD
Jyk7CiskZmlsZVBhdGggPSAkX0dFVFsncGF0aCddOworaWYgKGZpbGVfZXhpc3RzKCRmaWxlUGF0
aCkpIHsKKyAgICBlY2hvIGRhdGUoIlUiLCBmaWxlbXRpbWUoJGZpbGVQYXRoKSk7Cit9Cis/Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzQ4NmE3Li4zMWU4N2MzIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTExLTIxICBKaWFuIExpICA8amlh
bmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGFzdE1vZGlmaWVkRGF0ZSBhdHRyaWJ1dGUgdG8gRmlsZSBpbnRlcmZh
Y2UgcGVyIEZpbGUgQVBJIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ5ODk1CisKKyAgICAgICAgbGFzdE1vZGlmaWVkRGF0ZSBpcyBub3Qgc3Vw
cG9ydGVkIGZvciBDUFAgYmluZGluZ3MgYmVjYXVzZSBEYXRlIGlzCisgICAgICAgIG5vdCBzdXBw
b3J0IGluIGNvZGUgZ2VuZXJhdGlvbi4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2xvY2Fs
L2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKKworICAgICAgICAqIGZpbGVhcGkvRmls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlOjpsYXN0TW9kaWZpZWREYXRlKToKKyAgICAg
ICAgKiBmaWxlYXBpL0ZpbGUuaDoKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGUuaWRsOgorCiAyMDEw
LTExLTIxICBNYXJpbyBTYW5jaGV6IFByYWRhICA8bXNhbmNoZXpAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBGbGVpemFjaC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvZmls
ZWFwaS9GaWxlLmNwcCBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAppbmRleCA1MWFkYTZjLi5k
ZDgxZjVhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIvV2ViQ29y
ZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpbmNsdWRlICJGaWxlU3lz
dGVtLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKQEAgLTY4LDYgKzcwLDE2IEBAIEZpbGU6OkZpbGUoY29uc3QgU3RyaW5nJiBy
ZWxhdGl2ZVBhdGgsIGNvbnN0IFN0cmluZyYgcGF0aCkKIH0KICNlbmRpZgogCitkb3VibGUgRmls
ZTo6bGFzdE1vZGlmaWVkRGF0ZSgpIGNvbnN0Cit7CisgICAgdGltZV90IG1vZGlmaWNhdGlvblRp
bWU7CisgICAgaWYgKCFnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShtX3BhdGgsIG1vZGlmaWNhdGlv
blRpbWUpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8vIE5lZWRzIHRvIHJldHVybiBlcG9j
aCB0aW1lIGluIG1pbGxpc2Vjb25kcyBmb3IgRGF0ZS4KKyAgICByZXR1cm4gbW9kaWZpY2F0aW9u
VGltZSAqIDEwMDAuMDsKK30KKwogdW5zaWduZWQgbG9uZyBsb25nIEZpbGU6OnNpemUoKSBjb25z
dAogewogICAgIC8vIEZJWE1FOiBKYXZhU2NyaXB0IGNhbm5vdCByZXByZXNlbnQgc2l6ZXMgYXMg
bGFyZ2UgYXMgdW5zaWduZWQgbG9uZyBsb25nLCB3ZSBuZWVkIHRvCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2ZpbGVhcGkvRmlsZS5oIGIvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAppbmRleCAwNmIwM2Nk
Li5kMjJiMDM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCisrKyBiL1dlYkNv
cmUvZmlsZWFwaS9GaWxlLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogCiAgICAgY29uc3Qg
U3RyaW5nJiBwYXRoKCkgY29uc3QgeyByZXR1cm4gbV9wYXRoOyB9CiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgZG91YmxlIGxhc3RNb2RpZmll
ZERhdGUoKSBjb25zdDsKICNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKICAgICAvLyBSZXR1
cm5zIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoaXMgZmlsZSBpbiB0aGUgY29udGV4dCBvZiBhIGRp
cmVjdG9yeSBzZWxlY3Rpb24uCiAgICAgY29uc3QgU3RyaW5nJiB3ZWJraXRSZWxhdGl2ZVBhdGgo
KSBjb25zdCB7IHJldHVybiBtX3JlbGF0aXZlUGF0aDsgfQpAQCAtOTEsNCArOTIsNCBAQCBwcml2
YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZiAvLyBGaWxlTGlzdF9oCisj
ZW5kaWYgLy8gRmlsZV9oCmRpZmYgLS1naXQgYS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwgYi9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5pZGwKaW5kZXggMTkzNzkwMS4uZDFlMjdhNCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCisrKyBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlk
bApAQCAtMzEsNiArMzEsOSBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIE5vU3RhdGljVGFibGVz
CiAgICAgXSBGaWxlIDogQmxvYiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJp
bmcgbmFtZTsKKyNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9DUFAKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgbGFzdE1vZGlmaWVkRGF0ZTsKKyNlbmRpZgog
I2lmIGRlZmluZWQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICYmIEVOQUJMRV9ESVJFQ1RPUllf
VVBMT0FECiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgd2Via2l0UmVsYXRp
dmVQYXRoOwogI2VuZGlmCg==
</data>
<flag name="commit-queue"
          id="65156"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74530</attachid>
            <date>2010-11-21 21:47:11 -0800</date>
            <delta_ts>2010-12-20 14:29:04 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>49895_3</filename>
            <type>text/plain</type>
            <size>6640</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwOTU0ZTMyLi4zY2I0OGQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMTEt
MjEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXN0TW9kaWZpZWREYXRlIGF0dHJpYnV0
ZSB0byBGaWxlIGludGVyZmFjZSBwZXIgRmlsZSBBUEkgc3BlYworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk4OTUKKworICAgICAgICAqIGh0dHAvdGVz
dHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9zY3JpcHQtdGVz
dHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwOiBBZGRlZC4KKwogMjAxMC0xMS0yMSAgUGF0
cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9sb2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWZmMTA3YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZp
ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgRmlsZS5sYXN0TW9kaWZpZWRE
YXRlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBldmVudC5kYXRhVHJh
bnNmZXIgY29udGFpbnMgYSBGaWxlIG9iamVjdCBvbiBkcm9wLgorUEFTUyBmaWxlLmxhc3RNb2Rp
ZmllZERhdGUgdmVyaWZpZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zp
bGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2ZpbGVhcGkvZmlsZS1sYXN0LW1vZGlmaWVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uODllMTczZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvbG9jYWwvZmlsZWFwaS9maWxlLWxhc3QtbW9kaWZpZWQuaHRtbApAQCAtMCwwICsx
LDE0IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8
aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi8uLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zZXR1cC1maWxlLWlucHV0LWVsZW1lbnQtZm9y
LWRyYWcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9maWxlLWxhc3Qt
bW9kaWZpZWQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL2Zhc3QvanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRl
c3RzL2ZpbGUtbGFzdC1tb2RpZmllZC5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwv
ZmlsZWFwaS9zY3JpcHQtdGVzdHMvZmlsZS1sYXN0LW1vZGlmaWVkLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUxMDQ3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2ZpbGVhcGkvc2NyaXB0LXRlc3RzL2ZpbGUtbGFzdC1tb2Rp
ZmllZC5qcwpAQCAtMCwwICsxLDMzIEBACitkZXNjcmlwdGlvbigiVGVzdCBGaWxlLmxhc3RNb2Rp
ZmllZERhdGUuIik7CisKK2Z1bmN0aW9uIG9uRmlsZURyb3AoZmlsZSwgZmlsZVBhdGgpCit7Cisg
ICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9maWxlLWxhc3QtbW9kaWZpZWQucGhwP3Bh
dGg9Li4vbG9jYWwvZmlsZWFwaS8iICsgZmlsZVBhdGgsIGZhbHNlKTsKKyAgICB4aHIuc2VuZCgp
OworICAgIHZhciBleHBlY3RlZERhdGUgPSBuZXcgRGF0ZShwYXJzZUludCh4aHIucmVzcG9uc2VU
ZXh0KSAqIDEwMDApOworICAgIHZhciBhY3R1YWxEYXRlID0gZmlsZS5sYXN0TW9kaWZpZWREYXRl
OworICAgIGlmIChleHBlY3RlZERhdGUudG9TdHJpbmcoKSA9PSBhY3R1YWxEYXRlLnRvU3RyaW5n
KCkpCisgICAgICAgIHRlc3RQYXNzZWQoImZpbGUubGFzdE1vZGlmaWVkRGF0ZSB2ZXJpZmllZCIp
OworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiZmlsZS5sYXN0TW9kaWZpZWREYXRlIGlu
Y29ycmVjdCIpOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgdGVzdEZpbGVQ
YXRoID0gIi4uL3Jlc291cmNlcy9maWxlLWZvci1kcmFnLXRvLXNlbmQudHh0IjsKKyAgICBzZXRG
aWxlSW5wdXREcm9wQ2FsbGJhY2soZnVuY3Rpb24oZmlsZSkgeyBvbkZpbGVEcm9wKGZpbGUsIHRl
c3RGaWxlUGF0aCk7IH0pOworICAgIGV2ZW50U2VuZGVyLmJlZ2luRHJhZ1dpdGhGaWxlcyhbdGVz
dEZpbGVQYXRoXSk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZmlsZUlucHV0KTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgICBydW5UZXN0KCk7CisgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIgb3Vyc2VsdmVzCisgICAg
cmVtb3ZlRmlsZUlucHV0RWxlbWVudCgpOworfSBlbHNlIHsKKyAgICB0ZXN0RmFpbGVkKCJUaGlz
IHRlc3QgaXMgbm90IGludGVyYWN0aXZlLCBwbGVhc2UgcnVuIHVzaW5nIER1bXBSZW5kZXJUcmVl
Iik7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvZmlsZS1sYXN0LW1vZGlmaWVkLnBocCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5waHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWZjZjk1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2ZpbGUtbGFzdC1tb2RpZmllZC5w
aHAKQEAgLTAsMCArMSw3IEBACis8P3BocAorZGF0ZV9kZWZhdWx0X3RpbWV6b25lX3NldCgnVVRD
Jyk7CiskZmlsZVBhdGggPSAkX0dFVFsncGF0aCddOworaWYgKGZpbGVfZXhpc3RzKCRmaWxlUGF0
aCkpIHsKKyAgICBlY2hvIGRhdGUoIlUiLCBmaWxlbXRpbWUoJGZpbGVQYXRoKSk7Cit9Cis/Pgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAx
NzQ4NmE3Li5iYjI2NjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEwLTExLTIxICBKaWFuIExpICA8amlh
bmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgbGFzdE1vZGlmaWVkRGF0ZSBhdHRyaWJ1dGUgdG8gRmlsZSBpbnRlcmZh
Y2UgcGVyIEZpbGUgQVBJIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ5ODk1CisKKyAgICAgICAgbGFzdE1vZGlmaWVkRGF0ZSBpcyBub3Qgc3Vw
cG9ydGVkIGZvciBHT2JqZWN0IGJpbmRpbmdzIGJlY2F1c2UgRGF0ZSBpcworICAgICAgICBub3Qg
c3VwcG9ydCBpbiBjb2RlIGdlbmVyYXRpb24uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9s
b2NhbC9maWxlYXBpL2ZpbGUtbGFzdC1tb2RpZmllZC5odG1sCisKKyAgICAgICAgKiBmaWxlYXBp
L0ZpbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6bGFzdE1vZGlmaWVkRGF0ZSk6Cisg
ICAgICAgICogZmlsZWFwaS9GaWxlLmg6CisgICAgICAgICogZmlsZWFwaS9GaWxlLmlkbDoKKwog
MjAxMC0xMS0yMSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXphY2guCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2ZpbGVhcGkvRmlsZS5jcHAgYi9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggNTFhZGE2
Yy4uZGQ4MWY1YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCisrKyBiL1dl
YkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtMjgsNiArMjgsOCBAQAogCiAjaW5jbHVkZSAiRmls
ZVN5c3RlbS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCkBAIC02OCw2ICs3MCwxNiBAQCBGaWxlOjpGaWxlKGNvbnN0IFN0cmlu
ZyYgcmVsYXRpdmVQYXRoLCBjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAjZW5kaWYKIAorZG91Ymxl
IEZpbGU6Omxhc3RNb2RpZmllZERhdGUoKSBjb25zdAoreworICAgIHRpbWVfdCBtb2RpZmljYXRp
b25UaW1lOworICAgIGlmICghZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoLCBtb2RpZmlj
YXRpb25UaW1lKSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICAvLyBOZWVkcyB0byByZXR1cm4g
ZXBvY2ggdGltZSBpbiBtaWxsaXNlY29uZHMgZm9yIERhdGUuCisgICAgcmV0dXJuIG1vZGlmaWNh
dGlvblRpbWUgKiAxMDAwLjA7Cit9CisKIHVuc2lnbmVkIGxvbmcgbG9uZyBGaWxlOjpzaXplKCkg
Y29uc3QKIHsKICAgICAvLyBGSVhNRTogSmF2YVNjcmlwdCBjYW5ub3QgcmVwcmVzZW50IHNpemVz
IGFzIGxhcmdlIGFzIHVuc2lnbmVkIGxvbmcgbG9uZywgd2UgbmVlZCB0bwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9maWxlYXBpL0ZpbGUuaCBiL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmgKaW5kZXggMDZi
MDNjZC4uZDIyYjAzNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaAorKysgYi9X
ZWJDb3JlL2ZpbGVhcGkvRmlsZS5oCkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIGNv
bnN0IFN0cmluZyYgcGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGF0aDsgfQogICAgIGNvbnN0IFN0
cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQorICAgIGRvdWJsZSBsYXN0TW9k
aWZpZWREYXRlKCkgY29uc3Q7CiAjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCiAgICAgLy8g
UmV0dXJucyB0aGUgcmVsYXRpdmUgcGF0aCBvZiB0aGlzIGZpbGUgaW4gdGhlIGNvbnRleHQgb2Yg
YSBkaXJlY3Rvcnkgc2VsZWN0aW9uLgogICAgIGNvbnN0IFN0cmluZyYgd2Via2l0UmVsYXRpdmVQ
YXRoKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGl2ZVBhdGg7IH0KQEAgLTkxLDQgKzkyLDQgQEAg
cHJpdmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gRmlsZUxpc3Rf
aAorI2VuZGlmIC8vIEZpbGVfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRs
IGIvV2ViQ29yZS9maWxlYXBpL0ZpbGUuaWRsCmluZGV4IDE5Mzc5MDEuLjc0YTZmNzYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmlkbAorKysgYi9XZWJDb3JlL2ZpbGVhcGkvRmls
ZS5pZGwKQEAgLTMxLDYgKzMxLDkgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICBOb1N0YXRpY1Rh
YmxlcwogICAgIF0gRmlsZSA6IEJsb2IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9N
U3RyaW5nIG5hbWU7CisjaWYgIWRlZmluZWQoTEFOR1VBR0VfR09CSkVDVCkgfHwgIUxBTkdVQUdF
X0dPQkpFQ1QKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERhdGUgbGFzdE1vZGlmaWVkRGF0
ZTsKKyNlbmRpZgogI2lmIGRlZmluZWQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICYmIEVOQUJM
RV9ESVJFQ1RPUllfVVBMT0FECiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
d2Via2l0UmVsYXRpdmVQYXRoOwogI2VuZGlmCg==
</data>
<flag name="review"
          id="65157"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="65158"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>