<?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>58937</bug_id>
          
          <creation_ts>2011-04-19 16:00:41 -0700</creation_ts>
          <short_desc>[Qt][WK2] Initial support for favicons.</short_desc>
          <delta_ts>2011-05-17 12:01:06 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>hausmann</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>388871</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-04-19 16:00:41 -0700</bug_when>
    <thetext>In WebKit1, we have this API for favicons:

- static void QWebSettings::setIconDatabasePath(QString)
- void QWebFrame::iconChanged() [signal]
- QIcon QWebFrame::icon() const

In WebKit2, the WebContext has a WebIconDatabase, so the most straightforward thing approach to expose the favicons through QWKContext. This patch adds the following API:

- void QWKContext::setIconDatabasePath(QString)
- void QWKContext::iconChangedForPageURL(QUrl) [signal]
- QPixmap QWKContext::iconForPageURL(QUrl)

This could be hooked into internally by QWKPage to provide e.g QWKPage::iconChanged() [signal] and QPixmap QWKPage::icon(), but I&apos;d prefer to do that later as &quot;convenience API&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388887</commentid>
    <comment_count>1</comment_count>
      <attachid>90273</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-04-19 16:20:54 -0700</bug_when>
    <thetext>Created attachment 90273
Proposed patch

Proposed patch.

This does not cover the case where an icon is in already in the cache, though this could be added in a follow-up patch. QWebFrame::iconChanged() didn&apos;t work like that until very recently either.. :)

@Brady: In Qt&apos;s WebKit1 API, we always emit the iconChanged() signal, also after an icon is retrieved from cache. Do you have any suggestions how to accomplish this in WebKit2?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>388890</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-19 16:22:30 -0700</bug_when>
    <thetext>Attachment 90273 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:57:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:58:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/qt/ClientImpl.h:56:  The parameter name &quot;iconDatabase&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/API/qt/ClientImpl.h:57:  The parameter name &quot;iconDatabase&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 7 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393031</commentid>
    <comment_count>3</comment_count>
      <attachid>90273</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-04-26 16:37:09 -0700</bug_when>
    <thetext>Comment on attachment 90273
Proposed patch

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

Looks good to me, as discussed. r- because of the nitpicks :)

&gt; Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:86
&gt; +    // FIXME: Should we disable the icon database if path.isEmpty() (like the WebKit1 API does?)

Yes :)

&gt; Source/WebKit2/UIProcess/API/qt/qwkcontext.h:41
&gt; +    QPixmap iconForPageURL(const QUrl&amp;) const;

This should be a QIcon, as discussed at the Review-a-thon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405178</commentid>
    <comment_count>4</comment_count>
      <attachid>93799</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-05-17 11:08:10 -0700</bug_when>
    <thetext>Created attachment 93799
Proposed patch v2

Same patch with QIcon instead of QPixmap as discussed.
We&apos;re still missing a way to disable the icon database once enabled, so I&apos;ve left a FIXME about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405183</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-17 11:11:42 -0700</bug_when>
    <thetext>Attachment 93799 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:25:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:57:  One space before end of line comments  [whitespace/comments] [5]
Source/WebKit2/UIProcess/API/qt/qwkcontext.cpp:58:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 5 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405205</commentid>
    <comment_count>6</comment_count>
      <attachid>93799</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-05-17 11:46:57 -0700</bug_when>
    <thetext>Comment on attachment 93799
Proposed patch v2

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

&gt; Source/WebKit2/UIProcess/API/qt/ClientImpl.cpp:208
&gt; +void qt_wk_didRemoveAllIcons(WKIconDatabaseRef iconDatabase, const void* clientInfo)
&gt; +{
&gt; +}

notImplemented() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405211</commentid>
    <comment_count>7</comment_count>
      <attachid>93799</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-05-17 12:00:57 -0700</bug_when>
    <thetext>Comment on attachment 93799
Proposed patch v2

Clearing flags on attachment: 93799

Committed r86694: &lt;http://trac.webkit.org/changeset/86694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405212</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-05-17 12:01:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90273</attachid>
            <date>2011-04-19 16:20:54 -0700</date>
            <delta_ts>2011-05-17 11:08:10 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-58937.diff</filename>
            <type>text/plain</type>
            <size>8751</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzODhjZDdkLi5jOGZmNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzcg
QEAKIDIwMTEtMDQtMTkgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmtsaW5nQG5va2lhLmNvbT4K
IAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdW1dL
Ml0gSW5pdGlhbCBzdXBwb3J0IGZvciBmYXZpY29ucy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4OTM3CisKKyAgICAgICAgQWRkIHRoZSBmb2xsb3dp
bmcgQVBJIHRvIFFXS0NvbnRleHQ6CisKKyAgICAgICAgLSB2b2lkIHNldEljb25EYXRhYmFzZVBh
dGgoUVN0cmluZykKKyAgICAgICAgLSB2b2lkIGljb25DaGFuZ2VkRm9yUGFnZVVSTChRVXJsKSBb
c2lnbmFsXQorICAgICAgICAtIFFQaXhtYXAgaWNvbkZvclBhZ2VVUkwoUVVybCkKKworICAgICAg
ICBUaGlzIGlzIG1vc3RseSBhbmFsb2dvdXMgdG8gdGhlIFFXZWJTZXR0aW5ncy9RV2ViRnJhbWUg
aWNvbiBBUEkgd2UgaGFkIGluIFdlYktpdDEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0
L0NsaWVudEltcGwuaDogQWRkZWQgV0tJY29uRGF0YWJhc2VDbGllbnQgbWV0aG9kcy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICh0b1FXS0Nv
bnRleHQpOiBIZWxwZXIgdG8gY2FzdCBmcm9tICJ2b2lkKiBjbGllbnRJbmZvIiB0byBhIFFXS0Nv
bnRleHQqLgorICAgICAgICAocXRfd2tfZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwpOiBFbWl0cyBR
V0tDb250ZXh0OjppY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCkuCisgICAgICAgIChxdF93a19k
aWRSZW1vdmVBbGxJY29ucyk6IFN0dWIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3
a2NvbnRleHQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHRfcC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5jcHA6CisgICAgICAgIChRV0tD
b250ZXh0UHJpdmF0ZTo6UVdLQ29udGV4dFByaXZhdGUpOiBTZXQgdXAgYW5kIHJlZ2lzdGVyIGEg
V0tJY29uRGF0YWJhc2VDbGllbnQuCisgICAgICAgIChRV0tDb250ZXh0OjpRV0tDb250ZXh0KTog
TWlub3IgcmVmYWN0b3IgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbiBpbiBjb25zdHJ1Y3RvcnMu
CisgICAgICAgIChRV0tDb250ZXh0OjpzZXRJY29uRGF0YWJhc2VQYXRoKTogRXhhY3RseSB3aGF0
IGl0IHNvdW5kcyBsaWtlLgorICAgICAgICAoUVdLQ29udGV4dDo6aWNvbkZvclBhZ2VVUkwpOiBS
ZXRyaWV2ZXMgdGhlIGZhdmljb24gZm9yIGEgZ2l2ZW4gcGFnZSBVUkwgYXMgYSBRUGl4bWFwLgor
CisgICAgICAgICogV2ViS2l0MkFQSS5wcmk6IEFkZCBXS0ljb25EYXRhYmFzZS5jcHAgYW5kIFdL
SWNvbkRhdGFiYXNlLmggdG8gYnVpbGQuCisKKzIwMTEtMDQtMTkgIEFuZHJlYXMgS2xpbmcgIDxh
bmRyZWFzLmtsaW5nQG5va2lhLmNvbT4KKwogICAgICAgICBSZXZpZXdlZCBieSBBbnRvbmlvIEdv
bWVzLgogCiAgICAgICAgIFdlYktpdDI6IFR5cG8gZml4IGluIFdlYlBvcHVwTWVudTo6VHlwZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwCmluZGV4
IGI0MjcwNTguLjQyNjBlZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9DbGllbnRJbXBsLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgogI2luY2x1ZGUgIldLU3RyaW5nUXQuaCIKICNpbmNsdWRlICJXS1VSTFF0LmgiCisjaW5jbHVk
ZSA8cXdrY29udGV4dC5oPgogI2luY2x1ZGUgPHF3a3BhZ2UuaD4KICNpbmNsdWRlIDxxd2twYWdl
X3AuaD4KICNpbmNsdWRlIDxXS0ZyYW1lLmg+CkBAIC0zMSw2ICszMiwxMyBAQAogCiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCitzdGF0aWMgUVdLQ29udGV4dCogdG9RV0tDb250ZXh0KGNvbnN0
IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgaWYgKGNsaWVudEluZm8pCisgICAgICAgIHJldHVy
biByZWludGVycHJldF9jYXN0PFFXS0NvbnRleHQqPihjb25zdF9jYXN0PHZvaWQqPihjbGllbnRJ
bmZvKSk7CisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBRV0tQYWdlKiB0b1FXS1BhZ2UoY29u
c3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBpZiAoY2xpZW50SW5mbykKQEAgLTE3OSwzICsx
ODcsMTMgQEAgdm9pZCBxdF93a19zZXRTdGF0dXNUZXh0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmlu
Z1JlZiB0ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmYKICAgICBRU3RyaW5nIHFUZXh0ID0gV0tT
dHJpbmdDb3B5UVN0cmluZyh0ZXh0KTsKICAgICBlbWl0IHRvUVdLUGFnZShjbGllbnRJbmZvKS0+
c3RhdHVzQmFyTWVzc2FnZShxVGV4dCk7CiB9CisKK3ZvaWQgcXRfd2tfZGlkQ2hhbmdlSWNvbkZv
clBhZ2VVUkwoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlLCBXS1VSTFJlZiBwYWdlVVJM
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFFVcmwgcVVybCA9IFdLVVJMQ29weVFV
cmwocGFnZVVSTCk7CisgICAgZW1pdCB0b1FXS0NvbnRleHQoY2xpZW50SW5mbyktPmljb25DaGFu
Z2VkRm9yUGFnZVVSTChxVXJsKTsKK30KKwordm9pZCBxdF93a19kaWRSZW1vdmVBbGxJY29ucyhX
S0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudElt
cGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5oCmluZGV4
IDc5NTUxNDQuLmFiMGU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQv
Q2xpZW50SW1wbC5oCkBAIC01Miw2ICs1MiwxMCBAQCB2b2lkIHF0X3drX3Rha2VGb2N1cyhXS1Bh
Z2VSZWYgcGFnZSwgV0tGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIGNvbnN0IHZvaWQgKmNsaQog
dm9pZCBxdF93a19ydW5KYXZhU2NyaXB0QWxlcnQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVm
IGFsZXJ0VGV4dCwgV0tGcmFtZVJlZiBmcmFtZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB2
b2lkIHF0X3drX3NldFN0YXR1c1RleHQoV0tQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIHRleHQs
IGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCisvLyBJY29uRGF0YWJhc2UgY2xpZW50Lgordm9p
ZCBxdF93a19kaWRDaGFuZ2VJY29uRm9yUGFnZVVSTChXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0
YWJhc2UsIFdLVVJMUmVmIHBhZ2VVUkwsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwordm9pZCBx
dF93a19kaWRSZW1vdmVBbGxJY29ucyhXS0ljb25EYXRhYmFzZVJlZiBpY29uRGF0YWJhc2UsIGNv
bnN0IHZvaWQqIGNsaWVudEluZm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5jcHAKaW5kZXgg
NWYwNWY5My4uMDdlMWI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xd2tjb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a2NvbnRleHQuY3BwCkBAIC0yMiw3ICsyMiwxNCBAQAogI2luY2x1ZGUgInF3a2NvbnRleHQu
aCIKICNpbmNsdWRlICJxd2tjb250ZXh0X3AuaCIKIAorI2luY2x1ZGUgIkNsaWVudEltcGwuaCIK
KyNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKKyNpbmNsdWRlIDxRRGlyPgorI2luY2x1ZGUgPFFQ
aXhtYXA+CisjaW5jbHVkZSA8UVVybD4KKyNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNp
bmNsdWRlICJXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJXS0ljb25EYXRhYmFz
ZS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCkBAIC0zNiwzMyArNDMsNjUgQEAgc3Rh
dGljIGlubGluZSB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVN0cmF0ZWdpZXNJZk5lZWRlZCgpCiAg
ICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwogfQogCi1RV0tDb250ZXh0UHJpdmF0ZTo6UVdLQ29udGV4
dFByaXZhdGUoUVdLQ29udGV4dCogcXEpCitRV0tDb250ZXh0UHJpdmF0ZTo6UVdLQ29udGV4dFBy
aXZhdGUoUVdLQ29udGV4dCogcXEsIFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCiAgICAgOiBxKHFx
KQogeworICAgIGlmICghd2ViQ29udGV4dCkKKyAgICAgICAgY29udGV4dCA9IFdlYkNvbnRleHQ6
OmNyZWF0ZShTdHJpbmcoKSk7CisgICAgZWxzZQorICAgICAgICBjb250ZXh0ID0gd2ViQ29udGV4
dDsKKwogICAgIGluaXRpYWxpemVQbGF0Zm9ybVN0cmF0ZWdpZXNJZk5lZWRlZCgpOworCisgICAg
V0tJY29uRGF0YWJhc2VDbGllbnQgaWNvbkRhdGFiYXNlQ2xpZW50ID0geworICAgICAgICAwLCAg
ICAgIC8vIHZlcnNpb24KKyAgICAgICAgcXEsICAgICAvLyBjbGllbnRJbmZvCisgICAgICAgIHF0
X3drX2RpZENoYW5nZUljb25Gb3JQYWdlVVJMLAorICAgICAgICBxdF93a19kaWRSZW1vdmVBbGxJ
Y29ucworICAgIH07CisKKyAgICBXS0ljb25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0
b0FQSShjb250ZXh0LT5pY29uRGF0YWJhc2UoKSksICZpY29uRGF0YWJhc2VDbGllbnQpOwogfQog
CiBRV0tDb250ZXh0UHJpdmF0ZTo6flFXS0NvbnRleHRQcml2YXRlKCkKLXsKLX0KK3sgfQogCiBR
V0tDb250ZXh0OjpRV0tDb250ZXh0KFFPYmplY3QqIHBhcmVudCkKICAgICA6IFFPYmplY3QocGFy
ZW50KQogICAgICwgZChuZXcgUVdLQ29udGV4dFByaXZhdGUodGhpcykpCi17Ci0gICAgZC0+Y29u
dGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShTdHJpbmcoKSk7Ci19Cit7IH0KIAogUVdLQ29udGV4
dDo6UVdLQ29udGV4dChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgUU9iamVjdCogcGFyZW50KQog
ICAgIDogUU9iamVjdChwYXJlbnQpCi0gICAgLCBkKG5ldyBRV0tDb250ZXh0UHJpdmF0ZSh0aGlz
KSkKLXsKLSAgICBkLT5jb250ZXh0ID0gdG9JbXBsKGNvbnRleHRSZWYpOwotfQorICAgICwgZChu
ZXcgUVdLQ29udGV4dFByaXZhdGUodGhpcywgdG9JbXBsKGNvbnRleHRSZWYpKSkKK3sgfQogCiBR
V0tDb250ZXh0Ojp+UVdLQ29udGV4dCgpCiB7CiAgICAgZGVsZXRlIGQ7CiB9CiAKK3ZvaWQgUVdL
Q29udGV4dDo6c2V0SWNvbkRhdGFiYXNlUGF0aChjb25zdCBRU3RyaW5nJiBwYXRoKQoreworICAg
IC8vIEZJWE1FOiBTaG91bGQgd2UgZGlzYWJsZSB0aGUgaWNvbiBkYXRhYmFzZSBpZiBwYXRoLmlz
RW1wdHkoKSAobGlrZSB0aGUgV2ViS2l0MSBBUEkgZG9lcz8pCisgICAgUUZpbGVJbmZvIGluZm8o
cGF0aCk7CisgICAgaWYgKGluZm8uaXNEaXIoKSAmJiBpbmZvLmlzV3JpdGFibGUoKSkgeworICAg
ICAgICBRU3RyaW5nIGRhdGFiYXNlUGF0aCA9IHBhdGggKyBRRGlyOjpzZXBhcmF0b3IoKSArIFFT
dHJpbmcoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpKTsK
KyAgICAgICAgZC0+Y29udGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOwor
ICAgIH0KK30KKworUVBpeG1hcCBRV0tDb250ZXh0OjppY29uRm9yUGFnZVVSTChjb25zdCBRVXJs
JiBwYWdlVVJMKSBjb25zdAoreworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gaW1hZ2UgPSBk
LT5jb250ZXh0LT5pY29uRGF0YWJhc2UoKS0+aW1hZ2VGb3JQYWdlVVJMKHBhZ2VVUkwudG9TdHJp
bmcoKSk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKKworICAg
IFFQaXhtYXAqIG5hdGl2ZUltYWdlID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1l
KCk7CisgICAgaWYgKCFuYXRpdmVJbWFnZSkKKyAgICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKKwor
ICAgIHJldHVybiBRUGl4bWFwKCpuYXRpdmVJbWFnZSk7Cit9CisKICNpbmNsdWRlICJtb2NfcXdr
Y29udGV4dC5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3F3a2NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4
dC5oCmluZGV4IDM4NGQ2MjkuLjg1ZDJmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvcXQvcXdrY29udGV4dC5oCkBAIC0yNCw2ICsyNCw4IEBACiAjaW5jbHVkZSA8UU9iamVj
dD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQ29udGV4dC5oPgogCitjbGFzcyBRUGl4bWFwOworY2xh
c3MgUVVybDsKIGNsYXNzIFFXS0NvbnRleHRQcml2YXRlOwogCiBjbGFzcyBRV0VCS0lUX0VYUE9S
VCBRV0tDb250ZXh0IDogcHVibGljIFFPYmplY3QgewpAQCAtMzUsNiArMzcsMTIgQEAgcHVibGlj
OgogICAgIC8vIEJyaWRnZSBmcm9tIHRoZSBDIEFQSQogICAgIFFXS0NvbnRleHQoV0tDb250ZXh0
UmVmIGNvbnRleHRSZWYsIFFPYmplY3QqIHBhcmVudCA9IDApOwogCisgICAgdm9pZCBzZXRJY29u
RGF0YWJhc2VQYXRoKGNvbnN0IFFTdHJpbmcmKTsKKyAgICBRUGl4bWFwIGljb25Gb3JQYWdlVVJM
KGNvbnN0IFFVcmwmKSBjb25zdDsKKworcHVibGljOgorICAgIFFfU0lHTkFMIHZvaWQgaWNvbkNo
YW5nZWRGb3JQYWdlVVJMKGNvbnN0IFFVcmwmKTsKKwogcHJpdmF0ZToKICAgICBRV0tDb250ZXh0
UHJpdmF0ZSogZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xd2tjb250ZXh0X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXdrY29u
dGV4dF9wLmgKaW5kZXggNjI1ZTg3Yy4uNWFiZjk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0X3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHRfcC5oCkBAIC0yNiw3ICsyNiw3IEBACiAKIGNsYXNz
IFFXS0NvbnRleHRQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBRV0tDb250ZXh0UHJpdmF0ZShRV0tD
b250ZXh0Kik7CisgICAgUVdLQ29udGV4dFByaXZhdGUoUVdLQ29udGV4dCosIFdlYktpdDo6V2Vi
Q29udGV4dCogPSAwKTsKICAgICB+UVdLQ29udGV4dFByaXZhdGUoKTsKIAogICAgIFFXS0NvbnRl
eHQqIHE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJLnByaSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCmluZGV4IDNkZmM3YmYuLjE3MDk1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDJBUEkucHJpCkBAIC0zMSw2ICszMSw3IEBAIFdFQktJVDJfQVBJX1NPVVJDRVMgPSBcCiAg
ICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25NYW5h
Z2VyLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAogICAgICQkU09VUkNFX0RJUi9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIFwKKyAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2UuY3BwIFwKICAgICAk
JFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3IuY3BwIFwKICAg
ICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxQYXJhbWV0
ZXJzLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKQEAgLTEwMyw2ICsxMDQsNyBAQCBXRUJLSVQyX0FQ
SV9IRUFERVJTICs9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwKICAgICAkJFNPVVJD
RV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBvc2l0aW9uLmggXAor
ICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0ljb25EYXRhYmFzZS5o
IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0b3Iu
aCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLT3BlblBhbmVs
UGFyYW1ldGVycy5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwK
</data>
<flag name="review"
          id="83005"
          type_id="1"
          status="-"
          setter="hausmann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93799</attachid>
            <date>2011-05-17 11:08:10 -0700</date>
            <delta_ts>2011-05-17 12:00:57 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-58937-v2.diff</filename>
            <type>text/plain</type>
            <size>8649</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBkOTNlOTQ4Li5iNzg5NzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTEtMDUtMTcgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF1bV0syXSBJbml0
aWFsIHN1cHBvcnQgZm9yIGZhdmljb25zLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTg5MzcKKworICAgICAgICBBZGQgdGhlIGZvbGxvd2luZyBBUEkg
dG8gUVdLQ29udGV4dDoKKworICAgICAgICAtIHZvaWQgc2V0SWNvbkRhdGFiYXNlUGF0aChRU3Ry
aW5nKQorICAgICAgICAtIHZvaWQgaWNvbkNoYW5nZWRGb3JQYWdlVVJMKFFVcmwpIFtzaWduYWxd
CisgICAgICAgIC0gUUljb24gaWNvbkZvclBhZ2VVUkwoUVVybCkKKworICAgICAgICBUaGlzIGlz
IG1vc3RseSBhbmFsb2dvdXMgdG8gdGhlIFFXZWJTZXR0aW5ncy9RV2ViRnJhbWUgaWNvbiBBUEkg
d2UgaGFkIGluIFdlYktpdDEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L0NsaWVudElt
cGwuaDogQWRkZWQgV0tJY29uRGF0YWJhc2VDbGllbnQgbWV0aG9kcy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHA6CisgICAgICAgICh0b1FXS0NvbnRleHQpOiBI
ZWxwZXIgdG8gY2FzdCBmcm9tICJ2b2lkKiBjbGllbnRJbmZvIiB0byBhIFFXS0NvbnRleHQqLgor
ICAgICAgICAocXRfd2tfZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwpOiBFbWl0cyBRV0tDb250ZXh0
OjppY29uQ2hhbmdlZEZvclBhZ2VVUkwoUVVybCkuCisgICAgICAgIChxdF93a19kaWRSZW1vdmVB
bGxJY29ucyk6IFN0dWIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHRfcC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvcXQvcXdrY29udGV4dC5jcHA6CisgICAgICAgIChRV0tDb250ZXh0UHJp
dmF0ZTo6UVdLQ29udGV4dFByaXZhdGUpOiBTZXQgdXAgYW5kIHJlZ2lzdGVyIGEgV0tJY29uRGF0
YWJhc2VDbGllbnQuCisgICAgICAgIChRV0tDb250ZXh0OjpRV0tDb250ZXh0KTogTWlub3IgcmVm
YWN0b3IgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbiBpbiBjb25zdHJ1Y3RvcnMuCisgICAgICAg
IChRV0tDb250ZXh0OjpzZXRJY29uRGF0YWJhc2VQYXRoKTogRXhhY3RseSB3aGF0IGl0IHNvdW5k
cyBsaWtlLgorICAgICAgICAoUVdLQ29udGV4dDo6aWNvbkZvclBhZ2VVUkwpOiBSZXRyaWV2ZXMg
dGhlIGZhdmljb24gZm9yIGEgZ2l2ZW4gcGFnZSBVUkwgYXMgYSBRSWNvbi4KKworICAgICAgICAq
IFdlYktpdDJBUEkucHJpOiBBZGQgV0tJY29uRGF0YWJhc2UuY3BwIGFuZCBXS0ljb25EYXRhYmFz
ZS5oIHRvIGJ1aWxkLgorCiAyMDExLTA1LTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9DbGllbnRJbXBsLmNwcAppbmRleCA4MThiYWUxLi5h
NjgwN2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1w
bC5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXS1N0cmluZ1F0LmgiCiAjaW5jbHVkZSAiV0tVUkxRdC5oIgorI2luY2x1ZGUgPHF3a2NvbnRl
eHQuaD4KICNpbmNsdWRlIDxxd2twYWdlLmg+CiAjaW5jbHVkZSA8cXdrcGFnZV9wLmg+CiAjaW5j
bHVkZSA8V0tGcmFtZS5oPgpAQCAtMzEsNiArMzIsMTMgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAorc3RhdGljIFFXS0NvbnRleHQqIHRvUVdLQ29udGV4dChjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIGlmIChjbGllbnRJbmZvKQorICAgICAgICByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxRV0tDb250ZXh0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50SW5mbykpOworICAg
IHJldHVybiAwOworfQorCiBzdGF0aWMgUVdLUGFnZSogdG9RV0tQYWdlKGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7CiAgICAgaWYgKGNsaWVudEluZm8pCkBAIC0xODgsMyArMTk2LDEzIEBAIHZv
aWQgcXRfd2tfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvckZyYW1lKFdLUGFnZVJlZiBwYWdl
LCBXS0ZyYW1lUmVmIGZyYW1lLCBXCiAgICAgZW1pdCB0b1FXS1BhZ2UoY2xpZW50SW5mbyktPnVy
bENoYW5nZWQocVVybCk7CiAgICAgUVdLUGFnZVByaXZhdGU6OmdldCh0b1FXS1BhZ2UoY2xpZW50
SW5mbykpLT51cGRhdGVOYXZpZ2F0aW9uQWN0aW9ucygpOwogfQorCit2b2lkIHF0X3drX2RpZENo
YW5nZUljb25Gb3JQYWdlVVJMKFdLSWNvbkRhdGFiYXNlUmVmIGljb25EYXRhYmFzZSwgV0tVUkxS
ZWYgcGFnZVVSTCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBRVXJsIHFVcmwgPSBX
S1VSTENvcHlRVXJsKHBhZ2VVUkwpOworICAgIGVtaXQgdG9RV0tDb250ZXh0KGNsaWVudEluZm8p
LT5pY29uQ2hhbmdlZEZvclBhZ2VVUkwocVVybCk7Cit9CisKK3ZvaWQgcXRfd2tfZGlkUmVtb3Zl
QWxsSWNvbnMoV0tJY29uRGF0YWJhc2VSZWYgaWNvbkRhdGFiYXNlLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9DbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L0NsaWVudElt
cGwuaAppbmRleCA1MWE4NDVjLi5jMmRiMzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L0NsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3F0L0NsaWVudEltcGwuaApAQCAtNTMsNiArNTMsMTAgQEAgdm9pZCBxdF93a190YWtl
Rm9jdXMoV0tQYWdlUmVmIHBhZ2UsIFdLRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCB2
b2lkICpjbGkKIHZvaWQgcXRfd2tfcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBX
S1N0cmluZ1JlZiBhbGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pOwogdm9pZCBxdF93a19zZXRTdGF0dXNUZXh0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmlu
Z1JlZiB0ZXh0LCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIAorLy8gSWNvbkRhdGFiYXNlIGNs
aWVudC4KK3ZvaWQgcXRfd2tfZGlkQ2hhbmdlSWNvbkZvclBhZ2VVUkwoV0tJY29uRGF0YWJhc2VS
ZWYsIFdLVVJMUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3ZvaWQgcXRfd2tfZGlkUmVt
b3ZlQWxsSWNvbnMoV0tJY29uRGF0YWJhc2VSZWYsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwor
CiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXdrY29udGV4dC5jcHAKaW5kZXggNWYwNWY5My4uZTBjMWFjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuY3BwCkBAIC0yMiw3
ICsyMiwxNCBAQAogI2luY2x1ZGUgInF3a2NvbnRleHQuaCIKICNpbmNsdWRlICJxd2tjb250ZXh0
X3AuaCIKIAorI2luY2x1ZGUgIkNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJJY29uRGF0YWJhc2Uu
aCIKKyNpbmNsdWRlIDxRRGlyPgorI2luY2x1ZGUgPFFQaXhtYXA+CisjaW5jbHVkZSA8UVVybD4K
KyNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRlICJXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCIKKyNpbmNsdWRlICJXS0ljb25EYXRhYmFzZS5oIgogCiB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCkBAIC0zNiwzMyArNDMsNjUgQEAgc3RhdGljIGlubGluZSB2b2lkIGluaXRpYWxp
emVQbGF0Zm9ybVN0cmF0ZWdpZXNJZk5lZWRlZCgpCiAgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwog
fQogCi1RV0tDb250ZXh0UHJpdmF0ZTo6UVdLQ29udGV4dFByaXZhdGUoUVdLQ29udGV4dCogcXEp
CitRV0tDb250ZXh0UHJpdmF0ZTo6UVdLQ29udGV4dFByaXZhdGUoUVdLQ29udGV4dCogcXEsIFdl
YkNvbnRleHQqIHdlYkNvbnRleHQpCiAgICAgOiBxKHFxKQogeworICAgIGlmICghd2ViQ29udGV4
dCkKKyAgICAgICAgY29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0ZShTdHJpbmcoKSk7CisgICAg
ZWxzZQorICAgICAgICBjb250ZXh0ID0gd2ViQ29udGV4dDsKKwogICAgIGluaXRpYWxpemVQbGF0
Zm9ybVN0cmF0ZWdpZXNJZk5lZWRlZCgpOworCisgICAgV0tJY29uRGF0YWJhc2VDbGllbnQgaWNv
bkRhdGFiYXNlQ2xpZW50ID0geworICAgICAgICAwLCAgICAgIC8vIHZlcnNpb24KKyAgICAgICAg
cXEsICAgICAvLyBjbGllbnRJbmZvCisgICAgICAgIHF0X3drX2RpZENoYW5nZUljb25Gb3JQYWdl
VVJMLAorICAgICAgICBxdF93a19kaWRSZW1vdmVBbGxJY29ucworICAgIH07CisKKyAgICBXS0lj
b25EYXRhYmFzZVNldEljb25EYXRhYmFzZUNsaWVudCh0b0FQSShjb250ZXh0LT5pY29uRGF0YWJh
c2UoKSksICZpY29uRGF0YWJhc2VDbGllbnQpOwogfQogCiBRV0tDb250ZXh0UHJpdmF0ZTo6flFX
S0NvbnRleHRQcml2YXRlKCkKLXsKLX0KK3sgfQogCiBRV0tDb250ZXh0OjpRV0tDb250ZXh0KFFP
YmplY3QqIHBhcmVudCkKICAgICA6IFFPYmplY3QocGFyZW50KQogICAgICwgZChuZXcgUVdLQ29u
dGV4dFByaXZhdGUodGhpcykpCi17Ci0gICAgZC0+Y29udGV4dCA9IFdlYkNvbnRleHQ6OmNyZWF0
ZShTdHJpbmcoKSk7Ci19Cit7IH0KIAogUVdLQ29udGV4dDo6UVdLQ29udGV4dChXS0NvbnRleHRS
ZWYgY29udGV4dFJlZiwgUU9iamVjdCogcGFyZW50KQogICAgIDogUU9iamVjdChwYXJlbnQpCi0g
ICAgLCBkKG5ldyBRV0tDb250ZXh0UHJpdmF0ZSh0aGlzKSkKLXsKLSAgICBkLT5jb250ZXh0ID0g
dG9JbXBsKGNvbnRleHRSZWYpOwotfQorICAgICwgZChuZXcgUVdLQ29udGV4dFByaXZhdGUodGhp
cywgdG9JbXBsKGNvbnRleHRSZWYpKSkKK3sgfQogCiBRV0tDb250ZXh0Ojp+UVdLQ29udGV4dCgp
CiB7CiAgICAgZGVsZXRlIGQ7CiB9CiAKK3ZvaWQgUVdLQ29udGV4dDo6c2V0SWNvbkRhdGFiYXNl
UGF0aChjb25zdCBRU3RyaW5nJiBwYXRoKQoreworICAgIC8vIEZJWE1FOiBUaGVyZSBpcyBjdXJy
ZW50bHkgbm8gd2F5IHRvIGRpc2FibGUgdGhlIGljb24gZGF0YWJhc2Ugb25jZSBpdCdzIGVuYWJs
ZWQuCisgICAgUUZpbGVJbmZvIGluZm8ocGF0aCk7CisgICAgaWYgKGluZm8uaXNEaXIoKSAmJiBp
bmZvLmlzV3JpdGFibGUoKSkgeworICAgICAgICBRU3RyaW5nIGRhdGFiYXNlUGF0aCA9IHBhdGgg
KyBRRGlyOjpzZXBhcmF0b3IoKSArIFFTdHJpbmcoV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZh
dWx0RGF0YWJhc2VGaWxlbmFtZSgpKTsKKyAgICAgICAgZC0+Y29udGV4dC0+c2V0SWNvbkRhdGFi
YXNlUGF0aChkYXRhYmFzZVBhdGgpOworICAgIH0KK30KKworUUljb24gUVdLQ29udGV4dDo6aWNv
bkZvclBhZ2VVUkwoY29uc3QgUVVybCYgcGFnZVVSTCkgY29uc3QKK3sKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6SW1hZ2U+IGltYWdlID0gZC0+Y29udGV4dC0+aWNvbkRhdGFiYXNlKCktPmltYWdlRm9y
UGFnZVVSTChwYWdlVVJMLnRvU3RyaW5nKCkpOworICAgIGlmICghaW1hZ2UpCisgICAgICAgIHJl
dHVybiBRSWNvbigpOworCisgICAgUVBpeG1hcCogbmF0aXZlSW1hZ2UgPSBpbWFnZS0+bmF0aXZl
SW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsKKyAgICBpZiAoIW5hdGl2ZUltYWdlKQorICAgICAgICBy
ZXR1cm4gUUljb24oKTsKKworICAgIHJldHVybiBRSWNvbigqbmF0aXZlSW1hZ2UpOworfQorCiAj
aW5jbHVkZSAibW9jX3F3a2NvbnRleHQuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3F3a2NvbnRleHQuaAppbmRleCAzODRkNjI5Li44YWE1MTAyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHQuaApAQCAtMjQsNiArMjQsOCBAQAog
I2luY2x1ZGUgPFFPYmplY3Q+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0NvbnRleHQuaD4KIAorY2xh
c3MgUUljb247CitjbGFzcyBRVXJsOwogY2xhc3MgUVdLQ29udGV4dFByaXZhdGU7CiAKIGNsYXNz
IFFXRUJLSVRfRVhQT1JUIFFXS0NvbnRleHQgOiBwdWJsaWMgUU9iamVjdCB7CkBAIC0zNSw2ICsz
NywxMiBAQCBwdWJsaWM6CiAgICAgLy8gQnJpZGdlIGZyb20gdGhlIEMgQVBJCiAgICAgUVdLQ29u
dGV4dChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgUU9iamVjdCogcGFyZW50ID0gMCk7CiAKKyAg
ICB2b2lkIHNldEljb25EYXRhYmFzZVBhdGgoY29uc3QgUVN0cmluZyYpOworICAgIFFJY29uIGlj
b25Gb3JQYWdlVVJMKGNvbnN0IFFVcmwmKSBjb25zdDsKKworcHVibGljOgorICAgIFFfU0lHTkFM
IHZvaWQgaWNvbkNoYW5nZWRGb3JQYWdlVVJMKGNvbnN0IFFVcmwmKTsKKwogcHJpdmF0ZToKICAg
ICBRV0tDb250ZXh0UHJpdmF0ZSogZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0X3AuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXdrY29udGV4dF9wLmgKaW5kZXggNjI1ZTg3Yy4uNWFiZjk3OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xd2tjb250ZXh0X3AuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3F3a2NvbnRleHRfcC5oCkBAIC0yNiw3ICsyNiw3
IEBACiAKIGNsYXNzIFFXS0NvbnRleHRQcml2YXRlIHsKIHB1YmxpYzoKLSAgICBRV0tDb250ZXh0
UHJpdmF0ZShRV0tDb250ZXh0Kik7CisgICAgUVdLQ29udGV4dFByaXZhdGUoUVdLQ29udGV4dCos
IFdlYktpdDo6V2ViQ29udGV4dCogPSAwKTsKICAgICB+UVdLQ29udGV4dFByaXZhdGUoKTsKIAog
ICAgIFFXS0NvbnRleHQqIHE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyQVBJ
LnByaSBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCmluZGV4IDNkZmM3YmYuLjE3MDk1
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDJBUEkucHJpCkBAIC0zMSw2ICszMSw3IEBAIFdFQktJVDJfQVBJX1NP
VVJDRVMgPSBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2Vv
bG9jYXRpb25NYW5hZ2VyLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5jcHAgXAogICAgICQkU09VUkNF
X0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0dlb2xvY2F0aW9uUG9zaXRpb24uY3BwIFwK
KyAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJY29uRGF0YWJhc2Uu
Y3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tJbnNwZWN0
b3IuY3BwIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tPcGVu
UGFuZWxQYXJhbWV0ZXJzLmNwcCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLT3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuY3BwIFwKQEAgLTEwMyw2ICsxMDQsNyBA
QCBXRUJLSVQyX0FQSV9IRUFERVJTICs9IFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oIFwK
ICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tHZW9sb2NhdGlvblBv
c2l0aW9uLmggXAorICAgICQkU09VUkNFX0RJUi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0lj
b25EYXRhYmFzZS5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tJbnNwZWN0b3IuaCBcCiAgICAgJCRTT1VSQ0VfRElSL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLT3BlblBhbmVsUGFyYW1ldGVycy5oIFwKICAgICAkJFNPVVJDRV9ESVIvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIFwK
</data>

          </attachment>
      

    </bug>

</bugzilla>