<?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>58622</bug_id>
          
          <creation_ts>2011-04-14 18:23:04 -0700</creation_ts>
          <short_desc>Make JSNodeFilterCondition handle its lifetime correctly</short_desc>
          <delta_ts>2011-04-15 12:56:31 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          <cc>buildbot</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>386260</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-14 18:23:04 -0700</bug_when>
    <thetext>Make JSNodeFilterCondition handle its lifetime correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386262</commentid>
    <comment_count>1</comment_count>
      <attachid>89713</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-14 18:24:58 -0700</bug_when>
    <thetext>Created attachment 89713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386314</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-04-14 20:06:17 -0700</bug_when>
    <thetext>Attachment 89713 did not build on win:
Build output: http://queues.webkit.org/results/8442029</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386362</commentid>
    <comment_count>3</comment_count>
      <attachid>89733</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-14 21:39:07 -0700</bug_when>
    <thetext>Created attachment 89733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386659</commentid>
    <comment_count>4</comment_count>
      <attachid>89733</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-15 09:04:40 -0700</bug_when>
    <thetext>Comment on attachment 89733
Patch

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

Though it works, it seems a little strange to treat the filter condition&apos;s weak owner data member as the filter&apos;s opaque root. The idea of an opaque root is that it&apos;s the root of the DOM data structure that owns the weak handle. But here, you&apos;re using an internal data member of a leaf in the data structure.

I think it would be a little clearer if JSNodeFilterCondition took its NodeFilter owner as a constructor argument, and used that as its opaque root. Then, you could remove the markAggregate function from JSNodeFilterCondition, and just have NodeFilter&apos;s markAggregate add itself as an opaque root.

I&apos;ll say r+ because this patch works as is, but I think you should make that change before landing.

&gt; Source/WebCore/bindings/js/JSNodeFilterCondition.h:48
&gt; +        WeakOwner m_weakOwner;

I would call this m_filterWeakOwner, to specify what it owns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386661</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-04-15 09:11:05 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Then, you could remove the markAggregate function from JSNodeFilterCondition, and just have NodeFilter&apos;s markAggregate add itself as an opaque root.

Taking this a step further, you could even remove the markAggregate function from NodeFilter, and just have the NodeFilter owners (TreeWalker and NodeIterator) add the NodeFilter as an opaque root. Yeah, I&apos;m starting to like that idea even more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>386848</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-04-15 12:56:31 -0700</bug_when>
    <thetext>Committed r84021: &lt;http://trac.webkit.org/changeset/84021&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89713</attachid>
            <date>2011-04-14 18:24:58 -0700</date>
            <delta_ts>2011-04-14 21:39:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58622-20110414182457.patch</filename>
            <type>text/plain</type>
            <size>8377</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDFh
NzQ0YjA4YzA3YTA3ZWU4NWY0MGM2MTg2ZGM0ODg1NjU4OTY2ZmUuLjMyMzE2MjI1MTExOWNiYTMw
YTE0NTE4YzUzMTY0ZDYxYTlkYmE5NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1
ICsxLDE2IEBACiAyMDExLTA0LTE0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBKU05v
ZGVGaWx0ZXJDb25kaXRpb24gaGFuZGxlIGl0cyBsaWZldGltZSBjb3JyZWN0bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjIyCisKKyAgICAgICAg
QWRkIGV4cG9ydAorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorCisyMDExLTA0LTE0
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisKICAgICAgICAgVGVtcG9yYXJpbHkg
cmVtb3ZlIGFzc2VydGlvbiB0aGF0J3MgZmlyaW5nIGFsbCB0aGUgdGltZS4KIAogICAgICAgICBS
Uz1BbmRlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IGUy
MDkyODkwZTFjMTczM2RhMTI5ZTJlNWY5NGJkZGNjZjI1NDFlNzMuLjE4MTMwN2NhYzk2NWEwMzYw
YzJkZmIxOGVkODNkODhiM2I5ZjI2ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLmV4cApAQCAtMTcwLDYgKzE3MCw3IEBAIF9fWk4zSlNDMTRUaW1lb3V0Q2hlY2tlcjVy
ZXNldEV2CiBfX1pOM0pTQzE0dGhyb3dUeXBlRXJyb3JFUE5TXzlFeGVjU3RhdGVFCiBfX1pOM0pT
QzE1SlNXcmFwcGVyT2JqZWN0MTJtYXJrQ2hpbGRyZW5FUk5TXzlNYXJrU3RhY2tFCiBfX1pOM0pT
QzE1V2Vha0hhbmRsZU93bmVyMjZpc1JlYWNoYWJsZUZyb21PcGFxdWVSb290c0VOU182SGFuZGxl
SU5TXzdVbmtub3duRUVFUHZSTlNfOU1hcmtTdGFja0UKK19fWk4zSlNDMTVXZWFrSGFuZGxlT3du
ZXI4ZmluYWxpemVFTlNfNkhhbmRsZUlOU183VW5rbm93bkVFRVB2CiBfX1pOM0pTQzE1V2Vha0hh
bmRsZU93bmVyRDJFdgogX19aTjNKU0MxNWNyZWF0ZVR5cGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUVS
S05TXzdVU3RyaW5nRQogX19aTjNKU0MxNkludGVybmFsRnVuY3Rpb24xMnZ0YWJsZUFuY2hvckV2
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggYzkzNGFhZDY1ZWM0YzcxOWFkMDQyNWQzMDk3Y2UwZjc2Y2ZkYzQ5Yy4u
OTIyYmU5OTQwYmI5ZDgzYzNmMzI2NWUwMGFhNDNmYTgxZjljMjhjZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI0IEBACisyMDExLTA0LTE0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBK
U05vZGVGaWx0ZXJDb25kaXRpb24gaGFuZGxlIGl0cyBsaWZldGltZSBjb3JyZWN0bHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjIyCisKKyAgICAg
ICAgU3dpdGNoIG92ZXIgdG8gYSBXZWFrSGFuZGxlIGFuZCBleHRlcm5hbCByb290cyB0byBrZWVw
IHRoZQorICAgICAgICBjb25kaXRpb24gdmFsdWUgbGl2ZS4KKworICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05vZGVG
aWx0ZXJDb25kaXRpb246OkpTTm9kZUZpbHRlckNvbmRpdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpKU05vZGVGaWx0ZXJDb25kaXRpb246Om1hcmtBZ2dyZWdhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTTm9kZUZpbHRlckNvbmRpdGlvbjo6V2Vha093bmVyOjppc1JlYWNoYWJsZUZyb21PcGFxdWVS
b290cyk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSk6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvTm9kZUZpbHRlcik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG06CisKIDIwMTEtMDQtMTQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggMWNmNzJhNWJj
MjE2OGM0OGI2Y2U2ODZhNTBlZmE5Y2Y2MzFkZTljYS4uMDlkZGY5YmJkYmMyZThmMjRkNTNhYTJh
MjhjZDBhNWU5MzU2NTJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0zMiwyMSArMzIsMjEgQEAgdXNpbmcgbmFt
ZXNwYWNlIEpTQzsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU05vZGVGaWx0ZXJDb25k
aXRpb24pOwogCi1KU05vZGVGaWx0ZXJDb25kaXRpb246OkpTTm9kZUZpbHRlckNvbmRpdGlvbihK
U1ZhbHVlIGZpbHRlcikKLSAgICA6IG1fZmlsdGVyKGZpbHRlcikKK0pTTm9kZUZpbHRlckNvbmRp
dGlvbjo6SlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNW
YWx1ZSBmaWx0ZXIpCisgICAgOiBtX2ZpbHRlcihnbG9iYWxEYXRhLCBmaWx0ZXIsICZtX3dlYWtP
d25lciwgJm1fd2Vha093bmVyKQogewogfQogCiB2b2lkIEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6
bWFya0FnZ3JlZ2F0ZShNYXJrU3RhY2smIG1hcmtTdGFjaykKIHsKLSAgICBtYXJrU3RhY2suYXBw
ZW5kKCZtX2ZpbHRlcik7CisgICAgbWFya1N0YWNrLmFkZE9wYXF1ZVJvb3QoJm1fd2Vha093bmVy
KTsKIH0KIAogc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKSBjb25zdAogewogICAgIEpTTG9jayBsb2Nr
KFNpbGVuY2VBc3NlcnRpb25zT25seSk7CiAKLSAgICBpZiAoIW1fZmlsdGVyLT5pc09iamVjdCgp
KQorICAgIGlmICghbV9maWx0ZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0
ZXI6OkZJTFRFUl9BQ0NFUFQ7CiAKICAgIC8vIFRoZSBleGVjIGFyZ3VtZW50IGhlcmUgc2hvdWxk
IG9ubHkgYmUgbnVsbCBpZiB0aGlzIHdhcyBjYWxsZWQgZnJvbSBhCkBAIC02Miw3ICs2Miw3IEBA
IHNob3J0IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgTm9kZSogZmlsdGVyTm9kZSkKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxs
VHlwZSBjYWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgaWYg
KGNhbGxUeXBlID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBmdW5jdGlvbiA9IG1fZmlsdGVy
LT5nZXQoZXhlYywgSWRlbnRpZmllcihleGVjLCAiYWNjZXB0Tm9kZSIpKTsKKyAgICAgICAgZnVu
Y3Rpb24gPSBtX2ZpbHRlci5nZXQoKS5nZXQoZXhlYywgSWRlbnRpZmllcihleGVjLCAiYWNjZXB0
Tm9kZSIpKTsKICAgICAgICAgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERh
dGEpOwogICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CiAgICAgICAgICAg
ICB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmpl
Y3QgZG9lcyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uIikpOwpAQCAtODgsNCArODgs
OSBAQCBzaG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3Rh
dGUqIGV4ZWMsIE5vZGUqIGZpbHRlck5vZGUpCiAgICAgcmV0dXJuIGludFJlc3VsdDsKIH0KIAor
Ym9vbCBKU05vZGVGaWx0ZXJDb25kaXRpb246OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3Bh
cXVlUm9vdHMoSlNDOjpIYW5kbGU8VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIE1hcmtTdGFjayYg
bWFya1N0YWNrKQoreworICAgIHJldHVybiBtYXJrU3RhY2suY29udGFpbnNPcGFxdWVSb290KGNv
bnRleHQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oCmluZGV4IDE0YjBjMWQyNWFm
YzZlZDUyYmViNjM1MDEwMDFmYjBmN2NiZjMyYTAuLjEzYThhY2RiZTBiYmY2NjhlMDEyZDYzYWY4
MTE5OWY0Zjk4YjgzMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Tm9kZUZpbHRlckNvbmRpdGlvbi5oCkBAIC0yMSw2ICsyMSw3IEBACiAjZGVmaW5lIEpTTm9kZUZp
bHRlckNvbmRpdGlvbl9oCiAKICNpbmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCisjaW5j
bHVkZSA8aGVhcC9XZWFrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+CiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KIApAQCAtMzAsMTggKzMxLDIyIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgIGNsYXNzIEpTTm9kZUZpbHRlckNvbmRpdGlvbiA6IHB1YmxpYyBOb2RlRmls
dGVyQ29uZGl0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpT
Tm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCisgICAgICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEpTTm9kZUZpbHRlckNvbmRpdGlvbj4gY3JlYXRlKEpTQzo6SlNH
bG9iYWxEYXRhJiBnbG9iYWxEYXRhLCBKU0M6OkpTVmFsdWUgZmlsdGVyKQogICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEpTTm9kZUZpbHRlckNvbmRpdGlvbihmaWx0
ZXIpKTsKKyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNOb2RlRmlsdGVyQ29uZGl0
aW9uKGdsb2JhbERhdGEsIGZpbHRlcikpOwogICAgICAgICB9CiAKICAgICBwcml2YXRlOgotICAg
ICAgICBKU05vZGVGaWx0ZXJDb25kaXRpb24oSlNDOjpKU1ZhbHVlIGZpbHRlcik7CisgICAgICAg
IEpTTm9kZUZpbHRlckNvbmRpdGlvbihKU0M6OkpTR2xvYmFsRGF0YSYsIEpTQzo6SlNWYWx1ZSBm
aWx0ZXIpOwogCiAgICAgICAgIHZpcnR1YWwgc2hvcnQgYWNjZXB0Tm9kZShTY3JpcHRTdGF0ZSos
IE5vZGUqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIG1hcmtBZ2dyZWdhdGUoSlNDOjpN
YXJrU3RhY2smKTsKIAotICAgICAgICBtdXRhYmxlIEpTQzo6RGVwcmVjYXRlZFB0cjxKU0M6OlVu
a25vd24+IG1fZmlsdGVyOworICAgICAgICBjbGFzcyBXZWFrT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgeworICAgICAgICAgICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6TWFya1N0YWNrJik7CisgICAgICAgIH07CisgICAgICAgIFdlYWtPd25lciBtX3dlYWtPd25l
cjsKKyAgICAgICAgbXV0YWJsZSBKU0M6OldlYWs8SlNDOjpVbmtub3duPiBtX2ZpbHRlcjsKICAg
ICB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcAppbmRleCBiYzc5ZTk5Njc5N2IxNjhiYzc5
Njk0MDI3OWVhNjczNTdjOWMyOWFiLi5kZTE2M2Q4ZjM1YTQ2MGIzZjg3NmViYmNjZThkN2ZiNDMx
N2I5NmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVGaWx0
ZXJDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRl
ckN1c3RvbS5jcHAKQEAgLTQyLDEyICs0MiwxMiBAQCB2b2lkIEpTTm9kZUZpbHRlcjo6bWFya0No
aWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQogICAgIGltcGwoKS0+bWFya0FnZ3JlZ2F0ZSht
YXJrU3RhY2spOwogfQogCi1QYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU1Zh
bHVlIHZhbHVlKQorUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNHbG9iYWxE
YXRhJiBnbG9iYWxEYXRhLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICh2YWx1ZS5pbmhlcml0
cygmSlNOb2RlRmlsdGVyOjpzX2luZm8pKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNO
b2RlRmlsdGVyKj4oYXNPYmplY3QodmFsdWUpKS0+aW1wbCgpOwogCi0gICAgcmV0dXJuIE5vZGVG
aWx0ZXI6OmNyZWF0ZShKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZSh2YWx1ZSkpOworICAg
IHJldHVybiBOb2RlRmlsdGVyOjpjcmVhdGUoSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUo
Z2xvYmFsRGF0YSwgdmFsdWUpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRl
eCBlODRlNGIwYjdkYjNiYmVjZDI4MWFkYjVmMjA1MDNjZmZhMjE0YTEwLi45Mzg5ZjUwZWJjYzQ2
YzgxNzUyNjY4MWI2MjIyYTIxZGQ3M2ViNWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtOTIzLDcgKzkyMyw3IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgIH0KICAgICBpZiAoISRoYXNQYXJlbnQgfHwgJGRhdGFOb2Rl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVOYXRpdmVDb252ZXJ0ZXIifSkgewogICAg
ICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIk5vZGVGaWx0ZXIiKSB7Ci0gICAgICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIo
SlNDOjpKU1ZhbHVlKTtcbiIpOworICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIlBh
c3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlND
OjpKU1ZhbHVlKTtcbiIpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiRpbXBsVHlwZSogdG8ke2ludGVyZmFjZU5hbWV9KEpTQzo6SlNWYWx1ZSk7
XG4iKTsKICAgICAgICAgfQpAQCAtMjQ2Niw2ICsyNDY2LDExIEBAIHN1YiBKU1ZhbHVlVG9OYXRp
dmUKICAgICAgICAgcmV0dXJuICJleGVjLT5nbG9iYWxEYXRhKCksICR2YWx1ZSI7CiAgICAgfQog
CisgICAgaWYgKCR0eXBlIGVxICJOb2RlRmlsdGVyIikgeworICAgICAgICAkaW1wbEluY2x1ZGVz
eyJKUyR0eXBlLmgifSA9IDE7CisgICAgICAgIHJldHVybiAidG8kdHlwZShleGVjLT5nbG9iYWxE
YXRhKCksICR2YWx1ZSkiOworICAgIH0KKwogICAgIGlmICgkdHlwZSBlcSAiTWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciIpIHsKICAgICAgICAgJGltcGxJbmNsdWRlc3siTWVkaWFRdWVyeUxpc3RMaXN0
ZW5lci5oIn0gPSAxOwogICAgICAgICByZXR1cm4gIk1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmNy
ZWF0ZShTY3JpcHRWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksICIgLiAkdmFsdWUgLiIpKSI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>89733</attachid>
            <date>2011-04-14 21:39:07 -0700</date>
            <delta_ts>2011-04-15 09:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-58622-20110414213906.patch</filename>
            <type>text/plain</type>
            <size>8319</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODM4MTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAx
OTA1Mjk1MmQ0M2U0N2U0ZGYxZjQ4Y2Y3ZWU2OGI3MGU0YWE4YTguLjEwYTU5M2EwMjAzOTE4MWQ0
NWYxNzE0MDNlMWQzNDE4ZmVkNDhhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE0IEBACisyMDExLTA0LTE0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBKU05v
ZGVGaWx0ZXJDb25kaXRpb24gaGFuZGxlIGl0cyBsaWZldGltZSBjb3JyZWN0bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU4NjIyCisKKyAgICAgICAg
QWRkIGV4cG9ydAorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOgorCiAyMDExLTA0LTEz
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IDMyYml0IHRl
c3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggZTIwOTI4
OTBlMWMxNzMzZGExMjllMmU1Zjk0YmRkY2NmMjU0MWU3My4uMTgxMzA3Y2FjOTY1YTAzNjBjMmRm
YjE4ZWQ4M2Q4OGIzYjlmMjY4NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZXhwCkBAIC0xNzAsNiArMTcwLDcgQEAgX19aTjNKU0MxNFRpbWVvdXRDaGVja2VyNXJlc2V0
RXYKIF9fWk4zSlNDMTR0aHJvd1R5cGVFcnJvckVQTlNfOUV4ZWNTdGF0ZUUKIF9fWk4zSlNDMTVK
U1dyYXBwZXJPYmplY3QxMm1hcmtDaGlsZHJlbkVSTlNfOU1hcmtTdGFja0UKIF9fWk4zSlNDMTVX
ZWFrSGFuZGxlT3duZXIyNmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzRU5TXzZIYW5kbGVJTlNf
N1Vua25vd25FRUVQdlJOU185TWFya1N0YWNrRQorX19aTjNKU0MxNVdlYWtIYW5kbGVPd25lcjhm
aW5hbGl6ZUVOU182SGFuZGxlSU5TXzdVbmtub3duRUVFUHYKIF9fWk4zSlNDMTVXZWFrSGFuZGxl
T3duZXJEMkV2CiBfX1pOM0pTQzE1Y3JlYXRlVHlwZUVycm9yRVBOU185RXhlY1N0YXRlRVJLTlNf
N1VTdHJpbmdFCiBfX1pOM0pTQzE2SW50ZXJuYWxGdW5jdGlvbjEydnRhYmxlQW5jaG9yRXYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwppbmRleCBlZWNmNWU5ZDYwODM1Yjg5MDk4MDBmZGZmNTBmNWMwMTE3MDJlOTAwLi5kMzNi
YTk2ZmU4YjRiNjdiZTM3NzNjYTA4MmYzYTgxNGE0ZTdkMjkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjQgQEAKKzIwMTEtMDQtMTQgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIEpTTm9k
ZUZpbHRlckNvbmRpdGlvbiBoYW5kbGUgaXRzIGxpZmV0aW1lIGNvcnJlY3RseQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTg2MjIKKworICAgICAgICBT
d2l0Y2ggb3ZlciB0byBhIFdlYWtIYW5kbGUgYW5kIGV4dGVybmFsIHJvb3RzIHRvIGtlZXAgdGhl
CisgICAgICAgIGNvbmRpdGlvbiB2YWx1ZSBsaXZlLgorCisgICAgICAgICogYmluZGluZ3MvanMv
SlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZUZpbHRl
ckNvbmRpdGlvbjo6SlNOb2RlRmlsdGVyQ29uZGl0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkpT
Tm9kZUZpbHRlckNvbmRpdGlvbjo6bWFya0FnZ3JlZ2F0ZSk6CisgICAgICAgIChXZWJDb3JlOjpK
U05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNO
b2RlRmlsdGVyQ29uZGl0aW9uOjpXZWFrT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDb25kaXRpb24uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9O
b2RlRmlsdGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKwogMjAxMS0wNC0xMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAKaW5kZXggMWNmNzJhNWJjMjE2OGM0
OGI2Y2U2ODZhNTBlZmE5Y2Y2MzFkZTljYS4uYTNiMzQ3Y2MyZTg5YTAwZTU5OTIyNDQwZDA3ZGY0
YTJjYjgxMmQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2Rl
RmlsdGVyQ29uZGl0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwCkBAIC0zMiwyMSArMzIsMjEgQEAgdXNpbmcgbmFtZXNwYWNl
IEpTQzsKIAogQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU05vZGVGaWx0ZXJDb25kaXRpb24p
OwogCi1KU05vZGVGaWx0ZXJDb25kaXRpb246OkpTTm9kZUZpbHRlckNvbmRpdGlvbihKU1ZhbHVl
IGZpbHRlcikKLSAgICA6IG1fZmlsdGVyKGZpbHRlcikKK0pTTm9kZUZpbHRlckNvbmRpdGlvbjo6
SlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTR2xvYmFsRGF0YSYgZ2xvYmFsRGF0YSwgSlNWYWx1ZSBm
aWx0ZXIpCisgICAgOiBtX2ZpbHRlcihnbG9iYWxEYXRhLCBmaWx0ZXIsICZtX3dlYWtPd25lciwg
Jm1fd2Vha093bmVyKQogewogfQogCiB2b2lkIEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6bWFya0Fn
Z3JlZ2F0ZShNYXJrU3RhY2smIG1hcmtTdGFjaykKIHsKLSAgICBtYXJrU3RhY2suYXBwZW5kKCZt
X2ZpbHRlcik7CisgICAgbWFya1N0YWNrLmFkZE9wYXF1ZVJvb3QoJm1fd2Vha093bmVyKTsKIH0K
IAogc2hvcnQgSlNOb2RlRmlsdGVyQ29uZGl0aW9uOjphY2NlcHROb2RlKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCBOb2RlKiBmaWx0ZXJOb2RlKSBjb25zdAogewogICAgIEpTTG9jayBsb2NrKFNpbGVu
Y2VBc3NlcnRpb25zT25seSk7CiAKLSAgICBpZiAoIW1fZmlsdGVyLT5pc09iamVjdCgpKQorICAg
IGlmICghbV9maWx0ZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OkZJ
TFRFUl9BQ0NFUFQ7CiAKICAgIC8vIFRoZSBleGVjIGFyZ3VtZW50IGhlcmUgc2hvdWxkIG9ubHkg
YmUgbnVsbCBpZiB0aGlzIHdhcyBjYWxsZWQgZnJvbSBhCkBAIC02Miw3ICs2Miw3IEBAIHNob3J0
IEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6YWNjZXB0Tm9kZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
Tm9kZSogZmlsdGVyTm9kZSkKICAgICBDYWxsRGF0YSBjYWxsRGF0YTsKICAgICBDYWxsVHlwZSBj
YWxsVHlwZSA9IGdldENhbGxEYXRhKGZ1bmN0aW9uLCBjYWxsRGF0YSk7CiAgICAgaWYgKGNhbGxU
eXBlID09IENhbGxUeXBlTm9uZSkgewotICAgICAgICBmdW5jdGlvbiA9IG1fZmlsdGVyLT5nZXQo
ZXhlYywgSWRlbnRpZmllcihleGVjLCAiYWNjZXB0Tm9kZSIpKTsKKyAgICAgICAgZnVuY3Rpb24g
PSBtX2ZpbHRlci5nZXQoKS5nZXQoZXhlYywgSWRlbnRpZmllcihleGVjLCAiYWNjZXB0Tm9kZSIp
KTsKICAgICAgICAgY2FsbFR5cGUgPSBnZXRDYWxsRGF0YShmdW5jdGlvbiwgY2FsbERhdGEpOwog
ICAgICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGVOb25lKSB7CiAgICAgICAgICAgICB0aHJv
d0Vycm9yKGV4ZWMsIGNyZWF0ZVR5cGVFcnJvcihleGVjLCAiTm9kZUZpbHRlciBvYmplY3QgZG9l
cyBub3QgaGF2ZSBhbiBhY2NlcHROb2RlIGZ1bmN0aW9uIikpOwpAQCAtODgsNCArODgsOSBAQCBz
aG9ydCBKU05vZGVGaWx0ZXJDb25kaXRpb246OmFjY2VwdE5vZGUoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIE5vZGUqIGZpbHRlck5vZGUpCiAgICAgcmV0dXJuIGludFJlc3VsdDsKIH0KIAorYm9vbCBK
U05vZGVGaWx0ZXJDb25kaXRpb246OldlYWtPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9v
dHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgTWFya1N0YWNrJiBt
YXJrU3RhY2spCit7CisgICAgcmV0dXJuIG1hcmtTdGFjay5jb250YWluc09wYXF1ZVJvb3QoY29u
dGV4dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckNvbmRpdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmgKaW5kZXggMTRiMGMxZDI1YWZj
NmVkNTJiZWI2MzUwMTAwMWZiMGY3Y2JmMzJhMC4uMTNhOGFjZGJlMGJiZjY2OGUwMTJkNjNhZjgx
MTk5ZjRmOThiODMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
b2RlRmlsdGVyQ29uZGl0aW9uLmgKQEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgSlNOb2RlRmls
dGVyQ29uZGl0aW9uX2gKIAogI2luY2x1ZGUgIk5vZGVGaWx0ZXJDb25kaXRpb24uaCIKKyNpbmNs
dWRlIDxoZWFwL1dlYWsuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KICNpbmNsdWRl
IDx3dGYvUGFzc1JlZlB0ci5oPgogCkBAIC0zMCwxOCArMzEsMjIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgSlNOb2RlRmlsdGVyQ29uZGl0aW9uIDogcHVibGljIE5vZGVGaWx0
ZXJDb25kaXRpb24gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8SlNO
b2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpKU1ZhbHVlIGZpbHRlcikKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8SlNOb2RlRmlsdGVyQ29uZGl0aW9uPiBjcmVhdGUoSlNDOjpKU0ds
b2JhbERhdGEmIGdsb2JhbERhdGEsIEpTQzo6SlNWYWx1ZSBmaWx0ZXIpCiAgICAgICAgIHsKLSAg
ICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSlNOb2RlRmlsdGVyQ29uZGl0aW9uKGZpbHRl
cikpOworICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBKU05vZGVGaWx0ZXJDb25kaXRp
b24oZ2xvYmFsRGF0YSwgZmlsdGVyKSk7CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIEpTTm9kZUZpbHRlckNvbmRpdGlvbihKU0M6OkpTVmFsdWUgZmlsdGVyKTsKKyAgICAgICAg
SlNOb2RlRmlsdGVyQ29uZGl0aW9uKEpTQzo6SlNHbG9iYWxEYXRhJiwgSlNDOjpKU1ZhbHVlIGZp
bHRlcik7CiAKICAgICAgICAgdmlydHVhbCBzaG9ydCBhY2NlcHROb2RlKFNjcmlwdFN0YXRlKiwg
Tm9kZSopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbWFya0FnZ3JlZ2F0ZShKU0M6Ok1h
cmtTdGFjayYpOwogCi0gICAgICAgIG11dGFibGUgSlNDOjpEZXByZWNhdGVkUHRyPEpTQzo6VW5r
bm93bj4gbV9maWx0ZXI7CisgICAgICAgIGNsYXNzIFdlYWtPd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7CisgICAgICAgICAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFibGVGcm9t
T3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCwgSlND
OjpNYXJrU3RhY2smKTsKKyAgICAgICAgfTsKKyAgICAgICAgV2Vha093bmVyIG1fd2Vha093bmVy
OworICAgICAgICBtdXRhYmxlIEpTQzo6V2VhazxKU0M6OlVua25vd24+IG1fZmlsdGVyOwogICAg
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRlckN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05vZGVGaWx0ZXJDdXN0b20uY3BwCmluZGV4IGJjNzllOTk2Nzk3YjE2OGJjNzk2
OTQwMjc5ZWE2NzM1N2M5YzI5YWIuLmRlMTYzZDhmMzVhNDYwYjNmODc2ZWJiY2NlOGQ3ZmI0MzE3
Yjk2YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUZpbHRl
ckN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlRmlsdGVy
Q3VzdG9tLmNwcApAQCAtNDIsMTIgKzQyLDEyIEBAIHZvaWQgSlNOb2RlRmlsdGVyOjptYXJrQ2hp
bGRyZW4oTWFya1N0YWNrJiBtYXJrU3RhY2spCiAgICAgaW1wbCgpLT5tYXJrQWdncmVnYXRlKG1h
cmtTdGFjayk7CiB9CiAKLVBhc3NSZWZQdHI8Tm9kZUZpbHRlcj4gdG9Ob2RlRmlsdGVyKEpTVmFs
dWUgdmFsdWUpCitQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU0dsb2JhbERh
dGEmIGdsb2JhbERhdGEsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVlLmluaGVyaXRz
KCZKU05vZGVGaWx0ZXI6OnNfaW5mbykpCiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxKU05v
ZGVGaWx0ZXIqPihhc09iamVjdCh2YWx1ZSkpLT5pbXBsKCk7CiAKLSAgICByZXR1cm4gTm9kZUZp
bHRlcjo6Y3JlYXRlKEpTTm9kZUZpbHRlckNvbmRpdGlvbjo6Y3JlYXRlKHZhbHVlKSk7CisgICAg
cmV0dXJuIE5vZGVGaWx0ZXI6OmNyZWF0ZShKU05vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZShn
bG9iYWxEYXRhLCB2YWx1ZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4
IGU4NGU0YjBiN2RiM2JiZWNkMjgxYWRiNWYyMDUwM2NmZmEyMTRhMTAuLjkzODlmNTBlYmNjNDZj
ODE3NTI2NjgxYjYyMjJhMjFkZDczZWI1YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC05MjMsNyArOTIzLDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgfQogICAgIGlmICghJGhhc1BhcmVudCB8fCAkZGF0YU5vZGUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciJ9KSB7CiAgICAg
ICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiTm9kZUZpbHRlciIpIHsKLSAgICAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihK
U0M6OkpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiUGFz
c1JlZlB0cjxOb2RlRmlsdGVyPiB0b05vZGVGaWx0ZXIoSlNDOjpKU0dsb2JhbERhdGEmLCBKU0M6
OkpTVmFsdWUpO1xuIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBoZWFk
ZXJDb250ZW50LCAiJGltcGxUeXBlKiB0byR7aW50ZXJmYWNlTmFtZX0oSlNDOjpKU1ZhbHVlKTtc
biIpOwogICAgICAgICB9CkBAIC0yNDY2LDYgKzI0NjYsMTEgQEAgc3ViIEpTVmFsdWVUb05hdGl2
ZQogICAgICAgICByZXR1cm4gImV4ZWMtPmdsb2JhbERhdGEoKSwgJHZhbHVlIjsKICAgICB9CiAK
KyAgICBpZiAoJHR5cGUgZXEgIk5vZGVGaWx0ZXIiKSB7CisgICAgICAgICRpbXBsSW5jbHVkZXN7
IkpTJHR5cGUuaCJ9ID0gMTsKKyAgICAgICAgcmV0dXJuICJ0byR0eXBlKGV4ZWMtPmdsb2JhbERh
dGEoKSwgJHZhbHVlKSI7CisgICAgfQorCiAgICAgaWYgKCR0eXBlIGVxICJNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyIikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmgifSA9IDE7CiAgICAgICAgIHJldHVybiAiTWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Y3Jl
YXRlKFNjcmlwdFZhbHVlKGV4ZWMtPmdsb2JhbERhdGEoKSwgIiAuICR2YWx1ZSAuIikpIjsK
</data>
<flag name="review"
          id="82455"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>