<?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>18595</bug_id>
          
          <creation_ts>2008-04-18 13:12:58 -0700</creation_ts>
          <short_desc>REGRESSION (r20766): Setting display:none on an iframe causes the ownerDocument to freeze</short_desc>
          <delta_ts>2010-05-25 14:53:08 -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>WebCore Misc.</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>http://s3.amazonaws.com/arnaud.lb/webkit-iframe-bug.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arnaud LB">arnaud.lb</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>78155</commentid>
    <comment_count>0</comment_count>
    <who name="Arnaud LB">arnaud.lb</who>
    <bug_when>2008-04-18 13:12:58 -0700</bug_when>
    <thetext>Setting style.display=&apos;none&apos; on an iframe element in the context of the iframe (after a mouse event in the iframe) causes the owner document to freeze all user actions:

- Clicking on a link does nothing
- Clicking on a submit button does nothing
- etc.

How to repeat: http://s3.amazonaws.com/arnaud.lb/webkit-iframe-bug.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>78402</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-04-21 08:27:39 -0700</bug_when>
    <thetext>Confirmed with r32287.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230035</commentid>
    <comment_count>2</comment_count>
      <attachid>56957</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-24 18:54:03 -0700</bug_when>
    <thetext>Created attachment 56957
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230316</commentid>
    <comment_count>3</comment_count>
      <attachid>56957</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-25 09:40:38 -0700</bug_when>
    <thetext>Comment on attachment 56957
proposed fix

&gt; +    if (m_capturingMouseEventsNode &amp;&amp; (m_capturingMouseEventsNode-&gt;hasTagName(iframeTag) || m_capturingMouseEventsNode-&gt;hasTagName(frameTag)))

I think this would read a lot better with an isFrame-type helper function, even if the implementation does the same hasTagName tests. What about objectTag? Can&apos;t it contain subframes too?

r=me but please consider both comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230438</commentid>
    <comment_count>4</comment_count>
      <attachid>57043</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-25 14:00:40 -0700</bug_when>
    <thetext>Created attachment 57043
proposed fix

Yes, objects and embeds can also hold capturing frames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230448</commentid>
    <comment_count>5</comment_count>
      <attachid>57043</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-25 14:10:15 -0700</bug_when>
    <thetext>Comment on attachment 57043
proposed fix

Fix now covers &lt;object&gt; and &lt;embed&gt;, but the test case doesn&apos;t cover those.

&gt; +        RefPtr and is initizlized automatically.

This has a typo: &quot;initizlized&quot;.

&gt;      , m_resizeLayer(0)
&gt; -    , m_capturingMouseEventsNode(0)
&gt;      , m_clickCount(0)

m_shouldResetCapturingMouseEventsNode ought to be initialized to make memory debugging tools happy if nothing else.

&gt; -    void setCapturingMouseEventsNode(PassRefPtr&lt;Node&gt;);
&gt; +    void setCapturingMouseEventsNode(PassRefPtr&lt;Node&gt;); // A caller is respponsible for resetting capturing node to 0.

This has a typo: &quot;respponsible&quot;.

I also find this comment a bit confusing. In the context of this patch I know what it means.

I think we should have a comment in the one place where we set m_shouldResetCapturingMouseEventsNode saying when the capturing will automatically end. In fact, I think the name of the boolean data member should communicate when the capturing will automatically get reset, not just the fact that it will be reset.

review+ but please fix at least the uninitialized boolean</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230466</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-25 14:31:53 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/60186&gt;.

(In reply to comment #5)
&gt; In fact, I think the name of the boolean data member should communicate when the capturing will automatically get reset, not just the fact that it will be reset.

Renamed to m_eventHandlerWillResetCapturingMouseEventsNode.

&gt; review+ but please fix at least the uninitialized boolean

What is the problem memory debugging tools could have with this? I added the initialization, but I don&apos;t see how it can be necessary. We previously had issues with tools that detected non-errors, but that was when we were reading uninitialized values and not using them, which is not what happens here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230471</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-25 14:46:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; What is the problem memory debugging tools could have with this? I added the initialization, but I don&apos;t see how it can be necessary. We previously had issues with tools that detected non-errors, but that was when we were reading uninitialized values and not using them, which is not what happens here.

There&apos;s no chance of a mismatched mouse release event without a mouse press?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230473</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-05-25 14:53:08 -0700</bug_when>
    <thetext>Given that frames capture events, I don&apos;t see how that could happen.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56957</attachid>
            <date>2010-05-24 18:54:03 -0700</date>
            <delta_ts>2010-05-25 14:00:40 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>FrozenLinks.txt</filename>
            <type>text/plain</type>
            <size>7857</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDExMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTAtMDUtMjQgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTk1CisgICAgICAgIFJF
R1JFU1NJT04gKHIyMDc2Nik6IFNldHRpbmcgZGlzcGxheTpub25lIG9uIGFuIGlmcmFtZSBjYXVz
ZXMgdGhlIG93bmVyRG9jdW1lbnQgdG8gZnJlZXplCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVu
dHMvZnJhbWUtZGV0YWNoZWQtaW4tbW91c2Vkb3duLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VEb3VibGVDbGlja0V2ZW50KTogVGhlIGNvZGUgaGVyZSBsb29rZWQgbGlrZSBpdCB3YXMgY29w
aWVkCisgICAgICAgIGZyb20gdGhlIGJlbG93IGluIHIyMTE1Ni4gQ29waWVkIGNvcnJlY3QgY29k
ZSBpbnN0ZWFkLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJl
bGVhc2VFdmVudCk6IFdlIG9ubHkgY2xlYXIgdGhlIGNhcHR1cmluZyBub2RlIHdoZW4gaXQncwor
ICAgICAgICBhIHN1YmZyYW1lLCBidXQgdGhlIGZyYW1lIG1heSBiZSBhbHJlYWR5IGRldGFjaGVk
IGJ5IHRoZSB0aW1lIG1vdXNlIHVwIGlzIGhhbmRsZWQsIHNvIHRoZQorICAgICAgICBjaGVjayB3
YXMgd3JvbmcgLSBhbmQgcmV0dXJuIGNvZGUgb2YgcGFzc01vdXNlUmVsZWFzZUV2ZW50VG9TdWJm
cmFtZSgpIGlzIG9idmlvdXNseSBpcnJlbGV2YW50LgorCiAyMDEwLTA1LTI0ICBKZXIgTm9ibGUg
IDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNv
bi4KSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCShyZXZpc2lvbiA2MDA5OCkKKysrIFdlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUzLDEwICsxMzUzLDEw
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURvdWJsZUNsaWMKICAgICBIaXRUZXN0
UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgIE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMgbWV2ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgbW91c2VF
dmVudCk7CiAgICAgRnJhbWUqIHN1YmZyYW1lID0gc3ViZnJhbWVGb3JIaXRUZXN0UmVzdWx0KG1l
dik7Ci0gICAgaWYgKHN1YmZyYW1lICYmIHBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKG1l
diwgc3ViZnJhbWUpKSB7CisgICAgaWYgKG1fY2FwdHVyaW5nTW91c2VFdmVudHNOb2RlICYmICht
X2NhcHR1cmluZ01vdXNlRXZlbnRzTm9kZS0+aGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IG1fY2Fw
dHVyaW5nTW91c2VFdmVudHNOb2RlLT5oYXNUYWdOYW1lKGZyYW1lVGFnKSkpCiAgICAgICAgIG1f
Y2FwdHVyaW5nTW91c2VFdmVudHNOb2RlID0gMDsKKyAgICBpZiAoc3ViZnJhbWUgJiYgcGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUobWV2LCBzdWJmcmFtZSkpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KIAogICAgIG1fY2xpY2tDb3VudCA9IG1vdXNlRXZlbnQuY2xpY2tDb3VudCgp
OwogICAgIGJvb2wgc3dhbGxvd01vdXNlVXBFdmVudCA9IGRpc3BhdGNoTW91c2VFdmVudChldmVu
dE5hbWVzKCkubW91c2V1cEV2ZW50LCBtZXYudGFyZ2V0Tm9kZSgpLCB0cnVlLCBtX2NsaWNrQ291
bnQsIG1vdXNlRXZlbnQsIGZhbHNlKTsKQEAgLTE1NDQsMTAgKzE1NDQsMTAgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZQogICAgIEhpdFRlc3RSZXF1ZXN0IHJlcXVl
c3QoSGl0VGVzdFJlcXVlc3Q6Ok1vdXNlVXApOwogICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMgbWV2ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgbW91c2VFdmVudCk7CiAgICAg
RnJhbWUqIHN1YmZyYW1lID0gbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUuZ2V0KCkgPyBzdWJm
cmFtZUZvclRhcmdldE5vZGUobV9jYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUuZ2V0KCkpIDogc3Vi
ZnJhbWVGb3JIaXRUZXN0UmVzdWx0KG1ldik7Ci0gICAgaWYgKHN1YmZyYW1lICYmIHBhc3NNb3Vz
ZVJlbGVhc2VFdmVudFRvU3ViZnJhbWUobWV2LCBzdWJmcmFtZSkpIHsKKyAgICBpZiAobV9jYXB0
dXJpbmdNb3VzZUV2ZW50c05vZGUgJiYgKG1fY2FwdHVyaW5nTW91c2VFdmVudHNOb2RlLT5oYXNU
YWdOYW1lKGlmcmFtZVRhZykgfHwgbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUtPmhhc1RhZ05h
bWUoZnJhbWVUYWcpKSkKICAgICAgICAgbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUgPSAwOwor
ICAgIGlmIChzdWJmcmFtZSAmJiBwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKG1ldiwg
c3ViZnJhbWUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAKICAgICBib29sIHN3YWxs
b3dNb3VzZVVwRXZlbnQgPSBkaXNwYXRjaE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLm1vdXNldXBF
dmVudCwgbWV2LnRhcmdldE5vZGUoKSwgdHJ1ZSwgbV9jbGlja0NvdW50LCBtb3VzZUV2ZW50LCBm
YWxzZSk7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDYwMTEwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMDUtMjQgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4NTk1CisgICAgICAgIFJFR1JFU1NJT04gKHIyMDc2Nik6IFNldHRpbmcgZGlzcGxheTpu
b25lIG9uIGFuIGlmcmFtZSBjYXVzZXMgdGhlIG93bmVyRG9jdW1lbnQgdG8gZnJlZXplCisKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLW5vbnNjcm9sbGFibGUtaWZyYW1lLWluLXNj
cm9sbGFibGUtZGl2Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvYXV0b3Njcm9sbC13aXRo
LW5vbi1zY3JvbGxhYmxlLXBhcmVudC5odG1sOgorICAgICAgICBGaXhlZCBhIHR5cG8gaW4gdGVz
dHMgdGhhdCBJIHVzZWQgYXMgY29weS9wYXN0ZSBpbnNwaXJhdGlvbi4gSXQgaXNuJ3Qgc2lnbmlm
aWNhbnQgaGVyZSwKKyAgICAgICAgYmVjYXVzZSBmcmFtZSdzIGxlZnQgYW5kIHRvcCBvZmZzZXRz
IGFyZSBlcXVhbC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL2ZyYW1lLWRldGFjaGVkLWluLW1v
dXNlZG93bi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2ZyYW1l
LWRldGFjaGVkLWluLW1vdXNlZG93bi5odG1sOiBBZGRlZC4KKwogMjAxMC0wNS0yNCAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1ub25zY3JvbGxh
YmxlLWlmcmFtZS1pbi1zY3JvbGxhYmxlLWRpdi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2F1dG9zY3JvbGwtbm9uc2Nyb2xsYWJsZS1pZnJhbWUtaW4tc2Nyb2xs
YWJsZS1kaXYuaHRtbAkocmV2aXNpb24gNjAwOTgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9hdXRvc2Nyb2xsLW5vbnNjcm9sbGFibGUtaWZyYW1lLWluLXNjcm9sbGFibGUtZGl2Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAgICAgICAgdmFyIHRleHRJbklm
cmFtZSA9IGlmcmFtZURvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXh0SW5GcmFtZScpOwogICAg
ICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgICAgICAgICB2YXIgeCA9
IGlmcmFtZS5vZmZzZXRMZWZ0ICsgdGV4dEluSWZyYW1lLm9mZnNldExlZnQgKyA3OwotICAgICAg
ICAgICAgICAgdmFyIHkgPSBpZnJhbWUub2Zmc2V0TGVmdCArIHRleHRJbklmcmFtZS5vZmZzZXRU
b3AgKyA3OworICAgICAgICAgICAgICAgdmFyIHkgPSBpZnJhbWUub2Zmc2V0VG9wICsgdGV4dElu
SWZyYW1lLm9mZnNldFRvcCArIDc7CiAgICAgICAgICAgICAgICBldmVudFNlbmRlci5kcmFnTW9k
ZSA9IGZhbHNlOwogICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7
CiAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2F1dG9zY3JvbGwtd2l0aC1ub24tc2Nyb2xsYWJsZS1wYXJlbnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLXdpdGgt
bm9uLXNjcm9sbGFibGUtcGFyZW50Lmh0bWwJKHJldmlzaW9uIDYwMDk4KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC13aXRoLW5vbi1zY3JvbGxhYmxlLXBhcmVudC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBACiAgICAgICAgICAgIHZhciBpbnB1dCA9
IGlmcmFtZURvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbnAnKTsKICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgewogICAgICAgICAgICAgICAgdmFyIHggPSBpZnJhbWUub2Zmc2V0
TGVmdCArIGlucHV0Lm9mZnNldExlZnQgKyA3OwotICAgICAgICAgICAgICAgdmFyIHkgPSBpZnJh
bWUub2Zmc2V0TGVmdCArIGlucHV0Lm9mZnNldFRvcCArIDc7CisgICAgICAgICAgICAgICB2YXIg
eSA9IGlmcmFtZS5vZmZzZXRUb3AgKyBpbnB1dC5vZmZzZXRUb3AgKyA3OwogICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIuZHJhZ01vZGUgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwogICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1t
b3VzZWRvd24tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2ZyYW1lLWRldGFjaGVkLWluLW1vdXNlZG93bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3VzZWRvd24t
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK1Rlc3QgZm9yIGJ1ZyAx
ODU5NTogU2V0dGluZyBkaXNwbGF5Om5vbmUgb24gYW4gaWZyYW1lIGNhdXNlcyB0aGUgb3duZXJE
b2N1bWVudCB0byBmcmVlemUuCisKK1BBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvZnJhbWUtZGV0YWNoZWQtaW4tbW91c2Vkb3duLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvZnJhbWUtZGV0YWNoZWQtaW4tbW91c2Vkb3duLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3Vz
ZWRvd24uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OSBAQAorPGh0bWw+Cis8Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KKzxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU5NSI+YnVnIDE4NTk1PC9hPjoKK1NldHRpbmcg
ZGlzcGxheTpub25lIG9uIGFuIGlmcmFtZSBjYXVzZXMgdGhlIG93bmVyRG9jdW1lbnQgdG8gZnJl
ZXplLjwvcD4KKzxkaXYgaWQ9ImxvZyI+UGxlYXNlIGRvIHdoYXQgbGlua3MgYmVsb3cgc2F5Ojwv
ZGl2PgorPGEgaWQ9Zm9vIGhyZWY9ImphdmFzY3JpcHQ6cGFzcygpIj48L2E+Cis8aWZyYW1lIHNy
Yz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCit2YXIgaWZyYW1l
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdOworCitmdW5jdGlv
biBzdGFydFRlc3QoKQoreworICAgIHZhciBkb2MgPSBpZnJhbWUuY29udGVudERvY3VtZW50Owor
ICAgIHZhciBhID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ2EnKTsKKyAgICBhLmhyZWY9JyMnOworICAg
IGEub25tb3VzZWRvd249ZnVuY3Rpb24oKXsKKyAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZm9vJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ05vdyBjbGljayBt
ZScpKTsKKyAgICAgICBpZnJhbWUuc3R5bGUuZGlzcGxheT0nbm9uZSc7CisgICAgfTsKKyAgICBh
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdDbGljayBtZScpKTsKKyAgICBk
b2MuYm9keS5hcHBlbmRDaGlsZChhKTsKKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICAgICB2YXIgeCA9IGlmcmFtZS5vZmZzZXRMZWZ0ICsgYS5vZmZzZXRMZWZ0ICsgNzsKKyAg
ICAgICB2YXIgeSA9IGlmcmFtZS5vZmZzZXRUb3AgKyBhLm9mZnNldFRvcCArIDc7CisgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CisgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgIHNldFRpbWVvdXQo
Y2xpY2syLCAxMCk7CisgICAgfQorfQorCitmdW5jdGlvbiBjbGljazIoKQoreworICAgIHZhciBm
b28gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIik7CisgICAgdmFyIHggPSBmb28ub2Zm
c2V0TGVmdCArIDc7CisgICAgdmFyIHkgPSBmb28ub2Zmc2V0VG9wICsgNzsKKyAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHBhc3MoKQoreworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwgPSAiUEFTUyI7CisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbyIpLmlubmVySFRNTCA9ICIiOworCisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="41457"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57043</attachid>
            <date>2010-05-25 14:00:40 -0700</date>
            <delta_ts>2010-05-25 14:10:15 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>FrozenLinks.txt</filename>
            <type>text/plain</type>
            <size>10439</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDE3OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTk1CisgICAgICAgIFJF
R1JFU1NJT04gKHIyMDc2Nik6IFNldHRpbmcgZGlzcGxheTpub25lIG9uIGFuIGlmcmFtZSBjYXVz
ZXMgdGhlIG93bmVyRG9jdW1lbnQgdG8gZnJlZXplCisKKyAgICAgICAgVGVzdDogZmFzdC9ldmVu
dHMvZnJhbWUtZGV0YWNoZWQtaW4tbW91c2Vkb3duLmh0bWwKKworICAgICAgICAqIHBhZ2UvRXZl
bnRIYW5kbGVyLmg6IEFkZGVkIGEgYm9vbGVhbiB0cmFja2luZyB3aGV0aGVyIEV2ZW50SGFuZGxl
ciBuZWVkcyB0byByZXNldCBjYXB0dXJpbmcKKyAgICAgICAgbm9kZSBvbiBtb3VzZSB1cC4gSXQn
cyBvbmx5IGRvbmUgZm9yIG5vZGVzIHRoYXQgaG9sZCBzdWJmcmFtZXMgLSBlbGVtZW50cyB0aGF0
IGNhcHR1cmUgZXZlbnRzCisgICAgICAgIGFyZSByZXNwb25zaWJsZSBmb3IgcmVzZXR0aW5nIHRo
ZSBzdGF0ZS4KKworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKTogRG9uJ3QgaW5pdGlhbGl6ZSBtX2Nh
cHR1cmluZ01vdXNlRXZlbnRzTm9kZSwgaXQncyBhCisgICAgICAgIFJlZlB0ciBhbmQgaXMgaW5p
dGl6bGl6ZWQgYXV0b21hdGljYWxseS4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
aGFuZGxlTW91c2VQcmVzc0V2ZW50KTogUmVtZW1iZXIgdGhhdCBFdmVudEhhbmRsZXIgc2hvdWxk
IHJlc2V0CisgICAgICAgIGNhcHR1cmluZyBub2RlIG9uIGl0cyBvd24uCisgICAgICAgIChXZWJD
b3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudCk6IFRoZSBjb2Rl
IGhlcmUgbG9va2VkIGxpa2UgaXQgd2FzIGNvcGllZAorICAgICAgICBmcm9tIHRoZSBiZWxvdyBp
biByMjExNTYuIENvcGllZCBjb3JyZWN0IGNvZGUgaW5zdGVhZC4KKyAgICAgICAgKFdlYkNvcmU6
OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VSZWxlYXNlRXZlbnQpOiBXZSBvbmx5IGNsZWFyIHRo
ZSBjYXB0dXJpbmcgbm9kZSB3aGVuIGl0CisgICAgICAgIGhvbGRzIGEgc3ViZnJhbWUsIGJ1dCB0
aGUgZnJhbWUgbWF5IGJlIGFscmVhZHkgZGV0YWNoZWQgYnkgdGhlIHRpbWUgbW91c2UgdXAgaXMg
aGFuZGxlZCwgc28gdGhlCisgICAgICAgIGNoZWNrIHdhcyB3cm9uZyAtIGFuZCByZXR1cm4gY29k
ZSBvZiBwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKCkgaXMgb2J2aW91c2x5IGlycmVs
ZXZhbnQuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNl
RXZlbnRzTm9kZSk6IFJlbWVtYmVyIHRoYXQgRXZlbnRIYW5kbGVyIHNob3VsZCBub3QKKyAgICAg
ICAgcmVzZXQgY2FwdHVyaW5nIG5vZGUgb24gaXRzIG93bi4KKwogMjAxMC0wNS0yNSAgRW5yaWNh
IENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgpJbmRleDogV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDYwMTc4KQorKysgV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3OSw3ICsxNzks
NiBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX3N2
Z1BhbihmYWxzZSkKICNlbmRpZgogICAgICwgbV9yZXNpemVMYXllcigwKQotICAgICwgbV9jYXB0
dXJpbmdNb3VzZUV2ZW50c05vZGUoMCkKICAgICAsIG1fY2xpY2tDb3VudCgwKQogICAgICwgbV9t
b3VzZURvd25UaW1lc3RhbXAoMCkKICAgICAsIG1fdXNlTGF0Y2hlZFdoZWVsRXZlbnROb2RlKGZh
bHNlKQpAQCAtMTI2NCw4ICsxMjYzLDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZVByZXNzRXZlbnQKICAgICAgICAgLy8gU3RhcnQgY2FwdHVyaW5nIGZ1dHVyZSBldmVudHMgZm9y
IHRoaXMgZnJhbWUuICBXZSBvbmx5IGRvIHRoaXMgaWYgd2UgZGlkbid0IGNsZWFyCiAgICAgICAg
IC8vIHRoZSBtX21vdXNlUHJlc3NlZCBmbGFnLCB3aGljaCBtYXkgaGFwcGVuIGlmIGFuIEFwcEtp
dCB3aWRnZXQgZW50ZXJlZCBhIG1vZGFsIGV2ZW50IGxvb3AuCiAgICAgICAgIG1fY2FwdHVyZXNE
cmFnZ2luZyA9IHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+Y2FwdHVyZXNEcmFnZ2luZygpOwot
ICAgICAgICBpZiAobV9tb3VzZVByZXNzZWQgJiYgbV9jYXB0dXJlc0RyYWdnaW5nKQorICAgICAg
ICBpZiAobV9tb3VzZVByZXNzZWQgJiYgbV9jYXB0dXJlc0RyYWdnaW5nKSB7CiAgICAgICAgICAg
ICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzTm9kZSA9IG1ldi50YXJnZXROb2RlKCk7CisgICAgICAg
ICAgICBtX3Nob3VsZFJlc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNOb2RlID0gdHJ1ZTsKKyAgICAg
ICAgfQogICAgICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQpAQCAtMTM1NywxMCArMTM1OCwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91
c2VEb3VibGVDbGljCiAgICAgSGl0VGVzdFJlcXVlc3QgcmVxdWVzdChIaXRUZXN0UmVxdWVzdDo6
QWN0aXZlKTsKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IHByZXBhcmVN
b3VzZUV2ZW50KHJlcXVlc3QsIG1vdXNlRXZlbnQpOwogICAgIEZyYW1lKiBzdWJmcmFtZSA9IHN1
YmZyYW1lRm9ySGl0VGVzdFJlc3VsdChtZXYpOwotICAgIGlmIChzdWJmcmFtZSAmJiBwYXNzTW91
c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShtZXYsIHN1YmZyYW1lKSkgeworICAgIGlmIChtX3Nob3Vs
ZFJlc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNOb2RlKQogICAgICAgICBtX2NhcHR1cmluZ01vdXNl
RXZlbnRzTm9kZSA9IDA7CisgICAgaWYgKHN1YmZyYW1lICYmIHBhc3NNb3VzZVByZXNzRXZlbnRU
b1N1YmZyYW1lKG1ldiwgc3ViZnJhbWUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAK
ICAgICBtX2NsaWNrQ291bnQgPSBtb3VzZUV2ZW50LmNsaWNrQ291bnQoKTsKICAgICBib29sIHN3
YWxsb3dNb3VzZVVwRXZlbnQgPSBkaXNwYXRjaE1vdXNlRXZlbnQoZXZlbnROYW1lcygpLm1vdXNl
dXBFdmVudCwgbWV2LnRhcmdldE5vZGUoKSwgdHJ1ZSwgbV9jbGlja0NvdW50LCBtb3VzZUV2ZW50
LCBmYWxzZSk7CkBAIC0xNTQ4LDEwICsxNTQ5LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5k
bGVNb3VzZVJlbGVhc2VFdmUKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhpdFRlc3RSZXF1
ZXN0OjpNb3VzZVVwKTsKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIG1ldiA9IHBy
ZXBhcmVNb3VzZUV2ZW50KHJlcXVlc3QsIG1vdXNlRXZlbnQpOwogICAgIEZyYW1lKiBzdWJmcmFt
ZSA9IG1fY2FwdHVyaW5nTW91c2VFdmVudHNOb2RlLmdldCgpID8gc3ViZnJhbWVGb3JUYXJnZXRO
b2RlKG1fY2FwdHVyaW5nTW91c2VFdmVudHNOb2RlLmdldCgpKSA6IHN1YmZyYW1lRm9ySGl0VGVz
dFJlc3VsdChtZXYpOwotICAgIGlmIChzdWJmcmFtZSAmJiBwYXNzTW91c2VSZWxlYXNlRXZlbnRU
b1N1YmZyYW1lKG1ldiwgc3ViZnJhbWUpKSB7CisgICAgaWYgKG1fc2hvdWxkUmVzZXRDYXB0dXJp
bmdNb3VzZUV2ZW50c05vZGUpCiAgICAgICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNOb2RlID0g
MDsKKyAgICBpZiAoc3ViZnJhbWUgJiYgcGFzc01vdXNlUmVsZWFzZUV2ZW50VG9TdWJmcmFtZSht
ZXYsIHN1YmZyYW1lKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogCiAgICAgYm9vbCBz
d2FsbG93TW91c2VVcEV2ZW50ID0gZGlzcGF0Y2hNb3VzZUV2ZW50KGV2ZW50TmFtZXMoKS5tb3Vz
ZXVwRXZlbnQsIG1ldi50YXJnZXROb2RlKCksIHRydWUsIG1fY2xpY2tDb3VudCwgbW91c2VFdmVu
dCwgZmFsc2UpOwogCkBAIC0xNzE1LDYgKzE3MTYsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xl
YXJEcmFnU3RhdGUoKQogdm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRz
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG4pCiB7CiAgICAgbV9jYXB0dXJpbmdNb3VzZUV2ZW50c05v
ZGUgPSBuOworICAgIG1fc2hvdWxkUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c05vZGUgPSBmYWxz
ZTsKIH0KIAogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBFdmVudEhhbmRsZXI6OnByZXBh
cmVNb3VzZUV2ZW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIG1ldikKSW5kZXg6IFdlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgJKHJldmlzaW9uIDYwMTc4KQor
KysgV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNyAr
MTEwLDcgQEAgcHVibGljOgogICAgIGJvb2wgbW91c2VQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4g
bV9tb3VzZVByZXNzZWQ7IH0KICAgICB2b2lkIHNldE1vdXNlUHJlc3NlZChib29sIHByZXNzZWQp
IHsgbV9tb3VzZVByZXNzZWQgPSBwcmVzc2VkOyB9CiAKLSAgICB2b2lkIHNldENhcHR1cmluZ01v
dXNlRXZlbnRzTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsKKyAgICB2b2lkIHNldENhcHR1cmluZ01v
dXNlRXZlbnRzTm9kZShQYXNzUmVmUHRyPE5vZGU+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcHBvbnNp
YmxlIGZvciByZXNldHRpbmcgY2FwdHVyaW5nIG5vZGUgdG8gMC4KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCiAgICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBDbGlwYm9hcmQqKTsKQEAgLTM5Miw2ICszOTIsNyBAQCBwcml2YXRlOgogICAgIFJl
bmRlckxheWVyKiBtX3Jlc2l6ZUxheWVyOwogCiAgICAgUmVmUHRyPE5vZGU+IG1fY2FwdHVyaW5n
TW91c2VFdmVudHNOb2RlOworICAgIGJvb2wgbV9zaG91bGRSZXNldENhcHR1cmluZ01vdXNlRXZl
bnRzTm9kZTsKICAgICAKICAgICBSZWZQdHI8Tm9kZT4gbV9ub2RlVW5kZXJNb3VzZTsKICAgICBS
ZWZQdHI8Tm9kZT4gbV9sYXN0Tm9kZVVuZGVyTW91c2U7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2MDE3
OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4
IEBACisyMDEwLTA1LTI1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU5NQorICAgICAgICBSRUdSRVNTSU9OIChy
MjA3NjYpOiBTZXR0aW5nIGRpc3BsYXk6bm9uZSBvbiBhbiBpZnJhbWUgY2F1c2VzIHRoZSBvd25l
ckRvY3VtZW50IHRvIGZyZWV6ZQorCisgICAgICAgICogZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1u
b25zY3JvbGxhYmxlLWlmcmFtZS1pbi1zY3JvbGxhYmxlLWRpdi5odG1sOgorICAgICAgICAqIGZh
c3QvZXZlbnRzL2F1dG9zY3JvbGwtd2l0aC1ub24tc2Nyb2xsYWJsZS1wYXJlbnQuaHRtbDoKKyAg
ICAgICAgRml4ZWQgYSB0eXBvIGluIHRlc3RzIHRoYXQgSSB1c2VkIGFzIGNvcHkvcGFzdGUgaW5z
cGlyYXRpb24uIEl0IGlzbid0IHNpZ25pZmljYW50IGhlcmUsCisgICAgICAgIGJlY2F1c2UgZnJh
bWUncyBsZWZ0IGFuZCB0b3Agb2Zmc2V0cyBhcmUgZXF1YWwuCisKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3VzZWRvd24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3VzZWRvd24uaHRtbDogQWRk
ZWQuCisKIDIwMTAtMDUtMjUgIEp1bGllIFBhcmVudCAgPGpwYXJlbnRAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRv
c2Nyb2xsLW5vbnNjcm9sbGFibGUtaWZyYW1lLWluLXNjcm9sbGFibGUtZGl2Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC1ub25zY3JvbGxhYmxl
LWlmcmFtZS1pbi1zY3JvbGxhYmxlLWRpdi5odG1sCShyZXZpc2lvbiA2MDE3OCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2F1dG9zY3JvbGwtbm9uc2Nyb2xsYWJsZS1pZnJhbWUtaW4tc2Ny
b2xsYWJsZS1kaXYuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQAogICAgICAg
ICAgICB2YXIgdGV4dEluSWZyYW1lID0gaWZyYW1lRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHRJbkZyYW1lJyk7CiAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKICAgICAg
ICAgICAgICAgIHZhciB4ID0gaWZyYW1lLm9mZnNldExlZnQgKyB0ZXh0SW5JZnJhbWUub2Zmc2V0
TGVmdCArIDc7Ci0gICAgICAgICAgICAgICB2YXIgeSA9IGlmcmFtZS5vZmZzZXRMZWZ0ICsgdGV4
dEluSWZyYW1lLm9mZnNldFRvcCArIDc7CisgICAgICAgICAgICAgICB2YXIgeSA9IGlmcmFtZS5v
ZmZzZXRUb3AgKyB0ZXh0SW5JZnJhbWUub2Zmc2V0VG9wICsgNzsKICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLmRyYWdNb2RlID0gZmFsc2U7CiAgICAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigp
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYXV0b3Njcm9sbC13aXRoLW5vbi1zY3Jv
bGxhYmxlLXBhcmVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2F1dG9zY3JvbGwtd2l0aC1ub24tc2Nyb2xsYWJsZS1wYXJlbnQuaHRtbAkocmV2aXNpb24gNjAx
NzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hdXRvc2Nyb2xsLXdpdGgtbm9uLXNjcm9s
bGFibGUtcGFyZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAKICAgICAg
ICAgICAgdmFyIGlucHV0ID0gaWZyYW1lRG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lucCcpOwog
ICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CiAgICAgICAgICAgICAgICB2YXIg
eCA9IGlmcmFtZS5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0TGVmdCArIDc7Ci0gICAgICAgICAg
ICAgICB2YXIgeSA9IGlmcmFtZS5vZmZzZXRMZWZ0ICsgaW5wdXQub2Zmc2V0VG9wICsgNzsKKyAg
ICAgICAgICAgICAgIHZhciB5ID0gaWZyYW1lLm9mZnNldFRvcCArIGlucHV0Lm9mZnNldFRvcCAr
IDc7CiAgICAgICAgICAgICAgICBldmVudFNlbmRlci5kcmFnTW9kZSA9IGZhbHNlOwogICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CiAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Zy
YW1lLWRldGFjaGVkLWluLW1vdXNlZG93bi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvZnJhbWUtZGV0YWNoZWQtaW4tbW91c2Vkb3duLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1lLWRldGFj
aGVkLWluLW1vdXNlZG93bi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBA
QAorVGVzdCBmb3IgYnVnIDE4NTk1OiBTZXR0aW5nIGRpc3BsYXk6bm9uZSBvbiBhbiBpZnJhbWUg
Y2F1c2VzIHRoZSBvd25lckRvY3VtZW50IHRvIGZyZWV6ZS4KKworUEFTUworCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3VzZWRvd24uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9mcmFtZS1kZXRhY2hlZC1pbi1tb3Vz
ZWRvd24uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ZyYW1l
LWRldGFjaGVkLWluLW1vdXNlZG93bi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU5IEBA
Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorPHA+VGVzdCBmb3IgPGEgaHJl
Zj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTk1Ij5idWcgMTg1
OTU8L2E+OgorU2V0dGluZyBkaXNwbGF5Om5vbmUgb24gYW4gaWZyYW1lIGNhdXNlcyB0aGUgb3du
ZXJEb2N1bWVudCB0byBmcmVlemUuPC9wPgorPGRpdiBpZD0ibG9nIj5QbGVhc2UgZG8gd2hhdCBs
aW5rcyBiZWxvdyBzYXk6PC9kaXY+Cis8YSBpZD1mb28gaHJlZj0iamF2YXNjcmlwdDpwYXNzKCki
PjwvYT4KKzxpZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1l
IilbMF07CisKK2Z1bmN0aW9uIHN0YXJ0VGVzdCgpCit7CisgICAgdmFyIGRvYyA9IGlmcmFtZS5j
b250ZW50RG9jdW1lbnQ7CisgICAgdmFyIGEgPSBkb2MuY3JlYXRlRWxlbWVudCgnYScpOworICAg
IGEuaHJlZj0nIyc7CisgICAgYS5vbm1vdXNlZG93bj1mdW5jdGlvbigpeworICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmb28nKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgnTm93IGNsaWNrIG1lJykpOworICAgICAgIGlmcmFtZS5zdHlsZS5kaXNwbGF5PSdub25l
JzsKKyAgICB9OworICAgIGEuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ0Ns
aWNrIG1lJykpOworICAgIGRvYy5ib2R5LmFwcGVuZENoaWxkKGEpOworCisgICAgaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworICAgICAgIHZhciB4ID0gaWZyYW1lLm9mZnNldExlZnQgKyBhLm9m
ZnNldExlZnQgKyA3OworICAgICAgIHZhciB5ID0gaWZyYW1lLm9mZnNldFRvcCArIGEub2Zmc2V0
VG9wICsgNzsKKyAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKKyAgICAgICBl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgICAgc2V0VGltZW91dChjbGljazIsIDEwKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNsaWNr
MigpCit7CisgICAgdmFyIGZvbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb28iKTsKKyAg
ICB2YXIgeCA9IGZvby5vZmZzZXRMZWZ0ICsgNzsKKyAgICB2YXIgeSA9IGZvby5vZmZzZXRUb3Ag
KyA3OworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24g
cGFzcygpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVySFRNTCA9
ICJQQVNTIjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9vIikuaW5uZXJIVE1MID0g
IiI7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>
<flag name="review"
          id="41557"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>