<?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>106068</bug_id>
          
          <creation_ts>2013-01-03 17:09:22 -0800</creation_ts>
          <short_desc>Assert in RenderGeometryMap::mapToContainer</short_desc>
          <delta_ts>2013-01-09 10:03:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>799859</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-03 17:09:22 -0800</bug_when>
    <thetext>There&apos;s an assert in RenderGeometryMap::mapToContainer when opening the attached test case.

I&apos;ve replaced the assert with the following code:

    if (enclosingIntRect(rendererMappedResult) != enclosingIntRect(FloatQuad(result).boundingBox())) {
        IntRect initialRect = enclosingIntRect(rect);
        IntRect rect1 = enclosingIntRect(rendererMappedResult);
        IntRect rect2 = enclosingIntRect(FloatQuad(result).boundingBox());
        fprintf(stderr, &quot;Initial rects 1: %d %d %d %d\n&quot;, initialRect.x(), initialRect.y(), initialRect.width(), initialRect.height());
        fprintf(stderr, &quot;Mismatched rects 1: %d %d %d %d\n            2: %d %d %d %d\n&quot;, rect1.x(), rect1.y(), rect1.width(), rect1.height(),
                rect2.x(), rect2.y(), rect2.width(), rect2.height());
        m_mapping.last().m_renderer-&gt;showRenderTreeForThis();
    }

and here is what I get:

Initial rects 1: 0 0 0 0
Mismatched rects 1: 123 123 0 0
            2: 0 0 0 0
RenderView 0x7fcfe4b06e98              	#document	0x7fcfe6002a00
  RenderBlock 0x7fcfe4b0da88           	HTML	0x7fcfe4b0b320
    RenderBody 0x7fcfe4b0ddc8          	BODY	0x7fcfe4b0d4a0
      RenderBlock (relative positioned) 0x7fcfe4b108d8	DIV	0x7fcfe4b0d510
*       RenderBlock 0x7fcfe4b0c9e8     	DIV	0x7fcfe4b0d620</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>799860</commentid>
    <comment_count>1</comment_count>
      <attachid>181252</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-03 17:09:43 -0800</bug_when>
    <thetext>Created attachment 181252
testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800250</commentid>
    <comment_count>2</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 09:15:36 -0800</bug_when>
    <thetext>It looks like in RenderLayerCompositor::computeCompositingRequirements the absBounds are only computed if (overlapMap &amp;&amp; !overlapMap-&gt;isEmpty() &amp;&amp; compositingState.m_testingOverlap) is true.

However, the &quot;empty&quot; absBounds are later used to call addToOverlapMap and triggers that assert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800275</commentid>
    <comment_count>3</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 09:30:28 -0800</bug_when>
    <thetext>Looks like the layer requirements are calculated before a layout was ever done. m_everHadLayout is 0 on the renderer that reproduces the problem. This should have no visual issues in practice as a layout will follow anyway and that will fix any eventual issues.

This is the stack I see when that happens:

#0  WebCore::RenderGeometryMap::mapToContainer (this=0x7fff58576cc0, rect=@0x7fff58576438, container=0x0) at Source/WebCore/rendering/RenderGeometryMap.cpp:127
#1  0x000000010ae3d6c9 in WebCore::RenderGeometryMap::absoluteRect (this=0x7fff58576cc0, rect=@0x7fff58576438) at RenderGeometryMap.h:89
#2  0x000000010ae7eec0 in WebCore::RenderLayerCompositor::addToOverlapMap (this=0x7fe89ea10690, overlapMap=@0x7fff58576c80, layer=0x7fe89ea177a8, layerBounds=@0x7fff58576610, boundsComputed=@0x7fff58576623) at Source/WebCore/rendering/RenderLayerCompositor.cpp:736
#3  0x000000010ae7caf5 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7fe89ea10690, ancestorLayer=0x7fe89ea17128, layer=0x7fe89ea177a8, overlapMap=0x7fff58576c80, compositingState=@0x7fff58576788, layersChanged=@0x7fff58577107, descendantHas3DTransform=@0x7fff58576737) at Source/WebCore/rendering/RenderLayerCompositor.cpp:919
#4  0x000000010ae7c9c6 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7fe89ea10690, ancestorLayer=0x7fe89ea15388, layer=0x7fe89ea17128, overlapMap=0x7fff58576c80, compositingState=@0x7fff58576958, layersChanged=@0x7fff58577107, descendantHas3DTransform=@0x7fff58576907) at Source/WebCore/rendering/RenderLayerCompositor.cpp:902
#5  0x000000010ae7c9c6 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7fe89ea10690, ancestorLayer=0x7fe89ea10568, layer=0x7fe89ea15388, overlapMap=0x7fff58576c80, compositingState=@0x7fff58576b28, layersChanged=@0x7fff58577107, descendantHas3DTransform=@0x7fff58576ad7) at Source/WebCore/rendering/RenderLayerCompositor.cpp:902
#6  0x000000010ae7c9c6 in WebCore::RenderLayerCompositor::computeCompositingRequirements (this=0x7fe89ea10690, ancestorLayer=0x0, layer=0x7fe89ea10568, overlapMap=0x7fff58576c80, compositingState=@0x7fff58577108, layersChanged=@0x7fff58577107, descendantHas3DTransform=@0x7fff58577106) at Source/WebCore/rendering/RenderLayerCompositor.cpp:902
#7  0x000000010ae7bed8 in WebCore::RenderLayerCompositor::updateCompositingLayers (this=0x7fe89ea10690, updateType=WebCore::CompositingUpdateAfterLayout, updateRoot=0x7fe89ea10568) at Source/WebCore/rendering/RenderLayerCompositor.cpp:461
#8  0x000000010a1f66dd in WebCore::FrameView::updateCompositingLayersAfterLayout (this=0x7fe89ea0edf0) at Source/WebCore/page/FrameView.cpp:744
#9  0x0000000109ea9de0 in WebCore::Document::setVisualUpdatesAllowed (this=0x7fe89f801200, visualUpdatesAllowed=true) at Source/WebCore/dom/Document.cpp:1259
#10 0x0000000109ea9d01 in WebCore::Document::setVisualUpdatesAllowed (this=0x7fe89f801200, readyState=WebCore::Document::Complete) at Source/WebCore/dom/Document.cpp:1240
#11 0x0000000109ea9a4e in WebCore::Document::setReadyState (this=0x7fe89f801200, readyState=WebCore::Document::Complete) at Source/WebCore/dom/Document.cpp:1220
#12 0x000000010a1ce44a in WebCore::FrameLoader::checkCompleted (this=0x7fe8a0013c80) at Source/WebCore/loader/FrameLoader.cpp:773
#13 0x000000010a1cd123 in WebCore::FrameLoader::finishedParsing (this=0x7fe8a0013c80) at Source/WebCore/loader/FrameLoader.cpp:709
#14 0x0000000109eb7399 in WebCore::Document::finishedParsing (this=0x7fe89f801200) at Source/WebCore/dom/Document.cpp:4397
#15 0x000000010a3c3fa1 in WebCore::HTMLTreeBuilder::finished (this=0x7fe89ea141d0) at Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2906
#16 0x000000010a2f28dc in WebCore::HTMLDocumentParser::end (this=0x7fe89f80e400) at Source/WebCore/html/parser/HTMLDocumentParser.cpp:372
#17 0x000000010a2f1a1f in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x7fe89f80e400) at Source/WebCore/html/parser/HTMLDocumentParser.cpp:381
#18 0x000000010a2f1810 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x7fe89f80e400) at Source/WebCore/html/parser/HTMLDocumentParser.cpp:149
#19 0x000000010a2f2933 in WebCore::HTMLDocumentParser::attemptToEnd (this=0x7fe89f80e400) at Source/WebCore/html/parser/HTMLDocumentParser.cpp:393
#20 0x000000010a2f2988 in WebCore::HTMLDocumentParser::finish (this=0x7fe89f80e400) at Source/WebCore/html/parser/HTMLDocumentParser.cpp:420
#21 0x0000000109f32228 in WebCore::DocumentWriter::end (this=0x7fe89b8190a8) at Source/WebCore/loader/DocumentWriter.cpp:244
#22 0x0000000109eff809 in WebCore::DocumentLoader::finishedLoading (this=0x7fe89b819000) at Source/WebCore/loader/DocumentLoader.cpp:295
#23 0x000000010ab878e0 in WebCore::MainResourceLoader::didFinishLoading (this=0x7fe89b46cec0, finishTime=0) at Source/WebCore/loader/MainResourceLoader.cpp:543
#24 0x000000010ab887c7 in WebCore::MainResourceLoader::notifyFinished (this=0x7fe89b46cec0, resource=0x7fe89b458660) at Source/WebCore/loader/MainResourceLoader.cpp:552
#25 0x0000000109be998d in WebCore::CachedResource::checkNotify (this=0x7fe89b458660) at Source/WebCore/loader/cache/CachedResource.cpp:336
#26 0x0000000109be99f5 in WebCore::CachedResource::data (this=0x7fe89b458660, allDataReceived=true) at Source/WebCore/loader/cache/CachedResource.cpp:345
#27 0x0000000109be4ed1 in WebCore::CachedRawResource::data (this=0x7fe89b458660, data=@0x7fff585776b0, allDataReceived=true) at Source/WebCore/loader/cache/CachedRawResource.cpp:72
#28 0x000000010b252d1b in WebCore::SubresourceLoader::didFinishLoading (this=0x7fe89b819a00, finishTime=0) at Source/WebCore/loader/SubresourceLoader.cpp:276
#29 0x000000010b010535 in WebCore::ResourceLoader::didFinishLoading (this=0x7fe89b819a00, finishTime=0) at Source/WebCore/loader/ResourceLoader.cpp:457
#30 0x000000010b00d05a in -[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:] (self=0x7fe89b41f710, _cmd=0x7fff882a73f4, connection=0x7fe89b463d20) at Source/WebCore/platform/network/mac/ResourceHandleMac.mm:835
#31 0x00007fff8b2cbf58 in __65-[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:]_block_invoke_0 ()
#32 0x00007fff8b2cbe9c in -[NSURLConnectionInternal _withConnectionAndDelegate:onlyActive:] ()
#33 0x00007fff8b2cbd98 in -[NSURLConnectionInternal _withActiveConnectionAndDelegate:] ()
#34 0x00007fff8d459f01 in ___delegate_didFinishLoading_block_invoke_0 ()
#35 0x00007fff8d44c3ca in ___withDelegateAsync_block_invoke_0 ()
#36 0x00007fff8d4dc56a in __block_global_1 ()
#37 0x00007fff8bb45724 in CFArrayApplyFunction ()
#38 0x00007fff8d43d554 in RunloopBlockContext::perform ()
#39 0x00007fff8d43d42b in MultiplexerSource::perform ()
#40 0x00007fff8bb27101 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#41 0x00007fff8bb26a25 in __CFRunLoopDoSources0 ()
#42 0x00007fff8bb49dc5 in __CFRunLoopRun ()
#43 0x00007fff8bb496b2 in CFRunLoopRunSpecific ()
#44 0x00007fff90e510a4 in RunCurrentEventLoopInMode ()
#45 0x00007fff90e50e42 in ReceiveNextEventCommon ()
#46 0x00007fff90e50cd3 in BlockUntilNextEventMatchingListInMode ()
#47 0x00007fff8c2a5613 in _DPSNextEvent ()
#48 0x00007fff8c2a4ed2 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] ()
#49 0x00007fff8c29c283 in -[NSApplication run] ()
#50 0x000000010b046bbc in WebCore::RunLoop::run () at Source/WebCore/platform/mac/RunLoopMac.mm:36
#51 0x0000000107a14cd3 in WebKit::WebProcessMain (commandLine=@0x7fff585795b8) at Source/WebKit2/WebProcess/mac/WebProcessMainMac.mm:187
#52 0x00000001078ff619 in WebKitMain (commandLine=@0x7fff585795b8) at Source/WebKit2/WebProcess/WebKitMain.cpp:58
#53 0x00000001078ff529 in WebKitMain (argc=12, argv=0x7fff58579660) at Source/WebKit2/WebProcess/WebKitMain.cpp:88
#54 0x0000000107686da2 in main (argc=12, argv=0x7fff58579660) at Source/WebKit2/mac/MainMacProcess.cpp:68</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800345</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-04 10:26:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Looks like the layer requirements are calculated before a layout was ever done. m_everHadLayout is 0 on the renderer that reproduces the problem. This should have no visual issues in practice as a layout will follow anyway and that will fix any eventual issues.

But it is crazy to rely on overlap rectangles when we haven&apos;t been laid out yet! We are in updateCompositingLayersAfterLayout() though, so someone is lying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800624</commentid>
    <comment_count>5</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 14:40:39 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Looks like the layer requirements are calculated before a layout was ever done. m_everHadLayout is 0 on the renderer that reproduces the problem. This should have no visual issues in practice as a layout will follow anyway and that will fix any eventual issues.
&gt; 
&gt; But it is crazy to rely on overlap rectangles when we haven&apos;t been laid out yet! We are in updateCompositingLayersAfterLayout() though, so someone is lying.

I know, I guess for that one the solution is to trigger a layout if needed and only if there was no layout just go ahead update just the compositing layers. 

I&apos;ve also added an ASSERT in updateCompositingLayers for !m_renderView-&gt;needsLayout() and after running the tests I&apos;ve also found the following case:

ASSERTION FAILED: !m_renderView-&gt;needsLayout()
/Source/WebCore/rendering/RenderLayerCompositor.cpp(411) : void WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer *)
1   0x10ae78bd3 WebCore::RenderLayerCompositor::updateCompositingLayers(WebCore::CompositingUpdateType, WebCore::RenderLayer*)
2   0x10ae4483e WebCore::RenderLayer::updateCompositingLayersAfterScroll()
3   0x10ae44346 WebCore::RenderLayer::scrollTo(int, int)
4   0x10ae46d1e WebCore::RenderLayer::setScrollOffset(WebCore::IntPoint const&amp;)
5   0x10b093bb0 WebCore::ScrollableArea::scrollPositionChanged(WebCore::IntPoint const&amp;)
6   0x10b093ea1 WebCore::ScrollableArea::setScrollOffsetFromAnimation(WebCore::IntPoint const&amp;)
7   0x10b0963eb WebCore::ScrollAnimator::notifyPositionChanged()
8   0x10b09a759 WebCore::ScrollAnimatorMac::notifyPositionChanged()
9   0x10b09a2a2 WebCore::ScrollAnimatorMac::immediateScrollTo(WebCore::FloatPoint const&amp;)
10  0x10b09a1c3 WebCore::ScrollAnimatorMac::scrollToOffsetWithoutAnimation(WebCore::FloatPoint const&amp;)
11  0x10b0939fc WebCore::ScrollableArea::scrollToOffsetWithoutAnimation(WebCore::FloatPoint const&amp;)
12  0x10ae43ba2 WebCore::RenderLayer::scrollToOffset(WebCore::IntSize const&amp;, WebCore::RenderLayer::ScrollOffsetClamping)
13  0x10adbc433 WebCore::RenderLayer::scrollToXOffset(int, WebCore::RenderLayer::ScrollOffsetClamping)
14  0x10aea43ad WebCore::RenderMarquee::timerFired(WebCore::Timer&lt;WebCore::RenderMarquee&gt;*)
15  0x10aea5853 WebCore::Timer&lt;WebCore::RenderMarquee&gt;::fired()
16  0x10b3e37e6 WebCore::ThreadTimers::sharedTimerFiredInternal()
17  0x10b3e3579 WebCore::ThreadTimers::sharedTimerFired()
18  0x10b112543 WebCore::timerFired(__CFRunLoopTimer*, void*)
19  0x7fff8bb64da4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
20  0x7fff8bb648bd __CFRunLoopDoTimer
21  0x7fff8bb4a099 __CFRunLoopRun
22  0x7fff8bb496b2 CFRunLoopRunSpecific
23  0x7fff90e510a4 RunCurrentEventLoopInMode
24  0x7fff90e50e42 ReceiveNextEventCommon
25  0x7fff90e50cd3 BlockUntilNextEventMatchingListInMode
26  0x7fff8c2a5613 _DPSNextEvent
27  0x7fff8c2a4ed2 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
28  0x7fff8c29c283 -[NSApplication run]
29  0x10b043afc WebCore::RunLoop::run()
30  0x107a09563 WebKit::WebProcessMain(WebKit::CommandLine const&amp;)
31  0x1078f3459 WebKitMain(WebKit::CommandLine const&amp;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800627</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 14:44:34 -0800</bug_when>
    <thetext>(In reply to comment #5)

BTW, that happens with fast/events/tabindex-focus-blur-all.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800644</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-04 14:59:15 -0800</bug_when>
    <thetext>Marquee has historically been a source of problems because of this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800657</commentid>
    <comment_count>8</comment_count>
      <attachid>181385</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 15:05:57 -0800</bug_when>
    <thetext>Created attachment 181385
test case for second assert

A simple way to reproduce the second case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>800672</commentid>
    <comment_count>9</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-04 15:18:08 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=181385) [details]
&gt; test case for second assert
&gt; 
&gt; A simple way to reproduce the second case.

Looks like replacing one line in RenderMarquee::timerFired fixes the problem. It actually makes more sense too, as having a layout pending on other elements might actually influence the size of this element, too.

- if (m_layer-&gt;renderer()-&gt;needsLayout())
+ if (m_layer-&gt;renderer()-&gt;view()-&gt;needsLayout())

That&apos;s been in there since 2003. Do you mind if I go ahead and make both changes in one patch? Adding that assert forces me to do both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801755</commentid>
    <comment_count>10</comment_count>
      <attachid>181584</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-07 15:52:23 -0800</bug_when>
    <thetext>Created attachment 181584
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801758</commentid>
    <comment_count>11</comment_count>
      <attachid>181584</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-07 15:53:02 -0800</bug_when>
    <thetext>Comment on attachment 181584
Patch V1

Looks like I forget to remove a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801763</commentid>
    <comment_count>12</comment_count>
      <attachid>181587</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-07 15:56:48 -0800</bug_when>
    <thetext>Created attachment 181587
Patch V2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801867</commentid>
    <comment_count>13</comment_count>
      <attachid>181587</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-07 17:18:54 -0800</bug_when>
    <thetext>Comment on attachment 181587
Patch V2

Attachment 181587 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15731948

New failing tests:
compositing/geometry/assert-marquee-timer.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>801915</commentid>
    <comment_count>14</comment_count>
      <attachid>181587</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-07 18:31:41 -0800</bug_when>
    <thetext>Comment on attachment 181587
Patch V2

Attachment 181587 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15742798

New failing tests:
platform/chromium/virtual/softwarecompositing/geometry/assert-marquee-timer.html
compositing/geometry/assert-marquee-timer.html
platform/chromium/virtual/softwarecompositing/geometry/assert-layout-not-done.html
compositing/geometry/assert-layout-not-done.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802775</commentid>
    <comment_count>15</comment_count>
      <attachid>181797</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-08 16:20:42 -0800</bug_when>
    <thetext>Created attachment 181797
Patch V3

Fixed the test. Will set the CQ+ after EWS passes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802891</commentid>
    <comment_count>16</comment_count>
      <attachid>181797</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 18:59:12 -0800</bug_when>
    <thetext>Comment on attachment 181797
Patch V3

Clearing flags on attachment: 181797

Committed r139146: &lt;http://trac.webkit.org/changeset/139146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>802892</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-08 18:59:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803043</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-08 22:45:53 -0800</bug_when>
    <thetext>Is it possible that this patch caused these flaky assertion failures?

http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r139159%20(5588)/dom/html/level2/html/HTMLDocument08-crash-log.txt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803326</commentid>
    <comment_count>19</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2013-01-09 07:26:38 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Is it possible that this patch caused these flaky assertion failures?
&gt; 
&gt; http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r139159%20(5588)/dom/html/level2/html/HTMLDocument08-crash-log.txt

It&apos;s the ASSERT I&apos;ve added in this patch. That test didn&apos;t crash on my machine, so that&apos;s why I didn&apos;t fix that case too.

I think that this ASSERT will catch other cases over time, so I think it is better to just log a different bug and fix that particular issue. I will investigate it today.

@Simon: Looking at the crashlog, I suppose the events are in following order: finished layout, scheduled for compositor update, did some DOM mutation that set needs layout, initial compositor timer fired.

A fix would be to cancel the compositor update timer when a layout is scheduled and reschedule the timer after the layout is done. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803381</commentid>
    <comment_count>20</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-09 09:16:30 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; Is it possible that this patch caused these flaky assertion failures?
&gt; &gt; 
&gt; &gt; http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK2%20(Tests)/r139159%20(5588)/dom/html/level2/html/HTMLDocument08-crash-log.txt
&gt; 
&gt; It&apos;s the ASSERT I&apos;ve added in this patch. That test didn&apos;t crash on my machine, so that&apos;s why I didn&apos;t fix that case too.
&gt; 
&gt; I think that this ASSERT will catch other cases over time, so I think it is better to just log a different bug and fix that particular issue. I will investigate it today.
&gt; 
&gt; @Simon: Looking at the crashlog, I suppose the events are in following order: finished layout, scheduled for compositor update, did some DOM mutation that set needs layout, initial compositor timer fired.
&gt; 
&gt; A fix would be to cancel the compositor update timer when a layout is scheduled and reschedule the timer after the layout is done. What do you think?

Or maybe the compositor update should just bail if layout is dirty (as long as it will happen after the next layout).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803429</commentid>
    <comment_count>21</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-01-09 10:03:15 -0800</bug_when>
    <thetext>This new assertion is covered by bug 106419.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>181252</attachid>
            <date>2013-01-03 17:09:43 -0800</date>
            <delta_ts>2013-01-03 17:09:43 -0800</delta_ts>
            <desc>testcase</desc>
            <filename>bug_assert_geometry_map.html</filename>
            <type>text/html</type>
            <size>320</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PHN0eWxlPgojY29udGFpbmVyIHsKCXBvc2l0aW9uOiByZWxhdGl2ZTsKCXotaW5kZXg6IDA7Cgl0
b3A6IDEyM3B4OyAvKiBlYXN5IHRvIGRldGVjdCB2YWx1ZXMgKi8KCWxlZnQ6IDEyM3B4OyAvKiBl
YXN5IHRvIGRldGVjdCB2YWx1ZXMgKi8KfQojY2hpbGQgewoJd2lkdGg6IDEwMHB4OwoJaGVpZ2h0
OiAxMDBweDsKCWJhY2tncm91bmQtY29sb3I6IGdyYXk7Cgktd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlWigtMXB4KSByb3RhdGUoNDVkZWcpOwp9Cjwvc3R5bGU+Cgo8ZGl2IGlkPSJjb250YWlu
ZXIiPgoJPGRpdiBpZD0iY2hpbGQiPjwvZGl2Pgo8L2Rpdj4=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>181385</attachid>
            <date>2013-01-04 15:05:57 -0800</date>
            <delta_ts>2013-01-04 15:05:57 -0800</delta_ts>
            <desc>test case for second assert</desc>
            <filename>marquee.html</filename>
            <type>text/html</type>
            <size>1256</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">PG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0i
MSIgdHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91bnQ9IjEiPmNvbnRlbnQgZ29lcyBpbiBoZXJl
PC9tYXJxdWVlPgo8bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNj
cm9sbGRlbGF5PSIyIiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+Y29udGVudCBn
b2VzIGluIGhlcmU8L21hcnF1ZWU+CjxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlv
bj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjMiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIx
Ij5jb250ZW50IGdvZXMgaW4gaGVyZTwvbWFycXVlZT4KPG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9s
bCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0iNCIgdHJ1ZXNwZWVkPSJ0cnVlIiBzY3Jv
bGxhbW91bnQ9IjEiPmNvbnRlbnQgZ29lcyBpbiBoZXJlPC9tYXJxdWVlPgo8bWFycXVlZSBiZWhh
dmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSI1IiB0cnVlc3BlZWQ9
InRydWUiIHNjcm9sbGFtb3VudD0iMSI+Y29udGVudCBnb2VzIGluIGhlcmU8L21hcnF1ZWU+Cjxt
YXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjYi
IHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj5jb250ZW50IGdvZXMgaW4gaGVyZTwv
bWFycXVlZT4KPG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3Jv
bGxkZWxheT0iNyIgdHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91bnQ9IjEiPmNvbnRlbnQgZ29l
cyBpbiBoZXJlPC9tYXJxdWVlPgo8bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249
ImxlZnQiIHNjcm9sbGRlbGF5PSI4IiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+
Y29udGVudCBnb2VzIGluIGhlcmU8L21hcnF1ZWU+Cgo8cD5Db3VudGVyOiA8c3BhbiBpZD0iY291
bnRlciI+PC9zcGFuPjwvcD4KCjxzY3JpcHQ+CnZhciBjb3VudGVyID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNvdW50ZXIiKTsKdmFyIHRleHROb2RlID0gZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUoKTsKY291bnRlci5hcHBlbmRDaGlsZCh0ZXh0Tm9kZSk7CnNldEludGVydmFsKGZ1bmN0aW9u
KCkgewoJdGV4dE5vZGUubm9kZVZhbHVlID0gTWF0aC5yYW5kb20oKTsKfSwgMTApOwo8L3Njcmlw
dD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181584</attachid>
            <date>2013-01-07 15:52:23 -0800</date>
            <delta_ts>2013-01-07 15:56:48 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug106068.patch</filename>
            <type>text/plain</type>
            <size>14635</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YWZhYWE0Li4wNmYzMmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEt
MDcgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIEFz
c2VydCBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjA2OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
YXNzZXJ0LWxheW91dC1ub3QtZG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbDogQWRkZWQuIFRl
c3RpbmcgZm9yIHRoZSBjYXNlIHdoZW4gY29tcG9zaXRvciBpcyB0cmlnZ2VyZWQgYmVmb3JlIHRo
ZSBmaXJzdCBsYXlvdXQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1h
cnF1ZWUtdGltZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci5odG1sOiBBZGRlZC4gVGVzdGVkIGZvciB0aGUg
Y2FzZSB3aGVuIHRoZSBtYXJxdWVlIG1pZ2h0IHRyaWdnZXIgY29tcG9zaXRvciB1cGRhdGVzLCB3
aGlsZSBhIGxheW91dCBpcyBzdGlsbCBwZW5kaW5nLgorCiAyMDEzLTAxLTA0ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdh
cmRlbmluZywgc2tpcCBhIG5ldyBmYWlsaW5nIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbGF5b3V0LW5vdC1kb25lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRv
bmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OGM2
MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9h
c3NlcnQtbGF5b3V0LW5vdC1kb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgOTE1eDU4NQorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDU4
NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHgxMTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHgxMDAKK2xheWVyIGF0ICgxMzEsMTMxKSBzaXplIDc4NHgxMDAKKyAgUmVuZGVyQmxvY2sgKHJl
bGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDEwMAorbGF5ZXIgYXQg
KDEzMSwxMzEpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDEwMHgxMDAgW2JnY29sb3I9IzgwODA4MF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjY3NmJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LWxheW91dC1ub3QtZG9uZS5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPHN0eWxl
PgorICAgIC5jb250YWluZXIgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAg
IHotaW5kZXg6IDA7CisgICAgICAgIHRvcDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVl
cyAgKi8KKyAgICAgICAgbGVmdDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVlcyAqLwor
ICAgIH0KKyAgICAjY2hpbGQgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAg
PGJvZHk+CisgICAgICAgIDwhLS0gVGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGVyZSdzIG5vIEFTU0VS
VCBpbiBkZWJ1ZyBtb2RlLiBUaGVyZSBzaG91bGQgYmUgYSBncmF5IHJlY3RhbmdsZSBvbiBzY3Jl
ZW4uIC0tPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBpZD0iY2hpbGQiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZGRhNzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbWFy
cXVlZS10aW1lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHgzMzAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDMzMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDMwNgorICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MjcyCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwyODgpIHNpemUg
Nzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1eDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTU6ICJDb3VudGVyOiIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsOCkgc2l6
ZSA3ODR4MzAgc2Nyb2xsWCAtNzU0CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwwKSBz
aXplIDc4NHgzMAorbGF5ZXIgYXQgKDgsNDIpIHNpemUgNzg0eDMwIHNjcm9sbFggLTc2MAorICBS
ZW5kZXJCbG9jayB7TUFSUVVFRX0gYXQgKDAsMzQpIHNpemUgNzg0eDMwCitsYXllciBhdCAoOCw3
Nikgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAtNzY2CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAo
MCw2OCkgc2l6ZSA3ODR4MzAKK2xheWVyIGF0ICg4LDExMCkgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAt
NzY2CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwxMDIpIHNpemUgNzg0eDMwCitsYXll
ciBhdCAoOCwxNDQpIHNpemUgNzg0eDMwIHNjcm9sbFggLTc3NAorICBSZW5kZXJCbG9jayB7TUFS
UVVFRX0gYXQgKDAsMTM2KSBzaXplIDc4NHgzMAorbGF5ZXIgYXQgKDgsMTc4KSBzaXplIDc4NHgz
MCBzY3JvbGxYIC03NzEKKyAgUmVuZGVyQmxvY2sge01BUlFVRUV9IGF0ICgwLDE3MCkgc2l6ZSA3
ODR4MzAKK2xheWVyIGF0ICg4LDIxMikgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAtNzc0CisgIFJlbmRl
ckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwyMDQpIHNpemUgNzg0eDMwCitsYXllciBhdCAoOCwyNDYp
IHNpemUgNzg0eDMwIHNjcm9sbFggLTc3NgorICBSZW5kZXJCbG9jayB7TUFSUVVFRX0gYXQgKDAs
MjM4KSBzaXplIDc4NHgzMAorbGF5ZXIgYXQgKDc2Miw4KSBzaXplIDEwMHgzMCBiYWNrZ3JvdW5k
Q2xpcCBhdCAoOCw4KSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDgpIHNpemUgNzg0eDMwIG91dGxp
bmVDbGlwIGF0ICg4LDgpIHNpemUgNzg0eDMwCisgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCww
KSBzaXplIDEwMHgzMCBbYmdjb2xvcj0jMDA4MDAwXQorbGF5ZXIgYXQgKDc2OCw0Mikgc2l6ZSAx
MDB4MzAgYmFja2dyb3VuZENsaXAgYXQgKDgsNDIpIHNpemUgNzg0eDMwIGNsaXAgYXQgKDgsNDIp
IHNpemUgNzg0eDMwIG91dGxpbmVDbGlwIGF0ICg4LDQyKSBzaXplIDc4NHgzMAorICBSZW5kZXJC
bG9jayB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVy
IGF0ICg3NzQsNzYpIHNpemUgMTAweDMwIGJhY2tncm91bmRDbGlwIGF0ICg4LDc2KSBzaXplIDc4
NHgzMCBjbGlwIGF0ICg4LDc2KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCw3Nikgc2l6
ZSA3ODR4MzAKKyAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUgMTAweDMwIFtiZ2Nv
bG9yPSMwMDgwMDBdCitsYXllciBhdCAoNzc0LDExMCkgc2l6ZSAxMDB4MzAgYmFja2dyb3VuZENs
aXAgYXQgKDgsMTEwKSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDExMCkgc2l6ZSA3ODR4MzAgb3V0
bGluZUNsaXAgYXQgKDgsMTEwKSBzaXplIDc4NHgzMAorICBSZW5kZXJCbG9jayB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICg3ODIsMTQ0KSBz
aXplIDEwMHgzMCBiYWNrZ3JvdW5kQ2xpcCBhdCAoOCwxNDQpIHNpemUgNzg0eDMwIGNsaXAgYXQg
KDgsMTQ0KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCwxNDQpIHNpemUgNzg0eDMwCisg
IFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEwMHgzMCBbYmdjb2xvcj0jMDA4MDAw
XQorbGF5ZXIgYXQgKDc3OSwxNzgpIHNpemUgMTAweDMwIGJhY2tncm91bmRDbGlwIGF0ICg4LDE3
OCkgc2l6ZSA3ODR4MzAgY2xpcCBhdCAoOCwxNzgpIHNpemUgNzg0eDMwIG91dGxpbmVDbGlwIGF0
ICg4LDE3OCkgc2l6ZSA3ODR4MzAKKyAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUg
MTAweDMwIFtiZ2NvbG9yPSMwMDgwMDBdCitsYXllciBhdCAoNzgyLDIxMikgc2l6ZSAxMDB4MzAg
YmFja2dyb3VuZENsaXAgYXQgKDgsMjEyKSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDIxMikgc2l6
ZSA3ODR4MzAgb3V0bGluZUNsaXAgYXQgKDgsMjEyKSBzaXplIDc4NHgzMAorICBSZW5kZXJCbG9j
ayB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0
ICg3ODQsMjQ2KSBzaXplIDEwMHgzMCBiYWNrZ3JvdW5kQ2xpcCBhdCAoOCwyNDYpIHNpemUgNzg0
eDMwIGNsaXAgYXQgKDgsMjQ2KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCwyNDYpIHNp
emUgNzg0eDMwCisgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEwMHgzMCBbYmdj
b2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZGE2NjUyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgor
ICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigxcHgpOworICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNu
J3QgdHJpZ2dlciBhbiBBU1NFUlQgaW4gZGVidWcgbW9kZS4gSXQgbWFrZXMgc3VyZSB0aGF0IHRo
ZSB0aW1lcgorICAgICAgICAgICAgdXNlZCB0byB1cGRhdGUgdGhlIG1hcnF1ZWUgd2lsbCBub3Qg
cnVuIGJlZm9yZSB0aGUgbGF5b3V0IGlzIGRvbmUuIC0tPgorICAgICAgIAorICAgICAgICA8bWFy
cXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSIxIiB0
cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQiPjwv
c3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVj
dGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjIiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50
PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgPG1h
cnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0iMyIg
dHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91bnQ9IjEiPjxzcGFuIGNsYXNzPSJjb250ZW50Ij48
L3NwYW4+PC9tYXJxdWVlPgorICAgICAgICA8bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJl
Y3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSI0IiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3Vu
dD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQiPjwvc3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxt
YXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjUi
IHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+
PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgPG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGly
ZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0iNiIgdHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91
bnQ9IjEiPjxzcGFuIGNsYXNzPSJjb250ZW50Ij48L3NwYW4+PC9tYXJxdWVlPgorICAgICAgICA8
bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSI3
IiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQi
Pjwvc3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRp
cmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjgiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1v
dW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKworCisgICAg
ICAgIDxwPkNvdW50ZXI6IDxzcGFuIGlkPSJjb3VudGVyIj48L3NwYW4+PC9wPgorCisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIHZhciB0aW1l
cyA9IDA7CisgICAgICAgICAgICAvLyBUcmlnZ2VyICJwZW5kaW5nIGxheW91dHMiLCB0aGF0IG1p
Z2h0IHJ1biBhZnRlciB0aGUgbWFycXVlZSB0aW1lciBpcyBmaXJlZC4KKyAgICAgICAgICAgIHZh
ciBjb3VudGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50ZXIiKTsKKyAgICAgICAg
ICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCk7CisgICAgICAgICAg
ICBjb3VudGVyLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciBpbnRlcnZh
bCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRleHROb2RlLm5v
ZGVWYWx1ZSA9IE1hdGgucmFuZG9tKCk7CisgICAgICAgICAgICAgICAgaWYgKCgrK3RpbWVzKSA+
PSAxMCkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5ub2RlVmFsdWUgPSAiIjsKKyAg
ICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0s
IDEwKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDFkNjY0Li5mNTliNzg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTMtMDEtMDcgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxh
Y2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIEFzc2VydCBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6
bWFwVG9Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNjA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBhc3NlcnQgd2FzIGR1ZSB0byBhIHBlbmRpbmcgbGF5b3V0LCBzbyB0aGUgdmFs
dWVzIHVzZWQgdG8gY29tcHV0ZSB0aGUgbGF5ZXIgYm91bmRpbmcgYm94ZXMgd2VyZSBpbmNvcnJl
Y3QuCisgICAgICAgIFRoYXQgd2FzIGJlY2F1c2Ugb2YgdGhlIERvY3VtZW50OjpzZXRWaXN1YWxV
cGRhdGVzQWxsb3dlZCBtZWNoYW5pc20sIHdoaWNoIHRyaWdnZXJzIGEgY29tcG9zaXRvciB1cGRh
dGUKKyAgICAgICAgYW5kIGEgcmVwYWludCwgYnV0IGJlZm9yZSB0aGlzIHBhdGNoIGRpZG4ndCBj
aGVjayB3aGV0aGVyIGEgbGF5b3V0IHdhcyBwZW5kaW5nIG9yIG5vdC4KKworICAgICAgICBBZGRl
ZCBhIGNoZWNrIGluIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZCBmb3IgcGVuZGlu
ZyBsYXlvdXRzIGFuZCBiYWlsZWQgd2hlbiBzdWNoIGNhc2UgaGFwcGVuZWQuCisgICAgICAgIEEg
bGF5b3V0IHdpbGwgY29tZSBhbnl3YXkgYW5kIHRyaWdnZXIgdGhlIGNvcnJlY3QgdXBkYXRlcy4g
Q291bGRuJ3Qgbm90IGZvcmNlIGFuIGlubGluZSBsYXlvdXQgYXQgdGhhdCB0aW1lCisgICAgICAg
IGFzIHRoaXMgZnVuY3Rpb24gaXMgc29tZXRpbWVzIGNhbGxlZCByZWFsbHkgc29vbiwgd2hlbiB0
aGUgV2ViS2l0IHBhcnRzIGFyZSBub3QgZnVsbHkgY3JlYXRlZCB5ZXQgYW5kIHVwZGF0ZXMgd2Vy
ZQorICAgICAgICBjYWxsaW5nIGJhY2sgaW50byBzb21lIGNsaWVudCBjYWxsYmFja3MgdGhhdCB3
ZXJlIG5vdCByZWFkeS4KKworICAgICAgICBBbHNvIGFkZGVkIGFuIGFzc2VydCBpbiBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzIHRvIGNoZWNrIGZvciBvdGhl
ciBjYXNlcyB0aGF0IG1pZ2h0CisgICAgICAgIHRyeSB0byB1cGRhdGUgdGhlIGxheWVycyB3aXRo
IGEgbGF5b3V0IHBlbmRpbmcuIFRoYXQgb25lIGxlZCB0byBmaW5kaW5nIGFuIGlzc3VlIGluIHRo
ZSBSZW5kZXJNYXJxdWVlLCB3aGljaAorICAgICAgICB3YXMgdXBkYXRpbmcgb24gYSB0aW1lciBj
YWxsYmFjay4gSXQgbWlnaHQgaGFwcGVuIHRoYXQgYSBsYXlvdXQgaXMgcGVuZGluZyB3aGlsZSB0
aGlzIHRpbWVyIGZpcmVzIGFuZCBpdCAKKyAgICAgICAgdHJpZXMgdG8gdXBkYXRlIHRoZSBzY3Jv
bGwgcG9zaXRpb24gb2YgdGhlIGxheWVycyB3aGlsZSBhIGxheW91dCBpcyBzdGlsbCBkdWUuCisK
KyAgICAgICAgVGhlcmUgd2FzIGFscmVhZHkgYSBwcm90ZWN0aW9uIHRvIGJhaWwgaWYgYSBsYXlv
dXQgaXMgcGVuZGluZyBpbiBSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkLCBzbyBJJ3ZlIGp1c3Qg
YnJvYWRlbmVkIHRoZSBzY29wZQorICAgICAgICB0byB0aGUgd2hvbGUgUmVuZGVyVmlldyB0byBj
YXRjaCBhbGwgdGhlIGxheW91dCByZXF1ZXN0cy4KKworICAgICAgICBUZXN0czogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvYXNzZXJ0LWxheW91dC1ub3QtZG9uZS5odG1sCisgICAgICAgICAgICAgICBj
b21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci5odG1sCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlv
dXQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWFycXVlZTo6dGltZXJGaXJlZCk6CisKIDIwMTMtMDEtMDQgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBDbGlj
a2luZyBvbiBhIHdvcmQgdGhhdCBpcyBzZWxlY3RlZCBpbiBhbiBlZGl0YWJsZSBhcmVhIGRlbGV0
ZXMgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQ2MWZhZDQuLjU5OWI4MDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTI1NCw2ICsxMjU0LDE0IEBAIHZvaWQgRG9jdW1lbnQ6
OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wgdmlzdWFsVXBkYXRlc0FsbG93ZWQpCiAgICAg
aWYgKCF2aXN1YWxVcGRhdGVzQWxsb3dlZCkKICAgICAgICAgcmV0dXJuOwogCisgICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSB2aWV3KCk7CisgICAgYm9vbCBuZWVkc0xheW91dCA9IGZyYW1lVmll
dyAmJiByZW5kZXJlcigpICYmIChmcmFtZVZpZXctPmxheW91dFBlbmRpbmcoKSB8fCByZW5kZXJl
cigpLT5uZWVkc0xheW91dCgpKTsKKyAgICBpZiAobmVlZHNMYXlvdXQpIHsKKyAgICAgICAgLy8g
VGhlcmUgbWlnaHQgYmUgYSBsYXlvdXQgcGVuZGluZywgc28gbWFrZSBzdXJlIHdlIGRvbid0IHVw
ZGF0ZSB0aGUgc2NyZWVuIHdpdGggYm9ndXMgZGF0YS4KKyAgICAgICAgLy8gVGhlIGxheW91dCB3
aWxsIGFjdHVhbGx5IHVwZGF0ZSB0aGUgY29tcG9zaXRpbmcgbGF5ZXJzIGFuZCByZXBhaW50IGlm
IG5lZWRlZC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9D
T01QT1NJVElORykKICAgICBpZiAodmlldygpKQogICAgICAgICB2aWV3KCktPnVwZGF0ZUNvbXBv
c2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXQoKTsKQEAgLTE4ODEsNyArMTg4OSw3IEBAIHZvaWQgRG9j
dW1lbnQ6OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCkKICAgICB9CiB9CiAKLXZvaWQgRG9j
dW1lbnQ6OnVwZGF0ZUxheW91dCgpCitib29sIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKEVsZW1lbnQqIG9lID0gb3duZXJF
bGVtZW50KCkpCkBAIC0xODkxLDkgKzE4OTksMTEgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5
b3V0KCkKIAogICAgIFN0YWNrU3RhdHM6OkxheW91dENoZWNrUG9pbnQgbGF5b3V0Q2hlY2tQb2lu
dDsKICAgICAvLyBPbmx5IGRvIGEgbGF5b3V0IGlmIGNoYW5nZXMgaGF2ZSBvY2N1cnJlZCB0aGF0
IG1ha2UgaXQgbmVjZXNzYXJ5LiAgICAgIAotICAgIEZyYW1lVmlldyogdiA9IHZpZXcoKTsKLSAg
ICBpZiAodiAmJiByZW5kZXJlcigpICYmICh2LT5sYXlvdXRQZW5kaW5nKCkgfHwgcmVuZGVyZXIo
KS0+bmVlZHNMYXlvdXQoKSkpCi0gICAgICAgIHYtPmxheW91dCgpOworICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gdmlldygpOworICAgIGJvb2wgbmVlZHNMYXlvdXQgPSBmcmFtZVZpZXcgJiYg
cmVuZGVyZXIoKSAmJiAoZnJhbWVWaWV3LT5sYXlvdXRQZW5kaW5nKCkgfHwgcmVuZGVyZXIoKS0+
bmVlZHNMYXlvdXQoKSk7CisgICAgaWYgKG5lZWRzTGF5b3V0KQorICAgICAgICBmcmFtZVZpZXct
PmxheW91dCgpOworICAgIHJldHVybiBuZWVkc0xheW91dDsKIH0KIAogLy8gRklYTUU6IFRoaXMg
aXMgYSBiYWQgaWRlYSBhbmQgbmVlZHMgdG8gYmUgcmVtb3ZlZCBldmVudHVhbGx5LgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAppbmRleCA0Nzk5MDcwLi5lN2JlOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtNTI5LDcgKzUyOSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlY2FsY1N0eWxlKFN0eWxlQ2hh
bmdlID0gTm9DaGFuZ2UpOwogICAgIGJvb2wgY2hpbGROZWVkc0FuZE5vdEluU3R5bGVSZWNhbGMo
KTsKICAgICB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKLSAgICB2b2lkIHVwZGF0ZUxheW91
dCgpOworICAgIGJvb2wgdXBkYXRlTGF5b3V0KCk7CiAgICAgdm9pZCB1cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBzdHls
ZUZvckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50Kik7CiAgICAgUGFz
c1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRl
eCA3YjcyOGIyLi40MzRlMmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtNDA4LDYgKzQwOCw4IEBAIHZvaWQgUmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyhDb21wb3NpdGluZ1VwZGF0
ZVR5cGUgdXBkYXRlCiAgICAgaWYgKCFtX3JlZXZhbHVhdGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0
ICYmICFtX2NvbXBvc2l0aW5nKQogICAgICAgICByZXR1cm47CiAKKyAgICBBU1NFUlQoIW1fcmVu
ZGVyVmlldy0+bmVlZHNMYXlvdXQoKSk7CisKICAgICBBbmltYXRpb25VcGRhdGVCbG9jayBhbmlt
YXRpb25VcGRhdGVCbG9jayhtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5mcmFtZSgpLT5hbmlt
YXRpb24oKSk7CiAKICAgICBib29sIGNoZWNrRm9ySGllcmFyY2h5VXBkYXRlID0gbV9yZWV2YWx1
YXRlQ29tcG9zaXRpbmdBZnRlckxheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcAppbmRleCBkNTRjOTA5Li44OWIwOTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAi
SFRNTE1hcnF1ZWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAKIHVzaW5nIG5hbWVzcGFj
ZSBzdGQ7CiAKQEAgLTI1NCw3ICsyNTUsNyBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1h
cnF1ZWVTdHlsZSgpCiAKIHZvaWQgUmVuZGVyTWFycXVlZTo6dGltZXJGaXJlZChUaW1lcjxSZW5k
ZXJNYXJxdWVlPiopCiB7Ci0gICAgaWYgKG1fbGF5ZXItPnJlbmRlcmVyKCktPm5lZWRzTGF5b3V0
KCkpCisgICAgaWYgKG1fbGF5ZXItPnJlbmRlcmVyKCktPnZpZXcoKS0+bmVlZHNMYXlvdXQoKSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmIChtX3Jlc2V0KSB7Cg==
</data>
<flag name="review"
          id="199268"
          type_id="1"
          status="-"
          setter="achicu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181587</attachid>
            <date>2013-01-07 15:56:48 -0800</date>
            <delta_ts>2013-01-08 16:20:42 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug106068_2.patch</filename>
            <type>text/plain</type>
            <size>13152</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3YWZhYWE0Li4wNmYzMmU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEt
MDcgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIEFz
c2VydCBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjA2OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
YXNzZXJ0LWxheW91dC1ub3QtZG9uZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNv
bXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbDogQWRkZWQuIFRl
c3RpbmcgZm9yIHRoZSBjYXNlIHdoZW4gY29tcG9zaXRvciBpcyB0cmlnZ2VyZWQgYmVmb3JlIHRo
ZSBmaXJzdCBsYXlvdXQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1h
cnF1ZWUtdGltZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21wb3NpdGluZy9n
ZW9tZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci5odG1sOiBBZGRlZC4gVGVzdGVkIGZvciB0aGUg
Y2FzZSB3aGVuIHRoZSBtYXJxdWVlIG1pZ2h0IHRyaWdnZXIgY29tcG9zaXRvciB1cGRhdGVzLCB3
aGlsZSBhIGxheW91dCBpcyBzdGlsbCBwZW5kaW5nLgorCiAyMDEzLTAxLTA0ICBDc2FiYSBPc3p0
cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdh
cmRlbmluZywgc2tpcCBhIG5ldyBmYWlsaW5nIHRlc3QuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbGF5b3V0LW5vdC1kb25lLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRv
bmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OGM2
MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9h
c3NlcnQtbGF5b3V0LW5vdC1kb25lLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK2xheWVy
IGF0ICgwLDApIHNpemUgOTE1eDU4NQorICBSZW5kZXJWaWV3IGF0ICgwLDApIHNpemUgODAweDU4
NQorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MTE2CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAo
MCwwKSBzaXplIDgwMHgxMTYKKyAgICBSZW5kZXJCb2R5IHtCT0RZfSBhdCAoOCw4KSBzaXplIDc4
NHgxMDAKK2xheWVyIGF0ICgxMzEsMTMxKSBzaXplIDc4NHgxMDAKKyAgUmVuZGVyQmxvY2sgKHJl
bGF0aXZlIHBvc2l0aW9uZWQpIHtESVZ9IGF0ICgwLDApIHNpemUgNzg0eDEwMAorbGF5ZXIgYXQg
KDEzMSwxMzEpIHNpemUgMTAweDEwMAorICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXpl
IDEwMHgxMDAgW2JnY29sb3I9IzgwODA4MF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iZjY3NmJlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LWxheW91dC1ub3QtZG9uZS5o
dG1sCkBAIC0wLDAgKzEsMjMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPHN0eWxl
PgorICAgIC5jb250YWluZXIgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAg
IHotaW5kZXg6IDA7CisgICAgICAgIHRvcDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVl
cyAgKi8KKyAgICAgICAgbGVmdDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVlcyAqLwor
ICAgIH0KKyAgICAjY2hpbGQgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdo
dDogMTAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgIC13ZWJr
aXQtdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDBweCk7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAg
PGJvZHk+CisgICAgICAgIDwhLS0gVGhpcyB0ZXN0IHBhc3NlcyBpZiB0aGVyZSdzIG5vIEFTU0VS
VCBpbiBkZWJ1ZyBtb2RlLiBUaGVyZSBzaG91bGQgYmUgYSBncmF5IHJlY3RhbmdsZSBvbiBzY3Jl
ZW4uIC0tPgorICAgICAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBpZD0iY2hpbGQiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXItZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVkZGRhNzAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbWFy
cXVlZS10aW1lci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1MCBAQAorbGF5ZXIgYXQgKDAsMCkg
c2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBh
dCAoMCwwKSBzaXplIDgwMHgzMzAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUg
ODAweDMzMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDMwNgorICAg
ICAgUmVuZGVyQmxvY2sgKGFub255bW91cykgYXQgKDAsMCkgc2l6ZSA3ODR4MjcyCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXpl
IDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCisgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwyODgpIHNpemUg
Nzg0eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDU1eDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNTU6ICJDb3VudGVyOiIKKyAgICAgICAg
UmVuZGVySW5saW5lIHtTUEFOfSBhdCAoMCwwKSBzaXplIDB4MAorbGF5ZXIgYXQgKDgsOCkgc2l6
ZSA3ODR4MzAgc2Nyb2xsWCAtNzU0CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwwKSBz
aXplIDc4NHgzMAorbGF5ZXIgYXQgKDgsNDIpIHNpemUgNzg0eDMwIHNjcm9sbFggLTc2MAorICBS
ZW5kZXJCbG9jayB7TUFSUVVFRX0gYXQgKDAsMzQpIHNpemUgNzg0eDMwCitsYXllciBhdCAoOCw3
Nikgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAtNzY2CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAo
MCw2OCkgc2l6ZSA3ODR4MzAKK2xheWVyIGF0ICg4LDExMCkgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAt
NzY2CisgIFJlbmRlckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwxMDIpIHNpemUgNzg0eDMwCitsYXll
ciBhdCAoOCwxNDQpIHNpemUgNzg0eDMwIHNjcm9sbFggLTc3NAorICBSZW5kZXJCbG9jayB7TUFS
UVVFRX0gYXQgKDAsMTM2KSBzaXplIDc4NHgzMAorbGF5ZXIgYXQgKDgsMTc4KSBzaXplIDc4NHgz
MCBzY3JvbGxYIC03NzEKKyAgUmVuZGVyQmxvY2sge01BUlFVRUV9IGF0ICgwLDE3MCkgc2l6ZSA3
ODR4MzAKK2xheWVyIGF0ICg4LDIxMikgc2l6ZSA3ODR4MzAgc2Nyb2xsWCAtNzc0CisgIFJlbmRl
ckJsb2NrIHtNQVJRVUVFfSBhdCAoMCwyMDQpIHNpemUgNzg0eDMwCitsYXllciBhdCAoOCwyNDYp
IHNpemUgNzg0eDMwIHNjcm9sbFggLTc3NgorICBSZW5kZXJCbG9jayB7TUFSUVVFRX0gYXQgKDAs
MjM4KSBzaXplIDc4NHgzMAorbGF5ZXIgYXQgKDc2Miw4KSBzaXplIDEwMHgzMCBiYWNrZ3JvdW5k
Q2xpcCBhdCAoOCw4KSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDgpIHNpemUgNzg0eDMwIG91dGxp
bmVDbGlwIGF0ICg4LDgpIHNpemUgNzg0eDMwCisgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCww
KSBzaXplIDEwMHgzMCBbYmdjb2xvcj0jMDA4MDAwXQorbGF5ZXIgYXQgKDc2OCw0Mikgc2l6ZSAx
MDB4MzAgYmFja2dyb3VuZENsaXAgYXQgKDgsNDIpIHNpemUgNzg0eDMwIGNsaXAgYXQgKDgsNDIp
IHNpemUgNzg0eDMwIG91dGxpbmVDbGlwIGF0ICg4LDQyKSBzaXplIDc4NHgzMAorICBSZW5kZXJC
bG9jayB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVy
IGF0ICg3NzQsNzYpIHNpemUgMTAweDMwIGJhY2tncm91bmRDbGlwIGF0ICg4LDc2KSBzaXplIDc4
NHgzMCBjbGlwIGF0ICg4LDc2KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCw3Nikgc2l6
ZSA3ODR4MzAKKyAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUgMTAweDMwIFtiZ2Nv
bG9yPSMwMDgwMDBdCitsYXllciBhdCAoNzc0LDExMCkgc2l6ZSAxMDB4MzAgYmFja2dyb3VuZENs
aXAgYXQgKDgsMTEwKSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDExMCkgc2l6ZSA3ODR4MzAgb3V0
bGluZUNsaXAgYXQgKDgsMTEwKSBzaXplIDc4NHgzMAorICBSZW5kZXJCbG9jayB7U1BBTn0gYXQg
KDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0ICg3ODIsMTQ0KSBz
aXplIDEwMHgzMCBiYWNrZ3JvdW5kQ2xpcCBhdCAoOCwxNDQpIHNpemUgNzg0eDMwIGNsaXAgYXQg
KDgsMTQ0KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCwxNDQpIHNpemUgNzg0eDMwCisg
IFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEwMHgzMCBbYmdjb2xvcj0jMDA4MDAw
XQorbGF5ZXIgYXQgKDc3OSwxNzgpIHNpemUgMTAweDMwIGJhY2tncm91bmRDbGlwIGF0ICg4LDE3
OCkgc2l6ZSA3ODR4MzAgY2xpcCBhdCAoOCwxNzgpIHNpemUgNzg0eDMwIG91dGxpbmVDbGlwIGF0
ICg4LDE3OCkgc2l6ZSA3ODR4MzAKKyAgUmVuZGVyQmxvY2sge1NQQU59IGF0ICgwLDApIHNpemUg
MTAweDMwIFtiZ2NvbG9yPSMwMDgwMDBdCitsYXllciBhdCAoNzgyLDIxMikgc2l6ZSAxMDB4MzAg
YmFja2dyb3VuZENsaXAgYXQgKDgsMjEyKSBzaXplIDc4NHgzMCBjbGlwIGF0ICg4LDIxMikgc2l6
ZSA3ODR4MzAgb3V0bGluZUNsaXAgYXQgKDgsMjEyKSBzaXplIDc4NHgzMAorICBSZW5kZXJCbG9j
ayB7U1BBTn0gYXQgKDAsMCkgc2l6ZSAxMDB4MzAgW2JnY29sb3I9IzAwODAwMF0KK2xheWVyIGF0
ICg3ODQsMjQ2KSBzaXplIDEwMHgzMCBiYWNrZ3JvdW5kQ2xpcCBhdCAoOCwyNDYpIHNpemUgNzg0
eDMwIGNsaXAgYXQgKDgsMjQ2KSBzaXplIDc4NHgzMCBvdXRsaW5lQ2xpcCBhdCAoOCwyNDYpIHNp
emUgNzg0eDMwCisgIFJlbmRlckJsb2NrIHtTUEFOfSBhdCAoMCwwKSBzaXplIDEwMHgzMCBbYmdj
b2xvcj0jMDA4MDAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZGE2NjUyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgor
ICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNs
YXRlWigxcHgpOworICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgICAgICB3aWR0
aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVh
ZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNu
J3QgdHJpZ2dlciBhbiBBU1NFUlQgaW4gZGVidWcgbW9kZS4gSXQgbWFrZXMgc3VyZSB0aGF0IHRo
ZSB0aW1lcgorICAgICAgICAgICAgdXNlZCB0byB1cGRhdGUgdGhlIG1hcnF1ZWUgd2lsbCBub3Qg
cnVuIGJlZm9yZSB0aGUgbGF5b3V0IGlzIGRvbmUuIC0tPgorICAgICAgIAorICAgICAgICA8bWFy
cXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSIxIiB0
cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQiPjwv
c3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVj
dGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjIiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50
PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgPG1h
cnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGlyZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0iMyIg
dHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91bnQ9IjEiPjxzcGFuIGNsYXNzPSJjb250ZW50Ij48
L3NwYW4+PC9tYXJxdWVlPgorICAgICAgICA8bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJl
Y3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSI0IiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3Vu
dD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQiPjwvc3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxt
YXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjUi
IHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+
PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgPG1hcnF1ZWUgYmVoYXZpb3I9InNjcm9sbCIgZGly
ZWN0aW9uPSJsZWZ0IiBzY3JvbGxkZWxheT0iNiIgdHJ1ZXNwZWVkPSJ0cnVlIiBzY3JvbGxhbW91
bnQ9IjEiPjxzcGFuIGNsYXNzPSJjb250ZW50Ij48L3NwYW4+PC9tYXJxdWVlPgorICAgICAgICA8
bWFycXVlZSBiZWhhdmlvcj0ic2Nyb2xsIiBkaXJlY3Rpb249ImxlZnQiIHNjcm9sbGRlbGF5PSI3
IiB0cnVlc3BlZWQ9InRydWUiIHNjcm9sbGFtb3VudD0iMSI+PHNwYW4gY2xhc3M9ImNvbnRlbnQi
Pjwvc3Bhbj48L21hcnF1ZWU+CisgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRp
cmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjgiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1v
dW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKworCisgICAg
ICAgIDxwPkNvdW50ZXI6IDxzcGFuIGlkPSJjb3VudGVyIj48L3NwYW4+PC9wPgorCisgICAgICAg
IDxzY3JpcHQ+CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgICAgIHZhciB0aW1l
cyA9IDA7CisgICAgICAgICAgICAvLyBUcmlnZ2VyICJwZW5kaW5nIGxheW91dHMiLCB0aGF0IG1p
Z2h0IHJ1biBhZnRlciB0aGUgbWFycXVlZSB0aW1lciBpcyBmaXJlZC4KKyAgICAgICAgICAgIHZh
ciBjb3VudGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvdW50ZXIiKTsKKyAgICAgICAg
ICAgIHZhciB0ZXh0Tm9kZSA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCk7CisgICAgICAgICAg
ICBjb3VudGVyLmFwcGVuZENoaWxkKHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciBpbnRlcnZh
bCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHRleHROb2RlLm5v
ZGVWYWx1ZSA9IE1hdGgucmFuZG9tKCk7CisgICAgICAgICAgICAgICAgaWYgKCgrK3RpbWVzKSA+
PSAxMCkgeworICAgICAgICAgICAgICAgICAgICB0ZXh0Tm9kZS5ub2RlVmFsdWUgPSAiIjsKKyAg
ICAgICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbCk7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0s
IDEwKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjNDFkNjY0Li4wYTQ2YTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTMtMDEtMDcgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxh
Y2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIEFzc2VydCBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6
bWFwVG9Db250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNjA2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoZSBhc3NlcnQgd2FzIGR1ZSB0byBhIHBlbmRpbmcgbGF5b3V0LCBzbyB0aGUgdmFs
dWVzIHVzZWQgdG8gY29tcHV0ZSB0aGUgbGF5ZXIgYm91bmRpbmcgYm94ZXMgd2VyZSBpbmNvcnJl
Y3QuCisgICAgICAgIFRoYXQgd2FzIGJlY2F1c2Ugb2YgdGhlIERvY3VtZW50OjpzZXRWaXN1YWxV
cGRhdGVzQWxsb3dlZCBtZWNoYW5pc20sIHdoaWNoIHRyaWdnZXJzIGEgY29tcG9zaXRvciB1cGRh
dGUKKyAgICAgICAgYW5kIGEgcmVwYWludCwgYnV0IGJlZm9yZSB0aGlzIHBhdGNoIGRpZG4ndCBj
aGVjayB3aGV0aGVyIGEgbGF5b3V0IHdhcyBwZW5kaW5nIG9yIG5vdC4KKworICAgICAgICBBZGRl
ZCBhIGNoZWNrIGluIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZCBmb3IgcGVuZGlu
ZyBsYXlvdXRzIGFuZCBiYWlsZWQgd2hlbiBzdWNoIGNhc2UgaGFwcGVuZWQuCisgICAgICAgIEEg
bGF5b3V0IHdpbGwgY29tZSBhbnl3YXkgYW5kIHRyaWdnZXIgdGhlIGNvcnJlY3QgdXBkYXRlcy4g
Q291bGRuJ3Qgbm90IGZvcmNlIGFuIGlubGluZSBsYXlvdXQgYXQgdGhhdCB0aW1lCisgICAgICAg
IGFzIHRoaXMgZnVuY3Rpb24gaXMgc29tZXRpbWVzIGNhbGxlZCByZWFsbHkgc29vbiwgd2hlbiB0
aGUgV2ViS2l0IHBhcnRzIGFyZSBub3QgZnVsbHkgY3JlYXRlZCB5ZXQgYW5kIHVwZGF0ZXMgd2Vy
ZQorICAgICAgICBjYWxsaW5nIGJhY2sgaW50byBzb21lIGNsaWVudCBjYWxsYmFja3MgdGhhdCB3
ZXJlIG5vdCByZWFkeS4KKworICAgICAgICBBbHNvIGFkZGVkIGFuIGFzc2VydCBpbiBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzIHRvIGNoZWNrIGZvciBvdGhl
ciBjYXNlcyB0aGF0IG1pZ2h0CisgICAgICAgIHRyeSB0byB1cGRhdGUgdGhlIGxheWVycyB3aXRo
IGEgbGF5b3V0IHBlbmRpbmcuIFRoYXQgb25lIGxlZCB0byBmaW5kaW5nIGFuIGlzc3VlIGluIHRo
ZSBSZW5kZXJNYXJxdWVlLCB3aGljaAorICAgICAgICB3YXMgdXBkYXRpbmcgb24gYSB0aW1lciBj
YWxsYmFjay4gSXQgbWlnaHQgaGFwcGVuIHRoYXQgYSBsYXlvdXQgaXMgcGVuZGluZyB3aGlsZSB0
aGlzIHRpbWVyIGZpcmVzIGFuZCBpdCAKKyAgICAgICAgdHJpZXMgdG8gdXBkYXRlIHRoZSBzY3Jv
bGwgcG9zaXRpb24gb2YgdGhlIGxheWVycyB3aGlsZSBhIGxheW91dCBpcyBzdGlsbCBkdWUuCisK
KyAgICAgICAgVGhlcmUgd2FzIGFscmVhZHkgYSBwcm90ZWN0aW9uIHRvIGJhaWwgaWYgYSBsYXlv
dXQgaXMgcGVuZGluZyBpbiBSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkLCBzbyBJJ3ZlIGp1c3Qg
YnJvYWRlbmVkIHRoZSBzY29wZQorICAgICAgICB0byB0aGUgd2hvbGUgUmVuZGVyVmlldyB0byBj
YXRjaCBhbGwgdGhlIGxheW91dCByZXF1ZXN0cy4KKworICAgICAgICBUZXN0czogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvYXNzZXJ0LWxheW91dC1ub3QtZG9uZS5odG1sCisgICAgICAgICAgICAgICBj
b21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci5odG1sCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRl
Q29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQpOgorCiAyMDEz
LTAxLTA0ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBbV2ViS2l0Ml0gQ2xpY2tpbmcgb24gYSB3b3JkIHRoYXQgaXMgc2VsZWN0ZWQgaW4g
YW4gZWRpdGFibGUgYXJlYSBkZWxldGVzIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBk
NjFmYWQ0Li44Njc2ZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTEyNTQsNiArMTI1
NCwxNCBAQCB2b2lkIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZChib29sIHZpc3Vh
bFVwZGF0ZXNBbGxvd2VkKQogICAgIGlmICghdmlzdWFsVXBkYXRlc0FsbG93ZWQpCiAgICAgICAg
IHJldHVybjsKIAorICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gdmlldygpOworICAgIGJvb2wg
bmVlZHNMYXlvdXQgPSBmcmFtZVZpZXcgJiYgcmVuZGVyZXIoKSAmJiAoZnJhbWVWaWV3LT5sYXlv
dXRQZW5kaW5nKCkgfHwgcmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQoKSk7CisgICAgaWYgKG5lZWRz
TGF5b3V0KSB7CisgICAgICAgIC8vIFRoZXJlIG1pZ2h0IGJlIGEgbGF5b3V0IHBlbmRpbmcsIHNv
IG1ha2Ugc3VyZSB3ZSBkb24ndCB1cGRhdGUgdGhlIHNjcmVlbiB3aXRoIGJvZ3VzIGRhdGEuCisg
ICAgICAgIC8vIFRoZSBsYXlvdXQgd2lsbCBhY3R1YWxseSB1cGRhdGUgdGhlIGNvbXBvc2l0aW5n
IGxheWVycyBhbmQgcmVwYWludCBpZiBuZWVkZWQuCisgICAgICAgIHJldHVybjsKKyAgICB9CisK
ICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgaWYgKHZpZXcoKSkKICAgICAg
ICAgdmlldygpLT51cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyTGF5b3V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4
IDdiNzI4YjIuLjQzNGUyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC00MDgsNiArNDA4LDggQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRl
VHlwZSB1cGRhdGUKICAgICBpZiAoIW1fcmVldmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQg
JiYgIW1fY29tcG9zaXRpbmcpCiAgICAgICAgIHJldHVybjsKIAorICAgIEFTU0VSVCghbV9yZW5k
ZXJWaWV3LT5uZWVkc0xheW91dCgpKTsKKwogICAgIEFuaW1hdGlvblVwZGF0ZUJsb2NrIGFuaW1h
dGlvblVwZGF0ZUJsb2NrKG1fcmVuZGVyVmlldy0+ZnJhbWVWaWV3KCktPmZyYW1lKCktPmFuaW1h
dGlvbigpKTsKIAogICAgIGJvb2wgY2hlY2tGb3JIaWVyYXJjaHlVcGRhdGUgPSBtX3JlZXZhbHVh
dGVDb21wb3NpdGluZ0FmdGVyTGF5b3V0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1hcnF1ZWUuY3BwCmluZGV4IGQ1NGM5MDkuLjg5YjA5M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNsdWRlICJI
VE1MTWFycXVlZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJS
ZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKIApAQCAtMjU0LDcgKzI1NSw3IEBAIHZvaWQgUmVuZGVyTWFycXVlZTo6dXBkYXRlTWFy
cXVlZVN0eWxlKCkKIAogdm9pZCBSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkKFRpbWVyPFJlbmRl
ck1hcnF1ZWU+KikKIHsKLSAgICBpZiAobV9sYXllci0+cmVuZGVyZXIoKS0+bmVlZHNMYXlvdXQo
KSkKKyAgICBpZiAobV9sYXllci0+cmVuZGVyZXIoKS0+dmlldygpLT5uZWVkc0xheW91dCgpKQog
ICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKG1fcmVzZXQpIHsK
</data>
<flag name="review"
          id="199281"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="199299"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181797</attachid>
            <date>2013-01-08 16:20:42 -0800</date>
            <delta_ts>2013-01-08 18:59:12 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug106068_3.patch</filename>
            <type>text/plain</type>
            <size>10022</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyZGIxZjk4Li5jMzQyZjE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTMtMDEt
MDcgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIEFz
c2VydCBpbiBSZW5kZXJHZW9tZXRyeU1hcDo6bWFwVG9Db250YWluZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNjA2OAorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2Fz
c2VydC1sYXlvdXQtbm90LWRvbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbGF5b3V0LW5vdC1kb25lLmh0bWw6IEFkZGVkLiBUZXN0
aW5nIGZvciB0aGUgY2FzZSB3aGVuIGNvbXBvc2l0b3IgaXMgdHJpZ2dlcmVkIGJlZm9yZSB0aGUg
Zmlyc3QgbGF5b3V0LgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJx
dWVlLXRpbWVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXIuaHRtbDogQWRkZWQuIFRlc3RlZCBmb3IgdGhlIGNh
c2Ugd2hlbiB0aGUgbWFycXVlZSBtaWdodCB0cmlnZ2VyIGNvbXBvc2l0b3IgdXBkYXRlcywgd2hp
bGUgYSBsYXlvdXQgaXMgc3RpbGwgcGVuZGluZy4KKwogMjAxMy0wMS0wOCAgRGFuIFdpbnNoaXAg
IDxkYW53QGdub21lLm9yZz4KIAogICAgICAgICBVcGRhdGVzIGZvciBBcGFjaGUgMi40CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbGF5b3V0LW5v
dC1kb25lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fz
c2VydC1sYXlvdXQtbm90LWRvbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjhiMTM3ODkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9hc3NlcnQtbGF5b3V0LW5vdC1kb25lLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxIEBACisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2Fzc2VydC1sYXlvdXQtbm90LWRvbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41NWViZjljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvYXNzZXJ0LWxheW91dC1ub3QtZG9uZS5odG1sCkBAIC0wLDAgKzEs
MjcgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPHN0eWxlPgorICAgIC5jb250YWlu
ZXIgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIHotaW5kZXg6IDA7Cisg
ICAgICAgIHRvcDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVlcyAgKi8KKyAgICAgICAg
bGVmdDogMTIzcHg7IC8qIGVhc3kgdG8gZGV0ZWN0IHZhbHVlcyAqLworICAgIH0KKyAgICAjY2hp
bGQgeworICAgICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgIGhlaWdodDogMTAwcHg7CisgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0
cmFuc2xhdGVaKDBweCk7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBUaGlz
IHRlc3QgcGFzc2VzIGlmIHRoZXJlJ3Mgbm8gQVNTRVJUIGluIGRlYnVnIG1vZGUuIFRoZXJlIHNo
b3VsZCBiZSBhIGdyYXkgcmVjdGFuZ2xlIG9uIHNjcmVlbi4gLS0+CisgICAgICAgIDxkaXYgY2xh
c3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGlkPSJjaGlsZCI+PC9kaXY+CisgICAg
ICAgIDwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9hc3NlcnQt
bWFycXVlZS10aW1lci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uODExMGMwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitDb3VudGVyOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvYXNzZXJ0LW1hcnF1ZWUtdGltZXIuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYjBjNDIxMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Fzc2VydC1tYXJxdWVlLXRpbWVyLmh0bWwKQEAgLTAs
MCArMSw1NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHN0eWxlPgorICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICAtd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlWigxcHgpOworICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAg
ICAgICB3aWR0aDogMTAwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDMwcHg7CisgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPCEtLSBUaGlzIHRlc3QgcGFzc2VzIGlm
IGl0IGRvZXNuJ3QgdHJpZ2dlciBhbiBBU1NFUlQgaW4gZGVidWcgbW9kZS4gSXQgbWFrZXMgc3Vy
ZSB0aGF0IHRoZSB0aW1lcgorICAgICAgICAgICAgdXNlZCB0byB1cGRhdGUgdGhlIG1hcnF1ZWUg
d2lsbCBub3QgcnVuIGJlZm9yZSB0aGUgbGF5b3V0IGlzIGRvbmUuIC0tPgorICAgICAgICAKKyAg
ICAgICAgPGRpdiBpZD0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9y
PSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjEiIHRydWVzcGVlZD0idHJ1
ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVl
ZT4KKyAgICAgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVm
dCIgc2Nyb2xsZGVsYXk9IjIiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3Bh
biBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgICAgIDxtYXJxdWVl
IGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjMiIHRydWVz
cGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFu
PjwvbWFycXVlZT4KKyAgICAgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVj
dGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjQiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50
PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgICAg
IDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9
IjUiIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVu
dCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3Jv
bGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjYiIHRydWVzcGVlZD0idHJ1ZSIgc2Ny
b2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAg
ICAgICAgICAgIDxtYXJxdWVlIGJlaGF2aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Ny
b2xsZGVsYXk9IjciIHRydWVzcGVlZD0idHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFz
cz0iY29udGVudCI+PC9zcGFuPjwvbWFycXVlZT4KKyAgICAgICAgICAgIDxtYXJxdWVlIGJlaGF2
aW9yPSJzY3JvbGwiIGRpcmVjdGlvbj0ibGVmdCIgc2Nyb2xsZGVsYXk9IjgiIHRydWVzcGVlZD0i
dHJ1ZSIgc2Nyb2xsYW1vdW50PSIxIj48c3BhbiBjbGFzcz0iY29udGVudCI+PC9zcGFuPjwvbWFy
cXVlZT4KKyAgICAgICAgPC9kaXY+CisKKyAgICAgICAgPHA+Q291bnRlcjogPHNwYW4gaWQ9ImNv
dW50ZXIiPjwvc3Bhbj48L3A+CisKKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dChmYWxzZSk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciB0aW1lcyA9IDA7CisgICAgICAgICAgICAv
LyBUcmlnZ2VyICJwZW5kaW5nIGxheW91dHMiLCB0aGF0IG1pZ2h0IHJ1biBhZnRlciB0aGUgbWFy
cXVlZSB0aW1lciBpcyBmaXJlZC4KKyAgICAgICAgICAgIHZhciBjb3VudGVyID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvdW50ZXIiKTsKKyAgICAgICAgICAgIHZhciB0ZXh0Tm9kZSA9IGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKCk7CisgICAgICAgICAgICBjb3VudGVyLmFwcGVuZENoaWxk
KHRleHROb2RlKTsKKyAgICAgICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgICAgIHRleHROb2RlLm5vZGVWYWx1ZSA9IE1hdGgucmFuZG9t
KCk7CisgICAgICAgICAgICAgICAgaWYgKCgrK3RpbWVzKSA+PSAxMCkgeworICAgICAgICAgICAg
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikucmVtb3ZlKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHRleHROb2RlLm5vZGVWYWx1ZSA9ICIiOworICAgICAgICAgICAg
ICAgICAgICBjbGVhckludGVydmFsKGludGVydmFsKTsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwgMTApOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDQ3NzIxZTUuLjRhOTkyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxMy0wMS0wNyAgQWxleGFuZHJ1IENoaWN1bGl0YSAgPGFjaGljdUBhZG9i
ZS5jb20+CisKKyAgICAgICAgQXNzZXJ0IGluIFJlbmRlckdlb21ldHJ5TWFwOjptYXBUb0NvbnRh
aW5lcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA2
MDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFRoZSBh
c3NlcnQgd2FzIGR1ZSB0byBhIHBlbmRpbmcgbGF5b3V0LCBzbyB0aGUgdmFsdWVzIHVzZWQgdG8g
Y29tcHV0ZSB0aGUgbGF5ZXIgYm91bmRpbmcgYm94ZXMgd2VyZSBpbmNvcnJlY3QuCisgICAgICAg
IFRoYXQgd2FzIGJlY2F1c2Ugb2YgdGhlIERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dl
ZCBtZWNoYW5pc20sIHdoaWNoIHRyaWdnZXJzIGEgY29tcG9zaXRvciB1cGRhdGUKKyAgICAgICAg
YW5kIGEgcmVwYWludCwgYnV0IGJlZm9yZSB0aGlzIHBhdGNoIGRpZG4ndCBjaGVjayB3aGV0aGVy
IGEgbGF5b3V0IHdhcyBwZW5kaW5nIG9yIG5vdC4KKworICAgICAgICBBZGRlZCBhIGNoZWNrIGlu
IERvY3VtZW50OjpzZXRWaXN1YWxVcGRhdGVzQWxsb3dlZCBmb3IgcGVuZGluZyBsYXlvdXRzIGFu
ZCBiYWlsZWQgd2hlbiBzdWNoIGNhc2UgaGFwcGVuZWQuCisgICAgICAgIEEgbGF5b3V0IHdpbGwg
Y29tZSBhbnl3YXkgYW5kIHRyaWdnZXIgdGhlIGNvcnJlY3QgdXBkYXRlcy4gQ291bGRuJ3Qgbm90
IGZvcmNlIGFuIGlubGluZSBsYXlvdXQgYXQgdGhhdCB0aW1lCisgICAgICAgIGFzIHRoaXMgZnVu
Y3Rpb24gaXMgc29tZXRpbWVzIGNhbGxlZCByZWFsbHkgc29vbiwgd2hlbiB0aGUgV2ViS2l0IHBh
cnRzIGFyZSBub3QgZnVsbHkgY3JlYXRlZCB5ZXQgYW5kIHVwZGF0ZXMgd2VyZQorICAgICAgICBj
YWxsaW5nIGJhY2sgaW50byBzb21lIGNsaWVudCBjYWxsYmFja3MgdGhhdCB3ZXJlIG5vdCByZWFk
eS4KKworICAgICAgICBBbHNvIGFkZGVkIGFuIGFzc2VydCBpbiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzIHRvIGNoZWNrIGZvciBvdGhlciBjYXNlcyB0aGF0
IG1pZ2h0CisgICAgICAgIHRyeSB0byB1cGRhdGUgdGhlIGxheWVycyB3aXRoIGEgbGF5b3V0IHBl
bmRpbmcuIFRoYXQgb25lIGxlZCB0byBmaW5kaW5nIGFuIGlzc3VlIGluIHRoZSBSZW5kZXJNYXJx
dWVlLCB3aGljaAorICAgICAgICB3YXMgdXBkYXRpbmcgb24gYSB0aW1lciBjYWxsYmFjay4gSXQg
bWlnaHQgaGFwcGVuIHRoYXQgYSBsYXlvdXQgaXMgcGVuZGluZyB3aGlsZSB0aGlzIHRpbWVyIGZp
cmVzIGFuZCBpdCAKKyAgICAgICAgdHJpZXMgdG8gdXBkYXRlIHRoZSBzY3JvbGwgcG9zaXRpb24g
b2YgdGhlIGxheWVycyB3aGlsZSBhIGxheW91dCBpcyBzdGlsbCBkdWUuCisKKyAgICAgICAgVGhl
cmUgd2FzIGFscmVhZHkgYSBwcm90ZWN0aW9uIHRvIGJhaWwgaWYgYSBsYXlvdXQgaXMgcGVuZGlu
ZyBpbiBSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkLCBzbyBJJ3ZlIGp1c3QgYnJvYWRlbmVkIHRo
ZSBzY29wZQorICAgICAgICB0byB0aGUgd2hvbGUgUmVuZGVyVmlldyB0byBjYXRjaCBhbGwgdGhl
IGxheW91dCByZXF1ZXN0cy4KKworICAgICAgICBUZXN0czogY29tcG9zaXRpbmcvZ2VvbWV0cnkv
YXNzZXJ0LWxheW91dC1ub3QtZG9uZS5odG1sCisgICAgICAgICAgICAgICBjb21wb3NpdGluZy9n
ZW9tZXRyeS9hc3NlcnQtbWFycXVlZS10aW1lci5odG1sCisKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxv
d2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdM
YXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQpOgorCiAyMDEzLTAxLTA4ICBBbGV4
aXMgTWVuYXJkICA8YWxleGlzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgdHJhbnNpdGlvbi1kZWxh
eSBhbmQgdHJhbnNpdGlvbi1kdXJhdGlvbiByZXR1cm4gaW5jb3JyZWN0IHZhbHVlcyB3aGVuIHF1
ZXJ5aW5nIHVzaW5nIHRoZSBjb21wdXRlZCBzdHlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDEwZDNkOTUuLmRiMTgzNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTI1Miw2
ICsxMjUyLDE0IEBAIHZvaWQgRG9jdW1lbnQ6OnNldFZpc3VhbFVwZGF0ZXNBbGxvd2VkKGJvb2wg
dmlzdWFsVXBkYXRlc0FsbG93ZWQpCiAgICAgaWYgKCF2aXN1YWxVcGRhdGVzQWxsb3dlZCkKICAg
ICAgICAgcmV0dXJuOwogCisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSB2aWV3KCk7CisgICAg
Ym9vbCBuZWVkc0xheW91dCA9IGZyYW1lVmlldyAmJiByZW5kZXJlcigpICYmIChmcmFtZVZpZXct
PmxheW91dFBlbmRpbmcoKSB8fCByZW5kZXJlcigpLT5uZWVkc0xheW91dCgpKTsKKyAgICBpZiAo
bmVlZHNMYXlvdXQpIHsKKyAgICAgICAgLy8gVGhlcmUgbWlnaHQgYmUgYSBsYXlvdXQgcGVuZGlu
Zywgc28gbWFrZSBzdXJlIHdlIGRvbid0IHVwZGF0ZSB0aGUgc2NyZWVuIHdpdGggYm9ndXMgZGF0
YS4KKyAgICAgICAgLy8gVGhlIGxheW91dCB3aWxsIGFjdHVhbGx5IHVwZGF0ZSB0aGUgY29tcG9z
aXRpbmcgbGF5ZXJzIGFuZCByZXBhaW50IGlmIG5lZWRlZC4KKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICBpZiAodmlldygpKQog
ICAgICAgICB2aWV3KCktPnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJMYXlvdXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
aW5kZXggMmE1YWUxMi4uMWE0YTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTQwOCw2ICs0MDgsOCBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdV
cGRhdGVUeXBlIHVwZGF0ZQogICAgIGlmICghbV9yZWV2YWx1YXRlQ29tcG9zaXRpbmdBZnRlckxh
eW91dCAmJiAhbV9jb21wb3NpdGluZykKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKCFt
X3JlbmRlclZpZXctPm5lZWRzTGF5b3V0KCkpOworCiAgICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sg
YW5pbWF0aW9uVXBkYXRlQmxvY2sobV9yZW5kZXJWaWV3LT5mcmFtZVZpZXcoKS0+ZnJhbWUoKS0+
YW5pbWF0aW9uKCkpOwogCiAgICAgYm9vbCBjaGVja0ZvckhpZXJhcmNoeVVwZGF0ZSA9IG1fcmVl
dmFsdWF0ZUNvbXBvc2l0aW5nQWZ0ZXJMYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWFycXVlZS5jcHAKaW5kZXggZDU0YzkwOS4uODliMDkzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1
ZGUgIkhUTUxNYXJxdWVlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIlJlbmRlckxheWVyLmgiCisjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCkBAIC0yNTQsNyArMjU1LDcgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp1cGRh
dGVNYXJxdWVlU3R5bGUoKQogCiB2b2lkIFJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQoVGltZXI8
UmVuZGVyTWFycXVlZT4qKQogewotICAgIGlmIChtX2xheWVyLT5yZW5kZXJlcigpLT5uZWVkc0xh
eW91dCgpKQorICAgIGlmIChtX2xheWVyLT5yZW5kZXJlcigpLT52aWV3KCktPm5lZWRzTGF5b3V0
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAobV9yZXNldCkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>