<?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>95888</bug_id>
          
          <creation_ts>2012-09-05 13:51:35 -0700</creation_ts>
          <short_desc>More fixes for String::operator+=() in Debug mode</short_desc>
          <delta_ts>2012-09-06 01:54:08 -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 Misc.</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>mifenton</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712500</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 13:51:35 -0700</bug_when>
    <thetext>More fixes for String::operator+=() in Debug mode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712505</commentid>
    <comment_count>1</comment_count>
      <attachid>162325</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 13:55:37 -0700</bug_when>
    <thetext>Created attachment 162325
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712518</commentid>
    <comment_count>2</comment_count>
      <attachid>162325</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 14:03:07 -0700</bug_when>
    <thetext>Comment on attachment 162325
Patch

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:678
&gt;          result = &quot;&lt;none&gt;&quot;;

won&apos;t work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712519</commentid>
    <comment_count>3</comment_count>
      <attachid>162325</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-05 14:03:50 -0700</bug_when>
    <thetext>Comment on attachment 162325
Patch

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

&gt; Source/WebCore/dom/Element.cpp:1421
&gt; +    strncpy(buffer, result.toString().utf8().data(), length - 1);

We should explicitly NUL terminate buffer in case we hit the length limit, but that&apos;s something for another patch.

&gt; Source/WebCore/dom/Node.cpp:2105
&gt; +        if (!attr.isEmpty())
&gt; +            string.append(attrDesc + attr);

It&apos;s more efficient to do this in two operations.  Having the + as a separate operation creates an intermediate buffer that&apos;s not needed.

&gt; Source/WebCore/dom/Node.cpp:2198
&gt; -                traverseTreeAndMark(indent + &quot;\t&quot;, youngerShadowRoot, markedNode1, markedLabel1, markedNode2, markedLabel2);
&gt; +                traverseTreeAndMark(indent.toString() + &apos;\t&apos;, youngerShadowRoot, markedNode1, markedLabel1, markedNode2, markedLabel2);

It&apos;s more efficient to append the &apos;\t&apos; and then call toString.

&gt; Source/WebCore/dom/Node.cpp:2200
&gt; -            traverseTreeAndMark(indent + &quot;\t&quot;, oldestShadowRoot, markedNode1, markedLabel1, markedNode2, markedLabel2);
&gt; +            traverseTreeAndMark(indent.toString() + &apos;\t&apos;, oldestShadowRoot, markedNode1, markedLabel1, markedNode2, markedLabel2);

ditto

&gt; Source/WebCore/dom/Node.cpp:2222
&gt; +    if (s.length())

if (!s.isEmpty())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712523</commentid>
    <comment_count>4</comment_count>
      <attachid>162329</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 14:08:49 -0700</bug_when>
    <thetext>Created attachment 162329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712526</commentid>
    <comment_count>5</comment_count>
      <attachid>162329</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 14:10:32 -0700</bug_when>
    <thetext>Comment on attachment 162329
Patch

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

&gt; Source/WebCore/dom/Node.cpp:2105
&gt; +            string.append(attrDesc + attr);

string is an out-parameter
are two String::append() calls better than one append and operator+()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712529</commentid>
    <comment_count>6</comment_count>
      <attachid>162329</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-05 14:12:54 -0700</bug_when>
    <thetext>Comment on attachment 162329
Patch

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

&gt;&gt; Source/WebCore/dom/Node.cpp:2105
&gt;&gt; +            string.append(attrDesc + attr);
&gt; 
&gt; string is an out-parameter
&gt; are two String::append() calls better than one append and operator+()?

Can we change the outparameter type to StringBuilder?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712533</commentid>
    <comment_count>7</comment_count>
      <attachid>162333</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2012-09-05 14:17:49 -0700</bug_when>
    <thetext>Created attachment 162333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712979</commentid>
    <comment_count>8</comment_count>
      <attachid>162333</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-06 00:46:34 -0700</bug_when>
    <thetext>Comment on attachment 162333
Patch

Clearing flags on attachment: 162333

Committed r127706: &lt;http://trac.webkit.org/changeset/127706&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712980</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-06 00:46:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713034</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-06 01:54:08 -0700</bug_when>
    <thetext>*** Bug 95945 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162325</attachid>
            <date>2012-09-05 13:55:37 -0700</date>
            <delta_ts>2012-09-05 14:08:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95888.patch</filename>
            <type>text/plain</type>
            <size>9529</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWJlYmUzLi5kZTVhZjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDktMDUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW9yZSBmaXhlcyBmb3IgU3RyaW5nOjpvcGVyYXRvcis9KCkgaW4gRGVidWcgbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgU3Ry
aW5nQnVpbGRlciB0byBjb25jYXRlbmF0ZSBzdHJpbmdzIGluc3RlYWQgb2Ygb3BlcmF0b3IrPSgp
LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZEF0dHJpYnV0ZURlc2MpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVy
c2VUcmVlQW5kTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpmb3JtYXRGb3JEZWJ1Z2dl
cik6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0
aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2Vy
KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojpmb3Jt
YXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKToK
KwogMjAxMi0wOS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggdGhlIHVzZXMgb2YgU3RyaW5nOjpvcGVyYXRvcis9KCkgZm9yIE1hYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDczMDUyYWEuLjNiYWY2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTEzOTcsMzEgKzEzOTcsMjggQEAgdm9pZCBFbGVtZW50OjpmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKQogI2lmbmRlZiBOREVCVUcKIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdn
ZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJl
c3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKLSAg
ICBzID0gbm9kZU5hbWUoKTsKLSAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcmVz
dWx0ICs9IHM7Ci0gICAgfQotICAgICAgICAgIAorCisgICAgcmVzdWx0LmFwcGVuZChub2RlTmFt
ZSgpKTsKKwogICAgIHMgPSBnZXRJZEF0dHJpYnV0ZSgpOwogICAgIGlmIChzLmxlbmd0aCgpID4g
MCkgewogICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID4gMCkKLSAgICAgICAgICAgIHJlc3Vs
dCArPSAiOyAiOwotICAgICAgICByZXN1bHQgKz0gImlkPSI7Ci0gICAgICAgIHJlc3VsdCArPSBz
OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjsgIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCJpZD0iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9
Ci0gICAgICAgICAgCisKICAgICBzID0gZ2V0QXR0cmlidXRlKGNsYXNzQXR0cik7CiAgICAgaWYg
KHMubGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPiAwKQotICAg
ICAgICAgICAgcmVzdWx0ICs9ICI7ICI7Ci0gICAgICAgIHJlc3VsdCArPSAiY2xhc3M9IjsKLSAg
ICAgICAgcmVzdWx0ICs9IHM7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImNsYXNzPSIpOworICAgICAgICByZXN1
bHQuYXBwZW5kKHMpOwogICAgIH0KLSAgICAgICAgICAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworCisgICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCAyMDZlNmJlLi40ZjdhNDU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0yMTAxLDEwICsyMTAxLDggQEAgc3RhdGljIHZvaWQgYXBwZW5kQXR0cmlidXRlRGVzYyhjb25z
dCBOb2RlKiBub2RlLCBTdHJpbmcmIHN0cmluZywgY29uc3QgUXVhbGlmaWUKIHsKICAgICBpZiAo
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAgICAgIFN0cmluZyBhdHRyID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRWxlbWVudCo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUobmFtZSk7Ci0gICAgICAgIGlm
ICghYXR0ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHN0cmluZyArPSBhdHRyRGVzYzsKLSAg
ICAgICAgICAgIHN0cmluZyArPSBhdHRyOwotICAgICAgICB9CisgICAgICAgIGlmICghYXR0ci5p
c0VtcHR5KCkpCisgICAgICAgICAgICBzdHJpbmcuYXBwZW5kKGF0dHJEZXNjICsgYXR0cik7CiAg
ICAgfQogfQogCkBAIC0yMTg5LDE2ICsyMTg3LDE3IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJl
ZUFuZE1hcmsoY29uc3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwK
ICAgICAgICAgaWYgKG5vZGUgPT0gbWFya2VkTm9kZTIpCiAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIiVzIiwgbWFya2VkTGFiZWwyKTsKIAotICAgICAgICBTdHJpbmcgaW5kZW50ID0gYmFz
ZUluZGVudDsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpbmRlbnQ7CisgICAgICAgIGluZGVudC5h
cHBlbmQoYmFzZUluZGVudCk7CiAgICAgICAgIGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5v
ZGU7IHRtcE5vZGUgJiYgdG1wTm9kZSAhPSByb290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBh
cmVudE9ySG9zdE5vZGUoKSkKLSAgICAgICAgICAgIGluZGVudCArPSAiXHQiOwotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
aW5kZW50LmFwcGVuZCgnXHQnKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVu
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBub2RlLT5zaG93Tm9kZSgpOwog
ICAgICAgICBpZiAobm9kZS0+aXNTaGFkb3dSb290KCkpIHsKICAgICAgICAgICAgIGlmIChTaGFk
b3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCA9IHRvU2hhZG93Um9vdChub2RlKS0+eW91bmdlclNo
YWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudCAr
ICJcdCIsIHlvdW5nZXJTaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJr
ZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRN
YXJrKGluZGVudC50b1N0cmluZygpICsgJ1x0JywgeW91bmdlclNoYWRvd1Jvb3QsIG1hcmtlZE5v
ZGUxLCBtYXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOwogICAgICAgICB9
IGVsc2UgaWYgKFNoYWRvd1Jvb3QqIG9sZGVzdFNoYWRvd1Jvb3QgPSBvbGRlc3RTaGFkb3dSb290
Rm9yKG5vZGUpKQotICAgICAgICAgICAgdHJhdmVyc2VUcmVlQW5kTWFyayhpbmRlbnQgKyAiXHQi
LCBvbGRlc3RTaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2Rl
MiwgbWFya2VkTGFiZWwyKTsKKyAgICAgICAgICAgIHRyYXZlcnNlVHJlZUFuZE1hcmsoaW5kZW50
LnRvU3RyaW5nKCkgKyAnXHQnLCBvbGRlc3RTaGFkb3dSb290LCBtYXJrZWROb2RlMSwgbWFya2Vk
TGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKICAgICB9CiB9CiAKQEAgLTIyMTgs
MTMgKzIyMTcsMTMgQEAgdm9pZCBOb2RlOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIs
IHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKICAgICBTdHJpbmcgcmVzdWx0OwogICAgIFN0cmlu
ZyBzOwotICAgIAorCiAgICAgcyA9IG5vZGVOYW1lKCk7Ci0gICAgaWYgKHMubGVuZ3RoKCkgPT0g
MCkKLSAgICAgICAgcmVzdWx0ICs9ICI8bm9uZT4iOworICAgIGlmIChzLmxlbmd0aCgpKQorICAg
ICAgICByZXN1bHQgPSBzOwogICAgIGVsc2UKLSAgICAgICAgcmVzdWx0ICs9IHM7Ci0gICAgICAg
ICAgCisgICAgICAgIHJlc3VsdCA9ICI8bm9uZT4iOworCiAgICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggODg5MTQzNS4uNGQ1YzExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0x
MzE0LDIwICsxMzE0LDIwIEBAIHZvaWQgUG9zaXRpb246OmRlYnVnUG9zaXRpb24oY29uc3QgY2hh
ciogbXNnKSBjb25zdAogCiB2b2lkIFBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKLSAgICBTdHJpbmcgcmVzdWx0OwotICAg
IAorICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OworCiAgICAgaWYgKGlzTnVsbCgpKQotICAgICAg
ICByZXN1bHQgPSAiPG51bGw+IjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjxudWxs
PiIpOwogICAgIGVsc2UgewogICAgICAgICBjaGFyIHNbMTAyNF07Ci0gICAgICAgIHJlc3VsdCAr
PSAib2Zmc2V0ICI7Ci0gICAgICAgIHJlc3VsdCArPSBTdHJpbmc6Om51bWJlcihtX29mZnNldCk7
Ci0gICAgICAgIHJlc3VsdCArPSAiIG9mICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCJvZmZzZXQgIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9vZmZz
ZXQpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICAgICAgZGVw
cmVjYXRlZE5vZGUoKS0+Zm9ybWF0Rm9yRGVidWdnZXIocywgc2l6ZW9mKHMpKTsKLSAgICAgICAg
cmVzdWx0ICs9IHM7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQotICAgICAgICAg
IAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7
CisKKyAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwg
bGVuZ3RoIC0gMSk7CiB9CiAKIHZvaWQgUG9zaXRpb246OnNob3dBbmNob3JUeXBlQW5kT2Zmc2V0
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGM0ZTQzNWE2Li5lZWNkMGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5jcHAKQEAgLTE2NTIsMzEgKzE2NTIsMzAgQEAgdm9pZCBSYW5nZTo6dGV4dFF1YWRz
KFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcywgYm9vbCB1c2VTZWxlY3Rpb25IZWlnaHQsIFJhbmdl
SW4KIH0KIAogI2lmbmRlZiBOREVCVUcKLSNkZWZpbmUgRm9ybWF0QnVmZmVyU2l6ZSAxMDI0CiB2
b2lkIFJhbmdlOjpmb3JtYXRGb3JEZWJ1Z2dlcihjaGFyKiBidWZmZXIsIHVuc2lnbmVkIGxlbmd0
aCkgY29uc3QKIHsKLSAgICBTdHJpbmcgcmVzdWx0OworICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0
OwogICAgIFN0cmluZyBzOwotICAgIAorCiAgICAgaWYgKCFtX3N0YXJ0LmNvbnRhaW5lcigpIHx8
ICFtX2VuZC5jb250YWluZXIoKSkKLSAgICAgICAgcmVzdWx0ID0gIjxlbXB0eT4iOworICAgICAg
ICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiPGVtcHR5PiIpOwogICAgIGVsc2UgeworICAgICAgICBj
b25zdCBpbnQgRm9ybWF0QnVmZmVyU2l6ZSA9IDEwMjQ7CiAgICAgICAgIGNoYXIgc1tGb3JtYXRC
dWZmZXJTaXplXTsKLSAgICAgICAgcmVzdWx0ICs9ICJmcm9tIG9mZnNldCAiOwotICAgICAgICBy
ZXN1bHQgKz0gU3RyaW5nOjpudW1iZXIobV9zdGFydC5vZmZzZXQoKSk7Ci0gICAgICAgIHJlc3Vs
dCArPSAiIG9mICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJmcm9tIG9mZnNldCAi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJpbmc6Om51bWJlcihtX3N0YXJ0Lm9mZnNldCgp
KSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCIgb2YgIik7CiAgICAgICAgIG1fc3Rh
cnQuY29udGFpbmVyKCktPmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwot
ICAgICAgICByZXN1bHQgKz0gczsKLSAgICAgICAgcmVzdWx0ICs9ICIgdG8gb2Zmc2V0ICI7Ci0g
ICAgICAgIHJlc3VsdCArPSBTdHJpbmc6Om51bWJlcihtX2VuZC5vZmZzZXQoKSk7Ci0gICAgICAg
IHJlc3VsdCArPSAiIG9mICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CisgICAgICAgIHJl
c3VsdC5hcHBlbmRMaXRlcmFsKCIgdG8gb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5k
KFN0cmluZzo6bnVtYmVyKG1fZW5kLm9mZnNldCgpKSk7CisgICAgICAgIHJlc3VsdC5hcHBlbmRM
aXRlcmFsKCIgb2YgIik7CiAgICAgICAgIG1fZW5kLmNvbnRhaW5lcigpLT5mb3JtYXRGb3JEZWJ1
Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKLSAgICAgICAgcmVzdWx0ICs9IHM7CisgICAgICAg
IHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQotICAgICAgICAgIAotICAgIHN0cm5jcHkoYnVmZmVy
LCByZXN1bHQudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CisKKyAgICBzdHJuY3B5KGJ1ZmZl
ciwgcmVzdWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CiB9Ci0jdW5k
ZWYgRm9ybWF0QnVmZmVyU2l6ZQogI2VuZGlmCiAKIGJvb2wgYXJlUmFuZ2VzRXF1YWwoY29uc3Qg
UmFuZ2UqIGEsIGNvbnN0IFJhbmdlKiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1RleHQuY3BwCmluZGV4IGNhYjU0ZWUuLjY2
YTE2ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vVGV4dC5jcHAKQEAgLTMwMSwyMyArMzAxLDIwIEBAIHZvaWQgVGV4dDo6
d2lsbFJlY2FsY1RleHRTdHlsZShTdHlsZUNoYW5nZSkKICNpZm5kZWYgTkRFQlVHCiB2b2lkIFRl
eHQ6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIgKmJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25z
dAogewotICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CiAgICAg
U3RyaW5nIHM7Ci0gICAgCi0gICAgcyA9IG5vZGVOYW1lKCk7Ci0gICAgaWYgKHMubGVuZ3RoKCkg
PiAwKSB7Ci0gICAgICAgIHJlc3VsdCArPSBzOwotICAgIH0KLSAgICAgICAgICAKKworICAgIHJl
c3VsdC5hcHBlbmQobm9kZU5hbWUoKSk7CisKICAgICBzID0gZGF0YSgpOwogICAgIGlmIChzLmxl
bmd0aCgpID4gMCkgewotICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID4gMCkKLSAgICAgICAg
ICAgIHJlc3VsdCArPSAiOyAiOwotICAgICAgICByZXN1bHQgKz0gInZhbHVlPSI7Ci0gICAgICAg
IHJlc3VsdCArPSBzOworICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpKQorICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZExpdGVyYWwoIjsgIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFs
KCJ2YWx1ZT0iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9Ci0gICAgICAgICAg
Ci0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsK
KworICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBs
ZW5ndGggLSAxKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxl
U2VsZWN0aW9uLmNwcAppbmRleCA4Y2QxZGYwLi41MDMyNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTY3MSwyMyArNjcxLDIzIEBAIHZvaWQg
VmlzaWJsZVNlbGVjdGlvbjo6ZGVidWdQb3NpdGlvbigpIGNvbnN0CiAKIHZvaWQgVmlzaWJsZVNl
bGVjdGlvbjo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgp
IGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsK
ICAgICBTdHJpbmcgczsKLSAgICAKKwogICAgIGlmIChpc05vbmUoKSkgewogICAgICAgICByZXN1
bHQgPSAiPG5vbmU+IjsKICAgICB9IGVsc2UgewogICAgICAgICBjb25zdCBpbnQgRm9ybWF0QnVm
ZmVyU2l6ZSA9IDEwMjQ7CiAgICAgICAgIGNoYXIgc1tGb3JtYXRCdWZmZXJTaXplXTsKLSAgICAg
ICAgcmVzdWx0ICs9ICJmcm9tICI7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJmcm9t
ICIpOwogICAgICAgICBzdGFydCgpLmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNp
emUpOwotICAgICAgICByZXN1bHQgKz0gczsKLSAgICAgICAgcmVzdWx0ICs9ICIgdG8gIjsKKyAg
ICAgICAgcmVzdWx0LmFwcGVuZChzKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0
byAiKTsKICAgICAgICAgZW5kKCkuZm9ybWF0Rm9yRGVidWdnZXIocywgRm9ybWF0QnVmZmVyU2l6
ZSk7Ci0gICAgICAgIHJlc3VsdCArPSBzOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAg
IH0KIAotICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0g
MSk7CisgICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCks
IGxlbmd0aCAtIDEpOwogfQogCiB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNob3dUcmVlRm9yVGhp
cygpIGNvbnN0Cg==
</data>
<flag name="review"
          id="173406"
          type_id="1"
          status="-"
          setter="paroga"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162329</attachid>
            <date>2012-09-05 14:08:49 -0700</date>
            <delta_ts>2012-09-05 14:17:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95888.patch</filename>
            <type>text/plain</type>
            <size>9786</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWJlYmUzLi5kZTVhZjc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTItMDktMDUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW9yZSBmaXhlcyBmb3IgU3RyaW5nOjpvcGVyYXRvcis9KCkgaW4gRGVidWcgbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgU3Ry
aW5nQnVpbGRlciB0byBjb25jYXRlbmF0ZSBzdHJpbmdzIGluc3RlYWQgb2Ygb3BlcmF0b3IrPSgp
LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZEF0dHJpYnV0ZURlc2MpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVy
c2VUcmVlQW5kTWFyayk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpmb3JtYXRGb3JEZWJ1Z2dl
cik6CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0
aW9uOjpmb3JtYXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2Vy
KToKKyAgICAgICAgKiBkb20vVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojpmb3Jt
YXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKToK
KwogMjAxMi0wOS0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggdGhlIHVzZXMgb2YgU3RyaW5nOjpvcGVyYXRvcis9KCkgZm9yIE1hYwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDczMDUyYWEuLjNiYWY2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTEzOTcsMzEgKzEzOTcsMjggQEAgdm9pZCBFbGVtZW50OjpmaW5pc2hQYXJzaW5n
Q2hpbGRyZW4oKQogI2lmbmRlZiBOREVCVUcKIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdn
ZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJl
c3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKLSAg
ICBzID0gbm9kZU5hbWUoKTsKLSAgICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcmVz
dWx0ICs9IHM7Ci0gICAgfQotICAgICAgICAgIAorCisgICAgcmVzdWx0LmFwcGVuZChub2RlTmFt
ZSgpKTsKKwogICAgIHMgPSBnZXRJZEF0dHJpYnV0ZSgpOwogICAgIGlmIChzLmxlbmd0aCgpID4g
MCkgewogICAgICAgICBpZiAocmVzdWx0Lmxlbmd0aCgpID4gMCkKLSAgICAgICAgICAgIHJlc3Vs
dCArPSAiOyAiOwotICAgICAgICByZXN1bHQgKz0gImlkPSI7Ci0gICAgICAgIHJlc3VsdCArPSBz
OworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjsgIik7CisgICAgICAgIHJlc3Vs
dC5hcHBlbmRMaXRlcmFsKCJpZD0iKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9
Ci0gICAgICAgICAgCisKICAgICBzID0gZ2V0QXR0cmlidXRlKGNsYXNzQXR0cik7CiAgICAgaWYg
KHMubGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPiAwKQotICAg
ICAgICAgICAgcmVzdWx0ICs9ICI7ICI7Ci0gICAgICAgIHJlc3VsdCArPSAiY2xhc3M9IjsKLSAg
ICAgICAgcmVzdWx0ICs9IHM7CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAi
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImNsYXNzPSIpOworICAgICAgICByZXN1
bHQuYXBwZW5kKHMpOwogICAgIH0KLSAgICAgICAgICAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOworCisgICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcAppbmRleCAyMDZlNmJlLi5iMjZhMTYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0yMTAxLDEwICsyMTAxLDggQEAgc3RhdGljIHZvaWQgYXBwZW5kQXR0cmlidXRlRGVzYyhjb25z
dCBOb2RlKiBub2RlLCBTdHJpbmcmIHN0cmluZywgY29uc3QgUXVhbGlmaWUKIHsKICAgICBpZiAo
bm9kZS0+aXNFbGVtZW50Tm9kZSgpKSB7CiAgICAgICAgIFN0cmluZyBhdHRyID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRWxlbWVudCo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUobmFtZSk7Ci0gICAgICAgIGlm
ICghYXR0ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHN0cmluZyArPSBhdHRyRGVzYzsKLSAg
ICAgICAgICAgIHN0cmluZyArPSBhdHRyOwotICAgICAgICB9CisgICAgICAgIGlmICghYXR0ci5p
c0VtcHR5KCkpCisgICAgICAgICAgICBzdHJpbmcuYXBwZW5kKGF0dHJEZXNjICsgYXR0cik7CiAg
ICAgfQogfQogCkBAIC0yMTg5LDE2ICsyMTg3LDE4IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJl
ZUFuZE1hcmsoY29uc3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwK
ICAgICAgICAgaWYgKG5vZGUgPT0gbWFya2VkTm9kZTIpCiAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIiVzIiwgbWFya2VkTGFiZWwyKTsKIAotICAgICAgICBTdHJpbmcgaW5kZW50ID0gYmFz
ZUluZGVudDsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpbmRlbnQ7CisgICAgICAgIGluZGVudC5h
cHBlbmQoYmFzZUluZGVudCk7CiAgICAgICAgIGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5v
ZGU7IHRtcE5vZGUgJiYgdG1wTm9kZSAhPSByb290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBh
cmVudE9ySG9zdE5vZGUoKSkKLSAgICAgICAgICAgIGluZGVudCArPSAiXHQiOwotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
aW5kZW50LmFwcGVuZCgnXHQnKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVu
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBub2RlLT5zaG93Tm9kZSgpOwor
ICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwogICAgICAgICBpZiAobm9kZS0+aXNTaGFkb3dS
b290KCkpIHsKICAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCA9
IHRvU2hhZG93Um9vdChub2RlKS0+eW91bmdlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAg
ICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudCArICJcdCIsIHlvdW5nZXJTaGFkb3dSb290LCBt
YXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAg
ICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudC50b1N0cmluZygpLCB5b3Vu
Z2VyU2hhZG93Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1h
cmtlZExhYmVsMik7CiAgICAgICAgIH0gZWxzZSBpZiAoU2hhZG93Um9vdCogb2xkZXN0U2hhZG93
Um9vdCA9IG9sZGVzdFNoYWRvd1Jvb3RGb3Iobm9kZSkpCi0gICAgICAgICAgICB0cmF2ZXJzZVRy
ZWVBbmRNYXJrKGluZGVudCArICJcdCIsIG9sZGVzdFNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBt
YXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgdHJh
dmVyc2VUcmVlQW5kTWFyayhpbmRlbnQudG9TdHJpbmcoKSwgb2xkZXN0U2hhZG93Um9vdCwgbWFy
a2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7CiAgICAg
fQogfQogCkBAIC0yMjE4LDEzICsyMjE4LDEzIEBAIHZvaWQgTm9kZTo6Zm9ybWF0Rm9yRGVidWdn
ZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJl
c3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKKwogICAgIHMgPSBub2RlTmFtZSgpOwotICAgIGlm
IChzLmxlbmd0aCgpID09IDApCi0gICAgICAgIHJlc3VsdCArPSAiPG5vbmU+IjsKKyAgICBpZiAo
cy5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdCA9ICI8bm9uZT4iOwogICAgIGVsc2UKLSAgICAg
ICAgcmVzdWx0ICs9IHM7Ci0gICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IHM7CisKICAgICBz
dHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA4ODkxNDM1Li40ZDVjMTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAKQEAgLTEzMTQsMjAgKzEzMTQsMjAgQEAgdm9pZCBQb3NpdGlvbjo6ZGVidWdQ
b3NpdGlvbihjb25zdCBjaGFyKiBtc2cpIGNvbnN0CiAKIHZvaWQgUG9zaXRpb246OmZvcm1hdEZv
ckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogewotICAgIFN0
cmluZyByZXN1bHQ7Ci0gICAgCisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisKICAgICBpZiAo
aXNOdWxsKCkpCi0gICAgICAgIHJlc3VsdCA9ICI8bnVsbD4iOworICAgICAgICByZXN1bHQuYXBw
ZW5kTGl0ZXJhbCgiPG51bGw+Iik7CiAgICAgZWxzZSB7CiAgICAgICAgIGNoYXIgc1sxMDI0XTsK
LSAgICAgICAgcmVzdWx0ICs9ICJvZmZzZXQgIjsKLSAgICAgICAgcmVzdWx0ICs9IFN0cmluZzo6
bnVtYmVyKG1fb2Zmc2V0KTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoIm9mZnNldCAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJp
bmc6Om51bWJlcihtX29mZnNldCkpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIG9m
ICIpOwogICAgICAgICBkZXByZWNhdGVkTm9kZSgpLT5mb3JtYXRGb3JEZWJ1Z2dlcihzLCBzaXpl
b2YocykpOwotICAgICAgICByZXN1bHQgKz0gczsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsK
ICAgICB9Ci0gICAgICAgICAgCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC51dGY4KCkuZGF0
YSgpLCBsZW5ndGggLSAxKTsKKworICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKIH0KIAogdm9pZCBQb3NpdGlvbjo6c2hvd0Fu
Y2hvclR5cGVBbmRPZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggYzRlNDM1YTYu
LmVlY2QwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTY1MiwzMSArMTY1MiwzMCBAQCB2b2lk
IFJhbmdlOjp0ZXh0UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sIHVzZVNlbGVj
dGlvbkhlaWdodCwgUmFuZ2VJbgogfQogCiAjaWZuZGVmIE5ERUJVRwotI2RlZmluZSBGb3JtYXRC
dWZmZXJTaXplIDEwMjQKIHZvaWQgUmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3Ry
aW5nQnVpbGRlciByZXN1bHQ7CiAgICAgU3RyaW5nIHM7Ci0gICAgCisKICAgICBpZiAoIW1fc3Rh
cnQuY29udGFpbmVyKCkgfHwgIW1fZW5kLmNvbnRhaW5lcigpKQotICAgICAgICByZXN1bHQgPSAi
PGVtcHR5PiI7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCI8ZW1wdHk+Iik7CiAgICAg
ZWxzZSB7CisgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKICAgICAg
ICAgY2hhciBzW0Zvcm1hdEJ1ZmZlclNpemVdOwotICAgICAgICByZXN1bHQgKz0gImZyb20gb2Zm
c2V0ICI7Ci0gICAgICAgIHJlc3VsdCArPSBTdHJpbmc6Om51bWJlcihtX3N0YXJ0Lm9mZnNldCgp
KTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVy
YWwoImZyb20gb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZzo6bnVtYmVy
KG1fc3RhcnQub2Zmc2V0KCkpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBvZiAi
KTsKICAgICAgICAgbV9zdGFydC5jb250YWluZXIoKS0+Zm9ybWF0Rm9yRGVidWdnZXIocywgRm9y
bWF0QnVmZmVyU2l6ZSk7Ci0gICAgICAgIHJlc3VsdCArPSBzOwotICAgICAgICByZXN1bHQgKz0g
IiB0byBvZmZzZXQgIjsKLSAgICAgICAgcmVzdWx0ICs9IFN0cmluZzo6bnVtYmVyKG1fZW5kLm9m
ZnNldCgpKTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChzKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byBvZmZzZXQgIik7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9lbmQub2Zmc2V0KCkpKTsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICAgICAgbV9lbmQuY29udGFpbmVy
KCktPmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwotICAgICAgICByZXN1
bHQgKz0gczsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9Ci0gICAgICAgICAgCi0g
ICAgc3RybmNweShidWZmZXIsIHJlc3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKwor
ICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5n
dGggLSAxKTsKIH0KLSN1bmRlZiBGb3JtYXRCdWZmZXJTaXplCiAjZW5kaWYKIAogYm9vbCBhcmVS
YW5nZXNFcXVhbChjb25zdCBSYW5nZSogYSwgY29uc3QgUmFuZ2UqIGIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
aW5kZXggY2FiNTRlZS4uNjZhMTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzAxLDIzICszMDEs
MjAgQEAgdm9pZCBUZXh0Ojp3aWxsUmVjYWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlKQogI2lmbmRl
ZiBOREVCVUcKIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciAqYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWls
ZGVyIHJlc3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKLSAgICBzID0gbm9kZU5hbWUoKTsKLSAg
ICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcmVzdWx0ICs9IHM7Ci0gICAgfQotICAg
ICAgICAgIAorCisgICAgcmVzdWx0LmFwcGVuZChub2RlTmFtZSgpKTsKKwogICAgIHMgPSBkYXRh
KCk7CiAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgIGlmIChyZXN1bHQubGVuZ3Ro
KCkgPiAwKQotICAgICAgICAgICAgcmVzdWx0ICs9ICI7ICI7Ci0gICAgICAgIHJlc3VsdCArPSAi
dmFsdWU9IjsKLSAgICAgICAgcmVzdWx0ICs9IHM7CisgICAgICAgIGlmIChyZXN1bHQubGVuZ3Ro
KCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAiKTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoInZhbHVlPSIpOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwog
ICAgIH0KLSAgICAgICAgICAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnV0ZjgoKS5kYXRh
KCksIGxlbmd0aCAtIDEpOworCisgICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDhjZDFkZjAuLjRmZmY4NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3MSwyMyArNjcyLDIzIEBAIHZvaWQgVmlzaWJsZVNlbGVj
dGlvbjo6ZGVidWdQb3NpdGlvbigpIGNvbnN0CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6Zm9y
bWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0g
ICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBTdHJpbmcg
czsKLSAgICAKKwogICAgIGlmIChpc05vbmUoKSkgewotICAgICAgICByZXN1bHQgPSAiPG5vbmU+
IjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjxub25lPiIpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKICAgICAgICAgY2hh
ciBzW0Zvcm1hdEJ1ZmZlclNpemVdOwotICAgICAgICByZXN1bHQgKz0gImZyb20gIjsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImZyb20gIik7CiAgICAgICAgIHN0YXJ0KCkuZm9ybWF0
Rm9yRGVidWdnZXIocywgRm9ybWF0QnVmZmVyU2l6ZSk7Ci0gICAgICAgIHJlc3VsdCArPSBzOwot
ICAgICAgICByZXN1bHQgKz0gIiB0byAiOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOworICAg
ICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIHRvICIpOwogICAgICAgICBlbmQoKS5mb3JtYXRG
b3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKLSAgICAgICAgcmVzdWx0ICs9IHM7Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CiB9CiAKIHZvaWQgVmlz
aWJsZVNlbGVjdGlvbjo6c2hvd1RyZWVGb3JUaGlzKCkgY29uc3QK
</data>
<flag name="review"
          id="173412"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162333</attachid>
            <date>2012-09-05 14:17:49 -0700</date>
            <delta_ts>2012-09-06 00:46:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95888.patch</filename>
            <type>text/plain</type>
            <size>10926</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjMWJlYmUzLi5jNzAwOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTItMDktMDUgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgTW9yZSBmaXhlcyBmb3IgU3RyaW5nOjpvcGVyYXRvcis9KCkgaW4gRGVidWcgbW9k
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU4ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgU3Ry
aW5nQnVpbGRlciB0byBjb25jYXRlbmF0ZSBzdHJpbmdzIGluc3RlYWQgb2Ygb3BlcmF0b3IrPSgp
LgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVu
dDo6Zm9ybWF0Rm9yRGVidWdnZXIpOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFwcGVuZEF0dHJpYnV0ZURlc2MpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2hvd05vZGUpOgorICAgICAgICAoV2ViQ29yZTo6dHJhdmVyc2VUcmVlQW5kTWFyayk6CisgICAg
ICAgIChXZWJDb3JlOjpOb2RlOjpmb3JtYXRGb3JEZWJ1Z2dlcik6CisgICAgICAgICogZG9tL1Bv
c2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmb3JtYXRGb3JEZWJ1Z2dl
cik6CisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyKToKKyAgICAgICAgKiBkb20vVGV4
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0Ojpmb3JtYXRGb3JEZWJ1Z2dlcik6CisgICAg
ICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZp
c2libGVTZWxlY3Rpb246OmZvcm1hdEZvckRlYnVnZ2VyKToKKwogMjAxMi0wOS0wNSAgQmVuamFt
aW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIHVzZXMg
b2YgU3RyaW5nOjpvcGVyYXRvcis9KCkgZm9yIE1hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDczMDUyYWEuLjNiYWY2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzOTcsMzEgKzEz
OTcsMjggQEAgdm9pZCBFbGVtZW50OjpmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKQogI2lmbmRlZiBO
REVCVUcKIHZvaWQgRWxlbWVudDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWls
ZGVyIHJlc3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKLSAgICBzID0gbm9kZU5hbWUoKTsKLSAg
ICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcmVzdWx0ICs9IHM7Ci0gICAgfQotICAg
ICAgICAgIAorCisgICAgcmVzdWx0LmFwcGVuZChub2RlTmFtZSgpKTsKKwogICAgIHMgPSBnZXRJ
ZEF0dHJpYnV0ZSgpOwogICAgIGlmIChzLmxlbmd0aCgpID4gMCkgewogICAgICAgICBpZiAocmVz
dWx0Lmxlbmd0aCgpID4gMCkKLSAgICAgICAgICAgIHJlc3VsdCArPSAiOyAiOwotICAgICAgICBy
ZXN1bHQgKz0gImlkPSI7Ci0gICAgICAgIHJlc3VsdCArPSBzOworICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZExpdGVyYWwoIjsgIik7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCJpZD0i
KTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9Ci0gICAgICAgICAgCisKICAgICBz
ID0gZ2V0QXR0cmlidXRlKGNsYXNzQXR0cik7CiAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7CiAg
ICAgICAgIGlmIChyZXN1bHQubGVuZ3RoKCkgPiAwKQotICAgICAgICAgICAgcmVzdWx0ICs9ICI7
ICI7Ci0gICAgICAgIHJlc3VsdCArPSAiY2xhc3M9IjsKLSAgICAgICAgcmVzdWx0ICs9IHM7Cisg
ICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAiKTsKKyAgICAgICAgcmVzdWx0LmFw
cGVuZExpdGVyYWwoImNsYXNzPSIpOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwogICAgIH0K
LSAgICAgICAgICAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnV0ZjgoKS5kYXRhKCksIGxl
bmd0aCAtIDEpOworCisgICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCAy
MDZlNmJlLi44N2Y5YTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMDk3LDE1ICsyMDk3LDE3IEBA
IEZsb2F0UG9pbnQgTm9kZTo6Y29udmVydEZyb21QYWdlKGNvbnN0IEZsb2F0UG9pbnQmIHApIGNv
bnN0CiAKICNpZm5kZWYgTkRFQlVHCiAKLXN0YXRpYyB2b2lkIGFwcGVuZEF0dHJpYnV0ZURlc2Mo
Y29uc3QgTm9kZSogbm9kZSwgU3RyaW5nJiBzdHJpbmcsIGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IGNoYXIqIGF0dHJEZXNjKQorc3RhdGljIHZvaWQgYXBwZW5kQXR0cmlidXRlRGVz
Yyhjb25zdCBOb2RlKiBub2RlLCBTdHJpbmdCdWlsZGVyJiBzdHJpbmdCdWlsZGVyLCBjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBjaGFyKiBhdHRyRGVzYykKIHsKLSAgICBpZiAobm9k
ZS0+aXNFbGVtZW50Tm9kZSgpKSB7Ci0gICAgICAgIFN0cmluZyBhdHRyID0gc3RhdGljX2Nhc3Q8
Y29uc3QgRWxlbWVudCo+KG5vZGUpLT5nZXRBdHRyaWJ1dGUobmFtZSk7Ci0gICAgICAgIGlmICgh
YXR0ci5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHN0cmluZyArPSBhdHRyRGVzYzsKLSAgICAg
ICAgICAgIHN0cmluZyArPSBhdHRyOwotICAgICAgICB9Ci0gICAgfQorICAgIGlmICghbm9kZS0+
aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgYXR0ciA9IHN0
YXRpY19jYXN0PGNvbnN0IEVsZW1lbnQqPihub2RlKS0+Z2V0QXR0cmlidXRlKG5hbWUpOworICAg
IGlmIChhdHRyLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RyaW5nQnVpbGRl
ci5hcHBlbmQoYXR0ckRlc2MpOworICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGF0dHIpOwogfQog
CiB2b2lkIE5vZGU6OnNob3dOb2RlKGNvbnN0IGNoYXIqIHByZWZpeCkgY29uc3QKQEAgLTIxMTgs
MTAgKzIxMjAsMTAgQEAgdm9pZCBOb2RlOjpzaG93Tm9kZShjb25zdCBjaGFyKiBwcmVmaXgpIGNv
bnN0CiAgICAgICAgIHZhbHVlLnJlcGxhY2UoJ1xuJywgIlxcbiIpOwogICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIiVzJXNcdCVwIFwiJXNcIlxuIiwgcHJlZml4LCBub2RlTmFtZSgpLnV0ZjgoKS5k
YXRhKCksIHRoaXMsIHZhbHVlLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0gZWxzZSB7Ci0gICAgICAg
IFN0cmluZyBhdHRycyA9ICIiOworICAgICAgICBTdHJpbmdCdWlsZGVyIGF0dHJzOwogICAgICAg
ICBhcHBlbmRBdHRyaWJ1dGVEZXNjKHRoaXMsIGF0dHJzLCBjbGFzc0F0dHIsICIgQ0xBU1M9Iik7
CiAgICAgICAgIGFwcGVuZEF0dHJpYnV0ZURlc2ModGhpcywgYXR0cnMsIHN0eWxlQXR0ciwgIiBT
VFlMRT0iKTsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyVzXHQlcCVzXG4iLCBwcmVmaXgs
IG5vZGVOYW1lKCkudXRmOCgpLmRhdGEoKSwgdGhpcywgYXR0cnMudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMlc1x0JXAlc1xuIiwgcHJlZml4LCBub2RlTmFtZSgp
LnV0ZjgoKS5kYXRhKCksIHRoaXMsIGF0dHJzLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAg
ICAgfQogfQogCkBAIC0yMTg5LDE2ICsyMTkxLDE4IEBAIHN0YXRpYyB2b2lkIHRyYXZlcnNlVHJl
ZUFuZE1hcmsoY29uc3QgU3RyaW5nJiBiYXNlSW5kZW50LCBjb25zdCBOb2RlKiByb290Tm9kZSwK
ICAgICAgICAgaWYgKG5vZGUgPT0gbWFya2VkTm9kZTIpCiAgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIiVzIiwgbWFya2VkTGFiZWwyKTsKIAotICAgICAgICBTdHJpbmcgaW5kZW50ID0gYmFz
ZUluZGVudDsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBpbmRlbnQ7CisgICAgICAgIGluZGVudC5h
cHBlbmQoYmFzZUluZGVudCk7CiAgICAgICAgIGZvciAoY29uc3QgTm9kZSogdG1wTm9kZSA9IG5v
ZGU7IHRtcE5vZGUgJiYgdG1wTm9kZSAhPSByb290Tm9kZTsgdG1wTm9kZSA9IHRtcE5vZGUtPnBh
cmVudE9ySG9zdE5vZGUoKSkKLSAgICAgICAgICAgIGluZGVudCArPSAiXHQiOwotICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIiVzIiwgaW5kZW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAg
aW5kZW50LmFwcGVuZCgnXHQnKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyIsIGluZGVu
dC50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICBub2RlLT5zaG93Tm9kZSgpOwor
ICAgICAgICBpbmRlbnQuYXBwZW5kKCdcdCcpOwogICAgICAgICBpZiAobm9kZS0+aXNTaGFkb3dS
b290KCkpIHsKICAgICAgICAgICAgIGlmIChTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCA9
IHRvU2hhZG93Um9vdChub2RlKS0+eW91bmdlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgICAgICAg
ICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudCArICJcdCIsIHlvdW5nZXJTaGFkb3dSb290LCBt
YXJrZWROb2RlMSwgbWFya2VkTGFiZWwxLCBtYXJrZWROb2RlMiwgbWFya2VkTGFiZWwyKTsKKyAg
ICAgICAgICAgICAgICB0cmF2ZXJzZVRyZWVBbmRNYXJrKGluZGVudC50b1N0cmluZygpLCB5b3Vu
Z2VyU2hhZG93Um9vdCwgbWFya2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1h
cmtlZExhYmVsMik7CiAgICAgICAgIH0gZWxzZSBpZiAoU2hhZG93Um9vdCogb2xkZXN0U2hhZG93
Um9vdCA9IG9sZGVzdFNoYWRvd1Jvb3RGb3Iobm9kZSkpCi0gICAgICAgICAgICB0cmF2ZXJzZVRy
ZWVBbmRNYXJrKGluZGVudCArICJcdCIsIG9sZGVzdFNoYWRvd1Jvb3QsIG1hcmtlZE5vZGUxLCBt
YXJrZWRMYWJlbDEsIG1hcmtlZE5vZGUyLCBtYXJrZWRMYWJlbDIpOworICAgICAgICAgICAgdHJh
dmVyc2VUcmVlQW5kTWFyayhpbmRlbnQudG9TdHJpbmcoKSwgb2xkZXN0U2hhZG93Um9vdCwgbWFy
a2VkTm9kZTEsIG1hcmtlZExhYmVsMSwgbWFya2VkTm9kZTIsIG1hcmtlZExhYmVsMik7CiAgICAg
fQogfQogCkBAIC0yMjE4LDEzICsyMjIyLDEzIEBAIHZvaWQgTm9kZTo6Zm9ybWF0Rm9yRGVidWdn
ZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgU3RyaW5nIHJl
c3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKKwogICAgIHMgPSBub2RlTmFtZSgpOwotICAgIGlm
IChzLmxlbmd0aCgpID09IDApCi0gICAgICAgIHJlc3VsdCArPSAiPG5vbmU+IjsKKyAgICBpZiAo
cy5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdCA9ICI8bm9uZT4iOwogICAgIGVsc2UKLSAgICAg
ICAgcmVzdWx0ICs9IHM7Ci0gICAgICAgICAgCisgICAgICAgIHJlc3VsdCA9IHM7CisKICAgICBz
dHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA4ODkxNDM1Li40ZDVjMTFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Q
b3NpdGlvbi5jcHAKQEAgLTEzMTQsMjAgKzEzMTQsMjAgQEAgdm9pZCBQb3NpdGlvbjo6ZGVidWdQ
b3NpdGlvbihjb25zdCBjaGFyKiBtc2cpIGNvbnN0CiAKIHZvaWQgUG9zaXRpb246OmZvcm1hdEZv
ckRlYnVnZ2VyKGNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogewotICAgIFN0
cmluZyByZXN1bHQ7Ci0gICAgCisgICAgU3RyaW5nQnVpbGRlciByZXN1bHQ7CisKICAgICBpZiAo
aXNOdWxsKCkpCi0gICAgICAgIHJlc3VsdCA9ICI8bnVsbD4iOworICAgICAgICByZXN1bHQuYXBw
ZW5kTGl0ZXJhbCgiPG51bGw+Iik7CiAgICAgZWxzZSB7CiAgICAgICAgIGNoYXIgc1sxMDI0XTsK
LSAgICAgICAgcmVzdWx0ICs9ICJvZmZzZXQgIjsKLSAgICAgICAgcmVzdWx0ICs9IFN0cmluZzo6
bnVtYmVyKG1fb2Zmc2V0KTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoIm9mZnNldCAiKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChTdHJp
bmc6Om51bWJlcihtX29mZnNldCkpOworICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIG9m
ICIpOwogICAgICAgICBkZXByZWNhdGVkTm9kZSgpLT5mb3JtYXRGb3JEZWJ1Z2dlcihzLCBzaXpl
b2YocykpOwotICAgICAgICByZXN1bHQgKz0gczsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsK
ICAgICB9Ci0gICAgICAgICAgCi0gICAgc3RybmNweShidWZmZXIsIHJlc3VsdC51dGY4KCkuZGF0
YSgpLCBsZW5ndGggLSAxKTsKKworICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKIH0KIAogdm9pZCBQb3NpdGlvbjo6c2hvd0Fu
Y2hvclR5cGVBbmRPZmZzZXQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggYzRlNDM1YTYu
LmVlY2QwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTY1MiwzMSArMTY1MiwzMCBAQCB2b2lk
IFJhbmdlOjp0ZXh0UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sIHVzZVNlbGVj
dGlvbkhlaWdodCwgUmFuZ2VJbgogfQogCiAjaWZuZGVmIE5ERUJVRwotI2RlZmluZSBGb3JtYXRC
dWZmZXJTaXplIDEwMjQKIHZvaWQgUmFuZ2U6OmZvcm1hdEZvckRlYnVnZ2VyKGNoYXIqIGJ1ZmZl
ciwgdW5zaWduZWQgbGVuZ3RoKSBjb25zdAogewotICAgIFN0cmluZyByZXN1bHQ7CisgICAgU3Ry
aW5nQnVpbGRlciByZXN1bHQ7CiAgICAgU3RyaW5nIHM7Ci0gICAgCisKICAgICBpZiAoIW1fc3Rh
cnQuY29udGFpbmVyKCkgfHwgIW1fZW5kLmNvbnRhaW5lcigpKQotICAgICAgICByZXN1bHQgPSAi
PGVtcHR5PiI7CisgICAgICAgIHJlc3VsdC5hcHBlbmRMaXRlcmFsKCI8ZW1wdHk+Iik7CiAgICAg
ZWxzZSB7CisgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKICAgICAg
ICAgY2hhciBzW0Zvcm1hdEJ1ZmZlclNpemVdOwotICAgICAgICByZXN1bHQgKz0gImZyb20gb2Zm
c2V0ICI7Ci0gICAgICAgIHJlc3VsdCArPSBTdHJpbmc6Om51bWJlcihtX3N0YXJ0Lm9mZnNldCgp
KTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVy
YWwoImZyb20gb2Zmc2V0ICIpOworICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZzo6bnVtYmVy
KG1fc3RhcnQub2Zmc2V0KCkpKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBvZiAi
KTsKICAgICAgICAgbV9zdGFydC5jb250YWluZXIoKS0+Zm9ybWF0Rm9yRGVidWdnZXIocywgRm9y
bWF0QnVmZmVyU2l6ZSk7Ci0gICAgICAgIHJlc3VsdCArPSBzOwotICAgICAgICByZXN1bHQgKz0g
IiB0byBvZmZzZXQgIjsKLSAgICAgICAgcmVzdWx0ICs9IFN0cmluZzo6bnVtYmVyKG1fZW5kLm9m
ZnNldCgpKTsKLSAgICAgICAgcmVzdWx0ICs9ICIgb2YgIjsKKyAgICAgICAgcmVzdWx0LmFwcGVu
ZChzKTsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiB0byBvZmZzZXQgIik7CisgICAg
ICAgIHJlc3VsdC5hcHBlbmQoU3RyaW5nOjpudW1iZXIobV9lbmQub2Zmc2V0KCkpKTsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIiBvZiAiKTsKICAgICAgICAgbV9lbmQuY29udGFpbmVy
KCktPmZvcm1hdEZvckRlYnVnZ2VyKHMsIEZvcm1hdEJ1ZmZlclNpemUpOwotICAgICAgICByZXN1
bHQgKz0gczsKKyAgICAgICAgcmVzdWx0LmFwcGVuZChzKTsKICAgICB9Ci0gICAgICAgICAgCi0g
ICAgc3RybmNweShidWZmZXIsIHJlc3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKwor
ICAgIHN0cm5jcHkoYnVmZmVyLCByZXN1bHQudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsZW5n
dGggLSAxKTsKIH0KLSN1bmRlZiBGb3JtYXRCdWZmZXJTaXplCiAjZW5kaWYKIAogYm9vbCBhcmVS
YW5nZXNFcXVhbChjb25zdCBSYW5nZSogYSwgY29uc3QgUmFuZ2UqIGIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVGV4dC5jcHAK
aW5kZXggY2FiNTRlZS4uNjZhMTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9UZXh0LmNwcApAQCAtMzAxLDIzICszMDEs
MjAgQEAgdm9pZCBUZXh0Ojp3aWxsUmVjYWxjVGV4dFN0eWxlKFN0eWxlQ2hhbmdlKQogI2lmbmRl
ZiBOREVCVUcKIHZvaWQgVGV4dDo6Zm9ybWF0Rm9yRGVidWdnZXIoY2hhciAqYnVmZmVyLCB1bnNp
Z25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0gICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWls
ZGVyIHJlc3VsdDsKICAgICBTdHJpbmcgczsKLSAgICAKLSAgICBzID0gbm9kZU5hbWUoKTsKLSAg
ICBpZiAocy5sZW5ndGgoKSA+IDApIHsKLSAgICAgICAgcmVzdWx0ICs9IHM7Ci0gICAgfQotICAg
ICAgICAgIAorCisgICAgcmVzdWx0LmFwcGVuZChub2RlTmFtZSgpKTsKKwogICAgIHMgPSBkYXRh
KCk7CiAgICAgaWYgKHMubGVuZ3RoKCkgPiAwKSB7Ci0gICAgICAgIGlmIChyZXN1bHQubGVuZ3Ro
KCkgPiAwKQotICAgICAgICAgICAgcmVzdWx0ICs9ICI7ICI7Ci0gICAgICAgIHJlc3VsdCArPSAi
dmFsdWU9IjsKLSAgICAgICAgcmVzdWx0ICs9IHM7CisgICAgICAgIGlmIChyZXN1bHQubGVuZ3Ro
KCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiOyAiKTsKKyAgICAgICAgcmVz
dWx0LmFwcGVuZExpdGVyYWwoInZhbHVlPSIpOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOwog
ICAgIH0KLSAgICAgICAgICAKLSAgICBzdHJuY3B5KGJ1ZmZlciwgcmVzdWx0LnV0ZjgoKS5kYXRh
KCksIGxlbmd0aCAtIDEpOworCisgICAgc3RybmNweShidWZmZXIsIHJlc3VsdC50b1N0cmluZygp
LnV0ZjgoKS5kYXRhKCksIGxlbmd0aCAtIDEpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDhjZDFkZjAuLjRmZmY4NTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtMzYsNiAr
MzYsNyBAQAogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
QnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3MSwyMyArNjcyLDIzIEBAIHZvaWQgVmlzaWJsZVNlbGVj
dGlvbjo6ZGVidWdQb3NpdGlvbigpIGNvbnN0CiAKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6Zm9y
bWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7Ci0g
ICAgU3RyaW5nIHJlc3VsdDsKKyAgICBTdHJpbmdCdWlsZGVyIHJlc3VsdDsKICAgICBTdHJpbmcg
czsKLSAgICAKKwogICAgIGlmIChpc05vbmUoKSkgewotICAgICAgICByZXN1bHQgPSAiPG5vbmU+
IjsKKyAgICAgICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoIjxub25lPiIpOwogICAgIH0gZWxzZSB7
CiAgICAgICAgIGNvbnN0IGludCBGb3JtYXRCdWZmZXJTaXplID0gMTAyNDsKICAgICAgICAgY2hh
ciBzW0Zvcm1hdEJ1ZmZlclNpemVdOwotICAgICAgICByZXN1bHQgKz0gImZyb20gIjsKKyAgICAg
ICAgcmVzdWx0LmFwcGVuZExpdGVyYWwoImZyb20gIik7CiAgICAgICAgIHN0YXJ0KCkuZm9ybWF0
Rm9yRGVidWdnZXIocywgRm9ybWF0QnVmZmVyU2l6ZSk7Ci0gICAgICAgIHJlc3VsdCArPSBzOwot
ICAgICAgICByZXN1bHQgKz0gIiB0byAiOworICAgICAgICByZXN1bHQuYXBwZW5kKHMpOworICAg
ICAgICByZXN1bHQuYXBwZW5kTGl0ZXJhbCgiIHRvICIpOwogICAgICAgICBlbmQoKS5mb3JtYXRG
b3JEZWJ1Z2dlcihzLCBGb3JtYXRCdWZmZXJTaXplKTsKLSAgICAgICAgcmVzdWx0ICs9IHM7Cisg
ICAgICAgIHJlc3VsdC5hcHBlbmQocyk7CiAgICAgfQogCi0gICAgc3RybmNweShidWZmZXIsIHJl
c3VsdC51dGY4KCkuZGF0YSgpLCBsZW5ndGggLSAxKTsKKyAgICBzdHJuY3B5KGJ1ZmZlciwgcmVz
dWx0LnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbGVuZ3RoIC0gMSk7CiB9CiAKIHZvaWQgVmlz
aWJsZVNlbGVjdGlvbjo6c2hvd1RyZWVGb3JUaGlzKCkgY29uc3QK
</data>

          </attachment>
      

    </bug>

</bugzilla>