<?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>139435</bug_id>
          
          <creation_ts>2014-12-09 01:55:37 -0800</creation_ts>
          <short_desc>http://omfgdogs.info/ only animates when you resize the window</short_desc>
          <delta_ts>2015-01-26 10:04:41 -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>OS X 10.9</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=139599</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>139528</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ian Henderson">ian</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1053704</commentid>
    <comment_count>0</comment_count>
    <who name="Ian Henderson">ian</who>
    <bug_when>2014-12-09 01:55:37 -0800</bug_when>
    <thetext>Navigate to http://omfgdogs.info/.  The animated dog background is not repainted unless you resize the window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053800</commentid>
    <comment_count>1</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-09 08:41:42 -0800</bug_when>
    <thetext>GIF throttling regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053801</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-12-09 08:42:07 -0800</bug_when>
    <thetext>&lt;rdar://problem/19190493&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053838</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 10:25:41 -0800</bug_when>
    <thetext>Yes, it looks like the isInsideViewport() detection is broken for this case:
shouldRepaintForImageAnimation(0x119fc5398, viewport: [0, 0, 1638, 1299])
-&gt; rects don&apos;t intersec, element rect: [8, 8, 1638, 0]
-&gt; outsideViewport()

It is claiming the image is outside the viewport because its absoluteClippedOverflowRect has 0 height for some reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053840</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 10:29:36 -0800</bug_when>
    <thetext>According to Web Inspector, the body Element (which has the animated gif as background) has a computed height of 0px.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053843</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-09 10:36:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; According to Web Inspector, the body Element (which has the animated gif as
&gt; background) has a computed height of 0px.

Right, that&apos;s root background propagation. The throttling logic needs to take this into account.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053899</commentid>
    <comment_count>6</comment_count>
      <attachid>242953</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 12:05:58 -0800</bug_when>
    <thetext>Created attachment 242953
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053908</commentid>
    <comment_count>7</comment_count>
      <attachid>242953</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-12-09 12:17:38 -0800</bug_when>
    <thetext>Comment on attachment 242953
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1342
&gt; +    // Don&apos;t bother computing rects for the root or body renderer and
&gt; +    // consider it is always inside the viewport.
&gt; +    if (isBody() || isRoot())
&gt; +        return true;

Shouldn&apos;t we still throttle subframe bodies that are scrolled out of view?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053912</commentid>
    <comment_count>8</comment_count>
      <attachid>242953</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 12:30:21 -0800</bug_when>
    <thetext>Comment on attachment 242953
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1342
&gt;&gt; +        return true;
&gt; 
&gt; Shouldn&apos;t we still throttle subframe bodies that are scrolled out of view?

Good point, I&apos;ll add a layout test for this case and adapt the code accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053915</commentid>
    <comment_count>9</comment_count>
      <attachid>242953</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-09 12:39:25 -0800</bug_when>
    <thetext>Comment on attachment 242953
Patch

I think shouldRepaintForImageAnimation() really needs to figure out if the animated image is being applied as the root background.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053923</commentid>
    <comment_count>10</comment_count>
      <attachid>242960</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 13:22:53 -0800</bug_when>
    <thetext>Created attachment 242960
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053958</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 14:49:28 -0800</bug_when>
    <thetext>Ok, the case mentioned by Antti is now handled properly (covered by a new layout test). It now uses the background (extended) rect so hopefully, it addresses Simon&apos;s concerns as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053960</commentid>
    <comment_count>12</comment_count>
      <attachid>242960</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-09 14:55:55 -0800</bug_when>
    <thetext>Comment on attachment 242960
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1349
&gt; +    if (isRoot() || isBody())
&gt; +        repaintRect = snappedIntRect(view-&gt;backgroundRect(view));
&gt; +    else
&gt; +        repaintRect = snappedIntRect(absoluteClippedOverflowRect());

This doesn&apos;t handle the case where &lt;html&gt; and &lt;body&gt; have different background styles. Nor does it handle the case of a non-repeating animated GIF background-image positioned outside the bounds/viewport (but neither did the existing code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053963</commentid>
    <comment_count>13</comment_count>
      <attachid>242960</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 15:04:32 -0800</bug_when>
    <thetext>Comment on attachment 242960
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1349
&gt;&gt; +        repaintRect = snappedIntRect(absoluteClippedOverflowRect());
&gt; 
&gt; This doesn&apos;t handle the case where &lt;html&gt; and &lt;body&gt; have different background styles. Nor does it handle the case of a non-repeating animated GIF background-image positioned outside the bounds/viewport (but neither did the existing code).

&quot;This doesn&apos;t handle the case where &lt;html&gt; and &lt;body&gt; have different background styles&quot;

Sorry, you lost me. Could you maybe give me an example where this check would be insufficient? Or hint what kind of change would be needed to handle such case? Note that since this function is used for optimization purposes, returning a false-positive for isInsideViewport() wouldn&apos;t be that bad. What we should absolutely avoid is to return false-negative.

Note that this logic is very close to what is done in RenderObject::repaintSlowRepaintObject() already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053975</commentid>
    <comment_count>14</comment_count>
      <attachid>242973</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 15:58:45 -0800</bug_when>
    <thetext>Created attachment 242973
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053977</commentid>
    <comment_count>15</comment_count>
      <attachid>242973</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 16:02:23 -0800</bug_when>
    <thetext>Comment on attachment 242973
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1346
&gt; +    if (isRoot() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()))

I added the !document().documentElement()-&gt;renderer()-&gt;hasBackground() check so that we are no longer regressing the case where both the body and the html element have a background, and the body is outside the viewport (with an animated gif background). My previous iteration would wrongly use the background rect in this case and thus we would keep animating the body&apos;s background. This is covered by the following new layout test: fast/dom/repeating-timer-animating-body-element-outside-viewport-throttling.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053979</commentid>
    <comment_count>16</comment_count>
      <attachid>242973</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-09 16:10:43 -0800</bug_when>
    <thetext>Comment on attachment 242973
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1337
&gt; +    if (!isRooted(&amp;view))

isRooted is a tree walk, and renderers who get this will almost always be rooted. Is this check worth it?

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1346
&gt;&gt; +    if (isRoot() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()))
&gt; 
&gt; I added the !document().documentElement()-&gt;renderer()-&gt;hasBackground() check so that we are no longer regressing the case where both the body and the html element have a background, and the body is outside the viewport (with an animated gif background). My previous iteration would wrongly use the background rect in this case and thus we would keep animating the body&apos;s background. This is covered by the following new layout test: fast/dom/repeating-timer-animating-body-element-outside-viewport-throttling.html.

I really want this to call rendererForRootBackground() somehow. The background propagation code is spread out too far already, and this adds yet another case that is impossible to find by searching.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053989</commentid>
    <comment_count>17</comment_count>
      <attachid>242973</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 16:36:46 -0800</bug_when>
    <thetext>Comment on attachment 242973
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1337
&gt;&gt; +    if (!isRooted(&amp;view))
&gt; 
&gt; isRooted is a tree walk, and renderers who get this will almost always be rooted. Is this check worth it?

Probably not. I&apos;ll go back to using view().

&gt;&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1346
&gt;&gt;&gt; +    if (isRoot() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()))
&gt;&gt; 
&gt;&gt; I added the !document().documentElement()-&gt;renderer()-&gt;hasBackground() check so that we are no longer regressing the case where both the body and the html element have a background, and the body is outside the viewport (with an animated gif background). My previous iteration would wrongly use the background rect in this case and thus we would keep animating the body&apos;s background. This is covered by the following new layout test: fast/dom/repeating-timer-animating-body-element-outside-viewport-throttling.html.
&gt; 
&gt; I really want this to call rendererForRootBackground() somehow. The background propagation code is spread out too far already, and this adds yet another case that is impossible to find by searching.

Hmm, rendererForRootBackground() can only be called if isRoot() and will give me the body&apos;s renderer if html has no background. However, if the root had no background (image), why would this method be called? (since it is called to determine if we should animate the background image of the html element).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053993</commentid>
    <comment_count>18</comment_count>
      <attachid>242973</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 16:49:43 -0800</bug_when>
    <thetext>Comment on attachment 242973
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1346
&gt;&gt;&gt;&gt; +    if (isRoot() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()))
&gt;&gt;&gt; 
&gt;&gt;&gt; I added the !document().documentElement()-&gt;renderer()-&gt;hasBackground() check so that we are no longer regressing the case where both the body and the html element have a background, and the body is outside the viewport (with an animated gif background). My previous iteration would wrongly use the background rect in this case and thus we would keep animating the body&apos;s background. This is covered by the following new layout test: fast/dom/repeating-timer-animating-body-element-outside-viewport-throttling.html.
&gt;&gt; 
&gt;&gt; I really want this to call rendererForRootBackground() somehow. The background propagation code is spread out too far already, and this adds yet another case that is impossible to find by searching.
&gt; 
&gt; Hmm, rendererForRootBackground() can only be called if isRoot() and will give me the body&apos;s renderer if html has no background. However, if the root had no background (image), why would this method be called? (since it is called to determine if we should animate the background image of the html element).

Using the view&apos;s background rect seems like the right thing to do for the root, and for the body if the root has not background (This one is what this bug is about), right?
By the way, this method may be better called &quot;isRepaintRectInsideViewport()&quot; now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054005</commentid>
    <comment_count>19</comment_count>
      <attachid>242980</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-09 17:12:01 -0800</bug_when>
    <thetext>Created attachment 242980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054203</commentid>
    <comment_count>20</comment_count>
      <attachid>242980</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 10:04:33 -0800</bug_when>
    <thetext>Comment on attachment 242980
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1335
&gt;      auto&amp; frameView = view().frameView();

Now calling view()

&gt; Source/WebCore/rendering/RenderElement.cpp:1341
&gt; +    if (isRoot() || (isBody() &amp;&amp; !document().documentElement()-&gt;renderer()-&gt;hasBackground()))

I haven&apos;t changed this part, as per my earlier comment. Please let me know if I misunderstood and rendererForRootBackground() should indeed be used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054343</commentid>
    <comment_count>21</comment_count>
      <attachid>243078</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 16:45:42 -0800</bug_when>
    <thetext>Created attachment 243078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054344</commentid>
    <comment_count>22</comment_count>
      <attachid>243078</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 16:46:42 -0800</bug_when>
    <thetext>Comment on attachment 243078
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1344
&gt; +        shouldUseBackgroundRect = &amp;rootObject-&gt;rendererForRootBackground() == this;

Now using rendererForRootBackground() as suggested by Simon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054400</commentid>
    <comment_count>23</comment_count>
      <attachid>243095</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 20:41:17 -0800</bug_when>
    <thetext>Created attachment 243095
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054411</commentid>
    <comment_count>24</comment_count>
      <attachid>243095</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 21:39:48 -0800</bug_when>
    <thetext>Comment on attachment 243095
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1370
&gt; +    LayoutRect imageRect = shouldUseBackgroundRect ? renderer.view().backgroundRect(&amp;renderer.view()) : renderer.absoluteClippedOverflowRect();

This should use the boundingBox instead of the overflowRect. I am fixing this in https://bugs.webkit.org/show_bug.cgi?id=139528 as it is not strictly related (I am happy to merge the patches if requested though).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054412</commentid>
    <comment_count>25</comment_count>
      <attachid>243095</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-12-10 21:43:45 -0800</bug_when>
    <thetext>Comment on attachment 243095
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1364
&gt; +    bool shouldUseBackgroundRect = renderer.isRoot();

I&apos;d call backgroundIsPaintedByRoot

&gt; Source/WebCore/rendering/RenderElement.cpp:1366
&gt; +        RenderElement* rootObject = renderer.document().documentElement() ? renderer.document().documentElement()-&gt;renderer() : nullptr;

Add a // FIXME: should share body background propagation code.

&gt; Source/WebCore/rendering/RenderElement.cpp:1370
&gt; +    LayoutRect imageRect = shouldUseBackgroundRect ? renderer.view().backgroundRect(&amp;renderer.view()) : renderer.absoluteClippedOverflowRect();

imageRect could be &quot;backgroundPaintingRect&quot;

&gt; Source/WebCore/rendering/RenderElement.cpp:1373
&gt;  

I would like a FIXME lower down where we get the imageDidChange callback and put the renderer into the hash set, saying that we&apos;re losing information about which part of the style the image is associated with.

&gt; Source/WebCore/testing/Internals.h:77
&gt; +    bool hasPausedImageAnimations(Element*, ExceptionCode&amp;);

Nice!

&gt; LayoutTests/fast/images/animated-gif-body-delegated-background-image.html:13
&gt; +  isBackgroundAnimated = !internals.hasPausedImageAnimations(document.body);
&gt; +  bodyHeight = window.getComputedStyle(document.body)[&quot;height&quot;];

Do these variables have to be in global scope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054414</commentid>
    <comment_count>26</comment_count>
      <attachid>243095</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 21:49:25 -0800</bug_when>
    <thetext>Comment on attachment 243095
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1370
&gt;&gt;&gt; +    LayoutRect imageRect = shouldUseBackgroundRect ? renderer.view().backgroundRect(&amp;renderer.view()) : renderer.absoluteClippedOverflowRect();
&gt;&gt; 
&gt;&gt; This should use the boundingBox instead of the overflowRect. I am fixing this in https://bugs.webkit.org/show_bug.cgi?id=139528 as it is not strictly related (I am happy to merge the patches if requested though).
&gt; 
&gt; imageRect could be &quot;backgroundPaintingRect&quot;

In the case of a regular &lt;img&gt; (not a background-image), wouldn&apos;t backgroundPaintingRect be a bit confusing? I guess it could still be considered a &quot;background&quot; painting. Just confirming.

&gt;&gt; LayoutTests/fast/images/animated-gif-body-delegated-background-image.html:13
&gt;&gt; +  bodyHeight = window.getComputedStyle(document.body)[&quot;height&quot;];
&gt; 
&gt; Do these variables have to be in global scope?

Yes, it is because they are used in shouldBe() functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054420</commentid>
    <comment_count>27</comment_count>
      <attachid>243102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 21:58:32 -0800</bug_when>
    <thetext>Created attachment 243102
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054433</commentid>
    <comment_count>28</comment_count>
      <attachid>243102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 23:40:35 -0800</bug_when>
    <thetext>Comment on attachment 243102
Patch

Clearing flags on attachment: 243102

Committed r177135: &lt;http://trac.webkit.org/changeset/177135&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1054434</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-10 23:40:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055304</commentid>
    <comment_count>30</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-12-12 15:04:27 -0800</bug_when>
    <thetext>The test added here is flaky, filed bug 139599.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064176</commentid>
    <comment_count>31</comment_count>
      <attachid>243102</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2015-01-26 09:58:07 -0800</bug_when>
    <thetext>Comment on attachment 243102
Patch

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

&gt; Source/WebCore/rendering/RenderElement.cpp:1368
&gt; +        RenderElement* rootObject = renderer.document().documentElement() ? renderer.document().documentElement()-&gt;renderer() : nullptr;
&gt; +        backgroundIsPaintedByRoot = &amp;rootObject-&gt;rendererForRootBackground() == &amp;renderer;

Why is there no NULL check here?  rootObject could be set to nullptr, then we dereference it immediately on the next line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064181</commentid>
    <comment_count>32</comment_count>
      <attachid>243102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-01-26 10:04:41 -0800</bug_when>
    <thetext>Comment on attachment 243102
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderElement.cpp:1368
&gt;&gt; +        backgroundIsPaintedByRoot = &amp;rootObject-&gt;rendererForRootBackground() == &amp;renderer;
&gt; 
&gt; Why is there no NULL check here?  rootObject could be set to nullptr, then we dereference it immediately on the next line.

Yes, it looks bad. I&apos;ll take a look and fix. Did this cause crashes we know about?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242953</attachid>
            <date>2014-12-09 12:05:58 -0800</date>
            <delta_ts>2014-12-09 13:22:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141209120639.patch</filename>
            <type>text/plain</type>
            <size>7531</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTc1Y2I4YmMwNWRiNDYy
OTM0MTYzODViYmQyMWQyNmZjYmRhODM0MS4uOTY5MDUzNDc5Y2U5ODJjZDA4YjJlNDZhZmQ2Njhk
NWRlNDUwYmRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTEyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBmdW5j
dGlvbiB1c2VkIHRvIGRldGVybWluZSBpZgorICAgICAgICB3ZSBzaG91bGQgYW5pbWF0ZSBpbWFn
ZXMgb3IgdW50aHJvdHRsZSBET00gdGltZXJzIHdhcyBub3QgY29ycmVjdGx5CisgICAgICAgIGhh
bmRsaW5nIGJvZHkgb3IgaHRtbCBlbGVtZW50cy4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGFk
ZGluZworICAgICAgICBhbiAiaXNSb290KCkgfHwgaXNCb2R5KCkiIGNoZWNrIGluIGlzSW5zaWRl
Vmlld3BvcnQoKSBmdW5jdGlvbiBhbmQKKyAgICAgICAgcmV0dXJucyB0cnVlIGluIHRoaXMgY2Fz
ZSwgd2l0aG91dCBhdHRlbXB0aW5nIHRvIGNvbXB1dGUgYSByZXBhaW50CisgICAgICAgIHJlY3Qu
CisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9k
eS1lbGVtZW50LXRocm90dGxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vcmVwZWF0
aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJFbGVtZW50Ojppc0luc2lkZVZpZXdwb3J0KToKKwogMjAxNC0xMi0wOSAgSmF2aWVyIEZlcm5h
bmRleiAgPGpmZXJuYW5kZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZWZhY3RvciBvZiByZWJ1
aWxkRmxvYXRpbmdPYmplY3RTZXRGcm9tSW50cnVkaW5nRmxvYXRzIGZ1bmN0aW9uIGFmdGVyIHIx
NzY5NTcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
NmY1MmVhNzI5YjIzOThjOWVjZWJlOGNhZGM2YTNkMDdmNTA0ODZjZi4uMmU0ZGRiNzhjOTdhMDJl
YTBiMTg4ODE4MmYxZjMyODZkMDE4NTBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmNwcApAQCAtMTMzNiw2ICsxMzM2LDExIEBAIGJvb2wgUmVuZGVyRWxlbWVu
dDo6aXNJbnNpZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCkgY29uc3QKICAg
ICBpZiAoZnJhbWVWaWV3LmlzT2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAor
ICAgIC8vIERvbid0IGJvdGhlciBjb21wdXRpbmcgcmVjdHMgZm9yIHRoZSByb290IG9yIGJvZHkg
cmVuZGVyZXIgYW5kCisgICAgLy8gY29uc2lkZXIgaXQgaXMgYWx3YXlzIGluc2lkZSB0aGUgdmll
d3BvcnQuCisgICAgaWYgKGlzQm9keSgpIHx8IGlzUm9vdCgpKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKwogICAgIC8vIENvbXB1dGUgdmlld3BvcnQgcmVjdCBpZiBpdCB3YXMgbm90IHByb3ZpZGVk
LgogICAgIGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCA9IHZpc2libGVSZWN0ID8gKnZpc2li
bGVSZWN0IDogZnJhbWVWaWV3LndpbmRvd1RvQ29udGVudHMoZnJhbWVWaWV3LndpbmRvd0NsaXBS
ZWN0KCkpOwogICAgIHJldHVybiB2aWV3cG9ydFJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJbnRS
ZWN0KGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjZjZTU1YzNiNGMy
MmVjNGJlNzYyY2E2YWFlMjU3NDFmYWQwM2I3My4uMmFlNGU1MTg3MDYzYTYzNzUxMTc1YmViNzE1
MGYyMmZlM2M2NTBkMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE0LTEyLTA5ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmluZm8v
IG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgdGhyb3R0
bGUgcmVwZWF0aW5nIHRpbWVycyB0aGF0CisgICAgICAgIGNoYW5nZSB0aGUgc3R5bGUgb2YgYSAw
IGhlaWdodCBib2R5IG9yIGh0bWwgZWxlbWVudC4gVGhpcyBtYWtlcyBzdXJlCisgICAgICAgIG91
ciBSZW5kZXJFbGVtZW50Ojppc0luc2lkZVZpZXdwb3J0KCkgZGV0ZWN0aW9uIGlzIGNvcnJlY3Qg
Zm9yIHN1Y2gKKyAgICAgICAgZWxlbWVudHMuCisKKyAgICAgICAgKiBmYXN0L2RvbS9yZXBlYXRp
bmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5
LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBl
YXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1o
dG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1sOiBBZGRlZC4KKwogMjAxNC0xMi0wOSAgSm9hbm1h
cmllIERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQnVtcCBtaW5p
bXVtIHZlcnNpb24gb2YgQVRLIHVzZWQgYnkgamhidWlsZCB0byBhdCBsZWFzdCAyLjE1LjIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmct
Ym9keS1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg2ZTJmZWM4MzQyYTYzYjRkMDI4ODQ3NWY3Y2ZjMjdlNDc4
MWFiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10
aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgYSByZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0
eWxlIG9mIGEgMCBoZWlnaHQgYm9keSBlbGVtZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LmJvZHkpLmhlaWdodCBpcyAiMHB4IgorUEFTUyBpbnRlcm5hbHMuaXNUaW1l
clRocm90dGxlZCh0aW1lb3V0SWQpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVs
ZW1lbnQtdGhyb3R0bGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkYzdjZThjNzQxMTZiZGM2ZmRhYmZl
NTMxOGFhOGJlN2VlOGVmOWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWwK
QEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiAw
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgaXRlcmF0aW9uQ291bnQg
PSAwOwordmFyIHRpbWVvdXRJZDsKKworZnVuY3Rpb24gdGltZXJDYWxsYmFjaygpCit7CisgICsr
aXRlcmF0aW9uQ291bnQ7CisgIC8vIEludGVyYWN0IHdpdGggdGhlIHN0eWxlIG9mIHRoZSBib2R5
LgorICBkb2N1bWVudC5ib2R5LnN0eWxlWyJvcGFjaXR5Il0gPSAiIiArIChpdGVyYXRpb25Db3Vu
dCAvIDEwLik7CisKKyAgLy8gNSBpdGVyYXRpb25zIHNob3VsZCBzdWZmaWNlIHRvIHRocm90dGxl
IHRoZSB0aW1lci4KKyAgaWYgKGl0ZXJhdGlvbkNvdW50ID09IDUpIHsKKyAgICBkZXNjcmlwdGlv
bigiVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgYSAw
IGhlaWdodCBib2R5IGVsZW1lbnQgZG9lcyBub3QgZ2V0IHRocm90dGxlZC4iKTsKKyAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkp
LmhlaWdodCIsICIwcHgiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaXNUaW1lclRo
cm90dGxlZCh0aW1lb3V0SWQpIik7CisgICAgY2xlYXJJbnRlcnZhbCh0aW1lb3V0SWQpOworICAg
IGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKK3RpbWVvdXRJZCA9IHNldEludGVydmFsKHRpbWVy
Q2FsbGJhY2ssIDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRs
aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1h
bmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkNTc3NWM3NDRiNjJjODA0MDdhMzZkNTdjOTcwMWFkMTIyYWJjZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwt
ZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0
aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5naW5nIHRoZSBzdHlsZSBvZiBhIDAgaGVpZ2h0IGh0
bWwgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhyb3R0bGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQpLmhlaWdodCBpcyAiMHB4IgorUEFTUyBpbnRlcm5hbHMuaXNUaW1lclRocm90dGxl
ZCh0aW1lb3V0SWQpIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisK
K1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0
aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhy
b3R0bGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiMWM1NDA2YzY5YTJmMDM2YWUwODNiYzgzYWZiYjk1
MTMyNTYzYmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRp
bmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLmh0bWwKQEAgLTAsMCAr
MSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iaGVpZ2h0OiAwIj4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBpdGVyYXRpb25Db3VudCA9
IDA7Cit2YXIgdGltZW91dElkOworCitmdW5jdGlvbiB0aW1lckNhbGxiYWNrKCkKK3sKKyAgKytp
dGVyYXRpb25Db3VudDsKKyAgLy8gSW50ZXJhY3Qgd2l0aCB0aGUgc3R5bGUgb2YgdGhlIGJvZHku
CisgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZVsib3BhY2l0eSJdID0gIiIgKyAoaXRl
cmF0aW9uQ291bnQgLyAxMC4pOworCisgIC8vIDUgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZSB0
byB0aHJvdHRsZSB0aGUgdGltZXIuCisgIGlmIChpdGVyYXRpb25Db3VudCA9PSA1KSB7CisgICAg
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSByZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0
eWxlIG9mIGEgMCBoZWlnaHQgaHRtbCBlbGVtZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuIik7
CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQpLmhlaWdodCIsICIwcHgiKTsKKyAgICBzaG91bGRCZUZhbHNl
KCJpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIik7CisgICAgY2xlYXJJbnRl
cnZhbCh0aW1lb3V0SWQpOworICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKK3RpbWVvdXRJ
ZCA9IHNldEludGVydmFsKHRpbWVyQ2FsbGJhY2ssIDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242960</attachid>
            <date>2014-12-09 13:22:53 -0800</date>
            <delta_ts>2014-12-09 15:58:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141209132334.patch</filename>
            <type>text/plain</type>
            <size>12264</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjYxYWIxYzEwY2IyYzA0
NThkODlkNTY1OGE4ODFmMmQwNjY3MWJmNC4uNjljYzYwZDg0Mjg5NTM2NTc5ZGU1MjMwOGZmMGM2
YTVmOTM4ZmI1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTEyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBmdW5j
dGlvbiB1c2VkIHRvIGRldGVybWluZSBpZgorICAgICAgICB3ZSBzaG91bGQgYW5pbWF0ZSBpbWFn
ZXMgb3IgdW50aHJvdHRsZSBET00gdGltZXJzIHdhcyBub3QgY29ycmVjdGx5CisgICAgICAgIGhh
bmRsaW5nIGJvZHkgb3IgaHRtbCBlbGVtZW50cy4gVGhpcyBwYXRjaCBmaXhlcyB0aGlzIGJ5IGFk
ZGluZworICAgICAgICBhbiAiaXNSb290KCkgfHwgaXNCb2R5KCkiIGNoZWNrIGluIGlzSW5zaWRl
Vmlld3BvcnQoKSBmdW5jdGlvbiBhbmQKKyAgICAgICAgdXNlIHRoZSBiYWNrZ3JvdW5kIHJlY3Qg
aW4gdGhpcyBjYXNlIChpLmUuCisgICAgICAgIFJlbmRlclZpZXc6OmJhY2tncm91bmRSZWN0KCkp
LiBUaGlzIHdheSwgd2UgY2hlY2sgaWYgdGhlcmUgaXMKKyAgICAgICAgYW4gZXh0ZW5kZWQgYmFj
a2dyb3VuZCByZWN0IGZvciBwYWludGluZyBhbmQgdXNlIGl0IGlmIHRoZXJlIGlzLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVu
dC10aHJvdHRsaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3JlcGVhdGluZy10aW1l
ci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmcuaHRtbAorICAgICAgICAgICAgICAg
ZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5p
bWF0aW9uLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQpOgorCiAyMDE0
LTEyLTA5ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdS
RVNTSU9OIChyMTczMjcyKTogV2hlbiBvcGVuIFBERiBmcm9tIFNhZmFyaSBpbiBpQm9va3MsIHRp
dGxlIGlzIHJlcGxhY2VkIHRvIOKAnFF1aWNrTG9va1BERi1zNzJEYmdBVS0x4oCdCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggNmY1MmVhNzI5YjIzOThj
OWVjZWJlOGNhZGM2YTNkMDdmNTA0ODZjZi4uYWJmNjMwNWZlNTVlNTkzOTQ2ZDFkMWYwNTgxNjU0
NTdmY2U2ZTk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cApAQCAtMTMzMiwxMyArMTMzMiwyNSBAQCBib29sIFJlbmRlckVsZW1lbnQ6OmJvcmRlckltYWdl
SXNMb2FkZWRBbmRDYW5CZVJlbmRlcmVkKCkgY29uc3QKIAogYm9vbCBSZW5kZXJFbGVtZW50Ojpp
c0luc2lkZVZpZXdwb3J0KGNvbnN0IEludFJlY3QqIHZpc2libGVSZWN0KSBjb25zdAogewotICAg
IGF1dG8mIGZyYW1lVmlldyA9IHZpZXcoKS5mcmFtZVZpZXcoKTsKKyAgICAvLyBNYWtlIHN1cmUg
d2UgYXJlIHJvb3RlZCAobm90ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1cm5zIHRoZSB2aWV3IHdo
ZW4gdW5yb290ZWQpLgorICAgIFJlbmRlclZpZXcqIHZpZXc7CisgICAgaWYgKCFpc1Jvb3RlZCgm
dmlldykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIGZyYW1lVmlldyA9IHZp
ZXctPmZyYW1lVmlldygpOwogICAgIGlmIChmcmFtZVZpZXcuaXNPZmZzY3JlZW4oKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgcm9vdCBiYWNrZ3JvdW5k
LCB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGlzIGFuIGV4dGVuZGVkIGJhY2tncm91bmQgcmVj
dC4KKyAgICBJbnRSZWN0IHJlcGFpbnRSZWN0OworICAgIGlmIChpc1Jvb3QoKSB8fCBpc0JvZHko
KSkKKyAgICAgICAgcmVwYWludFJlY3QgPSBzbmFwcGVkSW50UmVjdCh2aWV3LT5iYWNrZ3JvdW5k
UmVjdCh2aWV3KSk7CisgICAgZWxzZQorICAgICAgICByZXBhaW50UmVjdCA9IHNuYXBwZWRJbnRS
ZWN0KGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKTsKKwogICAgIC8vIENvbXB1dGUgdmll
d3BvcnQgcmVjdCBpZiBpdCB3YXMgbm90IHByb3ZpZGVkLgogICAgIGNvbnN0IEludFJlY3QmIHZp
ZXdwb3J0UmVjdCA9IHZpc2libGVSZWN0ID8gKnZpc2libGVSZWN0IDogZnJhbWVWaWV3LndpbmRv
d1RvQ29udGVudHMoZnJhbWVWaWV3LndpbmRvd0NsaXBSZWN0KCkpOwotICAgIHJldHVybiB2aWV3
cG9ydFJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJbnRSZWN0KGFic29sdXRlQ2xpcHBlZE92ZXJm
bG93UmVjdCgpKSk7CisgICAgcmV0dXJuIHZpZXdwb3J0UmVjdC5pbnRlcnNlY3RzKHJlcGFpbnRS
ZWN0KTsKIH0KIAogc3RhdGljIGJvb2wgc2hvdWxkUmVwYWludEZvckltYWdlQW5pbWF0aW9uKGNv
bnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzYTM4NzNhYTE4NGZkYzlhYzZiOTBmNDdhODdmYjNhOWExMjU5ZDgwLi41ZTViMmI2
NWJkYWI2NTk1NjQ0ZjllNDk1NTQyNjAxZTNjYTFkZWI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTQtMTItMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBo
dHRwOi8vb21mZ2RvZ3MuaW5mby8gb25seSBhbmltYXRlcyB3aGVuIHlvdSByZXNpemUgdGhlIHdp
bmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5
NDM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTE5MDQ5Mz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgbGF5b3V0IHRlc3RzIHRvIG1ha2Ug
c3VyZSB3ZSBkb24ndCB0aHJvdHRsZSByZXBlYXRpbmcgdGltZXJzIHRoYXQKKyAgICAgICAgY2hh
bmdlIHRoZSBzdHlsZSBvZiBhIDAgaGVpZ2h0IGJvZHkgb3IgaHRtbCBlbGVtZW50LiBUaGlzIG1h
a2VzIHN1cmUKKyAgICAgICAgb3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBk
ZXRlY3Rpb24gaXMgY29ycmVjdCBmb3Igc3VjaAorICAgICAgICBlbGVtZW50cy4KKworICAgICAg
ICBBZGQgYW5vdGhlciBsYXlvdXQgdGVzdCB0byBtYWtlIHN1cmUgd2Uga2VlcCB0aHJvdHRsaW5n
IHRpbWVycyBpbnNpZGUKKyAgICAgICAgYW4gaWZyYW1lIHRoYXQgYW5pbWF0ZSB0aGUgYm9keSBl
bGVtZW50LCB3aGVuIHRoZSBpZnJhbWUgaXMgc2Nyb2xsZWQKKyAgICAgICAgb3V0IG9mIHRoZSB2
aWV3IHBvcnQsIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCByZWdyZXNzIHRoaXMgY2FzZS4KKworICAg
ICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRo
cm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBlYXRp
bmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50
LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBl
YXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL3Jlc291cmNlcy90aW1lci10aHJvdHRsaW5nLWlmcmFtZS1h
bmltYXRpbmctYm9keS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci10aHJv
dHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24tZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmct
aWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTQtMTItMDkgIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgREZHIFRyaWVzIHVz
aW5nIGFuIGlubmVyIG9iamVjdCdzIGdldHRlci9zZXR0ZXIgd2hlbiBvbmUgaGFzbid0IGJlZW4g
ZGVmaW5lZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVy
LWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJv
dHRsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kODZlMmZlYzgzNDJhNjNiNGQwMjg4NDc1
ZjdjZmMyN2U0NzgxYWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
cmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBjaGFu
Z2luZyB0aGUgc3R5bGUgb2YgYSAwIGhlaWdodCBib2R5IGVsZW1lbnQgZG9lcyBub3QgZ2V0IHRo
cm90dGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSkuaGVpZ2h0IGlzICIwcHgiCitQQVNTIGludGVy
bmFscy5pc1RpbWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJv
dHRsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0
aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRjN2NlOGM3NDEx
NmJkYzZmZGFiZmU1MzE4YWE4YmU3ZWU4ZWY5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90
dGxpbmcuaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5IHN0eWxl
PSJoZWlnaHQ6IDAiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBpdGVy
YXRpb25Db3VudCA9IDA7Cit2YXIgdGltZW91dElkOworCitmdW5jdGlvbiB0aW1lckNhbGxiYWNr
KCkKK3sKKyAgKytpdGVyYXRpb25Db3VudDsKKyAgLy8gSW50ZXJhY3Qgd2l0aCB0aGUgc3R5bGUg
b2YgdGhlIGJvZHkuCisgIGRvY3VtZW50LmJvZHkuc3R5bGVbIm9wYWNpdHkiXSA9ICIiICsgKGl0
ZXJhdGlvbkNvdW50IC8gMTAuKTsKKworICAvLyA1IGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2Ug
dG8gdGhyb3R0bGUgdGhlIHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNSkgeworICAg
IGRlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5naW5nIHRoZSBz
dHlsZSBvZiBhIDAgaGVpZ2h0IGJvZHkgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhyb3R0bGVkLiIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuYm9keSkuaGVpZ2h0IiwgIjBweCIpOworICAgIHNob3VsZEJlRmFsc2UoImludGVybmFs
cy5pc1RpbWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkiKTsKKyAgICBjbGVhckludGVydmFsKHRpbWVv
dXRJZCk7CisgICAgZmluaXNoSlNUZXN0KCk7CisgIH0KK30KKwordGltZW91dElkID0gc2V0SW50
ZXJ2YWwodGltZXJDYWxsYmFjaywgMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVt
ZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0
aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWQ1Nzc1Yzc0NGI2MmM4MDQwN2EzNmQ1N2M5NzAxYWQxMjJhYmNkZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmlt
YXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3RzIHRoYXQgYSByZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEg
MCBoZWlnaHQgaHRtbCBlbGVtZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCkuaGVpZ2h0IGlzICIwcHgiCitQQVNTIGludGVybmFscy5pc1Rp
bWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwt
ZWxlbWVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIxYzU0MDZjNjlhMmYwMzZhZTA4
M2JjODNhZmJiOTUxMzI1NjNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmcuaHRt
bApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJoZWlnaHQ6
IDAiPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGl0ZXJh
dGlvbkNvdW50ID0gMDsKK3ZhciB0aW1lb3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2so
KQoreworICArK2l0ZXJhdGlvbkNvdW50OworICAvLyBJbnRlcmFjdCB3aXRoIHRoZSBzdHlsZSBv
ZiB0aGUgYm9keS4KKyAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlWyJvcGFjaXR5Il0g
PSAiIiArIChpdGVyYXRpb25Db3VudCAvIDEwLik7CisKKyAgLy8gNSBpdGVyYXRpb25zIHNob3Vs
ZCBzdWZmaWNlIHRvIHRocm90dGxlIHRoZSB0aW1lci4KKyAgaWYgKGl0ZXJhdGlvbkNvdW50ID09
IDUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBjaGFu
Z2luZyB0aGUgc3R5bGUgb2YgYSAwIGhlaWdodCBodG1sIGVsZW1lbnQgZG9lcyBub3QgZ2V0IHRo
cm90dGxlZC4iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuaGVpZ2h0IiwgIjBweCIpOworICAgIHNo
b3VsZEJlRmFsc2UoImludGVybmFscy5pc1RpbWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkiKTsKKyAg
ICBjbGVhckludGVydmFsKHRpbWVvdXRJZCk7CisgICAgZmluaXNoSlNUZXN0KCk7CisgIH0KK30K
KwordGltZW91dElkID0gc2V0SW50ZXJ2YWwodGltZXJDYWxsYmFjaywgMCk7Cis8L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291
cmNlcy90aW1lci10aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3RpbWVyLXRocm90dGxpbmctaWZyYW1lLWFuaW1hdGlu
Zy1ib2R5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQwODExNGFiNjkzYjc0ZDJmMDdkYWNkNmMxODEwZmZh
NTBhZWQ3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNl
cy90aW1lci10aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sCkBAIC0wLDAgKzEs
MjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGl0ZXJhdGlvbkNv
dW50ID0gMDsKK3ZhciB0aW1lb3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2soKSB7Cisg
ICsraXRlcmF0aW9uQ291bnQ7CisKKyAgLy8gQ2hhbmdlIHN0eWxlIG9mIEVsZW1lbnQuCisgIGRv
Y3VtZW50LmJvZHkuc3R5bGVbIm9wYWNpdHkiXSA9ICIiICsgKGl0ZXJhdGlvbkNvdW50IC8gMTAu
KTsKKworICBwYXJlbnQudGltZXJGaXJlZChpdGVyYXRpb25Db3VudCwgaW50ZXJuYWxzLmlzVGlt
ZXJUaHJvdHRsZWQodGltZW91dElkKSk7CisKKyAgaWYgKGl0ZXJhdGlvbkNvdW50ID09IDcpCisg
ICAgY2xlYXJJbnRlcnZhbCh0aW1lb3V0SWQpOworfQorCit0aW1lb3V0SWQgPSBzZXRJbnRlcnZh
bCh0aW1lckNhbGxiYWNrLCAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5
LWJvZHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVy
LXRocm90dGxlLW9uLXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTY2MTlhMGJiYzE3YmNjMzVhMmFjNTViMzU3NWZlZGI2MjBjMzI5
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxl
LW9uLXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNCBAQAorVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBpbiBhbiBpZnJhbWUg
Y2hhbmdpbmcgdGhlIHN0eWxlIG9mIHRoZSBib2R5IGdldHMgdGhyb3R0bGVkIHdoZW4gc2Nyb2xs
aW5nIHRoZSBmcmFtZSBvdXQgb2Ygdmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK0ZyYW1lIGlzIGluc2lkZSB2aWV3cG9ydCwgdGltZXIgc2hvdWxkIG5vdCBiZSB0aHJvdHRs
ZWQKK1BBU1MgaXNUaW1lclRocm90dGxlZEJlZm9yZVNjcm9sbCBpcyBmYWxzZQorU2Nyb2xsaW5n
IGZyYW1lIG91dCBvZiB2aWV3LgorRnJhbWUgaXMgb3V0c2lkZSB2aWV3cG9ydCwgdGltZXIgc2hv
dWxkIG5vdyBiZSB0aHJvdHRsZWQKK1BBU1MgaXNUaW1lclRocm90dGxlZEFmdGVyU2Nyb2xsIGlz
IHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3Jv
bGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3RpbWVyLXRocm90dGxlLW9uLXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlv
bi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhODk4ODEzNzdjZjBiYWYzNTk1ZjNmNjljMmZlYWViNWJkZTMx
YjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRs
ZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbApAQCAtMCwwICsx
LDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRl
c3RzIHRoYXQgYSByZXBlYXRpbmcgdGltZXIgaW4gYW4gaWZyYW1lIGNoYW5naW5nIHRoZSBzdHls
ZSBvZiB0aGUgYm9keSBnZXRzIHRocm90dGxlZCB3aGVuIHNjcm9sbGluZyB0aGUgZnJhbWUgb3V0
IG9mIHZpZXcuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc2Nyb2xsRnJh
bWVPdXRPZlZpZXcoKQoreworICBkZWJ1ZygiU2Nyb2xsaW5nIGZyYW1lIG91dCBvZiB2aWV3LiIp
OworICB3aW5kb3cuc2Nyb2xsQnkoMCw4MDApOworfQorCitmdW5jdGlvbiB0aW1lckZpcmVkKGl0
ZXJhdGlvbkNvdW50LCBpc1Rocm90dGxlZCkgeworICAvLyA1IGl0ZXJhdGlvbnMgc2hvdWxkIHN1
ZmZpY2UgdG8gdGhyb3R0bGUgdGhlIHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNSkg
eworICAgIGRlYnVnKCJGcmFtZSBpcyBpbnNpZGUgdmlld3BvcnQsIHRpbWVyIHNob3VsZCBub3Qg
YmUgdGhyb3R0bGVkIik7CisgICAgaXNUaW1lclRocm90dGxlZEJlZm9yZVNjcm9sbCA9IGlzVGhy
b3R0bGVkOworICAgIHNob3VsZEJlRmFsc2UoImlzVGltZXJUaHJvdHRsZWRCZWZvcmVTY3JvbGwi
KTsKKyAgICBzY3JvbGxGcmFtZU91dE9mVmlldygpOworICB9IGVsc2UgaWYgKGl0ZXJhdGlvbkNv
dW50ID09IDcpIHsKKyAgICBkZWJ1ZygiRnJhbWUgaXMgb3V0c2lkZSB2aWV3cG9ydCwgdGltZXIg
c2hvdWxkIG5vdyBiZSB0aHJvdHRsZWQiKTsKKyAgICBpc1RpbWVyVGhyb3R0bGVkQWZ0ZXJTY3Jv
bGwgPSBpc1Rocm90dGxlZDsKKyAgICBzaG91bGRCZVRydWUoImlzVGltZXJUaHJvdHRsZWRBZnRl
clNjcm9sbCIpOworICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKKzwvc2NyaXB0PgorPGRp
diBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTYwMHB4OyBoZWlnaHQ6IDI0MDBw
eDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Ij4KKyAgPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBz
cmM9InJlc291cmNlcy90aW1lci10aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1s
IiBzdHlsZT0id2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9pZnJhbWU+Cis8L2Rpdj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242973</attachid>
            <date>2014-12-09 15:58:45 -0800</date>
            <delta_ts>2014-12-09 17:11:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141209155926.patch</filename>
            <type>text/plain</type>
            <size>15589</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJkZjhhZmRlYzAxZDA1
YWVjOTdhNGJjMTJkN2VhN2Q5ODFiZDYyNC4uMTM2ZWM5Nzc2ZmU1ZjQ2MzExNzJiYjYzNzlmN2Nk
MzgwOGU5MDIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE0LTEyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBmdW5j
dGlvbiB1c2VkIHRvIGRldGVybWluZSBpZgorICAgICAgICB3ZSBzaG91bGQgYW5pbWF0ZSBpbWFn
ZXMgb3IgdW50aHJvdHRsZSBET00gdGltZXJzIHdhcyBub3QgY29ycmVjdGx5CisgICAgICAgIGhh
bmRsaW5nIHJvb3QgcmVuZGVyZXJzIG9yIGJvZHkgcmVuZGVyZXJlcnMgd2hlbiB0aGUgcm9vdCBy
ZW5kZXJlcgorICAgICAgICBoYXMgbm8gYmFja2dyb3VuZC4KKworICAgICAgICBUaGlzIHBhdGNo
IHVwZGF0ZXMgaXNJbnNpZGVWaWV3cG9ydCgpIHRvIHVzZSB0aGUgYmFja2dyb3VuZCByZWN0Cisg
ICAgICAgIGluc3RlYWQgb2YgdGhlIHJlbmRlcmVyJ3MgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0KCkgaWYgdGhlIHJlbmRlcmVyCisgICAgICAgIGlzIHRoZSByb290IHJlbmRlcmVyIG9yIGlm
IGl0IGlzIHRoZSBib2R5IHJlbmRlcmVyIGFuZCB0aGUgcm9vdAorICAgICAgICByZW5kZXJlciBo
YXMgbm8gYmFja2dyb3VuZC4gVGhpcyBmaXhlcyBpc3N1ZXMgd2hlcmUgd2Ugd291bGQgbm90Cisg
ICAgICAgIHByb3Blcmx5IGRldGVjdCBpZiB0aGUgYm9keS9yb290IHJlbmRlcmVyIGlzIGluc2lk
ZSB0aGUgdmlld3BvcnQuIFdlCisgICAgICAgIHdvdWxkIHRodXMgd3JvbmdseSB0aHJvdHRsZSBE
T00gdGltZXJzIGFuZCBmYWlsIHRvIGFuaW1hdGUgaW1hZ2VzIGluCisgICAgICAgIHN1Y2ggY2Fz
ZXMuCisKKyAgICAgICAgSWRlYWxseSwgZm9yIHRoZSBhbmltYXRlZCBpbWFnZSBjYXNlLCB3ZSB3
b3VsZCBiZSBhYmxlIHRvIGRldGVjdCB3aGVuCisgICAgICAgIHRoZSBpbWFnZSBpcyBzZXQgYXMg
dGhlIG5vbi1yZXBlYXRpbmcgYmFja2dyb3VuZCBpbWFnZSBhbmQgaXRzIHBvc2l0aW9uCisgICAg
ICAgIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LiBXZSBjdXJyZW50bHkgZG9uJ3QgZGV0ZWN0IHRo
aXMgcHJvcGVybHkgYW5kIHdlCisgICAgICAgIGVuZCB1cCBhbmltYXRpbmcgdGhlIGltYWdlIHVu
bmVjZXNzYXJpbHkuIFdlIGNhbiBpbXByb3ZlIHRoaXMgbGF0ZXIgb24uCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LW91dHNp
ZGUtdmlld3BvcnQtdGhyb3R0bGluZy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9yZXBl
YXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWwKKyAgICAg
ICAgICAgICAgIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50
LXRocm90dGxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vdGltZXItdGhyb3R0bGUt
b24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVs
ZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQpOgorCiAyMDE0LTEyLTA5ICBNeWxlcyBDLiBNYXhmaWVs
ZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGlPUyBidWlsZCBhZnRlciBy
MTc3MDM1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4
IDI1ZGY2OTdiOTI2NTEzZTRmNDI5Mjc4ZGVlNDg5OWNmYmMwYTU2N2QuLmYxYTQwZjE4YjI3NzVk
OGZmOWI4ZGVlN2E0YTE0NGVlZTE0YTg3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKQEAgLTEzMzIsMTMgKzEzMzIsMjUgQEAgYm9vbCBSZW5kZXJFbGVt
ZW50Ojpib3JkZXJJbWFnZUlzTG9hZGVkQW5kQ2FuQmVSZW5kZXJlZCgpIGNvbnN0CiAKIGJvb2wg
UmVuZGVyRWxlbWVudDo6aXNJbnNpZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVj
dCkgY29uc3QKIHsKLSAgICBhdXRvJiBmcmFtZVZpZXcgPSB2aWV3KCkuZnJhbWVWaWV3KCk7Cisg
ICAgLy8gTWFrZSBzdXJlIHdlIGFyZSByb290ZWQgKG5vdGUgdGhhdCB2aWV3KCkgc3RpbGwgcmV0
dXJucyB0aGUgdmlldyB3aGVuIHVucm9vdGVkKS4KKyAgICBSZW5kZXJWaWV3KiB2aWV3OworICAg
IGlmICghaXNSb290ZWQoJnZpZXcpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBhdXRv
JiBmcmFtZVZpZXcgPSB2aWV3LT5mcmFtZVZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3LmlzT2Zm
c2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIElmIHRoaXMgaXMgdGhl
IHJvb3QgYmFja2dyb3VuZCwgd2UgbmVlZCB0byBjaGVjayBpZiB0aGVyZSBpcyBhbiBleHRlbmRl
ZCBiYWNrZ3JvdW5kIHJlY3QuCisgICAgSW50UmVjdCByZXBhaW50UmVjdDsKKyAgICBpZiAoaXNS
b290KCkgfHwgKGlzQm9keSgpICYmICFkb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpLT5yZW5k
ZXJlcigpLT5oYXNCYWNrZ3JvdW5kKCkpKQorICAgICAgICByZXBhaW50UmVjdCA9IHNuYXBwZWRJ
bnRSZWN0KHZpZXctPmJhY2tncm91bmRSZWN0KHZpZXcpKTsKKyAgICBlbHNlCisgICAgICAgIHJl
cGFpbnRSZWN0ID0gc25hcHBlZEludFJlY3QoYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkp
OworCiAgICAgLy8gQ29tcHV0ZSB2aWV3cG9ydCByZWN0IGlmIGl0IHdhcyBub3QgcHJvdmlkZWQu
CiAgICAgY29uc3QgSW50UmVjdCYgdmlld3BvcnRSZWN0ID0gdmlzaWJsZVJlY3QgPyAqdmlzaWJs
ZVJlY3QgOiBmcmFtZVZpZXcud2luZG93VG9Db250ZW50cyhmcmFtZVZpZXcud2luZG93Q2xpcFJl
Y3QoKSk7Ci0gICAgcmV0dXJuIHZpZXdwb3J0UmVjdC5pbnRlcnNlY3RzKGVuY2xvc2luZ0ludFJl
Y3QoYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkpKTsKKyAgICByZXR1cm4gdmlld3BvcnRS
ZWN0LmludGVyc2VjdHMocmVwYWludFJlY3QpOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRSZXBh
aW50Rm9ySW1hZ2VBbmltYXRpb24oY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIGNvbnN0
IEludFJlY3QmIHZpc2libGVSZWN0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDAyNzAyNzNjY2Y5NmZhZDM0Mzk4MTI0MmQx
Nzg2NDA4N2JhODk1NTMuLjMxNTRhNjIyZmQ3ODIwMjU3MjA1MjQ3ZTRjYzE5NWMyN2Q5YmRkOTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwzMiBAQAogMjAxNC0xMi0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCisgICAgICAgIGh0dHA6Ly9vbWZnZG9ncy5pbmZvLyBvbmx5IGFuaW1hdGVz
IHdoZW4geW91IHJlc2l6ZSB0aGUgd2luZG93CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MTkw
NDkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBsYXlvdXQgdGVzdHMgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHRocm90dGxlIHJlcGVhdGluZyB0
aW1lcnMgdGhhdAorICAgICAgICBjaGFuZ2UgdGhlIHN0eWxlIG9mIGEgMCBoZWlnaHQgYm9keSBv
ciBodG1sIGVsZW1lbnQuIFRoaXMgbWFrZXMgc3VyZQorICAgICAgICBvdXIgUmVuZGVyRWxlbWVu
dDo6aXNJbnNpZGVWaWV3cG9ydCgpIGRldGVjdGlvbiBpcyBjb3JyZWN0IGZvciBzdWNoCisgICAg
ICAgIGVsZW1lbnRzLgorCisgICAgICAgIEFkZCBhbm90aGVyIGxheW91dCB0ZXN0IHRvIG1ha2Ug
c3VyZSB3ZSBrZWVwIHRocm90dGxpbmcgdGltZXJzIGluc2lkZQorICAgICAgICBhbiBpZnJhbWUg
dGhhdCBhbmltYXRlIHRoZSBib2R5IGVsZW1lbnQsIHdoZW4gdGhlIGlmcmFtZSBpcyBzY3JvbGxl
ZAorICAgICAgICBvdXQgb2YgdGhlIHZpZXcgcG9ydCwgdG8gbWFrZSBzdXJlIHdlIGRvbid0IHJl
Z3Jlc3MgdGhpcyBjYXNlLgorCisgICAgICAgICogZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFu
aW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGlu
Zy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50
LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBl
YXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVt
ZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9y
ZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3Jlc291cmNlcy90aW1lci10aHJvdHRsaW5nLWlmcmFt
ZS1hbmltYXRpbmctYm9keS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci10
aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxp
bmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbDogQWRkZWQuCisKKzIwMTQtMTItMDkg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwogICAgICAgICBbV0syXSBDcmFzaCB3
aGVuIGFuc3dlcmluZyBub3RpZmljYXRpb24gcGVybWlzc2lvbiByZXF1ZXN0IGFmdGVyIG5hdmln
YXRpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
OTQyOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTg5MjExMjI+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC1v
dXRzaWRlLXZpZXdwb3J0LXRocm90dGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3
cG9ydC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOWFlODUxOGU3ZDZlNmE3
YWY2NTBkNzFkYTZkNzAzODI2YWM1NTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12
aWV3cG9ydC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUZXN0IHRv
IG1ha2Ugc3VyZSB3ZSB0aHJvdHRsZSBET00gdGltZXJzIHRoYXQgY2hhbmdlIHRoZSBzdHlsZSBv
ZiB0aGUgYm9keSBpZiB0aGUgYm9keSBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydC4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1RpbWVyIHNob3VsZCBpbml0aWFsbHkgbm90IGJlIHRo
cm90dGxlZC4KK1BBU1MgaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGltZW91dElkKSBpcyBm
YWxzZQorUEFTUyBpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIGlzIHRydWUK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJv
ZHktZWxlbWVudC1vdXRzaWRlLXZpZXdwb3J0LXRocm90dGxpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LW91dHNpZGUt
dmlld3BvcnQtdGhyb3R0bGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiY2QzMzY5MjM3NmNkZTdhNDU2
ZDFjMWViYzYzYTRmZjFjZDQ0YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC1vdXRzaWRlLXZpZXdw
b3J0LXRocm90dGxpbmcuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6IDE2MDBweDsgaGVpZ2h0
OiAxMjAwcHgiPgorPGJvZHkgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJlZDsgcG9zaXRpb246
IHJlbGF0aXZlOyBsZWZ0OiA5MDBweDsgdG9wOiA3MDBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6
IDIwMHB4Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNjcmlwdGlvbigi
VGVzdCB0byBtYWtlIHN1cmUgd2UgdGhyb3R0bGUgRE9NIHRpbWVycyB0aGF0IGNoYW5nZSB0aGUg
c3R5bGUgb2YgdGhlIGJvZHkgaWYgdGhlIGJvZHkgaXMgb3V0c2lkZSB0aGUgdmlld3BvcnQuIik7
CisKK3ZhciBpdGVyYXRpb25Db3VudCA9IDA7Cit2YXIgdGltZW91dElkOworCitmdW5jdGlvbiB0
aW1lckNhbGxiYWNrKCkKK3sKKyAgKytpdGVyYXRpb25Db3VudDsKKyAgLy8gSW50ZXJhY3Qgd2l0
aCB0aGUgc3R5bGUgb2YgdGhlIGJvZHkuCisgIGRvY3VtZW50LmJvZHkuc3R5bGVbIm9wYWNpdHki
XSA9ICIiICsgKGl0ZXJhdGlvbkNvdW50IC8gMTAuKTsKKworICAvLyA1IGl0ZXJhdGlvbnMgc2hv
dWxkIHN1ZmZpY2UgdG8gdGhyb3R0bGUgdGhlIHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQg
PT0gNSkgeworICAgIHNob3VsZEJlVHJ1ZSgiaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGlt
ZW91dElkKSIpOworICAgIGNsZWFySW50ZXJ2YWwodGltZW91dElkKTsKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKKyAgfQorfQorCit0aW1lb3V0SWQgPSBzZXRJbnRlcnZhbCh0aW1lckNhbGxiYWNrLCAw
KTsKK2RlYnVnKCJUaW1lciBzaG91bGQgaW5pdGlhbGx5IG5vdCBiZSB0aHJvdHRsZWQuIik7Citz
aG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIik7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGlu
Zy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDg2ZTJm
ZWM4MzQyYTYzYjRkMDI4ODQ3NWY3Y2ZjMjdlNDc4MWFiMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50
LXRocm90dGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoYXQgYSBy
ZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgMCBoZWlnaHQgYm9keSBlbGVt
ZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmhlaWdodCBp
cyAiMHB4IgorUEFTUyBpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIGlzIGZh
bHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGlu
Zy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVw
ZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmVkYzdjZThjNzQxMTZiZGM2ZmRhYmZlNTMxOGFhOGJlN2VlOGVmOWEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5n
LWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8Ym9keSBzdHlsZT0iaGVpZ2h0OiAwIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOwordmFyIHRpbWVvdXRJZDsKKworZnVu
Y3Rpb24gdGltZXJDYWxsYmFjaygpCit7CisgICsraXRlcmF0aW9uQ291bnQ7CisgIC8vIEludGVy
YWN0IHdpdGggdGhlIHN0eWxlIG9mIHRoZSBib2R5LgorICBkb2N1bWVudC5ib2R5LnN0eWxlWyJv
cGFjaXR5Il0gPSAiIiArIChpdGVyYXRpb25Db3VudCAvIDEwLik7CisKKyAgLy8gNSBpdGVyYXRp
b25zIHNob3VsZCBzdWZmaWNlIHRvIHRocm90dGxlIHRoZSB0aW1lci4KKyAgaWYgKGl0ZXJhdGlv
bkNvdW50ID09IDUpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0
aW1lciBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgYSAwIGhlaWdodCBib2R5IGVsZW1lbnQgZG9lcyBu
b3QgZ2V0IHRocm90dGxlZC4iKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpLmhlaWdodCIsICIwcHgiKTsKKyAgICBzaG91
bGRCZUZhbHNlKCJpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIik7CisgICAg
Y2xlYXJJbnRlcnZhbCh0aW1lb3V0SWQpOworICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisK
K3RpbWVvdXRJZCA9IHNldEludGVydmFsKHRpbWVyQ2FsbGJhY2ssIDApOworPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXIt
YW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90
dGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkNTc3NWM3NDRiNjJjODA0MDdhMzZkNTdj
OTcwMWFkMTIyYWJjZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9y
ZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5n
aW5nIHRoZSBzdHlsZSBvZiBhIDAgaGVpZ2h0IGh0bWwgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhy
b3R0bGVkLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmhlaWdodCBpcyAiMHB4Igor
UEFTUyBpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIGlzIGZhbHNlCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVs
ZW1lbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRp
bWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
MWM1NDA2YzY5YTJmMDM2YWUwODNiYzgzYWZiYjk1MTMyNTYzYmMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxl
bWVudC10aHJvdHRsaW5nLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbCBzdHlsZT0iaGVpZ2h0OiAwIj4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3ZhciBpdGVyYXRpb25Db3VudCA9IDA7Cit2YXIgdGltZW91dElkOworCitmdW5j
dGlvbiB0aW1lckNhbGxiYWNrKCkKK3sKKyAgKytpdGVyYXRpb25Db3VudDsKKyAgLy8gSW50ZXJh
Y3Qgd2l0aCB0aGUgc3R5bGUgb2YgdGhlIGJvZHkuCisgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5zdHlsZVsib3BhY2l0eSJdID0gIiIgKyAoaXRlcmF0aW9uQ291bnQgLyAxMC4pOworCisgIC8v
IDUgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZSB0byB0aHJvdHRsZSB0aGUgdGltZXIuCisgIGlm
IChpdGVyYXRpb25Db3VudCA9PSA1KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBy
ZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgMCBoZWlnaHQgaHRtbCBlbGVt
ZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpLmhlaWdo
dCIsICIwcHgiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbnRlcm5hbHMuaXNUaW1lclRocm90dGxl
ZCh0aW1lb3V0SWQpIik7CisgICAgY2xlYXJJbnRlcnZhbCh0aW1lb3V0SWQpOworICAgIGZpbmlz
aEpTVGVzdCgpOworICB9Cit9CisKK3RpbWVvdXRJZCA9IHNldEludGVydmFsKHRpbWVyQ2FsbGJh
Y2ssIDApOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvdGltZXItdGhyb3R0bGluZy1pZnJhbWUtYW5pbWF0aW5n
LWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy90aW1lci10aHJvdHRs
aW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MDgxMTRhYjY5M2I3
NGQyZjA3ZGFjZDZjMTgxMGZmYTUwYWVkN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9yZXNvdXJjZXMvdGltZXItdGhyb3R0bGluZy1pZnJhbWUtYW5pbWF0aW5nLWJv
ZHkuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlw
dD4KK3ZhciBpdGVyYXRpb25Db3VudCA9IDA7Cit2YXIgdGltZW91dElkOworCitmdW5jdGlvbiB0
aW1lckNhbGxiYWNrKCkgeworICArK2l0ZXJhdGlvbkNvdW50OworCisgIC8vIENoYW5nZSBzdHls
ZSBvZiBFbGVtZW50LgorICBkb2N1bWVudC5ib2R5LnN0eWxlWyJvcGFjaXR5Il0gPSAiIiArIChp
dGVyYXRpb25Db3VudCAvIDEwLik7CisKKyAgcGFyZW50LnRpbWVyRmlyZWQoaXRlcmF0aW9uQ291
bnQsIGludGVybmFscy5pc1RpbWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkpOworCisgIGlmIChpdGVy
YXRpb25Db3VudCA9PSA3KQorICAgIGNsZWFySW50ZXJ2YWwodGltZW91dElkKTsKK30KKwordGlt
ZW91dElkID0gc2V0SW50ZXJ2YWwodGltZXJDYWxsYmFjaywgMCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNj
cm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9k
eS1hbmltYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NjE5YTBiYmMxN2JjYzM1YTJh
YzU1YjM1NzVmZWRiNjIwYzMyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRp
b24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3RzIHRoYXQgYSByZXBlYXRpbmcg
dGltZXIgaW4gYW4gaWZyYW1lIGNoYW5naW5nIHRoZSBzdHlsZSBvZiB0aGUgYm9keSBnZXRzIHRo
cm90dGxlZCB3aGVuIHNjcm9sbGluZyB0aGUgZnJhbWUgb3V0IG9mIHZpZXcuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitGcmFtZSBpcyBpbnNpZGUgdmlld3BvcnQsIHRpbWVyIHNo
b3VsZCBub3QgYmUgdGhyb3R0bGVkCitQQVNTIGlzVGltZXJUaHJvdHRsZWRCZWZvcmVTY3JvbGwg
aXMgZmFsc2UKK1Njcm9sbGluZyBmcmFtZSBvdXQgb2Ygdmlldy4KK0ZyYW1lIGlzIG91dHNpZGUg
dmlld3BvcnQsIHRpbWVyIHNob3VsZCBub3cgYmUgdGhyb3R0bGVkCitQQVNTIGlzVGltZXJUaHJv
dHRsZWRBZnRlclNjcm9sbCBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGlt
ZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1l
LWF3YXktYm9keS1hbmltYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYTg5ODgxMzc3Y2YwYmFmMzU5
NWYzZjY5YzJmZWFlYjViZGUzMWI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0
aW9uLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGluIGFuIGlmcmFt
ZSBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgdGhlIGJvZHkgZ2V0cyB0aHJvdHRsZWQgd2hlbiBzY3Jv
bGxpbmcgdGhlIGZyYW1lIG91dCBvZiB2aWV3LiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2Z1bmN0aW9uIHNjcm9sbEZyYW1lT3V0T2ZWaWV3KCkKK3sKKyAgZGVidWcoIlNjcm9sbGluZyBm
cmFtZSBvdXQgb2Ygdmlldy4iKTsKKyAgd2luZG93LnNjcm9sbEJ5KDAsODAwKTsKK30KKworZnVu
Y3Rpb24gdGltZXJGaXJlZChpdGVyYXRpb25Db3VudCwgaXNUaHJvdHRsZWQpIHsKKyAgLy8gNSBp
dGVyYXRpb25zIHNob3VsZCBzdWZmaWNlIHRvIHRocm90dGxlIHRoZSB0aW1lci4KKyAgaWYgKGl0
ZXJhdGlvbkNvdW50ID09IDUpIHsKKyAgICBkZWJ1ZygiRnJhbWUgaXMgaW5zaWRlIHZpZXdwb3J0
LCB0aW1lciBzaG91bGQgbm90IGJlIHRocm90dGxlZCIpOworICAgIGlzVGltZXJUaHJvdHRsZWRC
ZWZvcmVTY3JvbGwgPSBpc1Rocm90dGxlZDsKKyAgICBzaG91bGRCZUZhbHNlKCJpc1RpbWVyVGhy
b3R0bGVkQmVmb3JlU2Nyb2xsIik7CisgICAgc2Nyb2xsRnJhbWVPdXRPZlZpZXcoKTsKKyAgfSBl
bHNlIGlmIChpdGVyYXRpb25Db3VudCA9PSA3KSB7CisgICAgZGVidWcoIkZyYW1lIGlzIG91dHNp
ZGUgdmlld3BvcnQsIHRpbWVyIHNob3VsZCBub3cgYmUgdGhyb3R0bGVkIik7CisgICAgaXNUaW1l
clRocm90dGxlZEFmdGVyU2Nyb2xsID0gaXNUaHJvdHRsZWQ7CisgICAgc2hvdWxkQmVUcnVlKCJp
c1RpbWVyVGhyb3R0bGVkQWZ0ZXJTY3JvbGwiKTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQor
fQorCis8L3NjcmlwdD4KKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgd2lkdGg6IDE2
MDBweDsgaGVpZ2h0OiAyNDAwcHg7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+CisgIDxpZnJh
bWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvdGltZXItdGhyb3R0bGluZy1pZnJhbWUt
YW5pbWF0aW5nLWJvZHkuaHRtbCIgc3R5bGU9IndpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsi
PjwvaWZyYW1lPgorPC9kaXY+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>242980</attachid>
            <date>2014-12-09 17:12:01 -0800</date>
            <delta_ts>2014-12-10 16:45:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141209171241.patch</filename>
            <type>text/plain</type>
            <size>19890</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTJkZjhhZmRlYzAxZDA1
YWVjOTdhNGJjMTJkN2VhN2Q5ODFiZDYyNC4uOGEzMTNlMzAyZDEzZTc0YTEzMzNlOGUxOGFlYzgz
ZmJhMmM2YzBlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDE0LTEyLTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBmdW5j
dGlvbiB1c2VkIHRvIGRldGVybWluZSBpZgorICAgICAgICB3ZSBzaG91bGQgYW5pbWF0ZSBpbWFn
ZXMgb3IgdW50aHJvdHRsZSBET00gdGltZXJzIHdhcyBub3QgY29ycmVjdGx5CisgICAgICAgIGhh
bmRsaW5nIHJvb3QgcmVuZGVyZXJzIG9yIGJvZHkgcmVuZGVyZXJlcnMgd2hlbiB0aGUgcm9vdCBy
ZW5kZXJlcgorICAgICAgICBoYXMgbm8gYmFja2dyb3VuZC4KKworICAgICAgICBUaGlzIHBhdGNo
IHVwZGF0ZXMgaXNJbnNpZGVWaWV3cG9ydCgpIHRvIHVzZSB0aGUgYmFja2dyb3VuZCByZWN0Cisg
ICAgICAgIGluc3RlYWQgb2YgdGhlIHJlbmRlcmVyJ3MgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0KCkgaWYgdGhlIHJlbmRlcmVyCisgICAgICAgIGlzIHRoZSByb290IHJlbmRlcmVyIG9yIGlm
IGl0IGlzIHRoZSBib2R5IHJlbmRlcmVyIGFuZCB0aGUgcm9vdAorICAgICAgICByZW5kZXJlciBo
YXMgbm8gYmFja2dyb3VuZC4gVGhpcyBmaXhlcyBpc3N1ZXMgd2hlcmUgd2Ugd291bGQgbm90Cisg
ICAgICAgIHByb3Blcmx5IGRldGVjdCBpZiB0aGUgYm9keS9yb290IHJlbmRlcmVyIGlzIGluc2lk
ZSB0aGUgdmlld3BvcnQuIFdlCisgICAgICAgIHdvdWxkIHRodXMgd3JvbmdseSB0aHJvdHRsZSBE
T00gdGltZXJzIGFuZCBmYWlsIHRvIGFuaW1hdGUgaW1hZ2VzIGluCisgICAgICAgIHN1Y2ggY2Fz
ZXMuCisKKyAgICAgICAgSWRlYWxseSwgZm9yIHRoZSBhbmltYXRlZCBpbWFnZSBjYXNlLCB3ZSB3
b3VsZCBiZSBhYmxlIHRvIGRldGVjdCB3aGVuCisgICAgICAgIHRoZSBpbWFnZSBpcyBzZXQgYXMg
dGhlIG5vbi1yZXBlYXRpbmcgYmFja2dyb3VuZCBpbWFnZSBhbmQgaXRzIHBvc2l0aW9uCisgICAg
ICAgIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LiBXZSBjdXJyZW50bHkgZG9uJ3QgZGV0ZWN0IHRo
aXMgcHJvcGVybHkgYW5kIHdlCisgICAgICAgIGVuZCB1cCBhbmltYXRpbmcgdGhlIGltYWdlIHVu
bmVjZXNzYXJpbHkuIFdlIGNhbiBpbXByb3ZlIHRoaXMgbGF0ZXIgb24uCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhbHNvIHJlbmFtZXMgaXNJbnNpZGVWaWV3cG9ydCgpIHRvCisgICAgICAgIGlzUmVw
YWludFJlY3RJbnNpZGVWaWV3cG9ydCgpIGZvciBjbGFyaXR5LgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC1vdXRzaWRlLXZp
ZXdwb3J0LXRocm90dGxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vcmVwZWF0aW5n
LXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJv
dHRsaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNj
cm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi5odG1sCisKKyAgICAgICAgKiBkb20v
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojppc1JlcGFpbnRSZWN0SW5z
aWRlVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNJbnNpZGVWaWV3cG9y
dCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0RP
TVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpzY3JpcHREaWRDYXVzZUVs
ZW1lbnRSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjp1cGRhdGVUaHJvdHRs
aW5nU3RhdGVBZnRlclZpZXdwb3J0Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojppc1JlcGFpbnRS
ZWN0SW5zaWRlVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkUmVwYWludEZvcklt
YWdlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmlzSW5zaWRl
Vmlld3BvcnQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6
CisKIDIwMTQtMTItMDkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
IAogICAgICAgICBGaXggaU9TIGJ1aWxkIGFmdGVyIHIxNzcwMzUuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKaW5kZXggOGJhZDIyMmY2NDEzNDVmYTllNzVhMTU2Y2IxMmQ4M2VlZDgzNjUwNS4uZTNjNGU3
NzdhNGIzMzEyMWNiYTUyZWFkZTY1N2NiMWExNzBhOTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cApAQCAtMjQxNSw5ICsyNDE1LDkgQEAgYm9vbCBFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVy
bWluYXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgRWxlbWVudDo6aXNJ
bnNpZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCkgY29uc3QKK2Jvb2wgRWxl
bWVudDo6aXNSZXBhaW50UmVjdEluc2lkZVZpZXdwb3J0KGNvbnN0IEludFJlY3QqIHZpc2libGVS
ZWN0KSBjb25zdAogewotICAgIHJldHVybiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzSW5z
aWRlVmlld3BvcnQodmlzaWJsZVJlY3QpOworICAgIHJldHVybiByZW5kZXJlcigpICYmIHJlbmRl
cmVyKCktPmlzUmVwYWludFJlY3RJbnNpZGVWaWV3cG9ydCh2aXNpYmxlUmVjdCk7CiB9CiAKIERP
TVRva2VuTGlzdCYgRWxlbWVudDo6Y2xhc3NMaXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDdl
ODEyMzE3YTc2OWEwOTA1NjU5YzllNzAyOTRiODM4YmM1NjdjZDMuLjgzN2JjYmJiMjJlOGY2MTE3
ZjE5NDE5YzZkZWYwZjdlODkxMzExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjAwLDcgKzIw
MCw3IEBAIHB1YmxpYzoKICAgICBkb3VibGUgb2Zmc2V0V2lkdGgoKTsKICAgICBkb3VibGUgb2Zm
c2V0SGVpZ2h0KCk7CiAKLSAgICBib29sIGlzSW5zaWRlVmlld3BvcnQoY29uc3QgSW50UmVjdCog
dmlzaWJsZVJlY3QgPSBudWxscHRyKSBjb25zdDsKKyAgICBib29sIGlzUmVwYWludFJlY3RJbnNp
ZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCA9IG51bGxwdHIpIGNvbnN0Owog
CiAgICAgLy8gRklYTUU6IFJlcGxhY2UgdXNlcyBvZiBvZmZzZXRQYXJlbnQgaW4gdGhlIHBsYXRm
b3JtIHdpdGggY2FsbHMKICAgICAvLyB0byB0aGUgcmVuZGVyIGxheWVyIGFuZCBtZXJnZSBiaW5k
aW5nc09mZnNldFBhcmVudCBhbmQgb2Zmc2V0UGFyZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cAppbmRleCAzZTVmYTU4Nzc1MjRiOGM4NjY2ZjNlOWQ1N2U3ODliZWE2MDEzM2Y2Li5hNDFlODFl
YjYzNzUyOGIyNDhhZGE4MDMwOGFkN2E4OTc1MzFmOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcApAQCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgRE9NVGltZXI6OnNjcmlwdERpZENhdXNlRWxl
bWVudFJlcGFpbnQoRWxlbWVudCYgZWxlbWVudCwgYm9vbCBjaGFuZ2VkKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKGVsZW1lbnQuaXNJbnNpZGVWaWV3cG9ydCgpKQorICAgIGlm
IChlbGVtZW50LmlzUmVwYWludFJlY3RJbnNpZGVWaWV3cG9ydCgpKQogICAgICAgICBET01UaW1l
ckZpcmVTdGF0ZTo6Y3VycmVudC0+c2V0U2NyaXB0TWFkZVVzZXJPYnNlcnZhYmxlQ2hhbmdlcygp
OwogICAgIGVsc2UKICAgICAgICAgRE9NVGltZXJGaXJlU3RhdGU6OmN1cnJlbnQtPnNldFNjcmlw
dE1hZGVOb25Vc2VyT2JzZXJ2YWJsZUNoYW5nZXNUb0VsZW1lbnQoZWxlbWVudCk7CkBAIC00ODAs
NyArNDgwLDcgQEAgdm9pZCBET01UaW1lcjo6dXBkYXRlVGhyb3R0bGluZ1N0YXRlQWZ0ZXJWaWV3
cG9ydENoYW5nZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmUKICAgICAgICAgaWYgKCFlbGVtZW50
IHx8ICFlbGVtZW50LT5pbkRvY3VtZW50KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBpZiAoZWxlbWVudC0+aXNJbnNpZGVWaWV3cG9ydCgmdmlzaWJsZVJlY3QpKSB7CisgICAg
ICAgIGlmIChlbGVtZW50LT5pc1JlcGFpbnRSZWN0SW5zaWRlVmlld3BvcnQoJnZpc2libGVSZWN0
KSkgewogICAgICAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gU2NyaXB0IGlzIGNoYW5naW5n
IHN0eWxlIG9mIGFuIGVsZW1lbnQgdGhhdCBpcyBub3cgaW5zaWRlIHRoZSB2aWV3cG9ydCwgdW50
aHJvdHRsaW5nIHRoZSB0aW1lci4iLCB0aGlzKTsKICAgICAgICAgICAgIG1fdGhyb3R0bGVTdGF0
ZSA9IFNob3VsZE5vdFRocm90dGxlOwogICAgICAgICAgICAgdW5yZWdpc3RlckZvclZpZXdwb3J0
Q2hhbmdlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmlu
ZGV4IDI1ZGY2OTdiOTI2NTEzZTRmNDI5Mjc4ZGVlNDg5OWNmYmMwYTU2N2QuLjIwNjcwZTFiNTMw
OGI3MTcwODllM2RiZDJlYWM4ZmIyZmI0YjAyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTEzMzAsMTUgKzEzMzAsMjIgQEAgYm9vbCBSZW5kZXJF
bGVtZW50Ojpib3JkZXJJbWFnZUlzTG9hZGVkQW5kQ2FuQmVSZW5kZXJlZCgpIGNvbnN0CiAgICAg
cmV0dXJuIGJvcmRlckltYWdlICYmIGJvcmRlckltYWdlLT5jYW5SZW5kZXIodGhpcywgc3R5bGUo
KS5lZmZlY3RpdmVab29tKCkpICYmIGJvcmRlckltYWdlLT5pc0xvYWRlZCgpOwogfQogCi1ib29s
IFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoY29uc3QgSW50UmVjdCogdmlzaWJsZVJl
Y3QpIGNvbnN0Citib29sIFJlbmRlckVsZW1lbnQ6OmlzUmVwYWludFJlY3RJbnNpZGVWaWV3cG9y
dChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCkgY29uc3QKIHsKICAgICBhdXRvJiBmcmFtZVZp
ZXcgPSB2aWV3KCkuZnJhbWVWaWV3KCk7CiAgICAgaWYgKGZyYW1lVmlldy5pc09mZnNjcmVlbigp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBJZiB0aGlzIGlzIHRoZSByb290IGJh
Y2tncm91bmQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW4gZXh0ZW5kZWQgYmFja2dy
b3VuZCByZWN0LgorICAgIEludFJlY3QgcmVwYWludFJlY3Q7CisgICAgaWYgKGlzUm9vdCgpIHx8
IChpc0JvZHkoKSAmJiAhZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKS0+
aGFzQmFja2dyb3VuZCgpKSkKKyAgICAgICAgcmVwYWludFJlY3QgPSBzbmFwcGVkSW50UmVjdCh2
aWV3KCkuYmFja2dyb3VuZFJlY3QoJnZpZXcoKSkpOworICAgIGVsc2UKKyAgICAgICAgcmVwYWlu
dFJlY3QgPSBzbmFwcGVkSW50UmVjdChhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSk7CisK
ICAgICAvLyBDb21wdXRlIHZpZXdwb3J0IHJlY3QgaWYgaXQgd2FzIG5vdCBwcm92aWRlZC4KICAg
ICBjb25zdCBJbnRSZWN0JiB2aWV3cG9ydFJlY3QgPSB2aXNpYmxlUmVjdCA/ICp2aXNpYmxlUmVj
dCA6IGZyYW1lVmlldy53aW5kb3dUb0NvbnRlbnRzKGZyYW1lVmlldy53aW5kb3dDbGlwUmVjdCgp
KTsKLSAgICByZXR1cm4gdmlld3BvcnRSZWN0LmludGVyc2VjdHMoZW5jbG9zaW5nSW50UmVjdChh
YnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSkpOworICAgIHJldHVybiB2aWV3cG9ydFJlY3Qu
aW50ZXJzZWN0cyhyZXBhaW50UmVjdCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZFJlcGFpbnRG
b3JJbWFnZUFuaW1hdGlvbihjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QgSW50
UmVjdCYgdmlzaWJsZVJlY3QpCkBAIC0xMzU0LDcgKzEzNjEsNyBAQCBzdGF0aWMgYm9vbCBzaG91
bGRSZXBhaW50Rm9ySW1hZ2VBbmltYXRpb24oY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIs
IGNvbnN0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAocmVuZGVyZXIuc3R5bGUoKS52
aXNpYmlsaXR5KCkgIT0gVklTSUJMRSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICgh
cmVuZGVyZXIuaXNJbnNpZGVWaWV3cG9ydCgmdmlzaWJsZVJlY3QpKQorICAgIGlmICghcmVuZGVy
ZXIuaXNSZXBhaW50UmVjdEluc2lkZVZpZXdwb3J0KCZ2aXNpYmxlUmVjdCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmgKaW5kZXggNjY0YWMzYjdiMTgxYWFkMDdhOTZlMGE2ZDY5ZTYwM2U4NDRm
MDNhYi4uZmZlMjcxOWQzZDVhZTU5ZGVlNmM2MjA0OTkzYjgwNDVlZWQ0N2M4YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC0xMzMsNyArMTMzLDcgQEAgcHVi
bGljOgogICAgIGJvb2wgcmVwYWludEFmdGVyTGF5b3V0SWZOZWVkZWQoY29uc3QgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgb2xkQm91
bmRzLCBjb25zdCBMYXlvdXRSZWN0JiBvbGRPdXRsaW5lQm94LCBjb25zdCBMYXlvdXRSZWN0KiBu
ZXdCb3VuZHNQdHIgPSBudWxscHRyLCBjb25zdCBMYXlvdXRSZWN0KiBuZXdPdXRsaW5lQm94UHRy
ID0gbnVsbHB0cik7CiAKICAgICBib29sIGJvcmRlckltYWdlSXNMb2FkZWRBbmRDYW5CZVJlbmRl
cmVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc0luc2lkZVZpZXdwb3J0KGNvbnN0IEludFJlY3QqIHZp
c2libGVSZWN0ID0gbnVsbHB0cikgY29uc3Q7CisgICAgYm9vbCBpc1JlcGFpbnRSZWN0SW5zaWRl
Vmlld3BvcnQoY29uc3QgSW50UmVjdCogdmlzaWJsZVJlY3QgPSBudWxscHRyKSBjb25zdDsKIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIHJlbmRlcmVyIHJlcXVpcmVzIGEgbmV3IHN0YWNr
aW5nIGNvbnRleHQuCiAgICAgYm9vbCBjcmVhdGVzR3JvdXAoKSBjb25zdCB7IHJldHVybiBpc1Ry
YW5zcGFyZW50KCkgfHwgaGFzTWFzaygpIHx8IGhhc0ZpbHRlcigpIHx8IGhhc0JhY2tkcm9wRmls
dGVyKCkgfHwgaGFzQmxlbmRNb2RlKCk7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyNjNhNmQ3NGRhMzI1ZjdhODhlZmY3
ZjQ3ODNlZDhhYTc2N2VhYTMxLi44ZTE3NzA2ZDUzMDBkYTZmZTg2OTViNjc0M2FiNDYzNmIzNWFl
MDc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTQtMTItMDkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBodHRwOi8vb21mZ2RvZ3MuaW5mby8gb25seSBhbmlt
YXRlcyB3aGVuIHlvdSByZXNpemUgdGhlIHdpbmRvdworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NDM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8x
OTE5MDQ5Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgbGF5b3V0IHRlc3RzIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCB0aHJvdHRsZSByZXBlYXRp
bmcgdGltZXJzIHRoYXQKKyAgICAgICAgY2hhbmdlIHRoZSBzdHlsZSBvZiBhIDAgaGVpZ2h0IGJv
ZHkgb3IgaHRtbCBlbGVtZW50LiBUaGlzIG1ha2VzIHN1cmUKKyAgICAgICAgb3VyIFJlbmRlckVs
ZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBkZXRlY3Rpb24gaXMgY29ycmVjdCBmb3Igc3VjaAor
ICAgICAgICBlbGVtZW50cy4KKworICAgICAgICBBZGQgYW5vdGhlciBsYXlvdXQgdGVzdCB0byBt
YWtlIHN1cmUgd2Uga2VlcCB0aHJvdHRsaW5nIHRpbWVycyBpbnNpZGUKKyAgICAgICAgYW4gaWZy
YW1lIHRoYXQgYW5pbWF0ZSB0aGUgYm9keSBlbGVtZW50LCB3aGVuIHRoZSBpZnJhbWUgaXMgc2Ny
b2xsZWQKKyAgICAgICAgb3V0IG9mIHRoZSB2aWV3IHBvcnQsIHRvIG1ha2Ugc3VyZSB3ZSBkb24n
dCByZWdyZXNzIHRoaXMgY2FzZS4KKworICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1l
ci1hbmltYXRpbmctYm9keS1lbGVtZW50LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmlt
YXRpbmctYm9keS1lbGVtZW50LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxl
bWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
cmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwt
ZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9k
b20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9yZXNvdXJjZXMvdGltZXItdGhyb3R0bGluZy1p
ZnJhbWUtYW5pbWF0aW5nLWJvZHkuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vdGlt
ZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Ny
b2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEy
LTA5ICBBZGVuaWxzb24gQ2F2YWxjYW50aSAgPGNhdmFsY2FudGlpQGdtYWlsLmNvbT4KIAogICAg
ICAgICBHcm9vdmUvaW5zZXQvb3V0c2V0IGJvcmRlcnMgc2hvdyBzb2xpZCBpZiB0aGUgY29sb3Ig
aXMgYmxhY2sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1l
ci1hbmltYXRpbmctYm9keS1lbGVtZW50LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5n
LWJvZHktZWxlbWVudC1vdXRzaWRlLXZpZXdwb3J0LXRocm90dGxpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM5YWU4NTE4ZTdkNmU2YTdhZjY1MGQ3MWRhNmQ3MDM4MjZhYzU1ODAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0
aW5nLWJvZHktZWxlbWVudC1vdXRzaWRlLXZpZXdwb3J0LXRocm90dGxpbmctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1Rlc3QgdG8gbWFrZSBzdXJlIHdlIHRocm90dGxlIERPTSB0aW1l
cnMgdGhhdCBjaGFuZ2UgdGhlIHN0eWxlIG9mIHRoZSBib2R5IGlmIHRoZSBib2R5IGlzIG91dHNp
ZGUgdGhlIHZpZXdwb3J0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGltZXIg
c2hvdWxkIGluaXRpYWxseSBub3QgYmUgdGhyb3R0bGVkLgorUEFTUyBpbnRlcm5hbHMuaXNUaW1l
clRocm90dGxlZCh0aW1lb3V0SWQpIGlzIGZhbHNlCitQQVNTIGludGVybmFscy5pc1RpbWVyVGhy
b3R0bGVkKHRpbWVvdXRJZCkgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jl
cGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LW91dHNpZGUtdmlld3BvcnQtdGhy
b3R0bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1h
dGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2JjZDMzNjkyMzc2Y2RlN2E0NTZkMWMxZWJjNjNhNGZmMWNkNDRhOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmct
Ym9keS1lbGVtZW50LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy5odG1sCkBAIC0wLDAgKzEs
MzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOyB3aWR0aDogMTYwMHB4OyBoZWlnaHQ6IDEyMDBweCI+Cis8Ym9keSBzdHlsZT0iYmFja2dy
b3VuZC1jb2xvcjogcmVkOyBwb3NpdGlvbjogcmVsYXRpdmU7IGxlZnQ6IDkwMHB4OyB0b3A6IDcw
MHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoranNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Rlc2NyaXB0aW9uKCJUZXN0IHRvIG1ha2Ugc3VyZSB3ZSB0aHJvdHRsZSBE
T00gdGltZXJzIHRoYXQgY2hhbmdlIHRoZSBzdHlsZSBvZiB0aGUgYm9keSBpZiB0aGUgYm9keSBp
cyBvdXRzaWRlIHRoZSB2aWV3cG9ydC4iKTsKKwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMDsKK3Zh
ciB0aW1lb3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2soKQoreworICArK2l0ZXJhdGlv
bkNvdW50OworICAvLyBJbnRlcmFjdCB3aXRoIHRoZSBzdHlsZSBvZiB0aGUgYm9keS4KKyAgZG9j
dW1lbnQuYm9keS5zdHlsZVsib3BhY2l0eSJdID0gIiIgKyAoaXRlcmF0aW9uQ291bnQgLyAxMC4p
OworCisgIC8vIDUgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZSB0byB0aHJvdHRsZSB0aGUgdGlt
ZXIuCisgIGlmIChpdGVyYXRpb25Db3VudCA9PSA1KSB7CisgICAgc2hvdWxkQmVUcnVlKCJpbnRl
cm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpIik7CisgICAgY2xlYXJJbnRlcnZhbCh0
aW1lb3V0SWQpOworICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKK3RpbWVvdXRJZCA9IHNl
dEludGVydmFsKHRpbWVyQ2FsbGJhY2ssIDApOworZGVidWcoIlRpbWVyIHNob3VsZCBpbml0aWFs
bHkgbm90IGJlIHRocm90dGxlZC4iKTsKK3Nob3VsZEJlRmFsc2UoImludGVybmFscy5pc1RpbWVy
VGhyb3R0bGVkKHRpbWVvdXRJZCkiKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1i
b2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kODZlMmZlYzgzNDJhNjNiNGQwMjg4NDc1ZjdjZmMyN2U0Nzgx
YWIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRp
bWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMSBAQAorVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBjaGFuZ2luZyB0aGUgc3R5
bGUgb2YgYSAwIGhlaWdodCBib2R5IGVsZW1lbnQgZG9lcyBub3QgZ2V0IHRocm90dGxlZC4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUoZG9jdW1lbnQuYm9keSkuaGVpZ2h0IGlzICIwcHgiCitQQVNTIGludGVybmFscy5pc1RpbWVy
VGhyb3R0bGVkKHRpbWVvdXRJZCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10aHJvdHRsaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxl
bWVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRjN2NlOGM3NDExNmJkYzZmZGFiZmU1
MzE4YWE4YmU3ZWU4ZWY5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmcuaHRtbApA
QCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5IHN0eWxlPSJoZWlnaHQ6IDAi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBpdGVyYXRpb25Db3VudCA9
IDA7Cit2YXIgdGltZW91dElkOworCitmdW5jdGlvbiB0aW1lckNhbGxiYWNrKCkKK3sKKyAgKytp
dGVyYXRpb25Db3VudDsKKyAgLy8gSW50ZXJhY3Qgd2l0aCB0aGUgc3R5bGUgb2YgdGhlIGJvZHku
CisgIGRvY3VtZW50LmJvZHkuc3R5bGVbIm9wYWNpdHkiXSA9ICIiICsgKGl0ZXJhdGlvbkNvdW50
IC8gMTAuKTsKKworICAvLyA1IGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2UgdG8gdGhyb3R0bGUg
dGhlIHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNSkgeworICAgIGRlc2NyaXB0aW9u
KCJUZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5naW5nIHRoZSBzdHlsZSBvZiBhIDAg
aGVpZ2h0IGJvZHkgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhyb3R0bGVkLiIpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuYm9keSku
aGVpZ2h0IiwgIjBweCIpOworICAgIHNob3VsZEJlRmFsc2UoImludGVybmFscy5pc1RpbWVyVGhy
b3R0bGVkKHRpbWVvdXRJZCkiKTsKKyAgICBjbGVhckludGVydmFsKHRpbWVvdXRJZCk7CisgICAg
ZmluaXNoSlNUZXN0KCk7CisgIH0KK30KKwordGltZW91dElkID0gc2V0SW50ZXJ2YWwodGltZXJD
YWxsYmFjaywgMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFu
aW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWQ1Nzc1Yzc0NGI2MmM4MDQwN2EzNmQ1N2M5NzAxYWQxMjJhYmNkZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1l
bGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRo
YXQgYSByZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgMCBoZWlnaHQgaHRt
bCBlbGVtZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudCkuaGVpZ2h0IGlzICIwcHgiCitQQVNTIGludGVybmFscy5pc1RpbWVyVGhyb3R0bGVk
KHRpbWVvdXRJZCkgaXMgZmFsc2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRp
bmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJvdHRsaW5nLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJv
dHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmIxYzU0MDZjNjlhMmYwMzZhZTA4M2JjODNhZmJiOTUx
MzI1NjNiYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGlu
Zy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmcuaHRtbApAQCAtMCwwICsx
LDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJoZWlnaHQ6IDAiPgorPGJvZHk+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGl0ZXJhdGlvbkNvdW50ID0g
MDsKK3ZhciB0aW1lb3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2soKQoreworICArK2l0
ZXJhdGlvbkNvdW50OworICAvLyBJbnRlcmFjdCB3aXRoIHRoZSBzdHlsZSBvZiB0aGUgYm9keS4K
KyAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlWyJvcGFjaXR5Il0gPSAiIiArIChpdGVy
YXRpb25Db3VudCAvIDEwLik7CisKKyAgLy8gNSBpdGVyYXRpb25zIHNob3VsZCBzdWZmaWNlIHRv
IHRocm90dGxlIHRoZSB0aW1lci4KKyAgaWYgKGl0ZXJhdGlvbkNvdW50ID09IDUpIHsKKyAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBjaGFuZ2luZyB0aGUgc3R5
bGUgb2YgYSAwIGhlaWdodCBodG1sIGVsZW1lbnQgZG9lcyBub3QgZ2V0IHRocm90dGxlZC4iKTsK
KyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmRvY3VtZW50RWxlbWVudCkuaGVpZ2h0IiwgIjBweCIpOworICAgIHNob3VsZEJlRmFsc2Uo
ImludGVybmFscy5pc1RpbWVyVGhyb3R0bGVkKHRpbWVvdXRJZCkiKTsKKyAgICBjbGVhckludGVy
dmFsKHRpbWVvdXRJZCk7CisgICAgZmluaXNoSlNUZXN0KCk7CisgIH0KK30KKwordGltZW91dElk
ID0gc2V0SW50ZXJ2YWwodGltZXJDYWxsYmFjaywgMCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy90aW1lci10
aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVzb3VyY2VzL3RpbWVyLXRocm90dGxpbmctaWZyYW1lLWFuaW1hdGluZy1ib2R5Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDQwODExNGFiNjkzYjc0ZDJmMDdkYWNkNmMxODEwZmZhNTBhZWQ3YgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3Jlc291cmNlcy90aW1lci10aHJv
dHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGl0ZXJhdGlvbkNvdW50ID0gMDsKK3Zh
ciB0aW1lb3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2soKSB7CisgICsraXRlcmF0aW9u
Q291bnQ7CisKKyAgLy8gQ2hhbmdlIHN0eWxlIG9mIEVsZW1lbnQuCisgIGRvY3VtZW50LmJvZHku
c3R5bGVbIm9wYWNpdHkiXSA9ICIiICsgKGl0ZXJhdGlvbkNvdW50IC8gMTAuKTsKKworICBwYXJl
bnQudGltZXJGaXJlZChpdGVyYXRpb25Db3VudCwgaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQo
dGltZW91dElkKSk7CisKKyAgaWYgKGl0ZXJhdGlvbkNvdW50ID09IDcpCisgICAgY2xlYXJJbnRl
cnZhbCh0aW1lb3V0SWQpOworfQorCit0aW1lb3V0SWQgPSBzZXRJbnRlcnZhbCh0aW1lckNhbGxi
YWNrLCAwKTsKKzwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9u
LXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTY2MTlhMGJiYzE3YmNjMzVhMmFjNTViMzU3NWZlZGI2MjBjMzI5NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNjcm9sbGlu
Zy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBA
QAorVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1lciBpbiBhbiBpZnJhbWUgY2hhbmdpbmcgdGhl
IHN0eWxlIG9mIHRoZSBib2R5IGdldHMgdGhyb3R0bGVkIHdoZW4gc2Nyb2xsaW5nIHRoZSBmcmFt
ZSBvdXQgb2Ygdmlldy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK0ZyYW1lIGlz
IGluc2lkZSB2aWV3cG9ydCwgdGltZXIgc2hvdWxkIG5vdCBiZSB0aHJvdHRsZWQKK1BBU1MgaXNU
aW1lclRocm90dGxlZEJlZm9yZVNjcm9sbCBpcyBmYWxzZQorU2Nyb2xsaW5nIGZyYW1lIG91dCBv
ZiB2aWV3LgorRnJhbWUgaXMgb3V0c2lkZSB2aWV3cG9ydCwgdGltZXIgc2hvdWxkIG5vdyBiZSB0
aHJvdHRsZWQKK1BBU1MgaXNUaW1lclRocm90dGxlZEFmdGVyU2Nyb2xsIGlzIHRydWUKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1l
LWF3YXktYm9keS1hbmltYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRo
cm90dGxlLW9uLXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJhODk4ODEzNzdjZjBiYWYzNTk1ZjNmNjljMmZlYWViNWJkZTMxYjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxp
bmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbApAQCAtMCwwICsxLDM0IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgYSBy
ZXBlYXRpbmcgdGltZXIgaW4gYW4gaWZyYW1lIGNoYW5naW5nIHRoZSBzdHlsZSBvZiB0aGUgYm9k
eSBnZXRzIHRocm90dGxlZCB3aGVuIHNjcm9sbGluZyB0aGUgZnJhbWUgb3V0IG9mIHZpZXcuIik7
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gc2Nyb2xsRnJhbWVPdXRPZlZpZXco
KQoreworICBkZWJ1ZygiU2Nyb2xsaW5nIGZyYW1lIG91dCBvZiB2aWV3LiIpOworICB3aW5kb3cu
c2Nyb2xsQnkoMCw4MDApOworfQorCitmdW5jdGlvbiB0aW1lckZpcmVkKGl0ZXJhdGlvbkNvdW50
LCBpc1Rocm90dGxlZCkgeworICAvLyA1IGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2UgdG8gdGhy
b3R0bGUgdGhlIHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNSkgeworICAgIGRlYnVn
KCJGcmFtZSBpcyBpbnNpZGUgdmlld3BvcnQsIHRpbWVyIHNob3VsZCBub3QgYmUgdGhyb3R0bGVk
Iik7CisgICAgaXNUaW1lclRocm90dGxlZEJlZm9yZVNjcm9sbCA9IGlzVGhyb3R0bGVkOworICAg
IHNob3VsZEJlRmFsc2UoImlzVGltZXJUaHJvdHRsZWRCZWZvcmVTY3JvbGwiKTsKKyAgICBzY3Jv
bGxGcmFtZU91dE9mVmlldygpOworICB9IGVsc2UgaWYgKGl0ZXJhdGlvbkNvdW50ID09IDcpIHsK
KyAgICBkZWJ1ZygiRnJhbWUgaXMgb3V0c2lkZSB2aWV3cG9ydCwgdGltZXIgc2hvdWxkIG5vdyBi
ZSB0aHJvdHRsZWQiKTsKKyAgICBpc1RpbWVyVGhyb3R0bGVkQWZ0ZXJTY3JvbGwgPSBpc1Rocm90
dGxlZDsKKyAgICBzaG91bGRCZVRydWUoImlzVGltZXJUaHJvdHRsZWRBZnRlclNjcm9sbCIpOwor
ICAgIGZpbmlzaEpTVGVzdCgpOworICB9Cit9CisKKzwvc2NyaXB0PgorPGRpdiBzdHlsZT0icG9z
aXRpb246IHJlbGF0aXZlOyB3aWR0aDogMTYwMHB4OyBoZWlnaHQ6IDI0MDBweDsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47Ij4KKyAgPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNl
cy90aW1lci10aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sIiBzdHlsZT0id2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyI+PC9pZnJhbWU+Cis8L2Rpdj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243078</attachid>
            <date>2014-12-10 16:45:42 -0800</date>
            <delta_ts>2014-12-10 20:41:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141210164624.patch</filename>
            <type>text/plain</type>
            <size>22157</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI5ZDliNWFmNWJiYmJl
MmM1YjRiMGZhMzlkMGEyZGM2NDA0ODQ1OS4uOTg0MDlhZDU0YjRlMDczN2M3NmRmMGZkYTQzOWI2
MDAxNWNjZDEyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDE0LTEyLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgT3VyIFJlbmRlckVsZW1lbnQ6OmlzSW5zaWRlVmlld3BvcnQoKSBmdW5j
dGlvbiB1c2VkIHRvIGRldGVybWluZSBpZgorICAgICAgICB3ZSBzaG91bGQgYW5pbWF0ZSBpbWFn
ZXMgb3IgdW50aHJvdHRsZSBET00gdGltZXJzIHdhcyBub3QgY29ycmVjdGx5CisgICAgICAgIGhh
bmRsaW5nIHJvb3QgcmVuZGVyZXJzIG9yIGJvZHkgcmVuZGVyZXJlcnMgd2hlbiB0aGUgcm9vdCBy
ZW5kZXJlcgorICAgICAgICBoYXMgbm8gYmFja2dyb3VuZC4KKworICAgICAgICBUaGlzIHBhdGNo
IHVwZGF0ZXMgaXNJbnNpZGVWaWV3cG9ydCgpIHRvIHVzZSB0aGUgYmFja2dyb3VuZCByZWN0Cisg
ICAgICAgIGluc3RlYWQgb2YgdGhlIHJlbmRlcmVyJ3MgYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dS
ZWN0KCkgaWYgdGhlIHJlbmRlcmVyCisgICAgICAgIGlzIHRoZSByb290IHJlbmRlcmVyIG9yIGlm
IGl0IGlzIHRoZSBib2R5IHJlbmRlcmVyIGFuZCB0aGUgcm9vdAorICAgICAgICByZW5kZXJlciBo
YXMgbm8gYmFja2dyb3VuZC4gVGhpcyBmaXhlcyBpc3N1ZXMgd2hlcmUgd2Ugd291bGQgbm90Cisg
ICAgICAgIHByb3Blcmx5IGRldGVjdCBpZiB0aGUgYm9keS9yb290IHJlbmRlcmVyIGlzIGluc2lk
ZSB0aGUgdmlld3BvcnQuIFdlCisgICAgICAgIHdvdWxkIHRodXMgd3JvbmdseSB0aHJvdHRsZSBE
T00gdGltZXJzIGFuZCBmYWlsIHRvIGFuaW1hdGUgaW1hZ2VzIGluCisgICAgICAgIHN1Y2ggY2Fz
ZXMuCisKKyAgICAgICAgSWRlYWxseSwgZm9yIHRoZSBhbmltYXRlZCBpbWFnZSBjYXNlLCB3ZSB3
b3VsZCBiZSBhYmxlIHRvIGRldGVjdCB3aGVuCisgICAgICAgIHRoZSBpbWFnZSBpcyBzZXQgYXMg
dGhlIG5vbi1yZXBlYXRpbmcgYmFja2dyb3VuZCBpbWFnZSBhbmQgaXRzIHBvc2l0aW9uCisgICAg
ICAgIGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0LiBXZSBjdXJyZW50bHkgZG9uJ3QgZGV0ZWN0IHRo
aXMgcHJvcGVybHkgYW5kIHdlCisgICAgICAgIGVuZCB1cCBhbmltYXRpbmcgdGhlIGltYWdlIHVu
bmVjZXNzYXJpbHkuIFdlIGNhbiBpbXByb3ZlIHRoaXMgbGF0ZXIgb24uCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhbHNvIHJlbmFtZXMgaXNJbnNpZGVWaWV3cG9ydCgpIHRvCisgICAgICAgIGlzUmVw
YWludFJlY3RJbnNpZGVWaWV3cG9ydCgpIGZvciBjbGFyaXR5LgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC1vdXRzaWRlLXZp
ZXdwb3J0LXRocm90dGxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vcmVwZWF0aW5n
LXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVudC10aHJv
dHRsaW5nLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNj
cm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFuaW1hdGlvbi5odG1sCisKKyAgICAgICAgKiBkb20v
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojppc1JlcGFpbnRSZWN0SW5z
aWRlVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aXNJbnNpZGVWaWV3cG9y
dCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0RP
TVRpbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjpzY3JpcHREaWRDYXVzZUVs
ZW1lbnRSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVRpbWVyOjp1cGRhdGVUaHJvdHRs
aW5nU3RhdGVBZnRlclZpZXdwb3J0Q2hhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpyZW5kZXJlckZv
clJvb3RCYWNrZ3JvdW5kKToKKyAgICAgICAgU2xpZ2h0IG9wdGltaXphdGlvbiBieSByZXRyaWV2
aW5nIHRoZSA8Ym9keT4gY2hpbGQgb2YgdGhlIGRvY3VtZW50CisgICAgICAgIGVsZW1lbnQgaW5z
dGVhZCBvZiBjYWxsaW5nIGRvY3VtZW50LmJvZHkoKSBhbmQgdGhlbiBjaGVja2luZyBpZgorICAg
ICAgICBpdCBoYXMgYm9keSBhcyB0YWcgbmFtZS4gZG9jdW1lbnQuYm9keSgpIGFsc28gbG9va3Mg
Zm9yIGZyYW1lc2V0CisgICAgICAgIGNoaWxkcmVuIHdoaWNoIHdlIGFyZSBub3QgaW50ZXJlc3Rl
ZCBpbiBoZXJlLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbGVtZW50Ojppc1JlcGFpbnRS
ZWN0SW5zaWRlVmlld3BvcnQpOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxkUmVwYWludEZvcklt
YWdlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVsZW1lbnQ6OmlzSW5zaWRl
Vmlld3BvcnQpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbGVtZW50Lmg6
CisKIDIwMTQtMTItMTAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYSBtaXNzaW5nIG51bGwgY2hlY2suCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggOGJhZDIyMmY2NDEzNDVmYTllNzVhMTU2Y2IxMmQ4M2VlZDgzNjUwNS4uZTNjNGU3NzdhNGIz
MzEyMWNiYTUyZWFkZTY1N2NiMWExNzBhOTdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAt
MjQxNSw5ICsyNDE1LDkgQEAgYm9vbCBFbGVtZW50OjpzaG91bGRBcHBlYXJJbmRldGVybWluYXRl
KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgRWxlbWVudDo6aXNJbnNpZGVW
aWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCkgY29uc3QKK2Jvb2wgRWxlbWVudDo6
aXNSZXBhaW50UmVjdEluc2lkZVZpZXdwb3J0KGNvbnN0IEludFJlY3QqIHZpc2libGVSZWN0KSBj
b25zdAogewotICAgIHJldHVybiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCktPmlzSW5zaWRlVmll
d3BvcnQodmlzaWJsZVJlY3QpOworICAgIHJldHVybiByZW5kZXJlcigpICYmIHJlbmRlcmVyKCkt
PmlzUmVwYWludFJlY3RJbnNpZGVWaWV3cG9ydCh2aXNpYmxlUmVjdCk7CiB9CiAKIERPTVRva2Vu
TGlzdCYgRWxlbWVudDo6Y2xhc3NMaXN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDdlODEyMzE3
YTc2OWEwOTA1NjU5YzllNzAyOTRiODM4YmM1NjdjZDMuLjgzN2JjYmJiMjJlOGY2MTE3ZjE5NDE5
YzZkZWYwZjdlODkxMzExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtMjAwLDcgKzIwMCw3IEBA
IHB1YmxpYzoKICAgICBkb3VibGUgb2Zmc2V0V2lkdGgoKTsKICAgICBkb3VibGUgb2Zmc2V0SGVp
Z2h0KCk7CiAKLSAgICBib29sIGlzSW5zaWRlVmlld3BvcnQoY29uc3QgSW50UmVjdCogdmlzaWJs
ZVJlY3QgPSBudWxscHRyKSBjb25zdDsKKyAgICBib29sIGlzUmVwYWludFJlY3RJbnNpZGVWaWV3
cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAg
Ly8gRklYTUU6IFJlcGxhY2UgdXNlcyBvZiBvZmZzZXRQYXJlbnQgaW4gdGhlIHBsYXRmb3JtIHdp
dGggY2FsbHMKICAgICAvLyB0byB0aGUgcmVuZGVyIGxheWVyIGFuZCBtZXJnZSBiaW5kaW5nc09m
ZnNldFBhcmVudCBhbmQgb2Zmc2V0UGFyZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRl
eCAzZTVmYTU4Nzc1MjRiOGM4NjY2ZjNlOWQ1N2U3ODliZWE2MDEzM2Y2Li5hNDFlODFlYjYzNzUy
OGIyNDhhZGE4MDMwOGFkN2E4OTc1MzFmOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApA
QCAtMzIxLDcgKzMyMSw3IEBAIHZvaWQgRE9NVGltZXI6OnNjcmlwdERpZENhdXNlRWxlbWVudFJl
cGFpbnQoRWxlbWVudCYgZWxlbWVudCwgYm9vbCBjaGFuZ2VkKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgaWYgKGVsZW1lbnQuaXNJbnNpZGVWaWV3cG9ydCgpKQorICAgIGlmIChlbGVt
ZW50LmlzUmVwYWludFJlY3RJbnNpZGVWaWV3cG9ydCgpKQogICAgICAgICBET01UaW1lckZpcmVT
dGF0ZTo6Y3VycmVudC0+c2V0U2NyaXB0TWFkZVVzZXJPYnNlcnZhYmxlQ2hhbmdlcygpOwogICAg
IGVsc2UKICAgICAgICAgRE9NVGltZXJGaXJlU3RhdGU6OmN1cnJlbnQtPnNldFNjcmlwdE1hZGVO
b25Vc2VyT2JzZXJ2YWJsZUNoYW5nZXNUb0VsZW1lbnQoZWxlbWVudCk7CkBAIC00ODAsNyArNDgw
LDcgQEAgdm9pZCBET01UaW1lcjo6dXBkYXRlVGhyb3R0bGluZ1N0YXRlQWZ0ZXJWaWV3cG9ydENo
YW5nZShjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmUKICAgICAgICAgaWYgKCFlbGVtZW50IHx8ICFl
bGVtZW50LT5pbkRvY3VtZW50KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBp
ZiAoZWxlbWVudC0+aXNJbnNpZGVWaWV3cG9ydCgmdmlzaWJsZVJlY3QpKSB7CisgICAgICAgIGlm
IChlbGVtZW50LT5pc1JlcGFpbnRSZWN0SW5zaWRlVmlld3BvcnQoJnZpc2libGVSZWN0KSkgewog
ICAgICAgICAgICAgTE9HKERPTVRpbWVycywgIiVwIC0gU2NyaXB0IGlzIGNoYW5naW5nIHN0eWxl
IG9mIGFuIGVsZW1lbnQgdGhhdCBpcyBub3cgaW5zaWRlIHRoZSB2aWV3cG9ydCwgdW50aHJvdHRs
aW5nIHRoZSB0aW1lci4iLCB0aGlzKTsKICAgICAgICAgICAgIG1fdGhyb3R0bGVTdGF0ZSA9IFNo
b3VsZE5vdFRocm90dGxlOwogICAgICAgICAgICAgdW5yZWdpc3RlckZvclZpZXdwb3J0Q2hhbmdl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IDI1
ZGY2OTdiOTI2NTEzZTRmNDI5Mjc4ZGVlNDg5OWNmYmMwYTU2N2QuLjUzNWMwMDU3N2YxZjZkY2Q4
Yzc3ZmFiMjMwOTA5YTdlNmZmMTQ4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKQEAgLTI5LDEwICsyOSwxMiBAQAogI2luY2x1ZGUgIkNvbnRlbnREYXRh
LmgiCiAjaW5jbHVkZSAiQ29udHJvbFN0YXRlcy5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIK
KyNpbmNsdWRlICJFbGVtZW50Q2hpbGRJdGVyYXRvci5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxl
ci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24uaCIKLSNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxIdG1sRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIkZsb3dUaHJlYWRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ291bnRlci5oIgpA
QCAtMTEwNywxNiArMTEwOSwxNCBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OnNldE5lZWRzU2ltcGxp
ZmllZE5vcm1hbEZsb3dMYXlvdXQoKQogUmVuZGVyRWxlbWVudCYgUmVuZGVyRWxlbWVudDo6cmVu
ZGVyZXJGb3JSb290QmFja2dyb3VuZCgpCiB7CiAgICAgQVNTRVJUKGlzUm9vdCgpKTsKLSAgICBp
ZiAoIWhhc0JhY2tncm91bmQoKSAmJiBlbGVtZW50KCkgJiYgZWxlbWVudCgpLT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6aHRtbFRhZykpIHsKKyAgICBpZiAoIWhhc0JhY2tncm91bmQoKSAmJiBpczxI
VE1MSHRtbEVsZW1lbnQ+KGVsZW1lbnQoKSkpIHsKICAgICAgICAgLy8gTG9jYXRlIHRoZSA8Ym9k
eT4gZWxlbWVudCB1c2luZyB0aGUgRE9NLiBUaGlzIGlzIGVhc2llciB0aGFuIHRyeWluZwogICAg
ICAgICAvLyB0byBjcmF3bCBhcm91bmQgYSByZW5kZXIgdHJlZSB3aXRoIHBvdGVudGlhbCA6YmVm
b3JlLzphZnRlciBjb250ZW50IGFuZAogICAgICAgICAvLyBhbm9ueW1vdXMgYmxvY2tzIGNyZWF0
ZWQgYnkgaW5saW5lIDxib2R5PiB0YWdzIGV0Yy4gV2UgY2FuIGxvY2F0ZSB0aGUgPGJvZHk+CiAg
ICAgICAgIC8vIHJlbmRlciBvYmplY3QgdmVyeSBlYXNpbHkgdmlhIHRoZSBET00uCi0gICAgICAg
IGlmIChhdXRvIGJvZHkgPSBkb2N1bWVudCgpLmJvZHkoKSkgewotICAgICAgICAgICAgaWYgKGJv
ZHktPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjpib2R5VGFnKSkgewotICAgICAgICAgICAgICAgIGlm
IChhdXRvIHJlbmRlcmVyID0gYm9keS0+cmVuZGVyZXIoKSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuICpyZW5kZXJlcjsKLSAgICAgICAgICAgIH0KKyAgICAgICAgaWYgKGF1dG8qIGJvZHkg
PSBjaGlsZHJlbk9mVHlwZTxIVE1MQm9keUVsZW1lbnQ+KCplbGVtZW50KCkpLmZpcnN0KCkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGJvZHktPnJlbmRlcmVyKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuICpyZW5kZXJlcjsKICAgICAgICAgfQogICAgIH0KICAgICByZXR1
cm4gKnRoaXM7CkBAIC0xMzMwLDE1ICsxMzMwLDI1IEBAIGJvb2wgUmVuZGVyRWxlbWVudDo6Ym9y
ZGVySW1hZ2VJc0xvYWRlZEFuZENhbkJlUmVuZGVyZWQoKSBjb25zdAogICAgIHJldHVybiBib3Jk
ZXJJbWFnZSAmJiBib3JkZXJJbWFnZS0+Y2FuUmVuZGVyKHRoaXMsIHN0eWxlKCkuZWZmZWN0aXZl
Wm9vbSgpKSAmJiBib3JkZXJJbWFnZS0+aXNMb2FkZWQoKTsKIH0KIAotYm9vbCBSZW5kZXJFbGVt
ZW50Ojppc0luc2lkZVZpZXdwb3J0KGNvbnN0IEludFJlY3QqIHZpc2libGVSZWN0KSBjb25zdAor
Ym9vbCBSZW5kZXJFbGVtZW50Ojppc1JlcGFpbnRSZWN0SW5zaWRlVmlld3BvcnQoY29uc3QgSW50
UmVjdCogdmlzaWJsZVJlY3QpIGNvbnN0CiB7CiAgICAgYXV0byYgZnJhbWVWaWV3ID0gdmlldygp
LmZyYW1lVmlldygpOwogICAgIGlmIChmcmFtZVZpZXcuaXNPZmZzY3JlZW4oKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCisgICAgLy8gVXNlIGJhY2tncm91bmQgcmVjdCBpZiB3ZSBhcmUgdGhl
IHJvb3Qgb3IgaWYgd2UgYXJlIHRoZSBib2R5IGFuZCB0aGUgYmFja2dyb3VuZCBpcyBwcm9wYWdh
dGVkIHRvIHRoZSByb290LgorICAgIC8vIEZJWE1FOiBUaGlzIGlzIG92ZXJseSBjb25zZXJ2YXRp
dmUuCisgICAgYm9vbCBzaG91bGRVc2VCYWNrZ3JvdW5kUmVjdCA9IGlzUm9vdCgpOworICAgIGlm
IChpc0JvZHkoKSkgeworICAgICAgICBSZW5kZXJFbGVtZW50KiByb290T2JqZWN0ID0gZG9jdW1l
bnQoKS5kb2N1bWVudEVsZW1lbnQoKSA/IGRvY3VtZW50KCkuZG9jdW1lbnRFbGVtZW50KCktPnJl
bmRlcmVyKCkgOiBudWxscHRyOworICAgICAgICBzaG91bGRVc2VCYWNrZ3JvdW5kUmVjdCA9ICZy
b290T2JqZWN0LT5yZW5kZXJlckZvclJvb3RCYWNrZ3JvdW5kKCkgPT0gdGhpczsKKyAgICB9CisK
KyAgICBMYXlvdXRSZWN0IHJlcGFpbnRSZWN0ID0gc2hvdWxkVXNlQmFja2dyb3VuZFJlY3QgPyB2
aWV3KCkuYmFja2dyb3VuZFJlY3QoJnZpZXcoKSkgOiBhYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1Jl
Y3QoKTsKKwogICAgIC8vIENvbXB1dGUgdmlld3BvcnQgcmVjdCBpZiBpdCB3YXMgbm90IHByb3Zp
ZGVkLgogICAgIGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVjdCA9IHZpc2libGVSZWN0ID8gKnZp
c2libGVSZWN0IDogZnJhbWVWaWV3LndpbmRvd1RvQ29udGVudHMoZnJhbWVWaWV3LndpbmRvd0Ns
aXBSZWN0KCkpOwotICAgIHJldHVybiB2aWV3cG9ydFJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJ
bnRSZWN0KGFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdCgpKSk7CisgICAgcmV0dXJuIHZpZXdw
b3J0UmVjdC5pbnRlcnNlY3RzKHNuYXBwZWRJbnRSZWN0KHJlcGFpbnRSZWN0KSk7CiB9CiAKIHN0
YXRpYyBib29sIHNob3VsZFJlcGFpbnRGb3JJbWFnZUFuaW1hdGlvbihjb25zdCBSZW5kZXJFbGVt
ZW50JiByZW5kZXJlciwgY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpCkBAIC0xMzU0LDcgKzEz
NjQsMTEgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVwYWludEZvckltYWdlQW5pbWF0aW9uKGNvbnN0
IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkudmlzaWJpbGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXJlbmRlcmVyLmlzSW5zaWRlVmlld3BvcnQoJnZpc2li
bGVSZWN0KSkKKyAgICAvLyBGSVhNRTogV2Ugbm8gbG9uZ2VyIGhhdmUgdGhlIGltYWdlIGhlcmUu
IFRoaXMgbWVhbnMgd2UgY2Fubm90IGNoZWNrIGlmIHRoZQorICAgIC8vIGltYWdlIGlzIGEgYmFj
a2dyb3VuZCBpbWFnZSAoZm9yIGJhY2tncm91bmQgcHJvcGFnYXRpb24pLiBUaGlzIGFsc28gbWVh
bnMgd2UKKyAgICAvLyBjYW5ub3QgY2hlY2sgaWYgdGhlIGJhY2tncm91bmQgaW1hZ2UgaXMgcG9z
aXRpb25lZCBvdXRzaWRlIHRoZSB2aWV3cG9ydCAod2UKKyAgICAvLyB1c2UgdGhlIHJlbmRlcmVy
IHJlY3Qgb3IgdGhlIGJhY2tncm91bmQgcmVjdCwgaW5zdGVhZCBvZiB0aGUgaW1hZ2UgcmVjdCku
CisgICAgaWYgKCFyZW5kZXJlci5pc1JlcGFpbnRSZWN0SW5zaWRlVmlld3BvcnQoJnZpc2libGVS
ZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCA2NjRhYzNiN2IxODFhYWQwN2E5
NmUwYTZkNjllNjAzZTg0NGYwM2FiLi5mZmUyNzE5ZDNkNWFlNTlkZWU2YzYyMDQ5OTNiODA0NWVl
ZDQ3YzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTEz
Myw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBhaW50QWZ0ZXJMYXlvdXRJZk5lZWRl
ZChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBM
YXlvdXRSZWN0JiBvbGRCb3VuZHMsIGNvbnN0IExheW91dFJlY3QmIG9sZE91dGxpbmVCb3gsIGNv
bnN0IExheW91dFJlY3QqIG5ld0JvdW5kc1B0ciA9IG51bGxwdHIsIGNvbnN0IExheW91dFJlY3Qq
IG5ld091dGxpbmVCb3hQdHIgPSBudWxscHRyKTsKIAogICAgIGJvb2wgYm9yZGVySW1hZ2VJc0xv
YWRlZEFuZENhbkJlUmVuZGVyZWQoKSBjb25zdDsKLSAgICBib29sIGlzSW5zaWRlVmlld3BvcnQo
Y29uc3QgSW50UmVjdCogdmlzaWJsZVJlY3QgPSBudWxscHRyKSBjb25zdDsKKyAgICBib29sIGlz
UmVwYWludFJlY3RJbnNpZGVWaWV3cG9ydChjb25zdCBJbnRSZWN0KiB2aXNpYmxlUmVjdCA9IG51
bGxwdHIpIGNvbnN0OwogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoaXMgcmVuZGVyZXIgcmVx
dWlyZXMgYSBuZXcgc3RhY2tpbmcgY29udGV4dC4KICAgICBib29sIGNyZWF0ZXNHcm91cCgpIGNv
bnN0IHsgcmV0dXJuIGlzVHJhbnNwYXJlbnQoKSB8fCBoYXNNYXNrKCkgfHwgaGFzRmlsdGVyKCkg
fHwgaGFzQmFja2Ryb3BGaWx0ZXIoKSB8fCBoYXNCbGVuZE1vZGUoKTsgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY2NWI2
NDZiYTE5YmJhNWRjOTZjNmE4ZWUwZGM0NWU0MDBmMGExMzguLmE0YmM4Y2UwMWI3NTQ0NTcxYzA2
Y2Y1ZDIwZDM1M2EwMDIwOTkyMDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNC0xMi0wOSAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHA6Ly9vbWZnZG9n
cy5pbmZvLyBvbmx5IGFuaW1hdGVzIHdoZW4geW91IHJlc2l6ZSB0aGUgd2luZG93CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk0MzUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzE5MTkwNDkzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdHMgdG8gbWFrZSBzdXJlIHdlIGRvbid0
IHRocm90dGxlIHJlcGVhdGluZyB0aW1lcnMgdGhhdAorICAgICAgICBjaGFuZ2UgdGhlIHN0eWxl
IG9mIGEgMCBoZWlnaHQgYm9keSBvciBodG1sIGVsZW1lbnQuIFRoaXMgbWFrZXMgc3VyZQorICAg
ICAgICBvdXIgUmVuZGVyRWxlbWVudDo6aXNJbnNpZGVWaWV3cG9ydCgpIGRldGVjdGlvbiBpcyBj
b3JyZWN0IGZvciBzdWNoCisgICAgICAgIGVsZW1lbnRzLgorCisgICAgICAgIEFkZCBhbm90aGVy
IGxheW91dCB0ZXN0IHRvIG1ha2Ugc3VyZSB3ZSBrZWVwIHRocm90dGxpbmcgdGltZXJzIGluc2lk
ZQorICAgICAgICBhbiBpZnJhbWUgdGhhdCBhbmltYXRlIHRoZSBib2R5IGVsZW1lbnQsIHdoZW4g
dGhlIGlmcmFtZSBpcyBzY3JvbGxlZAorICAgICAgICBvdXQgb2YgdGhlIHZpZXcgcG9ydCwgdG8g
bWFrZSBzdXJlIHdlIGRvbid0IHJlZ3Jlc3MgdGhpcyBjYXNlLgorCisgICAgICAgICogZmFzdC9k
b20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9y
dC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVw
ZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJv
dHRsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1lci1h
bmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10
aHJvdHRsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3JlcGVhdGluZy10aW1l
ci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwtZWxlbWVu
dC10aHJvdHRsaW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3Jlc291cmNlcy90
aW1lci10aHJvdHRsaW5nLWlmcmFtZS1hbmltYXRpbmctYm9keS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS90aW1lci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9k
eS1hbmltYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS90aW1l
ci10aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24uaHRtbDog
QWRkZWQuCisKIDIwMTQtMTItMTAgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgog
CiAgICAgICAgIENyYXNoIHdoZW4gY3JlYXRpbmcgQ1NTQ2FsY0JpbmFyeU9wZXJhdGlvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1i
b2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50
LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzlh
ZTg1MThlN2Q2ZTZhN2FmNjUwZDcxZGE2ZDcwMzgyNmFjNTU4MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVt
ZW50LW91dHNpZGUtdmlld3BvcnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
MiBAQAorVGVzdCB0byBtYWtlIHN1cmUgd2UgdGhyb3R0bGUgRE9NIHRpbWVycyB0aGF0IGNoYW5n
ZSB0aGUgc3R5bGUgb2YgdGhlIGJvZHkgaWYgdGhlIGJvZHkgaXMgb3V0c2lkZSB0aGUgdmlld3Bv
cnQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUaW1lciBzaG91bGQgaW5pdGlh
bGx5IG5vdCBiZSB0aHJvdHRsZWQuCitQQVNTIGludGVybmFscy5pc1RpbWVyVGhyb3R0bGVkKHRp
bWVvdXRJZCkgaXMgZmFsc2UKK1BBU1MgaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGltZW91
dElkKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVy
LWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtb3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxl
bWVudC1vdXRzaWRlLXZpZXdwb3J0LXRocm90dGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmNkMzM2
OTIzNzZjZGU3YTQ1NmQxYzFlYmM2M2E0ZmYxY2Q0NGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQt
b3V0c2lkZS12aWV3cG9ydC10aHJvdHRsaW5nLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IHdpZHRoOiAx
NjAwcHg7IGhlaWdodDogMTIwMHB4Ij4KKzxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBy
ZWQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogOTAwcHg7IHRvcDogNzAwcHg7IHdpZHRoOiAy
MDBweDsgaGVpZ2h0OiAyMDBweCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
ZGVzY3JpcHRpb24oIlRlc3QgdG8gbWFrZSBzdXJlIHdlIHRocm90dGxlIERPTSB0aW1lcnMgdGhh
dCBjaGFuZ2UgdGhlIHN0eWxlIG9mIHRoZSBib2R5IGlmIHRoZSBib2R5IGlzIG91dHNpZGUgdGhl
IHZpZXdwb3J0LiIpOworCit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOwordmFyIHRpbWVvdXRJZDsK
KworZnVuY3Rpb24gdGltZXJDYWxsYmFjaygpCit7CisgICsraXRlcmF0aW9uQ291bnQ7CisgIC8v
IEludGVyYWN0IHdpdGggdGhlIHN0eWxlIG9mIHRoZSBib2R5LgorICBkb2N1bWVudC5ib2R5LnN0
eWxlWyJvcGFjaXR5Il0gPSAiIiArIChpdGVyYXRpb25Db3VudCAvIDEwLik7CisKKyAgLy8gNSBp
dGVyYXRpb25zIHNob3VsZCBzdWZmaWNlIHRvIHRocm90dGxlIHRoZSB0aW1lci4KKyAgaWYgKGl0
ZXJhdGlvbkNvdW50ID09IDUpIHsKKyAgICBzaG91bGRCZVRydWUoImludGVybmFscy5pc1RpbWVy
VGhyb3R0bGVkKHRpbWVvdXRJZCkiKTsKKyAgICBjbGVhckludGVydmFsKHRpbWVvdXRJZCk7Cisg
ICAgZmluaXNoSlNUZXN0KCk7CisgIH0KK30KKwordGltZW91dElkID0gc2V0SW50ZXJ2YWwodGlt
ZXJDYWxsYmFjaywgMCk7CitkZWJ1ZygiVGltZXIgc2hvdWxkIGluaXRpYWxseSBub3QgYmUgdGhy
b3R0bGVkLiIpOworc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGlt
ZW91dElkKSIpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWJvZHktZWxlbWVudC10
aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10
aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQ4NmUyZmVjODM0MmE2M2I0ZDAyODg0NzVmN2NmYzI3ZTQ3ODFhYjEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5n
LWJvZHktZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
ZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5naW5nIHRoZSBzdHlsZSBvZiBhIDAgaGVp
Z2h0IGJvZHkgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhyb3R0bGVkLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5i
b2R5KS5oZWlnaHQgaXMgIjBweCIKK1BBU1MgaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGlt
ZW91dElkKSBpcyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10
aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctYm9keS1lbGVtZW50LXRocm90dGxp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lZGM3Y2U4Yzc0MTE2YmRjNmZkYWJmZTUzMThhYThiZTdlZThl
ZjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRp
bWVyLWFuaW1hdGluZy1ib2R5LWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCkBAIC0wLDAgKzEsMjkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHkgc3R5bGU9ImhlaWdodDogMCI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGl0ZXJhdGlvbkNvdW50ID0gMDsKK3ZhciB0aW1l
b3V0SWQ7CisKK2Z1bmN0aW9uIHRpbWVyQ2FsbGJhY2soKQoreworICArK2l0ZXJhdGlvbkNvdW50
OworICAvLyBJbnRlcmFjdCB3aXRoIHRoZSBzdHlsZSBvZiB0aGUgYm9keS4KKyAgZG9jdW1lbnQu
Ym9keS5zdHlsZVsib3BhY2l0eSJdID0gIiIgKyAoaXRlcmF0aW9uQ291bnQgLyAxMC4pOworCisg
IC8vIDUgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZSB0byB0aHJvdHRsZSB0aGUgdGltZXIuCisg
IGlmIChpdGVyYXRpb25Db3VudCA9PSA1KSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQg
YSByZXBlYXRpbmcgdGltZXIgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIGEgMCBoZWlnaHQgYm9keSBl
bGVtZW50IGRvZXMgbm90IGdldCB0aHJvdHRsZWQuIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5ib2R5KS5oZWlnaHQiLCAiMHB4
Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGltZW91
dElkKSIpOworICAgIGNsZWFySW50ZXJ2YWwodGltZW91dElkKTsKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgfQorfQorCit0aW1lb3V0SWQgPSBzZXRJbnRlcnZhbCh0aW1lckNhbGxiYWNrLCAwKTsK
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVw
ZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXBlYXRpbmctdGltZXItYW5pbWF0aW5nLWh0bWwt
ZWxlbWVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDU3NzVjNzQ0YjYy
YzgwNDA3YTM2ZDU3Yzk3MDFhZDEyMmFiY2RkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1hdGluZy1odG1sLWVsZW1lbnQtdGhyb3R0
bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhhdCBhIHJlcGVhdGlu
ZyB0aW1lciBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgYSAwIGhlaWdodCBodG1sIGVsZW1lbnQgZG9l
cyBub3QgZ2V0IHRocm90dGxlZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KS5oZWln
aHQgaXMgIjBweCIKK1BBU1MgaW50ZXJuYWxzLmlzVGltZXJUaHJvdHRsZWQodGltZW91dElkKSBp
cyBmYWxzZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlcGVhdGluZy10aW1lci1hbmlt
YXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3JlcGVhdGluZy10aW1lci1hbmltYXRpbmctaHRtbC1lbGVtZW50LXRocm90dGxpbmcuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYjFjNTQwNmM2OWEyZjAzNmFlMDgzYmM4M2FmYmI5NTEzMjU2M2JjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVwZWF0aW5nLXRpbWVyLWFuaW1h
dGluZy1odG1sLWVsZW1lbnQtdGhyb3R0bGluZy5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImhlaWdodDogMCI+Cis8Ym9keT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOwordmFyIHRpbWVv
dXRJZDsKKworZnVuY3Rpb24gdGltZXJDYWxsYmFjaygpCit7CisgICsraXRlcmF0aW9uQ291bnQ7
CisgIC8vIEludGVyYWN0IHdpdGggdGhlIHN0eWxlIG9mIHRoZSBib2R5LgorICBkb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQuc3R5bGVbIm9wYWNpdHkiXSA9ICIiICsgKGl0ZXJhdGlvbkNvdW50IC8g
MTAuKTsKKworICAvLyA1IGl0ZXJhdGlvbnMgc2hvdWxkIHN1ZmZpY2UgdG8gdGhyb3R0bGUgdGhl
IHRpbWVyLgorICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNSkgeworICAgIGRlc2NyaXB0aW9uKCJU
ZXN0cyB0aGF0IGEgcmVwZWF0aW5nIHRpbWVyIGNoYW5naW5nIHRoZSBzdHlsZSBvZiBhIDAgaGVp
Z2h0IGh0bWwgZWxlbWVudCBkb2VzIG5vdCBnZXQgdGhyb3R0bGVkLiIpOworICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygid2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRF
bGVtZW50KS5oZWlnaHQiLCAiMHB4Iik7CisgICAgc2hvdWxkQmVGYWxzZSgiaW50ZXJuYWxzLmlz
VGltZXJUaHJvdHRsZWQodGltZW91dElkKSIpOworICAgIGNsZWFySW50ZXJ2YWwodGltZW91dElk
KTsKKyAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgfQorfQorCit0aW1lb3V0SWQgPSBzZXRJbnRlcnZh
bCh0aW1lckNhbGxiYWNrLCAwKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3RpbWVyLXRocm90dGxpbmctaWZy
YW1lLWFuaW1hdGluZy1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMv
dGltZXItdGhyb3R0bGluZy1pZnJhbWUtYW5pbWF0aW5nLWJvZHkuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
NDA4MTE0YWI2OTNiNzRkMmYwN2RhY2Q2YzE4MTBmZmE1MGFlZDdiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVzb3VyY2VzL3RpbWVyLXRocm90dGxpbmctaWZyYW1l
LWFuaW1hdGluZy1ib2R5Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
Ym9keT4KKzxzY3JpcHQ+Cit2YXIgaXRlcmF0aW9uQ291bnQgPSAwOwordmFyIHRpbWVvdXRJZDsK
KworZnVuY3Rpb24gdGltZXJDYWxsYmFjaygpIHsKKyAgKytpdGVyYXRpb25Db3VudDsKKworICAv
LyBDaGFuZ2Ugc3R5bGUgb2YgRWxlbWVudC4KKyAgZG9jdW1lbnQuYm9keS5zdHlsZVsib3BhY2l0
eSJdID0gIiIgKyAoaXRlcmF0aW9uQ291bnQgLyAxMC4pOworCisgIHBhcmVudC50aW1lckZpcmVk
KGl0ZXJhdGlvbkNvdW50LCBpbnRlcm5hbHMuaXNUaW1lclRocm90dGxlZCh0aW1lb3V0SWQpKTsK
KworICBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNykKKyAgICBjbGVhckludGVydmFsKHRpbWVvdXRJ
ZCk7Cit9CisKK3RpbWVvdXRJZCA9IHNldEludGVydmFsKHRpbWVyQ2FsbGJhY2ssIDApOworPC9z
Y3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS90aW1lci10
aHJvdHRsZS1vbi1zY3JvbGxpbmctaWZyYW1lLWF3YXktYm9keS1hbmltYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlm
cmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNjYxOWEw
YmJjMTdiY2MzNWEyYWM1NWIzNTc1ZmVkYjYyMGMzMjk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Nyb2xsaW5nLWlmcmFtZS1hd2F5
LWJvZHktYW5pbWF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitUZXN0cyB0aGF0
IGEgcmVwZWF0aW5nIHRpbWVyIGluIGFuIGlmcmFtZSBjaGFuZ2luZyB0aGUgc3R5bGUgb2YgdGhl
IGJvZHkgZ2V0cyB0aHJvdHRsZWQgd2hlbiBzY3JvbGxpbmcgdGhlIGZyYW1lIG91dCBvZiB2aWV3
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworRnJhbWUgaXMgaW5zaWRlIHZpZXdw
b3J0LCB0aW1lciBzaG91bGQgbm90IGJlIHRocm90dGxlZAorUEFTUyBpc1RpbWVyVGhyb3R0bGVk
QmVmb3JlU2Nyb2xsIGlzIGZhbHNlCitTY3JvbGxpbmcgZnJhbWUgb3V0IG9mIHZpZXcuCitGcmFt
ZSBpcyBvdXRzaWRlIHZpZXdwb3J0LCB0aW1lciBzaG91bGQgbm93IGJlIHRocm90dGxlZAorUEFT
UyBpc1RpbWVyVGhyb3R0bGVkQWZ0ZXJTY3JvbGwgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNjcm9sbGluZy1pZnJhbWUtYXdheS1ib2R5LWFu
aW1hdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vdGltZXItdGhyb3R0bGUtb24tc2Ny
b2xsaW5nLWlmcmFtZS1hd2F5LWJvZHktYW5pbWF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE4OTg4
MTM3N2NmMGJhZjM1OTVmM2Y2OWMyZmVhZWI1YmRlMzFiNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3RpbWVyLXRocm90dGxlLW9uLXNjcm9sbGluZy1pZnJhbWUtYXdh
eS1ib2R5LWFuaW1hdGlvbi5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIHJlcGVhdGluZyB0aW1l
ciBpbiBhbiBpZnJhbWUgY2hhbmdpbmcgdGhlIHN0eWxlIG9mIHRoZSBib2R5IGdldHMgdGhyb3R0
bGVkIHdoZW4gc2Nyb2xsaW5nIHRoZSBmcmFtZSBvdXQgb2Ygdmlldy4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCitmdW5jdGlvbiBzY3JvbGxGcmFtZU91dE9mVmlldygpCit7CisgIGRlYnVn
KCJTY3JvbGxpbmcgZnJhbWUgb3V0IG9mIHZpZXcuIik7CisgIHdpbmRvdy5zY3JvbGxCeSgwLDgw
MCk7Cit9CisKK2Z1bmN0aW9uIHRpbWVyRmlyZWQoaXRlcmF0aW9uQ291bnQsIGlzVGhyb3R0bGVk
KSB7CisgIC8vIDUgaXRlcmF0aW9ucyBzaG91bGQgc3VmZmljZSB0byB0aHJvdHRsZSB0aGUgdGlt
ZXIuCisgIGlmIChpdGVyYXRpb25Db3VudCA9PSA1KSB7CisgICAgZGVidWcoIkZyYW1lIGlzIGlu
c2lkZSB2aWV3cG9ydCwgdGltZXIgc2hvdWxkIG5vdCBiZSB0aHJvdHRsZWQiKTsKKyAgICBpc1Rp
bWVyVGhyb3R0bGVkQmVmb3JlU2Nyb2xsID0gaXNUaHJvdHRsZWQ7CisgICAgc2hvdWxkQmVGYWxz
ZSgiaXNUaW1lclRocm90dGxlZEJlZm9yZVNjcm9sbCIpOworICAgIHNjcm9sbEZyYW1lT3V0T2ZW
aWV3KCk7CisgIH0gZWxzZSBpZiAoaXRlcmF0aW9uQ291bnQgPT0gNykgeworICAgIGRlYnVnKCJG
cmFtZSBpcyBvdXRzaWRlIHZpZXdwb3J0LCB0aW1lciBzaG91bGQgbm93IGJlIHRocm90dGxlZCIp
OworICAgIGlzVGltZXJUaHJvdHRsZWRBZnRlclNjcm9sbCA9IGlzVGhyb3R0bGVkOworICAgIHNo
b3VsZEJlVHJ1ZSgiaXNUaW1lclRocm90dGxlZEFmdGVyU2Nyb2xsIik7CisgICAgZmluaXNoSlNU
ZXN0KCk7CisgIH0KK30KKworPC9zY3JpcHQ+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRp
dmU7IHdpZHRoOiAxNjAwcHg7IGhlaWdodDogMjQwMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsiPgorICA8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL3RpbWVyLXRocm90
dGxpbmctaWZyYW1lLWFuaW1hdGluZy1ib2R5Lmh0bWwiIHN0eWxlPSJ3aWR0aDogMTAwcHg7IGhl
aWdodDogMTAwcHg7Ij48L2lmcmFtZT4KKzwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243095</attachid>
            <date>2014-12-10 20:41:17 -0800</date>
            <delta_ts>2014-12-10 21:58:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141210204159.patch</filename>
            <type>text/plain</type>
            <size>13731</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiZjhmYjc3YjZkY2Jm
YjllZDkyNzk0Y2UxZmVlNGRmZTcwMjZhYy4uN2EyODJiMGEzZWU1OWQ5MjBhZTJiZTU3YjZiNjUw
YjU0MTNkY2ZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTEyLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWZ0ZXIgcjE2MzkyOCwgd2Ugd291bGQgZmFpbCB0byBhbmltYXRlIGEg
Z2lmIGlmOgorICAgICAgICAtIGl0IGlzIHVzZWQgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIG9mIGEg
MC1oZWlnaHQgaHRtbCBlbGVtZW50CisgICAgICAgIC0gaXQgaXMgdXNlZCBhcyBhIGJhY2tncm91
bmQgaW1hZ2Ugb2YgYSAwLWhlaWdodCBib2R5IGVsZW1lbnQgd2hvc2UKKyAgICAgICAgICBiYWNr
Z3JvdW5kIGlzIGRlbGVnYXRlZCB0byB0aGUgcm9vdCAoYmVjYXVzZSB0aGUgcm9vdCBoYXMgbm8K
KyAgICAgICAgICBiYWNrZ3JvdW5kKS4KKworICAgICAgICBUaGlzIGlzIGJlY2F1c2UgaW4gc3Vj
aCBjYXNlcywgc2hvdWxkUmVwYWludEZvckltYWdlQW5pbWF0aW9uKCkKKyAgICAgICAgc2hvdWxk
IHVzZSB0aGUgYmFja2dyb3VuZCByZWN0IGluc3RlYWQgb2YgdGhlIHJlbmRlcmVyJ3Mgb3ZlcmZs
b3cKKyAgICAgICAgcmVjdCB0byBkZXRlcm1pbmUgaWYgdGhlIGltYWdlIGlzIGluc2lkZSB0aGUg
dmlld3BvcnQuIEJvdGggY2FzZXMKKyAgICAgICAgYXJlIGFkZHJlc3NlZCBpbiB0aGlzIHBhdGNo
LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1kZWxlZ2F0
ZWQtYmFja2dyb3VuZC1pbWFnZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2ltYWdlcy9hbmlt
YXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJhY2tncm91bmQtaW1hZ2UuaHRtbAorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2hvdWxk
UmVwYWludEZvckltYWdlQW5pbWF0aW9uKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omhhc1BhdXNlZEltYWdlQW5pbWF0aW9u
cyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5pZGw6CisKIDIwMTQtMTItMTAgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gZW1wdHkgc3RvcmFnZSBuYW1lc3BhY2UgcHJvdmlk
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAppbmRleCBlYTE2
NDgxNmY1MTdlMDkwM2RlMjkyOGMwMzFkMWRjMDAyOTg0MjhkLi5mY2FjYjYwOTdkYWIyNmNjYzIz
ZjIwZWRmZDExOTBjNWQzYjRmOWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCkBAIC0xMzU0LDcgKzEzNTQsMjEgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVw
YWludEZvckltYWdlQW5pbWF0aW9uKGNvbnN0IFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyLCBjb25z
dAogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkudmlzaWJp
bGl0eSgpICE9IFZJU0lCTEUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIXJlbmRl
cmVyLmlzSW5zaWRlVmlld3BvcnQoJnZpc2libGVSZWN0KSkKKyAgICBpZiAocmVuZGVyZXIudmll
dygpLmZyYW1lVmlldygpLmlzT2Zmc2NyZWVuKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIC8vIFVzZSBiYWNrZ3JvdW5kIHJlY3QgaWYgd2UgYXJlIHRoZSByb290IG9yIGlmIHdlIGFy
ZSB0aGUgYm9keSBhbmQgdGhlIGJhY2tncm91bmQgaXMgcHJvcGFnYXRlZCB0byB0aGUgcm9vdC4K
KyAgICAvLyBGSVhNRTogVGhpcyBpcyBvdmVybHkgY29uc2VydmF0aXZlIGFzIHRoZSBpbWFnZSBt
YXkgbm90IGJlIGEgYmFja2dyb3VuZC1pbWFnZSwgaW4gd2hpY2ggY2FzZSBpdCB3aWxsIG5vdAor
ICAgIC8vIGJlIHByb3BhZ2F0ZWQgdG8gdGhlIHJvb3QuIEF0IHRoaXMgcG9pbnQsIHdlIHVuZm9y
dHVuYXRlbHkgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIGltYWdlIGFueW1vcmUgc28gd2UKKyAg
ICAvLyBjYW4gbm8gbG9uZ2VyIGNoZWNrIGlmIGl0IGlzIGEgYmFja2dyb3VuZCBpbWFnZS4KKyAg
ICBib29sIHNob3VsZFVzZUJhY2tncm91bmRSZWN0ID0gcmVuZGVyZXIuaXNSb290KCk7CisgICAg
aWYgKHJlbmRlcmVyLmlzQm9keSgpKSB7CisgICAgICAgIFJlbmRlckVsZW1lbnQqIHJvb3RPYmpl
Y3QgPSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpID8gcmVuZGVyZXIuZG9j
dW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7CisgICAgICAg
IHNob3VsZFVzZUJhY2tncm91bmRSZWN0ID0gJnJvb3RPYmplY3QtPnJlbmRlcmVyRm9yUm9vdEJh
Y2tncm91bmQoKSA9PSAmcmVuZGVyZXI7CisKKyAgICB9CisgICAgTGF5b3V0UmVjdCBpbWFnZVJl
Y3QgPSBzaG91bGRVc2VCYWNrZ3JvdW5kUmVjdCA/IHJlbmRlcmVyLnZpZXcoKS5iYWNrZ3JvdW5k
UmVjdCgmcmVuZGVyZXIudmlldygpKSA6IHJlbmRlcmVyLmFic29sdXRlQ2xpcHBlZE92ZXJmbG93
UmVjdCgpOworICAgIGlmICghdmlzaWJsZVJlY3QuaW50ZXJzZWN0cyhlbmNsb3NpbmdJbnRSZWN0
KGltYWdlUmVjdCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1N2I5NWU1M2YxZWZiMDI4NjE4
Mzk4MTk2OTFjOGE5ZDZiOGFjOWRmLi42MjU5ODQ2MjJlYTc4YzQzMzNmZTQ5NTBiODRlNTMwZGFk
NjRiM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NDIsNiArNTQy
LDE1IEBAIFN0cmluZyBJbnRlcm5hbHM6OmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KEVsZW1lbnQq
IGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiByZXByZXNlbnRhdGlvbjsK
IH0KIAorYm9vbCBJbnRlcm5hbHM6Omhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhFbGVtZW50KiBl
bGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQpIHsKKyAgICAg
ICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKS0+
aGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKCk7Cit9CisKIFBhc3NSZWZQdHI8Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uPiBJbnRlcm5hbHM6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVk
SW5mbyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBpZiAoIW5v
ZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDhmZjNlZmRlYTRiNTQ2MGFh
N2E0MTBiYzU5NjMzNjM1NzQyNWIzYWYuLmQzOTNiMDQ3NmIwYzM2MWI3OTkyZWU3YmQzNmYyZmVm
M2QyNjM4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzQsNiArNzQsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKik7
CiAKICAgICBTdHJpbmcgZWxlbWVudFJlbmRlclRyZWVBc1RleHQoRWxlbWVudCosIEV4Y2VwdGlv
bkNvZGUmKTsKKyAgICBib29sIGhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhFbGVtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOwogCiAgICAgU3RyaW5nIGFkZHJlc3MoTm9kZSopOwogICAgIGJvb2wgbm9k
ZU5lZWRzU3R5bGVSZWNhbGMoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmlkbAppbmRleCA1NmNmYjNkMjNkNzNlN2ZjM2ZlNDQxNmYxYjU2NjVjMGU1
MmQ4OGJkLi44MzE4OTQ3YzJhYjY0NGNjMjMxYzM0OTAxNWNmMmZlYjEyNmJhMzIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNiw2ICszNiw5IEBAIGVudW0gUGFnZU92
ZXJsYXlUeXBlIHsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIG5vZGVOZWVkc1N0eWxl
UmVjYWxjKE5vZGUgbm9kZSk7CiAgICAgRE9NU3RyaW5nIGRlc2NyaXB0aW9uKGFueSB2YWx1ZSk7
CiAKKyAgICAvLyBBbmltYXRlZCBpbWFnZSBwYXVzaW5nIHRlc3RpbmcuCisgICAgW1JhaXNlc0V4
Y2VwdGlvbl0gYm9vbGVhbiBoYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoRWxlbWVudCBlbGVtZW50
KTsKKwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBlbGVtZW50UmVuZGVyVHJlZUFz
VGV4dChFbGVtZW50IGVsZW1lbnQpOwogICAgIGJvb2xlYW4gaXNQcmVsb2FkZWQoRE9NU3RyaW5n
IHVybCk7CiAgICAgYm9vbGVhbiBpc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUoRE9NU3RyaW5nIHVy
bCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMDU2OWEwNjYzOTg1YTdhNDE2NjBlYmU5ZGUyZDc0MzFkNzM4MTZlNi4uN2Vj
ZWE5ODg0ZTRlZGFkMTYwOWRjZTdiZTk1YTEzOTFjYTMzYTk2MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3
IEBACisyMDE0LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgaHR0cDovL29tZmdkb2dzLmluZm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRo
ZSB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzOTQzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0cyB0byBt
YWtlIHN1cmUgYSBnaWYgaW1hZ2UgaXMgc3RpbGwgYW5pbWF0ZWQgaWY6CisgICAgICAgIC0gSXQg
aXMgdXNlZCBhcyBhIGJhY2tncm91bmQgaW1hZ2Ugb2YgYSAwLWhlaWdodCBodG1sIGVsZW1lbnQK
KyAgICAgICAgLSBJdCBpcyB1c2VkIGFzIGEgYmFja2dyb3VuZCBpbWFnZSBvZiBhIDAtaGVpZ2h0
IGJvZHkgZWxlbWVudCB0aGF0CisgICAgICAgICAgaXMgZGVsZWdhdGVkIHRvIHRoZSByb290IChi
ZWNhdXNlIHRoZSByb290IGhhcyBubyBiYWNrZ3JvdW5kKQorCisgICAgICAgIEFsc28gYWRkIGEg
bGF5b3V0IHRlc3QgdG8gbWFrZSBzdXJlIHdlIHN0aWxsIHN0b3AgdGhlIGdpZiBhbmltYXRpb24K
KyAgICAgICAgaWYgaXQgaXMgdXNlZCBhcyBiYWNrZ3JvdW5kIGltYWdlIG9mIGEgYm9keSB0aGF0
IGlzIG91dHNpZGUgdGhlCisgICAgICAgIHZpZXdwb3J0LgorCisgICAgICAgICogZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVsZWdhdGVkLWJhY2tncm91bmQtaW1hZ2UtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1kZWxl
Z2F0ZWQtYmFja2dyb3VuZC1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktb3V0c2lkZS12aWV3cG9y
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtaHRtbC1i
YWNrZ3JvdW5kLWltYWdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dyb3VuZC1pbWFnZS5odG1sOiBBZGRlZC4KKwogMjAx
NC0xMi0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgZXhwZWN0YXRpb25zIHRoYXQgd2VyZSBpbmNvcnJlY3RseSBsYW5kZWQgaW4gaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTc2Nzc4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1kZWxlZ2F0ZWQtYmFja2dyb3VuZC1pbWFn
ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9k
eS1kZWxlZ2F0ZWQtYmFja2dyb3VuZC1pbWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUw
NzQ5ZWJhOGRjNGEwZTI3MWJkNjBiZmJhZjYyZGU1MTk0M2Q5OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LWRlbGVnYXRlZC1iYWNr
Z3JvdW5kLWltYWdlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitNYWtlIHN1cmUgdGhl
IGJhY2tncm91bmQgaW1hZ2Ugb2YgdGhlIGJvZHkgZWxlbWVudCBpcyBhbmltYXRlZCBpZiB0aGUg
Ym9keSBoYXMgMCBoZWlnaHQgYW5kIHRoZSBiYWNrZ3JvdW5kIGlzIGRlbGVnYXRlZCB0byB0aGUg
cm9vdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBib2R5SGVpZ2h0IGlz
ICIwcHgiCitQQVNTIGlzQmFja2dyb3VuZEFuaW1hdGVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1kZWxlZ2F0ZWQtYmFja2dyb3VuZC1p
bWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVs
ZWdhdGVkLWJhY2tncm91bmQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTk5ZmJjYmJkYjBlMWRj
YTZiMTg2ZjY2ZGU1NzYwNmNiMDZiNTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVsZWdhdGVkLWJhY2tncm91bmQtaW1hZ2Uu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IHN0eWxlPSJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9hbmlt
YXRlZC5naWYnKTsgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsgaGVpZ2h0OiAxMDAlOyB3aWR0
aDogMTAwJTsiIG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3JpcHQ+CisvLyBUaGUgdGVzdCBwYXNz
ZXMgaWYgdGhlIGJhY2tncm91bmQgaW1hZ2UgaXMgYW5pbWF0ZWQuCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworZnVuY3Rpb24gY2hlY2tCYWNrZ3JvdW5kQW5pbWF0ZWQoKSB7CisgIGlzQmFja2dy
b3VuZEFuaW1hdGVkID0gIWludGVybmFscy5oYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoZG9jdW1l
bnQuYm9keSk7CisgIGJvZHlIZWlnaHQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5ib2R5KVsiaGVpZ2h0Il07CisgIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgdGhlIGJhY2tncm91
bmQgaW1hZ2Ugb2YgdGhlIGJvZHkgZWxlbWVudCBpcyBhbmltYXRlZCBpZiB0aGUgYm9keSBoYXMg
MCBoZWlnaHQgYW5kIHRoZSBiYWNrZ3JvdW5kIGlzIGRlbGVnYXRlZCB0byB0aGUgcm9vdCIpOwor
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImJvZHlIZWlnaHQiLCAiMHB4Iik7CisgIHNob3VsZEJl
VHJ1ZSgiaXNCYWNrZ3JvdW5kQW5pbWF0ZWQiKTsKKyAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1
bmN0aW9uIGltYWdlTG9hZGVkKCkgeworICBzZXRUaW1lb3V0KGNoZWNrQmFja2dyb3VuZEFuaW1h
dGVkLCAyMDApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBpZiAoIXdpbmRvdy5pbnRl
cm5hbHMpCisgICAgcmV0dXJuOworCisgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgLy8gTWFr
ZSBzdXJlIHRoZSBpbWFnZSBpcyBsb2FkZWQgYmVmb3JlIHdlIGNoZWNrIGlmIGl0IGlzIGFuaW1h
dGVkLgorICBpbWcub25sb2FkID0gaW1hZ2VMb2FkZWQ7CisgIGltZy5zcmMgPSAicmVzb3VyY2Vz
L2FuaW1hdGVkLmdpZiI7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LW91dHNpZGUtdmll
d3BvcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LWJvZHktb3V0c2lkZS12aWV3cG9ydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM4MTUzYTRi
YTRlNGNhMTE4NGY3ZWUwYzRhZWQwMmIwZDMzOWU3YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LW91dHNpZGUtdmlld3BvcnQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK01ha2Ugc3VyZSB0aGUgYmFja2dyb3VuZCBpbWFn
ZSBvZiBhIGJvZHkgZWxlbWVudCB0aGF0IGlzIG91dHNpZGUgdGhlIHZpZXdwb3J0IGlzIG5vdCBh
bmltYXRlZAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBpc0JhY2tncm91
bmRBbmltYXRlZCBpcyBmYWxzZQorU2Nyb2xsIGRvd24gc28gdGhhdCB0aGUgYm9keSBiZWNvbWVz
IHZpc2libGUuCitQQVNTIGlzQmFja2dyb3VuZEFuaW1hdGVkIGlzIHRydWUKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZp
ZXdwb3J0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGM0MzcwMjUxMzE1M2RjNjA0ZDA2YmVmMGIzNGM1YTYz
NDUxYjEwMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1h
dGVkLWdpZi1ib2R5LW91dHNpZGUtdmlld3BvcnQuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgd2lkdGg6
IDE2MDBweDsgaGVpZ2h0OiAxMjAwcHgiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IHN0eWxlPSJi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9hbmltYXRlZC5naWYnKTsgYmFja2dyb3Vu
ZC1yZXBlYXQ6IHJlcGVhdDsgcG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAwcHg7IHRvcDogNzAw
cHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0OiAyMDBweCIgb25sb2FkPSJydW5UZXN0KCkiPgorPHNj
cmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBjaGVja0JhY2tncm91bmRB
bmltYXRlZCgpIHsKKyAgaXNCYWNrZ3JvdW5kQW5pbWF0ZWQgPSAhaW50ZXJuYWxzLmhhc1BhdXNl
ZEltYWdlQW5pbWF0aW9ucyhkb2N1bWVudC5ib2R5KTsKKyAgc2hvdWxkQmVUcnVlKCJpc0JhY2tn
cm91bmRBbmltYXRlZCIpOworICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZnVuY3Rpb24gY2hlY2tC
YWNrZ3JvdW5kTm90QW5pbWF0ZWQoKSB7CisgIGlzQmFja2dyb3VuZEFuaW1hdGVkID0gIWludGVy
bmFscy5oYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoZG9jdW1lbnQuYm9keSk7CisgIGRlc2NyaXB0
aW9uKCJNYWtlIHN1cmUgdGhlIGJhY2tncm91bmQgaW1hZ2Ugb2YgYSBib2R5IGVsZW1lbnQgdGhh
dCBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydCBpcyBub3QgYW5pbWF0ZWQiKTsKKyAgc2hvdWxkQmVG
YWxzZSgiaXNCYWNrZ3JvdW5kQW5pbWF0ZWQiKTsKKworICBkZWJ1ZygiU2Nyb2xsIGRvd24gc28g
dGhhdCB0aGUgYm9keSBiZWNvbWVzIHZpc2libGUuIik7CisgIHdpbmRvdy5zY3JvbGxCeSgwLCA2
MDApOworICBzZXRUaW1lb3V0KGNoZWNrQmFja2dyb3VuZEFuaW1hdGVkLCAwKTsKK30KKworZnVu
Y3Rpb24gaW1hZ2VMb2FkZWQoKSB7CisgIHNldFRpbWVvdXQoY2hlY2tCYWNrZ3JvdW5kTm90QW5p
bWF0ZWQsIDIwMCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgIGlmICghd2luZG93Lmlu
dGVybmFscykKKyAgICByZXR1cm47CisKKyAgdmFyIGltZyA9IG5ldyBJbWFnZSgpOworICAvLyBN
YWtlIHN1cmUgdGhlIGltYWdlIGlzIGxvYWRlZCBiZWZvcmUgd2UgY2hlY2sgaWYgaXQgaXMgYW5p
bWF0ZWQuCisgIGltZy5vbmxvYWQgPSBpbWFnZUxvYWRlZDsKKyAgaW1nLnNyYyA9ICJyZXNvdXJj
ZXMvYW5pbWF0ZWQuZ2lmIjsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dyb3Vu
ZC1pbWFnZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1n
aWYtaHRtbC1iYWNrZ3JvdW5kLWltYWdlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjFhNzRl
Mzk2MTJmY2Q1YTUwMDEyZmI5NDAzOWVhMDIwODJjY2FmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dyb3VuZC1pbWFnZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorTWFrZSBzdXJlIHRoZSBiYWNrZ3JvdW5kIGlt
YWdlIG9mIHRoZSBodG1sIGVsZW1lbnQgaXMgYW5pbWF0ZWQgaWYgdGhlIGh0bWwgZWxlbWVudCBo
YXMgMCBoZWlnaHQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaHRtbEhl
aWdodCBpcyAiMHB4IgorUEFTUyBpc0JhY2tncm91bmRBbmltYXRlZCBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dyb3VuZC1pbWFn
ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dy
b3VuZC1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiMDRiNTAxMTFjN2UyNTgzN2YxODdjYmMwZDRj
YWRkN2EwYzhjM2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9h
bmltYXRlZC1naWYtaHRtbC1iYWNrZ3JvdW5kLWltYWdlLmh0bWwKQEAgLTAsMCArMSwzNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNv
dXJjZXMvYW5pbWF0ZWQuZ2lmJyk7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7IGhlaWdodDog
MCI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHNjcmlwdD4K
K2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitmdW5jdGlvbiBjaGVja0JhY2tncm91bmRBbmltYXRl
ZCgpIHsKKyAgaXNCYWNrZ3JvdW5kQW5pbWF0ZWQgPSAhaW50ZXJuYWxzLmhhc1BhdXNlZEltYWdl
QW5pbWF0aW9ucyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpOworICBodG1sSGVpZ2h0ID0gd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KVsiaGVpZ2h0Il07
CisgIGRlc2NyaXB0aW9uKCJNYWtlIHN1cmUgdGhlIGJhY2tncm91bmQgaW1hZ2Ugb2YgdGhlIGh0
bWwgZWxlbWVudCBpcyBhbmltYXRlZCBpZiB0aGUgaHRtbCBlbGVtZW50IGhhcyAwIGhlaWdodCIp
OworICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImh0bWxIZWlnaHQiLCAiMHB4Iik7CisgIHNob3Vs
ZEJlVHJ1ZSgiaXNCYWNrZ3JvdW5kQW5pbWF0ZWQiKTsKKyAgZmluaXNoSlNUZXN0KCk7Cit9CisK
K2Z1bmN0aW9uIGltYWdlTG9hZGVkKCkgeworICBzZXRUaW1lb3V0KGNoZWNrQmFja2dyb3VuZEFu
aW1hdGVkLCAyMDApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBpZiAoIXdpbmRvdy5p
bnRlcm5hbHMpCisgICAgcmV0dXJuOworCisgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAgLy8g
TWFrZSBzdXJlIHRoZSBpbWFnZSBpcyBsb2FkZWQgYmVmb3JlIHdlIGNoZWNrIGlmIGl0IGlzIGFu
aW1hdGVkLgorICBpbWcub25sb2FkID0gaW1hZ2VMb2FkZWQ7CisgIGltZy5zcmMgPSAicmVzb3Vy
Y2VzL2FuaW1hdGVkLmdpZiI7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243102</attachid>
            <date>2014-12-10 21:58:32 -0800</date>
            <delta_ts>2014-12-10 23:40:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139435-20141210215915.patch</filename>
            <type>text/plain</type>
            <size>14419</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiZjhmYjc3YjZkY2Jm
YjllZDkyNzk0Y2UxZmVlNGRmZTcwMjZhYy4uMDdlZTE2ZjNlZDc5MmQyMTkxMThiMjMzN2JhODA2
YmFlZDk1NGZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE0LTEyLTEwICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgaHR0cDovL29tZmdkb2dzLmlu
Zm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVzaXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2Vy
LgorCisgICAgICAgIEFmdGVyIHIxNjM5MjgsIHdlIHdvdWxkIGZhaWwgdG8gYW5pbWF0ZSBhIGdp
ZiBpZjoKKyAgICAgICAgLSBpdCBpcyB1c2VkIGFzIGEgYmFja2dyb3VuZCBpbWFnZSBvZiBhIDAt
aGVpZ2h0IGh0bWwgZWxlbWVudAorICAgICAgICAtIGl0IGlzIHVzZWQgYXMgYSBiYWNrZ3JvdW5k
IGltYWdlIG9mIGEgMC1oZWlnaHQgYm9keSBlbGVtZW50IHdob3NlCisgICAgICAgICAgYmFja2dy
b3VuZCBpcyBkZWxlZ2F0ZWQgdG8gdGhlIHJvb3QgKGJlY2F1c2UgdGhlIHJvb3QgaGFzIG5vCisg
ICAgICAgICAgYmFja2dyb3VuZCkuCisKKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlIGluIHN1Y2gg
Y2FzZXMsIHNob3VsZFJlcGFpbnRGb3JJbWFnZUFuaW1hdGlvbigpCisgICAgICAgIHNob3VsZCB1
c2UgdGhlIGJhY2tncm91bmQgcmVjdCBpbnN0ZWFkIG9mIHRoZSByZW5kZXJlcidzIG92ZXJmbG93
CisgICAgICAgIHJlY3QgdG8gZGV0ZXJtaW5lIGlmIHRoZSBpbWFnZSBpcyBpbnNpZGUgdGhlIHZp
ZXdwb3J0LiBCb3RoIGNhc2VzCisgICAgICAgIGFyZSBhZGRyZXNzZWQgaW4gdGhpcyBwYXRjaC4K
KworICAgICAgICBUZXN0czogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVsZWdhdGVk
LWJhY2tncm91bmQtaW1hZ2UuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9pbWFnZXMvYW5pbWF0
ZWQtZ2lmLWJvZHktb3V0c2lkZS12aWV3cG9ydC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2lt
YWdlcy9hbmltYXRlZC1naWYtaHRtbC1iYWNrZ3JvdW5kLWltYWdlLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNob3VsZFJl
cGFpbnRGb3JJbWFnZUFuaW1hdGlvbik6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpoYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMp
OgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaWRsOgorCiAyMDE0LTEyLTEwICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIGFuIGVtcHR5IHN0b3JhZ2UgbmFtZXNwYWNlIHByb3ZpZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggZWExNjQ4
MTZmNTE3ZTA5MDNkZTI5MjhjMDMxZDFkYzAwMjk4NDI4ZC4uNDEzNjBjNWVjMWQyMTMwM2MyYjll
ZWI3ZWJmZTJkYzNjYWY3ODZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcApAQCAtMTM1NCw3ICsxMzU0LDIyIEBAIHN0YXRpYyBib29sIHNob3VsZFJlcGFp
bnRGb3JJbWFnZUFuaW1hdGlvbihjb25zdCBSZW5kZXJFbGVtZW50JiByZW5kZXJlciwgY29uc3QK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLnZpc2liaWxp
dHkoKSAhPSBWSVNJQkxFKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKCFyZW5kZXJl
ci5pc0luc2lkZVZpZXdwb3J0KCZ2aXNpYmxlUmVjdCkpCisgICAgaWYgKHJlbmRlcmVyLnZpZXco
KS5mcmFtZVZpZXcoKS5pc09mZnNjcmVlbigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvLyBVc2UgYmFja2dyb3VuZCByZWN0IGlmIHdlIGFyZSB0aGUgcm9vdCBvciBpZiB3ZSBhcmUg
dGhlIGJvZHkgYW5kIHRoZSBiYWNrZ3JvdW5kIGlzIHByb3BhZ2F0ZWQgdG8gdGhlIHJvb3QuCisg
ICAgLy8gRklYTUU6IFRoaXMgaXMgb3Zlcmx5IGNvbnNlcnZhdGl2ZSBhcyB0aGUgaW1hZ2UgbWF5
IG5vdCBiZSBhIGJhY2tncm91bmQtaW1hZ2UsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBub3QKKyAg
ICAvLyBiZSBwcm9wYWdhdGVkIHRvIHRoZSByb290LiBBdCB0aGlzIHBvaW50LCB3ZSB1bmZvcnR1
bmF0ZWx5IGRvbid0IGhhdmUgYWNjZXNzIHRvIHRoZSBpbWFnZSBhbnltb3JlIHNvIHdlCisgICAg
Ly8gY2FuIG5vIGxvbmdlciBjaGVjayBpZiBpdCBpcyBhIGJhY2tncm91bmQgaW1hZ2UuCisgICAg
Ym9vbCBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID0gcmVuZGVyZXIuaXNSb290KCk7CisgICAg
aWYgKHJlbmRlcmVyLmlzQm9keSgpKSB7CisgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgc2hhcmUg
Ym9keSBiYWNrZ3JvdW5kIHByb3BhZ2F0aW9uIGNvZGUuCisgICAgICAgIFJlbmRlckVsZW1lbnQq
IHJvb3RPYmplY3QgPSByZW5kZXJlci5kb2N1bWVudCgpLmRvY3VtZW50RWxlbWVudCgpID8gcmVu
ZGVyZXIuZG9jdW1lbnQoKS5kb2N1bWVudEVsZW1lbnQoKS0+cmVuZGVyZXIoKSA6IG51bGxwdHI7
CisgICAgICAgIGJhY2tncm91bmRJc1BhaW50ZWRCeVJvb3QgPSAmcm9vdE9iamVjdC0+cmVuZGVy
ZXJGb3JSb290QmFja2dyb3VuZCgpID09ICZyZW5kZXJlcjsKKworICAgIH0KKyAgICBMYXlvdXRS
ZWN0IGJhY2tncm91bmRQYWludGluZ1JlY3QgPSBiYWNrZ3JvdW5kSXNQYWludGVkQnlSb290ID8g
cmVuZGVyZXIudmlldygpLmJhY2tncm91bmRSZWN0KCZyZW5kZXJlci52aWV3KCkpIDogcmVuZGVy
ZXIuYWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCk7CisgICAgaWYgKCF2aXNpYmxlUmVjdC5p
bnRlcnNlY3RzKGVuY2xvc2luZ0ludFJlY3QoYmFja2dyb3VuZFBhaW50aW5nUmVjdCkpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzNjcsNiArMTM4Miw5
IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6bmV3SW1hZ2VBbmltYXRpb25GcmFtZUF2YWlsYWJsZShD
YWNoZWRJbWFnZSYgaW1hZ2UpCiAgICAgYXV0byYgZnJhbWVWaWV3ID0gdmlldygpLmZyYW1lVmll
dygpOwogICAgIGF1dG8gdmlzaWJsZVJlY3QgPSBmcmFtZVZpZXcud2luZG93VG9Db250ZW50cyhm
cmFtZVZpZXcud2luZG93Q2xpcFJlY3QoKSk7CiAgICAgaWYgKCFzaG91bGRSZXBhaW50Rm9ySW1h
Z2VBbmltYXRpb24oKnRoaXMsIHZpc2libGVSZWN0KSkgeworICAgICAgICAvLyBGSVhNRTogSXQg
d291bGQgYmUgYmV0dGVyIHRvIHBhc3MgdGhlIGltYWdlIGFsb25nIHdpdGggdGhlIHJlbmRlcmVy
CisgICAgICAgIC8vIHNvIHRoYXQgd2UgY2FuIGJlIHNtYXJ0ZXIgYWJvdXQgZGV0ZWN0aW5nIGlm
IHRoZSBpbWFnZSBpcyBpbnNpZGUgdGhlCisgICAgICAgIC8vIHZpZXdwb3J0IGluIHJlcGFpbnRG
b3JQYXVzZWRJbWFnZUFuaW1hdGlvbnNJZk5lZWRlZCgpLgogICAgICAgICB2aWV3KCkuYWRkUmVu
ZGVyZXJXaXRoUGF1c2VkSW1hZ2VBbmltYXRpb25zKCp0aGlzKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA1N2I5NWU1M2YxZWZi
MDI4NjE4Mzk4MTk2OTFjOGE5ZDZiOGFjOWRmLi42MjU5ODQ2MjJlYTc4YzQzMzNmZTQ5NTBiODRl
NTMwZGFkNjRiM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC01NDIs
NiArNTQyLDE1IEBAIFN0cmluZyBJbnRlcm5hbHM6OmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KEVs
ZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgIHJldHVybiByZXByZXNlbnRh
dGlvbjsKIH0KIAorYm9vbCBJbnRlcm5hbHM6Omhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhFbGVt
ZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIGVsZW1lbnQtPnJlbmRlcmVyKCkgJiYgZWxlbWVudC0+cmVuZGVy
ZXIoKS0+aGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKCk7Cit9CisKIFBhc3NSZWZQdHI8Q1NTQ29t
cHV0ZWRTdHlsZURlY2xhcmF0aW9uPiBJbnRlcm5hbHM6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdW
aXNpdGVkSW5mbyhOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykgY29uc3QKIHsKICAgICBp
ZiAoIW5vZGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDhmZjNlZmRlYTRi
NTQ2MGFhN2E0MTBiYzU5NjMzNjM1NzQyNWIzYWYuLmQzOTNiMDQ3NmIwYzM2MWI3OTkyZWU3YmQz
NmYyZmVmM2QyNjM4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzQsNiAr
NzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQ
YWdlKik7CiAKICAgICBTdHJpbmcgZWxlbWVudFJlbmRlclRyZWVBc1RleHQoRWxlbWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIGhhc1BhdXNlZEltYWdlQW5pbWF0aW9ucyhFbGVtZW50
KiwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgU3RyaW5nIGFkZHJlc3MoTm9kZSopOwogICAgIGJv
b2wgbm9kZU5lZWRzU3R5bGVSZWNhbGMoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCA1NmNmYjNkMjNkNzNlN2ZjM2ZlNDQxNmYxYjU2
NjVjMGU1MmQ4OGJkLi44MzE4OTQ3YzJhYjY0NGNjMjMxYzM0OTAxNWNmMmZlYjEyNmJhMzIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC0zNiw2ICszNiw5IEBAIGVudW0g
UGFnZU92ZXJsYXlUeXBlIHsKICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIG5vZGVOZWVk
c1N0eWxlUmVjYWxjKE5vZGUgbm9kZSk7CiAgICAgRE9NU3RyaW5nIGRlc2NyaXB0aW9uKGFueSB2
YWx1ZSk7CiAKKyAgICAvLyBBbmltYXRlZCBpbWFnZSBwYXVzaW5nIHRlc3RpbmcuCisgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gYm9vbGVhbiBoYXNQYXVzZWRJbWFnZUFuaW1hdGlvbnMoRWxlbWVudCBl
bGVtZW50KTsKKwogICAgIFtSYWlzZXNFeGNlcHRpb25dIERPTVN0cmluZyBlbGVtZW50UmVuZGVy
VHJlZUFzVGV4dChFbGVtZW50IGVsZW1lbnQpOwogICAgIGJvb2xlYW4gaXNQcmVsb2FkZWQoRE9N
U3RyaW5nIHVybCk7CiAgICAgYm9vbGVhbiBpc0xvYWRpbmdGcm9tTWVtb3J5Q2FjaGUoRE9NU3Ry
aW5nIHVybCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMDU2OWEwNjYzOTg1YTdhNDE2NjBlYmU5ZGUyZDc0MzFkNzM4MTZl
Ni4uODliYjA2ZjFlNzMxYTZlNTFkOWE4NGM4Yzk0NThhMGNhOTU3NWMzNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI3IEBACisyMDE0LTEyLTEwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgaHR0cDovL29tZmdkb2dzLmluZm8vIG9ubHkgYW5pbWF0ZXMgd2hlbiB5b3UgcmVz
aXplIHRoZSB3aW5kb3cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzOTQzNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTkxOTA0OTM+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdHMg
dG8gbWFrZSBzdXJlIGEgZ2lmIGltYWdlIGlzIHN0aWxsIGFuaW1hdGVkIGlmOgorICAgICAgICAt
IEl0IGlzIHVzZWQgYXMgYSBiYWNrZ3JvdW5kIGltYWdlIG9mIGEgMC1oZWlnaHQgaHRtbCBlbGVt
ZW50CisgICAgICAgIC0gSXQgaXMgdXNlZCBhcyBhIGJhY2tncm91bmQgaW1hZ2Ugb2YgYSAwLWhl
aWdodCBib2R5IGVsZW1lbnQgdGhhdAorICAgICAgICAgIGlzIGRlbGVnYXRlZCB0byB0aGUgcm9v
dCAoYmVjYXVzZSB0aGUgcm9vdCBoYXMgbm8gYmFja2dyb3VuZCkKKworICAgICAgICBBbHNvIGFk
ZCBhIGxheW91dCB0ZXN0IHRvIG1ha2Ugc3VyZSB3ZSBzdGlsbCBzdG9wIHRoZSBnaWYgYW5pbWF0
aW9uCisgICAgICAgIGlmIGl0IGlzIHVzZWQgYXMgYmFja2dyb3VuZCBpbWFnZSBvZiBhIGJvZHkg
dGhhdCBpcyBvdXRzaWRlIHRoZQorICAgICAgICB2aWV3cG9ydC4KKworICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LWRlbGVnYXRlZC1iYWNrZ3JvdW5kLWltYWdlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHkt
ZGVsZWdhdGVkLWJhY2tncm91bmQtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9p
bWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktb3V0c2lkZS12aWV3cG9ydC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LW91dHNpZGUtdmll
d3BvcnQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWh0
bWwtYmFja2dyb3VuZC1pbWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
aW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJhY2tncm91bmQtaW1hZ2UuaHRtbDogQWRkZWQuCisK
IDIwMTQtMTItMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIGV4cGVjdGF0aW9ucyB0aGF0IHdlcmUgaW5jb3JyZWN0bHkgbGFuZGVkIGluIGh0
dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE3Njc3OApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVsZWdhdGVkLWJhY2tncm91bmQt
aW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lm
LWJvZHktZGVsZWdhdGVkLWJhY2tncm91bmQtaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJlMDc0OWViYThkYzRhMGUyNzFiZDYwYmZiYWY2MmRlNTE5NDNkOTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1kZWxlZ2F0ZWQt
YmFja2dyb3VuZC1pbWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorTWFrZSBzdXJl
IHRoZSBiYWNrZ3JvdW5kIGltYWdlIG9mIHRoZSBib2R5IGVsZW1lbnQgaXMgYW5pbWF0ZWQgaWYg
dGhlIGJvZHkgaGFzIDAgaGVpZ2h0IGFuZCB0aGUgYmFja2dyb3VuZCBpcyBkZWxlZ2F0ZWQgdG8g
dGhlIHJvb3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYm9keUhlaWdo
dCBpcyAiMHB4IgorUEFTUyBpc0JhY2tncm91bmRBbmltYXRlZCBpcyB0cnVlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktZGVsZWdhdGVkLWJhY2tncm91
bmQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5
LWRlbGVnYXRlZC1iYWNrZ3JvdW5kLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzE5OWZiY2JiZGIw
ZTFkY2E2YjE4NmY2NmRlNTc2MDZjYjA2YjU5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1ib2R5LWRlbGVnYXRlZC1iYWNrZ3JvdW5kLWlt
YWdlLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBzdHlsZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMv
YW5pbWF0ZWQuZ2lmJyk7IGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7IGhlaWdodDogMTAwJTsg
d2lkdGg6IDEwMCU7IiBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8c2NyaXB0PgorLy8gVGhlIHRlc3Qg
cGFzc2VzIGlmIHRoZSBiYWNrZ3JvdW5kIGltYWdlIGlzIGFuaW1hdGVkLgoranNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK2Z1bmN0aW9uIGNoZWNrQmFja2dyb3VuZEFuaW1hdGVkKCkgeworICBpc0Jh
Y2tncm91bmRBbmltYXRlZCA9ICFpbnRlcm5hbHMuaGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKGRv
Y3VtZW50LmJvZHkpOworICBib2R5SGVpZ2h0ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuYm9keSlbImhlaWdodCJdOworICBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoZSBiYWNr
Z3JvdW5kIGltYWdlIG9mIHRoZSBib2R5IGVsZW1lbnQgaXMgYW5pbWF0ZWQgaWYgdGhlIGJvZHkg
aGFzIDAgaGVpZ2h0IGFuZCB0aGUgYmFja2dyb3VuZCBpcyBkZWxlZ2F0ZWQgdG8gdGhlIHJvb3Qi
KTsKKyAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJib2R5SGVpZ2h0IiwgIjBweCIpOworICBzaG91
bGRCZVRydWUoImlzQmFja2dyb3VuZEFuaW1hdGVkIik7CisgIGZpbmlzaEpTVGVzdCgpOworfQor
CitmdW5jdGlvbiBpbWFnZUxvYWRlZCgpIHsKKyAgc2V0VGltZW91dChjaGVja0JhY2tncm91bmRB
bmltYXRlZCwgMjAwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgaWYgKCF3aW5kb3cu
aW50ZXJuYWxzKQorICAgIHJldHVybjsKKworICB2YXIgaW1nID0gbmV3IEltYWdlKCk7CisgIC8v
IE1ha2Ugc3VyZSB0aGUgaW1hZ2UgaXMgbG9hZGVkIGJlZm9yZSB3ZSBjaGVjayBpZiBpdCBpcyBh
bmltYXRlZC4KKyAgaW1nLm9ubG9hZCA9IGltYWdlTG9hZGVkOworICBpbWcuc3JjID0gInJlc291
cmNlcy9hbmltYXRlZC5naWYiOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRl
LXZpZXdwb3J0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVk
LWdpZi1ib2R5LW91dHNpZGUtdmlld3BvcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUzODE1
M2E0YmE0ZTRjYTExODRmN2VlMGM0YWVkMDJiMGQzMzllN2IKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9hbmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitNYWtlIHN1cmUgdGhlIGJhY2tncm91bmQg
aW1hZ2Ugb2YgYSBib2R5IGVsZW1lbnQgdGhhdCBpcyBvdXRzaWRlIHRoZSB2aWV3cG9ydCBpcyBu
b3QgYW5pbWF0ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaXNCYWNr
Z3JvdW5kQW5pbWF0ZWQgaXMgZmFsc2UKK1Njcm9sbCBkb3duIHNvIHRoYXQgdGhlIGJvZHkgYmVj
b21lcyB2aXNpYmxlLgorUEFTUyBpc0JhY2tncm91bmRBbmltYXRlZCBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktb3V0c2lkZS12aWV3cG9y
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLWJvZHktb3V0c2lk
ZS12aWV3cG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjNDM3MDI1MTMxNTNkYzYwNGQwNmJlZjBiMzRj
NWE2MzQ1MWIxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9h
bmltYXRlZC1naWYtYm9keS1vdXRzaWRlLXZpZXdwb3J0Lmh0bWwKQEAgLTAsMCArMSw0MiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbCBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IHdp
ZHRoOiAxNjAwcHg7IGhlaWdodDogMTIwMHB4Ij4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBzdHls
ZT0iYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvYW5pbWF0ZWQuZ2lmJyk7IGJhY2tn
cm91bmQtcmVwZWF0OiByZXBlYXQ7IHBvc2l0aW9uOiByZWxhdGl2ZTsgbGVmdDogMHB4OyB0b3A6
IDcwMHB4OyB3aWR0aDogMjAwcHg7IGhlaWdodDogMjAwcHgiIG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxzY3JpcHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gY2hlY2tCYWNrZ3Jv
dW5kQW5pbWF0ZWQoKSB7CisgIGlzQmFja2dyb3VuZEFuaW1hdGVkID0gIWludGVybmFscy5oYXNQ
YXVzZWRJbWFnZUFuaW1hdGlvbnMoZG9jdW1lbnQuYm9keSk7CisgIHNob3VsZEJlVHJ1ZSgiaXNC
YWNrZ3JvdW5kQW5pbWF0ZWQiKTsKKyAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrQmFja2dyb3VuZE5vdEFuaW1hdGVkKCkgeworICBpc0JhY2tncm91bmRBbmltYXRlZCA9ICFp
bnRlcm5hbHMuaGFzUGF1c2VkSW1hZ2VBbmltYXRpb25zKGRvY3VtZW50LmJvZHkpOworICBkZXNj
cmlwdGlvbigiTWFrZSBzdXJlIHRoZSBiYWNrZ3JvdW5kIGltYWdlIG9mIGEgYm9keSBlbGVtZW50
IHRoYXQgaXMgb3V0c2lkZSB0aGUgdmlld3BvcnQgaXMgbm90IGFuaW1hdGVkIik7CisgIHNob3Vs
ZEJlRmFsc2UoImlzQmFja2dyb3VuZEFuaW1hdGVkIik7CisKKyAgZGVidWcoIlNjcm9sbCBkb3du
IHNvIHRoYXQgdGhlIGJvZHkgYmVjb21lcyB2aXNpYmxlLiIpOworICB3aW5kb3cuc2Nyb2xsQnko
MCwgNjAwKTsKKyAgc2V0VGltZW91dChjaGVja0JhY2tncm91bmRBbmltYXRlZCwgMCk7Cit9CisK
K2Z1bmN0aW9uIGltYWdlTG9hZGVkKCkgeworICBzZXRUaW1lb3V0KGNoZWNrQmFja2dyb3VuZE5v
dEFuaW1hdGVkLCAyMDApOworfQorCitmdW5jdGlvbiBydW5UZXN0KCkgeworICBpZiAoIXdpbmRv
dy5pbnRlcm5hbHMpCisgICAgcmV0dXJuOworCisgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTsKKyAg
Ly8gTWFrZSBzdXJlIHRoZSBpbWFnZSBpcyBsb2FkZWQgYmVmb3JlIHdlIGNoZWNrIGlmIGl0IGlz
IGFuaW1hdGVkLgorICBpbWcub25sb2FkID0gaW1hZ2VMb2FkZWQ7CisgIGltZy5zcmMgPSAicmVz
b3VyY2VzL2FuaW1hdGVkLmdpZiI7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJhY2tn
cm91bmQtaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvYW5pbWF0
ZWQtZ2lmLWh0bWwtYmFja2dyb3VuZC1pbWFnZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTYx
YTc0ZTM5NjEyZmNkNWE1MDAxMmZiOTQwMzllYTAyMDgyY2NhZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJhY2tncm91bmQtaW1h
Z2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK01ha2Ugc3VyZSB0aGUgYmFja2dyb3Vu
ZCBpbWFnZSBvZiB0aGUgaHRtbCBlbGVtZW50IGlzIGFuaW1hdGVkIGlmIHRoZSBodG1sIGVsZW1l
bnQgaGFzIDAgaGVpZ2h0CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGh0
bWxIZWlnaHQgaXMgIjBweCIKK1BBU1MgaXNCYWNrZ3JvdW5kQW5pbWF0ZWQgaXMgdHJ1ZQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJhY2tncm91bmQt
aW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi1odG1sLWJh
Y2tncm91bmQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYjA0YjUwMTExYzdlMjU4MzdmMTg3Y2Jj
MGQ0Y2FkZDdhMGM4YzNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFn
ZXMvYW5pbWF0ZWQtZ2lmLWh0bWwtYmFja2dyb3VuZC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6IHVybCgn
cmVzb3VyY2VzL2FuaW1hdGVkLmdpZicpOyBiYWNrZ3JvdW5kLXJlcGVhdDogcmVwZWF0OyBoZWln
aHQ6IDAiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxzY3Jp
cHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZnVuY3Rpb24gY2hlY2tCYWNrZ3JvdW5kQW5p
bWF0ZWQoKSB7CisgIGlzQmFja2dyb3VuZEFuaW1hdGVkID0gIWludGVybmFscy5oYXNQYXVzZWRJ
bWFnZUFuaW1hdGlvbnMoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KTsKKyAgaHRtbEhlaWdodCA9
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudClbImhlaWdo
dCJdOworICBkZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoZSBiYWNrZ3JvdW5kIGltYWdlIG9mIHRo
ZSBodG1sIGVsZW1lbnQgaXMgYW5pbWF0ZWQgaWYgdGhlIGh0bWwgZWxlbWVudCBoYXMgMCBoZWln
aHQiKTsKKyAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJodG1sSGVpZ2h0IiwgIjBweCIpOworICBz
aG91bGRCZVRydWUoImlzQmFja2dyb3VuZEFuaW1hdGVkIik7CisgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitmdW5jdGlvbiBpbWFnZUxvYWRlZCgpIHsKKyAgc2V0VGltZW91dChjaGVja0JhY2tncm91
bmRBbmltYXRlZCwgMjAwKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgaWYgKCF3aW5k
b3cuaW50ZXJuYWxzKQorICAgIHJldHVybjsKKworICB2YXIgaW1nID0gbmV3IEltYWdlKCk7Cisg
IC8vIE1ha2Ugc3VyZSB0aGUgaW1hZ2UgaXMgbG9hZGVkIGJlZm9yZSB3ZSBjaGVjayBpZiBpdCBp
cyBhbmltYXRlZC4KKyAgaW1nLm9ubG9hZCA9IGltYWdlTG9hZGVkOworICBpbWcuc3JjID0gInJl
c291cmNlcy9hbmltYXRlZC5naWYiOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>