<?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>30387</bug_id>
          
          <creation_ts>2009-10-15 07:53:53 -0700</creation_ts>
          <short_desc>Safari 4.0.3 (531.9.1) XMLHttpRequest send incorect POST data or have wrong unicode map</short_desc>
          <delta_ts>2009-10-20 23:16:24 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="bugzilla33">bugzilla33</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154798</commentid>
    <comment_count>0</comment_count>
      <attachid>41225</attachid>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-10-15 07:53:53 -0700</bug_when>
    <thetext>Created attachment 41225
zipped attachements

1. Safari 4.0.3 (531.9.1) XMLHttpRequest send incorect POST data or have wrong unicode map.

2. Run test.php5 to generate and store to disk binary files.

3. Results

   a) bin_explorer_8.0.7600.16385.dat
      bin_firefox_3.5.3.dat
      bin_konqueror_4.3.2.dat
      bin_opera_10.00.1750.dat

      are binary the same.

   b) bin_safari_4.0.3.531.9.1.dat
      bin_chrome_3.0.195.27.dat

      are wrong binary!!!
      Please read about UTF-8 encoding to binary representation.

4. Summary

   Server-side languages receive incorrect data from Safari &amp; Chrome.
   Only characters from javascript map array (test.php5) are invalid encoded.

   Explorer, Opera, Konqueror and Firefox send perfect data.


--- code ---


&lt;?php

 if($_SERVER[&apos;QUERY_STRING&apos;]){
  file_put_contents(&apos;bin.dat&apos;,file_get_contents(&apos;php://input&apos;));
 }

?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html;charset=utf-8&quot; /&gt;
&lt;script type=&quot;text/javascript&quot;&gt;//&lt;![CDATA[

 map=[832,833,835,836,884,894,903,2392,2393,2394,2395,2396,2397,2398,2399,2524,2525,2527,2611,2614,2649,2650,2651,2654,2908,2909,3907,3917,3922,3927,3932,3945,3955,3957,3958,3960,3969,3987,3997,4002,4007,4012,4025,8049,8051,8053,8055,8057,8059,8061,8123,8126,8137,8139,8147,8155,8163,8171,8174,8175,8185,8187,8189,8192,8193,8486,8490,8491,9001,9002,10972,63744,63745,63746,63747,63748,63749,63750,63751,63752,63753,63754,63755,63756,63757,63758,63759,63760,63761,63762,63763,63764,63765,63766,63767,63768,63769,63770,63771,63772,63773,63774,63775,63776,63777,63778,63779,63780,63781,63782,63783,63784,63785,63786,63787,63788,63789,63790,63791,63792,63793,63794,63795,63796,63797,63798,63799,63800,63801,63802,63803,63804,63805,63806,63807,63808,63809,63810,63811,63812,63813,63814,63815,63816,63817,63818,63819,63820,63821,63822,63823,63824,63825,63826,63827,63828,63829,63830,63831,63832,63833,63834,63835,63836,63837,63838,63839,63840,63841,63842,63843,63844,63845,63846,63847,63848,63849,63850,63851,63852,63853,63854,63855,63856,63857,63858,63859,63860,63861,63862,63863,63864,63865,63866,63867,63868,63869,63870,63871,63872,63873,63874,63875,63876,63877,63878,63879,63880,63881,63882,63883,63884,63885,63886,63887,63888,63889,63890,63891,63892,63893,63894,63895,63896,63897,63898,63899,63900,63901,63902,63903,63904,63905,63906,63907,63908,63909,63910,63911,63912,63913,63914,63915,63916,63917,63918,63919,63920,63921,63922,63923,63924,63925,63926,63927,63928,63929,63930,63931,63932,63933,63934,63935,63936,63937,63938,63939,63940,63941,63942,63943,63944,63945,63946,63947,63948,63949,63950,63951,63952,63953,63954,63955,63956,63957,63958,63959,63960,63961,63962,63963,63964,63965,63966,63967,63968,63969,63970,63971,63972,63973,63974,63975,63976,63977,63978,63979,63980,63981,63982,63983,63984,63985,63986,63987,63988,63989,63990,63991,63992,63993,63994,63995,63996,63997,63998,63999,64000,64001,64002,64003,64004,64005,64006,64007,64008,64009,64010,64011,64012,64013,64016,64018,64021,64022,64023,64024,64025,64026,64027,64028,64029,64030,64032,64034,64037,64038,64042,64043,64044,64045,64048,64049,64050,64051,64052,64053,64054,64055,64056,64057,64058,64059,64060,64061,64062,64063,64064,64065,64066,64067,64068,64069,64070,64071,64072,64073,64074,64075,64076,64077,64078,64079,64080,64081,64082,64083,64084,64085,64086,64087,64088,64089,64090,64091,64092,64093,64094,64095,64096,64097,64098,64099,64100,64101,64102,64103,64104,64105,64106,64112,64113,64114,64115,64116,64117,64118,64119,64120,64121,64122,64123,64124,64125,64126,64127,64128,64129,64130,64131,64132,64133,64134,64135,64136,64137,64138,64139,64140,64141,64142,64143,64144,64145,64146,64147,64148,64149,64150,64151,64152,64153,64154,64155,64156,64157,64158,64159,64160,64161,64162,64163,64164,64165,64166,64167,64168,64169,64170,64171,64172,64173,64174,64175,64176,64177,64178,64179,64180,64181,64182,64183,64184,64185,64186,64187,64188,64189,64190,64191,64192,64193,64194,64195,64196,64197,64198,64199,64200,64201,64202,64203,64204,64205,64206,64207,64208,64209,64210,64211,64212,64213,64214,64215,64216,64217,64285,64287,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334]

 s=&apos;&apos;;for(z=0;z&lt;map.length;z++)s+=String.fromCharCode(map[z])

 r=new XMLHttpRequest()
 r.open(&apos;POST&apos;,location.href+&apos;?&apos;+Math.random(),true)
 r.send(s)

//]]&gt;&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154903</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-15 14:35:23 -0700</bug_when>
    <thetext>Safari converts all text sent to server to NFC normalization form, see &lt;http://www.unicode.org/faq/normalization.html&gt;. This is intentional - some servers cannot cope with data in other normalization forms, which is common on Mac OS X.

For text strings, this should be completely transparent - conversion to NFC basically combines accents and replaces deprecated characters with their modern equivalents. According to the Unicode specification, a compliant implementation can make no difference between Unicode normalization forms, so any server that is sensitive to this Safari behavior is itself non-compliant.

If you need a way to post binary data, please e-mail W3C WebApps working group at &lt;public-webapps@w3.org&gt; to include this feature in XMLHttpRequest specification (and I&apos;m earnestly recommending that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154924</commentid>
    <comment_count>2</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-10-15 15:39:41 -0700</bug_when>
    <thetext>Hmmmm, for example:

s=String.fromCharCode(832)
e=encodeURIComponent(s) // %CD%80 Safari returns good hex values of UTF8 charakter number 832.

This character should be seen as a binary two bytes chr(205)+chr(128) (encoding UTF8).
Unfortunately, Safari sends it in a different bytes combination ...and this should be the same as hex numbers from encodeURIComponent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154932</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-15 16:01:50 -0700</bug_when>
    <thetext>Yes, 832 is U+0340 COMBINING GRAVE TONE MARK, which is deprecated in favor of U+0300 COMBINING GRAVE ACCENT. Safari changes the former to the latter (right before sending it over network), and then correctly encodes the new value as CC80.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154973</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-15 19:14:14 -0700</bug_when>
    <thetext>*** Bug 30394 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155028</commentid>
    <comment_count>5</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-10-15 23:30:51 -0700</bug_when>
    <thetext>Okay, one more question: 

Why depreciated characters are replaced only when sending to the network?

s=String.fromCharCode(832) // UTF+340

alert(encodeURIComponent(s)) // should alert also new value (UTF+300) %CC%80

alert(s.charCodeAt(0)) // should alert also new value (UTF+300) 768</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>155237</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-16 14:28:58 -0700</bug_when>
    <thetext>&gt; Why depreciated characters are replaced only when sending to the network?

This is our current policy decision - we don&apos;t want decomposed characters to hit the server, and a nice and simple way to achieve that was to convert to NFC at the time of encoding text for sending it over the network.

Other solutions may be possible, and we are open to re-considering the approach in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156155</commentid>
    <comment_count>7</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-10-20 07:26:54 -0700</bug_when>
    <thetext>My observations: 
1. If the programmer uses encodeURIComponent - sends no translated utf8 data 
2. If the programmer uses JSON.stringify (Chrome encode with chars \uXXXX) - sends no translated utf8 data
3. If the programmer sends the raw data - they are translated. 

In my opinion, the data should not be translated. This should be a matter for the programmer. 

In addition, the programmer may wish to encode integer numbers (using utf8 characters 0 - 65535) and then retrieve their values on the server (using utf8 ord() function). If Safari does not he succeeds in this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156261</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-20 12:44:26 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; In addition, the programmer may wish to encode integer numbers (using utf8
&gt; characters 0 - 65535)

As I said in comment 1, XMLHttpRequest doesn&apos;t support sending binary data, and you should ask WebApps working group to add such a feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>156411</commentid>
    <comment_count>9</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-10-20 23:16:24 -0700</bug_when>
    <thetext>UTF8 is not binary format because we can not encode any bytes sequence.
We must code binary like:
0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
etc.

UTF8 can encode diferent 65536 charakters (0 - 65535).
We can generate each of them by using the fromStringCode and decode order number by using the charCodeAt method.

Now imagine: there is no charCodeAt method, and you wrote script to send any UTF8 character (raw format) to server and receive order nubmer decoded server side.
All the time we use UTF8 encoding, not binary data.
When you use Safari sometimes get erroneous results.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>41225</attachid>
            <date>2009-10-15 07:53:53 -0700</date>
            <delta_ts>2009-10-15 07:53:53 -0700</delta_ts>
            <desc>zipped attachements</desc>
            <filename>XMLHttpRequest_unocode.zip</filename>
            <type>application/octet-stream</type>
            <size>10448</size>
            <attacher name="bugzilla33">bugzilla33</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAIiFTzsAAAAAAAAAAAAAAAAXAAAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9QSwME
FAACAAgAmIZPO/ZfcFSoAQAA7AIAACAAAABYTUxIdHRwUmVxdWVzdF91bm9jb2RlLyFpbmZvLnR4
dGWSTU/jQAyG70j9D+4FUQlGTdPQ9owWIS2oiIK0t8hNnGaWZCbrmRT673EmCSuV3CavP177caRg
hwWyhqWaqxiukjhSGxXN4BLuSrY1QSxCtEnUYgV/nh4fvG9e6F9LzoMjk4M2mWXKPDxvd6+Qo0ew
DCUeCT7YmgO0Rmc2J6ixUZOLycVCwUtrwEsF1ZRNAt7CgQwxegKUis5Lwe5vrt077LVBPkGhK3Ih
P5Z8cm3lXfcCAJx1QSl9NpUkcroWw6vbubi+jdeJEkshTL4urNBMhf1MY5Wo+Fx8t0ZGY8vpUsTF
uWwbcZlGc9UVXyXzXh8jUFwPbn1J4LAmNaj73mIWNpr+3+h5AxdYpIGFGlD8bNLvtW81nU5H6bki
dARMmAPubevh7fX+Zg0khHItGbLSwR9TwyT4PHptTXC5lEto61rUodmO+Eh847Swq9AcWjyQk8yM
tLAN2AP3gLyQwcZLGi9HhTJbU50gK5Ex88Suj/yLR3QZ68Z3ZyFDMZ7g6vskZmFMbY5Y6bz3T/m4
y18D52vYdjiu4fcILVzPfc+3P04JKEaP6gtQSwMECgAAAAAAfIVPOwAAAAAAAAAAAAAAAB8AAABY
TUxIdHRwUmVxdWVzdF91bm9jb2RlL3Jlc3VsdHMvUEsDBBQAAgAIANmETzthw3MHDgUAAAsHAAA4
AAAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9yZXN1bHRzL2Jpbl9jaHJvbWVfMy4wLjE5NS4yNy5k
YXQdlNuOqkgUhh9sHmFeYh4FD5zEA2p7QNRWEE8otoqKopjsuZt03He7b83errWq7voRpiCp7wup
QKX+v4BP6TP32fzUPnP/nf/6cXpOWs/J9TlpZ+5k7mceZ3Yy+5k3qafj51TYybxJPd8958JR5nbm
TuZ+Zj/1avxcCTupb/lncnreypnrmduZ7czSMzk8b9ts7J638JnsnomY3Kcz6YUYjfTOpJ95nHma
2c9sihUeq8f6ETw2P8s/Kz+rD+VxfmgP/WE+So+PR/Uh//MoP2o/wt9S/rdUeCz+/lf+I2l/JP23
P/iM2FZDO2Rxie01jOuvaAc1jyd9McCrc7UObRU8DdUjWQtKZNa9s+GFuRHP13Cex9CmgkW1ITNv
XF7y2fZ1yUPlgKsiaTbrrnk0hIOJd591KsyboKEztctG7xCXsN/Bw5KMKy9UX4kCygmMITaL6DdJ
M8meMSnHugqz+uy04f0dX2/46UJOmbw7HUespvNykZ/vzG+D+w7XIm1HLJeQ7pAr4uS5fQK3C1sH
50089fBao3BD0YlbBhgNljdA7YNapnmfjgmrbbl1YIGERpqL+ckrOsNmhlKDqiq1PqDcITd+JXdI
Fq+ogvsytiIKHagVYDykfo7VdbZcYnBhyQfuNDQSZnhYHVHLe10CkBeg6ujkaD9j+ob5Da7WwDhA
PQ/eHuIVdmS8JzRZ8vaaL5b80uFxFUo22gquT+zmwDlExURNwobI4pKsU0OnWYlOIctt2HXKmgGX
XF4pgdaBkguNGxU05ubFriDW4X7ASoxBQB8JVQ6veAJ2GhCOF5T6VN1RXZxvj+UUroXcPvKBxkfd
V2LQNOBKyHsRFsaviwKFHmwC+Lhj2xJFkVolK8+aV5678qSCPY13AyjpOIjxfY+HHF76ZOrUsmjs
U2jy8RDkNWoBtyKQfAgtPC3ZdQmJgXIRRx3RNu8poC3ArMHWw24TB1V05rj3yFSo49DtzNwac8dc
LXPbgfIdLxcwB6Sa1OiyzoX3XL7t8Ms7Djt4Mpg6J9+g1Yh2DTIkylts3X3FEisfQbuApsJlikaT
9m0IZAyH2AvZNWbjMrcqbGpA3ARZgo4E4x5aIahDKi/JLtHkSt6QPI+mNT5o0y6h5Ma6DeZHXIp4
4cbdDXevfDLnx/CVBFCYgVwBQwdjAhXxWQ2gq4A1h7EEzhy2E9gGmH9DeY5KFdUdtmrYcbBXR0fG
wwkjcegOyQFpPpkOOXWaJOTp5GnkmeS1yRvQtELTKi0kWuZoI4kXgyKdzjm67ZgkM3XN9HM66h02
Mdm0zVY5tjqzfZOFGkuO6bZtl7/f+Sh+RVNQDiDPX4kEsgyKBIYKxiXddqsFbQs6jigEnD14RfDe
YOHAag5xA2ILbgtI1ljoolzFopbGkUdpIi3EWhHNPtYb2GqLMtM/QN/GQRvXZ/HhpG9LbGNspEml
YRp2OCPtQKVN2nl9S28KvcXUHVD3PT0C2yY7pEGJBhK5ZVpu09TbmA52mv2apKkrDVbbsMGZeTk2
VdLUS/HHiJhvpPH9hPnrtISglJZwjXhuxxWL60duXdM2Bm3+bmedGKIWvmqIH+O3My4Jit9urfUn
GLyk7ks6f3u6/u3tze9Z3OS3Ak+qX9av8Gv36/S1+MoJ8l+LX9f0Sjj/ZYp581ckuH7VBQ1BU/Am
aAnagq7AEvQEtqAvGApGgrHAFUwEU8FMMBekqy+zNc5i3bt47i7uuf8PUEsDBBQAAgAIALCETzs7
t/blGQQAAIkGAAA+AAAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9yZXN1bHRzL2Jpbl9leHBsb3Jl
cl84LjAuNzYwMC4xNjM4NS5kYXQNzFlC8koQgNGtg6CAgAM4gIA4dHV1VxIVERQxYQXeNXTcwLeF
+z+el/Pb+G3+tn7bvx+/1X+dJJMk0yR3SWZJ5kkWSe6TLJPOky6SLlNYp7BNcZriXYqzFO9TMU/F
IpWtVA5TOUrlbSrnqYypXKdyk8ptKr9S1UzVOFWLVD2lSlOVp2pXl6u6XNflpi4/6/If93VZ1tW+
rqr60KsP/fowrg+z+vBcH7L68FIfXuvDrj7s60P512j8NZp/bf/Xtr929jeIfwP7y+a4Bq6JO8K1
cG3cMe4E18F1cT3cKa6PG+CGuDPcOe4Cd4kb4ca4K9w17gZ3i5vgprg73Az3r13g7nFL3APuEfeE
e8Y5nOA8TnEBF3GGy3A5rsC94F5xb7gV7h23xn3gNrgt7hP3hdvhvnF73A+uxFW4A9JAmsgR0kLa
yDFygnSQLtJDTpE+MkCGyBlyjlwgl8gIGSNXyDVyg9wiE2SK3CEzZI4skHtkiTwgj8gT8ow4RBCP
KBKQiBiSITlSIC/IK/KGrJB3ZI18IBtki3wiX8gO+Ub2yA9SIhVywDfwTfwRvoVv44/xJ/gOvovv
4U/xffwAP8Sf4c/xF/hL/Ag/xl/hr/E3+Fv8BD/F3+Fn+Dl+gb/HL/EP+Ef8E/4Z7/CC93jFB3zE
Gz7D5/gC/4J/xb/hV/h3/Br/gd/gt/hP/Bd+h//G7/E/+BJf4Q9oA22iR2gLbaPH6AnaQbtoDz1F
++gAHaJn6Dl6gV6iI3SMXqHX6A16i07QKXqHztA5ukDv0SX6gD6iT+gz6lBBPapoQCNqaIbmaIG+
oK/oG7pC39E1+oFu0C36iX6hO/Qb3aM/aIlW6IHQIDQJR4QWoU04JpwQOoQuoUc4JfQJA8KQcEEY
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
wDbYFvvEvrAd9o3tsR+sxCrsQNYga5IdkbXI2mTHZCdkHbIuWY/slKxPNiAbkp2RnZNdkF2SjcjG
ZFdk12Q3ZLdkE7Ip+YJ8SW7kGXlOXpC/kL+Sv5GvyN/J1+Qf5BvyLfkX+Y78m3xP/kNeUTQomhQt
ijbFCUWHokvRozil6FMMKIYUZ/8DUEsDBBQAAgAIAM2ETzthw3MHDgUAAAsHAAA7AAAAWE1MSHR0
cFJlcXVlc3RfdW5vY29kZS9yZXN1bHRzL2Jpbl9zYWZhcmlfNC4wLjMuNTMxLjkuMS5kYXQdlNuO
qkgUhh9sHmFeYh4FD5zEA2p7QNRWEE8otoqKopjsuZt03He7b83errWq7voRpiCp7wupQKX+v4BP
6TP32fzUPnP/nf/6cXpOWs/J9TlpZ+5k7mceZ3Yy+5k3qafj51TYybxJPd8958JR5nbmTuZ+Zj/1
avxcCTupb/lncnreypnrmduZ7czSMzk8b9ts7J638JnsnomY3Kcz6YUYjfTOpJ95nHma2c9sihUe
q8f6ETw2P8s/Kz+rD+VxfmgP/WE+So+PR/Uh//MoP2o/wt9S/rdUeCz+/lf+I2l/JP23P/iM2FZD
O2Rxie01jOuvaAc1jyd9McCrc7UObRU8DdUjWQtKZNa9s+GFuRHP13Cex9CmgkW1ITNvXF7y2fZ1
yUPlgKsiaTbrrnk0hIOJd591KsyboKEztctG7xCXsN/Bw5KMKy9UX4kCygmMITaL6DdJM8meMSnH
ugqz+uy04f0dX2/46UJOmbw7HUespvNykZ/vzG+D+w7XIm1HLJeQ7pAr4uS5fQK3C1sH50089fBa
o3BD0YlbBhgNljdA7YNapnmfjgmrbbl1YIGERpqL+ckrOsNmhlKDqiq1PqDcITd+JXdIFq+ogvsy
tiIKHagVYDykfo7VdbZcYnBhyQfuNDQSZnhYHVHLe10CkBeg6ujkaD9j+ob5Da7WwDhAPQ/eHuIV
dmS8JzRZ8vaaL5b80uFxFUo22gquT+zmwDlExURNwobI4pKsU0OnWYlOIctt2HXKmgGXXF4pgdaB
kguNGxU05ubFriDW4X7ASoxBQB8JVQ6veAJ2GhCOF5T6VN1RXZxvj+UUroXcPvKBxkfdV2LQNOBK
yHsRFsaviwKFHmwC+Lhj2xJFkVolK8+aV5678qSCPY13AyjpOIjxfY+HHF76ZOrUsmjsU2jy8RDk
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
aZFgkRYPFmkjLTYMG/n/SmlWtBUtWgwthhZDi1W0FS1yDDmGHEOOIceQY8gx5BhyDDmGHEOOIceQ
Y8gx5BhyDDmGHEOOIceQY8gx5BhyDDmGHEOOIceQY8gx5BhyDDmGHEOOIceQY8gx5BhyDDmGHEOO
IceQY8gx5BhyDDmGHENOQE5ATkBOQE5ATkBOQE7g0yPw6RH49Ah8egQ+PQKuAq4CrgKuAq4CrgJ/
isD9A3cI3CFyh8gdIneI3CFyh8gdIneI3CFyh8gdIneIPD3y9MjTI0+PPD3iOSI5IjliOGI4ojei
N4b1Tk5Gb0RvRG9Eb4zVGV9uVruDwfbVYjl82i23n3bSd53x7XR+3d1sP21ubqw2d/OXtvn1+Gq5
uNtPX6X2F5fTYdp1+nS2wQHL3fn0sffl/bs36VvZUfpWNl11w428MF7cT+fDwaePxyeD0e3iYtLN
FvPxzXJ6tTl4Pdh8P+luxsvJ/HJxN9wYdcuH6bpaTeeXwxWHF8XZ2d5Osf5itvcfUEsBAhQACgAA
AAAAiIVPOwAAAAAAAAAAAAAAABcAAAAAAAAAAAAQAAAAAAAAAFhNTEh0dHBSZXF1ZXN0X3Vub2Nv
ZGUvUEsBAhQAFAACAAgAmIZPO/ZfcFSoAQAA7AIAACAAAAAAAAAAAQAgAAAANQAAAFhNTEh0dHBS
ZXF1ZXN0X3Vub2NvZGUvIWluZm8udHh0UEsBAhQACgAAAAAAfIVPOwAAAAAAAAAAAAAAAB8AAAAA
AAAAAAAQAAAAGwIAAFhNTEh0dHBSZXF1ZXN0X3Vub2NvZGUvcmVzdWx0cy9QSwECFAAUAAIACADZ
hE87YcNzBw4FAAALBwAAOAAAAAAAAAAAACAAAABYAgAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9y
ZXN1bHRzL2Jpbl9jaHJvbWVfMy4wLjE5NS4yNy5kYXRQSwECFAAUAAIACACwhE87O7f25RkEAACJ
BgAAPgAAAAAAAAAAACAAAAC8BwAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9yZXN1bHRzL2Jpbl9l
eHBsb3Jlcl84LjAuNzYwMC4xNjM4NS5kYXRQSwECFAAUAAIACAC9hE87O7f25RkEAACJBgAANAAA
AAAAAAAAACAAAAAxDAAAWE1MSHR0cFJlcXVlc3RfdW5vY29kZS9yZXN1bHRzL2Jpbl9maXJlZm94
XzMuNS4zLmRhdFBLAQIUABQAAgAIAASFTzs7t/blGQQAAIkGAAA2AAAAAAAAAAAAIAAAAJwQAABY
TUxIdHRwUmVxdWVzdF91bm9jb2RlL3Jlc3VsdHMvYmluX2tvbnF1ZXJvcl80LjMuMi5kYXRQSwEC
FAAUAAIACADGhE87O7f25RkEAACJBgAANwAAAAAAAAAAACAAAAAJFQAAWE1MSHR0cFJlcXVlc3Rf
dW5vY29kZS9yZXN1bHRzL2Jpbl9vcGVyYV8xMC4wMC4xNzUwLmRhdFBLAQIUABQAAgAIAM2ETzth
w3MHDgUAAAsHAAA7AAAAAAAAAAAAIAAAAHcZAABYTUxIdHRwUmVxdWVzdF91bm9jb2RlL3Jlc3Vs
dHMvYmluX3NhZmFyaV80LjAuMy41MzEuOS4xLmRhdFBLAQIUABQAAgAIAECFTztfAfuBCgYAAOEO
AAAgAAAAAAAAAAEAIAAAAN4eAABYTUxIdHRwUmVxdWVzdF91bm9jb2RlL3Rlc3QucGhwNVBLBQYA
AAAACgAKAJQDAAAmJQAAAAA=
</data>

          </attachment>
      

    </bug>

</bugzilla>