<?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>49693</bug_id>
          
          <creation_ts>2010-11-17 15:43:06 -0800</creation_ts>
          <short_desc>REGRESSION(71884): Crash when installing extension that references safari-extension URL</short_desc>
          <delta_ts>2010-11-19 13:52:30 -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>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>jberlin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>310568</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-11-17 15:43:06 -0800</bug_when>
    <thetext>STEPS TO REPRODUCE:
1) Build a revision of WebKit after 71884.
2) Run it with Safari
3) Install the attached extension

EXPECTED RESULTS:
The browser shouldn&apos;t crash

ACTUAL RESULTS:
It does - it hits an assert, then crashes:

&gt;	WebKit.dll!WTF::Deque&lt;WTF::RefPtr&lt;WebCore::ResourceLoader&gt; &gt;::removeFirst()  Line 470 + 0x2b bytes	C++
 	WebKit.dll!WebCore::ResourceLoadScheduler::servePendingRequests(WebCore::ResourceLoadScheduler::HostInformation * host=0x1580af70, WebCore::ResourceLoadScheduler::Priority minimumPriority=Medium)  Line 198	C++
 	WebKit.dll!WebCore::ResourceLoadScheduler::scheduleLoad(WebCore::ResourceLoader * resourceLoader=0x21714d58, WebCore::ResourceLoadScheduler::Priority priority=Medium)  Line 120	C++
 	WebKit.dll!WebCore::ResourceLoadScheduler::scheduleSubresourceLoad(WebCore::Frame * frame=0x1fc118d0, WebCore::SubresourceLoaderClient * client=0x15800e5c, const WebCore::ResourceRequest &amp; request={...}, WebCore::ResourceLoadScheduler::Priority priority=Medium, WebCore::SecurityCheckPolicy securityCheck=DoSecurityCheck, bool sendResourceLoadCallbacks=true, bool shouldContentSniff=true)  Line 89	C++
 	WebKit.dll!WebCore::Loader::load(WebCore::CachedResourceLoader * cachedResourceLoader=0x1edcef78, WebCore::CachedResource * resource=0x22888e08, bool incremental=false, WebCore::SecurityCheckPolicy securityCheck=DoSecurityCheck, bool sendResourceLoadCallbacks=true)  Line 132 + 0x4f bytes	C++
 	WebKit.dll!WebCore::CachedResource::load(WebCore::CachedResourceLoader * cachedResourceLoader=0x1edcef78, bool incremental=false, WebCore::SecurityCheckPolicy securityCheck=DoSecurityCheck, bool sendResourceLoadCallbacks=true)  Line 111	C++
 	WebKit.dll!WebCore::CachedResource::load(WebCore::CachedResourceLoader * cachedResourceLoader=0x1edcef78)  Line 79 + 0x20 bytes	C++
 	WebKit.dll!WebCore::MemoryCache::requestResource(WebCore::CachedResourceLoader * cachedResourceLoader=0x1edcef78, WebCore::CachedResource::Type type=Script, const WebCore::KURL &amp; url={???}, const WTF::String &amp; charset={???}, bool requestIsPreload=false)  Line 131 + 0x13 bytes	C++
 	WebKit.dll!WebCore::CachedResourceLoader::requestResource(WebCore::CachedResource::Type type=Script, const WTF::String &amp; url={???}, const WTF::String &amp; charset={???}, bool isPreload=false)  Line 266 + 0x20 bytes	C++
 	WebKit.dll!WebCore::CachedResourceLoader::requestScript(const WTF::String &amp; url={???}, const WTF::String &amp; charset={???})  Line 163	C++
 	WebKit.dll!WebCore::HTMLScriptRunner::requestPendingScript(WebCore::PendingScript &amp; pendingScript={...}, WebCore::Element * script=0x1eb5cfa0)  Line 284 + 0x44 bytes	C++
 	WebKit.dll!WebCore::HTMLScriptRunner::requestParsingBlockingScript(WebCore::Element * element=0x1eb5cfa0)  Line 250 + 0x13 bytes	C++
 	WebKit.dll!WebCore::HTMLScriptRunner::runScript(WebCore::Element * script=0x1eb5cfa0, const WTF::TextPosition&lt;WTF::OneBasedNumber&gt; &amp; scriptStartPosition={...})  Line 316	C++
 	WebKit.dll!WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt; scriptElement={...}, const WTF::TextPosition&lt;WTF::OneBasedNumber&gt; &amp; scriptStartPosition={...})  Line 185	C++
 	WebKit.dll!WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()  Line 199 + 0x23 bytes	C++
 	WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode mode=AllowYield)  Line 235 + 0x8 bytes	C++
 	WebKit.dll!WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode mode=AllowYield)  Line 170	C++
 	WebKit.dll!WebCore::HTMLDocumentParser::append(const WebCore::SegmentedString &amp; source={...})  Line 312	C++
 	WebKit.dll!WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter * writer=0x1fc11a54, const char * data=0x00000000, int length=0, bool shouldFlush=true)  Line 54 + 0x1f bytes	C++
 	WebKit.dll!WebCore::DocumentWriter::addData(const char * str=0x00000000, int len=0, bool flush=true)  Line 200 + 0x1f bytes	C++
 	WebKit.dll!WebCore::DocumentWriter::endIfNotLoadingMainResource()  Line 221	C++
 	WebKit.dll!WebCore::DocumentWriter::end()  Line 207	C++
 	WebKit.dll!WebCore::DocumentLoader::finishedLoading()  Line 278	C++
 	WebKit.dll!WebCore::FrameLoader::finishedLoading()  Line 2174	C++
 	WebKit.dll!WebCore::MainResourceLoader::didFinishLoading(double finishTime=0.00000000000000000)  Line 458	C++
 	WebKit.dll!WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle * __formal=0x0d0aaff0, double finishTime=0.00000000000000000)  Line 435 + 0x18 bytes	C++
 	WebKit.dll!WebCore::didFinishLoading(_CFURLConnection * conn=0x1f075fe0, const void * clientInfo=0x0d0aaff0)  Line 244 + 0x26 bytes	C++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310571</commentid>
    <comment_count>1</comment_count>
      <attachid>74166</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-11-17 15:43:44 -0800</bug_when>
    <thetext>Created attachment 74166
Extension that crashes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310574</commentid>
    <comment_count>2</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-11-17 15:45:34 -0800</bug_when>
    <thetext>&lt;rdar://problem/8680809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310584</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-11-17 16:00:15 -0800</bug_when>
    <thetext>I&apos;ll take a look at this first thing tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>310589</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2010-11-17 16:08:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I&apos;ll take a look at this first thing tomorrow.

Thanks, let me know if you have any questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311050</commentid>
    <comment_count>5</comment_count>
      <attachid>74280</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-11-18 13:02:42 -0800</bug_when>
    <thetext>Created attachment 74280
patch + test

It&apos;s a pretty simple fix.  If we start the load, then remove the ResourceLoader from the queue after, it might have been cancelled and already removed from the queue (causing a crash if the queue is now empty).  Instead, we should remove the ResourceLoader from the queue before starting it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311054</commentid>
    <comment_count>6</comment_count>
      <attachid>74281</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-11-18 13:11:43 -0800</bug_when>
    <thetext>Created attachment 74281
new patch + test

This version moves both removing from the queue and adding to the set of loads in progress.  By doing them both before, we can trust ResourceLoadScheduler::remove() to do the right thing without any special logic in servePendingRequests(), even when called syncrhonously.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311075</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-11-18 13:30:39 -0800</bug_when>
    <thetext>looks good to me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311585</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 11:28:02 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74281:

fast/workers/storage/use-same-database-in-page-and-workers.html
compositing/iframes/overlapped-nested-iframes.html

Please file bugs against the tests.  These tests were authored by dumi@chromium.org and simon.fraser@apple.com.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311670</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 13:50:51 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 74281:

inspector/timeline-parse-html.html

Please file bugs against the tests.  These tests were authored by pfeldman@chromium.org and yurys@chromium.org.  The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311672</commentid>
    <comment_count>10</comment_count>
      <attachid>74281</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 13:52:25 -0800</bug_when>
    <thetext>Comment on attachment 74281
new patch + test

Clearing flags on attachment: 74281

Committed r72435: &lt;http://trac.webkit.org/changeset/72435&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>311673</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-19 13:52:30 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>74166</attachid>
            <date>2010-11-17 15:43:44 -0800</date>
            <delta_ts>2010-11-17 15:43:44 -0800</delta_ts>
            <desc>Extension that crashes</desc>
            <filename>crossextensionresourceloader.safariextz</filename>
            <type>application/octet-stream</type>
            <size>7292</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74280</attachid>
            <date>2010-11-18 13:02:42 -0800</date>
            <delta_ts>2010-11-18 13:11:43 -0800</delta_ts>
            <desc>patch + test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3344</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjMyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMTggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgcmVxdWVzdHMgZnJvbSBSZXNvdXJjZUxvYWRTY2hlZHVsZXIncyBxdWV1ZSBiZWZvcmUK
KyAgICAgICAgYWN0dWFsbHkgc3RhcnRpbmcgdGhlbS4gIFdlJ3JlIGhvbGRpbmcgYSBSZWZQdHIg
YW55d2F5LCBhbmQKKyAgICAgICAgdGhlIGxvYWQgbWlnaHQgYmUgdGVybWluYXRlZCBhbmQgcmVt
b3ZlZCBmcm9tIHRoZSBxdWV1ZSBzeW5jaHJvbm91c2x5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk2OTMKKworICAgICAgICBUZXN0OiBmYXN0L2xv
YWRlci9zdWJyZXNvdXJjZS13aWxsU2VuZFJlcXVlc3QtbnVsbC5odG1sCisKKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMpOgorCiAyMDEwLTExLTE4ICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCShyZXZpc2lvbiA3MjI5NikKKysrIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MSwxMCArMTkxLDEwIEBACiAgICAgICAg
ICAgICBpZiAoc2hvdWxkTGltaXRSZXF1ZXN0cyAmJiBob3N0LT5saW1pdFJlcXVlc3RzKCkpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgICAgICByZXF1ZXN0c1BlbmRpbmcucmVt
b3ZlRmlyc3QoKTsKICAgICAgICAgICAgIHJlc291cmNlTG9hZGVyLT5zdGFydCgpOwogICAgICAg
ICAgICAgaWYgKCFyZXNvdXJjZUxvYWRlci0+cmVhY2hlZFRlcm1pbmFsU3RhdGUoKSkKICAgICAg
ICAgICAgICAgICBob3N0LT5hZGRMb2FkSW5Qcm9ncmVzcyhyZXNvdXJjZUxvYWRlci5nZXQoKSk7
Ci0gICAgICAgICAgICByZXF1ZXN0c1BlbmRpbmcucmVtb3ZlRmlyc3QoKTsKICAgICAgICAgfQog
ICAgIH0KIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N1YnJlc291cmNlLXdpbGxT
ZW5kUmVxdWVzdC1udWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9zdWJyZXNvdXJjZS13aWxsU2VuZFJlcXVlc3QtbnVsbC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdWJyZXNvdXJjZS13aWxs
U2VuZFJlcXVlc3QtbnVsbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBA
QAoraHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ5NjkzCitFbnN1cmUg
bG9hZHMgdGhhdCBnbyB0aHJvdWdoIG91ciBzY2hlZHVsZXIgYW5kIGFyZSBjYW5jZWxsZWQgYnkg
d2lsbFNlbmRSZXF1ZXN0KCkgZG9uJ3QgY2F1c2UgdXMgdG8gY3Jhc2guIApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvc3VicmVzb3VyY2Utd2lsbFNlbmRSZXF1ZXN0LW51bGwuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9zdWJyZXNvdXJjZS13aWxsU2Vu
ZFJlcXVlc3QtbnVsbC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2Fk
ZXIvc3VicmVzb3VyY2Utd2lsbFNlbmRSZXF1ZXN0LW51bGwuaHRtbAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxNSBAQAorPGh0bWw+Cis8Ym9keT4KK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00OTY5Mzxicj4KK0Vuc3VyZSBsb2FkcyB0aGF0IGdvIHRocm91Z2ggb3Vy
IHNjaGVkdWxlciBhbmQgYXJlIGNhbmNlbGxlZCBieSB3aWxsU2VuZFJlcXVlc3QoKSBkb24ndCBj
YXVzZSB1cyB0byBjcmFzaC4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFdpbGxTZW5kUmVxdWVzdFJldHVybnNOdWxs
KHRydWUpOworICAgIH0KKyAgICB2YXIgaW1nID0gbmV3IEltYWdlKDEsIDEpOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uYXBwZW5kQ2hpbGQoaW1nKTsKKyAg
ICBpbWcuc3JjID0gImRvZXMtbm90LWV4aXN0Lmh0bWwiOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MjMyNykKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTExLTE4ICBOYXRlIENoYXBp
biAgPGphcGhldEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdCBmb3IgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ5NjkzCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9zdWJyZXNvdXJjZS13aWxs
U2VuZFJlcXVlc3QtbnVsbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL3N1YnJlc291cmNlLXdpbGxTZW5kUmVxdWVzdC1udWxsLmh0bWw6IEFkZGVkLgorCiAyMDEw
LTExLTE4ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgV2lu
ZG93cyByZXN1bHRzIGZvciB0ZXN0IGFkZGVkIGluIHI3MTk4MAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74281</attachid>
            <date>2010-11-18 13:11:43 -0800</date>
            <delta_ts>2010-11-19 13:52:24 -0800</delta_ts>
            <desc>new patch + test</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>3397</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MjMyNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMTggIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZW1vdmUgcmVxdWVzdHMgZnJvbSBSZXNvdXJjZUxvYWRTY2hlZHVsZXIncyBxdWV1ZSBiZWZvcmUK
KyAgICAgICAgYWN0dWFsbHkgc3RhcnRpbmcgdGhlbS4gIFdlJ3JlIGhvbGRpbmcgYSBSZWZQdHIg
YW55d2F5LCBhbmQKKyAgICAgICAgdGhlIGxvYWQgbWlnaHQgYmUgdGVybWluYXRlZCBhbmQgcmVt
b3ZlZCBmcm9tIHRoZSBxdWV1ZSBzeW5jaHJvbm91c2x5LgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk2OTMKKworICAgICAgICBUZXN0OiBmYXN0L2xv
YWRlci9zdWJyZXNvdXJjZS13aWxsU2VuZFJlcXVlc3QtbnVsbC5odG1sCisKKyAgICAgICAgKiBs
b2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlTG9hZFNjaGVkdWxlcjo6c2VydmVQZW5kaW5nUmVxdWVzdHMpOgorCiAyMDEwLTExLTE4ICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gRmlzaGVyLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkU2NoZWR1
bGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuY3BwCShyZXZpc2lvbiA3MjI5NikKKysrIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZFNj
aGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5MSwxMCArMTkxLDkgQEAKICAgICAgICAg
ICAgIGlmIChzaG91bGRMaW1pdFJlcXVlc3RzICYmIGhvc3QtPmxpbWl0UmVxdWVzdHMoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgICAgIHJlc291cmNlTG9hZGVyLT5zdGFy
dCgpOwotICAgICAgICAgICAgaWYgKCFyZXNvdXJjZUxvYWRlci0+cmVhY2hlZFRlcm1pbmFsU3Rh
dGUoKSkKLSAgICAgICAgICAgICAgICBob3N0LT5hZGRMb2FkSW5Qcm9ncmVzcyhyZXNvdXJjZUxv
YWRlci5nZXQoKSk7CiAgICAgICAgICAgICByZXF1ZXN0c1BlbmRpbmcucmVtb3ZlRmlyc3QoKTsK
KyAgICAgICAgICAgIGhvc3QtPmFkZExvYWRJblByb2dyZXNzKHJlc291cmNlTG9hZGVyLmdldCgp
KTsKKyAgICAgICAgICAgIHJlc291cmNlTG9hZGVyLT5zdGFydCgpOwogICAgICAgICB9CiAgICAg
fQogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvc3VicmVzb3VyY2Utd2lsbFNlbmRS
ZXF1ZXN0LW51bGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3N1YnJlc291cmNlLXdpbGxTZW5kUmVxdWVzdC1udWxsLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N1YnJlc291cmNlLXdpbGxTZW5k
UmVxdWVzdC1udWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACito
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDk2OTMKK0Vuc3VyZSBsb2Fk
cyB0aGF0IGdvIHRocm91Z2ggb3VyIHNjaGVkdWxlciBhbmQgYXJlIGNhbmNlbGxlZCBieSB3aWxs
U2VuZFJlcXVlc3QoKSBkb24ndCBjYXVzZSB1cyB0byBjcmFzaC4gCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9zdWJyZXNvdXJjZS13aWxsU2VuZFJlcXVlc3QtbnVsbC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3N1YnJlc291cmNlLXdpbGxTZW5kUmVx
dWVzdC1udWxsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9z
dWJyZXNvdXJjZS13aWxsU2VuZFJlcXVlc3QtbnVsbC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1IEBACis8aHRtbD4KKzxib2R5PgoraHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ5NjkzPGJyPgorRW5zdXJlIGxvYWRzIHRoYXQgZ28gdGhyb3VnaCBvdXIgc2No
ZWR1bGVyIGFuZCBhcmUgY2FuY2VsbGVkIGJ5IHdpbGxTZW5kUmVxdWVzdCgpIGRvbid0IGNhdXNl
IHVzIHRvIGNyYXNoLgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0V2lsbFNlbmRSZXF1ZXN0UmV0dXJuc051bGwodHJ1
ZSk7CisgICAgfQorICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoMSwgMSk7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5hcHBlbmRDaGlsZChpbWcpOworICAgIGlt
Zy5zcmMgPSAiZG9lcy1ub3QtZXhpc3QuaHRtbCI7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcyMzI3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTAtMTEtMTggIE5hdGUgQ2hhcGluICA8
amFwaGV0QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NDk2OTMKKworICAgICAgICAqIGZhc3QvbG9hZGVyL3N1YnJlc291cmNlLXdpbGxTZW5k
UmVxdWVzdC1udWxsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
c3VicmVzb3VyY2Utd2lsbFNlbmRSZXF1ZXN0LW51bGwuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEt
MTggIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBXaW5kb3dz
IHJlc3VsdHMgZm9yIHRlc3QgYWRkZWQgaW4gcjcxOTgwCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>