<?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>74771</bug_id>
          
          <creation_ts>2011-12-16 17:16:52 -0800</creation_ts>
          <short_desc>Remove the duplicated code from ASCIICType.h</short_desc>
          <delta_ts>2011-12-18 22:04:08 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>523172</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 17:16:52 -0800</bug_when>
    <thetext>ASCIICType.h is just a bunch of function copied for every type. I have heard of that template thingy that is good at doing that ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523173</commentid>
    <comment_count>1</comment_count>
      <attachid>119703</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 17:19:53 -0800</bug_when>
    <thetext>Created attachment 119703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523177</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 17:23:31 -0800</bug_when>
    <thetext>I was also curious why we need to support so many types and not just UChar for every function... It is because of the JSC::Yarr() and JSC::lexer(), which use various types for the characters.

This could probably be fixed but I preferred to limit the scope of this particular change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523249</commentid>
    <comment_count>3</comment_count>
      <attachid>119703</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-16 21:56:42 -0800</bug_when>
    <thetext>Comment on attachment 119703
Patch

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

Great idea!

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +        The functions were sharing similar code and were defined for the various input type.

type -&gt; types

&gt; Source/JavaScriptCore/ChangeLog:9
&gt; +        Use template instead to avoid code duplication.

template -&gt; templates

&gt; Source/JavaScriptCore/wtf/ASCIICType.h:98
&gt; + character          count
&gt; + ---------          -----
&gt; + non-spaces         689383
&gt; + 20  space              294720
&gt; + 0A  \n                 89059
&gt; + 09  \t                 28320
&gt; + 0D  \r                 0
&gt; + 0C  \f                 0
&gt; + 0B  \v                 0
&gt; + */

Looks like you&apos;re breaking the alignment here a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523256</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 22:36:22 -0800</bug_when>
    <thetext>Committed r103144: &lt;http://trac.webkit.org/changeset/103144&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523262</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 22:56:21 -0800</bug_when>
    <thetext>Reopen, I am not finished here :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523265</commentid>
    <comment_count>6</comment_count>
      <attachid>119715</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-16 23:14:21 -0800</bug_when>
    <thetext>Created attachment 119715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523306</commentid>
    <comment_count>7</comment_count>
      <attachid>119715</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-17 09:12:40 -0800</bug_when>
    <thetext>Comment on attachment 119715
Patch

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

&gt; Source/JavaScriptCore/wtf/ASCIICType.h:58
&gt; +    return (c &gt;= &apos;0&apos;) &amp;&amp; (c &lt;= &apos;9&apos;);

You don&apos;t need parentheses here. NABD.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523601</commentid>
    <comment_count>8</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-18 18:06:09 -0800</bug_when>
    <thetext>Committed r103202: &lt;http://trac.webkit.org/changeset/103202&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523603</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-18 18:06:35 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; &gt; Source/JavaScriptCore/wtf/ASCIICType.h:58
&gt; &gt; +    return (c &gt;= &apos;0&apos;) &amp;&amp; (c &lt;= &apos;9&apos;);
&gt; 
&gt; You don&apos;t need parentheses here. NABD.

I know, but I like the parentheses :)

The helmet is not mandatory when rollerblading(*), but it is safer ;)


(*) restrictions may apply depending on your country. The lack of helmet can have side effects including nausea, headache or death. If you feel any discomfort, immediately consult a doctor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523716</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-18 21:59:59 -0800</bug_when>
    <thetext>The first patch is marked as obsolete. Was it rolled out? If it&apos;s in the tree, it should not be obsolete, as otherwise it&apos;s too hard to see what changes the bug included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523718</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-12-18 22:04:08 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; The first patch is marked as obsolete. Was it rolled out? If it&apos;s in the tree, it should not be obsolete, as otherwise it&apos;s too hard to see what changes the bug included.

You are right. I used webkit-patch without thinking about that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119703</attachid>
            <date>2011-12-16 17:19:53 -0800</date>
            <delta_ts>2011-12-18 22:03:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74771-20111216171951.patch</filename>
            <type>text/plain</type>
            <size>12418</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMDA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
ODgzZGI3YWFkNThjZjY4YzFiMDAxZjcyMmEyZTNlOTU0ZDBhN2U3Li5mZDk3ODg3ZTQ4MTk4MGQ1
MmQ0ZmNhZmZhZjQ0ODk4NmM2YTc4MWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMCBAQAorMjAxMS0xMi0xNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZWQgY29kZSBmcm9tIEFTQ0lJQ1R5
cGUuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzQ3
NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUg
ZnVuY3Rpb25zIHdlcmUgc2hhcmluZyBzaW1pbGFyIGNvZGUgYW5kIHdlcmUgZGVmaW5lZCBmb3Ig
dGhlIHZhcmlvdXMgaW5wdXQgdHlwZS4KKyAgICAgICAgVXNlIHRlbXBsYXRlIGluc3RlYWQgdG8g
YXZvaWQgY29kZSBkdXBsaWNhdGlvbi4KKworICAgICAgICAqIHd0Zi9BU0NJSUNUeXBlLmg6Cisg
ICAgICAgIChXVEY6OmlzQVNDSUkpOgorICAgICAgICAoV1RGOjppc0FTQ0lJQWxwaGEpOgorICAg
ICAgICAoV1RGOjppc0FTQ0lJQWxwaGFudW1lcmljKToKKyAgICAgICAgKFdURjo6aXNBU0NJSURp
Z2l0KToKKyAgICAgICAgKFdURjo6aXNBU0NJSUhleERpZ2l0KToKKyAgICAgICAgKFdURjo6aXNB
U0NJSUxvd2VyKToKKyAgICAgICAgKFdURjo6aXNBU0NJSU9jdGFsRGlnaXQpOgorICAgICAgICAo
V1RGOjppc0FTQ0lJUHJpbnRhYmxlKToKKyAgICAgICAgKFdURjo6aXNBU0NJSVNwYWNlKToKKyAg
ICAgICAgKFdURjo6aXNBU0NJSVVwcGVyKToKKyAgICAgICAgKFdURjo6dG9BU0NJSUxvd2VyKToK
KyAgICAgICAgKFdURjo6dG9BU0NJSVVwcGVyKToKKyAgICAgICAgKFdURjo6dG9BU0NJSUhleFZh
bHVlKToKKyAgICAgICAgKFdURjo6bG93ZXJOaWJibGVUb0FTQ0lJSGV4RGlnaXQpOgorICAgICAg
ICAoV1RGOjp1cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdCk6CisKIDIwMTEtMTItMTUgIEFuZHkg
V2luZ28gIDx3aW5nb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFdhcm5pbmdzIGZpeGVzIGluIElu
dGVycHJldGVyLmNwcCBhbmQgUHJpdmF0ZUV4ZWN1dGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL0FTQ0lJQ1R5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvQVNDSUlDVHlwZS5oCmluZGV4IDgzZjI3NGI3YjFjMWNiYmU1NzRjYWZhMjE3YTNiNGRkMzk3
ZGFhZGMuLjA2Y2E1ZjAzYWRhMWNhM2M4MTk1MmI3MTE5NzM0MTEwNWU2M2M3M2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvQVNDSUlDVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvQVNDSUlDVHlwZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMDksIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
MywxMjcgKzQzLDEwMyBAQAogCiBuYW1lc3BhY2UgV1RGIHsKIAotICAgIGlubGluZSBib29sIGlz
QVNDSUkoY2hhciBjKSB7IHJldHVybiAhKGMgJiB+MHg3Rik7IH0KLSAgICBpbmxpbmUgYm9vbCBp
c0FTQ0lJKHVuc2lnbmVkIHNob3J0IGMpIHsgcmV0dXJuICEoYyAmIH4weDdGKTsgfQotI2lmICFD
T01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQotICAgIGlu
bGluZSBib29sIGlzQVNDSUkod2NoYXJfdCBjKSB7IHJldHVybiAhKGMgJiB+MHg3Rik7IH0KLSNl
bmRpZgotICAgIGlubGluZSBib29sIGlzQVNDSUkoaW50IGMpIHsgcmV0dXJuICEoYyAmIH4weDdG
KTsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUkodW5zaWduZWQgYykgeyByZXR1cm4gIShjICYg
fjB4N0YpOyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJ
SShDaGFyVHlwZSBjKQoreworICAgIHJldHVybiAhKGMgJiB+MHg3Rik7Cit9CiAKLSAgICBpbmxp
bmUgYm9vbCBpc0FTQ0lJQWxwaGEoY2hhciBjKSB7IHJldHVybiAoYyB8IDB4MjApID49ICdhJyAm
JiAoYyB8IDB4MjApIDw9ICd6JzsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUlBbHBoYSh1bnNp
Z25lZCBzaG9ydCBjKSB7IHJldHVybiAoYyB8IDB4MjApID49ICdhJyAmJiAoYyB8IDB4MjApIDw9
ICd6JzsgfQotI2lmICFDT01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9E
RUZJTkVEKQotICAgIGlubGluZSBib29sIGlzQVNDSUlBbHBoYSh3Y2hhcl90IGMpIHsgcmV0dXJu
IChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ3onOyB9Ci0jZW5kaWYKLSAgICBp
bmxpbmUgYm9vbCBpc0FTQ0lJQWxwaGEoaW50IGMpIHsgcmV0dXJuIChjIHwgMHgyMCkgPj0gJ2En
ICYmIChjIHwgMHgyMCkgPD0gJ3onOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhKHVu
c2lnbmVkIGMpIHsgcmV0dXJuIChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ3on
OyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSUFscGhh
KENoYXJUeXBlIGMpCit7CisgICAgcmV0dXJuIChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgy
MCkgPD0gJ3onOworfQogCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyhjaGFy
IGMpIHsgcmV0dXJuIChjID49ICcwJyAmJiBjIDw9ICc5JykgfHwgKChjIHwgMHgyMCkgPj0gJ2En
ICYmIChjIHwgMHgyMCkgPD0gJ3onKTsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUlBbHBoYW51
bWVyaWModW5zaWduZWQgc2hvcnQgYykgeyByZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8
fCAoKGMgfCAweDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAneicpOyB9Ci0jaWYgIUNPTVBJ
TEVSKE1TVkMpIHx8IGRlZmluZWQoX05BVElWRV9XQ0hBUl9UX0RFRklORUQpCi0gICAgaW5saW5l
IGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyh3Y2hhcl90IGMpIHsgcmV0dXJuIChjID49ICcwJyAm
JiBjIDw9ICc5JykgfHwgKChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ3onKTsg
fQotI2VuZGlmCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyhpbnQgYykgeyBy
ZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fCAoKGMgfCAweDIwKSA+PSAnYScgJiYgKGMg
fCAweDIwKSA8PSAneicpOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyh1
bnNpZ25lZCBjKSB7IHJldHVybiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8ICgoYyB8IDB4MjAp
ID49ICdhJyAmJiAoYyB8IDB4MjApIDw9ICd6Jyk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJU
eXBlPiBpbmxpbmUgYm9vbCBpc0FTQ0lJQWxwaGFudW1lcmljKENoYXJUeXBlIGMpCit7CisgICAg
cmV0dXJuIChjID49ICcwJyAmJiBjIDw9ICc5JykgfHwgKChjIHwgMHgyMCkgPj0gJ2EnICYmIChj
IHwgMHgyMCkgPD0gJ3onKTsKK30KIAotICAgIGlubGluZSBib29sIGlzQVNDSUlEaWdpdChjaGFy
IGMpIHsgcmV0dXJuIChjID49ICcwJykgJiAoYyA8PSAnOScpOyB9Ci0gICAgaW5saW5lIGJvb2wg
aXNBU0NJSURpZ2l0KHVuc2lnbmVkIHNob3J0IGMpIHsgcmV0dXJuIChjID49ICcwJykgJiAoYyA8
PSAnOScpOyB9Ci0jaWYgIUNPTVBJTEVSKE1TVkMpIHx8IGRlZmluZWQoX05BVElWRV9XQ0hBUl9U
X0RFRklORUQpCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJSURpZ2l0KHdjaGFyX3QgYykgeyByZXR1
cm4gKGMgPj0gJzAnKSAmIChjIDw9ICc5Jyk7IH0KLSNlbmRpZgotICAgIGlubGluZSBib29sIGlz
QVNDSUlEaWdpdChpbnQgYykgeyByZXR1cm4gKGMgPj0gJzAnKSAmIChjIDw9ICc5Jyk7IH0KLSAg
ICBpbmxpbmUgYm9vbCBpc0FTQ0lJRGlnaXQodW5zaWduZWQgYykgeyByZXR1cm4gKGMgPj0gJzAn
KSAmIChjIDw9ICc5Jyk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9v
bCBpc0FTQ0lJRGlnaXQoQ2hhclR5cGUgYykKK3sKKyAgICByZXR1cm4gKGMgPj0gJzAnKSAmIChj
IDw9ICc5Jyk7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJSGV4RGlnaXQoY2hhciBjKSB7
IHJldHVybiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8ICgoYyB8IDB4MjApID49ICdhJyAmJiAo
YyB8IDB4MjApIDw9ICdmJyk7IH0KLSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJSGV4RGlnaXQodW5z
aWduZWQgc2hvcnQgYykgeyByZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8fCAoKGMgfCAw
eDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAnZicpOyB9Ci0jaWYgIUNPTVBJTEVSKE1TVkMp
IHx8IGRlZmluZWQoX05BVElWRV9XQ0hBUl9UX0RFRklORUQpCi0gICAgaW5saW5lIGJvb2wgaXNB
U0NJSUhleERpZ2l0KHdjaGFyX3QgYykgeyByZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0gJzknKSB8
fCAoKGMgfCAweDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAnZicpOyB9Ci0jZW5kaWYKLSAg
ICBpbmxpbmUgYm9vbCBpc0FTQ0lJSGV4RGlnaXQoaW50IGMpIHsgcmV0dXJuIChjID49ICcwJyAm
JiBjIDw9ICc5JykgfHwgKChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ2YnKTsg
fQotICAgIGlubGluZSBib29sIGlzQVNDSUlIZXhEaWdpdCh1bnNpZ25lZCBjKSB7IHJldHVybiAo
YyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8ICgoYyB8IDB4MjApID49ICdhJyAmJiAoYyB8IDB4MjAp
IDw9ICdmJyk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9vbCBpc0FT
Q0lJSGV4RGlnaXQoQ2hhclR5cGUgYykKK3sKKyAgICByZXR1cm4gKGMgPj0gJzAnICYmIGMgPD0g
JzknKSB8fCAoKGMgfCAweDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAnZicpOworfQogCi0g
ICAgaW5saW5lIGJvb2wgaXNBU0NJSU9jdGFsRGlnaXQoY2hhciBjKSB7IHJldHVybiAoYyA+PSAn
MCcpICYgKGMgPD0gJzcnKTsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUlPY3RhbERpZ2l0KHVu
c2lnbmVkIHNob3J0IGMpIHsgcmV0dXJuIChjID49ICcwJykgJiAoYyA8PSAnNycpOyB9Ci0jaWYg
IUNPTVBJTEVSKE1TVkMpIHx8IGRlZmluZWQoX05BVElWRV9XQ0hBUl9UX0RFRklORUQpCi0gICAg
aW5saW5lIGJvb2wgaXNBU0NJSU9jdGFsRGlnaXQod2NoYXJfdCBjKSB7IHJldHVybiAoYyA+PSAn
MCcpICYgKGMgPD0gJzcnKTsgfQotI2VuZGlmCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJSU9jdGFs
RGlnaXQoaW50IGMpIHsgcmV0dXJuIChjID49ICcwJykgJiAoYyA8PSAnNycpOyB9Ci0gICAgaW5s
aW5lIGJvb2wgaXNBU0NJSU9jdGFsRGlnaXQodW5zaWduZWQgYykgeyByZXR1cm4gKGMgPj0gJzAn
KSAmIChjIDw9ICc3Jyk7IH0KK3RlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9v
bCBpc0FTQ0lJTG93ZXIoQ2hhclR5cGUgYykKK3sKKyAgICByZXR1cm4gYyA+PSAnYScgJiYgYyA8
PSAneic7Cit9CiAKLSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJTG93ZXIoY2hhciBjKSB7IHJldHVy
biBjID49ICdhJyAmJiBjIDw9ICd6JzsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUlMb3dlcih1
bnNpZ25lZCBzaG9ydCBjKSB7IHJldHVybiBjID49ICdhJyAmJiBjIDw9ICd6JzsgfQotI2lmICFD
T01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQotICAgIGlu
bGluZSBib29sIGlzQVNDSUlMb3dlcih3Y2hhcl90IGMpIHsgcmV0dXJuIGMgPj0gJ2EnICYmIGMg
PD0gJ3onOyB9Ci0jZW5kaWYKLSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJTG93ZXIoaW50IGMpIHsg
cmV0dXJuIGMgPj0gJ2EnICYmIGMgPD0gJ3onOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSUxv
d2VyKHVuc2lnbmVkIGMpIHsgcmV0dXJuIGMgPj0gJ2EnICYmIGMgPD0gJ3onOyB9Cit0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSU9jdGFsRGlnaXQoQ2hhclR5
cGUgYykKK3sKKyAgICByZXR1cm4gKGMgPj0gJzAnKSAmIChjIDw9ICc3Jyk7Cit9CiAKLSAgICBp
bmxpbmUgYm9vbCBpc0FTQ0lJVXBwZXIoY2hhciBjKSB7IHJldHVybiBjID49ICdBJyAmJiBjIDw9
ICdaJzsgfQotICAgIGlubGluZSBib29sIGlzQVNDSUlVcHBlcih1bnNpZ25lZCBzaG9ydCBjKSB7
IHJldHVybiBjID49ICdBJyAmJiBjIDw9ICdaJzsgfQotI2lmICFDT01QSUxFUihNU1ZDKSB8fCBk
ZWZpbmVkKF9OQVRJVkVfV0NIQVJfVF9ERUZJTkVEKQotICAgIGlubGluZSBib29sIGlzQVNDSUlV
cHBlcih3Y2hhcl90IGMpIHsgcmV0dXJuIGMgPj0gJ0EnICYmIGMgPD0gJ1onOyB9Ci0jZW5kaWYK
LSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJVXBwZXIoaW50IGMpIHsgcmV0dXJuIGMgPj0gJ0EnICYm
IGMgPD0gJ1onOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSVVwcGVyKHVuc2lnbmVkIGMpIHsg
cmV0dXJuIGMgPj0gJ0EnICYmIGMgPD0gJ1onOyB9Cit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlw
ZT4gaW5saW5lIGJvb2wgaXNBU0NJSVByaW50YWJsZShDaGFyVHlwZSBjKQoreworICAgIHJldHVy
biBjID49ICcgJyAmJiBjIDw9ICd+JzsKK30KKworLyoKKyBTdGF0aXN0aWNzIGZyb20gYSBydW4g
b2YgQXBwbGUncyBwYWdlIGxvYWQgdGVzdCBmb3IgY2FsbGVycyBvZiBpc0FTQ0lJU3BhY2U6CiAK
LSAgICAvKgotICAgICAgICBTdGF0aXN0aWNzIGZyb20gYSBydW4gb2YgQXBwbGUncyBwYWdlIGxv
YWQgdGVzdCBmb3IgY2FsbGVycyBvZiBpc0FTQ0lJU3BhY2U6CisgY2hhcmFjdGVyICAgICAgICAg
IGNvdW50CisgLS0tLS0tLS0tICAgICAgICAgIC0tLS0tCisgbm9uLXNwYWNlcyAgICAgICAgIDY4
OTM4MworIDIwICBzcGFjZSAgICAgICAgICAgICAgMjk0NzIwCisgMEEgIFxuICAgICAgICAgICAg
ICAgICA4OTA1OQorIDA5ICBcdCAgICAgICAgICAgICAgICAgMjgzMjAKKyAwRCAgXHIgICAgICAg
ICAgICAgICAgIDAKKyAwQyAgXGYgICAgICAgICAgICAgICAgIDAKKyAwQiAgXHYgICAgICAgICAg
ICAgICAgIDAKKyAqLwordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclR5cGU+IGlubGluZSBib29sIGlz
QVNDSUlTcGFjZShDaGFyVHlwZSBjKQoreworICAgIHJldHVybiBjIDw9ICcgJyAmJiAoYyA9PSAn
ICcgfHwgKGMgPD0gMHhEICYmIGMgPj0gMHg5KSk7Cit9CiAKLSAgICAgICAgICAgIGNoYXJhY3Rl
ciAgICAgICAgICBjb3VudAotICAgICAgICAgICAgLS0tLS0tLS0tICAgICAgICAgIC0tLS0tCi0g
ICAgICAgICAgICBub24tc3BhY2VzICAgICAgICAgNjg5MzgzCi0gICAgICAgIDIwICBzcGFjZSAg
ICAgICAgICAgICAgMjk0NzIwCi0gICAgICAgIDBBICBcbiAgICAgICAgICAgICAgICAgODkwNTkK
LSAgICAgICAgMDkgIFx0ICAgICAgICAgICAgICAgICAyODMyMAotICAgICAgICAwRCAgXHIgICAg
ICAgICAgICAgICAgIDAKLSAgICAgICAgMEMgIFxmICAgICAgICAgICAgICAgICAwCi0gICAgICAg
IDBCICBcdiAgICAgICAgICAgICAgICAgMAotICAgICovCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJ
SVNwYWNlKGNoYXIgYykgeyByZXR1cm4gYyA8PSAnICcgJiYgKGMgPT0gJyAnIHx8IChjIDw9IDB4
RCAmJiBjID49IDB4OSkpOyB9Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSVNwYWNlKHVuc2lnbmVk
IHNob3J0IGMpIHsgcmV0dXJuIGMgPD0gJyAnICYmIChjID09ICcgJyB8fCAoYyA8PSAweEQgJiYg
YyA+PSAweDkpKTsgfQotI2lmICFDT01QSUxFUihNU1ZDKSB8fCBkZWZpbmVkKF9OQVRJVkVfV0NI
QVJfVF9ERUZJTkVEKQotICAgIGlubGluZSBib29sIGlzQVNDSUlTcGFjZSh3Y2hhcl90IGMpIHsg
cmV0dXJuIGMgPD0gJyAnICYmIChjID09ICcgJyB8fCAoYyA8PSAweEQgJiYgYyA+PSAweDkpKTsg
fQotI2VuZGlmCi0gICAgaW5saW5lIGJvb2wgaXNBU0NJSVNwYWNlKGludCBjKSB7IHJldHVybiBj
IDw9ICcgJyAmJiAoYyA9PSAnICcgfHwgKGMgPD0gMHhEICYmIGMgPj0gMHg5KSk7IH0KLSAgICBp
bmxpbmUgYm9vbCBpc0FTQ0lJU3BhY2UodW5zaWduZWQgYykgeyByZXR1cm4gYyA8PSAnICcgJiYg
KGMgPT0gJyAnIHx8IChjIDw9IDB4RCAmJiBjID49IDB4OSkpOyB9Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSVVwcGVyKENoYXJUeXBlIGMpCit7CisgICAg
cmV0dXJuIGMgPj0gJ0EnICYmIGMgPD0gJ1onOworfQogCi0gICAgaW5saW5lIGNoYXIgdG9BU0NJ
SUxvd2VyKGNoYXIgYykgeyByZXR1cm4gYyB8ICgoYyA+PSAnQScgJiYgYyA8PSAnWicpIDw8IDUp
OyB9Ci0gICAgaW5saW5lIHVuc2lnbmVkIHNob3J0IHRvQVNDSUlMb3dlcih1bnNpZ25lZCBzaG9y
dCBjKSB7IHJldHVybiBjIHwgKChjID49ICdBJyAmJiBjIDw9ICdaJykgPDwgNSk7IH0KLSNpZiAh
Q09NUElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCkKLSAgICBp
bmxpbmUgd2NoYXJfdCB0b0FTQ0lJTG93ZXIod2NoYXJfdCBjKSB7IHJldHVybiBjIHwgKChjID49
ICdBJyAmJiBjIDw9ICdaJykgPDwgNSk7IH0KLSNlbmRpZgotICAgIGlubGluZSBpbnQgdG9BU0NJ
SUxvd2VyKGludCBjKSB7IHJldHVybiBjIHwgKChjID49ICdBJyAmJiBjIDw9ICdaJykgPDwgNSk7
IH0KLSAgICBpbmxpbmUgdW5zaWduZWQgdG9BU0NJSUxvd2VyKHVuc2lnbmVkIGMpIHsgcmV0dXJu
IGMgfCAoKGMgPj0gJ0EnICYmIGMgPD0gJ1onKSA8PCA1KTsgfQordGVtcGxhdGU8dHlwZW5hbWUg
Q2hhclR5cGU+IGlubGluZSBDaGFyVHlwZSB0b0FTQ0lJTG93ZXIoQ2hhclR5cGUgYykKK3sKKyAg
ICByZXR1cm4gYyB8ICgoYyA+PSAnQScgJiYgYyA8PSAnWicpIDw8IDUpOworfQogCi0gICAgLy8g
RklYTUU6IFdoeSBkbyB0aGVzZSBuZWVkIHN0YXRpY19jYXN0PwotICAgIGlubGluZSBjaGFyIHRv
QVNDSUlVcHBlcihjaGFyIGMpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGNoYXI+KGMgJiB+KChjID49
ICdhJyAmJiBjIDw9ICd6JykgPDwgNSkpOyB9Ci0gICAgaW5saW5lIHVuc2lnbmVkIHNob3J0IHRv
QVNDSUlVcHBlcih1bnNpZ25lZCBzaG9ydCBjKSB7IHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBzaG9ydD4oYyAmIH4oKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSA8PCA1KSk7IH0KLSNpZiAhQ09N
UElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFSX1RfREVGSU5FRCkKLSAgICBpbmxp
bmUgd2NoYXJfdCB0b0FTQ0lJVXBwZXIod2NoYXJfdCBjKSB7IHJldHVybiBzdGF0aWNfY2FzdDx3
Y2hhcl90PihjICYgfigoYyA+PSAnYScgJiYgYyA8PSAneicpIDw8IDUpKTsgfQotI2VuZGlmCi0g
ICAgaW5saW5lIGludCB0b0FTQ0lJVXBwZXIoaW50IGMpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oYyAmIH4oKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSA8PCA1KSk7IH0KLSAgICBpbmxpbmUgdW5z
aWduZWQgdG9BU0NJSVVwcGVyKHVuc2lnbmVkIGMpIHsgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihjICYgfigoYyA+PSAnYScgJiYgYyA8PSAneicpIDw8IDUpKTsgfQordGVtcGxhdGU8dHlw
ZW5hbWUgQ2hhclR5cGU+IGlubGluZSBDaGFyVHlwZSB0b0FTQ0lJVXBwZXIoQ2hhclR5cGUgYykK
K3sKKyAgICByZXR1cm4gYyAmIH4oKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSA8PCA1KTsKK30KIAot
ICAgIGlubGluZSBpbnQgdG9BU0NJSUhleFZhbHVlKGNoYXIgYykgeyBBU1NFUlQoaXNBU0NJSUhl
eERpZ2l0KGMpKTsgcmV0dXJuIGMgPCAnQScgPyBjIC0gJzAnIDogKGMgLSAnQScgKyAxMCkgJiAw
eEY7IH0KLSAgICBpbmxpbmUgaW50IHRvQVNDSUlIZXhWYWx1ZShjaGFyIHVwcGVyVmFsdWUsIGNo
YXIgbG93ZXJWYWx1ZSkgeyBBU1NFUlQoaXNBU0NJSUhleERpZ2l0KHVwcGVyVmFsdWUpICYmIGlz
QVNDSUlIZXhEaWdpdChsb3dlclZhbHVlKSk7IHJldHVybiAoKHRvQVNDSUlIZXhWYWx1ZSh1cHBl
clZhbHVlKSA8PCA0KSAmIDB4RjApIHwgdG9BU0NJSUhleFZhbHVlKGxvd2VyVmFsdWUpOyB9Ci0g
ICAgaW5saW5lIGludCB0b0FTQ0lJSGV4VmFsdWUodW5zaWduZWQgc2hvcnQgYykgeyBBU1NFUlQo
aXNBU0NJSUhleERpZ2l0KGMpKTsgcmV0dXJuIGMgPCAnQScgPyBjIC0gJzAnIDogKGMgLSAnQScg
KyAxMCkgJiAweEY7IH0KLSNpZiAhQ09NUElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dD
SEFSX1RfREVGSU5FRCkKLSAgICBpbmxpbmUgaW50IHRvQVNDSUlIZXhWYWx1ZSh3Y2hhcl90IGMp
IHsgQVNTRVJUKGlzQVNDSUlIZXhEaWdpdChjKSk7IHJldHVybiBjIDwgJ0EnID8gYyAtICcwJyA6
IChjIC0gJ0EnICsgMTApICYgMHhGOyB9Ci0jZW5kaWYKLSAgICBpbmxpbmUgaW50IHRvQVNDSUlI
ZXhWYWx1ZShpbnQgYykgeyBBU1NFUlQoaXNBU0NJSUhleERpZ2l0KGMpKTsgcmV0dXJuIGMgPCAn
QScgPyBjIC0gJzAnIDogKGMgLSAnQScgKyAxMCkgJiAweEY7IH0KLSAgICBpbmxpbmUgaW50IHRv
QVNDSUlIZXhWYWx1ZSh1bnNpZ25lZCBjKSB7IEFTU0VSVChpc0FTQ0lJSGV4RGlnaXQoYykpOyBy
ZXR1cm4gYyA8ICdBJyA/IGMgLSAnMCcgOiAoYyAtICdBJyArIDEwKSAmIDB4RjsgfQordGVtcGxh
dGU8dHlwZW5hbWUgQ2hhclR5cGU+IGlubGluZSBpbnQgdG9BU0NJSUhleFZhbHVlKENoYXJUeXBl
IGMpCit7CisgICAgQVNTRVJUKGlzQVNDSUlIZXhEaWdpdChjKSk7CisgICAgcmV0dXJuIGMgPCAn
QScgPyBjIC0gJzAnIDogKGMgLSAnQScgKyAxMCkgJiAweEY7Cit9CiAKLSAgICBpbmxpbmUgY2hh
ciBsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjaGFyIGMpIHsgY2hhciBuaWJibGUgPSBjICYg
MHhGOyByZXR1cm4gbmliYmxlIDwgMTAgPyAnMCcgKyBuaWJibGUgOiAnQScgKyBuaWJibGUgLSAx
MDsgfQotICAgIGlubGluZSBjaGFyIHVwcGVyTmliYmxlVG9BU0NJSUhleERpZ2l0KGNoYXIgYykg
eyBjaGFyIG5pYmJsZSA9IChjID4+IDQpICYgMHhGOyByZXR1cm4gbmliYmxlIDwgMTAgPyAnMCcg
KyBuaWJibGUgOiAnQScgKyBuaWJibGUgLSAxMDsgfQordGVtcGxhdGU8dHlwZW5hbWUgQ2hhclR5
cGU+IGlubGluZSBpbnQgdG9BU0NJSUhleFZhbHVlKENoYXJUeXBlIHVwcGVyVmFsdWUsIENoYXJU
eXBlIGxvd2VyVmFsdWUpCit7CisgICAgQVNTRVJUKGlzQVNDSUlIZXhEaWdpdCh1cHBlclZhbHVl
KSAmJiBpc0FTQ0lJSGV4RGlnaXQobG93ZXJWYWx1ZSkpOworICAgIHJldHVybiAoKHRvQVNDSUlI
ZXhWYWx1ZSh1cHBlclZhbHVlKSA8PCA0KSAmIDB4RjApIHwgdG9BU0NJSUhleFZhbHVlKGxvd2Vy
VmFsdWUpOworfQorCitpbmxpbmUgY2hhciBsb3dlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjaGFy
IGMpCit7CisgICAgY2hhciBuaWJibGUgPSBjICYgMHhGOworICAgIHJldHVybiBuaWJibGUgPCAx
MCA/ICcwJyArIG5pYmJsZSA6ICdBJyArIG5pYmJsZSAtIDEwOworfQorCitpbmxpbmUgY2hhciB1
cHBlck5pYmJsZVRvQVNDSUlIZXhEaWdpdChjaGFyIGMpCit7CisgICAgY2hhciBuaWJibGUgPSAo
YyA+PiA0KSAmIDB4RjsKKyAgICByZXR1cm4gbmliYmxlIDwgMTAgPyAnMCcgKyBuaWJibGUgOiAn
QScgKyBuaWJibGUgLSAxMDsKK30KIAotICAgIGlubGluZSBib29sIGlzQVNDSUlQcmludGFibGUo
Y2hhciBjKSB7IHJldHVybiBjID49ICcgJyAmJiBjIDw9ICd+JzsgfQotICAgIGlubGluZSBib29s
IGlzQVNDSUlQcmludGFibGUodW5zaWduZWQgc2hvcnQgYykgeyByZXR1cm4gYyA+PSAnICcgJiYg
YyA8PSAnfic7IH0KLSNpZiAhQ09NUElMRVIoTVNWQykgfHwgZGVmaW5lZChfTkFUSVZFX1dDSEFS
X1RfREVGSU5FRCkKLSAgICBpbmxpbmUgYm9vbCBpc0FTQ0lJUHJpbnRhYmxlKHdjaGFyX3QgYykg
eyByZXR1cm4gYyA+PSAnICcgJiYgYyA8PSAnfic7IH0KLSNlbmRpZgotICAgIGlubGluZSBib29s
IGlzQVNDSUlQcmludGFibGUoaW50IGMpIHsgcmV0dXJuIGMgPj0gJyAnICYmIGMgPD0gJ34nOyB9
Ci0gICAgaW5saW5lIGJvb2wgaXNBU0NJSVByaW50YWJsZSh1bnNpZ25lZCBjKSB7IHJldHVybiBj
ID49ICcgJyAmJiBjIDw9ICd+JzsgfQogfQogCiB1c2luZyBXVEY6OmlzQVNDSUk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119715</attachid>
            <date>2011-12-16 23:14:21 -0800</date>
            <delta_ts>2011-12-17 09:12:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74771-20111216231420.patch</filename>
            <type>text/plain</type>
            <size>2167</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAzMTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Mjk3ZDE0MTlkY2Q4ZmMyOGI4ZjBkMWQ2OGUyNWEzYzY5YTg5ZjQ0Li5iMzc3Njg3NTNmOTVlZTRm
YmRhNmI5ODNmOTZiNjhjZjNjYzVmMTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTMs
NiArMywyMCBAQAogICAgICAgICBSZW1vdmUgdGhlIGR1cGxpY2F0ZWQgY29kZSBmcm9tIEFTQ0lJ
Q1R5cGUuaAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQ3NzEKIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
c2UgaXNBU0NJSURpZ2l0KCkgYW5kIGlzQVNDSUlBbHBoYSgpIGluc3RlYWQgb2YgY29weWluZyB0
aGUgY29kZS4KKworICAgICAgICAqIHd0Zi9BU0NJSUNUeXBlLmg6CisgICAgICAgIChXVEY6Omlz
QVNDSUlEaWdpdCk6CisgICAgICAgIChXVEY6OmlzQVNDSUlBbHBoYW51bWVyaWMpOgorICAgICAg
ICAoV1RGOjppc0FTQ0lJSGV4RGlnaXQpOgorCisyMDExLTEyLTE2ICBCZW5qYW1pbiBQb3VsYWlu
ICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSB0aGUgZHVwbGljYXRlZCBj
b2RlIGZyb20gQVNDSUlDVHlwZS5oCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NDc3MQorCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcu
CiAKICAgICAgICAgVGhlIGZ1bmN0aW9ucyB3ZXJlIHNoYXJpbmcgc2ltaWxhciBjb2RlIGFuZCB3
ZXJlIGRlZmluZWQgZm9yIHRoZSB2YXJpb3VzIGlucHV0IHR5cGVzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9BU0NJSUNUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0FTQ0lJQ1R5cGUuaAppbmRleCA0NDUzOTg4MzJkMTc3NjVlNzIzZDg3NDAxN2EzZjQy
NmVkZmY4MWFmLi5mMTE1N2MzMWZlODJlNjFmODYwYzRkNWFmOTliZGRjMGQwM2JhZDNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0FTQ0lJQ1R5cGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL0FTQ0lJQ1R5cGUuaApAQCAtNTMsMTkgKzUzLDE5IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9vbCBpc0FTQ0lJQWxwaGEoQ2hhclR5
cGUgYykKICAgICByZXR1cm4gKGMgfCAweDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAneic7
CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIENoYXJUeXBlPiBpbmxpbmUgYm9vbCBpc0FTQ0lJQWxw
aGFudW1lcmljKENoYXJUeXBlIGMpCit0ZW1wbGF0ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5l
IGJvb2wgaXNBU0NJSURpZ2l0KENoYXJUeXBlIGMpCiB7Ci0gICAgcmV0dXJuIChjID49ICcwJyAm
JiBjIDw9ICc5JykgfHwgKChjIHwgMHgyMCkgPj0gJ2EnICYmIChjIHwgMHgyMCkgPD0gJ3onKTsK
KyAgICByZXR1cm4gKGMgPj0gJzAnKSAmJiAoYyA8PSAnOScpOwogfQogCi10ZW1wbGF0ZTx0eXBl
bmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSURpZ2l0KENoYXJUeXBlIGMpCit0ZW1w
bGF0ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSUFscGhhbnVtZXJpYyhD
aGFyVHlwZSBjKQogewotICAgIHJldHVybiAoYyA+PSAnMCcpICYgKGMgPD0gJzknKTsKKyAgICBy
ZXR1cm4gaXNBU0NJSURpZ2l0KGMpIHx8IGlzQVNDSUlBbHBoYShjKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgQ2hhclR5cGU+IGlubGluZSBib29sIGlzQVNDSUlIZXhEaWdpdChDaGFyVHlwZSBj
KQogewotICAgIHJldHVybiAoYyA+PSAnMCcgJiYgYyA8PSAnOScpIHx8ICgoYyB8IDB4MjApID49
ICdhJyAmJiAoYyB8IDB4MjApIDw9ICdmJyk7CisgICAgcmV0dXJuIGlzQVNDSUlEaWdpdChjKSB8
fCAoKGMgfCAweDIwKSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAnZicpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBDaGFyVHlwZT4gaW5saW5lIGJvb2wgaXNBU0NJSUxvd2VyKENoYXJUeXBlIGMp
Cg==
</data>
<flag name="review"
          id="119819"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>