<?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>75220</bug_id>
          
          <creation_ts>2011-12-25 20:49:34 -0800</creation_ts>
          <short_desc>Find indicators overlap when a match spans multiple text boxes</short_desc>
          <delta_ts>2012-04-11 09:54:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>darin</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527125</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-12-25 20:49:34 -0800</bug_when>
    <thetext>Find indicators overlap when a match spans multiple text boxes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527126</commentid>
    <comment_count>1</comment_count>
      <attachid>120522</attachid>
    <who name="">mitz</who>
    <bug_when>2011-12-25 20:57:21 -0800</bug_when>
    <thetext>Created attachment 120522
If find indicators for individual text boxes would overlap, use a single find indicator encompassing all text boxes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527127</commentid>
    <comment_count>2</comment_count>
      <attachid>120522</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-12-25 21:00:40 -0800</bug_when>
    <thetext>Comment on attachment 120522
If find indicators for individual text boxes would overlap, use a single find indicator encompassing all text boxes

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        * WebCore.exp.in: Exported new unionRect(const Vector&lt;FloatRect&gt;&amp;) and exisitng

Typo: exisitng

&gt; Source/WebCore/platform/graphics/FloatRect.h:243
&gt; +FloatRect unionRect(const Vector&lt;FloatRect&gt;&amp;);

Wish there was a generic way to make this take any collection with begin/end instead of just a Vector specifically.

&gt; Source/WebKit2/UIProcess/FindIndicator.cpp:90
&gt; +static bool findIndicatorsForTextRectsOverlap(const Vector&lt;WebCore::FloatRect&gt;&amp; textRects)

No need for WebCore:: prefix here.

&gt; Source/WebKit2/UIProcess/FindIndicator.cpp:108
&gt; +        for (size_t j = indicatorRects.size(); j; ) {
&gt; +            --j;
&gt; +            if (indicatorRect.intersects(indicatorRects[j]))
&gt; +                return true;
&gt; +        }

Is there any way to mitigate the n^2 nature of this algorithm?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527131</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2011-12-25 21:21:49 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 120522 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=120522&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        * WebCore.exp.in: Exported new unionRect(const Vector&lt;FloatRect&gt;&amp;) and exisitng
&gt; 
&gt; Typo: exisitng

Fixed.

&gt; &gt; Source/WebKit2/UIProcess/FindIndicator.cpp:90
&gt; &gt; +static bool findIndicatorsForTextRectsOverlap(const Vector&lt;WebCore::FloatRect&gt;&amp; textRects)
&gt; 
&gt; No need for WebCore:: prefix here.

Fixed.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/FindIndicator.cpp:108
&gt; &gt; +        for (size_t j = indicatorRects.size(); j; ) {
&gt; &gt; +            --j;
&gt; &gt; +            if (indicatorRect.intersects(indicatorRects[j]))
&gt; &gt; +                return true;
&gt; &gt; +        }
&gt; 
&gt; Is there any way to mitigate the n^2 nature of this algorithm?

Sadly, I don’t know the answer.

Thanks for the review!

Landed in &lt;http://trac.webkit.org/r103677&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>527133</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-12-25 21:23:48 -0800</bug_when>
    <thetext>*** Bug 69816 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600340</commentid>
    <comment_count>5</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-04-11 09:54:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/11215218&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>120522</attachid>
            <date>2011-12-25 20:57:21 -0800</date>
            <delta_ts>2011-12-25 21:00:40 -0800</delta_ts>
            <desc>If find indicators for individual text boxes would overlap, use a single find indicator encompassing all text boxes</desc>
            <filename>bug-75220-20111225205719.patch</filename>
            <type>text/plain</type>
            <size>7127</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMzY3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTI1ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViQ29yZSBjaGFuZ2VzIGZvcjog
RmluZCBpbmRpY2F0b3JzIG92ZXJsYXAgd2hlbiBhIG1hdGNoIHNwYW5zIG11bHRpcGxlIHRleHQg
Ym94ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1
MjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjogRXhwb3J0ZWQgbmV3IHVuaW9uUmVjdChjb25zdCBWZWN0b3I8RmxvYXRS
ZWN0PiYpIGFuZCBleGlzaXRuZworICAgICAgICBGbG9hdFJlY3Q6OmludGVyc2VjdHMoKS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dW5pb25SZWN0KTogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0Lmg6CisKIDIwMTEtMTItMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFVzZSBPd25QdHIgZm9yIENTU0ZvbnRGYWNlOjptX3NvdXJjZXMKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCShyZXZpc2lvbiAxMDM2NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTExNSw2ICsxMTE1LDcgQEAgX19aTjdXZWJDb3Jl
OW1ha2VSYW5nZUVSS05TXzE1VmlzaWJsZVBvcwogX19aTjdXZWJDb3JlOXBhZ2VDYWNoZUV2CiBf
X1pON1dlYkNvcmU5cGxhaW5UZXh0RVBLTlNfNVJhbmdlRU5TXzIwVGV4dEl0ZXJhdG9yQmVoYXZp
b3JFCiBfX1pON1dlYkNvcmU5dG9FbGVtZW50RU4zSlNDN0pTVmFsdWVFCitfX1pON1dlYkNvcmU5
dW5pb25SZWN0RVJLTjNXVEY2VmVjdG9ySU5TXzlGbG9hdFJlY3RFTG0wRUVFCiBfX1pOSzNKU0M4
QmluZGluZ3MxMFJvb3RPYmplY3QxMmdsb2JhbE9iamVjdEV2CiBfX1pOSzNXVEY2U3RyaW5nMTRj
cmVhdGVDRlN0cmluZ0V2CiBfX1pOSzdXZWJDb3JlMTBDcmVkZW50aWFsMTFoYXNQYXNzd29yZEV2
CkBAIC0xNDIzLDYgKzE0MjQsNyBAQCBfX1pOSzdXZWJDb3JlOFBvc2l0aW9uMjZ0cmFpbGluZ1do
aXRlc3BhCiBfX1pOSzdXZWJDb3JlOFBvc2l0aW9uOHVwc3RyZWFtRU5TXzI3RWRpdGluZ0JvdW5k
YXJ5Q3Jvc3NpbmdSdWxlRQogX19aTks3V2ViQ29yZTlET01XaW5kb3cyN3BlbmRpbmdVbmxvYWRF
dmVudExpc3RlbmVyc0V2CiBfX1pOSzdXZWJDb3JlOUZsb2F0UXVhZDExYm91bmRpbmdCb3hFdgor
X19aTks3V2ViQ29yZTlGbG9hdFJlY3QxMGludGVyc2VjdHNFUktTMF8KIF9fWk5LN1dlYkNvcmU5
RmxvYXRSZWN0Y3Y3X05TUmVjdEV2CiBfX1pOSzdXZWJDb3JlOUZyYW1lVHJlZTEydHJhdmVyc2VO
ZXh0RVBLTlNfNUZyYW1lRQogX19aTks3V2ViQ29yZTlGcmFtZVRyZWUxNGlzRGVzY2VuZGFudE9m
RVBLTlNfNUZyYW1lRQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxv
YXRSZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwCShyZXZpc2lvbiAxMDM2NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3
LDE3IEBAIHZvaWQgRmxvYXRSZWN0OjpzY2FsZShmbG9hdCBzeCwgZmxvYXQgc3kKICAgICBtX3Np
emUuc2V0SGVpZ2h0KGhlaWdodCgpICogc3kpOwogfQogCitGbG9hdFJlY3QgdW5pb25SZWN0KGNv
bnN0IFZlY3RvcjxGbG9hdFJlY3Q+JiByZWN0cykKK3sKKyAgICBGbG9hdFJlY3QgcmVzdWx0Owor
CisgICAgc2l6ZV90IGNvdW50ID0gcmVjdHMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgcmVzdWx0LnVuaXRlKHJlY3RzW2ldKTsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgRmxvYXRSZWN0OjpmaXRUb1BvaW50cyhjb25zdCBG
bG9hdFBvaW50JiBwMCwgY29uc3QgRmxvYXRQb2ludCYgcDEpCiB7CiAgICAgZmxvYXQgbGVmdCA9
IG1pbihwMC54KCksIHAxLngoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9GbG9hdFJlY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9GbG9hdFJlY3QuaAkocmV2aXNpb24gMTAzNjczKQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4
LDcgQEAKICNkZWZpbmUgRmxvYXRSZWN0X2gKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19D
SFJPTUlVTSkKIHR5cGVkZWYgc3RydWN0IENHUmVjdCBDR1JlY3Q7CkBAIC0yMzksNiArMjQwLDgg
QEAgaW5saW5lIEZsb2F0UmVjdCB1bmlvblJlY3QoY29uc3QgRmxvYXRSZQogICAgIHJldHVybiBj
OwogfQogCitGbG9hdFJlY3QgdW5pb25SZWN0KGNvbnN0IFZlY3RvcjxGbG9hdFJlY3Q+Jik7CisK
IGlubGluZSBGbG9hdFJlY3QmIG9wZXJhdG9yKz0oRmxvYXRSZWN0JiBhLCBjb25zdCBGbG9hdFJl
Y3QmIGIpCiB7CiAgICAgYS5tb3ZlKGIueCgpLCBiLnkoKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZp
c2lvbiAxMDM2NzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMCBAQAorMjAxMS0xMi0yNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgorCisgICAgICAgIEZpbmQgaW5kaWNhdG9ycyBvdmVybGFwIHdoZW4gYSBtYXRjaCBzcGFu
cyBtdWx0aXBsZSB0ZXh0IGJveGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03NTIyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpmaW5kSW5kaWNhdG9yc0ZvclRleHRSZWN0c092ZXJsYXApOiBBZGRlZCB0aGlzIGhlbHBl
ciBmdW5jdGlvbiB0aGF0IGNoZWNrcyBmb3IKKyAgICAgICAgcGFpcndpc2UgaW50ZXJzZWN0aW9u
cyBiZXR3ZWVuIGFsbCBpbmRpY2F0b3IgcmVjdHMuCisgICAgICAgIChXZWJLaXQ6OkZpbmRJbmRp
Y2F0b3I6OkZpbmRJbmRpY2F0b3IpOiBDaGFuZ2VkIHRvIHVzZSBhIHNpbmdsZSByZWN0ICh0aGUg
dW5pb24gb2YgYWxsIHRleHQKKyAgICAgICAgcmVjdHMpIGlmIGFueSB0d28gaW5kaWNhdG9yIHJl
Y3RzIHdvdWxkIG90aGVyd2lzZSBvdmVybGFwLiBUaGlzIGlzIHNpbWlsYXIgdG8gd2hhdCBTYWZh
cmkKKyAgICAgICAgZG9lcywgYW5kIGl0IGVsaW1pbmF0ZXMgb3ZlcmxhcHBpbmcgcmVjdHMgZm9y
IGFkamFjZW50IHRleHQgYm94ZXMuIEluIHJhcmUgY2FzZXMgKHN1Y2ggYXMgd2hlbgorICAgICAg
ICBhIG1hdGNoIHNwYW5zIHR3byBsaW5lcyBhbmQgYWRqYWNlbnQgdGV4dCBib3hlcyBvbiBvbmUg
b2YgdGhvc2UgbGluZXMpIGl0IHJlc3VsdHMgaW4gYSBmaW5kCisgICAgICAgIGluZGljYXRvciB0
aGF0IGlzIHRvbyBsYXJnZSBhbmQgb2JzY3VyZXMgc29tZSBub24tbWF0Y2ggdGV4dC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvRmluZEluZGljYXRvci5oOgorCiAyMDExLTEyLTIxICBTYW0gV2Vpbmln
ICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3RhcnQgZXh0cmFjdGluZyBwbGF0Zm9ybSBz
cGVjaWZpYyBiaXRzIG91dCBvZiBQbGF0Zm9ybUV2ZW50cwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9GaW5kSW5kaWNhdG9yLmNwcAkocmV2aXNpb24gMTAzNjczKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04
NywxMiArODcsNDIgQEAgUGFzc1JlZlB0cjxGaW5kSW5kaWNhdG9yPiBGaW5kSW5kaWNhdG9yOgog
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgRmluZEluZGljYXRvcihzZWxlY3Rpb25SZWN0SW5XaW5k
b3dDb29yZGluYXRlcywgdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0ZXMsIGNvbnRl
bnRJbWFnZVNjYWxlRmFjdG9yLCBjb250ZW50SW1hZ2UucmVsZWFzZSgpKSk7CiB9CiAKK3N0YXRp
YyBib29sIGZpbmRJbmRpY2F0b3JzRm9yVGV4dFJlY3RzT3ZlcmxhcChjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6RmxvYXRSZWN0PiYgdGV4dFJlY3RzKQoreworICAgIHNpemVfdCBjb3VudCA9IHRleHRS
ZWN0cy5zaXplKCk7CisgICAgaWYgKGNvdW50IDw9IDEpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIFZlY3RvcjxGbG9hdFJlY3Q+IGluZGljYXRvclJlY3RzOworICAgIGluZGljYXRvclJl
Y3RzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIEZsb2F0UmVjdCBpbmRpY2F0b3JSZWN0ID0g
dGV4dFJlY3RzW2ldOworICAgICAgICBpbmRpY2F0b3JSZWN0Lm1vdmUoLWxlZnRCb3JkZXJUaGlj
a25lc3MsIC10b3BCb3JkZXJUaGlja25lc3MpOworICAgICAgICBpbmRpY2F0b3JSZWN0LmV4cGFu
ZChsZWZ0Qm9yZGVyVGhpY2tuZXNzICsgcmlnaHRCb3JkZXJUaGlja25lc3MsIHRvcEJvcmRlclRo
aWNrbmVzcyArIGJvdHRvbUJvcmRlclRoaWNrbmVzcyk7CisKKyAgICAgICAgZm9yIChzaXplX3Qg
aiA9IGluZGljYXRvclJlY3RzLnNpemUoKTsgajsgKSB7CisgICAgICAgICAgICAtLWo7CisgICAg
ICAgICAgICBpZiAoaW5kaWNhdG9yUmVjdC5pbnRlcnNlY3RzKGluZGljYXRvclJlY3RzW2pdKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGluZGlj
YXRvclJlY3RzLnVuY2hlY2tlZEFwcGVuZChpbmRpY2F0b3JSZWN0KTsKKyAgICB9CisKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKIEZpbmRJbmRpY2F0b3I6OkZpbmRJbmRpY2F0b3IoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBzZWxlY3Rpb25SZWN0SW5XaW5kb3dDb29yZGluYXRlcywgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4mIHRleHRSZWN0c0luU2VsZWN0aW9uUmVjdENvb3Jk
aW5hdGVzLCBmbG9hdCBjb250ZW50SW1hZ2VTY2FsZUZhY3RvciwgUGFzc1JlZlB0cjxTaGFyZWFi
bGVCaXRtYXA+IGNvbnRlbnRJbWFnZSkKICAgICA6IG1fc2VsZWN0aW9uUmVjdEluV2luZG93Q29v
cmRpbmF0ZXMoc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMpCiAgICAgLCBtX3RleHRS
ZWN0c0luU2VsZWN0aW9uUmVjdENvb3JkaW5hdGVzKHRleHRSZWN0c0luU2VsZWN0aW9uUmVjdENv
b3JkaW5hdGVzKQogICAgICwgbV9jb250ZW50SW1hZ2VTY2FsZUZhY3Rvcihjb250ZW50SW1hZ2VT
Y2FsZUZhY3RvcikKICAgICAsIG1fY29udGVudEltYWdlKGNvbnRlbnRJbWFnZSkKIHsKKyAgICBp
ZiAoZmluZEluZGljYXRvcnNGb3JUZXh0UmVjdHNPdmVybGFwKG1fdGV4dFJlY3RzSW5TZWxlY3Rp
b25SZWN0Q29vcmRpbmF0ZXMpKSB7CisgICAgICAgIG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0
Q29vcmRpbmF0ZXNbMF0gPSB1bmlvblJlY3QobV90ZXh0UmVjdHNJblNlbGVjdGlvblJlY3RDb29y
ZGluYXRlcyk7CisgICAgICAgIG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0Q29vcmRpbmF0ZXMu
c2hyaW5rKDEpOworICAgIH0KIH0KIAogRmluZEluZGljYXRvcjo6fkZpbmRJbmRpY2F0b3IoKQpJ
bmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0ZpbmRJbmRpY2F0b3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5oCShyZXZpc2lvbiAx
MDM2NzMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvRmluZEluZGljYXRvci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Niw4ICs0Niw2IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpGbG9hdFJl
Y3Qgc2VsZWN0aW9uUmVjdEluV2luZG93Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3Nl
bGVjdGlvblJlY3RJbldpbmRvd0Nvb3JkaW5hdGVzOyB9CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IGZyYW1lUmVjdCgpIGNvbnN0OwogCi0gICAgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVj
dD4mIHRleHRSZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlY3RzSW5TZWxlY3Rpb25SZWN0
Q29vcmRpbmF0ZXM7IH0KLQogICAgIFNoYXJlYWJsZUJpdG1hcCogY29udGVudEltYWdlKCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZW50SW1hZ2UuZ2V0KCk7IH0KIAogICAgIHZvaWQgZHJhdyhXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3Qp
Owo=
</data>
<flag name="review"
          id="120802"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>