<?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>118410</bug_id>
          
          <creation_ts>2013-07-05 04:45:22 -0700</creation_ts>
          <short_desc>Segmentation fault occurred when ICU data library doesn&apos;t embed the expected encoding</short_desc>
          <delta_ts>2013-07-10 14:16:04 -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>Unspecified</op_sys>
          <bug_status>UNCONFIRMED</bug_status>
          <resolution></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>
          <dependson>118476</dependson>
          <blocked>110211</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Benjamin Dupont">bedupont</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jbriance</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>906368</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-05 04:45:22 -0700</bug_when>
    <thetext>With a full ICU data library (all checked in http://apps.icu-project.org/datacustom/, 22MB) there isn&apos;t the issue.

With a light ICU data library (all unchecked in http://apps.icu-project.org/datacustom/, 327KB) if you browse an HTML page with a specific encoding (e.g Japanese web site) there is a segmentation fault:
#0  0x0000000000000000 in ?? ()
#1  0x00007ffff5c78f7e in WebCore::newTextCodec(WebCore::TextEncoding const&amp;) () from libQt5WebKit.so.5
#2  0x00007ffff5b3f75e in WebCore::TextResourceDecoder::decode(char const*, unsigned long) () from libQt5WebKit.so.5
#3  0x00007ffff5ad5239 in WebCore::CachedCSSStyleSheet::data(WTF::PassRefPtr&lt;WebCore::ResourceBuffer&gt;, bool) () from libQt5WebKit.so.5
#4  0x00007ffff5b3cfef in WebCore::SubresourceLoader::didFinishLoading(double) () from libQt5WebKit.so.5
#5  0x00007ffff5e9e6b2 in WebCore::QNetworkReplyHandler::finish() () from libQt5WebKit.so.5
#6  0x00007ffff5e9cd6f in WebCore::QNetworkReplyHandlerCallQueue::flush() () from libQt5WebKit.so.5

The problem is into the newTextCodec function from Source/WebCore/platform/text/TextEncodingRegistry.cpp. The textCodecMap hash map doesn&apos;t contain a factory for the Shift_JIS encoding thus factory.function is null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906371</commentid>
    <comment_count>1</comment_count>
      <attachid>206139</attachid>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-05 04:57:03 -0700</bug_when>
    <thetext>Created attachment 206139
Segmentation fault occurred when ICU data library doesn&apos;t embed the expected encoding.

The problem is into the newTextCodec function from Source/WebCore/platform/text/TextEncodingRegistry.cpp. The textCodecMap hash map doesn&apos;t contain a factory for the Shift_JIS encoding thus factory.function is null. 
In this case, the first factory in the hash map is used. It&apos;s not a perfect solution, it&apos;s just to avoid the segmentation fault.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906378</commentid>
    <comment_count>2</comment_count>
      <attachid>206141</attachid>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-05 05:49:24 -0700</bug_when>
    <thetext>Created attachment 206141
Use latin1 by default</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906395</commentid>
    <comment_count>3</comment_count>
      <attachid>206141</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-07-05 07:41:04 -0700</bug_when>
    <thetext>Comment on attachment 206141
Use latin1 by default

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906403</commentid>
    <comment_count>4</comment_count>
      <attachid>206141</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-05 08:03:10 -0700</bug_when>
    <thetext>Comment on attachment 206141
Use latin1 by default

Clearing flags on attachment: 206141

Committed r152416: &lt;http://trac.webkit.org/changeset/152416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906404</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-05 08:03:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906526</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-05 20:02:37 -0700</bug_when>
    <thetext>I think that this was the wrong fix. If your underlying library doesn&apos;t support a certain encoding, it simply shouldn&apos;t be in the map. 

What you did was make the code less stringent and more confusing for everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906563</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2013-07-06 03:36:38 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think that this was the wrong fix. If your underlying library doesn&apos;t support a certain encoding, it simply shouldn&apos;t be in the map. 
&gt; 
What map? The encodings come from the encoding detection code. The problem here is that ICU has been build without some encodings that WebKit assumes are there, and crashes on if they are not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906855</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-08 10:03:53 -0700</bug_when>
    <thetext>&gt; What map?

textCodecMap, obviously. Are there any other maps involved in this patch?

&gt; The encodings come from the encoding detection code. The problem here is that ICU has been build without some encodings that WebKit assumes are there, and crashes on if they are not.

This is the root cause of the crash. WebKit shouldn&apos;t assume that, and it certainly shouldn&apos;t silently use latin-1 when thinking that it uses a different encoding. Doing this is extremely sloppy, and could even cause security vulnerabilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906860</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-08 10:05:15 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 118476</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906864</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-08 10:10:34 -0700</bug_when>
    <thetext>One thing that may be non-obvious here is that TextEncoding::name() is not just some arbitrary string, it&apos;s always an encoding name previously registered by text encoding machinery. Refusing to provide a TextCodecFactory function while registering a codec is where the bad behavior is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907111</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-09 07:24:57 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; One thing that may be non-obvious here is that TextEncoding::name() is not just some arbitrary string, it&apos;s always an encoding name previously registered by text encoding machinery. Refusing to provide a TextCodecFactory function while registering a codec is where the bad behavior is.

In this case the problem is due to http://trac.webkit.org/changeset/64820.
In WebCore/platform/text/TextCodecICU.cpp into TextCodecICU::registerEncodingNames function, you add an alias for shift-jis (and others) even if ICU don&apos;t provide this encoding.

How can we fix that? I see some dirty solution with &apos;if&apos; but I&apos;m wondering if the previous &quot;fix&quot; was not better for performance purpose.

What do you think about that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907139</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-09 09:23:08 -0700</bug_when>
    <thetext>Something like #if USE(REDUCED_ICU) would be fine. Or alternatively, we can check for codec existence when adding to the table, as opposed to when getting from it.

However, I&apos;m surprised that it&apos;s useful for anyone to ship without Shift_JIS, this is a very common encoding.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907191</commentid>
    <comment_count>13</comment_count>
    <who name="Julien Brianceau">jbriance</who>
    <bug_when>2013-07-09 10:57:02 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; However, I&apos;m surprised that it&apos;s useful for anyone to ship without Shift_JIS, this is a very common encoding.
Embedded systems with very limited flash: we can&apos;t afford a 20MB ICU library (which is larger that the webkit library itself).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907371</commentid>
    <comment_count>14</comment_count>
      <attachid>206390</attachid>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-10 07:43:49 -0700</bug_when>
    <thetext>Created attachment 206390
Add aliases only for known encodings.

If you don&apos;t want use latin1 by default thus we must add aliases only for known encodings.
In WebCore/platform/text/TextCodecICU.cpp into registerEncodingNames function I added this check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907377</commentid>
    <comment_count>15</comment_count>
      <attachid>206390</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-10 08:43:16 -0700</bug_when>
    <thetext>Comment on attachment 206390
Add aliases only for known encodings.

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests (OOPS!).

The patch cannot be landed with this line, a pre-commit hook will block it.

&gt; Source/WebCore/platform/text/TextCodecICU.cpp:-72
&gt; -    registrar(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;);

I don&apos;t see how moving this line down can work. addToTextEncodingNameMap() gets an atomic name for encoding name, so if ISO-8859-8-I is registered after enumerating ICU aliases, it will just map to ISO-8859-8. That is exactly what we are trying to avoid.

&gt; Source/WebCore/platform/text/TextCodecICU.cpp:69
&gt; +    WTF::HashMap&lt;const char*, char&gt;knownEncodings;

There shouldn&apos;t be a WTF prefix when using WTF names. Also, a missing space before knownEncodings.

Didn&apos;t you mean to use HashSet?

&gt; Source/WebCore/platform/text/TextCodecICU.cpp:138
&gt; +    if (knownEncodings.contains(&quot;macintosh&quot;)) {

This is not the right check. Since registrar uses an atomic name for standard name, it was fine to call it with any alias as second argument. But this check will fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907390</commentid>
    <comment_count>16</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-10 09:53:28 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 206390 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206390&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        No new tests (OOPS!).
&gt; 
&gt; The patch cannot be landed with this line, a pre-commit hook will block it.
Yes, I saw I forgot this line just after I have uploaded the patch...

&gt; &gt; Source/WebCore/platform/text/TextCodecICU.cpp:-72
&gt; &gt; -    registrar(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;);
&gt; 
&gt; I don&apos;t see how moving this line down can work. addToTextEncodingNameMap() gets an atomic name for encoding name, so if ISO-8859-8-I is registered after enumerating ICU aliases, it will just map to ISO-8859-8. That is exactly what we are trying to avoid.
I didn&apos;t understand the existing comment and I can&apos;t match your explanation with the current implementation.
e.g If we add first 
1) ISO-8859-8:
registrar(&quot;ISO-8859-8&quot;, &quot;ISO-8859-8&quot;) -&gt; addToTextEncodingNameMap
a) isUndesiredAlias -&gt; no
b) textEncodingNameMap-&gt;get(&quot;ISO-8859-8&quot;) -&gt; 0 -&gt; atomicName = &quot;ISO-8859-8&quot;
c) textEncodingNameMap-&gt;add(&quot;ISO-8859-8&quot;, &quot;ISO-8859-8&quot;)

2) ISO-8859-8-I:
registrar(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;) -&gt; addToTextEncodingNameMap
a) isUndesiredAlias -&gt; no
b) textEncodingNameMap-&gt;get(&quot;ISO-8859-8-I&quot;) -&gt; 0 -&gt; atomicName = &quot;ISO-8859-8-I&quot;
c) textEncodingNameMap-&gt;add(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;)

Thus after these 2 iterations my understanding is that the hash map should contain both encodings.

Thanks in advance for your explanations.

&gt; 
&gt; &gt; Source/WebCore/platform/text/TextCodecICU.cpp:69
&gt; &gt; +    WTF::HashMap&lt;const char*, char&gt;knownEncodings;
&gt; 
&gt; There shouldn&apos;t be a WTF prefix when using WTF names. Also, a missing space before knownEncodings.
&gt; 
&gt; Didn&apos;t you mean to use HashSet?
&gt; 
Oops, yes I used HashSet but It seems I had a problem during my merge. :)

&gt; &gt; Source/WebCore/platform/text/TextCodecICU.cpp:138
&gt; &gt; +    if (knownEncodings.contains(&quot;macintosh&quot;)) {
&gt; 
&gt; This is not the right check. Since registrar uses an atomic name for standard name, it was fine to call it with any alias as second argument. But this check will fail.
I think with the previous point explanation it will be clearer for this one also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907397</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-10 10:31:51 -0700</bug_when>
    <thetext>&gt; (In reply to comment #15)
&gt; 1) ISO-8859-8:
&gt; registrar(&quot;ISO-8859-8&quot;, &quot;ISO-8859-8&quot;) -&gt; addToTextEncodingNameMap
&gt; a) isUndesiredAlias -&gt; no
&gt; b) textEncodingNameMap-&gt;get(&quot;ISO-8859-8&quot;) -&gt; 0 -&gt; atomicName = &quot;ISO-8859-8&quot;
&gt; c) textEncodingNameMap-&gt;add(&quot;ISO-8859-8&quot;, &quot;ISO-8859-8&quot;)

After this step, the code iterates and registers all ICU aliases for ISO-8859-8, which includes ISO-8859-8-I (see &lt;http://demo.icu-project.org/icu-bin/convexp?s=IANA&amp;s=MIME&gt;).

&gt; 2) ISO-8859-8-I:
&gt; registrar(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;) -&gt; addToTextEncodingNameMap
&gt; a) isUndesiredAlias -&gt; no
&gt; b) textEncodingNameMap-&gt;get(&quot;ISO-8859-8-I&quot;) -&gt; 0 -&gt; atomicName = &quot;ISO-8859-8-I&quot;

… so textEncodingNameMap-&gt;get(&quot;ISO-8859-8-I&quot;) will return &quot;ISO-8859-8&quot;.

&gt; c) textEncodingNameMap-&gt;add(&quot;ISO-8859-8-I&quot;, &quot;ISO-8859-8-I&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907398</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-10 10:33:26 -0700</bug_when>
    <thetext>Ultimately, we shouldn&apos;t fight with ICU encoding tables, but hardcode our own (see also bug 118505 comment 4).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907417</commentid>
    <comment_count>19</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-10 11:23:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; Ultimately, we shouldn&apos;t fight with ICU encoding tables, but hardcode our own (see also bug 118505 comment 4).
Thanks for explanation.

Yes I also think it would be better. How was the table built before ICU?

Nevertheless, isn&apos;t possible to keep the first patch to avoid the segmentation fault issue during the new table development?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907420</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-10 11:40:03 -0700</bug_when>
    <thetext>I now think that an ifdef would be the best short-term solution (possibly even on a branch if you have one). Making cross-platform code less robust would be unfortunate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907445</commentid>
    <comment_count>21</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-10 13:25:55 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; I now think that an ifdef would be the best short-term solution (possibly even on a branch if you have one). Making cross-platform code less robust would be unfortunate.
An ifdef around this workaround (default latin1 if there isn&apos;t any function attached to the factory)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907446</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-07-10 13:28:29 -0700</bug_when>
    <thetext>I would much prefer an ifdef around adding unsupported encodings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907463</commentid>
    <comment_count>23</comment_count>
    <who name="Benjamin Dupont">bedupont</who>
    <bug_when>2013-07-10 14:16:04 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; I would much prefer an ifdef around adding unsupported encodings.
In my opinion, I think the &quot;default latin1&quot; workaround (around with a #ifdef ICU_LIGHT) seems to be the most flexible way to use a custom ICU data library rather than to have #ifdef JAPANESE_SUPPORTED #ifdef CHINESE_SUPPORTED,... Furthermore, the final text rendering is the same. :)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206139</attachid>
            <date>2013-07-05 04:57:03 -0700</date>
            <delta_ts>2013-07-05 05:49:24 -0700</delta_ts>
            <desc>Segmentation fault occurred when ICU data library doesn&apos;t embed the expected encoding.</desc>
            <filename>patch_118410.patch</filename>
            <type>text/plain</type>
            <size>1366</size>
            <attacher name="Benjamin Dupont">bedupont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjQxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA3LTA1ICBCZW5qYW1p
biBEdXBvbnQgICA8YmR1cG9udEBuZHMuY29tPgorCisgICAgICAgIFNlZ21lbnRhdGlvbiBmYXVs
dCBvY2N1cnJlZCB3aGVuIElDVSBkYXRhIGxpYnJhcnkgZG9lc24ndCBlbWJlZCB0aGUgZXhwZWN0
ZWQgZW5jb2RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTg0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bmV3VGV4dENvZGVjKToKKwogMjAxMy0wNy0wNSAgRGVuaXMgTm9taXlhbWEgIDxk
Lm5vbWl5YW1hQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIGZhc3QvdGV4dC9mb250LWtl
cm5pbmcuaHRtbCBmYWlscwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdSZWdpc3RyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDE1MjQxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTMsNiArMzEzLDEyIEBAIFBhc3NPd25QdHI8VGV4dENvZGVjPiBuZXdU
ZXh0Q29kZWMoY29uc3QKIAogICAgIEFTU0VSVCh0ZXh0Q29kZWNNYXApOwogICAgIFRleHRDb2Rl
Y0ZhY3RvcnkgZmFjdG9yeSA9IHRleHRDb2RlY01hcC0+Z2V0KGVuY29kaW5nLm5hbWUoKSk7CisK
KyAgICBpZiAoZmFjdG9yeS5mdW5jdGlvbikKKyAgICAgICAgcmV0dXJuIGZhY3RvcnkuZnVuY3Rp
b24oZW5jb2RpbmcsIGZhY3RvcnkuYWRkaXRpb25hbERhdGEpOworCisgICAgVGV4dENvZGVjTWFw
Ojpjb25zdF9pdGVyYXRvciBpdCA9IHRleHRDb2RlY01hcC0+YmVnaW4oKTsKKyAgICBmYWN0b3J5
ID0gaXQtPnZhbHVlOwogICAgIEFTU0VSVChmYWN0b3J5LmZ1bmN0aW9uKTsKICAgICByZXR1cm4g
ZmFjdG9yeS5mdW5jdGlvbihlbmNvZGluZywgZmFjdG9yeS5hZGRpdGlvbmFsRGF0YSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206141</attachid>
            <date>2013-07-05 05:49:24 -0700</date>
            <delta_ts>2013-07-10 07:43:49 -0700</delta_ts>
            <desc>Use latin1 by default</desc>
            <filename>patch_118410_2.patch</filename>
            <type>text/plain</type>
            <size>1496</size>
            <attacher name="Benjamin Dupont">bedupont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjQxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTA3LTA1ICBCZW5qYW1p
biBEdXBvbnQgICA8YmR1cG9udEBuZHMuY29tPgorCisgICAgICAgIFNlZ21lbnRhdGlvbiBmYXVs
dCBvY2N1cnJlZCB3aGVuIElDVSBkYXRhIGxpYnJhcnkgZG9lc24ndCBlbWJlZCB0aGUgZXhwZWN0
ZWQgZW5jb2RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTg0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6bmV3VGV4dENvZGVjKToKKwogMjAxMy0wNy0wNSAgRGVuaXMgTm9taXlhbWEgIDxk
Lm5vbWl5YW1hQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtHVEtdIGZhc3QvdGV4dC9mb250LWtl
cm5pbmcuaHRtbCBmYWlscwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0
RW5jb2RpbmdSZWdpc3RyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAJKHJldmlzaW9uIDE1MjQxNSkKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMTAsOSArMzEwLDE0IEBAIHN0YXRpYyB2b2lkIGV4dGVuZFRleHRDb2Rl
Y01hcHMoKQogUGFzc093blB0cjxUZXh0Q29kZWM+IG5ld1RleHRDb2RlYyhjb25zdCBUZXh0RW5j
b2RpbmcmIGVuY29kaW5nKQogewogICAgIE11dGV4TG9ja2VyIGxvY2soZW5jb2RpbmdSZWdpc3Ry
eU11dGV4KCkpOwotCiAgICAgQVNTRVJUKHRleHRDb2RlY01hcCk7CiAgICAgVGV4dENvZGVjRmFj
dG9yeSBmYWN0b3J5ID0gdGV4dENvZGVjTWFwLT5nZXQoZW5jb2RpbmcubmFtZSgpKTsKKworICAg
IGlmIChmYWN0b3J5LmZ1bmN0aW9uKQorICAgICAgICByZXR1cm4gZmFjdG9yeS5mdW5jdGlvbihl
bmNvZGluZywgZmFjdG9yeS5hZGRpdGlvbmFsRGF0YSk7CisKKyAgICAvLyBJZiBlbmNvZGluZyBp
cyB1bmF2YWlsYWJsZSwgd2UgdXNlIExhdGluMSBlbmNvZGluZy4KKyAgICBmYWN0b3J5ID0gdGV4
dENvZGVjTWFwLT5nZXQoIklTTy04ODU5LTEiKTsKICAgICBBU1NFUlQoZmFjdG9yeS5mdW5jdGlv
bik7CiAgICAgcmV0dXJuIGZhY3RvcnkuZnVuY3Rpb24oZW5jb2RpbmcsIGZhY3RvcnkuYWRkaXRp
b25hbERhdGEpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206390</attachid>
            <date>2013-07-10 07:43:49 -0700</date>
            <delta_ts>2013-07-10 08:43:16 -0700</delta_ts>
            <desc>Add aliases only for known encodings.</desc>
            <filename>patch_118410_3.patch</filename>
            <type>text/plain</type>
            <size>9998</size>
            <attacher name="Benjamin Dupont">bedupont</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjUzNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEzLTA3LTEwICBCZW5qYW1p
biBEdXBvbnQgICA8YmR1cG9udEBuZHMuY29tPgorCisgICAgICAgIFNlZ21lbnRhdGlvbiBmYXVs
dCBvY2N1cnJlZCB3aGVuIElDVSBkYXRhIGxpYnJhcnkgZG9lc24ndCBlbWJlZCB0aGUgZXhwZWN0
ZWQgZW5jb2RpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTg0MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4
dENvZGVjSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRDb2RlY0lDVTo6cmVnaXN0ZXJF
bmNvZGluZ05hbWVzKToKKwogMjAxMy0wNy0xMCAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8uY29y
cmVpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFJlbW92ZSB0aGUgbWVzaFR5cGUgZnJvbSBD
b29yZGluYXRlZEN1c3RvbUZpbHRlck9wZXJhdGlvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAkocmV2aXNpb24gMTUyNDE1KQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8dW5pY29kZS91Y252Lmg+CiAjaW5jbHVkZSA8
dW5pY29kZS91Y252X2NiLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgpAQCAtNjUs
MTEgKzY2LDcgQEAgUGFzc093blB0cjxUZXh0Q29kZWM+IFRleHRDb2RlY0lDVTo6Y3JlYQogCiB2
b2lkIFRleHRDb2RlY0lDVTo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzKEVuY29kaW5nTmFtZVJlZ2lz
dHJhciByZWdpc3RyYXIpCiB7Ci0gICAgLy8gV2UgcmVnaXN0ZXIgSGVicmV3IHdpdGggbG9naWNh
bCBvcmRlcmluZyB1c2luZyBhIHNlcGFyYXRlIG5hbWUuCi0gICAgLy8gT3RoZXJ3aXNlLCB0aGlz
IHdvdWxkIHNoYXJlIHRoZSBzYW1lIGNhbm9uaWNhbCBuYW1lIGFzIHRoZQotICAgIC8vIHZpc3Vh
bCBvcmRlcmluZyBjYXNlLCBhbmQgdGhlbiBUZXh0RW5jb2RpbmcgY291bGQgbm90IHRlbGwgdGhl
bQotICAgIC8vIGFwYXJ0OyBJQ1UgdHJlYXRzIHRoZXNlIG5hbWVzIGFzIHN5bm9ueW1zLgotICAg
IHJlZ2lzdHJhcigiSVNPLTg4NTktOC1JIiwgIklTTy04ODU5LTgtSSIpOworICAgIFdURjo6SGFz
aE1hcDxjb25zdCBjaGFyKiwgY2hhcj5rbm93bkVuY29kaW5nczsKIAogICAgIGludDMyX3QgbnVt
Q29udmVydGVycyA9IHVjbnZfY291bnRBdmFpbGFibGUoKTsKICAgICBmb3IgKGludDMyX3QgaSA9
IDA7IGkgPCBudW1Db252ZXJ0ZXJzOyArK2kpIHsKQEAgLTEwNiw2ICsxMDMsNyBAQCB2b2lkIFRl
eHRDb2RlY0lDVTo6cmVnaXN0ZXJFbmNvZGluZ05hbWVzCiAgICAgICAgICAgICB3ZWJTdGFuZGFy
ZE5hbWUgPSAid2luZG93cy04NzQiOwogCiAgICAgICAgIHJlZ2lzdHJhcih3ZWJTdGFuZGFyZE5h
bWUsIHdlYlN0YW5kYXJkTmFtZSk7CisgICAgICAgIGtub3duRW5jb2RpbmdzLmFkZCh3ZWJTdGFu
ZGFyZE5hbWUsIDApOwogCiAgICAgICAgIHVpbnQxNl90IG51bUFsaWFzZXMgPSB1Y252X2NvdW50
QWxpYXNlcyhjYW5vbmljYWxDb252ZXJ0ZXJOYW1lLCAmZXJyb3IpOwogICAgICAgICBBU1NFUlQo
VV9TVUNDRVNTKGVycm9yKSk7CkBAIC0xMTksNjkgKzExNywxNDkgQEAgdm9pZCBUZXh0Q29kZWNJ
Q1U6OnJlZ2lzdGVyRW5jb2RpbmdOYW1lcwogICAgICAgICAgICAgfQogICAgIH0KIAotICAgIC8v
IEFkZGl0aW9uYWwgYWxpYXNlcy4KLSAgICAvLyBtYWNyb21hbiBpcyBwcmVzZW50IGluIG1vZGVy
biB2ZXJzaW9ucyBvZiBJQ1UsIGJ1dCBub3QgaW4gSUNVIDMuMiAoc2hpcHBlZCB3aXRoIE1hYyBP
UyBYIDEwLjQpLgorICAgIC8vIEJlbG93IHdlIHJlZ2lzdGVyIHNvbWUgc3BlY2lmaWNzIGFsaWFz
ZXM6CisgICAgLy8gMSkgV2UgcmVnaXN0ZXIgSGVicmV3IChJU08tODg1OS04LUkpIHdpdGggbG9n
aWNhbCBvcmRlcmluZyB1c2luZyBhIHNlcGFyYXRlIG5hbWUuCisgICAgLy8gT3RoZXJ3aXNlLCB0
aGlzIHdvdWxkIHNoYXJlIHRoZSBzYW1lIGNhbm9uaWNhbCBuYW1lIGFzIHRoZQorICAgIC8vIHZp
c3VhbCBvcmRlcmluZyBjYXNlLCBhbmQgdGhlbiBUZXh0RW5jb2RpbmcgY291bGQgbm90IHRlbGwg
dGhlbQorICAgIC8vIGFwYXJ0OyBJQ1UgdHJlYXRzIHRoZXNlIG5hbWVzIGFzIHN5bm9ueW1zLgor
ICAgIC8vIDIpICdtYWNyb21hbicgaXMgcHJlc2VudCBpbiBtb2Rlcm4gdmVyc2lvbnMgb2YgSUNV
LAorICAgIC8vIGJ1dCBub3QgaW4gSUNVIDMuMiAoc2hpcHBlZCB3aXRoIE1hYyBPUyBYIDEwLjQp
LgogICAgIC8vIEZJWE1FOiBEbyBhbnkgcG9ydHMgc3RpbGwgdXNlIHN1Y2ggb2xkIHZlcnNpb25z
PwotICAgIHJlZ2lzdHJhcigibWFjcm9tYW4iLCAibWFjaW50b3NoIik7Ci0KLSAgICAvLyBBZGRp
dGlvbmFsIGFsaWFzZXMgdGhhdCBoaXN0b3JpY2FsbHkgd2VyZSBwcmVzZW50IGluIHRoZSBlbmNv
ZGluZworICAgIC8vIDMpICdkb3MtNzIwJyBhbmQgJ2ppczcnIGFsaWFzZXMgYXJlIHByZXNlbnQg
aW4gbW9kZXJuIHZlcnNpb25zIG9mIElDVSwKKyAgICAvLyBidXQgdXNlIGRpZmZlcmVudCBjb2Rl
Y3MsIGFuZCBoYXZlIG5vIHN0YW5kYXJkIG5hbWVzLgorICAgIC8vIFRoZXkgYXJlIG5vdCBwcmVz
ZW50IGluIElDVSAzLjIuCisgICAgLy8gNCkgQWRkaXRpb25hbCBhbGlhc2VzIHRoYXQgaGlzdG9y
aWNhbGx5IHdlcmUgcHJlc2VudCBpbiB0aGUgZW5jb2RpbmcKICAgICAvLyB0YWJsZSBpbiBXZWJL
aXQgb24gTWFjaW50b3NoIHRoYXQgZG9uJ3Qgc2VlbSB0byBiZSBwcmVzZW50IGluIElDVS4KICAg
ICAvLyBQZXJoYXBzIHdlIGNhbiBwcm92ZSB0aGVzZSBhcmUgbm90IHVzZWQgb24gdGhlIHdlYiBh
bmQgcmVtb3ZlIHRoZW0uCiAgICAgLy8gT3IgcGVyaGFwcyB3ZSBjYW4gZ2V0IHRoZW0gYWRkZWQg
dG8gSUNVLgotICAgIHJlZ2lzdHJhcigieC1tYWMtcm9tYW4iLCAibWFjaW50b3NoIik7Ci0gICAg
cmVnaXN0cmFyKCJtYWNjeXJpbGxpYyIsICJ4LW1hYy1jeXJpbGxpYyIpOwotICAgIHJlZ2lzdHJh
cigieC1tYWMtdWtyYWluaWFuIiwgIngtbWFjLWN5cmlsbGljIik7Ci0gICAgcmVnaXN0cmFyKCJj
bi1iaWc1IiwgIkJpZzUiKTsKLSAgICByZWdpc3RyYXIoIngteC1iaWc1IiwgIkJpZzUiKTsKLSAg
ICByZWdpc3RyYXIoImNuLWdiIiwgIkdCSyIpOwotICAgIHJlZ2lzdHJhcigiY3NnYjIzMTI4MCIs
ICJHQksiKTsKLSAgICByZWdpc3RyYXIoIngtZXVjLWNuIiwgIkdCSyIpOwotICAgIHJlZ2lzdHJh
cigieC1nYmsiLCAiR0JLIik7Ci0gICAgcmVnaXN0cmFyKCJjc0lTTzg4NTk4SSIsICJJU08tODg1
OS04LUkiKTsKLSAgICByZWdpc3RyYXIoImtvaSIsICJLT0k4LVIiKTsKLSAgICByZWdpc3RyYXIo
ImxvZ2ljYWwiLCAiSVNPLTg4NTktOC1JIik7Ci0gICAgcmVnaXN0cmFyKCJ2aXN1YWwiLCAiSVNP
LTg4NTktOCIpOwotICAgIHJlZ2lzdHJhcigid2luYXJhYmljIiwgIndpbmRvd3MtMTI1NiIpOwot
ICAgIHJlZ2lzdHJhcigid2luYmFsdGljIiwgIndpbmRvd3MtMTI1NyIpOwotICAgIHJlZ2lzdHJh
cigid2luY3lyaWxsaWMiLCAid2luZG93cy0xMjUxIik7Ci0gICAgcmVnaXN0cmFyKCJpc28tODg1
OS0xMSIsICJ3aW5kb3dzLTg3NCIpOwotICAgIHJlZ2lzdHJhcigiaXNvODg1OS0xMSIsICJ3aW5k
b3dzLTg3NCIpOwotICAgIHJlZ2lzdHJhcigiZG9zLTg3NCIsICJ3aW5kb3dzLTg3NCIpOwotICAg
IHJlZ2lzdHJhcigid2luZ3JlZWsiLCAid2luZG93cy0xMjUzIik7Ci0gICAgcmVnaXN0cmFyKCJ3
aW5oZWJyZXciLCAid2luZG93cy0xMjU1Iik7Ci0gICAgcmVnaXN0cmFyKCJ3aW5sYXRpbjIiLCAi
d2luZG93cy0xMjUwIik7Ci0gICAgcmVnaXN0cmFyKCJ3aW50dXJraXNoIiwgIndpbmRvd3MtMTI1
NCIpOwotICAgIHJlZ2lzdHJhcigid2ludmlldG5hbWVzZSIsICJ3aW5kb3dzLTEyNTgiKTsKLSAg
ICByZWdpc3RyYXIoIngtY3AxMjUwIiwgIndpbmRvd3MtMTI1MCIpOwotICAgIHJlZ2lzdHJhcigi
eC1jcDEyNTEiLCAid2luZG93cy0xMjUxIik7Ci0gICAgcmVnaXN0cmFyKCJ4LWV1YyIsICJFVUMt
SlAiKTsKLSAgICByZWdpc3RyYXIoIngtd2luZG93cy05NDkiLCAid2luZG93cy05NDkiKTsKLSAg
ICByZWdpc3RyYXIoIktTQzU2MDEiLCAid2luZG93cy05NDkiKTsKLSAgICByZWdpc3RyYXIoIngt
dWhjIiwgIndpbmRvd3MtOTQ5Iik7Ci0gICAgcmVnaXN0cmFyKCJzaGlmdC1qaXMiLCAiU2hpZnRf
SklTIik7Ci0KLSAgICAvLyBUaGVzZSBhbGlhc2VzIGFyZSBwcmVzZW50IGluIG1vZGVybiB2ZXJz
aW9ucyBvZiBJQ1UsIGJ1dCB1c2UgZGlmZmVyZW50IGNvZGVjcywgYW5kIGhhdmUgbm8gc3RhbmRh
cmQgbmFtZXMuCi0gICAgLy8gVGhleSBhcmUgbm90IHByZXNlbnQgaW4gSUNVIDMuMi4KLSAgICBy
ZWdpc3RyYXIoImRvcy03MjAiLCAiY3A4NjQiKTsKLSAgICByZWdpc3RyYXIoImppczciLCAiSVNP
LTIwMjItSlAiKTsKLQotICAgIC8vIEFsdGVybmF0aXZlIHNwZWxsaW5nIG9mIElTTyBlbmNvZGlu
ZyBuYW1lcy4KLSAgICByZWdpc3RyYXIoIklTTzg4NTktMSIsICJJU08tODg1OS0xIik7Ci0gICAg
cmVnaXN0cmFyKCJJU084ODU5LTIiLCAiSVNPLTg4NTktMiIpOwotICAgIHJlZ2lzdHJhcigiSVNP
ODg1OS0zIiwgIklTTy04ODU5LTMiKTsKLSAgICByZWdpc3RyYXIoIklTTzg4NTktNCIsICJJU08t
ODg1OS00Iik7Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5LTUiLCAiSVNPLTg4NTktNSIpOwotICAg
IHJlZ2lzdHJhcigiSVNPODg1OS02IiwgIklTTy04ODU5LTYiKTsKLSAgICByZWdpc3RyYXIoIklT
Tzg4NTktNyIsICJJU08tODg1OS03Iik7Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5LTgiLCAiSVNP
LTg4NTktOCIpOwotICAgIHJlZ2lzdHJhcigiSVNPODg1OS04LUkiLCAiSVNPLTg4NTktOC1JIik7
Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5LTkiLCAid2luZG93cy0xMjU0Iik7Ci0gICAgcmVnaXN0
cmFyKCJJU084ODU5LTEwIiwgIklTTy04ODU5LTEwIik7Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5
LTEzIiwgIklTTy04ODU5LTEzIik7Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5LTE0IiwgIklTTy04
ODU5LTE0Iik7Ci0gICAgcmVnaXN0cmFyKCJJU084ODU5LTE1IiwgIklTTy04ODU5LTE1Iik7Cisg
ICAgLy8gNSkgQWx0ZXJuYXRpdmUgc3BlbGxpbmcgb2YgSVNPIGVuY29kaW5nIG5hbWVzLgogICAg
IC8vIE5vdCByZWdpc3RlcmluZyBJU084ODU5LTE2LCBiZWNhdXNlIEZpcmVmb3ggKGFzIG9mIHZl
cnNpb24gMy42LjYpIGRvZXNuJ3Qga25vdyB0aGlzIHBhcnRpY3VsYXIgYWxpYXMsCiAgICAgLy8g
YW5kIGJlY2F1c2Ugb2xkZXIgdmVyc2lvbnMgb2YgSUNVIGRvbid0IHN1cHBvcnQgSVNPLTg4NTkt
MTYgZW5jb2RpbmcgYXQgYWxsLgorICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygibWFj
aW50b3NoIikpIHsKKyAgICAgICAgcmVnaXN0cmFyKCJtYWNyb21hbiIsICJtYWNpbnRvc2giKTsK
KyAgICAgICAgcmVnaXN0cmFyKCJ4LW1hYy1yb21hbiIsICJtYWNpbnRvc2giKTsKKyAgICB9CisK
KyAgICBpZiAoa25vd25FbmNvZGluZ3MuY29udGFpbnMoIngtbWFjLWN5cmlsbGljIikpIHsKKyAg
ICAgICAgcmVnaXN0cmFyKCJtYWNjeXJpbGxpYyIsICJ4LW1hYy1jeXJpbGxpYyIpOworICAgICAg
ICByZWdpc3RyYXIoIngtbWFjLXVrcmFpbmlhbiIsICJ4LW1hYy1jeXJpbGxpYyIpOworICAgIH0K
KworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiQmlnNSIpKSB7CisgICAgICAgIHJl
Z2lzdHJhcigiY24tYmlnNSIsICJCaWc1Iik7CisgICAgICAgIHJlZ2lzdHJhcigieC14LWJpZzUi
LCAiQmlnNSIpOworICAgIH0KKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiR0JL
IikpIHsKKyAgICAgICAgcmVnaXN0cmFyKCJjbi1nYiIsICJHQksiKTsKKyAgICAgICAgcmVnaXN0
cmFyKCJjc2diMjMxMjgwIiwgIkdCSyIpOworICAgICAgICByZWdpc3RyYXIoIngtZXVjLWNuIiwg
IkdCSyIpOworICAgICAgICByZWdpc3RyYXIoIngtZ2JrIiwgIkdCSyIpOworICAgIH0KKworICAg
IGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNPLTg4NTktOC1JIikpIHsKKyAgICAgICAg
cmVnaXN0cmFyKCJJU08tODg1OS04LUkiLCAiSVNPLTg4NTktOC1JIik7CisgICAgICAgIHJlZ2lz
dHJhcigiY3NJU084ODU5OEkiLCAiSVNPLTg4NTktOC1JIik7CisgICAgICAgIHJlZ2lzdHJhcigi
bG9naWNhbCIsICJJU08tODg1OS04LUkiKTsKKyAgICAgICAgcmVnaXN0cmFyKCJJU084ODU5LTgt
SSIsICJJU08tODg1OS04LUkiKTsKKyAgICB9CisKKyAgICBpZiAoa25vd25FbmNvZGluZ3MuY29u
dGFpbnMoIktPSTgtUiIpKQorICAgICAgICByZWdpc3RyYXIoImtvaSIsICJLT0k4LVIiKTsKKwor
ICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNPLTg4NTktOCIpKSB7CisgICAgICAg
IHJlZ2lzdHJhcigidmlzdWFsIiwgIklTTy04ODU5LTgiKTsKKyAgICAgICAgcmVnaXN0cmFyKCJJ
U084ODU5LTgiLCAiSVNPLTg4NTktOCIpOworICAgIH0KKworICAgIGlmIChrbm93bkVuY29kaW5n
cy5jb250YWlucygid2luZG93cy0xMjU4IikpCisgICAgICAgIHJlZ2lzdHJhcigid2ludmlldG5h
bWVzZSIsICJ3aW5kb3dzLTEyNTgiKTsKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlu
cygid2luZG93cy0xMjU3IikpCisgICAgICAgIHJlZ2lzdHJhcigid2luYmFsdGljIiwgIndpbmRv
d3MtMTI1NyIpOworCisgICAgaWYgKGtub3duRW5jb2RpbmdzLmNvbnRhaW5zKCJ3aW5kb3dzLTEy
NTYiKSkKKyAgICAgICAgcmVnaXN0cmFyKCJ3aW5hcmFiaWMiLCAid2luZG93cy0xMjU2Iik7CisK
KyAgICBpZiAoa25vd25FbmNvZGluZ3MuY29udGFpbnMoIndpbmRvd3MtMTI1NSIpKQorICAgICAg
ICByZWdpc3RyYXIoIndpbmhlYnJldyIsICJ3aW5kb3dzLTEyNTUiKTsKKworICAgIGlmIChrbm93
bkVuY29kaW5ncy5jb250YWlucygid2luZG93cy0xMjU0IikpIHsKKyAgICAgICAgcmVnaXN0cmFy
KCJ3aW50dXJraXNoIiwgIndpbmRvd3MtMTI1NCIpOworICAgICAgICByZWdpc3RyYXIoIklTTzg4
NTktOSIsICJ3aW5kb3dzLTEyNTQiKTsKKyAgICB9CisKKyAgICBpZiAoa25vd25FbmNvZGluZ3Mu
Y29udGFpbnMoIndpbmRvd3MtMTI1MyIpKQorICAgICAgICByZWdpc3RyYXIoIndpbmdyZWVrIiwg
IndpbmRvd3MtMTI1MyIpOworCisgICAgaWYgKGtub3duRW5jb2RpbmdzLmNvbnRhaW5zKCJ3aW5k
b3dzLTEyNTEiKSkgeworICAgICAgICByZWdpc3RyYXIoIndpbmN5cmlsbGljIiwgIndpbmRvd3Mt
MTI1MSIpOworICAgICAgICByZWdpc3RyYXIoIngtY3AxMjUxIiwgIndpbmRvd3MtMTI1MSIpOwor
ICAgIH0KKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygid2luZG93cy0xMjUwIikp
IHsKKyAgICAgICAgcmVnaXN0cmFyKCJ3aW5sYXRpbjIiLCAid2luZG93cy0xMjUwIik7CisgICAg
ICAgIHJlZ2lzdHJhcigieC1jcDEyNTAiLCAid2luZG93cy0xMjUwIik7CisgICAgfQorCisgICAg
aWYgKGtub3duRW5jb2RpbmdzLmNvbnRhaW5zKCJ3aW5kb3dzLTk0OSIpKSB7CisgICAgICAgIHJl
Z2lzdHJhcigieC13aW5kb3dzLTk0OSIsICJ3aW5kb3dzLTk0OSIpOworICAgICAgICByZWdpc3Ry
YXIoIngtdWhjIiwgIndpbmRvd3MtOTQ5Iik7CisgICAgfQorCisgICAgaWYgKGtub3duRW5jb2Rp
bmdzLmNvbnRhaW5zKCJ3aW5kb3dzLTg3NCIpKSB7CisgICAgICAgIHJlZ2lzdHJhcigiaXNvLTg4
NTktMTEiLCAid2luZG93cy04NzQiKTsKKyAgICAgICAgcmVnaXN0cmFyKCJpc284ODU5LTExIiwg
IndpbmRvd3MtODc0Iik7CisgICAgICAgIHJlZ2lzdHJhcigiZG9zLTg3NCIsICJ3aW5kb3dzLTg3
NCIpOworICAgIH0KKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiRVVDLUpQIikp
CisgICAgICAgIHJlZ2lzdHJhcigieC1ldWMiLCAiRVVDLUpQIik7CisKKyAgICBpZiAoa25vd25F
bmNvZGluZ3MuY29udGFpbnMoIktTQ181NjAxIikpCisgICAgICAgIHJlZ2lzdHJhcigiS1NDNTYw
MSIsICJLU0NfNTYwMSIpOworCisgICAgaWYgKGtub3duRW5jb2RpbmdzLmNvbnRhaW5zKCJTaGlm
dF9KSVMiKSkKKyAgICAgICAgcmVnaXN0cmFyKCJzaGlmdC1qaXMiLCAiU2hpZnRfSklTIik7CisK
KyAgICBpZiAoa25vd25FbmNvZGluZ3MuY29udGFpbnMoImNwODY0IikpCisgICAgICAgIHJlZ2lz
dHJhcigiZG9zLTcyMCIsICJjcDg2NCIpOworCisgICAgaWYgKGtub3duRW5jb2RpbmdzLmNvbnRh
aW5zKCJJU08tMjAyMi1KUCIpKQorICAgICAgICByZWdpc3RyYXIoImppczciLCAiSVNPLTIwMjIt
SlAiKTsKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNPLTg4NTktMSIpKQor
ICAgICAgICByZWdpc3RyYXIoIklTTzg4NTktMSIsICJJU08tODg1OS0xIik7CisKKyAgICBpZiAo
a25vd25FbmNvZGluZ3MuY29udGFpbnMoIklTTy04ODU5LTIiKSkKKyAgICAgICAgcmVnaXN0cmFy
KCJJU084ODU5LTIiLCAiSVNPLTg4NTktMiIpOworCisgICAgaWYgKGtub3duRW5jb2RpbmdzLmNv
bnRhaW5zKCJJU08tODg1OS0zIikpCisgICAgICAgIHJlZ2lzdHJhcigiSVNPODg1OS0zIiwgIklT
Ty04ODU5LTMiKTsKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNPLTg4NTkt
NCIpKQorICAgICAgICByZWdpc3RyYXIoIklTTzg4NTktNCIsICJJU08tODg1OS00Iik7CisKKyAg
ICBpZiAoa25vd25FbmNvZGluZ3MuY29udGFpbnMoIklTTy04ODU5LTUiKSkKKyAgICAgICAgcmVn
aXN0cmFyKCJJU084ODU5LTUiLCAiSVNPLTg4NTktNSIpOworCisgICAgaWYgKGtub3duRW5jb2Rp
bmdzLmNvbnRhaW5zKCJJU08tODg1OS02IikpCisgICAgICAgIHJlZ2lzdHJhcigiSVNPODg1OS02
IiwgIklTTy04ODU5LTYiKTsKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNP
LTg4NTktNyIpKQorICAgICAgICByZWdpc3RyYXIoIklTTzg4NTktNyIsICJJU08tODg1OS03Iik7
ICAgICAgICAKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlucygiSVNPLTg4NTktMTAi
KSkKKyAgICAgICAgcmVnaXN0cmFyKCJJU084ODU5LTEwIiwgIklTTy04ODU5LTEwIik7CisKKyAg
ICBpZiAoa25vd25FbmNvZGluZ3MuY29udGFpbnMoIklTTy04ODU5LTEzIikpCisgICAgICAgIHJl
Z2lzdHJhcigiSVNPODg1OS0xMyIsICJJU08tODg1OS0xMyIpOworCisgICAgaWYgKGtub3duRW5j
b2RpbmdzLmNvbnRhaW5zKCJJU08tODg1OS0xNCIpKQorICAgICAgICByZWdpc3RyYXIoIklTTzg4
NTktMTQiLCAiSVNPLTg4NTktMTQiKTsKKworICAgIGlmIChrbm93bkVuY29kaW5ncy5jb250YWlu
cygiSVNPLTg4NTktMTUiKSkKKyAgICAgICAgcmVnaXN0cmFyKCJJU084ODU5LTE1IiwgIklTTy04
ODU5LTE1Iik7CiB9CiAKIHZvaWQgVGV4dENvZGVjSUNVOjpyZWdpc3RlckNvZGVjcyhUZXh0Q29k
ZWNSZWdpc3RyYXIgcmVnaXN0cmFyKQo=
</data>
<flag name="review"
          id="228059"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="228060"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>