<?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>149305</bug_id>
          
          <creation_ts>2015-09-17 15:34:15 -0700</creation_ts>
          <short_desc>Null dereference loading Blink layout test fast/loader/unload-mutation-crash.html</short_desc>
          <delta_ts>2015-12-02 11:04:23 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>BlinkMergeCandidate, HasReduction, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1126898</commentid>
    <comment_count>0</comment_count>
      <attachid>261441</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2015-09-17 15:34:15 -0700</bug_when>
    <thetext>Created attachment 261441
crashing test

Null dereference loading Blink layout test fast/loader/unload-mutation-crash.html.

Stack trace:

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000008
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0x8:
--&gt; 
    __TEXT                 0000000103d82000-0000000103d84000 [    8K] r-x/rwx SM=COW  /Users/USER/*/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.Development.xpc/Contents/MacOS/com.apple.WebKit.WebContent.Development

Application Specific Information:
CRASHING TEST: temp-tests/fast/loader/unload-mutation-crash.html

Global Trace Buffer (reverse chronological seconds):
48.357176    CFNetwork                 	0x00007fff88d43b97 Explicitly setting CF cookie storage singleton
48.357532    CFNetwork                 	0x00007fff88d8f211 Explicitly setting cookie storage singleton

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010bcd7e8e WebCore::Document::recalcStyle(WebCore::Style::Change) + 46 (RefCounted.h:47)
1   com.apple.WebCore             	0x000000010bcd933f WebCore::Document::createRenderTree() + 175 (Document.cpp:2192)
2   com.apple.WebCore             	0x000000010bcd938b WebCore::Document::didBecomeCurrentDocumentInFrame() + 59 (Document.cpp:1710)
3   com.apple.WebCore             	0x000000010be5eccc WebCore::Frame::setDocument(WTF::RefPtr&lt;WebCore::Document&gt;&amp;&amp;) + 108 (InspectorInstrumentation.h:285)
4   com.apple.WebCore             	0x000000010bd1348e WebCore::DocumentWriter::begin(WebCore::URL const&amp;, bool, WebCore::Document*) + 462 (StdLibExtras.h:366)
5   com.apple.WebCore             	0x000000010bd131b3 WebCore::DocumentWriter::replaceDocument(WTF::String const&amp;, WebCore::Document*) + 67 (RefPtr.h:71)
6   com.apple.WebCore             	0x000000010c76d800 WebCore::ScriptController::executeIfJavaScriptURL(WebCore::URL const&amp;, WebCore::ShouldReplaceDocumentIfJavaScriptURL) + 464 (RefCounted.h:99)
7   com.apple.WebCore             	0x000000010c89f08f WebCore::SubframeLoader::requestFrame(WebCore::HTMLFrameOwnerElement&amp;, WTF::String const&amp;, WTF::AtomicString const&amp;, WebCore::LockHistory, WebCore::LockBackForwardList) + 815 (SubframeLoader.cpp:92)
8   com.apple.WebCore             	0x000000010bf2d4ab WebCore::HTMLFrameElementBase::openURL(WebCore::LockHistory, WebCore::LockBackForwardList) + 187 (HTMLFrameElementBase.cpp:91)
9   com.apple.WebCore             	0x000000010bf2d7c6 WebCore::HTMLFrameElementBase::setLocation(WTF::String const&amp;) + 166 (HTMLFrameElementBase.cpp:182)
10  com.apple.WebCore             	0x000000010bf2d62e WebCore::HTMLFrameElementBase::parseAttribute(WebCore::QualifiedName const&amp;, WTF::AtomicString const&amp;) + 366 (StdLibExtras.h:366)
11  com.apple.WebCore             	0x000000010bdb74c8 WebCore::Element::attributeChanged(WebCore::QualifiedName const&amp;, WTF::AtomicString const&amp;, WTF::AtomicString const&amp;, WebCore::Element::AttributeModificationReason) + 712 (Document.h:942)
12  com.apple.WebCore             	0x000000010bdbac0e WebCore::Element::didAddAttribute(WebCore::QualifiedName const&amp;, WTF::AtomicString const&amp;) + 46 (InspectorInstrumentation.h:285)
13  com.apple.WebCore             	0x000000010bdbabcb WebCore::Element::addAttributeInternal(WebCore::QualifiedName const&amp;, WTF::AtomicString const&amp;, WebCore::Element::SynchronizationOfLazyAttribute) + 363 (Element.cpp:2034)
14  com.apple.WebCore             	0x000000010c1dd65a WebCore::setJSHTMLIFrameElementSrc(JSC::ExecState*, JSC::JSObject*, long long, long long) + 410 (StdLibExtras.h:366)
15  com.apple.JavaScriptCore      	0x000000010b3aae0c JSC::JSObject::put(JSC::JSCell*, JSC::ExecState*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;) + 1468 (CustomGetterSetter.h:52)
16  com.apple.JavaScriptCore      	0x000000010b444973 llint_slow_path_put_by_id + 531 (JSCJSValueInlines.h:751)
17  com.apple.JavaScriptCore      	0x000000010b451ae5 llint_entry + 11294
18  com.apple.JavaScriptCore      	0x000000010b45476f llint_entry + 22696
19  com.apple.JavaScriptCore      	0x000000010b44ece4 vmEntryToJavaScript + 299
20  com.apple.JavaScriptCore      	0x000000010b30f2d9 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169 (JITCode.cpp:82)
21  com.apple.JavaScriptCore      	0x000000010b2f5a10 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 10448 (Interpreter.cpp:945)
22  com.apple.JavaScriptCore      	0x000000010b0084c5 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 469 (Completion.cpp:104)
23  com.apple.WebCore             	0x000000010c76b8ec WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;) + 284 (JSMainThreadExecState.h:62)
24  com.apple.WebCore             	0x000000010c76d5f0 WebCore::ScriptController::executeScript(WTF::String const&amp;, bool) + 320 (Ref.h:55)
25  com.apple.WebCore             	0x000000010c76d716 WebCore::ScriptController::executeIfJavaScriptURL(WebCore::URL const&amp;, WebCore::ShouldReplaceDocumentIfJavaScriptURL) + 230 (StdLibExtras.h:366)
26  com.apple.WebCore             	0x000000010c89f08f WebCore::SubframeLoader::requestFrame(WebCore::HTMLFrameOwnerElement&amp;, WTF::String const&amp;, WTF::AtomicString const&amp;, WebCore::LockHistory, WebCore::LockBackForwardList) + 815 (SubframeLoader.cpp:92)
27  com.apple.WebCore             	0x000000010bf2d4ab WebCore::HTMLFrameElementBase::openURL(WebCore::LockHistory, WebCore::LockBackForwardList) + 187 (HTMLFrameElementBase.cpp:91)
28  com.apple.WebCore             	0x000000010bb835ec WebCore::ContainerNode::notifyChildInserted(WebCore::Node&amp;, WebCore::ContainerNode::ChildChangeSource) + 348 (ContainerNode.cpp:341)
29  com.apple.WebCore             	0x000000010bb8309e WebCore::ContainerNode::updateTreeAfterInsertion(WebCore::Node&amp;) + 30 (ContainerNode.cpp:826)
30  com.apple.WebCore             	0x000000010bb82ead WebCore::ContainerNode::appendChild(WTF::Ref&lt;WebCore::Node&gt;&amp;&amp;, int&amp;) + 509 (ContainerNode.cpp:691)
31  com.apple.WebCore             	0x000000010c4f1688 WebCore::Node::appendChild(WTF::PassRefPtr&lt;WebCore::Node&gt;, int&amp;) + 56 (Node.cpp:479)
32  com.apple.WebCore             	0x000000010c2941b9 WebCore::JSNode::appendChild(JSC::ExecState*) + 73 (JSNodeCustom.cpp:149)
33  ???                           	0x0000361116001028 0 + 59447011446824
34  com.apple.JavaScriptCore      	0x000000010b45476f llint_entry + 22696
35  com.apple.JavaScriptCore      	0x000000010b45476f llint_entry + 22696
36  com.apple.JavaScriptCore      	0x000000010b44ece4 vmEntryToJavaScript + 299
37  com.apple.JavaScriptCore      	0x000000010b30f2d9 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 169 (JITCode.cpp:82)
38  com.apple.JavaScriptCore      	0x000000010b2f5d12 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 450 (Interpreter.cpp:1008)
39  com.apple.JavaScriptCore      	0x000000010afc18b7 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;) + 71 (MarkedBlock.h:241)
40  com.apple.WebCore             	0x000000010c17cfa4 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 996 (JSMainThreadExecState.h:56)
41  com.apple.WebCore             	0x000000010bde34db WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector&lt;WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow, 16ul&gt;&amp;) + 635 (InspectorInstrumentation.h:285)
42  com.apple.WebCore             	0x000000010bde31a0 WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 224 (EventTarget.cpp:208)
43  com.apple.WebCore             	0x000000010bd6fbf4 WebCore::DOMWindow::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;, WTF::PassRefPtr&lt;WebCore::EventTarget&gt;) + 260 (DOMWindow.cpp:1900)
44  com.apple.WebCore             	0x000000010bd7530b WebCore::DOMWindow::dispatchLoadEvent() + 347 (StdLibExtras.h:366)
45  com.apple.WebCore             	0x000000010bcd8294 WebCore::Document::implicitClose() + 324 (Document.cpp:4077)
46  com.apple.WebCore             	0x000000010be65003 WebCore::FrameLoader::checkCompleted() + 275 (FrameLoader.cpp:839)
47  com.apple.WebCore             	0x000000010be6395b WebCore::FrameLoader::finishedParsing() + 123 (FrameLoader.cpp:760)
48  com.apple.WebCore             	0x000000010bce3281 WebCore::Document::finishedParsing() + 417 (Frame.h:377)
49  com.apple.WebCore             	0x000000010bf0fe05 WebCore::HTMLDocumentParser::prepareToStopParsing() + 165 (RefCounted.h:99)
50  com.apple.WebCore             	0x000000010bd1369a WebCore::DocumentWriter::end() + 58 (StdLibExtras.h:366)
51  com.apple.WebCore             	0x000000010bcfb9ec WebCore::DocumentLoader::finishedLoading(double) + 268 (ResourceErrorBase.h:42)
52  com.apple.WebCore             	0x000000010bb2c179 WebCore::CachedResource::checkNotify() + 153 (CachedResourceClientWalker.h:51)
53  com.apple.WebCore             	0x000000010bb28433 WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 227 (CachedRawResource.cpp:104)
54  com.apple.WebCore             	0x000000010c8a3501 WebCore::SubresourceLoader::didFinishLoading(double) + 1153 (ResourceLoader.h:154)
55  com.apple.WebKit              	0x000000010a3e998d WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) + 561 (HandleMessage.h:16)
56  com.apple.WebKit              	0x000000010a1c31f1 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;) + 127 (memory:2636)
57  com.apple.WebKit              	0x000000010a1c5b4a IPC::Connection::dispatchOneMessage() + 126 (memory:2656)
58  com.apple.JavaScriptCore      	0x000000010b607b52 WTF::RunLoop::performWork() + 898 (functional:1793)
59  com.apple.JavaScriptCore      	0x000000010b607d32 WTF::RunLoop::performWork(void*) + 34 (RunLoopCF.cpp:39)
60  com.apple.CoreFoundation      	0x00007fff949e2c01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
61  com.apple.CoreFoundation      	0x00007fff949d4b1c __CFRunLoopDoSources0 + 556
62  com.apple.CoreFoundation      	0x00007fff949d403f __CFRunLoopRun + 927
63  com.apple.CoreFoundation      	0x00007fff949d3a38 CFRunLoopRunSpecific + 296
64  com.apple.HIToolbox           	0x00007fff88e673bd RunCurrentEventLoopInMode + 235
65  com.apple.HIToolbox           	0x00007fff88e67153 ReceiveNextEventCommon + 432
66  com.apple.HIToolbox           	0x00007fff88e66f93 _BlockUntilNextEventMatchingListInModeWithFilter + 71
67  com.apple.AppKit              	0x00007fff870b81e7 _DPSNextEvent + 1076
68  com.apple.AppKit              	0x00007fff8748490d -[NSApplication _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 454
69  com.apple.AppKit              	0x00007fff870ae0b8 -[NSApplication run] + 682
70  com.apple.AppKit              	0x00007fff87030396 NSApplicationMain + 1176
71  libxpc.dylib                  	0x00007fff8c70ff70 _xpc_objc_main + 793
72  libxpc.dylib                  	0x00007fff8c7116bf xpc_main + 494
73  com.apple.WebKit.WebContent.Development	0x0000000103d83424 main + 409 (XPCServiceMain.Development.mm:187)
74  libdyld.dylib                 	0x00007fff93aa15ad start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1126899</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-09-17 15:34:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/22747892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145493</commentid>
    <comment_count>2</comment_count>
      <attachid>266420</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-12-01 18:36:42 -0800</bug_when>
    <thetext>Created attachment 266420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145498</commentid>
    <comment_count>3</comment_count>
      <attachid>266423</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-12-01 18:43:07 -0800</bug_when>
    <thetext>Created attachment 266423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145613</commentid>
    <comment_count>4</comment_count>
      <attachid>266423</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2015-12-02 10:48:35 -0800</bug_when>
    <thetext>Comment on attachment 266423
Patch

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

r=me, but please revise the comments as I suggested.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Add an extra guard to replaceDocument() against rude JS in unload event handlers.

rude! :-)

&gt; Source/WebCore/loader/DocumentWriter.cpp:76
&gt; +    // begin() might fire unload event which will result in that no new document is attached

I think this should read:

&quot;// begin() might fire an unload event, which will result in a situation where no new document has been attached,
// and the old document has been detached. Therefore, bail out if no document is attached.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145624</commentid>
    <comment_count>5</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2015-12-02 11:04:23 -0800</bug_when>
    <thetext>Committed r192947: &lt;http://trac.webkit.org/changeset/192947&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>261441</attachid>
            <date>2015-09-17 15:34:15 -0700</date>
            <delta_ts>2015-09-17 15:34:15 -0700</delta_ts>
            <desc>crashing test</desc>
            <filename>unload-mutation-crash.html</filename>
            <type>text/html</type>
            <size>689</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">PHNjcmlwdD4KaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgd2luZG93LnRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwoKZnVuY3Rpb24gc3RhcnQoKSB7CiAgd2luZG93LmZpcnN0RnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsKICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KHdpbmRvdy5maXJzdEZyYW1lKTsKICB3aW5kb3cuc2Vjb25kRnJhbWUgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdpZnJhbWUnKTsKICB3aW5kb3cuc2Vjb25kRnJhbWUuc3JjID0gJ2phdmFzY3Jp
cHQ6d2luZG93LnRvcC5tYXliZVN0YXJ0KCk7JzsKICB3aW5kb3cuZmlyc3RGcmFtZS5jb250ZW50
RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHdpbmRvdy5zZWNvbmRGcmFtZSk7
Cn0KCmZ1bmN0aW9uIG1heWJlU3RhcnQoKSB7CiAgd2luZG93LnNlY29uZEZyYW1lLmNvbnRlbnRX
aW5kb3cub251bmxvYWQgPSBmdW5jdGlvbigpIHsKICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5yZW1vdmVDaGlsZCh3aW5kb3cuYm9keUVsKTsKICB9OwoKICB3aW5kb3cuZmlyc3RGcmFtZS5z
cmMgPSAnamF2YXNjcmlwdDoiIjsnOwogIGNvbnNvbGUubG9nKCJQQVNTIHVubGVzcyBjcmFzaC4i
KTsKfQo8L3NjcmlwdD4KPGJvZHkgaWQ9Ym9keUVsIG9ubG9hZD1zdGFydCgpPjwvYm9keT4KPC9o
dG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266420</attachid>
            <date>2015-12-01 18:36:42 -0800</date>
            <delta_ts>2015-12-01 18:43:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149305-20151201183619.patch</filename>
            <type>text/plain</type>
            <size>4564</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTczZGFjODY5Mzc4ZDUz
ZWQ4N2NiNmExNzY0YzhlZDgxN2M1N2Q2Ny4uZjlmYWI1MDQ3MDkxNzE5MzA1YTA2OTgwYzQyYmFm
MDZlMDJjZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTEyLTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTnVsbCBkZXJlZmVyZW5j
ZSBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1j
cmFzaC5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDkzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzQ3ODkyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBleHRyYSBndWFyZCB0
byByZXBsYWNlRG9jdW1lbnQoKSBhZ2FpbnN0IHJ1ZGUgSlMgaW4gdW5sb2FkIGV2ZW50IGhhbmRs
ZXJzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC5o
dG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRXcml0ZXI6OnJlcGxhY2VEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFdyaXRlcjo6YmVnaW4pOgorCiAyMDE1LTEyLTAxICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBU1NFUlRJT04gRkFJ
TEVEOiBtX3RhYmxlIHJ1bm5pbmcgL3dlYmtpdDIvQmFja0ZvcndhcmRMaXN0L25hdmlnYXRpb24g
aW4gRGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dFdyaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmlu
ZGV4IGEyOTY3OTkzOTI5MTlhMTMyOWRkODc5NzU5ODQxMDlhMDc4YjI5YTguLjEwZTk5OGQ3MTNl
NTNmYzkyMWY5YTYwNzdjNWM3YmU1NGUzZDc2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50V3JpdGVyLmNwcApAQCAtNzMsNiArNzMsMTEgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6
cmVwbGFjZURvY3VtZW50KGNvbnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudCogb3duZXJEb2N1
bWUKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5zdG9wQWxsTG9hZGVycygpOwogICAgIGJlZ2luKG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCB0cnVlLCBvd25lckRvY3VtZW50KTsKIAorICAgIC8v
IGJlZ2luKCkgbWlnaHQgZmlyZSBvbnVubG9hZCBldmVudCB3aGljaCBjb3VsZCByZW1vdmUgdGhl
IGRvY3VtZW50LgorICAgIC8vIFRoZXJlZm9yZSwgY2hlY2sgd2hldGhlciBkb2N1bWVudCBpcyBz
dGlsbCBhbGl2ZS4KKyAgICBpZiAoIW1fZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgIHJldHVy
bjsKKwogICAgIGlmICghc291cmNlLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmICghbV9oYXNSZWNl
aXZlZFNvbWVEYXRhKSB7CiAgICAgICAgICAgICBtX2hhc1JlY2VpdmVkU29tZURhdGEgPSB0cnVl
OwpAQCAtMTQxLDYgKzE0NiwxMSBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBV
UkwmIHVybFJlZmVyZW5jZSwgYm9vbCBkaXNwYXRjaCwgRG9jdW1lbnQqIG93bgogICAgIG1fZnJh
bWUtPmxvYWRlcigpLmNsZWFyKGRvY3VtZW50LnB0cigpLCAhc2hvdWxkUmV1c2VEZWZhdWx0Vmll
dywgIXNob3VsZFJldXNlRGVmYXVsdFZpZXcpOwogICAgIGNsZWFyKCk7CiAKKyAgICAvLyBtX2Zy
YW1lLT5sb2FkZXIoKS5jbGVhcigpIG1pZ2h0IGZpcmUgb251bmxvYWQgZXZlbnQgd2hpY2ggY291
bGQgcmVtb3ZlIHRoZSB2aWV3IG9mIHRoZSBkb2N1bWVudC4KKyAgICAvLyBCYWlsIG91dCBpZiBk
b2N1bWVudCBoYXMgbm8gdmlldy4KKyAgICBpZiAoIWRvY3VtZW50LT52aWV3KCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIGlmICghc2hvdWxkUmV1c2VEZWZhdWx0VmlldykKICAgICAgICAgbV9m
cmFtZS0+c2NyaXB0KCkudXBkYXRlUGxhdGZvcm1TY3JpcHRPYmplY3RzKCk7CiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAz
NzgxNmI2ZmNhNTE1OWU2ZDYxMzMwYmFmMTBhZWI0ZDg2N2MyOWU0Li4wZjlhYjRlYTcwNTIyZTkx
YzUyYjk3ZGU2YTgzMzYzODA0NmRkZTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMTIt
MDEgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBOdWxsIGRl
cmVmZXJlbmNlIGxvYWRpbmcgQmxpbmsgbGF5b3V0IHRlc3QgZmFzdC9sb2FkZXIvdW5sb2FkLW11
dGF0aW9uLWNyYXNoLmh0bWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE0OTMwNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjI3NDc4OTI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IGNh
c2UgaXMgZnJvbSBCbGluayByMTgwOTE4OgorICAgICAgICBodHRwczovL2NvZGVyZXZpZXcuY2hy
b21pdW0ub3JnLzQ5NTc0MzAwMworCisgICAgICAgICogZmFzdC9sb2FkZXIvdW5sb2FkLW11dGF0
aW9uLWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIvdW5s
b2FkLW11dGF0aW9uLWNyYXNoLmh0bWw6IEFkZGVkLgorCiAyMDE1LTEyLTAxICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTkyODc2LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
dW5sb2FkLW11dGF0aW9uLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmFmYTBi
ZmQxNTg5YzFjY2I1MGY0ZDUzMWJhZjRkYzVjNjUxMzM5MwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorUEFTUy4gV2ViS2l0IGRpZG4ndCBjcmFzaC4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvdW5sb2FkLW11dGF0aW9uLWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjQ2ZmUxNjkyMjc3ODViMWQ2MTg5MTQwYTZmZTFiYTYzOTQxMTkwZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC5odG1sCkBA
IC0wLDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworCitmdW5jdGlvbiBzdGFydCgpIHsKKyAgICB3aW5kb3cuZmlyc3RGcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQod2luZG93LmZpcnN0RnJhbWUpOworICAgIHdpbmRvdy5zZWNvbmRGcmFtZSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpOworICAgIHdpbmRvdy5zZWNvbmRGcmFtZS5zcmMgPSAn
amF2YXNjcmlwdDp3aW5kb3cudG9wLm1heWJlU3RhcnQoKTsnOworICAgIHdpbmRvdy5maXJzdEZy
YW1lLmNvbnRlbnREb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQod2luZG93LnNl
Y29uZEZyYW1lKTsKK30KKworZnVuY3Rpb24gbWF5YmVTdGFydCgpIHsKKyAgICB3aW5kb3cuc2Vj
b25kRnJhbWUuY29udGVudFdpbmRvdy5vbnVubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQod2luZG93LmJvZHlFbCk7CisgICAg
fTsKKworICAgIHdpbmRvdy5maXJzdEZyYW1lLnNyYyA9ICdqYXZhc2NyaXB0OiIiOyc7CisgICAg
ZG9jdW1lbnQud3JpdGUoIlBBU1MuIFdlYktpdCBkaWRuJ3QgY3Jhc2guIik7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IGlkPWJvZHlFbCBvbmxvYWQ9c3RhcnQoKT48L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266423</attachid>
            <date>2015-12-01 18:43:07 -0800</date>
            <delta_ts>2015-12-02 10:48:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149305-20151201184244.patch</filename>
            <type>text/plain</type>
            <size>4610</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTczZGFjODY5Mzc4ZDUz
ZWQ4N2NiNmExNzY0YzhlZDgxN2M1N2Q2Ny4uZjlmYWI1MDQ3MDkxNzE5MzA1YTA2OTgwYzQyYmFm
MDZlMDJjZGY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTEyLTAxICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTnVsbCBkZXJlZmVyZW5j
ZSBsb2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1j
cmFzaC5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNDkzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzQ3ODkyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBleHRyYSBndWFyZCB0
byByZXBsYWNlRG9jdW1lbnQoKSBhZ2FpbnN0IHJ1ZGUgSlMgaW4gdW5sb2FkIGV2ZW50IGhhbmRs
ZXJzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC5o
dG1sCisKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnRXcml0ZXI6OnJlcGxhY2VEb2N1bWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudFdyaXRlcjo6YmVnaW4pOgorCiAyMDE1LTEyLTAxICBDYXJsb3MgR2FyY2lhIENh
bXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBU1NFUlRJT04gRkFJ
TEVEOiBtX3RhYmxlIHJ1bm5pbmcgL3dlYmtpdDIvQmFja0ZvcndhcmRMaXN0L25hdmlnYXRpb24g
aW4gRGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dFdyaXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCmlu
ZGV4IGEyOTY3OTkzOTI5MTlhMTMyOWRkODc5NzU5ODQxMDlhMDc4YjI5YTguLjk5MTBhNjdlMjdj
NjFmNTcyMjE1ZWRjMjhjYzUyZDU3NmFhZGZiMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50V3JpdGVyLmNwcApAQCAtNzMsNiArNzMsMTEgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6
cmVwbGFjZURvY3VtZW50KGNvbnN0IFN0cmluZyYgc291cmNlLCBEb2N1bWVudCogb3duZXJEb2N1
bWUKICAgICBtX2ZyYW1lLT5sb2FkZXIoKS5zdG9wQWxsTG9hZGVycygpOwogICAgIGJlZ2luKG1f
ZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLCB0cnVlLCBvd25lckRvY3VtZW50KTsKIAorICAgIC8v
IGJlZ2luKCkgbWlnaHQgZmlyZSB1bmxvYWQgZXZlbnQgd2hpY2ggd2lsbCByZXN1bHQgaW4gdGhh
dCBubyBuZXcgZG9jdW1lbnQgaXMgYXR0YWNoZWQKKyAgICAvLyB3aGlsZSB0aGUgb2xkIG9uZSBp
cyBkZXRhY2hlZC4gVGhlcmVmb3JlLCBiYWlsIG91dCBpZiBubyBkb2N1bWVudCBpcyBhdHRhY2hl
ZC4KKyAgICBpZiAoIW1fZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IGlmICghc291cmNlLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmICghbV9oYXNSZWNlaXZlZFNvbWVE
YXRhKSB7CiAgICAgICAgICAgICBtX2hhc1JlY2VpdmVkU29tZURhdGEgPSB0cnVlOwpAQCAtMTQx
LDYgKzE0NiwxMSBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBVUkwmIHVybFJl
ZmVyZW5jZSwgYm9vbCBkaXNwYXRjaCwgRG9jdW1lbnQqIG93bgogICAgIG1fZnJhbWUtPmxvYWRl
cigpLmNsZWFyKGRvY3VtZW50LnB0cigpLCAhc2hvdWxkUmV1c2VEZWZhdWx0VmlldywgIXNob3Vs
ZFJldXNlRGVmYXVsdFZpZXcpOwogICAgIGNsZWFyKCk7CiAKKyAgICAvLyBtX2ZyYW1lLT5sb2Fk
ZXIoKS5jbGVhcigpIG1pZ2h0IGZpcmUgdW5sb2FkIGV2ZW50IHdoaWNoIGNvdWxkIHJlbW92ZSB0
aGUgdmlldyBvZiB0aGUgZG9jdW1lbnQuCisgICAgLy8gQmFpbCBvdXQgaWYgZG9jdW1lbnQgaGFz
IG5vIHZpZXcuCisgICAgaWYgKCFkb2N1bWVudC0+dmlldygpKQorICAgICAgICByZXR1cm47CisK
ICAgICBpZiAoIXNob3VsZFJldXNlRGVmYXVsdFZpZXcpCiAgICAgICAgIG1fZnJhbWUtPnNjcmlw
dCgpLnVwZGF0ZVBsYXRmb3JtU2NyaXB0T2JqZWN0cygpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzc4MTZiNmZjYTUx
NTllNmQ2MTMzMGJhZjEwYWViNGQ4NjdjMjllNC4uMGY5YWI0ZWE3MDUyMmU5MWM1MmI5N2RlNmE4
MzM2MzgwNDZkZGUwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTEyLTAxICBKaWV3ZW4g
VGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTnVsbCBkZXJlZmVyZW5jZSBs
b2FkaW5nIEJsaW5rIGxheW91dCB0ZXN0IGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFz
aC5odG1sCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NDkzMDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyNzQ3ODkyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVzdCBjYXNlIGlzIGZyb20g
QmxpbmsgcjE4MDkxODoKKyAgICAgICAgaHR0cHM6Ly9jb2RlcmV2aWV3LmNocm9taXVtLm9yZy80
OTU3NDMwMDMKKworICAgICAgICAqIGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3VubG9hZC1tdXRhdGlv
bi1jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAxNS0xMi0wMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjE5Mjg3Ni4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3VubG9hZC1tdXRh
dGlvbi1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci91bmxvYWQt
bXV0YXRpb24tY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJhZmEwYmZkMTU4OWMxY2Ni
NTBmNGQ1MzFiYWY0ZGM1YzY1MTMzOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci91bmxvYWQtbXV0YXRpb24tY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEg
QEAKK1BBU1MuIFdlYktpdCBkaWRuJ3QgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci91bmxvYWQtbXV0YXRpb24tY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL3VubG9hZC1tdXRhdGlvbi1jcmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0NmZlMTY5MjI3
Nzg1YjFkNjE4OTE0MGE2ZmUxYmE2Mzk0MTE5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci91bmxvYWQtbXV0YXRpb24tY3Jhc2guaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworZnVu
Y3Rpb24gc3RhcnQoKSB7CisgICAgd2luZG93LmZpcnN0RnJhbWUgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdpZnJhbWUnKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHdpbmRvdy5m
aXJzdEZyYW1lKTsKKyAgICB3aW5kb3cuc2Vjb25kRnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdpZnJhbWUnKTsKKyAgICB3aW5kb3cuc2Vjb25kRnJhbWUuc3JjID0gJ2phdmFzY3JpcHQ6
d2luZG93LnRvcC5tYXliZVN0YXJ0KCk7JzsKKyAgICB3aW5kb3cuZmlyc3RGcmFtZS5jb250ZW50
RG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHdpbmRvdy5zZWNvbmRGcmFtZSk7
Cit9CisKK2Z1bmN0aW9uIG1heWJlU3RhcnQoKSB7CisgICAgd2luZG93LnNlY29uZEZyYW1lLmNv
bnRlbnRXaW5kb3cub251bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgZG9jdW1lbnQuZG9j
dW1lbnRFbGVtZW50LnJlbW92ZUNoaWxkKHdpbmRvdy5ib2R5RWwpOworICAgIH07CisKKyAgICB3
aW5kb3cuZmlyc3RGcmFtZS5zcmMgPSAnamF2YXNjcmlwdDoiIjsnOworICAgIGRvY3VtZW50Lndy
aXRlKCJQQVNTLiBXZWJLaXQgZGlkbid0IGNyYXNoLiIpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBpZD1ib2R5RWwgb25sb2FkPXN0YXJ0KCk+PC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="291442"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>