<?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>11450</bug_id>
          
          <creation_ts>2006-10-29 13:47:58 -0800</creation_ts>
          <short_desc>REGRESSION: XMLHttpRequest::didFinishLoading() should immediately return if the request has already been aborted</short_desc>
          <delta_ts>2006-11-08 10:15:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>VERIFIED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.google.co.uk/search?q=WebKit</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to>mitz</assigned_to>
          <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>48524</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-10-29 13:47:58 -0800</bug_when>
    <thetext>ASSERTION FAILED: loader == m_loader
(WebCore/xml/xmlhttprequest.cpp:524 virtual void WebCore::XMLHttpRequest::didFinishLoading(WebCore::ResourceHandle*))

Thread 0 Crashed:
0   com.apple.WebCore        	0x027ffdb0 WebCore::XMLHttpRequest::didFinishLoading(WebCore::ResourceHandle*) + 116 (xmlhttprequest.cpp:524)
1   com.apple.WebCore        	0x02a71f70 WebCore::ResourceHandle::finishJobAndHandle(NSData*) + 132 (ResourceHandleMac.mm:150)
2   com.apple.WebCore        	0x02a71fbc WebCore::ResourceHandle::reportError() + 48 (ResourceHandleMac.mm:157)
3   com.apple.WebCore        	0x02a68b80 WebCore::SubresourceLoader::didCancel(NSError*) + 272 (WebSubresourceLoader.mm:204)
4   com.apple.WebCore        	0x02a62e98 WebCore::WebResourceLoader::cancel(NSError*) + 144 (WebLoader.mm:415)
5   com.apple.WebCore        	0x02a61c94 WebCore::cancelAll(WTF::HashSet&lt;WTF::RefPtr&lt;WebCore::WebResourceLoader&gt;, WTF::PtrHash&lt;WTF::RefPtr&lt;WebCore::WebResourceLoader&gt; &gt;, WTF::HashTraits&lt;WTF::RefPtr&lt;WebCore::WebResourceLoader&gt; &gt; &gt; const&amp;) + 136 (FrameLoader.mm:82)
6   com.apple.WebCore        	0x02a61d1c WebCore::FrameLoader::stopLoadingSubresources() + 40 (FrameLoader.mm:446)
7   com.apple.WebCore        	0x02a55678 WebCore::DocumentLoader::stopLoading() + 312 (WebDocumentLoader.mm:303)
8   com.apple.WebCore        	0x02a5df4c WebCore::FrameLoader::stopLoading() + 268 (FrameLoader.mm:474)
9   com.apple.WebCore        	0x02a5e4b4 WebCore::FrameLoader::continueLoadAfterNavigationPolicy(NSURLRequest*, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 592 (FrameLoader.mm:1485)
10  com.apple.WebCore        	0x02a5e68c WebCore::FrameLoader::callContinueLoadAfterNavigationPolicy(void*, NSURLRequest*, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 76 (FrameLoader.mm:1446)
11  com.apple.WebCore        	0x02a5d388 WebCore::PolicyCheck::call() + 144 (FrameLoader.mm:2078)
12  com.apple.WebCore        	0x02a5dcb8 WebCore::FrameLoader::continueAfterNavigationPolicy(WebCore::PolicyAction) + 364 (FrameLoader.mm:1427)
13  com.apple.WebKit         	0x010d7150 WebFrameLoaderClient::receivedPolicyDecison(WebCore::PolicyAction) + 392 (WebFrameLoaderClient.mm:1165)
14  com.apple.WebKit         	0x010d77f8 -[WebFramePolicyListener receivedPolicyDecision:] + 140 (WebFrameLoaderClient.mm:1210)
15  com.apple.WebKit         	0x010d6f60 -[WebFramePolicyListener use] + 64 (WebFrameLoaderClient.mm:1226)
16  libobjc.A.dylib          	0x90a441f4 objc_msgSendv + 180
17  com.apple.Foundation     	0x9295cc88 -[NSInvocation invoke] + 944
18  com.apple.Foundation     	0x9295d238 -[NSInvocation invokeWithTarget:] + 64
19  com.apple.WebKit         	0x01091804 -[_WebSafeForwarder forwardInvocation:] + 632 (WebView.mm:1626)
20  com.apple.Foundation     	0x92955034 -[NSObject(NSForwardInvocation) forward::] + 408
21  libobjc.A.dylib          	0x90a440b0 _objc_msgForward + 176
22  com.apple.WebKit         	0x010d73ec WebFrameLoaderClient::dispatchDecidePolicyForNavigationAction(void (WebCore::FrameLoader::*)(WebCore::PolicyAction), NSDictionary*, NSURLRequest*) + 204 (WebFrameLoaderClient.mm:666)
23  com.apple.WebCore        	0x02a5d958 WebCore::FrameLoader::checkNavigationPolicy(NSURLRequest*, WebCore::DocumentLoader*, WTF::PassRefPtr&lt;WebCore::FormState&gt;, void (*)(void*, NSURLRequest*, WTF::PassRefPtr&lt;WebCore::FormState&gt;), void*) + 692 (FrameLoader.mm:1403)
24  com.apple.WebCore        	0x02a5f708 WebCore::FrameLoader::load(WebCore::DocumentLoader*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 476 (FrameLoader.mm:359)
25  com.apple.WebCore        	0x02a5fde8 WebCore::FrameLoader::load(NSURLRequest*, NSDictionary*, WebCore::FrameLoadType, WTF::PassRefPtr&lt;WebCore::FormState&gt;) + 384 (FrameLoader.mm:310)
26  com.apple.WebCore        	0x02a60e8c WebCore::FrameLoader::load(NSURL*, WebCore::String const&amp;, WebCore::FrameLoadType, WebCore::String const&amp;, NSEvent*, WebCore::Element*, WTF::HashMap&lt;WebCore::String, WebCore::String, WTF::StrHash&lt;WebCore::String&gt;, WTF::HashTraits&lt;WebCore::String&gt;, WTF::HashTraits&lt;WebCore::String&gt; &gt; const&amp;) + 1392 (FrameLoader.mm:262)
27  com.apple.WebCore        	0x02a61248 WebCore::FrameLoader::load(WebCore::FrameLoadRequest const&amp;, bool, NSEvent*, WebCore::Element*, WTF::HashMap&lt;WebCore::String, WebCore::String, WTF::StrHash&lt;WebCore::String&gt;, WTF::HashTraits&lt;WebCore::String&gt;, WTF::StrHash&lt;WebCore::String&gt; &gt; const&amp;) + 716 (FrameLoader.mm:196)
28  com.apple.WebCore        	0x026ed914 WebCore::FrameMac::urlSelected(WebCore::FrameLoadRequest const&amp;, WebCore::Event const*) + 236 (FrameMac.mm:217)
29  com.apple.WebCore        	0x026d854c WebCore::Frame::urlSelected(WebCore::ResourceRequest const&amp;, WebCore::String const&amp;, WebCore::Event const*, bool) + 752 (Frame.cpp:292)
30  com.apple.WebCore        	0x029332ac WebCore::HTMLAnchorElement::defaultEventHandler(WebCore::Event*) + 2188 (HTMLAnchorElement.cpp:209)
31  com.apple.WebCore        	0x0289121c WebCore::EventTargetNode::dispatchGenericEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, int&amp;, bool) + 2196 (EventTargetNode.cpp:256)
32  com.apple.WebCore        	0x02891cf8 WebCore::EventTargetNode::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, int&amp;, bool) + 348 (EventTargetNode.cpp:292)
33  com.apple.WebCore        	0x028926c0 WebCore::EventTargetNode::dispatchMouseEvent(WebCore::AtomicString const&amp;, int, int, int, int, int, int, bool, bool, bool, bool, bool, WebCore::Node*) + 580 (EventTargetNode.cpp:418)
34  com.apple.WebCore        	0x02892bf8 WebCore::EventTargetNode::dispatchMouseEvent(WebCore::PlatformMouseEvent const&amp;, WebCore::AtomicString const&amp;, int, WebCore::Node*) + 392 (EventTargetNode.cpp:376)
35  com.apple.WebCore        	0x026f0d14 WebCore::FrameView::dispatchMouseEvent(WebCore::AtomicString const&amp;, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&amp;, bool) + 760 (FrameView.cpp:1192)
36  com.apple.WebCore        	0x026f1278 WebCore::FrameView::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&amp;) + 700 (FrameView.cpp:901)
37  com.apple.WebCore        	0x026dd27c WebCore::FrameMac::mouseUp(NSEvent*) + 536 (FrameMac.mm:1854)
38  com.apple.WebKit         	0x0105e7d4 -[WebHTMLView mouseUp:] + 344 (WebHTMLView.m:3052)
39  com.apple.AppKit         	0x93767900 -[NSWindow sendEvent:] + 4728
40  com.apple.Safari         	0x00021734 0x1000 + 132916
41  com.apple.AppKit         	0x937108d4 -[NSApplication sendEvent:] + 4172
42  com.apple.Safari         	0x00021238 0x1000 + 131640
43  com.apple.AppKit         	0x93707d10 -[NSApplication run] + 508
44  com.apple.AppKit         	0x937f887c NSApplicationMain + 452
45  com.apple.Safari         	0x0005c77c 0x1000 + 374652
46  com.apple.Safari         	0x0005c624 0x1000 + 374308</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48251</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-10-31 13:22:04 -0800</bug_when>
    <thetext>The XMLHttpRequest is abort()ed under Frame::stopLoading(). It&apos;s m_loader is then set to 0, but the SubresourceLoader remains in the FrameLoader&apos;s m_subresourceLoaders set, so when FrameLoader::stopLoadingSubresources() is called, the SubresourceLoader is canceled and XMLHttpRequest::didFinishLoading() is called.

One possible fix is for XMLHttpRequest::abort() to get call the obtain the SubresourceLoader&apos;s FrameLoader and call its removeSubresourceLoader() method. However, currently ResourceLoader::frameLoader() is Mac-only...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47568</commentid>
    <comment_count>2</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-11-02 14:13:23 -0800</bug_when>
    <thetext>*** Bug 11497 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>47569</commentid>
    <comment_count>3</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-11-02 14:14:17 -0800</bug_when>
    <thetext>Bug 11497 contains steps to reproduce on Google Video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46810</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2006-11-05 01:19:02 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; One possible fix is[...] 

That was nonsense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46671</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-06 21:34:08 -0800</bug_when>
    <thetext>Fixed by Brady in r17637 (but this could still use a test case if we can make one). Closing for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46639</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-06 23:26:43 -0800</bug_when>
    <thetext>Its true I fixed the assertion failure earlier today, but it was a bandaid.  I&apos;m about to propose a much better bandaid (notice, still a bandaid)  stay tuned!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46594</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-07 23:54:11 -0800</bug_when>
    <thetext>Mitz and I think that if XMLHttpRequest::didFinishLoading() is called after an abort that the method should immediately bail and not do any state change (and therefore notifications)

With the fix I have and the layout test I&apos;ve constructed, that is the case.  However, running my layout test with shipping safari shows we *do* get the state change notifcation from 1 to 4 (loading to complete)

It may be a problem in my layout-testing methodology, I&apos;ll double check that now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46595</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-11-08 00:35:37 -0800</bug_when>
    <thetext>I worries me that didFinishLoading() is even called after an abort() - could this cause problems when the XMLHttpRequest object is reused? I.e., something like
req.send(...);
req.abort();
req.open(...);
req.send(...);
// didFinishLoading() gets called twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46596</commentid>
    <comment_count>9</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-08 01:43:30 -0800</bug_when>
    <thetext>didFinishedLoading() seems to be called after the abort because the frame is being torn down.

The process of nuking the frame calls abort() then didFinishLoading()
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46597</commentid>
    <comment_count>10</comment_count>
      <attachid>11420</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-08 01:45:12 -0800</bug_when>
    <thetext>Created attachment 11420
Patch + layout test

This a shot...  the code fix is pretty simple.  I will have commentary to follow, though, on whether its the right result and I&apos;ll ask Maciej to take a look</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46598</commentid>
    <comment_count>11</comment_count>
      <attachid>11421</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-08 01:48:42 -0800</bug_when>
    <thetext>Created attachment 11421
Results from 3 different WebKits

Basically, we have three different possible results for my layout test - ToT was already different from shipping WebKit, but my code change makes it different still.  I&apos;d like Maciej to take a look at this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46600</commentid>
    <comment_count>12</comment_count>
      <attachid>11420</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-11-08 02:25:16 -0800</bug_when>
    <thetext>Comment on attachment 11420
Patch + layout test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46494</commentid>
    <comment_count>13</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-08 09:51:50 -0800</bug_when>
    <thetext>Committed this in r17661 last night</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>46495</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2006-11-08 09:52:51 -0800</bug_when>
    <thetext>Mitz please verify at your leisure ;)  (which, in my experience, will probably by like 3 seconds after I commit this comment to the bug)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>11420</attachid>
            <date>2006-11-08 01:45:12 -0800</date>
            <delta_ts>2006-11-08 02:25:16 -0800</delta_ts>
            <desc>Patch + layout test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>9190</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZnJhbWUtbG9hZC1j
YW5jZWxsZWQtYWJvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2ZyYW1lLWxvYWQtY2FuY2VsbGVkLWFib3J0Lmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2ZyYW1lLWxvYWQt
Y2FuY2VsbGVkLWFib3J0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTQgQEAKKzxodG1s
PgorPGhlYWQ+Cis8dGl0bGU+VGVzdCBYTUxIdHRwUmVxdWVzdCBmcmFtZSBsb2FkIGFib3J0IGNh
dXNlcyB1bmV4cGVjdGVkIG5vdGlmaWNhdGlvbiBhY3Rpdml0eTwvdGl0bGU+Cis8bWV0YSBodHRw
LWVxdWl2PSJjb250ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Ij4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic3RhcnRUZXN0KCkiPgorPHA+VGVzdCBmb3IgPGEgaHJl
Zj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQ1MCI+
YnVnIDExNDUwPC9hPgorUkVHUkVTU0lPTjogWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRp
bmcoKSBzaG91bGQgaW1tZWRpYXRlbHkgcmV0dXJuIGlmIHRoZSByZXF1ZXN0IGhhcyBhbHJlYWR5
IGJlZW4gYWJvcnRlZDwvcD4KKzxwPklmIGEgZnJhbWUgaGFzIGFuIGFjdGl2ZSBYTUxIdHRwUmVx
dWVzdCB0aGF0IGlzIHN0aWxsIHJlY2VpdmluZyBkYXRhLCBhbmQgdGhhdCBmcmFtZSBpcyBkZXN0
cm95ZWQ8YnI+Cisob3IgaXRzIGxvYWQgaXMgb3RoZXJ3aXNlIHN0b3BwZWQpIHRoZSBYTUxIdHRw
UmVxdWVzdCBnZXRzIGFuIGFib3J0IGNhbGwgdGhlbiBhIGRpZEZpbmlzaGVkTG9hZGluZyBjYWxs
LjwvcD4KKzxwPlRoYXQgZGlkRmluaXNoZWRMb2FkaW5nKCkgY2FsbCBzaG91bGQgaW1tZWRpYXRl
bHkgZXhpdCBhbmQgbm90IHVwZGF0ZSB0aGUgb2JqZWN0J3Mgc3RhdGUgb3IgZG8gYW55IAorb3Ro
ZXIgbm90aWZpY2F0aW9ucy48L3A+CisKKzxzY3JpcHQ+CisgICAgdmFyIGNvbnNvbGVfbWVzc2Fn
ZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpOworICAgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kQ2hpbGQoY29uc29sZV9tZXNzYWdlcyk7CisgICAgCisgICAgdmFyIGZyYW1lZGl2OworICAg
IAorICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCisgICAgeworCSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIAkgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCQlsb2coIkxvYWRpbmcgc3ViZnJhbWUgdG8gY2FuY2VsIik7CisJCWZyYW1lZGl2
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lZGl2Jyk7CisJCWZyYW1lZGl2LmlubmVy
SFRNTCA9ICc8aWZyYW1lIHNyYz0icmVzb3VyY2VzL2ZyYW1lLWxvYWQtdG8tY2FuY2VsLmh0bWwi
IHdpZHRoPTAgaGVpZ2h0PTAgYm9yZGVyPTA+PC9pZnJhbWU+JzsKKyAgICB9CisgICAgCisgICAg
ZnVuY3Rpb24gc3ViZnJhbWVMb2FkZWQoKQorICAgIHsKKyAgICAJbG9nKCJCb2R5IG9mIHN1YmZy
YW1lIGlzIGxvYWRlZC4gIFhNTEh0dHBSZXF1ZXN0IHNob3VsZCBiZSBpbiBwcm9ncmVzcy4gIE51
a2luZyB0aGUgaWZyYW1lIik7CisgICAgCWZyYW1lZGl2LmlubmVySFRNTCA9ICdUZXN0IGNvbXBs
ZXRlJzsKKyAgICAJbG9nKCJJZnJhbWUgcmVtb3ZlZCIpOworCSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgIAkgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBkdW1wUmVxdWVzdFN0YXR1cyhyZXEpIHsK
KyAgICAgICB0cnkgeyBsb2cgKCJSZWFkeSBTdGF0ZTogIiArIHJlcS5yZWFkeVN0YXRlKTsgfSBj
YXRjaCAoZXgpIHsgbG9nKCJFeGNlcHRpb24gZ2V0dGluZyBzdGF0dXM6ICIgKyBleC5tZXNzYWdl
KTsgfQorICAgIH0KKyAgICAKKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAg
ICAgIHZhciBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgaXRl
bS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAg
IGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgfQorICAgIAorPC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJmcmFtZWRpdiIgbmFtZT0iZnJhbWVkaXYiIHN0eWxlPSJ2aXNpYmlsaXR5
OmhpZGRlbiI+CitpRnJhbWUgd2lsbCBnbyBoZXJlCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZnJhbWUtbG9hZC1j
YW5jZWxsZWQtYWJvcnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZnJhbWUtbG9hZC1jYW5jZWxsZWQtYWJvcnQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9mcmFtZS1sb2FkLWNhbmNlbGxlZC1hYm9ydC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTAgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisg
IFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICBSZW5kZXJCb2R5
IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4NHg1ODQKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAo
MCwwKSBzaXplIDc4NHgzNgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA1M3gxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDUzOiAiVGVzdCBmb3Ig
IgorICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNjh4MTggW2NvbG9yPSMw
MDAwRUVdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg1MywwKSBzaXplIDY4eDE4
CisgICAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTMsMCkgd2lkdGggNjg6ICJidWcgMTE0NTAiCisg
ICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTIxLDApIHNpemUgNzU3eDM2CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDEyMSwwKSB3aWR0aCA2MzY6ICIgUkVHUkVTU0lPTjogWE1MSHR0cFJl
cXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcoKSBzaG91bGQgaW1tZWRpYXRlbHkgcmV0dXJuIGlmIHRo
ZSByZXF1ZXN0IGhhcyIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTMxOiAi
YWxyZWFkeSBiZWVuIGFib3J0ZWQiCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsNTIpIHNp
emUgNzg0eDM2CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDYwMXgx
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDYwMTogIklmIGEgZnJhbWUgaGFz
IGFuIGFjdGl2ZSBYTUxIdHRwUmVxdWVzdCB0aGF0IGlzIHN0aWxsIHJlY2VpdmluZyBkYXRhLCBh
bmQgdGhhdCBmcmFtZSBpcyBkZXN0cm95ZWQiCisgICAgICAgIFJlbmRlckJSIHtCUn0gYXQgKDYw
MSwxNCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDE4KSBzaXpl
IDY1OXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDE4KSB3aWR0aCA2NTk6ICIob3IgaXRz
IGxvYWQgaXMgb3RoZXJ3aXNlIHN0b3BwZWQpIHRoZSBYTUxIdHRwUmVxdWVzdCBnZXRzIGFuIGFi
b3J0IGNhbGwgdGhlbiBhIGRpZEZpbmlzaGVkTG9hZGluZyBjYWxsLiIKKyAgICAgIFJlbmRlckJs
b2NrIHtQfSBhdCAoMCwxMDQpIHNpemUgNzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDczOHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDYyMTogIlRoYXQgZGlkRmluaXNoZWRMb2FkaW5nKCkgY2FsbCBzaG91bGQgaW1tZWRpYXRlbHkg
ZXhpdCBhbmQgbm90IHVwZGF0ZSB0aGUgb2JqZWN0J3Mgc3RhdGUgb3IgZG8gYW55ICIKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNjIxLDApIHdpZHRoIDExNzogIm90aGVyIG5vdGlmaWNhdGlvbnMu
IgorICAgICAgUmVuZGVyQmxvY2sge1VMfSBhdCAoMCwxMzgpIHNpemUgNzg0eDkwCisgICAgICAg
IFJlbmRlckxpc3RJdGVtIHtMSX0gYXQgKDQwLDApIHNpemUgNzQ0eDE4CisgICAgICAgICAgUmVu
ZGVyTGlzdE1hcmtlciBhdCAoLTE3LDApIHNpemUgN3gxOAorICAgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDE3NXgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMTc1OiAiTG9hZGluZyBzdWJmcmFtZSB0byBjYW5jZWwiCisgICAgICAgIFJlbmRl
ckxpc3RJdGVtIHtMSX0gYXQgKDQwLDE4KSBzaXplIDc0NHgxOAorICAgICAgICAgIFJlbmRlckxp
c3RNYXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSA5MngxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggOTI6ICJSZWFkeSBTdGF0ZTogMSIKKyAgICAgICAgUmVuZGVyTGlzdEl0ZW0ge0xJfSBhdCAo
NDAsMzYpIHNpemUgNzQ0eDE4CisgICAgICAgICAgUmVuZGVyTGlzdE1hcmtlciBhdCAoLTE3LDAp
IHNpemUgN3gxOAorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1
OHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMTgyOiAiQm9keSBvZiBz
dWJmcmFtZSBpcyBsb2FkZWQuICIKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxODIsMCkgd2lk
dGggMjYxOiAiWE1MSHR0cFJlcXVlc3Qgc2hvdWxkIGJlIGluIHByb2dyZXNzLiAiCisgICAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoNDQzLDApIHdpZHRoIDExNTogIk51a2luZyB0aGUgaWZyYW1lIgor
ICAgICAgICBSZW5kZXJMaXN0SXRlbSB7TEl9IGF0ICg0MCw1NCkgc2l6ZSA3NDR4MTgKKyAgICAg
ICAgICBSZW5kZXJMaXN0TWFya2VyIGF0ICgtMTcsMCkgc2l6ZSA3eDE4CisgICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMTAzeDE4CisgICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCAxMDM6ICJJZnJhbWUgdW5sb2FkZWQiCisgICAgICAgIFJlbmRlckxp
c3RJdGVtIHtMSX0gYXQgKDQwLDcyKSBzaXplIDc0NHgxOAorICAgICAgICAgIFJlbmRlckxpc3RN
YXJrZXIgYXQgKC0xNywwKSBzaXplIDd4MTgKKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAxMDB4MTgKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDEwMDogIklmcmFtZSByZW1vdmVkIgorICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMjQ0
KSBzaXplIDc4NHgxOAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA4
OHgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDg4OiAiVGVzdCBjb21wbGV0
ZSIKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2VuZGxlc3N4bWwucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL2VuZGxlc3N4bWwucGhwCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZW5kbGVzc3htbC5w
aHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorPD9waHAKK3NsZWVwKDEwKTsKKz8+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZnJhbWUtbG9hZC10by1jYW5jZWwuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9m
cmFtZS1sb2FkLXRvLWNhbmNlbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZnJhbWUtbG9hZC10by1jYW5jZWwuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNiBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
Cit2YXIgcnE7CisKK2Z1bmN0aW9uIGxvYWRYTUxEb2MoKQoreworICAgIHVybCA9ICdlbmRsZXNz
eG1sLnBocCc7CisKKyAgICBycSA9IGZhbHNlOworICAgIAorICAgIHRyeSB7CisgICAgICBpZiAo
d2luZG93LlhNTEh0dHBSZXF1ZXN0KSB7CisgICAgICAgIHJxID0gbmV3IFhNTEh0dHBSZXF1ZXN0
KCk7CisgICAgICAgIHJxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQveG1sJyk7CisgICAgICAgIHJx
Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHJlYWR5U3RhdGVDaGFuZ2VkCisgICAgICAgIHJxLm9wZW4o
J0dFVCcsIHVybCwgdHJ1ZSk7CisgICAgICAgIHJxLnNlbmQoKTsKKyAgICAgIH0KKyAgICB9IGNh
dGNoIChleCkgeworICAgICAgICBycSA9IGZhbHNlOworICAgICAgICBhbGVydChleCk7CisgICAg
fQorfQorCitmdW5jdGlvbiByZWFkeVN0YXRlQ2hhbmdlZCgpCit7CisJd2luZG93LnBhcmVudC5k
dW1wUmVxdWVzdFN0YXR1cyhycSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJsb2FkWE1MRG9jKCk7IHdpbmRvdy5wYXJlbnQuc3ViZnJhbWVMb2FkZWQoKTsiIG9udW5s
b2FkPSJ3aW5kb3cucGFyZW50LmxvZygnSWZyYW1lIHVubG9hZGVkJyk7Ij4KKzxwPlRoaXMgc2hv
dWxkIGhhdmUgYW4gWE1MSHR0cFJlcXVlc3QgZ29pbmcgb24gaW5zaWRlIGl0PC9wPgorPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDE3NjU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMDYtMTEtMDggIEJyYWR5IEVpZHNvbiA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVz
dCB0byBjb3ZlciBidWcgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0
NTAKKyAgICAgICAgLUNvbmZpcm0gdGhlcmUgaXMgbm8gYXNzZXJ0IHdoZW4gbnVraW5nIGEgZnJh
bWUgd2l0aCBhbiBhY3RpdmUgWE1MSHR0cFJlcXVlc3QgbG9hZAorICAgICAgICAtQ29uZmlybSB0
aGUgY29ycmVjdCBzdGF0ZS1jaGFuZ2Ugbm90aWZpY2F0aW9ucyBmb3IgdGhlIHJlcXVlc3QgYXJl
IGRpc3BhdGNoZWQKKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvZnJhbWUt
bG9hZC1jYW5jZWxsZWQtYWJvcnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2ZyYW1lLWxvYWQtY2FuY2VsbGVkLWFib3J0Lmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2VuZGxl
c3N4bWwucGhwOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9mcmFtZS1sb2FkLXRvLWNhbmNlbC5odG1sOiBBZGRlZC4KKwogMjAwNi0xMS0wOCAg
QmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR2Vv
ZmYuCkluZGV4OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTc2NTcpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE0IEBACisyMDA2LTExLTA4ICBCcmFkeSBFaWRzb24gPGJlaWRzb25AYXBw
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IElmIHRoZSByZXF1ZXN0IGhhcyBhbHJlYWR5IGJlZW4gYWJvcnRlZCwgYmFpbCBvdXQgb2YgZGlk
RmluaXNoTG9hZGluZygpCisgICAgICAgIGltbWVkaWF0ZWx5LiAgVGhpcyBwcmV2ZW50cyBzdGF0
ZSBjaGFuZ2Ugbm90aWZpY2F0aW9ucyB0aGF0IGFyZW4ndAorICAgICAgICBuZWVkZWQuCisKKyAg
ICAgICAgKiB4bWwveG1saHR0cHJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcpOgorCiAyMDA2LTExLTA3ICBCZXRoIERha2luICA8
YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBIeWF0dC4KSW5kZXg6IFdl
YkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC94
bWxodHRwcmVxdWVzdC5jcHAJKHJldmlzaW9uIDE3NjUzKQorKysgV2ViQ29yZS94bWwveG1saHR0
cHJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODUsNyArNDg1LDEwIEBACiAKIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcoUmVzb3VyY2VIYW5kbGUqIGxvYWRlcikK
IHsKLSAgICBBU1NFUlQobV9hYm9ydGVkIHx8IGxvYWRlciA9PSBtX2xvYWRlcik7CisgICAgaWYg
KG1fYWJvcnRlZCkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBBU1NFUlQobG9hZGVy
ID09IG1fbG9hZGVyKTsKIAogICAgIGlmIChtX3N0YXRlIDwgU2VudCkKICAgICAgICAgY2hhbmdl
U3RhdGUoU2VudCk7Cg==
</data>
<flag name="review"
          id="4006"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>11421</attachid>
            <date>2006-11-08 01:48:42 -0800</date>
            <delta_ts>2006-11-08 01:48:42 -0800</delta_ts>
            <desc>Results from 3 different WebKits</desc>
            <filename>patchexplanation.txt</filename>
            <type>text/plain</type>
            <size>2022</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U2hpcHBpbmcgV2ViS2l0IAotLS0tLS0tLS0tLS0tLS0KVGVzdCBmb3IgYnVnIDExNDUwIFJFR1JF
U1NJT046IFhNTEh0dHBSZXF1ZXN0OjpkaWRGaW5pc2hMb2FkaW5nKCkgc2hvdWxkIGltbWVkaWF0
ZWx5IHJldHVybiBpZiB0aGUgcmVxdWVzdCBoYXMgYWxyZWFkeSBiZWVuIGFib3J0ZWQKCklmIGEg
ZnJhbWUgaGFzIGFuIGFjdGl2ZSBYTUxIdHRwUmVxdWVzdCB0aGF0IGlzIHN0aWxsIHJlY2Vpdmlu
ZyBkYXRhLCBhbmQgdGhhdCBmcmFtZSBpcyBkZXN0cm95ZWQKKG9yIGl0cyBsb2FkIGlzIG90aGVy
d2lzZSBzdG9wcGVkKSB0aGUgWE1MSHR0cFJlcXVlc3QgZ2V0cyBhbiBhYm9ydCBjYWxsIHRoZW4g
YSBkaWRGaW5pc2hlZExvYWRpbmcgY2FsbC4KClRoYXQgZGlkRmluaXNoZWRMb2FkaW5nKCkgY2Fs
bCBzaG91bGQgaW1tZWRpYXRlbHkgZXhpdCBhbmQgbm90IHVwZGF0ZSB0aGUgb2JqZWN0J3Mgc3Rh
dGUgb3IgZG8gYW55IG90aGVyIG5vdGlmaWNhdGlvbnMuCgpMb2FkaW5nIHN1YmZyYW1lIHRvIGNh
bmNlbApSZWFkeSBTdGF0ZTogMQpCb2R5IG9mIHN1YmZyYW1lIGlzIGxvYWRlZC4gWE1MSHR0cFJl
cXVlc3Qgc2hvdWxkIGJlIGluIHByb2dyZXNzLiBOdWtpbmcgdGhlIGlmcmFtZQpSZWFkeSBTdGF0
ZTogNApJZnJhbWUgdW5sb2FkZWQKSWZyYW1lIHJlbW92ZWQKClRvVCBXZWJLaXQgd2l0aG91dCBt
eSBmaXgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpUZXN0IGZvciBidWcgMTE0NTAgUkVHUkVT
U0lPTjogWE1MSHR0cFJlcXVlc3Q6OmRpZEZpbmlzaExvYWRpbmcoKSBzaG91bGQgaW1tZWRpYXRl
bHkgcmV0dXJuIGlmIHRoZSByZXF1ZXN0IGhhcyBhbHJlYWR5IGJlZW4gYWJvcnRlZAoKSWYgYSBm
cmFtZSBoYXMgYW4gYWN0aXZlIFhNTEh0dHBSZXF1ZXN0IHRoYXQgaXMgc3RpbGwgcmVjZWl2aW5n
IGRhdGEsIGFuZCB0aGF0IGZyYW1lIGlzIGRlc3Ryb3llZAoob3IgaXRzIGxvYWQgaXMgb3RoZXJ3
aXNlIHN0b3BwZWQpIHRoZSBYTUxIdHRwUmVxdWVzdCBnZXRzIGFuIGFib3J0IGNhbGwgdGhlbiBh
IGRpZEZpbmlzaGVkTG9hZGluZyBjYWxsLgoKVGhhdCBkaWRGaW5pc2hlZExvYWRpbmcoKSBjYWxs
IHNob3VsZCBpbW1lZGlhdGVseSBleGl0IGFuZCBub3QgdXBkYXRlIHRoZSBvYmplY3QncyBzdGF0
ZSBvciBkbyBhbnkgb3RoZXIgbm90aWZpY2F0aW9ucy4KCkxvYWRpbmcgc3ViZnJhbWUgdG8gY2Fu
Y2VsClJlYWR5IFN0YXRlOiAxCkJvZHkgb2Ygc3ViZnJhbWUgaXMgbG9hZGVkLiBYTUxIdHRwUmVx
dWVzdCBzaG91bGQgYmUgaW4gcHJvZ3Jlc3MuIE51a2luZyB0aGUgaWZyYW1lClJlYWR5IFN0YXRl
OiAyClJlYWR5IFN0YXRlOiA0CklmcmFtZSB1bmxvYWRlZApJZnJhbWUgcmVtb3ZlZAoKVG9UIFdl
YktpdCB3aXRoIG15IGZpeAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRlc3QgZm9yIGJ1ZyAxMTQ1
MCBSRUdSRVNTSU9OOiBYTUxIdHRwUmVxdWVzdDo6ZGlkRmluaXNoTG9hZGluZygpIHNob3VsZCBp
bW1lZGlhdGVseSByZXR1cm4gaWYgdGhlIHJlcXVlc3QgaGFzIGFscmVhZHkgYmVlbiBhYm9ydGVk
CgpJZiBhIGZyYW1lIGhhcyBhbiBhY3RpdmUgWE1MSHR0cFJlcXVlc3QgdGhhdCBpcyBzdGlsbCBy
ZWNlaXZpbmcgZGF0YSwgYW5kIHRoYXQgZnJhbWUgaXMgZGVzdHJveWVkCihvciBpdHMgbG9hZCBp
cyBvdGhlcndpc2Ugc3RvcHBlZCkgdGhlIFhNTEh0dHBSZXF1ZXN0IGdldHMgYW4gYWJvcnQgY2Fs
bCB0aGVuIGEgZGlkRmluaXNoZWRMb2FkaW5nIGNhbGwuCgpUaGF0IGRpZEZpbmlzaGVkTG9hZGlu
ZygpIGNhbGwgc2hvdWxkIGltbWVkaWF0ZWx5IGV4aXQgYW5kIG5vdCB1cGRhdGUgdGhlIG9iamVj
dCdzIHN0YXRlIG9yIGRvIGFueSBvdGhlciBub3RpZmljYXRpb25zLgoKTG9hZGluZyBzdWJmcmFt
ZSB0byBjYW5jZWwKUmVhZHkgU3RhdGU6IDEKQm9keSBvZiBzdWJmcmFtZSBpcyBsb2FkZWQuIFhN
TEh0dHBSZXF1ZXN0IHNob3VsZCBiZSBpbiBwcm9ncmVzcy4gTnVraW5nIHRoZSBpZnJhbWUKSWZy
YW1lIHVubG9hZGVkCklmcmFtZSByZW1vdmVk
</data>

          </attachment>
      

    </bug>

</bugzilla>