<?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>93255</bug_id>
          
          <creation_ts>2012-08-06 04:24:21 -0700</creation_ts>
          <short_desc>[GTK] Webkit 1.8.2 fails to build with MinGW with spellchecking enabled</short_desc>
          <delta_ts>2012-09-25 12:11:15 -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>Platform</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>0</everconfirmed>
          <reporter>tuxator</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>kalevlember</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687992</commentid>
    <comment_count>0</comment_count>
      <attachid>156656</attachid>
    <who name="">tuxator</who>
    <bug_when>2012-08-06 04:24:21 -0700</bug_when>
    <thetext>Created attachment 156656
proposed patch

Webkit 1.8.2 fails to build out of the box with MinGW with spellchecking enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687994</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 04:26:38 -0700</bug_when>
    <thetext>Attachment 156656 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;]&quot; exit_code: 1
Total errors found: 0 in 0 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688018</commentid>
    <comment_count>2</comment_count>
      <attachid>156664</attachid>
    <who name="">tuxator</who>
    <bug_when>2012-08-06 04:56:42 -0700</bug_when>
    <thetext>Created attachment 156664
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>688020</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-06 04:58:48 -0700</bug_when>
    <thetext>Attachment 156664 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit/gtk/ChangeLog&apos;, u&apos;Source/Web...&quot; exit_code: 1
Source/WebKit/gtk/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689184</commentid>
    <comment_count>4</comment_count>
      <attachid>156956</attachid>
    <who name="">tuxator</who>
    <bug_when>2012-08-07 08:57:48 -0700</bug_when>
    <thetext>Created attachment 156956
patch with style fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689469</commentid>
    <comment_count>5</comment_count>
      <attachid>156956</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-07 15:17:34 -0700</bug_when>
    <thetext>Comment on attachment 156956
patch with style fix

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

&gt; Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp:129
&gt; +    iface-&gt;check_spelling_of_string = checkSpellingOfString;
&gt; +    iface-&gt;get_guesses_for_word = getGuessesForWord;
&gt; +    iface-&gt;update_spell_checking_languages = updateSpellCheckingLanguages;
&gt; +    iface-&gt;get_autocorrect_suggestions_for_misspelled_word = getAutocorrectSuggestionsForMisspelledWord;
&gt; +    iface-&gt;learn_word = learnWord;
&gt; +    iface-&gt;ignore_word = ignoreWord;

Why would you move away from using an english word?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>689492</commentid>
    <comment_count>6</comment_count>
      <attachid>156956</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-08-07 15:31:31 -0700</bug_when>
    <thetext>Comment on attachment 156956
patch with style fix

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

&gt; Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp:64
&gt; -    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(const_cast&lt;gunichar2*&gt;(text), length, 0, 0, 0));
&gt; +    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(reinterpret_cast&lt;const gunichar2*&gt;(text), length, 0, 0, 0));

I mentioned this to pfor via IRC, but I&apos;ll leave it here for posterity: I think it might be necessary here to use  g_ucs4_to_utf8 instead of simply casting 32-bit characters to 16-bit.

&gt; Source/WebKit/gtk/webkit/webkitspellcheckerenchant.cpp:122
&gt; -static void webkit_spell_checker_enchant_spell_checker_interface_init(WebKitSpellCheckerInterface* interface)
&gt; +static void webkit_spell_checker_enchant_spell_checker_interface_init(WebKitSpellCheckerInterface* iface)

Yeah, I agree with Eric here. If we can&apos;t use interface, we should use something like spellCheckerInterface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726252</commentid>
    <comment_count>7</comment_count>
    <who name="Kalev Lember">kalevlember</who>
    <bug_when>2012-09-23 06:09:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp:64
&gt; &gt; -    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(const_cast&lt;gunichar2*&gt;(text), length, 0, 0, 0));
&gt; &gt; +    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(reinterpret_cast&lt;const gunichar2*&gt;(text), length, 0, 0, 0));
&gt; 
&gt; I mentioned this to pfor via IRC, but I&apos;ll leave it here for posterity: I think it might be necessary here to use  g_ucs4_to_utf8 instead of simply casting 32-bit characters to 16-bit.

I don&apos;t think the cast actually loses precision. It is from UChar* to gunichar2*; I believe these are both always defined as 16 bit types.

From Source/JavaScriptCore/icu/unicode/umachine.h, which defines UChar for the ICU backend:

#if U_SIZEOF_WCHAR_T==2
    typedef wchar_t UChar;
#elif U_GNUC_UTF16_STRING
#if defined _GCC_
    typedef __CHAR16_TYPE__ char16_t;
#endif
    typedef char16_t UChar;
#else
    typedef uint16_t UChar;
#endif

e.g. if wchar_t is 16 bit wide, try to use this; otherwise fall back to another 16 bit type.

The case is even simpler for the glib unicode backend. UnicodeGLib.h:
typedef uint16_t UChar;

Again, a 16 bit type.

And same goes for gunichar2 which is defined in glib&apos;s gunicode.h header:
typedef guint16 gunichar2;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726676</commentid>
    <comment_count>8</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-24 08:18:02 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; &gt; Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp:64
&gt; &gt; &gt; -    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(const_cast&lt;gunichar2*&gt;(text), length, 0, 0, 0));
&gt; &gt; &gt; +    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(reinterpret_cast&lt;const gunichar2*&gt;(text), length, 0, 0, 0));
&gt; &gt; 
&gt; &gt; I mentioned this to pfor via IRC, but I&apos;ll leave it here for posterity: I think it might be necessary here to use  g_ucs4_to_utf8 instead of simply casting 32-bit characters to 16-bit.
&gt; 
&gt; I don&apos;t think the cast actually loses precision. It is from UChar* to gunichar2*; I believe these are both always defined as 16 bit types.
&gt; 
&gt; From Source/JavaScriptCore/icu/unicode/umachine.h, which defines UChar for the ICU backend:
&gt; 
&gt; #if U_SIZEOF_WCHAR_T==2
&gt;     typedef wchar_t UChar;
&gt; #elif U_GNUC_UTF16_STRING
&gt; #if defined _GCC_
&gt;     typedef __CHAR16_TYPE__ char16_t;
&gt; #endif
&gt;     typedef char16_t UChar;
&gt; #else
&gt;     typedef uint16_t UChar;
&gt; #endif

Okay. This sounds reasonable. I&apos;m a bit surprised that pointers of the same size require a reinterpet_cast to switch between them though. Do you understand why it&apos;s necessary here? Can you double-check by printing sizeof for both types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726728</commentid>
    <comment_count>9</comment_count>
    <who name="Kalev Lember">kalevlember</who>
    <bug_when>2012-09-24 09:10:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Okay. This sounds reasonable. I&apos;m a bit surprised that pointers of the same size require a reinterpet_cast to switch between them though. Do you understand why it&apos;s necessary here?

I believe reinterpret_cast is needed because static_cast doesn&apos;t cast between unrelated pointer types, even if the sizes of the types pointed to match. On Linux, UChar is an integer type and static_cast works because it&apos;s casting from one type of integer to another, which are naturally convertible. But on Windows, UChar is a wchar_t and it&apos;s not implicitly convertible to an integer.


&gt; Can you double-check by printing sizeof for both types?
I don&apos;t currently have a webkitgtk win32 build at hand to instrument the source code there, but a quick test with sizeof:

&gt; $ cat kala.cpp
&gt; #include &lt;glib.h&gt;
&gt; #include &lt;iostream&gt;
&gt; 
&gt; int main()
&gt; {
&gt;     std::cout &lt;&lt; &quot;sizeof wchar_t: &quot; &lt;&lt; sizeof (wchar_t) &lt;&lt; std::endl;
&gt;     std::cout &lt;&lt; &quot;sizeof guint16: &quot; &lt;&lt; sizeof (guint16) &lt;&lt; std::endl;
&gt;     return 0;
&gt; }
&gt; 
&gt; $ i686-w64-mingw32-g++ kala.cpp `i686-w64-mingw32-pkg-config --cflags glib-2.0` -o kala.exe
&gt; $ wine kala.exe
&gt; sizeof wchar_t: 2
&gt; sizeof guint16: 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726731</commentid>
    <comment_count>10</comment_count>
      <attachid>156956</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-09-24 09:15:41 -0700</bug_when>
    <thetext>Comment on attachment 156956
patch with style fix

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

&gt;&gt; Source/WebKit/gtk/WebCoreSupport/TextCheckerClientGtk.cpp:64
&gt;&gt; +    GOwnPtr&lt;gchar&gt; utf8Text(g_utf16_to_utf8(reinterpret_cast&lt;const gunichar2*&gt;(text), length, 0, 0, 0));
&gt; 
&gt; I mentioned this to pfor via IRC, but I&apos;ll leave it here for posterity: I think it might be necessary here to use  g_ucs4_to_utf8 instead of simply casting 32-bit characters to 16-bit.

I think it&apos;s possible to simply avoid the casts altogether by using the WTFString API:

String textAsString(text, length);
webkit_spell_checker_check_spelling_of_string(m_spellChecker.get(), textAsString.utf8().data(), misspellingLocation, misspellingLength);

If that&apos;s possible let&apos;s do that. That&apos;s both a little cleaner and uses less casting, which can be potentially dangerous.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727828</commentid>
    <comment_count>11</comment_count>
      <attachid>165648</attachid>
    <who name="">tuxator</who>
    <bug_when>2012-09-25 11:36:03 -0700</bug_when>
    <thetext>Created attachment 165648
Updated patch

Thanks very much for suggestions.

Attached patch is updated according to those.
Tested with WebKitGTK 1.8.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727857</commentid>
    <comment_count>12</comment_count>
      <attachid>165648</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 12:11:11 -0700</bug_when>
    <thetext>Comment on attachment 165648
Updated patch

Clearing flags on attachment: 165648

Committed r129537: &lt;http://trac.webkit.org/changeset/129537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727858</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 12:11:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156656</attachid>
            <date>2012-08-06 04:24:21 -0700</date>
            <delta_ts>2012-08-06 04:56:42 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>spellcheck.diff</filename>
            <type>text/plain</type>
            <size>2750</size>
            <attacher>tuxator</attacher>
            
              <data encoding="base64">ZGlmZiAtQnJ1IHdlYmtpdC0xLjguMi5vcmlnL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcCB3ZWJraXQtMS44LjIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwCi0tLSB3ZWJraXQtMS44
LjIub3JpZy9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVu
dEd0ay5jcHAJMjAxMi0wOC0wMSAwOTo1NTowNy4wMDAwMDAwMDAgKzAyMDAKKysrIHdlYmtpdC0x
LjguMi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0
ay5jcHAJMjAxMi0wOC0wNCAxNzoxNTo1OC43NjA2NTg4ODkgKzAyMDAKQEAgLTU2LDcgKzU2LDcg
QEAKIAogdm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0azo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGlu
dCogbWlzc3BlbGxpbmdMZW5ndGgpCiB7Ci0gICAgR093blB0cjxnY2hhcj4gdXRmOFRleHQoZ191
dGYxNl90b191dGY4KGNvbnN0X2Nhc3Q8Z3VuaWNoYXIyKj4odGV4dCksIGxlbmd0aCwgMCwgMCwg
MCkpOworICAgIEdPd25QdHI8Z2NoYXI+IHV0ZjhUZXh0KGdfdXRmMTZfdG9fdXRmOChyZWludGVy
cHJldF9jYXN0PGNvbnN0IGd1bmljaGFyMio+KHRleHQpLCBsZW5ndGgsIDAsIDAsIDApKTsKICAg
ICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9jaGVja19zcGVsbGluZ19vZl9zdHJpbmcobV9zcGVsbENo
ZWNrZXIuZ2V0KCksIHV0ZjhUZXh0LmdldCgpLCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBtaXNzcGVs
bGluZ0xlbmd0aCk7CiB9CiAKZGlmZiAtQnJ1IHdlYmtpdC0xLjguMi5vcmlnL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcCB3ZWJraXQtMS44LjIv
U291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCi0t
LSB3ZWJraXQtMS44LjIub3JpZy9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxj
aGVja2VyZW5jaGFudC5jcHAJMjAxMi0wOC0wMSAwOTo1NTowNy4wMDAwMDAwMDAgKzAyMDAKKysr
IHdlYmtpdC0xLjguMi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2Vy
ZW5jaGFudC5jcHAJMjAxMi0wOC0wNCAxNzoyNTo0Mi4wNDUwOTc3ODkgKzAyMDAKQEAgLTQxLDcg
KzQxLDcgQEAKICAgICBHU0xpc3QqIGVuY2hhbnREaWN0czsKIH07CiAKLXN0YXRpYyB2b2lkIHdl
YmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfc3BlbGxfY2hlY2tlcl9pbnRlcmZhY2VfaW5pdChX
ZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2UqIGludGVyZmFjZSk7CitzdGF0aWMgdm9pZCB3ZWJr
aXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2Vi
S2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBpZmFjZSk7CiAKIEdfREVGSU5FX1RZUEVfV0lUSF9D
T0RFKFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnQsIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hh
bnQsIEdfVFlQRV9PQkpFQ1QsCiAgICAgICAgICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9J
TlRFUkZBQ0UoV0VCS0lUX1RZUEVfU1BFTExfQ0hFQ0tFUiwKQEAgLTI1OSwxNCArMjU5LDE0IEBA
CiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3Nw
ZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBp
bnRlcmZhY2UpCitzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3NwZWxs
X2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBpZmFj
ZSkKIHsKLSAgICBpbnRlcmZhY2UtPmNoZWNrX3NwZWxsaW5nX29mX3N0cmluZyA9IGNoZWNrU3Bl
bGxpbmdPZlN0cmluZzsKLSAgICBpbnRlcmZhY2UtPmdldF9ndWVzc2VzX2Zvcl93b3JkID0gZ2V0
R3Vlc3Nlc0ZvcldvcmQ7Ci0gICAgaW50ZXJmYWNlLT51cGRhdGVfc3BlbGxfY2hlY2tpbmdfbGFu
Z3VhZ2VzID0gdXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlczsKLSAgICBpbnRlcmZhY2UtPmdl
dF9hdXRvY29ycmVjdF9zdWdnZXN0aW9uc19mb3JfbWlzc3BlbGxlZF93b3JkID0gZ2V0QXV0b2Nv
cnJlY3RTdWdnZXN0aW9uc0Zvck1pc3NwZWxsZWRXb3JkOwotICAgIGludGVyZmFjZS0+bGVhcm5f
d29yZCA9IGxlYXJuV29yZDsKLSAgICBpbnRlcmZhY2UtPmlnbm9yZV93b3JkID0gaWdub3JlV29y
ZDsKKyAgICBpZmFjZS0+Y2hlY2tfc3BlbGxpbmdfb2Zfc3RyaW5nID0gY2hlY2tTcGVsbGluZ09m
U3RyaW5nOworICAgIGlmYWNlLT5nZXRfZ3Vlc3Nlc19mb3Jfd29yZCA9IGdldEd1ZXNzZXNGb3JX
b3JkOworICAgIGlmYWNlLT51cGRhdGVfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzID0gdXBkYXRl
U3BlbGxDaGVja2luZ0xhbmd1YWdlczsKKyAgICBpZmFjZS0+Z2V0X2F1dG9jb3JyZWN0X3N1Z2dl
c3Rpb25zX2Zvcl9taXNzcGVsbGVkX3dvcmQgPSBnZXRBdXRvY29ycmVjdFN1Z2dlc3Rpb25zRm9y
TWlzc3BlbGxlZFdvcmQ7CisgICAgaWZhY2UtPmxlYXJuX3dvcmQgPSBsZWFybldvcmQ7CisgICAg
aWZhY2UtPmlnbm9yZV93b3JkID0gaWdub3JlV29yZDsKIH0KIAogI2VuZGlmIC8qIEVOQUJMRShT
UEVMTENIRUNLKSAqLwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156664</attachid>
            <date>2012-08-06 04:56:42 -0700</date>
            <delta_ts>2012-08-07 08:57:48 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>spellcheck.diff</filename>
            <type>text/plain</type>
            <size>3765</size>
            <attacher>tuxator</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCAxZTYyNjEyLi5jZjEzNjJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMDYgIFBhd2XFgiBGb3J5c2l1ayAgPHR1eGF0b3JAbzIu
cGw+CisKKyAgICAgICAgW0dUS10gV2Via2l0R1RLIGZhaWxzIHRvIGJ1aWxkIHdpdGggTWluR1cg
d2l0aCBzcGVsbGNoZWNraW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkzMjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnVpbGQgZGllcyBiZWNhdXNlIG9mIGludmFsaWQgY2FzdC4gQWRk
aXRpb25hbHkgd29yZCAiaW50ZXJmYWNlIiBpcyBpbiB1c2Ugd2l0aAorICAgICAgICBNaW5HVyBj
b21waWxlci4KKwkJCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXh0Q2hlY2tlckNsaWVudEd0azo6Y2hlY2tTcGVs
bGluZ09mU3RyaW5nKTogVXNlIG1pbmd3LWZyaWVuZGx5IGNhc3QKKyAgICAgICAgKiB3ZWJraXQv
d2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHA6CisgICAgICAgICh3ZWJraXRfc3BlbGxfY2hl
Y2tlcl9lbmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQpOiByZW5hbWUgaW50ZXJm
YWNlIC0+IGlmYWNlCisKIDIwMTItMDgtMDYgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwu
cG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW0VGTF0gW0dUS10gUmVnaXN0ZXIgUHJv
dG9jb2wgSGFuZGxlciBDbGllbnQgaXMgbmV2ZXIgZGVsZXRlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwCmlu
ZGV4IGUxMjhhZDIuLjc2OGZhNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgdm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0azo6bGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgdGV4
dCkKIAogdm9pZCBUZXh0Q2hlY2tlckNsaWVudEd0azo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGNv
bnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZ3RoLCBpbnQqIG1pc3NwZWxsaW5nTG9jYXRpb24sIGlu
dCogbWlzc3BlbGxpbmdMZW5ndGgpCiB7Ci0gICAgR093blB0cjxnY2hhcj4gdXRmOFRleHQoZ191
dGYxNl90b191dGY4KGNvbnN0X2Nhc3Q8Z3VuaWNoYXIyKj4odGV4dCksIGxlbmd0aCwgMCwgMCwg
MCkpOworICAgIEdPd25QdHI8Z2NoYXI+IHV0ZjhUZXh0KGdfdXRmMTZfdG9fdXRmOChyZWludGVy
cHJldF9jYXN0PGNvbnN0IGd1bmljaGFyMio+KHRleHQpLCBsZW5ndGgsIDAsIDAsIDApKTsKICAg
ICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9jaGVja19zcGVsbGluZ19vZl9zdHJpbmcobV9zcGVsbENo
ZWNrZXIuZ2V0KCksIHV0ZjhUZXh0LmdldCgpLCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBtaXNzcGVs
bGluZ0xlbmd0aCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93
ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcAppbmRleCAwN2QzNGQxLi4yYjhmNWU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVu
Y2hhbnQuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHN0cnVjdCBfV2ViS2l0U3BlbGxDaGVja2VyRW5j
aGFudFByaXZhdGUgewogICAgIE93blB0cjxUZXh0Q2hlY2tlckVuY2hhbnQ+IHRleHRDaGVja2Vy
RW5jaGFudDsKIH07CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRf
c3BlbGxfY2hlY2tlcl9pbnRlcmZhY2VfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2Uq
IGludGVyZmFjZSk7CitzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3Nw
ZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBp
ZmFjZSk7CiAKIEdfREVGSU5FX1RZUEVfV0lUSF9DT0RFKFdlYktpdFNwZWxsQ2hlY2tlckVuY2hh
bnQsIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnQsIEdfVFlQRV9PQkpFQ1QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBHX0lNUExFTUVOVF9JTlRFUkZBQ0UoV0VCS0lUX1RZUEVfU1BFTExf
Q0hFQ0tFUiwKQEAgLTExOSwxNCArMTE5LDE0IEBAIHN0YXRpYyB2b2lkIGlnbm9yZVdvcmQoV2Vi
S2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiB3b3JkKQogICAgIHByaXYtPnRl
eHRDaGVja2VyRW5jaGFudC0+aWdub3JlV29yZChTdHJpbmc6OmZyb21VVEY4KHdvcmQpKTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVsbF9jaGVja2Vy
X2ludGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSogaW50ZXJmYWNlKQor
c3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVsbF9jaGVja2VyX2lu
dGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSogaWZhY2UpCiB7Ci0gICAg
aW50ZXJmYWNlLT5jaGVja19zcGVsbGluZ19vZl9zdHJpbmcgPSBjaGVja1NwZWxsaW5nT2ZTdHJp
bmc7Ci0gICAgaW50ZXJmYWNlLT5nZXRfZ3Vlc3Nlc19mb3Jfd29yZCA9IGdldEd1ZXNzZXNGb3JX
b3JkOwotICAgIGludGVyZmFjZS0+dXBkYXRlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyA9IHVw
ZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXM7Ci0gICAgaW50ZXJmYWNlLT5nZXRfYXV0b2NvcnJl
Y3Rfc3VnZ2VzdGlvbnNfZm9yX21pc3NwZWxsZWRfd29yZCA9IGdldEF1dG9jb3JyZWN0U3VnZ2Vz
dGlvbnNGb3JNaXNzcGVsbGVkV29yZDsKLSAgICBpbnRlcmZhY2UtPmxlYXJuX3dvcmQgPSBsZWFy
bldvcmQ7Ci0gICAgaW50ZXJmYWNlLT5pZ25vcmVfd29yZCA9IGlnbm9yZVdvcmQ7CisgICAgaWZh
Y2UtPmNoZWNrX3NwZWxsaW5nX29mX3N0cmluZyA9IGNoZWNrU3BlbGxpbmdPZlN0cmluZzsKKyAg
ICBpZmFjZS0+Z2V0X2d1ZXNzZXNfZm9yX3dvcmQgPSBnZXRHdWVzc2VzRm9yV29yZDsKKyAgICBp
ZmFjZS0+dXBkYXRlX3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyA9IHVwZGF0ZVNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXM7CisgICAgaWZhY2UtPmdldF9hdXRvY29ycmVjdF9zdWdnZXN0aW9uc19mb3Jf
bWlzc3BlbGxlZF93b3JkID0gZ2V0QXV0b2NvcnJlY3RTdWdnZXN0aW9uc0Zvck1pc3NwZWxsZWRX
b3JkOworICAgIGlmYWNlLT5sZWFybl93b3JkID0gbGVhcm5Xb3JkOworICAgIGlmYWNlLT5pZ25v
cmVfd29yZCA9IGlnbm9yZVdvcmQ7CiB9CiAKICNlbmRpZiAvKiBFTkFCTEUoU1BFTExDSEVDSykg
Ki8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156956</attachid>
            <date>2012-08-07 08:57:48 -0700</date>
            <delta_ts>2012-09-25 11:36:03 -0700</delta_ts>
            <desc>patch with style fix</desc>
            <filename>spellcheck.diff</filename>
            <type>text/plain</type>
            <size>3763</size>
            <attacher>tuxator</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCAxZTYyNjEyLi4yM2RmYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTItMDgtMDYgIFBhd2XFgiBGb3J5c2l1ayAgPHR1eGF0b3JAbzIu
cGw+CisKKyAgICAgICAgW0dUS10gV2Via2l0R1RLIGZhaWxzIHRvIGJ1aWxkIHdpdGggTWluR1cg
d2l0aCBzcGVsbGNoZWNraW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTkzMjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQnVpbGQgZGllcyBiZWNhdXNlIG9mIGludmFsaWQgY2FzdC4gQWRk
aXRpb25hbHkgd29yZCAiaW50ZXJmYWNlIiBpcyBpbiB1c2Ugd2l0aAorICAgICAgICBNaW5HVyBj
b21waWxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3Rr
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxp
bmdPZlN0cmluZyk6IFVzZSBtaW5ndy1mcmllbmRseSBjYXN0CisgICAgICAgICogd2Via2l0L3dl
YmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOgorICAgICAgICAod2Via2l0X3NwZWxsX2NoZWNr
ZXJfZW5jaGFudF9zcGVsbF9jaGVja2VyX2ludGVyZmFjZV9pbml0KTogcmVuYW1lIGludGVyZmFj
ZSAtPiBpZmFjZQorCiAyMDEyLTA4LTA2ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBv
emRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFtHVEtdIFJlZ2lzdGVyIFByb3Rv
Y29sIEhhbmRsZXIgQ2xpZW50IGlzIG5ldmVyIGRlbGV0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcAppbmRl
eCBlMTI4YWQyLi43NjhmYTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwCkBAIC02MSw3ICs2MSw3IEBA
IHZvaWQgVGV4dENoZWNrZXJDbGllbnRHdGs6OmxlYXJuV29yZChjb25zdCBTdHJpbmcmIHRleHQp
CiAKIHZvaWQgVGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25z
dCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQq
IG1pc3NwZWxsaW5nTGVuZ3RoKQogewotICAgIEdPd25QdHI8Z2NoYXI+IHV0ZjhUZXh0KGdfdXRm
MTZfdG9fdXRmOChjb25zdF9jYXN0PGd1bmljaGFyMio+KHRleHQpLCBsZW5ndGgsIDAsIDAsIDAp
KTsKKyAgICBHT3duUHRyPGdjaGFyPiB1dGY4VGV4dChnX3V0ZjE2X3RvX3V0ZjgocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBndW5pY2hhcjIqPih0ZXh0KSwgbGVuZ3RoLCAwLCAwLCAwKSk7CiAgICAg
d2Via2l0X3NwZWxsX2NoZWNrZXJfY2hlY2tfc3BlbGxpbmdfb2Zfc3RyaW5nKG1fc3BlbGxDaGVj
a2VyLmdldCgpLCB1dGY4VGV4dC5nZXQoKSwgbWlzc3BlbGxpbmdMb2NhdGlvbiwgbWlzc3BlbGxp
bmdMZW5ndGgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Vi
a2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKaW5kZXggMDdkMzRkMS4uMmI4ZjVlNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNo
YW50LmNwcApAQCAtNDMsNyArNDMsNyBAQCBzdHJ1Y3QgX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hh
bnRQcml2YXRlIHsKICAgICBPd25QdHI8VGV4dENoZWNrZXJFbmNoYW50PiB0ZXh0Q2hlY2tlckVu
Y2hhbnQ7CiB9OwogCi1zdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50X3Nw
ZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJmYWNlKiBp
bnRlcmZhY2UpOworc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVs
bF9jaGVja2VyX2ludGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFjZSogaWZh
Y2UpOwogCiBHX0RFRklORV9UWVBFX1dJVEhfQ09ERShXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50
LCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50LCBHX1RZUEVfT0JKRUNULAogICAgICAgICAg
ICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9UWVBFX1NQRUxMX0NI
RUNLRVIsCkBAIC0xMTksMTQgKzExOSwxNCBAQCBzdGF0aWMgdm9pZCBpZ25vcmVXb3JkKFdlYktp
dFNwZWxsQ2hlY2tlciogY2hlY2tlciwgY29uc3QgY2hhciogd29yZCkKICAgICBwcml2LT50ZXh0
Q2hlY2tlckVuY2hhbnQtPmlnbm9yZVdvcmQoU3RyaW5nOjpmcm9tVVRGOCh3b3JkKSk7CiB9CiAK
LXN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfc3BlbGxfY2hlY2tlcl9p
bnRlcmZhY2VfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2UqIGludGVyZmFjZSkKK3N0
YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfc3BlbGxfY2hlY2tlcl9pbnRl
cmZhY2VfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJJbnRlcmZhY2UqIGlmYWNlKQogewotICAgIGlu
dGVyZmFjZS0+Y2hlY2tfc3BlbGxpbmdfb2Zfc3RyaW5nID0gY2hlY2tTcGVsbGluZ09mU3RyaW5n
OwotICAgIGludGVyZmFjZS0+Z2V0X2d1ZXNzZXNfZm9yX3dvcmQgPSBnZXRHdWVzc2VzRm9yV29y
ZDsKLSAgICBpbnRlcmZhY2UtPnVwZGF0ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgPSB1cGRh
dGVTcGVsbENoZWNraW5nTGFuZ3VhZ2VzOwotICAgIGludGVyZmFjZS0+Z2V0X2F1dG9jb3JyZWN0
X3N1Z2dlc3Rpb25zX2Zvcl9taXNzcGVsbGVkX3dvcmQgPSBnZXRBdXRvY29ycmVjdFN1Z2dlc3Rp
b25zRm9yTWlzc3BlbGxlZFdvcmQ7Ci0gICAgaW50ZXJmYWNlLT5sZWFybl93b3JkID0gbGVhcm5X
b3JkOwotICAgIGludGVyZmFjZS0+aWdub3JlX3dvcmQgPSBpZ25vcmVXb3JkOworICAgIGlmYWNl
LT5jaGVja19zcGVsbGluZ19vZl9zdHJpbmcgPSBjaGVja1NwZWxsaW5nT2ZTdHJpbmc7CisgICAg
aWZhY2UtPmdldF9ndWVzc2VzX2Zvcl93b3JkID0gZ2V0R3Vlc3Nlc0ZvcldvcmQ7CisgICAgaWZh
Y2UtPnVwZGF0ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgPSB1cGRhdGVTcGVsbENoZWNraW5n
TGFuZ3VhZ2VzOworICAgIGlmYWNlLT5nZXRfYXV0b2NvcnJlY3Rfc3VnZ2VzdGlvbnNfZm9yX21p
c3NwZWxsZWRfd29yZCA9IGdldEF1dG9jb3JyZWN0U3VnZ2VzdGlvbnNGb3JNaXNzcGVsbGVkV29y
ZDsKKyAgICBpZmFjZS0+bGVhcm5fd29yZCA9IGxlYXJuV29yZDsKKyAgICBpZmFjZS0+aWdub3Jl
X3dvcmQgPSBpZ25vcmVXb3JkOwogfQogCiAjZW5kaWYgLyogRU5BQkxFKFNQRUxMQ0hFQ0spICov
Cg==
</data>
<flag name="review"
          id="166744"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165648</attachid>
            <date>2012-09-25 11:36:03 -0700</date>
            <delta_ts>2012-09-25 12:11:11 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>spellchecker.diff</filename>
            <type>text/plain</type>
            <size>4033</size>
            <attacher>tuxator</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Z3RrL0NoYW5nZUxvZwppbmRleCBjMWFmYTUzLi42OGNmNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDktMjUgIFBhd2XFgiBGb3J5c2l1ayAgPHR1eGF0b3JAbzIu
cGw+CisKKyAgICAgICAgW0dUS10gV2Via2l0IDEuOC4yIGZhaWxzIHRvIGJ1aWxkIHdpdGggTWlu
R1cgd2l0aCBzcGVsbGNoZWNraW5nIGVuYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMjU1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQnVpbGQgZGllcyBiZWNhdXNlIG9mIGludmFsaWQgY2FzdC4g
QWRkaXRpb25hbHkgd29yZCAiaW50ZXJmYWNlIiBpcyBpbiB1c2Ugd2l0aCBNaW5HVyBjb21waWxl
ci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6VGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxpbmdPZlN0
cmluZyk6IFVzZSBTdHJpbmcgdG8gYXZvaWQgdW5uZWRlZCBjYXN0aW5nCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwOgorICAgICAgICAod2Via2l0X3NwZWxs
X2NoZWNrZXJfZW5jaGFudF9zcGVsbF9jaGVja2VyX2ludGVyZmFjZV9pbml0KTogcmVuYW1lIGlu
dGVyZmFjZSAtPiBjaGVja2VySW50ZXJmYWNlCisKIDIwMTItMDktMTkgIERhbmlsbyBDZXNhciBM
ZW1lcyBkZSBQYXVsYSAgPGRhbmlsby5jZXNhckBjb2xsYWJvcmEuY28udWs+CiAKICAgICAgICAg
W2d0a10gYWRkIGVuYWJsZS1tZWRpYS1zdHJlYW0gdG8gd2Vic2V0dGluZ3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L1RleHRDaGVja2VyQ2xpZW50R3Rr
LmNwcAppbmRleCBlMTI4YWQyLi4yMzIzOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9UZXh0Q2hlY2tlckNsaWVudEd0ay5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvVGV4dENoZWNrZXJDbGllbnRHdGsuY3BwCkBAIC02MSw4
ICs2MSw4IEBAIHZvaWQgVGV4dENoZWNrZXJDbGllbnRHdGs6OmxlYXJuV29yZChjb25zdCBTdHJp
bmcmIHRleHQpCiAKIHZvaWQgVGV4dENoZWNrZXJDbGllbnRHdGs6OmNoZWNrU3BlbGxpbmdPZlN0
cmluZyhjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmd0aCwgaW50KiBtaXNzcGVsbGluZ0xvY2F0
aW9uLCBpbnQqIG1pc3NwZWxsaW5nTGVuZ3RoKQogewotICAgIEdPd25QdHI8Z2NoYXI+IHV0ZjhU
ZXh0KGdfdXRmMTZfdG9fdXRmOChjb25zdF9jYXN0PGd1bmljaGFyMio+KHRleHQpLCBsZW5ndGgs
IDAsIDAsIDApKTsKLSAgICB3ZWJraXRfc3BlbGxfY2hlY2tlcl9jaGVja19zcGVsbGluZ19vZl9z
dHJpbmcobV9zcGVsbENoZWNrZXIuZ2V0KCksIHV0ZjhUZXh0LmdldCgpLCBtaXNzcGVsbGluZ0xv
Y2F0aW9uLCBtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgU3RyaW5nIHRleHRBc1N0cmluZyh0ZXh0
LCBsZW5ndGgpOworICAgIHdlYmtpdF9zcGVsbF9jaGVja2VyX2NoZWNrX3NwZWxsaW5nX29mX3N0
cmluZyhtX3NwZWxsQ2hlY2tlci5nZXQoKSwgdGV4dEFzU3RyaW5nLnV0ZjgoKS5kYXRhKCksIG1p
c3NwZWxsaW5nTG9jYXRpb24sIG1pc3NwZWxsaW5nTGVuZ3RoKTsKIH0KIAogU3RyaW5nIFRleHRD
aGVja2VyQ2xpZW50R3RrOjpnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29y
ZChjb25zdCBTdHJpbmcmIGlucHV0V29yZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcAppbmRleCA4M2JlM2EzLi5lNDYx
NDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVj
a2VyZW5jaGFudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxs
Y2hlY2tlcmVuY2hhbnQuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHN0cnVjdCBfV2ViS2l0U3BlbGxD
aGVja2VyRW5jaGFudFByaXZhdGUgewogICAgIE93blB0cjxUZXh0Q2hlY2tlckVuY2hhbnQ+IHRl
eHRDaGVja2VyRW5jaGFudDsKIH07CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2Vy
X2VuY2hhbnRfc3BlbGxfY2hlY2tlcl9pbnRlcmZhY2VfaW5pdChXZWJLaXRTcGVsbENoZWNrZXJJ
bnRlcmZhY2UqIGludGVyZmFjZSk7CitzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9l
bmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50
ZXJmYWNlKiBjaGVja2VySW50ZXJmYWNlKTsKIAogR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2Vi
S2l0U3BlbGxDaGVja2VyRW5jaGFudCwgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudCwgR19U
WVBFX09CSkVDVCwKICAgICAgICAgICAgICAgICAgICAgICAgIEdfSU1QTEVNRU5UX0lOVEVSRkFD
RShXRUJLSVRfVFlQRV9TUEVMTF9DSEVDS0VSLApAQCAtMTIyLDE0ICsxMjIsMTQgQEAgc3RhdGlj
IHZvaWQgaWdub3JlV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIq
IHdvcmQpCiAgICAgcHJpdi0+dGV4dENoZWNrZXJFbmNoYW50LT5pZ25vcmVXb3JkKFN0cmluZzo6
ZnJvbVVURjgod29yZCkpOwogfQogCi1zdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9l
bmNoYW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50
ZXJmYWNlKiBpbnRlcmZhY2UpCitzdGF0aWMgdm9pZCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNo
YW50X3NwZWxsX2NoZWNrZXJfaW50ZXJmYWNlX2luaXQoV2ViS2l0U3BlbGxDaGVja2VySW50ZXJm
YWNlKiBjaGVja2VySW50ZXJmYWNlKQogewotICAgIGludGVyZmFjZS0+Y2hlY2tfc3BlbGxpbmdf
b2Zfc3RyaW5nID0gY2hlY2tTcGVsbGluZ09mU3RyaW5nOwotICAgIGludGVyZmFjZS0+Z2V0X2d1
ZXNzZXNfZm9yX3dvcmQgPSBnZXRHdWVzc2VzRm9yV29yZDsKLSAgICBpbnRlcmZhY2UtPnVwZGF0
ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgPSB1cGRhdGVTcGVsbENoZWNraW5nTGFuZ3VhZ2Vz
OwotICAgIGludGVyZmFjZS0+Z2V0X2F1dG9jb3JyZWN0X3N1Z2dlc3Rpb25zX2Zvcl9taXNzcGVs
bGVkX3dvcmQgPSBnZXRBdXRvY29ycmVjdFN1Z2dlc3Rpb25zRm9yTWlzc3BlbGxlZFdvcmQ7Ci0g
ICAgaW50ZXJmYWNlLT5sZWFybl93b3JkID0gbGVhcm5Xb3JkOwotICAgIGludGVyZmFjZS0+aWdu
b3JlX3dvcmQgPSBpZ25vcmVXb3JkOworICAgIGNoZWNrZXJJbnRlcmZhY2UtPmNoZWNrX3NwZWxs
aW5nX29mX3N0cmluZyA9IGNoZWNrU3BlbGxpbmdPZlN0cmluZzsKKyAgICBjaGVja2VySW50ZXJm
YWNlLT5nZXRfZ3Vlc3Nlc19mb3Jfd29yZCA9IGdldEd1ZXNzZXNGb3JXb3JkOworICAgIGNoZWNr
ZXJJbnRlcmZhY2UtPnVwZGF0ZV9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMgPSB1cGRhdGVTcGVs
bENoZWNraW5nTGFuZ3VhZ2VzOworICAgIGNoZWNrZXJJbnRlcmZhY2UtPmdldF9hdXRvY29ycmVj
dF9zdWdnZXN0aW9uc19mb3JfbWlzc3BlbGxlZF93b3JkID0gZ2V0QXV0b2NvcnJlY3RTdWdnZXN0
aW9uc0Zvck1pc3NwZWxsZWRXb3JkOworICAgIGNoZWNrZXJJbnRlcmZhY2UtPmxlYXJuX3dvcmQg
PSBsZWFybldvcmQ7CisgICAgY2hlY2tlckludGVyZmFjZS0+aWdub3JlX3dvcmQgPSBpZ25vcmVX
b3JkOwogfQogCiAjZW5kaWYgLyogRU5BQkxFKFNQRUxMQ0hFQ0spICovCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>