<?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>45929</bug_id>
          
          <creation_ts>2010-09-16 15:52:06 -0700</creation_ts>
          <short_desc>Support generating a FormData object based on the data in an existing &lt;form&gt;</short_desc>
          <delta_ts>2010-10-07 15:58:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore 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>
    
    <cc>fishd</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280419</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-09-16 15:52:06 -0700</bug_when>
    <thetext>Support generating a FormData object based on the data in an existing &lt;form&gt;, like:
    new FormData(formDataElement)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280430</commentid>
    <comment_count>1</comment_count>
      <attachid>67855</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-09-16 16:04:49 -0700</bug_when>
    <thetext>Created attachment 67855
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281381</commentid>
    <comment_count>2</comment_count>
      <attachid>67855</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-09-19 22:13:48 -0700</bug_when>
    <thetext>Comment on attachment 67855
Proposed Patch

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

&gt; WebCore/html/DOMFormData.cpp:45
&gt; +    appendForm(form);

wouldn&apos;t having two separate constructors be cleaner?  then you wouldn&apos;t
need the form null check inside of appendForm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281658</commentid>
    <comment_count>3</comment_count>
      <attachid>68110</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-09-20 10:49:11 -0700</bug_when>
    <thetext>Created attachment 68110
Proposed Patch

Changed to have a separate constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285318</commentid>
    <comment_count>4</comment_count>
      <attachid>68110</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-26 22:27:25 -0700</bug_when>
    <thetext>Comment on attachment 68110
Proposed Patch

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

Is this from some spec?

&gt; WebCore/html/DOMFormData.cpp:50
&gt; +    if (form)

Prefer early return.

&gt; WebCore/html/DOMFormData.h:55
&gt;      DOMFormData(const TextEncoding&amp;);
&gt; +    DOMFormData(HTMLFormElement*);

These need to be marked &quot;explicit&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290711</commentid>
    <comment_count>5</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-10-06 17:19:34 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 68110 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=68110&amp;action=review
&gt; 
&gt; Is this from some spec?
&gt; 
Not yet. But it will be added to the XHR Level 2 spec soon since everyone seems to agree on this. FF is also adding this support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>291300</commentid>
    <comment_count>6</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-10-07 15:58:58 -0700</bug_when>
    <thetext>All fixed and landed at http://trac.webkit.org/changeset/69349.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67855</attachid>
            <date>2010-09-16 16:04:49 -0700</date>
            <delta_ts>2010-09-20 10:49:11 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>45929</filename>
            <type>text/plain</type>
            <size>9806</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzN2Q3NDUxLi5jM2YwOTU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDkt
MTYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2VuZXJhdGluZyBhIEZvcm1EYXRh
IG9iamVjdCBiYXNlZCBvbiB0aGUgZGF0YSBpbiBhbiBleGlzdGluZyA8Zm9ybT4uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkyOQorCisgICAgICAg
IEFkZCBhIG5ldyB0ZXN0IHRvIHRlc3QgdGhpcyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICog
aHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZXNvdXJjZXMvdGVzdC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgudHh0LgorICAgICAgICAqIGh0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtY29uc3RydWN0ZWQtZnJvbS1m
b3JtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbDogQWRkZWQuCisK
IDIwMTAtMDktMTUgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBLZW50IFRhbXVyYS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbG9jYWwvZm9ybWRhdGEvcmVzb3VyY2VzL3Rlc3QudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZXNvdXJjZXMvdGVzdC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNWFiMmY4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVzb3VyY2VzL3Rlc3QudHh0CkBAIC0wLDAgKzEg
QEAKK0hlbGxvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3Rl
ZC1mcm9tLWZvcm0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFjNDlhYTQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1k
YXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisg
ICAgICAKK1Rlc3QgdGhhdCBGb3JtRGF0YSBjb25zdHJ1Y3RvciB0YWtlcyBhIEhUTUwgRm9ybSBl
bGVtZW50LgorUmVzcG9uc2U6IHN1Ym1pdHRlZD10cnVlJmNoZWNrYm94PXZhbHVlMiZyYWRpbz12
YWx1ZTMmdGV4dD12YWx1ZTQmZmlsZT10ZXN0LnR4dDp0ZXh0L3BsYWluOkhlbGxvCitET05FCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1m
b3JtLWRhdGEtY29uc3RydWN0ZWQtZnJvbS1mb3JtLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY5NzY0NDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3NlbmQtZm9y
bS1kYXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS5odG1sCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9D
VFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGJvZHk+
Cis8Zm9ybSBpZD1mPgorPGlucHV0IHR5cGU9aGlkZGVuIG5hbWU9InN1Ym1pdHRlZCIgdmFsdWU9
InRydWUiPgorPGlucHV0IHR5cGU9YnV0dG9uIG5hbWU9ImJ1dHRvbiIgdmFsdWU9InZhbHVlMSI+
Cis8aW5wdXQgdHlwZT1jaGVja2JveCBuYW1lPSJjaGVja2JveCIgdmFsdWU9InZhbHVlMiIgY2hl
Y2tlZD4KKzxpbnB1dCB0eXBlPXJhZGlvIG5hbWU9InJhZGlvIiB2YWx1ZT0idmFsdWUzIiBjaGVj
a2VkPgorPGlucHV0IHR5cGU9dGV4dCBuYW1lPSJ0ZXh0IiB2YWx1ZT0idmFsdWU0Ij4KKzxpbnB1
dCB0eXBlPXRleHQgbmFtZT0idGV4dDIiIHZhbHVlPSJ2YWx1ZTUiIGRpc2FibGVkPgorPGlucHV0
IHR5cGU9ZmlsZSBpZD0iZmlsZSIgbmFtZT0iZmlsZSIgb25jaGFuZ2U9Im9uSW5wdXRGaWxlQ2hh
bmdlKCkiPgorPGlucHV0IHR5cGU9c3VibWl0PgorPC9mb3JtPgorPHByZSBpZD0nY29uc29sZSc+
PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIG9uSW5wdXRGaWxlQ2hhbmdl
KCkKK3sKKyAgICBsb2coIlRlc3QgdGhhdCBGb3JtRGF0YSBjb25zdHJ1Y3RvciB0YWtlcyBhIEhU
TUwgRm9ybSBlbGVtZW50LiIpOworCisgICAgdmFyIGZpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZmlsZSIpLmZpbGVzWzBdOworICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKKyAgICB4aHIub3BlbigiUE9TVCIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL211bHRpcGFydC1wb3N0LWVjaG8ucGhwIiwgZmFsc2UpOworICAgIHho
ci5zZW5kKG5ldyBGb3JtRGF0YShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZiIpKSk7CisgICAg
bG9nKCJSZXNwb25zZTogIiArIHhoci5yZXNwb25zZVRleHQpOworCisgICAgbG9nKCJET05FIik7
CisgICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUpCisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gbW92ZU1vdXNlVG9D
ZW50ZXJPZkVsZW1lbnQoZWxlbWVudCkKK3sKKyAgICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zm
c2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGggLyAyOworICAgIHZhciBjZW50ZXJZID0gZWxl
bWVudC5vZmZzZXRUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oY2VudGVyWCwgY2VudGVyWSk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3Rz
KCkKK3sKKyAgICBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMoWydyZXNvdXJjZXMvdGVz
dC50eHQnXSk7CisgICAgbW92ZU1vdXNlVG9DZW50ZXJPZkVsZW1lbnQoZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImZpbGUiKSk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB3aW5k
b3cub25sb2FkID0gcnVuVGVzdHM7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQy
MjQzZS4uYzY0MDBlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wOS0xNiAgSmlhbiBMaSAgPGppYW5s
aUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU3VwcG9ydCBnZW5lcmF0aW5nIGEgRm9ybURhdGEgb2JqZWN0IGJhc2VkIG9uIHRo
ZSBkYXRhIGluIGFuIGV4aXN0aW5nIDxmb3JtPi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1OTI5CisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9s
b2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbAor
CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjp0b0hUTUxGb3JtRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUZv
cm1EYXRhQ29uc3RydWN0b3I6OmNvbnN0cnVjdEpTRE9NRm9ybURhdGEpOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4RE9NRm9ybURhdGE6OmNvbnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAqIGh0bWwv
RE9NRm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRm9ybURhdGE6OkRPTUZvcm1E
YXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUZvcm1EYXRhOjphcHBlbmRGb3JtKToKKyAgICAg
ICAgKiBodG1sL0RPTUZvcm1EYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpET01Gb3JtRGF0YTo6
Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0RPTUZvcm1EYXRhLmlkbDoKKwogMjAxMC0wOS0xNiAg
QW5kcmVhcyBLbGluZyAgPGFuZHJlYXMua2xpbmdAbm9raWEuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEFyaXlhIEhpZGF5YXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NRm9ybURhdGFDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRh
Q3VzdG9tLmNwcAppbmRleCBmMjA3NTc4Li4yNTU5ZTk2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAKQEAgLTMyLDEzICszMiwzMSBAQAogI2luY2x1ZGUg
IkpTRE9NRm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCisjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiSlNCbG9iLmgiCisjaW5jbHVkZSAiSlNIVE1M
Rm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlIDxydW50aW1lL0Vycm9yLmg+CiAKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIEhUTUxGb3JtRWxlbWVu
dCogdG9IVE1MRm9ybUVsZW1lbnQoSlNDOjpKU1ZhbHVlIHZhbHVlKQoreworICAgIHJldHVybiB2
YWx1ZS5pbmhlcml0cygmSlNIVE1MRm9ybUVsZW1lbnQ6OnNfaW5mbykgPyBzdGF0aWNfY2FzdDxI
VE1MRm9ybUVsZW1lbnQqPihzdGF0aWNfY2FzdDxKU0hUTUxGb3JtRWxlbWVudCo+KGFzT2JqZWN0
KHZhbHVlKSktPmltcGwoKSkgOiAwOworfQorCitFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IEpTRE9NRm9ybURhdGFDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNET01Gb3JtRGF0YShFeGVjU3Rh
dGUqIGV4ZWMpCit7CisgICAgSlNET01Gb3JtRGF0YUNvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9y
ID0gc3RhdGljX2Nhc3Q8SlNET01Gb3JtRGF0YUNvbnN0cnVjdG9yKj4oZXhlYy0+Y2FsbGVlKCkp
OworCisgICAgSFRNTEZvcm1FbGVtZW50KiBmb3JtID0gMDsKKyAgICBpZiAoZXhlYy0+YXJndW1l
bnRDb3VudCgpID4gMCkKKyAgICAgICAgZm9ybSA9IHRvSFRNTEZvcm1FbGVtZW50KGV4ZWMtPmFy
Z3VtZW50KDApKTsKKyAgICBSZWZQdHI8RE9NRm9ybURhdGE+IGRvbUZvcm1EYXRhID0gRE9NRm9y
bURhdGE6OmNyZWF0ZShmb3JtKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGFzT2JqZWN0
KHRvSlMoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xvYmFsT2JqZWN0KCksIGRvbUZvcm1EYXRhLmdl
dCgpKSkpOworfQorCiBKU1ZhbHVlIEpTRE9NRm9ybURhdGE6OmFwcGVuZChFeGVjU3RhdGUqIGV4
ZWMpCiB7CiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAyKSB7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTUZvcm1EYXRhQ3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NRm9ybURhdGFDdXN0b20uY3BwCmluZGV4IDhh
MzkzMzIuLmNhZjJlMTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NRm9ybURhdGFDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NRm9ybURhdGFDdXN0b20uY3BwCkBAIC0zNCwxMSArMzQsMjggQEAKICNpbmNsdWRlICJET01G
b3JtRGF0YS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmxvYi5oIgor
I2luY2x1ZGUgIlY4SFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiVjhQcm94eS5oIgogI2lu
Y2x1ZGUgIlY4VXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IFY4RE9NRm9ybURhdGE6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5Gb3JtRGF0YS5Db25zdHJ1
Y3RvciIpOworCisgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQorICAgICAgICByZXR1
cm4gdGhyb3dFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFz
IGEgZnVuY3Rpb24uIiwgVjhQcm94eTo6U3ludGF4RXJyb3IpOworCisgICAgSFRNTEZvcm1FbGVt
ZW50KiBmb3JtID0gMDsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA+IDAgJiYgVjhIVE1MRm9ybUVs
ZW1lbnQ6Okhhc0luc3RhbmNlKGFyZ3NbMF0pKQorICAgICAgICBmb3JtID0gVjhIVE1MRm9ybUVs
ZW1lbnQ6OnRvTmF0aXZlKGFyZ3NbMF0tPlRvT2JqZWN0KCkpOworICAgIFJlZlB0cjxET01Gb3Jt
RGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGZvcm0pOworCisgICAgVjhE
T01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGFyZ3MuSG9sZGVyKCksICZpbmZvLCBkb21Gb3JtRGF0
YS5nZXQoKSk7CisgICAgcmV0dXJuIHRvVjgoZG9tRm9ybURhdGEucmVsZWFzZSgpLCBhcmdzLkhv
bGRlcigpKTsKK30KKwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NRm9ybURhdGE6OmFwcGVu
ZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJE
T00uRm9ybURhdGEuYXBwZW5kKCkiKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01Gb3Jt
RGF0YS5jcHAgYi9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuY3BwCmluZGV4IGY4NDg4OTguLjg2
NTY5NDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5jcHAKKysrIGIvV2Vi
Q29yZS9odG1sL0RPTUZvcm1EYXRhLmNwcApAQCAtMzIsMTQgKzMyLDI5IEBACiAjaW5jbHVkZSAi
RE9NRm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkJsb2IuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1ET01Gb3JtRGF0YTo6RE9NRm9ybURhdGEoY29uc3QgVGV4dEVuY29kaW5n
JiBlbmNvZGluZykKK0RPTUZvcm1EYXRhOjpET01Gb3JtRGF0YShjb25zdCBUZXh0RW5jb2Rpbmcm
IGVuY29kaW5nLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCiAgICAgOiBGb3JtRGF0YUxpc3QoZW5j
b2RpbmcpCiB7CisgICAgYXBwZW5kRm9ybShmb3JtKTsKK30KKwordm9pZCBET01Gb3JtRGF0YTo6
YXBwZW5kRm9ybShIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCit7CisgICAgaWYgKCFmb3JtKQorICAg
ICAgICByZXR1cm47CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZm9ybS0+YXNzb2Np
YXRlZEVsZW1lbnRzKCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgSFRNTEZvcm1Db250cm9sRWxl
bWVudCogY29udHJvbCA9IGZvcm0tPmFzc29jaWF0ZWRFbGVtZW50cygpW2ldOworICAgICAgICBp
ZiAoIWNvbnRyb2wtPmRpc2FibGVkKCkpCisgICAgICAgICAgICBjb250cm9sLT5hcHBlbmRGb3Jt
RGF0YSgqdGhpcywgdHJ1ZSk7CisgICAgfQogfQogCiB2b2lkIERPTUZvcm1EYXRhOjphcHBlbmQo
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0RPTUZvcm1EYXRhLmggYi9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuaAppbmRl
eCA2YzI0ODU4Li45YTQzZTMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEu
aAorKysgYi9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuaApAQCAtMzksMTggKzM5LDIxIEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEJsb2I7CitjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7
CiBjbGFzcyBUZXh0RW5jb2Rpbmc7CiAKIGNsYXNzIERPTUZvcm1EYXRhIDogcHVibGljIEZvcm1E
YXRhTGlzdCwgcHVibGljIFJlZkNvdW50ZWQ8RE9NRm9ybURhdGE+IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxET01Gb3JtRGF0YT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRSZWYo
bmV3IERPTUZvcm1EYXRhKFVURjhFbmNvZGluZygpKSk7IH0KLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxET01Gb3JtRGF0YT4gY3JlYXRlKGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01Gb3JtRGF0YShlbmNvZGluZykpOyB9CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8RE9NRm9ybURhdGE+IGNyZWF0ZShIVE1MRm9ybUVsZW1lbnQqIGZvcm0pIHsgcmV0
dXJuIGFkb3B0UmVmKG5ldyBET01Gb3JtRGF0YShVVEY4RW5jb2RpbmcoKSwgZm9ybSkpOyB9Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8RE9NRm9ybURhdGE+IGNyZWF0ZShjb25zdCBUZXh0RW5jb2Rp
bmcmIGVuY29kaW5nKSB7IHJldHVybiBhZG9wdFJlZihuZXcgRE9NRm9ybURhdGEoZW5jb2Rpbmcs
IDApKTsgfQogCiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIHZhbHVlKTsKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIG5hbWUsIEJsb2IqKTsK
IAogcHJpdmF0ZToKLSAgICBET01Gb3JtRGF0YShjb25zdCBUZXh0RW5jb2RpbmcmKTsKKyAgICBE
T01Gb3JtRGF0YShjb25zdCBUZXh0RW5jb2RpbmcmLCBIVE1MRm9ybUVsZW1lbnQqKTsKKworICAg
IHZvaWQgYXBwZW5kRm9ybShIVE1MRm9ybUVsZW1lbnQqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwgYi9XZWJD
b3JlL2h0bWwvRE9NRm9ybURhdGEuaWRsCmluZGV4IGMzMzkzODEuLjQ0MTg0MjggMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0RPTUZv
cm1EYXRhLmlkbApAQCAtMzIsNiArMzIsOCBAQCBtb2R1bGUgaHRtbCB7CiAKICAgICBpbnRlcmZh
Y2UgWwogICAgICAgICBDYW5CZUNvbnN0cnVjdGVkLAorICAgICAgICBDdXN0b21Db25zdHJ1Y3RG
dW5jdGlvbiwKKyAgICAgICAgVjhDdXN0b21Db25zdHJ1Y3RvciwKICAgICAgICAgR2VuZXJhdGVO
YXRpdmVDb252ZXJ0ZXIsCiAgICAgICAgIEdlbmVyYXRlVG9KUwogICAgIF0gRE9NRm9ybURhdGEg
ewo=
</data>
<flag name="commit-queue"
          id="57278"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68110</attachid>
            <date>2010-09-20 10:49:11 -0700</date>
            <delta_ts>2010-09-26 22:27:25 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>45929_2</filename>
            <type>text/plain</type>
            <size>9475</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMWNlMTZlLi4wZTE0NzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDkt
MjAgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2VuZXJhdGluZyBhIEZvcm1EYXRh
IG9iamVjdCBiYXNlZCBvbiB0aGUgZGF0YSBpbiBhbiBleGlzdGluZyA8Zm9ybT4uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkyOQorCisgICAgICAg
IEFkZCBhIG5ldyB0ZXN0IHRvIHRlc3QgdGhpcyBmdW5jdGlvbmFsaXR5LgorCisgICAgICAgICog
aHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9yZXNvdXJjZXMvdGVzdC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL1VURjgudHh0LgorICAgICAgICAqIGh0
dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtY29uc3RydWN0ZWQtZnJvbS1m
b3JtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9sb2NhbC9mb3Jt
ZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbDogQWRkZWQuCisK
IDIwMTAtMDktMjAgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVcGRhdGUgYSB3aW4teHAtc3BlY2lmaWMgYmFzZWxpbmUuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291cmNlcy90ZXN0LnR4dCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvcmVzb3VyY2VzL3Rlc3QudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhYjJmOGEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xvY2FsL2Zvcm1kYXRhL3Jlc291cmNlcy90
ZXN0LnR4dApAQCAtMCwwICsxIEBACitIZWxsbwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1m
b3JtLWRhdGEtY29uc3RydWN0ZWQtZnJvbS1mb3JtLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtY29uc3RydWN0ZWQtZnJv
bS1mb3JtLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
YzQ5YWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9m
b3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0tZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorICAgICAgCitUZXN0IHRoYXQgRm9ybURhdGEgY29uc3RydWN0b3Ig
dGFrZXMgYSBIVE1MIEZvcm0gZWxlbWVudC4KK1Jlc3BvbnNlOiBzdWJtaXR0ZWQ9dHJ1ZSZjaGVj
a2JveD12YWx1ZTImcmFkaW89dmFsdWUzJnRleHQ9dmFsdWU0JmZpbGU9dGVzdC50eHQ6dGV4dC9w
bGFpbjpIZWxsbworRE9ORQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2xv
Y2FsL2Zvcm1kYXRhL3NlbmQtZm9ybS1kYXRhLWNvbnN0cnVjdGVkLWZyb20tZm9ybS5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2NhbC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25z
dHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mOTc2NDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9sb2Nh
bC9mb3JtZGF0YS9zZW5kLWZvcm0tZGF0YS1jb25zdHJ1Y3RlZC1mcm9tLWZvcm0uaHRtbApAQCAt
MCwwICsxLDU4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxib2R5PgorPGZvcm0gaWQ9Zj4KKzxpbnB1dCB0eXBlPWhpZGRlbiBuYW1l
PSJzdWJtaXR0ZWQiIHZhbHVlPSJ0cnVlIj4KKzxpbnB1dCB0eXBlPWJ1dHRvbiBuYW1lPSJidXR0
b24iIHZhbHVlPSJ2YWx1ZTEiPgorPGlucHV0IHR5cGU9Y2hlY2tib3ggbmFtZT0iY2hlY2tib3gi
IHZhbHVlPSJ2YWx1ZTIiIGNoZWNrZWQ+Cis8aW5wdXQgdHlwZT1yYWRpbyBuYW1lPSJyYWRpbyIg
dmFsdWU9InZhbHVlMyIgY2hlY2tlZD4KKzxpbnB1dCB0eXBlPXRleHQgbmFtZT0idGV4dCIgdmFs
dWU9InZhbHVlNCI+Cis8aW5wdXQgdHlwZT10ZXh0IG5hbWU9InRleHQyIiB2YWx1ZT0idmFsdWU1
IiBkaXNhYmxlZD4KKzxpbnB1dCB0eXBlPWZpbGUgaWQ9ImZpbGUiIG5hbWU9ImZpbGUiIG9uY2hh
bmdlPSJvbklucHV0RmlsZUNoYW5nZSgpIj4KKzxpbnB1dCB0eXBlPXN1Ym1pdD4KKzwvZm9ybT4K
KzxwcmUgaWQ9J2NvbnNvbGUnPjwvcHJlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworfQorCitmdW5jdGlv
biBvbklucHV0RmlsZUNoYW5nZSgpCit7CisgICAgbG9nKCJUZXN0IHRoYXQgRm9ybURhdGEgY29u
c3RydWN0b3IgdGFrZXMgYSBIVE1MIEZvcm0gZWxlbWVudC4iKTsKKworICAgIHZhciBmaWxlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUiKS5maWxlc1swXTsKKyAgICB2YXIgeGhyID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oIlBPU1QiLCAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9tdWx0aXBhcnQtcG9zdC1lY2hvLnBo
cCIsIGZhbHNlKTsKKyAgICB4aHIuc2VuZChuZXcgRm9ybURhdGEoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImYiKSkpOworICAgIGxvZygiUmVzcG9uc2U6ICIgKyB4aHIucmVzcG9uc2VUZXh0KTsK
KworICAgIGxvZygiRE9ORSIpOworICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVtZW50KGVsZW1lbnQpCit7CisgICAgdmFyIGNl
bnRlclggPSBlbGVtZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAg
ICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5vZmZzZXRIZWlnaHQg
LyAyOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGNlbnRlclgsIGNlbnRlclkpOworfQor
CitmdW5jdGlvbiBydW5UZXN0cygpCit7CisgICAgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZp
bGVzKFsncmVzb3VyY2VzL3Rlc3QudHh0J10pOworICAgIG1vdmVNb3VzZVRvQ2VudGVyT2ZFbGVt
ZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlIikpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKK30KKworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgd2luZG93Lm9ubG9hZCA9IHJ1blRlc3RzOworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IGE4NDkyNTMuLjUyYmNiZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDkt
MjAgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgZ2VuZXJhdGluZyBhIEZvcm1EYXRh
IG9iamVjdCBiYXNlZCBvbiB0aGUgZGF0YSBpbiBhbiBleGlzdGluZyA8Zm9ybT4uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTkyOQorCisgICAgICAg
IFRlc3Q6IGh0dHAvdGVzdHMvbG9jYWwvZm9ybWRhdGEvc2VuZC1mb3JtLWRhdGEtY29uc3RydWN0
ZWQtZnJvbS1mb3JtLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9IVE1MRm9ybUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNET01Gb3JtRGF0YUNvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU0RPTUZvcm1E
YXRhKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTUZvcm1EYXRhOjpjb25zdHJ1Y3RvckNhbGxiYWNr
KToKKyAgICAgICAgKiBodG1sL0RPTUZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUZvcm1EYXRhOjpET01Gb3JtRGF0YSk6CisgICAgICAgICogaHRtbC9ET01Gb3JtRGF0YS5oOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NRm9ybURhdGE6OmNyZWF0ZSk6CisgICAgICAgICogaHRtbC9E
T01Gb3JtRGF0YS5pZGw6CisKIDIwMTAtMDktMjAgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dh
QHBhcm9nYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jlbi4KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NRm9ybURhdGFDdXN0b20uY3BwCmluZGV4IGYyMDc1NzguLjI1NTll
OTYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Gb3JtRGF0YUN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcApAQCAt
MzIsMTMgKzMyLDMxIEBACiAjaW5jbHVkZSAiSlNET01Gb3JtRGF0YS5oIgogCiAjaW5jbHVkZSAi
RE9NRm9ybURhdGEuaCIKKyNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJK
U0Jsb2IuaCIKKyNpbmNsdWRlICJKU0hUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgPHJ1bnRp
bWUvRXJyb3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitzdGF0aWMgSFRNTEZvcm1FbGVtZW50KiB0b0hUTUxGb3JtRWxlbWVudChKU0M6OkpTVmFs
dWUgdmFsdWUpCit7CisgICAgcmV0dXJuIHZhbHVlLmluaGVyaXRzKCZKU0hUTUxGb3JtRWxlbWVu
dDo6c19pbmZvKSA/IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KHN0YXRpY19jYXN0PEpT
SFRNTEZvcm1FbGVtZW50Kj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpKSA6IDA7Cit9CisKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgSlNET01Gb3JtRGF0YUNvbnN0cnVjdG9yOjpjb25z
dHJ1Y3RKU0RPTUZvcm1EYXRhKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU0RPTUZvcm1EYXRh
Q29uc3RydWN0b3IqIGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU0RPTUZvcm1EYXRhQ29u
c3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7CisKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0g
PSAwOworICAgIGlmIChleGVjLT5hcmd1bWVudENvdW50KCkgPiAwKQorICAgICAgICBmb3JtID0g
dG9IVE1MRm9ybUVsZW1lbnQoZXhlYy0+YXJndW1lbnQoMCkpOworICAgIFJlZlB0cjxET01Gb3Jt
RGF0YT4gZG9tRm9ybURhdGEgPSBET01Gb3JtRGF0YTo6Y3JlYXRlKGZvcm0pOworICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoYXNPYmplY3QodG9KUyhleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9i
YWxPYmplY3QoKSwgZG9tRm9ybURhdGEuZ2V0KCkpKSk7Cit9CisKIEpTVmFsdWUgSlNET01Gb3Jt
RGF0YTo6YXBwZW5kKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoZXhlYy0+YXJndW1lbnRD
b3VudCgpID49IDIpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
RE9NRm9ybURhdGFDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01G
b3JtRGF0YUN1c3RvbS5jcHAKaW5kZXggOGEzOTMzMi4uY2FmMmUxNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01Gb3JtRGF0YUN1c3RvbS5jcHAKQEAgLTM0LDEx
ICszNCwyOCBAQAogI2luY2x1ZGUgIkRPTUZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5n
LmgiCiAjaW5jbHVkZSAiVjhCbG9iLmgiCisjaW5jbHVkZSAiVjhIVE1MRm9ybUVsZW1lbnQuaCIK
ICNpbmNsdWRlICJWOFByb3h5LmgiCiAjaW5jbHVkZSAiVjhVdGlsaXRpZXMuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhET01Gb3JtRGF0YTo6Y29u
c3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19T
VEFUUygiRE9NLkZvcm1EYXRhLkNvbnN0cnVjdG9yIik7CisKKyAgICBpZiAoIWFyZ3MuSXNDb25z
dHJ1Y3RDYWxsKCkpCisgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCJET00gb2JqZWN0IGNvbnN0
cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iLCBWOFByb3h5OjpTeW50YXhF
cnJvcik7CisKKyAgICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSAwOworICAgIGlmIChhcmdzLkxl
bmd0aCgpID4gMCAmJiBWOEhUTUxGb3JtRWxlbWVudDo6SGFzSW5zdGFuY2UoYXJnc1swXSkpCisg
ICAgICAgIGZvcm0gPSBWOEhUTUxGb3JtRWxlbWVudDo6dG9OYXRpdmUoYXJnc1swXS0+VG9PYmpl
Y3QoKSk7CisgICAgUmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRh
OjpjcmVhdGUoZm9ybSk7CisKKyAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoYXJncy5I
b2xkZXIoKSwgJmluZm8sIGRvbUZvcm1EYXRhLmdldCgpKTsKKyAgICByZXR1cm4gdG9WOChkb21G
b3JtRGF0YS5yZWxlYXNlKCksIGFyZ3MuSG9sZGVyKCkpOworfQorCiB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhET01Gb3JtRGF0YTo6YXBwZW5kQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYg
YXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5Gb3JtRGF0YS5hcHBlbmQoKSIpOwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmNwcCBiL1dlYkNvcmUvaHRtbC9ET01Gb3Jt
RGF0YS5jcHAKaW5kZXggZjg0ODg5OC4uNDFkNjQ1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L0RPTUZvcm1EYXRhLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuY3BwCkBAIC0z
Miw2ICszMiw4IEBACiAjaW5jbHVkZSAiRE9NRm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkJsb2Iu
aCIKKyNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJUZXh0
RW5jb2RpbmcuaCIKIApAQCAtNDIsNiArNDQsMTcgQEAgRE9NRm9ybURhdGE6OkRPTUZvcm1EYXRh
KGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcpCiB7CiB9CiAKK0RPTUZvcm1EYXRhOjpET01G
b3JtRGF0YShIVE1MRm9ybUVsZW1lbnQqIGZvcm0pCisgICAgOiBGb3JtRGF0YUxpc3QoVVRGOEVu
Y29kaW5nKCkpCit7CisgICAgaWYgKGZvcm0pCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBmb3JtLT5hc3NvY2lhdGVkRWxlbWVudHMoKS5zaXplKCk7ICsraSkgeworICAgICAgICAg
ICAgSFRNTEZvcm1Db250cm9sRWxlbWVudCogY29udHJvbCA9IGZvcm0tPmFzc29jaWF0ZWRFbGVt
ZW50cygpW2ldOworICAgICAgICAgICAgaWYgKCFjb250cm9sLT5kaXNhYmxlZCgpKQorICAgICAg
ICAgICAgICAgIGNvbnRyb2wtPmFwcGVuZEZvcm1EYXRhKCp0aGlzLCB0cnVlKTsKKyAgICAgICAg
fQorfQorCiB2b2lkIERPTUZvcm1EYXRhOjphcHBlbmQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKQogewogICAgIGlmICghbmFtZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvRE9NRm9ybURhdGEuaCBiL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5o
CmluZGV4IDZjMjQ4NTguLjY4ZjVhNjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9ET01Gb3Jt
RGF0YS5oCisrKyBiL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5oCkBAIC0zOSwxMSArMzksMTIg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQmxvYjsKK2NsYXNzIEhUTUxGb3JtRWxl
bWVudDsKIGNsYXNzIFRleHRFbmNvZGluZzsKIAogY2xhc3MgRE9NRm9ybURhdGEgOiBwdWJsaWMg
Rm9ybURhdGFMaXN0LCBwdWJsaWMgUmVmQ291bnRlZDxET01Gb3JtRGF0YT4gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPERPTUZvcm1EYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9w
dFJlZihuZXcgRE9NRm9ybURhdGEoVVRGOEVuY29kaW5nKCkpKTsgfQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPERPTUZvcm1EYXRhPiBjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgRE9NRm9ybURhdGEoZm9ybSkpOyB9CiAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8RE9NRm9ybURhdGE+IGNyZWF0ZShjb25zdCBUZXh0RW5jb2RpbmcmIGVuY29kaW5nKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgRE9NRm9ybURhdGEoZW5jb2RpbmcpKTsgfQogCiAgICAgdm9pZCBh
cHBlbmQoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKQEAgLTUxLDYg
KzUyLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERPTUZvcm1EYXRhKGNvbnN0IFRleHRF
bmNvZGluZyYpOworICAgIERPTUZvcm1EYXRhKEhUTUxGb3JtRWxlbWVudCopOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRh
LmlkbCBiL1dlYkNvcmUvaHRtbC9ET01Gb3JtRGF0YS5pZGwKaW5kZXggYzMzOTM4MS4uNDQxODQy
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RPTUZvcm1EYXRhLmlkbAorKysgYi9XZWJDb3Jl
L2h0bWwvRE9NRm9ybURhdGEuaWRsCkBAIC0zMiw2ICszMiw4IEBAIG1vZHVsZSBodG1sIHsKIAog
ICAgIGludGVyZmFjZSBbCiAgICAgICAgIENhbkJlQ29uc3RydWN0ZWQsCisgICAgICAgIEN1c3Rv
bUNvbnN0cnVjdEZ1bmN0aW9uLAorICAgICAgICBWOEN1c3RvbUNvbnN0cnVjdG9yLAogICAgICAg
ICBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwKICAgICAgICAgR2VuZXJhdGVUb0pTCiAgICAgXSBE
T01Gb3JtRGF0YSB7Cg==
</data>
<flag name="review"
          id="57561"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="57562"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>