<?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>59114</bug_id>
          
          <creation_ts>2011-04-21 10:33:37 -0700</creation_ts>
          <short_desc>Move makeSecure from WTF::String to renderText</short_desc>
          <delta_ts>2011-08-25 12:24:00 -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>JavaScriptCore</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>
          
          <blocked>32509</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>ap</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>390134</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-21 10:33:37 -0700</bug_when>
    <thetext>makeSecure is not a general-purpose string utility but a particular operation intended for rendertext only. We should move it to the right place to avoid layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390972</commentid>
    <comment_count>1</comment_count>
      <attachid>90740</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-22 12:29:46 -0700</bug_when>
    <thetext>Created attachment 90740
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>390982</commentid>
    <comment_count>2</comment_count>
      <attachid>90740</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-22 12:50:38 -0700</bug_when>
    <thetext>Comment on attachment 90740
fix patch

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

A good cleanup, but the isNull() check in makeSecure is wrong.

&gt; Source/JavaScriptCore/JavaScriptCore.order:-1686
&gt; -__ZN7WebCore10StringImpl6secureEt

You don&apos;t need to change order files. It&apos;s no problem if you do, but it&apos;s a waste of time.

&gt; Source/WebCore/rendering/RenderText.cpp:95
&gt; +void makeSecure(String* string, UChar mask, LastCharacterBehavior behavior)

I suggest making the string argument a reference instead of a pointer, to make it obvious that it can&apos;t be null.

&gt; Source/WebCore/rendering/RenderText.cpp:98
&gt; +    if (string-&gt;isNull())
&gt; +        return;

You iterate up to length - 1 below, which will be no good if the string is empty. Why didn&apos;t you get crashes in testing?

This should check for isEmpty() - or if there is some reason why empty strings can&apos;t get here, we should assert that, and/or restructure the code to make it more clear.

&gt; Source/WebCore/rendering/RenderText.h:211
&gt; +void makeSecure(String*, UChar mask, LastCharacterBehavior = ObscureLastCharacter);

I don&apos;t know if this is the best place for this function - RenderText.h doesn&apos;t currently have utility functions like this. Seems acceptable, but you could ask a rendering expert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>432817</commentid>
    <comment_count>3</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-06 09:01:29 -0700</bug_when>
    <thetext>The dependency from 32509 is removed. No emergency to fix this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434071</commentid>
    <comment_count>4</comment_count>
      <attachid>100121</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 08:47:12 -0700</bug_when>
    <thetext>Created attachment 100121
patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434073</commentid>
    <comment_count>5</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 08:48:02 -0700</bug_when>
    <thetext>found a solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434092</commentid>
    <comment_count>6</comment_count>
      <attachid>100121</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-08 09:04:44 -0700</bug_when>
    <thetext>Comment on attachment 100121
patch 2

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

&gt; Source/JavaScriptCore/wtf/text/WTFString.h:226
&gt;      void makeUpper() { if (m_impl) m_impl = m_impl-&gt;upper(); }
&gt; -    void makeSecure(UChar aChar) { if (m_impl) m_impl = m_impl-&gt;secure(aChar); }
&gt; +    void fill(UChar aChar)
&gt; +    {
&gt; +        if (m_impl)
&gt; +            m_impl = m_impl-&gt;fill(aChar);
&gt; +    }

Why does this use a different style than functions above?

I&apos;d have named the variable &quot;character&quot; or &quot;c&quot;, not &quot;aChar&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434096</commentid>
    <comment_count>7</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 09:10:22 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 100121 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100121&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/text/WTFString.h:226
&gt; &gt;      void makeUpper() { if (m_impl) m_impl = m_impl-&gt;upper(); }
&gt; &gt; -    void makeSecure(UChar aChar) { if (m_impl) m_impl = m_impl-&gt;secure(aChar); }
&gt; &gt; +    void fill(UChar aChar)
&gt; &gt; +    {
&gt; &gt; +        if (m_impl)
&gt; &gt; +            m_impl = m_impl-&gt;fill(aChar);
&gt; &gt; +    }
&gt; 
&gt; Why does this use a different style than functions above?
&gt; 
&gt; I&apos;d have named the variable &quot;character&quot; or &quot;c&quot;, not &quot;aChar&quot;.

The style script reports this:
More than one command on the same line in if  [whitespace/parens] [4]
So I had to change it to multi-line. All others have the same issue but they were there before the style rule, I believe. Maybe we should change the script.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434102</commentid>
    <comment_count>8</comment_count>
      <attachid>100125</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 09:15:37 -0700</bug_when>
    <thetext>Created attachment 100125
patch 3: minor changes after r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434107</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-08 09:43:23 -0700</bug_when>
    <thetext>&gt; The style script reports this:

The script is not a reviewer :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434110</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-07-08 09:49:44 -0700</bug_when>
    <thetext>I think that consistency is more important in this case than style script suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434116</commentid>
    <comment_count>11</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 10:03:13 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I think that consistency is more important in this case than style script suggestions.

Would the patch be committed if not passing style check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434122</commentid>
    <comment_count>12</comment_count>
      <attachid>100129</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-07-08 10:15:11 -0700</bug_when>
    <thetext>Created attachment 100129
patch 4: minor changes after r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434126</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-08 10:17:45 -0700</bug_when>
    <thetext>Attachment 100129 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/wtf/text/WTFString.h:222:  More than one command on the same line in if  [whitespace/parens] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434152</commentid>
    <comment_count>14</comment_count>
      <attachid>100129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-08 10:54:18 -0700</bug_when>
    <thetext>Comment on attachment 100129
patch 4: minor changes after r+

Clearing flags on attachment: 100129

Committed r90643: &lt;http://trac.webkit.org/changeset/90643&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434153</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-08 10:54:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90740</attachid>
            <date>2011-04-22 12:29:46 -0700</date>
            <delta_ts>2011-07-08 08:47:12 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>59114_1.patch</filename>
            <type>text/plain</type>
            <size>10128</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODQ2NTcpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDQtMjIgIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIG1ha2VTZWN1cmUgZnJvbSBX
VEY6OlN0cmluZyB0byBSZW5kZXJUZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01OTExNAorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgor
ICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmlu
Z0ltcGwuY3BwOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuaDoKKyAgICAgICAgKiB3
dGYvdGV4dC9XVEZTdHJpbmcuaDoKKwogMjAxMS0wNC0yMiAgQnJpYW4gV2VpbnN0ZWluICA8Yndl
aW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUGFydCBvZiBXaW5kb3dzIGJ1aWxkIGZpeCBm
cm9tIHI4NDY1MC4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cAkocmV2aXNpb24gODQ0OTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTUsNyArMzU1LDYgQEAgX19aTjNXVEYxMFN0cmlu
Z0ltcGw1dXBwZXJFdgogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRlRVBLYwogX19aTjNXVEYx
MFN0cmluZ0ltcGw2Y3JlYXRlRVBLY2oKIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS3Rq
Ci1fX1pOM1dURjEwU3RyaW5nSW1wbDZzZWN1cmVFdE5TMF8yMUxhc3RDaGFyYWN0ZXJCZWhhdmlv
ckUKIF9fWk4zV1RGMTBTdHJpbmdJbXBsN3JlcGxhY2VFUFMwX1MxXwogX19aTjNXVEYxMFN0cmlu
Z0ltcGw3cmVwbGFjZUVqalBTMF8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsN3JlcGxhY2VFdFBTMF8K
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHJldmlz
aW9uIDg0NDk3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVy
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjgzLDcgKzE2ODMsNiBAQCBfX1pOM0pTQzZKU0NlbGw5Z2V0
T2JqZWN0RXYKIF9jdGlPcFRocm93Tm90Q2F1Z2h0CiBfX1pOM0pTQ0wyMm51bWJlclByb3RvRnVu
Y1ZhbHVlT2ZFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEVOU183SlNWYWx1ZUVSS05TXzdB
cmdMaXN0RQogX19aTjNKU0MxMk51bWJlck9iamVjdDExZ2V0SlNOdW1iZXJFdgotX19aTjdXZWJD
b3JlMTBTdHJpbmdJbXBsNnNlY3VyZUV0CiBfX1pOM0pTQzIzY3JlYXRlTm90QUZ1bmN0aW9uRXJy
b3JFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFalBOU185Q29kZUJsb2NrRQogX2N0aV9vcF9y
c2hpZnQKIF9fWk4zSlNDMTNKU05vdEFuT2JqZWN0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE5TXzlF
eGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHJldmlzaW9uIDg0NDk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNzAsMjAgKzI3MCw2IEBAIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6dXBw
ZXIKICAgICByZXR1cm4gbmV3SW1wbC5yZWxlYXNlKCk7CiB9CiAKLVBhc3NSZWZQdHI8U3RyaW5n
SW1wbD4gU3RyaW5nSW1wbDo6c2VjdXJlKFVDaGFyIGNoYXJhY3RlciwgTGFzdENoYXJhY3RlckJl
aGF2aW9yIGJlaGF2aW9yKQotewotICAgIGlmICghbV9sZW5ndGgpCi0gICAgICAgIHJldHVybiB0
aGlzOwotCi0gICAgVUNoYXIqIGRhdGE7Ci0gICAgUmVmUHRyPFN0cmluZ0ltcGw+IG5ld0ltcGwg
PSBjcmVhdGVVbmluaXRpYWxpemVkKG1fbGVuZ3RoLCBkYXRhKTsKLSAgICB1bnNpZ25lZCBsYXN0
Q2hhcmFjdGVySW5kZXggPSBtX2xlbmd0aCAtIDE7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxhc3RDaGFyYWN0ZXJJbmRleDsgKytpKQotICAgICAgICBkYXRhW2ldID0gY2hhcmFjdGVy
OwotICAgIGRhdGFbbGFzdENoYXJhY3RlckluZGV4XSA9IChiZWhhdmlvciA9PSBPYnNjdXJlTGFz
dENoYXJhY3RlcikgPyBjaGFyYWN0ZXIgOiBtX2RhdGFbbGFzdENoYXJhY3RlckluZGV4XTsKLSAg
ICByZXR1cm4gbmV3SW1wbC5yZWxlYXNlKCk7Ci19Ci0KIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4g
U3RyaW5nSW1wbDo6Zm9sZENhc2UoKQogewogICAgIFVDaGFyKiBkYXRhOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCShyZXZpc2lvbiA4NDQ5NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI4NCw5ICsyODQsNiBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBsb3dlcigpOwogICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gdXBwZXIoKTsKIAotICAg
IGVudW0gTGFzdENoYXJhY3RlckJlaGF2aW9yIHsgT2JzY3VyZUxhc3RDaGFyYWN0ZXIsIERpc3Bs
YXlMYXN0Q2hhcmFjdGVyIH07Ci0KLSAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHNlY3VyZShV
Q2hhciwgTGFzdENoYXJhY3RlckJlaGF2aW9yID0gT2JzY3VyZUxhc3RDaGFyYWN0ZXIpOwogICAg
IFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gZm9sZENhc2UoKTsKIAogICAgIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gc3RyaXBXaGl0ZVNwYWNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL3RleHQvV1RGU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi90ZXh0L1dURlN0cmluZy5oCShyZXZpc2lvbiA4NDQ5NykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvdGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDcgKzIx
OSw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbWFrZUxvd2VyKCkgeyBpZiAobV9pbXBsKSBtX2lt
cGwgPSBtX2ltcGwtPmxvd2VyKCk7IH0KICAgICB2b2lkIG1ha2VVcHBlcigpIHsgaWYgKG1faW1w
bCkgbV9pbXBsID0gbV9pbXBsLT51cHBlcigpOyB9Ci0gICAgdm9pZCBtYWtlU2VjdXJlKFVDaGFy
IGFDaGFyKSB7IGlmIChtX2ltcGwpIG1faW1wbCA9IG1faW1wbC0+c2VjdXJlKGFDaGFyKTsgfQog
CiAgICAgdm9pZCB0cnVuY2F0ZSh1bnNpZ25lZCBsZW4pOwogICAgIHZvaWQgcmVtb3ZlKHVuc2ln
bmVkIHBvcywgaW50IGxlbiA9IDEpOwpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODQ2NTgpCisr
KyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBA
QAorMjAxMS0wNC0yMiAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgbWFrZVNlY3VyZSBmcm9t
IFdURjo6U3RyaW5nIHRvIFJlbmRlclRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU5MTE0CisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJl
dmlvdXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Qm91bmRhcnkpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VTZWN1
cmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6c2V0VGV4dEludGVybmFsKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorCiAyMDExLTA0LTIyICBMZXZpIFdlaW50
cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBG
aXNoZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gODQ0OTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDYgKzE0OSw3
IEBAIF9fWk43V2ViQ29yZTEwU2Nyb2xsVmlldzIwc2V0Q2FuSGF2ZVNjcm8KIF9fWk43V2ViQ29y
ZTEwU2Nyb2xsVmlldzI0d2luZG93UmVzaXplclJlY3RDaGFuZ2VkRXYKIF9fWk43V2ViQ29yZTEw
ZGVsZXRlRmlsZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTEwaGFuZEN1cnNvckV2Citf
X1pON1dlYkNvcmUxMG1ha2VTZWN1cmVFUE4zV1RGNlN0cmluZ0V0TlNfMjFMYXN0Q2hhcmFjdGVy
QmVoYXZpb3JFCiBfX1pON1dlYkNvcmUxMHNldENvb2tpZXNFUE5TXzhEb2N1bWVudEVSS05TXzRL
VVJMRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMTFCaXRtYXBJbWFnZUMxRVA3Q0dJbWFn
ZVBOU18xM0ltYWdlT2JzZXJ2ZXJFCiBfX1pON1dlYkNvcmUxMUNhY2hlZEZyYW1lMjNjYWNoZWRG
cmFtZVBsYXRmb3JtRGF0YUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVf
dW5pdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91
bml0cy5jcHAJKHJldmlzaW9uIDg0NDk3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNp
YmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBW
aXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeSgKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAvLyBUcmVhdCBidWxsZXRzIHVzZWQgaW4gdGhlIHRleHQgc2VjdXJpdHkgbW9kZSBhcyBy
ZWd1bGFyIGNoYXJhY3RlcnMgd2hlbiBsb29raW5nIGZvciBib3VuZGFyaWVzCiAgICAgICAgICAg
ICBTdHJpbmcgaXRlcmF0b3JTdHJpbmcoaXQuY2hhcmFjdGVycygpLCBpdC5sZW5ndGgoKSk7Ci0g
ICAgICAgICAgICBpdGVyYXRvclN0cmluZyA9IGl0ZXJhdG9yU3RyaW5nLmltcGwoKS0+c2VjdXJl
KCd4Jyk7CisgICAgICAgICAgICBtYWtlU2VjdXJlKCZpdGVyYXRvclN0cmluZywgJ3gnKTsKICAg
ICAgICAgICAgIHN0cmluZy5wcmVwZW5kKGl0ZXJhdG9yU3RyaW5nLmNoYXJhY3RlcnMoKSwgaXRl
cmF0b3JTdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICB9CiAgICAgICAgIG5leHQgPSBzZWFyY2hG
dW5jdGlvbihzdHJpbmcuZGF0YSgpLCBzdHJpbmcuc2l6ZSgpLCBzdHJpbmcuc2l6ZSgpIC0gc3Vm
Zml4TGVuZ3RoLCBNYXlIYXZlTW9yZUNvbnRleHQsIG5lZWRNb3JlQ29udGV4dCk7CkBAIC0xNzYs
NyArMTc2LDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBuZXh0Qm91bmRhcnkoY29ucwogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFRyZWF0IGJ1bGxldHMgdXNlZCBpbiB0aGUgdGV4
dCBzZWN1cml0eSBtb2RlIGFzIHJlZ3VsYXIgY2hhcmFjdGVycyB3aGVuIGxvb2tpbmcgZm9yIGJv
dW5kYXJpZXMKICAgICAgICAgICAgIFN0cmluZyBpdGVyYXRvclN0cmluZyhpdC5jaGFyYWN0ZXJz
KCksIGl0Lmxlbmd0aCgpKTsKLSAgICAgICAgICAgIGl0ZXJhdG9yU3RyaW5nID0gaXRlcmF0b3JT
dHJpbmcuaW1wbCgpLT5zZWN1cmUoJ3gnKTsKKyAgICAgICAgICAgIG1ha2VTZWN1cmUoJml0ZXJh
dG9yU3RyaW5nLCAneCcpOwogICAgICAgICAgICAgc3RyaW5nLmFwcGVuZChpdGVyYXRvclN0cmlu
Zy5jaGFyYWN0ZXJzKCksIGl0ZXJhdG9yU3RyaW5nLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAg
ICAgICBuZXh0ID0gc2VhcmNoRnVuY3Rpb24oc3RyaW5nLmRhdGEoKSwgc3RyaW5nLnNpemUoKSwg
cHJlZml4TGVuZ3RoLCBNYXlIYXZlTW9yZUNvbnRleHQsIG5lZWRNb3JlQ29udGV4dCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA4NDQ5NykK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTIsNiArOTIsMTkgQEAgc3RhdGljIHZvaWQgbWFrZUNhcGl0YWxpemVkKFN0cmluZyog
c3RyaQogICAgICpzdHJpbmcgPSBTdHJpbmc6OmFkb3B0KGRhdGEpOwogfQogCit2b2lkIG1ha2VT
ZWN1cmUoU3RyaW5nKiBzdHJpbmcsIFVDaGFyIG1hc2ssIExhc3RDaGFyYWN0ZXJCZWhhdmlvciBi
ZWhhdmlvcikKK3sKKyAgICBpZiAoc3RyaW5nLT5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5nLT5sZW5ndGgoKTsKKyAgICBTdHJpbmdCdWZm
ZXIgZGF0YShsZW5ndGgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGggLSAx
OyArK2kpCisgICAgICAgIGRhdGFbaV0gPSBtYXNrOworICAgIGRhdGFbbGVuZ3RoIC0gMV0gPSAo
YmVoYXZpb3IgPT0gT2JzY3VyZUxhc3RDaGFyYWN0ZXIpID8gbWFzayA6ICgqc3RyaW5nKVtsZW5n
dGggLSAxXTsKKyAgICAqc3RyaW5nID0gU3RyaW5nOjphZG9wdChkYXRhKTsKK30KKwogUmVuZGVy
VGV4dDo6UmVuZGVyVGV4dChOb2RlKiBub2RlLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHN0cikK
ICAgICAgOiBSZW5kZXJPYmplY3Qobm9kZSkKICAgICAgLCBtX21pbldpZHRoKC0xKQpAQCAtMTE0
MCwxMyArMTE1MywxMyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbChQYXNzUmVm
CiAgICAgICAgIGNhc2UgVFNOT05FOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
VFNDSVJDTEU6Ci0gICAgICAgICAgICBtX3RleHQubWFrZVNlY3VyZSh3aGl0ZUJ1bGxldCk7Cisg
ICAgICAgICAgICBtYWtlU2VjdXJlKCZtX3RleHQsIHdoaXRlQnVsbGV0KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFRTRElTQzoKLSAgICAgICAgICAgIG1fdGV4dC5tYWtlU2Vj
dXJlKGJ1bGxldCk7CisgICAgICAgICAgICBtYWtlU2VjdXJlKCZtX3RleHQsIGJ1bGxldCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUU1NRVUFSRToKLSAgICAgICAgICAgIG1f
dGV4dC5tYWtlU2VjdXJlKGJsYWNrU3F1YXJlKTsKKyAgICAgICAgICAgIG1ha2VTZWN1cmUoJm1f
dGV4dCwgYmxhY2tTcXVhcmUpOwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmgJKHJldmlzaW9uIDg0NDk3KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjA2LDYgKzIwNiwx
MCBAQCBpbmxpbmUgdm9pZCBSZW5kZXJUZXh0OjpjaGVja0NvbnNpc3RlbmN5CiB9CiAjZW5kaWYK
IAorZW51bSBMYXN0Q2hhcmFjdGVyQmVoYXZpb3IgeyBPYnNjdXJlTGFzdENoYXJhY3RlciwgRGlz
cGxheUxhc3RDaGFyYWN0ZXIgfTsKKwordm9pZCBtYWtlU2VjdXJlKFN0cmluZyosIFVDaGFyIG1h
c2ssIExhc3RDaGFyYWN0ZXJCZWhhdmlvciA9IE9ic2N1cmVMYXN0Q2hhcmFjdGVyKTsKKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gUmVuZGVyVGV4dF9oCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiA4NDY1OCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTA0LTIyICBDaGFuZyBTaHUg
IDxjc2h1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTW92ZSBtYWtlU2VjdXJlIGZyb20gV1RGOjpTdHJpbmcgdG8gUmVuZGVyVGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTQK
KworICAgICAgICAqIFdlYktpdEdyYXBoaWNzLmNwcDoKKyAgICAgICAgKFdlYkRyYXdUZXh0KToK
KwogMjAxMS0wNC0yMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBXaW5kb3dzIGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYktpdEdyYXBo
aWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRHcmFwaGljcy5j
cHAJKHJldmlzaW9uIDg0NDk3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViS2l0R3JhcGhpY3Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9G
b250U2VsZWN0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TdHJpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRl
clRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1N0cmluZ1RydW5jYXRvci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV2ViQ29yZVRleHRSZW5kZXJlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0No
YXJhY3Rlck5hbWVzLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgdm9pZCBXZWJEcmF3VGV4dChXZWJU
ZXh0UmVuZGVySW5mbyogaW5mbwogICAgICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dChpbmZv
LT5jZ0NvbnRleHQpOwogICAgICAgICBTdHJpbmcgZHJhd1N0cmluZyhpbmZvLT50ZXh0LCBpbmZv
LT5sZW5ndGgpOwogICAgICAgICBpZiAoaW5mby0+ZHJhd0FzUGFzc3dvcmQpCi0gICAgICAgICAg
ICBkcmF3U3RyaW5nID0gZHJhd1N0cmluZy5pbXBsKCktPnNlY3VyZShXVEY6OlVuaWNvZGU6OmJ1
bGxldCk7CisgICAgICAgICAgICBtYWtlU2VjdXJlKCZkcmF3U3RyaW5nLCBXVEY6OlVuaWNvZGU6
OmJ1bGxldCk7CiAKICAgICAgICAgY29udGV4dC5zYXZlKCk7CiAK
</data>
<flag name="review"
          id="83505"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100121</attachid>
            <date>2011-07-08 08:47:12 -0700</date>
            <delta_ts>2011-07-08 09:15:37 -0700</delta_ts>
            <desc>patch 2</desc>
            <filename>59114_2.patch</filename>
            <type>text/plain</type>
            <size>8514</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA2MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDctMDggIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5h
bWUgIm1ha2VTZWN1cmUiIHRvICJmaWxsIiBhbmQgcmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBkaXNw
bGF5aW5nIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIHRvIGF2b2lkIGxheWVyaW5nIHZpb2xhdGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkx
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLmV4cDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAg
ICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6
ZmlsbCk6CisgICAgICAgICogd3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAqIHd0Zi90
ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RGOjpTdHJpbmc6OmZpbGwpOgorCiAyMDExLTA3
LTA4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBb
V0syXSBEbyBub3QgZm9yd2FyZCB0b3VjaCBldmVudHMgdG8gdGhlIHdlYiBwcm9jZXNzIHdoZW4g
aXQgZG9lcyBub3QgbmVlZCB0aGVtCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAJKHJldmlzaW9uIDkwNjI3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDcgKzM2OCw3IEBAIF9fWk4z
V1RGMTBTdHJpbmdJbXBsNXVwcGVyRXYKIF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS2MK
IF9fWk4zV1RGMTBTdHJpbmdJbXBsNmNyZWF0ZUVQS2NqCiBfX1pOM1dURjEwU3RyaW5nSW1wbDZj
cmVhdGVFUEt0agotX19aTjNXVEYxMFN0cmluZ0ltcGw2c2VjdXJlRXROUzBfMjFMYXN0Q2hhcmFj
dGVyQmVoYXZpb3JFCitfX1pOM1dURjEwU3RyaW5nSW1wbDRmaWxsRXQKIF9fWk4zV1RGMTBTdHJp
bmdJbXBsN3JlcGxhY2VFUFMwX1MxXwogX19aTjNXVEYxMFN0cmluZ0ltcGw3cmVwbGFjZUVqalBT
MF8KIF9fWk4zV1RGMTBTdHJpbmdJbXBsN3JlcGxhY2VFdFBTMF8KSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHJldmlzaW9uIDkwNjI3KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDgwLDcgKzE0ODAsNyBAQCBfX1pOM0pTQ0wyNnN0cmluZ1Byb3RvRnVuY1RvVXBwZXJDYXNl
RVBOCiBfX1pOM0pTQ0wyNnN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mRVBOU185RXhlY1N0YXRl
RQogX19aTkszSlNDN0pTVmFsdWUyMHRvSW50ZWdlclByZXNlcnZlTmFORVBOU185RXhlY1N0YXRl
RQogX19aTjNXVEZlcUVSS05TXzdDU3RyaW5nRVMyXwotX19aTjNXVEYxMFN0cmluZ0ltcGw2c2Vj
dXJlRXROUzBfMjFMYXN0Q2hhcmFjdGVyQmVoYXZpb3JFCitfX1pOM1dURjEwU3RyaW5nSW1wbDRm
aWxsRXQKIF9fWk4zV1RGMjJjaGFyYWN0ZXJzVG9VSW50U3RyaWN0RVBLdG1QYmkKIF9fWk5LM1dU
RjZTdHJpbmc1dXBwZXJFdgogX19aTkszSlNDMTFJbnRlcnByZXRlcjE4cmV0cmlldmVMYXN0Q2Fs
bGVyRVBOU185RXhlY1N0YXRlRVJpUmxSTlNfN1VTdHJpbmdFUk5TXzdKU1ZhbHVlRQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAkocmV2aXNp
b24gOTA2MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3MCwxNyArMjcwLDE1IEBAIFBhc3NSZWZQdHI8U3RyaW5n
SW1wbD4gU3RyaW5nSW1wbDo6dXBwZXIKICAgICByZXR1cm4gbmV3SW1wbC5yZWxlYXNlKCk7CiB9
CiAKLVBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6c2VjdXJlKFVDaGFyIGNoYXJh
Y3RlciwgTGFzdENoYXJhY3RlckJlaGF2aW9yIGJlaGF2aW9yKQorUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiBTdHJpbmdJbXBsOjpmaWxsKFVDaGFyIGNoYXJhY3RlcikKIHsKICAgICBpZiAoIW1fbGVu
Z3RoKQogICAgICAgICByZXR1cm4gdGhpczsKIAogICAgIFVDaGFyKiBkYXRhOwogICAgIFJlZlB0
cjxTdHJpbmdJbXBsPiBuZXdJbXBsID0gY3JlYXRlVW5pbml0aWFsaXplZChtX2xlbmd0aCwgZGF0
YSk7Ci0gICAgdW5zaWduZWQgbGFzdENoYXJhY3RlckluZGV4ID0gbV9sZW5ndGggLSAxOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsYXN0Q2hhcmFjdGVySW5kZXg7ICsraSkKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9sZW5ndGg7ICsraSkKICAgICAgICAgZGF0YVtpXSA9
IGNoYXJhY3RlcjsKLSAgICBkYXRhW2xhc3RDaGFyYWN0ZXJJbmRleF0gPSAoYmVoYXZpb3IgPT0g
T2JzY3VyZUxhc3RDaGFyYWN0ZXIpID8gY2hhcmFjdGVyIDogbV9kYXRhW2xhc3RDaGFyYWN0ZXJJ
bmRleF07CiAgICAgcmV0dXJuIG5ld0ltcGwucmVsZWFzZSgpOwogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgJKHJldmlzaW9uIDkwNjI3KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkod29ya2luZyBj
b3B5KQpAQCAtMjg0LDkgKzI4NCw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPFN0cmluZ0lt
cGw+IGxvd2VyKCk7CiAgICAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiB1cHBlcigpOwogCi0gICAg
ZW51bSBMYXN0Q2hhcmFjdGVyQmVoYXZpb3IgeyBPYnNjdXJlTGFzdENoYXJhY3RlciwgRGlzcGxh
eUxhc3RDaGFyYWN0ZXIgfTsKLQotICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc2VjdXJlKFVD
aGFyLCBMYXN0Q2hhcmFjdGVyQmVoYXZpb3IgPSBPYnNjdXJlTGFzdENoYXJhY3Rlcik7CisgICAg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBmaWxsKFVDaGFyKTsKICAgICBQYXNzUmVmUHRyPFN0cmlu
Z0ltcGw+IGZvbGRDYXNlKCk7CiAKICAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHN0cmlwV2hp
dGVTcGFjZSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dURlN0cmlu
Zy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9XVEZTdHJp
bmcuaAkocmV2aXNpb24gOTA2MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQv
V1RGU3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxOSw3ICsyMTksMTEgQEAgcHVibGljOgog
CiAgICAgdm9pZCBtYWtlTG93ZXIoKSB7IGlmIChtX2ltcGwpIG1faW1wbCA9IG1faW1wbC0+bG93
ZXIoKTsgfQogICAgIHZvaWQgbWFrZVVwcGVyKCkgeyBpZiAobV9pbXBsKSBtX2ltcGwgPSBtX2lt
cGwtPnVwcGVyKCk7IH0KLSAgICB2b2lkIG1ha2VTZWN1cmUoVUNoYXIgYUNoYXIpIHsgaWYgKG1f
aW1wbCkgbV9pbXBsID0gbV9pbXBsLT5zZWN1cmUoYUNoYXIpOyB9CisgICAgdm9pZCBmaWxsKFVD
aGFyIGFDaGFyKQorICAgIHsKKyAgICAgICAgaWYgKG1faW1wbCkKKyAgICAgICAgICAgIG1faW1w
bCA9IG1faW1wbC0+ZmlsbChhQ2hhcik7CisgICAgfQogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbGVuKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCByZW1vdmUodW5zaWduZWQgcG9zLCBpbnQgbGVuID0gMSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZp
c2lvbiA5MDYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDExLTA3LTA4ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+
CisKKyAgICAgICAgVXBkYXRlIGNhbGxpbmcgc2l0ZXMgYWZ0ZXIgZnVuY3Rpb24gcmVuYW1lZC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTE0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLCBqdXN0IHJlZmFjdG9yaW5nLgorCisgICAgICAgICogZWRpdGluZy92aXNpYmxlX3VuaXRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnByZXZpb3VzQm91bmRhcnkpOgorICAgICAgICAoV2Vi
Q29yZTo6bmV4dEJvdW5kYXJ5KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0OjpzZXRUZXh0SW50ZXJuYWwpOgorCiAyMDEx
LTA3LTA4ICBBbGV4YW5kZXIgUGF2bG92ICA8YXBhdmxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogQ1NTIGluc3BlY3RvciBnZXRzIGNvbmZ1c2VkIGFib3V0IHNwZWNp
ZmljaXR5IG9mICFpbXBvcnRhbnQgcHJvcGVydGllcwpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy92aXNpYmxlX3VuaXRzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3Zpc2libGVfdW5pdHMuY3BwCShyZXZpc2lvbiA5MDYyNykKKysrIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMs
NyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzQm91bmRhcnkoCiAgICAgICAgIGVs
c2UgewogICAgICAgICAgICAgLy8gVHJlYXQgYnVsbGV0cyB1c2VkIGluIHRoZSB0ZXh0IHNlY3Vy
aXR5IG1vZGUgYXMgcmVndWxhciBjaGFyYWN0ZXJzIHdoZW4gbG9va2luZyBmb3IgYm91bmRhcmll
cwogICAgICAgICAgICAgU3RyaW5nIGl0ZXJhdG9yU3RyaW5nKGl0LmNoYXJhY3RlcnMoKSwgaXQu
bGVuZ3RoKCkpOwotICAgICAgICAgICAgaXRlcmF0b3JTdHJpbmcgPSBpdGVyYXRvclN0cmluZy5p
bXBsKCktPnNlY3VyZSgneCcpOworICAgICAgICAgICAgaXRlcmF0b3JTdHJpbmcuZmlsbCgneCcp
OwogICAgICAgICAgICAgc3RyaW5nLnByZXBlbmQoaXRlcmF0b3JTdHJpbmcuY2hhcmFjdGVycygp
LCBpdGVyYXRvclN0cmluZy5sZW5ndGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgbmV4dCA9IHNl
YXJjaEZ1bmN0aW9uKHN0cmluZy5kYXRhKCksIHN0cmluZy5zaXplKCksIHN0cmluZy5zaXplKCkg
LSBzdWZmaXhMZW5ndGgsIE1heUhhdmVNb3JlQ29udGV4dCwgbmVlZE1vcmVDb250ZXh0KTsKQEAg
LTE3OCw3ICsxNzgsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIG5leHRCb3VuZGFyeShjb25z
CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gVHJlYXQgYnVsbGV0cyB1c2VkIGluIHRo
ZSB0ZXh0IHNlY3VyaXR5IG1vZGUgYXMgcmVndWxhciBjaGFyYWN0ZXJzIHdoZW4gbG9va2luZyBm
b3IgYm91bmRhcmllcwogICAgICAgICAgICAgU3RyaW5nIGl0ZXJhdG9yU3RyaW5nKGl0LmNoYXJh
Y3RlcnMoKSwgaXQubGVuZ3RoKCkpOwotICAgICAgICAgICAgaXRlcmF0b3JTdHJpbmcgPSBpdGVy
YXRvclN0cmluZy5pbXBsKCktPnNlY3VyZSgneCcpOworICAgICAgICAgICAgaXRlcmF0b3JTdHJp
bmcuZmlsbCgneCcpOwogICAgICAgICAgICAgc3RyaW5nLmFwcGVuZChpdGVyYXRvclN0cmluZy5j
aGFyYWN0ZXJzKCksIGl0ZXJhdG9yU3RyaW5nLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAgICAg
ICBuZXh0ID0gc2VhcmNoRnVuY3Rpb24oc3RyaW5nLmRhdGEoKSwgc3RyaW5nLnNpemUoKSwgcHJl
Zml4TGVuZ3RoLCBNYXlIYXZlTW9yZUNvbnRleHQsIG5lZWRNb3JlQ29udGV4dCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCShyZXZpc2lvbiA5MDYyNykKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTE3MCwxMyArMTE3MCwxMyBAQCB2b2lkIFJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbChQ
YXNzUmVmCiAgICAgICAgIGNhc2UgVFNOT05FOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgVFNDSVJDTEU6Ci0gICAgICAgICAgICBtX3RleHQubWFrZVNlY3VyZSh3aGl0ZUJ1bGxl
dCk7CisgICAgICAgICAgICBtX3RleHQuZmlsbCh3aGl0ZUJ1bGxldCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBUU0RJU0M6Ci0gICAgICAgICAgICBtX3RleHQubWFrZVNlY3Vy
ZShidWxsZXQpOworICAgICAgICAgICAgbV90ZXh0LmZpbGwoYnVsbGV0KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFRTU1FVQVJFOgotICAgICAgICAgICAgbV90ZXh0Lm1ha2VT
ZWN1cmUoYmxhY2tTcXVhcmUpOworICAgICAgICAgICAgbV90ZXh0LmZpbGwoYmxhY2tTcXVhcmUp
OwogICAgICAgICB9CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDYz
MCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTA3LTA4ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgVXBkYXRlIGNhbGxpbmcgc2l0ZXMgYWZ0ZXIgZnVuY3Rpb24gcmVuYW1lZC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTE0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRHcmFwaGlj
cy5jcHA6CisgICAgICAgIChXZWJEcmF3VGV4dCk6CisKIDIwMTEtMDYtMzAgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVy
bnN0ZWluLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViS2l0R3JhcGhpY3MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL1dlYktpdEdyYXBoaWNzLmNwcAkocmV2aXNpb24g
OTA2MjcpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRHcmFwaGljcy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEwNCw3ICsxMDQsNyBAQCB2b2lkIFdlYkRyYXdUZXh0KFdlYlRleHRSZW5kZXJJ
bmZvKiBpbmZvCiAgICAgICAgIEdyYXBoaWNzQ29udGV4dCBjb250ZXh0KGluZm8tPmNnQ29udGV4
dCk7CiAgICAgICAgIFN0cmluZyBkcmF3U3RyaW5nKGluZm8tPnRleHQsIGluZm8tPmxlbmd0aCk7
CiAgICAgICAgIGlmIChpbmZvLT5kcmF3QXNQYXNzd29yZCkKLSAgICAgICAgICAgIGRyYXdTdHJp
bmcgPSBkcmF3U3RyaW5nLmltcGwoKS0+c2VjdXJlKFdURjo6VW5pY29kZTo6YnVsbGV0KTsKKyAg
ICAgICAgICAgIGRyYXdTdHJpbmcuZmlsbChXVEY6OlVuaWNvZGU6OmJ1bGxldCk7CiAKICAgICAg
ICAgY29udGV4dC5zYXZlKCk7CiAK
</data>
<flag name="review"
          id="94751"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100125</attachid>
            <date>2011-07-08 09:15:37 -0700</date>
            <delta_ts>2011-07-08 10:15:11 -0700</delta_ts>
            <desc>patch 3: minor changes after r+</desc>
            <filename>59114_3.patch</filename>
            <type>text/plain</type>
            <size>8521</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA2MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDctMDggIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5h
bWUgIm1ha2VTZWN1cmUiIHRvICJmaWxsIiBhbmQgcmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBkaXNw
bGF5aW5nIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIHRvIGF2b2lkIGxheWVyaW5nIHZpb2xhdGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkx
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgor
ICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjpmaWxsKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgICog
d3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OlN0cmluZzo6ZmlsbCk6CisKIDIw
MTEtMDctMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtXSzJdIERvIG5vdCBmb3J3YXJkIHRvdWNoIGV2ZW50cyB0byB0aGUgd2ViIHByb2Nlc3Mg
d2hlbiBpdCBkb2VzIG5vdCBuZWVkIHRoZW0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gOTA2MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsNyArMzY4LDcgQEAg
X19aTjNXVEYxMFN0cmluZ0ltcGw1dXBwZXJFdgogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRl
RVBLYwogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRlRVBLY2oKIF9fWk4zV1RGMTBTdHJpbmdJ
bXBsNmNyZWF0ZUVQS3RqCi1fX1pOM1dURjEwU3RyaW5nSW1wbDZzZWN1cmVFdE5TMF8yMUxhc3RD
aGFyYWN0ZXJCZWhhdmlvckUKK19fWk4zV1RGMTBTdHJpbmdJbXBsNGZpbGxFdAogX19aTjNXVEYx
MFN0cmluZ0ltcGw3cmVwbGFjZUVQUzBfUzFfCiBfX1pOM1dURjEwU3RyaW5nSW1wbDdyZXBsYWNl
RWpqUFMwXwogX19aTjNXVEYxMFN0cmluZ0ltcGw3cmVwbGFjZUV0UFMwXwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkocmV2aXNpb24gOTA2MjcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHdvcmtpbmcgY29w
eSkKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIF9fWk4zSlNDTDI2c3RyaW5nUHJvdG9GdW5jVG9VcHBl
ckNhc2VFUE4KIF9fWk4zSlNDTDI2c3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2ZFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9JbnRlZ2VyUHJlc2VydmVOYU5FUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM1dURmVxRVJLTlNfN0NTdHJpbmdFUzJfCi1fX1pOM1dURjEwU3RyaW5nSW1w
bDZzZWN1cmVFdE5TMF8yMUxhc3RDaGFyYWN0ZXJCZWhhdmlvckUKK19fWk4zV1RGMTBTdHJpbmdJ
bXBsNGZpbGxFdAogX19aTjNXVEYyMmNoYXJhY3RlcnNUb1VJbnRTdHJpY3RFUEt0bVBiaQogX19a
TkszV1RGNlN0cmluZzV1cHBlckV2CiBfX1pOSzNKU0MxMUludGVycHJldGVyMThyZXRyaWV2ZUxh
c3RDYWxsZXJFUE5TXzlFeGVjU3RhdGVFUmlSbFJOU183VVN0cmluZ0VSTlNfN0pTVmFsdWVFCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCShy
ZXZpc2lvbiA5MDYyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDE3ICsyNzAsMTUgQEAgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp1cHBlcgogICAgIHJldHVybiBuZXdJbXBsLnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpzZWN1cmUoVUNoYXIg
Y2hhcmFjdGVyLCBMYXN0Q2hhcmFjdGVyQmVoYXZpb3IgYmVoYXZpb3IpCitQYXNzUmVmUHRyPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmZpbGwoVUNoYXIgY2hhcmFjdGVyKQogewogICAgIGlmICgh
bV9sZW5ndGgpCiAgICAgICAgIHJldHVybiB0aGlzOwogCiAgICAgVUNoYXIqIGRhdGE7CiAgICAg
UmVmUHRyPFN0cmluZ0ltcGw+IG5ld0ltcGwgPSBjcmVhdGVVbmluaXRpYWxpemVkKG1fbGVuZ3Ro
LCBkYXRhKTsKLSAgICB1bnNpZ25lZCBsYXN0Q2hhcmFjdGVySW5kZXggPSBtX2xlbmd0aCAtIDE7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxhc3RDaGFyYWN0ZXJJbmRleDsgKytpKQor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKQogICAgICAgICBkYXRh
W2ldID0gY2hhcmFjdGVyOwotICAgIGRhdGFbbGFzdENoYXJhY3RlckluZGV4XSA9IChiZWhhdmlv
ciA9PSBPYnNjdXJlTGFzdENoYXJhY3RlcikgPyBjaGFyYWN0ZXIgOiBtX2RhdGFbbGFzdENoYXJh
Y3RlckluZGV4XTsKICAgICByZXR1cm4gbmV3SW1wbC5yZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkocmV2aXNpb24gOTA2
MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODQsOSArMjg0LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gbG93ZXIoKTsKICAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHVwcGVyKCk7CiAK
LSAgICBlbnVtIExhc3RDaGFyYWN0ZXJCZWhhdmlvciB7IE9ic2N1cmVMYXN0Q2hhcmFjdGVyLCBE
aXNwbGF5TGFzdENoYXJhY3RlciB9OwotCi0gICAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBzZWN1
cmUoVUNoYXIsIExhc3RDaGFyYWN0ZXJCZWhhdmlvciA9IE9ic2N1cmVMYXN0Q2hhcmFjdGVyKTsK
KyAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGZpbGwoVUNoYXIpOwogICAgIFBhc3NSZWZQdHI8
U3RyaW5nSW1wbD4gZm9sZENhc2UoKTsKIAogICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3Ry
aXBXaGl0ZVNwYWNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RG
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCShyZXZpc2lvbiA5MDYyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDcgKzIxOSwxMSBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIG1ha2VMb3dlcigpIHsgaWYgKG1faW1wbCkgbV9pbXBsID0gbV9pbXBs
LT5sb3dlcigpOyB9CiAgICAgdm9pZCBtYWtlVXBwZXIoKSB7IGlmIChtX2ltcGwpIG1faW1wbCA9
IG1faW1wbC0+dXBwZXIoKTsgfQotICAgIHZvaWQgbWFrZVNlY3VyZShVQ2hhciBhQ2hhcikgeyBp
ZiAobV9pbXBsKSBtX2ltcGwgPSBtX2ltcGwtPnNlY3VyZShhQ2hhcik7IH0KKyAgICB2b2lkIGZp
bGwoVUNoYXIgYykKKyAgICB7CisgICAgICAgIGlmIChtX2ltcGwpCisgICAgICAgICAgICBtX2lt
cGwgPSBtX2ltcGwtPmZpbGwoYyk7CisgICAgfQogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHZv
aWQgdHJ1bmNhdGUodW5zaWduZWQgbGVuKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBy
ZW1vdmUodW5zaWduZWQgcG9zLCBpbnQgbGVuID0gMSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lv
biA5MDYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE4IEBACisyMDExLTA3LTA4ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisK
KyAgICAgICAgVXBkYXRlIGNhbGxpbmcgc2l0ZXMgYWZ0ZXIgZnVuY3Rpb24gcmVuYW1lZC4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU5MTE0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGp1c3QgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBlZGl0aW5nL3Zpc2libGVfdW5p
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlvdXNCb3VuZGFyeSk6CisgICAgICAgIChX
ZWJDb3JlOjpuZXh0Qm91bmRhcnkpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6OnNldFRleHRJbnRlcm5hbCk6CisKIDIw
MTEtMDctMDggIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2bG92QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBDU1MgaW5zcGVjdG9yIGdldHMgY29uZnVzZWQgYWJvdXQgc3Bl
Y2lmaWNpdHkgb2YgIWltcG9ydGFudCBwcm9wZXJ0aWVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9uIDkwNjI3KQorKysgU291cmNlL1dlYkNv
cmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDcgKzEw
Myw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeSgKICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAvLyBUcmVhdCBidWxsZXRzIHVzZWQgaW4gdGhlIHRleHQgc2Vj
dXJpdHkgbW9kZSBhcyByZWd1bGFyIGNoYXJhY3RlcnMgd2hlbiBsb29raW5nIGZvciBib3VuZGFy
aWVzCiAgICAgICAgICAgICBTdHJpbmcgaXRlcmF0b3JTdHJpbmcoaXQuY2hhcmFjdGVycygpLCBp
dC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBpdGVyYXRvclN0cmluZyA9IGl0ZXJhdG9yU3RyaW5n
LmltcGwoKS0+c2VjdXJlKCd4Jyk7CisgICAgICAgICAgICBpdGVyYXRvclN0cmluZy5maWxsKCd4
Jyk7CiAgICAgICAgICAgICBzdHJpbmcucHJlcGVuZChpdGVyYXRvclN0cmluZy5jaGFyYWN0ZXJz
KCksIGl0ZXJhdG9yU3RyaW5nLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAgICAgICBuZXh0ID0g
c2VhcmNoRnVuY3Rpb24oc3RyaW5nLmRhdGEoKSwgc3RyaW5nLnNpemUoKSwgc3RyaW5nLnNpemUo
KSAtIHN1ZmZpeExlbmd0aCwgTWF5SGF2ZU1vcmVDb250ZXh0LCBuZWVkTW9yZUNvbnRleHQpOwpA
QCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gbmV4dEJvdW5kYXJ5KGNv
bnMKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBUcmVhdCBidWxsZXRzIHVzZWQgaW4g
dGhlIHRleHQgc2VjdXJpdHkgbW9kZSBhcyByZWd1bGFyIGNoYXJhY3RlcnMgd2hlbiBsb29raW5n
IGZvciBib3VuZGFyaWVzCiAgICAgICAgICAgICBTdHJpbmcgaXRlcmF0b3JTdHJpbmcoaXQuY2hh
cmFjdGVycygpLCBpdC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBpdGVyYXRvclN0cmluZyA9IGl0
ZXJhdG9yU3RyaW5nLmltcGwoKS0+c2VjdXJlKCd4Jyk7CisgICAgICAgICAgICBpdGVyYXRvclN0
cmluZy5maWxsKCd4Jyk7CiAgICAgICAgICAgICBzdHJpbmcuYXBwZW5kKGl0ZXJhdG9yU3RyaW5n
LmNoYXJhY3RlcnMoKSwgaXRlcmF0b3JTdHJpbmcubGVuZ3RoKCkpOwogICAgICAgICB9CiAgICAg
ICAgIG5leHQgPSBzZWFyY2hGdW5jdGlvbihzdHJpbmcuZGF0YSgpLCBzdHJpbmcuc2l6ZSgpLCBw
cmVmaXhMZW5ndGgsIE1heUhhdmVNb3JlQ29udGV4dCwgbmVlZE1vcmVDb250ZXh0KTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAJKHJldmlzaW9uIDkwNjI3KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTcwLDEzICsxMTcwLDEzIEBAIHZvaWQgUmVuZGVyVGV4dDo6c2V0VGV4dEludGVybmFs
KFBhc3NSZWYKICAgICAgICAgY2FzZSBUU05PTkU6CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBUU0NJUkNMRToKLSAgICAgICAgICAgIG1fdGV4dC5tYWtlU2VjdXJlKHdoaXRlQnVs
bGV0KTsKKyAgICAgICAgICAgIG1fdGV4dC5maWxsKHdoaXRlQnVsbGV0KTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIFRTRElTQzoKLSAgICAgICAgICAgIG1fdGV4dC5tYWtlU2Vj
dXJlKGJ1bGxldCk7CisgICAgICAgICAgICBtX3RleHQuZmlsbChidWxsZXQpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVFNTUVVBUkU6Ci0gICAgICAgICAgICBtX3RleHQubWFr
ZVNlY3VyZShibGFja1NxdWFyZSk7CisgICAgICAgICAgICBtX3RleHQuZmlsbChibGFja1NxdWFy
ZSk7CiAgICAgICAgIH0KICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkw
NjMwKQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTEtMDctMDggIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBVcGRhdGUgY2FsbGluZyBzaXRlcyBhZnRlciBmdW5jdGlvbiByZW5hbWVkLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkxMTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgICogV2ViS2l0
R3JhcGhpY3MuY3BwOgorICAgICAgICAoV2ViRHJhd1RleHQpOgorCiAyMDExLTA2LTMwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYktpdEdyYXBoaWNzLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXRHcmFwaGljcy5jcHAJKHJl
dmlzaW9uIDkwNjI3KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViS2l0R3JhcGhpY3MuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAgdm9pZCBXZWJEcmF3VGV4dChXZWJUZXh0
UmVuZGVySW5mbyogaW5mbwogICAgICAgICBHcmFwaGljc0NvbnRleHQgY29udGV4dChpbmZvLT5j
Z0NvbnRleHQpOwogICAgICAgICBTdHJpbmcgZHJhd1N0cmluZyhpbmZvLT50ZXh0LCBpbmZvLT5s
ZW5ndGgpOwogICAgICAgICBpZiAoaW5mby0+ZHJhd0FzUGFzc3dvcmQpCi0gICAgICAgICAgICBk
cmF3U3RyaW5nID0gZHJhd1N0cmluZy5pbXBsKCktPnNlY3VyZShXVEY6OlVuaWNvZGU6OmJ1bGxl
dCk7CisgICAgICAgICAgICBkcmF3U3RyaW5nLmZpbGwoV1RGOjpVbmljb2RlOjpidWxsZXQpOwog
CiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogCg==
</data>
<flag name="commit-queue"
          id="94758"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100129</attachid>
            <date>2011-07-08 10:15:11 -0700</date>
            <delta_ts>2011-07-08 10:54:18 -0700</delta_ts>
            <desc>patch 4: minor changes after r+</desc>
            <filename>59114_4.patch</filename>
            <type>text/plain</type>
            <size>8488</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTA2MzApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTEtMDctMDggIENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZW5h
bWUgIm1ha2VTZWN1cmUiIHRvICJmaWxsIiBhbmQgcmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBkaXNw
bGF5aW5nIGxhc3QgY2hhcmFjdGVyCisgICAgICAgIHRvIGF2b2lkIGxheWVyaW5nIHZpb2xhdGF0
aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTkx
MTQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUuZXhwOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9yZGVyOgor
ICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmdJ
bXBsOjpmaWxsKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBsLmg6CisgICAgICAgICog
d3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChXVEY6OlN0cmluZzo6ZmlsbCk6CisKIDIw
MTEtMDctMDggIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtXSzJdIERvIG5vdCBmb3J3YXJkIHRvdWNoIGV2ZW50cyB0byB0aGUgd2ViIHByb2Nlc3Mg
d2hlbiBpdCBkb2VzIG5vdCBuZWVkIHRoZW0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gOTA2MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsNyArMzY4LDcgQEAg
X19aTjNXVEYxMFN0cmluZ0ltcGw1dXBwZXJFdgogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRl
RVBLYwogX19aTjNXVEYxMFN0cmluZ0ltcGw2Y3JlYXRlRVBLY2oKIF9fWk4zV1RGMTBTdHJpbmdJ
bXBsNmNyZWF0ZUVQS3RqCi1fX1pOM1dURjEwU3RyaW5nSW1wbDZzZWN1cmVFdE5TMF8yMUxhc3RD
aGFyYWN0ZXJCZWhhdmlvckUKK19fWk4zV1RGMTBTdHJpbmdJbXBsNGZpbGxFdAogX19aTjNXVEYx
MFN0cmluZ0ltcGw3cmVwbGFjZUVQUzBfUzFfCiBfX1pOM1dURjEwU3RyaW5nSW1wbDdyZXBsYWNl
RWpqUFMwXwogX19aTjNXVEYxMFN0cmluZ0ltcGw3cmVwbGFjZUV0UFMwXwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgkocmV2aXNpb24gOTA2MjcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIJKHdvcmtpbmcgY29w
eSkKQEAgLTE0ODAsNyArMTQ4MCw3IEBAIF9fWk4zSlNDTDI2c3RyaW5nUHJvdG9GdW5jVG9VcHBl
ckNhc2VFUE4KIF9fWk4zSlNDTDI2c3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2ZFUE5TXzlFeGVj
U3RhdGVFCiBfX1pOSzNKU0M3SlNWYWx1ZTIwdG9JbnRlZ2VyUHJlc2VydmVOYU5FUE5TXzlFeGVj
U3RhdGVFCiBfX1pOM1dURmVxRVJLTlNfN0NTdHJpbmdFUzJfCi1fX1pOM1dURjEwU3RyaW5nSW1w
bDZzZWN1cmVFdE5TMF8yMUxhc3RDaGFyYWN0ZXJCZWhhdmlvckUKK19fWk4zV1RGMTBTdHJpbmdJ
bXBsNGZpbGxFdAogX19aTjNXVEYyMmNoYXJhY3RlcnNUb1VJbnRTdHJpY3RFUEt0bVBiaQogX19a
TkszV1RGNlN0cmluZzV1cHBlckV2CiBfX1pOSzNKU0MxMUludGVycHJldGVyMThyZXRyaWV2ZUxh
c3RDYWxsZXJFUE5TXzlFeGVjU3RhdGVFUmlSbFJOU183VVN0cmluZ0VSTlNfN0pTVmFsdWVFCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCShy
ZXZpc2lvbiA5MDYyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcwLDE3ICsyNzAsMTUgQEAgUGFzc1JlZlB0cjxT
dHJpbmdJbXBsPiBTdHJpbmdJbXBsOjp1cHBlcgogICAgIHJldHVybiBuZXdJbXBsLnJlbGVhc2Uo
KTsKIH0KIAotUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpzZWN1cmUoVUNoYXIg
Y2hhcmFjdGVyLCBMYXN0Q2hhcmFjdGVyQmVoYXZpb3IgYmVoYXZpb3IpCitQYXNzUmVmUHRyPFN0
cmluZ0ltcGw+IFN0cmluZ0ltcGw6OmZpbGwoVUNoYXIgY2hhcmFjdGVyKQogewogICAgIGlmICgh
bV9sZW5ndGgpCiAgICAgICAgIHJldHVybiB0aGlzOwogCiAgICAgVUNoYXIqIGRhdGE7CiAgICAg
UmVmUHRyPFN0cmluZ0ltcGw+IG5ld0ltcGwgPSBjcmVhdGVVbmluaXRpYWxpemVkKG1fbGVuZ3Ro
LCBkYXRhKTsKLSAgICB1bnNpZ25lZCBsYXN0Q2hhcmFjdGVySW5kZXggPSBtX2xlbmd0aCAtIDE7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxhc3RDaGFyYWN0ZXJJbmRleDsgKytpKQor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2xlbmd0aDsgKytpKQogICAgICAgICBkYXRh
W2ldID0gY2hhcmFjdGVyOwotICAgIGRhdGFbbGFzdENoYXJhY3RlckluZGV4XSA9IChiZWhhdmlv
ciA9PSBPYnNjdXJlTGFzdENoYXJhY3RlcikgPyBjaGFyYWN0ZXIgOiBtX2RhdGFbbGFzdENoYXJh
Y3RlckluZGV4XTsKICAgICByZXR1cm4gbmV3SW1wbC5yZWxlYXNlKCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvdGV4dC9TdHJpbmdJbXBsLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1N0cmluZ0ltcGwuaAkocmV2aXNpb24gOTA2
MjcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvU3RyaW5nSW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODQsOSArMjg0LDcgQEAgcHVibGljOgogICAgIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gbG93ZXIoKTsKICAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IHVwcGVyKCk7CiAK
LSAgICBlbnVtIExhc3RDaGFyYWN0ZXJCZWhhdmlvciB7IE9ic2N1cmVMYXN0Q2hhcmFjdGVyLCBE
aXNwbGF5TGFzdENoYXJhY3RlciB9OwotCi0gICAgUGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBzZWN1
cmUoVUNoYXIsIExhc3RDaGFyYWN0ZXJCZWhhdmlvciA9IE9ic2N1cmVMYXN0Q2hhcmFjdGVyKTsK
KyAgICBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGZpbGwoVUNoYXIpOwogICAgIFBhc3NSZWZQdHI8
U3RyaW5nSW1wbD4gZm9sZENhc2UoKTsKIAogICAgIFBhc3NSZWZQdHI8U3RyaW5nSW1wbD4gc3Ry
aXBXaGl0ZVNwYWNlKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3RleHQvV1RG
U3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCShyZXZpc2lvbiA5MDYyNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
dGV4dC9XVEZTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMjE5LDcgKzIxOSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgbWFrZUxvd2VyKCkgeyBpZiAobV9pbXBsKSBtX2ltcGwgPSBtX2ltcGwt
Pmxvd2VyKCk7IH0KICAgICB2b2lkIG1ha2VVcHBlcigpIHsgaWYgKG1faW1wbCkgbV9pbXBsID0g
bV9pbXBsLT51cHBlcigpOyB9Ci0gICAgdm9pZCBtYWtlU2VjdXJlKFVDaGFyIGFDaGFyKSB7IGlm
IChtX2ltcGwpIG1faW1wbCA9IG1faW1wbC0+c2VjdXJlKGFDaGFyKTsgfQorICAgIHZvaWQgZmls
bChVQ2hhciBjKSB7IGlmIChtX2ltcGwpIG1faW1wbCA9IG1faW1wbC0+ZmlsbChjKTsgfQogCiAg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbGVuKTsKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCByZW1vdmUodW5zaWduZWQgcG9zLCBpbnQgbGVuID0gMSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MDYzMCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTA3LTA4ICBDaGFuZyBT
aHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXBkYXRlIGNhbGxpbmcgc2l0ZXMgYWZ0
ZXIgZnVuY3Rpb24gcmVuYW1lZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU5MTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5
YWtvdi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGp1c3QgcmVmYWN0b3JpbmcuCisKKyAgICAg
ICAgKiBlZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJldmlv
dXNCb3VuZGFyeSk6CisgICAgICAgIChXZWJDb3JlOjpuZXh0Qm91bmRhcnkpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHQ6
OnNldFRleHRJbnRlcm5hbCk6CisKIDIwMTEtMDctMDggIEFsZXhhbmRlciBQYXZsb3YgIDxhcGF2
bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDU1MgaW5zcGVjdG9y
IGdldHMgY29uZnVzZWQgYWJvdXQgc3BlY2lmaWNpdHkgb2YgIWltcG9ydGFudCBwcm9wZXJ0aWVz
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3Zpc2libGVfdW5pdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvdmlzaWJsZV91bml0cy5jcHAJKHJldmlzaW9u
IDkwNjI3KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy92aXNpYmxlX3VuaXRzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTAzLDcgKzEwMyw3IEBAIHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gcHJl
dmlvdXNCb3VuZGFyeSgKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBUcmVhdCBidWxs
ZXRzIHVzZWQgaW4gdGhlIHRleHQgc2VjdXJpdHkgbW9kZSBhcyByZWd1bGFyIGNoYXJhY3RlcnMg
d2hlbiBsb29raW5nIGZvciBib3VuZGFyaWVzCiAgICAgICAgICAgICBTdHJpbmcgaXRlcmF0b3JT
dHJpbmcoaXQuY2hhcmFjdGVycygpLCBpdC5sZW5ndGgoKSk7Ci0gICAgICAgICAgICBpdGVyYXRv
clN0cmluZyA9IGl0ZXJhdG9yU3RyaW5nLmltcGwoKS0+c2VjdXJlKCd4Jyk7CisgICAgICAgICAg
ICBpdGVyYXRvclN0cmluZy5maWxsKCd4Jyk7CiAgICAgICAgICAgICBzdHJpbmcucHJlcGVuZChp
dGVyYXRvclN0cmluZy5jaGFyYWN0ZXJzKCksIGl0ZXJhdG9yU3RyaW5nLmxlbmd0aCgpKTsKICAg
ICAgICAgfQogICAgICAgICBuZXh0ID0gc2VhcmNoRnVuY3Rpb24oc3RyaW5nLmRhdGEoKSwgc3Ry
aW5nLnNpemUoKSwgc3RyaW5nLnNpemUoKSAtIHN1ZmZpeExlbmd0aCwgTWF5SGF2ZU1vcmVDb250
ZXh0LCBuZWVkTW9yZUNvbnRleHQpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBWaXNpYmxl
UG9zaXRpb24gbmV4dEJvdW5kYXJ5KGNvbnMKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAv
LyBUcmVhdCBidWxsZXRzIHVzZWQgaW4gdGhlIHRleHQgc2VjdXJpdHkgbW9kZSBhcyByZWd1bGFy
IGNoYXJhY3RlcnMgd2hlbiBsb29raW5nIGZvciBib3VuZGFyaWVzCiAgICAgICAgICAgICBTdHJp
bmcgaXRlcmF0b3JTdHJpbmcoaXQuY2hhcmFjdGVycygpLCBpdC5sZW5ndGgoKSk7Ci0gICAgICAg
ICAgICBpdGVyYXRvclN0cmluZyA9IGl0ZXJhdG9yU3RyaW5nLmltcGwoKS0+c2VjdXJlKCd4Jyk7
CisgICAgICAgICAgICBpdGVyYXRvclN0cmluZy5maWxsKCd4Jyk7CiAgICAgICAgICAgICBzdHJp
bmcuYXBwZW5kKGl0ZXJhdG9yU3RyaW5nLmNoYXJhY3RlcnMoKSwgaXRlcmF0b3JTdHJpbmcubGVu
Z3RoKCkpOwogICAgICAgICB9CiAgICAgICAgIG5leHQgPSBzZWFyY2hGdW5jdGlvbihzdHJpbmcu
ZGF0YSgpLCBzdHJpbmcuc2l6ZSgpLCBwcmVmaXhMZW5ndGgsIE1heUhhdmVNb3JlQ29udGV4dCwg
bmVlZE1vcmVDb250ZXh0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dC5jcHAJKHJldmlzaW9uIDkwNjI3KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcwLDEzICsxMTcwLDEzIEBAIHZvaWQgUmVu
ZGVyVGV4dDo6c2V0VGV4dEludGVybmFsKFBhc3NSZWYKICAgICAgICAgY2FzZSBUU05PTkU6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBUU0NJUkNMRToKLSAgICAgICAgICAgIG1f
dGV4dC5tYWtlU2VjdXJlKHdoaXRlQnVsbGV0KTsKKyAgICAgICAgICAgIG1fdGV4dC5maWxsKHdo
aXRlQnVsbGV0KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFRTRElTQzoKLSAg
ICAgICAgICAgIG1fdGV4dC5tYWtlU2VjdXJlKGJ1bGxldCk7CisgICAgICAgICAgICBtX3RleHQu
ZmlsbChidWxsZXQpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVFNTUVVBUkU6
Ci0gICAgICAgICAgICBtX3RleHQubWFrZVNlY3VyZShibGFja1NxdWFyZSk7CisgICAgICAgICAg
ICBtX3RleHQuZmlsbChibGFja1NxdWFyZSk7CiAgICAgICAgIH0KICAgICB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkwNjMwKQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDctMDggIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBVcGRhdGUgY2FsbGluZyBzaXRlcyBhZnRl
ciBmdW5jdGlvbiByZW5hbWVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTkxMTQKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlh
a292LgorCisgICAgICAgICogV2ViS2l0R3JhcGhpY3MuY3BwOgorICAgICAgICAoV2ViRHJhd1Rl
eHQpOgorCiAyMDExLTA2LTMwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5zdGVpbi4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL1dlYktpdEdyYXBoaWNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dp
bi9XZWJLaXRHcmFwaGljcy5jcHAJKHJldmlzaW9uIDkwNjI3KQorKysgU291cmNlL1dlYktpdC93
aW4vV2ViS2l0R3JhcGhpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDcgQEAg
dm9pZCBXZWJEcmF3VGV4dChXZWJUZXh0UmVuZGVySW5mbyogaW5mbwogICAgICAgICBHcmFwaGlj
c0NvbnRleHQgY29udGV4dChpbmZvLT5jZ0NvbnRleHQpOwogICAgICAgICBTdHJpbmcgZHJhd1N0
cmluZyhpbmZvLT50ZXh0LCBpbmZvLT5sZW5ndGgpOwogICAgICAgICBpZiAoaW5mby0+ZHJhd0Fz
UGFzc3dvcmQpCi0gICAgICAgICAgICBkcmF3U3RyaW5nID0gZHJhd1N0cmluZy5pbXBsKCktPnNl
Y3VyZShXVEY6OlVuaWNvZGU6OmJ1bGxldCk7CisgICAgICAgICAgICBkcmF3U3RyaW5nLmZpbGwo
V1RGOjpVbmljb2RlOjpidWxsZXQpOwogCiAgICAgICAgIGNvbnRleHQuc2F2ZSgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>