<?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>35361</bug_id>
          
          <creation_ts>2010-02-24 14:38:07 -0800</creation_ts>
          <short_desc>File.type support</short_desc>
          <delta_ts>2010-02-25 14:31:47 -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 JavaScript</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="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>193514</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-24 14:38:07 -0800</bug_when>
    <thetext>Need to implement File.type as defined in File API spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193519</commentid>
    <comment_count>1</comment_count>
      <attachid>49443</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-24 14:42:11 -0800</bug_when>
    <thetext>Created attachment 49443
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193536</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-02-24 14:58:43 -0800</bug_when>
    <thetext>Is the non-existing file detected as &quot;application/octet-stream&quot; on all platforms? The test update seems to assume this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193556</commentid>
    <comment_count>3</comment_count>
      <attachid>49450</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-24 16:34:07 -0800</bug_when>
    <thetext>Created attachment 49450
Proposed Patch

Changed to call the function that returns empty string on failure, in order to stick to the spec.

For non-existent file, we do not perform the check since the check will involve synchronous file operation and the file might become valid right before accessing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193817</commentid>
    <comment_count>4</comment_count>
      <attachid>49450</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-02-25 11:44:08 -0800</bug_when>
    <thetext>Comment on attachment 49450
Proposed Patch

&gt; diff --git a/WebCore/html/File.cpp b/WebCore/html/File.cpp
&gt;  File::File(const String&amp; path)
&gt;      : Blob(path)
&gt;      , m_name(pathGetFileName(path))
&gt; +    // We don&apos;t use MIMETypeRegistry::getMIMETypeForPath() because it returns &quot;application/octet-stream&quot; upon failure
&gt; +    , m_type(MIMETypeRegistry::getMIMETypeForExtension(path.substring(path.reverseFind(&apos;.&apos;) + 1)))

It looks too complex code to have it in initializer. Also, for the path &quot;gif&quot; it will return a valid mime type while it should return &quot;&quot;.
Could it be moved into ctor body with more checks?

Also, getMIMETypeForExtension on some platforms also returns non-empty string when it can&apos;t match the extension - see for example MIMETypeRegistryQt.cpp
It might be a good idea to ask port developers if they want to fix those.

r- because of initializer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193825</commentid>
    <comment_count>5</comment_count>
      <attachid>49514</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-25 12:17:59 -0800</bug_when>
    <thetext>Created attachment 49514
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193828</commentid>
    <comment_count>6</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-25 12:20:40 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 49450 [details])
&gt; &gt; diff --git a/WebCore/html/File.cpp b/WebCore/html/File.cpp
&gt; &gt;  File::File(const String&amp; path)
&gt; &gt;      : Blob(path)
&gt; &gt;      , m_name(pathGetFileName(path))
&gt; &gt; +    // We don&apos;t use MIMETypeRegistry::getMIMETypeForPath() because it returns &quot;application/octet-stream&quot; upon failure
&gt; &gt; +    , m_type(MIMETypeRegistry::getMIMETypeForExtension(path.substring(path.reverseFind(&apos;.&apos;) + 1)))
&gt; 
&gt; It looks too complex code to have it in initializer. Also, for the path &quot;gif&quot;
&gt; it will return a valid mime type while it should return &quot;&quot;.
&gt; Could it be moved into ctor body with more checks?

Indeed the above code handles the file with name &quot;gif&quot; since we&apos;re finding in the full path.

Moved to the body and changed to use the name to make the logic clear.
&gt; 
&gt; Also, getMIMETypeForExtension on some platforms also returns non-empty string
&gt; when it can&apos;t match the extension - see for example MIMETypeRegistryQt.cpp
&gt; It might be a good idea to ask port developers if they want to fix those.
&gt; 
I will ping qt developer on this.

&gt; r- because of initializer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193858</commentid>
    <comment_count>7</comment_count>
      <attachid>49514</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2010-02-25 13:01:24 -0800</bug_when>
    <thetext>Comment on attachment 49514
Proposed Patch

r=me

&gt; diff --git a/WebCore/html/File.cpp b/WebCore/html/File.cpp
&gt; +    // We don&apos;t use MIMETypeRegistry::getMIMETypeForPath() because it returns &quot;application/octet-stream&quot; upon failure

Nit - please add a &quot;.&quot; at the end of this sentence.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>193885</commentid>
    <comment_count>8</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-02-25 14:31:47 -0800</bug_when>
    <thetext>Committed as http://trac.webkit.org/changeset/55257.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49443</attachid>
            <date>2010-02-24 14:42:11 -0800</date>
            <delta_ts>2010-02-24 16:34:07 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>35361</filename>
            <type>text/plain</type>
            <size>6363</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNTEyMmM4Li43MzlmYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBV
cGRhdGUgdGhlIGxheW91dCB0ZXN0IHRvIHRlc3QgRmlsZS50eXBlLgorCisgICAgICAgICogZWRp
dGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzOgorICAgICAgICAoZmlsZUxpc3RTaG91bGRCZSk6CisgICAgICAgIChydW5UZXN0
KToKKwogMjAxMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVz
LWFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggY2FhN2NjYy4uNDQ2MzdjNSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1
dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw3IEBAIERyYWdnaW5nIGEg
c2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQQVNT
IGZpbGVJbnB1dC52YWx1ZSBpcyAiRFJURmFrZUZpbGUiCiBQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMQogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0ubmFtZSBpcyAiRFJURmFrZUZpbGUi
CitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS50eXBlIGlzICJhcHBsaWNhdGlvbi9vY3RldC1zdHJl
YW0iCiBQQVNTIGZpbGVJbnB1dC5maWxlc1swXS5zaXplIGlzIDAKIFBBU1MgZmlsZUlucHV0LmZp
bGVzWzBdLmZpbGVOYW1lIGlzICJEUlRGYWtlRmlsZSIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBd
LmZpbGVTaXplIGlzIDAKQEAgLTE3LDYgKzE4LDcgQEAgRHJhZ2dpbmcgYSByZWFsIGZpbGUgdG8g
YSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lm
IgogUEFTUyBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoIGlzIDEKIFBBU1MgZmlsZUlucHV0LmZpbGVz
WzBdLm5hbWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnR5cGUgaXMg
ImltYWdlL2dpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnNpemUgaXMgMTQ3NgogUEFTUyBm
aWxlSW5wdXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKIFBBU1MgZmlsZUlucHV0
LmZpbGVzWzBdLmZpbGVTaXplIGlzIDE0NzYKQEAgLTM4LDEwICs0MCwxMiBAQCBEcmFnZ2luZyB0
d28gZmlsZXMgdG8gYSBtdWx0aS1maWxlIGlucHV0IGNvbnRyb2w6CiBQQVNTIGZpbGVJbnB1dC52
YWx1ZSBpcyAiYXBwbGUuZ2lmIgogUEFTUyBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoIGlzIDIKIFBB
U1MgZmlsZUlucHV0LmZpbGVzWzBdLm5hbWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0
LmZpbGVzWzBdLnR5cGUgaXMgImltYWdlL2dpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnNp
emUgaXMgMTQ3NgogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdp
ZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDE0NzYKIFBBU1MgZmlsZUlu
cHV0LmZpbGVzWzFdLm5hbWUgaXMgIm1vemlsbGEuZ2lmIgorUEFTUyBmaWxlSW5wdXQuZmlsZXNb
MV0udHlwZSBpcyAiaW1hZ2UvZ2lmIgogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMV0uc2l6ZSBpcyAy
NTkzCiBQQVNTIGZpbGVJbnB1dC5maWxlc1sxXS5maWxlTmFtZSBpcyAibW96aWxsYS5naWYiCiBQ
QVNTIGZpbGVJbnB1dC5maWxlc1sxXS5maWxlU2l6ZSBpcyAyNTkzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9m
aWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCBhMDkzMDM5Li4xYzdlMjc3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5w
dXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9z
Y3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAgLTI3LDYgKzI3LDcgQEAg
ZnVuY3Rpb24gZmlsZUxpc3RTaG91bGRCZShmaWxlTGlzdFN0cmluZywgZmlsZXNBcnJheSkKICAg
ICBmb3IgKHZhciB4ID0gMDsgeCA8IGZpbGVzQXJyYXkubGVuZ3RoOyB4KyspIHsKICAgICAgICAg
dmFyIGZpbGVWYWx1ZVN0cmluZyA9IGZpbGVMaXN0U3RyaW5nICsgIlsiICsgeCArICJdIjsKICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKGZpbGVWYWx1ZVN0cmluZyArICIubmFtZSIsIGZp
bGVzQXJyYXlbeF1bJ25hbWUnXSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhmaWxl
VmFsdWVTdHJpbmcgKyAiLnR5cGUiLCBmaWxlc0FycmF5W3hdWyd0eXBlJ10pOwogICAgICAgICBz
aG91bGRCZShmaWxlVmFsdWVTdHJpbmcgKyAiLnNpemUiLCAiIiArIGZpbGVzQXJyYXlbeF1bJ3Np
emUnXSk7CiAKICAgICAgICAgLy8gRklYTUU6IHRvIGJlIHJlbW92ZWQgYWZ0ZXIgbGVnYWN5IGF0
dHJpYnV0ZXMgYXJlIHJlbW92ZWQuIApAQCAtODAsMTIgKzgxLDEyIEBAIGZ1bmN0aW9uIHJ1blRl
c3QoKQogCiAgICAgZGVidWcoIkRyYWdnaW5nIGEgc2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUg
dG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAg
ICAgICB7ICdwYXRoJzogJ0RSVEZha2VGaWxlJywgJ25hbWUnIDogJ0RSVEZha2VGaWxlJywgJ3Np
emUnIDogMCB9CisgICAgICAgIHsgJ3BhdGgnOiAnRFJURmFrZUZpbGUnLCAnbmFtZScgOiAnRFJU
RmFrZUZpbGUnLCAnc2l6ZScgOiAwLCAndHlwZScgOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFt
JyB9CiAgICAgXSk7CiAKICAgICBkZWJ1ZygiRHJhZ2dpbmcgYSByZWFsIGZpbGUgdG8gYSBmaWxl
IGlucHV0IGNvbnRyb2w6Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAgICAgICB7ICdw
YXRoJzogJ3Jlc291cmNlcy9hcHBsZS5naWYnLCAnbmFtZScgOiAnYXBwbGUuZ2lmJywgJ3NpemUn
IDogMTQ3NiB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdpZicsICduYW1l
JyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1hZ2UvZ2lmJyB9CiAg
ICAgXSk7CiAKICAgICAvLyBEaXJlY3RvcnkgZHJhZ2dpbmcgYmVoYXZpb3IgaXMgY292ZXJlZCBi
eQpAQCAtMTA1LDggKzEwNiw4IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgZGVidWcoIkRy
YWdnaW5nIHR3byBmaWxlcyB0byBhIG11bHRpLWZpbGUgaW5wdXQgY29udHJvbDoiKTsKICAgICB0
ZXN0RHJhZ2dpbmdGaWxlcyhbCi0gICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdp
ZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0sCi0gICAgICAgIHsgJ3Bh
dGgnOiAncmVzb3VyY2VzL21vemlsbGEuZ2lmJywgJ25hbWUnIDogJ21vemlsbGEuZ2lmJywgJ3Np
emUnIDogMjU5MyB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdpZicsICdu
YW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1hZ2UvZ2lmJyB9
LAorICAgICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9tb3ppbGxhLmdpZicsICduYW1lJyA6ICdt
b3ppbGxhLmdpZicsICdzaXplJyA6IDI1OTMsICd0eXBlJyA6ICdpbWFnZS9naWYnIH0KICAgICBd
KTsKIAogICAgIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNkZDQxY2UuLjM5
Mzg5MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBUZXN0OiBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bh
c3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAorCisgICAgICAgICogaHRtbC9G
aWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAqIGh0bWwv
RmlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6dHlwZSk6CisgICAgICAgICogaHRtbC9G
aWxlLmlkbDoKKwogMjAxMC0wMi0yNCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhLmhpZGF5YXRAZ21h
aWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2Vu
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuY3BwIGIvV2ViQ29yZS9odG1sL0ZpbGUu
Y3BwCmluZGV4IDI1ZTI4ZTQuLjlhNDYzMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9GaWxl
LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5jcHAKQEAgLTI3LDEyICsyNywxNCBAQAogI2lu
Y2x1ZGUgIkZpbGUuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmlsZTo6RmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpCiAgICAgOiBCbG9iKHBhdGgpCiAgICAgLCBtX25hbWUocGF0aEdldEZp
bGVOYW1lKHBhdGgpKQorICAgICwgbV90eXBlKE1JTUVUeXBlUmVnaXN0cnk6OmdldE1JTUVUeXBl
Rm9yUGF0aChwYXRoKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaCBi
L1dlYkNvcmUvaHRtbC9GaWxlLmgKaW5kZXggYmU1M2UzMC4uZGRhNDgyYSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0ZpbGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5oCkBAIC00MCw2ICs0
MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KIAogICAgIC8vIEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVzLiBUbyBiZSBy
ZW1vdmVkLgogICAgIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX25h
bWU7IH0KQEAgLTQ5LDYgKzUwLDcgQEAgcHJpdmF0ZToKICAgICBGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCk7CiAKICAgICBTdHJpbmcgbV9uYW1lOworICAgIFN0cmluZyBtX3R5cGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5pZGwg
Yi9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKaW5kZXggMjYzMmE0ZC4uOTQyODdmZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmlkbApAQCAt
MzAsNiArMzAsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0g
RmlsZSA6IEJsb2IgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIAogICAgICAgICAv
LyBGSVhNRTogb2Jzb2xldGUgYXR0cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBmaWxlTmFtZTsK
</data>
<flag name="commit-queue"
          id="32310"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49450</attachid>
            <date>2010-02-24 16:34:07 -0800</date>
            <delta_ts>2010-02-25 12:17:59 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>35361_2</filename>
            <type>text/plain</type>
            <size>6476</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNTEyMmM4Li43MzlmYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBV
cGRhdGUgdGhlIGxheW91dCB0ZXN0IHRvIHRlc3QgRmlsZS50eXBlLgorCisgICAgICAgICogZWRp
dGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzOgorICAgICAgICAoZmlsZUxpc3RTaG91bGRCZSk6CisgICAgICAgIChydW5UZXN0
KToKKwogMjAxMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVz
LWFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggY2FhN2NjYy4uYmJjZmZjNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1
dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw3IEBAIERyYWdnaW5nIGEg
c2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQQVNT
IGZpbGVJbnB1dC52YWx1ZSBpcyAiRFJURmFrZUZpbGUiCiBQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMQogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0ubmFtZSBpcyAiRFJURmFrZUZpbGUi
CitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS50eXBlIGlzICIiCiBQQVNTIGZpbGVJbnB1dC5maWxl
c1swXS5zaXplIGlzIDAKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVOYW1lIGlzICJEUlRG
YWtlRmlsZSIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDAKQEAgLTE3LDYg
KzE4LDcgQEAgRHJhZ2dpbmcgYSByZWFsIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQ
QVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lmIgogUEFTUyBmaWxlSW5wdXQuZmlsZXMu
bGVuZ3RoIGlzIDEKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLm5hbWUgaXMgImFwcGxlLmdpZiIK
K1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnR5cGUgaXMgImltYWdlL2dpZiIKIFBBU1MgZmlsZUlu
cHV0LmZpbGVzWzBdLnNpemUgaXMgMTQ3NgogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0uZmlsZU5h
bWUgaXMgImFwcGxlLmdpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDE0
NzYKQEAgLTM4LDEwICs0MCwxMiBAQCBEcmFnZ2luZyB0d28gZmlsZXMgdG8gYSBtdWx0aS1maWxl
IGlucHV0IGNvbnRyb2w6CiBQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lmIgogUEFT
UyBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoIGlzIDIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLm5h
bWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnR5cGUgaXMgImltYWdl
L2dpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnNpemUgaXMgMTQ3NgogUEFTUyBmaWxlSW5w
dXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVz
WzBdLmZpbGVTaXplIGlzIDE0NzYKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzFdLm5hbWUgaXMgIm1v
emlsbGEuZ2lmIgorUEFTUyBmaWxlSW5wdXQuZmlsZXNbMV0udHlwZSBpcyAiaW1hZ2UvZ2lmIgog
UEFTUyBmaWxlSW5wdXQuZmlsZXNbMV0uc2l6ZSBpcyAyNTkzCiBQQVNTIGZpbGVJbnB1dC5maWxl
c1sxXS5maWxlTmFtZSBpcyAibW96aWxsYS5naWYiCiBQQVNTIGZpbGVJbnB1dC5maWxlc1sxXS5m
aWxlU2l6ZSBpcyAyNTkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
cwppbmRleCBhMDkzMDM5Li5kMTdmODk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1m
aWxlcy1hY2Nlc3MuanMKQEAgLTI3LDYgKzI3LDcgQEAgZnVuY3Rpb24gZmlsZUxpc3RTaG91bGRC
ZShmaWxlTGlzdFN0cmluZywgZmlsZXNBcnJheSkKICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGZp
bGVzQXJyYXkubGVuZ3RoOyB4KyspIHsKICAgICAgICAgdmFyIGZpbGVWYWx1ZVN0cmluZyA9IGZp
bGVMaXN0U3RyaW5nICsgIlsiICsgeCArICJdIjsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKGZpbGVWYWx1ZVN0cmluZyArICIubmFtZSIsIGZpbGVzQXJyYXlbeF1bJ25hbWUnXSk7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhmaWxlVmFsdWVTdHJpbmcgKyAiLnR5cGUiLCBm
aWxlc0FycmF5W3hdWyd0eXBlJ10pOwogICAgICAgICBzaG91bGRCZShmaWxlVmFsdWVTdHJpbmcg
KyAiLnNpemUiLCAiIiArIGZpbGVzQXJyYXlbeF1bJ3NpemUnXSk7CiAKICAgICAgICAgLy8gRklY
TUU6IHRvIGJlIHJlbW92ZWQgYWZ0ZXIgbGVnYWN5IGF0dHJpYnV0ZXMgYXJlIHJlbW92ZWQuIApA
QCAtODAsMTIgKzgxLDEyIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgZGVidWcoIkRyYWdn
aW5nIGEgc2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6
Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAgICAgICB7ICdwYXRoJzogJ0RSVEZha2VG
aWxlJywgJ25hbWUnIDogJ0RSVEZha2VGaWxlJywgJ3NpemUnIDogMCB9CisgICAgICAgIHsgJ3Bh
dGgnOiAnRFJURmFrZUZpbGUnLCAnbmFtZScgOiAnRFJURmFrZUZpbGUnLCAnc2l6ZScgOiAwLCAn
dHlwZScgOiAnJyB9CiAgICAgXSk7CiAKICAgICBkZWJ1ZygiRHJhZ2dpbmcgYSByZWFsIGZpbGUg
dG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAg
ICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9hcHBsZS5naWYnLCAnbmFtZScgOiAnYXBwbGUuZ2lm
JywgJ3NpemUnIDogMTQ3NiB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdp
ZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1hZ2Uv
Z2lmJyB9CiAgICAgXSk7CiAKICAgICAvLyBEaXJlY3RvcnkgZHJhZ2dpbmcgYmVoYXZpb3IgaXMg
Y292ZXJlZCBieQpAQCAtMTA1LDggKzEwNiw4IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAg
ZGVidWcoIkRyYWdnaW5nIHR3byBmaWxlcyB0byBhIG11bHRpLWZpbGUgaW5wdXQgY29udHJvbDoi
KTsKICAgICB0ZXN0RHJhZ2dpbmdGaWxlcyhbCi0gICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2Vz
L2FwcGxlLmdpZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0sCi0gICAg
ICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL21vemlsbGEuZ2lmJywgJ25hbWUnIDogJ21vemlsbGEu
Z2lmJywgJ3NpemUnIDogMjU5MyB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxl
LmdpZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1h
Z2UvZ2lmJyB9LAorICAgICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9tb3ppbGxhLmdpZicsICdu
YW1lJyA6ICdtb3ppbGxhLmdpZicsICdzaXplJyA6IDI1OTMsICd0eXBlJyA6ICdpbWFnZS9naWYn
IH0KICAgICBdKTsKIAogICAgIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNk
ZDQxY2UuLjM5Mzg5MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMjQgIEppYW4gTGkgIDxqaWFu
bGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBUZXN0OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAorCisgICAgICAg
ICogaHRtbC9GaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAg
ICAqIGh0bWwvRmlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6dHlwZSk6CisgICAgICAg
ICogaHRtbC9GaWxlLmlkbDoKKwogMjAxMC0wMi0yNCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhLmhp
ZGF5YXRAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuY3BwIGIvV2ViQ29yZS9o
dG1sL0ZpbGUuY3BwCmluZGV4IDI1ZTI4ZTQuLmFmMTdjYmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9GaWxlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5jcHAKQEAgLTI3LDEyICsyNywx
NSBAQAogI2luY2x1ZGUgIkZpbGUuaCIKIAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKKyNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmlsZTo6
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgOiBCbG9iKHBhdGgpCiAgICAgLCBtX25hbWUo
cGF0aEdldEZpbGVOYW1lKHBhdGgpKQorICAgIC8vIFdlIGRvbid0IHVzZSBNSU1FVHlwZVJlZ2lz
dHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoKSBiZWNhdXNlIGl0IHJldHVybnMgImFwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbSIgdXBvbiBmYWlsdXJlCisgICAgLCBtX3R5cGUoTUlNRVR5cGVSZWdpc3Ry
eTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24ocGF0aC5zdWJzdHJpbmcocGF0aC5yZXZlcnNlRmlu
ZCgnLicpICsgMSkpKQogewogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5oIGIv
V2ViQ29yZS9odG1sL0ZpbGUuaAppbmRleCBiZTUzZTMwLi5kZGE0ODJhIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvRmlsZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmgKQEAgLTQwLDYgKzQw
LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbmFtZTsgfQorICAgIGNvbnN0IFN0cmluZyYgdHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdHlwZTsgfQogCiAgICAgLy8gRklYTUU6IG9ic29sZXRlIGF0dHJpYnV0ZXMuIFRvIGJlIHJl
bW92ZWQuCiAgICAgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFt
ZTsgfQpAQCAtNDksNiArNTAsNyBAQCBwcml2YXRlOgogICAgIEZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoKTsKIAogICAgIFN0cmluZyBtX25hbWU7CisgICAgU3RyaW5nIG1fdHlwZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9GaWxlLmlkbCBi
L1dlYkNvcmUvaHRtbC9GaWxlLmlkbAppbmRleCAyNjMyYTRkLi45NDI4N2ZmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvRmlsZS5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0ZpbGUuaWRsCkBAIC0z
MCw2ICszMCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgR2VuZXJhdGVUb0pTCiAgICAgXSBG
aWxlIDogQmxvYiB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgbmFtZTsK
KyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0eXBlOwogCiAgICAgICAgIC8v
IEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVzLiBUbyBiZSByZW1vdmVkLgogICAgICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGZpbGVOYW1lOwo=
</data>
<flag name="review"
          id="32323"
          type_id="1"
          status="-"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="32324"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49514</attachid>
            <date>2010-02-25 12:17:59 -0800</date>
            <delta_ts>2010-02-25 13:01:24 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>35361_3</filename>
            <type>text/plain</type>
            <size>6570</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNTEyMmM4Li43MzlmYmNhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MjQgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBV
cGRhdGUgdGhlIGxheW91dCB0ZXN0IHRvIHRlc3QgRmlsZS50eXBlLgorCisgICAgICAgICogZWRp
dGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMt
YWNjZXNzLmpzOgorICAgICAgICAoZmlsZUxpc3RTaG91bGRCZSk6CisgICAgICAgIChydW5UZXN0
KToKKwogMjAxMC0wMi0yNCAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+
CiAKICAgICAgICAgUnViYmVyLXN0YW1wZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9maWxlLWlucHV0LWZpbGVz
LWFjY2Vzcy1leHBlY3RlZC50eHQKaW5kZXggY2FhN2NjYy4uYmJjZmZjNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1
dC1maWxlcy1hY2Nlc3MtZXhwZWN0ZWQudHh0CkBAIC0xMCw2ICsxMCw3IEBAIERyYWdnaW5nIGEg
c2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQQVNT
IGZpbGVJbnB1dC52YWx1ZSBpcyAiRFJURmFrZUZpbGUiCiBQQVNTIGZpbGVJbnB1dC5maWxlcy5s
ZW5ndGggaXMgMQogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0ubmFtZSBpcyAiRFJURmFrZUZpbGUi
CitQQVNTIGZpbGVJbnB1dC5maWxlc1swXS50eXBlIGlzICIiCiBQQVNTIGZpbGVJbnB1dC5maWxl
c1swXS5zaXplIGlzIDAKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVOYW1lIGlzICJEUlRG
YWtlRmlsZSIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDAKQEAgLTE3LDYg
KzE4LDcgQEAgRHJhZ2dpbmcgYSByZWFsIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6CiBQ
QVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lmIgogUEFTUyBmaWxlSW5wdXQuZmlsZXMu
bGVuZ3RoIGlzIDEKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLm5hbWUgaXMgImFwcGxlLmdpZiIK
K1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnR5cGUgaXMgImltYWdlL2dpZiIKIFBBU1MgZmlsZUlu
cHV0LmZpbGVzWzBdLnNpemUgaXMgMTQ3NgogUEFTUyBmaWxlSW5wdXQuZmlsZXNbMF0uZmlsZU5h
bWUgaXMgImFwcGxlLmdpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLmZpbGVTaXplIGlzIDE0
NzYKQEAgLTM4LDEwICs0MCwxMiBAQCBEcmFnZ2luZyB0d28gZmlsZXMgdG8gYSBtdWx0aS1maWxl
IGlucHV0IGNvbnRyb2w6CiBQQVNTIGZpbGVJbnB1dC52YWx1ZSBpcyAiYXBwbGUuZ2lmIgogUEFT
UyBmaWxlSW5wdXQuZmlsZXMubGVuZ3RoIGlzIDIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLm5h
bWUgaXMgImFwcGxlLmdpZiIKK1BBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnR5cGUgaXMgImltYWdl
L2dpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzBdLnNpemUgaXMgMTQ3NgogUEFTUyBmaWxlSW5w
dXQuZmlsZXNbMF0uZmlsZU5hbWUgaXMgImFwcGxlLmdpZiIKIFBBU1MgZmlsZUlucHV0LmZpbGVz
WzBdLmZpbGVTaXplIGlzIDE0NzYKIFBBU1MgZmlsZUlucHV0LmZpbGVzWzFdLm5hbWUgaXMgIm1v
emlsbGEuZ2lmIgorUEFTUyBmaWxlSW5wdXQuZmlsZXNbMV0udHlwZSBpcyAiaW1hZ2UvZ2lmIgog
UEFTUyBmaWxlSW5wdXQuZmlsZXNbMV0uc2l6ZSBpcyAyNTkzCiBQQVNTIGZpbGVJbnB1dC5maWxl
c1sxXS5maWxlTmFtZSBpcyAibW96aWxsYS5naWYiCiBQQVNTIGZpbGVJbnB1dC5maWxlc1sxXS5m
aWxlU2l6ZSBpcyAyNTkzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9h
cmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
cwppbmRleCBhMDkzMDM5Li5kMTdmODk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1m
aWxlcy1hY2Nlc3MuanMKQEAgLTI3LDYgKzI3LDcgQEAgZnVuY3Rpb24gZmlsZUxpc3RTaG91bGRC
ZShmaWxlTGlzdFN0cmluZywgZmlsZXNBcnJheSkKICAgICBmb3IgKHZhciB4ID0gMDsgeCA8IGZp
bGVzQXJyYXkubGVuZ3RoOyB4KyspIHsKICAgICAgICAgdmFyIGZpbGVWYWx1ZVN0cmluZyA9IGZp
bGVMaXN0U3RyaW5nICsgIlsiICsgeCArICJdIjsKICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKGZpbGVWYWx1ZVN0cmluZyArICIubmFtZSIsIGZpbGVzQXJyYXlbeF1bJ25hbWUnXSk7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZyhmaWxlVmFsdWVTdHJpbmcgKyAiLnR5cGUiLCBm
aWxlc0FycmF5W3hdWyd0eXBlJ10pOwogICAgICAgICBzaG91bGRCZShmaWxlVmFsdWVTdHJpbmcg
KyAiLnNpemUiLCAiIiArIGZpbGVzQXJyYXlbeF1bJ3NpemUnXSk7CiAKICAgICAgICAgLy8gRklY
TUU6IHRvIGJlIHJlbW92ZWQgYWZ0ZXIgbGVnYWN5IGF0dHJpYnV0ZXMgYXJlIHJlbW92ZWQuIApA
QCAtODAsMTIgKzgxLDEyIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgZGVidWcoIkRyYWdn
aW5nIGEgc2luZ2xlIChub24tZXhpc3RhbnQpIGZpbGUgdG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6
Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAgICAgICB7ICdwYXRoJzogJ0RSVEZha2VG
aWxlJywgJ25hbWUnIDogJ0RSVEZha2VGaWxlJywgJ3NpemUnIDogMCB9CisgICAgICAgIHsgJ3Bh
dGgnOiAnRFJURmFrZUZpbGUnLCAnbmFtZScgOiAnRFJURmFrZUZpbGUnLCAnc2l6ZScgOiAwLCAn
dHlwZScgOiAnJyB9CiAgICAgXSk7CiAKICAgICBkZWJ1ZygiRHJhZ2dpbmcgYSByZWFsIGZpbGUg
dG8gYSBmaWxlIGlucHV0IGNvbnRyb2w6Iik7CiAgICAgdGVzdERyYWdnaW5nRmlsZXMoWwotICAg
ICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9hcHBsZS5naWYnLCAnbmFtZScgOiAnYXBwbGUuZ2lm
JywgJ3NpemUnIDogMTQ3NiB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxlLmdp
ZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1hZ2Uv
Z2lmJyB9CiAgICAgXSk7CiAKICAgICAvLyBEaXJlY3RvcnkgZHJhZ2dpbmcgYmVoYXZpb3IgaXMg
Y292ZXJlZCBieQpAQCAtMTA1LDggKzEwNiw4IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAg
ZGVidWcoIkRyYWdnaW5nIHR3byBmaWxlcyB0byBhIG11bHRpLWZpbGUgaW5wdXQgY29udHJvbDoi
KTsKICAgICB0ZXN0RHJhZ2dpbmdGaWxlcyhbCi0gICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2Vz
L2FwcGxlLmdpZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2IH0sCi0gICAg
ICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL21vemlsbGEuZ2lmJywgJ25hbWUnIDogJ21vemlsbGEu
Z2lmJywgJ3NpemUnIDogMjU5MyB9CisgICAgICAgIHsgJ3BhdGgnOiAncmVzb3VyY2VzL2FwcGxl
LmdpZicsICduYW1lJyA6ICdhcHBsZS5naWYnLCAnc2l6ZScgOiAxNDc2LCAndHlwZScgOiAnaW1h
Z2UvZ2lmJyB9LAorICAgICAgICB7ICdwYXRoJzogJ3Jlc291cmNlcy9tb3ppbGxhLmdpZicsICdu
YW1lJyA6ICdtb3ppbGxhLmdpZicsICdzaXplJyA6IDI1OTMsICd0eXBlJyA6ICdpbWFnZS9naWYn
IH0KICAgICBdKTsKIAogICAgIHRlc3RPcmRlcmVkRHJhZ2dpbmdXaXRoRGlyZWN0b3J5KCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNk
ZDQxY2UuLjM5Mzg5MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDItMjQgIEppYW4gTGkgIDxqaWFu
bGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpbGUudHlwZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzUzNjEKKworICAgICAgICBUZXN0OiBMYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuaHRtbAorCisgICAgICAg
ICogaHRtbC9GaWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAg
ICAqIGh0bWwvRmlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZTo6dHlwZSk6CisgICAgICAg
ICogaHRtbC9GaWxlLmlkbDoKKwogMjAxMC0wMi0yNCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhLmhp
ZGF5YXRAZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuY3BwIGIvV2ViQ29yZS9o
dG1sL0ZpbGUuY3BwCmluZGV4IDI1ZTI4ZTQuLjJhMzJmMjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9GaWxlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRmlsZS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJGaWxlLmgiCiAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVk
ZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM0LDYg
KzM1LDEwIEBAIEZpbGU6OkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIDogQmxvYihwYXRo
KQogICAgICwgbV9uYW1lKHBhdGhHZXRGaWxlTmFtZShwYXRoKSkKIHsKKyAgICAvLyBXZSBkb24n
dCB1c2UgTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JQYXRoKCkgYmVjYXVzZSBpdCBy
ZXR1cm5zICJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iIHVwb24gZmFpbHVyZQorICAgIGludCBp
bmRleCA9IG1fbmFtZS5yZXZlcnNlRmluZCgnLicpOworICAgIGlmIChpbmRleCAhPSAtMSkKKyAg
ICAgICAgbV90eXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TUlNRVR5cGVGb3JFeHRlbnNpb24o
bV9uYW1lLnN1YnN0cmluZyhpbmRleCArIDEpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0ZpbGUuaCBiL1dlYkNvcmUvaHRtbC9GaWxlLmgK
aW5kZXggYmU1M2UzMC4uZGRhNDgyYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGUuaAor
KysgYi9XZWJDb3JlL2h0bWwvRmlsZS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KKyAg
ICBjb25zdCBTdHJpbmcmIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogICAgIC8v
IEZJWE1FOiBvYnNvbGV0ZSBhdHRyaWJ1dGVzLiBUbyBiZSByZW1vdmVkLgogICAgIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUoKSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KQEAgLTQ5LDYgKzUwLDcg
QEAgcHJpdmF0ZToKICAgICBGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKICAgICBTdHJpbmcg
bV9uYW1lOworICAgIFN0cmluZyBtX3R5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRmlsZS5pZGwgYi9XZWJDb3JlL2h0bWwvRmlsZS5p
ZGwKaW5kZXggMjYzMmE0ZC4uOTQyODdmZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0ZpbGUu
aWRsCisrKyBiL1dlYkNvcmUvaHRtbC9GaWxlLmlkbApAQCAtMzAsNiArMzAsNyBAQCBtb2R1bGUg
aHRtbCB7CiAgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0gRmlsZSA6IEJsb2IgewogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgdHlwZTsKIAogICAgICAgICAvLyBGSVhNRTogb2Jzb2xldGUgYXR0
cmlidXRlcy4gVG8gYmUgcmVtb3ZlZC4KICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBmaWxlTmFtZTsK
</data>
<flag name="review"
          id="32409"
          type_id="1"
          status="+"
          setter="dimich"
    />
    <flag name="commit-queue"
          id="32410"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>