<?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>50868</bug_id>
          
          <creation_ts>2010-12-11 03:35:15 -0800</creation_ts>
          <short_desc>inspector/debugger-step-out.html crashing intermittently in the bots</short_desc>
          <delta_ts>2010-12-24 09:51:54 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>50889</blocked>
    
    <blocked>50987</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xan Lopez">xan.lopez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>caseq</cc>
    
    <cc>eric</cc>
    
    <cc>joepeck</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>podivilov</cc>
    
    <cc>timothy</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>320637</commentid>
    <comment_count>0</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-12-11 03:35:15 -0800</bug_when>
    <thetext>I&apos;ll skip that test in the GTK+ bots for now.

Thread 1 (Thread 21704):
#0  0xf584a774 in WebCore::CSSStyleDeclaration::getPropertyValue (
    this=0xeea97368, propertyName=...)
    at ../../WebCore/css/CSSStyleDeclaration.cpp:53
#1  0xf5b2e570 in WebCore::InspectorStyle::buildObjectForStyle (
    this=0xefa34be0) at ../../WebCore/inspector/InspectorStyleSheet.cpp:141
#2  0xf5b3203b in WebCore::InspectorStyleSheet::buildObjectForStyle (
    this=0xeea97448, style=0xea0729e0)
    at ../../WebCore/inspector/InspectorStyleSheet.cpp:739
#3  0xf5af3aec in WebCore::InspectorCSSAgent::getStylesForNode2 (
    this=0x86fda78, nodeId=4, result=0xffcd7ac4)
    at ../../WebCore/inspector/InspectorCSSAgent.cpp:186
#4  0xf60dc095 in WebCore::InspectorBackendDispatcher::getStylesForNode2 (
    this=0x86d3db8, callId=5, requestMessageObject=0xed9bb8f0)
    at DerivedSources/WebCore/InspectorBackendDispatcher.cpp:1929
#5  0xf60e6a00 in WebCore::InspectorBackendDispatcher::dispatch (
    this=0x86d3db8, message=...)
    at DerivedSources/WebCore/InspectorBackendDispatcher.cpp:2816
#6  0xf5b1c695 in WebCore::InspectorFrontendClientLocal::sendMessageToBackend
    (this=0xee229490, message=...)
    at ../../WebCore/inspector/InspectorFrontendClientLocal.cpp:154
#7  0xf5b1ce0d in WebCore::InspectorFrontendHost::sendMessageToBackend (
    this=0xf0e59650, message=...)
    at ../../WebCore/inspector/InspectorFrontendHost.cpp:223
#8  0xf620c809 in WebCore::jsInspectorFrontendHostPrototypeFunctionSendMessageToBackend (exec=0xf1728788)
    at DerivedSources/WebCore/JSInspectorFrontendHost.cpp:404
#9  0xf25382aa in ?? ()
#10 0xf649016e in JSC::JITCode::execute (this=0xede100a4, 
    registerFile=0xf242044c, callFrame=0xf17284a0, globalData=0xf241df50)
    at ../../JavaScriptCore/jit/JITCode.h:77
#11 0xf648d548 in JSC::Interpreter::executeCall (this=0xf2420440, 
    callFrame=0xf1728458, function=0xf16ef700, callType=JSC::CallTypeJS, 
    callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/interpreter/Interpreter.cpp:849
#12 0xf65213d6 in JSC::call (exec=0xf1728458, functionObject=..., 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/runtime/CallData.cpp:38
#13 0xf655e8dd in JSC::JSObject::put (this=0xf14f4f80, exec=0xf1728458, 
    propertyName=..., value=..., slot=...)
    at ../../JavaScriptCore/runtime/JSObject.cpp:146
#14 0xf64d1dba in JSC::JSValue::put (this=0xffcd8c34, exec=0xf1728458, 
    propertyName=..., value=..., slot=...)
    at ../../JavaScriptCore/runtime/JSObject.h:700
#15 0xf64c3b6b in cti_op_put_by_id_generic (args=0xffcd8c60)
    at ../../JavaScriptCore/jit/JITStubs.cpp:1419
#16 0xf64c2c80 in JSC::JITThunks::tryCacheGetByID (callFrame=0xf1424000, 
    codeBlock=0xf242044c, returnAddress=..., baseValue=..., propertyName=..., 
    slot=..., stubInfo=0xffcd8cd8)
    at ../../JavaScriptCore/jit/JITStubs.cpp:974
#17 0xf649016e in JSC::JITCode::execute (this=0xedd552c4, 
    registerFile=0xf242044c, callFrame=0xf1728458, globalData=0xf241df50)
    at ../../JavaScriptCore/jit/JITCode.h:77
#18 0xf648d548 in JSC::Interpreter::executeCall (this=0xf2420440, 
    callFrame=0xf17281c8, function=0xf14c4080, callType=JSC::CallTypeJS, 
    callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/interpreter/Interpreter.cpp:849
#19 0xf65213d6 in JSC::call (exec=0xf17281c8, functionObject=..., 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/runtime/CallData.cpp:38
#20 0xf655e8dd in JSC::JSObject::put (this=0xf14f4880, exec=0xf17281c8, 
    propertyName=..., value=..., slot=...)
    at ../../JavaScriptCore/runtime/JSObject.cpp:146
#21 0xf64d1dba in JSC::JSValue::put (this=0xffcd8fbc, exec=0xf17281c8, 
    propertyName=..., value=..., slot=...)
    at ../../JavaScriptCore/runtime/JSObject.h:700
#22 0xf64c3eba in cti_op_put_by_id (args=0xffcd8ff0)
    at ../../JavaScriptCore/jit/JITStubs.cpp:1456
#23 0xf64c2c80 in JSC::JITThunks::tryCacheGetByID (callFrame=0xeffc406c, 
    codeBlock=0xf242044c, returnAddress=..., baseValue=..., propertyName=..., 
    slot=..., stubInfo=0xffcd9068)
    at ../../JavaScriptCore/jit/JITStubs.cpp:974
#24 0xf649016e in JSC::JITCode::execute (this=0xe9e72c2c, 
    registerFile=0xf242044c, callFrame=0xf1728038, globalData=0xf241df50)
    at ../../JavaScriptCore/jit/JITCode.h:77
#25 0xf648d548 in JSC::Interpreter::executeCall (this=0xf2420440, 
    callFrame=0xee1670cc, function=0xf1289680, callType=JSC::CallTypeJS, 
    callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/interpreter/Interpreter.cpp:849
#26 0xf65213d6 in JSC::call (exec=0xee1670cc, functionObject=..., 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../JavaScriptCore/runtime/CallData.cpp:38
#27 0xf572511c in WebCore::JSMainThreadExecState::call (exec=0xee1670cc, 
    functionObject=..., callType=JSC::CallTypeJS, callData=..., 
    thisValue=..., args=...)
    at ../../WebCore/bindings/js/JSMainThreadExecState.h:48
#28 0xf577d3f1 in WebCore::ScheduledAction::executeFunctionInContext (
    this=0xee4b8b00, globalObject=0xf16c6f00, thisValue=..., 
    context=0xe9e446b0) at ../../WebCore/bindings/js/ScheduledAction.cpp:106
#29 0xf577d604 in WebCore::ScheduledAction::execute (this=0xee4b8b00, 
    document=0xe9e44678) at ../../WebCore/bindings/js/ScheduledAction.cpp:128
#30 0xf577d19e in WebCore::ScheduledAction::execute (this=0xee4b8b00, 
    context=0xe9e446b0) at ../../WebCore/bindings/js/ScheduledAction.cpp:76
#31 0xf5c18394 in WebCore::DOMTimer::fired (this=0xee4b8b20)
    at ../../WebCore/page/DOMTimer.cpp:131
#32 0xf5d12724 in WebCore::ThreadTimers::sharedTimerFiredInternal (
    this=0x8721c80) at ../../WebCore/platform/ThreadTimers.cpp:112
#33 0xf5d1266b in WebCore::ThreadTimers::sharedTimerFired ()
    at ../../WebCore/platform/ThreadTimers.cpp:90
#34 0xf60457b5 in timeout_cb ()
    at ../../WebCore/platform/gtk/SharedTimerGtk.cpp:49
#35 0xf4c17f8c in g_timeout_dispatch (source=0xedc4a938, callback=0xffcd78a8, 
    user_data=0x0) at /tmp/buildd/glib2.0-2.27.5.2010128/glib/gmain.c:3877
#36 0xf4c175c5 in g_main_dispatch (context=0x86bae28)
    at /tmp/buildd/glib2.0-2.27.5.2010128/glib/gmain.c:2440
#37 g_main_context_dispatch (context=0x86bae28)
    at /tmp/buildd/glib2.0-2.27.5.2010128/glib/gmain.c:3013
#38 0xf4c1bb78 in g_main_context_iterate (context=0x86bae28, 
    block=&lt;value optimized out&gt;, dispatch=1, self=0x86971b0)
    at /tmp/buildd/glib2.0-2.27.5.2010128/glib/gmain.c:3091
#39 0xf4c1c0b7 in g_main_loop_run (loop=0xf137c570)
    at /tmp/buildd/glib2.0-2.27.5.2010128/glib/gmain.c:3299
#40 0xf50d7dc9 in IA__gtk_main ()
    at /build/buildd-gtk+2.0_2.20.1-1-i386-Ixfflh/gtk+2.0-2.20.1/gtk/gtkmain.c:1219
#41 0x0805def1 in runTest (testPathOrURL=...)
    at ../../WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp:655
#42 0x0805d615 in runTestingServerLoop ()
    at ../../WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp:469
#43 0x0805f349 in main (argc=2, argv=0xffcd9f74)
    at ../../WebKitTools/DumpRenderTree/gtk/DumpRenderTree.cpp:1096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320661</commentid>
    <comment_count>1</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2010-12-11 04:53:01 -0800</bug_when>
    <thetext>inspector/styles-source-lines-inline.html is also crashing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>325952</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-23 00:36:57 -0800</bug_when>
    <thetext>Another bot saw the crash: https://bugs.webkit.org/show_bug.cgi?id=51035#c16</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326067</commentid>
    <comment_count>3</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-23 07:17:00 -0800</bug_when>
    <thetext>I was able to reproduce this crash by simply running DumpRenderTree on Qt Linux Debug with the following command line(note that the test is different):

gdb --args WebKitBuild/Debug/bin/DumpRenderTree  LayoutTests/inspector/console-command-clear.html &lt;...&gt; LayoutTests/inspector/console-command-clear.html


Stack dump is:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff5dc9a2b in WebCore::CSSStyleDeclaration::getPropertyValue (this=0x1355480, propertyName=...)
    at ../../../WebCore/css/CSSStyleDeclaration.cpp:53
53          return getPropertyValue(propID);
(gdb) bt
#0  0x00007ffff5dc9a2b in WebCore::CSSStyleDeclaration::getPropertyValue (this=0x1355480, propertyName=...)
    at ../../../WebCore/css/CSSStyleDeclaration.cpp:53
#1  0x00007ffff6152fe6 in WebCore::InspectorStyle::buildObjectForStyle (this=0x9d7620) at ../../../WebCore/inspector/InspectorStyleSheet.cpp:141
#2  0x00007ffff6158987 in WebCore::InspectorStyleSheet::buildObjectForStyle (this=0xe05410, style=0x884630)
    at ../../../WebCore/inspector/InspectorStyleSheet.cpp:739
#3  0x00007ffff60e29b1 in WebCore::InspectorCSSAgent::getStylesForNode2 (this=0x566580, nodeId=5, result=0x7fffffff7870)
    at ../../../WebCore/inspector/InspectorCSSAgent.cpp:186
#4  0x00007ffff5c08dad in WebCore::InspectorBackendDispatcher::getStylesForNode2 (this=0x4f2260, callId=7, requestMessageObject=0x8843e0)
    at generated/InspectorBackendDispatcher.cpp:1445
#5  0x00007ffff5c2214b in WebCore::InspectorBackendDispatcher::dispatch (this=0x4f2260, message=...)
    at generated/InspectorBackendDispatcher.cpp:2875
#6  0x00007ffff613b4c3 in WebCore::InspectorFrontendClientLocal::sendMessageToBackend (this=0xb87110, message=...)
    at ../../../WebCore/inspector/InspectorFrontendClientLocal.cpp:154
#7  0x00007ffff613c298 in WebCore::InspectorFrontendHost::sendMessageToBackend (this=0x6918e0, message=...)
    at ../../../WebCore/inspector/InspectorFrontendHost.cpp:223
#8  0x00007ffff5a4dd61 in WebCore::jsInspectorFrontendHostPrototypeFunctionSendMessageToBackend (exec=0x7fff65dc85e0)
    at generated/JSInspectorFrontendHost.cpp:405
#9  0x00007fff661c81b8 in ?? ()
#10 0x00007fffffff97a0 in ?? ()
#11 0x00007fff664cc6e3 in ?? ()
#12 0x00007fffffff9720 in ?? ()
#13 0x00000000007439c0 in ?? ()
#14 0x0000000000000005 in ?? ()
#15 0x00007fff65d45440 in ?? ()
#16 0x00007fff6622b4a7 in ?? ()
#17 0x00007ffff5cac3cf in JSC::Register::Register (this=0xffff000000000000) at ../../../JavaScriptCore/interpreter/Register.h:106
#18 0x00007ffff68919e1 in JSC::JITCode::execute (this=0x1531b98, registerFile=0x7fffe800c838, callFrame=0x7fff65dc82f8, globalData=0x7fffe806e220)
    at ../../../JavaScriptCore/jit/JITCode.h:77
#19 0x00007ffff688e7cd in JSC::Interpreter::executeCall (this=0x7fffe800c820, callFrame=0x7fff65dc82b0, function=0x7fff65d5ba40, 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../JavaScriptCore/interpreter/Interpreter.cpp:849
#20 0x00007ffff68badc7 in JSC::call (exec=0x7fff65dc82b0, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../../JavaScriptCore/runtime/CallData.cpp:38
#21 0x00007ffff68fa869 in JSC::JSObject::put (this=0x7fff65ceaf00, exec=0x7fff65dc82b0, propertyName=..., value=..., slot=...)
    at ../../../JavaScriptCore/runtime/JSObject.cpp:146
#22 0x00007ffff68a95f4 in JSC::JSValue::put (this=0x7fffffff9c40, exec=0x7fff65dc82b0, propertyName=..., value=..., slot=...)
    at ../../../JavaScriptCore/runtime/JSObject.h:700
#23 0x00007ffff689ae7f in JSC::cti_op_put_by_id_generic (args=0x7fffffff9c80) at ../../../JavaScriptCore/jit/JITStubs.cpp:1419
#24 0x00007ffff6899e68 in JSC::JITThunks::tryCacheGetByID (callFrame=0x7fffffff9c00, codeBlock=0x7ffff689b022, returnAddress=..., baseValue=..., 
    propertyName=..., slot=..., stubInfo=0x7fffe806e220) at ../../../JavaScriptCore/jit/JITStubs.cpp:974
#25 0x00007ffff68919e1 in JSC::JITCode::execute (this=0x129b8a8, registerFile=0x7fffe800c838, callFrame=0x7fff65dc82b0, globalData=0x7fffe806e220)
    at ../../../JavaScriptCore/jit/JITCode.h:77
#26 0x00007ffff688e7cd in JSC::Interpreter::executeCall (this=0x7fffe800c820, callFrame=0x7fff65dc8230, function=0x7fff65d78000, 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../JavaScriptCore/interpreter/Interpreter.cpp:849
#27 0x00007ffff68badc7 in JSC::call (exec=0x7fff65dc8230, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../../JavaScriptCore/runtime/CallData.cpp:38
#28 0x00007ffff68fa869 in JSC::JSObject::put (this=0x7fff65cea840, exec=0x7fff65dc8230, propertyName=..., value=..., slot=...)
    at ../../../JavaScriptCore/runtime/JSObject.cpp:146
#29 0x00007ffff68a95f4 in JSC::JSValue::put (this=0x7fffffffa1d0, exec=0x7fff65dc8230, propertyName=..., value=..., slot=...)
    at ../../../JavaScriptCore/runtime/JSObject.h:700
#30 0x00007ffff689b203 in JSC::cti_op_put_by_id (args=0x7fffffffa220) at ../../../JavaScriptCore/jit/JITStubs.cpp:1456
#31 0x00007ffff6899e68 in JSC::JITThunks::tryCacheGetByID (callFrame=0x7fff663802be, codeBlock=0x7fffffffa220, returnAddress=..., baseValue=..., 
    propertyName=..., slot=..., stubInfo=0x7fffe806e220) at ../../../JavaScriptCore/jit/JITStubs.cpp:974
#32 0x00007ffff68919e1 in JSC::JITCode::execute (this=0xd88408, registerFile=0x7fffe800c838, callFrame=0x7fff65dc8038, globalData=0x7fffe806e220)
    at ../../../JavaScriptCore/jit/JITCode.h:77
#33 0x00007ffff688e7cd in JSC::Interpreter::executeCall (this=0x7fffe800c820, callFrame=0x687698, function=0x7ffff7ee6600, 
    callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...) at ../../../JavaScriptCore/interpreter/Interpreter.cpp:849
#34 0x00007ffff68badc7 in JSC::call (exec=0x687698, functionObject=..., callType=JSC::CallTypeJS, callData=..., thisValue=..., args=...)
    at ../../../JavaScriptCore/runtime/CallData.cpp:38
#35 0x00007ffff5c8d69b in WebCore::JSMainThreadExecState::call (exec=0x687698, functionObject=..., callType=JSC::CallTypeJS, callData=..., 
    thisValue=..., args=...) at ../../../WebCore/bindings/js/JSMainThreadExecState.h:48
#36 0x00007ffff5cd5dc3 in WebCore::ScheduledAction::executeFunctionInContext (this=0x6322f0, globalObject=0x7fff65d45440, thisValue=..., context=
    0x69c7f8) at ../../../WebCore/bindings/js/ScheduledAction.cpp:106
#37 0x00007ffff5cd5ffc in WebCore::ScheduledAction::execute (this=0x6322f0, document=0x69c790)
    at ../../../WebCore/bindings/js/ScheduledAction.cpp:128
#38 0x00007ffff5cd5b82 in WebCore::ScheduledAction::execute (this=0x6322f0, context=0x69c7f8)
    at ../../../WebCore/bindings/js/ScheduledAction.cpp:76
#39 0x00007ffff6229107 in WebCore::DOMTimer::fired (this=0x911940) at ../../../WebCore/page/DOMTimer.cpp:131
#40 0x00007ffff633b334 in WebCore::ThreadTimers::sharedTimerFiredInternal (this=0x7fffe803ee70) at ../../../WebCore/platform/ThreadTimers.cpp:112
#41 0x00007ffff633b267 in WebCore::ThreadTimers::sharedTimerFired () at ../../../WebCore/platform/ThreadTimers.cpp:90
#42 0x00007ffff65497a4 in WebCore::SharedTimerQt::timerEvent (this=0x7fffe803eed0, ev=0x7fffffffaf00)
    at ../../../WebCore/platform/qt/SharedTimerQt.cpp:116
#43 0x00007ffff2a76a63 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#44 0x00007ffff326822c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#45 0x00007ffff326e6fb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#46 0x00007ffff2a6706c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#47 0x00007ffff2a93d42 in ?? () from /usr/lib/libQtCore.so.4
#48 0x00007ffff2a90848 in ?? () from /usr/lib/libQtCore.so.4
#49 0x00007fffefd818c2 in g_main_dispatch (context=0x51ea10) at /tmp/glib2.0.0xzuTt/glib2.0-2.24.1/glib/gmain.c:1960
#50 IA__g_main_context_dispatch (context=0x51ea10) at /tmp/glib2.0.0xzuTt/glib2.0-2.24.1/glib/gmain.c:2513
#51 0x00007fffefd85748 in g_main_context_iterate (context=0x51ea10, block=&lt;value optimized out&gt;, dispatch=&lt;value optimized out&gt;, 
    self=&lt;value optimized out&gt;) at /tmp/glib2.0.0xzuTt/glib2.0-2.24.1/glib/gmain.c:2591
#52 0x00007fffefd858fc in IA__g_main_context_iteration (context=0x51ea10, may_block=1) at /tmp/glib2.0.0xzuTt/glib2.0-2.24.1/glib/gmain.c:2654
#53 0x00007ffff2a90513 in QEventDispatcherGlib::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#54 0x00007ffff331846e in ?? () from /usr/lib/libQtGui.so.4
#55 0x00007ffff2a65992 in QEventLoop::processEvents(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#56 0x00007ffff2a65d6c in QEventLoop::exec(QFlags&lt;QEventLoop::ProcessEventsFlag&gt;) () from /usr/lib/libQtCore.so.4
#57 0x00007ffff2a69aab in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#58 0x0000000000437c58 in main (argc=205, argv=0x7fffffffb468) at /usr/local/google/home/yurys/WebKitGit/Tools/DumpRenderTree/qt/main.cpp:168</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326078</commentid>
    <comment_count>4</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-23 08:16:04 -0800</bug_when>
    <thetext>(In reply to comment #3)

The problem is that the style referenced from InspectorStyle::m_style is stale, even though the Element in InspectorStyleSheetForInlineStyle::m_element field of its container is the same as the considered Element.


The prob

(gdb) f 1
#1  0x00007ffff6152fe6 in WebCore::InspectorStyle::buildObjectForStyle (this=0x9d7620) at ../../../WebCore/inspector/InspectorStyleSheet.cpp:141
141         propertiesObject-&gt;setString(&quot;width&quot;, m_style-&gt;getPropertyValue(&quot;width&quot;));
(gdb) p *this-&gt;m_style
$50 = {&lt;WebCore::StyleBase&gt; = {&lt;WTF::RefCounted&lt;WebCore::StyleBase&gt;&gt; = {&lt;WTF::RefCountedBase&gt; = {m_refCount = 1131377775,
        m_deletionHasBegun = 97,
        m_adoptionIsRequired = 115}, &lt;WTFNoncopyable::Noncopyable&gt; = {&lt;WTF::FastAllocBase&gt; = {&lt;No data fields&gt;}, &lt;No data fields&gt;}, &lt;No data fields&gt;}, _vptr.StyleBase = 0x67207b2020202020, m_parent = 0x6f63203b3938203d}, &lt;No data fields&gt;}
(gdb)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326092</commentid>
    <comment_count>5</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-23 08:31:21 -0800</bug_when>
    <thetext>Steps to reproduce:

1. Open attached page.
2. Open inspector and select &lt;div id=&quot;counter&quot;&gt; in the DOM tree.
3. Click Test button.
4. Select another element in the DOM tree and than return back to the div.

Result:
Browser crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326093</commentid>
    <comment_count>6</comment_count>
      <attachid>77337</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-23 08:32:28 -0800</bug_when>
    <thetext>Created attachment 77337
Test page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326602</commentid>
    <comment_count>7</comment_count>
      <attachid>77413</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-24 06:28:45 -0800</bug_when>
    <thetext>Created attachment 77413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326603</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-24 06:31:39 -0800</bug_when>
    <thetext>With this patch applied I can&apos;t reproduce the crash above using the described scenario. I&apos;m not sure what was the reason for not using RefPtrs from the very beginning in InspectorStyle and InspectorCSSAgent for referencing DOM elements and CSS model elements.

(In reply to comment #7)
&gt; Created an attachment (id=77413) [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326604</commentid>
    <comment_count>9</comment_count>
      <attachid>77413</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2010-12-24 06:39:14 -0800</bug_when>
    <thetext>Comment on attachment 77413
Patch

The change looks good, but we should be wary of holding a stale RefPtr&lt;CSSStyleDeclaration&gt; that has been dereferenced by the inspected page elements (this is the root cause of the crashes we are observing), which implies that most likely the data in the Web Inspector and the inspected page will be inconsistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326615</commentid>
    <comment_count>10</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-24 08:22:14 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 77413 [details])
&gt; The change looks good, but we should be wary of holding a stale RefPtr&lt;CSSStyleDeclaration&gt; that has been dereferenced by the inspected page elements (this is the root cause of the crashes we are observing), which implies that most likely the data in the Web Inspector and the inspected page will be inconsistent.

I&apos;m pretty sure that the cause of the crash is that the StyledElement pointer is stale as well because I was able to reproduce the crash couple of times even with all pointers to CSS objects being RefPtrs but with raw Element pointer in InspectorStyleSheetForInlineStyle::m_element. Anyways incorrect behavior of CSS inspector is a less severe issue than non-deterministic crashes of all inspector tests. You will be able to roll out this patch locally if you want to use the crashes to spot the real problem in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326652</commentid>
    <comment_count>11</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-12-24 09:51:54 -0800</bug_when>
    <thetext>Committed r74637: &lt;http://trac.webkit.org/changeset/74637&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>77337</attachid>
            <date>2010-12-23 08:32:28 -0800</date>
            <delta_ts>2010-12-23 08:32:28 -0800</delta_ts>
            <desc>Test page</desc>
            <filename>style.html</filename>
            <type>text/html</type>
            <size>279</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">PGh0bWw+DQo8aGVhZD4NCjxzY3JpcHQ+DQoNCmZ1bmN0aW9uIGhhbmRsZUNsaWNrKGUpIHsNCiAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50ZXIiKS5yZW1vdmVBdHRyaWJ1dGUoInN0eWxl
Iik7DQp9DQoNCjwvc2NyaXB0Pg0KPC9oZWFkPg0KPGJvZHk+DQo8aW5wdXQgdHlwZT0nYnV0dG9u
JyBvbmNsaWNrPSdoYW5kbGVDbGljaygpJyB2YWx1ZT0nVGVzdCcvPg0KPGRpdiBpZD0iY291bnRl
ciIgc3R5bGU9ImNvbG9yOnJlZCI+VGV4dDwvZGl2Pg0KPC9ib2R5Pg0KPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77413</attachid>
            <date>2010-12-24 06:28:45 -0800</date>
            <delta_ts>2010-12-24 09:37:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50868-20101224172841.patch</filename>
            <type>text/plain</type>
            <size>15670</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YjhiNTE0ZjU4MGRmNGVjMzM1NWIyMTIwZWU0NGIyN2E5NDg0NDk3Zi4uNzU3OWE2YjYxZTFkYmQx
NDRiZDk1M2U5YTc0OGIzNmI1MmRjNjFiZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAxMC0xMi0yNCAgWXVy
eSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBpbnNwZWN0b3IvZGVidWdnZXItc3RlcC1vdXQu
aHRtbCBjcmFzaGluZyBpbnRlcm1pdHRlbnRseSBpbiB0aGUgYm90cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA4NjgKKworICAgICAgICBVc2UgUmVm
UHRyIHJhdGhlciBpbnN0ZWFkIG9mIHJhdyBwb2ludGVycyB3aGVuIGtlZXBpbmcgcmVmZXJlbmNl
cworICAgICAgICB0byByZWZjb3VudGVkIG9iamVjdHMuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yQ1NTQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OmdldFN0eWxlc0Zvck5vZGUyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNTU0Fn
ZW50OjpnZXRDb21wdXRlZFN0eWxlRm9yTm9kZTIpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpj
cmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6Okluc3BlY3RvclN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpidWlsZE9iamVjdEZvclN0eWxl
KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzZXRQcm9wZXJ0eVRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGU6OnRvZ2dsZVByb3BlcnR5KToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlOjpzdHlsZVRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yU3R5bGU6OnBvcHVsYXRlQWxsUHJvcGVydGllcyk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JTdHlsZTo6cmVwbGFjZVByb3BlcnR5SW5TdHlsZVRleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6Okluc3BlY3RvclN0eWxlU2hlZXQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpJbnNwZWN0
b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
U3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpnZXRTdHlsZUF0dHJpYnV0ZVJhbmdlcyk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvclN0eWxlOjpjc3NTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JT
dHlsZVNoZWV0OjpwYWdlU3R5bGVTaGVldCk6CisKIDIwMTAtMTItMjQgIE5vZWwgR29yZG9uICA8
bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xp
bmcuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKaW5kZXggMzFkOTUxYTI4
ZTlmYWQ1YmE3YzhjNzUzODZjOWJmYzFmYTZiZjEyMy4uZWUwNmU1NGJlZGU5ZGFkOTE2ZjI0MDU5
MDlkOWY1NjgyZTQ4MDY5YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNw
cApAQCAtMTg2LDcgKzE4Niw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldFN0eWxlc0Zv
ck5vZGUyKGxvbmcgbm9kZUlkLCBSZWZQdHI8SW5zcGVjdG9yVmFsdWU+KiByCiAgICAgICAgIHJl
c3VsdE9iamVjdC0+c2V0T2JqZWN0KCJpbmxpbmVTdHlsZSIsIHN0eWxlU2hlZXQtPmJ1aWxkT2Jq
ZWN0Rm9yU3R5bGUoZWxlbWVudC0+c3R5bGUoKSkpOwogCiAgICAgUmVmUHRyPENTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbj4gY29tcHV0ZWRTdHlsZUluZm8gPSBjb21wdXRlZFN0eWxlKGVsZW1l
bnQsIHRydWUpOyAvLyBTdXBwb3J0IHRoZSB2aWV3aW5nIG9mIDp2aXNpdGVkIGluZm9ybWF0aW9u
IGluIGNvbXB1dGVkIHN0eWxlLgotICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gY29tcHV0ZWRJ
bnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoKSwg
Y29tcHV0ZWRTdHlsZUluZm8uZ2V0KCksIDApOworICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4g
Y29tcHV0ZWRJbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxlOjpjcmVhdGUoSW5zcGVjdG9y
Q1NTSWQoKSwgY29tcHV0ZWRTdHlsZUluZm8sIDApOwogICAgIHJlc3VsdE9iamVjdC0+c2V0T2Jq
ZWN0KCJjb21wdXRlZFN0eWxlIiwgY29tcHV0ZWRJbnNwZWN0b3JTdHlsZS0+YnVpbGRPYmplY3RG
b3JTdHlsZSgpKTsKIAogICAgIENTU1N0eWxlU2VsZWN0b3IqIHNlbGVjdG9yID0gZWxlbWVudC0+
b3duZXJEb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCk7CkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0Q29tcHV0ZWRTdHlsZUZvck5vZGUyKGxvbmcgbm9kZUlk
LCBSZWZQdHI8SW5zcGVjdG9yVmEKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPENTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbj4gY29tcHV0ZWRTdHlsZUluZm8gPSBjb21wdXRlZFN0eWxl
KGVsZW1lbnQsIHRydWUpOwotICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gaW5zcGVjdG9yU3R5
bGUgPSBJbnNwZWN0b3JTdHlsZTo6Y3JlYXRlKEluc3BlY3RvckNTU0lkKCksIGNvbXB1dGVkU3R5
bGVJbmZvLmdldCgpLCAwKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yU3R5bGU+IGluc3BlY3RvclN0
eWxlID0gSW5zcGVjdG9yU3R5bGU6OmNyZWF0ZShJbnNwZWN0b3JDU1NJZCgpLCBjb21wdXRlZFN0
eWxlSW5mbywgMCk7CiAgICAgKnN0eWxlID0gaW5zcGVjdG9yU3R5bGUtPmJ1aWxkT2JqZWN0Rm9y
U3R5bGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVTaGVldC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcApp
bmRleCA2ZTNlYmU4MmZiNzI4NzMyNDA3OTNkNmNkY2Q4Nzg2M2RiOGFkMmY2Li5iYzgwNTI3NTNl
YzI4OTk5NTM4Zjc4MTA1ZWE4Njc4NDYwNjY0OWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcAorKysgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcApAQCAtMTMxLDYgKzEzMSwxOSBAQCBzdGF0aWMgUGFzc1JlZlB0
cjxDU1NSdWxlTGlzdD4gYXNDU1NSdWxlTGlzdChTdHlsZUJhc2UqIHN0eWxlQmFzZSkKICAgICBy
ZXR1cm4gMDsKIH0KIAorUGFzc1JlZlB0cjxJbnNwZWN0b3JTdHlsZT4gSW5zcGVjdG9yU3R5bGU6
OmNyZWF0ZShjb25zdCBJbnNwZWN0b3JDU1NJZCYgc3R5bGVJZCwgUGFzc1JlZlB0cjxDU1NTdHls
ZURlY2xhcmF0aW9uPiBzdHlsZSwgSW5zcGVjdG9yU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVl
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IEluc3BlY3RvclN0eWxlKHN0eWxlSWQsIHN0
eWxlLCBwYXJlbnRTdHlsZVNoZWV0KSk7Cit9CisKK0luc3BlY3RvclN0eWxlOjpJbnNwZWN0b3JT
dHlsZShjb25zdCBJbnNwZWN0b3JDU1NJZCYgc3R5bGVJZCwgUGFzc1JlZlB0cjxDU1NTdHlsZURl
Y2xhcmF0aW9uPiBzdHlsZSwgSW5zcGVjdG9yU3R5bGVTaGVldCogcGFyZW50U3R5bGVTaGVldCkK
KyAgICA6IG1fc3R5bGVJZChzdHlsZUlkKQorICAgICwgbV9zdHlsZShzdHlsZSkKKyAgICAsIG1f
cGFyZW50U3R5bGVTaGVldChwYXJlbnRTdHlsZVNoZWV0KQoreworICAgIEFTU0VSVChtX3N0eWxl
KTsKK30KKwogUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IEluc3BlY3RvclN0eWxlOjpidWls
ZE9iamVjdEZvclN0eWxlKCkgY29uc3QKIHsKICAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBy
ZXN1bHQgPSBJbnNwZWN0b3JPYmplY3Q6OmNyZWF0ZSgpOwpAQCAtMTQxLDcgKzE1NCw3IEBAIFBh
c3NSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBJbnNwZWN0b3JTdHlsZTo6YnVpbGRPYmplY3RGb3JT
dHlsZSgpIGNvbnN0CiAgICAgcHJvcGVydGllc09iamVjdC0+c2V0U3RyaW5nKCJ3aWR0aCIsIG1f
c3R5bGUtPmdldFByb3BlcnR5VmFsdWUoIndpZHRoIikpOwogICAgIHByb3BlcnRpZXNPYmplY3Qt
PnNldFN0cmluZygiaGVpZ2h0IiwgbV9zdHlsZS0+Z2V0UHJvcGVydHlWYWx1ZSgiaGVpZ2h0Iikp
OwogCi0gICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJlbnRT
dHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxl
KSA6IDA7CisgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJl
bnRTdHlsZVNoZWV0ID8gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0
eWxlLmdldCgpKSA6IDA7CiAgICAgaWYgKHNvdXJjZURhdGEpIHsKICAgICAgICAgcHJvcGVydGll
c09iamVjdC0+c2V0TnVtYmVyKCJzdGFydE9mZnNldCIsIHNvdXJjZURhdGEtPnN0eWxlU291cmNl
RGF0YS0+c3R5bGVCb2R5UmFuZ2Uuc3RhcnQpOwogICAgICAgICBwcm9wZXJ0aWVzT2JqZWN0LT5z
ZXROdW1iZXIoImVuZE9mZnNldCIsIHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+c3R5bGVC
b2R5UmFuZ2UuZW5kKTsKQEAgLTIxNyw3ICsyMzAsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjpz
ZXRQcm9wZXJ0eVRleHQodW5zaWduZWQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcHJvcGVydHlUZXh0
LAogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gSW5zZXJ0IGF0IGluZGV4Lgot
ICAgICAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0
eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUpOworICAgICAgICBSZWZQdHI8Q1NT
UnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3Vy
Y2VEYXRhRm9yKG1fc3R5bGUuZ2V0KCkpOwogICAgICAgICBpZiAoIXNvdXJjZURhdGEpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIFN0cmluZyB0ZXh0OwpAQCAtMjU3LDcgKzI3
MCw3IEBAIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnNldFByb3BlcnR5VGV4dCh1bnNpZ25lZCBpbmRl
eCwgY29uc3QgU3RyaW5nJiBwcm9wZXJ0eVRleHQsCiAgICAgICAgIH0KIAogICAgICAgICB0ZXh0
Lmluc2VydCh0ZXh0VG9TZXQsIHByb3BlcnR5U3RhcnQpOwotICAgICAgICBtX3BhcmVudFN0eWxl
U2hlZXQtPnNldFN0eWxlVGV4dChtX3N0eWxlLCB0ZXh0KTsKKyAgICAgICAgbV9wYXJlbnRTdHls
ZVNoZWV0LT5zZXRTdHlsZVRleHQobV9zdHlsZS5nZXQoKSwgdGV4dCk7CiAgICAgfQogCiAgICAg
Ly8gUmVjb21wdXRlIHN1YnNlcXVlbnQgZGlzYWJsZWQgcHJvcGVydHkgcmFuZ2VzIGlmIGFjdGlu
ZyBvbiBhIG5vbi1kaXNhYmxlZCBwcm9wZXJ0eS4KQEAgLTI3MSw3ICsyODQsNyBAQCBib29sIElu
c3BlY3RvclN0eWxlOjp0b2dnbGVQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCwgYm9vbCBkaXNhYmxl
KQogICAgIEFTU0VSVChtX3BhcmVudFN0eWxlU2hlZXQpOwogICAgIGlmICghbV9wYXJlbnRTdHls
ZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOyAv
LyBDYW4gdG9nZ2xlIG9ubHkgc291cmNlLWJhc2VkIHByb3BlcnRpZXMuCi0gICAgUmVmUHRyPENT
U1J1bGVTb3VyY2VEYXRhPiBzb3VyY2VEYXRhID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5ydWxlU291
cmNlRGF0YUZvcihtX3N0eWxlKTsKKyAgICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJj
ZURhdGEgPSBtX3BhcmVudFN0eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUuZ2V0
KCkpOwogICAgIGlmICghc291cmNlRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBObyBz
b3VyY2UgZGF0YSBmb3IgdGhlIHN0eWxlLgogCkBAIC0zMTIsNyArMzI1LDcgQEAgdW5zaWduZWQg
SW5zcGVjdG9yU3R5bGU6OmRpc2FibGVkSW5kZXhCeU9yZGluYWwodW5zaWduZWQgb3JkaW5hbCwg
Ym9vbCBjYW5Vc2VTdWIKIGJvb2wgSW5zcGVjdG9yU3R5bGU6OnN0eWxlVGV4dChTdHJpbmcqIHJl
c3VsdCkgY29uc3QKIHsKICAgICAvLyBQcmVjb25kaXRpb246IG1fcGFyZW50U3R5bGVTaGVldC0+
ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkgaGFzIGJlZW4gY2FsbGVkIHN1Y2Nlc3NmdWxseS4KLSAg
ICBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSBtX3BhcmVudFN0eWxlU2hl
ZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUpOworICAgIFJlZlB0cjxDU1NSdWxlU291cmNl
RGF0YT4gc291cmNlRGF0YSA9IG1fcGFyZW50U3R5bGVTaGVldC0+cnVsZVNvdXJjZURhdGFGb3Io
bV9zdHlsZS5nZXQoKSk7CiAgICAgaWYgKCFzb3VyY2VEYXRhKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTM4MSw3ICszOTQsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjpwb3B1bGF0ZUFs
bFByb3BlcnRpZXMoVmVjdG9yPEluc3BlY3RvclN0eWxlUHJvcGVydHk+KiByZXN1bAogICAgIGlm
IChkaXNhYmxlZEluZGV4IDwgZGlzYWJsZWRMZW5ndGgpCiAgICAgICAgIGRpc2FibGVkUHJvcGVy
dHkgPSBtX2Rpc2FibGVkUHJvcGVydGllcy5hdChkaXNhYmxlZEluZGV4KTsKIAotICAgIFJlZlB0
cjxDU1NSdWxlU291cmNlRGF0YT4gc291cmNlRGF0YSA9IChtX3BhcmVudFN0eWxlU2hlZXQgJiYg
bV9wYXJlbnRTdHlsZVNoZWV0LT5lbnN1cmVQYXJzZWREYXRhUmVhZHkoKSkgPyBtX3BhcmVudFN0
eWxlU2hlZXQtPnJ1bGVTb3VyY2VEYXRhRm9yKG1fc3R5bGUpIDogMDsKKyAgICBSZWZQdHI8Q1NT
UnVsZVNvdXJjZURhdGE+IHNvdXJjZURhdGEgPSAobV9wYXJlbnRTdHlsZVNoZWV0ICYmIG1fcGFy
ZW50U3R5bGVTaGVldC0+ZW5zdXJlUGFyc2VkRGF0YVJlYWR5KCkpID8gbV9wYXJlbnRTdHlsZVNo
ZWV0LT5ydWxlU291cmNlRGF0YUZvcihtX3N0eWxlLmdldCgpKSA6IDA7CiAgICAgVmVjdG9yPENT
U1Byb3BlcnR5U291cmNlRGF0YT4qIHNvdXJjZVByb3BlcnR5RGF0YSA9IHNvdXJjZURhdGEgPyAm
KHNvdXJjZURhdGEtPnN0eWxlU291cmNlRGF0YS0+cHJvcGVydHlEYXRhKSA6IDA7CiAgICAgaWYg
KHNvdXJjZVByb3BlcnR5RGF0YSkgewogICAgICAgICBTdHJpbmcgc3R5bGVEZWNsYXJhdGlvbjsK
QEAgLTUwOCw3ICs1MjEsNyBAQCBib29sIEluc3BlY3RvclN0eWxlOjpyZXBsYWNlUHJvcGVydHlJ
blN0eWxlVGV4dChjb25zdCBJbnNwZWN0b3JTdHlsZVByb3BlcnR5JiBwcgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgY29uc3QgU291cmNlUmFuZ2UmIHJhbmdlID0gcHJvcGVydHkuc291cmNl
RGF0YS5yYW5nZTsKICAgICB0ZXh0LnJlcGxhY2UocmFuZ2Uuc3RhcnQsIHJhbmdlLmVuZCAtIHJh
bmdlLnN0YXJ0LCBuZXdUZXh0KTsKLSAgICBzdWNjZXNzID0gbV9wYXJlbnRTdHlsZVNoZWV0LT5z
ZXRTdHlsZVRleHQobV9zdHlsZSwgdGV4dCk7CisgICAgc3VjY2VzcyA9IG1fcGFyZW50U3R5bGVT
aGVldC0+c2V0U3R5bGVUZXh0KG1fc3R5bGUuZ2V0KCksIHRleHQpOwogICAgIHJldHVybiBzdWNj
ZXNzOwogfQogCkBAIC01NjMsNyArNTc2LDEyIEBAIFZlY3RvcjxTdHJpbmc+IEluc3BlY3RvclN0
eWxlOjpsb25naGFuZFByb3BlcnRpZXMoY29uc3QgU3RyaW5nJiBzaG9ydGhhbmRQcm9wZXJ0CiAg
ICAgcmV0dXJuIHByb3BlcnRpZXM7CiB9CiAKLUluc3BlY3RvclN0eWxlU2hlZXQ6Okluc3BlY3Rv
clN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBpZCwgQ1NTU3R5bGVTaGVldCogcGFnZVN0eWxlU2hl
ZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKQorUGFz
c1JlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0PiBJbnNwZWN0b3JTdHlsZVNoZWV0OjpjcmVhdGUo
Y29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxDU1NTdHlsZVNoZWV0PiBwYWdlU3R5bGVTaGVl
dCwgY29uc3QgU3RyaW5nJiBvcmlnaW4sIGNvbnN0IFN0cmluZyYgZG9jdW1lbnRVUkwpCit7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JTdHlsZVNoZWV0KGlkLCBwYWdlU3R5bGVT
aGVldCwgb3JpZ2luLCBkb2N1bWVudFVSTCkpOworfQorCitJbnNwZWN0b3JTdHlsZVNoZWV0OjpJ
bnNwZWN0b3JTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaWQsIFBhc3NSZWZQdHI8Q1NTU3R5bGVT
aGVldD4gcGFnZVN0eWxlU2hlZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcm
IGRvY3VtZW50VVJMKQogICAgIDogbV9pZChpZCkKICAgICAsIG1fcGFnZVN0eWxlU2hlZXQocGFn
ZVN0eWxlU2hlZXQpCiAgICAgLCBtX29yaWdpbihvcmlnaW4pCkBAIC0xMDkyLDEyICsxMTEwLDE3
IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVTaGVldDo6Y29sbGVjdEZsYXRSdWxlcyhQYXNzUmVmUHRy
PENTU1J1bGVMaXN0PiBydWxlTGlzdCwgVmVjCiAgICAgfQogfQogCi1JbnNwZWN0b3JTdHlsZVNo
ZWV0Rm9ySW5saW5lU3R5bGU6Okluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZShjb25z
dCBTdHJpbmcmIGlkLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG9yaWdpbikKK1Bh
c3NSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlPiBJbnNwZWN0b3JTdHls
ZVNoZWV0Rm9ySW5saW5lU3R5bGU6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRy
PEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgb3JpZ2luKQoreworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlKGlkLCBlbGVtZW50
LCBvcmlnaW4pKTsKK30KKworSW5zcGVjdG9yU3R5bGVTaGVldEZvcklubGluZVN0eWxlOjpJbnNw
ZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG9yaWdpbikKICAgICA6IEluc3BlY3Rv
clN0eWxlU2hlZXQoaWQsIDAsIG9yaWdpbiwgIiIpCiAgICAgLCBtX2VsZW1lbnQoZWxlbWVudCkK
ICAgICAsIG1fcnVsZVNvdXJjZURhdGEoMCkKIHsKLSAgICBBU1NFUlQoZWxlbWVudCk7CisgICAg
QVNTRVJUKG1fZWxlbWVudCk7CiAgICAgbV9pbnNwZWN0b3JTdHlsZSA9IEluc3BlY3RvclN0eWxl
OjpjcmVhdGUoSW5zcGVjdG9yQ1NTSWQoaWQsIDApLCBpbmxpbmVTdHlsZSgpLCB0aGlzKTsKIH0K
IApAQCAtMTE1NCw3ICsxMTc3LDcgQEAgYm9vbCBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5l
U3R5bGU6OmdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKFJlZlB0cjxDU1NTdHlsZVMKICAgICBpZiAo
IW1fZWxlbWVudC0+aXNTdHlsZWRFbGVtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIFN0cmluZyBzdHlsZVRleHQgPSBzdGF0aWNfY2FzdDxTdHlsZWRFbGVtZW50Kj4obV9lbGVt
ZW50KS0+Z2V0QXR0cmlidXRlKHN0eWxlQXR0cmlidXRlTmFtZSk7CisgICAgU3RyaW5nIHN0eWxl
VGV4dCA9IHN0YXRpY19jYXN0PFN0eWxlZEVsZW1lbnQqPihtX2VsZW1lbnQuZ2V0KCkpLT5nZXRB
dHRyaWJ1dGUoc3R5bGVBdHRyaWJ1dGVOYW1lKTsKICAgICBpZiAoc3R5bGVUZXh0LmlzRW1wdHko
KSkgewogICAgICAgICAoKnJlc3VsdCktPnN0eWxlQm9keVJhbmdlLnN0YXJ0ID0gMDsKICAgICAg
ICAgKCpyZXN1bHQpLT5zdHlsZUJvZHlSYW5nZS5lbmQgPSAwOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5oIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yU3R5bGVTaGVldC5oCmluZGV4IGI2NDliZWRlYTM4OTZkYTI5YzU4N2M0NGQyN2M3MjA1
ZjU2NmQwODMuLmE5ZTJjYzc1MmM3YjEwOTg2NzRiODU3YWUzMWI2YjljM2Q5YzQzZTIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuaAorKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmgKQEAgLTEyMSwyNiArMTIxLDE3IEBA
IHN0cnVjdCBJbnNwZWN0b3JTdHlsZVByb3BlcnR5IHsKIAogY2xhc3MgSW5zcGVjdG9yU3R5bGUg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JTdHlsZT4gewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEluc3BlY3RvclN0eWxlPiBjcmVhdGUoY29uc3QgSW5zcGVjdG9yQ1NTSWQm
IHN0eWxlSWQsIENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlLCBJbnNwZWN0b3JTdHlsZVNoZWV0
KiBwYXJlbnRTdHlsZVNoZWV0KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJ
bnNwZWN0b3JTdHlsZShzdHlsZUlkLCBzdHlsZSwgcGFyZW50U3R5bGVTaGVldCkpOwotICAgIH0K
LQotICAgIEluc3BlY3RvclN0eWxlKGNvbnN0IEluc3BlY3RvckNTU0lkJiBzdHlsZUlkLCBDU1NT
dHlsZURlY2xhcmF0aW9uKiBzdHlsZSwgSW5zcGVjdG9yU3R5bGVTaGVldCogcGFyZW50U3R5bGVT
aGVldCkKLSAgICAgICAgOiBtX3N0eWxlSWQoc3R5bGVJZCkKLSAgICAgICAgLCBtX3N0eWxlKHN0
eWxlKQotICAgICAgICAsIG1fcGFyZW50U3R5bGVTaGVldChwYXJlbnRTdHlsZVNoZWV0KQotICAg
IHsKLSAgICAgICAgQVNTRVJUKHN0eWxlKTsKLSAgICB9CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
SW5zcGVjdG9yU3R5bGU+IGNyZWF0ZShjb25zdCBJbnNwZWN0b3JDU1NJZCYgc3R5bGVJZCwgUGFz
c1JlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBzdHlsZSwgSW5zcGVjdG9yU3R5bGVTaGVldCog
cGFyZW50U3R5bGVTaGVldCk7CiAKLSAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBjc3NTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fc3R5bGU7IH0KKyAgICBDU1NTdHlsZURlY2xhcmF0aW9uKiBjc3NT
dHlsZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3R5bGUuZ2V0KCk7IH0KICAgICBQYXNzUmVmUHRyPElu
c3BlY3Rvck9iamVjdD4gYnVpbGRPYmplY3RGb3JTdHlsZSgpIGNvbnN0OwogICAgIGJvb2wgaGFz
RGlzYWJsZWRQcm9wZXJ0aWVzKCkgY29uc3QgeyByZXR1cm4gIW1fZGlzYWJsZWRQcm9wZXJ0aWVz
LmlzRW1wdHkoKTsgfQogICAgIGJvb2wgc2V0UHJvcGVydHlUZXh0KHVuc2lnbmVkIGluZGV4LCBj
b25zdCBTdHJpbmcmIHRleHQsIGJvb2wgb3ZlcndyaXRlKTsKICAgICBib29sIHRvZ2dsZVByb3Bl
cnR5KHVuc2lnbmVkIGluZGV4LCBib29sIGRpc2FibGUpOwogCiBwcml2YXRlOgorICAgIEluc3Bl
Y3RvclN0eWxlKGNvbnN0IEluc3BlY3RvckNTU0lkJiBzdHlsZUlkLCBQYXNzUmVmUHRyPENTU1N0
eWxlRGVjbGFyYXRpb24+IHN0eWxlLCBJbnNwZWN0b3JTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNo
ZWV0KTsKKwogICAgIHN0YXRpYyB1bnNpZ25lZCBkaXNhYmxlZEluZGV4QnlPcmRpbmFsKHVuc2ln
bmVkIG9yZGluYWwsIGJvb2wgY2FuVXNlU3Vic2VxdWVudCwgVmVjdG9yPEluc3BlY3RvclN0eWxl
UHJvcGVydHk+JiBhbGxQcm9wZXJ0aWVzKTsKIAogICAgIGJvb2wgc3R5bGVUZXh0KFN0cmluZyog
cmVzdWx0KSBjb25zdDsKQEAgLTE1NSw3ICsxNDYsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxT
dHJpbmc+IGxvbmdoYW5kUHJvcGVydGllcyhjb25zdCBTdHJpbmcmIHNob3J0aGFuZFByb3BlcnR5
KSBjb25zdDsKIAogICAgIEluc3BlY3RvckNTU0lkIG1fc3R5bGVJZDsKLSAgICBDU1NTdHlsZURl
Y2xhcmF0aW9uKiBtX3N0eWxlOworICAgIFJlZlB0cjxDU1NTdHlsZURlY2xhcmF0aW9uPiBtX3N0
eWxlOwogICAgIEluc3BlY3RvclN0eWxlU2hlZXQqIG1fcGFyZW50U3R5bGVTaGVldDsKICAgICBW
ZWN0b3I8SW5zcGVjdG9yU3R5bGVQcm9wZXJ0eT4gbV9kaXNhYmxlZFByb3BlcnRpZXM7CiB9OwpA
QCAtMTYzLDE3ICsxNTQsMTMgQEAgcHJpdmF0ZToKIGNsYXNzIEluc3BlY3RvclN0eWxlU2hlZXQg
OiBwdWJsaWMgUmVmQ291bnRlZDxJbnNwZWN0b3JTdHlsZVNoZWV0PiB7CiBwdWJsaWM6CiAgICAg
dHlwZWRlZiBIYXNoTWFwPENTU1N0eWxlRGVjbGFyYXRpb24qLCBSZWZQdHI8SW5zcGVjdG9yU3R5
bGU+ID4gSW5zcGVjdG9yU3R5bGVNYXA7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9y
U3R5bGVTaGVldD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIENTU1N0eWxlU2hlZXQqIHBhZ2VT
dHlsZVNoZWV0LCBjb25zdCBTdHJpbmcmIG9yaWdpbiwgY29uc3QgU3RyaW5nJiBkb2N1bWVudFVS
TCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSW5zcGVjdG9yU3R5bGVTaGVl
dChpZCwgcGFnZVN0eWxlU2hlZXQsIG9yaWdpbiwgZG9jdW1lbnRVUkwpKTsKLSAgICB9CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SW5zcGVjdG9yU3R5bGVTaGVldD4gY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgaWQsIFBhc3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFnZVN0eWxlU2hlZXQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKTsKIAotICAgIEluc3BlY3Rv
clN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBpZCwgQ1NTU3R5bGVTaGVldCogcGFnZVN0eWxlU2hl
ZXQsIGNvbnN0IFN0cmluZyYgb3JpZ2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKTsKICAg
ICB2aXJ0dWFsIH5JbnNwZWN0b3JTdHlsZVNoZWV0KCk7CiAKICAgICBTdHJpbmcgaWQoKSBjb25z
dCB7IHJldHVybiBtX2lkOyB9CiAgICAgU3RyaW5nIGZpbmFsVVJMKCkgY29uc3Q7Ci0gICAgQ1NT
U3R5bGVTaGVldCogcGFnZVN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VTdHlsZVNo
ZWV0OyB9CisgICAgQ1NTU3R5bGVTaGVldCogcGFnZVN0eWxlU2hlZXQoKSBjb25zdCB7IHJldHVy
biBtX3BhZ2VTdHlsZVNoZWV0LmdldCgpOyB9CiAgICAgdm9pZCByZXBhcnNlU3R5bGVTaGVldChj
b25zdCBTdHJpbmcmKTsKICAgICBib29sIHNldFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgYm9v
bCBzZXRSdWxlU2VsZWN0b3IoY29uc3QgSW5zcGVjdG9yQ1NTSWQmLCBjb25zdCBTdHJpbmcmIHNl
bGVjdG9yKTsKQEAgLTE4OSw2ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBDU1NTdHls
ZURlY2xhcmF0aW9uKiBzdHlsZUZvcklkKGNvbnN0IEluc3BlY3RvckNTU0lkJikgY29uc3Q7CiAK
IHByb3RlY3RlZDoKKyAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KGNvbnN0IFN0cmluZyYgaWQsIFBh
c3NSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFnZVN0eWxlU2hlZXQsIGNvbnN0IFN0cmluZyYgb3Jp
Z2luLCBjb25zdCBTdHJpbmcmIGRvY3VtZW50VVJMKTsKKwogICAgIGJvb2wgY2FuQmluZCgpIGNv
bnN0IHsgcmV0dXJuIG1fb3JpZ2luICE9ICJ1c2VyQWdlbnQiICYmIG1fb3JpZ2luICE9ICJ1c2Vy
IjsgfQogICAgIEluc3BlY3RvckNTU0lkIHJ1bGVPclN0eWxlSWQoQ1NTU3R5bGVEZWNsYXJhdGlv
biogc3R5bGUpIGNvbnN0OwogICAgIHZpcnR1YWwgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQoKSBj
b25zdDsKQEAgLTIxOCw3ICsyMDcsNyBAQCBwcml2YXRlOgogICAgIFBhc3NSZWZQdHI8SW5zcGVj
dG9yQXJyYXk+IGJ1aWxkQXJyYXlGb3JSdWxlTGlzdChDU1NSdWxlTGlzdCopOwogCiAgICAgU3Ry
aW5nIG1faWQ7Ci0gICAgQ1NTU3R5bGVTaGVldCogbV9wYWdlU3R5bGVTaGVldDsKKyAgICBSZWZQ
dHI8Q1NTU3R5bGVTaGVldD4gbV9wYWdlU3R5bGVTaGVldDsKICAgICBTdHJpbmcgbV9vcmlnaW47
CiAgICAgU3RyaW5nIG1fZG9jdW1lbnRVUkw7CiAgICAgYm9vbCBtX2lzUmV2YWxpZGF0aW5nOwpA
QCAtMjMxLDE2ICsyMjAsMTQgQEAgcHJpdmF0ZToKIAogY2xhc3MgSW5zcGVjdG9yU3R5bGVTaGVl
dEZvcklubGluZVN0eWxlIDogcHVibGljIEluc3BlY3RvclN0eWxlU2hlZXQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZT4g
Y3JlYXRlKGNvbnN0IFN0cmluZyYgaWQsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYg
b3JpZ2luKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbnNwZWN0b3JTdHls
ZVNoZWV0Rm9ySW5saW5lU3R5bGUoaWQsIGVsZW1lbnQsIG9yaWdpbikpOwotICAgIH0KKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5saW5lU3R5bGU+IGNyZWF0
ZShjb25zdCBTdHJpbmcmIGlkLCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IFN0
cmluZyYgb3JpZ2luKTsKIAotICAgIEluc3BlY3RvclN0eWxlU2hlZXRGb3JJbmxpbmVTdHlsZShj
b25zdCBTdHJpbmcmIGlkLCBFbGVtZW50KiBlbGVtZW50LCBjb25zdCBTdHJpbmcmIG9yaWdpbik7
CiAgICAgdmlydHVhbCBib29sIHRleHQoU3RyaW5nKiByZXN1bHQpIGNvbnN0OwogICAgIHZpcnR1
YWwgQ1NTU3R5bGVEZWNsYXJhdGlvbiogc3R5bGVGb3JJZChjb25zdCBJbnNwZWN0b3JDU1NJZCYg
aWQpIGNvbnN0IHsgQVNTRVJUX1VOVVNFRChpZCwgIWlkLm9yZGluYWwoKSk7IHJldHVybiBpbmxp
bmVTdHlsZSgpOyB9CiAKIHByb3RlY3RlZDoKKyAgICBJbnNwZWN0b3JTdHlsZVNoZWV0Rm9ySW5s
aW5lU3R5bGUoY29uc3QgU3RyaW5nJiBpZCwgUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBj
b25zdCBTdHJpbmcmIG9yaWdpbik7CisKICAgICB2aXJ0dWFsIERvY3VtZW50KiBvd25lckRvY3Vt
ZW50KCkgY29uc3Q7CiAgICAgdmlydHVhbCBSZWZQdHI8Q1NTUnVsZVNvdXJjZURhdGE+IHJ1bGVT
b3VyY2VEYXRhRm9yKENTU1N0eWxlRGVjbGFyYXRpb24qIHN0eWxlKSBjb25zdCB7IEFTU0VSVF9V
TlVTRUQoc3R5bGUsIHN0eWxlID09IGlubGluZVN0eWxlKCkpOyByZXR1cm4gbV9ydWxlU291cmNl
RGF0YTsgfQogICAgIHZpcnR1YWwgdW5zaWduZWQgcnVsZUluZGV4QnlTdHlsZShDU1NTdHlsZURl
Y2xhcmF0aW9uKikgY29uc3QgeyByZXR1cm4gMDsgfQpAQCAtMjU2LDcgKzI0Myw3IEBAIHByaXZh
dGU6CiAgICAgQ1NTU3R5bGVEZWNsYXJhdGlvbiogaW5saW5lU3R5bGUoKSBjb25zdDsKICAgICBi
b29sIGdldFN0eWxlQXR0cmlidXRlUmFuZ2VzKFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+KiBy
ZXN1bHQpOwogCi0gICAgRWxlbWVudCogbV9lbGVtZW50OworICAgIFJlZlB0cjxFbGVtZW50PiBt
X2VsZW1lbnQ7CiAgICAgUmVmUHRyPENTU1J1bGVTb3VyY2VEYXRhPiBtX3J1bGVTb3VyY2VEYXRh
OwogICAgIFJlZlB0cjxJbnNwZWN0b3JTdHlsZT4gbV9pbnNwZWN0b3JTdHlsZTsKIH07Cg==
</data>
<flag name="review"
          id="68542"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>