<?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>154444</bug_id>
          
          <creation_ts>2016-02-19 00:16:56 -0800</creation_ts>
          <short_desc>[ThreadedCompositor] Opening the inspector in a window causes a crash.</short_desc>
          <delta_ts>2016-06-14 02:56:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>158689</dependson>
          <blocked>154066</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="ChangSeok Oh">changseok</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>yoon</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1166363</commentid>
    <comment_count>0</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-19 00:16:56 -0800</bug_when>
    <thetext>1. Build webkitgtk+ with --threaded-compositor
2. Run the mini browser.
3. Run the inspector through ctrl+i or popup menu.
4. Click the button, &apos;open in a window&apos; next to the close button, &quot;X&quot;

#0  0x00007fffef74c803 in _g_log_abort (breakpoint=1)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmessages.c:315
#1  g_logv (log_domain=0x7fffec3e70ae &quot;Gdk&quot;, log_level=G_LOG_LEVEL_ERROR, format=&lt;optimized out&gt;, 
    args=args@entry=0x7fff8bffe4a8)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmessages.c:1041
#2  0x00007fffef74c962 in g_log (log_domain=log_domain@entry=0x7fffec3e70ae &quot;Gdk&quot;, 
    log_level=log_level@entry=G_LOG_LEVEL_ERROR, format=format@entry=0x7fffec403fe7 &quot;%s&quot;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmessages.c:1079
#3  0x00007fffec3bf77f in _gdk_x11_display_error_event (display=display@entry=0x47b000, 
    error=error@entry=0x7fff8bffe650)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/gtk+-3.16.4/gdk/x11/gdkdisplay-x11.c:2552
#4  0x00007fffec3ca329 in gdk_x_error (xdisplay=0x46b6c0, error=0x7fff8bffe650)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/gtk+-3.16.4/gdk/x11/gdkmain-x11.c:303
#5  0x00007fffee00539d in _XError () from /lib64/libX11.so.6
#6  0x00007fffee002227 in handle_error () from /lib64/libX11.so.6
#7  0x00007fffee0033a8 in _XReply () from /lib64/libX11.so.6
#8  0x00007fffedfe7c4e in XGetGeometry () from /lib64/libX11.so.6
#9  0x00007ffff6d37fec in WebCore::GLContextGLX::defaultFrameBufferSize() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#10 0x00007ffff5da6175 in WebKit::ThreadedCompositor::ensureGLContext() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#11 0x00007ffff5da6318 in WebKit::ThreadedCompositor::renderLayerTree() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#12 0x00007ffff5da9992 in WebKit::CompositingRunLoop::updateTimerFired() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#13 0x00007ffff44586fa in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&amp;)::{lambda(void*)#1}::_FUN(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#14 0x00007fffef74581a in g_main_dispatch (context=0x7fff80000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3122
#15 g_main_context_dispatch (context=context@entry=0x7fff80000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3737
#16 0x00007fffef745b98 in g_main_context_iterate (context=0x7fff80000900, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3808
#17 0x00007fffef745eb2 in g_main_loop_run (loop=0x7fff80001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#18 0x00007ffff4458aa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#19 0x00007ffff5da691b in WebKit::ThreadedCompositor::runCompositingThread() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#20 0x00007ffff442a395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#21 0x00007ffff445673a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#22 0x00007ffff302e60a in start_thread () from /lib64/libpthread.so.0
#23 0x00007fffead8ba4d in clone () from /lib64/libc.so.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166366</commentid>
    <comment_count>1</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-19 00:25:24 -0800</bug_when>
    <thetext>Similar bt to bug #149568. This could be related to the web view reparenting, the view is unrealized/realized causing the redirected window to be destroyed/created. My guess is that there&apos;s a race making the web process use the x window after being destroyed by the ui process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1166972</commentid>
    <comment_count>2</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-22 02:02:01 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Similar bt to bug #149568. This could be related to the web view
&gt; reparenting, the view is unrealized/realized causing the redirected window
&gt; to be destroyed/created. My guess is that there&apos;s a race making the web
&gt; process use the x window after being destroyed by the ui process.

Thanks for your comment, Carlos. You are right. The root cause is trying gl rendering after destroying the redirected window. I think it causes Bug 154071 as well. Any idea is welcome. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167746</commentid>
    <comment_count>3</comment_count>
      <attachid>272106</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-24 02:02:18 -0800</bug_when>
    <thetext>Created attachment 272106
Patch

The threaded compositor doesn&apos;t handle the case of destroying the native surface handle and keeps using the GL context for the destroyed native surface. I think this patch also fixes bug #154071, since now when the web view is destroyed and unrealize method destroys the surface the threaded compositor correctly handles this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167751</commentid>
    <comment_count>4</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-24 02:18:58 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created attachment 272106 [details]
&gt; Patch
&gt; 
&gt; The threaded compositor doesn&apos;t handle the case of destroying the native
&gt; surface handle and keeps using the GL context for the destroyed native
&gt; surface. I think this patch also fixes bug #154071, since now when the web
&gt; view is destroyed and unrealize method destroys the surface the threaded
&gt; compositor correctly handles this case.

Thanks for this patch! I am also working on this though, you are faster than me. =) At glance, your apporach looks pretty different from mine. I don&apos;t have time to look into the detail now. I believe yoon will review the patch. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167753</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-24 02:22:46 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Created attachment 272106 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; The threaded compositor doesn&apos;t handle the case of destroying the native
&gt; &gt; surface handle and keeps using the GL context for the destroyed native
&gt; &gt; surface. I think this patch also fixes bug #154071, since now when the web
&gt; &gt; view is destroyed and unrealize method destroys the surface the threaded
&gt; &gt; compositor correctly handles this case.
&gt; 
&gt; Thanks for this patch! I am also working on this though, you are faster than
&gt; me. =) At glance, your apporach looks pretty different from mine. I don&apos;t
&gt; have time to look into the detail now. I believe yoon will review the patch.
&gt; ;)

What approach were you following? It could be better than mine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168014</commentid>
    <comment_count>6</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-24 20:34:15 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; Created attachment 272106 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; The threaded compositor doesn&apos;t handle the case of destroying the native
&gt; &gt; &gt; surface handle and keeps using the GL context for the destroyed native
&gt; &gt; &gt; surface. I think this patch also fixes bug #154071, since now when the web
&gt; &gt; &gt; view is destroyed and unrealize method destroys the surface the threaded
&gt; &gt; &gt; compositor correctly handles this case.
&gt; &gt; 
&gt; &gt; Thanks for this patch! I am also working on this though, you are faster than
&gt; &gt; me. =) At glance, your apporach looks pretty different from mine. I don&apos;t
&gt; &gt; have time to look into the detail now. I believe yoon will review the patch.
&gt; &gt; ;)
&gt; 
&gt; What approach were you following? It could be better than mine.

My idea is to destroy only the compositing thread and recreate it without touching others like glContext and CoordinatedGraphicsScene, I have a rough patch doing that, but it will take some more time until being ready to share. Let me share it with you when it is ready.
BTW, I am still seeing a crash even after applying your patch. Try to repeatedly open/close the inspector repeatedly by ctrl + shift + i or open/close it in a new window over again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168452</commentid>
    <comment_count>7</comment_count>
      <attachid>272314</attachid>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-26 00:44:30 -0800</bug_when>
    <thetext>Created attachment 272314
Alternative apporach

KaL, I thought something like this. But I don&apos;t think this is the best. Anyway please have a look. I hope this to inspire you. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168456</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-26 00:55:39 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; Created attachment 272106 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; The threaded compositor doesn&apos;t handle the case of destroying the native
&gt; &gt; &gt; &gt; surface handle and keeps using the GL context for the destroyed native
&gt; &gt; &gt; &gt; surface. I think this patch also fixes bug #154071, since now when the web
&gt; &gt; &gt; &gt; view is destroyed and unrealize method destroys the surface the threaded
&gt; &gt; &gt; &gt; compositor correctly handles this case.
&gt; &gt; &gt; 
&gt; &gt; &gt; Thanks for this patch! I am also working on this though, you are faster than
&gt; &gt; &gt; me. =) At glance, your apporach looks pretty different from mine. I don&apos;t
&gt; &gt; &gt; have time to look into the detail now. I believe yoon will review the patch.
&gt; &gt; &gt; ;)
&gt; &gt; 
&gt; &gt; What approach were you following? It could be better than mine.
&gt; 
&gt; My idea is to destroy only the compositing thread and recreate it without
&gt; touching others like glContext and CoordinatedGraphicsScene, I have a rough
&gt; patch doing that, but it will take some more time until being ready to
&gt; share. Let me share it with you when it is ready.
&gt; BTW, I am still seeing a crash even after applying your patch. Try to
&gt; repeatedly open/close the inspector repeatedly by ctrl + shift + i or
&gt; open/close it in a new window over again.

I&apos;m unable to make it crash with my patch applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168459</commentid>
    <comment_count>9</comment_count>
      <attachid>272314</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-26 01:09:59 -0800</bug_when>
    <thetext>Comment on attachment 272314
Alternative apporach

So, this approach is similar indeed, but a bit more aggressive since it destroys the thread which cleans up not only the gl context but all gl resources. Since the thread termination is sync there&apos;s no risk of the ui process destroys the native handle while the main loop is still running in the compositor thread, so I think it&apos;s safe. The thing is whether we really need to destroy/create the thread and all its resources. Reparenting a web view is not that common in the end, so maybe it&apos;s a safer approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168462</commentid>
    <comment_count>10</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-26 01:37:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; (In reply to comment #3)
&gt; &gt; &gt; &gt; &gt; Created attachment 272106 [details]
&gt; &gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; &gt; The threaded compositor doesn&apos;t handle the case of destroying the native
&gt; &gt; &gt; &gt; &gt; surface handle and keeps using the GL context for the destroyed native
&gt; &gt; &gt; &gt; &gt; surface. I think this patch also fixes bug #154071, since now when the web
&gt; &gt; &gt; &gt; &gt; view is destroyed and unrealize method destroys the surface the threaded
&gt; &gt; &gt; &gt; &gt; compositor correctly handles this case.
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Thanks for this patch! I am also working on this though, you are faster than
&gt; &gt; &gt; &gt; me. =) At glance, your apporach looks pretty different from mine. I don&apos;t
&gt; &gt; &gt; &gt; have time to look into the detail now. I believe yoon will review the patch.
&gt; &gt; &gt; &gt; ;)
&gt; &gt; &gt; 
&gt; &gt; &gt; What approach were you following? It could be better than mine.
&gt; &gt; 
&gt; &gt; My idea is to destroy only the compositing thread and recreate it without
&gt; &gt; touching others like glContext and CoordinatedGraphicsScene, I have a rough
&gt; &gt; patch doing that, but it will take some more time until being ready to
&gt; &gt; share. Let me share it with you when it is ready.
&gt; &gt; BTW, I am still seeing a crash even after applying your patch. Try to
&gt; &gt; repeatedly open/close the inspector repeatedly by ctrl + shift + i or
&gt; &gt; open/close it in a new window over again.
&gt; 
&gt; I&apos;m unable to make it crash with my patch applied.

Hrm. I am not sure that the crash is related with your change, but it surely happens. I don&apos;t know the condition yet, but fortunately I got a backtrace.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7ff6b968b700 (LWP 28787)]
0x00007ff716eba471 in WebKit::CoordinatedBackingStoreTile::setBackBuffer(WebCore::IntRect const&amp;, WebCore::IntRect const&amp;, WTF::PassRefPtr&lt;WebCore::CoordinatedSurface&gt;, WebCore::IntPoint const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
(gdb) bt
#0  0x00007ff716eba471 in WebKit::CoordinatedBackingStoreTile::setBackBuffer(WebCore::IntRect const&amp;, WebCore::IntRect const&amp;, WTF::PassRefPtr&lt;WebCore::CoordinatedSurface&gt;, WebCore::IntPoint const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#1  0x00007ff716eba57b in WebKit::CoordinatedBackingStore::updateTile(unsigned int, WebCore::IntRect const&amp;, WebCore::IntRect const&amp;, WTF::PassRefPtr&lt;WebCore::CoordinatedSurface&gt;, WebCore::IntPoint const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#2  0x00007ff716ec05d4 in WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded(WebCore::TextureMapperLayer*, WebCore::CoordinatedGraphicsLayerState const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007ff716ec1b58 in WebKit::CoordinatedGraphicsScene::setLayerState(unsigned int, WebCore::CoordinatedGraphicsLayerState const&amp;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007ff716ec2575 in WebKit::CoordinatedGraphicsScene::commitSceneState(WebCore::CoordinatedGraphicsState const&amp;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007ff716ebe241 in WebKit::CoordinatedGraphicsScene::syncRemoteContent() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007ff716ebe710 in WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext(WebCore::TransformationMatrix const&amp;, float, WebCore::FloatRect const&amp;, WebCore::Color const&amp;, bool, WebCore::FloatPoint const&amp;, unsigned int) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#7  0x00007ff716ec56c3 in WebKit::ThreadedCompositor::renderLayerTree() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#8  0x00007ff716ec8f12 in WebKit::CompositingRunLoop::updateTimerFired() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#9  0x00007ff7155776fa in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&amp;)::{lambda(void*)#1}::_FUN(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#10 0x00007ff71086481a in g_main_dispatch (context=0x7ff6a8000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3122
#11 g_main_context_dispatch (context=context@entry=0x7ff6a8000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3737
#12 0x00007ff710864b98 in g_main_context_iterate (context=0x7ff6a8000900, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3808
#13 0x00007ff710864eb2 in g_main_loop_run (loop=0x7ff6a8001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#14 0x00007ff715577aa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#15 0x00007ff716ec5ea8 in WebKit::ThreadedCompositor::runCompositingThread() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#16 0x00007ff715549395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#17 0x00007ff71557573a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#18 0x00007ff71414d60a in start_thread () from /lib64/libpthread.so.0
#19 0x00007ff70bea6a4d in clone () from /lib64/libc.so.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168468</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-02-26 02:30:39 -0800</bug_when>
    <thetext>Do you have the bt of the other threads? or at least the main thread</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1168952</commentid>
    <comment_count>12</comment_count>
    <who name="ChangSeok Oh">changseok</who>
    <bug_when>2016-02-27 20:50:04 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Do you have the bt of the other threads? or at least the main thread

Here it goes.

Thread 12 (Thread 0x7f475affd700 (LWP 31877)):
#0  0x00007f47b8c2c27d in nanosleep () from /lib64/libpthread.so.0
#1  0x00007f47ba054ea0 in bmalloc::Heap::scavenge(std::unique_lock&lt;bmalloc::StaticMutex&gt;&amp;, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000l&gt; &gt;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#2  0x00007f47ba054f2f in bmalloc::Heap::concurrentScavenge() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f47ba055c2e in bmalloc::AsyncTask&lt;bmalloc::Heap, void (bmalloc::Heap::*)()&gt;::threadRunLoop() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f47b120cf30 in ?? () from /lib64/libstdc++.so.6
#5  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#6  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 11 (Thread 0x7f4760a90700 (LWP 31834)):
#0  0x00007f47b0970fdd in poll () from /lib64/libc.so.6
#1  0x00007f47b533ab34 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f475c0014a0, 
    timeout=&lt;optimized out&gt;, context=0x7f475c000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4103
#2  g_main_context_iterate (context=0x7f475c000900, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3803
#3  0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f475c001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#4  0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04df5b in std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#9  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 10 (Thread 0x7f475bfff700 (LWP 31835)):
#0  0x00007f47b0970fdd in poll () from /lib64/libc.so.6
#1  0x00007f47b533ab34 in g_main_context_poll (priority=2147483647, n_fds=1, fds=0x7f4754001480, 
    timeout=&lt;optimized out&gt;, context=0x7f4754000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4103
#2  g_main_context_iterate (context=0x7f4754000900, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3803
#3  0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f4754001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#4  0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04df5b in std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#9  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 9 (Thread 0x7f475b7fe700 (LWP 31836)):
#0  0x00007f47b0970fdd in poll () from /lib64/libc.so.6
#1  0x00007f47b533ab34 in g_main_context_poll (priority=2147483647, n_fds=2, fds=0x7f474c001480, 
    timeout=&lt;optimized out&gt;, context=0x7f474c000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4103
#2  g_main_context_iterate (context=0x7f474c000900, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3803
#3  0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f474c001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#4  0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04df5b in std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#9  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 8 (Thread 0x7f475a7fc700 (LWP 31839)):
#0  0x00007f47b0970fdd in poll () from /lib64/libc.so.6
#1  0x00007f47b533ab34 in g_main_context_poll (priority=2147483647, n_fds=2, fds=0x7f4750001480, 
    timeout=&lt;optimized out&gt;, context=0x7f4750000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4103
#2  g_main_context_iterate (context=0x7f4750000900, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3803
#3  0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f4750001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#4  0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04df5b in std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#9  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 7 (Thread 0x7f4759ffb700 (LWP 31840)):
#0  0x00007f47bb990471 in WebKit::CoordinatedBackingStoreTile::setBackBuffer(WebCore::IntRect const&amp;, WebCore::IntRect const&amp;, WTF::PassRefPtr&lt;WebCore::CoordinatedSurface&gt;, WebCore::IntPoint const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#1  0x00007f47bb99057b in WebKit::CoordinatedBackingStore::updateTile(unsigned int, WebCore::IntRect const&amp;, WebCore::IntRect const&amp;, WTF::PassRefPtr&lt;WebCore::CoordinatedSurface&gt;, WebCore::IntPoint const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#2  0x00007f47bb9965d4 in WebKit::CoordinatedGraphicsScene::updateTilesIfNeeded(WebCore::TextureMapperLayer*, WebCore::CoordinatedGraphicsLayerState const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007f47bb997b58 in WebKit::CoordinatedGraphicsScene::setLayerState(unsigned int, WebCore::CoordinatedGraphicsLayerState const&amp;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007f47bb998575 in WebKit::CoordinatedGraphicsScene::commitSceneState(WebCore::CoordinatedGraphicsState const&amp;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007f47bb994241 in WebKit::CoordinatedGraphicsScene::syncRemoteContent() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007f47bb994710 in WebKit::CoordinatedGraphicsScene::paintToCurrentGLContext(WebCore::TransformationMatrix const&amp;, float, WebCore::FloatRect const&amp;, WebCore::Color const&amp;, bool, WebCore::FloatPoint const&amp;, unsigned int) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#7  0x00007f47bb99b6c3 in WebKit::ThreadedCompositor::renderLayerTree() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#8  0x00007f47bb99ef12 in WebKit::CompositingRunLoop::updateTimerFired() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#9  0x00007f47ba04d6fa in WTF::RunLoop::TimerBase::TimerBase(WTF::RunLoop&amp;)::{lambda(void*)#1}::_FUN(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#10 0x00007f47b533a81a in g_main_dispatch (context=0x7f4744000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3122
#11 g_main_context_dispatch (context=context@entry=0x7f4744000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3737
#12 0x00007f47b533ab98 in g_main_context_iterate (context=0x7f4744000900, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3808
#13 0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f4744001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#14 0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#15 0x00007f47bb99bea8 in WebKit::ThreadedCompositor::runCompositingThread() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#16 0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#17 0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#18 0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#19 0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 6 (Thread 0x7f47597fa700 (LWP 31841)):
#0  0x00007f47b0970fdd in poll () from /lib64/libc.so.6
#1  0x00007f47b533ab34 in g_main_context_poll (priority=2147483647, n_fds=2, fds=0x7f4748001480, 
    timeout=&lt;optimized out&gt;, context=0x7f4748000900)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4103
#2  g_main_context_iterate (context=0x7f4748000900, block=block@entry=1, dispatch=dispatch@entry=1, 
    self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3803
#3  0x00007f47b533aeb2 in g_main_loop_run (loop=0x7f4748001240)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#4  0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04df5b in std::_Function_handler&lt;void (), WTF::WorkQueue::platformInitialize(char const*, WTF::WorkQueue::Type, WTF::WorkQueue::QOS)::{lambda()#1}&gt;::_M_invoke(std::_Any_data const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#8  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#9  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 5 (Thread 0x7f471d3ff700 (LWP 31853)):
#0  0x00007f47b8c28b10 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f47b1207aec in std::condition_variable::wait(std::unique_lock&lt;std::mutex&gt;&amp;) ()
   from /lib64/libstdc++.so.6
#2  0x00007f47ba01c8a9 in WTF::ParkingLot::parkConditionally(void const*, std::function&lt;bool ()&gt;, std::function&lt;void ()&gt;, std::chrono::time_point&lt;std::chrono::_V2::steady_clock, std::chrono::duration&lt;long, std::ratio&lt;1l, 100---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
0000000l&gt; &gt; &gt;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f47b9b17f34 in JSC::DFG::Worklist::runThread(JSC::DFG::ThreadData*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#7  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 4 (Thread 0x7f4706523700 (LWP 31854)):
#0  0x00007f47b8c28b10 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f47b1207aec in std::condition_variable::wait(std::unique_lock&lt;std::mutex&gt;&amp;) ()
   from /lib64/libstdc++.so.6
#2  0x00007f47ba01c8a9 in WTF::ParkingLot::parkConditionally(void const*, std::function&lt;bool ()&gt;, std::function&lt;void ()&gt;, std::chrono::time_point&lt;std::chrono::_V2::steady_clock, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f47ba01b772 in WTF::ParallelHelperPool::waitForClientWithTask(WTF::Locker&lt;WTF::LockBase&gt; const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f47ba01b837 in WTF::ParallelHelperPool::helperThreadBody() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#8  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 3 (Thread 0x7f4705d22700 (LWP 31855)):
#0  0x00007f47b8c28b10 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f47b1207aec in std::condition_variable::wait(std::unique_lock&lt;std::mutex&gt;&amp;) ()
   from /lib64/libstdc++.so.6
#2  0x00007f47ba01c8a9 in WTF::ParkingLot::parkConditionally(void const*, std::function&lt;bool ()&gt;, std::function&lt;void ()&gt;, std::chrono::time_point&lt;std::chrono::_V2::steady_clock, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f47ba01b772 in WTF::ParallelHelperPool::waitForClientWithTask(WTF::Locker&lt;WTF::LockBase&gt; const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f47ba01b837 in WTF::ParallelHelperPool::helperThreadBody() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#8  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 2 (Thread 0x7f4705521700 (LWP 31856)):
#0  0x00007f47b8c28b10 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f47b1207aec in std::condition_variable::wait(std::unique_lock&lt;std::mutex&gt;&amp;) ()
   from /lib64/libstdc++.so.6
#2  0x00007f47ba01c8a9 in WTF::ParkingLot::parkConditionally(void const*, std::function&lt;bool ()&gt;, std::function&lt;void ()&gt;, std::chrono::time_point&lt;std::chrono::_V2::steady_clock, std::chrono::duration&lt;long, std::ratio&lt;1l, 1000000000l&gt; &gt; &gt;) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#3  0x00007f47ba01b772 in WTF::ParallelHelperPool::waitForClientWithTask(WTF::Locker&lt;WTF::LockBase&gt; const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#4  0x00007f47ba01b837 in WTF::ParallelHelperPool::helperThreadBody() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#5  0x00007f47ba01f395 in WTF::threadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#6  0x00007f47ba04b73a in WTF::wtfThreadEntryPoint(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#7  0x00007f47b8c2360a in start_thread () from /lib64/libpthread.so.0
#8  0x00007f47b097ca4d in clone () from /lib64/libc.so.6

Thread 1 (Thread 0x7f47bdb18a80 (LWP 31825)):
#0  0x00007f47bbe2a2b1 in WebCore::Node::eventTargetData() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#1  0x00007f47bc25bdfb in WebCore::EventHandler::updateMouseEventTargetNode(WebCore::Node*, WebCore::PlatformMouseEvent const&amp;, bool) () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#2  0x00007f47bc25c616 in WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&amp;, WebCore::Node*, bo---Type &lt;return&gt; to continue, or q &lt;return&gt; to quit---
ol, int, WebCore::PlatformMouseEvent const&amp;, bool) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#3  0x00007f47bc25d37f in WebCore::EventHandler::handleMouseMoveEvent(WebCore::PlatformMouseEvent const&amp;, WebCore::HitTestResult*, bool) [clone .part.226] [clone .constprop.236] ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#4  0x00007f47bc25f9ca in WebCore::EventHandler::mouseMoved(WebCore::PlatformMouseEvent const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#5  0x00007f47bb8be3e5 in WebKit::WebPage::mouseEvent(WebKit::WebMouseEvent const&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#6  0x00007f47bb9e21d3 in WebKit::WebPage::didReceiveWebPageMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#7  0x00007f47bb6fa749 in IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#8  0x00007f47bb814026 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#9  0x00007f47bb6f6c56 in IPC::Connection::dispatchMessage(std::unique_ptr&lt;IPC::MessageDecoder, std::default_delete&lt;IPC::MessageDecoder&gt; &gt;) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#10 0x00007f47bb6f7623 in IPC::Connection::dispatchOneMessage() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#11 0x00007f47ba01e2cf in WTF::RunLoop::performWork() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#12 0x00007f47ba04d279 in WTF::RunLoop::RunLoop()::{lambda(void*)#1}::_FUN(void*) ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#13 0x00007f47b533a81a in g_main_dispatch (context=0x829aa0)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3122
#14 g_main_context_dispatch (context=context@entry=0x829aa0)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3737
#15 0x00007f47b533ab98 in g_main_context_iterate (context=0x829aa0, block=block@entry=1, 
    dispatch=dispatch@entry=1, self=&lt;optimized out&gt;)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:3808
#16 0x00007f47b533aeb2 in g_main_loop_run (loop=0xe872c0)
    at /home/changseok/Projects/WebKit/WebKitBuild/DependenciesGTK/Source/glib-2.44.1/glib/gmain.c:4002
#17 0x00007f47ba04daa0 in WTF::RunLoop::run() ()
   from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libjavascriptcoregtk-4.0.so.18
#18 0x00007f47bb98f842 in int WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt;(int, char**)
    () from /home/changseok/Projects/WebKit/WebKitBuild/Release/lib/libwebkit2gtk-4.0.so.37
#19 0x00007f47b089a580 in __libc_start_main () from /lib64/libc.so.6
#20 0x0000000000400b49 in _start ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1201824</commentid>
    <comment_count>13</comment_count>
      <attachid>281169</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-13 05:51:10 -0700</bug_when>
    <thetext>Created attachment 281169
Updated patch

Patch updated on top of patches attached to bugs #154070 and #158615. It also depends on bug #158689 to ensure the detached inspector is correctly shown. I still think we shouldn&apos;t need to destroy and create the compositing thread if possible. I have been doing a lot of tests while writing these patches and I haven&apos;t been able to make it crash. And as with the previous patch this also fixes bug #154071.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202126</commentid>
    <comment_count>14</comment_count>
      <attachid>281169</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-06-14 00:51:35 -0700</bug_when>
    <thetext>Comment on attachment 281169
Updated patch

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

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:66
&gt; +        m_scene-&gt;setActive(handle);

!!handle converts better (i.e. cleaner) to a boolean value.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; +        ensureGLContext();
&gt; +        updateViewport();

It&apos;s not clear from the change log -- are these calls required in case of handle being null?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:202
&gt; +    scheduleLayerFlush();

Why cancel and then re-schedule the layer flush? Just re-scheduling should be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202127</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 00:58:05 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Comment on attachment 281169 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281169&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:66
&gt; &gt; +        m_scene-&gt;setActive(handle);
&gt; 
&gt; !!handle converts better (i.e. cleaner) to a boolean value.

Ok.

&gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; &gt; +        ensureGLContext();
&gt; &gt; +        updateViewport();
&gt; 
&gt; It&apos;s not clear from the change log -- are these calls required in case of
&gt; handle being null?

Ok, I&apos;ll update the ChangeLog. When the handler is null, ensureGLContext actually destroys the current cotext, to ensure any pending or further operation on the compositing run loop returns early in !glContext(). The updateViewport is to ensure we re-schedule a display on next frame for the new handle, since we have cancelled any previous one. It&apos;s probably not needed in the case of null handle.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:202
&gt; &gt; +    scheduleLayerFlush();
&gt; 
&gt; Why cancel and then re-schedule the layer flush? Just re-scheduling should
&gt; be enough.

Since setting the new handler on the compositor is sync now, I want to make sure we cancel any scheduled layer flush before actually changing the handler, and then scheduling a new one once we have the new handler. That&apos;s exactly what we do in LayerTreeHostGtk too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202133</commentid>
    <comment_count>16</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-06-14 01:18:35 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; &gt; &gt; +        ensureGLContext();
&gt; &gt; &gt; +        updateViewport();
&gt; &gt; 
&gt; &gt; It&apos;s not clear from the change log -- are these calls required in case of
&gt; &gt; handle being null?
&gt; 
&gt; Ok, I&apos;ll update the ChangeLog. When the handler is null, ensureGLContext
&gt; actually destroys the current cotext, to ensure any pending or further
&gt; operation on the compositing run loop returns early in !glContext(). The
&gt; updateViewport is to ensure we re-schedule a display on next frame for the
&gt; new handle, since we have cancelled any previous one. It&apos;s probably not
&gt; needed in the case of null handle.
&gt; 

In case the handle is null you don&apos;t need to call the modified ensureGLContext(), it should be enough to just destroy the current GLContext on the spot. And the update should only be issued in case of a non-null handle -- if it&apos;s null, renderLayerTree() will bail out early anyway because of an inactive scene.

&gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:202
&gt; &gt; &gt; +    scheduleLayerFlush();
&gt; &gt; 
&gt; &gt; Why cancel and then re-schedule the layer flush? Just re-scheduling should
&gt; &gt; be enough.
&gt; 
&gt; Since setting the new handler on the compositor is sync now, I want to make
&gt; sure we cancel any scheduled layer flush before actually changing the
&gt; handler, and then scheduling a new one once we have the new handler. That&apos;s
&gt; exactly what we do in LayerTreeHostGtk too.

This method is called on the main thread, just like the layer flushes. You shouldn&apos;t have to worry about spurious layer flushes occurring while executing this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202134</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 01:25:11 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; &gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; &gt; &gt; &gt; +        ensureGLContext();
&gt; &gt; &gt; &gt; +        updateViewport();
&gt; &gt; &gt; 
&gt; &gt; &gt; It&apos;s not clear from the change log -- are these calls required in case of
&gt; &gt; &gt; handle being null?
&gt; &gt; 
&gt; &gt; Ok, I&apos;ll update the ChangeLog. When the handler is null, ensureGLContext
&gt; &gt; actually destroys the current cotext, to ensure any pending or further
&gt; &gt; operation on the compositing run loop returns early in !glContext(). The
&gt; &gt; updateViewport is to ensure we re-schedule a display on next frame for the
&gt; &gt; new handle, since we have cancelled any previous one. It&apos;s probably not
&gt; &gt; needed in the case of null handle.
&gt; &gt; 
&gt; 
&gt; In case the handle is null you don&apos;t need to call the modified
&gt; ensureGLContext(), it should be enough to just destroy the current GLContext
&gt; on the spot. And the update should only be issued in case of a non-null
&gt; handle -- if it&apos;s null, renderLayerTree() will bail out early anyway because
&gt; of an inactive scene.

The update is not actually needed in any case, I&apos;ve just removed it. When the handle is null, ensureGLContext() simply destroys the current context. I&apos;ve renamed it to tryEnsureGLContext() to make it clear that it can fail, and I&apos;ve added a comment there explaining what happens. Also added an assert to ensure that we always destroy the current native handle before setting a new one.

&gt; &gt; &gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/ThreadedCoordinatedLayerTreeHost.cpp:202
&gt; &gt; &gt; &gt; +    scheduleLayerFlush();
&gt; &gt; &gt; 
&gt; &gt; &gt; Why cancel and then re-schedule the layer flush? Just re-scheduling should
&gt; &gt; &gt; be enough.
&gt; &gt; 
&gt; &gt; Since setting the new handler on the compositor is sync now, I want to make
&gt; &gt; sure we cancel any scheduled layer flush before actually changing the
&gt; &gt; handler, and then scheduling a new one once we have the new handler. That&apos;s
&gt; &gt; exactly what we do in LayerTreeHostGtk too.
&gt; 
&gt; This method is called on the main thread, just like the layer flushes. You
&gt; shouldn&apos;t have to worry about spurious layer flushes occurring while
&gt; executing this method.

hmm, you are right, this is all in the main thread, so it&apos;s not possible that a layer flush happens until the new handle is updated, so if there&apos;s on scheduled, we don&apos;t need to do anything, it will happen after setting the new handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202136</commentid>
    <comment_count>18</comment_count>
      <attachid>281244</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 01:30:15 -0700</bug_when>
    <thetext>Created attachment 281244
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202140</commentid>
    <comment_count>19</comment_count>
      <attachid>281244</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-06-14 01:47:04 -0700</bug_when>
    <thetext>Comment on attachment 281244
Updated patch

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

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; +        ASSERT((handle &amp;&amp; !m_nativeSurfaceHandle) || (m_nativeSurfaceHandle &amp;&amp; !handle));

That&apos;s a good assert. Could be simplified into an exclusive-or.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:76
&gt; +        // In case m_nativeSurfaceHandle is 0 now, tryEnsureGLContext will destroy the current context and will
&gt; +        // fail to ensure a new one, so that any previous operation pending and new ones will be discarded.
&gt; +        // In case m_nativeSurfaceHandle is a valid handle, tryEnsureGLContext will create a new context for the
&gt; +        // new handle.
&gt; +        tryEnsureGLContext();

You&apos;re not &apos;ensuring&apos; anything if the handle is null, and you are creating the context prematurely (and blocking the main thread) if the handle is not null.

I propose just nulling out m_context here if the handle is null, avoiding any changes to ThreadedCompositor::ensureGLContext().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202142</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 02:23:55 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Comment on attachment 281244 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=281244&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:69
&gt; &gt; +        ASSERT((handle &amp;&amp; !m_nativeSurfaceHandle) || (m_nativeSurfaceHandle &amp;&amp; !handle));
&gt; 
&gt; That&apos;s a good assert. Could be simplified into an exclusive-or.

OK.

&gt; &gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:76
&gt; &gt; +        // In case m_nativeSurfaceHandle is 0 now, tryEnsureGLContext will destroy the current context and will
&gt; &gt; +        // fail to ensure a new one, so that any previous operation pending and new ones will be discarded.
&gt; &gt; +        // In case m_nativeSurfaceHandle is a valid handle, tryEnsureGLContext will create a new context for the
&gt; &gt; +        // new handle.
&gt; &gt; +        tryEnsureGLContext();
&gt; 
&gt; You&apos;re not &apos;ensuring&apos; anything if the handle is null, and you are creating
&gt; the context prematurely (and blocking the main thread) if the handle is not
&gt; null.
&gt; 
&gt; I propose just nulling out m_context here if the handle is null, avoiding
&gt; any changes to ThreadedCompositor::ensureGLContext().

hmm, yes, much simpler, thanks! I&apos;ll keep the rename though, since ensureGLContext still doesn&apos;t ensure that a context is created and can fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202145</commentid>
    <comment_count>21</comment_count>
      <attachid>281250</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 02:37:29 -0700</bug_when>
    <thetext>Created attachment 281250
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202147</commentid>
    <comment_count>22</comment_count>
      <attachid>281250</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2016-06-14 02:52:05 -0700</bug_when>
    <thetext>Comment on attachment 281250
Updated patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1202149</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-06-14 02:56:43 -0700</bug_when>
    <thetext>Committed r202040: &lt;http://trac.webkit.org/changeset/202040&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272106</attachid>
            <date>2016-02-24 02:02:18 -0800</date>
            <delta_ts>2016-06-13 05:51:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-threaded-compositor-reparent-web-view.diff</filename>
            <type>text/plain</type>
            <size>6919</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmNzNkMWY1Li5lMjAxMDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTYtMDItMjQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3JdIE9wZW5pbmcgdGhlIGluc3BlY3RvciBp
biBhIHdpbmRvdyBjYXVzZXMgYSBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGRvZXNuJ3QgaGFuZGxl
IHRoZSBjYXNlIG9mIGNoYW5naW5nICBvcgorICAgICAgICByZW1vdmluZyB0aGUgbmF0aXZlIHN1
cmZhY2UgaGFuZGxlLiBXaGVuIHRoZSB3ZWIgdmlldyBpcworICAgICAgICByZXBhcmVudGVkLCB0
aGUgY3VycmVudCBuYXRpdmUgc3VyZmFjZSBoYW5kbGUgaXMgZGVzdHJveWVkIHdoZW4KKyAgICAg
ICAgdGhlIHZpZXcgaXMgcmVtb3ZlZCBmcm9tIHRoZSBwYXJlbnQsIGFuZCBhIG5ldyBvbmUgaXMg
Y3JlYXRlZCB3aGVuCisgICAgICAgIGFkZGVkIHRvIHRoZSBuZXcgcGFyZW50LiBXZSBuZWVkIHRv
IGhhbmRsZSB0aGlzIGNhc2UgaW4gdGhlCisgICAgICAgIHRocmVhZGVkIGNvbXBvc2l0b3IuCisK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdSdW5M
b29wOjpjYWxsT25Db21wb3NpdGluZ1J1bkxvb3BTeW5jKTogU3luYworICAgICAgICB2ZXJzaW9u
IG9mIGNhbGxPbkNvbXBvc2l0aW5nUnVuTG9vcCgpIHRoYXQgd2FpdHMgdW50aWwgdGhlCisgICAg
ICAgIGZ1bmN0aW9uIGlzIGRpc3BhdGNoZWQuCisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29t
cG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAg
VXNlIGNhbGxPbkNvbXBvc2l0aW5nUnVuTG9vcFN5bmMsIGJlY2F1c2UgdGhpcyBpcyBjYWxsZWQg
ZnJvbSBhCisgICAgICAgIHN5bmNocm9ub3VzIElQQyBtZXNzYWdlLCBhbmQgcmlnaHQgYWZ0ZXIg
aXQgcmV0dXJucyB0aGUgY3VycmVudAorICAgICAgICBuYXRpdmUgc3VyZmFjZSBpcyBkZXN0cm95
ZWQgYnkgdGhlIFVJIHByb2Nlc3MuIFNvIHdlIG5lZWQgdG8KKyAgICAgICAgZW5zdXJlIHdlIGZp
bmlzaCBhbGwgcGVuZGluZyBvcGVyYXRpb25zIGZvciB0aGUgY3VycmVudCBuYXRpdmUKKyAgICAg
ICAgc3VyZmFjZSBpbiB0aGUgY29tcG9zaXRpbmcgdGhyZWFkIGJlZm9yZSBpdCdzIGRlc3Ryb3ll
ZC4KKyAgICAgICAgRW5hYmxlIG9yIGRpc2FibGUgdGhlIHNjZW5lIGRlcGVuZGluZyBvbiB3aGV0
aGVyIHRoZSBuYXRpdmUgc3VyZmFjZQorICAgICAgICBoYXMgYmVlbiBjcmVhdGVkIG9yIGRlc3Ry
b3llZCBhbmQgY2FsbCBlbnN1cmVHTENvbnRleHQgYWZ0ZXIKKyAgICAgICAgY2hhbmdpbmcgdGhl
IG5hdGl2ZSBzdXJmYWNlIGhhbmRsZSwgdG8gdXBkYXRlIHRoZSBjb250ZXh0LgorICAgICAgICAo
V2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmdsQ29udGV4dCk6IERlc3Ryb3kgdGhlIGN1cnJl
bnQKKyAgICAgICAgY29udGV4dCBpZiB3ZSBkb24ndCBoYXZlIGEgbmF0aXZlIHN1cmZhY2UgaGFu
ZGxlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmNhbGxPbkNvbXBvc2l0
aW5nVGhyZWFkU3luYyk6IENhbGwKKyAgICAgICAgQ29tcG9zaXRpbmdSdW5Mb29wOjpjYWxsT25D
b21wb3NpdGluZ1J1bkxvb3BTeW5jKCkuCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRl
ZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6Cisg
ICAgICAgIENhbmNlbCBhbnkgcGVuZGluZyBsYXllciBmbHVzaCB3aGVuIHRoZSBuYXRpdmUgc3Vy
ZmFjZSBoYW5kbGUgY2hhbmdlcy4KKwogMjAxNi0wMi0yMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVGVhcmluZyB3aGVuIGVudGVy
aW5nIEFDIG1vZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggZmVjNWY2OS4uZGEyNDdhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5jcHAKQEAgLTcwLDYgKzcwLDIyIEBAIHB1YmxpYzoKICAgICAgICAgbV9ydW5Mb29wLmRpc3Bh
dGNoKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CiAKKyAgICB2b2lkIGNhbGxPbkNvbXBvc2l0
aW5nUnVuTG9vcFN5bmMoc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGZ1bmN0aW9uKQorICAgIHsKKyAg
ICAgICAgaWYgKCZtX3J1bkxvb3AgPT0gJlJ1bkxvb3A6OmN1cnJlbnQoKSkgeworICAgICAgICAg
ICAgZnVuY3Rpb24oKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IExvY2tIb2xkZXIgbG9ja2VyKG1fZGlzcGF0Y2hTeW5jQ29udGlvbk11dGV4KTsKKyAgICAgICAg
bV9ydW5Mb29wLmRpc3BhdGNoKFt0aGlzLCBmdW5jdGlvbl0geworICAgICAgICAgICAgTG9ja0hv
bGRlciBsb2NrZXIobV9kaXNwYXRjaFN5bmNDb250aW9uTXV0ZXgpOworICAgICAgICAgICAgZnVu
Y3Rpb24oKTsKKyAgICAgICAgICAgIG1fZGlzcGF0Y2hTeW5jQ29udGlvbi5ub3RpZnlPbmUoKTsK
KyAgICAgICAgfSk7CisgICAgICAgIG1fZGlzcGF0Y2hTeW5jQ29udGlvbi53YWl0KG1fZGlzcGF0
Y2hTeW5jQ29udGlvbk11dGV4KTsKKyAgICB9CisKICAgICB2b2lkIHNldFVwZGF0ZVRpbWVyKFVw
ZGF0ZVRpbWluZyB0aW1pbmcgPSBJbW1lZGlhdGUpCiAgICAgewogICAgICAgICBpZiAobV91cGRh
dGVUaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTA3LDYgKzEyMyw4IEBAIHByaXZhdGU6CiAgICAgc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+IG1fdXBkYXRlRnVuY3Rpb247CiAKICAgICBkb3VibGUgbV9sYXN0
VXBkYXRlVGltZTsKKyAgICBMb2NrIG1fZGlzcGF0Y2hTeW5jQ29udGlvbk11dGV4OworICAgIENv
bmRpdGlvbiBtX2Rpc3BhdGNoU3luY0NvbnRpb247CiB9OwogCiBSZWY8VGhyZWFkZWRDb21wb3Np
dG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQqIGNsaWVudCkKQEAgLTEzOCw5
ICsxNTYsMTAgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5lZWRzRGlzcGxheSgpCiB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0
aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKICAgICBSZWZQdHI8VGhyZWFkZWRDb21wb3NpdG9yPiBw
cm90ZWN0b3IodGhpcyk7Ci0gICAgY2FsbE9uQ29tcG9zaXRpbmdUaHJlYWQoWz1dIHsKKyAgICBj
YWxsT25Db21wb3NpdGluZ1RocmVhZFN5bmMoWz1dIHsKKyAgICAgICAgcHJvdGVjdG9yLT5tX3Nj
ZW5lLT5zZXRBY3RpdmUoaGFuZGxlKTsKICAgICAgICAgcHJvdGVjdG9yLT5tX25hdGl2ZVN1cmZh
Y2VIYW5kbGUgPSBoYW5kbGU7Ci0gICAgICAgIHByb3RlY3Rvci0+bV9zY2VuZS0+c2V0QWN0aXZl
KHRydWUpOworICAgICAgICBwcm90ZWN0b3ItPmVuc3VyZUdMQ29udGV4dCgpOwogICAgIH0pOwog
fQogCkBAIC0yMzMsMTMgKzI1MiwxMyBAQCBib29sIFRocmVhZGVkQ29tcG9zaXRvcjo6ZW5zdXJl
R0xDb250ZXh0KCkKIAogR0xDb250ZXh0KiBUaHJlYWRlZENvbXBvc2l0b3I6OmdsQ29udGV4dCgp
CiB7Ci0gICAgaWYgKG1fY29udGV4dCkKLSAgICAgICAgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsK
LQotICAgIGlmICghbV9uYXRpdmVTdXJmYWNlSGFuZGxlKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICBpZiAoIW1fbmF0aXZlU3VyZmFjZUhhbmRsZSkgeworICAgICAgICBtX2NvbnRleHQgPSBudWxs
cHRyOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CiAKLSAgICBtX2NvbnRleHQgPSBH
TENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2
ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksIEdMQ29udGV4dDo6c2hhcmluZ0Nv
bnRleHQoKSk7CisgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgIG1fY29udGV4dCA9IEdMQ29u
dGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2lu
ZG93VHlwZT4obV9uYXRpdmVTdXJmYWNlSGFuZGxlKSwgR0xDb250ZXh0OjpzaGFyaW5nQ29udGV4
dCgpKTsKICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwogfQogCkBAIC0yOTQsNiArMzEzLDEx
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjYWxsT25Db21wb3NpdGluZ1RocmVhZChzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPmNh
bGxPbkNvbXBvc2l0aW5nUnVuTG9vcChXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKK3ZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpjYWxsT25Db21wb3NpdGluZ1RocmVhZFN5bmMoc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGZ1bmN0aW9uKQoreworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5jYWxsT25D
b21wb3NpdGluZ1J1bkxvb3BTeW5jKFdURk1vdmUoZnVuY3Rpb24pKTsKK30KKwogdm9pZCBUaHJl
YWRlZENvbXBvc2l0b3I6OmNvbXBvc2l0aW5nVGhyZWFkRW50cnkodm9pZCogY29vcmRpbmF0ZWRD
b21wb3NpdG9yKQogewogICAgIHN0YXRpY19jYXN0PFRocmVhZGVkQ29tcG9zaXRvcio+KGNvb3Jk
aW5hdGVkQ29tcG9zaXRvciktPnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXgg
NGE3ODlmZC4uYTExODcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApAQCAtOTUsNiArOTUsNyBAQCBwcml2YXRlOgog
ICAgIFNpbXBsZVZpZXdwb3J0Q29udHJvbGxlciogdmlld3BvcnRDb250cm9sbGVyKCkgeyByZXR1
cm4gbV92aWV3cG9ydENvbnRyb2xsZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQgY2FsbE9uQ29tcG9z
aXRpbmdUaHJlYWQoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKKyAgICB2b2lkIGNhbGxPbkNvbXBv
c2l0aW5nVGhyZWFkU3luYyhzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogICAgIHZvaWQgY3JlYXRl
Q29tcG9zaXRpbmdUaHJlYWQoKTsKICAgICB2b2lkIHJ1bkNvbXBvc2l0aW5nVGhyZWFkKCk7CiAg
ICAgdm9pZCB0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhv
c3QuY3BwCmluZGV4IDI3NDEwNTkuLjRmODRlZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5j
cHAKQEAgLTIwOCw2ICsyMDgsNyBAQCB2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0OjpzZXRWaWV3T3ZlcmxheVJvb3RMYXllcihHcmFwaGljc0xheWVyKiB2aQogI2lmIFBMQVRG
T1JNKEdUSykKIHZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2
ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CisgICAgY2Fu
Y2VsUGVuZGluZ0xheWVyRmx1c2goKTsKICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElE
ID0gaGFuZGxlOwogICAgIG1fY29tcG9zaXRvci0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNv
bXBvc2l0aW5nKGhhbmRsZSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>272314</attachid>
            <date>2016-02-26 00:44:30 -0800</date>
            <delta_ts>2016-02-26 00:44:30 -0800</delta_ts>
            <desc>Alternative apporach</desc>
            <filename>WIP.patch</filename>
            <type>text/plain</type>
            <size>9318</size>
            <attacher name="ChangSeok Oh">changseok</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCmluZGV4IDFiNzhmZDgu
LmYxMDM0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcApA
QCAtNDUsMTAgKzQ1LDEwIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpkaXNwYXRj
aE9uTWFpblRocmVhZChzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3RpCiAKIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc1NjZW5lOjpkaXNwYXRjaE9uQ2xpZW50UnVuTG9vcChzdGQ6OmZ1bmN0aW9u
PHZvaWQoKT4gZnVuY3Rpb24pCiB7Ci0gICAgaWYgKCZtX2NsaWVudFJ1bkxvb3AgPT0gJlJ1bkxv
b3A6OmN1cnJlbnQoKSkKKyAgICBpZiAobV9jbGllbnRSdW5Mb29wID09ICZSdW5Mb29wOjpjdXJy
ZW50KCkpCiAgICAgICAgIGZ1bmN0aW9uKCk7CiAgICAgZWxzZQotICAgICAgICBtX2NsaWVudFJ1
bkxvb3AuZGlzcGF0Y2goV1RGTW92ZShmdW5jdGlvbikpOworICAgICAgICBtX2NsaWVudFJ1bkxv
b3AtPmRpc3BhdGNoKFdURk1vdmUoZnVuY3Rpb24pKTsKIH0KIAogc3RhdGljIGJvb2wgbGF5ZXJT
aG91bGRIYXZlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIpCkBAIC02MSw3
ICs2MSw3IEBAIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6Q29vcmRpbmF0ZWRHcmFwaGljc1Nj
ZW5lKENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVuCiAgICAgLCBtX2lzQWN0aXZlKGZhbHNl
KQogICAgICwgbV9yb290TGF5ZXJJRChJbnZhbGlkQ29vcmRpbmF0ZWRMYXllcklEKQogICAgICwg
bV92aWV3QmFja2dyb3VuZENvbG9yKENvbG9yOjp3aGl0ZSkKLSAgICAsIG1fY2xpZW50UnVuTG9v
cChSdW5Mb29wOjpjdXJyZW50KCkpCisgICAgLCBtX2NsaWVudFJ1bkxvb3AoJlJ1bkxvb3A6OmN1
cnJlbnQoKSkKIHsKIH0KIApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lOjpwYWludFRvR3JhcGhpY3NDb250ZXh0KFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0
KiBwCiAKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjp1cGRhdGVWaWV3cG9ydCgpCiB7
Ci0gICAgQVNTRVJUKCZtX2NsaWVudFJ1bkxvb3AgPT0gJlJ1bkxvb3A6OmN1cnJlbnQoKSk7Cisg
ICAgQVNTRVJUKG1fY2xpZW50UnVuTG9vcCA9PSAmUnVuTG9vcDo6Y3VycmVudCgpKTsKICAgICBp
ZiAobV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT51cGRhdGVWaWV3cG9ydCgpOwogfQpAQCAt
NjQ3LDYgKzY0Nyw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjpzeW5jUmVtb3Rl
Q29udGVudCgpCiAgICAgYm9vbCBjYWxsZWRPbk1haW5UaHJlYWQgPSBXVEY6OmlzTWFpblRocmVh
ZCgpOwogICAgIGlmICghY2FsbGVkT25NYWluVGhyZWFkKQogICAgICAgICBtX3JlbmRlclF1ZXVl
TXV0ZXgubG9jaygpOworCiAgICAgcmVuZGVyUXVldWUgPSBXVEZNb3ZlKG1fcmVuZGVyUXVldWUp
OwogICAgIGlmICghY2FsbGVkT25NYWluVGhyZWFkKQogICAgICAgICBtX3JlbmRlclF1ZXVlTXV0
ZXgudW5sb2NrKCk7CkBAIC03MTAsNiArNzExLDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGlj
c1NjZW5lOjpzZXRMYXllckFuaW1hdGlvbnNJZk5lZWRlZChUZXh0dXJlTWFwcGVyTGF5ZXIqIGxh
CiAgICAgbGF5ZXItPnNldEFuaW1hdGlvbnMoc3RhdGUuYW5pbWF0aW9ucyk7CiB9CiAKK3ZvaWQg
Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOjphdHRhY2goQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
Q2xpZW50KiBjbGllbnQsIFJ1bkxvb3AqIHJ1bkxvb3ApCit7CisgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKKyAgICBtX2NsaWVudCA9IGNsaWVudDsKKyAgICBtX2NsaWVudFJ1bkxvb3AgPSBy
dW5Mb29wOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTo6ZGV0YWNoKCkKIHsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzU2NlbmUuaAppbmRleCA2OGFhYmZlLi5lNWFhMzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuaApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+Q29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lKCk7CiAgICAgdm9pZCBwYWludFRvQ3VycmVudEdM
Q29udGV4dChjb25zdCBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeCYsIGZsb2F0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgYmFja2dyb3VuZENv
bG9yLCBib29sIGRyYXdzQmFja2dyb3VuZCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIFdl
YkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKICAgICB2b2lkIHBhaW50VG9H
cmFwaGljc0NvbnRleHQoUGxhdGZvcm1HcmFwaGljc0NvbnRleHQqLCBjb25zdCBXZWJDb3JlOjpD
b2xvciYgYmFja2dyb3VuZENvbG9yLCBib29sIGRyYXdzQmFja2dyb3VuZCk7CisgICAgdm9pZCBh
dHRhY2goQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50KiwgUnVuTG9vcCopOwogICAgIHZv
aWQgZGV0YWNoKCk7CiAgICAgdm9pZCBhcHBlbmRVcGRhdGUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+
KTsKIApAQCAtMjAxLDcgKzIwMiw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpUZXh0dXJl
TWFwcGVyRlBTQ291bnRlciBtX2Zwc0NvdW50ZXI7CiAKLSAgICBSdW5Mb29wJiBtX2NsaWVudFJ1
bkxvb3A7CisgICAgUnVuTG9vcCogbV9jbGllbnRSdW5Mb29wOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwCmluZGV4IGZlYzVmNjkuLjI3NGIxMDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3Iu
Y3BwCkBAIC0xMTcsNiArMTE3LDggQEAgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRD
b21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50KiBjbGllbnQpCiBUaHJlYWRlZENvbXBvc2l0b3I6OlRo
cmVhZGVkQ29tcG9zaXRvcihDbGllbnQqIGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkK
ICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0b3IoMSkKKyAgICAsIG1fbmF0aXZlU3VyZmFjZUhhbmRs
ZSgwKQorICAgICwgbV93aWxsUmVzdGFydENvbXBvc2l0aW5nVGhyZWFkKGZhbHNlKQogICAgICwg
bV90aHJlYWRJZGVudGlmaWVyKDApCiB7CiAgICAgY3JlYXRlQ29tcG9zaXRpbmdUaHJlYWQoKTsK
QEAgLTEzNyw2ICsxMzksMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5lZWRzRGlz
cGxheSgpCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworICAgIGlmICghaGFuZGxlKSB7Cisg
ICAgICAgIHRlcm1pbmF0ZUNvbXBvc2l0aW5nVGhyZWFkKHRydWUpOworICAgICAgICBtX25hdGl2
ZVN1cmZhY2VIYW5kbGUgPSBoYW5kbGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAobV93aWxsUmVzdGFydENvbXBvc2l0aW5nVGhyZWFkKSB7CisgICAgICAgIGNyZWF0ZUNvbXBv
c2l0aW5nVGhyZWFkKCk7CisgICAgICAgIG1fd2lsbFJlc3RhcnRDb21wb3NpdGluZ1RocmVhZCA9
IGZhbHNlOworICAgICAgICBtX3NjZW5lLT5hdHRhY2godGhpcywgJm1fY29tcG9zaXRpbmdSdW5M
b29wLT5ydW5Mb29wKCkpOworICAgIH0KKwogICAgIFJlZlB0cjxUaHJlYWRlZENvbXBvc2l0b3I+
IHByb3RlY3Rvcih0aGlzKTsKICAgICBjYWxsT25Db21wb3NpdGluZ1RocmVhZChbPV0gewogICAg
ICAgICBwcm90ZWN0b3ItPm1fbmF0aXZlU3VyZmFjZUhhbmRsZSA9IGhhbmRsZTsKQEAgLTI3Nyw2
ICsyOTEsOSBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkKICAg
ICBtX3NjZW5lLT5wYWludFRvQ3VycmVudEdMQ29udGV4dCh2aWV3cG9ydFRyYW5zZm9ybSwgMSwg
Y2xpcFJlY3QsIENvbG9yOjp3aGl0ZSwgZmFsc2UsIHNjcm9sbFBvc3Rpb24pOwogCiAgICAgZ2xD
b250ZXh0KCktPnN3YXBCdWZmZXJzKCk7CisKKyAgICBpZiAobV92aWV3cG9ydFNpemUgPT0gRmxv
YXRTaXplKDEsIDEpKQorICAgICAgICB1cGRhdGVWaWV3cG9ydCgpOwogfQogCiB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6dXBkYXRlU2NlbmVTdGF0ZShjb25zdCBDb29yZGluYXRlZEdyYXBoaWNz
U3RhdGUmIHN0YXRlKQpAQCAtMjkxLDYgKzMwOCw5IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
Ojp1cGRhdGVTY2VuZVN0YXRlKGNvbnN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZSYgc3RhdGUp
CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjYWxsT25Db21wb3NpdGluZ1RocmVhZChzdGQ6
OmZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb24pCiB7CisgICAgaWYgKG1fd2lsbFJlc3RhcnRDb21w
b3NpdGluZ1RocmVhZCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbV9jb21wb3NpdGluZ1J1bkxv
b3AtPmNhbGxPbkNvbXBvc2l0aW5nUnVuTG9vcChXVEZNb3ZlKGZ1bmN0aW9uKSk7CiB9CiAKQEAg
LTMwMSwxMiArMzIxLDExIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjb21wb3NpdGluZ1Ro
cmVhZEVudHJ5KHZvaWQqIGNvb3JkaW5hdGVkQ29tcG9zaXRvcikKIAogdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZUNvbXBvc2l0aW5nVGhyZWFkKCkKIHsKLSAgICBpZiAobV90aHJlYWRJ
ZGVudGlmaWVyKQorICAgIGlmIChtX3RocmVhZElkZW50aWZpZXIgJiYgIW1fd2lsbFJlc3RhcnRD
b21wb3NpdGluZ1RocmVhZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTG9ja0hvbGRlciBsb2Nr
ZXIobV9pbml0aWFsaXplUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKICAgICBtX3RocmVhZElkZW50
aWZpZXIgPSBjcmVhdGVUaHJlYWQoY29tcG9zaXRpbmdUaHJlYWRFbnRyeSwgdGhpcywgIldlYkNv
cmU6IFRocmVhZGVkQ29tcG9zaXRvciIpOwotCiAgICAgbV9pbml0aWFsaXplUnVuTG9vcENvbmRp
dGlvbi53YWl0KG1faW5pdGlhbGl6ZVJ1bkxvb3BDb25kaXRpb25NdXRleCk7CiB9CiAKQEAgLTMx
OCw3ICszMzcsOCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cnVuQ29tcG9zaXRpbmdUaHJl
YWQoKQogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29t
cG9zaXRpbmdSdW5Mb29wPihbJl0gewogICAgICAgICAgICAgcmVuZGVyTGF5ZXJUcmVlKCk7CiAg
ICAgICAgIH0pOwotICAgICAgICBtX3NjZW5lID0gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkR3Jh
cGhpY3NTY2VuZSh0aGlzKSk7CisgICAgICAgIGlmICghbV93aWxsUmVzdGFydENvbXBvc2l0aW5n
VGhyZWFkKQorICAgICAgICAgICAgbV9zY2VuZSA9IGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmUodGhpcykpOwogICAgICAgICBtX3ZpZXdwb3J0Q29udHJvbGxlciA9IHN0ZDo6
bWFrZV91bmlxdWU8U2ltcGxlVmlld3BvcnRDb250cm9sbGVyPih0aGlzKTsKIAogICAgICAgICBt
X2luaXRpYWxpemVSdW5Mb29wQ29uZGl0aW9uLm5vdGlmeU9uZSgpOwpAQCAtMzI3LDIzICszNDcs
MjggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJ1bkNvbXBvc2l0aW5nVGhyZWFkKCkKICAg
ICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cnVuTG9vcCgpLnJ1bigpOwogCiAgICAgbV9jb21wb3Np
dGluZ1J1bkxvb3AtPnN0b3BVcGRhdGVUaW1lcigpOwotICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNv
dXJjZXMoKTsKIAogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV90ZXJtaW5hdGVS
dW5Mb29wQ29uZGl0aW9uTXV0ZXgpOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51
bGxwdHI7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisgICAgICAgIGlmICghbV93aWxs
UmVzdGFydENvbXBvc2l0aW5nVGhyZWFkKQorICAgICAgICAgICAgbV9zY2VuZS0+cHVyZ2VHTFJl
c291cmNlcygpOwogICAgICAgICBtX3Rlcm1pbmF0ZVJ1bkxvb3BDb25kaXRpb24ubm90aWZ5T25l
KCk7CiAgICAgfQogCiAgICAgZGV0YWNoVGhyZWFkKG1fdGhyZWFkSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjp0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCgpCit2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6dGVybWluYXRlQ29tcG9zaXRpbmdUaHJlYWQoY29uc3Qg
Ym9vbCB3aWxsUmVzdGFydENvbXBvc2l0aW5nVGhyZWFkKQogewogICAgIExvY2tIb2xkZXIgbG9j
a2VyKG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbk11dGV4KTsKIAotICAgIG1fc2NlbmUtPmRl
dGFjaCgpOworICAgIG1fd2lsbFJlc3RhcnRDb21wb3NpdGluZ1RocmVhZCA9IHdpbGxSZXN0YXJ0
Q29tcG9zaXRpbmdUaHJlYWQ7CisgICAgaWYgKHdpbGxSZXN0YXJ0Q29tcG9zaXRpbmdUaHJlYWQp
CisgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7CisgICAgZWxzZQorICAgICAgICBt
X3NjZW5lLT5kZXRhY2goKTsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cnVuTG9vcCgpLnN0
b3AoKTsKIAogICAgIG1fdGVybWluYXRlUnVuTG9vcENvbmRpdGlvbi53YWl0KG1fdGVybWluYXRl
UnVuTG9vcENvbmRpdGlvbk11dGV4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0
b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA0YTc4OWZkLi5mNWVhMTVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5oCkBAIC05Nyw3ICs5Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjYWxsT25Db21w
b3NpdGluZ1RocmVhZChzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOwogICAgIHZvaWQgY3JlYXRlQ29t
cG9zaXRpbmdUaHJlYWQoKTsKICAgICB2b2lkIHJ1bkNvbXBvc2l0aW5nVGhyZWFkKCk7Ci0gICAg
dm9pZCB0ZXJtaW5hdGVDb21wb3NpdGluZ1RocmVhZCgpOworICAgIHZvaWQgdGVybWluYXRlQ29t
cG9zaXRpbmdUaHJlYWQoY29uc3QgYm9vbCB3aWxsUmVzdGFydENvbXBvc2l0aW5nVGhyZWFkID0g
ZmFsc2UpOwogICAgIHN0YXRpYyB2b2lkIGNvbXBvc2l0aW5nVGhyZWFkRW50cnkodm9pZCopOwog
CiAgICAgQ2xpZW50KiBtX2NsaWVudDsKQEAgLTEwOSw2ICsxMDksNyBAQCBwcml2YXRlOgogICAg
IFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7CiAgICAgZmxvYXQgbV9kZXZpY2VTY2Fs
ZUZhY3RvcjsKICAgICB1aW50NjRfdCBtX25hdGl2ZVN1cmZhY2VIYW5kbGU7CisgICAgYm9vbCBt
X3dpbGxSZXN0YXJ0Q29tcG9zaXRpbmdUaHJlYWQ7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29t
cG9zaXRpbmdSdW5Mb29wPiBtX2NvbXBvc2l0aW5nUnVuTG9vcDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFk
ZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJl
ZUhvc3QuY3BwCmluZGV4IDI3NDEwNTkuLmM1NWFkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRp
bmF0ZWRMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9z
dC5jcHAKQEAgLTIwOCw4ICsyMDgsMTUgQEAgdm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdDo6c2V0Vmlld092ZXJsYXlSb290TGF5ZXIoR3JhcGhpY3NMYXllciogdmkKICNpZiBQ
TEFURk9STShHVEspCiB2b2lkIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpzZXRO
YXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogeworICAg
IGlmICghaGFuZGxlKQorICAgICAgICBwYXVzZVJlbmRlcmluZygpOworCisgICAgY29uc3QgYm9v
bCBjb21wb3NpdGluZ1RocmVhZFBhdXNlZCA9IGhhbmRsZSAmJiAhbV9sYXllclRyZWVDb250ZXh0
LmNvbnRleHRJRDsKICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gaGFuZGxlOwog
ICAgIG1fY29tcG9zaXRvci0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhh
bmRsZSk7CisKKyAgICBpZiAoY29tcG9zaXRpbmdUaHJlYWRQYXVzZWQpCisgICAgICAgIHJlc3Vt
ZVJlbmRlcmluZygpOwogfQogI2VuZGlmCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281169</attachid>
            <date>2016-06-13 05:51:10 -0700</date>
            <delta_ts>2016-06-14 01:30:15 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-tc-inspector-crash.diff</filename>
            <type>text/plain</type>
            <size>6436</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjNjIyNzRmLi42ODE4NjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzEg
QEAKIDIwMTYtMDYtMTMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3JdIE9wZW5pbmcgdGhlIGluc3BlY3RvciBp
biBhIHdpbmRvdyBjYXVzZXMgYSBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGRvZXNuJ3QgaGFuZGxl
IHRoZSBjYXNlIG9mIGNoYW5naW5nICBvciByZW1vdmluZyB0aGUgbmF0aXZlIHN1cmZhY2UgaGFu
ZGxlLiBXaGVuIHRoZSB3ZWIKKyAgICAgICAgdmlldyBpcyByZXBhcmVudGVkLCB0aGUgY3VycmVu
dCBuYXRpdmUgc3VyZmFjZSBoYW5kbGUgaXMgZGVzdHJveWVkIHdoZW4gdGhlIHZpZXcgaXMgcmVt
b3ZlZCBmcm9tIHRoZSBwYXJlbnQsIGFuZAorICAgICAgICBhIG5ldyBvbmUgaXMgY3JlYXRlZCB3
aGVuIGFkZGVkIHRvIHRoZSBuZXcgcGFyZW50LiBXZSBuZWVkIHRvIGhhbmRsZSB0aGlzIGNhc2Ug
aW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdSdW5Mb29wOjpzdG9wVXBkYXRlVGltZXIpOiBBbGxv
dyB1c2VycyB0byBzdG9wIHRoZSB1cGRhdGUgdGltZXIuCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0
b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6IFVzZSBwZXJmb3JtVGFz
a1N5bmMgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZAorICAgICAgICBmcm9tIGEgc3luY2hyb25vdXMg
SVBDIG1lc3NhZ2UgYW5kIHJpZ2h0IGFmdGVyIGl0IHJldHVybnMsIHRoZSBjdXJyZW50IG5hdGl2
ZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCBieSB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcy4gU28gd2Ug
bmVlZCB0byBlbnN1cmUgd2UgZmluaXNoIGFsbCBwZW5kaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBj
dXJyZW50IG5hdGl2ZSBzdXJmYWNlIGluIHRoZSBjb21wb3NpdGluZworICAgICAgICB0aHJlYWQg
YmVmb3JlIGl0J3MgZGVzdHJveWVkLiBUaGVuIHdlIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBzY2Vu
ZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgbmF0aXZlIHN1cmZhY2UgaGFzCisgICAgICAgIGJl
ZW4gY3JlYXRlZCBvciBkZXN0cm95ZWQgYW5kIGNhbGwgZW5zdXJlR0xDb250ZXh0IGFmdGVyIGNo
YW5naW5nIHRoZSBuYXRpdmUgc3VyZmFjZSBoYW5kbGUgdG8gdXBkYXRlIHRoZSBjb250ZXh0Lgor
ICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmdsQ29udGV4dCk6IERlc3Ryb3kg
dGhlIGN1cnJlbnQgY29udGV4dCBpZiB3ZSBkb24ndCBoYXZlIGEgbmF0aXZlIHN1cmZhY2UgaGFu
ZGxlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJl
ZSk6IFJldHVybiBlYXJseSBpZiBzY2VuZSBpcyBub3QgYWN0aXZlLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6IENhbmNlbCBh
bnkgcGVuZGluZyBsYXllciBmbHVzaAorICAgICAgICB3aGVuIHRoZSBuYXRpdmUgc3VyZmFjZSBo
YW5kbGUgY2hhbmdlcy4KKworMjAxNi0wNi0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dUS10gV2ViIHZpZXcgaXMgbm90IHJlZHJhd24g
d2hlbiByZXBhcmVudGVkIGluIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1ODY4OQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmlu
ZGV4IDVkZjVmMzMuLmVmYzdhMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC03MSw2ICs3MSwxMSBAQCB2
b2lkIENvbXBvc2l0aW5nUnVuTG9vcDo6c3RhcnRVcGRhdGVUaW1lcihVcGRhdGVUaW1pbmcgdGlt
aW5nKQogICAgIG1fdXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KG5leHRVcGRhdGVUaW1lKTsKIH0K
IAordm9pZCBDb21wb3NpdGluZ1J1bkxvb3A6OnN0b3BVcGRhdGVUaW1lcigpCit7CisgICAgbV91
cGRhdGVUaW1lci5zdG9wKCk7Cit9CisKIHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjp1cGRhdGVU
aW1lckZpcmVkKCkKIHsKICAgICBtX3VwZGF0ZUZ1bmN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggNjFm
ZTJlOC4uYTU2Zjg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBwZXJmb3JtVGFza1N5bmMoTm9uY29weWFibGVGdW5jdGlvbjx2b2lkICgpPiYmKTsKIAog
ICAgIHZvaWQgc3RhcnRVcGRhdGVUaW1lcihVcGRhdGVUaW1pbmcgPSBJbW1lZGlhdGUpOworICAg
IHZvaWQgc3RvcFVwZGF0ZVRpbWVyKCk7CiAKICAgICB2b2lkIHJ1bigpOwogICAgIHZvaWQgc3Rv
cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmNwcAppbmRleCA0YWUzNDUxLi5lYTlmYThiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
VGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApA
QCAtNjEsOSArNjEsMTIgQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhyZWFkZWRDb21wb3NpdG9y
KCkKIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JD
b21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7Ci0gICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnBlcmZvcm1UYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmPFRocmVhZGVkQ29tcG9zaXRv
cj4oKnRoaXMpLCBoYW5kbGVdIHsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0
ZVRpbWVyKCk7CisgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+KCp0aGlzKSwgaGFuZGxl
XSB7CisgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZShoYW5kbGUpOwogICAgICAgICBtX25hdGl2
ZVN1cmZhY2VIYW5kbGUgPSBoYW5kbGU7Ci0gICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVl
KTsKKyAgICAgICAgZW5zdXJlR0xDb250ZXh0KCk7CisgICAgICAgIHVwZGF0ZVZpZXdwb3J0KCk7
CiAgICAgfSk7CiB9CiAKQEAgLTE1MiwxMyArMTU1LDEzIEBAIEdMQ29udGV4dCogVGhyZWFkZWRD
b21wb3NpdG9yOjpnbENvbnRleHQoKQogewogICAgIEFTU0VSVCgmUnVuTG9vcDo6Y3VycmVudCgp
ID09ICZtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cnVuTG9vcCgpKTsKIAotICAgIGlmIChtX2NvbnRl
eHQpCi0gICAgICAgIHJldHVybiBtX2NvbnRleHQuZ2V0KCk7Ci0KLSAgICBpZiAoIW1fbmF0aXZl
U3VyZmFjZUhhbmRsZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX25hdGl2ZVN1cmZh
Y2VIYW5kbGUpIHsKKyAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQogCi0gICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250
ZXh0Rm9yV2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRpdmVXaW5kb3dUeXBlPihtX25hdGl2
ZVN1cmZhY2VIYW5kbGUpLCBHTENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KCkpOworICAgIGlmICgh
bV9jb250ZXh0KQorICAgICAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRG
b3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3Vy
ZmFjZUhhbmRsZSksIEdMQ29udGV4dDo6c2hhcmluZ0NvbnRleHQoKSk7CiAgICAgcmV0dXJuIG1f
Y29udGV4dC5nZXQoKTsKIH0KIApAQCAtMTgxLDcgKzE4NCw3IEBAIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjpkaWRDaGFuZ2VWaXNpYmxlUmVjdCgpCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6
cmVuZGVyTGF5ZXJUcmVlKCkKIHsKICAgICBBU1NFUlQoJlJ1bkxvb3A6OmN1cnJlbnQoKSA9PSAm
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnJ1bkxvb3AoKSk7Ci0gICAgaWYgKCFtX3NjZW5lKQorICAg
IGlmICghbV9zY2VuZSB8fCAhbV9zY2VuZS0+aXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFlbnN1cmVHTENvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0
ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApp
bmRleCAwZDUwZGYwLi5jNjQ3OTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJU
cmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC0x
OTYsOCArMTk2LDEwIEBAIHZvaWQgVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNl
dFZpZXdPdmVybGF5Um9vdExheWVyKEdyYXBoaWNzTGF5ZXIqIGdyCiAjaWYgUExBVEZPUk0oR1RL
KQogdm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TmF0aXZlU3VyZmFj
ZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKKyAgICBjYW5jZWxQZW5k
aW5nTGF5ZXJGbHVzaCgpOwogICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBoYW5k
bGU7CiAgICAgbV9jb21wb3NpdG9yLT5zZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRp
bmcoaGFuZGxlKTsKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KICNlbmRpZgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281244</attachid>
            <date>2016-06-14 01:30:15 -0700</date>
            <delta_ts>2016-06-14 02:37:29 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-tc-inspector-crash.diff</filename>
            <type>text/plain</type>
            <size>8009</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhMGUzMDlmLi4xNTU3NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTYtMDYtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3JdIE9wZW5pbmcgdGhlIGluc3BlY3RvciBp
biBhIHdpbmRvdyBjYXVzZXMgYSBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGRvZXNuJ3QgaGFuZGxl
IHRoZSBjYXNlIG9mIGNoYW5naW5nICBvciByZW1vdmluZyB0aGUgbmF0aXZlIHN1cmZhY2UgaGFu
ZGxlLiBXaGVuIHRoZSB3ZWIKKyAgICAgICAgdmlldyBpcyByZXBhcmVudGVkLCB0aGUgY3VycmVu
dCBuYXRpdmUgc3VyZmFjZSBoYW5kbGUgaXMgZGVzdHJveWVkIHdoZW4gdGhlIHZpZXcgaXMgcmVt
b3ZlZCBmcm9tIHRoZSBwYXJlbnQsIGFuZAorICAgICAgICBhIG5ldyBvbmUgaXMgY3JlYXRlZCB3
aGVuIGFkZGVkIHRvIHRoZSBuZXcgcGFyZW50LiBXZSBuZWVkIHRvIGhhbmRsZSB0aGlzIGNhc2Ug
aW4gdGhlIHRocmVhZGVkIGNvbXBvc2l0b3IuCisKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6Q29tcG9zaXRpbmdSdW5Mb29wOjpzdG9wVXBkYXRlVGltZXIpOiBBbGxv
dyB1c2VycyB0byBzdG9wIHRoZSB1cGRhdGUgdGltZXIuCisgICAgICAgICogU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oOgor
ICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0
b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyk6IFVzZSBwZXJmb3JtVGFz
a1N5bmMgYmVjYXVzZSB0aGlzIGlzIGNhbGxlZAorICAgICAgICBmcm9tIGEgc3luY2hyb25vdXMg
SVBDIG1lc3NhZ2UgYW5kIHJpZ2h0IGFmdGVyIGl0IHJldHVybnMsIHRoZSBjdXJyZW50IG5hdGl2
ZSBzdXJmYWNlIGlzIGRlc3Ryb3llZCBieSB0aGUgVUkKKyAgICAgICAgcHJvY2Vzcy4gU28gd2Ug
bmVlZCB0byBlbnN1cmUgd2UgZmluaXNoIGFsbCBwZW5kaW5nIG9wZXJhdGlvbnMgZm9yIHRoZSBj
dXJyZW50IG5hdGl2ZSBzdXJmYWNlIGluIHRoZSBjb21wb3NpdGluZworICAgICAgICB0aHJlYWQg
YmVmb3JlIGl0J3MgZGVzdHJveWVkLiBUaGVuIHdlIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBzY2Vu
ZSBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUgbmF0aXZlIHN1cmZhY2UgaGFzCisgICAgICAgIGJl
ZW4gY3JlYXRlZCBvciBkZXN0cm95ZWQgYW5kIGNhbGwgdHJ5RW5zdXJlR0xDb250ZXh0IGFmdGVy
IGNoYW5naW5nIHRoZSBuYXRpdmUgc3VyZmFjZSBoYW5kbGUgdG8gZGVzdHJveSB0aGUKKyAgICAg
ICAgY3VycmVudCBjb250ZXh0IGluIGNhc2UgdGhlIG5ldyBoYW5kbGUgaXMgMCBvciBjcmVhdGUg
YSBuZXcgb25lIG90aGVyd2lzZS4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21wb3NpdG9y
Ojp0cnlFbnN1cmVHTENvbnRleHQpOiBKdXN0IHJlbmFtZWQgdG8gbWFrZSBpdCBjbGVhciB0aGF0
IGl0IGNhbiBmYWlsLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6OmdsQ29u
dGV4dCk6IERlc3Ryb3kgdGhlIGN1cnJlbnQgY29udGV4dCBpZiB3ZSBkb24ndCBoYXZlIGEgbmF0
aXZlIHN1cmZhY2UgaGFuZGxlLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OnJlbmRlckxheWVyVHJlZSk6IFJldHVybiBlYXJseSBpZiBzY2VuZSBpcyBub3QgYWN0aXZlLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRD
b29yZGluYXRlZExheWVyVHJlZUhvc3Q6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyk6IFNjaGVkdWxlIGEgbmV3IGxheWVyIGZsdXNoCisgICAgICAgIGFmdGVyIHRoZSBuYXRp
dmUgc3VyZmFjZSBoYW5kbGUgY2hhbmdlZC4KKwogMjAxNi0wNi0xMyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViIHZpZXcgaXMg
bm90IHJlZHJhd24gd2hlbiByZXBhcmVudGVkIGluIGZvcmNlIGNvbXBvc2l0aW5nIG1vZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKaW5kZXggNWRmNWYzMy4uZWZjN2EzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0
aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKQEAgLTcxLDYg
KzcxLDExIEBAIHZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpzdGFydFVwZGF0ZVRpbWVyKFVwZGF0
ZVRpbWluZyB0aW1pbmcpCiAgICAgbV91cGRhdGVUaW1lci5zdGFydE9uZVNob3QobmV4dFVwZGF0
ZVRpbWUpOwogfQogCit2b2lkIENvbXBvc2l0aW5nUnVuTG9vcDo6c3RvcFVwZGF0ZVRpbWVyKCkK
K3sKKyAgICBtX3VwZGF0ZVRpbWVyLnN0b3AoKTsKK30KKwogdm9pZCBDb21wb3NpdGluZ1J1bkxv
b3A6OnVwZGF0ZVRpbWVyRmlyZWQoKQogewogICAgIG1fdXBkYXRlRnVuY3Rpb24oKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aAppbmRleCA2MWZlMmU4Li5hNTZmODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCkBAIC01MCw2ICs1MCw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIHBlcmZvcm1UYXNrU3luYyhOb25jb3B5YWJsZUZ1bmN0aW9uPHZvaWQg
KCk+JiYpOwogCiAgICAgdm9pZCBzdGFydFVwZGF0ZVRpbWVyKFVwZGF0ZVRpbWluZyA9IEltbWVk
aWF0ZSk7CisgICAgdm9pZCBzdG9wVXBkYXRlVGltZXIoKTsKIAogICAgIHZvaWQgcnVuKCk7CiAg
ICAgdm9pZCBzdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9z
aXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCmluZGV4IDRhZTM0NTEuLjgwZTA3MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwCkBAIC02MSw5ICs2MSwxOSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6On5UaHJlYWRl
ZENvbXBvc2l0b3IoKQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFj
ZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKLSAgICBtX2NvbXBvc2l0
aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2soW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWY8VGhyZWFk
ZWRDb21wb3NpdG9yPigqdGhpcyksIGhhbmRsZV0geworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29w
LT5zdG9wVXBkYXRlVGltZXIoKTsKKyAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRh
c2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4oKnRo
aXMpLCBoYW5kbGVdIHsKKyAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKCEhaGFuZGxlKTsKKwor
ICAgICAgICAvLyBBIG5ldyBuYXRpdmUgaGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ry
b3lpbmcgdGhlIHByZXZpb3VzIG9uZSBmaXJzdCBpZiBhbnkuCisgICAgICAgIEFTU0VSVCgoaGFu
ZGxlICYmICFtX25hdGl2ZVN1cmZhY2VIYW5kbGUpIHx8IChtX25hdGl2ZVN1cmZhY2VIYW5kbGUg
JiYgIWhhbmRsZSkpOwogICAgICAgICBtX25hdGl2ZVN1cmZhY2VIYW5kbGUgPSBoYW5kbGU7Ci0g
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKKworICAgICAgICAvLyBJbiBjYXNlIG1f
bmF0aXZlU3VyZmFjZUhhbmRsZSBpcyAwIG5vdywgdHJ5RW5zdXJlR0xDb250ZXh0IHdpbGwgZGVz
dHJveSB0aGUgY3VycmVudCBjb250ZXh0IGFuZCB3aWxsCisgICAgICAgIC8vIGZhaWwgdG8gZW5z
dXJlIGEgbmV3IG9uZSwgc28gdGhhdCBhbnkgcHJldmlvdXMgb3BlcmF0aW9uIHBlbmRpbmcgYW5k
IG5ldyBvbmVzIHdpbGwgYmUgZGlzY2FyZGVkLgorICAgICAgICAvLyBJbiBjYXNlIG1fbmF0aXZl
U3VyZmFjZUhhbmRsZSBpcyBhIHZhbGlkIGhhbmRsZSwgdHJ5RW5zdXJlR0xDb250ZXh0IHdpbGwg
Y3JlYXRlIGEgbmV3IGNvbnRleHQgZm9yIHRoZQorICAgICAgICAvLyBuZXcgaGFuZGxlLgorICAg
ICAgICB0cnlFbnN1cmVHTENvbnRleHQoKTsKICAgICB9KTsKIH0KIApAQCAtMTMwLDcgKzE0MCw3
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3Qg
bGF5ZXJJRCwgY29uc3QgSW50U2l6ZSYgb2ZmCiAgICAgbV9jbGllbnQtPmNvbW1pdFNjcm9sbE9m
ZnNldChsYXllcklELCBvZmZzZXQpOwogfQogCi1ib29sIFRocmVhZGVkQ29tcG9zaXRvcjo6ZW5z
dXJlR0xDb250ZXh0KCkKK2Jvb2wgVGhyZWFkZWRDb21wb3NpdG9yOjp0cnlFbnN1cmVHTENvbnRl
eHQoKQogewogICAgIGlmICghZ2xDb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTE1MiwxMyArMTYyLDEzIEBAIEdMQ29udGV4dCogVGhyZWFkZWRDb21wb3NpdG9yOjpnbENvbnRl
eHQoKQogewogICAgIEFTU0VSVCgmUnVuTG9vcDo6Y3VycmVudCgpID09ICZtX2NvbXBvc2l0aW5n
UnVuTG9vcC0+cnVuTG9vcCgpKTsKIAotICAgIGlmIChtX2NvbnRleHQpCi0gICAgICAgIHJldHVy
biBtX2NvbnRleHQuZ2V0KCk7Ci0KLSAgICBpZiAoIW1fbmF0aXZlU3VyZmFjZUhhbmRsZSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgaWYgKCFtX25hdGl2ZVN1cmZhY2VIYW5kbGUpIHsKKyAgICAg
ICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQog
Ci0gICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KHJlaW50
ZXJwcmV0X2Nhc3Q8R0xOYXRpdmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZhY2VIYW5kbGUpLCBH
TENvbnRleHQ6OnNoYXJpbmdDb250ZXh0KCkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAg
ICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnBy
ZXRfY2FzdDxHTE5hdGl2ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksIEdMQ29u
dGV4dDo6c2hhcmluZ0NvbnRleHQoKSk7CiAgICAgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsKIH0K
IApAQCAtMTgxLDEwICsxOTEsMTAgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmRpZENoYW5n
ZVZpc2libGVSZWN0KCkKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUo
KQogewogICAgIEFTU0VSVCgmUnVuTG9vcDo6Y3VycmVudCgpID09ICZtX2NvbXBvc2l0aW5nUnVu
TG9vcC0+cnVuTG9vcCgpKTsKLSAgICBpZiAoIW1fc2NlbmUpCisgICAgaWYgKCFtX3NjZW5lIHx8
ICFtX3NjZW5lLT5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWVuc3Vy
ZUdMQ29udGV4dCgpKQorICAgIGlmICghdHJ5RW5zdXJlR0xDb250ZXh0KCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEZsb2F0UmVjdCBjbGlwUmVjdCgwLCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0
aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRD
b21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggMzcwMDMyMi4uMmEx
MjM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJl
YWRlZENvbXBvc2l0b3IuaApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2No
ZWR1bGVEaXNwbGF5SW1tZWRpYXRlbHkoKTsKICAgICB2b2lkIGRpZENoYW5nZVZpc2libGVSZWN0
KCkgb3ZlcnJpZGU7CiAKLSAgICBib29sIGVuc3VyZUdMQ29udGV4dCgpOworICAgIGJvb2wgdHJ5
RW5zdXJlR0xDb250ZXh0KCk7CiAgICAgV2ViQ29yZTo6R0xDb250ZXh0KiBnbENvbnRleHQoKTsK
IAogICAgIHZvaWQgY3JlYXRlQ29tcG9zaXRpbmdUaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVI
b3N0LmNwcAppbmRleCAwZDUwZGYwLi42MzE3ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Qu
Y3BwCkBAIC0xOTgsNiArMTk4LDcgQEAgdm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdDo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQKIHsKICAgICBt
X2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gaGFuZGxlOwogICAgIG1fY29tcG9zaXRvci0+
c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKGhhbmRsZSk7CisgICAgc2NoZWR1
bGVMYXllckZsdXNoKCk7CiB9CiAjZW5kaWYKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>281250</attachid>
            <date>2016-06-14 02:37:29 -0700</date>
            <delta_ts>2016-06-14 02:52:05 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-tc-inspector-crash.diff</filename>
            <type>text/plain</type>
            <size>7130</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhMGUzMDlmLi5iODVlNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTYtMDYtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtUaHJlYWRlZENvbXBvc2l0b3JdIE9wZW5pbmcgdGhlIGluc3BlY3RvciBp
biBhIHdpbmRvdyBjYXVzZXMgYSBjcmFzaC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1NDQ0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZSB0aHJlYWRlZCBjb21wb3NpdG9yIGRvZXNuJ3QgaGFuZGxl
IHRoZSBjYXNlIG9mIGNoYW5naW5nIG9yIHJlbW92aW5nIHRoZSBuYXRpdmUgc3VyZmFjZSBoYW5k
bGUuIFdoZW4gdGhlIHdlYgorICAgICAgICB2aWV3IGlzIHJlcGFyZW50ZWQsIHRoZSBjdXJyZW50
IG5hdGl2ZSBzdXJmYWNlIGhhbmRsZSBpcyBkZXN0cm95ZWQgd2hlbiB0aGUgdmlldyBpcyByZW1v
dmVkIGZyb20gdGhlIHBhcmVudCwgYW5kCisgICAgICAgIGEgbmV3IG9uZSBpcyBjcmVhdGVkIHdo
ZW4gYWRkZWQgdG8gdGhlIG5ldyBwYXJlbnQuIFdlIG5lZWQgdG8gaGFuZGxlIHRoaXMgY2FzZSBp
biB0aGUgdGhyZWFkZWQgY29tcG9zaXRvci4KKworICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpDb21wb3NpdGluZ1J1bkxvb3A6OnN0b3BVcGRhdGVUaW1lcik6IEFsbG93
IHVzZXJzIHRvIHN0b3AgdGhlIHVwZGF0ZSB0aW1lci4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmg6Cisg
ICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRv
cjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKTogVXNlIHBlcmZvcm1UYXNr
U3luYyBiZWNhdXNlIHRoaXMgaXMgY2FsbGVkCisgICAgICAgIGZyb20gYSBzeW5jaHJvbm91cyBJ
UEMgbWVzc2FnZSBhbmQgcmlnaHQgYWZ0ZXIgaXQgcmV0dXJucywgdGhlIGN1cnJlbnQgbmF0aXZl
IHN1cmZhY2UgaXMgZGVzdHJveWVkIGJ5IHRoZSBVSQorICAgICAgICBwcm9jZXNzLiBTbyB3ZSBu
ZWVkIHRvIGVuc3VyZSB3ZSBmaW5pc2ggYWxsIHBlbmRpbmcgb3BlcmF0aW9ucyBmb3IgdGhlIGN1
cnJlbnQgbmF0aXZlIHN1cmZhY2UgaW4gdGhlIGNvbXBvc2l0aW5nCisgICAgICAgIHRocmVhZCBi
ZWZvcmUgaXQncyBkZXN0cm95ZWQuIFRoZW4gd2UgZW5hYmxlIG9yIGRpc2FibGUgdGhlIHNjZW5l
IGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSBuYXRpdmUgc3VyZmFjZSBoYXMKKyAgICAgICAgYmVl
biBjcmVhdGVkIG9yIGRlc3Ryb3llZCBhbmQgZGVzdHJveSB0aGUgY3VycmVudCBjb250ZXh0IGlu
IGNhc2UgdGhlIG5ldyBoYW5kbGUgaXMgMC4KKyAgICAgICAgKFdlYktpdDo6VGhyZWFkZWRDb21w
b3NpdG9yOjp0cnlFbnN1cmVHTENvbnRleHQpOiBKdXN0IHJlbmFtZWQgdG8gbWFrZSBpdCBjbGVh
ciB0aGF0IGl0IGNhbiBmYWlsLgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvbXBvc2l0b3I6
OmdsQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OlRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVy
TGF5ZXJUcmVlKTogUmV0dXJuIGVhcmx5IGlmIHNjZW5lIGlzIG5vdCBhY3RpdmUuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUaHJlYWRlZENvb3JkaW5h
dGVkTGF5ZXJUcmVlSG9zdDo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKTog
U2NoZWR1bGUgYSBuZXcgbGF5ZXIgZmx1c2gKKyAgICAgICAgYWZ0ZXIgdGhlIG5hdGl2ZSBzdXJm
YWNlIGhhbmRsZSBjaGFuZ2VkLgorCiAyMDE2LTA2LTEzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAg
PGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBXZWIgdmlldyBpcyBub3QgcmVk
cmF3biB3aGVuIHJlcGFyZW50ZWQgaW4gZm9yY2UgY29tcG9zaXRpbmcgbW9kZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNw
cAppbmRleCA1ZGY1ZjMzLi5lZmM3YTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcApAQCAtNzEsNiArNzEsMTEg
QEAgdm9pZCBDb21wb3NpdGluZ1J1bkxvb3A6OnN0YXJ0VXBkYXRlVGltZXIoVXBkYXRlVGltaW5n
IHRpbWluZykKICAgICBtX3VwZGF0ZVRpbWVyLnN0YXJ0T25lU2hvdChuZXh0VXBkYXRlVGltZSk7
CiB9CiAKK3ZvaWQgQ29tcG9zaXRpbmdSdW5Mb29wOjpzdG9wVXBkYXRlVGltZXIoKQoreworICAg
IG1fdXBkYXRlVGltZXIuc3RvcCgpOworfQorCiB2b2lkIENvbXBvc2l0aW5nUnVuTG9vcDo6dXBk
YXRlVGltZXJGaXJlZCgpCiB7CiAgICAgbV91cGRhdGVGdW5jdGlvbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCmluZGV4
IDYxZmUyZTguLmE1NmY4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcGVyZm9ybVRhc2tTeW5jKE5vbmNvcHlhYmxlRnVuY3Rpb248dm9pZCAoKT4mJik7
CiAKICAgICB2b2lkIHN0YXJ0VXBkYXRlVGltZXIoVXBkYXRlVGltaW5nID0gSW1tZWRpYXRlKTsK
KyAgICB2b2lkIHN0b3BVcGRhdGVUaW1lcigpOwogCiAgICAgdm9pZCBydW4oKTsKICAgICB2b2lk
IHN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggNGFlMzQ1MS4uMjVjYWVmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5j
cHAKQEAgLTYxLDkgKzYxLDE1IEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9z
aXRvcigpCiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogewotICAgIG1fY29tcG9zaXRpbmdSdW5M
b29wLT5wZXJmb3JtVGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZjxUaHJlYWRlZENvbXBv
c2l0b3I+KCp0aGlzKSwgaGFuZGxlXSB7CisgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnN0b3BV
cGRhdGVUaW1lcigpOworICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMo
W3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPigqdGhpcyksIGhh
bmRsZV0geworICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoISFoYW5kbGUpOworCisgICAgICAg
IC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3QgYmUgc2V0IHdpdGhvdXQgZGVzdHJveWluZyB0
aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4KKyAgICAgICAgQVNTRVJUKCEhaGFuZGxlIF4g
ISFtX25hdGl2ZVN1cmZhY2VIYW5kbGUpOwogICAgICAgICBtX25hdGl2ZVN1cmZhY2VIYW5kbGUg
PSBoYW5kbGU7Ci0gICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKKyAgICAgICAgaWYg
KCFtX25hdGl2ZVN1cmZhY2VIYW5kbGUpCisgICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRy
OwogICAgIH0pOwogfQogCkBAIC0xMzAsNyArMTM2LDcgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OmNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJfdCBsYXllcklELCBjb25zdCBJbnRTaXplJiBv
ZmYKICAgICBtX2NsaWVudC0+Y29tbWl0U2Nyb2xsT2Zmc2V0KGxheWVySUQsIG9mZnNldCk7CiB9
CiAKLWJvb2wgVGhyZWFkZWRDb21wb3NpdG9yOjplbnN1cmVHTENvbnRleHQoKQorYm9vbCBUaHJl
YWRlZENvbXBvc2l0b3I6OnRyeUVuc3VyZUdMQ29udGV4dCgpCiB7CiAgICAgaWYgKCFnbENvbnRl
eHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTU2LDcgKzE2Miw3IEBAIEdMQ29udGV4
dCogVGhyZWFkZWRDb21wb3NpdG9yOjpnbENvbnRleHQoKQogICAgICAgICByZXR1cm4gbV9jb250
ZXh0LmdldCgpOwogCiAgICAgaWYgKCFtX25hdGl2ZVN1cmZhY2VIYW5kbGUpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIG1fY29udGV4dCA9IEdMQ29u
dGV4dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2lu
ZG93VHlwZT4obV9uYXRpdmVTdXJmYWNlSGFuZGxlKSwgR0xDb250ZXh0OjpzaGFyaW5nQ29udGV4
dCgpKTsKICAgICByZXR1cm4gbV9jb250ZXh0LmdldCgpOwpAQCAtMTgxLDEwICsxODcsMTAgQEAg
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmRpZENoYW5nZVZpc2libGVSZWN0KCkKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogewogICAgIEFTU0VSVCgmUnVuTG9v
cDo6Y3VycmVudCgpID09ICZtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cnVuTG9vcCgpKTsKLSAgICBp
ZiAoIW1fc2NlbmUpCisgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0FjdGl2ZSgpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWVuc3VyZUdMQ29udGV4dCgpKQorICAgIGlmICgh
dHJ5RW5zdXJlR0xDb250ZXh0KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEZsb2F0UmVjdCBj
bGlwUmVjdCgwLCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWln
aHQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgKaW5kZXggMzcwMDMyMi4uMmExMjM2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApAQCAtODgs
NyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVEaXNwbGF5SW1tZWRpYXRlbHko
KTsKICAgICB2b2lkIGRpZENoYW5nZVZpc2libGVSZWN0KCkgb3ZlcnJpZGU7CiAKLSAgICBib29s
IGVuc3VyZUdMQ29udGV4dCgpOworICAgIGJvb2wgdHJ5RW5zdXJlR0xDb250ZXh0KCk7CiAgICAg
V2ViQ29yZTo6R0xDb250ZXh0KiBnbENvbnRleHQoKTsKIAogICAgIHZvaWQgY3JlYXRlQ29tcG9z
aXRpbmdUaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCAwZDUwZGYwLi42
MzE3ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC0xOTgsNiArMTk4LDcgQEAg
dm9pZCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6c2V0TmF0aXZlU3VyZmFjZUhh
bmRsZUZvckNvbXBvc2l0aW5nKHVpbnQKIHsKICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4
dElEID0gaGFuZGxlOwogICAgIG1fY29tcG9zaXRvci0+c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZv
ckNvbXBvc2l0aW5nKGhhbmRsZSk7CisgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7CiB9CiAjZW5k
aWYKIAo=
</data>
<flag name="review"
          id="305105"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>