<?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>16222</bug_id>
          
          <creation_ts>2007-12-01 06:35:32 -0800</creation_ts>
          <short_desc>[GTK] Implement inline search and highlighting of matching strings.</short_desc>
          <delta_ts>2007-12-19 16:24:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Christian Dywan">christian</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cosimoc</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>sven</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>62868</commentid>
    <comment_count>0</comment_count>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-01 06:35:32 -0800</bug_when>
    <thetext>We want to be able to search for text in a website and highlight matching strings.

WebKitMac and WebKitWin have WebView::searchFor.

The term &apos;search&apos; can be found at several places in Gtk/ Glib, such as gtk_text_iter_forward_search, gtk_tree_view_set_enable_search or g_sequence_search_iter.

I suggest webkit_web_view_search_string. I chose the term &apos;string&apos; because a website could just as well be searched for hyperlinks or images.

Would we want to have an equivalent for frames? Mac and Win don&apos;t. I imagine we don&apos;t want one either, but comments are of course welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62869</commentid>
    <comment_count>1</comment_count>
      <attachid>17622</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-01 06:40:00 -0800</bug_when>
    <thetext>Created attachment 17622
Implement the feature

webkit_web_view_search_string
webkit_web_view_highlight_matches
webkit_web_view_clear_highlight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62870</commentid>
    <comment_count>2</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2007-12-01 06:49:29 -0800</bug_when>
    <thetext>+gboolean webkit_web_view_search_string(WebKitWebView* webView, const gchar* string, gboolean forward, gboolean case_sensitive, gboolean wrap)
+{
+    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
+    g_return_val_if_fail(string, NULL);

The function returns boolean, so it&apos;s FALSE :)

+guint webkit_web_view_highlight_matches(WebKitWebView* webView, const gchar* string, gboolean case_sensitive, guint limit)
+{
+    g_return_val_if_fail(WEBKIT_IS_WEB_VIEW(webView), NULL);
+    g_return_val_if_fail(string, NULL);

And zero here I guess.

Looks good to me other than that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62873</commentid>
    <comment_count>3</comment_count>
      <attachid>17623</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-01 08:29:11 -0800</bug_when>
    <thetext>Created attachment 17623
Fixed return values; implementation following the win port now

The return values are fixed.

Further testing showed that a more sophisticated implementation is required and in fact most of the relevant code from the Win port was taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62893</commentid>
    <comment_count>4</comment_count>
      <attachid>17623</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-12-01 10:44:05 -0800</bug_when>
    <thetext>Comment on attachment 17623
Fixed return values; implementation following the win port now

I think it would be a good idea to move the code that was copied from the Windows port onto WebCore::Page, rather than copying it all here, since presumably other ports will want it, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62985</commentid>
    <comment_count>5</comment_count>
      <attachid>17650</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-02 09:55:36 -0800</bug_when>
    <thetext>Created attachment 17650
search and highlighting logic in WebCore

As suggested by aroben I moved the actual logic to WebCore::Page and the gtk api has appropriate wrappers to use it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62988</commentid>
    <comment_count>6</comment_count>
      <attachid>17650</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-12-02 10:03:25 -0800</bug_when>
    <thetext>Comment on attachment 17650
search and highlighting logic in WebCore

 207 static Frame *incrementFrame(Frame *curr, bool forward, bool wrapFlag)

The *s are misplaced here -- they should go next to the type.

 214 bool Page::findString(const String&amp; target, bool forward, bool caseFlag, bool wrapFlag)

I think caseFlag should be called caseSensitive and wrapFlag should be called wrap or shouldWrap.

 244 uint Page::markAllMatchesForText(const String&amp; target, bool caseSensitive, bool highlight, uint limit)

You should use unsigned instead of uint.

 249     uint matches = 0;

Ditto.

 102         bool findString(const String&amp;, bool, bool, bool);

Can this method be const?

It would be nice to change some of the do-while loops into for loops, but that&apos;s optional for this patch.

r- to fix these issues, then let&apos;s get this in! Thanks for putting this down in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>62996</commentid>
    <comment_count>7</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2007-12-02 10:08:30 -0800</bug_when>
    <thetext>(In reply to comment #0)

&gt; I suggest webkit_web_view_search_string. I chose the term &apos;string&apos; because a
&gt; website could just as well be searched for hyperlinks or images.

Hi Christian. What do you think of webkit_web_view_search_text? 
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63012</commentid>
    <comment_count>8</comment_count>
      <attachid>17654</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-02 11:53:02 -0800</bug_when>
    <thetext>Created attachment 17654
Fixed style issues, renamed string to text

I fixed the style issues Adam pointed out. I left the loops for now.

&gt; 102         bool findString(const String&amp;, bool, bool, bool);

I think that must not be const because it may modify the selection and the focus.

&gt; Hi Christian. What do you think of webkit_web_view_search_text?

In fact I looked through a few gtk functions again and &apos;text&apos; is probably the appropriate term. So I renamed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63013</commentid>
    <comment_count>9</comment_count>
      <attachid>17654</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-12-02 12:12:24 -0800</bug_when>
    <thetext>Comment on attachment 17654
Fixed style issues, renamed string to text

+/**
+ * webkit_web_view_search_text:
+ * @web_view: a #WebKitWebView
+ * @text: a string to look for
+ * @forward: wether to find forward or not
+ * @case_sensitive: wether to respect the case of text
+ * @wrap: wether to continue looking at the beginning after reaching the end
+ *
+ * Looks for a specified string inside #web_view.
+ *
+ * Return value: %TRUE on success or %FALSE on failure
+ */
+gboolean webkit_web_view_search_text(WebKitWebView* webView, const gchar* string, gboolean forward, gboolean caseSensitive, gboolean shouldWrap)

Do the names of parameters in the documentation need to match their names in the function definition?

+uint Page::markAllMatchesForText(const String&amp; target, bool caseSensitive, bool highlight, unsigned limit)

This needs to return an unsigned as well.

r=me, but whoever lands this needs to fix the return type of markAllMatchesForText.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63341</commentid>
    <comment_count>10</comment_count>
      <attachid>17654</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-12-05 08:18:19 -0800</bug_when>
    <thetext>Comment on attachment 17654
Fixed style issues, renamed string to text

The use of so many boolean parameters on Page::findString makes me uncomfortable.  It will make the call sites hard to interpret without referring to the headers.

The argument names in the header need to be named as their meanings are not at all obvious based on the context.

I think the !!s should be removed as they were a Windows-ism.

The &quot;found&quot; variable in Page::findString looks to be redundant and could be removed with a tiny bit of tweaking, without losing any clarity.

The ternary operator in Page::markAllMatchesForText could do with a little bit of cleanup -- the spacing looks non-standard.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63353</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-12-05 09:25:20 -0800</bug_when>
    <thetext>Here&apos;s the relevant SPI from the Mac port (WebDocumentInternal.h):

@protocol WebMultipleTextMatches &lt;NSObject&gt;
- (void)setMarkedTextMatchesAreHighlighted:(BOOL)newValue;
- (BOOL)markedTextMatchesAreHighlighted;
- (WebNSUInteger)markAllMatchesForText:(NSString *)string caseSensitive:(BOOL)caseFlag limit:(WebNSUInteger)limit;
- (void)unmarkAllTextMatches;
- (NSArray *)rectsForTextMatches;
@end

Perhaps we should consider the form of the API a bit more before landing it, since APIs are hard to change once they exist.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63358</commentid>
    <comment_count>12</comment_count>
      <attachid>17719</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-05 10:37:25 -0800</bug_when>
    <thetext>Created attachment 17719
Address issues pointed out by Mark

This patch addresses the issues pointed out by Mark.

As Adam points out we might want to discuss the currently proposed api. For instance highlighting can be toggled independently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63368</commentid>
    <comment_count>13</comment_count>
      <attachid>17722</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-05 11:17:59 -0800</bug_when>
    <thetext>Created attachment 17722
Changed api to allow separate toggling of highlighting

I changed the api to separate marking of strings and highlighting optionally. This has the side effect of a slightly clearer api.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63805</commentid>
    <comment_count>14</comment_count>
      <attachid>17819</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-10 04:04:51 -0800</bug_when>
    <thetext>Created attachment 17819
api update

Just noticed the previous patch was only half up to date.

My current proposal provides these functions:

webkit_web_view_search_text (web_view, string, case_sensitive, forward, wrap)
webkit_web_view_mark_text_matches (web_view, string, case_sensitive, limit)
webkit_web_view_set_highlight_text_matches (web_view, highlight)
webkit_web_view_unmark_text_matches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63807</commentid>
    <comment_count>15</comment_count>
      <attachid>17820</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-10 04:09:26 -0800</bug_when>
    <thetext>Created attachment 17820
api update, this time with webcore changes

Talk about *half* done, updated to include changes to WebCore again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64439</commentid>
    <comment_count>16</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-16 16:57:36 -0800</bug_when>
    <thetext>Looks like this does a reasonable job of reimplementing what the Mac API does (with the handy simplification that it doesn&apos;t have to consider the whole WebDocumentView mess). Someone needs to give approval for the API. Alp?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64486</commentid>
    <comment_count>17</comment_count>
      <attachid>17952</attachid>
    <who name="Christian Dywan">christian</who>
    <bug_when>2007-12-17 01:03:47 -0800</bug_when>
    <thetext>Created attachment 17952
update to keep in synch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64768</commentid>
    <comment_count>18</comment_count>
      <attachid>17952</attachid>
    <who name="Alp Toker">alp</who>
    <bug_when>2007-12-19 16:19:58 -0800</bug_when>
    <thetext>Comment on attachment 17952
update to keep in synch

r=me

I think we might want to re-visit this at some point since I&apos;m not comfortable with the number of parameters and naming of search_text() but given Maciej&apos;s thumbs-up and the lack of conversation I think we can land this.

Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17622</attachid>
            <date>2007-12-01 06:40:00 -0800</date>
            <delta_ts>2007-12-01 08:29:11 -0800</delta_ts>
            <desc>Implement the feature</desc>
            <filename>search_string.diff</filename>
            <type>text/plain</type>
            <size>4294</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODI5NykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDEgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMS0zMCAg
SmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9AdW5wbHVnZ2FibGUuY29tPgogCiAgICAgICAg
IEZpeCBmb3IgR1RLKyBEZWJ1ZyBidWlsZCBicmVha2FnZSBpbnRyb2R1Y2VkIGluIHIyODI3My4K
SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4Mjc1KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29waWUpCkBA
IC03NzAsNiArNzcwLDY1IEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMoKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3N0cmluZzoKKyAqIEB3ZWJfdmlldzog
YSAjV2ViS2l0V2ViVmlldworICogQHN0cmluZzogYSBzdHJpbmcgdG8gbG9vayBmb3IKKyAqIEBm
b3J3YXJkOiB3ZXRoZXIgdG8gZmluZCBmb3J3YXJkIG9yIG5vdAorICogQGNhc2Vfc2Vuc2l0aXZl
OiB3ZXRoZXIgdG8gcmVzcGVjdCB0aGUgY2FzZSBvZiB0ZXh0CisgKiBAd3JhcDogd2V0aGVyIHRv
IGNvbnRpbnVlIGxvb2tpbmcgYXQgdGhlIGJlZ2lubmluZyBhZnRlciByZWFjaGluZyB0aGUgZW5k
CisgKgorICogTG9va3MgZm9yIGEgc3BlY2lmaWVkIHN0cmluZyBpbnNpZGUgI3dlYl92aWV3Lgor
ICoKKyAqIFJldHVybiB2YWx1ZTogJVRSVUUgb24gc3VjY2VzcyBvciAlRkFMU0Ugb24gZmFpbHVy
ZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3N0cmluZyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9v
bGVhbiBjYXNlX3NlbnNpdGl2ZSwgZ2Jvb2xlYW4gd3JhcCkKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKHN0cmluZywgTlVMTCk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
d2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAg
V2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9Q
UklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUpOworICAgIHJldHVybiBmcmFtZURhdGEtPmZy
YW1lLT5maW5kU3RyaW5nKFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSwgZm9yd2FyZCwgY2FzZV9z
ZW5zaXRpdmUsIHdyYXAsIHRydWUpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19oaWdo
bGlnaHRfbWF0Y2hlczoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQHN0cmlu
ZzogYSBzdHJpbmcgdG8gbG9vayBmb3IKKyAqIEBjYXNlX3NlbnNpdGl2ZTogd2V0aGVyIHRvIHJl
c3BlY3QgdGhlIGNhc2Ugb2YgdGV4dAorICogQGxpbWl0OiB0aGUgbWF4aW11bSBudW1iZXIgb2Yg
c3RyaW5ncyB0byBsb29rIGZvciBvciAlMCBmb3IgYWxsCisgKgorICogQXR0ZW1wdHMgdG8gaGln
aGxpZ2h0IGFsbCBvY2N1cmFuY2VzIG9mICNzdHJpbmcgaW5zaWRlICN3ZWJfdmlldy4KKyAqCisg
KiBSZXR1cm4gdmFsdWU6IHRoZSBudW1iZXIgb2Ygc3RyaW5ncyBoaWdobGlnaHRlZAorICovCitn
dWludCB3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXMoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGd1aW50
IGxpbWl0KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSwgTlVMTCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc3RyaW5nLCBOVUxMKTsK
KworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklF
V19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICBXZWJLaXRXZWJGcmFtZVByaXZhdGUqIGZyYW1l
RGF0YSA9IFdFQktJVF9XRUJfRlJBTUVfR0VUX1BSSVZBVEUod2ViVmlld0RhdGEtPm1haW5GcmFt
ZSk7CisgICAgZnJhbWVEYXRhLT5mcmFtZS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGln
aHRlZChUUlVFKTsKKyAgICByZXR1cm4gZnJhbWVEYXRhLT5mcmFtZS0+bWFya0FsbE1hdGNoZXNG
b3JUZXh0KFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZV9zZW5zaXRpdmUsIGxpbWl0KTsK
K30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfaGlnaGxpZ2h0OgorICogQHdlYl92
aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICogUmVtb3ZlcyBoaWdobGlnaHRpbmcgcHJldmlv
dXNseSBzZXQgYnkgd2Via2l0X3dlYl92aWV3X2hpZ2hsaWdodF9tYXRjaGVzLgorICovCit2b2lk
IHdlYmtpdF93ZWJfdmlld19jbGVhcl9oaWdobGlnaHQoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisK
KyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdf
R0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURh
dGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUp
OworICAgIGZyYW1lRGF0YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0
ZWQoRkFMU0UpOworfQorCiBXZWJLaXRXZWJGcmFtZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWlu
X2ZyYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKSW5kZXg6IFdlYktpdC9ndGsv
V2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3
L3dlYmtpdHdlYnZpZXcuaAkoUmV2aXNpb24gMjgyNzUpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcv
d2Via2l0d2Vidmlldy5oCShBcmJlaXRza29waWUpCkBAIC0xMTgsNiArMTE4LDE1IEBACiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWxfc3RyaW5nIChXZWJLaXRXZWJW
aWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlX3Vy
aSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19zZWFyY2hfc3RyaW5n
IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4g
Zm9yd2FyZCwgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGdib29sZWFuIHdyYXApOworCitXRUJL
SVRfQVBJIGd1aW50Cit3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXMgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNp
dGl2ZSwgZ3VpbnQgbGltaXQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19j
bGVhcl9oaWdobGlnaHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJGcmFtZSoKIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17623</attachid>
            <date>2007-12-01 08:29:11 -0800</date>
            <delta_ts>2007-12-02 09:55:36 -0800</delta_ts>
            <desc>Fixed return values; implementation following the win port now</desc>
            <filename>search_string.diff</filename>
            <type>text/plain</type>
            <size>6729</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODI5NykKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDEgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMS0zMCAg
SmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9AdW5wbHVnZ2FibGUuY29tPgogCiAgICAgICAg
IEZpeCBmb3IgR1RLKyBEZWJ1ZyBidWlsZCBicmVha2FnZSBpbnRyb2R1Y2VkIGluIHIyODI3My4K
SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4Mjc1KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29waWUpCkBA
IC0zLDYgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA3IENocmlzdGlhbiBEeXdhbiA8Y2hy
aXN0aWFuQHR3b3RvYXN0cy5kZT4KICAqIENvcHlyaWdodCAoQykgMjAwNyBYYW4gTG9wZXogPHhh
bkBnbm9tZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDIs
OCBAQAogI2luY2x1ZGUgIkRyYWdDbGllbnRHdGsuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRH
dGsuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKyNpbmNsdWRlICJGb2N1c0NvbnRyb2xs
ZXIuaCIKKyNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5o
IgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQu
aCIKQEAgLTQ5LDYgKzUyLDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIK
KyNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU3Vic3RpdHV0ZURh
dGEuaCIKIAogI2luY2x1ZGUgPGdkay9nZGtrZXlzeW1zLmg+CkBAIC03NzAsNiArNzc0LDEwNSBA
QAogICAgICAgICBsb2FkZXItPnN0b3BBbGxMb2FkZXJzKCk7CiB9CiAKK3N0YXRpYyBGcmFtZSAq
aW5jcmVtZW50RnJhbWUoRnJhbWUgKmN1cnIsIGJvb2wgZm9yd2FyZCwgYm9vbCB3cmFwRmxhZykK
K3sKKyAgICByZXR1cm4gZm9yd2FyZAorICAgICAgICA/IGN1cnItPnRyZWUoKS0+dHJhdmVyc2VO
ZXh0V2l0aFdyYXAod3JhcEZsYWcpCisgICAgICAgIDogY3Vyci0+dHJlZSgpLT50cmF2ZXJzZVBy
ZXZpb3VzV2l0aFdyYXAod3JhcEZsYWcpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19z
ZWFyY2hfc3RyaW5nOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAc3RyaW5n
OiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGZvcndhcmQ6IHdldGhlciB0byBmaW5kIGZvcndh
cmQgb3Igbm90CisgKiBAY2FzZV9zZW5zaXRpdmU6IHdldGhlciB0byByZXNwZWN0IHRoZSBjYXNl
IG9mIHRleHQKKyAqIEB3cmFwOiB3ZXRoZXIgdG8gY29udGludWUgbG9va2luZyBhdCB0aGUgYmVn
aW5uaW5nIGFmdGVyIHJlYWNoaW5nIHRoZSBlbmQKKyAqCisgKiBMb29rcyBmb3IgYSBzcGVjaWZp
ZWQgc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgorICogUmV0dXJuIHZhbHVlOiAlVFJVRSBv
biBzdWNjZXNzIG9yICVGQUxTRSBvbiBmYWlsdXJlCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJf
dmlld19zZWFyY2hfc3RyaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBz
dHJpbmcsIGdib29sZWFuIGZvcndhcmQsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBnYm9vbGVh
biB3cmFwKQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0Up
OworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9W
SUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOworICAgIFdlYktpdFdlYkZyYW1lUHJpdmF0ZSogZnJh
bWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJVkFURSh3ZWJWaWV3RGF0YS0+bWFpbkZy
YW1lKTsKKyAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUgPSBmcmFtZURhdGEtPmZyYW1lOworICAg
IFdlYkNvcmU6OkZyYW1lKiBzdGFydEZyYW1lID0gZnJhbWU7CisgICAgU3RyaW5nIHNlYXJjaCA9
IFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKTsKKyAgICBib29sIGZvdW5kOworICAgIGRvIHsKKyAg
ICAgICAgZm91bmQgPSBmcmFtZS0+ZmluZFN0cmluZyhzZWFyY2gsIGZvcndhcmQsIGNhc2Vfc2Vu
c2l0aXZlLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgIGlmIChmb3VuZCkgeworICAgICAgICAgICAg
aWYgKGZyYW1lICE9IHN0YXJ0RnJhbWUpCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZS0+c2Vs
ZWN0aW9uQ29udHJvbGxlcigpLT5jbGVhcigpOworICAgICAgICAgICAgd2ViVmlld0RhdGEtPmNv
cmVQYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKGZyYW1lKTsKKyAgICAg
ICAgICAgIHJldHVybiBUUlVFOworICAgICAgICB9CisgICAgICAgIGZyYW1lID0gaW5jcmVtZW50
RnJhbWUoZnJhbWUsIGZvcndhcmQsIHdyYXApOworICAgIH0gd2hpbGUgKGZyYW1lICYmIGZyYW1l
ICE9IHN0YXJ0RnJhbWUpOworCisgICAgLy8gU2VhcmNoIGNvbnRlbnRzIG9mIHN0YXJ0RnJhbWUs
IG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBzZWxlY3Rpb24gdGhhdCB3ZSBkaWQgZWFybGllci4K
KyAgICAvLyBXZSBjaGVhdCBhIGJpdCBhbmQganVzdCByZXNlYXJjaCB3aXRoIHdyYXAgb24KKyAg
ICBpZiAod3JhcCAmJiAhc3RhcnRGcmFtZS0+c2VsZWN0aW9uQ29udHJvbGxlcigpLT5pc05vbmUo
KSkgeworICAgICAgICBmb3VuZCA9IHN0YXJ0RnJhbWUtPmZpbmRTdHJpbmcoc2VhcmNoLCBmb3J3
YXJkLCBjYXNlX3NlbnNpdGl2ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIHdlYlZpZXdEYXRhLT5j
b3JlUGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShmcmFtZSk7CisgICAg
fQorICAgIHJldHVybiBmb3VuZDsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfaGlnaGxp
Z2h0X21hdGNoZXM6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBzdHJpbmc6
IGEgc3RyaW5nIHRvIGxvb2sgZm9yCisgKiBAY2FzZV9zZW5zaXRpdmU6IHdldGhlciB0byByZXNw
ZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEBsaW1pdDogdGhlIG1heGltdW0gbnVtYmVyIG9mIHN0
cmluZ3MgdG8gbG9vayBmb3Igb3IgJTAgZm9yIGFsbAorICoKKyAqIEF0dGVtcHRzIHRvIGhpZ2hs
aWdodCBhbGwgb2NjdXJhbmNlcyBvZiAjc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgorICog
WW91IHNob3VsZCBjYWxsIHdlYmtpdF93ZWJfdmlld19jbGVhcl9oaWdobGlnaHQgYmV0d2VlbiBt
dXRpcGxlIGNhbGxzIHRvIHRoaXMgZnVuY3Rpb24uCisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUg
bnVtYmVyIG9mIHN0cmluZ3MgaGlnaGxpZ2h0ZWQKKyAqLworZ3VpbnQgd2Via2l0X3dlYl92aWV3
X2hpZ2hsaWdodF9tYXRjaGVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBz
dHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBndWludCBsaW1pdCkKK3sKKyAgICBnX3Jl
dHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDApOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0
ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7Cisg
ICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dF
VF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUpOworICAgIFdlYkNvcmU6OkZyYW1lKiBm
cmFtZSA9IGZyYW1lRGF0YS0+ZnJhbWU7CisgICAgU3RyaW5nIHNlYXJjaCA9IFN0cmluZzo6ZnJv
bVVURjgoc3RyaW5nKTsKKyAgICB1aW50IG1hdGNoZXMgPSAwOworICAgIGRvIHsKKyAgICAgICAg
ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQodHJ1ZSk7CisgICAgICAg
IG1hdGNoZXMgKz0gZnJhbWUtPm1hcmtBbGxNYXRjaGVzRm9yVGV4dChzZWFyY2gsIGNhc2Vfc2Vu
c2l0aXZlLCAobGltaXQgPT0gMCk/IDAgOiAobGltaXQgLSBtYXRjaGVzKSk7CisgICAgICAgIGZy
YW1lID0gaW5jcmVtZW50RnJhbWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAgICB9IHdoaWxlIChm
cmFtZSk7CisgICAgcmV0dXJuIG1hdGNoZXM7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2NsZWFyX2hpZ2hsaWdodDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAq
IFJlbW92ZXMgaGlnaGxpZ2h0aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19o
aWdobGlnaHRfbWF0Y2hlcy4KKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfaGlnaGxp
Z2h0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdl
YlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOworICAgIFdl
YktpdFdlYkZyYW1lUHJpdmF0ZSogZnJhbWVEYXRhID0gV0VCS0lUX1dFQl9GUkFNRV9HRVRfUFJJ
VkFURSh3ZWJWaWV3RGF0YS0+bWFpbkZyYW1lKTsKKyAgICBXZWJDb3JlOjpGcmFtZSogZnJhbWUg
PSBmcmFtZURhdGEtPmZyYW1lOworICAgIGRvIHsKKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZU1h
cmtlcnMoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CisgICAgICAgIGZyYW1lID0gaW5jcmVt
ZW50RnJhbWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAgICB9IHdoaWxlIChmcmFtZSk7Cit9CisK
IFdlYktpdFdlYkZyYW1lKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldyksIE5VTEwpOwpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdl
YnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5o
CShSZXZpc2lvbiAyODI3NSkKKysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJ
KEFyYmVpdHNrb3BpZSkKQEAgLTExOCw2ICsxMTgsMTUgQEAKIFdFQktJVF9BUEkgdm9pZAogd2Vi
a2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBj
b25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIGJhc2VfdXJpKTsKIAorV0VCS0lUX0FQ
SSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X3NlYXJjaF9zdHJpbmcgKFdlYktpdFdlYlZpZXcq
IHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9vbGVh
biBjYXNlX3NlbnNpdGl2ZSwgZ2Jvb2xlYW4gd3JhcCk7CisKK1dFQktJVF9BUEkgZ3VpbnQKK3dl
YmtpdF93ZWJfdmlld19oaWdobGlnaHRfbWF0Y2hlcyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcs
IGNvbnN0IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBndWludCBsaW1p
dCk7CisKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X2NsZWFyX2hpZ2hsaWdodCAo
V2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIFdlYktpdFdlYkZyYW1lKgog
d2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldyk7
CiAK
</data>
<flag name="review"
          id="7585"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17650</attachid>
            <date>2007-12-02 09:55:36 -0800</date>
            <delta_ts>2007-12-02 11:53:02 -0800</delta_ts>
            <desc>search and highlighting logic in WebCore</desc>
            <filename>search_string.diff</filename>
            <type>text/plain</type>
            <size>7907</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODMyMCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDIgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMi0wMSAg
QWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBS
b2Jlbi4KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4
MzIwKQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29w
aWUpCkBAIC03NzAsNiArNzcwLDYxIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMo
KTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3N0cmluZzoKKyAqIEB3ZWJf
dmlldzogYSAjV2ViS2l0V2ViVmlldworICogQHN0cmluZzogYSBzdHJpbmcgdG8gbG9vayBmb3IK
KyAqIEBmb3J3YXJkOiB3ZXRoZXIgdG8gZmluZCBmb3J3YXJkIG9yIG5vdAorICogQGNhc2Vfc2Vu
c2l0aXZlOiB3ZXRoZXIgdG8gcmVzcGVjdCB0aGUgY2FzZSBvZiB0ZXh0CisgKiBAd3JhcDogd2V0
aGVyIHRvIGNvbnRpbnVlIGxvb2tpbmcgYXQgdGhlIGJlZ2lubmluZyBhZnRlciByZWFjaGluZyB0
aGUgZW5kCisgKgorICogTG9va3MgZm9yIGEgc3BlY2lmaWVkIHN0cmluZyBpbnNpZGUgI3dlYl92
aWV3LgorICoKKyAqIFJldHVybiB2YWx1ZTogJVRSVUUgb24gc3VjY2VzcyBvciAlRkFMU0Ugb24g
ZmFpbHVyZQorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3N0cmluZyhXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBmb3J3YXJk
LCBnYm9vbGVhbiBjYXNlX3NlbnNpdGl2ZSwgZ2Jvb2xlYW4gd3JhcCkKK3sKKyAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKyAgICBn
X3JldHVybl92YWxfaWZfZmFpbChzdHJpbmcsIEZBTFNFKTsKKworICAgIFdlYktpdFdlYlZpZXdQ
cml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3
KTsKKyAgICByZXR1cm4gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5maW5kU3RyaW5nKFN0cmluZzo6
ZnJvbVVURjgoc3RyaW5nKSwgZm9yd2FyZCwgY2FzZV9zZW5zaXRpdmUsIHdyYXApOworfQorCisv
KioKKyAqIHdlYmtpdF93ZWJfdmlld19oaWdobGlnaHRfbWF0Y2hlczoKKyAqIEB3ZWJfdmlldzog
YSAjV2ViS2l0V2ViVmlldworICogQHN0cmluZzogYSBzdHJpbmcgdG8gbG9vayBmb3IKKyAqIEBj
YXNlX3NlbnNpdGl2ZTogd2V0aGVyIHRvIHJlc3BlY3QgdGhlIGNhc2Ugb2YgdGV4dAorICogQGxp
bWl0OiB0aGUgbWF4aW11bSBudW1iZXIgb2Ygc3RyaW5ncyB0byBsb29rIGZvciBvciAlMCBmb3Ig
YWxsCisgKgorICogQXR0ZW1wdHMgdG8gaGlnaGxpZ2h0IGFsbCBvY2N1cmFuY2VzIG9mICNzdHJp
bmcgaW5zaWRlICN3ZWJfdmlldy4KKyAqCisgKiBSZXR1cm4gdmFsdWU6IHRoZSBudW1iZXIgb2Yg
c3RyaW5ncyBoaWdobGlnaHRlZAorICovCitndWludCB3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0
X21hdGNoZXMoV2ViS2l0V2ViVmlldyogd2ViVmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jv
b2xlYW4gY2FzZV9zZW5zaXRpdmUsIGd1aW50IGxpbWl0KQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoc3RyaW5nLCAwKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3
RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1cm4g
d2ViVmlld0RhdGEtPmNvcmVQYWdlLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQoU3RyaW5nOjpmcm9t
VVRGOChzdHJpbmcpLCBjYXNlX3NlbnNpdGl2ZSwgdHJ1ZSwgbGltaXQpOworfQorCisvKioKKyAq
IHdlYmtpdF93ZWJfdmlld19jbGVhcl9oaWdobGlnaHQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktp
dFdlYlZpZXcKKyAqCisgKiBSZW1vdmVzIGhpZ2hsaWdodGluZyBwcmV2aW91c2x5IHNldCBieSB3
ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXMuCisgKi8KK3ZvaWQgd2Via2l0X3dlYl92
aWV3X2NsZWFyX2hpZ2hsaWdodChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdl
YlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3
ZWJWaWV3KTsKKyAgICByZXR1cm4gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT51bm1hcmtBbGxUZXh0
TWF0Y2hlcygpOworfQorCiBXZWJLaXRXZWJGcmFtZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWlu
X2ZyYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2Zh
aWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBOVUxMKTsKSW5kZXg6IFdlYktpdC9ndGsv
V2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3
L3dlYmtpdHdlYnZpZXcuaAkoUmV2aXNpb24gMjgzMjApCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcv
d2Via2l0d2Vidmlldy5oCShBcmJlaXRza29waWUpCkBAIC0xMTgsNiArMTE4LDE1IEBACiBXRUJL
SVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWxfc3RyaW5nIChXZWJLaXRXZWJW
aWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNvbnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlX3Vy
aSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19zZWFyY2hfc3RyaW5n
IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4g
Zm9yd2FyZCwgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGdib29sZWFuIHdyYXApOworCitXRUJL
SVRfQVBJIGd1aW50Cit3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXMgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNp
dGl2ZSwgZ3VpbnQgbGltaXQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19j
bGVhcl9oaWdobGlnaHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJGcmFtZSoKIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOwogCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0NoYW5nZUxvZwkoUmV2aXNpb24gMjgzMjApCisrKyBXZWJDb3JlL0NoYW5nZUxv
ZwkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDIxIEBACisyMDA3LTEyLTAyICBDaHJpc3RpYW4g
RHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MjIyCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBpbmxpbmUgc2VhcmNoIGFuZCBo
aWdobGlnaHRpbmcgb2YgbWF0Y2hpbmcgc3RyaW5ncy4KKworICAgICAgICBJbXBsZW1lbnQgc2Vh
cmNoIGFuZCBoaWdobGlnaHRpbmcgbG9naWMgZGlyZWN0bHkgaW4gV2ViQ29yZS4KKworICAgICAg
ICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbmNyZW1lbnRGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1h
cmtBbGxNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1bm1hcmtBbGxU
ZXh0TWF0Y2hlcyk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMDctMTItMDIgIE1hcmsg
Um93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgYW5kIGZpeCB0aGUgV2luZG93
cyBidWlsZC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKFJldmlzaW9uIDI4MzIwKQorKysgV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShBcmJlaXRza29waWUpCkBAIC0yMDQsNiArMjA0LDczIEBACiAgICAgICAgICAgICBmcmFt
ZS0+c2V0TmVlZHNSZWFwcGx5U3R5bGVzKCk7CiB9CiAKK3N0YXRpYyBGcmFtZSAqaW5jcmVtZW50
RnJhbWUoRnJhbWUgKmN1cnIsIGJvb2wgZm9yd2FyZCwgYm9vbCB3cmFwRmxhZykKK3sKKyAgICBy
ZXR1cm4gZm9yd2FyZAorICAgICAgICA/IGN1cnItPnRyZWUoKS0+dHJhdmVyc2VOZXh0V2l0aFdy
YXAod3JhcEZsYWcpCisgICAgICAgIDogY3Vyci0+dHJlZSgpLT50cmF2ZXJzZVByZXZpb3VzV2l0
aFdyYXAod3JhcEZsYWcpOworfQorCitib29sIFBhZ2U6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5n
JiB0YXJnZXQsIGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlRmxhZywgYm9vbCB3cmFwRmxhZykKK3sK
KyAgICBpZiAodGFyZ2V0LmlzRW1wdHkoKSB8fCAhbWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGJvb2wgZm91bmQ7CisKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c0Nv
bnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRnJhbWUqIHN0YXJ0RnJhbWUg
PSBmcmFtZTsKKyAgICBkbyB7CisgICAgICAgIGZvdW5kID0gZnJhbWUtPmZpbmRTdHJpbmcodGFy
Z2V0LCAhIWZvcndhcmQsICEhY2FzZUZsYWcsIGZhbHNlLCB0cnVlKTsKKyAgICAgICAgaWYgKGZv
dW5kKSB7CisgICAgICAgICAgICBpZiAoZnJhbWUgIT0gc3RhcnRGcmFtZSkKKyAgICAgICAgICAg
ICAgICBzdGFydEZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmNsZWFyKCk7CisgICAgICAg
ICAgICBmb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKGZyYW1lKTsKKyAgICAgICAg
ICAgIHJldHVybiBmb3VuZDsKKyAgICAgICAgfQorICAgICAgICBmcmFtZSA9IGluY3JlbWVudEZy
YW1lKGZyYW1lLCAhIWZvcndhcmQsICEhd3JhcEZsYWcpOworICAgIH0gd2hpbGUgKGZyYW1lICYm
IGZyYW1lICE9IHN0YXJ0RnJhbWUpOworCisgICAgLy8gU2VhcmNoIGNvbnRlbnRzIG9mIHN0YXJ0
RnJhbWUsIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBzZWxlY3Rpb24gdGhhdCB3ZSBkaWQgZWFy
bGllci4KKyAgICAvLyBXZSBjaGVhdCBhIGJpdCBhbmQganVzdCByZXNlYXJjaCB3aXRoIHdyYXAg
b24KKyAgICBpZiAod3JhcEZsYWcgJiYgIXN0YXJ0RnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIo
KS0+aXNOb25lKCkpIHsKKyAgICAgICAgZm91bmQgPSBzdGFydEZyYW1lLT5maW5kU3RyaW5nKHRh
cmdldCwgISFmb3J3YXJkLCAhIWNhc2VGbGFnLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgZm9jdXND
b250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShmcmFtZSk7CisgICAgfQorCisgICAgcmV0dXJu
IGZvdW5kOworfQorCit1aW50IFBhZ2U6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJp
bmcmIHRhcmdldCwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29sIGhpZ2hsaWdodCwgdWludCBsaW1p
dCkKK3sKKyAgICBpZiAodGFyZ2V0LmlzRW1wdHkoKSB8fCAhbWFpbkZyYW1lKCkpCisgICAgICAg
IHJldHVybiAwOworCisgICAgdWludCBtYXRjaGVzID0gMDsKKworICAgIEZyYW1lKiBmcmFtZSA9
IG1haW5GcmFtZSgpOworICAgIGRvIHsKKyAgICAgICAgZnJhbWUtPnNldE1hcmtlZFRleHRNYXRj
aGVzQXJlSGlnaGxpZ2h0ZWQoaGlnaGxpZ2h0KTsKKyAgICAgICAgbWF0Y2hlcyArPSBmcmFtZS0+
bWFya0FsbE1hdGNoZXNGb3JUZXh0KHRhcmdldCwgY2FzZVNlbnNpdGl2ZSwgKGxpbWl0ID09IDAp
PyAwIDogKGxpbWl0IC0gbWF0Y2hlcykpOworICAgICAgICBmcmFtZSA9IGluY3JlbWVudEZyYW1l
KGZyYW1lLCB0cnVlLCBmYWxzZSk7CisgICAgfSB3aGlsZSAoZnJhbWUpOworCisgICAgcmV0dXJu
IG1hdGNoZXM7Cit9CisKK3ZvaWQgUGFnZTo6dW5tYXJrQWxsVGV4dE1hdGNoZXMoKQoreworICAg
IGlmICghbWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsKKworICAgIEZyYW1lKiBmcmFtZSA9
IG1haW5GcmFtZSgpOworICAgIGRvIHsKKyAgICAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9
IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnJlbW92ZU1hcmtlcnMo
RG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7CisgICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJh
bWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAgICB9IHdoaWxlIChmcmFtZSk7Cit9CisKIGNvbnN0
IFNlbGVjdGlvbiYgUGFnZTo6c2VsZWN0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gZm9jdXND
b250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5zZWxlY3Rpb25Db250cm9sbGVyKCkt
PnNlbGVjdGlvbigpOwpJbmRleDogV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvUGFnZS5oCShSZXZpc2lvbiAyODMyMCkKKysrIFdlYkNvcmUvcGFnZS9QYWdl
LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTk4LDcgKzk4LDExIEBACiAgICAgICAgIAogICAgICAgICB2
b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGIpIHsgbV90YWJLZXlDeWNs
ZXNUaHJvdWdoRWxlbWVudHMgPSBiOyB9CiAgICAgICAgIGJvb2wgdGFiS2V5Q3ljbGVzVGhyb3Vn
aEVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHM7
IH0KLSAgICAgICAgCisKKyAgICAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYsIGJv
b2wsIGJvb2wsIGJvb2wpOworICAgICAgICB1aW50IG1hcmtBbGxNYXRjaGVzRm9yVGV4dChjb25z
dCBTdHJpbmcmLCBib29sLCBib29sLCB1aW50KTsKKyAgICAgICAgdm9pZCB1bm1hcmtBbGxUZXh0
TWF0Y2hlcygpOworCiAgICAgICAgIGNvbnN0IFNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3Q7
CiAKICAgICAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwo=
</data>
<flag name="review"
          id="7594"
          type_id="1"
          status="-"
          setter="aroben"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17654</attachid>
            <date>2007-12-02 11:53:02 -0800</date>
            <delta_ts>2007-12-05 10:37:25 -0800</delta_ts>
            <desc>Fixed style issues, renamed string to text</desc>
            <filename>search_string.diff</filename>
            <type>text/plain</type>
            <size>7940</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODMyMCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDIgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMi0wMSAg
QWxwIFRva2VyICA8YWxwQGF0b2tlci5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBS
b2Jlbi4KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4
MzIwKQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29w
aWUpCkBAIC03NzAsNiArNzcwLDYxIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMo
KTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6CisgKiBAd2ViX3Zp
ZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29rIGZvcgorICog
QGZvcndhcmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2FzZV9zZW5zaXRp
dmU6IHdldGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFwOiB3ZXRoZXIg
dG8gY29udGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNoaW5nIHRoZSBl
bmQKKyAqCisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcu
CisgKgorICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxTRSBvbiBmYWls
dXJlCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9v
bGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgV2ViS2l0V2ViVmlld1By
aXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcp
OworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPmZpbmRTdHJpbmcoU3RyaW5nOjpm
cm9tVVRGOChzdHJpbmcpLCBmb3J3YXJkLCBjYXNlU2Vuc2l0aXZlLCBzaG91bGRXcmFwKTsKK30K
KworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXM6CisgKiBAd2ViX3Zp
ZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBzdHJpbmc6IGEgc3RyaW5nIHRvIGxvb2sgZm9yCisg
KiBAY2FzZV9zZW5zaXRpdmU6IHdldGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAq
IEBsaW1pdDogdGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cmluZ3MgdG8gbG9vayBmb3Igb3IgJTAg
Zm9yIGFsbAorICoKKyAqIEF0dGVtcHRzIHRvIGhpZ2hsaWdodCBhbGwgb2NjdXJhbmNlcyBvZiAj
c3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgorICogUmV0dXJuIHZhbHVlOiB0aGUgbnVtYmVy
IG9mIHN0cmluZ3MgaGlnaGxpZ2h0ZWQKKyAqLworZ3VpbnQgd2Via2l0X3dlYl92aWV3X2hpZ2hs
aWdodF9tYXRjaGVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0IGdjaGFyKiBzdHJpbmcs
IGdib29sZWFuIGNhc2VTZW5zaXRpdmUsIGd1aW50IGxpbWl0KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgMCk7CisgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoc3RyaW5nLCAwKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJW
aWV3RGF0YSA9IFdFQktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1
cm4gd2ViVmlld0RhdGEtPmNvcmVQYWdlLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQoU3RyaW5nOjpm
cm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZlLCB0cnVlLCBsaW1pdCk7Cit9CisKKy8qKgor
ICogd2Via2l0X3dlYl92aWV3X2NsZWFyX2hpZ2hsaWdodDoKKyAqIEB3ZWJfdmlldzogYSAjV2Vi
S2l0V2ViVmlldworICoKKyAqIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIHByZXZpb3VzbHkgc2V0IGJ5
IHdlYmtpdF93ZWJfdmlld19oaWdobGlnaHRfbWF0Y2hlcy4KKyAqLwordm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfY2xlYXJfaGlnaGxpZ2h0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19y
ZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgV2ViS2l0
V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklWQVRF
KHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPnVubWFya0FsbFRl
eHRNYXRjaGVzKCk7Cit9CisKIFdlYktpdFdlYkZyYW1lKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X21h
aW5fZnJhbWUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5VTEwpOwpJbmRleDogV2ViS2l0L2d0
ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZp
ZXcvd2Via2l0d2Vidmlldy5oCShSZXZpc2lvbiAyODMyMCkKKysrIFdlYktpdC9ndGsvV2ViVmll
dy93ZWJraXR3ZWJ2aWV3LmgJKEFyYmVpdHNrb3BpZSkKQEAgLTExOCw2ICsxMTgsMTUgQEAKIFdF
QktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3X2xvYWRfaHRtbF9zdHJpbmcgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogY29udGVudCwgY29uc3QgZ2NoYXIqIGJhc2Vf
dXJpKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X3NlYXJjaF90ZXh0
IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0cmluZywgZ2Jvb2xlYW4g
Zm9yd2FyZCwgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGdib29sZWFuIHdyYXApOworCitXRUJL
SVRfQVBJIGd1aW50Cit3ZWJraXRfd2ViX3ZpZXdfaGlnaGxpZ2h0X21hdGNoZXMgKFdlYktpdFdl
YlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNp
dGl2ZSwgZ3VpbnQgbGltaXQpOworCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19j
bGVhcl9oaWdobGlnaHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBX
ZWJLaXRXZWJGcmFtZSoKIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZSAoV2ViS2l0V2Vi
Vmlldyogd2ViX3ZpZXcpOwogCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL0NoYW5nZUxvZwkoUmV2aXNpb24gMjgzMjApCisrKyBXZWJDb3JlL0NoYW5nZUxv
ZwkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDIxIEBACisyMDA3LTEyLTAyICBDaHJpc3RpYW4g
RHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2MjIyCisgICAgICAgIFtHVEtdIEltcGxlbWVudCBpbmxpbmUgc2VhcmNoIGFuZCBo
aWdobGlnaHRpbmcgb2YgbWF0Y2hpbmcgc3RyaW5ncy4KKworICAgICAgICBJbXBsZW1lbnQgc2Vh
cmNoIGFuZCBoaWdobGlnaHRpbmcgbG9naWMgZGlyZWN0bHkgaW4gV2ViQ29yZS4KKworICAgICAg
ICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENIQU5HRUQKKworICAgICAgICAqIHBh
Z2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbmNyZW1lbnRGcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjpmaW5kU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om1h
cmtBbGxNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjp1bm1hcmtBbGxU
ZXh0TWF0Y2hlcyk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisKIDIwMDctMTItMDIgIE1hcmsg
Um93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgYW5kIGZpeCB0aGUgV2luZG93
cyBidWlsZC4KSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvUGFnZS5jcHAJKFJldmlzaW9uIDI4MzIwKQorKysgV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShBcmJlaXRza29waWUpCkBAIC0yMDQsNiArMjA0LDczIEBACiAgICAgICAgICAgICBmcmFt
ZS0+c2V0TmVlZHNSZWFwcGx5U3R5bGVzKCk7CiB9CiAKK3N0YXRpYyBGcmFtZSogaW5jcmVtZW50
RnJhbWUoRnJhbWUqIGN1cnIsIGJvb2wgZm9yd2FyZCwgYm9vbCB3cmFwRmxhZykKK3sKKyAgICBy
ZXR1cm4gZm9yd2FyZAorICAgICAgICA/IGN1cnItPnRyZWUoKS0+dHJhdmVyc2VOZXh0V2l0aFdy
YXAod3JhcEZsYWcpCisgICAgICAgIDogY3Vyci0+dHJlZSgpLT50cmF2ZXJzZVByZXZpb3VzV2l0
aFdyYXAod3JhcEZsYWcpOworfQorCitib29sIFBhZ2U6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5n
JiB0YXJnZXQsIGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29sIHNob3VsZFdy
YXApCit7CisgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkgfHwgIW1haW5GcmFtZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBib29sIGZvdW5kOworCisgICAgRnJhbWUqIGZyYW1lID0g
Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEZyYW1lKiBzdGFy
dEZyYW1lID0gZnJhbWU7CisgICAgZG8geworICAgICAgICBmb3VuZCA9IGZyYW1lLT5maW5kU3Ry
aW5nKHRhcmdldCwgISFmb3J3YXJkLCAhIWNhc2VTZW5zaXRpdmUsIGZhbHNlLCB0cnVlKTsKKyAg
ICAgICAgaWYgKGZvdW5kKSB7CisgICAgICAgICAgICBpZiAoZnJhbWUgIT0gc3RhcnRGcmFtZSkK
KyAgICAgICAgICAgICAgICBzdGFydEZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmNsZWFy
KCk7CisgICAgICAgICAgICBmb2N1c0NvbnRyb2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKGZyYW1l
KTsKKyAgICAgICAgICAgIHJldHVybiBmb3VuZDsKKyAgICAgICAgfQorICAgICAgICBmcmFtZSA9
IGluY3JlbWVudEZyYW1lKGZyYW1lLCAhIWZvcndhcmQsICEhc2hvdWxkV3JhcCk7CisgICAgfSB3
aGlsZSAoZnJhbWUgJiYgZnJhbWUgIT0gc3RhcnRGcmFtZSk7CisKKyAgICAvLyBTZWFyY2ggY29u
dGVudHMgb2Ygc3RhcnRGcmFtZSwgb24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIHNlbGVjdGlvbiB0
aGF0IHdlIGRpZCBlYXJsaWVyLgorICAgIC8vIFdlIGNoZWF0IGEgYml0IGFuZCBqdXN0IHJlc2Vh
cmNoIHdpdGggd3JhcCBvbgorICAgIGlmIChzaG91bGRXcmFwICYmICFzdGFydEZyYW1lLT5zZWxl
Y3Rpb25Db250cm9sbGVyKCktPmlzTm9uZSgpKSB7CisgICAgICAgIGZvdW5kID0gc3RhcnRGcmFt
ZS0+ZmluZFN0cmluZyh0YXJnZXQsICEhZm9yd2FyZCwgISFjYXNlU2Vuc2l0aXZlLCB0cnVlLCB0
cnVlKTsKKyAgICAgICAgZm9jdXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShmcmFtZSk7
CisgICAgfQorCisgICAgcmV0dXJuIGZvdW5kOworfQorCit1aW50IFBhZ2U6Om1hcmtBbGxNYXRj
aGVzRm9yVGV4dChjb25zdCBTdHJpbmcmIHRhcmdldCwgYm9vbCBjYXNlU2Vuc2l0aXZlLCBib29s
IGhpZ2hsaWdodCwgdW5zaWduZWQgbGltaXQpCit7CisgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkg
fHwgIW1haW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIHVuc2lnbmVkIG1hdGNo
ZXMgPSAwOworCisgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7CisgICAgZG8geworICAg
ICAgICBmcmFtZS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVIaWdobGlnaHRlZChoaWdobGlnaHQp
OworICAgICAgICBtYXRjaGVzICs9IGZyYW1lLT5tYXJrQWxsTWF0Y2hlc0ZvclRleHQodGFyZ2V0
LCBjYXNlU2Vuc2l0aXZlLCAobGltaXQgPT0gMCk/IDAgOiAobGltaXQgLSBtYXRjaGVzKSk7Cisg
ICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJhbWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAgICB9
IHdoaWxlIChmcmFtZSk7CisKKyAgICByZXR1cm4gbWF0Y2hlczsKK30KKwordm9pZCBQYWdlOjp1
bm1hcmtBbGxUZXh0TWF0Y2hlcygpCit7CisgICAgaWYgKCFtYWluRnJhbWUoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7CisgICAgZG8geworICAg
ICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICBkb2N1bWVudC0+cmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsK
KyAgICAgICAgZnJhbWUgPSBpbmNyZW1lbnRGcmFtZShmcmFtZSwgdHJ1ZSwgZmFsc2UpOworICAg
IH0gd2hpbGUgKGZyYW1lKTsKK30KKwogY29uc3QgU2VsZWN0aW9uJiBQYWdlOjpzZWxlY3Rpb24o
KSBjb25zdAogewogICAgIHJldHVybiBmb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZy
YW1lKCktPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+c2VsZWN0aW9uKCk7CkluZGV4OiBXZWJDb3Jl
L3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmgJKFJldmlzaW9u
IDI4MzIwKQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuaAkoQXJiZWl0c2tvcGllKQpAQCAtOTgsNyAr
OTgsMTEgQEAKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVs
ZW1lbnRzKGJvb2wgYikgeyBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyA9IGI7IH0KICAg
ICAgICAgYm9vbCB0YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBt
X3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50czsgfQotICAgICAgICAKKworICAgICAgICBib29s
IGZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCwgYm9vbCk7CisgICAgICAgIHVp
bnQgbWFya0FsbE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wsIHVuc2ln
bmVkKTsKKyAgICAgICAgdm9pZCB1bm1hcmtBbGxUZXh0TWF0Y2hlcygpOworCiAgICAgICAgIGNv
bnN0IFNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICAgICAgdm9pZCBzZXREZWZl
cnNMb2FkaW5nKGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17719</attachid>
            <date>2007-12-05 10:37:25 -0800</date>
            <delta_ts>2007-12-05 11:17:59 -0800</delta_ts>
            <desc>Address issues pointed out by Mark</desc>
            <filename>search-text.diff</filename>
            <type>text/plain</type>
            <size>8806</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODQ0MCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDUgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMi0wNSAg
TWljaGFlbCBOYXR0ZXJlciAgPG1pdGNoQGltZW5kaW8uY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFscCBUb2tlci4KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJl
dmlzaW9uIDI4NDM4KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShB
cmJlaXRza29waWUpCkBAIC05MDcsNiArOTA3LDY2IEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFs
bExvYWRlcnMoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6Cisg
KiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29r
IGZvcgorICogQGZvcndhcmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2Fz
ZV9zZW5zaXRpdmU6IHdldGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFw
OiB3ZXRoZXIgdG8gY29udGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNo
aW5nIHRoZSBlbmQKKyAqCisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAj
d2ViX3ZpZXcuCisgKgorICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxT
RSBvbiBmYWlsdXJlCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNl
U2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0Up
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgVGV4dENh
c2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZlID8gVGV4dENhc2VT
ZW5zaXRpdmUgOiBUZXh0Q2FzZUluc2Vuc2l0aXZlOworICAgIEZpbmREaXJlY3Rpb24gZGlyZWN0
aW9uID0gZm9yd2FyZCA/IEZpbmREaXJlY3Rpb25Gb3J3YXJkIDogRmluZERpcmVjdGlvbkJhY2t3
YXJkOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dF
Ql9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29y
ZVBhZ2UtPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZp
dHksIGRpcmVjdGlvbiwgc2hvdWxkV3JhcCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2hpZ2hsaWdodF9tYXRjaGVzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBA
c3RyaW5nOiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGNhc2Vfc2Vuc2l0aXZlOiB3ZXRoZXIg
dG8gcmVzcGVjdCB0aGUgY2FzZSBvZiB0ZXh0CisgKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJl
ciBvZiBzdHJpbmdzIHRvIGxvb2sgZm9yIG9yICUwIGZvciBhbGwKKyAqCisgKiBBdHRlbXB0cyB0
byBoaWdobGlnaHQgYWxsIG9jY3VyYW5jZXMgb2YgI3N0cmluZyBpbnNpZGUgI3dlYl92aWV3Lgor
ICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCisg
Ki8KK2d1aW50IHdlYmtpdF93ZWJfdmlld19oaWdobGlnaHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBn
dWludCBsaW1pdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisK
KyAgICBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdmUg
PyBUZXh0Q2FzZVNlbnNpdGl2ZSA6IFRleHRDYXNlSW5zZW5zaXRpdmU7CisKKyAgICBXZWJLaXRX
ZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUo
d2ViVmlldyk7CisgICAgcmV0dXJuIHdlYlZpZXdEYXRhLT5jb3JlUGFnZS0+bWFya0FsbE1hdGNo
ZXNGb3JUZXh0KFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCB0cnVl
LCBsaW1pdCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2NsZWFyX2hpZ2hsaWdodDoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFJlbW92ZXMgaGlnaGxpZ2h0
aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19oaWdobGlnaHRfbWF0Y2hlcy4K
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfaGlnaGxpZ2h0KFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldykpOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lU
X1dFQl9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+
Y29yZVBhZ2UtPnVubWFya0FsbFRleHRNYXRjaGVzKCk7Cit9CisKIFdlYktpdFdlYkZyYW1lKiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X21haW5fZnJhbWUoV2ViS2l0V2ViVmlldyogd2ViVmlldykKIHsK
ICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIE5V
TEwpOwpJbmRleDogV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCShSZXZpc2lvbiAyODQzOCkK
KysrIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJKEFyYmVpdHNrb3BpZSkKQEAg
LTEyMiw2ICsxMjIsMTUgQEAKIFdFQktJVF9BUEkgdm9pZAogd2Via2l0X3dlYl92aWV3X2xvYWRf
aHRtbF9zdHJpbmcgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogY29udGVu
dCwgY29uc3QgZ2NoYXIqIGJhc2VfdXJpKTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0
X3dlYl92aWV3X3NlYXJjaF90ZXh0IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2No
YXIqIHN0cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGdib29sZWFuIGZvcndhcmQsIGdi
b29sZWFuIHdyYXApOworCitXRUJLSVRfQVBJIGd1aW50Cit3ZWJraXRfd2ViX3ZpZXdfaGlnaGxp
Z2h0X21hdGNoZXMgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3LCBjb25zdCBnY2hhciogc3RyaW5n
LCBnYm9vbGVhbiBjYXNlX3NlbnNpdGl2ZSwgZ3VpbnQgbGltaXQpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld19jbGVhcl9oaWdobGlnaHQgKFdlYktpdFdlYlZpZXcqIHdlYl92
aWV3KTsKKwogV0VCS0lUX0FQSSBXZWJLaXRXZWJGcmFtZSoKIHdlYmtpdF93ZWJfdmlld19nZXRf
bWFpbl9mcmFtZSAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcpOwogCkluZGV4OiBXZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkoUmV2aXNpb24gMjg0NDAp
CisrKyBXZWJDb3JlL0NoYW5nZUxvZwkoQXJiZWl0c2tvcGllKQpAQCAtMSwzICsxLDIxIEBACisy
MDA3LTEyLTA1ICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MjIyCisgICAgICAgIFtHVEtdIEltcGxlbWVu
dCBpbmxpbmUgc2VhcmNoIGFuZCBoaWdobGlnaHRpbmcgb2YgbWF0Y2hpbmcgc3RyaW5ncy4KKwor
ICAgICAgICBJbXBsZW1lbnQgc2VhcmNoIGFuZCBoaWdobGlnaHRpbmcgbG9naWMgZGlyZWN0bHkg
aW4gV2ViQ29yZS4KKworICAgICAgICBXQVJOSU5HOiBOTyBURVNUIENBU0VTIEFEREVEIE9SIENI
QU5HRUQKKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppbmNy
ZW1lbnRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpmaW5kU3RyaW5nKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjp1bm1hcmtBbGxUZXh0TWF0Y2hlcyk6CisgICAgICAgICogcGFnZS9QYWdlLmg6
CisKIDIwMDctMTItMDQgIEFscCBUb2tlciAgPGFscEBhdG9rZXIuY29tPgogCiAgICAgICAgIFBv
dGVudGlhbCBHVEsrIGJ1aWxkIGZpeCBmb3IgdGhlIGdsaWItZ2VubWFyc2hhbCBpc3N1ZS4KSW5k
ZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAJKFJldmlzaW9uIDI4NDM4KQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShBcmJlaXRz
a29waWUpCkBAIC0yMDQsNiArMjA0LDcxIEBACiAgICAgICAgICAgICBmcmFtZS0+c2V0TmVlZHNS
ZWFwcGx5U3R5bGVzKCk7CiB9CiAKK3N0YXRpYyBGcmFtZSogaW5jcmVtZW50RnJhbWUoRnJhbWUq
IGN1cnIsIGJvb2wgZm9yd2FyZCwgYm9vbCB3cmFwRmxhZykKK3sKKyAgICByZXR1cm4gZm9yd2Fy
ZAorICAgICAgICA/IGN1cnItPnRyZWUoKS0+dHJhdmVyc2VOZXh0V2l0aFdyYXAod3JhcEZsYWcp
CisgICAgICAgIDogY3Vyci0+dHJlZSgpLT50cmF2ZXJzZVByZXZpb3VzV2l0aFdyYXAod3JhcEZs
YWcpOworfQorCitib29sIFBhZ2U6OmZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXJnZXQsIFRl
eHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNlbnNpdGl2aXR5LCBGaW5kRGlyZWN0aW9uIGRpcmVjdGlv
biwgYm9vbCBzaG91bGRXcmFwKQoreworICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpIHx8ICFtYWlu
RnJhbWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgRnJhbWUqIGZyYW1lID0gZm9j
dXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpOworICAgIEZyYW1lKiBzdGFydEZy
YW1lID0gZnJhbWU7CisgICAgZG8geworICAgICAgICBpZiAoZnJhbWUtPmZpbmRTdHJpbmcodGFy
Z2V0LCBkaXJlY3Rpb24gPT0gRmluZERpcmVjdGlvbkZvcndhcmQsIGNhc2VTZW5zaXRpdml0eSA9
PSBUZXh0Q2FzZVNlbnNpdGl2ZSwgZmFsc2UsIHRydWUpKSB7CisgICAgICAgICAgICBpZiAoZnJh
bWUgIT0gc3RhcnRGcmFtZSkKKyAgICAgICAgICAgICAgICBzdGFydEZyYW1lLT5zZWxlY3Rpb25D
b250cm9sbGVyKCktPmNsZWFyKCk7CisgICAgICAgICAgICBmb2N1c0NvbnRyb2xsZXIoKS0+c2V0
Rm9jdXNlZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJhbWUoZnJhbWUsIGRpcmVjdGlvbiA9PSBGaW5k
RGlyZWN0aW9uRm9yd2FyZCwgc2hvdWxkV3JhcCk7CisgICAgfSB3aGlsZSAoZnJhbWUgJiYgZnJh
bWUgIT0gc3RhcnRGcmFtZSk7CisKKyAgICAvLyBTZWFyY2ggY29udGVudHMgb2Ygc3RhcnRGcmFt
ZSwgb24gdGhlIG90aGVyIHNpZGUgb2YgdGhlIHNlbGVjdGlvbiB0aGF0IHdlIGRpZCBlYXJsaWVy
LgorICAgIC8vIFdlIGNoZWF0IGEgYml0IGFuZCBqdXN0IHJlc2VhcmNoIHdpdGggd3JhcCBvbgor
ICAgIGlmIChzaG91bGRXcmFwICYmICFzdGFydEZyYW1lLT5zZWxlY3Rpb25Db250cm9sbGVyKCkt
PmlzTm9uZSgpKSB7CisgICAgICAgIGJvb2wgZm91bmQgPSBzdGFydEZyYW1lLT5maW5kU3RyaW5n
KHRhcmdldCwgZGlyZWN0aW9uID09IEZpbmREaXJlY3Rpb25Gb3J3YXJkLCBjYXNlU2Vuc2l0aXZp
dHkgPT0gVGV4dENhc2VTZW5zaXRpdmUsIHRydWUsIHRydWUpOworICAgICAgICBmb2N1c0NvbnRy
b2xsZXIoKS0+c2V0Rm9jdXNlZEZyYW1lKGZyYW1lKTsKKyAgICAgICAgcmV0dXJuIGZvdW5kOwor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwordWludCBQYWdlOjptYXJrQWxsTWF0Y2hl
c0ZvclRleHQoY29uc3QgU3RyaW5nJiB0YXJnZXQsIFRleHRDYXNlU2Vuc2l0aXZpdHkgY2FzZVNl
bnNpdGl2aXR5LCBib29sIHNob3VsZEhpZ2hsaWdodCwgdW5zaWduZWQgbGltaXQpCit7CisgICAg
aWYgKHRhcmdldC5pc0VtcHR5KCkgfHwgIW1haW5GcmFtZSgpKQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHVuc2lnbmVkIG1hdGNoZXMgPSAwOworCisgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZy
YW1lKCk7CisgICAgZG8geworICAgICAgICBmcmFtZS0+c2V0TWFya2VkVGV4dE1hdGNoZXNBcmVI
aWdobGlnaHRlZChzaG91bGRIaWdobGlnaHQpOworICAgICAgICBtYXRjaGVzICs9IGZyYW1lLT5t
YXJrQWxsTWF0Y2hlc0ZvclRleHQodGFyZ2V0LCBjYXNlU2Vuc2l0aXZpdHkgPT0gVGV4dENhc2VT
ZW5zaXRpdmUsIChsaW1pdCA9PSAwKSA/IDAgOiAobGltaXQgLSBtYXRjaGVzKSk7CisgICAgICAg
IGZyYW1lID0gaW5jcmVtZW50RnJhbWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAgICB9IHdoaWxl
IChmcmFtZSk7CisKKyAgICByZXR1cm4gbWF0Y2hlczsKK30KKwordm9pZCBQYWdlOjp1bm1hcmtB
bGxUZXh0TWF0Y2hlcygpCit7CisgICAgaWYgKCFtYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgRnJhbWUqIGZyYW1lID0gbWFpbkZyYW1lKCk7CisgICAgZG8geworICAgICAgICBp
ZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgICAgICBk
b2N1bWVudC0+cmVtb3ZlTWFya2VycyhEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoKTsKKyAgICAg
ICAgZnJhbWUgPSBpbmNyZW1lbnRGcmFtZShmcmFtZSwgdHJ1ZSwgZmFsc2UpOworICAgIH0gd2hp
bGUgKGZyYW1lKTsKK30KKwogY29uc3QgU2VsZWN0aW9uJiBQYWdlOjpzZWxlY3Rpb24oKSBjb25z
dAogewogICAgIHJldHVybiBmb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCkt
PnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+c2VsZWN0aW9uKCk7CkluZGV4OiBXZWJDb3JlL3BhZ2Uv
UGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmgJKFJldmlzaW9uIDI4NDM4
KQorKysgV2ViQ29yZS9wYWdlL1BhZ2UuaAkoQXJiZWl0c2tvcGllKQpAQCAtMzMsNiArMzMsMTYg
QEAKIHR5cGVkZWYgc3RydWN0IEhJTlNUQU5DRV9fKiBISU5TVEFOQ0U7CiAjZW5kaWYKIAordHlw
ZWRlZiBlbnVtIFRleHRDYXNlU2Vuc2l0aXZpdHkgeworICAgIFRleHRDYXNlU2Vuc2l0aXZlLAor
ICAgIFRleHRDYXNlSW5zZW5zaXRpdmUKK307CisKK3R5cGVkZWYgZW51bSBGaW5kRGlyZWN0aW9u
IHsKKyAgICBGaW5kRGlyZWN0aW9uRm9yd2FyZCwKKyAgICBGaW5kRGlyZWN0aW9uQmFja3dhcmQK
K307CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENocm9tZTsKQEAgLTk4LDcg
KzEwOCwxMSBAQAogICAgICAgICAKICAgICAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdo
RWxlbWVudHMoYm9vbCBiKSB7IG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzID0gYjsgfQog
ICAgICAgICBib29sIHRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzOyB9Ci0gICAgICAgIAorCisgICAgICAgIGJv
b2wgZmluZFN0cmluZyhjb25zdCBTdHJpbmcmLCBUZXh0Q2FzZVNlbnNpdGl2aXR5LCBGaW5kRGly
ZWN0aW9uLCBib29sIHNob3VsZFdyYXApOworICAgICAgICB1aW50IG1hcmtBbGxNYXRjaGVzRm9y
VGV4dChjb25zdCBTdHJpbmcmLCBUZXh0Q2FzZVNlbnNpdGl2aXR5LCBib29sIHNob3VsZEhpZ2hs
aWdodCwgdW5zaWduZWQpOworICAgICAgICB2b2lkIHVubWFya0FsbFRleHRNYXRjaGVzKCk7CisK
ICAgICAgICAgY29uc3QgU2VsZWN0aW9uJiBzZWxlY3Rpb24oKSBjb25zdDsKIAogICAgICAgICB2
b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17722</attachid>
            <date>2007-12-05 11:17:59 -0800</date>
            <delta_ts>2007-12-10 04:04:51 -0800</delta_ts>
            <desc>Changed api to allow separate toggling of highlighting</desc>
            <filename>search-text.diff</filename>
            <type>text/plain</type>
            <size>9554</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hh
bmdlTG9nCShSZXZpc2lvbiAyODQ0MCkKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCShBcmJlaXRz
a29waWUpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDctMTItMDUgIENocmlzdGlhbiBEeXdhbiAgPGNo
cmlzdGlhbkB0d290b2FzdHMuZGU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYy
MjIKKyAgICAgICAgW0dUS10gSW1wbGVtZW50IGlubGluZSBzZWFyY2ggYW5kIGhpZ2hsaWdodGlu
ZyBvZiBtYXRjaGluZyBzdHJpbmdzLgorCisgICAgICAgICogV2ViVmlldy93ZWJraXR3ZWJ2aWV3
LmNwcDoKKyAgICAgICAgKiBXZWJWaWV3L3dlYmtpdHdlYnZpZXcuaDoKKwogMjAwNy0xMi0wNSAg
TWljaGFlbCBOYXR0ZXJlciAgPG1pdGNoQGltZW5kaW8uY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEFscCBUb2tlci4KSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJl
dmlzaW9uIDI4NDM4KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShB
cmJlaXRza29waWUpCkBAIC05MDcsNiArOTA3LDgyIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFs
bExvYWRlcnMoKTsKIH0KIAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6Cisg
KiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29r
IGZvcgorICogQGZvcndhcmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2Fz
ZV9zZW5zaXRpdmU6IHdldGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFw
OiB3ZXRoZXIgdG8gY29udGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNo
aW5nIHRoZSBlbmQKKyAqCisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAj
d2ViX3ZpZXcuCisgKgorICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxT
RSBvbiBmYWlsdXJlCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNl
U2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0Up
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgVGV4dENh
c2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZlID8gVGV4dENhc2VT
ZW5zaXRpdmUgOiBUZXh0Q2FzZUluc2Vuc2l0aXZlOworICAgIEZpbmREaXJlY3Rpb24gZGlyZWN0
aW9uID0gZm9yd2FyZCA/IEZpbmREaXJlY3Rpb25Gb3J3YXJkIDogRmluZERpcmVjdGlvbkJhY2t3
YXJkOworCisgICAgV2ViS2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dF
Ql9WSUVXX0dFVF9QUklWQVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29y
ZVBhZ2UtPmZpbmRTdHJpbmcoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZp
dHksIGRpcmVjdGlvbiwgc2hvdWxkV3JhcCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X21hcmtfdGV4dF9tYXRjaGVzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBA
c3RyaW5nOiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGNhc2Vfc2Vuc2l0aXZlOiB3ZXRoZXIg
dG8gcmVzcGVjdCB0aGUgY2FzZSBvZiB0ZXh0CisgKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJl
ciBvZiBzdHJpbmdzIHRvIGxvb2sgZm9yIG9yICUwIGZvciBhbGwKKyAqCisgKiBBdHRlbXB0cyB0
byBoaWdobGlnaHQgYWxsIG9jY3VyYW5jZXMgb2YgI3N0cmluZyBpbnNpZGUgI3dlYl92aWV3Lgor
ICoKKyAqIFJldHVybiB2YWx1ZTogdGhlIG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCisg
Ki8KK2d1aW50IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBn
dWludCBsaW1pdCkKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJ
RVcod2ViVmlldyksIDApOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisK
KyAgICBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdmUg
PyBUZXh0Q2FzZVNlbnNpdGl2ZSA6IFRleHRDYXNlSW5zZW5zaXRpdmU7CisKKyAgICBXZWJLaXRX
ZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUo
d2ViVmlldyk7CisgICAgcmV0dXJuIHdlYlZpZXdEYXRhLT5jb3JlUGFnZS0+bWFya0FsbE1hdGNo
ZXNGb3JUZXh0KFN0cmluZzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCBmYWxz
ZSwgbGltaXQpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3Rl
eHRfbWF0Y2hlczoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGhpZ2hsaWdo
dDogV2V0aGVyIHRvIGhpZ2hsaWdodCB0ZXh0IG1hdGNoZXMKKyAqCisgKiBIaWdobGlnaHRzIHRl
eHQgbWF0Y2hlcyBwcmV2aW91c2x5IG1hcmtlZCBieSB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0
X21hdGNoZXMuCisgKi8KK3ZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9t
YXRjaGVzKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIHNob3VsZEhpZ2hsaWdodCkK
K3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisK
KyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdf
R0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURh
dGEgPSBXRUJLSVRfV0VCX0ZSQU1FX0dFVF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUp
OworICAgIGZyYW1lRGF0YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0
ZWQoc2hvdWxkSGlnaGxpZ2h0KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfY2xlYXJf
aGlnaGxpZ2h0OgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICogUmVtb3Zl
cyBoaWdobGlnaHRpbmcgcHJldmlvdXNseSBzZXQgYnkgd2Via2l0X3dlYl92aWV3X21hcmtfdGV4
dF9tYXRjaGVzLgorICovCit2b2lkIHdlYmtpdF93ZWJfdmlld19jbGVhcl9oaWdobGlnaHQoV2Vi
S2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19X
RUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogd2ViVmlld0Rh
dGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAgcmV0dXJuIHdl
YlZpZXdEYXRhLT5jb3JlUGFnZS0+dW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKK30KKwogV2ViS2l0
V2ViRnJhbWUqIHdlYmtpdF93ZWJfdmlld19nZXRfbWFpbl9mcmFtZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3
ZWJWaWV3KSwgTlVMTCk7CkluZGV4OiBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgJKFJldmlz
aW9uIDI4NDM4KQorKysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkoQXJiZWl0
c2tvcGllKQpAQCAtMTIyLDYgKzEyMiwxOCBAQAogV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRfd2Vi
X3ZpZXdfbG9hZF9odG1sX3N0cmluZyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0IGdj
aGFyKiBjb250ZW50LCBjb25zdCBnY2hhciogYmFzZV91cmkpOwogCitXRUJLSVRfQVBJIGdib29s
ZWFuCit3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3
LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlX3NlbnNpdGl2ZSwgZ2Jvb2xlYW4g
Zm9yd2FyZCwgZ2Jvb2xlYW4gd3JhcCk7CisKK1dFQktJVF9BUEkgZ3VpbnQKK3dlYmtpdF93ZWJf
dmlld19tYXJrX3RleHRfbWF0Y2hlcyAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0IGdj
aGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBndWludCBsaW1pdCk7CisKK1dF
QktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVz
IChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgZ2Jvb2xlYW4gaGlnaGxpZ2h0KTsKKworV0VCS0lU
X0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfY2xlYXJfaGlnaGxpZ2h0IChXZWJLaXRXZWJWaWV3
KiB3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUqCiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X21haW5fZnJhbWUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIApJbmRleDogV2Vi
Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKFJldmlzaW9u
IDI4NDQwKQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKEFyYmVpdHNrb3BpZSkKQEAgLTEsMyArMSwy
MSBAQAorMjAwNy0xMi0wNSAgQ2hyaXN0aWFuIER5d2FuICA8Y2hyaXN0aWFuQHR3b3RvYXN0cy5k
ZT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjIyMgorICAgICAgICBbR1RLXSBJ
bXBsZW1lbnQgaW5saW5lIHNlYXJjaCBhbmQgaGlnaGxpZ2h0aW5nIG9mIG1hdGNoaW5nIHN0cmlu
Z3MuCisKKyAgICAgICAgSW1wbGVtZW50IHNlYXJjaCBhbmQgaGlnaGxpZ2h0aW5nIGxvZ2ljIGRp
cmVjdGx5IGluIFdlYkNvcmUuCisKKyAgICAgICAgV0FSTklORzogTk8gVEVTVCBDQVNFUyBBRERF
RCBPUiBDSEFOR0VECisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6aW5jcmVtZW50RnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6ZmluZFN0cmluZyk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjptYXJrQWxsTWF0Y2hlc0ZvclRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6UGFnZTo6dW5tYXJrQWxsVGV4dE1hdGNoZXMpOgorICAgICAgICAqIHBhZ2Uv
UGFnZS5oOgorCiAyMDA3LTEyLTA0ICBBbHAgVG9rZXIgIDxhbHBAYXRva2VyLmNvbT4KIAogICAg
ICAgICBQb3RlbnRpYWwgR1RLKyBidWlsZCBmaXggZm9yIHRoZSBnbGliLWdlbm1hcnNoYWwgaXNz
dWUuCkluZGV4OiBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShSZXZpc2lvbiAyODQzOCkKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAko
QXJiZWl0c2tvcGllKQpAQCAtMjA0LDYgKzIwNCw3MSBAQAogICAgICAgICAgICAgZnJhbWUtPnNl
dE5lZWRzUmVhcHBseVN0eWxlcygpOwogfQogCitzdGF0aWMgRnJhbWUqIGluY3JlbWVudEZyYW1l
KEZyYW1lKiBjdXJyLCBib29sIGZvcndhcmQsIGJvb2wgd3JhcEZsYWcpCit7CisgICAgcmV0dXJu
IGZvcndhcmQKKyAgICAgICAgPyBjdXJyLT50cmVlKCktPnRyYXZlcnNlTmV4dFdpdGhXcmFwKHdy
YXBGbGFnKQorICAgICAgICA6IGN1cnItPnRyZWUoKS0+dHJhdmVyc2VQcmV2aW91c1dpdGhXcmFw
KHdyYXBGbGFnKTsKK30KKworYm9vbCBQYWdlOjpmaW5kU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFy
Z2V0LCBUZXh0Q2FzZVNlbnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSwgRmluZERpcmVjdGlvbiBk
aXJlY3Rpb24sIGJvb2wgc2hvdWxkV3JhcCkKK3sKKyAgICBpZiAodGFyZ2V0LmlzRW1wdHkoKSB8
fCAhbWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEZyYW1lKiBmcmFt
ZSA9IGZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKTsKKyAgICBGcmFtZSog
c3RhcnRGcmFtZSA9IGZyYW1lOworICAgIGRvIHsKKyAgICAgICAgaWYgKGZyYW1lLT5maW5kU3Ry
aW5nKHRhcmdldCwgZGlyZWN0aW9uID09IEZpbmREaXJlY3Rpb25Gb3J3YXJkLCBjYXNlU2Vuc2l0
aXZpdHkgPT0gVGV4dENhc2VTZW5zaXRpdmUsIGZhbHNlLCB0cnVlKSkgeworICAgICAgICAgICAg
aWYgKGZyYW1lICE9IHN0YXJ0RnJhbWUpCisgICAgICAgICAgICAgICAgc3RhcnRGcmFtZS0+c2Vs
ZWN0aW9uQ29udHJvbGxlcigpLT5jbGVhcigpOworICAgICAgICAgICAgZm9jdXNDb250cm9sbGVy
KCktPnNldEZvY3VzZWRGcmFtZShmcmFtZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQorICAgICAgICBmcmFtZSA9IGluY3JlbWVudEZyYW1lKGZyYW1lLCBkaXJlY3Rpb24g
PT0gRmluZERpcmVjdGlvbkZvcndhcmQsIHNob3VsZFdyYXApOworICAgIH0gd2hpbGUgKGZyYW1l
ICYmIGZyYW1lICE9IHN0YXJ0RnJhbWUpOworCisgICAgLy8gU2VhcmNoIGNvbnRlbnRzIG9mIHN0
YXJ0RnJhbWUsIG9uIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBzZWxlY3Rpb24gdGhhdCB3ZSBkaWQg
ZWFybGllci4KKyAgICAvLyBXZSBjaGVhdCBhIGJpdCBhbmQganVzdCByZXNlYXJjaCB3aXRoIHdy
YXAgb24KKyAgICBpZiAoc2hvdWxkV3JhcCAmJiAhc3RhcnRGcmFtZS0+c2VsZWN0aW9uQ29udHJv
bGxlcigpLT5pc05vbmUoKSkgeworICAgICAgICBib29sIGZvdW5kID0gc3RhcnRGcmFtZS0+Zmlu
ZFN0cmluZyh0YXJnZXQsIGRpcmVjdGlvbiA9PSBGaW5kRGlyZWN0aW9uRm9yd2FyZCwgY2FzZVNl
bnNpdGl2aXR5ID09IFRleHRDYXNlU2Vuc2l0aXZlLCB0cnVlLCB0cnVlKTsKKyAgICAgICAgZm9j
dXNDb250cm9sbGVyKCktPnNldEZvY3VzZWRGcmFtZShmcmFtZSk7CisgICAgICAgIHJldHVybiBm
b3VuZDsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3VpbnQgUGFnZTo6bWFya0Fs
bE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBUZXh0Q2FzZVNlbnNpdGl2aXR5
IGNhc2VTZW5zaXRpdml0eSwgYm9vbCBzaG91bGRIaWdobGlnaHQsIHVuc2lnbmVkIGxpbWl0KQor
eworICAgIGlmICh0YXJnZXQuaXNFbXB0eSgpIHx8ICFtYWluRnJhbWUoKSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICB1bnNpZ25lZCBtYXRjaGVzID0gMDsKKworICAgIEZyYW1lKiBmcmFtZSA9
IG1haW5GcmFtZSgpOworICAgIGRvIHsKKyAgICAgICAgZnJhbWUtPnNldE1hcmtlZFRleHRNYXRj
aGVzQXJlSGlnaGxpZ2h0ZWQoc2hvdWxkSGlnaGxpZ2h0KTsKKyAgICAgICAgbWF0Y2hlcyArPSBm
cmFtZS0+bWFya0FsbE1hdGNoZXNGb3JUZXh0KHRhcmdldCwgY2FzZVNlbnNpdGl2aXR5ID09IFRl
eHRDYXNlU2Vuc2l0aXZlLCAobGltaXQgPT0gMCkgPyAwIDogKGxpbWl0IC0gbWF0Y2hlcykpOwor
ICAgICAgICBmcmFtZSA9IGluY3JlbWVudEZyYW1lKGZyYW1lLCB0cnVlLCBmYWxzZSk7CisgICAg
fSB3aGlsZSAoZnJhbWUpOworCisgICAgcmV0dXJuIG1hdGNoZXM7Cit9CisKK3ZvaWQgUGFnZTo6
dW5tYXJrQWxsVGV4dE1hdGNoZXMoKQoreworICAgIGlmICghbWFpbkZyYW1lKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOworICAgIGRvIHsKKyAg
ICAgICAgaWYgKERvY3VtZW50KiBkb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKQorICAgICAg
ICAgICAgZG9jdW1lbnQtPnJlbW92ZU1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaCk7
CisgICAgICAgIGZyYW1lID0gaW5jcmVtZW50RnJhbWUoZnJhbWUsIHRydWUsIGZhbHNlKTsKKyAg
ICB9IHdoaWxlIChmcmFtZSk7Cit9CisKIGNvbnN0IFNlbGVjdGlvbiYgUGFnZTo6c2VsZWN0aW9u
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5G
cmFtZSgpLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPnNlbGVjdGlvbigpOwpJbmRleDogV2ViQ29y
ZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvUGFnZS5oCShSZXZpc2lv
biAyODQzOCkKKysrIFdlYkNvcmUvcGFnZS9QYWdlLmgJKEFyYmVpdHNrb3BpZSkKQEAgLTMzLDYg
KzMzLDE2IEBACiB0eXBlZGVmIHN0cnVjdCBISU5TVEFOQ0VfXyogSElOU1RBTkNFOwogI2VuZGlm
CiAKK3R5cGVkZWYgZW51bSBUZXh0Q2FzZVNlbnNpdGl2aXR5IHsKKyAgICBUZXh0Q2FzZVNlbnNp
dGl2ZSwKKyAgICBUZXh0Q2FzZUluc2Vuc2l0aXZlCit9OworCit0eXBlZGVmIGVudW0gRmluZERp
cmVjdGlvbiB7CisgICAgRmluZERpcmVjdGlvbkZvcndhcmQsCisgICAgRmluZERpcmVjdGlvbkJh
Y2t3YXJkCit9OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBDaHJvbWU7CkBA
IC05OCw3ICsxMDgsMTEgQEAKICAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVz
VGhyb3VnaEVsZW1lbnRzKGJvb2wgYikgeyBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyA9
IGI7IH0KICAgICAgICAgYm9vbCB0YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoKSBjb25zdCB7
IHJldHVybiBtX3RhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50czsgfQotICAgICAgICAKKworICAg
ICAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgU3RyaW5nJiwgVGV4dENhc2VTZW5zaXRpdml0eSwg
RmluZERpcmVjdGlvbiwgYm9vbCBzaG91bGRXcmFwKTsKKyAgICAgICAgdWludCBtYXJrQWxsTWF0
Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiwgVGV4dENhc2VTZW5zaXRpdml0eSwgYm9vbCBzaG91
bGRIaWdobGlnaHQsIHVuc2lnbmVkKTsKKyAgICAgICAgdm9pZCB1bm1hcmtBbGxUZXh0TWF0Y2hl
cygpOworCiAgICAgICAgIGNvbnN0IFNlbGVjdGlvbiYgc2VsZWN0aW9uKCkgY29uc3Q7CiAKICAg
ICAgICAgdm9pZCBzZXREZWZlcnNMb2FkaW5nKGJvb2wpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17819</attachid>
            <date>2007-12-10 04:04:51 -0800</date>
            <delta_ts>2007-12-10 04:09:26 -0800</delta_ts>
            <desc>api update</desc>
            <filename>search.diff</filename>
            <type>text/plain</type>
            <size>4376</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4NTc5KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29waWUpCkBA
IC05MTAsNiArOTEwLDgyIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMoKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6CisgKiBAd2ViX3ZpZXc6IGEg
I1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGZvcndh
cmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2FzZV9zZW5zaXRpdmU6IHdl
dGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFwOiB3ZXRoZXIgdG8gY29u
dGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNoaW5nIHRoZSBlbmQKKyAq
CisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgor
ICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxTRSBvbiBmYWlsdXJlCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9v
bGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgVGV4dENhc2VTZW5zaXRpdml0eSBj
YXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZlID8gVGV4dENhc2VTZW5zaXRpdmUgOiBUZXh0
Q2FzZUluc2Vuc2l0aXZlOworICAgIEZpbmREaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9yd2FyZCA/
IEZpbmREaXJlY3Rpb25Gb3J3YXJkIDogRmluZERpcmVjdGlvbkJhY2t3YXJkOworCisgICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklW
QVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPmZpbmRTdHJp
bmcoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZpdHksIGRpcmVjdGlvbiwg
c2hvdWxkV3JhcCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRj
aGVzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAc3RyaW5nOiBhIHN0cmlu
ZyB0byBsb29rIGZvcgorICogQGNhc2Vfc2Vuc2l0aXZlOiB3ZXRoZXIgdG8gcmVzcGVjdCB0aGUg
Y2FzZSBvZiB0ZXh0CisgKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJpbmdzIHRv
IGxvb2sgZm9yIG9yICUwIGZvciBhbGwKKyAqCisgKiBBdHRlbXB0cyB0byBoaWdobGlnaHQgYWxs
IG9jY3VyYW5jZXMgb2YgI3N0cmluZyBpbnNpZGUgI3dlYl92aWV3LgorICoKKyAqIFJldHVybiB2
YWx1ZTogdGhlIG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCisgKi8KK2d1aW50IHdlYmtp
dF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBndWludCBsaW1pdCkKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDAp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisKKyAgICBUZXh0Q2FzZVNl
bnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdmUgPyBUZXh0Q2FzZVNlbnNp
dGl2ZSA6IFRleHRDYXNlSW5zZW5zaXRpdmU7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
d2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAg
cmV0dXJuIHdlYlZpZXdEYXRhLT5jb3JlUGFnZS0+bWFya0FsbE1hdGNoZXNGb3JUZXh0KFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCBmYWxzZSwgbGltaXQpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlczoKKyAq
IEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGhpZ2hsaWdodDogV2V0aGVyIHRvIGhp
Z2hsaWdodCB0ZXh0IG1hdGNoZXMKKyAqCisgKiBIaWdobGlnaHRzIHRleHQgbWF0Y2hlcyBwcmV2
aW91c2x5IG1hcmtlZCBieSB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMuCisgKi8K
K3ZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIHNob3VsZEhpZ2hsaWdodCkKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2Vi
Vmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VC
X0ZSQU1FX0dFVF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUpOworICAgIGZyYW1lRGF0
YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoc2hvdWxkSGlnaGxp
Z2h0KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlczoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFJlbW92ZXMgaGlnaGxpZ2h0
aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcy4K
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdF
QktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1cm4gd2ViVmlld0Rh
dGEtPmNvcmVQYWdlLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOworfQorCiBXZWJLaXRXZWJGcmFt
ZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcp
LCBOVUxMKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkoUmV2aXNpb24gMjg1
NzkpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCShBcmJlaXRza29waWUp
CkBAIC0xMTMsNiArMTEzLDE4IEBACiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19s
b2FkX2h0bWxfc3RyaW5nIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNv
bnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlX3VyaSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0
IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJk
LCBnYm9vbGVhbiB3cmFwKTsKKworV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl92aWV3X21h
cmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0
cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGd1aW50IGxpbWl0KTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hsaWdodF90ZXh0X21hdGNoZXMgKFdlYktp
dFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVhbiBoaWdobGlnaHQpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld191bm1hcmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUqCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X21haW5fZnJhbWUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17820</attachid>
            <date>2007-12-10 04:09:26 -0800</date>
            <delta_ts>2007-12-17 01:03:47 -0800</delta_ts>
            <desc>api update, this time with webcore changes</desc>
            <filename>search.diff</filename>
            <type>text/plain</type>
            <size>8112</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4NTc5KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29waWUpCkBA
IC05MTAsNiArOTEwLDgyIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMoKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6CisgKiBAd2ViX3ZpZXc6IGEg
I1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGZvcndh
cmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2FzZV9zZW5zaXRpdmU6IHdl
dGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFwOiB3ZXRoZXIgdG8gY29u
dGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNoaW5nIHRoZSBlbmQKKyAq
CisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgor
ICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxTRSBvbiBmYWlsdXJlCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9v
bGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgVGV4dENhc2VTZW5zaXRpdml0eSBj
YXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZlID8gVGV4dENhc2VTZW5zaXRpdmUgOiBUZXh0
Q2FzZUluc2Vuc2l0aXZlOworICAgIEZpbmREaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9yd2FyZCA/
IEZpbmREaXJlY3Rpb25Gb3J3YXJkIDogRmluZERpcmVjdGlvbkJhY2t3YXJkOworCisgICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklW
QVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPmZpbmRTdHJp
bmcoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZpdHksIGRpcmVjdGlvbiwg
c2hvdWxkV3JhcCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRj
aGVzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAc3RyaW5nOiBhIHN0cmlu
ZyB0byBsb29rIGZvcgorICogQGNhc2Vfc2Vuc2l0aXZlOiB3ZXRoZXIgdG8gcmVzcGVjdCB0aGUg
Y2FzZSBvZiB0ZXh0CisgKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJpbmdzIHRv
IGxvb2sgZm9yIG9yICUwIGZvciBhbGwKKyAqCisgKiBBdHRlbXB0cyB0byBoaWdobGlnaHQgYWxs
IG9jY3VyYW5jZXMgb2YgI3N0cmluZyBpbnNpZGUgI3dlYl92aWV3LgorICoKKyAqIFJldHVybiB2
YWx1ZTogdGhlIG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCisgKi8KK2d1aW50IHdlYmtp
dF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBndWludCBsaW1pdCkKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDAp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisKKyAgICBUZXh0Q2FzZVNl
bnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdmUgPyBUZXh0Q2FzZVNlbnNp
dGl2ZSA6IFRleHRDYXNlSW5zZW5zaXRpdmU7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
d2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAg
cmV0dXJuIHdlYlZpZXdEYXRhLT5jb3JlUGFnZS0+bWFya0FsbE1hdGNoZXNGb3JUZXh0KFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCBmYWxzZSwgbGltaXQpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlczoKKyAq
IEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGhpZ2hsaWdodDogV2V0aGVyIHRvIGhp
Z2hsaWdodCB0ZXh0IG1hdGNoZXMKKyAqCisgKiBIaWdobGlnaHRzIHRleHQgbWF0Y2hlcyBwcmV2
aW91c2x5IG1hcmtlZCBieSB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMuCisgKi8K
K3ZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIHNob3VsZEhpZ2hsaWdodCkKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2Vi
Vmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VC
X0ZSQU1FX0dFVF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUpOworICAgIGZyYW1lRGF0
YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoc2hvdWxkSGlnaGxp
Z2h0KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlczoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFJlbW92ZXMgaGlnaGxpZ2h0
aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcy4K
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdF
QktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1cm4gd2ViVmlld0Rh
dGEtPmNvcmVQYWdlLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOworfQorCiBXZWJLaXRXZWJGcmFt
ZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcp
LCBOVUxMKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkoUmV2aXNpb24gMjg1
NzkpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCShBcmJlaXRza29waWUp
CkBAIC0xMTMsNiArMTEzLDE4IEBACiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19s
b2FkX2h0bWxfc3RyaW5nIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNv
bnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlX3VyaSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0
IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJk
LCBnYm9vbGVhbiB3cmFwKTsKKworV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl92aWV3X21h
cmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0
cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGd1aW50IGxpbWl0KTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hsaWdodF90ZXh0X21hdGNoZXMgKFdlYktp
dFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVhbiBoaWdobGlnaHQpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld191bm1hcmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUqCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X21haW5fZnJhbWUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIApJbmRleDogV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkoUmV2
aXNpb24gMjg1NzkpCisrKyBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAg
LTIwNCw2ICsyMDQsNzEgQEAKICAgICAgICAgICAgIGZyYW1lLT5zZXROZWVkc1JlYXBwbHlTdHls
ZXMoKTsKIH0KIAorc3RhdGljIEZyYW1lKiBpbmNyZW1lbnRGcmFtZShGcmFtZSogY3VyciwgYm9v
bCBmb3J3YXJkLCBib29sIHdyYXBGbGFnKQoreworICAgIHJldHVybiBmb3J3YXJkCisgICAgICAg
ID8gY3Vyci0+dHJlZSgpLT50cmF2ZXJzZU5leHRXaXRoV3JhcCh3cmFwRmxhZykKKyAgICAgICAg
OiBjdXJyLT50cmVlKCktPnRyYXZlcnNlUHJldmlvdXNXaXRoV3JhcCh3cmFwRmxhZyk7Cit9CisK
K2Jvb2wgUGFnZTo6ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgVGV4dENhc2VTZW5z
aXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIEZpbmREaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNo
b3VsZFdyYXApCit7CisgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkgfHwgIW1haW5GcmFtZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRnJhbWUqIHN0YXJ0RnJhbWUgPSBmcmFt
ZTsKKyAgICBkbyB7CisgICAgICAgIGlmIChmcmFtZS0+ZmluZFN0cmluZyh0YXJnZXQsIGRpcmVj
dGlvbiA9PSBGaW5kRGlyZWN0aW9uRm9yd2FyZCwgY2FzZVNlbnNpdGl2aXR5ID09IFRleHRDYXNl
U2Vuc2l0aXZlLCBmYWxzZSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgIGlmIChmcmFtZSAhPSBzdGFy
dEZyYW1lKQorICAgICAgICAgICAgICAgIHN0YXJ0RnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIo
KS0+Y2xlYXIoKTsKKyAgICAgICAgICAgIGZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJh
bWUoZnJhbWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
ZnJhbWUgPSBpbmNyZW1lbnRGcmFtZShmcmFtZSwgZGlyZWN0aW9uID09IEZpbmREaXJlY3Rpb25G
b3J3YXJkLCBzaG91bGRXcmFwKTsKKyAgICB9IHdoaWxlIChmcmFtZSAmJiBmcmFtZSAhPSBzdGFy
dEZyYW1lKTsKKworICAgIC8vIFNlYXJjaCBjb250ZW50cyBvZiBzdGFydEZyYW1lLCBvbiB0aGUg
b3RoZXIgc2lkZSBvZiB0aGUgc2VsZWN0aW9uIHRoYXQgd2UgZGlkIGVhcmxpZXIuCisgICAgLy8g
V2UgY2hlYXQgYSBiaXQgYW5kIGp1c3QgcmVzZWFyY2ggd2l0aCB3cmFwIG9uCisgICAgaWYgKHNo
b3VsZFdyYXAgJiYgIXN0YXJ0RnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+aXNOb25lKCkp
IHsKKyAgICAgICAgYm9vbCBmb3VuZCA9IHN0YXJ0RnJhbWUtPmZpbmRTdHJpbmcodGFyZ2V0LCBk
aXJlY3Rpb24gPT0gRmluZERpcmVjdGlvbkZvcndhcmQsIGNhc2VTZW5zaXRpdml0eSA9PSBUZXh0
Q2FzZVNlbnNpdGl2ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGZvY3VzQ29udHJvbGxlcigpLT5z
ZXRGb2N1c2VkRnJhbWUoZnJhbWUpOworICAgICAgICByZXR1cm4gZm91bmQ7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit1aW50IFBhZ2U6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dChj
b25zdCBTdHJpbmcmIHRhcmdldCwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHks
IGJvb2wgc2hvdWxkSGlnaGxpZ2h0LCB1bnNpZ25lZCBsaW1pdCkKK3sKKyAgICBpZiAodGFyZ2V0
LmlzRW1wdHkoKSB8fCAhbWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgdW5z
aWduZWQgbWF0Y2hlcyA9IDA7CisKKyAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsKKyAg
ICBkbyB7CisgICAgICAgIGZyYW1lLT5zZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVk
KHNob3VsZEhpZ2hsaWdodCk7CisgICAgICAgIG1hdGNoZXMgKz0gZnJhbWUtPm1hcmtBbGxNYXRj
aGVzRm9yVGV4dCh0YXJnZXQsIGNhc2VTZW5zaXRpdml0eSA9PSBUZXh0Q2FzZVNlbnNpdGl2ZSwg
KGxpbWl0ID09IDApID8gMCA6IChsaW1pdCAtIG1hdGNoZXMpKTsKKyAgICAgICAgZnJhbWUgPSBp
bmNyZW1lbnRGcmFtZShmcmFtZSwgdHJ1ZSwgZmFsc2UpOworICAgIH0gd2hpbGUgKGZyYW1lKTsK
KworICAgIHJldHVybiBtYXRjaGVzOworfQorCit2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRj
aGVzKCkKK3sKKyAgICBpZiAoIW1haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBG
cmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsKKyAgICBkbyB7CisgICAgICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVNYXJrZXJzKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOworICAgICAgICBmcmFtZSA9
IGluY3JlbWVudEZyYW1lKGZyYW1lLCB0cnVlLCBmYWxzZSk7CisgICAgfSB3aGlsZSAoZnJhbWUp
OworfQorCiBjb25zdCBTZWxlY3Rpb24mIFBhZ2U6OnNlbGVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+c2VsZWN0aW9u
Q29udHJvbGxlcigpLT5zZWxlY3Rpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuaAkoUmV2aXNpb24gMjg1NzkpCisrKyBXZWJD
b3JlL3BhZ2UvUGFnZS5oCShBcmJlaXRza29waWUpCkBAIC0zMyw2ICszMywxNiBAQAogdHlwZWRl
ZiBzdHJ1Y3QgSElOU1RBTkNFX18qIEhJTlNUQU5DRTsKICNlbmRpZgogCit0eXBlZGVmIGVudW0g
VGV4dENhc2VTZW5zaXRpdml0eSB7CisgICAgVGV4dENhc2VTZW5zaXRpdmUsCisgICAgVGV4dENh
c2VJbnNlbnNpdGl2ZQorfTsKKwordHlwZWRlZiBlbnVtIEZpbmREaXJlY3Rpb24geworICAgIEZp
bmREaXJlY3Rpb25Gb3J3YXJkLAorICAgIEZpbmREaXJlY3Rpb25CYWNrd2FyZAorfTsKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ2hyb21lOwpAQCAtOTgsNyArMTA4LDExIEBA
CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhi
b29sIGIpIHsgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMgPSBiOyB9CiAgICAgICAgIGJv
b2wgdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90YWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHM7IH0KLSAgICAgICAgCisKKyAgICAgICAgYm9vbCBmaW5kU3Ry
aW5nKGNvbnN0IFN0cmluZyYsIFRleHRDYXNlU2Vuc2l0aXZpdHksIEZpbmREaXJlY3Rpb24sIGJv
b2wgc2hvdWxkV3JhcCk7CisgICAgICAgIHVpbnQgbWFya0FsbE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYsIFRleHRDYXNlU2Vuc2l0aXZpdHksIGJvb2wgc2hvdWxkSGlnaGxpZ2h0LCB1bnNp
Z25lZCk7CisgICAgICAgIHZvaWQgdW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKwogICAgICAgICBj
b25zdCBTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgc2V0RGVm
ZXJzTG9hZGluZyhib29sKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17952</attachid>
            <date>2007-12-17 01:03:47 -0800</date>
            <delta_ts>2007-12-19 16:19:58 -0800</delta_ts>
            <desc>update to keep in synch</desc>
            <filename>search.diff</filename>
            <type>text/plain</type>
            <size>8112</size>
            <attacher name="Christian Dywan">christian</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5jcHAJKFJldmlzaW9uIDI4Nzk4KQor
KysgV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuY3BwCShBcmJlaXRza29waWUpCkBA
IC05MTYsNiArOTE2LDgyIEBACiAgICAgICAgIGxvYWRlci0+c3RvcEFsbExvYWRlcnMoKTsKIH0K
IAorLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfc2VhcmNoX3RleHQ6CisgKiBAd2ViX3ZpZXc6IGEg
I1dlYktpdFdlYlZpZXcKKyAqIEB0ZXh0OiBhIHN0cmluZyB0byBsb29rIGZvcgorICogQGZvcndh
cmQ6IHdldGhlciB0byBmaW5kIGZvcndhcmQgb3Igbm90CisgKiBAY2FzZV9zZW5zaXRpdmU6IHdl
dGhlciB0byByZXNwZWN0IHRoZSBjYXNlIG9mIHRleHQKKyAqIEB3cmFwOiB3ZXRoZXIgdG8gY29u
dGludWUgbG9va2luZyBhdCB0aGUgYmVnaW5uaW5nIGFmdGVyIHJlYWNoaW5nIHRoZSBlbmQKKyAq
CisgKiBMb29rcyBmb3IgYSBzcGVjaWZpZWQgc3RyaW5nIGluc2lkZSAjd2ViX3ZpZXcuCisgKgor
ICogUmV0dXJuIHZhbHVlOiAlVFJVRSBvbiBzdWNjZXNzIG9yICVGQUxTRSBvbiBmYWlsdXJlCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBjb25zdCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBnYm9v
bGVhbiBmb3J3YXJkLCBnYm9vbGVhbiBzaG91bGRXcmFwKQoreworICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKHN0cmluZywgRkFMU0UpOworCisgICAgVGV4dENhc2VTZW5zaXRpdml0eSBj
YXNlU2Vuc2l0aXZpdHkgPSBjYXNlU2Vuc2l0aXZlID8gVGV4dENhc2VTZW5zaXRpdmUgOiBUZXh0
Q2FzZUluc2Vuc2l0aXZlOworICAgIEZpbmREaXJlY3Rpb24gZGlyZWN0aW9uID0gZm9yd2FyZCA/
IEZpbmREaXJlY3Rpb25Gb3J3YXJkIDogRmluZERpcmVjdGlvbkJhY2t3YXJkOworCisgICAgV2Vi
S2l0V2ViVmlld1ByaXZhdGUqIHdlYlZpZXdEYXRhID0gV0VCS0lUX1dFQl9WSUVXX0dFVF9QUklW
QVRFKHdlYlZpZXcpOworICAgIHJldHVybiB3ZWJWaWV3RGF0YS0+Y29yZVBhZ2UtPmZpbmRTdHJp
bmcoU3RyaW5nOjpmcm9tVVRGOChzdHJpbmcpLCBjYXNlU2Vuc2l0aXZpdHksIGRpcmVjdGlvbiwg
c2hvdWxkV3JhcCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X21hcmtfdGV4dF9tYXRj
aGVzOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKiBAc3RyaW5nOiBhIHN0cmlu
ZyB0byBsb29rIGZvcgorICogQGNhc2Vfc2Vuc2l0aXZlOiB3ZXRoZXIgdG8gcmVzcGVjdCB0aGUg
Y2FzZSBvZiB0ZXh0CisgKiBAbGltaXQ6IHRoZSBtYXhpbXVtIG51bWJlciBvZiBzdHJpbmdzIHRv
IGxvb2sgZm9yIG9yICUwIGZvciBhbGwKKyAqCisgKiBBdHRlbXB0cyB0byBoaWdobGlnaHQgYWxs
IG9jY3VyYW5jZXMgb2YgI3N0cmluZyBpbnNpZGUgI3dlYl92aWV3LgorICoKKyAqIFJldHVybiB2
YWx1ZTogdGhlIG51bWJlciBvZiBzdHJpbmdzIGhpZ2hsaWdodGVkCisgKi8KK2d1aW50IHdlYmtp
dF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25z
dCBnY2hhciogc3RyaW5nLCBnYm9vbGVhbiBjYXNlU2Vuc2l0aXZlLCBndWludCBsaW1pdCkKK3sK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIDAp
OworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHN0cmluZywgMCk7CisKKyAgICBUZXh0Q2FzZVNl
bnNpdGl2aXR5IGNhc2VTZW5zaXRpdml0eSA9IGNhc2VTZW5zaXRpdmUgPyBUZXh0Q2FzZVNlbnNp
dGl2ZSA6IFRleHRDYXNlSW5zZW5zaXRpdmU7CisKKyAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSog
d2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2ViVmlldyk7CisgICAg
cmV0dXJuIHdlYlZpZXdEYXRhLT5jb3JlUGFnZS0+bWFya0FsbE1hdGNoZXNGb3JUZXh0KFN0cmlu
Zzo6ZnJvbVVURjgoc3RyaW5nKSwgY2FzZVNlbnNpdGl2aXR5LCBmYWxzZSwgbGltaXQpOworfQor
CisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfaGlnaGxpZ2h0X3RleHRfbWF0Y2hlczoKKyAq
IEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQGhpZ2hsaWdodDogV2V0aGVyIHRvIGhp
Z2hsaWdodCB0ZXh0IG1hdGNoZXMKKyAqCisgKiBIaWdobGlnaHRzIHRleHQgbWF0Y2hlcyBwcmV2
aW91c2x5IG1hcmtlZCBieSB3ZWJraXRfd2ViX3ZpZXdfbWFya190ZXh0X21hdGNoZXMuCisgKi8K
K3ZvaWQgd2Via2l0X3dlYl92aWV3X3NldF9oaWdobGlnaHRfdGV4dF9tYXRjaGVzKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIHNob3VsZEhpZ2hsaWdodCkKK3sKKyAgICBnX3JldHVy
bl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CisKKyAgICBXZWJLaXRXZWJW
aWV3UHJpdmF0ZSogd2ViVmlld0RhdGEgPSBXRUJLSVRfV0VCX1ZJRVdfR0VUX1BSSVZBVEUod2Vi
Vmlldyk7CisgICAgV2ViS2l0V2ViRnJhbWVQcml2YXRlKiBmcmFtZURhdGEgPSBXRUJLSVRfV0VC
X0ZSQU1FX0dFVF9QUklWQVRFKHdlYlZpZXdEYXRhLT5tYWluRnJhbWUpOworICAgIGZyYW1lRGF0
YS0+ZnJhbWUtPnNldE1hcmtlZFRleHRNYXRjaGVzQXJlSGlnaGxpZ2h0ZWQoc2hvdWxkSGlnaGxp
Z2h0KTsKK30KKworLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlczoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIFJlbW92ZXMgaGlnaGxpZ2h0
aW5nIHByZXZpb3VzbHkgc2V0IGJ5IHdlYmtpdF93ZWJfdmlld19tYXJrX3RleHRfbWF0Y2hlcy4K
KyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfdW5tYXJrX3RleHRfbWF0Y2hlcyhXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVX
KHdlYlZpZXcpKTsKKworICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiB3ZWJWaWV3RGF0YSA9IFdF
QktJVF9XRUJfVklFV19HRVRfUFJJVkFURSh3ZWJWaWV3KTsKKyAgICByZXR1cm4gd2ViVmlld0Rh
dGEtPmNvcmVQYWdlLT51bm1hcmtBbGxUZXh0TWF0Y2hlcygpOworfQorCiBXZWJLaXRXZWJGcmFt
ZSogd2Via2l0X3dlYl92aWV3X2dldF9tYWluX2ZyYW1lKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcp
LCBOVUxMKTsKSW5kZXg6IFdlYktpdC9ndGsvV2ViVmlldy93ZWJraXR3ZWJ2aWV3LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0L2d0ay9XZWJWaWV3L3dlYmtpdHdlYnZpZXcuaAkoUmV2aXNpb24gMjg3
OTgpCisrKyBXZWJLaXQvZ3RrL1dlYlZpZXcvd2Via2l0d2Vidmlldy5oCShBcmJlaXRza29waWUp
CkBAIC0xMTMsNiArMTEzLDE4IEBACiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19s
b2FkX2h0bWxfc3RyaW5nIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIGNv
bnRlbnQsIGNvbnN0IGdjaGFyKiBiYXNlX3VyaSk7CiAKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dl
YmtpdF93ZWJfdmlld19zZWFyY2hfdGV4dCAoV2ViS2l0V2ViVmlldyogd2ViX3ZpZXcsIGNvbnN0
IGdjaGFyKiBzdHJpbmcsIGdib29sZWFuIGNhc2Vfc2Vuc2l0aXZlLCBnYm9vbGVhbiBmb3J3YXJk
LCBnYm9vbGVhbiB3cmFwKTsKKworV0VCS0lUX0FQSSBndWludAord2Via2l0X3dlYl92aWV3X21h
cmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3ZWJfdmlldywgY29uc3QgZ2NoYXIqIHN0
cmluZywgZ2Jvb2xlYW4gY2FzZV9zZW5zaXRpdmUsIGd1aW50IGxpbWl0KTsKKworV0VCS0lUX0FQ
SSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2hpZ2hsaWdodF90ZXh0X21hdGNoZXMgKFdlYktp
dFdlYlZpZXcqIHdlYl92aWV3LCBnYm9vbGVhbiBoaWdobGlnaHQpOworCitXRUJLSVRfQVBJIHZv
aWQKK3dlYmtpdF93ZWJfdmlld191bm1hcmtfdGV4dF9tYXRjaGVzIChXZWJLaXRXZWJWaWV3KiB3
ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgV2ViS2l0V2ViRnJhbWUqCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X21haW5fZnJhbWUgKFdlYktpdFdlYlZpZXcqIHdlYl92aWV3KTsKIApJbmRleDogV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9QYWdlLmNwcAkoUmV2
aXNpb24gMjg3OTgpCisrKyBXZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKEFyYmVpdHNrb3BpZSkKQEAg
LTIwNCw2ICsyMDQsNzEgQEAKICAgICAgICAgICAgIGZyYW1lLT5zZXROZWVkc1JlYXBwbHlTdHls
ZXMoKTsKIH0KIAorc3RhdGljIEZyYW1lKiBpbmNyZW1lbnRGcmFtZShGcmFtZSogY3VyciwgYm9v
bCBmb3J3YXJkLCBib29sIHdyYXBGbGFnKQoreworICAgIHJldHVybiBmb3J3YXJkCisgICAgICAg
ID8gY3Vyci0+dHJlZSgpLT50cmF2ZXJzZU5leHRXaXRoV3JhcCh3cmFwRmxhZykKKyAgICAgICAg
OiBjdXJyLT50cmVlKCktPnRyYXZlcnNlUHJldmlvdXNXaXRoV3JhcCh3cmFwRmxhZyk7Cit9CisK
K2Jvb2wgUGFnZTo6ZmluZFN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwgVGV4dENhc2VTZW5z
aXRpdml0eSBjYXNlU2Vuc2l0aXZpdHksIEZpbmREaXJlY3Rpb24gZGlyZWN0aW9uLCBib29sIHNo
b3VsZFdyYXApCit7CisgICAgaWYgKHRhcmdldC5pc0VtcHR5KCkgfHwgIW1haW5GcmFtZSgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBGcmFtZSogZnJhbWUgPSBmb2N1c0NvbnRyb2xs
ZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAgRnJhbWUqIHN0YXJ0RnJhbWUgPSBmcmFt
ZTsKKyAgICBkbyB7CisgICAgICAgIGlmIChmcmFtZS0+ZmluZFN0cmluZyh0YXJnZXQsIGRpcmVj
dGlvbiA9PSBGaW5kRGlyZWN0aW9uRm9yd2FyZCwgY2FzZVNlbnNpdGl2aXR5ID09IFRleHRDYXNl
U2Vuc2l0aXZlLCBmYWxzZSwgdHJ1ZSkpIHsKKyAgICAgICAgICAgIGlmIChmcmFtZSAhPSBzdGFy
dEZyYW1lKQorICAgICAgICAgICAgICAgIHN0YXJ0RnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIo
KS0+Y2xlYXIoKTsKKyAgICAgICAgICAgIGZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1c2VkRnJh
bWUoZnJhbWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAg
ZnJhbWUgPSBpbmNyZW1lbnRGcmFtZShmcmFtZSwgZGlyZWN0aW9uID09IEZpbmREaXJlY3Rpb25G
b3J3YXJkLCBzaG91bGRXcmFwKTsKKyAgICB9IHdoaWxlIChmcmFtZSAmJiBmcmFtZSAhPSBzdGFy
dEZyYW1lKTsKKworICAgIC8vIFNlYXJjaCBjb250ZW50cyBvZiBzdGFydEZyYW1lLCBvbiB0aGUg
b3RoZXIgc2lkZSBvZiB0aGUgc2VsZWN0aW9uIHRoYXQgd2UgZGlkIGVhcmxpZXIuCisgICAgLy8g
V2UgY2hlYXQgYSBiaXQgYW5kIGp1c3QgcmVzZWFyY2ggd2l0aCB3cmFwIG9uCisgICAgaWYgKHNo
b3VsZFdyYXAgJiYgIXN0YXJ0RnJhbWUtPnNlbGVjdGlvbkNvbnRyb2xsZXIoKS0+aXNOb25lKCkp
IHsKKyAgICAgICAgYm9vbCBmb3VuZCA9IHN0YXJ0RnJhbWUtPmZpbmRTdHJpbmcodGFyZ2V0LCBk
aXJlY3Rpb24gPT0gRmluZERpcmVjdGlvbkZvcndhcmQsIGNhc2VTZW5zaXRpdml0eSA9PSBUZXh0
Q2FzZVNlbnNpdGl2ZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgICAgIGZvY3VzQ29udHJvbGxlcigpLT5z
ZXRGb2N1c2VkRnJhbWUoZnJhbWUpOworICAgICAgICByZXR1cm4gZm91bmQ7CisgICAgfQorCisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit1aW50IFBhZ2U6Om1hcmtBbGxNYXRjaGVzRm9yVGV4dChj
b25zdCBTdHJpbmcmIHRhcmdldCwgVGV4dENhc2VTZW5zaXRpdml0eSBjYXNlU2Vuc2l0aXZpdHks
IGJvb2wgc2hvdWxkSGlnaGxpZ2h0LCB1bnNpZ25lZCBsaW1pdCkKK3sKKyAgICBpZiAodGFyZ2V0
LmlzRW1wdHkoKSB8fCAhbWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgdW5z
aWduZWQgbWF0Y2hlcyA9IDA7CisKKyAgICBGcmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsKKyAg
ICBkbyB7CisgICAgICAgIGZyYW1lLT5zZXRNYXJrZWRUZXh0TWF0Y2hlc0FyZUhpZ2hsaWdodGVk
KHNob3VsZEhpZ2hsaWdodCk7CisgICAgICAgIG1hdGNoZXMgKz0gZnJhbWUtPm1hcmtBbGxNYXRj
aGVzRm9yVGV4dCh0YXJnZXQsIGNhc2VTZW5zaXRpdml0eSA9PSBUZXh0Q2FzZVNlbnNpdGl2ZSwg
KGxpbWl0ID09IDApID8gMCA6IChsaW1pdCAtIG1hdGNoZXMpKTsKKyAgICAgICAgZnJhbWUgPSBp
bmNyZW1lbnRGcmFtZShmcmFtZSwgdHJ1ZSwgZmFsc2UpOworICAgIH0gd2hpbGUgKGZyYW1lKTsK
KworICAgIHJldHVybiBtYXRjaGVzOworfQorCit2b2lkIFBhZ2U6OnVubWFya0FsbFRleHRNYXRj
aGVzKCkKK3sKKyAgICBpZiAoIW1haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBG
cmFtZSogZnJhbWUgPSBtYWluRnJhbWUoKTsKKyAgICBkbyB7CisgICAgICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LT5y
ZW1vdmVNYXJrZXJzKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOworICAgICAgICBmcmFtZSA9
IGluY3JlbWVudEZyYW1lKGZyYW1lLCB0cnVlLCBmYWxzZSk7CisgICAgfSB3aGlsZSAoZnJhbWUp
OworfQorCiBjb25zdCBTZWxlY3Rpb24mIFBhZ2U6OnNlbGVjdGlvbigpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIGZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+c2VsZWN0aW9u
Q29udHJvbGxlcigpLT5zZWxlY3Rpb24oKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9QYWdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL1BhZ2UuaAkoUmV2aXNpb24gMjg3OTgpCisrKyBXZWJD
b3JlL3BhZ2UvUGFnZS5oCShBcmJlaXRza29waWUpCkBAIC0zMyw2ICszMywxNiBAQAogdHlwZWRl
ZiBzdHJ1Y3QgSElOU1RBTkNFX18qIEhJTlNUQU5DRTsKICNlbmRpZgogCit0eXBlZGVmIGVudW0g
VGV4dENhc2VTZW5zaXRpdml0eSB7CisgICAgVGV4dENhc2VTZW5zaXRpdmUsCisgICAgVGV4dENh
c2VJbnNlbnNpdGl2ZQorfTsKKwordHlwZWRlZiBlbnVtIEZpbmREaXJlY3Rpb24geworICAgIEZp
bmREaXJlY3Rpb25Gb3J3YXJkLAorICAgIEZpbmREaXJlY3Rpb25CYWNrd2FyZAorfTsKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgQ2hyb21lOwpAQCAtOTgsNyArMTA4LDExIEBA
CiAgICAgICAgIAogICAgICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhi
b29sIGIpIHsgbV90YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMgPSBiOyB9CiAgICAgICAgIGJv
b2wgdGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV90YWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHM7IH0KLSAgICAgICAgCisKKyAgICAgICAgYm9vbCBmaW5kU3Ry
aW5nKGNvbnN0IFN0cmluZyYsIFRleHRDYXNlU2Vuc2l0aXZpdHksIEZpbmREaXJlY3Rpb24sIGJv
b2wgc2hvdWxkV3JhcCk7CisgICAgICAgIHVpbnQgbWFya0FsbE1hdGNoZXNGb3JUZXh0KGNvbnN0
IFN0cmluZyYsIFRleHRDYXNlU2Vuc2l0aXZpdHksIGJvb2wgc2hvdWxkSGlnaGxpZ2h0LCB1bnNp
Z25lZCk7CisgICAgICAgIHZvaWQgdW5tYXJrQWxsVGV4dE1hdGNoZXMoKTsKKwogICAgICAgICBj
b25zdCBTZWxlY3Rpb24mIHNlbGVjdGlvbigpIGNvbnN0OwogCiAgICAgICAgIHZvaWQgc2V0RGVm
ZXJzTG9hZGluZyhib29sKTsK
</data>
<flag name="review"
          id="7785"
          type_id="1"
          status="+"
          setter="alp"
    />
          </attachment>
      

    </bug>

</bugzilla>